<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Benoit,</div><div><br></div><div>Nice. Is there any CRL or OCSP integration implemented or planned?</div><div><br></div><div>Cheers,</div><div>Drew<br><br><br></div><div><br>On Dec 14, 2014, at 4:24 PM, Benoit Chesneau <<a href="mailto:bchesneau@gmail.com">bchesneau@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 12, 2014 at 10:18 PM, Drew Varner <span dir="ltr"><<a href="mailto:drew.varner@redops.org" target="_blank">drew.varner@redops.org</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Mark,<div><br></div><div>If you are communicating to servers via HTTPS, Hackney and other HTTP clients allow you to pass options to the underlying SSL/TLS socket, including some verification of the peer certificate. For example:<div><br></div><div><a href="https://github.com/talko/httpcbench/blob/master/src/httpcbench_client.erl#L79-L86" target="_blank">https://github.com/talko/httpcbench/blob/master/src/httpcbench_client.erl#L79-L86</a></div><div><br></div><div>Gun has an open issue to address this (<a href="https://github.com/extend/gun/pull/27" target="_blank">https://github.com/extend/gun/pull/27</a>), but it is not implemented. If you use Gun as your HTTPS client, you’re open to man-in-the-middle attacks.</div><div><br></div><div>Do not fall into a false sense of security that any Erlang HTTPS clients provide complete protection against man-in-the-middle attacks out of the box. You’ll also want to consider cases where your peer certificate was revoked by a Certificate Authority. You’d want to know how your HTTPS client handles certificates when their revocation data has been published via a CRL or OCSP. CRL verification has made some headway in Erlang (see the ssl module docs and <a href="http://erlang.org/doc/man/ssl.html" target="_blank">https://github.com/Vagabond/erl_crl_example</a>). You’ll also want to look at hostname verification (<a href="https://github.com/benoitc/ssl_verify_hostname" target="_blank">https://github.com/deadtrickster/ssl_verify_hostname.erl</a>). </div><div><br></div><div>HTTPS is as secure as you make it.</div></div></div></blockquote><div><br></div><div><br></div><div>Just to expand a little bit, now on latest stable erlang versions of SSL hackney 1.0.x is by default checking SSL certificates and their hostname.</div><div><br></div><div>- benoit</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br></blockquote></div></div></div>
</div></blockquote></body></html>