<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>