GitHub Engineering: When mTLS Is Done Wrong
github.blog
github.blog
[1] https://fetch.spec.whatwg.org/#cors-protocol-and-credentials
Shouldn't it be possible to configure the proxy to accept any OPTIONS request (i.e. require&validate the client cert after the request headers are passed)?
Why can't I talk application/json to my cross-origin mTLS service as a normal person? :)
If I may rewrite your scenario to check I understand it...
An attacker sets themselves up as an Initiator and registers https://evil.example/TimeOut/ as their URL to receive the TokenIssue POST requests. The attacker then makes a TokenCall request to which the Issuer responds by making the TokenIssue POST request to the malicious "time out" endpoint. As this never responds, that initial connection is kept open.
As this is still a public draft and not an established standard, I hope discussion will bring a consensus that one way of responding is better and a future draft will only specify that way.
I should attempt to gather some stats from the XMPP network, but I suspect that since Let's Encrypt made it easy to obtain certs, dialback is probably rarely used. We disable it entirely in Snikket and have had minimal complaints of interoperability issues with other servers.