Jaki jest domyślny protokół bezpieczeństwa do komunikacji z serwerami, które obsługują do TLS 1.2
? Będzie .NET
domyślnie wybierać najwyższej protokół zabezpieczeń obsługiwane po stronie serwera, czy muszę jawnie dodać poniższy wiersz kodu:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Czy istnieje sposób na zmianę tego ustawienia domyślnego oprócz zmiany kodu?
Wreszcie, obsługuje .NET 4.0
tylko do TLS 1.0
? tj. muszę zaktualizować projekty klienta do 4.5, aby je obsługiwać TLS 1.2
.
Moją motywacją jest usunięcie obsługi SSLv3
po stronie klienta, nawet jeśli serwer ją obsługuje (mam już skrypt PowerShell, aby wyłączyć to w rejestrze komputera) i obsługę najwyższego protokołu TLS obsługiwanego przez serwer.
Aktualizacja:
Patrząc na ServicePointManager
klasę .NET 4.0
nie widzę wyliczonych wartości dla TLS 1.0
i 1.1
. W obu .NET 4.0/4.5
przypadkach wartością domyślną jest SecurityProtocolType.Tls|SecurityProtocolType.Ssl3
. Mamy nadzieję, że to ustawienie domyślne nie ulegnie awarii przez wyłączenie SSLv3
w rejestrze.
Zdecydowałem jednak, że muszę zaktualizować wszystkie aplikacje .NET 4.5
i i tak jawnie dodać je SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
do kodu ładowania wszystkich aplikacji.
Spowoduje to wysłanie żądań wychodzących do różnych aplikacji i usług, aby nie obniżać poziomu SSLv3
i należy wybrać najwyższy poziom TLS
.
Czy to podejście wydaje się rozsądne czy nadmierne? Mam wiele aplikacji do zaktualizowania i chcę je w przyszłości sprawdzić, ponieważ słyszę, że TLS 1.0
niektórzy dostawcy mogą nawet w najbliższej przyszłości stracić ważność.
Czy jako klient wysyłający żądania wychodzące do interfejsów API wyłączenie protokołu SSL3 w rejestrze ma nawet wpływ na środowisko .NET? Domyślnie TLS 1.1 i 1.2 nie są włączone, czy musimy włączyć to przez rejestr? RE http://support.microsoft.com/kb/245030 .
Po krótkiej analizie uważam, że ustawienia rejestru nie będą miały wpływu, ponieważ dotyczą IIS (podklucz serwera) i przeglądarek (podklucz klienta).
Przepraszamy, ten post zamienił się w wiele pytań, a następnie w odpowiedzi „być może”.