¿Puedo crear mi propio administrador de contraseñas?

Bueno, tal vez puedas, pero sé que ciertamente no puedo. Al menos no por mi cuenta. Lo intenté (hace mucho tiempo), pero terminé dándome cuenta de que lo haría mucho mejor usando una herramienta desarrollada con el tiempo por un equipo de personas. Finalmente conseguí un trabajo trabajando con ellos. [Divulgación: soy el principal defensor contra las artes oscuras en AgileBits, los creadores de 1Password.]

Contraseñas no administradas

El esquema particular que describe casi seguramente no funcionará para usted porque el archivo de texto será demasiado difícil de mantener incluso si obtiene la seguridad correcta (más sobre eso más adelante). No se adapta al uso diario con la cantidad de sitios y servicios diferentes para los que las personas necesitan contraseñas. Como consecuencia, se encontrará sin utilizar su sistema o simplemente reutilizando un montón de contraseñas diferentes.

Lo harás mejor que la persona que reutiliza solo tres contraseñas. Puede terminar con seis o incluso diez, pero su esquema no lo ayuda a administrar las contraseñas; solo te ayuda a almacenar un montón de ellos de forma segura.

Protección contra phishing

La mayoría de los administradores de contraseñas tienen formas de integrarse con los navegadores web. Esto no solo hace que sea mucho más agradable de usar, sino que ofrece una protección sustancial contra el phishing. Un buen administrador de contraseñas no completará una contraseña que tiene para PayPal.com en PayPa1.com (letra L versus dígito uno).

La integración del navegador web también hace más. Le facilita agregar contraseñas para los sitios que usa en su administrador de contraseñas y lo hace menos vulnerable a los rastreadores del portapapeles.

Alguna cripto

Dijiste que querías usar AES-256, pero no dijiste qué modo de bloque usarías. ¿Sabes cómo considerar cuál es el más adecuado para tus necesidades? Y todos los modos de cifrado de bloques decentes necesitan nonces o vectores de inicialización. ¿Sabes cómo generarlos y usarlos de manera segura? ¿Realiza verificaciones de integridad criptográfica en sus datos?

¿Qué pasa con su función de derivación de clave? La forma en que obtiene su contraseña maestra a su clave de cifrado es algo que está lleno de sutiles dificultades que incluso los expertos pueden equivocarse [1]. ¿Qué defensas ofrece su KDF en términos de adivinación automática de su contraseña maestra?

Si no reconoce que este tipo de decisiones juegan un papel mucho más importante en la seguridad de su sistema que la elección de AES-128 o AES-256 [2], entonces no creo que esté en condiciones de diseñar un Administrador de contraseña segura. (Eso está bien. No todos en el planeta necesitan saber todo este tipo de cosas; pero las personas que crean administradores de contraseñas realmente necesitan saberlo).

Archivos temporales

Si solo encripta un archivo de texto que abre en un editor de texto una vez descifrado, ¿puede estar seguro de que sus datos descifrados no se escriben en archivos temporales? Tener un montón de archivos como `descrypted-passwords.txt ~` por ahí no es realmente algo que quieras.

Sincronización

Probablemente esté imaginando que simplemente cifraría su archivo y luego lo sincronizaría utilizando algún servicio seguro de sincronización de archivos. Eso funcionará para usted siempre que el número de registros que tenga en él sea pequeño. Pero debido a que debe volver a cifrar todo el archivo cada vez que realice un cambio, encontrará que perderá los cambios porque crea un sistema para el cual la resolución de conflictos es extremadamente difícil.

Darle una oportunidad

Estoy en el negocio de hacer (y vender) un administrador de contraseñas. Así que debes tener eso en cuenta al evaluar mi respuesta aquí. Pero creo que si lo intentas después de unos meses, al menos tengo razón sobre mi primer punto. Si sigues así y estudias el tipo de cosas que los desarrolladores de administradores de contraseñas han analizado, creo que te convencerás de mis otros puntos.

Notas al pie

[1] En hashcat y contraseñas maestras fuertes como tu mejor protección

[2] Adivina por qué nos estamos moviendo a claves AES de 256 bits

¿Puedo crear mi propio administrador de contraseñas?

