ServicePointManager.SecurityProtocol プロパティ

定義

その ServicePointManager オブジェクトが管理する ServicePoint オブジェクトで使用されるセキュリティ プロトコルを取得または設定します。

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; }
member this.SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType

プロパティ値

SecurityProtocolType

SecurityProtocolType 列挙値に定義されている値の 1 つ。

例外

プロパティを設定するために指定された値が有効な SecurityProtocolType 列挙値ではありません。

注釈

このプロパティは、新しい接続に使用する Secure Sockets Layer (SSL) またはトランスポート層セキュリティ (TLS) プロトコルのバージョンを選択します。既存の接続は変更されません。

.NET Framework 4.7 以降では、このプロパティの既定値は SecurityProtocolType.SystemDefault. これにより、(FTP、HTTP、SMTP など) にSslStream基づくネットワーク API を.NET Framework、オペレーティング システムまたはシステム管理者が実行するカスタム構成から既定のセキュリティ プロトコルを継承できます。 Windows オペレーティング システムの各バージョンで既定で有効になっている SSL/TLS プロトコルについては、「TLS/SSL のプロトコル (Schannel SSP)」を参照してください。

.NET Framework 4.6.2 までの.NET Frameworkのバージョンでは、このプロパティの既定値は表示されません。 セキュリティランドスケープは絶えず変化し、既知の弱点を回避するために、既定のプロトコルと保護レベルが時間の経過と同時に変更されます。 既定値は、個々のコンピューターの構成、インストールされているソフトウェア、適用されたパッチによって異なります。

コードは、特定の保護レベルの使用や、特定のセキュリティ レベルが既定で使用されることを前提として、暗黙的に依存してはなりません。 アプリが特定のセキュリティ レベルの使用に依存する場合は、明示的にそのレベルを指定したうえで、実際にそのレベルを使って接続が確立されたことを確認する必要があります。 さらに、プロトコルがサポートされる変更に対する堅牢なコードを設計する必要があります。このような変更は、新たな脅威を軽減するために事前通知がほとんど行われないことが多いためです。

.NET Framework 4.6 には、安全でない暗号およびハッシュ アルゴリズムの接続をブロックする、新しいセキュリティ機能が含まれています。 HttpClient、HttpWebRequest、FTPClient、SmtpClient、SslStream などの API を介して TLS/SSL を使用して、.NET Framework 4.6 を対象とするアプリケーションは、既定でセキュリティが強化された動作を取得します。

開発者は、既存の SSL3 サービスまたは TLS と RC4 サービスとの相互運用性を維持するために、この動作をオプトアウトすることができます。 この記事 では、新しい動作が無効になるようにコードを変更する方法について説明します。

適用対象

こちらもご覧ください