<div dir="ltr"><a href="https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning">https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning</a><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On 17 July 2014 08:08, Roger Lipscombe <span dir="ltr"><<a href="mailto:roger@differentpla.net" target="_blank">roger@differentpla.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
SSL encryption is done by the client creating a session key, and using<br>
the server's public key (from the server's certificate) to securely<br>
send it to the server. If you don't verify the server certificate, you<br>
have no way of knowing whether you're subject to a man-in-the-middle<br>
attack, where the attacker can give you a fake certificate, extract<br>
the session key, read/manipulate all your traffic, and then<br>
(optionally) send it to the real server.<br>
<br>
Encryption is only half of the story. SSL also aims to guarantee safe<br>
key exchange, but to do that, you need to verify the server<br>
certificate. This means verifying that the names match, that it's<br>
trusted (or issued by a trusted CA), and that it hasn't expired, been<br>
revoked, etc.<br>
<br>
And there's more than one way (also including DNS spoofing) to<br>
intercept the traffic: transparent proxies, pwned WiFi router, etc..<br>
<div class="HOEnZb"><div class="h5"><br>
On 15 July 2014 15:41, Camille Troillard <<a href="mailto:lists@tuli.pe">lists@tuli.pe</a>> wrote:<br>
> Hi Robert,<br>
><br>
>> SSL essentially does two things at once: encrypts the data and checks if client and/or server are who they say they are. The latter is where certificate verification comes into play, the encryption part is always done and usually automatically negotiated between client and server.<br>

>><br>
>> So, if all you are aiming for is encrypting the data travelling between client and server, then you don't need the ssl option. Just point your httpc:request at an "https://..." URL and the encryption is handled for you without you having to do anything more.<br>

><br>
> I think this works only if you trust your DNS, otherwise you have to check that the certificate matches the host.<br>
> Please correct me if I’m wrong.<br>
><br>
> Cam<br>
><br>
><br>
> _______________________________________________<br>
> erlang-questions mailing list<br>
> <a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>