Firma digital en la Web Semántica: Aplicación en la Biblioteca Digital

 

Marcelo Claudio Périssé

Marcelo@cyta.com.ar

Palabras Claves : Extensible Markup Language (XML), Criptografía, Firma Digital, Seguridad en Redes
 

Sumario

1. Introducción

2. La seguridad en las Redes y la Arquitectura de la Web Semántica -

2.1. Criptografía

2.1.1. Criptografía de llave privada o criptosistemas simétricos

2.1.2. Criptografía de llaves públicas o criptosistema asimétrico

2.2. Firma Digital

2.2.1. Crear una firma digital

2.2.2. Verificación de la firma digital

2.3. Certificado Digital

3. Aplicación en la Web Semántica

3.1. Representación de la Información en aplicaciones de la Web Semántica

3.2. Criptografía en XML

3.3. Firma digital en XML

3.3.1. Aplicando Firma digital en XML

4. Bibliografía


1. Introducción

El trabajo presenta la construcción de los elementos necesarios de seguridad intervinientes en una infraestructura de publicaciones científicas accesible para las Bibliotecas Digitales Universitarias, haciendo hincapié en la capacidad de generar actividades de almacenamiento, recuperación y gestión de información apropiada, de forma: ordenada, distribuida, compartida.

En la estructuración de la información sustentada en Internet se ha utilizado el modelo Resource Description Framework (RDF), pues éste se encuentra constituido como formato universal para datos en la web. Dicho modelo relacional simple, permite mezclar datos estructurados y semiestructurados que son exportados y compartidos a través de diferentes aplicaciones.

Además de la interoperabilidad de datos, el RDF provee una semántica para metadatos entendible por aplicaciones informáticas desarrolladas por la UNESCO y otros centros de gestión de la información científica como el Directorio y Recolector de Recursos Digitales del Ministerio de Cultura del Reino de España o la de los catálogos bibliotecarios y directorios “world-wide”. Además otorga una mejor precisión en la búsqueda de recursos que la obtenida por los motores de búsqueda que rastrean en el texto completo.

Como modelo para la descripción de los recursos de información se asumió el Dublin Core. Dicha iniciativa provee un estándar simple y universalmente adoptado por la comunidad científica, que permite encontrar, compartir y gestionar la información.

La sintaxis se desarrolló en XML (eXtensible Markup Language) debido a que es un lenguaje de etiquetado que juega un papel fundamental en el intercambio de una gran variedad de datos. Con él se describieron los distintos conjuntos de módulos ofrecidos como servicios a las demandas de los usuarios, permitiéndoles estructurar, almacenar e intercambiar información.

En esta misma sintaxis de XML y atendiendo a las normas de XML Signature propuestas por la W3G, se han construido los bloques de datos encriptados  como forma de proteger los valores utilizados que aseguren su confidencialidad y la firma digital que permite garantizar autoría (autenticidad) e integridad (fidelidad) del recurso. Siendo que estos bloques ser serán utilizados por los ordenadores y los agentes para verificar que la información adjunta ha sido ofrecida por una fuente específica y confiable.

El proyecto se encuentra enmarcado en las políticas definidas por la Rede ScienTI, liderada por Brasil, quien promueve un espacio público y cooperativo de interacción entre los actores de los sistemas y comunidades de ciencia, tecnología e innovación de sus países miembros y en la que se integran: la plataforma Lattes, como sistema que permite el acceso a la información científica a través de los currículum de los docentes-investigadores; el Modelo Scielo, como infraestructura para la descripción de publicaciones científicas y la Metodología LILACS, para la generación de bases de datos bibliográficas.

A su vez se encuentra enmarcado en los lineamientos promovidos por el Sistema de Información Universitaria (SIU): SIU-Toba y SIU-Biblioteca, perteneciente a la Secretaría de Políticas Universitarias del Ministerio de Educación Ciencia y Tecnología de la Argentina; el cual ha formado parte, junto a UNESCO y la Library of Congress, en el desarrollo de IsisMarc, un software para bibliotecas que permite el ingreso de información para el formato bibliográfico MARC21 sobre base de datos de tecnología Isis. Marc21 es un estándar internacional de catalogación que permite el intercambio de registros catalográficos entre bibliotecas.

Dentro de este marco de recomendaciones propuestas por el Ministerio de Cultura y Educación a través del Sistema de Información Universitario (SIU), se asumió la política de la Open Archives Initiative (OAI) quien desarrolla y promueve estándares de interoperabilidad cuyo fin es facilitar la eficiente en la diseminación de contenidos. Siendo que el trabajo de OAI se ha ido expandiendo para promover el amplio acceso a los recursos digitales en el ámbito académico, el e-learning y la ciencia.
Es de destacar que la Investigación y Desarrollo del presente proyecto incluye el estudio los vocabularios controlados (tesauro), su modelo estructural (taxonomía) y su representación explícita y formal como estructura conceptual de la base de conocimiento (ontología).

