SslStream, BEAST и TLS 1.1
С недавним появлением BEAST (использует уязвимость в SSL/TLS1.0, когда начальные байты полезной нагрузки всегда одинаковы), я изучил SslStream
класс, чтобы увидеть, если он поддерживает TLS 1.1, TLS 1.2 и т. д. Он поддерживает только ( SslProtocol
) SSL 2 и 3 (которые предшествуют TLS) и TLS 1.0.
При условии SslProtocol
только рекламирует поддержку TLS 1.0 и ниже, возможно ли вообще использовать SslStream
для TLS 1.1 и выше?
1 ответ
Решение
Похоже, обновление в порядке.
Начиная с.NET 4.5, SslProtocol (и, следовательно, SslStream) теперь поддерживает TLS 1.1 и TLS 1.2.
Эти протоколы включены по умолчанию в 4.6. Для версии 4.5 вам необходимо активировать их в своем SslStream
объект с помощью перегруженного AuthenticateAsClient
вызов:
sslStream.AuthenticateAsClient(hostname, null, SslProtocols.Tls12 | SslProtocols.Tls11, true);