Encriptación de datos y hash
Cuando necesitamos brindarle seguridad a ciertos datos de una aplicación es común tener que decidir entre algoritmos simétricos, asimétricos, y hash. Si bien la seguridad de un sistema es muy importante no siempre recibe la atención y dedicación necesaria, para saber si estamos teniendo falencias en nuestro sistema de seguridad podríamos hacernos las siguientespreguntas:
¿Se esta almacenando la información critica de forma segura?
¿Qué entendemos por seguro?
Si se esta encriptando ¿Qué algoritmo se esta utilizando?
¿Se permite la desencriptación datos que no deberían desencriptarse?
¿Cómo esta realizando la encriptación?
¿Dónde están almacenadas la/las llaves?
¿Con que frecuencia se cambian las llaves?
¿Con que criterio se definen las nuevasllaves?
Definición de algoritmos
Existen distintos tipos de algoritmos los denominados de encriptación y los de transformación. Los algoritmos de trasformación son aquellos que cambian de cierta forma un texto o información haciendo creer que es encriptado, esto es considerado una mala práctica. Los algoritmos de encriptación utilizan un concepto denominado llave, el cual es una serie de caracteresde determinado largo que se utiliza para encriptar y desencriptar la información que se desea proteger. La longitud de la llave depende del algoritmo utilizado, a su vez existen dos tipos de llaves las privadas y las publicas. Los algoritmos que podemos utilizar son: Encriptación simétrica, Encriptación asimétrica y Hash de información.
Escenario “Encriptación Simétrica”: Es necesario almacenarinformación crítica que deberá poder descifrarse, y una entidad realizará todo el proceso. Nadie mas tendrá acceso a la llave con la que se encriptará y desencriptará la información.
Escenario “Encriptación Asimétrica”: Es necesario recibir información critica que se desencriptará posteriormente, pero la entidad que la envié debe poder encriptarla libremente pero no desencriptarla. Dejando así unallave pública para que encripten y una llave privada para la desencriptación.
Escenario “Hash de Información”: Es necesario almacenar o enviar información critica de forma segura, esta no requerirá ser desencriptada para su validación.
Malas Prácticas
Es común que algunos sistemas utilicen un XOR o desplazamientos de bytes, produciendo un efecto de encriptado, aunque no es así. Parademostrar esto a continuación se utilizará una imagen en la cual se verá como queda una imagen aplicándole un XOR y un desplazamiento de bytes.
Ejemplo 1
Ejemplo Código 1
Este “algoritmo” aplica XOR a un arreglo de bytes. Para aplicarlo sobre un texto hay que realizar las transformaciones de bytes a texto y viceversa. Un XOR corresponde al resultado de la comparación bit a bit de dos bytes. Comose puede ver un algoritmo tan lineal no nos brinda seguridad, con lo cual no debería utilizarse para proteger información. Cabe aclarar que XOR es muy útil en otros contextos.
Encriptación Simétrica
Como ya fue mencionado la encriptación simétrica es aquella que utiliza una misma clave para cifrar y descifrar mensajes. Si bien es mucho mejor que la transformación por XOR, la encriptaciónsimétrica tiene sus propios inconvenientes. Sin embargo aquí ya estamos hablando de seguridad real. Podemos encontrar los siguientes algoritmos, algunos más seguros que otros:
DES (Digital Encryption Standart)
Creado en 1975 con ayuda de la NSA (National Security Agency); en 1982 se convirtió en un estándar. Utiliza una llave de 56 bit. En 1999 logro ser violada en menos de 24 horas por un servidordedicado a esto. Esto lo califico con un algoritmo inseguro y con falencias reconocidas.
3DES (Three DES o Triple DES)
Antes de ser quebrado el DES, ya se trabajaba en un nuevo algoritmo basado en el anterior. Este funciona aplicando tres veces el proceso con tres llaves diferentes de 56 bit. La importancia de esto es que si alguien puede descifrar una llave, es casi imposible descifrar las...
Regístrate para leer el documento completo.