Re: [PATCH] config: add http.sslVerifyHost option
Patrick Steinhardt <[email protected]>
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Aug 07, 2026 at 04:33:14PM +0100, Ron Nazarov wrote: > This allows for disabling host verification without completely > disabling TLS certificate verification. This is useful when using TLS > in a decentralized way (similar to how one would use SSH), where the > remote endpoint has a self-signed certificate that does not > necessarily have a valid CN (or any CN at all), and you set > http.sslCAInfo to that specific certificate. Without such an option, > it is impossible to use a certificate with a non-matching hostname > without completely disabling TLS verification, which is insecure. Arguably both options are insecure, this new option just pretends to be secure. If we accept arbitrary certificates for an endpoint, then it becomes trivial for somebody to perform a man-in-the-middle attack against you by simply swapping out the certificate against a self-signed one. And man-in-the-middle attacks are basically what we want to protect against with TLS. So sure, using no encryption at all might be even simpler for an eavesdropper to intercept. But in both cases they'd have to sit between you and the server, and consequently they are very likely to have the capability to MITM you. There are of course going to be exception to this, like for example when you sit on an unsecured wifi network. Other users might be able to read your traffic there without also having the ability to modify it. But I'm still hesitant to add this new option here as it oversells the security benefit it offers over disabling TLS entirely. Maybe I'm missing something obvious. But if so, I think both the commit message and the documentation would need to be amended to document that gap and state that yes, this is still insecure. Thanks! Patrick