it-swarm.com.de

Was ist der Unterschied zwischen Seriennummer und Fingerabdruck?

Ich habe Probleme zu verstehen, was der Unterschied zwischen der Seriennummer eines Zertifikats und seinem SHA1-Hash ist.

Die MSDN sagt:

Seriennummer Eine Nummer, die das Zertifikat eindeutig identifiziert und von der Zertifizierungsstelle ausgestellt wird.

Kann ich ein Zertifikat anhand seiner Seriennummer identifizieren?

Wikipedia sagt für den Hash:

Thumbprint : Der Hash selbst, der als abgekürzte Form des Public-Key-Zertifikats verwendet wird.

Der Hash identifiziert also den (z. B. RSA) Schlüssel.

Ich recherchiere derzeit an Android App-Zertifikaten und habe einige interessante Zertifikate gefunden:

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

Und es gibt noch viel mehr, die dieselbe Serie haben, aber unterschiedliche Hashes haben.

Es kann also ein Zertifikat mit einem anderen Schlüssel geben? Wer erstellt die Seriennummer tatsächlich, wenn ein Zertifikat für eine Android App) erstellt wird? Für den Hash ist klar, aber kann ich ein neues Zertifikat mit derselben Seriennummer wie ein anderes Zertifikat erstellen?

Kann ich sicher sein, dass ein Zertifikat mit derselben Seriennummer von derselben Person erstellt wurde?

76
reox

In einem Zertifikat wird die Seriennummer von der Zertifizierungsstelle ausgewählt, die das Zertifikat ausgestellt hat. Es ist nur im Zertifikat geschrieben. Die Zertifizierungsstelle kann die Seriennummer nach Belieben auswählen, nicht unbedingt zufällig (und sie muss in 20 Bytes passen). Eine Zertifizierungsstelle ist angenommen, um eindeutige Seriennummern auszuwählen, dh eindeutig für die Zertifizierungsstelle. Sie können sich nicht darauf verlassen, dass eine Seriennummer weltweit eindeutig ist. In der Traumwelt von X.509 ist das Paar issuerDN + serial weltweit einzigartig (jede Zertifizierungsstelle hat ihren eigenen eindeutigen Namen und achtet darauf, Seriennummern nicht wiederzuverwenden).

Der Fingerabdruck ist ein Hashwert, der über das gesamte Zertifikat berechnet wird und alle seine Felder einschließlich der Signatur enthält. Dieser ist weltweit einzigartig für ein bestimmtes Zertifikat bis zur inhärenten Kollisionsbeständigkeit der verwendeten Hash-Funktion. Microsoft-Software verwendet in der Regel SHA-1, für das einige theoretische Schwächen bekannt sind. es wurde jedoch (noch) keine tatsächliche Kollision erzeugt.. Ein Kollisionsangriff auf SHA-1 wurde jetzt von Forschern von CWI und Google demonstriert.

(Die von Ihnen angezeigten Fingerabdrücke scheinen aus 40 hexadezimalen Zeichen zu bestehen, d. H. 160 Bit, was wiederum auf SHA-1 als plausibel verwendete Hash-Funktion zeigt.)

81
Thomas Pornin

Der Fingerabdruck ist die sha1sum oder sha256sum des Zertifikats im binären .DER-Format. Das heißt, von einem Unix-Terminal aus, das Sie ausführen:

sha1sum /path/to/mycertificate.der

Die hexademische Ausgabe dieses Befehls ist Ihr Fingerabdruck. Es wird auch als Fingerabdruck bezeichnet. Probieren Sie es aus und Sie werden sehen.

4
typelogic