stringtranslate.com

Huella digital de clave pública

En la 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 digitales 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".

Creación de huellas dactilares de clave pública

Una huella digital de clave pública normalmente 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 la misma huella digital se pueda recrear más tarde, la codificación debe ser determinista y cualquier dato adicional debe intercambiarse y almacenarse junto con la clave pública. Los datos adicionales son típicamente información que cualquier persona que use la clave pública debe conocer. Algunos ejemplos de datos adicionales incluyen: con qué versiones de protocolo se debe usar la clave (en el caso de huellas digitales 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 codifican con una función hash criptográfica como SHA-1 o SHA-2 .
  3. Si se 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 se puede utilizar 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 digitales MD5 o SHA-1 típicas tienen una longitud de solo 128 o 160 bits.

Cuando se muestran para inspección humana, las huellas digitales suelen estar codificadas en cadenas hexadecimales . Luego, estas cadenas se formatean en grupos de caracteres para facilitar su 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 dactilares 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 suele querer autenticar la clave pública. Las huellas digitales pueden ayudar a lograrlo, ya que su pequeño tamaño permite que se transmitan a través de canales de confianza en los que las claves públicas no caben fácilmente.

Por ejemplo, si Alice desea autenticar una clave pública como perteneciente a Bob, puede contactar a Bob por teléfono o en persona y pedirle que le lea su huella digital, o que le dé un trozo de papel con la huella digital escrita. Alice puede entonces comprobar que esta huella digital de confianza coincide 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 ser útiles para automatizar el intercambio o almacenamiento de datos de autenticación de claves. Por ejemplo, si es necesario transmitir datos de autenticación de claves a través de un protocolo o almacenarlos en una base de datos donde el tamaño de una clave pública completa es un problema, entonces el intercambio o almacenamiento de huellas dactilares puede ser una solución más viable.

Además, las huellas digitales se pueden consultar con motores de búsqueda para garantizar que la clave pública que un usuario acaba de descargar pueda ser vista por motores de búsqueda de terceros. Si el motor de búsqueda devuelve resultados que hacen referencia a la huella digital vinculada al sitio o sitios adecuados, uno puede sentirse 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 PGP para facilitar el intercambio de huellas dactilares de claves públicas a través de canales de voz.

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

En sistemas como SSH, los usuarios pueden intercambiar y comprobar huellas dactilares manualmente para realizar la autenticación de claves. Una vez que un usuario ha aceptado la huella dactilar de otro usuario, dicha huella (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 basados ​​en X.509 , las huellas dactilares 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 utilizar para cualquiera de los enfoques anteriores: se pueden utilizar para autenticar claves que pertenecen a otros usuarios o claves que pertenecen a autoridades que emiten certificados. En PGP, los usuarios normales pueden emitir certificados entre sí, formando una red de confianza , y las huellas digitales se utilizan a menudo para ayudar en este proceso (por ejemplo, en las partes que firman claves ).

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

En PGP, la mayoría de las claves se crean de tal manera que lo que se denomina "identificador de clave" es igual a los 32 o 64 bits inferiores, respectivamente, de una huella digital de clave. PGP utiliza identificadores de clave para hacer referencia a claves públicas para diversos fines. No son, propiamente hablando, huellas digitales, ya que su corta longitud impide que puedan 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 tan solo 4 segundos. [2]

Seguridad de las huellas dactilares de clave pública

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

Una amenaza secundaria para algunos sistemas es un ataque de colisión , en el que un atacante construye múltiples pares de claves que codifican para su propia huella digital. Esto puede permitirle a un atacante repudiar las firmas que ha creado o causar otro tipo de confusión.

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

En la práctica, la mayoría de las huellas digitales 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 en el futuro se utilicen cada vez más funciones hash más nuevas, como SHA-256 . Sin embargo, es más probable que las huellas digitales basadas en SHA-256 y otras funciones hash con longitudes de salida largas se trunquen que las huellas digitales MD5 o SHA-1 (relativamente cortas).

En situaciones en las que la longitud de la huella dactilar debe minimizarse a toda costa, la seguridad de la huella dactilar puede mejorarse incrementando el costo de cálculo de la huella dactilar. Por ejemplo, en el contexto de las direcciones generadas criptográficamente , esto se denomina "extensión de hash" y requiere que cualquier persona que calcule una huella dactilar busque una suma de hash que comience con un número fijo de ceros, [3] lo que se supone que es una operación costosa.

Véase también

Referencias

  1. ^ David Mazières ; M. Frans Kaashoek (septiembre de 1998). Escapar de los males del control centralizado con nombres de ruta autocertificables ( 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: Comprueba tus huellas dactilares GPG
  3. ^ Aura, Tumas (marzo de 2005). "Hash Extension". Direcciones generadas criptográficamente (CGA). IETF . sec. 7.2. doi : 10.17487/RFC3972 . RFC 3972 . Consultado el 2 de enero de 2018 .