viernes, 31 de mayo de 2019
jueves, 23 de mayo de 2019
PRACTICA NO. 5 FIRMAS DIGITALES Y SU USO Y APLICACION PARA LA SEGURIDAD TECNOLOGICA
Firma digital y la seguridad que ofrece en la WEB
Una firma digital es un mecanismo criptográfico que permite al receptor de un mensaje firmado
digitalmente identificar a la entidad originadora de dicho mensaje (autenticación de origen y no repudio), y confirmar que
el mensaje no ha sido alterado desde que fue firmado por el originador (integridad).
TERMINOLOGIA ASOCIADA AL CONCEPTO
·
Un algoritmo de generación de firma digital, también llamado
simplemente algoritmo de generación de firma, es un método para
producir firmas digitales.
·
Un algoritmo de verificación de firma digital, también
llamado simplemente algoritmo de verificación, es un método que
permite la verificación de que una firma digital es auténtica.
·
Un esquema o mecanismo de firma digital consiste en un
algoritmo de generación de firma y su algoritmo de verificación asociado.
·
Un proceso o procedimiento de firma digital es un
algoritmo de generación de firma digital, junto con un método para formatear
los datos en mensajes que puedan ser firmados.
Propiedades necesarias[]
Se han
establecido una serie de propiedades necesarias que tiene que cumplir un
esquema de firma para que pueda ser utilizado.4 La validez de una firma se ampara en
la imposibilidad de falsificar cualquier tipo de firma radica en el secreto del
firmante. En el caso de las firmas escritas el secreto está constituido por
características de tipo grafológico inherentes al signatario y
por ello difíciles de falsificar. Por su parte, en el caso de las firmas
digitales, el secreto del firmante es el conocimiento exclusivo de una
clave (secreta) utilizada para generar la firma. Para garantizar la
seguridad de las firmas digitales es necesario a su vez que estas sean:
·
Únicas: Las firmas deben poder ser generadas solamente por el
firmante y por lo tanto infalsificable. Por tanto la firma debe depender del
firmante.
·
Infalsificables: Para falsificar una firma digital el atacante
tiene que resolver problemas matemáticos de una complejidad muy elevada, es
decir, las firmas han de ser computacionalmente seguras. Por tanto la firma debe
depender del mensaje en sí.
·
Verificables: Las firmas deben ser fácilmente verificables por
los receptores de las mismas y, si ello es necesario, también por los jueces o
autoridades competentes.
·
Innegables: El firmante no debe ser capaz de negar su propia
firma.
·
Viables: Las firmas han de ser fáciles de generar por parte del
firmante.
Firma segura hacia adelante[]
Artículo principal: Firma segura
hacia adelante
La idea básica
de estos esquemas de firma es extender los algoritmos de firma digital con un algoritmo
de actualización de clave que haga que la clave secreta pueda ser cambiada
frecuentemente mientras la clave pública permanece siendo la misma. El esquema
resultante es seguro hacia adelante si
el conocimiento de la clave secreta en un momento del tiempo no ayuda a
falsificar firmas relativas a un periodo anterior de tiempo.5
Firma con
agregación[]
Artículo principal: Firma con agregación
Un sistema
de firma con agregación es un sistema que genera firmas
digitales que permiten ser agregadas en el sentido de que dadas n firmas sobre
n mensajes distintos provenientes de n usuarios distintos, permiten agregar todos
ellos en una sola firma. Con esta firma y todos los mensajes originales se
podrá convencer a cualquier verificador que los n usuarios firmaron los n
mensajes originales donde el usuario i firmó el mensaje i. Esta propiedad es
muy útil para comprimir las cadenas de firmas que se usadas por ejemplos en las
cadenas de certificación de
las PKI o
en las cadenas de firmas usadas en la versión segura del protocolo de
enrutado BGP (SBGP).6
Firma multipartita de adhesión
dinámica[]
Artículo principal: Firma multipartita de adhesión dinámica
La firma
multipartita de adhesión dinámica, también conocida por las siglas DMMS (del
inglés Dynamic-Membership Multi-party Signature), es la abstracción
del tipo de firma propuesto por los sistemas con cadena de bloques en los que nodos
firmantes no confiables, llamados mineros, se encargan de firmar transacciones
a cambio de una retribución. Establecen una firma de información a través
del consenso de
los mineros. Para establecer el consenso utilizan distintos tipos de algoritmos
como prueba de trabajo o prueba de
participación.7
Clasificación[]
En función del modo en
el que se construye la firma[]
Podemos
construir esquemas de firma digital basándonos en distintos tipos de técnicas:8
·
Basándonos en la supuesta seguridad de dispositivos físicos
·
Basándonos en criptografía de clave simétrica.
·
Basándonos en criptografía de clave asimétrica.
Basándonos en
la supuesta seguridad de dispositivos físicos[]
Un dispositivo,
como una tarjeta inteligente,
se dice que es resistente
a modificaciones (en inglés tamper resistant)
si se cree que es difícil acceder a la clave secreta almacenada en él. Por
tanto podemos usar una tarjeta inteligente con un algoritmo criptográfico para construir una firma
digital de la siguiente forma:
El
signatario tienen una tarjeta inteligente que puede sólo cifrar con una clave
secreta , y cada verificador tiene una tarjeta inteligente que puede
sólo descifrar con una clave secreta de forma que lo cifrado por sólo puede ser verificado por . y pueden ser iguales (clave simétrica) o distintas (claves
asimétricas). En este tipo de mecanismo hay que abordar el problema de instalar
y almacenar de forma segura las claves en las tarjetas inteligentes. Falsificar
una firma es difícil si el dispositivo es resistente a modificaciones.
Basándonos
en criptografía de clave simétrica]
Se han
propuesto distintos protocolos de firma basados en la criptografía de
clave secreta. Sin embargo, a partir de la aparición de la criptografía
asimétrica están en recesión debido a su superioridad tanto
conceptual como operacional en la mayoría de los contextos de uso.
Los esquemas de
firma digital de clave simétrica son los siguientes:
Estos esquemas
están basados en el uso una función de un
solo sentido (en inglés one-way function). La gran
desventaja de este tipo de esquemas es el tamaño de las claves y de las firmas
y del hecho de que sólo pueden ser usadas un número fijo de veces
(frecuentemente una sola vez). Merkle9 ha propuesto optimizaciones para este
tipo de algoritmos. Bleichenbacher y Maurer han proporcionado una
generalización de estos métodos.10 Estos esquemas han servido como
primitivas usadas en construcciones más complejas
Basándonos en criptografía
de clave asimétrica[
Se han
propuesto distintos protocolos de firma basados en la criptografía de
clave asimétrica. Los más importantes son los siguientes:
El uso de
criptografía asimétrica para firma digital se basa en el concepto de funciones de un solo sentido con trampa (en
inglés trapdoor one-way functions). Son funciones fáciles de
computar en una sola dirección y difíciles de computar en otra dirección,
excepto para alguien que conozca la información 'trampa'. La información
puede entonces ser firmada digitalmente si el signatario transforma la
información con su clave secreta (la información trampa). El
verificador puede verificar la firma digital aplicando la transformación en
el sentido fácil usando la clave pública.
En función de si usa
información aleatoria]
Algunos
esquemas de firma son deterministas y otros usan bits aleatorios.
Las firmas que usan bits aleatorios probablemente revelan menos información
sobre la clave secreta, sin embargo, por otra parte, obligan al signatario a
tener una fuente segura de bits aleatorios. Observar que si la
fuente de bits aleatorios es revelada, no sólo la firma sino también la clave
secreta puede que sea comprometida. Firma Bloqueada
En
función de si necesita el mensaje original para la verificación de la firma[]
Podemos
clasificar los esquemas de firma digital en función de si es necesario tener el
mensaje original para verificar la firma, dando lugar a los siguientes tipos:118
Esquemas de
firma digital con recuperación de mensaje
Esquemas de
firma digital con apéndice
Esquemas
de firma digital con recuperación de mensaje[]
Para verificar
la firma este tipo de esquemas no requieren el mensaje original ya que el
mensaje original se puede recuperar a partir de la propia firma digital.
Esquemas de
firma digital con apéndice]
Este tipo de
esquemas requieren el mensaje original para poder verificar la firma. Esto es debido
a que a lo que se aplica el algoritmo de firma no es realmente el mensaje
original sino el resultado de aplicar una función hash con ciertas propiedades que
las hacen resistentes frente a ataques para hallar su inversa, es decir, no es
posible, a partir del valor resumen, calcular los datos originales. Son los
llamadas códigos
de detección de modificaciones.
Algunas de las
motivaciones para hacer esto son:
·
Reducir el tamaño de la firma reduciendo el tamaño de la
información a firmar.
·
Aumentar la velocidad de firma
·
Si los mensajes a firmar pueden tener cierta estructura
algebraica y el algoritmo de firma se comporta de forma que el sistema
resultante puede ser vulnerable a criptoanálisis con ataques de texto escogido,
podemos usar funciones hash para destruir esta estructura algebraica.
·
Cuando se usa para firmar algoritmos de firma
por bloques donde los mensajes son más largos que el bloque, no
es seguro firmar mensajes bloque a bloque ya que un enemigo podría borrar
bloques del mensaje firmado o insertar bloques de su elección en el mensaje
antes de que sea firmado. Al usar una función hash hacemos una transformación
que hace a la firma dependiente de todas las partes del mensaje.
·
Hace que el protocolo de firma no sea útil para que un atacante
obtenga el texto en claro correspondiente de un mensaje que ha sido transmitido
de forma cifrada.
En función de la
intervención o no de una entidad árbitro]
Existen dos
métodos para establecer protocolos de firma digital:12 firma digital con árbitro y firma
digital sin árbitro.
Firma digital con árbitro]
En este tipo de
firma se aprovecha el hecho de que dos usuarios (X e Y) con desconfianza mutua
admiten tener confianza en un tercero llamado árbitro (A). El árbitro posee una
clave secreta con cada uno de los usuarios. Estas claves determinan las
funciones de cifrado y descifrado que se establecen entre el árbitro y cada uno
de los usuarios: . Toda la transmisión de
la información entre los usuarios debe pasar forzosamente por el árbitro.
Si por ejemplo
X quiere mandar un mensaje M firmado a Y lo cifra usando y lo manda al
árbitro. El árbitro lo recibe lo descifra (usando ) comprobando que se trata
de un mensaje válido de X, junta la identidad de X y el mensaje M a la firma y cifra el resultado con y lo manda a Y. El
usuario Y descifra (usando ) obteniendo el mensaje M,
la identidad del origen y algo que sabe que es la firma del mensaje por el
usuario. El valor de la firma lo guarda junto con M para que A pueda dirimir
ante una posible disputa.
Firma
digital sin árbitro
En este esquema
el usuario firmante envía directamente la firma al destinatario, éste debe
poder comprobar la firma sin necesitar una tercera entidad como el árbitro.
Factores implicados en
la verificación de la firma]
Normalmente la
verificación de la firma no se ciñe exclusivamente a verificar con el algoritmo
de verificación, que la firma digital se corresponde con el mensaje que se
quería firmar. Además hay que evaluar una serie de factores que dan la validez
real de la firma:
·
Hay que verificar que la clave usada por el signatario es
válida. Normalmente las claves para firmar suelen tener mecanismos que sólo las
hacen válidas durante cierto periodo de tiempo. Este tiempo se limita mediante
uno o varios mecanismos, por ejemplo: fechas de caducidad (por
ejemplo, para criptografía de clave pública con certificados, con tiempos
de vigencia de certificados), estableciendo mecanismos que permiten
comprobar que la clave no ha sido revocada por el firmante (por ejemplo, para
criptografía de clave pública con certificados, con OCSP o CRL).
·
En algunas ocasiones la firma lleva un sello de tiempo (en inglés timestamping).
Este sello de tiempo establece el momento en el que se ha realizado la firma.
Este sello se puede utilizar por los protocolos para establecer periodos de
tiempos después del cual la firma no es válida. Por ejemplo podríamos
establecer un sistema en el que las firmas sólo son válidas durante 30 minutos
después de haberse producido.
Aplicaciones
·
Mensajes con autenticidad asegurada
·
Mensajes sin posibilidad de repudio
·
Contratos comerciales electrónicos
·
Desmaterialización de documentos
·
Transacciones comerciales electrónicas
·
Invitación electrónica
·
Notificaciones judiciales electrónicas
·
Decretos ejecutivos (gobierno)
·
Créditos de seguridad social
·
Contratación pública
Suscribirse a:
Entradas (Atom)