Informe de auditoría de privacidad y seguridad de Worldcoin orb

Mar 14, 2024 5 Minute Read

El proyecto Worldcoin se basa en un compromiso con la privacidad y la seguridad. Como parte de este compromiso, el colaborador del proyecto Tools for Humanity (TFH), en conjunto con la Worldcoin Foundation, involucró a los respetados expertos en seguridad de Trail of Bits para realizar una auditoría especializada del software del Orb. Además de una evaluación de seguridad típica, Trail of Bits se centró en evaluar una serie de afirmaciones de privacidad y funcionalidad relacionadas con el Orb.

El informe final está disponible aquí.

Alcance de la evaluación

Trail of Bits comenzó su evaluación 14 de agosto de 2023 en una versión de software congelada 8 de julio de 2023 con SemVer 3.0.10. A partir de 14 de marzo de 2024, la versión actual del software desplegado en los Orbs es 4.0.34 con una fecha de primera versión de 17 de enero de 2024. 

TFH proporcionó una serie de afirmaciones técnicas no exhaustivas para definir el alcance de la participación en un intento de validar su implementación. Estas afirmaciones estaban dirigidas a la versión del software congelada 8 de julio de 2023.

1. Para el flujo de registro predeterminado de exclusión, el Orb no recopila ninguna información de identificación personal (PII) excepto el código del iris

  • No se escribe ninguna PII en el almacenamiento persistente del Orb
  • No sale ninguna PII del Orb excepto el código del iris (por ejemplo, cargado)

2. Para el flujo de registro de inclusión no predeterminado, la PII se maneja de manera segura por el Orb

  • La única PII que se persiste en el dispositivo está en el SSD del Orb y está cifrada de manera asimétrica*
  • La PII cifrada de manera asimétrica almacenada en el SSD del Orb no puede ser descifrada por el Orb

3. El Orb no extrae ningún dato sensible del dispositivo de un usuario

  • La única información que el Orb recopila del teléfono de un usuario está en el código QR.**

4. El código del iris del usuario se maneja de manera segura

  • El código del iris del usuario no se escribe en el almacenamiento persistente del orb
  • El código del iris del usuario solo se incluye en una única solicitud al backend del orb ***
  • El código del iris solo se puede enviar a servidores aprobados y la comunicación en la red está cifrada de extremo a extremo.

* A partir de la versión 4.0.XX, el orb ya no guarda ningún dato en el SSD independientemente de la opción de custodia de datos.

** En la versión 3.0.10 del software del orb el código QR contenía un UUID de 128 bits user_id y un data_policy booleano que representa la opción de custodia de datos del usuario, y una DataCollectionConfig struct opcional para uso interno. En la versión de software 4.0.0, el código QR ha sido modificado para incluir un hash criptográfico que incluye la clave pública del usuario, llamado user_data_hash. Este hash se usa para validar que se esté utilizando la clave pública correcta al cifrar datos en el dispositivo del usuario. 

*** En la versión de software 4.0.0, se agregará una nueva función de “Custodia Personal” donde una copia adicional del código de iris y biometría se cifrará directamente en el dispositivo del usuario utilizando la clave pública del usuario.

Estas afirmaciones se refinaron aún más en objetivos específicos disponibles en el informe final en coordinación con Trail of Bits. Las aplicaciones de usuario del cliente del Orb en Rust y su sistema operativo basado en Debian se definieron como dentro del alcance de esta evaluación, y los siguientes componentes se excluyeron por no ser aplicables a los reclamos originales:

  1. Configuración del cargador de arranque
  2. Modificaciones del controlador
  3. Aplicaciones TrustZone
  4. Interfaz de elemento seguro

Una lista exhaustiva de los objetivos se enumera en el informe final.

Resultados de la Evaluación

