On 26-05-15 17:42, Jan Just Keijser wrote:
So, ACK to the patch afterall, although we could discuss whether

Thanks for the clarification. Let's discuss!

a) we want to support stacked CRLs (does PolarSSL support this?)

I'll assume that 'stacked CRLs' means multiple (PEM?) CRLs concatenated into a single file.

Both OpenSSL and PolarSSL are capable of dealing with this, but we currently don't really use the crypto library CRL checking code for --crl-verify. Instead, we have our own x509_verify_crl() function that loads and checks the supplied CRL on every connect. Our implementation of that function does not support stacked CRLs in both our OpenSSL and PolarSSL builds.

The real solution here is probably to let the crypto library do the CRL handling. Adriaan actually started on that during the latest Munich hackathon, but ended up in a bathtub rather quickly [0]. I had a similar experience a little longer ago. The tricky part, iirc, is to figure out when en how to reload the CRL. But we probably both did not truly take the time to 'dive in' ;)

b) we want to support --capath *without* CRLs (relatively short patch).

Yes, I considered that too, but decided not to propose it and see if anyone else would suggest it. So thank you ;) Perhaps a --crl-soft-fail option? The other side of that knife would be that we can introduce stricter CRL checking for --crl-verify too. For example, our current implementation of x509_verify_crl() will happily accept clients if you supply the wrong CRL (but fail if you supply an invalid CRL). That strikes me as weird. Most clients I know of resolve that by implementing their own CRL checking on some plugin or script.

I don't run large OpenVPN setups myself, so I am very much interested to know how 'enterprise users' of OpenVPN deal with this kind of thing, and what they would like.

-Steffan

[0] http://img.pandawhale.com/post-10513-Code-Refactoring-Cat-in-Bathtu-U295.gif

Reply via email to