Claves y Componentes de la Inteligencia de Negocios
   
EDA: Una Nueva Generación de Aplicaciones
   
UWB: La Nueva Ultra Banda Ancha
   
CMMI: Mejorando Procesos en Forma Integrada
   
MIME: Haciendo del E-Mail Una Herramienta Universal
   
XML:El estándar de los negocios electrónicos
   
P3P: Tras la privacidad en la red
   
UML: Un Lenguaje Modelo
 
ANÁLISIS
MIMO: Wireless Más Inteligente
ANÁLISIS
SOA: Creando empresas flexibles
ANÁLISIS
El poder de ajax
ANÁLISIS
MPLS: La Nueva Generación de Redes Privadas Virtuales
Ver Todas  


ANÁLISIS
LA MASIVA CIENCIA DE LA SEGURIDAD

Ver Análisis Resumido

Es fácil hacer una transacción electrónica a través del banco en línea. Al igual que mandar un correo o conectarse a la red de la empresa desde la casa. Pero detrás de eso, hay una serie de algoritmos y metodologías para mantener los datos encriptados, gracias a la criptografía informática.

En la actualidad todas las personas, compañías, entidades y prácticamente cualquiera que utilice un dispositivo informático para su productividad, quiere mantener ciertos documentos de forma privada.

Cuando dichos equipos están conectados a una red (como por ejemplo Internet) o requieren ser enviados a otro lugar mediante una vía informática, el tema de la protección de datos se hace aún más importante y la clave está en la criptografía informática, que utiliza una serie de algoritmos que mezcla claves privadas con públicas, con el fin de que sólo ciertas personas o equipos puedan codificar y decodificar la información.

La criptografía proviene del griego kryptos: "ocultar", y grafos: "escribir". O sea significa "escritura oculta". Como concepto son las técnicas utilizadas para cifrar y descifrar información utilizando técnicas matemáticas que hagan posible el intercambio de mensajes de manera que sólo puedan ser leídos por las personas a quienes van dirigidos, como está especificado en el párrafo anterior.

Pero además de garantizar el secreto entre quienes se comunican, la criptografía debe asegurar que la información que se envía es auténtica en un doble sentido: que el remitente sea realmente quien dice ser y que el contenido del mensaje no se haya modificado en su tránsito.

Dentro de este contexto, aparece la criptografía informática que en términos simples consiste en una infraestructura de clave pública (o, en inglés, PKI, Public Key Infrastructure) y una clave privada. Ambas son una combinación de hardware y software, políticas y procedimientos que permiten asegurar la identidad de los participantes en un intercambio de datos.

CLAVES PÚBLICAS

Es la que requiere más atención de las dos, ya que en su esencia se mueve en las redes públicas, por lo tanto su grado de seguridad y confiabilidad debe ser el mayor posible. Una PKI permite a los usuarios autenticarse frente a otros usuarios y usar la información de los certificados de identidad (por ejemplo, las claves públicas de otros usuarios) para cifrar y descifrar mensajes.

En general, una PKI consiste en un software para los clientes, un software de servidor (como una autoridad de certificación), hardware (por ejemplo, tarjetas inteligentes o smart cards) y unos procedimientos operacionales. Un usuario puede firmar digitalmente mensajes usando su clave privada, y otro usuario puede validarla usando la clave pública del usuario, contenida en el certificado que ha sido emitido por una autoridad de certificación de la PKI. Esto permite a dos (o más) entidades establecer una comunicación que garantiza la confidencialidad y la integridad del mensaje y la autenticación de los usuarios sin tener que intercambiar previamente ninguna información secreta.

