En los servicios web que se desarrollan uno de los factores más importantes es la autenticación y establecimiento de la conexión.
La criptografía es la práctica y estudio de técnicas para la comunicación segura entre dos partes en presencia de un tercero (adversario). Se trata de construir y analizar protocolos para evitar que el adversario pueda interceptar y entender el contenido del mensaje entre las dos partes de una comunicación. La criptografía moderna utiliza técnicas matemáticas, informáticas y eléctricas para saltarse a los adversarios.
El proceso de cifrado consiste en convertir información ordinaria en un galimatías inteligible (texto cifrado). El descifrado es el paso inverso, convierte el texto cifrado en texto comprensible. Un sistema de cifrado es un par de algoritmos que crean un cifrado y descifrado. El funcionamiento detallado de un sistema de cifrado se controla por el algoritmo y por una clave. La clave es un parámetro secreto (solo puede ser conocida por las dos partes de las comunicaciones) que es utilizado para el intercambio de mensajes. La seguridad de las claves es un factor muy importante ya que una clave poco segura (como puede ser una que este conformada solamente por números) puede ser descubierta con suma facilidad y poner en riesgo todo el sistema de cifrado.
Los buenos cifrados modernos se han mantenido por delante del criptoanálisis, puesto que el uso de un buen sistema de cifrado es muy eficiente ya que consume muy pocos recursos, mientras que romper este cifrado requiere un esfuerzo muy superior necesitando muchos ordenadores haciendo que este sea ineficiente.
En la década de los 70 se diseñaron algunos métodos criptográficos que son utilizados en la actualizada como es el algoritmo RSA y el algoritmo de “acuerdo entre claves”. Algunas técnicas criptográficas se basan en algoritmos matemáticos como son la factorización de enteros o lo logaritmos discretos. No hay ninguna prueba concluyente de que una técnica de cifrado es segura, en el mejor de los casos, hay pruebas de que algunas técnicas son seguras si hay algún problema computacional difícil de resolver.
Un problema derivado del avance tecnológico es que cada vez, los computadores son mas potentes computacionalmente hablando, por lo que en algunas ocasiones los ataques de fuerza bruta se realizan sin demasiados problemas sobre un sistema que no cumpla con unas condiciones de seguridad aceptables.
Los efectos prácticos de la computación se pueden dividir en diferentes zonas de estudio. Algunas de ellas son:
Estudia los métodos de cifrado en el remitente y receptor comparten la clave. Estas claves se implementan como un cifrado por bloques o cifrado de flujo.
El Data Encryption Standard (DES) y el Advanced Encryption Standard (AES) son diseños para el cifrado de bloques que han sido diseñados por los estándares de criptografía por el gobierno de USA. A pesar de la desaprobación en la actualidad de no utilizar DES, sigue siendo muy popular y se utiliza en una amplia gama de aplicaciones.
El cifrado de flujo, crea un flujo arbitrariamente largo y una clave, que se combina con el texto simple bit a bit o carácter a carácter. RC4 es un cifrado de este tipo.
Las criptografías de funciones Hash son un tercer tipo de algoritmo criptográfico. Se toma un mensaje de cualquier longitud como entrada y salida corta, fijada por la longitud hash que puede ser una clave digital. MD5 es una función hash ampliamente usada, pero que ha sido rota en la practica. El gobierno de USA desarrollo Secure Hash Algoritmith (SHA).
Este punto lo analizaremos como más detalle en el tema. Básicamente consiste en utilizar dos claves, una publica y otra privada, para cifrar los mensajes de la comunicación.
El objetivo del criptoanálisis es encontrar alguna debilidad o inseguridad en un esquema de cifrado. La mayoría de los sistemas de cifrado, se pueden romper con un esfuerzo computacional suficiente por ataques de fuerza bruta, pero la cantidad de esfuerzo necesario puede ser exponencial dependiendo del tamaño de la clave en comparación con el esfuerzo necesario para hacer el uso del cifrado.
AES (Advanced Encryption Standard) es un cifrado que se usa mucho en la configuración del CPE (Customer Provided Equipment), Modem que se encuentra en nuestros domicilo para conectarse a internet, por temas de seguridad.