A fin de poder encuadrar el rol de la firma digital dentro de la Web Semántica, se describe la estructura que conforma la arquitectura en la que se sustenta.

La arquitectura de la Web Semántica cuenta con la siguiente estructura:

Unicode: Se trata de una codificación del texto que permite utilizar los símbolos para expresar la información en la Web Semántica en cualquier idioma.

URI: Acrónimo de "Uniform Resource Identifier" o Identificador Uniforme de Recursos que permite la localización de un recurso accesible vía Internet. Se trata de la URL (descripción de la ubicación) más el URN (descripción del espacio de nombre).

XML + NS + xmlschema: XML ofrece un formato común para intercambio de documentos, NL (namespaces) sirve para cualificar elementos y atributos de nombres usados en XML asociándolos con los espacios de nombre identificados por referencias URI y XML Schema ofrece una plantilla para elaborar documentos estándar. De esta forma, aunque se utilicen diferentes fuentes, se crean documentos uniformes en un formato común y no propietario.

RDF + rdfschema: basada y apoyada en la capa anterior, esta capa define el lenguaje universal con el cual podemos expresar diferentes ideas en la Web Semántica. RDF es un lenguaje simple mediante el cual definimos sentencias en el formato de una 3-upla o triple (sujeto: el recurso al que nos referimos; predicado: el recurso que indica qué es lo que estamos definiendo; y objeto: puede ser el recurso o un literal que podría considerarse el valor de lo que acabamos de definir). El modelo RDF o Resource Description Framework es un modelo común (Framework) que permite hacer afirmaciones sobre los recursos (Description) y que hace posible que estos recursos pueden ser nombrados por URIs (Resource). Por su parte RDF Schema provee un vocabulario definido sobre RDF que permite el modelo de objetos con una semántica claramente definida. Esta capa no sólo ofrece descripción de los datos, sino también cierta información semántica. Tanto esta capa como la anterior corresponden a las anotaciones de la información (metadatos).

Ontology vocabulary: ofrece un criterio para catalogar y clasificar la información. El uso de ontologías permite describir objetos y sus relaciones con otros objetos ya que una ontología es la especificación formal de una conceptualización de un dominio concreto del conocimiento. Esta capa permite extender la funcionalidad de la Web Semántica, agregando nuevas clases y propiedades para describir los recursos.

Logic: además de ontologías se precisan también reglas de inferencia. Una ontología puede expresar la regla "Si un código de ciudad está asociado a un código de estado, y si una dirección es el código de ciudad, entonces esa dirección tiene el código de estado asociado". De esta forma, un programa podría deducir que una dirección de la Universidad Complutense, al estar en la ciudad de Madrid, debe estar situada en España, y debería por lo tanto estar formateado según los estándares españoles. El ordenador no "entiende" nada de lo que está procesando, pero puede manipular los términos de modo mucho mas eficiente beneficiando la inteligibilidad humana.

Proff: será necesario el intercambio de "pruebas" escritas en el lenguaje unificador (se trata del lenguaje que hace posible las inferencias lógicas hecha posibles a través del uso de reglas de inferencia tal como es especificado por las ontologías) de la Web Semántica.

