General
Instalación
Los Componentes de firma son un conjunto de librerías que proporcionan funcionalidad de firma digital como acceso a almacenes de certificados, consultas OCSP, petición de sellos de tiempo, firma XAdES, etc.
La firma electrónica consiste en un proceso de codificación de información que por medio de una transmisión de confianza, identifica con garantías al dueño de la firma realizada, y asegura la integridad del contenido firmado.
La encriptación de una firma consiste en una transformación de datos utilizando un mecanismo de transformación dado basado en clave, llamado algoritmo de encriptación. Existen multiples algoritmos de encriptación, pero en general, podemos decir que consisten en una manera de transformar los datos que da como resultado una serie de valores a partir de los cuales, sin una clave, no es posible recuperar los datos originales y revertir la transformación. Por ejemplo, si tenemos un dato de entrada "a", un algoritmo de transformación que dice que cada caracter se transforma siguiendo el alfabeto por el que corresponda dado un desplazamiento y una clave, por ejemplo +2:
Siguiendo este tipo de metodología, el proceso de desencriptación sería la obtención del dato original encriptado deshaciendo los cambios relizados por el algoritmo. Por ejemplo, si damos un texto codificado cualquiera, como el nombre del ordenador central de la película "2001, una odisea del espacio", es decir, "HAL", indicamos el algoritmo de encriptación empleado, y damos la clave, por ejemplo, -1, aplicando el algoritmo al revés observamos que el texto en claro original es "IBM".
Por supuesto, los actuales algoritmos de encriptación son mucho más complejos para asegurar que dado un texto codificado, sea imposible recuperar el texto original sin la clave, de forma que los posibles valores originales sean astronómicos. Es la llamada fortaleza del algoritmo.
En los ejemplos anteriores, el algoritmo de encriptación utilizaba la misma clave para encriptar y desencriptar. Este tipo de claves se llaman claves simétricas y determinan un tipo simple de encriptación. Por otro lado, tenemos las llamadas claves asimétricas que consisten en dos claves distintas entre sí, una de carácter público y otra de carácter privado, que se complementan (lo codificado con clave privada sólo puede ser decodificado con la clave pública y viceversa). Este tipo de claves permite que la encriptación tenga multiples usos, entre los cuales se encuentra la firma electrónica.
Un certificado electrónico es un documento digital que contiene datos identificativos del propietario del mismo, y que va firmado por una tercera identidad que asegura la vinculación entre la identidad del propietario y sus claves.
En la firma electrónica, el emisor utiliza su clave privada para codificar la huella o hash de los datos que se van a firmar (la huella de un fichero es una transformación que a partir de unos datos de longitud variable da lugar a una serie de caracteres de longitud fija, que son únicos a partir de los datos de entrada, es decir, no existe otra entrada distinta que dé por resultado el mismo hash, huella o Digest).
Además de la huella de los datos a firmar, se añaden otros datos, en función del esquema empleado, que se refieren a la propia firma y sirven para fortalecerla y darle longevidad a su validez.
Suponiendo que el usuario que firma es el único que conoce y puede acceder a su clave privada, cualquiera que decodifique el hash recibido con la clave pública del emisor, puede comprobar así que la huella obtenida se corresponde con la huella de los datos firmados. Es decir, por un lado está el actor que valida, que calcula la huella que le corresponderían a los datos firmados, y por el otro lado, se obtiene la huella que se firmó. Si ambos valores coinciden, la firma es válida, demostrando consecuentemente que los datos no fueron alterados, y que fueron codificados utilizando dicha clave privada, que se supone en posesión del firmante, identificado mediante el certificado asociado.
Aquellos integradores que necesiten cualquier funcionalidad de firma digital que esté contemplada en los Componentes.
Bajo licencia LGPL.
Al Centro de Tecnologías del Plan Avanza, mediante correo electrónico en la dirección:
Máquina virtual Java 1.5 (disponible descarga en www.java.com).
Dependiendo de la(s) librería(s) que se desee(n) utilizar, habrá que incluir el JAR de la(s) propia(s) librería(s) y todas sus dependencias en el Classpath de la aplicación en la que van los componentes.