A través de Proof-of-Device (prueba de dispositivo), los usuarios pueden validar automáticamente su hardware, para demostrar aún más su identidad de manera anónima pero confiable. 

Esta característica puede ser útil para cualquier servicio en línea que necesite autenticar

Las redes descentralizadas anónimas y sin permiso como Golem Network tienen que proporcionar contramedidas contra los ataques de Sybil, por ejemplo. 

Una forma es que los usuarios tienen que demostrar su identidad o singularidad de forma anónima. 

Investigamos si SGX puede ser una fuente de tal identidad. Luego nos dimos cuenta de que estas soluciones son aplicables mucho más allá de las redes descentralizadas. Decidimos compartir y desarrollar una prueba de concepto. 

A un alto nivel, a través de Proof-of-Device, los usuarios pueden validar automáticamente su hardware, para demostrar aún más su identidad de manera anónima pero confiable. Esta característica puede ser útil para cualquier servicio en línea que necesite autenticar usuarios.

¿Qué es esta Proof-of-Device? No reemplaza los mecanismos de autenticación de Internet, sino que es su complemento. 

La Proof-of-Device, prueba de dispositivo, o PoD , es otra versión de los métodos de autenticación 2FA o U2F. Aquí, la carga de almacenar claves para firmar y probar su identidad es administrada por el enclave SGX.

Describimos cómo funciona en el ejemplo de un servicio en línea, por ejemplo, un servicio bancario como lo demostramos en nuestro PoC. 

Dicho servicio en línea requiere que el usuario proporcione nombre de usuario y contraseña. Además, para usar PoD, el usuario debe tener el enclave PoD ejecutándose en su máquina. 

En esta configuración, hay un par de claves: la clave privada está incrustada en el enclave y el servicio en línea almacena la clave pública. El enclave genera el par de claves y la clave pública se entrega al servicio en línea y se asocia con el usuario por adelantado. 

Cuando el usuario visita el servicio en línea, envía una página de inicio de sesión y un desafío: datos aleatorios. El usuario proporciona un nombre de usuario y contraseña, mientras su navegador se conecta al enclave PoD a través de una extensión, luego el enclave firma el desafío. La página de inicio de sesión llena y la firma se envían al servicio en línea para su autenticación. 

Finalmente, si el inicio de sesión y la contraseña son correctos y la firma es válida contra la clave pública almacenada, el servicio en línea autentica al usuario.

El mecanismo de PoD demuestra que el usuario tiene acceso físico al dispositivo dado. En otras palabras, el usuario solo puede iniciar sesión desde dispositivos previamente asignados. 

El sistema es muy seguro, ni siquiera el usuario tiene conocimiento de la clave privada que está almacenada en el enclave. La tecnología SGX garantiza que el enclave solo se puede ejecutar con una CPU de origen. Incluso si un adversario roba el nombre de usuario y la contraseña, no puede acceder al servicio. Robar el enclave tampoco ayuda. 

La seguridad de la solución depende de las garantías de SGX. Utilizamos SGX ya que es la tecnología más avanzada, pero PoD tiene el potencial de ser ejecutado por otros TEE.  

PoD se puede usar para muchas cosas. Como prueba de concepto, lo demostramos con un servicio de inicio de sesión mejorado para el banco. Es obligatorio agregar una capa adicional de verificación a la banca en línea, especialmente a medida que surgen nuevas infracciones de seguridad y algunos bancos carecen de la infraestructura para proteger a sus usuarios en el nivel inferior. 

Esto demuestra la utilidad de PoD muy bien. Nuestro PoC consta del enclave PoD, el navegador web como cliente y un servicio web. Lo que es interesante y notable, integramos el enclave con el navegador web a través de una extensión. Un usuario debe tener SGX habilitado y ejecutar la configuración de PoD, incluida la extensión del navegador web. Pero más tarde, PoD funciona de manera transparente. 

El usuario no tiene que guardar hardware adicional, códigos de tipo o usar un dispositivo móvil. No necesita estar registrado con Intel, como el servicio en línea hace la certificación. Este es un PoC, está limitado a Linux y Mozilla, pero eso es solo una cuestión de trabajo.

Incluso si solo se trata de un PoC, el mecanismo de Prueba de dispositivo es una vía prometedora, que vale la pena explorar para los desarrolladores de software y las empresas que buscan esas garantías de seguridad adicionales. 

Puedes consultar el repositorio aquí. 

Golem ha estado trabajando en SGX durante casi tres años desde que comenzamos la cooperación con Invisible Things Lab. 

En 2019, Graphene fue el centro de atención: un proyecto derivado de la cooperación con Intel, ITL y los creadores originales. 

El v1 de Graphene se lanzó más tarde ese año, y el proyecto se ha convertido en un bien común para la comunidad de código abierto. 

Hay algunas ideas más en nuestra plantilla, y posiblemente se agregarán más. 

A medida que evolucionamos hacia The Next Milestone, hemos reevaluado nuestra asignación de recursos para centrarnos más en Golem. Por lo tanto, la Prueba de dispositivo sigue siendo un PoC por ahora, pero no dude en contactarnos si tiene más preguntas.  

Este PoC fue desarrollado por Golem, en cooperación con Invisible Things Lab. Principalmente, gracias a Jakub Konka y Muhammed Tanrikulu.