HSTS from Top to Bottom
troyhunt.com
troyhunt.com
You can apply for Chrome preload via https://hstspreload.org/ which I ends up in Chrome source, the list is then replicated to other browsers by their maintaniers.
HSTS Preload will prevent initial-access downgrade attacks for clients using versions of browsers with your domain as a HSTS preload. The downside is preload removal is difficult and would take a fair while to propogate.
Also another common misconception is disabling port 80 will remediate the issue - if an attacker can intercept and modify traffic they are able to open and redirect the port to a node under their control. https://letsencrypt.org/docs/allow-port-80/
"95% of HTTPS servers vulnerable to trivial MITM attacks"
https://news.netcraft.com/archives/2016/03/17/95-of-https-se...
HSTS making progress...
Another problem is I believe DNSSEC is only validated by the recursive resolver. So if the end user is using an external recursive resolver (e.g. 8.8.8.8) then the data between the user and the recursive resolver can still be spoofed by a MITM, and also the recursive resolver itself could behave maliciously.
I think most people agree that the domain is the trust point nowadays (as most certificates are domain validated; there is a whole industry pushing organization name validation with EV, but it has never worked well in the real world), so it makes sense to anchor the http certificate to the domain one.
DANE hasn't really taken off much outside mail traffic (where it is optional but to some extent forced when present). The jury is still out on CAA. As for the rest, one can only hope for new initiatives. The open web PKI only works for the big actors.
What's the primary attack that DANE attempts to protect against? CAs issuing certs to entities they shouldn't? Troy doesn't seem to be worried about those attacks.
What artursapek describes is probably that, while you are of course correct that no improved encryption could possibly improve on the fact that web browsers still default to unencrypted communications.
So the problems are mostly complementary, but rebinding and poisoning offers an attacker more ways of intercepting cleartext traffic unless mitigated.
> MITM can listen in on (and modify) that TCP connection.
Not if the connection is encrypted, as was stipulated.
> Another problem is I believe DNSSEC is only validated by the recursive resolver.
True, you need a trusted connection to the resolver you use (which you also have to trust). Therefore, you can either use DoT or DoH to some resolver which you have to trust, or run your own local resolver on the local machine.
Hmm, yes, there does appear to be some confusion. I misread artursapek and missed the "encrypted connection" part.
Assuming "encrypted connection" refers to the connection to the website, then my question is what is telling the connection to be encrypted? The article is about current non-encrypted connections. So something needs to be done to convert those http:// connections into https:// connections, and I don't think DNSSEC does that.
HSTS is already being used for this, although it uses a TOFU-like model where the very first connection is vulnerable to MITM downgrade. DANE (which uses DNSSEC) does not have this problem, and could be used for this, but it’s the browser vendors who would have to be convinced to implement it, and I don’t have high hopes.
DANE is untenable in browsers because (1) it's much too slow and (2) a lot of networks won't pass DANE lookups; if your HTTPS connection relies on DNSSEC/DANE "just working", the web breaks for those people.
So instead, you staple DANE records to the TLS handshake with an extension.
But that's incoherent: the purpose of DANE is to establish a root of trust for TLS connections, but the extensions carried in a TLS handshake depend on a root of trust. In practice, if you can get an X.509 certificate issued, you can strip stapled DANE records. So there's no point to stapling DANE records.
Solution: dynamic pinning and continuity over multiple connections.
Neither of those things make sense to me:
> (1) it's much too slow
Browsers already do A/AAAA DNS lookups, which presumably does not present any huge latency issue. If latency would be a problem, DNS servers could send the additional DANE records in the “additional” section, just like they do now with an A or AAAA query leading to a CNAME record; this would completely eliminate any additional latency with DANE.
> and (2) a lot of networks won't pass DANE lookups
I don’t think so; if that were the case, DANE would not be rolled out as widely as it is for SMTP.
Furthermore, that blog post is both old (and itself refers to even older references to back up its claims, and has a large discussion of now-fixed issues in DNSSEC) and it also presents an incomplete list of reasons for why DANE might be wanted. It is ignoring DANE’s HTST-like feature of signalling that HTTPS must be used, to prevent protocol downgrade attacks, which is exactly the reason we are discussing DANE here.
What happened with that?
https://raymii.org/s/blog/Chrome_68_is_deprecating_HPKP.html