<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">I am not currently parsing the certificate extensions, and discussion of the commonName vs the subjectAltName has always confused me.&nbsp; This would be something that could be worked on with X509.</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">I don't understand what you mean when you say "it's bad practice to put authorization data into an<BR>authentication instrument like a certificate".&nbsp; I would think that once a certificate is authenticated, then it's identity (commonName or subjectAltName) could be used for authorization.&nbsp; At least the SSL spec speaks about it working this way.</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">Rob<BR><BR></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">----- Original Message ----<BR>From: Cerebus &lt;cerebus2@gmail.com&gt;<BR>To: Cryptography Team Development List &lt;cryptography@lists.squeakfoundation.org&gt;<BR>Sent: Thursday, January 25, 2007 12:52:22 PM<BR>Subject: Re: [Cryptography Team] Re: SSL Certificate Validation<BR><BR>
<DIV>Common name FQDNs are deprecated.&nbsp;&nbsp;FQDNs belong in the subjectAltName extension.<BR><BR>Also, be aware that issuers are usually designated via the<BR>authorityKeyIdentifier extension, not via the issuer DN.<BR><BR>Finally, it's bad practice to put authorization data into an<BR>authentication instrument like a certificate.&nbsp;&nbsp;You cannot be certain<BR>that revocation will be performed in a timely fashion.&nbsp;&nbsp;Authorization<BR>decisions should rely on local data using the identity proved by the<BR>certificate.<BR><BR>On 1/24/07, Robert Withers &lt;reefedjib@yahoo.com&gt; wrote:<BR>&gt; Ron,<BR>&gt;<BR>&gt; I should be clear that there are additional validation requirements<BR>&gt; that I am not checking.&nbsp;&nbsp;For instance, the commonName of the<BR>&gt; certificate is supposed to match the hostname of the server.&nbsp;&nbsp;There<BR>&gt; are lots of rules in this area and a careful perusal of the spec is<BR>&gt; recommended.<BR>&gt;<BR>&gt; I
 think that adding the ability to generate and sign certificates<BR>&gt; would be useful.&nbsp;&nbsp;Of course we would need a Squeak root certificate<BR>&gt; and private key to do so, unless we stick with self-signed certs.&nbsp;&nbsp;If<BR>&gt; we generate a root cert and publish the private key/password, that<BR>&gt; would be little different than access to the swiki for upload - and<BR>&gt; the same level of security.&nbsp;&nbsp;YMMV.<BR>&gt;<BR>&gt; When I have a little time, I may look into client certificates.&nbsp;&nbsp;This<BR>&gt; will require testing with OpenSSL.&nbsp;&nbsp;I'll keep you informed if I get<BR>&gt; into it.<BR>&gt;<BR>&gt; Rob<BR>&gt;<BR>&gt; On Jan 24, 2007, at 6:49 AM, Ron Teitelbaum wrote:<BR>&gt;<BR>&gt; &gt; Very cool Rob!<BR>&gt; &gt;<BR>&gt; &gt; I've been working with the code, testing on multiple machines and it's<BR>&gt; &gt; working well!&nbsp;&nbsp;I haven't been focusing on the actual certificates,<BR>&gt; &gt; but will<BR>&gt; &gt;
 need to do so in a few months.&nbsp;&nbsp;I'm hoping to be able to create client<BR>&gt; &gt; certificates automatically during installation and to be able to<BR>&gt; &gt; renew them<BR>&gt; &gt; periodically.&nbsp;&nbsp;For all this to work I'll need to have client and<BR>&gt; &gt; server<BR>&gt; &gt; certificates working and validated plus a working CA.&nbsp;&nbsp;I'm planning<BR>&gt; &gt; on using<BR>&gt; &gt; certificate extensions to handle service authorization.&nbsp;&nbsp;I'm very<BR>&gt; &gt; pleased<BR>&gt; &gt; with the code and how well it responds.&nbsp;&nbsp;I'll start working with<BR>&gt; &gt; the new<BR>&gt; &gt; code and let you know if I see any issues.<BR>&gt; &gt;<BR>&gt; &gt; Thank you for your work on this!!<BR>&gt; &gt;<BR>&gt; &gt; Ron<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;&gt; From: Robert Withers<BR>&gt; &gt;&gt; Sent: Wednesday, January 24, 2007 12:29 AM<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; All,<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; I've been doing a
 little SSL coding, since it isn't a fully developed<BR>&gt; &gt;&gt; project yet.&nbsp;&nbsp;The most glaring omission has been the lack of<BR>&gt; &gt;&gt; certificate chain processing and validation, thereby leaving a rather<BR>&gt; &gt;&gt; large security hole in the implementation.&nbsp;&nbsp;The code still doesn't<BR>&gt; &gt;&gt; handle client certificates.<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; I have added the capability for a certificate to verify itself with<BR>&gt; &gt;&gt; it's parent certificate.&nbsp;&nbsp;Roughly, this entails comparing the hash of<BR>&gt; &gt;&gt; the certificate (tbsCertificate) with its decrypted signature. using<BR>&gt; &gt;&gt; the parent certificate's publicKey.&nbsp;&nbsp;The parent is identified as<BR>&gt; &gt;&gt; having the same subject as the child's issuer.&nbsp;&nbsp;A self-signed<BR>&gt; &gt;&gt; certificate has the same issuer and subject.&nbsp;&nbsp;These are currently<BR>&gt; &gt;&gt; allowed.&nbsp;&nbsp;Furthermore, the
 certificate is valid if the validity dates<BR>&gt; &gt;&gt; enclose the current date.<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; The code hook for all this is in<BR>&gt; &gt;&gt; SSLSecurityCoordinator&gt;&gt;#validateCertificateChain: certChain<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; The test certificate currently passes, but will expire later this<BR>&gt; &gt;&gt; year.<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; I also added the CACert, Verisign and Thawte's root CAs to the<BR>&gt; &gt;&gt; SSLCertificateStore, but there is no mechanism to add external root<BR>&gt; &gt;&gt; certs.<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; I also coded and tested MD2 hash function, so that some certs can be<BR>&gt; &gt;&gt; validated.<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; Changes to the following packages:<BR>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;Cryptography-ASN1<BR>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;Cryptography-MD4<BR>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;Cryptography-SSL<BR>&gt; &gt;&gt;
 &nbsp;&nbsp;&nbsp;&nbsp;Cryptography-Tests<BR>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;Cryptography-X509<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; cheers,<BR>&gt; &gt;&gt; Robert<BR>&gt; &gt;&gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt;<BR>&gt; _______________________________________________<BR>&gt; Cryptography mailing list<BR>&gt; Cryptography@lists.squeakfoundation.org<BR>&gt; <A href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/cryptography" target=_blank>http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/cryptography</A><BR>&gt;<BR>_______________________________________________<BR>Cryptography mailing list<BR>Cryptography@lists.squeakfoundation.org<BR><A href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/cryptography" target=_blank>http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/cryptography</A></DIV></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR></DIV></div></body></html>