Re: [ANNOUNCE] perdition 2.1
Simon Horman <[email protected]> Fri, 7 Feb 2014 17:07:29 +0900
| Newsgroups | gmane.mail.perdition.user |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Feb 07, 2014 at 12:39:40AM -0500, Daniel Kahn Gillmor wrote: > On 02/06/2014 11:01 PM, Simon Horman wrote: > > On Thu, Feb 06, 2014 at 08:41:44PM -0500, Daniel Kahn Gillmor wrote: > >> any thoughts about how to address the PFS/DHE situation? > > > > Sorry, I completely missed that. > > > > I think the patch looks good, though I'd like to take a closer look > > at it before applying it before applying it. > > that sounds reasonable :) If you have any feedback or suggestions about > it, i'd be happy to talk it over. > > > My preference is to wait a bit before releasing 2.2, but if its > > urgent I can make a release more quickly. > > it's not urgent for me personally; i've been running it patched in > production on a few servers for months now. But i do think it's a > relevant feature for other perdition users. > > >> Also, what are the plans for uploading 2.1 to debian? Sorry to ask for > >> pony after pony :) > > > > Yes, I plan to do it, addressing Debian bugs #609654 and #692721 at the > > same time. If you would like to help out please feel free to do so :) Thanks for your analysis. I think both of the bugs below are things that should be fixed in perdition itself (or declared not a but in the case of the second bug?) What I would actually like to fix for the Debian packages is bugs #680086 and #737666. Sorry for the cut-and-paste error in my previous email. > > hmm, looking at them: > > https://bugs.debian.org/609654 > > I definitely think there could be something funny with client-side > certificates, but i haven't done enough work to pin it down. I know > that even for perdition instances that have no expectation of using > client-side certificates, a thunderbird instance that knows about a > client-side cert tries to offer it to the server. this is a little > weird, and is probably worth digging deeper into perdition's use of the > openssl stack. > > I'm seeing a few things that you might find useful: > > Looking at the code and documentation around ssl_no_cert_verify and > ssl_no_client_cert_verify, i'm not convinced it's correct, actually. In > perdition.8, both ssl_no_cert_verify and ssl_no_cert_client_verify are > declared as being relevant for outbound connections only. should one of > them be for incoming connections? i think ssl_no_cert_client_verify > should be documented as for incoming connections. > > Aside from the options.c parsing code, the only places those two > variables are used are on three lines of ssl.c. line 585 is clearly for > outgoing (PERDITION_SSL_CLIENT), but line 610 is for incoming > (PERDITION_SSL_SERVER) and line 972 appears only during the certificate > check itself, which presumably won't be called if the client isn't > prompted for a certificate. > > incidentally, the comment block above __perdition_ssl_log_certificate > appears to name the wrong function in line 888. > > perdition_ssl_ctx() also seems to have some odd logic in it around line > 585: it skips loading the CA information for outbound connections that > will not verify a cert, but it doesn't bother to skip this info for > incoming connections that won't verify a cert. why not skip it in both > client and server cases (presumably based off of a different option)? > > Another concern: while ca_chain_file is documented as the list of > intermediate certificates, it appears to be used as a set of certificate > authorities for verification (via SSL_CTX_load_verify_locations()) > instead of its stated purpose. ironically, the certificate file itself > is loaded with SSL_CTX_use_certificate_chain_file(), presumably because > of OpenSSL's silly API that doesn't make it simple to separate the EE > cert from the intermediate certs. treating the ca_chain_file as a list > of legitimate CAs seems problematic; it's certainly possible for an IMAP > frontend to offer one CA for its clients to use (e.g. an intermediate > cert that chains back to a member of the well-known CA cartel) while > using in-house certificate authorities for the backhaul (outbound) > links. By loading the chain_file into the list of verifiers for the > backhaul links, anyone who compromises the CA used for the frontend > connections can now compromise the backhaul without perdition noticing. > > So i think there might be significant cert-handling cleanup to do, both > in documentation and code. I'm happy to offer patches to make it "Do > the Right Thing" in the cases i'm thinking about, but those changes > might actually affect the crypto semantics for existing users with > existing configs, and i'm not sure how you want to address that. What > do you think? > > https://bugs.debian.org/692721 > > This one looks like it might be unreproducible. do you have a test > suite (or a fuzzing environment or something) that's able to cause these > asserts to happen? > > --dkg > ______________________________________________ Perdition-users mailing list [email protected] http://lists.vergenet.net/listinfo/perdition-users