클라이언트/서버 정보 교환의 경우 Schannel의 기본 동작은 레지스트리에서 사용하도록 설정된 암호에 따라 사용 가능한 최상의 암호화를 협상하는 것입니다. 애플리케이션은 다음과 같이 SCHANNEL_CRED 구조체의 멤버를 사용하여 연결에 허용되는 암호화 및 암호화 강도를 제한할 수 있습니다.
- palgSupportedAlgs 멤버를 허용 가능한 암호가 포함된 ALG_ID 배열로 설정합니다. 자세한 내용은 암호 ID를 참조하세요.
- dwMinimumCipherStrength 및/또는 dwMaximumCipherStrength 멤버를 허용되는 최소 및 최대 강도로 설정합니다. 자세한 내용은 암호 강도 값을 참조하세요.
- AcquireCredentialsHandle 함수에 대한 호출에서 SCHANNEL_CRED 구조체(pAuthData 매개 변수를 통해)를 전달합니다. 이 함수는 자격 증명 핸들을 반환합니다.
- 클라이언트 쪽 InitializeSecurityContext(일반) 함수 또는 서버 쪽 AcceptSecurityContext(일반) 함수에 대한 호출에서 자격 증명 핸들을 지정합니다.
암호 ID
Schannel의 기본 동작은 시스템 레지스트리의 Schannel 항목에 따라 사용 가능한 최상의 암호화를 요청하는 것입니다. 시스템 레지스트리를 변경하지 마세요. Schannel에 대해 포함된 설정은 전역적으로 사용되며 다른 애플리케이션에 영향을 줍니다. 유효한 상수 목록은 ALG_ID참조하세요.
암호 강도 값
이 Schannel 기능은 일반적으로 국내 또는 내보내기 강도 암호에 대한 연결을 제한하는 데 사용됩니다. 국내 강점은 56비트, 128비트, 수출강도는 56비트로 제한됩니다. 최소값과 최대값을 0으로 설정하면 사용 가능한 모든 암호화 강도가 사용됩니다.
TLS 또는 SSL 3.0을 사용하여 dwMinimumCipherStrength 멤버를 -1(음수)로 설정하여 서명을 제공하지만 암호화를 제공하지 않는 "Null 암호" 암호 그룹을 사용하도록 설정합니다. 만약 dwMaximumCipherStrength이 -1로도 설정되면, "Null 암호화" 제품군만 사용하도록 설정됩니다. 이 설정은 개발 전용이며 프로덕션 시스템에서는 사용할 수 없습니다.
암호화 정보 쿼리
자격 증명에 대한 암호 강도 설정을 검색하려면 QueryCredentialsAttributes 함수를 호출하고 SECPKG_ATTR_CIPHER_STRENGTHS ulAttribute 매개 변수로 지정합니다.
자격 증명에 대해 지원되는 알고리즘 목록을 검색하려면 ulAttribute 매개 변수로 SECPKG_ATTR_SUPPORTED_ALGS QueryCredentialsAttributes 호출합니다.