Cifrado y autenticación, mecanismos fundamentales para la protección de la información

Debido al crecimiento de las comunicaciones, mucha información importante transita por internet, un medio mundial en el que se comparte información y constantemente hay transferencias de datos. Sin embargo no es un sitio muy seguro, ya que todos tienen acceso a este y si no se tiene el debido cuidado alguien podría obtener información confidencial nuestra, es por eso que existen diferentes mecanismos de seguridad que nos ayudan a proteger nuestra información, como lo son el cifrado (Simétrico y asimétrico) y la autenticación, pero ¿En realidad estos mecanismos protegen nuestra información?, pues la respuesta es sí, resultan muy útiles para asegurar la confidencialidad y genuinidad de la información, sin embargo tu puedes generarte tu propio criterio.
Como ya se mencionó, el cifrado es un mecanismo de seguridad, el cual asegura la confidencialidad del contenido de los menajes por medio de la ocultación de la información gracias a una clave y un algoritmo. Existen dos tipos de cifrado: El cifrado simétrico y el asimétrico.
Cifrado simétrico
 El cifrado simétrico también conocido como cifrado convencional, de clave secreta o de clave única era el único utilizado hasta finales de los 70s, cuando se comenzó a desarrollar el cifrado asimétrico, sin embargo hoy en día de los dos tipos de cifrado que existen, el cifrado simétrico es el más utilizado.
