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

속성 값

SecurityProtocolType 열거형에 정의된 값 중 하나입니다.

예외

속성을 설정하기 위해 지정된 값이 유효한 SecurityProtocolType 열거형 값이 아닌 경우

설명

이 속성은 새 연결에 사용할 SSL(Secure Sockets Layer) 또는 TLS(전송 계층 보안) 프로토콜의 버전을 선택합니다. 기존 연결은 변경되지 않습니다.

.NET Framework 4.7부터 이 속성의 기본값은 입니다SecurityProtocolType.SystemDefault. 이렇게 하면 FTP, HTTP 및 SMTP와 같은 기반 SslStream 의 .NET Framework 네트워킹 API가 운영 체제 또는 시스템 관리자가 수행하는 사용자 지정 구성에서 기본 보안 프로토콜을 상속할 수 있습니다. 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 서비스)와의 상호 운용성을 유지하기 위해 이 동작을 옵트아웃(opt out)할 수 있습니다. 이 문서에서 는 새 동작을 사용하지 않도록 코드를 수정하는 방법을 설명합니다.

적용 대상

추가 정보