Los componentes más habituales de una infraestructura de clave pública son:

  • La autoridad de certificación (o, en inglés, CA, Certificate Authority): es la encargada de emitir y revocar certificados. Es la entidad de confianza que da legitimidad a la relación de una clave pública con la identidad de un usuario o servicio.

  • La autoridad de registro (o, en inglés, RA, Registration Authority): es la responsable de verificar el enlace entre los certificados (concretamente, entre la clave pública del certificado) y la identidad de sus titulares.

  • Los repositorios: son las estructuras encargadas de almacenar la información relativa a la PKI. Los dos repositorios más importantes son el repositorio de certificados y el repositorio de listas de revocación de certificados. En una lista de revocación de certificados (o, en inglés, CRL, Certificate Revocation List) se incluyen todos aquellos certificados que por algún motivo han dejado de ser válidos antes de la fecha establecida dentro del mismo certificado.

  • La autoridad de validación (VA, Validation Authority): es la encargada de comprobar la validez de los certificados digitales.

  • La autoridad de sellado de tiempo (TSA, TimeStamp Authority): es la encargada de firmar documentos con la finalidad de probar que existían antes de un determinado instante de tiempo.

  • Los usuarios y entidades finales son aquellos que poseen un par de claves (pública y privada) y un certificado asociada a su clave pública. Utilizan un conjunto de aplicaciones que hacen uso de la tecnología PKI (para validar firmas digitales, cifrar documentos para otros usuarios, etc.)

    A nivel corporativo, una de las principales soluciones de claves pública y privadas son por ejemplo: Computer Associates eTrust PKI, Entrust, Microsoft, Netscape CMS, OpenCA, RSA Security y Safelayer. A nivel masivo, la más popular entre los usuarios que realizan transacciones electrónicas a través de internet, es VeriSign.

    MÉTODOS CRIPTOGRÁFICOS

    Tomando en cuenta ambos tipos de claves utilizadas para mantener segura la información, tenemos dos modelos de metodologías criptográficas, ampliamente utilizados en la actualidad por las soluciones informáticas.

    1.- Criptografía simétrica

    Utiliza una misma clave para cifrar y para descifrar mensajes. Las dos partes que se comunican se ponen de acuerdo de antemano sobre la clave a usar. Una vez que ambas tienen acceso a esta clave, el remitente cifra un mensaje usándola, lo envía al destinatario, y éste lo descifra con la misma.

    Un buen sistema de cifrado pone toda la seguridad en la clave y ninguna en el algoritmo. En otras palabras, no debería ser de ninguna ayuda para un hacker o cracker conocer el algoritmo que se está usando. Sólo si el atacante obtuviera la clave, le serviría conocer el algoritmo. Los algoritmos de cifrado usados por ejemplo en el sistema GNU, GnuPG tienen estas propiedades.

    Dado que toda la seguridad está en la clave, es importante que sea muy difícil descifrar el tipo de clave. Esto quiere decir que el abanico de claves posibles, es decir, el espacio de posibilidades de claves, debe ser amplio.

    Actualmente los computadores y servidores pueden adivinar claves con extrema rapidez, y ésta es la razón por la cual el tamaño de la clave es importante en los criptosistemas modernos. El algoritmo de cifrado DES usa una clave de 56 bits, lo que significa que hay 2 elevado a 56 claves posibles. 2 elevado a 56 son 72.057.594.037.927.936 claves. Esto representa un número muy alto de claves, pero un PC de uso general puede comprobar todo el espacio posible de claves en cuestión de días. Una máquina especializada lo puede hacer en horas. Por otra parte, algoritmos de cifrado de diseño como 3DES, Blowfish e IDEA usan todos claves de 128 bits, lo que significa que existen 2 elevado a 128 claves posibles.

    Esto representa muchas más claves, y aun en el caso de que todos los PCs del planeta estuvieran cooperando, todavía tardarían más tiempo que la misma edad del universo en encontrar la clave. Incluso en la actualidad se pueden encontrar en el mercado claves a 256 bits, 512 bits y más.

    El principal problema con los sistemas de cifrado simétrico no está ligado a su seguridad, sino al intercambio de claves. Una vez que el remitente y el destinatario hayan intercambiado las claves pueden usarlas para comunicarse con seguridad, pero ¿qué canal de comunicación que sea seguro han usado para transmitirse la clave entre sí? Sería mucho más fácil para un atacante intentar interceptar una clave que probar las posibles combinaciones del espacio de claves. Es aquí donde entran la criptografía asimétrica y la criptografía híbrida.

    2.- Criptografía asimétrica

    Esta metodología usa un par de claves para el envío de mensajes. Las dos claves pertenecen a la misma persona a la que se ha enviado el mensaje. Una clave es pública y se puede entregar a cualquier persona. La otra clave es privada y el propietario debe guardarla de modo que nadie tenga acceso a ella. El remitente usa la clave pública del destinatario para cifrar el mensaje, y una vez cifrado, sólo la clave privada del destinatario podrá descifrar este mensaje.

    Los sistemas de cifrado de clave pública o sistemas de cifrado asimétricos se inventaron con el fin de evitar por completo el problema del intercambio de claves de los sistemas de cifrado simétricos. Con las claves públicas no es necesario que el remitente y el destinatario se pongan de acuerdo en la clave a emplear. Todo lo que se requiere es que, antes de iniciar la comunicación secreta, el remitente consiga una copia de la clave pública del destinatario. Es más, esa misma clave pública puede ser usada por cualquiera que desee comunicarse con su propietario. Por tanto, se necesitarán sólo n pares de claves por cada n personas que deseen comunicarse entre sí.

    Los sistemas de cifrado de clave pública se basan en funciones-trampa de un sólo sentido que aprovechan propiedades particulares, por ejemplo de los números primos. Una función de un sólo sentido es aquella cuya computación es fácil, mientras que su inversión resulta extremadamente difícil. Por ejemplo, es fácil multiplicar dos números primos juntos para obtener uno compuesto, pero es difícil factorizar uno compuesto en sus componentes primos.

    Con un buen sistema de cifrado simétrico y con un buen sistema de cifrado de clave pública toda la seguridad descansa en la clave y no en el algoritmo. Por lo tanto el tamaño de la clave es una medida de seguridad del sistema, pero no se puede comparar el tamaño del cifrado simétrico con el del cifrado de clave pública para medir la seguridad.

    En un hacking sobre un cifrado simétrico con una clave de un tamaño de 80 bits, el atacante debe probar hasta 281 claves para encontrar la clave correcta. En un ataque sobre un cifrado de clave pública con una clave de un tamaño de 512 bits, el atacante debe factorizar un número compuesto codificado en 512 bits (hasta 155 dígitos decimales). La cantidad de trabajo para el atacante será diferente dependiendo del cifrado que esté atacando. Mientras 128 bits son suficientes para cifrados simétricos, dada la tecnología de factorización de hoy en día, se recomienda el uso de claves públicas de 1024 bits para la mayoría de los casos.

    La mayor ventaja de la criptografía asimétrica es que se puede cifrar con una clave y descifrar con la otra, pero este sistema tiene bastantes desventajas, como por ejemplo que para una misma longitud de clave y mensaje se necesita mayor tiempo de proceso. Por otro lado, las claves deben ser de mayor tamaño que las simétricas y el mensaje cifrado ocupa mas espacio que el original.

    El sistema de criptografía de curva elíptica representa una alternativa menos costosa para este tipo de problemas. En este sentido las herramientas como PGP, SSH o la capa de seguridad SSL para la jerarquía de protocolos TCP/IP utilizan un híbrido formado por la criptografía asimétrica para intercambiar claves de criptografía simétrica, y la criptografía simétrica para la transmisión de la información.

    Algunos algoritmos reconocidos en esta área son:

  • Diffie-Hellman
  • RSA
  • DSA
  • ElGamal
  • Criptografía de curva elíptica

    En cuanto a los protocolos utilizados tenemos:

  • DSS ("Digital Signature Standard") con el algoritmo DSA ("Digital Signature Algorithm")
  • PGP
  • GPG una implementación de OpenPGP
  • SSH
  • SSL, ahora un estándar del IETF
  • TLS

    3.- Criptografía híbrida

    Es una mezcla de los anteriormente expuestos, que usa tanto un cifrado simétrico como uno asimétrico. Emplea el cifrado de clave pública para compartir una clave para el cifrado simétrico. El mensaje que se esté enviando en el momento, se cifra usando la clave y enviándolo al destinatario. Ya que compartir una clave simétrica no es seguro, la clave usada es diferente para cada sesión.

    Por ejemplo, tanto PGP como GnuPG usan sistemas de cifrado híbridos. La clave de sesión es cifrada con la clave pública, y el mensaje saliente es cifrado con la clave simétrica, todo combinado automáticamente en un sólo paquete. El destinatario usa su clave privada para descifrar la clave de sesión y acto seguido usa la clave de sesión para descifrar el mensaje.

    Un sistema de cifrado híbrido no es más fuerte que el de cifrado asimétrico o el de cifrado simétrico de los que hace uso, independientemente de cuál sea más débil. En PGP y GnuPG el sistema de clave pública es probablemente la parte más débil de la combinación. Sin embargo, si un atacante pudiera descifrar una clave de sesión, sólo sería útil para poder leer un mensaje. El atacante tendría que volver a empezar y descifrar otra clave de sesión para poder leer cualquier otro mensaje.

    LA FIRMA DIGITAL

    La firma digital es una de las aplicaciones más masivas de la criptografía informática y no es más que el resultado de aplicar cierto algoritmo matemático, denominado función hash, a su contenido.

    Para que sea de utilidad, la función hash debe satisfacer dos importantes requisitos. Primero, debe ser difícil encontrar dos documentos cuyo valor para la función "hash" sea idéntico. Segundo, dado uno de estos valores, debería ser difícil recuperar el documento que lo produjo.

    Algunos sistemas de cifrado de clave pública se pueden usar para firmar documentos. El firmante cifra el documento con su clave privada y cualquiera que quiera comprobar la firma y ver el documento, no tiene más que usar la clave pública del firmante para descifrarla.

    Existen funciones "hash" específicamente designadas para satisfacer estas dos importantes propiedades, como SHA y MD5. Para usarlos, el documento se firma con una función "hash", cuyo resultado es la firma. Otra persona puede comprobar la firma aplicando la misma función a su copia del documento y comparar el resultado con el del documento original. Si concuerdan, es casi seguro que los documentos son idénticos.

    El problema se presenta cuando un atacante quiere interferir en la comprobación de la firma. Si el documento y la firma se enviaran descifrados, este individuo podría modificar el documento y generar una firma correspondiente sin que lo supiera el destinatario. Si sólo se cifrara el documento, un atacante podría manipular la firma y hacer que la comprobación de ésta fallara. Una tercera opción es usar un sistema de cifrado híbrido para cifrar tanto la firma como el documento. El firmante usa su clave privada, y cualquiera puede usar su clave pública para comprobar la firma y el documento.

    El problema más serio es que esto no protege de manipulaciones ni a la firma, ni al documento. Con este método, sólo la clave de sesión del sistema de cifrado simétrico es cifrada usando la clave privada del firmante. Cualquiera puede usar la clave pública y recuperar la clave de sesión. Por lo tanto, resulta obvio usarla para cifrar documentos substitutos y firmas para enviarlas a terceros en nombre del remitente.

    La solución está en usar un sistema de clave pública para cifrar sólo la firma. En particular, el valor "hash" se cifra mediante el uso de la clave privada del firmante, de modo que cualquiera pueda comprobar la firma usando la clave pública correspondiente. El documento firmado se puede enviar usando cualquier otro algoritmo de cifrado, o incluso ninguno si es un documento público. Si el documento se modifica, la comprobación de la firma fallará, pero esto es precisamente lo que la verificación se supone, que debe descubrir.

    El Digital Signature Algorithm es un algoritmo de firmado de clave pública que funciona como hemos descrito. DSA es el algoritmo principal de firmado que se usa en GnuPG.

    El uso de la firma digital es tan extendido que actualmente se utiliza para actividades como el envío de mensajes con autenticidad asegurada, invitaciones electrónicas, dinero electrónico e incluso, el voto electrónico.