How? Public Key Infrastructure for certificate chains Public Key Cryptography for key exchanges Symmetric Cryptography for data transfers
Hash Algorithms MD5 busted SHA1 heading that way SHA256 entering mainstream in 2015
Validating the Certificate Validate certificate signature Validate it is within validity period Validate it chains to trusted root Validate Subject CN or SubjectAltName contains hostname of the target… – Wildcards Check to see if it was revoked
Extended Validation SSL BankoftheVVest.com phishing site Domain validation and the race to the bottom
Ciphers, Hashes, and MACs oh my…
SNI Extension Break the IPEndpoint->Server mapping Important to allow HTTPS virtual hosting Not available on WinXP or Android < v2.3
Forward Secrecy If you can record ALL of the traffic… And you’re using RSA… And you can ever steal or crack the private key (at any point in the future… Achieving Forward Secrecy Do not use the RSA key exchange, which does not provide forward secrecy. Instead, look for the string ECDHE or DHE in the cipher suite name. RSA can be used for key exchange and authentication; there is nothing wrong with the latter.
Popular Ciphers Triple-DES RC4 AES ChaCha (new)
Certificate Pinning Built-into browser Distributed with security software like Microsoft EMET New HTTP Public Key Pinning header https://tools.ietf.org/html/draft- ietf-websec-key-pinning-21 https://tools.ietf.org/html/draft- ietf-websec-key-pinning-21 Public-Key-Pins: pin- sha256="GHI..."; pin- sha256="JKL..."; max-age=… report-uri=…; includeSubDomains
Certificate Transparency Google Chrome intends to require Certificate Transparency (CT) for all EV certificates issued after A SCT “Signed Certificate Timestamp” is added to the certificate.
ECC Public Keys ECC certificates offer stronger security and smaller certificates - e.g. a 256-bit ECC key is equivalent to a 3072-bit RSA key.stronger security and smaller certificates
Run Latest Versions
Enabling HTTPS for your site will be as easy as installing a small piece of certificate management software on the server: https://example.com is immediately live. The Let’s Encrypt management software will: Automatically prove to the Let’s Encrypt CA that you control the website Obtain a browser-trusted certificate and set it up on your web server Keep track of when your certificate is going to expire, and automatically renew it Help you revoke the certificate if that ever becomes necessary. No validation s, no complicated configuration editing, no expired certificates breaking your website. And of course, because Let’s Encrypt provides certificates for free, no need to arrange payment.
WebDev Errors Critical Mistake #1: Non-HTTPS Login pages (even if submitting to a HTTPS page).
WebDev Errors Critical Mistake #2: Mixing HTTP Content into a HTTPS page
attacks-mitigations-deployment-https.aspx Insecure references are upgraded Certificate errors are fatal Use the HTTPS response header: Strict-Transport-Security: max-age= ; includeSubDomains Or get on the browsers’ pre-load list (avoid bootstrapping problem)
Fiddler Visualization If there’s an exclamation point in the column, you’ve done something wrong!
Migration Guide https://t.co/0ORIlnp64Y https://t.co/0ORIlnp64Y Chris Use STS Use Secure attribute on cookies Protocol-relative URLs Run the Qualys SSLLabs Server test
HTTPS all the Things!
Best Practice Secure everything. It’s very hard to predict future attack scenarios. Yes, really.
HTTP Content indicator
Not Just Browsers…
HTTPS Traffic Analysis Source IP Destination IP Server Name (via SNI) Higher-level protocol (via ALPN) Client Certificates (if sent before encryption)
Book: Bulletproof SSL and TLS https://www.feistyduck.com/books/bulletproof-ssl-and-tls/ Coupon Code for 25% off CODEMASH Valid January 1st to 31st Free Chapter: https://www.feistyduck.com/books/openssl-cookbook/
Thanks for coming! Questions? Find me on me: Go forth and secure all the things!