si solo creo un archivo, encriptado con AES 256 (usando una contraseña segura), entonces dentro de ese archivo creo un documento de texto y encripto mi texto con AES 256 con una contraseña diferente, ¿estarían seguras mis contraseñas?

Nadie te impide reinventar el neumático desgastado, pero “poner una lima dentro de otra” no tiene ningún sentido. Si ese es su punto de partida, no es probable que llegue lejos, a menos que el primer archivo sea en realidad un archivo ZIP o algo similar.

Si está realmente empeñado en esto, le sugiero que mire el código de un administrador de contraseñas de código abierto existente, para comprender qué implica realmente construir un administrador de contraseñas a prueba de balas, tanto desde el cifrado como desde el cifrado. punto de vista de los factores humanos. Personalmente uso pass, y entre otras cosas, no me pide dos contraseñas solo para obtener una contraseña, y no pone todos mis huevos cifrados en un archivo que podría estar dañado o decir adiós en cualquier momento .

Al final, puede decidir que su proyecto es demasiado trabajo para muy poca ganancia, pero incluso si decide continuar con su plan, educarse con los productos existentes lo ayudará (con suerte) a evitar este escenario:

Si. Aquí está el tutorial básico.

Pasos a seguir:

  1. Elija un hash algo fácilmente utilizado por el idioma y el IDE de su elección.
  2. Úselo para cambiar su contraseña maestra. (también puede crear las funciones de agregar, actualizar, restablecer contraseña maestra aquí; también puede agregar autenticación de 2 factores con el autenticador de Google)
  3. Almacene el hash para su verificación. Incluso si alguien tiene su contraseña, no rompería el hash a la inversa.
  4. Cree una tabla de registro con los campos de portal, nombre de usuario y contraseña.
  5. Para cada registro que agregue, genere una contraseña aleatoria (8 caracteres o más) usando una combinación de mayúsculas, minúsculas, números y símbolos (@ funciona en la mayoría de los portales)
  6. Asegúrese de no actualizar un registro existente para el mismo. Por seguridad, solo use las funciones de agregar y eliminar. (dificulte la eliminación con múltiples confirmaciones y requiera una contraseña maestra)
  7. Cifre el archivo de registros. (diferente del hash, ya que lo descifrará para usar, por ejemplo, multiplique un número por 5 para cifrar, divida por 5 para descifrar)
  8. Use las contraseñas aleatorias en sus inicios de sesión. Estás listo.
  9. (Opcional) Puede sincronizar su archivo de registros cifrados con Google Drive para permitirle usar el archivo en múltiples dispositivos.

Puntos para recordar:

  • Puede encontrar tutoriales de todos estos pasos en línea.
  • Puedes usar mit’s block language ide en windows o sketchware en android para convertirlo en una aplicación de android.
  • Pruebe su aplicación exhaustivamente antes de usarla en inicios de sesión reales. Desde que lo hizo usted mismo, no hay recuperación o soporte al cliente al que recurrir.

También puede pasar por conocidos administradores de contraseñas de código abierto. El código para estos pasa por una extensa revisión por parte de la comunidad para descubrir intenciones maliciosas.

Rob Dunham, gracias por A2A.

Absolutamente sí, y tampoco confío en ningún servicio de administrador de contraseñas.

Por favor, eche un vistazo a PasswordMaker.

No es un servicio, es un software pequeño, de código abierto, es omnipresente (se ejecuta en todas partes) y puede obtener algo de inspiración.

Se lo recomendamos a todos.

Improbable.

En primer lugar, lo que está describiendo no es un administrador de contraseñas, es un documento protegido.

Un administrador de contraseñas inserta las contraseñas por usted, las captura, las almacena, las reproduce, etc. Es mucho más de lo que usted describe.

Sin saber qué tipo de habilidades de programación tiene, y dado que realmente no comprende lo que hace un administrador de contraseñas, es poco probable que pueda crear una.

Aquí hay un buen video corto sobre administradores de contraseñas.

He aquí por qué deberías dejar de memorizar tus contraseñas

Su solución propuesta es esencialmente lo mismo que hace un administrador de contraseñas.

Si amigo! Echa un vistazo a la página de Github de Encryptr … desde spideroak, su modelo completo es, creo, algo que agradecería … vale la pena buscar en su sitio y ver su proceso …