Estoy estudiando para CISSP y sé que preguntarán qué tipo de cifrado usar en diferentes situaciones. ¿Existe tal lista o hay una regla general para usar?
Creo que, en general, deberá comprender la diferencia entre el cifrado simétrico y el asimétrico. Los algoritmos simétricos son más rápidos y más fuertes por bit de longitud de clave que los algoritmos asimétricos. Pero los algoritmos simétricos requieren una clave precompartida y los algoritmos asimétricos no. Por lo tanto, en situaciones en las que se requiera fuerza y velocidad, y antes de poder compartir una clave de forma segura, se pueden usar sistemas de cifrado simétricos como AES.
En la práctica, los hashes criptográficos, el cifrado simétrico y el asimétrico se combinan para proporcionar una solución más completa. Por ejemplo, el cifrado asimétrico se puede utilizar para intercambiar las claves del cifrado simétrico. Así es como funciona Secure Sockets Layer (SSL).
El razonamiento general se ve así:
Tenemos algunos datos confidenciales que deben transformarse para preservar su confidencialidad. ¿Necesita ser transformado de nuevo? Si no, este es un caso para el hashing , no el cifrado (como en "almacenamiento de contraseñas": no desea recuperar la contraseña, solo desea verificar que una contraseña determinada coincida con la que estaba almacenado). El hashing de la contraseña a veces se denomina "cifrado" (eso es incorrecto, pero está muy extendido).
Suponiendo que necesitamos realizar un cifrado real, ¿las personas que realizan el cifrado serán la misma entidad (moralmente) que las personas que realizan el descifrado ? Si ambas son la misma entidad (por ejemplo, usted cifra un archivo para que usted pueda recuperarlo más adelante), entonces eso es cifrado simétrico (el cifrado y el descifrado utilizan la misma clave). De lo contrario, eso es cifrado asimétrico (caso típico: correos electrónicos cifrados: cifrado por el remitente, descifrado por el destinatario, que es otra persona ).
Si está realizando un cifrado simétrico, use AES , pero hágalo en un modo adecuado como EAX , que garantiza la confidencialidad y la integridad. Hay otros algoritmos de encriptación, algunos de los cuales proporcionan un mejor rendimiento en algunas situaciones, pero se necesita algo de ingeniería creativa para encontrar una situación en la que la velocidad de AES no sea más que adecuada. No contamine el diseño de seguridad con preocupaciones no demostradas sobre el rendimiento.
Si realiza el cifrado asimétrico, probablemente necesitará usar cifrado híbrido : cifre asimétricamente una clave aleatoria (un grupo de bytes), que luego utiliza para Cifrado simétrico sobre los datos reales. Los algoritmos de encriptación asimétrica (como RSA ) no manejan datos en masa; algunos de ellos en realidad no te permiten elegir los datos que cifras (estos son algoritmos de intercambio de claves como Diffie-Hellman ).
Y, por supuesto, no lo hagas tú mismo . Los algoritmos criptográficos son bestias sensibles; Es fácil equivocarse al ensamblarlos en protocolos. Debes confiar en los protocolos existentes tanto como sea posible. Por ejemplo, usted no cifra un correo electrónico; utiliza S / MIME o OpenPGP , que se encargará de aplicar el cifrado de manera adecuada.
Está preguntando cómo sabe qué "tipo de cifrado" debe aplicarse en una situación determinada. Esto podría significar una de dos cosas.
Si desea saber cómo aplicar la criptografía como ingeniero, necesita tener un conocimiento profundo de varios algoritmos, protocolos y ataques. Si ese es su objetivo, él Manual de criptografía aplicada ( HAC ) es un recurso único y crucial. Este es un libro técnico destinado a lectores con cierta formación en informática, y su cobertura del área es inigualable en amplitud y detalle. Sin embargo, también está algo desactualizado, como tienden a ser los libros sobre criptografía. En esa nota, también necesitarías ponerte al día consultando las revistas relacionadas con la criptografía y trabajar en elíptica criptografía de curva (ECC) en los años intermedios desde su publicación, y continuaremos siguiendo estas cosas en el futuro.
Sin embargo, ya que estás estudiando para un CISSP, sospecho que quieres una vista de nivel superior. Tenga en cuenta que seguir este camino no lo capacitará para aplicar la criptografía en un nivel de ingeniería. Lo apoyará en la especificación de alto nivel de productos y tecnologías, que es lo que tienden a hacer los CISSP, pero tendrá que adquirir (o trabajar con alguien que tenga) un conocimiento más profundo para diseñar, verificar y probar la seguridad de sus empleados. crypto Si este es su objetivo, hay todo tipo de guías de estudio de CISSP, y también el famoso Criptografía aplicada de Bruce Schneier, que ofrece una encuesta decente de algoritmos y sus aplicaciones particulares pero poco en el camino de la teoría. También hay Cryptography Engineering , que es una reducción clásica de Schneier del perfil de HAC en un libro que se lee como un artículo de InfoWorld de principio a fin. .
Sería negligente no dar la advertencia habitual sobre el crypto de aceite de serpiente. Elija productos de proyectos de código abierto altamente establecidos o proveedores especializados en seguridad y criptografía. La criptografía de ingeniería no es una habilidad común, o algo en lo que hay que incursionar. Incluso los expertos a menudo no lo hacen bien.
Lea otras preguntas en las etiquetas hash encryption