2017-08-14 4 views
0

Ich versuche zu lesen sha256 hat von einem öffentlichen Schlüssel Zertifikate. Das Zertifikat wird unten angezeigt.sha256 Hash von öffentlichen Schlüssel

Ich verwende folgenden Befehl sha256 Hash zu lesen, aber es gibt nicht die richtige Ergebnis:

openssl x509 -in test.crt -pubkey -noout | openssl rsa -pubin -outform der | \ 
    openssl dgst -sha256 -binary | openssl enc -base64 

ich etwas falsch Wert RTy7aSpufwRDWUudgZCwR5Xc7NETd6Imk4YlzvgKTRU=

Korrekte Werte sind immer:

sha256/i1RfARNCYn9+K3xmRNTaXG9sVSK6TMgY9l8SDm3MUZ4= 
sha256/7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y= 
sha256/h6801m+z8v3zbgkRHpq6L29Esgfzhj89C1SyUCOQmqU= 

Ich frage mich, wie drei Werte kamen, ja, nur einer ist korrekt, aber um diese Werte zu validieren, führe ich das unten angegebene Beispielprogramm aus:

Das Hinzufügen falscher Schlüssel-Hash gibt mir einen richtigen Fehler-Logs, und die Verwendung der richtigen ermöglicht es mir, mit Leichtigkeit zu kommunizieren.


-----BEGIN CERTIFICATE----- 
MIIISDCCBzCgAwIBAgIILbxyxVw1oQAwDQYJKoZIhvcNAQELBQAwSTELMAkGA1UE 
BhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxJTAjBgNVBAMTHEdvb2dsZSBJbnRl 
cm5ldCBBdXRob3JpdHkgRzIwHhcNMTcwODAyMTk0NTM5WhcNMTcxMDI1MTkyMzAw 
WjBmMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN 
TW91bnRhaW4gVmlldzETMBEGA1UECgwKR29vZ2xlIEluYzEVMBMGA1UEAwwMKi5n 
b29nbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvqjgh7NP 
S0DNdmqg94u9ecHsxtCCNH5K7RQDbT7stPZaftCBuCXEDbhmqP44ne7kKkKyHqVx 
OxzDyMrvMly/qDvd17X33kXjEdte3YOWTENQ7R//LIQ2qwxOCd7LcDhRLnbhV61k 
yDJIPzjM79BX8b0u9+e2KAYfhYFANB+iZrk0/sLXmlv+T+E1bm4D19H55BstEPM8 
SOTUj0cntYaN+5Rcy1s9p5CjWb1Sy/JXyBv+QLkrbj2JyQ+KlG2Fil4ue3ooF2iA 
LZM+k2OgCizz5Kh6za1oKkL08/wJCaqHQJMhxX1ajXW93DwyojOqt40+6tF43rEU 
Uxy87Joi+ZZNOQIDAQABo4IFFTCCBREwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG 
AQUFBwMCMIID4QYDVR0RBIID2DCCA9SCDCouZ29vZ2xlLmNvbYINKi5hbmRyb2lk 
LmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYISKi5jbG91ZC5nb29nbGUuY29t 
ghQqLmRiODMzOTUzLmdvb2dsZS5jboIGKi5nLmNvgg4qLmdjcC5ndnQyLmNvbYIW 
Ki5nb29nbGUtYW5hbHl0aWNzLmNvbYILKi5nb29nbGUuY2GCCyouZ29vZ2xlLmNs 
gg4qLmdvb2dsZS5jby5pboIOKi5nb29nbGUuY28uanCCDiouZ29vZ2xlLmNvLnVr 
gg8qLmdvb2dsZS5jb20uYXKCDyouZ29vZ2xlLmNvbS5hdYIPKi5nb29nbGUuY29t 
LmJygg8qLmdvb2dsZS5jb20uY2+CDyouZ29vZ2xlLmNvbS5teIIPKi5nb29nbGUu 
Y29tLnRygg8qLmdvb2dsZS5jb20udm6CCyouZ29vZ2xlLmRlggsqLmdvb2dsZS5l 
c4ILKi5nb29nbGUuZnKCCyouZ29vZ2xlLmh1ggsqLmdvb2dsZS5pdIILKi5nb29n 
bGUubmyCCyouZ29vZ2xlLnBsggsqLmdvb2dsZS5wdIISKi5nb29nbGVhZGFwaXMu 
Y29tgg8qLmdvb2dsZWFwaXMuY26CFCouZ29vZ2xlY29tbWVyY2UuY29tghEqLmdv 
b2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNugg0qLmdzdGF0aWMuY29tggoqLmd2 
dDEuY29tggoqLmd2dDIuY29tghQqLm1ldHJpYy5nc3RhdGljLmNvbYIMKi51cmNo 
aW4uY29tghAqLnVybC5nb29nbGUuY29tghYqLnlvdXR1YmUtbm9jb29raWUuY29t 
gg0qLnlvdXR1YmUuY29tghYqLnlvdXR1YmVlZHVjYXRpb24uY29tggcqLnl0LmJl 
ggsqLnl0aW1nLmNvbYIaYW5kcm9pZC5jbGllbnRzLmdvb2dsZS5jb22CC2FuZHJv 
aWQuY29tghtkZXZlbG9wZXIuYW5kcm9pZC5nb29nbGUuY26CHGRldmVsb3BlcnMu 
YW5kcm9pZC5nb29nbGUuY26CBGcuY2+CBmdvby5nbIIUZ29vZ2xlLWFuYWx5dGlj 
cy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIYc291cmNlLmFu 
ZHJvaWQuZ29vZ2xlLmNuggp1cmNoaW4uY29tggp3d3cuZ29vLmdsggh5b3V0dS5i 
ZYILeW91dHViZS5jb22CFHlvdXR1YmVlZHVjYXRpb24uY29tggV5dC5iZTBoBggr 
BgEFBQcBAQRcMFowKwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZ2xlLmNvbS9H 
SUFHMi5jcnQwKwYIKwYBBQUHMAGGH2h0dHA6Ly9jbGllbnRzMS5nb29nbGUuY29t 
L29jc3AwHQYDVR0OBBYEFJsK+1wBuADqH695FkUxvBBxBD13MAwGA1UdEwEB/wQC 
MAAwHwYDVR0jBBgwFoAUSt0GFhu89mi1dvWBtrtiGrpagS8wIQYDVR0gBBowGDAM 
BgorBgEEAdZ5AgUBMAgGBmeBDAECAjAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8v 
cGtpLmdvb2dsZS5jb20vR0lBRzIuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQCWfamc 
vElR0WkzwdaofPD66PsmqihYbgMAEOJBtt4isDLcVqG0tE8xwAYZO+EksklR6nXq 
Pi8021W/qgh2XDmyGajc/psjSBdfAi2bw/kIMcXpQsJSR33n0kLJe4/5z5YwSJEt 
M7f6DKlBzxalGrHc2rnkOw4xZEKYZ+nJQ5E3Lms0NKHFPxj3c5QvUYfiWhC4lY1m 
RZRPIDQc9Bmcu+gJseRGYd8g+USo0829CMq42KaQM7nshxmwexXPv9ic9nV6f+Qi 
nw1hL6RdI3+yHRSZCBPnlfpQfLLJatJmpwddP2ibT56zDDT4BQsP4/QeAbEOJ+Bp 
0nJ0S+1OpCbjQXYL 
-----END CERTIFICATE----- 
+2

