stringtranslate.com

Huella digital de clave pública

En criptografía de clave pública , una huella digital de clave pública es una secuencia corta de bytes que se utiliza para identificar una clave pública más larga . Las huellas dactilares se crean aplicando una función hash criptográfica a una clave pública. Dado que las huellas digitales son más cortas que las claves a las que hacen referencia, se pueden utilizar para simplificar ciertas tareas de administración de claves. En el software de Microsoft , se utiliza "huella digital" en lugar de "huella digital".

Crear huellas digitales de clave pública

Una huella digital de clave pública generalmente se crea mediante los siguientes pasos:

  1. Una clave pública (y opcionalmente algunos datos adicionales) se codifica en una secuencia de bytes. Para garantizar que se pueda recrear la misma huella digital más adelante, la codificación debe ser determinista y cualquier dato adicional debe intercambiarse y almacenarse junto con la clave pública. Los datos adicionales suelen ser información que cualquiera que utilice la clave pública debe conocer. Ejemplos de datos adicionales incluyen: con qué versiones de protocolo se debe utilizar la clave (en el caso de huellas dactilares PGP ); y el nombre del titular de la clave (en el caso de huellas digitales de anclaje de confianza X.509 , donde los datos adicionales consisten en un certificado autofirmado X.509 ).
  2. Los datos producidos en el paso anterior se procesan con una función hash criptográfica como SHA-1 o SHA-2 .
  3. Si lo desea, la salida de la función hash se puede truncar para proporcionar una huella digital más corta y conveniente.

Este proceso produce una huella digital corta que puede usarse para autenticar una clave pública mucho más grande. Por ejemplo, mientras que una clave pública RSA típica tendrá una longitud de 2048 bits o más, las huellas dactilares MD5 o SHA-1 típicas tendrán solo 128 o 160 bits de longitud.

Cuando se muestran para la inspección humana, las huellas dactilares suelen estar codificadas en cadenas hexadecimales . Luego, estas cadenas se formatean en grupos de caracteres para facilitar la lectura. Por ejemplo, una huella digital MD5 de 128 bits para SSH se mostraría de la siguiente manera:

43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8

Uso de huellas digitales de clave pública para la autenticación de claves

Cuando se recibe una clave pública a través de un canal que no es de confianza, como Internet , el destinatario a menudo desea autenticar la clave pública. Las huellas dactilares pueden ayudar a lograr esto, ya que su pequeño tamaño les permite pasar a través de canales confiables donde las claves públicas no caben fácilmente.

Por ejemplo, si Alice desea autenticar una clave pública como perteneciente a Bob, puede comunicarse con Bob por teléfono o en persona y pedirle que le lea su huella digital, o darle un trozo de papel con la huella digital escrita. Luego, Alice puede verificar que esta huella digital confiable coincida con la huella digital de la clave pública. Intercambiar y comparar valores como este es mucho más fácil si los valores son huellas digitales cortas en lugar de claves públicas largas.

Las huellas dactilares también pueden resultar útiles a la hora de automatizar el intercambio o el almacenamiento de datos clave de autenticación. Por ejemplo, si los datos de autenticación de claves deben transmitirse a través de un protocolo o almacenarse en una base de datos donde el tamaño de una clave pública completa es un problema, entonces intercambiar o almacenar huellas dactilares puede ser una solución más viable.

Además, las huellas dactilares se pueden consultar con los motores de búsqueda para garantizar que los motores de búsqueda de terceros puedan ver la clave pública que un usuario acaba de descargar. Si el motor de búsqueda devuelve resultados que hacen referencia a la huella digital vinculada al sitio adecuado, uno puede estar más seguro de que la clave no está siendo inyectada por un atacante, como un ataque Man-in-the-middle .

PGP desarrolló la lista de palabras de PGP para facilitar el intercambio de huellas digitales de clave pública a través de canales de voz.

Huellas dactilares de clave pública en la práctica

En sistemas como SSH, los usuarios pueden intercambiar y verificar huellas dactilares manualmente para realizar la autenticación de claves. Una vez que un usuario ha aceptado la huella digital de otro usuario, esa huella digital (o la clave a la que hace referencia) se almacenará localmente junto con un registro del nombre o la dirección del otro usuario, de modo que las comunicaciones futuras con ese usuario puedan autenticarse automáticamente.