Tres consultores realizaron un total de seis semanas de ingeniería de revisión. Los auditores tuvieron acceso completo al código fuente, junto con acceso en tiempo de ejecución a dos orbs de evaluación. Mientras que el informe describe posibles superficies de ataque (TOB-ORB-4 y TOB-ORB-5, TOB-ORB-10, y TOB-ORB-11), concluyen que “nuestro análisis no descubrió vulnerabilidades en el código del Orb que puedan ser explotadas directamente en relación con los Objetivos del Proyecto como se describe.” Además, aunque la revisión de Trail of Bits identificó algunas preocupaciones no confirmadas que teóricamente podrían afectar los objetivos del proyecto, y el código afectado ha sido actualizado desde entonces, la auditoría no identificó casos en los cuales los objetivos del proyecto fueran directamente comprometidos, ya sea a través de vulnerabilidades conocidas o durante la ejecución normal.

Los auditores de Trail of Bits proporcionaron recomendaciones expertas para el endurecimiento adicional de la configuración del kernel, así como herramientas y técnicas para el software en tiempo de ejecución, que están disponibles con más detalle en el informe final.

Reclamo 1: Flujo de registro con exclusión predeterminada

La evaluación concluye que la configuración de la versión auditada del software no conserva, ni exfiltra, PII además del “código del iris” del orb. Trail of Bits recomendó cambios adicionales en el endurecimiento de la configuración para mejorar la “defensa en profundidad” del orb y garantizar que futuros cambios en la configuración o el código no introduzcan fugas accidentales (hallazgo TOB-ORB-1). 

Reclamo 2: Flujo de registro con inclusión no predeterminada

En los casos en que los usuarios eligen optar por la custodia de datos, el orb encripta asimétricamente la PII usando la biblioteca libsodium en una construcción de sobre unidireccional* llamada “sealed box.” En el informe final, los auditores afirman “[n]o identificamos ningún lugar donde la PII se persista fuera del SSD del Orb y/o sin encriptar” y concluyen que “una vez que la PII está encriptada, el mecanismo descrito no permite que el Orb la desencripte.”

*El código más reciente no guarda datos en absoluto, independientemente de la opción de custodia de datos, sino que reutiliza este código de encriptación para el paquete de Custodia Personal usando la clave pública del usuario.

Reclamo 3: El Orb no extrae datos adicionales del dispositivo de un usuario

Cuando un usuario interactúa por primera vez con un orb para registrarse, se muestra un código QR en el dispositivo del usuario que es procesado por el orb. En el código relevante, los auditores no identificaron ningún dato o información adicional recopilada del dispositivo del usuario por el orb. La evaluación, sin embargo, destacó posibles problemas de seguridad de la memoria (encontrando TOB-ORB-4 en el informe final) con la biblioteca utilizada para escanear el código QR (ZBar). En respuesta, la biblioteca vulnerable fue reemplazada con una biblioteca de escaneo de códigos de barras pura en Rust, rxing.

Reclamo 4: El código del iris del usuario se maneja de forma segura

Los auditores intentaron validar afirmaciones relacionadas con cómo se maneja y comunica el "código de iris" al backend. Informan que “creemos que el código del iris no se escribe en almacenamiento persistente en el Orb y que se incluye solo en una única solicitud al backend del Orb,” y que “[m]ientras esta configuración se puede mejorar para hacerla más segura (TOB-ORB-10), no debería ser posible para atacantes típicos extraer el código del iris del tráfico de red del Orb; el atacante tendría que tener control de uno de los certificados de confianza.

Conclusión

El informe completo del análisis exhaustivo de Trail of Bits contiene todos los hallazgos individuales y sus remediaciones, junto con análisis adicional de las afirmaciones. 

Esta no fue la primera, ni será la última, evaluación de seguridad de terceros del Orb, y se compartirán informes adicionales con la comunidad a medida que estén disponibles. 

Puedes ayudar a mantener el proyecto de Worldcoin seguro participando en el programa de recompensas por errores de Worldcoin. Información adicional importante sobre el proyecto está disponible en el libro blanco del protocolo Worldcoin.

Descargo de responsabilidad

El contenido anterior solo afirma lo dicho en la fecha indicada. Además, está sujeto a riesgos, incertidumbres y suposiciones, por lo que puede ser incorrecto y cambiar sin previo aviso. Consulta el descargo de responsabilidad completo en nuestros Términos de uso y la información importante para el usuario en nuestra página Riesgos.

La información en este artículo tiene más de 12 meses y puede estar desactualizada. Por favor visita world.org/blog para la información más reciente sobre el proyecto.