The document discusses improving website security by enabling HTTPS and related protocols. It outlines problems such as HTTP traffic being unencrypted and vulnerable to interception, and solutions such as enabling HTTPS, configuring it securely, using HSTS and HTTPS preloading to force encryption, and services like Let's Encrypt to easily issue certificates for free. While progress has been made, challenges remain around certificate authorities, content delivery, and dependency on third parties. Adopting standards like HTTP Public Key Pinning and Certificate Transparency can help address some challenges.
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Are We Secure Yet? Understanding HTTPS and TLS Configuration Basics
1. ARE WE SECURITY YET?
Cristian Vat, @deathy
Geek.
Security Enthusiast
2. Problem: HTTP is not encrypted
• Traffic can be passively intercepted
• Including your cookies/sessions, personal information
• Can be targeted for ads or more malicious reasons
• Traffic can be manipulated
• Ad injection
• Malware injection
8. Problem: HTTP links/requests
• Browsers still default to HTTP on port 80, which isOK
• Some clients may not support HTTPS
• Bookmarks
• It’s a web of links.Old links and you can’t update them all.
9. Solution: Redirect to HTTPS!
• HTTP Redirect:
• Client: GET http://somesite.ro/
• Server: 301 Redirect to https://somesite.ro/
• JavaScript … $ curl -i http://www.homebank.ro/
HTTP/1.1 200 OK
content-length: 148
content-type: text/html
date: Fri, 17 Feb 2017 12:51:43 GMT
last-modified: Fri, 25 Oct 2013 22:58:06 GMT
p3p: CP="NON CUR OTPi OUR NOR UNI"
<script>
//redirect to public junction for login!
document.location="https://www.homebank.ro/public/HomeBankLogin/jsp/index.jsp";
</script>
10. Problem: Many slow redirects
• You’re still possibly redirecting every individual link
• Caching of redirects:
• “It depends”
• Possible cause of bugs even if you just want to switch “http:” to “https:”
• No clear browser knowledge that page should only be used on HTTPS.
• Solution?
11. Solution: HSTS saves the day!
• HTTP Strict Transport Security
• On valid HTTPS request the server sends a new HTTP Header:
• Browser will redirect all HTTP requests to HTTPS internally until expiry
• Even if user manually types an “http://” link!
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
12. Problem: First request fresh browser
• Fresh browser install
• Never visited a certain website before
• Nothing in HSTS cache
13. Solution: HSTS Preload
• Need a valid HSTS setup
• Go to https://hstspreload.org/ and submit your site to preload list
• Chrome preload list:
https://chromium.googlesource.com/chromium/src/net/+/refs/heads/master/http/
transport_security_state_static.json
• Gets baked in to Chrome, Firefox, Internet Explorer downloads/updates.
• Currently holds 80 “.ro” domains. (2 of them mine, banks seen: only brd.ro and
unicredit.ro )
14. Problem:Security byCoincidence
• Just a very small sample.
flanco.ro:
Our dev team who manages the our public website has mistakenly
configured the preload function + include_includesubdomains. This
feature has blocked our internal websites as well, even if the don’t > use
SSL at all. :(
hovie.at:
We cannot supportHTTPS on the
following subdomains:
• andrew.hovie.at - I don't have to time
to manage my own server
anymore, so I switched to a hosting
provider,wildcard certs are
expensive,they do not supportcerts
with multiple domains.
Also, when I enabled preload,I did not
actually know what I am doing,
I was just following the recommendation
from https://cipherli.st/.
chrishamper.com:
I had enabled the HSTS header with the "preload" directive on my domain
while
following an online guide related to HSTS, which didn't explain the
meaning or
repercussions of that directive. It is now causing much trouble when
attempting to do development work using subdomains I'm spinning up as
needed.
15. TheCA Problem
• CA “Mafia”
• Making money from nothing
• HTTPS certificate cost may be prohibitive for personal websites
16. Solution: Let’s Encrypt
• Free domain validated certificates
• Fast, automatic
• Same security as anything else
• No wildcard/EV
• Short expiration date
17. The other CA problem
• Any CA can issue certs for any domain
• China CA can issue certificate for your US-based website
• Active attacks or bugs in CA validation
• See DigiNotar
18. Solution: HTTP Public Key Pinning
• Pin Public Keys of CAs which are allowed to issue certs for your site
• Need at least 2 pins.
• You can break your site…
• Certificate Transparency
20. Solution:CDNs to the rescue!
• Load jQuery/Bootstrap/etc. from CDN
• Problem:
• Now you depend on the CDN’s security
• Requests may be intercepted
• Active JS content running in your page may be modified by the CDN
21. Solution: Subresource Integrity
• Include the hash of a known good version in the <script> or <link> tag in your page
• Browser downloads resource but checks hash before applying styles/script to
page.
<script src="https://example.com/example-framework.js" integrity="sha384-
oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
crossorigin="anonymous"></script>