En sistemas como PKI basado en X.509 , las huellas digitales se utilizan principalmente para autenticar claves raíz. Estas claves raíz emiten certificados que se pueden utilizar para autenticar claves de usuario. Este uso de certificados elimina la necesidad de verificación manual de huellas dactilares entre usuarios.

En sistemas como PGP o Groove , las huellas digitales se pueden usar para cualquiera de los enfoques anteriores: se pueden usar para autenticar claves que pertenecen a otros usuarios o claves que pertenecen a autoridades emisoras de certificados. En PGP, los usuarios normales pueden emitir certificados entre sí, formando una red de confianza , y las huellas dactilares se utilizan a menudo para ayudar en este proceso (por ejemplo, en fiestas de firma de claves ).

En sistemas como CGA o SFS y la mayoría de las redes criptográficas peer-to-peer , las huellas digitales están integradas en formatos de direcciones y nombres preexistentes (como direcciones IPv6 , nombres de archivos u otras cadenas de identificación). Si ya se intercambian direcciones y nombres a través de canales confiables, este enfoque permite que las huellas digitales se aprovechen de ellos. [1]

En PGP, la mayoría de las claves se crean de tal manera que lo que se llama "ID de clave" es igual a los 32 o 64 bits inferiores, respectivamente, de una huella digital de clave. PGP utiliza ID de clave para hacer referencia a claves públicas para diversos fines. Estas no son, propiamente hablando, huellas digitales, ya que su corta longitud les impide poder autenticar de forma segura una clave pública. No se deben utilizar identificadores de clave de 32 bits, ya que el hardware actual puede generar un identificador de clave de 32 bits en colisión en solo 4 segundos. [2]

Seguridad de las huellas dactilares de clave pública

La principal amenaza a la seguridad de una huella digital es un ataque de segunda preimagen , donde un atacante construye un par de claves cuya clave pública se convierte en una huella digital que coincide con la huella digital de la víctima. Luego, el atacante podría presentar su clave pública en lugar de la clave pública de la víctima para hacerse pasar por ésta.

Una amenaza secundaria para algunos sistemas es un ataque de colisión , donde un atacante construye múltiples pares de claves que codifican su propia huella digital. Esto puede permitir que un atacante rechace las firmas que ha creado o cause otro tipo de confusión.

Para evitar ataques de preimagen, la función hash criptográfica utilizada para una huella digital debe poseer la propiedad de una segunda resistencia a la preimagen. Si los ataques de colisión son una amenaza, la función hash también debería poseer la propiedad de resistencia a la colisión. Si bien es aceptable truncar la salida de la función hash para obtener huellas digitales más cortas y utilizables, las huellas digitales truncadas deben ser lo suficientemente largas para preservar las propiedades relevantes de la función hash contra ataques de búsqueda de fuerza bruta .

En la práctica, la mayoría de las huellas dactilares que se utilizan habitualmente en la actualidad se basan en hashes MD5 o SHA-1 no truncados. A partir de 2017, se pueden encontrar colisiones, pero no preimágenes, en MD5 y SHA-1. Por lo tanto, es probable que el futuro traiga un uso cada vez mayor de funciones hash más nuevas, como SHA-256 . Sin embargo, las huellas dactilares basadas en SHA-256 y otras funciones hash con longitudes de salida largas tienen más probabilidades de truncarse que las huellas dactilares MD5 o SHA-1 (relativamente cortas).

En situaciones en las que la longitud de las huellas dactilares debe minimizarse a toda costa, la seguridad de las huellas dactilares se puede aumentar aumentando el costo de calcular la huella dactilar. Por ejemplo, en el contexto de las direcciones generadas criptográficamente , esto se llama "Extensión Hash" y requiere que cualquiera que calcule una huella digital busque un hashsum que comience con un número fijo de ceros, [3] lo que se supone que es una operación costosa.

Ver también

Referencias

  1. ^ David Mazières ; M. Frans Kaashoek (septiembre de 1998). Escapar de los males del control centralizado con rutas de acceso autocertificadas ( PostScript ) . Actas del 8º taller europeo ACM SIGOPS: Soporte para la composición de aplicaciones distribuidas. Sintra, Portugal: MIT . Consultado el 23 de diciembre de 2006 .
  2. ^ Evil 32: compruebe sus huellas dactilares GPG
  3. ^ Aura, Tumas (marzo de 2005). "Extensión hash". Direcciones generadas criptográficamente (CGA). IETF . segundo. 7.2. doi : 10.17487/RFC3972 . RFC 3972 . Consultado el 2 de enero de 2018 .