ASPECTOS TÉCNICOS DE LA CERTIFICACIÓN DIGITAL Autor: Mtro. José Fernando Irabien Chedraui A pocos días de entrar en vigor el Decreto por el que se reforman y adicionan diversas disposiciones del Código de Comercio en Materia de Firma Electrónica, es necesario que nos demos a la tarea de difundir nuestros conocimientos en esta materia, debemos infundir en la sociedad una cultura tanto de legalidad, como de convivencia diaria con las Tecnologías de la Información y de las Comunicaciones. Al hablar de la firma digital, nos referiremos especialmente a uno de los tipos de firma “electrónica”, basada en un sistema criptográfico, o criptosistema, de clave pública. La criptografía es el estudio de la escritura oculta. Etimológicamente proviene del griego ‘Kryptos’, que quiere decir oculto y ‘Graphos’, escritura. A lo largo de la historia la criptografía ha sido empleada con el fin de mantener secretos. El primer uso documentado de la criptografía con el que contamos fue alrededor del año 1900 A.C., en Egipto, cuando un escriba utilizó jeroglíficos que no eran iguales a los que utilizaban en aquella época para realizar una inscripción. Otro caso es el de una tablilla en Mesopotamia que data del año 1500 A.C. y contenía una formula “cifrada” para la fabricación de piezas de porcelana. Alrededor de los años 50-60 A.C., Julio Cesar utilizaba una sustitución alfabética simple, cada letra del mensaje era sustituida por la segunda letra siguiente del alfabeto, por ejemplo: ‘hola’ = ‘jqnc’; es decir, utilizaba criptografía de sustitución. Gabriel de Lavinde hizo de la criptografía una ciencia más formal cuando publicó su primer manual sobre Criptología en 1379. El Código Morse, desarrollado por Samuel Morse en 1832, aunque no es propiamente un código 1 como los otros, es una forma de cifrar las letras del alfabeto en sonidos o en destellos de luz, largos y cortos. Para comenzar a estudiar el estatus que guarda actualmente la criptografía, considero importante citar textualmente a Bruce Schneier, autor de la obra “Applied Cryptography”, considerada por muchos la Biblia de la criptografía, quien señaló en una conferencia ante un grupo de especialistas en la materia, que “el `mantra´ de cualquier buen ingeniero de seguridad es: «La seguridad no es un producto, sino un proceso.» Es algo más que diseñar criptografía fuerte en un sistema; es diseñar el sistema por completo de manera que todas las medidas de seguridad, incluyendo la criptografía, funcionen al unísono”1. La transformación criptográfica, debemos entenderla como la sucesión de pasos que permite convertir un texto en claro en un texto cifrado o viceversa. En la práctica consta de dos componentes: El algoritmo criptográfico stricto sensu: reglas de transformación, comunes a todos los usuarios que utilizan la misma familia de transformaciones. La clave o claves: parámetros específicos de cada usuario o de cada comunicación, necesarios para aplicar la transformación criptográfica. Entre los métodos básicos de cifrado, los más comunes son los siguientes: De sustitución.- Consiste en la sustitución de cada símbolo o conjunto de símbolos del mensaje por otros símbolos. De transposición.- Consiste en la disposición de los símbolos del mensaje en un orden diferente del original. Algebraicos.- El mensaje se considera como un número y se manipula utilizando transformaciones aritméticas, fáciles de usar hoy gracias a las computadoras. 1 Schneier, Bruce. Creador de los algoritmos criptográficos Blowfish y Twofish. 2 Igualmente es importante mencionar que la diferencia que existe entre un algoritmo de cifrado público y uno privado, estriba principalmente en que en el privado, la seguridad se basa en mantener secreto el método de transformación; mientras que un algoritmo público, por utilizar un método de transformación público, la seguridad depende del secreto de la clave. Siguiendo a Andrés Font, podemos entender la criptografía como “el estudio y desarrollo de medios que hagan una información indescifrable para todo el que no sea destinatario legítimo de la misma... La importancia que está adquiriendo actualmente la criptografía es paralela a la difusión generalizada de las comunicaciones electrónicas a través de Internet, fundamentalmente el correo electrónico y la necesidad de asegurar que determinadas informaciones (número de la tarjeta de crédito, e-mail confidenciales, etc.) no son interceptadas. La criptografía permite que prácticamente todos los procesos, transacciones y comunicaciones puedan realizarse de forma segura”2. Por su parte, Apolonia Martínez Nadal nos dice que “la criptografía es la ciencia que se ocupa de transformar mensajes en formas aparentemente ininteligibles y devolverlos a su forma original”3. De una forma entendible para todos, se puede decir que la criptografía se basa en el empleo de algoritmos matemáticos que contienen una variable de bits que sirven para cifrar los datos contenidos en un mensaje, haciéndolos ilegibles para cualquier persona distinta al destinatario, mediante la aplicación de las llaves pública y privada de quien envía el mensaje. Así, podemos clasificar a los sistemas criptográficos simétricos y asimétricos e híbridos: 2 Font, Andrés. “Seguridad y Certificación en el Comercio Electrónico”. Ed. Fundación Retevisión. Madrid, 2000, p. 53. 3 Martínez Nadal, Apolonia. “Comercio Electrónico, Firma Digital y Autoridades de Certificación”. Ed. Civitas Ediciones. Madrid, 2001, p. 45. 3 Simétricos.- La clave es única y conocida por todos los participantes que la utilizan. Asimétricos.- Cada participante dispone de un par de claves. Una de ellas la hace pública, y la otra la mantiene en secreto. Híbridos.- Combinan características de los simétricos y de los asimétricos. En cuanto a los sistemas simétricos, los mas conocidos son el DES, el tripleDES, el RC4, RC5, IDEA y el Blowfish; sin embargo, el más empleado en nuestros días es el DES o Data Encryption Standard, que según los expertos es el mas resistente a posibles ataques. Los sistemas simétricos son conocidos también como de “clave secreta”, pues el emisor y el receptor del mensaje comparten la misma clave para cifrar y descifrar el contenido del mensaje, por lo cual se recomienda que se utilice este sistema solamente con gente en quien confiemos, y con quien podamos difundir la clave de una forma mas segura que a través de un canal abierto como Internet, ya que si algún intruso llegase a conocer la clave secreta, podría interceptar nuestras comunicaciones y conocer el contenido de las mismas. En principio, el DES es una buena forma para mantener la seguridad y confidencialidad en nuestras comunicaciones electrónicas; sin embargo, el problema de la distribución de claves lo hace frágil, puesto que si la clave secreta se divulgara, existiría la incertidumbre de quien es el verdadero emisor del mensaje, si ha sido modificado, o en su caso, quien ha sido el receptor. Este tipo de algoritmos protegen la privacidad, es decir, permiten la transmisión de correo electrónico privado, proteger archivos personales en una computadora, entre otras cosas, pero no son perfectos, pues no son del todo seguros por el problema de la distribución de las claves. Según Martínez Nadal en el sistema simétrico no hay firma, porque “el mensaje frente a terceros es atribuible a las dos partes que comparten la clave secreta 4 común: frente a un tercero, una de las partes podría rechazar la autoría del mensaje cifrado con esa clave común, atribuyéndolo a otra parte. No obstante, existen intentos destinados a permitir la utilización de criptografía simétrica - si no a efectos de firma - al menos evitando el problema del no rechazo. Para ello, dos partes (A y B) que desean comunicarse utilizando criptografía simétrica, comparten una clave común no entre ellas sino con una tercera parte de confianza, a la que le envían el mensaje cifrado con la respectiva clave compartida con ella. Así, A, una de las partes, no podrá rechazar un mensaje alegando que ha sido cifrado por B, sino que en tal caso la tercera parte de confianza con la que comparte la clave secreta intervendrá para demostrar que tal mensaje fue cifrado efectivamente por A (y que no pudo haber sido cifrado por B, que, con este sistema, no comparte la clave con A sino con la tercera parte)”4. Considero sumamente importante tener muy en claro los elementos que implica la utilización del criptosistema de clave pública, Andrés Font nos los explica de la siguiente manera: “La autenticación.- Que se asegure que los mensajes y sus remitentes son, efectivamente, quienes dicen ser. La integridad de la información.- Que se asegure que la información remitida llega realmente a su destino previsto, y que durante la transmisión no haya sido alterada accidental o intencionadamente. La privacidad.- Que garantice que la información enviada sólo pueda ser leída o utilizada por quien esté legitimado para ello. El no repudio.- Que pueda asegurar al remitente que su información ha llegado a su destino, y al receptor la identidad del remitente, de forma que resulte imposible a cada parte negar posteriormente su participación en la comunicación entre ambas.} La datación.- Para poder probar que la transacción ocurrió en la fecha y hora en que ocurrió. 4 Ídem. P. 47 5 El acceso.- Para impedir que personas no autorizadas accedan a la información”5. Con lo expuesto en la idea anterior se podría decir que se resuelve gran parte del problema de la criptografía simétrica; sin embargo, la criptografía de clave pública, o asimétrica nace para resolver las deficiencias del sistema asimétrico. En la criptografía de clave pública se utilizan dos claves, una pública, accesible y difundida, y una privada, que solo la conoce su titular. A través de este sistema, la clave pública puede difundirse a través de medios inseguros y canales abiertos como Internet, puesto que la clave pública por si sola no le sirve a nadie, mientras la privada es mantenida en secreto. No resulta ético ni lógico comparar el sistema simétrico en contraposición al asimétrico, ya que además de estar orientados a cumplir diferentes finalidades dentro del ámbito de la criptografía contemporánea, ambas satisfacen las expectativas que se tiene para su empleo; sin embargo, a lo largo de este viaje por el mundo de la firma digital, nos referiremos a la misma en su variante avanzada, con lo cual mi intención en ningún momento será menoscabar el sistema DES. Entre los algoritmos criptográficos asimétricos mas comunes, encontramos el RSA, el Diffie-Hellman (que lleva el nombre de sus creadores), El Gamal (creado por Taher El Gamal), y el DSA (acrónimo del inglés “Digital Signature Algorithm”), impulsado por el gobierno estadounidense por ser robusto para la firma digital, pero débil para el cifrado, lo cual permite a dicho gobierno poder descifrar fácilmente los mensajes cifrados. Actualmente la mayoría de los sistemas de criptografía asimétrica se basan en el criptosistema RSA, que fue creado en 1977 por Ronald Rivest, Adi Shamir y Leonard Adleman, 5 -de las iniciales de sus inventores proviene el nombre Op. Cit. p. 48 6 RSA-, que desde su origen se creó con no sólo con el fin de encriptar o cifrar, sino también para firmar digitalmente. Para RSA, cifrar se traduce en transformar una serie de datos de tal forma que se vuelve imposible leerla y entenderla sin la correspondiente “llave”. Así, el fin de RSA se traduce en mantener “escondida” la información ante cualquier persona distinta a aquella a quien va destinada, incluso ante aquellos que tengan acceso a ella. Digamos que nosotros esperamos en nuestra oficina o en casa un sobre que contiene información personal y de alta importancia para nosotros, además de esto, el sobre será entregado a nosotros por un sujeto que ni siquiera conocemos; sin embargo, sabemos que nuestro sobre viene transportado dentro de una caja fuerte que solo nosotros podremos abrir; de eso se trata todo esto, de que sin importar que nuestra comunicación pueda ser interceptada, sabemos que solo nosotros podremos descifrar su contenido, ya que nosotros seremos los poseedores de la única llave que descifrará el mensaje, o sea la clave privada. “Cuando se utiliza criptografía de clave pública, una información cifrada mediante la clave privada solamente puede ser descifrada utilizando la correspondiente clave pública y viceversa. Esto es, que cada persona u organización dispone de dos claves, una pública y otra privada; lo que cifra la clave privada solamente puede ser descifrado por su correspondiente clave pública y al revés; aunque no es exactamente así, podemos decir, para dar a conocer el tema y sin excesivos formulismos, que la clave privada que identifica a una sola persona hace las funciones de una firma electrónica; si una persona cifra un mensaje con su clave privada esto equivale a la utilización de una firma electrónica; en términos generales, podemos decir que tanto una clave como la otra sirven para cifrar y descifrar, lo que se cifra con una puede ser descifrado por la otra”6. El proceso de generación, transmisión y almacenamiento de las claves, es conocida en inglés como key management, el cual ha sido hasta la actualidad uno de los principales problemas que se presentan en el sistema de clave 6 Davara Rodríguez, Miguel Ángel. “Manual de Derecho Informático”, ed. Aranzadi. Madrid, 2001. p. 421. 7 pública, tanto desde el punto de vista técnico, es decir, la generación de las claves a través de un dispositivo seguro de creación, como del jurídico, es decir, que la ley y por tanto la administración pública reconozca la firma digital creada con medios técnicos óptimos, por un Prestador de Servicios de Certificación legalmente acreditado, dotándola de eficacia jurídica. Desde 1976, Diffie y Hellman, preocupados por el manejo correcto de las claves, aportaron la idea que hasta la fecha subsiste, consistente en que la clave pública se asociara efectivamente a la persona o usuario que decía ser su titular, de tal manera que se hiciera pública su identidad, ligada a su clave pública, lo cual se hace actualmente en directorios publicados por los Prestadores de Servicios de Certificación. Igualmente, en estos criptosistemas la clave privada siempre va ligada a su respectiva clave pública; es decir, en ningún caso podremos descifrar un mensaje que va destinado a una clave pública distinta a la nuestra. Muchas veces nos encontraremos en la práctica con los denominados sistemas híbridos, que como lo dice su nombre, utilizan en parte el sistema simétrico y en otra el asimétrico. Su función básica consiste en solucionar el problema de la transmisión de la clave en un sistema simétrico a través de un canal abierto como Internet, y se logra cifrando la clave simétrica utilizando el sistema asimétrico, por lo tanto, así se asegura que la persona en quien confiamos recibe la clave única que utilizaremos con ella de una forma segura, es decir, cifrada con nuestra clave privada, subsanando de esta manera el problema de la distribución de la clave que es básicamente la mayor desventaja del criptosistema simétrico. En los sistemas criptográficos híbridos, para cada mensaje o sesión se genera aleatoriamente una clave (clave de sesión). Los datos se cifran con un método simétrico utilizando la clave de sesión; asimismo, la clave de sesión se cifra con un método asimétrico y se transmite cifrada junto con los datos. Por lo tanto, los sistemas híbridos funcionan igual que los sistemas asimétricos, sin 8 embargo, el rendimiento de los procesos de cifrado y descifrado es mucho mayor ya que los recursos empleados por la computadora son menores. Como hemos visto en este breve panorama de los sistemas criptográficos, lo más importante no es el tipo de sistema criptográfico que se adopte, pues cada uno se adecua a las necesidades de cada persona, lo importante es la seguridad y los beneficios que se obtengan mediante su empleo. De esta manera, la creación y distribución de las claves, que veremos más adelante, se convierten en el centro de atención de los especialistas en criptografía de todo el mundo, puesto que es ahí donde se presentan los problemas de seguridad en la firma digital. Uno de estos problemas son los ataques de fuerza bruta o “brute-force attacks”, que consisten en utilizar medios tecnológicos igualmente potentes a los utilizados para crear el par de claves asimétricas, para poder encontrar la clave privada de una persona a través de la clave pública; es decir que las claves formadas por un menor número de bits contienen menos claves posibles como par. Por lo tanto, entre más grande sea el número de bits que forma una clave, será mas segura antes los brute-force attacks. De esta manera, se considera que actualmente un par de claves con una longitud de 1,024 bits, o sea mas de 300 dígitos son consideradas seguras, ya que usando tecnología de punta llevaría siglos vulnerarlas. Un par de claves seguro es definido por la American Bar Association como “aquel par de claves criptográficamente fuerte, y por ello capaz de crear y verificar firmas de una forma altamente fiable; en concreto, un par de claves seguro debe tener la propiedad de que, coincida la clave pública, no sea viable determinar la clave privada a partir de la clave pública”7. La forma en que se crean las claves, siguiendo a Apolonia Martínez por medio de “los algoritmos más comunes para la codificación mediante el empleo de 7 American Bar Association. “Digital signature guidelines, Legal infrastructure for Certification Authorities and secure electronic comerce”. August 1, 1996, USA. p. 31. 9 claves públicas y privadas, que se basan en una característica importante de los grandes números primos: una vez que se multiplican entre sí para producir un nuevo número es virtualmente imposible determinar cuáles fueron los dos números primos que crearon ese nuevo número más grande. De esta forma, aunque muchas personas puedan conocer la clave pública de un firmante determinado, y utilizarla para verificar sus firmas, no podrán descubrir la clave privada de un firmante determinado, y utilizarla para falsificar firmas digitales”8. La criptografía de clave asimétrica, forma parte de los siguientes estándares internacionales: 1. ISO9796: International Standards Organization ("Organización de Estándares Internacionales"), Norma ISO 9796 de Tecnología de la Información - Técnicas de Seguridad - Mecanismo de Firma Digital ("Information Technology - Security Techniques-Digital Signature Scheme"). 2. ANSIX9.31:Instituto Americano de Estándares Nacionales ("American National Standards Institute"), estándar X9.31 de Autenticado de Mensajes para Instituciones Financieras ("Financial Institution Message Authentication") para el sistema bancario estadounidense. 3. ITU-TX.509: Unión Internacional de Telecomunicaciones, Sector de Estandarización de Telecomunicaciones ("International Telecommunication Union, Telecommunication Standardization Sector"), estándares X.509 de Tecnología de la Información - Interconexión de Sistemas Abiertos - El Directorio: Marco para el Autenticado ("Information Technology - Open Systems Interconnection - The Directory: Authentication Framework"). 4. PKCS: Estándares de Criptografía de Clave Pública ("Public Key Cryptography Standards") desarrollados por RSA Corporation, en forma conjunta con Apple, Microsoft, Digital, Lotus, Sun y Massachussets Institute of Technology. 8 Martínez Nadal, Apollònia. Ob.cit. p. 57. 10 5. SWIFT: Sociedad para las Telecomunicaciones Financieras Interbancarias Mundiales ("Society for Worldwide Interbank Financial Telecommunications"). 6. ETEBAC: Sistema Financiero Francés, estándar 5. Actualmente existen diferentes formatos de certificados que se ajustan a diferentes normalizaciones, aunque todos consisten en la clave pública correspondiente y de una serie de etiquetas adicionales: Etiquetas de identificación del formato del certificado. (número de serie, número de versión,...). Identificación de la CA (Certification Authority, o proveedor de servicios de certificación) que haya emitido el certificado. Identificación del propietario de la clave pública. Atributos adicionales del propietario de la clave pública. (fotografía, correo electrónico, dirección, ...). El digesto de identificación de validación del certificado y el algoritmo de cálculo. La firma de la CA que valida todo ello. Los certificados en formato X509 versión 3, son los más utilizados actualmente en el mundo, ya que con el fin de lograr un estándar internacional en la certificación digital, este tipo de certificados ha sido desarrollado por el sector de estandarización en las telecomunicaciones, de la Unión Internacional de Telecomunicaciones (ITU). Para el almacenamiento de la clave privada del titular de un certificado, hoy en día no se ha definido una estandarización a nivel internacional; es decir, mientras que en los países mas desarrollados se utilizan las “tarjetas inteligentes”, en países con menor desarrollo se ha implementado el uso de diskettes, principalmente porque representa un coste menor. 11 Entre los soportes más comunes en el mercado de la certificación digital, podemos encontrar los siguientes: Diskette.Presenta características que lo hacen, por el momento, el medio más práctico y económico: se puede leer en todas las computadoras, es fácilmente transportable y permite almacenar un gran volumen de información. Sin embargo, no es un medio confiable ya que nos exponemos a que por cuestiones de uso constante, se pueda perder la información contenida en él. En caso de utilizarse se recomienda realizar copias de resguardo de la clave privada del titular, lo cual también representa un riesgo, pues debemos estar concientes de que no todos los titulares toman las debidas precauciones. Disco Duro.Al igual que el diskette se encuentra en todos los equipos aunque es más confiable con respecto al mantenimiento de la información. Sin embargo cuenta con varias desventajas: - No es transportable, lo que implica que el usuario sólo puede utilizar su clave privada desde una sola estación de trabajo, - La mayoría de los equipos no cuentan actualmente con un Sistema Operativo que impida el acceso de usuarios no habilitados a los archivos donde se almacene la clave privada. Aunque esta clave se encuentra protegida por un sistema criptográfico que restringe su uso al titular de la misma, no puede evitarse su destrucción voluntaria o involuntaria; Por lo tanto, se recomienda adoptar políticas de seguridad para las computadoras conectadas a una red o no, la cuestión es 12 proteger la clave privada y la información contenida en la computadora. - Los discos duros removibles solucionan el problema de la seguridad, pero igualmente deben ser utilizados personalmente. Smart Cards.Las Smart Cards (Tarjetas Inteligentes) son los dispositivos más idóneos para esta tarea. Cuentan con varias características que hacen apropiado su uso para almacenar las claves privadas: son fácilmente transportables y seguros. Incluso es posible incorporar dentro de estos dispositivos los algoritmos necesarios para la generación del par de claves, la firma y la verificación de manera tal de proteger la clave privada de todo acceso externo. El inconveniente que presenta el empleo de las tarjetas inteligentes como soporte de la clave privada, es que actualmente es muy difícil encontrar una computadora personal que cuente con un lector de este tipo de tarjetas, y aunque dichos lectores pueden ser incorporados a las computadoras de manera externa o interna, representa una dificultad el hecho de llevar un lector a todos los sitios a donde vayamos. En muy poco tiempo se prevé que salga al mercado un dispositivo incorporado al lector del diskette que sirva para leer las tarjetas inteligentes. Otro inconveniente que representa el empleo de las tarjetas inteligentes, en caso de utilizarse para la generación de claves asimétricas, es la baja entropía que posee para la generación de los números primos. 13 Por último, es necesario mencionar que la protección de la clave privada se realiza utilizando una clave de solo 4 dígitos, por lo cual es bastante vulnerable ante un ataque de fuerza bruta. Actualmente los expertos recomiendan el uso de claves de 1,024 bits pues consideran que con claves tan robustas como estas, los ataques de fuerza bruta (“brute-force attacks”) quedan fuera del alcance de la capacidad de la ingeniería humana; sin embargo, se hace hincapié en la calidad del algoritmo y la calidad de las claves, que según Bruce Schneier la efectividad de un criptosistema depende de estos dos factores. Existe desde mi punto de vista un problema que es más serio de lo que parece ser; esto es, la carencia de conocimientos de los usuarios de certificados digitales. Estamos viviendo una etapa primitiva, donde surge una gran inquietud por parte de la sociedad por formar parte de la versión informatizada de la misma. Lo que constituye en sí el problema es que erróneamente creemos que la criptografía por si sola nos brinda la máxima seguridad para la transferencia electrónica de datos, confiamos ciegamente en la criptografía, como si lo fuera todo en cuanto a seguridad se refiere. Sin embargo no lo es, y es muy grave caer en un error tan rotundo como en el que la mayoría de los usuarios de nodos conectados a una red caen. Bruce Schneier confirma mi idea. Dos años después de publicar su obra, dijo que su error al escribir “Applied Cryptography” fue no haber hablado de todo el contexto, sino centrarse únicamente en la criptografía como si fuera “la respuesta”. Igualmente, comenta que los lectores de su obra creían que la criptografía era alguna especie de polvos mágicos que rociarían sobre sus software y los harían seguros, o que con palabras mágicas como “clave de 128 bits” o “Infraestructura de Clave Pública” lograrían el mismo efecto. 14 Esa es la idea. La criptografía es solo una herramienta, no puede actuar sola, la criptografía no brinda seguridad, pero sí es esencial para conseguirla, su efectividad depende de nosotros. Bibliografía American Bar Association. “Digital signature guidelines, Legal infrastructure for Certification Authorities and secure electronic comerce”. USA, August 1, 1996. Davara Rodríguez, Miguel Ángel. “Manual de Derecho Informático”, ed. Aranzadi. Madrid, 2001. Font, Andrés. “Seguridad y Certificación en el Comercio Electrónico”. Ed. Fundación Retevisión. Madrid, 2000. Martínez Nadal, Apolonia. “Comercio Electrónico, Firma Digital y Autoridades de Certificación”. Ed. Civitas Ediciones. Madrid, 2001. Schneier, Bruce. Creador de los algoritmos criptográficos Blowfish y Twofish. 15