Udostępnij przez


ServicePointManager.SecurityProtocol Właściwość

Definicja

Pobiera lub ustawia protokół zabezpieczeń używany przez ServicePoint obiekty zarządzane przez ServicePointManager obiekt.

public:
 static property System::Net::SecurityProtocolType SecurityProtocol { System::Net::SecurityProtocolType get(); void set(System::Net::SecurityProtocolType value); };
public static System.Net.SecurityProtocolType SecurityProtocol { get; set; }
static member SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType

Wartość właściwości

Jedna z wartości zdefiniowanych w wyliczenie SecurityProtocolType .

Wyjątki

Wartość określona do ustawienia właściwości nie jest prawidłową SecurityProtocolType wartością wyliczenia.

Uwagi

Ta właściwość wybiera wersję protokołu Secure Sockets Layer (SSL) lub Transport Layer Security (TLS) do użycia na potrzeby nowych połączeń; istniejące połączenia nie są zmieniane.

Począwszy od .NET Framework 4.7, wartość domyślna tej właściwości to SecurityProtocolType.SystemDefault. Dzięki temu .NET Framework interfejsy API sieciowe oparte na SslStream (takich jak FTP, HTTP i SMTP) dziedziczą domyślne protokoły zabezpieczeń z systemu operacyjnego lub z dowolnych niestandardowych konfiguracji wykonywanych przez administratora systemu. Aby uzyskać informacje o tym, które protokoły SSL/TLS są domyślnie włączone w każdej wersji systemu operacyjnego Windows, zobacz Protokoły w protokole TLS/SSL (SSP Schannel).

W przypadku wersji .NET Framework za pośrednictwem .NET Framework 4.6.2 dla tej właściwości nie ma wartości domyślnej. Poziom zabezpieczeń stale się zmienia, a domyślne protokoły i poziomy ochrony są zmieniane wraz z upływem czasu, aby uniknąć znanych słabości. Wartości domyślne różnią się w zależności od konfiguracji poszczególnych maszyn, zainstalowanego oprogramowania i zastosowanych poprawek.

Kod nigdy nie powinien być niejawnie zależny od używania określonego poziomu ochrony lub przy założeniu, że dany poziom zabezpieczeń jest używany domyślnie. Jeśli aplikacja zależy od użycia określonego poziomu zabezpieczeń, musisz jawnie określić ten poziom, a następnie sprawdzić, czy jest ona rzeczywiście używana w nawiązanym połączeniu. Ponadto kod powinien być zaprojektowany tak, aby był niezawodny w obliczu zmian obsługiwanych protokołów, ponieważ takie zmiany są często wprowadzane z niewielkim wyprzedzeniem w celu wyeliminowania pojawiających się zagrożeń.

.NET Framework 4.6 zawiera nową funkcję zabezpieczeń, która blokuje niezabezpieczone algorytmy szyfrowania i tworzenia skrótów dla połączeń. Aplikacje korzystające z protokołu TLS/SSL za pośrednictwem interfejsów API, takich jak HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream itp., i określania wartości docelowych .NET Framework 4.6 domyślnie uzyskują bezpieczniejsze zachowanie.

Deweloperzy mogą zrezygnować z tego zachowania, aby zachować współdziałanie z istniejącymi usługami SSL3 lub TLS w/ RC4. W tym artykule wyjaśniono, jak zmodyfikować kod tak, aby nowe zachowanie było wyłączone.

Dotyczy

Zobacz też