
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Carrera de Analista de Sistemas
”Sistemas de Computación”
Trabajo monográfico
Tema: Criptografía
Docente: Pedro Ruiz Cresta
Alumno: Alfonso R. Quinzio
Matrícula: C-2190
** 2008 **
Introducción

Criptografía.
(Del griego κρυπτός, oculto; y γραφή, escritura).
f. Arte de escribir con clave secreta o de un modo enigmático.
Del Diccionario de
Desde la antigüedad, al menos cinco siglos antes de Cristo, se conocen antecedentes documentados de las técnicas de cifrado de mensajes. Como es frecuente en la historia de la humanidad, los avances tecnológicos siempre han sido impulsados y estimulados con fines bélicos o militares. Eventualmente estas mejoras son luego publicadas y volcadas al uso de la población civil.
Tal como lo indica la definición académica, esta disciplina tuvo en sus orígenes un carácter de arte, sin tener reglas establecidas para los procesos de cifrado y descifrado, dependiendo su mayor o menor éxito en la lucidez y creatividad de las personas abocadas al diseño de sus técnicas. Por tal motivo, los sistemas existentes entonces se limitaban a la sustitución de unos símbolos por otros en el mensaje original, o bien por la permutación del orden de su aparición, o por la combinación de ambos.
Está claro que es fundamental para el correcto proceso de descifrado que el receptor del mensaje conozca la técnica del cifrado, y que este proceso se trate de una operación reversible, que no introduzca ambigüedades o incertezas en la interpretación del mensaje reconstruído.
Hasta mediados del siglo XIX, las técnicas criptográficas se mantuvieron en la frontera de operaciones misteriosas o caprichosas, sin posibilidad de sistematizar su evaluación y análisis. Entonces, comienzan a incorporarse en su desarrollo algunas herramientas de origen matemático. Hasta entonces, las operaciones de cifrado y descifrado se realizaban manualmente. Sin embargo durante la primera mitad del siglo XX, y como consecuencia de
En la segunda mitad del siglo XX, con la aparición primero del transistor, y luego de las computadoras digitales, se deja de lado lo artesanal de esta disciplina, y adquiere las características de ciencia, fusionando los fundamentos matemáticos y las herramientas computacionales, y adquiriendo un enorme desarrollo, con infinidad de aplicaciones en la sociedad civil, de tal modo que hoy podemos hacer operaciones bancarias y comerciales por internet, autenticar correos electrónicos, verificar la correcta descarga e integridad de un archivo de gran tamaño, comprobar el estado sin corrupción de los archivos de un sistema operativo, etc.
Conceptos.
Para poder analizar las técnicas, consideraremos la existencia de ciertos elementos esenciales y comunes a todos los sistemas criptográficos.
El Emisor (E) es la persona o entidad que genera u origina un mensaje o flujo de datos (m), destinados a otra persona que será el Receptor (R), cuando la transmisión del mensaje se considera insegura o vulnerable, ya sea por características físicas o técnicas del medio o canal de transmisión, o bien porque la información contenida en el mensaje resulta de interés por su valor económico o estratégico para terceras personas. Un canal es considerado inseguro cuando la información transmitida a su través es susceptible de ser modificada en forma voluntaria o accidental, o bien la consistencia o integridad del mensaje se vea modificada entre el emisor y el receptor.
La distorsión o corrupción del mensaje puede ser de diferente naturaleza, y podemos distinguir cuatro casos: la interrupción o mutilación del mensaje, por la cual al receptor llega sólo una parte del mensaje original; en segundo caso tenemos la intercepción, por medio de la cual una tercera persona recibe parte o la totalidad del mensaje destinado al receptor; la modificación voluntaria o accidental, en la cual el contenido del mensaje recibido es diferente del mensaje despachado por el emisor; y por último la adulteración o intoxicación del mensaje, mediante la que un operador extraño incorpora en forma maliciosa información que no pertenecía al mensaje original, y en cuyo caso el receptor puede considerar el mensaje como válido sin poder distinguir entre la información original y la agregada posteriormente.
Los mecanismos clásicos de cifrado consisten en aplicar una función transformadora sobre el mensaje original, función que admite una inversa y por lo tanto esa transformación es reversible, y además es conocida tanto para emisor como receptor. Estos sistemas de cifrado consisten en operaciones de sustitución y transposición de los caracteres integrantes del mensaje. Estos algoritmos son conocidos como “simétricos”, siempre devuelven la misma salida a una determinada entrada, la máxima debilidad de dichos sistemas es que son lineales, de tal modo que siempre corresponden los mismos caracteres o grupos a iguales caracteres o grupos en el mensaje original, y por lo tanto son susceptibles de ser atacados por medio de computadoras con el fin de establecer la clave o función de cifrado. Con el advenimiento de las computadoras digitales y una asombrosa capacidad de cálculo, es posible intentar los ataques por medio de análisis estadísticos, de modo de poder determinar el idioma del mensaje original y a partir de ahí, descifrarlo por completo; y por otra parte el ataque denominado de “fuerza bruta”, que consiste en probar con todas las combinaciones posibles.
Hoy en día los algoritmos criptográficos más modernos consisten en funciones “asimétricas” con un dominio de salidas esperables mucho más amplio, pero del mismo modo reversibles. Por otra parte, el diseño de algoritmo de cifrado se ha orientado a mecanismos de encriptación no lineales, y que a partir del mensaje codificado brinden pocas o ninguna pista acerca del idioma original del mensaje en claro, y además que la cantidad de combinaciones posibles sea tan enorme que se deseche la posibilidad de atacarlo por fuerza bruta, aún disponiendo de super computadoras.
Algoritmos simétricos. Características.
Una gran parte de los algoritmos de cifrado simétrico operan dividiendo el mensaje que se pretende codificar en bloques de tamaño fijo, y aplican sobre cada uno de ellos una combinación más o menos compleja de operaciones de confusión (sustituciones) y difusión (transposiciones). Estos algoritmos se denominan, en general, cifrados por bloques.
Recordemos que la confusión consiste en tratar de ocultar la relación que existe entre el texto claro, el texto cifrado y la clave. Un buen mecanismo de confusión hará demasiado complicado extraer relaciones estadísticas entre las tres cosas. Por su parte la difusión trata de repartir la influencia de cada bit del mensaje original lo más posible entre el mensaje cifrado.
Un hecho digno de ser tenido en cuenta es que la confusión por sí sola resulta suficiente, ya que si establecemos una tabla de sustitución completamente diferente para cada clave con todos los textos claros posibles tendremos un sistema extremadamente seguro. Sin embargo, dichas tablas ocuparían cantidades astronómicas de memoria, por lo que en la práctica resultan imposibles de implementar. Por ejemplo, un algoritmo que codificara bloques de 128 bits empleando una clave de 80 bits necesitaría una tabla de sustitución con un tamaño del orden de 10^64 bits.
Lo que en realidad se hace para conseguir algoritmos fuertes sin necesidad de almacenar tablas enormes es intercalar la confusión (sustituciones simples, con tablas pequeñas) y la difusión (permutaciones). Esta combinación se conoce como cifrado de producto. La mayoría de los algoritmos se basan en diferentes capas de sustituciones y permutaciones, estructura que denominaremos Red de Sustitución-Permutación. En muchos casos el criptosistema no es más que una operación combinada de sustituciones y permutaciones, repetida n veces, como ocurre con DES.
El algoritmo DES
DES (Data Encryption System), es el algoritmo simétrico más extendido mundialmente. Se basa en el algoritmo LUCIFER, que había sido desarrollado por IBM a principios de los setenta, y fue adoptado como estándar por el Gobierno de los EE.UU. para comunicaciones no clasificadas en 1976. En realidad
A mediados de 1998, se demostró que un ataque por la fuerza bruta a DES era viable, debido a la escasa longitud que emplea en su clave. No obstante, el algoritmo aún no ha demostrado ninguna debilidad grave desde el punto de vista teórico, por lo que su estudio sigue siendo plenamente interesante. El algoritmo DES codifica bloques de 64 bits empleando claves de 56 bits.
Claves débiles en DES
El algoritmo DES presenta algunas claves débiles. Distinguiremos entre claves débiles y claves semidébiles. Entendemos por claves débiles y semi débiles a algunas secuencias capaces de generar llaves públicas que tienen una frecuencia de repetición mayor de la esperable pero, en cualquier caso, el número de llaves de este tipo es tan pequeño en comparación con el número total de posibles claves, que no debe suponer un motivo de preocupación.
Variantes de DES
A mediados de julio de 1998, una empresa sin ánimo de lucro, llamada EFF (Electronic Frontier Foundation), logró fabricar una máquina capaz de descifrar un mensaje DES en menos de tres días. Curiosamente, pocas semanas antes, un alto cargo de
A pesar de su caída, DES sigue siendo ampliamente utilizado en multitud de aplicaciones, como por ejemplo las transacciones de los cajeros automáticos. De todas formas, el problema real de DES no radica en su diseño, sino en que emplea una clave demasiado corta (56 bits), lo cual hace que con el avance actual de las computadoras los ataques por la fuerza bruta comiencen a ser opciones realistas. Mucha gente se resiste a abandonar este algoritmo, precisamente porque ha sido capaz de sobrevivir durante veinte años sin mostrar ninguna debilidad en su diseño, y prefieren proponer variantes que, de un lado evitarían el riesgo de tener que confiar en algoritmos nuevos, y de otro permitirían aprovechar gran parte de las implementaciones por hardware existentes de DES.
El algoritmo IDEA
El algoritmo IDEA (International Data Encryption Algorithm) es bastante más joven que DES, pues data de 1992. Para muchos constituye el mejor y más seguro algoritmo simétrico disponible en la actualidad. Trabaja con bloques de 64 bits de longitud y emplea una clave de 128 bits. Como en el caso de DES, se usa el mismo algoritmo tanto para cifrar como para descifrar. IDEA es un algoritmo bastante seguro, y hasta ahora se ha mostrado resistente a multitud de ataques, entre ellos el criptoanálisis diferencial. No presenta claves débiles, y su longitud de clave hace imposible en la práctica un ataque por la fuerza bruta, al menos en los próximos años. Como ocurre con todos los algoritmos simétricos de cifrado por bloques, IDEA se basa en los conceptos de confusión y difusión, haciendo uso de las siguientes operaciones elementales (todas ellas fáciles de implementar): XOR; suma módulo 2^16; y producto módulo 2^16 + 1.
El algoritmo Rijndael (AES)
En octubre de 2000 el NIST (National Institute for Standards and Technology) anunciaba oficialmente la adopción del algoritmo Rijndael como nuevo Estándar Avanzado de Cifrado (AES) para su empleo en aplicaciones criptográficas no militares, culminando así un proceso de más de tres años, encaminado a proporcionar a la comunidad internacional un nuevo algoritmo de cifrado potente, eficiente, y fácil de implementar. DES tenía por fin un sucesor.
La palabra Rijndael, en adelante lo denominaremos AES, es un acrónimo formado por los nombres de sus dos autores, los belgas Joan Daemen y Vincent Rijmen. Su interés radica en que todo el proceso de selección, revisión y estudio tanto de este algoritmo como de los restantes candidatos, se ha efectuado de forma pública y abierta, por lo que, prácticamente por primera vez, toda la comunidad criptográfica mundial ha participado en su análisis, lo cual convierte a Rijndael en un algoritmo perfectamente digno de la confianza de todos.
AES es un sistema de cifrado por bloques, diseñado para manejar longitudes de clave y de bloque variables, ambas comprendidas entre los 128 y los 256 bits. Realiza varias de sus operaciones internas a nivel de byte. El resto de operaciones se efectúan en términos de registros de 32 bits. Sin embargo, en algunos casos, una secuencia de 32 bits se toma como un polinomio de grado inferior a 4, cuyos coeficientes son a su vez polinomios. Si bien, como ya se ha dicho, este algoritmo soporta diferentes tamaños de bloque y clave, en el estándar adoptado por el gobierno estadounidense en noviembre de 2001, se especifica una longitud fija de bloque de 128 bits, y la longitud de clave a escoger entre 128, 192 y 256 bits.
Estructura de AES.
AES, a diferencia de algoritmos como DES, no posee estructura de red de Feistel. En su lugar se ha definido cada ronda como una composición de cuatro funciones invertibles diferentes, formando tres capas, diseñadas para proporcionar resistencia frente a criptoanálisis lineal y diferencial. Cada una de las funciones tiene un propósito preciso: La capa de mezcla lineal, funciones para desplazar fila y mezclar columnas, permite obtener un alto nivel de difusión a lo largo de varias rondas. La capa no lineal, función byte sub, consiste en la aplicación paralela de cajas con propiedades óptimas de no linealidad. La capa de adición de clave es un simple or-exclusivo entre el estado intermedio y la subclave correspondiente a cada ronda.
Algoritmos asimétricos. Características.
El Algoritmo RSA
De entre todos los algoritmos asimétricos, quizá RSA sea el más sencillo de comprender e implementar. Sus claves sirven indistintamente tanto para codificar como para autentificar. Debe su nombre a sus tres inventores: Ronald Rivest, Adi Shamir y Leonard Adleman, y estuvo bajo patente de los Laboratorios RSA hasta el 20 de septiembre de 2000, por lo que su uso comercial estuvo restringido hasta esa fecha. De hecho, las primeras versiones de PGP lo incorporaban como método de cifrado y firma digital, pero se desaconsejó su uso a partir de la versión 5 en favor de otros algoritmos, que por entonces sí eran libres.
Sujeto a múltiples controversias, desde su nacimiento nadie ha conseguido probar o rebatir su seguridad, pero se le tiene como uno de los algoritmos asimétricos más seguros. RSA se basa en la dificultad para factorizar grandes números. Las claves pública y privada se calculan a partir de un número que se obtiene como producto de dos primos grandes. El atacante se enfrentará, si quiere recuperar un texto claro a partir del criptograma y la clave pública, a un problema de factorización o tendrá que resolver un logaritmo discreto.
Seguridad del Algoritmo RSA
Técnicamente no es del todo cierto que el algoritmo RSA deposite su fuerza en el problema de la factorización. En realidad el hecho de tener que factorizar un número para descifrar un mensaje sin la clave privada es una mera conjetura. Nadie ha demostrado que no pueda surgir un método en el futuro que permita descifrar un mensaje sin usar la clave privada y sin factorizar el módulo n. De todas formas, este método podría ser empleado como una nueva técnica para factorizar números enteros, por lo que la anterior afirmación se considera en la práctica cierta. De hecho, existen estudios que demuestran que incluso recuperar sólo algunos bits del mensaje original resulta tan difícil como descifrar el mensaje entero. Aparte de factorizar n, podríamos intentar calcular n directamente, o probar por la fuerza bruta tratando de encontrar la clave privada. Ambos ataques son más costosos computacionalmente que la propia factorización de n, afortunadamente.
Otro punto que cabría preguntarse es qué pasaría si los primos p y q que escogemos realmente fueran compuestos. Recordemos que los algoritmos de prueba de primos que conocemos son probabilísticos, por lo que jamás tendremos la absoluta seguridad de que p y q son realmente primos. Pero obsérvese que si aplicamos, por ejemplo, treinta pasadas del algoritmo de Rabin-Miller las probabilidades de que el número escogido pase el test y siga siendo primo son de una contra 2^60, por lo tanto el algoritmo sigue siendo fuerte en este sentido. Por otra parte, si p o q fueran compuestos, el algoritmo RSA simplemente no funcionaría correctamente.
Vulnerabilidades de RSA
Aunque el algoritmo RSA es bastante seguro conceptualmente, existen algunos puntos débiles en la forma de utilizarlo que pueden ser aprovechados por un atacante. Claves Débiles en RSA, se puede demostrar matemáticamente que existen ciertos casos para los cuales el algoritmo RSA deja el mensaje original tal cual. En realidad, siempre hay mensajes que quedan inalterados al ser codificados mediante RSA, sea cual sea el valor de n. No obstante, como medida de precaución, se puede calcular n a la hora de generar las claves pública y privada.
Algoritmo de Diffie-Hellman
Es un algoritmo asimétrico, basado en el problema de Diffie-Hellman, que se emplea fundamentalmente para acordar una clave común entre dos interlocutores, a través de un canal de comunicación inseguro. La ventaja de este sistema es que no son necesarias claves públicas en el sentido estricto, sino una información compartida por los dos comunicantes.
Algoritmo de El Gamal
Fue diseñado en un principio para producir firmas digitales, pero posteriormente se extendió también para codificar mensajes. Se basa en el problema de los logaritmos discretos, que está íntimamente relacionado con el de la factorización, y en el de Diffie-Hellman.
Algoritmo de Rabin
El sistema de clave asimétrica de Rabin se basa en el problema de calcular raíces cuadradas módulo un número compuesto. Este problema se ha demostrado que es equivalente al de la factorización de dicho número.
Algoritmo MD5
Se trata de uno de los más populares algoritmos de generación de signaturas, debido en gran parte a su inclusión en las primeras versiones de PGP. Resultado de una serie de mejoras sobre el algoritmo MD4, diseñado por Ron Rivest, procesa los mensajes de entrada en bloques de 512 bits, y produce una salida de 128 bits. Siendo m un mensaje de b bits de longitud, en primer lugar se alarga m hasta que su longitud sea exactamente 64 bits inferior a un múltiplo de 512. El alargamiento se lleva a cabo añadiendo un 1 seguido de tantos ceros como sea necesario. En segundo lugar, se añaden 64 bits con el valor de b, empezando por el byte menos significativo. De esta forma tenemos el mensaje como un número entero de bloques de 512 bits, y además le hemos añadido información sobre su longitud.
Algoritmo SHA-1
El algoritmo SHA-1 fue desarrollado por
El algoritmo es similar a MD5, con la diferencia de que usa la ordenación big endian. Se inicializa de igual manera, es decir, añadiendo al final del mensaje un uno seguido de tantos ceros como sea necesario hasta completar 448 bits en el último bloque, para luego yuxtaponer la longitud en bits del propio mensaje —en este caso, el primer byte de la secuencia será el más significativo—. A diferencia de MD5, SHA-1 emplea cinco registros de 32 bits en lugar de cuatro.
Aplicaciones.
Protocolos de Comunicación Segura
Quizás la aplicación más antigua de la criptografía sea precisamente la de establecer canales de comunicaciones seguros entre dos puntos. Tanto un soldado galopando a través de territorio enemigo hasta un haz láser, pasando por un cable telefónico, el ser humano ha empleado infinidad de medios para poder enviar sus mensajes, cada uno de ellos con sus propias particularidades. Pero si hay una característica que podemos considerar común a todos los canales de comunicaciones, es la ausencia de control que sobre el mismo poseen ambos interlocutores. En el caso del jinete, sería muy interesante poder crear un pasillo de territorio amigo a lo largo de todo su trayecto, pero en ese caso su propia tarea carecería prácticamente de sentido. En general, hemos de considerar que nuestros mensajes son depositados en un medio ajeno a nosotros, y usualmente hostil, y que los medios que apliquemos para su protección deben ser válidos en los casos más desfavorables.
La criptografía, como ya hemos, proporciona mecanismos fiables para evitar los dos peligros que acabamos de mencionar. En general, cada una de las aplicaciones concretas que necesiten de estas técnicas poseerá unas características específicas, por lo que en cada caso habrá una combinación de algoritmos criptográficos que permitirá proporcionar al sistema el nivel de seguridad necesario.
Estas combinaciones de algoritmos se estructurarán finalmente en forma de protocolos, para proporcionar métodos de comunicación segura normalizados.
Protocolos TCP/IP
El conjunto básico de protocolos sobre los que se construye la red Internet se conoce popularmente como TCP/IP, agrupación de los nombres de dos de los elementos más importantes, que no los únicos, de la familia: TCP (Transmission Control Protocol) e IP (Internet Protocol).
El modelo de comunicaciones sobre el que se basa Internet se estructura en forma de capas apiladas, de manera que cada una de ellas se comunica con las capas inmediatamente superior e inferior, logrando diversos niveles de abstracción, que permiten intercambiar información de forma transparente entre ordenadores. La consecuencia más importante de este enfoque es que dos dispositivos cualesquiera, que pueden estar conectados a Internet por medios totalmente distintos: fibra óptica, cable de cobre, láser, ondas electromagnéticas, etc. y separados por multitud de enlaces diferentes: satélite, cables submarinos, redes inalámbricas, pueden conectarse entre ellos simplemente con que dispongan de una implementación de TCP/IP.
Protocolo SSL
El protocolo SSL (Secure Sockets Layer), desarrollado originalmente por la empresa Netscape, permite establecer conexiones seguras a través de Internet, de forma sencilla y transparente. Se sitúa en la capa de aplicación, directamente sobre el protocolo TCP, y aunque puede proporcionar seguridad a cualquier aplicación que corra sobre TCP, se usa principalmente para proporcionar seguridad a los protocolos HTTP (web), SMTP (email) y NNTP (news), dando lugar en el primero de los casos a los servidores web seguros, cuya URL comienza por el prefijo https://. Su fundamento consiste en interponer una fase de codificación de los mensajes antes de enviarlos a través de la red. Una vez que se ha establecido la comunicación, cuando una aplicación quiere enviar información a otra computadora, la capa SSL la recoge y la codifica, para luego enviarla a su destino a través de la red. Análogamente, el módulo SSL del otro ordenador se encarga de decodificar los mensajes y se los pasa como texto claro a la aplicación destinataria.
SSL también incorpora un mecanismo de autenticación que permite garantizar la identidad de los interlocutores. Típicamente, ya que este protocolo se diseñó originalmente para establecer comunicaciones web, el único que suele autenticarse es el servidor, aunque también puede realizarse una autenticación mutua.
Protocolo TLS
TLS, descrito en el documento RFC 2246, es un protocolo basado en la versión 3.0 de SSL, si bien con una serie de mejoras que lo hacen incompatible con este último. Una de las ventajas que proporciona sobre SSL es que puede ser iniciado a partir de una conexión TCP ya existente, lo cual permite seguir trabajando con los mismos puertos que los protocolos no cifrados. Mientras que SSL es un protocolo incompatible con TCP, lo cual significa que no podemos establecer una conexión de un cliente TCP a un sevidor SSL ni al revés, y por tanto es necesario diferenciarlos utilizando distintos números de puerto (80 para un servidor web normal y 443 para un servidor web sobre SSL), con TLS puede establecerse la conexión normalmente a través de TCP y el puerto 80, y luego activar sobre el mismo el protocolo TLS.
Protocolos IPsec
IPsec es un estándar que proporciona cifrado y autenticación a los paquetes IP, trabajando en la capa de red. En lugar de tratarse de un único protocolo, IPsec es en realidad un conjunto de protocolos, definidos en diversos RFCs, principalmente en el 2401, encaminados a proporcionar autenticación, confidencialidad e integridad a las comunicaciones IP. Su carácter obligatorio dentro del estándar IPv6, recordemos que en IPv4, la versión más empleada en la actualidad de este protocolo, es opcional, hará con seguridad que la popularidad de IPsec crezca al mismo ritmo que la implantación de la nueva versión del protocolo IP.
Debido a que algunos de los servicios que IPsec proporciona necesitan de la distribución e intercambio de las claves necesarias para cifrar, autenticar y verificar la integridad de los paquetes, es necesario que éste trabaje en consonancia con un conjunto externo de mecanismos que permita llevar a cabo esta tarea, tales como IKE, SKIP o Kerberos.
Autenticación, certificados y firmas digitales
Cuando se establece una comunicación de cualquier tipo es necesario poder asegurar que los mensajes no han sufrido alteraciones, es decir, que la información recibida coincide exactamente con la enviada. En muchos casos, existe el requerimiento adicional de conocer la identidad de nuestro interlocutor, sea éste una persona o algún tipo de dispositivo, para evitar que sea suplantado por un impostor. Denominaremos en general autenticación a las operaciones consistentes en verificar tanto la identidad de nuestro interlocutor como la integridad de los mensajes que de él recibimos.
Independientemente de que la operación de autenticación se lleve a cabo sobre el contenido de una comunicación o sobre los propios interlocutores, ésta puede realizarse en el mismo momento, de forma interactiva, como cuando se introduce una contraseña para acceder a un sistema, o dejarse pospuesta para ser realizada posteriormente fuera de línea, como cuando se firma digitalmente un mensaje, en cuyo caso la firma puede ser verificada tantas veces como se desee, una vez finalizada la comunicación.
Firmas Digitales
Una firma digital es una secuencia de bits que se añade a una pieza de información cualquiera, y que permite garantizar su autenticidad de forma independiente del proceso de transmisión, tantas veces como se desee. Presenta una analogía directa con la firma manuscrita, y para que sea equiparable a esta última debe cumplir las siguientes propiedades:
- Va ligada indisolublemente al mensaje. Una firma digital válida para un documento no puede ser válida para otro distinto.
- Sólo puede ser generada por su legítimo titular. Al igual que cada persona tiene una forma diferente de escribir, y que la escritura de dos personas diferentes puede ser distinguida mediante análisis caligráficos, una firma digital sólo puede ser construida por la persona o personas a quienes legalmente corresponde.
- Es públicamente verificable. Cualquiera puede comprobar su autenticidad en cualquier momento, de forma sencilla.
Certificados Digitales
Un certificado digital es esencialmente una clave pública y un identificador, firmados digitalmente por una autoridad de certificación, y su utilidad es demostrar que una clave pública pertenece a un usuario concreto. Evidentemente, la citada autoridad de certificación debe encargarse de verificar previamente que la clave pública es auténtica.
Verificación de Certificados Digitales
Una autoridad de certificación suele tener un ámbito relativamente local, como puede ser una empresa, un campus universitario o un país entero. Si fuera necesario verificar un certificado digital de un certificador ajeno, del cual desconocemos su fiabilidad, existe la posibilidad de que la clave pública del propio certificador esté a su vez firmada por otra entidad de la que sí nos fiemos, y de esta forma propagar nuestra confianza hacia la entidad certificadora en cuestión. Esta circunstancia puede ser aprovechada de forma jerárquica, como en las PKI (Infraestructuras de Clave Pública), o distribuida, como hace PGP. En esta modalidad, las entidades certificadoras se organizan en forma de árbol por niveles, de tal manera que las entidades certificadoras de un nivel poseen certificados digitales emitidos por autoridades de niveles superiores. Podremos verificar satisfactoriamente un certificado digital cualquiera, siempre que poseamos la clave pública de un certificador de primer nivel, que son muy pocos e internacionalmente reconocidos.
Como es natural, las entidades certificadoras que generen certificados finales tendrán la única responsabilidad de comprobar de manera fehaciente que cada clave pública pertenece a su propietario. Sin embargo, aquellas entidades que certifiquen a otras entidades, deberán garantizar además que estas últimas emplean mecanismos adecuados para comprobar las identidades de sus clientes. De lo contrario, alguien podría crear una autoridad de certificación, obtener el correspondiente certificado digital de niveles superiores, y luego emitir certificados falsos.
El esquema jerárquico es realmente simple y efectivo, pero presenta un problema importante: si uno de los certificadores resulta comprometido, todos sus descendientes en el árbol quedan invalidados. Esto obliga, por un lado, a que las autoridades de certificación sean lo más transparentes posible, y por otro a que se mantengan siempre al día las listas de revocación de certificados.
Infraestructuras Distribuidas
Frente a la estructura jerárquica, se puede construir un esquema distribuido de certificación de claves, también conocido como anillo de confianza, ring of trust en inglés, en el que todos los usuarios actúan como autoridades de certificación. Este sistema presenta la ventaja de ser muy resistente, ya que no depende de un pequeño grupo de entidades certificadoras, pero tiene el inconveniente de ser considerablemente más complejo de manejar para los propios usuarios.
Puesto que no existen autoridades de certificación centralizadas, cada usuario tiene que responsabilizarse de lo siguiente:
- Verificar la autenticidad de todas aquellas claves públicas que le sea posible.
- Certificar aquellas claves sobre las que tenga absoluta certeza de que pertenecen a sus propietarios.
- Elegir en qué condiciones confiará en los certificados de otro usuario.
Según el grado de confianza que presente un usuario, uno puede elegir creerse todos sus certificados, no aceptar ninguno, pensemos en un usuario que certifica todo lo que cae en sus manos, sin hacer ninguna comprobación, o aceptar aquellos que, además, posean firmas de otros usuarios.
Como puede comprobarse, en este esquema la confianza en una entidad certificadora puede tomar muchos valores, frente a los dos (confiable y no confiable) que puede tomar en un esquema jerárquico. Se establece, de hecho, una gradación de niveles de confianza que, como resultado, proporciona a su vez grados de confianza sobre las claves públicas que nos encontremos, variando desde desconfianza total hasta confianza absoluta.
An Introduction to Cryptography, Second Edition
An Introduction to Cryptography, Second Edition (Discrete Mathematics and Its Applications); Richard A. Mollin; Chapman & Hall/CRC; ISBN: 1584886188; 2006
Cryptography
Cryptography: theory and practice; Douglas R. Stinson;
ISBN: 0849385210; 1995
Modern Cryptography
Modern Cryptography; theory and practice; Wenbo Mao; Upper Saddle River, NJ; Prentice Hall; ISBN: 0130669431; 2004
Advances in Coding Theory and Crytography
Advances in Coding Theory and Crytography (Series on Coding Theory and Cryptology); T. Shaska, W. C. Huffman, D. Joyner, V. Ustimenko; World Scientific Publishing Company; ISBN: 9812707018; 2007
Handbook of applied cryptography
Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone; Boca Raton; CRC Press; ISBN: 0849385237; 1997
Cryptography for dummies
Chey Cobb; Hoboken, NJ; Wiley Pub; ISBN: 0764541889; 2004
Applied cryptography
Applied cryptography: protocols, algorithms, and source code in C; Bruce Schneier; New York; Wiley; ISBN: 0471128457; 1996
Aplicaciones Criptográficas
Aplicaciones criptográficas, Segunda edición; Jorge Ramió Aguirre; Departamento de Publicaciones, Universidad Politécnica de Madrid, Madrid; ISBN 83-87238-57-2; 1999
Seguridad Informática y Criptografía
Seguridad Informática y Criptografía, Cuarta edición; Jorge Ramió Aguirre; Madrid; ISBN 84-86451-69-8; 2006
Criptografía y Seguridad en Computadores.
Cuarta edición; Manuel Jose Lucena López; Departamento de Publicaciones; Universidad de Jaén; España; 2008.
No hay comentarios:
Publicar un comentario