2014-03-13 3 views

답변

0

: https://www.openssl.org/docs/manmaster/ssl/SSL_CTX_set_verify.html

깊이 매개 변수는 받아 들일 수있는 인증서 체인의 길이 제한에 관한 것입니다. 반면에 피어 인증은 통신에 관련된 당사자를 인증하는보다 일반적인 개념으로 "피어 (peer)"로 알려져 있습니다. 공개 키 인프라 및 인증서에 의존하는 것은 인증을 달성하는 한 가지 방법이지만 다른 방법도있을 수 있습니다.

OpenSSL (및 일반적으로 SSL)에 따르면 인증은 소위 "신뢰 체인"을 기반으로합니다. 즉, 소프트웨어가 특정 엔터티를 신뢰하고 종종 인증서가 큰 인증 기관 (CA) 소프트웨어와 함께 배포 및 설치되며, 중간 CA의 인증서 (보증)에 서명하고, "피어"(체인의 마지막 엔티티)에 대해 동일한 작업을 수행합니다. 일반적으로 체인 소프트웨어가 연결을 시도합니다. 소프트웨어가 일부 루트 CA를 신뢰하고 중개 CA가 신뢰할 수있는 루트 CA에서 서명 한 인증서를 제시하므로이 중간 CA도 신뢰할 수 있으며 중간 CA가 신뢰되므로 "피어"는 이제 인증서 서명과 함께 인증 될 수 있습니다 중간 CA에 의해.

이제 보안 문제와 리소스 제한 때문에 인증서 체인의 길이 ("깊이")는 임의로 길어질 수 없습니다. 잘못된 것이 아니라면 OpenSSL의 기본 제한은 100입니다. 다른 SSL 구현은 대상 플랫폼 및 응용 프로그램 시나리오에 따라 다른 번호를 선택할 수 있습니다.

SSL_CTX_set_verify_depth()은 체인 확인 절차에 사용자가 원하는 제한을두기 위해 사용되므로 제한에서 체인에 표시된 모든 인증서는 무시됩니다. 문서에 사용 된 레벨 0, 1, 2는 레벨 0이 피어 (최종 엔티티)이고 레벨 1이 레벨 0 인증서에 서명 한 CA의 인증서, 레벨 인 체인의 인증서 위치를 나타냅니다. 2는 레벨 1 CA 인증서에 서명 한 다른 상위 CA의 인증서입니다.

또 다른 관련 개념은 X.509 버전 3 인증서의 기본 제한 조건 확장의 pathLen 옵션으로 제공됩니다. 이것은 종종 하위 CA가 발행 한 인증서로 형성 될 수있는 체인의 길이를 제한하기 위해 상위 CA에서 사용합니다.

희망이 도움이됩니다.

+0

죄송합니다. 그러나 이것은 잘못되었습니다. 언급 된 플래그는 SSL_CTX_set_verify_depth의'depth' 매개 변수가 아니라'SSL_CTX_set_verify' 및'SSL_set_verify'의'mode' 매개 변수에 사용 된 것처럼 보입니다. –

+0

@HeadGeek : 네 말이 맞아. 내 대답이 업데이트됩니다. –