In the SSL protocol I don't see where the certificate is checked for revocation status.
https://developer.mozilla.org/en/Introduction_to_SSL
Is the Certificate Revocation and Status Checking not implemented in the SSL protocol ?
|
In the SSL protocol I don't see where the certificate is checked for revocation status. https://developer.mozilla.org/en/Introduction_to_SSL Is the Certificate Revocation and Status Checking not implemented in the SSL protocol ? |
||||
|
|
The SSL protocol specifies the way a server sends its certificate to the client. The client should then "obtain" the server public key by validating the certificate. The SSL specification does not describe certificate validation; for that, you must look at X.509, in which you will see that it is a much more complex process than what is described in the document you link to. Checking revocation status is part of certificate validation. The client is actually free to do it in any way it sees fit; many web browsers "check" revocation status by a process which goes like "mmhh... it is probably not revoked anyway, no need to check anything". In the X.509 world, revocation status can be ascertained by downloading and validating CRL (Certificate Revocation Lists) or obtaining OCSP responses from OCSP responders (an OCSP response is a kind of CRL reduced to a single target certificate). Theoretically, revocation status should be obtained for all certificates, i.e. the server certificate but also the intermediate CA certificates used to validate the server certificates, and all other certificates used to validate CRL and OCSP responses (this can become highly recursive). The aggregate cost (especially in download time) can become prohibitive, which is why many client rely on a weaker but faster model (e.g. checking status only for the server certificate itself, not the intermediate CA; or checking no status at all). Anyway, validation is how the server public key is obtained, so it occurs during the SSL handshake, right before the ClientKeyExchange message is sent by the client. |
|||
|
|
|
There are two ways of checking the status of a certificate: Neither of these is SSL specific, and they do just that: check the status of a certificate. So they both apply to anything that uses certificates. |
|||||||||||||
|