다음을 통해 공유


Schannel 암호화 및 암호화 강도 지정

클라이언트/서버 정보 교환의 경우 Schannel의 기본 동작은 레지스트리에서 사용하도록 설정된 암호에 따라 사용 가능한 최상의 암호화를 협상하는 것입니다. 애플리케이션은 다음과 같이 SCHANNEL_CRED 구조체의 멤버를 사용하여 연결에 허용되는 암호화 및 암호화 강도를 제한할 수 있습니다.

  1. palgSupportedAlgs 멤버를 허용 가능한 암호가 포함된 ALG_ID 배열로 설정합니다. 자세한 내용은 암호 ID를 참조하세요.
  2. dwMinimumCipherStrength 및/또는 dwMaximumCipherStrength 멤버를 허용되는 최소 및 최대 강도로 설정합니다. 자세한 내용은 암호 강도 값을 참조하세요.
  3. AcquireCredentialsHandle 함수에 대한 호출에서 SCHANNEL_CRED 구조체(pAuthData 매개 변수를 통해)를 전달합니다. 이 함수는 자격 증명 핸들을 반환합니다.
  4. 클라이언트 쪽 InitializeSecurityContext(일반) 함수 또는 서버 쪽 AcceptSecurityContext(일반) 함수에 대한 호출에서 자격 증명 핸들을 지정합니다.

암호 ID

Schannel의 기본 동작은 시스템 레지스트리의 Schannel 항목에 따라 사용할 수 있는 최상의 암호화를 요청하는 것입니다. 시스템 레지스트리를 변경하지 마세요. Schannel에 포함된 설정은 전역적으로 사용되며 다른 애플리케이션에 영향을 줍니다. 유효한 상수 목록은 ALG_ID 참조하세요.

암호화 강도 값

이 Schannel 기능은 일반적으로 국내 또는 수출 강도 암호화에 대한 연결을 제한하는 데 사용됩니다. 국내 강점은 56비트와 128비트이며 수출 강도는 56비트로 제한됩니다. 최소값과 최대값을 0으로 설정하면 Schannel은 사용 가능한 모든 암호화 강도를 사용합니다.

TLS 또는 SSL 3.0을 사용하여 dwMinimumCipherStrength 멤버를 -1(음수)로 설정하여 서명을 제공하지만 암호화를 제공하지 않는 "Null 암호" 암호 그룹을 사용하도록 설정합니다. dwMaximumCipherStrength도 -1로 설정된 경우 "Null 암호" 제품군만 사용하도록 설정됩니다. 이 설정은 개발 전용이며 프로덕션 시스템에서는 사용하지 않아야 합니다.

암호화 정보 쿼리

자격 증명에 대한 암호 강도 설정을 검색하려면 QueryCredentialsAttributes 함수를 호출하고 SECPKG_ATTR_CIPHER_STRENGTHS ulAttribute 매개 변수로 지정합니다.

자격 증명에 대해 지원되는 알고리즘 목록을 검색하려면 SECPKG_ATTR_SUPPORTED_ALGS 사용하여 QueryCredentialsAttributesulAttribute 매개 변수로 호출합니다.