Ответы:
В Server 2008 R2 / Windows 7 была представлена поддержка TLS 1.1 и TLS 1.2 для Windows, и она была выпущена до атак, которые сделали TLS 1.0 уязвимым, так что, вероятно, просто вопрос о том, что TLS 1.0 используется по умолчанию, потому что это была наиболее широко используемая версия TLS. на момент выпуска Server 2008 R2 (июль 2009 г.)
Не уверен, что вы наверняка узнаете или узнаете, «почему» было принято решение о разработке, но, учитывая, что Windows 7 и Server 2008 R2 представили эту функцию в семействе Windows, а Windows Server 2012 использует TLS 1.2 по умолчанию, он казалось бы, предположить, что это был вопрос «как все было сделано» в то время. TLS 1.0 все еще был «достаточно хорош», поэтому это было по умолчанию, но TLS 1.1 и 1.2 поддерживались для прямой поддержки и прямой работы.
Этот технический блог от сотрудника Microsoft рекомендует включить более новые версии TLS, а также отмечает, что (по состоянию на октябрь 2011 года):
Опять же, среди веб-серверов IIS 7.5 является единственным, который поддерживает TLS 1.1 и TLS 1.2. На данный момент Apache не поддерживает эти протоколы, так как OPENSSL не включает их поддержку. Надеюсь, они догонят отраслевые новые стандарты.
Это также подтверждает идею о том, что более новые версии TLS не были включены по умолчанию в Server 2008 R2 по той простой причине, что они были более новыми и не получили широкой поддержки или не использовались в то время - Apache и OpenSSL даже не поддерживали их, не говоря уже о используйте их по умолчанию.
Подробные сведения о том, как именно включить и отключить различные версии SSL / TLS, можно найти в статье Microsoft KB номер 245030 под названиемHow to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll
. Очевидно, что Client
клавиши управляют Internet Explorer, а Server
клавиши покрывают IIS.
Мне самому это интересно ... может быть, просто из-за известных проблем совместимости в то время ... Я нашел эту запись в блоге MSDN (от 24 марта 2011 года):
В нем говорится о «неправильном поведении» некоторых веб-серверов в том, как они реагируют на неподдерживаемые запросы протоколов, в результате чего клиент не переключается на поддерживаемый протокол, в результате чего пользователи не могут получить доступ к веб-сайтам.
Цитируя часть этой записи в блоге здесь:
Сервер не должен вести себя таким образом, он вместо того, чтобы ожидать, чтобы просто ответить, используя последнюю HTTPS версию протокола поддерживает (например, «3.1” ака TLS 1.0). Теперь, если бы сервер корректно закрыл соединение в этом месте, было бы быть okay-- код в WinINet бы резервными и повторить соединение предлагает только TLS 1.0. WinINet включает в себя код таким образом, что TLS1.1 & 1.2 возврат к TLS1.0, то возврат к SSL3 (если он включен), то SSL2 (если он включен). Недостатком снижения является производительность - дополнительные обходы, необходимые для нового рукопожатия с более низкой версией, обычно приводят к штрафу в десятки или сотни миллисекунд.
Однако этот сервер использовал протокол TCP / IP RST для прерывания соединения, что отключает резервный код в WinINET и приводит к отмене всей последовательности соединений, в результате чего у пользователя появляется сообщение об ошибке «Internet Explorer не может отобразить веб-страницу».