Firma digital en la Web Semántica: Aplicación en la Biblioteca Digital |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Marcelo Claudio Périssé Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. 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 -
3. Aplicación en la Web Semántica
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. 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:
Figura 1. Arquitectura de la Web Semántica 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:
Principios de la seguridad a ser aplicados en la Web Semántica tres principios básicos de la inseguridad de la información:
“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. – 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:
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:
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
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)
c. Basados en registros de desplazamiento de realimentación lineal.
Funciones unidireccionales (hash) de uso criptográfico
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]
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
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
Basados en el problema de la mochila
Basados en secuencias de Lucas
Basados en la teoría de codificación
Basados en esquemas de firma en árbol
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 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
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'?> Figura 9 Ejemplo de un documento XML <?xml version='1.0'?> 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"?>
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" 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. ____, XML Advanced Electronic Signatures (XAdES), abril de 2004. ____, ETSI XADES PlugTests – Final Report, novembro de 2003. ____, 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. ___, 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 |
2008-07-01 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fuente: http://www.cyta.com.ar/biblioteca/bddoc/bdlibros/cifrado_xml/cifrado_xml.htm |
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.
Buscador