¿Cuál es la diferencia entre el número de serie y la huella digital?

67

Tengo problemas para entender cuál es la diferencia entre el número de serie de un certificado y su hash SHA1.

La MSDN dice:

  

Número de serie Un número que identifica de forma única el certificado y   es emitido por la autoridad de certificación.

Entonces, ¿puedo identificar un certificado por su número de serie, verdad?

Wikipedia dice para el hash:

  

Huella digital: el hash en sí, utilizado como una forma abreviada del público   certificado de clave.

Por lo tanto, el hash identifica la clave (por ejemplo, RSA).

Actualmente estoy investigando sobre los certificados de aplicaciones de Android y encontré algunos certificados interesantes:

[Issuer][Serial][SHA1 Hash][Valid From]
[C=US, L=Mountain View, S=California, O=Android, OU=Android, CN=Android, E=android@android.com][00936EACBE07F201DF][BB84DE3EC423DDDE90C08AB3C5A828692089493C][Sun, 29 Feb 2008 01:33:46 GMT]
[C=US, L=Mountain View, S=California, O=Android, OU=Android, CN=Android, E=android@android.com][00936EACBE07F201DF][6B44B6CC0B66A28AE444DA37E3DFC1E70A462EFA][Sun, 29 Feb 2008 01:33:46 GMT]
[C=US, L=Mountain View, S=California, O=Android, OU=Android, CN=Android, E=android@android.com][00936EACBE07F201DF][0B4BE1DB3AB39C9C3E861AEC1348110062D3BC1B][Sun, 29 

Y hay muchos más que comparten la misma serie, pero tienen hashes diferentes.

¿Entonces puede haber un certificado con una clave diferente? ¿Quién está creando realmente el número de serie al crear un certificado para una aplicación de Android? Para el hash está claro, pero ¿puedo crear un nuevo certificado con el mismo número de serie que otro certificado?

¿Puedo estar seguro de que la misma persona creó un certificado con el mismo número de serie?

    
pregunta reox 10.05.2013 - 12:35
fuente

2 respuestas

74

En un certificado , el número de serie es elegido por la CA que emitió el certificado. Se acaba de escribir en el certificado. La CA puede elegir el número de serie de cualquier manera que considere conveniente, no necesariamente al azar (y tiene que caber en 20 bytes). Se supone que una CA para elegir números de serie únicos, es decir, únicos para la CA . No puede contar con que un número de serie sea único en todo el mundo; en el mundo de los sueños de X.509, es el par issuerDN + serial que es único en todo el mundo (cada CA tiene su propio nombre distintivo y se cuida de no reutilizar los números de serie).

La huella digital es un valor de hash calculado sobre el certificado completo, que incluye todos sus campos, incluida la firma. Ese es único en el mundo, para un certificado dado, hasta la resistencia de colisión inherente de la función hash utilizada. El software de Microsoft tiende a usar SHA-1, por lo que se conocen algunas debilidades teóricas, pero no se ha producido ninguna colisión real (todavía) . Un ataque de colisión en SHA-1 ahora ha sido demostrado por investigadores de CWI y Google.

(Las huellas digitales que muestran parecen estar compuestas por 40 caracteres hexadecimales, es decir, 160 bits, que de nuevo apuntan a SHA-1 como la función hash plausiblemente utilizada).

    
respondido por el Thomas Pornin 10.05.2013 - 13:35
fuente
4

La huella digital es el sha1sum o sha256sum del certificado en su formato binario .DER. Es decir, desde un terminal Unix que ejecuta:

sha1sum /path/to/mycertificate.der

El resultado hexadímico de ese comando es tu huella digital. También se le llama la huella digital. Pruébalo, y verás.

    
respondido por el daixtr 07.11.2015 - 13:26
fuente

Lea otras preguntas en las etiquetas