miércoles, 9 de julio de 2008

La firma digital y la seguridad

En el ámbito comercial actual, la determinación de un marco adecuado para obtener la autenticación de información basada en un sistema de computación requiere familiarizarse con conceptos y adelantos pertenecientes tanto al campo legal como de la seguridad informática ('Computer Security', 'Network Security' o 'Information Security'). La combinación de estas dos disciplinas no resulta fácil de lograr. Conceptos que entran dentro del ámbito de la Information Security no siempre se corresponden con conceptos del ámbito jurídico, aun en aquellos casos en los que la terminología es la misma. Por ejemplo, desde el punto de vista de la Information Security, firma digital significa el resultado de aplicar un determinado proceso técnico específico a una determinada información.
El concepto jurídico tradicional de firma es mucho más amplio, reconociendo cualquier signo realizado con la intención de autenticar el documento firmado. Incluso en algunos países se incluyen en el concepto de firma otros signos, como por ejemplo la imagen digitalizada de una firma realizada en papel.
Desde el punto de vista de la Information Security, estas firmas electrónicas son totalmente diferentes a las firmas digitales que se describen en este trabajo y en la literatura técnica, sin perjuicio que el término 'firma digital' sea algunas veces utilizado para significar cualquier forma de firma realizada con la intervención de una computadora. En el presente trabajo hablamos de firma digital con el sentido dado por la terminología de la Information Security.
Las firmas digitales son creadas y verificadas por medio de la criptografía . Se valen de lo que se conoce con el nombre de criptografía de clave pública, que emplea un algoritmo que contiene dos claves diferentes pero matemáticamente relacionadas, una clave para la creación de la firma digital o para la transformación de datos a una forma ininteligible, y otra clave para la verificación de la firma digital o volver el mensaje a su forma original. Al equipo y software que utiliza dichas claves se les designa colectivamente con el término Criptosistema Asimétrico.
Las claves complementarias de un criptosistema asimétrico para firma digital reciben arbitrariamente el nombre de clave privada, sólo conocida por el que firma y utilizada para la creación de la firma, y la clave pública, que puede ser conocida por los terceros, y que se utiliza para la verificación de la firma digital. En el caso que muchas personas necesiten verificar una firma digital, la clave pública debe estar al alcance o ser distribuida a todos ellos, generalmente mediante las publicación en un directorio de fácil acceso o asentada en un Registro especial. Sin perjuicio que las claves que constituyen el par se encuentran matemáticamente relacionadas, si el criptosistema asimétrico ha sido diseñado e implementado correctamente en términos de seguridad, resulta computacionalmente imposible obtener la clave privada por el hecho de conocer la clave pública. Por lo tanto, el hecho de que distintas personas conozcan la clave pública de una determinada persona y la utilicen para verificar su firma no significa que puedan descubrir la clave privada y la utilicen para firmar por su propietario. Esta circunstancia recibe el nombre de principio de irreversibilidad.
Otro proceso fundamental, denominado hash function, es utilizado tanto en la creación como en la verificación de la firma digital. Una hash function consiste en un algoritmo que, aplicado a un mensaje determinado, crea una representación digital o 'huella dactilar' denominado hash result o hash value, de una longitud fija, mucho menor que el mensaje original, pero substancialmente único a él. Cualquier modificación del mensaje produce inevitablemente un diferente hash result, cuando se utiliza la misma hash function. En el caso de una 'hash function segura', resulta computacionalmente imposible obtener el mensaje original partiendo de su hash value. Las hash functions, por lo tanto, permiten al software crear firmas digitales para operar en pequeñas cantidades de datos, a las vez que continuar proveyendo una robusta correlación con el contenido del mensaje original, asegurando que este no ha sido modificado desde que fuera digitalmente firmado.
Como se ha adelantado, la utilización de las firmas digitales comprende dos procesos, uno llevado a cabo por el firmante y el otro por el que recibe el mensaje firmado digitalmente:
La creación de la firma digital utiliza un hash result derivado y único tanto a mensaje firmado como a la clave privada.
La verificación de la firma digital consiste en la constatación de la firma relacionándola con el mensaje original y la clave pública dada, para determinar si la misma fue creada para ese mensaje utilizando la clave privada correspondiente a la referida clave pública.
Para firmar un documento o cualquier otro tipo de información a transmitir electrónicamente, el firmante debe determinar precisamente los límites de aquello que va a ser firmado. Esta información precisamente delimitada recibe el nombre de mensaje. Luego, una hash function contenida en el software utilizado produce un 'hash result', único a dicho mensaje. El software luego transforma el hash result en la firma digital, utilizando la clave privada del firmante. La firma digital resultante es única tanto para el mensaje como para la clave privada utilizada para su creación. La transformación del digesto de mensaje o hash result en la firma digital mediante la aplicación de la clave privada del firmante es descripta muchas veces como encriptado. Dicha terminología no es del todo correcta, ya que en el sistema de firma digital el mensaje no necesita ser confidencial. De hecho se transmite el mensaje original (plain text) con la firma digital (digesto de mensaje o hash result + clave privada del firmante). De esta forma la firma digital, luego de su verificación, permite que el receptor del mensaje tenga la seguridad que el mensaje proviene del que dice ser su originador y que no ha sufrido alteraciones durante su transmisión. La confidencialidad puede ser provista como un servicio adicional de las tecnologías de firma digital.
La verificación de la firma digital consiste en computar un nuevo digesto de mensaje o hash result partiendo del mensaje original (plain text), mediante la aplicación de la misma "hash function" utilizada por el originador para la creación de la firma. De allí que utilizando la clave pública del originador y el nuevo digesto de mensaje, el receptor del mensaje verifica: 1) si la firma digital fue creada utilizando la correspondiente clave privada; y 2) si el nuevo digesto de mensaje computado coincide con el digesto de mensaje original que fue transformado en firma digital durante el proceso de firma.
Distintos criptosistemas asimétricos crean y verifican firmas digitales utilizando diferentes algoritmos y procedimientos, pero comparten los principios básicos explicados.
Los procesos de creación y verificación de firmas digitales cumplen los efectos legales esenciales requeridos de una firma:
Autenticación del suscriptor: Si un par de claves pública y privada es asociada con una persona determinada, la firma digital atribuye el mensaje a dicha persona. La firma digital no puede ser adulterada, salvo que el suscriptor haya perdido el control de la clave privada.
Autenticación del mensaje: La firma digital identifica el mensaje firmado, con mayor certeza y precisión que las firmas basadas en papel. La verificación revela cualquier intento de adulteración, desde que la comparación del digesto de mensaje (uno obtenido en el proceso de firma y otro en el proceso de verificación) nos muestra si el mensaje recibido es igual al mensaje firmado.
Acto afirmativo: La creación de una firma digital requiere que el suscriptor utilice su clave privada. Este acto puede ser considerado como la función formal o ceremonial de alertar al suscriptor acerca de que está realizando una transacción con consecuencias legales.
Eficacia: El proceso de creación y verificación de una firma digital provee un alto grado de certeza acerca de que la firma digital proviene del suscriptor