6.033 Hands-on 7 Solution. 11 April 2000 Netscape Certificates 1. got certificate 2. The certificate verifies that a given name (Douglas S. J. De Couto) and a given email address (decouto@mit.edu) is bound to a given public key. What's shown there: * My name and email: they verify my identity * Version information: so we view the certificate properly * Issuing authority: who issued this certificate about me * Serial number: a nonce that makes it easier to manage certificates and uniquely identifies them * Expiration date; when the certificate is no longer valid, so that false certificates eventually become invalid * Fingerprint: an MD5 hash of the certificate, which is essentially unique for each certificate. According to the OpenSSL documentation (www.openssl.org), Internet Explorer uses SHA1. What's not shown: * My public key: I probably wouldn't do much with the text of the public key anyway, except validate it. But I can use the hash to do that also. The public key is of course the whole point of this certificate business. * The signature of the certificate authority, that authenticates the certificate. Without the signature, the certificate has no meaning, anyone could have issued one. * My private key: The private key is not part of the certificate, even though we generate the private key at the same time we generate the public key that goes with the certificate. We stash the private key separately from the certificate, where no-one can see it. Some of you also use passwords in netscape to protect your certificate further, but again, there are not actually part of the certificate; they are just to keep your certificate out of the wrong hands. To see some more interesting certificate information, try: athena% add gnu crypto athena% cd /tmp; wget http://bs.mit.edu/mitca.ca athena% openssl x509 -text -inform DER < mitca.ca This will show you the MIT certificate authority's certificate. 3. The MIT certificate server is willing to give me a certificate with my name because I have proven to it that I possess the right student ID number and kerberos password. In the process, the certificate server trusts kerberos to correctly authenticate me based on my password. WebSIS ``safely'' allows access to my grades and financial information because the certificate indicates that whoever has the corresponding kerberos id and password and is using the web browser that presents WebSIS with the certificate is the only person with the private key coresponding to that certificate. WebSIS can encrypt the relevant grade and financial information so that only the student can decrypt and read the information. Although this system is not bullet-proof, due to known vulnerabilities in Kerberos, AFS, other technical security problems, and some students' lax password security, it is at least secure as sending grades and bills and other official letters to students' mailboxes, e.g. in a fraternity house or dormitory, where any number of students can steal the mail, or read documents left on a desk, etc. Of course, you might not be happy with that level of security either! 4. How do I know I connected to a secure site? When I connected, netscape allowed me to examine the certificate offered up by the site. I could have verified that certificate manually, with a phone call, to see that the public key did indeed match the intended site. Or I could rely on the fact that the certificate is signed by a trusted third party whose public key i already know (e.g. verisign). How do I know to trust the MIT ceritificate authority? If you look closely, you will see that the MIT CA signs its own certificates. Look at http://bs.mit.edu/mitca/sig.asc to see a signature of that certificate with Jeff Schiller's private key (jis@mit.edu). He is MIT's network manager. How do I trust the network to show me the right signature of the certificate? At some level I don't -- I need to again verify Schiller's signature. Maybe I call him on the phone, or get someone else who I trust to authenticate him electronically. If I don't actually verify the certificate somehow, all bets are off, due to numerous network insecurities ranging from the ethernet and IP network layer up to the DNS layer.