Saltar la navegación

9.- Ficheros firmados digitalmente.

Caso práctico

Para garantizar la autenticidad de la aplicación de Gestión Hotelera, Ada propone que los ficheros de instalación, ya sean paquetes JAR o instalables exe, vayan firmados digitalmente.

Imagen de una pantalla encendida de un ordenador.
Ministerio de Educación y Formación Profesional (Elaboración propia)



Una firma digital o esquema de firma digital, es un esquema matemático que permite demostrar la autenticidad de un documento digital, en nuestro caso un fichero.
Una firma digital válida nos garantiza que el fichero ha sido creado por una empresa o autor conocido y que no ha sido modificado durante su transferencia.
Imagen de un candado.
INTEF (CC BY-NC-SA)



En el caso de la distribución de software, sobre todo a través de descargas de Internet, nos garantiza la autenticidad del fichero, el autor y que durante la descarga no ha sufrido ningún tipo de alteración.

La plataforma Java nos permita firmar digitalmente ficheros Jar. Cuando se firma un fichero Jar, los que se está asegurando a los usuarios que ejecuten la aplicación es la autoría de ese software. Cuando digitalizamos el fichero, cualquiera puede reconocer la firma digital del autor. El proceso de reconocimiento de la firma digital se denomina verificación.

La firma y verificación de ficheros es una parte importante de la arquitectura de seguridad de la plataforma Java. Podemos configurar la política de seguridad para permitir a un applet (Componente de una aplicación que se ejecuta en el contexto de otro programa, por ejemplo, un navegador) y a una aplicación puedan realizar operaciones normalmente prohibidas como pueden ser la lectura y escritura de ficheros locales, ejecución programas, etc.

La plataforma Java permite firmar y verificar usando números especiales denominados claves públicas y privadas. Las claves públicas y privadas vienen en parejas, y tienen roles complementarios. La clave privada es el "lápiz" electrónico que nos permite firmar un fichero. La clave privada sólo es conocida por el autor de la firma. Un fichero firmado con llave privada, solo puede ser verificado con su correspondiente llave pública. Existe un elemento adicional necesario para la firma y verificación. Este elemento es el certificado que el firmador incluye en un fichero JAR firmado. El certificado es una declaración digital firmada reconocida por una autoridad de certificación que indica quién es el dueño de una clave pública determinada. Resumiendo, la firma digital:

  • El desarrollador firma el fichero JAR usando una llave privada.
  • La correspondiente llave pública se coloca en el fichero JAR, junto con el certificado, que estará disponible para que cualquiera pueda verificar la firma.