Seleccione todos los autobuses. Haga clic en bicicletas. ¿Esta foto tiene semáforos? Por ridículas que sean estas preguntas, es casi seguro que haya visto una recientemente. Son una forma de que los servicios en línea separen a los humanos de los bots, y se llaman CAPTCHA . Los CAPTCHA fortalecen la seguridad de los servicios en línea. Pero mientras hacen eso, hay un costo muy real asociado con ellos.
Según nuestros datos, un usuario tarda en promedio 32 segundos en completar un desafío CAPTCHA. Hay 4.600 millones de usuarios de Internet en todo el mundo. Suponemos que un usuario de Internet típico ve aproximadamente un CAPTCHA cada 10 días.
Esta matemática muy simple del reverso del sobre equivale a algo del orden de 500 años humanos desperdiciados todos los días, solo para que demostremos nuestra humanidad.
Hoy, estamos lanzando un experimento para acabar con esta locura. Queremos deshacernos de los CAPTCHA por completo. La idea es bastante simple: un ser humano real debería poder tocar o mirar su dispositivo para demostrar que es humano, sin revelar su identidad. ¡Queremos que puedas demostrar que eres humano sin revelar qué humano eres! ¿Puede preguntar si esto es posible? ¡Y la respuesta es sí! Comenzamos con llaves USB confiables (como YubiKey ) que han existido por un tiempo, pero cada vez más los teléfonos y computadoras vienen equipados con esta capacidad de forma predeterminada.
Hoy marca el comienzo del fin de las bocas de incendio, los cruces peatonales y los semáforos en Internet.
¿Por qué CAPTCHA?
En muchos casos, las empresas necesitan una forma de saber si un usuario en línea es humano o no. Por lo general, esas razones se relacionan con la seguridad o el abuso de un servicio en línea. A principios de siglo, los CAPTCHA se crearon para hacer precisamente eso. El primero se desarrolló en 1997, y el término ("Prueba pública de Turing completamente automatizada para diferenciar a las computadoras y a los humanos") fue acuñado en 2003 por Luis von Ahn, Manuel Blum, Nicholas J. Hopper y John Langford.
Por su propia naturaleza, la naturaleza desafío-respuesta de los CAPTCHA debe automatizarse: para que puedan escalar tanto a los humanos como a los bots que necesitan atrapar.
¿Por qué deshacerse de los CAPTCHA?
En pocas palabras: todos los odiamos.
Lo mejor que hemos podido hacer hasta la fecha ha sido minimizarlos. Por ejemplo, en Cloudflare, hemos mejorado continuamente nuestra solución de gestión de bots para ser lo más inteligente posible sobre cuándo entregar un CAPTCHA al usuario. Sin embargo, a lo largo de los años, la web pasó de simples CAPTCHA basados en el reconocimiento de texto contra fondos a OCR de libros antiguos para identificar objetos a partir de imágenes a medida que la IA ha mejorado (consulte el artículo de Google sobre Street Numbers ). Esto crea algunos problemas reales para los usuarios humanos de Internet:
Productividad: se pierde tiempo, al igual que concentrarse en la tarea en cuestión, y a menudo a cambio de cierta frustración.
Accesibilidad: Se asume que los usuarios tienen las capacidades físicas y cognitivas necesarias para resolver las pruebas, lo que puede no ser el caso. Una discapacidad visual, por ejemplo, puede hacer que sea imposible realizar una tarea de resolución de CAPTCHA.
Conocimiento cultural: Las personas en el planeta que han visto una boca de incendios en los EE. UU. Son una minoría, al igual que el número que habla inglés. Los taxis son amarillos en la ciudad de Nueva York y negros en Londres; diablos, los 'taxis' son solo taxis en algunos lugares y los 'taxis' en todos los demás.
Interacciones en dispositivos móviles: los teléfonos y los dispositivos móviles son el medio principal, y en la mayoría de los casos el único, de acceso a Internet en una gran parte del mundo. Los CAPTCHA ejercen presión sobre sus planes de datos y el uso de la batería, además de ser más difíciles en pantallas pequeñas.
De hecho, el World Wide Web Consortium (W3C) trabajó en varios borradores, ya en 2003, señalando la inaccesibilidad de los CAPTCHA.
Y esto es solo desde el lado del usuario . Infligir todos estos costos a los usuarios también tiene costos muy reales para las empresas. Existe una razón por la que las empresas dedican tanto tiempo a optimizar el rendimiento y el diseño de sus sitios web y aplicaciones. Ese trabajo evita que los usuarios reboten cuando desea que se registren. Evita que los carritos de la compra se abandonen cuando desea que terminen en la caja. En general, desea evitar que los clientes se sientan frustrados y simplemente no regresen.
Los CAPTCHA son negocios que efectivamente ponen fricciones frente a sus usuarios y, como le dirá cualquiera que haya administrado un negocio en línea de alto rendimiento, no es algo que desee hacer a menos que no tenga otra opción.
Comenzamos a abordar estos problemas cuando pasamos de Google reCAPTCHA a hCAPTCHA. Hoy vamos más lejos.
CAPTCHA sin imagen: atestación criptográfica de personalidad
Las llaves de seguridad de hardware son dispositivos con un secreto incrustado que se pueden conectar a su computadora o teléfono
Desde la perspectiva del usuario, una atestación criptográfica de personalidad funciona de la siguiente manera:
El usuario accede a un sitio web protegido por atestación criptográfica de personalidad, como cloudflarechallenge.com .
Cloudflare es un desafío.
El usuario hace clic en Soy humano (beta) y se le solicita un dispositivo de seguridad.
El usuario decide utilizar una llave de seguridad de hardware.
El usuario conecta el dispositivo a su computadora o lo toca en su teléfono para la firma inalámbrica (usando NFC).
Se envía una atestación criptográfica a Cloudflare, que le permite al usuario entrar tras la verificación de la prueba de presencia del usuario .
Completar este flujo lleva cinco segundos. Más importante aún, este desafío protege la privacidad de los usuarios, ya que la certificación no está vinculada de forma exclusiva al dispositivo del usuario. Todos los fabricantes de dispositivos en los que confía Cloudflare forman parte de la Alianza FIDO. Como tal, cada llave de hardware comparte su identificador con otras llaves fabricadas en el mismo lote. Desde la perspectiva de Cloudflare, su clave se parece a todas las demás claves del lote.
Se requieren como máximo tres clics para completar una Atestación criptográfica de personalidad. No hay bucle, donde se le pide al usuario que haga clic en los autobuses 10 veces seguidas.
Si bien existe una variedad de claves de seguridad de hardware, nuestra implementación inicial se limita a un conjunto de claves USB y NFC que están certificadas por la alianza FIDO y no tienen problemas de seguridad conocidos según el servicio de metadatos FIDO (MDS). Nuestra demostración solo incluye soporte para YubiKeys, que tuvimos la oportunidad de usar y probar; Claves HyperFIDO; y teclas Thetis FIDO U2F.
“Impulsar estándares de autenticación abiertos como WebAuthn ha sido durante mucho tiempo el corazón de la misión de Yubico de brindar una seguridad poderosa con una experiencia de usuario agradable”, dijo Christopher Harrell, Director de Tecnología de Yubico. “Al ofrecer una alternativa CAPTCHA a través de un solo toque respaldado por hardware YubiKey y criptografía de clave pública, el experimento de atestación criptográfica de personalidad de Cloudflare podría ayudar a reducir aún más la carga cognitiva sobre los usuarios cuando interactúan con sitios bajo tensión o ataque. Espero que este experimento permita a las personas lograr sus objetivos con una mínima fricción y una gran privacidad, y que los resultados muestren que vale la pena que otros sitios consideren el uso de la seguridad de hardware para algo más que autenticación ".
¿Como funciona?
La Atestación criptográfica de personalidad se basa en la Atestación de autenticación web (WebAuthn) . Esta es una API que ha sido estandarizada en el W3C y ya está implementada en la mayoría de los navegadores web y sistemas operativos modernos. Su objetivo es proporcionar una interfaz estándar para autenticar a los usuarios en la web y utilizar la capacidad de criptografía de sus dispositivos.
A medida que aumenta la necesidad de una seguridad más sólida con una usabilidad mejorada, imaginamos que aumentarán las instancias de implementación de WebAuthn.
Suponiendo que está utilizando un dispositivo de hardware con una configuración compatible, es posible que se pregunte qué está sucediendo entre bastidores.
El discurso del ascensor
La versión corta es que su dispositivo tiene un módulo seguro integrado que contiene un secreto exclusivo sellado por su fabricante. El módulo de seguridad es capaz de demostrar que posee tal secreto sin revelarlo. Cloudflare le solicita pruebas y verifica que su fabricante sea legítimo.
La explicación técnica
La versión más larga es que esta verificación involucra criptografía de clave pública y certificados digitales.
La criptografía de clave pública proporciona una forma de producir firmas digitales imposibles de falsificar. Un usuario genera una clave de firma que puede firmar mensajes y una clave de verificación que puede ser utilizada por cualquier persona para verificar que un mensaje es auténtico. Esto es similar a un anillo de sello , donde la impresión del anillo es la firma y el anillo en sí es la clave de firma.
Los esquemas de firma se utilizan ampliamente para demostrar la autenticidad. En este momento, su navegador ha verificado que el servidor que dice ser “blog.cloudflare.com” es legítimo al verificar una firma hecha por alguien que tiene una clave de firma asociada con “blog.cloudflare.com”. Para demostrar que la clave de verificación es legítima, el servidor proporciona un certificado que vincula la clave de verificación a "blog.cloudflare.com", firmado por otra clave de verificación en otro certificado. Esta cadena llega hasta un certificado raíz de una autoridad de certificación integrada en su navegador.
Tomemos otro ejemplo. Alice posee una computadora portátil con un módulo seguro integrado. Este módulo contiene una clave de firma, sk_a. Alice dice que ayer le envió una carta de amor a Bob. Sin embargo, Bob sospecha. A pesar de la carta que dice "Hola Bob, soy Alice", a Bob le gustaría estar seguro de que esta carta proviene de Alice. Para hacerlo, Bob le pide a Alice que proporcione su firma para el siguiente mensaje "musical-lab-ground". Dado que Bob elige el mensaje, si Alice puede proporcionar una firma asociada con su clave de verificación (pk_a), Bob estaría convencido de que la carta de amor es de Alice. Alice proporciona la firma, sk_a ("suelo-laboratorio-musical"). Bob confirma que sk_a ("musical-lab-ground") está asociado con pk_a. Ahora puede participar de forma segura en su relación de criptógrafo.
Pensando en la atestación criptográfica de personalidad, ahora sabe que su clave de hardware incluye una clave de firma. Sin embargo, Cloudflare no conoce ni puede conocer las claves de firma de todos los usuarios de Internet. Para paliar este problema, Cloudflare solicita un tipo diferente de prueba. Cuando se le pregunta si es un ser humano, le pedimos que demuestre que tiene el control de una clave pública firmada por un fabricante de confianza. Al enviar dispositivos con un módulo seguro, los fabricantes firman la clave pública de atestación asociada con un certificado digital.
Los certificados digitales generalmente contienen una clave pública, información sobre la organización para la que están aprovisionados, un período de validez, el uso permitido y una firma de una autoridad de certificación que se asegura de que el certificado sea legítimo. Permiten asociar metadatos con una clave pública y, por tanto, proporcionan información sobre el emisor de una firma.
Entonces, cuando Cloudflare le pide que proporcione una firma, verifica que su clave pública haya sido firmada por la clave pública de un fabricante. Dado que los fabricantes tienen varios niveles de certificados, su dispositivo proporciona una cadena de certificados que Cloudflare puede verificar. Cada eslabón de la cadena está firmado por su predecesor y firma por su sucesor. Cloudflare confía en el certificado raíz de los fabricantes. Debido a que sus números son limitados, tenemos la capacidad de verificarlos manualmente.
Privacidad primero
Diseñar un desafío para pedir a los usuarios que demuestren que tienen el control de una clave de un determinado fabricante conlleva un desafío de privacidad y seguridad.
Las propiedades de privacidad de la Declaración criptográfica de personalidad se resumen en la siguiente tabla.
Certificación sin recopilar datos biométricos
El objetivo de este proyecto: queremos saber que eres humano. Pero no nos interesa qué humano eres.
Afortunadamente, la API de WebAuthn nos ayuda mucho a solucionar este problema. No es que lo queramos, pero la API de WebAuthn evita la recopilación de datos biométricos, como una huella digital. Cuando su dispositivo solicita una autenticación biométrica, como a través de un sensor de huellas dactilares, todo sucede localmente. La verificación está destinada a desbloquear el módulo seguro de su dispositivo, que proporciona una firma asociada con su plataforma.
Para nuestro desafío, aprovechamos el proceso de registro de WebAuthn . Ha sido diseñado para realizar múltiples autenticaciones, para las que no tenemos ningún uso. Por lo tanto, asignamos el mismo valor constante al campo de nombre de usuario requerido. Protege a los usuarios de la desanonimización.
Sin trabajo oculto
Un uso común de CAPTCHA es etiquetar conjuntos de datos que AI tiene dificultades para identificar. Esto podría ser para libros, números de calles o bocas de incendio. Si bien esto es útil para la ciencia, también se ha utilizado como una forma para que las empresas aprovechen la capacidad de reconocimiento humano para obtener ganancias comerciales sin el conocimiento de sus usuarios.
Con la Atestación Criptográfica de Persona, esto no sucede. Tenemos más flexibilidad para diseñar el flujo de usuarios, ya que ya no estamos limitados por el modelo de desafío CAPTCHA.
Qué está haciendo Cloudflare para impulsar la privacidad aún más
Si bien la Atestación criptográfica de personalidad tiene muchas ventajas en términos de privacidad, no es perfecta. Cloudflare aún necesita conocer a su fabricante para permitirle ingresar. Como WebAuthn funciona con cualquier certificado, debemos asegurarnos de que Cloudflare reciba certificados de claves de hardware no manipuladas. Preferiríamos no tener esa información, preservando aún más su privacidad.
Hemos trabajado en estándares de privacidad en el pasado, liderando los esfuerzos con Privacy Pass, por ejemplo. Privacy Pass le permite resolver un desafío una vez y proporcionar una prueba de que lo aprobó, lo que significa que no tiene que resolver varios CAPTCHA. Mejoró enormemente la experiencia de usuario de los usuarios de VPN, que enfrentan más desafíos que otros usuarios de Internet.
Para la atestación criptográfica de personalidad, profundizamos en un campo emergente en criptografía llamado pruebas de conocimiento cero (prueba ZK). Permite a nuestros usuarios demostrar que su fabricante es parte de un conjunto de fabricantes en los que confía Cloudflare. Con una prueba ZK, los dispositivos de un solo fabricante se vuelven indistinguibles entre sí, así como de los dispositivos de otros fabricantes. Este nuevo sistema requiere más detalles técnicos y merece una publicación de blog dedicada. Manténganse al tanto.
Una búsqueda sin fin
Diseñar un desafío destinado a proteger millones de propiedades de Internet no es tarea fácil. En la configuración actual, creemos que la atestación criptográfica de personalidad ofrece sólidas garantías de seguridad y usabilidad en comparación con los desafíos tradicionales de CAPTCHA. Durante un estudio preliminar de usuarios, los usuarios indicaron una fuerte preferencia por tocar su tecla de hardware antes que hacer clic en las imágenes. Sin embargo, sabemos que se trata de un sistema nuevo con margen de mejora.
Este experimento estará disponible de forma limitada en las regiones de habla inglesa. Esto nos permite tener diversidad en el grupo de usuarios y probar este proceso en varias ubicaciones. Sin embargo, reconocemos que se trata de una cobertura insuficiente y tenemos la intención de realizar más pruebas. Si tiene necesidades específicas, comuníquese con nosotros.
Otro tema que vigilamos de cerca es la seguridad. La seguridad de este desafío depende del hardware subyacente proporcionado por fabricantes confiables. Tenemos confianza en que están asegurados. Si ocurriera alguna infracción, podríamos desautorizar rápidamente las claves públicas de los fabricantes en varios niveles de granularidad.
También tenemos que considerar la posibilidad de enfrentarnos a sistemas automatizados de pulsación de botones. Un pájaro bebedor capaz de presionar el sensor táctil capacitivo podría pasar la Atestación criptográfica de personalidad. En el mejor de los casos, la tasa de resolución de aves coincide con el tiempo que tarda el hardware en generar una certificación. Con nuestro conjunto actual de fabricantes de confianza, esto sería más lento que la tasa de resolución de los servicios profesionales de resolución de CAPTCHA, al tiempo que permitiría a los usuarios legítimos pasar con certeza. Además, las mitigaciones de Cloudflare existentes permanecerían en su lugar, protegiendo de manera eficiente las propiedades de Internet.
Ultimas palabras
Para Cloudflare, siempre se trata de: ayudar a construir una mejor Internet. La sola idea de que todos desperdiciamos 500 años al día en Internet, que nadie había revisado los supuestos fundamentales de los CAPTCHA desde el cambio de siglo, nos parecía absurda.
Estamos muy orgullosos del trabajo que hemos realizado aquí para publicar la Declaración criptográfica de personalidad. Este desafío se ha creado con un enfoque centrado en el usuario, al tiempo que se mantiene un alto nivel de seguridad para acceder a las propiedades de Internet que se encuentran detrás de la red global de Cloudflare. Ahora estamos en el proceso de aumentar nuestro desafío de humanidad existente con la Atestación criptográfica de personalidad.
Debería esperar verlo con más frecuencia a medida que pasa el tiempo.
Queremos reconocer el trabajo de otros equipos en Cloudflare. Si bien este trabajo está dirigido por el equipo de investigación, hemos tenido el privilegio de contar con el apoyo de toda la empresa.
Finalmente: estamos emocionados de lograr la desaparición de la boca de incendios en Internet. Ya no es necesario.
Comentarios y errores comunes
Como este es actualmente un proyecto experimental del equipo de investigación de Cloudflare, solo las llaves de seguridad USB o NFC funcionan en la actualidad. Estamos felices por los comentarios y buscaremos agregar otros autenticadores lo antes posible. Si usa un dispositivo no compatible, es probable que reciba un mensaje de error algo difícil de entender en su navegador. En Google Chrome verá:
Thibault Meunier
https://blog.cloudflare.com/introducing-cryptographic-attestation-of-personhood/
Comments