Es gibt nur einen öffentlichen Schlüssel im Zertifikat, woher bekommen Sie Ihre 3 "korrekten" Werte? –

+0

HI Robbey, ich habe mehr Code hinzugefügt, woher diese mehr Hashes generiert werden und wie ich validiere, dass mein generierter Hash korrekt ist, bitte schauen Sie nach. – sector11

+0

Ihre Art, den Wert zu berechnen, sieht korrekt aus und entspricht dem [dokumentiert von Mozilla] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Public_Key_Pinning). Was lässt Sie denken, dass die Werte, die Sie für richtig halten, wirklich richtig sind - und vor allem, welcher dieser drei Werte richtig ist? –

Antwort

3

sha256/i1RfARNCYn9 + K3xmRNTaXG9sVSK6TMgY9l8SDm3MUZ4 =

Dieser Stift passt das Blatt Zertifikat zurück beim Zugriff auf www.google.com:

$ openssl s_client -connect www.google.com:443 |\ 
    openssl x509 -pubkey -noout |\ 
    openssl pkey -pubin -outform der |\ 
    openssl dgst -sha256 -binary |\ 
    openssl enc -base64 
... 
depth=0 ... CN = www.google.com 
i1RfARNCYn9+K3xmRNTaXG9sVSK6TMgY9l8SDm3MUZ4= 

Aber, wenn Sie Sehen Sie sich das Zertifikat an, das beim Zugriff auf www.google.com zurückgegeben wird s ein CN von www.google.com. Stattdessen hat das Zertifikat, das Sie in Ihre Frage aufgenommen haben, ein CN von *.google.com, d. H. Ist ein anderes Zertifikat. Dieses Zertifikat wird beispielsweise zurückgegeben, wenn Sie google.com statt www.google.com zugreifen:

$ openssl s_client -connect google.com:443 |\ 
    openssl x509 -pubkey -noout |\ 
    openssl pkey -pubin -outform der |\ 
    openssl dgst -sha256 -binary |\ 
    openssl enc -base64 
... 
depth=0 ... CN = *.google.com 
RTy7aSpufwRDWUudgZCwR5Xc7NETd6Imk4YlzvgKTRU= 

Wie Sie sehen können, wird der öffentliche Schlüssel Fingerabdruck Sie war die richtige berechnet hatte. Nur Ihre Annahmen über die korrekten Fingerabdrücke waren falsch, weil Sie diese gegen die falsche Seite überprüft haben.

+0

vielen Dank für die detaillierte Antwort, ist es eine gute Idee, ein Stammzertifikat für alle Kind Sub-Domain-Zugang, – sector11

+0

@ Sektor11: Bitte stellen Sie keine neue Frage in einem Kommentar (auch wenn es ein Follow-up ist) da niemand neue Fragen und Antworten erwarten wird. Stellen Sie stattdessen eine neue Frage. Abgesehen davon, könnte dies besser auf security.stackexchange.com gestellt werden, aber überprüfen Sie zuerst vorhandene Fragen und Antworten zu diesem Thema. –

+0

ok noch problem. – sector11

Verwandte Themen