Un cifrado simétrico está formado por 6 componentes: Texto claro, algoritmo de cifrado, clave secreta, texto cifrado y algoritmo de descifrado.
Texto claro: Es el mensaje original o los datos sin cifrar, los cuales serán introducidos en el algoritmo de cifrado.
Algoritmo de cifrado: Es un conjunto de operaciones ordenadas que realizan varias sustituciones en el texto claro, y lo transforman.
Clave secreta: Es una entrada del algoritmo, de la clave dependen todas las sustituciones y transformaciones que se le hagan al texto claro por medio del algoritmo de cifrado.
Texto Cifrado: Es el mensaje ilegible de salida producto de un texto claro que ha pasado por un algoritmo de cifrado. El texto cifrado depende del texto claro y de la clave secreta, es decir, el mismo texto cifrado con distintas claves producirá dos textos cifrados distintos
Algoritmo de descifrado: Es el algoritmo de cifrado aplicado inversamente. Se toma el texto cifrado, se aplica el algoritmo de cifrado a la inversa (con la misma clave), y finalmente se obtiene el texto claro.
Para que un cifrado simétrico sea seguro, el algoritmo utilizado debe ser robusto, es decir, que aun cuando un atacante conociera el algoritmo utilizado, este no pudiera averiguar la clave utilizada. Lo más importante en un cifrado de este tipo es la privacidad de la clave, tanto el emisor como el receptor deben conocer la clave y resguardarla de manera segura. No es necesario que el algoritmo sea secreto, pero la clave sí que debe serlo. Si se conoce el algoritmo y la clave, todos los mensajes son descifrables.
Cifrado asimétrico
El otro tipo de cifrado es el cifrado asimétrico, cifrado de dos claves o de clave pública. En este cifrado el emisor y el receptor utilizan claves diferentes cada uno. Uno utiliza una clave para cifrar y otro utiliza otra clave distinta para descifrar.
El cifrado asimétrico surgió con el fin de darle solución al problema de intercambiar claves privadas en el cifrado simétrico
El cifrado asimétrico está conformado por los mismos componentes que el cifrado simétrico: Texto claro, algoritmo de cifrado, clave, Texto cifrado y algoritmo de descifrado, sólo que a diferencia del algoritmo simétrico, el asimétrico utiliza 2 claves, una privada y una pública.
El emisor del mensaje cifra con la clave pública del receptor, cuando el receptor recibe el mensaje cifrado con la clave pública, éste lo descifra con su clave privada. En pocas palabras, la clave pública del receptor es utilizada para cifrar y la clave privada del receptor es utilizada para descifrar. De esta manera no hay intercambio de claves, cada quien posee su propia clave privada para poder descifrar.
Se le llama clave pública porque más de una persona, aparte de los emisores y receptores, puede conocerla. La clave pública de una persona está relacionada con la clave privada de la misma, es decir, a partir de la clave privada de alguien, se puede calcular su clave pública. Sin embargo la razón por la que en los cifrados asimétricos una clave se puede hacer pública es porque estos utilizan funciones trampa de un solo sentido. Esto significa que la clave pública puede ser calculada fácilmente con la clave privada, sin embargo aplicar el proceso inverso no es tan sencillo, es muy difícil calcular la clave privada a partir de la pública.
Regresando a los cifrados simétricos, los algoritmos más comunes que estos utilizan son los cifradores de bloques, estos procesan el texto claro en bloques de tamaño fijo, y una vez que generan el texto cifrado, el tamaño de este es el mismo que el del texto claro.
DES (Data Encryption Standard)
El algoritmo de cifrado más utilizado de ese tipo es el DES (Data Encryption Standard), en este algoritmo el texto claro tiene una longitud de 64 bits y la clave es de 58, aunque si el texto claro es de una longitud mayor a 64 bits, este se divide en bloques de 64 bit para poder ser procesado. El DES es una variación del cifrado de Feistel. En el DES hay 16 etapas de proceso y en cada etapa se genera 1 subclave que parte de la clave original. El proceso de descifrado en DES es el inverso, es decir, como entrada se utiliza el texto cifrado y se utiliza la última clave, partiendo de esta se utiliza la anterior y así sucesivamente hasta llegar a la clave original y al texto claro.
Para cifrar el texto claro se divide en dos bloques de igual tamaño, al bloque del lado derecho se le aplica la clave con la operación correspondiente, posteriormente a ese resultado se le aplica un xor con el segundo bloque de información (el izquierdo). Una vez realizado esto, el bloque inicial del lado izquierdo se pasa al lado derecho. Este proceso se realiza 16 veces con cada clave, pero en la etapa 16, una vez que se haya realizado el proceso normal, los dos bloques cambian sus posiciones; el derecho se pasa al lado izquierdo y el izquierdo se pasa al lado derecho.
Primeramente se decía que el DES era un algoritmo irrompible y que ante un ataque de fuerza bruta (Se prueban varias claves para ver cuál es la correcta), ya que para esto existen 256 claves posibles, sin embargo en 1998 se probó que el DES no era seguro, la EFF (Electronic Frontier Foundation) anunció que había roto un cifrado en DES con una máquina especial que crearon El “DES cracker”. Además enseñaron como fabricarla. Sin embargo lo que la EFF no contempló es que aumentando la longitud de la clave, un ataque de fuerza bruta resulta inofensivo, aún incluso si se hiciera con la tecnología que se tiene en la actualidad, con una clave de 128 bits, se tardarían 1018 años en romper el cifrado.
Existe una variación del DES, la cual es el 3DES o triple DES. En este algoritmo se utilizan 3 claves y el algoritmo DES original es ejecutado 3 veces. Se toma el texto claro, se cifra con una clave X (siguiendo el algoritmo DES original), posteriormente el texto cifrado generado se descifra con una clave X2 (Se aplica el inverso del DES original), y finalmente se vuelve a cifrar con otra clave Y.
Para descifrar en 3DES, se aplica el mismo procedimiento pero a la inversa: Descifrar, cifrar y descifrar.
El cifrado es un mecanismo de seguridad que protege ante ataques pasivos, pero para protegerse de ataques activos en necesario utilizar el mecanismo de seguridad de autenticación. La autenticación verifica que los contenidos del mensaje no hayan sido modificados, verifica que no haya habido repetición o retraso del mensaje y asegura que sea auténtico, es decir que proceda de la fuente original.
Existen 3 manera de autentificar un mensaje: Por medio de cifrado convencional, sin cifrado y por código.
Si sólo el emisor y el receptor comparten una sola clave es posible realizar la autenticación, ya que el emisor es el único que puede cifrarlo con esa clave y el receptor es el único capaz de descifrar el mensaje. Si el cifrado incluye un código de detección de errores y un sello de tiempo, el receptor puede asegurarse de que el contenido no ha sido modificado y que el mensaje no fue retrasado.
Utilizando el cifrado se posee confidencialidad y autenticidad en los mensajes, sin embargo hay una manera de autentificar un mensaje sin el cifrado, y esta es por medio de una referencia de autentificación que se le añade a cada mensaje. En este caso el mensaje no está cifrado, pero puede ser autentificado, pero ¿Por qué no cifrarlo?, bueno existen algunos casos en los que conviene autentificar mensajes sin cifrarlos, por ejemplo cuando la carga de mensajes en tan grande que no es posible tomarse el tiempo para cifrar cada uno.
Otra manera de autentificar es por medio de un código de autenticación. El emisor y el receptor poseen una clave secreta, la cual es utilizada para calcular el código de autentificación a partir del mensaje y de la clave. El receptor del mensaje realiza el código de autentificación, y si este coincide con el código recibido significa que no ha sido alterado, pero como un atacante no conoce el código ni la clave, si el código calculado no coincide con el enviado, eso significa que el mensaje ha sido alterado.
En conclusión hay varios mecanismos de seguridad que ayudan a proteger los mensajes, aseguran su confidencialidad y su autenticidad, cada mecanismo es distinto, pero ambos tienen un mismo fin, proteger la información, y la aplicación de estos sí resulta útil, más aún si se alternan, es decir, se utiliza el cifrado simétrico y la clave privada se comparte por medio de un cifrado asimétrico, además de que se utiliza la autenticación para hacer más segura la comunicación. El cifrado y la autenticación hacen más segura y confiable la comunicación.
Referencias:
William Stallings;(2004) Fundamentos de seguridad en redes Aplicaciones y Estándares; 2a edición; Editorial Pearson educación; Madrid, España; Páginas 5-15

Comentarios

Entradas más populares de este blog

Algoritmos asimétricos o de Clave pública

Conclusión Principios del manifiesto ágil

Las Tablas Hash