I have problems to understand what is the difference between the serial number of a certificate and its SHA1 hash.
The MSDN says:
Serial number A number that uniquely identifies the certificate and is issued by the certification authority.
So can I identify a certificate by its serial number, right?
Wikipedia says for the hash:
Thumbprint: The hash itself, used as an abbreviated form of the public key certificate.
So the hash identifies the (e.g. RSA) key.
I currently do some research on Android app certificates and I found some interesting certificates:
[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
And there are a lot more which share the same serial, but have different hashes.
So there can be a certificate with different key? Who is actually creating the serial number when creating a certificate for an Android app? For the hash it is clear, but can I create a new certificate with the same serial number as another cert?
Can I be sure that a certificate with the same serial number was created by the same person?