¿Cuál es la diferencia entre un “Algoritmo de huella digital” y un “Algoritmo de firma” para un certificado?

35

Estoy un poco confundido sobre las diferencias entre Signature Algorithm , Signature Hash Algorithm y Thumbprint Algorithm que están presentes en los certificados SSL / TLS. ¿Puede alguien por favor elaborar?

    
pregunta Mike B 20.10.2014 - 22:31
fuente

2 respuestas

39

Estás confundido porque algunas personas (sí, te estoy mirando, Microsoft) han estado usando los términos de manera inconsistente.

Un algoritmo de firma es un algoritmo criptográfico tal que:

  • El firmante posee un par de clave pública / privada . La clave pública es pública, la clave privada es privada; Aunque ambas claves están unidas matemáticamente, no es factible volver a calcular la clave privada de la clave pública (por lo que la clave pública podría hacerse pública de forma segura).
  • En un mensaje de entrada dado, el firmante puede usar su clave privada para calcular una firma , que es específica para el par de claves del firmante y el mensaje de entrada.
  • Hay un algoritmo de verificación que toma como entrada el mensaje, la firma y la clave pública, y responde "verdadero" (coinciden) o "falso" (no lo hacen).

La piedra angular de la seguridad de la firma es que no debería ser factible, sin el conocimiento de la clave privada, generar un mensaje de pareja + firma que el algoritmo de verificación acepte.

Puede encontrar algunas "explicaciones" que intentan decir que las firmas digitales son algún tipo de cifrado; Por lo general, lo describen como "cifrado con la clave privada". No lo creas estas explicaciones son realmente erróneas y confusas.

Por razones técnicas, los algoritmos de firma (tanto para firmar como para verificar) a menudo comienzan con una función hash . Una función hash es un algoritmo completamente público sin clave. El punto de las funciones hash es que pueden consumir terabytes de datos y producir un "resumen" (también llamado "huella digital" o incluso "huella digital") que tiene un tamaño fijo y pequeño. Los algoritmos de firma necesitan eso, porque trabajan con valores en una estructura algebraica de un tamaño finito y, por lo tanto, no pueden acomodar mensajes enormes. Por lo tanto, el mensaje es primero hash, y solo el valor de hash se usa para generar o verificar una firma.

Este algoritmo hash, cuando se usa como primer paso de una generación de firmas o algoritmo de verificación, se llamará "algoritmo hash de firma". Cuando decimos algo como "RSA / SHA-256", nos referimos a "firma RSA, con SHA-256 como función hash de acompañamiento".

Un "algoritmo de huella digital" es otro nombre para una función hash. A menudo se encuentra al hablar de certificados : la "huella digital" de un certificado realmente es el resultado de una función hash aplicada al certificado (en los sistemas Windows, se utiliza la función hash SHA-1) .

    
respondido por el Tom Leek 20.10.2014 - 22:45
fuente
1

Si bien la respuesta aceptada incluye algunos detalles sobre cómo se realiza el cálculo, no aborda en absoluto la pregunta original: el algoritmo de firma, el algoritmo de hash de firma y el algoritmo de huella digital presentes en los certificados SSL / TLS, cuál ¿Cuál es el elemento de la ecuación (especialmente si Microsoft también lo confunde)?

La respuesta parece bastante simple: de:

enlace

y marcado como respuesta correcta allí:

  

Diferencias entre "algoritmo de firma" y "hash de firma"   Algoritmo "

     

Se utilizan para determinar el algoritmo de firma y la función hash   Se utiliza para firmar el certificado. Esta información es utilizada por el certificado.   Motor de encadenamiento para validar la firma del certificado.   El motor de encadenamiento de certificados calcula un hash sobre un certificado   (parte firmada). El método hash se selecciona del algoritmo de hash de firma   campo. Luego el motor de encadenamiento de certificados decodifica la firma adjunta por   utilizando el algoritmo de firma especificado en el campo Algoritmo de firma   Y recupera el hash firmado. Si ambos hashes coinciden, entonces la firma es   válido, si difieren, la firma se considera inválida.

Mi adición de otra fuente - Thumbprint Algo - propiedad simple no criptográfica utilizada para identificar el certificado en un sistema determinado (no autenticarlo ni verificar su validez)

    
respondido por el Peter G 30.03.2017 - 00:47
fuente

Lea otras preguntas en las etiquetas