martes, 17 de noviembre de 2015

Kerberos

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.

Archivo:Kerberos-funcion.svg
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



TACACS

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

http://image.slidesharecdn.com/ccnasecurity-140512014900-phpapp02/95/ccna-security-49-638.jpg?cb=1439102733
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

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.

http://www.kaplansoft.com/images/TekRADIUS/TRApplications.png
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

Protocolo AAA

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


lunes, 16 de noviembre de 2015

Certificados Digitales

¿Qué es?

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

 Certinet. (2006). Certinet Identidad Digital. 16/11/2015, de Certinet Sitio web: http://www.certinet.cl/

Siger. (23/05/2013). Prestadores de Servicios de Certificados habilitados. 16/11/2015, de Siger Sitio web: http://www.firmadigital.gob.mx/tabla.html

COCEMFE. (2010). Firma Digital. 16/11/2015, de COCEMFE Sitio web: http://www.cocemfeclm.org/documentos/FirmaDigital.pdf

martes, 10 de noviembre de 2015

Protocolo SSL/TLS

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.

jueves, 22 de octubre de 2015

Criptografía

Introducción

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.


Escitalo de los Lacedemonios :: Figura 1.2.1
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:
  1. Reemplazar unas letras por otras.
  2. Escribir palabras al revés.
  3. Invertir letrs alternadas en el texto del mensaje original.
  4. Dar a letras un valor numérico y escribir dichos valores con símbolos.
  5. 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.
  6. Sustituir cada letra con el nombre de una pesona o un objeto.
  7. 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:
  1. Los usuarios A y B seleccionan públicamente un grupo G de orden n que sea un número primo p y un elemento alfa.
  2. Agenera un número aleatorio a, calcula alfa en G y envía el resultado a B.
  3. B genera un número aleatorio b, calcula alfa en G y envía el resultado a A.
  4. A recibe alfa y calcula alfa en G.
  5. B recibe alfa y calcula alfa en G.
De este modo A y B poseen un elemento común secreto: alfa.
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):
  1. Elegir dos números primos grandes, p y q, y calcular el número n mediante: n. El grupo a utilizar por el usuario es Znde orden fi.
  2. Seleccionar un entero positivo e, e, de modo que sea primo con el orden del grupo, esto es: mcd.
  3. Calcular d que es el inverso de e en Z, de manera que: ed, con d.
  4. Por último debe publicar la pareja (n,e) que es su clave pública, su clave privada d y los valores pqfi 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:
bj
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:
C
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:
M


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:
    1. A concatena al mensaje la clave secreta y calcula el valor de dispersión de dicha concatenación.
    2. A envía a B el valor de dispersión y el mensaje.
    3. Al recibir el paquete, B concatena la clave secreta al mensaje que recibió y calcula el valor de dispersión de la concatenación.
    4. 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:
  1. Se incorporan bits de relleno al mensaje de entrada de tal modo que cumpla: longitud. 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.
  2. 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.
  3. 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
  4. 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 t 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:

  1. 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.
  2. 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.
  3. 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