Es un protocolo de autenticación que fué creado por Instituto Tecnológico de Massachusetts (MIT), este protocolo permite a dos equipos identificarse de forma segura dentro de una red insegura, mediante el uso del modelo Cliente - Servidor para evitar ataques de suplantación de identidad principalmente.
Cabe destacar que la palabra kerberos hace referencia a Cerbero el gualdian del Hades de 3 cabezas y esto es así por que de hecho hace la autenticación pasando por un tercero que es confiable, evitando hacer esto directamente, a esto se le llama centro de distribución de claves, que a su vez se divide en 2 partes lógicas, el sevidor de autenticación conocido como "AS", el sevidor emisor de tiquets o "TGS", una vez que se cumple con estos dos requisitos el dispositivo se conecta al servidor de servicio o "SS" para hacer uso de la conexión segura que generó kerberos.
Esquema de funcionamiento de Kerberos
Referencias
MIT. (2015). Kerberos: The Network Authentication Protocol. 16/11/2015, de MIT Sitio web: http://web.mit.edu/kerberos/
Microsoft TechNet. (2003). What Is Kerberos Authentication?. 16/11/2015,
de Microsoft Sitio web:
https://technet.microsoft.com/en-us/library/cc780469%28v=ws.10%29.aspx
IEEE. (1994). Kerberos: An Authentication Service for Computer Networks.
16/11/2015, de IEEE Sitio web:
http://gost.isi.edu/publications/kerberos-neuman-tso.html
Acronimo de Terminal Access Controller Access Control System o en español conocido como: Sistema de Control de Acceso mediante Control de Acceso de Terminales. Este protocolo es comunmente usado con un servidor de acceso configurado en sistemas Unix ademas es un protocolo propieario de CISCO. Este protocolo establece una comunicación con un servidor de autenticación para comprobar si los usuarios tienen o nó acceso a la red este protocolo se abarca en el RFC 1492. (Nota: Cabe destacar que TACACS es practicamente la versión de CISCO del protocolo RADIUS)
Caracteristicas de TACAS en contraste con RADIUS
TACACS vs RADIUS
Referencias
Search Security. (2007). TACACS (Terminal Access Controller Access
Control System) definition. 16/11/2015, de Search Security Sitio web:
http://searchsecurity.techtarget.com/definition/TACACS
C. Finseth, University of Minnesota. (1993). An Access Control
Protocol, Sometimes Called TACACS. 16/11/2015, de Network Working Group
Sitio web: https://tools.ietf.org/html/rfc1492
CISCO. (¿?). Configuring TACACS. 16/11/2015, de CISCO Sitio web:
http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_usr_tacacs/configuration/xe-3s/sec-usr-tacacs-xe-3s-book/sec-cfg-tacacs.html
RADIUS es acronimo en inglés Remote Authentication Dial-In User Service. Es un protocolo de autenticación utilizado en aplicaciones con acceso a la red. Utiliza el puerto 1812 UDP. Desarrollado por Livingston Enterprises como seguridad para sus servidores, más tarde sería conocido como RFC 2138 y RFC 2139. Para explicar de manera rapida su funcionamiento, este protocolo pide una autenticación por un usuario y contraseña que va a ser revisado por el servidor RADIUS previamente configurado.
Ejemplo de RAIDUS
Las redes wifi WPA/WPA2 Enterprice utilizan un servidor RADIUS como mendio de autenticación, las redes gratuitas que existen en México por Telmex mejor conocidad como Infinitum Movil utilizan un servidor RADIUS que solicita usuario y contraseña para poder navegar gratuitamente.
Esquema de Servidor RADIUS
Referencias
Free RADIUS. (2015). The FreeRADIUS Project. 16/11/2015, de Free RADIUS Sitio web: http://freeradius.org/doc/
C. Rigney, Livingston, A. Rubens, Merit, W. Simpson. (1997). Remote
Authentication Dial In User Service (RADIUS). 16/11/2015, de Network
Working Group Sitio web: https://tools.ietf.org/html/rfc2138
C. Rigney, Livingston. (1997). RADIUS Accounting. 16/11/2015, de Network
Working Group Sitio web: https://tools.ietf.org/html/rfc2139
AAA (Siglas en inglés de Authentication, Authorization, Accounting) corresponde a una serie de protocolos que realizan las funciones de: autenticación, autorización y contabilización. Cabe aclarar que aunque puede ser referida como un protocolo, en realidad es una familia de protocolos por las distintas funciones que realiza.
A continuación se explica mas a fondo los 3 pasos que realiza este protocolo o mejor dicho familia de protocolos de seguridad.
Autenticación
Es el proceso por el cual una entidad o alguien prueba su identidad ante otro.
Autorización
Es el proceso por el cual se le otorgan los privilegios necesarios a una entidad o alguien basandose en su identidad.
Contabilización
Es el proceso de contar los recusos de red consumidos por el usuario que se autenticó y autorizó anteriormente, con propositos de administración, planificación, etc.
Este protocolo es utilizado en servidores linux comunmente, en redes WiMAX y VPN, entre otros.
Referencias
Juan Esteban Gonzalez. (2009). Seguridad (AAA). 16/11/2015, de Redes
WiMAX Sitio web:
http://redeswimax.jimdo.com/wimax/acceso-al-medio/seguridad-aaa/
C. de Laat, Utrecht University, G. Gross, Lucent Technologies. (2000).
RFC 2903 - Generic AAA Architecture. 16/11/2015, de Network Working
Group Sitio web: https://tools.ietf.org/html/rfc2903
Ordenadores y Portatiles. (2014). Funcionamiento de una red privada VPN -
2 ª parte. 16/11/2015, de Ordenadores y Portatiles Sitio web:
http://www.ordenadores-y-portatiles.com/red-privada-vpn-2.html
El certificado digital es el medio que permite garantizar la autenticidad de un medio electronico o digital dentro de internet, ya que cifra el contenido, normalmente suele utilizarse para cifrar un documento, o bien una pagina web mediante el protocolo HTTPS.
Esquema de funcionamiento de certificado digital.
Usos
Autenticar la identidad del usuario, de forma electrónica, ante terceros.
Firmar electrónicamente para garantizar la integridad de los datos y su procedencia. (Nota: Un documento firmado no puede ser manipulado ya que la firma esta asociada al documento y al firmante).
Cifrar datos para que sólo el destinatario del documento pueda acceder a su contenido.
¿Qué es una CA?
CA es un termino utilizado para referirce a una autoridad de certificación (AC) o por sus siglas en inglés Certification Authority. Es una entidad de confianza, responsable de emitir y revocar los certificados digitales o certificados, utilizados en firma electrónica. Juridicamente se conoce como un caso particular de Prestador de Servicios de Certificación.
Entidades Certificadoras
A continuanción se muestran algunas entidades certificadoras:
En México:
Advantage Security, S. de R.L de C.V
PSC World, S.A de C.V
CECOBAN
Edicomunicaciones México S.A de C.V
Seguridata S.A de C.V
ACEDICOMMX (Autoridad de Certificación Edicom México)
En otros paises:
España:
Agencia Notarial de Certificación (ANCERT)
ANF Autoridad de Certificación (ANF AC)
Chile:
Certinet
Colombia:
GSE (Entidad de Digitalización Abierta)
Certicámara(Validez y seguridad jurídica electrónica)
Internacional
VeriSign
Referencias
Camara Oficial de Comarcio Madrid. (2007). Certificación Digital para
Empresas: identificación y firma electrónica. 16/11/2015, de Camara
Madrid Sitio web:
http://www.camaramadrid.es/asp/pub/docs/certificacion_digital_para_empresas.pdf
Gobierno de España. (¿?). Principales Autoridades de Certificación (AC).
16/11/2015, de Portal de Administración Electrónica Sitio web:
http://firmaelectronica.gob.es/Home/Empresas/Autoridades-Certificacion.html
ACEDICOMMX. (2010). Edicom Autoridad de Certificación ACEDICOMMX.
16/11/2015, de ACEDICOMMX Sitio web: http://acedicom.edicomgroup.com/mx/
Viafirma. (2015). Soporte Autoridades de Certificación (CA's).
16/11/2015, de Viafirma Sitio web:
https://www.viafirma.com/es/soporte-autoridades-de-certificacion-cas
SSL y TSL con protocolos usados para certificar comunicaciones
seguras a través de internet, proporcionando seguridad en la identificación del
servidor y del cliente, así como el cifrado y la integridad de la información,
en ambas partes de la comunicación.
Ambos protocolos cifran la información mediante un algoritmo
de cifrado de clave simétrica o secreta, como IDEA o RC6, cifran la clave de la
sesión que se establezca mediante un algoritmo de cifrado de clave asimétrica o
pública como RSA. Utilizan una función resumen como MD5 para garantizar la
integridad de la información transmitida.
SSL
SSL (Secure Sockets Layer) traducido al español significa
Capa de Conexiones Seguras. Es un protocolo que hace uso de certificados
digitales para establecer comunicaciones seguras a través de Internet. Es un
protocolo estratificado, por lo que en cada capa se le agregan a los mensajes
campos con distintos tipos de contenido, como el largo de los mismos, algún tipo
de descripción y la información propiamente dicha.
Una sesión SSL posee diferentes estados y es responsabilidad
del SSL Hanshake Protocol la coordinación de los mismos entre el cliente y el
servidor para que ambos funcionen en forma consistente, a pesar del hecho que
no estén exactamente en paralelo.
Fue diseñado con el objeto de proveer privacidad y
confiabilidad a la comunicación entre dos aplicaciones. Este se compone de dos
capas:
SSL Record Protocol. Está ubicada sobre algún protocolo de
transporte confiable (como por ejemplo TCP) y es usado para encapsular varios
tipos de protocolos de mayor nivel.
SSL Handshake Protocol. Es uno de los posibles protocolos
que pueden encapsularse sobre la capa anterior y permite al cliente y al
servidor autenticarse mutuamente, negociar un algoritmo de cifrado e
intercambiar llaves de acceso.
Una de las ventajas del SSL es que es independiente del
protocolo de aplicación, ya que es posible ubicarlo por encima del mismo en
forma transparente.
Puede ser aplciado en la práctica en las transacciones de
comercio electrónico, los procesos de trabajo online y los servicios por
Internet:
Para proteger transacciones realizadas con tarjetas de
banco.
Para ofrecer protección online a los accesos al sistema, la
información confidencial transmitida a través de formularios web o determinadas
áreas protegidas de páginas web.
Para proteger la transferencia de archivos sobre HTTPS y
servicios de FTP, como podrían ser las actualizaciones de nuevas páginas por
parte de un propietario de una página web o la transmisión de archivos pesados.
Para proteger el tráfico en una intranet como es el caso de
las redes internas, la función compartir archivos, las extranets o las
conexiones a bases de datos.
Los objetivos del protocolo SSL son, en orden de prioridad:
Seguridad Criptográfica. Debe ser usado para establecer una
conexión segura entre dos partes.
Interoperatividad. Programadores independientes deben poder
desarrollar aplicaciones que, utilizando SSL, permitan intercambiar en forma
exitosa parámetros de cifrado sin tener conocimiento del código utilizado por
el otro.
Flexibilidad. Debe ser una base sobre la cual puedan
incorporarse nuevos métodos de cifrado. Esto trae aparejado dos objetivos más:
evitar la creación de un protocolo nuevo y la implementación de una nueva
biblioteca de seguridad
Eficiencia. Dado que las operaciones de cifrado consumen
gran cantidad de recursos, en especial CPU, incorpora ciertas facilidades que
permiten mejorar este aspecto, además de mejorar el uso de la red.
TLS
TLS (Transport Layer Security) está basado en SSL y son
totalmente compatibles. Se asegura que los correos se transmitan en internet
con una tecnología de cifrado estándar. Asegurar de esta manera los correos
reduce el riesgo de que sean interceptados, leídos por partes no autorizadas o
falsificados.
Para que funcione, es necesario habilitar TLS en los
servidores de correo tanto del remitente como del destinatario del mensaje.
Cualquier información intercambiada entre los servidores está cifrada, lo que
incluye el título puesto como asunto, el texto y los documentos adjuntos.
Cuando se envían mensajes cifrados, el intercambio de correo
funciona como a continuación:
Cuando el remitente se conecta con el destinatario, el
sistema verifica automáticamente si está habilitado TLS en el servidor de
correo del cliente.
Si está habilitado TLS en ambos servidores, se establece una
conexión TLS segura mediante un procedimiento de protocolo de intercambio
conocido como "handshake" (apretón de manos).
Durante este protocolo, se intercambian los certificados
TLS. Si el servidor del remitente confía en el certificado del servidor de
correo del cliente, inicia la sesión TLS y se envía el correo mediante una
conexión de internet segura.
Un certificado TLS es un certificado digital de seguridad
que se utiliza por el protocolo TLS (antes SSL). Este certificado es otorgado
por una agencia independiente debidamente autorizada y es enviado por el
servidor de la página web segura. De esta forma se valida que una página web es
realmente la que dice ser, sin tener redirecciones o páginas personificando a
otras (conocidas como páginas no seguras).
El navegador de internet recibe e interpreta el contenido de
dicho certificado y, al verificar su autenticidad, indica que se está
realizando una conexión segura; cada navegador de internet tiene diferentes
formas de indicarlo, por ejemplo un candado cerrado.
Es sabido que la información intercambiada diariamente en las redes de comunicación crece de forma exponencial y que gran parte de ella afecta a nuestra identidad, por lo que debe estar protegida para prevenir su uso fraudulento. Una correcta aplicación de la criptografía evita el acceso no deseado a información sensible de forma que ésta quede protegida. Cabe aclarar que para algunos expertos en seguridad de la información la criptografia no es en si seguridad informatica si no un complemento de la misma ya que solo es un medio para retrasar el entendimiendo de esa información que se encuentra cifrada logrando así mantener una de las características de la seguridad que es la integridad de la información.
La Criptología (del griego criptos = oculto y logos = ciencia, tratado) es el nombre genérico con el que se designan dos disciplinas opuestas pero a la vez complementarias: Criptrografía y Criptoanálisis. La Criptografía se encarga de diseñar procesos para ocultar la información, mientras que el Criptoanálisis se encarga de diseñar procesos para romper el esquema de cifrado para decodificar el mensaje oculto. Por lo tanto se puede decir que la Criptografía es claramente la parte constructiva de este proceso, mientras que el Criptoanálisis representa la parte destructiva. Ambas disciplinas siempre se han desarrollado de forma paralela, puesto que cualquier procedimiento de cifrado normalmente lleva emprarejado su criptoanálisis o, al menos, un intento de criptoanálisis.
Historia
La Criptografía como medio de proteger la información escrita es un arte tan antiguo como la propia escritura. Durante siglos permaneció estrechamente vinculada a entornos militares y diplomáticos, puesto que eran los únicos que tenían auténtica necesidad de ella.
Una de las primeras formas utilizadas para ocultar la informacón fue una técnica que consistía en tealizar orificios sobre las letras del mensaje secreto para pasar sobre ellos un típo de tejido que servía para ocultar dicho mensaje.
Alrededor del año 1500 a.C los comerciantes asirios utilizaban tablillas de arcilla en donde tallaban escritos y algunas imagenes que establecian la forma de llevar a cabo sus transacciones comerciales, muchas veces dichas tablillas se colocaban en el interior de un contenedor de arcilla el cual era sellado.
Durante el siglo V a.C los griegos crearon un instrumento para cifrar mensajes llamado Scítala de los Lacedemonios y consistia en un cilindro en el cual se enrrollava una cinta de papiro o tela para posteriormente escribir el mensaje, cabe resaltar que leer dicho papiro sin el cilindro hacia confuso la interpretación de dicho papiro.
Scítala de los Lacedemonios
Otro hecho destacable en la historia de la criptografía sería hasta el siglo I con el cifrado César, este nombre debido a que era usado por el militar y político romano Julio César. Este método consistía en sustituir cada carácter del mensaje original por otro situado tres posiciones después de él en un determinado alfabeto
Roger Bacon (1214-1294) un destacado filósofo y naturalista inglés en algunas de sus obras expone los conocimientos sobre Criptografía que se tenían hasta la época así como algunas observaciones.
Se tienen conocimientos de que para el año 1300 los árabes ya habian desarrollado alrededor de siete procedimientos de cifrado:
Reemplazar unas letras por otras.
Escribir palabras al revés.
Invertir letrs alternadas en el texto del mensaje original.
Dar a letras un valor numérico y escribir dichos valores con símbolos.
Reemplazar cada letra con otras dos de forma que la suma de sus valores numéricos fuera igual al valor númerico de la letra reemplazada.
Sustituir cada letra con el nombre de una pesona o un objeto.
Sustituir las letras por signos lunares, pájaros, flores u otros signos inventados.
Entre 1375 y 1383 Cicco Simonetta, consejero y secretario de los
duques Sforza en Milán, desarrolla su obra llamada Liber Zifrorum, la
cual es considerada como el tratado de descifrado más antiguo que se
conoce. En dicha obra estudia y analiza diversos sistemas
criptográficos.
Otro metodo de encriptación destacable fue el inventado en 1595 por el francés Blaise Vigenère quien desarrolló un método de cifrado que
consistía en asignar un número a cada letra del alfabeto y sumar los
números correspondientes a una clave con los del mensaje para obtener el
criptograma.
En 1923 Arthur Sherbius, un ingeniero alemán, dio a conocer una máquina
llamada Enigma, se trataba de una máquina que en su exterior parecía una
máquina de escribir común pero en su interior estaba
compuesta por un mecanismo que trasformaba la letra tecleada en otra,
estaba compuesta por un conjunto de ruedas cuyas caras tenían contactos
eléctricos entre sí.
Máquina Enigma
Vista interior de la Máquina Enigma
Algoritmos Asimétricos
Los métodos de cifrado semétrico, que incluyen los utilizados en la Criptografía clásica, son los que definen la actual Criptografía simétria o Criptografía de clave secreta; mientras que los métodos simétricos,de más reciente aparición, son los que han dado lugar a la Criptografía Asimétrica o Criptografía de clave pública. Ésta fue introducida por Whitfield Diffie y Martin Hellman en 1976, de los algoritmos asimétricos podemos destacar las siguientes características:
Se utiliza una clabe para cifrar y otra para decifrar. El emisor emplea la clave pública del receptor para cifrar el mensaje, éste último lo decifra con su clave privada.
Se basan en operaciones matemáticas complejas.
Se ejecutan de 100 a 1000 veces más lento que los algoritmos semétricos.
Principales Algoritmos Asimétricos
Algoritmo Diffie-Helman
Se trata básicamente de un protocolo que basa su seguridad en el
problema del logaritmo discreto y que permite a dos usuarios
intercambiar una clave secreta a través de un medio inseguro, dicho
protocolo también es conocido como "el cambio de clave de Diffie-Hellman".
Descripción del algoritmo:
Los usuarios A y B seleccionan públicamente un grupo G de orden n que sea un número primo p y un elemento .
Agenera un número aleatorio a, calcula en G y envía el resultado a B.
B genera un número aleatorio b, calcula en G y envía el resultado a A.
A recibe y calcula en G.
B recibe y calcula en G.
De este modo A y B poseen un elemento común secreto: .
Como puede apreciarse en la descripción anterior, el algoritmo por sí
sólo no utiliza autenticación, por lo que su implementación es
comúnmente acompañada de la utilización de firmas digitales ya que de no
hacerlo se podría tener un ataque de hombre en medio.
Algoritmo RSA (Rivest, Shamir, Adleman)
Creado en 1977 por Ronald Rivest, Adi Shamir y Len Adleman y publicado en 1978.
Cada usuario debe realizar lo siguiente para generar su par de claves (pública y privada):
Elegir dos números primos grandes, p y q, y calcular el número n mediante: . El grupo a utilizar por el usuario es de orden .
Seleccionar un entero positivo e, , de modo que sea primo con el orden del grupo, esto es: .
Calcular d que es el inverso de e en , de manera que: , con .
Por último debe publicar la pareja (n,e) que es su clave pública, su clave privada d y los valores deben permanecer en secreto.
Para enviar un mensaje, antes que nada se debe determinar su longitud j
dado que debe de ser un elemento del grupo en el que se esté
trabajando, de modo que según el sistema de numeración en el que esté
codificado cumpla:
Donde b es la base del sistema de numeración y n el
grupo utilizado por el receptor. Si la longitud del mensaje que se
desea enviar es más grande, éste debe ser dividido en bloques de tamaño j y cifrarlos por separado.
El proceso de cifrado consiste en transformar el mensaje M de acuerdo con:
Para ello se utiliza la clave pública del receptor.
Para descifrar el criptograma C se utiliza la clave privada d según la expresión:
Funciones HASH
Una función hash es una función matemática que reduce un mensaje
original a una secuencia de bits de tamaño fijo que lo identifica; dicha
secuencia es llamada valor hash.
Una función hash unidireccional es una función hash de modo que es
prácticamente imposible encontrar dos mensajes originales con el mismo
valor hash. Este tipo de función también es llamada función resumen y el
valor hash es comúnmente llamado huella digital.
Dentro de las aplicaciones principales de los algoritmos hash se encuentra la creación de códigos de verificación:
Creación del código MIC (Message Integrity Code): permite
detectar si el contenido de un mensaje ha sido modificado. Por ejemplo,
suponiendo que las entidades A y B han acordado una clave previamente:
A concatena al mensaje la clave secreta y calcula el valor de dispersión de dicha concatenación.
A envía a B el valor de dispersión y el mensaje.
Al recibir el paquete, B concatena la clave secreta al mensaje que recibió y calcula el valor de dispersión de la concatenación.
B compara el valor de dispersión que obtuvo con el que
le envió A, si éstos coinciden, B puede tener la confianza de que el
mensaje no ha sido modificado.
Creación del código MAC (Message Authentication Code), el cual
permite probar la integridad del contenido y la autenticación del origen
de un mensaje, ya que asegura que el mensaje fue creado únicamente por
alguien que conoce la clave.
Algoritmo SHA-1 (Secure Hash Algorithm)
Algoritmo desarrollado por el NIST y publicado como estándar federal
para el procesamiento de la información (FIBS PUB 180); en 1995 se
publicó una versión revisada como FIBS PUB 180-1 conocida como SHA-1.
El algoritmo toma como entrada mensajes de longitud máxima de 264 bits que son procesados en bloques de 512 bits; el resultado que
produce es de 160 bits.
Imagen general del algoritmo
El procesamiento consta de cinco pasos los cuales se explican a continuación:
Se incorporan bits de relleno al mensaje de entrada de tal modo que cumpla: .
El relleno consiste en un uno seguido de los ceros que sean necesarios.
Aunque el mensaje ya tenga la longitud deseada, se debe efectuar el
relleno, por lo que el número de bits de dicho relleno está en el rango
de 1 a 512 bits.
A la salida del paso 1, se le añade un bloque de 64 bits que represente la longitud del mensaje original antes de ser rellenado.
Se inicializa la memoria temporal MD, la cual consta de 160 bits
y su finalidad es almacenar los resultados intermedios y finales de la
función de dispersión. La MD consta de 5 registros (A,B,C,D,E) de 32
bits cada uno, los valores con los que se inicializan son los siguientes
(valores hexadecimales):A= 67452301 B= EFCDAB89 C= 98BADCFE D= 10325476 E= C3D2E1F0
Se procesa el mensaje por bloques de 512 bits, cada uno pasa por
un módulo que consta de 4 rondas de procesamiento de 20 pasos cada una.
Las rondas tienen una estructura similar, con la excepción de que cada
una ocupa una función lógica primitiva diferente (f1, f2, f3 y f4).
Paso 4 de funcionamiento de SHA
La entrada a cada ronda consta del bloque de 512 bits que se esté procesando (Yq)
y los 160 bits de la memoria MD, nótese que cada bloque de 512 bits
actualizará el valor de la memoria temporal. Cada ronda también hace uso
de la constante aditiva Kt, donde
indica uno de los 80 pasos a lo largo de las cuatro rondas. Los valores
para dicha constante se muestran en la tabla siguiente:
Valores de la constante aditiva Kt en SHA-1
5. Una vez que se procesan los L bloques de 512 bits, el resumen del mensaje son los 160 bits de salida del último bloque.
Algoritmo SHA-2
La serie de funciones SHA-2 puede considerarse como la sucesora de la función SHA-1. Esta familia de funciones fue propuesta por el NIST al conocerce un ataque de Shamir por el que se podían encontrar colisiones para la SHA-1 con 263 operaciones.
La familia de funciones SHA-2 contiene 4 subalgoritmos: SHA-224, SHA-256, SHA-384 y SHA-512. Cada uno de ellos proporciona resúmenes de mensajes de 224, 256, 384 y 512 bits respectivamente. El hecho de incrementar las longitudes de los resumenes hace que la seguridad de cada una de ellas sea, tambien mayor.
Las principarles diferencias entre los subalgoritmos son las siguientes:
SHA-256 y SHA-512 se calculan con palabras de 32 y 64 bits, respectivamente y ambas usan diferentes constantes y número de rondas pero su estructura es, básicamente, la misma.
SHA-224 y SHA-384 son versiones truncadas de las funciones SHA-256 y SHA-512 y emplean vectores iniciales diferentes a los usados por las funciones que las proceden.
SHA-224 se definió, principalmente para que la longitud de su resumen coincidiera con la longitud de dos claves de TDEA.
En la actualidad la función SHA-2 se utiliza con menor frecuencia que la SHA-1, a pesar de que proporciona mayor seguridad, debido fundamentalmente, a la falta de comparibilidad con la mayoría de los protocolos existentes. No obstante, hoy en día se recomienda migrar de SHA-1 a la SHA-2 por razones de seguridad.
Algoritmo MD5 (Message Digest Algorithm)
El algoritmo MD5 fue desarrollado por Ron Rivest en 1992 en el MIT con
la finalidad de robustecer el MD4 y a la fecha se trata del algoritmo
hash más seguro y de mayor uso en el mundo (ampliamente documentado en
el RFC 1321), entre las aplicaciones más recurrentes están la
autenticación en el protocolo SSL y la firma digital en PGP.
El mensaje que se desea resumir, M, se divide en n bloques de 512 bits. En el caso de que la longitud de M no sea un múltiplo exacto de 512, éste se extiende de modo que su n-ésimo bloque tenga esta longitud.
Se consideran cuatro vectores (conocidos públicamente), A, B, C y D, de 32 bits cada uno, de modo que, al ser concatenados, proporcionan un vector de inicialización I1 = A||B||C||D de 128 bits.
Se separa el primer bloque de 512 bits del mensaje, M1, y se llevan a cabo diferentes operaciones lógicas de este bloque con el vector de inicialización anterior, I1.
La salidad del paso anterior tiene 128 bits, que se considera como el vector de inicialización de la etapa siguiente, I2.
Se opera el segundo bloque de 512 bits del mensaje, M2, con el vector I2, y se obtiene como salida otro vector de 128 bits: I3.
El proceso anterior se repite hasta completar todos los bloques en los que se ha dividido el mensaje.
La salida del algoritmo MD5 es el resumen de M, que corresponde a los últimos 128 bits obtenidos como resultado de las operaciones del último bloque, Mn, con el último vector In de las operaciones anteriores, es decir, el valor de In+1.
Aplicaciones de estas funciones
Firmas Digitales: Es quizas para lo que mas se utilizan todas estas funciones criptográficas. En la mayor parte de estos esquemas, en lugar de firmar digitalmente un mensaje, lo que se hace es firmar un resumen del mismo, lo cual hace que se gane eficiencia en los protocolos correspondientes.
Integridad de los Datos: Una forma fácil y rápida para comprobar y detectar la integridad de datos y ficheros almacenados en un PC consiste en calcular los resúmenes de los ficheros que interesen y guardar dicho valor fuera del PC. En el momento en que se desee comprobar que tales ficheros han sido modificados o alterados, basta con volver a calcular su resumen y contrastar si el mismo coincide con el resumen calculado anteriormente.
Repositorios de Datos: Es conocida la existencia de repositorios de datos en los que es posible almacenar grandes ficheros de modo que posteriormente puedan ser descargados sin la necesidad de enviarlos por correo electrónico; lo que a veces resulta imposible proque pueden llegar a saturar la capacidad de los buzones de correo. Normalmanete este tipo de descargas se hace utilizando el algoritmo MD5.
Detección de Software Dañino: La mayor parte de los programas antivirus y detectories de software dañino utilizan este tipo de funciones conel fin de realizar una búsqueda de dicho software en el disco duro. El funcionamiento de los programas antivirus suele ser el siguiente. Cuando se conoce la existencia de un virus, las empresas desarrolladoras de antivirus aíslan el virus y determinan el resumen del programa ejecutable que contiene dicho virus.
Conclusión
La criptografía surge de la necesidad de cuidar la privacidad de la información ya que por lo mencionado anteriormente se puede decir que la información es poder y dinero sabiendola aprovechar, por lo tanto se debe protegida a toda costa con este tipo de metodos que aseguran que solo las personas que deban conocer dicho mensaje tengan acceso a él.
Material de Apoyo
Dejo los siguientes videos como complemento de este post:
Documental de Criptografía:
Criptografia Simétrica y Asimétrica:
Algoritmos de Cifrado:
Referencias
Luis Hernández Encinas. (2013). Criptografía, protección de datos y aplicaciones. Madrid: Alfaomega Ra-Ma.
Xifré Solana Patricia. (2009). Antecedentes y perspectivas de estudio
en historia de la Criptografía . 21/10/2015, de Universidad Carlos III
de Madrid Sitio web:
http://e-archivo.uc3m.es/bitstream/handle/10016/6173/PFC_Patricia_Xifre_Solana.pdf?sequence=1
Geronimo Orozco Martinez. (¿?). Introducción a la Criptografia.
21/10/2015, de patux.net Sitio web:
http://patux.net/downloads/crypto/crypto.pdf
Santiago Fernández. (2004). Criptografía Clásica. 21/10/2015, de
euskadi.eus Sitio web:
http://www.hezkuntza.ejgv.euskadi.eus/r43-573/es/contenidos/informacion/dia6_sigma/es_sigma/adjuntos/sigma_24/9_Criptografia_clasica.pdf