¿1Password y KeePass toman medidas adicionales que los hacen más seguros que un archivo de texto cifrado AES-256? Los formatos de base de datos que utilizan parecen innecesariamente complejos para mis propios propósitos.
Lo que es más rápido, un Fiat 500 o un V12 Ferrari engine ? El Fiat 500 seguro es un auto bastante mínimo ... pero al menos tiene ruedas. El motor Ferrari, por muy magnífico que sea, sigue siendo "solo un motor"; Póngalo en una carretera y no será más móvil que una roca. Por lo tanto, la pregunta realmente no tiene sentido.
Y así es el tuyo. AES es un cifrado de bloque, un objeto matemático que solo no logra ningún tipo de seguridad. Productos como 1Password y KeePass utilizan AES y otros algoritmos en construcciones elaboradas que intentan garantizar la confidencialidad y la integridad de la base de datos de contraseñas. En ese sentido, se pueden comparar con "AES" no más que un Fiat 500 es comparable a un motor solitario.
Encriptar incluso un simple archivo de contraseñas, con una contraseña maestra, requiere algo de cuidado. La contraseña maestra se debe convertir en una clave de cifrado; este es el reino de hashing de contraseña y no es < em> simple . Luego, el AES se debe utilizar con un modo de operación , que tiene sus propias reglas (selección IV, relleno ... ). Preferiblemente, se necesita algún tipo de MAC , y la combinación de cifrado simétrico y una MAC es un asunto sutil . Por último, pero no menos importante, cuando cifras y / o descifras un archivo , tiendes a producir archivos temporales que se escribirán en el disco duro, con el contenido claro del archivo. Eliminar archivos no es suficiente para asegurar la destrucción de datos. Descifrar el archivo "en memoria" y nunca dejar que los datos vayan al disco puede ser complicado, especialmente en presencia de memoria virtual .
Todo esto equivale a esta conclusión: si bien un archivo lleno de contraseñas, cifrado con AES, puede ser útil, hay muchos detalles que cuidar, y eso es un trabajo duro. La mayoría de los productos existentes se trata de hacer ese trabajo. Usted puede hacerlo usted mismo, pero no será tan inmediato como juntar algunos scripts basados en OpenSSL.
Luego, los productos como KeePass también proporcionan algunas características adicionales que no deben ser despreciadas; Consulte la lista .
[Divulgación: trabajo para AgileBits, los creadores de 1Password]
Piense en AES como un ladrillo muy fuerte y bien diseñado que todos pueden usar. Pero una casa hecha de tales ladrillos podría ser muy débil y frágil si la arquitectura no se hace bien. Hay muchas formas en que un sistema de administración de contraseñas en casa puede salir mal. Aquí hay algunos:
Encriptar un solo archivo grande significa que cuando se descifra, todos los datos desencriptados residen en la memoria (y pueden ser intercambiados, volcados, etc.). (1La contraseña, en el contrato, descifra solo un elemento a la vez, según sea necesario.)
¿Qué tipo de defensas ofrece un sistema "roll-your-own" contra los crackers de contraseñas automatizadas? ¿Un atacante podrá probar decenas de millones de contraseñas por segundo o solo miles? Las funciones de derivación de claves utilizadas para este propósito son cosas sutiles y difíciles. (Hace poco hice una presentación en PasswordsCon sobre una falla en PBKDF2).
Fuente de aleatoriedad. Varias claves, IVs, sales, nonces tienen requisitos para números aleatorios criptográficamente apropiados. ¿Puede obtener esto en un sistema "roll-your-own"?
El sistema debe ser robusto contra la pérdida de datos. Un solo archivo grande y cifrado es muy frágil con respecto a la corrupción de datos.
Incluso si toma la decisión correcta con respecto a los modos de cifrado, derivación de claves, administración de memoria, etc., ¿puede mantenerse al día con las investigaciones y desarrollos sobre cómo podrían romperse estos sistemas? Nuevamente, con respecto a 1Password, prestamos mucha atención a la literatura criptográfica y al trabajo que se realiza en la comunidad de descifrado de contraseñas.
Es fantástico que todos y cada desarrollador tenga AES y otros primitivos criptográficos fuertes al alcance de sus dedos. Pero desafortunadamente eso no es suficiente para diseñar un sistema fuerte. Estas cosas son mucho más difíciles de lo que uno podría imaginar inicialmente, y es fácil cometer errores.
Idealmente, un desarrollador no debería tener que tener un conocimiento profundo de la criptografía para desarrollar sistemas seguros. Las bibliotecas criptográficas, APIs deberían ser suficientes. Pero todavía no estamos allí. Todavía es más fácil usar mal las herramientas en esas bibliotecas que correctamente.
No quiero desalentar a nadie de intentar y aprender. Simplemente entienda que hay razones para los formatos de datos "demasiado complejos" que se utilizan. Simplemente no pienses que puedes evitar esas complejidades hasta que sepas por qué están allí.
Principalmente organización y usabilidad. AES sigue siendo el cifrado subyacente en ambos, pero no puede hacer cosas como copiar una contraseña temporalmente en la memoria sin haberla mostrado nunca con un simple archivo de texto cifrado.
El objetivo del software como KeePass y 1Password es ayudar con la organización y facilidad de uso y proporcionar una implementación de almacenamiento seguro basada en el tipo de cosas en las que está pensando.
No hay ninguna razón para que "necesites" uno de ellos, pero hacen la vida mucho más sencilla sin sacrificar la seguridad.
Creo que puedes probar este enlace para obtener más información: enlace
La respuesta un poco más larga es que sus datos están encriptados usando AES, el mismo algoritmo de encriptación de vanguardia utilizado como el nacional Estándar en los Estados Unidos. 1Password usa claves de 128 bits para cifrado, lo que significa que llevaría millones de años para una criminal para descifrar sus datos mediante un ataque de fuerza bruta.
Para obtener más información: enlace
Sobre KeePass:
KeePass admite el Estándar de cifrado avanzado (AES, Rijndael) y El algoritmo Twofish para cifrar sus bases de datos de contraseñas. Ambos Se considera que los cifrados son muy seguros. AES por ej. se hizo efectivo como un estándar del gobierno federal de los Estados Unidos y está aprobado por la National Agencia de seguridad (NSA) para información de alto secreto. El completo La base de datos está encriptada, no solo los campos de contraseña. Entonces, tu usuario Los nombres, las notas, etc. también están encriptados. SHA-256 se utiliza como contraseña picadillo. SHA-256 es un hash unidireccional criptográficamente seguro de 256 bits función. Su contraseña maestra es hash usando este algoritmo y su La salida se utiliza como clave para los algoritmos de cifrado. En contraste con muchos otros algoritmos de hash, aún no se conocen ataques contra SHA-256.
Más información: keepass.info/features.html
Lea otras preguntas en las etiquetas passwords password-management aes