Trust: los agentes deberían ser muy escépticos acerca de lo que leen en la Web Semántica hasta que hayan podido comprobar de forma exhaustiva las fuentes de información. (Web Of Trust RDF Ontology -WOT- http://xmlns.com/wot/0.1/ y FOAF http://xmlns.com/foaf/0.1/).

Digital Signature: bloque encriptado de datos que serán utilizados por los ordenadores y los agentes para verificar que la información adjunta ha sido ofrecida por una fuente específica confiable. (XML Signature WG: http://www.w3.org/Signature/).

 

 

Rules

 

Trust

Data

Data

 

Proof

Digital Signature

Logic

Self

Description

Document

Ontology vocabulary

RDF+rdfschema

XML+NS+xmlschema

Unicode

URI


Figura 1. Arquitectura de la Web Semántica
Fuente: Tim Berners-Lee. Semantic Web -XML2000. Architecture
http://www.w3.org/2000/Talks/1206-xml2k-tbl/slide11-0.html
 

Concretamente este trabajo se centra en el uso de herramientas de criptografía para firmar documentos en sintaxis XML bajo el modelo semántico RDF, asignándole así a los recursos de información los atributos de utilidad necesarios para que puedan verificar dichos recursos su autenticidad y fidelidad.

 

2. La seguridad en las Redes y la Arquitectura de la Web Semántica

La seguridad en redes se refiere al intercambio de datos vía redes de forma segura, asegurando que sus datos están protegidos y no podrán ser comprendidos ni modificados por personas no autorizadas.

Para que un sistema de información basado en redes sea considerado seguro, es necesario el uso de una serie de recursos como:
 

La criptografía, que asigna un nivel determinado de privacidad,

la firma digital, que permite inferir que la información no ha sido modificada,

la certificación digital que posibilita la identificación de personas.

Principios de la seguridad  a ser aplicados en la Web Semántica

tres principios básicos de la inseguridad de la información:

– el del acceso más fácil,

– el de la caducidad del secreto,

– el de la eficiencia de las medidas tomadas.

“Las medidas de control se implementan para ser utilizadas de forma efectiva. Deben ser eficientes, fáciles de usar y apropiadas al medio”. Características de las medidas de ontrol: – Que funcionen en el momento oportuno.– Que lo hagan optimizando los recursos del sistema. – Que pasen desapercibidas para el usuario.

Principios de la Seguridad de la Información

Confidencialidad

– Los componentes del sistema serán accesibles sólo por aquellos usuarios autorizados.
Integridad

– Los componentes del sistema sólo pueden ser creados y modificados por los usuarios autorizados.

Disponibilidad

– Los usuarios deben tener disponibles todos los componentes del sistema cuando así lo deseen.

Adicionalmente se debe considerar:

Autenticidad: busca asegurar la validez de la información en tiempo, forma y distribución. Asimismo, se garantiza el origen de la información, validando el emisor para evitar suplantación de identidades.

Auditabilidad: define que todos los eventos de un sistema deben poder ser registrados para su control posterior.

Protección a la duplicación: consiste en asegurar que una transacción sólo se realiza una vez, a menos que se especifique lo contrario. Impedir que se grabe una transacción para luego reproducirla, con el objeto de simular múltiples peticiones del mismo remitente original.

No repudio: se refiere a evitar que una entidad que haya enviado o recibido información alegue ante terceros que no la envió o recibió.

Legalidad: referido al cumplimiento de las leyes, normas, reglamentaciones o disposiciones a las que está sujeta la empresa.

Confiabilidad de la Información: es decir, que la información generada sea adecuada para sustentar la toma de decisiones y la ejecución de las misiones y funciones.

2.1 Criptografía

La criptografía es un método eficaz que ofrece protección tanto al almacenamiento, como al transporte de información por una red.

Mediante este método, que agrupa a un conjunto de técnicas, se puede codificar datos en información aparentemente sin sentido o inentendible, para que las personas no autorizadas no puedan entenderlo y así no acceder a la información que fuese cifrada; para ello se aplican funciones  matemáticas y un código especial, denominado llave  sin la cual la información no puede ser descifrada.

Esta llave enmarcada en los métodos de encriptado aseguran las transmisiones seguras en la red y en entornos abiertos.

Hay dos tipos de llaves: La llave privada o encriptado simétrico, y llave pública o encriptado asimétrico.

Entre los principales objetivos que persigue la criptografía podemos citar:

La “confidencialidad” de la información,

la “integridad” de los datos y

la “autenticación” del remitente de los datos

2.1.1. Criptografía de llave privada o criptosistemas simétricos

La Criptografía de llave privada  ocurre cuando existe una única llave que encripta y desencripta los datos, para lo cual la llave es secreta y solamente compartida entre el emisor y el destinatario.

Ésta debe ser una llave relativamente pequeña y rápida; siendo su mayor problema el de su distribución, lo que hace que la eficiencia de este método dependa principalmente de la seguridad en la conexión para su distribución.

Procedimiento

  1. El emisor cifra un mensaje utilizando un algoritmo criptográfico y una llave secreta para transformar un menaje original en un texto cifrado;
  2. el texto cifrado se envía al destinatario por una red insegura;
  3. el receptor destinatario, para descifrar el mensaje utiliza el algoritmo correspondiente para transformar el texto cifrado en el mensaje original.

 

Figura 2. criptografía de llave privada
 

La seguridad del sistema radica en mantener en secreto la llave y no el algoritmo; siendo que el algoritmo frecuentemente utilizado es el Advanced Encryption Standard (AES), con llaves de 128 bits, 192 bits y 256 bits.

Entre las técnicas de cifrado simétrica podemos citar:

Cifrado simétrico por bloques (block cipher)

a Iterativos con cifrado equivalente a descifrado

i. Códigos Feistel

1. DEA (DES)

2. Triple DES y variantes

3. G-DES

4. DESX

ii. Blowfish

iii. RC2

iv. RC5

v. IDEA

vi. FEAL y variantes (obsoletos)

b Otros

i. SAFER

c No publicados

i. Skipjack

 
Cifrado simétrico continuo (stream cipher)

a Basados en ‘one time pad’(clave no reusable no más corta que el mensaje a cifrar).

i. Vernam (Se considera el único método perfecto, pero no resulta práctico para uso cotidiano).

b. Simplificaciones genéricas de la técnica de`one-time-pad'.

i. RC4

ii. SEAL

c. Basados en registros de desplazamiento de realimentación lineal.

i. Algoritmos de reducción y autoreducción.

Funciones unidireccionales (hash) de uso criptográfico

a Basadas en cifrado simétrico por bloques

i. Havies-Meyer (basada en DES)

b Basadas en aritmética modular (Ninguna aceptable actualmente)

i. Dedicadas

· MD2

· MD4 (obsoleto)

· MD5

· SHA (obsoleto)

· SHA1

· RIPE-MD

· Haval

ii. Otros

Variantes especiales de firma digital

Firma a ciegas

Firmas con verificador designado

Firmas de grupo

Firmas no reusables

Firmas sin propagación de fallo

Firmas no repudiables

Sello de tiempo

Códigos de autentificación de mensajes (MACs)

Basados en `one time pad'.

Basados en otros criptosistemas

simétricos continuos.

Basados en criptosistemas simétricos debloques en modo CBC.

Basados en `hash' criptográfico.

Esquemas de secreto compartido

Basados en interpolación polinómica (Shamir)

Basados en intersección de hiperplanos (Blakey)

Visuales (Naor/Shamir)

Pruebas interactivas de conocimiento nulo.

Fiat-Shamir

Feige-Fiat-Shamir

Guillou-Quisquater

Criptografía cuántica

Fuente: RSA Laboratories

2.1.2. Criptografía de llaves públicas o criptosistema asimétrico

El método está basado en el concepto de dos llaves: una pública y otra privada. La llave pública es utilizada para encriptar mensajes y  se encuentra públicamente disponible; en tanto que la llave privada se utiliza para desencritpar mensajes y se debe mantener en secreto.

El factor crítico de este procedimiento depende del resguardo de la llave privada.

Procedimiento:

El emisor cifra el mensaje utilizando la llave pública del destinatario y envía el mensaje.

El receptor recibe el mensaje y descifra el mensaje con su llave privada.

 

 

Figura 3. Criptografía de llave pública
 

En este método el emisor no puede descifrar o desencriptar el mensaje, ya que no cuenta con la llave secreta del receptor; lo que asegura que cualquier intruso que pudiera interceptar el mensaje tampoco podrá descifrar el mensaje, por más que cuente con la llave pública.

Generalmente la criptografía de llave pública es adecuada en ambientes inseguros, que se caractericen por contar, con un gran número de usuarios.

Para asignarle mayores niveles de seguridad, a este sistema, puede ser complementado por con la técnica de llaves privadas.

El algoritmo RSA (Rivest, Shamir, Adleman) es el método de criptografía que satisface los requisitos exigidos para que la llave pública sea eficaz; este algoritmo usa llaves de 1024 bits formadas por la multiplicación de dos números primos de 512 bits, lo que garantiza la seguridad del proceso, que se basa en la dificultad de factorear números primos muy grandes.

Entre las técnicas de cifrado asimétrico o firmas digitales  podemos citar:

Basado en factorización

RSA [Diseñado en 1977 por Rivest, Shamir y Adleman Utiliza claves de 512, 768, 1024 o 2048 (típico 1024) Basado en la complejidad de factorizar enteros muy grandes Utilizado mayoritariamente para firmar]

i. Protocolo de firmado Rabin

Basado en logaritmos discretos

Diffie-Hellman [Diseñado en 1977 por Diffie y Hellman. Claves de 512, 1024 Basado en las propiedades de los logaritmos discretos Utilizado mayoritariamente para negociar claves Necesita autenticación adicional (man-in-the-middle)]. No soporta firmas digitales

i. STS (DH con acuerdo de claves autentificado)

ElGamal [Diseñado en 1984 por Taher ElGamal Puede realizar cifrado y firma basado en la dificultad de calcular logaritmos discretos]

DSA (DSS) [Diseñado por el NIST (National Institute of Standards and Techonology) inicialmente se utilizaban claves de 512 y posteriormente se incrementó a 1024 para mayor seguridad Es una variante de Schnorr y ElGamal]. Sólo soporta firmas digitales.

Basados en curvas elípticas

i. Variantes de RSA

ii. Variantes de ElGamal

Basados en el problema de la mochila

i. Merkle-Hellman (obsoleto)

ii. Chor-Rivest

Basados en secuencias de Lucas

i. Variantes de RSA (LUCRSA)

ii. Variantes de Diffie-Hellman (LUCDIF) No soporta firmas digitales

iii. Variantes de ElGamal (LUCELG)

Basados en la teoría de codificación

i. McEliece

Basados en esquemas de firma en árbol

i. Merkle Sólo soporta firmas digitales

FUENTE: RSA LABORATORIES

 

2.2. Firma Digital

La Firma Digital es una modalidad de firma electrónica, resultado de una operación matemática que utiliza algoritmos de criptografía asimétrica y permite inferir, con seguridad, el origen y la integridad del documento.

En Brasil se encuentra el Instituto Nacional de Tecnologia da Informação (ITI), que es la Autoridad Certificadora Raíz - AC Raíz – da Infra-Estructura de Chaves Públicas Brasileira - ICP-Brasil.

2.2.1. Crear una firma digital

Figura 4. Proceso de la creación de una firma digital
Adaptación de Nakov, 2002

Procedimiento:

1. Cálculo del resumen del mensaje: Un valor de “hash” del mensaje (comúnmente denominado resumen del mensaje o “mensaje digest”) es calculado por la aplicación de un algoritmo criptográfico de hashing (Ej. MD2, MD4, MD5, SHA1, etc.). El valor de hash calculado de un mensaje es una secuencia de bits, usualmente con un tamaño fijo, extraído de alguna forma del mensaje.

2. Cálculo de la firma digital: La información obtenida en el primer paso (resumen del mensaje) es cifrada con la llave privada de la persona que firma el mensaje y así un el valor que es obtenido conforma  la firma digital. Para el cálculo de la firma digital de un determinado resumen es utilizado un algoritmo critpográfico. Los algoritmos frecuentemente utilizados son RSA (basado en la teoría de los números), DSA (basado en la teoría de los logaritmos discretos) o el  ECDSA (basado en la teoría de las curvas elípticas).

2.2.2. Verificación de la firma digital

La tecnología de la firma digital permite al receptor de un mensaje, con una firma digital, verificar su integridad.

El proceso de verificación busca determinar si un mensaje fue firmado por la llave privada que corresponde a una dada llave pública. La verificación de la firma digital no puede determinar si un mensaje fue firmado por una determinada entidad, para ello se precisaría obtener la llave pública de alguna manera segura (CD, o procedimientos estipulados).

Figura 5.  Verificación de la firma digital
Fuente: adaptado de Nakov, 2002

 

Procedimiento:

1. Cálculo del valor corriente del hash

Calcular un valor de hash del mensaje firmado: para este cálculo es usado el mismo algoritmo tal cual fue aplicado en el proceso de generación de la firma digital. El valor obtenido es denominado valor de hash corriente, pues él es creado a partir del estado actual del mensaje.

2. Calcular el valor original del hash

La firma digital es descifrada con el mismo algoritmo utilizado durante la generación de la firma digital. El descifrado es realizado con la llave pública asociada a la llave privada utilizada durante la firma del mensaje. Como resultado, se obtiene el valor original de hash que fue calculado del mansaje original durante el primer paso de la creación de la firma digital (el valor original del resumen del mensaje – valor de hash).

3. Comparar el valor corriente original de hash

Comparar el valor corriente del hash obtenido en el primer paso con el valor original del hash obtenido en el segundo paso. Si los dos valores son idénticos, prueba que el mensaje fue firmado con la llave privada que corresponde a la llave pública usada en la certificación.

2.3. Certificado Digital

El certificado digital es un documento conteniendo datos de identificación de la persona o institución que desea comprobar su propia identidad como así también confirmar la identidad de terceros.

Los certificados digitales vinculan un par de llaves electrónicas que pueden ser usadas para criptografiar y firmar información digital.

Usados en conjunto con la criptografìa, éstos proveen una solución de seguridad que permiten asegurar  la identidad de una o de todas las partes comprometidas en una transacción.

Los certificados digitales evitan tentativas de substitución de una llave pública por otra. Para evitar que esto ocurra, se hace necesario el uso de certificados digitales de llave pública, ya que estos garantizan seguridad y autenticidad a aquellos que acceden a redes inseguras, previniendo el acceso a datos confidenciales.

El certificado del destinatario contiene algo más que su llave pública, contiene información sobre el destinatario como: su nombre, dirección, etc. Es firmado por alguien en quien el origen deposita su confianza denominada autoridad de certificación (Certification Authority), que funciona como un registro electrónico.

El certificado digital funciona de la siguiente forma:

Se debe localizar la llave pública de la persona con quien se desea comunicar y

Se debe obtener una garantía de que la llave pública encontrada sea proveniente del destinatario.

3. Aplicación en la Web Semántica

3.1. Representación de la Información en aplicaciones de la Web Semántica

La Web semántica es un conjunto de iniciativas destinadas a convertir la World Wide Web en una gran base de datos capaz de soportar un procesamiento sistemático y consistente de la Información.

Lo que separa a un conjunto de documentos con información no estructurada, y por tanto difícil de procesar y de explotar su contenido respecto de un conjunto de registros de una base de datos es la suma de tratamiento sistemático + metadatos propia de estos últimos y ausente en los primeros; lo que otorga una perspectiva de procesamiento robusto (Lluis Codina, 2006).

La creación de una típica base de datos documental consiste en definir un grupo de campos, lo que equivaldría en nuestro caso a definir un conjunto de etiquetas como <autor>, <título>, etc., para marcar sistemáticamente en cada documento de la base de datos la información que en el documento original aparece sin ninguna identificación explícita.

El segundo paso consistirá en vincular cada documento con metadatos mediante etiquetas del estilo <clasificación>, <tipo de documento>, <descriptores>, <fecha de creación>, etc. (Abadal, Codina, 2005).

Una vez tenemos lo anterior, hemos pasado de información desestructurada a información sistematizada en la que cada línea de texto, cada párrafo o cada grupo de párrafos forma parte de un campo y está vinculado a un conjunto de metadatos. A partir de aquí será sencillo conseguir que la base de datos simule una cierta inteligencia de la que carecen en estos momentos los motores de búsqueda, ya que será capaz de responder a preguntas que actualmente no puede responder un motor de búsqueda. Por ejemplo, en la actualidad no existe forma de pedir a un motor de búsqueda que busque documentos donde la palabra Eco se refiera al nombre de un autor y no a un fenómeno acústico. En cambio, en una base de datos documental es una operación tan trivial que nos pasa absolutamente desapercibida.

Figura 6. Recurso sustentado en Internet. Visión desestructurada
 

 

Figura 7. Metadatos del recurso para su catalogación

XML en la Web Semántica

El  Extensible Markup Language (XML) es una sintaxis estandarizada elaborada por el World Wide Web Consortium. Éste es un subconjuto del SGML (Standard Generalized Markup Language), siendo que el XML fue pensado principalmente para estructurar datos intercambiables y servicios aplicados en la Web.

Estructurando la información en XML se permite a los agestes de software leer e intercambiar los datos.

Siendo un primer paso hacia la producción de una Web de semántica legible por los computadores. Pero, esta utilidad en la estructuración de la información está limitada si no pueden verificarse su autenticidad y fidelidad.  La Web no puede estar con XML - necesita Firmar-XML.

Figura 8. Información estructurada de recusos

 

3.2. Criptografía en XML

XML Encryption es un lenguaje cuya función principal es asegurar la confidencialidad de partes de documentos XML a través de la encriptación parcial o total del documento transportado.

El algoritmo RSA (Rivest, Shamir, Adleman) en XML no es utilizado para criptografiar documentos, sí para criptografiar la llave de sesión, que queda junto al documento XML en un elemento separado, localizado en otro archivo.

El algoritmo utilizado en la criptografia del documento es el AES (Advanced Encryption Standard) con llaves 192 o 256.

<?xml version='1.0'?>
<Metodopago xmlns='http://ejemplo.org/pago'>
<Nombre>Cliente Ficticio</Nombre>
<TarjetaCredito Limite='5.000' Moneda='EU'>
<Numero>0000 0000 0000</Numero>
<Issuer>Ejemplo de Banco</Issuer>
<Caducidad>10/05</Caducidad>
</TajetaCredito>
</Metodopago>

Figura 9   Ejemplo de un documento XML

<?xml version='1.0'?>
<Metodopago xmlns="http://ejemplo.org/pago">
<Nombre>Cliente Ficticio</Nombre>
<DatosEncriptados xmlns="http://www.w3.org/2001/04/xmlenc#"
Tipo="http://www.w3.org/2001/04/xmlenc#Element">
<DatosClave>
<DatosClave>A23B45C56</DatosClave>
</DatosClave>
</DatosEncriptados>
</Metodopago>

Figura 10.  Ejemplo de un documento XML encriptado

A continuación se muestra un ejemplo aplicado a un recurso científico correspondiente a un artículo publicado por la revista Técnica Administratica ISSN 1666-1680 ( URL http://www.cyta.com.ar)

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc = "http://purl.org/metadata/dublin_core#"
xmlns:dcq = "http://purl.org/metadata/dublin_core_qualifiers#">
<rdf:description about = "http://www.cyta.com.ar/ta0702/v7n2a2.htm">
<dc:title>
<rdf:Bag>
<rdf:li>Evidencias conceptuales sobre intangibles: una revisión doctrinal</rdf:li>
<rdf:li>Conceptual evidences on intangibles: a doctrinal revision</rdf:li>
</rdf:Bag>
</dc:title>
<dc:creator>
<rdf:Bag>
<rdf:li>De Araújo Silva , Roseane Patrícia</rdf:li>
<rdf:li></rdf:li>
<rdf:li></rdf:li>
</rdf:Bag>
</dc:creator>
<dc:description>
<rdf:Bag>
<rdf:li>Los términos recursos intangibles, activos intangibles, capital intelectual, intangibles y actividades intangibles suenan como palabras intercambiables, sin embargo presentan características peculiares en la esencia de sus conceptos...</rdf:li>
<rdf:li>The terms intangibles resources, intangibles assets, capital intellectual, intangibles and intangibles activities sound like interchangeable words, nevertheless present characteristics peculiar in the essence of their concepts...</rdf:li>
</rdf:Bag>
</dc:description>
<dc:subject>
<rdf:Bag>
<rdf:li>intangibles</rdf:li>
<rdf:li>ADMINISTRACION</rdf:li>
<rdf:li>capital intelectual</rdf:li>
<rdf:li>activos intangibles</rdf:li>
<rdf:li>intangibles</rdf:li>
<rdf:li>capital intellectual</rdf:li>
<rdf:li>intangible assets</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:publisher>Técnica Administrativa issn 1666-1680</dc:publisher>
<dc:contributor>Universidade Estadual da Paraíba </dc:contributor>
<dc:contributor.referee>
<rdf:Bag>
<rdf:li>
<EncryptedData xmlns = "http://www.w3.org/2001/04/xmlenc#" Type = "http://www.w3.org/2001/04/xmlenc#">
<CipherData>
<CipherValue>º►J-=9¨gÿ'à 9ıNâW</CipherValue>
</CipherData>
</EncryptedData>
</rdf:li>
<rdf:li>
<EncryptedData xmlns = "http://www.w3.org/2001/04/xmlenc#" Type = "http://www.w3.org/2001/04/xmlenc#">
<CipherData>
<CipherValue>23e0199ee9495df1542a4312591</CipherValue>
</CipherData>
</EncryptedData>

</rdf:li>
      </rdf:Bag>
</dc:contributor.referee>
<dc:type>Research article</dc:type>
<dc:format>htm</dc:format>
<dc:coverage>ADMG</dc:coverage>
<dc:date>2008-04-15</dc:date>
<dc:date>2008-04-15</dc:date>
</rdf:description>
</rdf:RDF>

 

Dentro del element EncryptedData se encuentran los elementos criptografiados. Su estructura es de fácil comprensión y visualización, permitiendo la criptografía de un elemento en particular o la del documento completo.

En el tag de la criptografía, la llave de sesión tiene que ser generada, criptografiada y debe ser incluida información sobre ella.

Procedimiento:

Se selecciona el algoritmo y parámetros a ser usados en la criptografía de los datos,

se obtiene la llave de criptografía del material,

se adquiere la secuencia para criptografiar,

criptografiar la secuencia usando la llave y el algoritmo de criptografía,

construir el elemento que cifra el dato,

se construye el elemento de la criptografía del dato o de la criptografía de la llave.

3.3. Firma digital en  XML

XML Signature asegura la integridad de partes de documentos XML transportados.

También proporciona la autenticación de mensajes y/o servicios de autenticación de firma para datos en el XML que incluye la firma o en cualquier otra parte.

Lo que hace principalmente XML Signature es asociar claves con los datos de consulta. XML Signature representa un sistema que a través de una firma digital permite ofrecer autenticidad de los datos.

Con la firma digital se confirma la identidad del emisor, la autenticidad del mensaje y su integridad, sin olvidar que los mensajes no serán repudiados.

El estándar XML permite que estos documentos puedan ser firmados digitalmente, poseyendo las características de autenticación e integridad de los datos.

La firma digital en documentos XML tiene la ventaja de poder ser firmadas partes específicas del documento o, si es necesario, la firma del documento completo. Si esto ocurriera, de que la firma digital pueda ser realizada sobre una parte del documento, no se garantiza la integridad total del documento dado que algunas partes pueden ser alteradas.

En la figura se muestra la estructura de una firma digital en XML, aplicando el código hash.

<Signature Id="EjemploXMLSignature"
 xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>
<Reference
URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/">
<DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>MC0CFFrVLtRlk=...</SignatureValue>
<KeyInfo>
<KeyValue>
<DSAKeyValue>
<p>...</p><q>...</q><g>...</g><y>...</y>
</DSAKeyValue>
</KeyValue>
</KeyInfo>
</Signature>

Figura 11. Ejemplo de la estructura de una firma digital usando XML

 

El elemento Signature encapsula la firma digital. Contiene tres sub-elementos: SignedInfo, SignatureValue y KeyInfo. El elemento SignedInfo contiene información sobre qué es lo que se firma y cómo se firma, es decir, contiene la información necesaria para crear y validar la firma. Este elemento contiene dos algoritmos. Por un lado, está el <CanonicalizationMethod> que es el algoritmo de transformación de SignedInfo antes de realizar la firma digital. Por otro lado, estaría el método de firma (<SignatureMethod>), que sería el algoritmo utilizado para calcular el valor de la firma digital. También se incluye en el elemento SignedInfo las referencias a los objetos que se van a firmar (<Reference>) que incluye además <DigestMethod> y <DigestValue>. La validación de una firma requiere dos procesos que son la validación de la firma y la validación de los resultados de las referencias.

El elemento <CanonicalizationMethod> es el encargado de indicar el algoritmo para canonizar el elemento SignedInfo, que tendrá lugar durante la creación de la firma. El <SignatureMethod>, es el encargado de indicar el algoritmo para general la firma a partir de la canonización de SignedInfo. El resultado obtenido se indicará en el elemento SignatureValue.

Cada elemento <Reference>, incluye una referencia al objeto que se firmará. Al mismo tiempo incluye el resultado de <DigestValue> que es el valor resultante.

El elemento <SignatureValue>, contiene el resultado de la firma digital que se ha aplicado sobre el elemento SignedInfo. El resultado de esta firma está codificado y contiene un atributo que es único con el que se identificará la firma en procesos posteriores de validación.

El elemento <KeyInfo>, se trata de un elemento opcional que indica la clave que ha de utilizarse para validar la firma. El elemento <KeyValue>, especifica la clave para validar la firma digital.

Resumiendo, tenemos que el elemento SignedInfo contiene lo que se firma. Por otro lado, el elemento SignatureValue, contiene la firma, es decir, contiene el elemento SignedInfo en forma canonizada, resumida y encriptada con la clave pública del firmante. Y por último, KeyInfo, que contiene el certificado de la clave pública del firmante.

Bibliografía

Rubén Martínez. Servicio piloto de certificación en RedIRIS. Boletín de RedIRIS, número 39, autentificación, confidencialidad, piloto de certificación, criptografía, criptosistemas, IRIS-PCA,X.509, protocolos, claves PEM. RedIRIS. España. 2007-11-22

Web Of Trust RDF Ontology. http://xmlns.com/wot/0.1

W3C. Canonical XML. http://www.w3.org/1999/07/WD-xml-c14n-19990729

Richard D. Brown. Digital Signatures for XML . http://www.w3.org/Signature/Drafts/xmldsig-signature-990618.html

Guía Breve de Privacidad y P3P. http://www.w3c.es/divulgacion/guiasbreves/PrivacidadP3P

Guía Breve de Seguridad. http://www.w3c.es/divulgacion/guiasbreves/Seguridad

CHASE, Nicholas. XML Digital Signatures, 18 de agosto de 2004. Disponible en http://www.informit.com/guides/content.asp?g=xml&seqNum=142. Acceso en: 12 dez. 2004.
ETSI, Security Plugtests Event – PKI/XAdES, 29 de junho de 2004. Disponible en: <http://www.etsi.org>.

____, XML Advanced Electronic Signatures (XAdES), abril de 2004.
<http://www.etsi.org>. Acesso em: 12 dez. 2004.

____, ETSI XADES PlugTests – Final Report, novembro de 2003.
<http://www.etsi.org>. Acesso em: 12 dez. 2004.

____, Signature policy for extended business model, março de 2003. <http://www.etsi.org>

____, XML format for signature policy, abril de 2002. <http://www.etsi.org>.

____, XML Advanced Electronic Signatures (XAdES), febrero de 2002.<http://www.etsi.org>.

EUROPEAN PARLIAMENT AND THE COUNCIL OF EUROPEAN UNION, Directive 1999/93/EC, 13 de diciembre 1999.

GOKUL, Seshadri. XML Digital Signatures, 30 de agosto de 2002 <http://www.informit.com/articles/article.asp?p=29032>

IETF, RFC-3161, Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP), de agosto de 2001. <http://www.faqs.org/rfcs/rfc3161.html>

____, RFC-3852, Cryptographic Message Syntax, de julio de 2004. http://www.faqs.org/rfcs/rfc3852.html

____, RFC-3369, Cryptographic Message Syntax, de agosto de 2002. <http://www.faqs.org/rfcs/rfc3369.html>

____, RFC-3281, An Internet Attribute Certificate Profile for Authorization, de abril de 2002. <http://www.faqs.org/rfcs/rfc3281.html>

____, RFC-3275, XML-Signature Syntax and Processing, de marzo de 2002. <http://www.faqs.org/rfcs/rfc3275.html>

____, RFC-2360, Cryptographic Message Syntax, de junio de 1999. <http://www.faqs.org/rfcs/rfc2630.html>

ISO, ISO-8879 Standard Generalized Markup Language (SGML), 1986.

NAKOV, Svetlin. How Digital Signatures Work: Digitally Signing Messages. http://www.developer.com/java/ent/article.php/3092771

SOUSA, Artur Afonso. Base de Dados, Web e XML. Lisboa: FCA Editora de Informática, 2002.
W3C, Extensible Markup Language (XML) 1.0, 04 de febrero de 2004. <http://www.w3.org/TR/2004/REC-xml-20040204/>

___, Extensible Stylesheet Language (XSL) Version 1.1, 17 de diciembre de 2003. <http://www.w3.org/TR/2003/WD-xsl11-20031217/>

___, XML Signature Syntax and Processing, 12 de febrero de 2002. <http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/>

___, HTML 4.01 Specification, 24 de dezembro de 1999. <http://www.w3.org/TR/html401>

Richard D. Brown – GlobeSet, Inc. Digital Signatures for XML . http://www.w3.org/Signature/Drafts/xmldsig-signature-990618.html

 

 

 

 

 

Tcnica Administrativa
ISSN 1666-1680

http://www.cyta.com.ar -

2008-07-01
Ingenierías y Computación, Seguridad Informática, Seguridad en Redes

URL