4 ms·
Having worked with SChannel to build a Python wrapper, there are a number of little bugs that require falling back to TLS 1.1 or retrying the connection. For in
by wbond 11y ago
Having worked with SChannel to build a Python wrapper, there are a number of little bugs that require falling back to TLS 1.1 or retrying the connection. For instance, if a trust root uses an MD5 signature, TLS 1.2 can't be used. Also, sometimes the dhparams for a key exchange will be encoded in 1016 bits instead of 1024 (the server omits a leading zero byte) and SChannel aborts with a cryptic error about buffers being too small. At least Microsoft generally does a better job with their crypto docs than Apple does.
- toast0 11y agoFYI, that dhparams bug happens with 2048/2040 as well, and it's fixed in windows 10.
- wbond 11y agoThanks for letting me know about the fix in 10. Too bad it didn't make it into 8/2012.
- prdonahue 11y agoIt's very rare that they patch SChannel outside of just shipping newer versions in subsequent Windows releases. Too many things that can go wrong (see the prior update where they broke something and had to pull back/re-patch).
- yuhong 11y agoI was surprised when this prior update went with DHE_RSA instead of ECDHE_RSA in the first place.
- ploxiln 11y agoThat makes it sound like the "bug" (lack of support for updating TLS session keys) was known for a long time, and the original "fix" was the client admitting it didn't really fully do TLS 1.2, which based on your experience seems to be a typical "fix" in SChannel. (or, I'll admit, it's more likely the fallback after a "failed negotiation" was a "robustness" behavior that essentially hid problems)
- yuhong 11y agoYes, the TLS 1.0 fallback (IE skips 1.1) was what hid the problem in this case.