Este es el viaje de 13 años que dio como resultado Neulock , un enfoque diferente para la gestión de contraseñas. Aquí va artículos[0] de artículos.length == 2.
Corría el año 2011. Contagio todavía era material de película; la gente se comunicaba usando caras monocromáticas de garabatos en lugar de los dogos Pepe the Frog y Shiba Inu, y Daenerys Targaryen fue la niña que hizo que el bárbaro Khal Drogo encontrara el amor.
Fue entonces cuando Google Chrome hizo esa oferta por primera vez.
¿Quieres que Google Chrome guarde tu contraseña para este sitio?
¿Guardar esta contraseña? ¿Es eso algo que hacen los navegadores ahora? Vaya, gracias Chrome, ¡es muy conveniente! Ahora que lo pienso, escribo la mayoría de las contraseñas en un navegador web, por lo que este parece un excelente lugar para guardarlas.
Además, ¿qué es lo peor que puede pasar? Chrome es un programa instalado en mi computadora. ¡ Mi computadora! Soy un usuario avanzado experimentado de Debian Linux y ¡en ningún lugar del universo existe un lugar más seguro que mi disco duro!
Claro, Chrome, adelante. Guarde esta contraseña, la siguiente y todas las contraseñas que escriba en sus campos de entrada.
Hasta que compré otra computadora. Después de deshacerme del Windows preinstalado por cualquier distribución de Linux que me apeteciera en ese momento, lo siguiente que debía hacer era instalar Chrome. Aún faltaban seis años para Firefox Quantum, por lo que no había muchas opciones.
¿Inicia sesión con tu cuenta de Google? ¿Seguro Por qué no? Vamos a revisar Facebook o lo que sea, y… oye, ¿recuerdas mi nombre de usuario, Chrome? Muy bien, iniciemos sesión en Facebook. Espera, ¿por qué el campo de contraseña ya está lleno de asteriscos? No, querido Chrome, esto debe ser un error. Acabo de comprar esta computadora y su base de datos local está impecable. Te darás cuenta de tu error una vez que haga clic en el botón de inicio de sesión. Y… ¿estoy dentro?
Fui a comprobar la configuración de Chrome inmediatamente. Lo que vi sólo aumentó mi horror. Todos los sitios web y nombres de usuario que había estado guardando estaban allí, en una lista. Las contraseñas en texto plano estaban a sólo un clic de distancia.
Se habían roto dos expectativas. Lo primero y más importante es que nunca esperé que Chrome cargara mis contraseñas en los servidores de Google sin pedir consentimiento. ¡Me pidieron que guardara mis contraseñas, no que las compartiera!
La segunda expectativa fue una ilusión de mi parte. Me avergüenza. Google es una de las empresas de tecnología más geniales del mundo y se supone que sus ingenieros son genios que hacen lo imposible entre partidos de ping-pong en Googleplex. Pensé que Chrome estaba almacenando mis contraseñas de una manera súper segura y solo recuperaba cada contraseña en el momento adecuado para inyectarla como un ninja en el campo de entrada preciso al que pertenecía. No esperaba verlos todos en texto plano.
Y no fui el único que se sorprendió. Elliott Kember calificó la seguridad de las contraseñas de Chrome como "una locura ". En una discusión posterior, Justin Schuh, jefe de seguridad de Chrome, simplemente le restó importancia de una manera bastante arrogante. Sir Tim Berners-Lee se puso del lado de Kember y llamó al administrador de contraseñas de Chrome " una forma de obtener las contraseñas de tu hermana mayor ".
Después de esta experiencia, nunca conseguí confiar en ningún administrador de contraseñas, aunque sabía que era mejor que inventar contraseñas extrañas en mi estúpida cabeza humana. Pero, como decimos en Brasil, un perro mordido por una serpiente teme incluso a las salchichas. No tiene más sentido en portugués.
Pasé los siguientes diez años vagando por el desierto de la inseguridad de las contraseñas. Anhelaba un mejor administrador de contraseñas, pero todos parecían seguir el mismo principio: agrupar todas sus contraseñas en una "bóveda", cifrarlas con su clave maestra y cargar esta bóveda en sus servidores en la nube. Nunca podría confiar en este modelo. ¿Están implementando cifrado de extremo a extremo, verdad? ¿Existe una puerta trasera de “recuperación de claves” esperando a ser explotada? O tal vez Justin Schuh tenía razón después de todo: sus contraseñas se “recuperan trivialmente” de cualquier aplicación que las almacene, y los intentos de hacer que las contraseñas sean más difíciles de filtrar son “simplemente teatro”. En este sentido, intentar proteger sus contraseñas más allá de confiar en un administrador de contraseñas fue una tarea tonta para principiantes.
En 2019 aterricé en el Departamento de TI del Ministerio de Relaciones Exteriores de Brasil. Allí, seguí al CTO y gurú tecnológico Fabio Cereda . Aprendí mucho de él y me hice cargo después de que se fue. La ciberseguridad siempre estuvo en la agenda, ya que ese Ministerio produjo alrededor del 80% de toda la información clasificada del gobierno federal brasileño y sus operaciones se extendieron a 240 ubicaciones en todos los continentes habitables. Éramos constantemente atacados por las siglas más aterradoras del mundo, por lo que necesitábamos mantener la guardia alta en todo momento. A lo largo de esos años, a través de la exposición constante a problemas en diferentes dominios de la ciberseguridad, comencé a reunir principios para un mejor administrador de contraseñas.
Había un museo de comunicaciones diplomáticas donde trabajaba. Estaba lleno de libros de códigos, máquinas de cifrado de hierro fundido, antenas parabólicas portátiles en maletas, adaptadores TELEX y algunos ejemplares de la infame máquina Crypto AG C-52 . Fue una muestra de un siglo y medio de comunicaciones secretas entre la sede y las embajadas y misiones diplomáticas de Brasil en el exterior. Todos ellos dependían de algún tipo de criptografía para guardar los secretos. Toda esa criptografía ahora está rota.
Si piensas en un administrador de contraseñas, el hecho de que todas las criptomonedas eventualmente se rompan no es aterrador. Digamos que se necesitan, en promedio, 15 años para romper un protocolo criptográfico. Simplemente cambie sus contraseñas cada dos años y estará bien. Un administrador de contraseñas decente debería actualizar su criptografía de vez en cuando para estar siempre a la vanguardia.
Lo aterrador es que es imposible saber si ya se ha roto un protocolo. O peor aún, si fue diseñado con una vulnerabilidad oculta intencional, como fue el caso de la máquina Crypto AG. Las agencias de inteligencia y las organizaciones cibercriminales mantienen sus días cero fuera del radar tanto tiempo como pueden.
Cuanto más veía sistemas de seguridad corporativos de última generación filtrando información secreta, a veces de maneras catastróficamente espectaculares, menos confiaba en el modelo de bóveda empleado por todos los administradores de contraseñas basados en la nube.
Hasta hace muy poco, estas preocupaciones eran meramente teóricas. Como escribió su compañero hackernooner @hossam26644 ,
No hay nada de malo en utilizar el administrador de contraseñas de Google, Microsoft, Apple, 1password, Bitwarden o lo que sea. La gente los ha estado usando durante mucho tiempo y hasta ahora no ha habido ningún problema.
Tenía razón el 25 de julio de 2022. Sin embargo, no confiaba en ninguno de ellos y volvió a tener razón. Un año después, hubo pruebas convincentes de que las notorias filtraciones de LastPass estaban provocando que algunas bóvedas de alto valor se rompieran y la gente perdiera dinero. Más de 150 personas, más de 35 millones de dólares en dinero.
Un error común es pensar que para descifrar una bóveda cifrada, el propio algoritmo AES debería verse comprometido. LastPass nos ha recordado lo fácil que es romper el cifrado. AES se mantiene fuerte, pero LastPass tomó malas decisiones de implementación: requisitos de clave maestra demasiado cortos, muy pocas iteraciones y algunos usuarios se quedaron con bóvedas que eran fácilmente descifradas por fuerza bruta.
Los criptoanalistas gubernamentales conocían demasiado bien el Principio 0. Son algunas de las personas más inteligentes que he conocido, y pocos de ellos invertirían dinero en algo protegido únicamente por criptografía.
Los más cautelosos insistieron en el uso de un One-Time Pad (OTP) para comunicaciones críticamente seguras. De hecho, pusieron este requisito en las normas para la transmisión y almacenamiento de documentos ultrasecretos.
En principio, un cifrado OTP no se puede descifrar. Es una operación XOR simple del texto sin formato (los datos) y un búfer de valores aleatorios de la misma longitud que los datos (la clave OTP). Al volver a aplicar XOR al cifrado con la misma clave, se recupera el texto sin formato.
Aunque es irrompible desde el punto de vista del criptoanálisis, la OTP tiene varios inconvenientes:
Para una organización mundial, suministrar claves OTP a cada oficina es una gran operación logística continua. Peor aún, ¡es el talón de Aquiles de todo el modelo de seguridad! Porque, para que toda la genialidad criptográfica de OTP sea cierta, se necesita una logística perfecta , tanto en tránsito como en reposo.
¿Eve debería interceptar sus claves OTP mientras se dirige al destino? Todas sus comunicaciones a partir de ese momento están comprometidas.
¿Eve debería irrumpir físicamente en su habitación segura y robar su clave OTP? Todas sus comunicaciones a partir de ese momento están comprometidas, y tal vez incluso las anteriores, si las partes utilizadas de la clave no se borraron correctamente de los medios.
Si implementa claves OTP como fragmentos de 1 GB de bytes aleatorios que se consumen a medida que envía información, claramente carece de secreto tanto hacia adelante como hacia atrás.
Al final, la criptografía perfecta es una forma de traspasar la responsabilidad del equipo de ciberseguridad al equipo de seguridad física.
Y un problema similar afecta a los administradores de contraseñas fuera de línea: sacrifican disponibilidad a cambio de confidencialidad, dejándote con un lío logístico que resolver.
Como sabe cualquiera que ejecute una copia local de KeePass , necesita hacer una copia de seguridad de su bóveda. Es mejor que esta copia de seguridad sea externa en caso de que el almacenamiento de su computadora se agote. Debe mantener su copia de seguridad actualizada. Y asegúrese de que nadie tenga acceso a él. Y no los guardes a todos en tu casa, no sea que sean presa de inundaciones e incendios. Y no los subas a Google Drive; de lo contrario, ya no utilizarás un administrador de contraseñas sin conexión. Y…
Un día mi jefe me llamó. Quería compartir un PDF con diez personas del nivel superior. Esta información debería permanecer ante sus ojos sólo durante tres días. Sabía que tenían incentivos para compartir este documento con sus respectivos equipos para tomar ventaja. Este tipo de información debería presentarse en persona, pero por covid. Entonces me pidió que hiciera este PDF imposible de copiar y compartir.
— No se puede, respondí.
Mi jefe era un embajador. Este es el equivalente diplomático de un general. Los embajadores no están acostumbrados a escuchar un “no” como respuesta.
Pacientemente le expliqué que, en informática, cuando le das a alguien permiso de lectura sobre un recurso, implícitamente le das permiso para copiarlo y distribuirlo. Los derechos de acceso a la información no obedecen a derechos legales. Incluso si de alguna manera hiciéramos inconveniente compartir el archivo, podrían simplemente tomar fotografías de sus pantallas con sus teléfonos y compartirlas a través de WhatsApp. Si pueden ver el documento en la pantalla, sus cámaras también pueden hacerlo.
Justin Schuh tenía razón. Si alguien obtiene acceso completo a su computadora (o teléfono), tendrá acceso completo a la información a la que usted, el usuario, puede acceder a través de ese dispositivo. Tiene razón, pero eso no lo excusa por implementar un administrador de contraseñas tan pésimo en Chrome.
Para un administrador de contraseñas, significa que proteger el dispositivo del usuario siempre es fundamental. Si el servidor tiene una fuga, los atacantes aún deben superar el desafío de descifrar las bóvedas. Pero si un pirata informático obtiene la propiedad total de la computadora que ejecuta el cliente del administrador de contraseñas, no hay nada que le impida robar todas las contraseñas.
Esto sucede con bastante frecuencia en la comunidad criptográfica. La usuaria Alice tiene algunas docenas de BTC, lo que la convierte en millonaria. En primer lugar, la engañaron o nunca ocultó su identidad. Mantiene una copia de su frase inicial en un administrador de contraseñas local en su escritorio. “Este no es un administrador de contraseñas en la nube; Estoy a salvo de fugas”, piensa. Los piratas informáticos encuentran una manera de obligarla a instalar una puerta trasera en su computadora. Si son realmente buenos, pueden hacerlo sin la interacción del usuario. A la mañana siguiente, se despierta con la billetera vacía.
A pesar de todo el pesimismo sobre el compromiso de los dispositivos de los usuarios, hay un lado positivo: proteger nuestros propios dispositivos, como usuarios, es algo que está bajo nuestro control. Una fuga de servidor no lo es. Las más de 150 personas que perdieron millones por la fuga del servidor LastPass no asumieron ninguna responsabilidad por las filtraciones ni por la implementación de estándares de cifrado inadecuados por parte de LastPass.
Si el compromiso del dispositivo del usuario es un vector de ataque catastrófico sin importar el modelo de seguridad del administrador de contraseñas, y si nosotros, como usuarios, debemos proteger nuestros dispositivos de todos modos, ¿no sería bueno si este fuera el único vector de ataque? ¿Si pudiéramos crear un administrador de contraseñas en línea donde ningún secreto salga de los dispositivos de los usuarios para que los usuarios no tengan que preocuparse por cosas que están fuera de su control, como la seguridad del servidor y los detalles de implementación de AES?
El autor @hossam26644 continuó en su artículo : "tal vez soy un fanático de la seguridad, pero no quiero confiar mis contraseñas a una entidad, independientemente de sus promesas y/o reputación". Tiene razón otra vez. Se supone que la ciberseguridad debe ser probada y auditable, no basada en la confianza y la reputación.
Los tres principios descritos anteriormente guiaron mi desarrollo de Neulock Password Manager . Me tomó tres años de ideas e iteraciones para llegar a su forma actual: un administrador de contraseñas auditable basado en la nube que logra conocimiento cero por diseño y no mediante cifrado. Las contraseñas se sincronizan entre los dispositivos de los usuarios mediante la nube, pero ningún secreto sale de estos dispositivos. Los compromisos del servidor en la nube no pueden filtrar ningún secreto porque los secretos nunca llegan a la nube.
Los tres años de fabricación de Neulock se documentarán en la Parte II.