News for hackers. Stuff that matters.
Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by londons_explore on Tuesday February 09, 2021 @10:50PM (#26085547)
During a migration from one email system to another, it wouldn't be unusual for some virus scanner product to click every link in every email...

Or alternatively, when searching their inbox for "SSL certificate" they found the verification email and clicked the link as a quick way to get to the homepage of whichever company they used last time for their certificate.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by tialaramex on Wednesday February 10, 2021 @12:58AM (#26086102)
It's definitely plausible that the historic URLs which caused this are vulnerable to just being opened automatically by a machine (such as a "virus scanner"). The right fix here is that the URL leads to a simple POST form where you confirm you want the certificate issued. Tools like virus scanners don't fill out forms.

We know that by the time the Ten Blessed Methods were coming into existence CAs were discovering that they had numerous cases where an order would be successfully "validated" by contact with a human, but without any human actually doing anything. Email links "clicked" by automated systems, a system that checks you've uploaded a file to your web server treats the 404 error it gets as an acceptable response showing the file was uploaded, several hilarious goofs.

[ The irony, for those playing along at home, is that we don't know of any incidents where this was used for an attack. It's like coming home to discover the reason you didn't have your front door key is because you left it on the kitchen counter, with the door unlocked, all day. But no harm done... ]

The current authorised method closest in spirit to what GlobalSign were doing back in 2010 is 3.2.2.4.4 (Constructed Email to Domain Contact). This method actually doesn't tell them to prevent this particular mishap (machines clicking links), so perhaps that should be corrected.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by kenniskrag on Wednesday February 10, 2021 @07:49AM (#26088413)
shouldn't be GET request idempotent?
Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by 35fbe7d3d5b9 on Wednesday February 10, 2021 @10:54AM (#26090829)
Hopping up on my hobby-horse :)

No. An idempotent operation is an operation that can be applied any number of times without a change after the initial invocation. This means the first GET would fire and change state, but subsequent GETs would not.

GET should be nullipotent: it is an operation which can be applied any number of times without any change.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by tialaramex on Wednesday February 10, 2021 @11:10AM (#26091023)
Also, this went from being an obscure fact about HTTP that might occasionally bite you to being extremely relevant to production systems with TLS 1.3 (thus some HTTPS and all HTTP/2 and HTTP/3 systems)

TLS 1.3's zero round trip resumption by its nature can't be bullet proof against repetition. In toy systems you can defend against this (and you might want to) but in big distributed systems it's going to be possible for an attack to play some HTTP request to your system (perhaps different nodes of it) more than once without you realising.

This is obviously unsafe if that HTTP request moves $1000 from your bank account to somebody else's bank account (now they have $1000 extra), and on the other hand obviously safe if the HTTP request is just for the Favicon of Hacker News (now they have another identical copy of the encrypted data) but there's also lots of grey area in between.

Translating this human understanding into a rule for machines to follow is the exercise where security holes can occur. The safe option is to just never allow 0RTT resumption (as a client or as a server, either can safely refuse to have any part in this) but in pursuit of performance you can expect other choices to be made.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by londons_explore on Wednesday February 10, 2021 @11:38AM (#26091402)
> TLS 1.3's zero round trip resumption by its nature can't be bullet proof against repetition

The server side can easily keep track of which nonces have been used, and not allow any re-used nonces to have any side effects.

This can be implemented in something like spanner by keeping a database of valid nonces, and tying the marking a nonce as used to the other effects of the HTTP request in the same transaction. Spanners global-consistency will ensure only one transaction will commit. In most cases, the data can be sent back to the user without waiting for commit, preventing any cross-ocean latency penalty too.

It's a shame that I don't see a single HTTP/3 server which has any support for a scheme like this.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by tialaramex on Wednesday February 10, 2021 @09:15PM (#26097480)
Congratulations, you have joined many excellent engineers in designing a toy solution to this problem. Some of the others were documented in RFC 8446 (with TLS 1.3 itself) but if you didn't cheat by looking there yours was an independent invention.

Sadly this doesn't scale, as you almost seemed to realise by saying you'd just respond without waiting for the commit step to complete. Next I'll respond to your dismissal of this huge problem in the other thread.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by toast0 on Wednesday February 10, 2021 @11:54AM (#26091644)
That's possible, but not really easy. If you don't wait for the commit, you may process the request before getting the notification that it was a duplicate nonce; if you do wait for the commit, there goes your performance boost.

The right thing to do in my mind is to only send requests in 0-rtt if they're specifically flagged as eligible.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by londons_explore on Wednesday February 10, 2021 @04:43PM (#26095214)
> If you don't wait for the commit, you may process the request before getting the notification that it was a duplicate nonce.

Yes, do this. Processing the request isn't bad as long as it doesn't commit.

Most evil attackers won't come back to you complaining that your server gave back an HTTP200 response when it should have returned an HTTP400 because they'd reused a nonce.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by tialaramex on Wednesday February 10, 2021 @09:28PM (#26097543)
The evil attackers don't necessarily care whether in some sense your system "doesn't commit" one of the duplicates. Especially if they can manipulate it to choose whether the "not committed" one is the one they created or one emitted by a real user.

I know it was intended flippantly but the attackers do not get the HTTP response code - they're obliged to conduct this attack blind, if they can decrypt the messages then your problem isn't a replay attack but some previously unimagined TLS flaw.

So, suppose your system sees three versions of a transaction to transfer $1M to Dr Evil. You're not worried because two of them "won't commit" but do your end users understand that? (hint: they do not). Let's call these versions A, B and C. The real user's web browser believes transaction A succeeded, and is unaware of B and C.

Dr Evil complains that the money never arrived, and our user checks, alas they see that eventually transaction A failed (it was judged a duplicate of B, and so was C) and this explains the problem. They initiate a new transfer, let's call that Z. This succeeds and Dr Evil is satisfied.

Unfortunately now Dr Evil has $2M instead of $1M.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by JoachimSchipper on Thursday February 11, 2021 @02:35PM (#26106042)
I agree that the risk of replays due to TLS 1.3 0-RTT is bad, but I understand browsers (e.g. Chrome) can often be made to silently replay requests at a lower TLS version anyway (to work around middleboxes that choke on higher-than-expected TLS versions.) So avoiding TLS 1.3 0-RTT doesn't avoid replays... and yes, this is bad.

https://twitter.com/XorNinja/status/1357828529610608641 may be(-come) relevant.

(Sorry, your post is already a day old as I type this. You might still see this response?)

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by CodesInChaos on Wednesday February 10, 2021 @08:02AM (#26088520)
GET requests should not have any significant side-effects, unfortunately some do not follow that rule. I once read a story of a whole database getting wiped, because a spider "clicked" on every "delete" link.

Idempotence is not enough, it only requires at executing a request a second time (with no other changes in between) has no significant effect, the first time is allowed to have a significant effect. PUT requests are the typical example.

Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by comex on Tuesday February 09, 2021 @11:13PM (#26085676)
Or they searched for SSL certificate, found the email, and didn’t notice the date. Perhaps it was marked unread, given that the email verification was never completed in 2010. They thought it was something they needed to do, and did it.
Re:GlobalSign: RSA-1024 leaf certificate issued after 2013-1... by bombcar on Wednesday February 10, 2021 @06:59AM (#26088092)
I've never understood how virus scanners don't trigger those click to do something emails ...