2012-04-28 2 views
4

저는 초보자 인 OpenSSL 도구입니다. 나는 몇 가지 개념을 이해하지 못한다. 이 개념들을 나에게 설명해 주시겠습니까? 보다 나은 이해를 위해 CA, Self-Signed Certificate 또는 기타 개념과 같은 개념을 이해하고자합니다. OpenSSL에서 자체 서명 된 인증서의 의미

(나는 잘못된 용어 나 문법을 사용하고 있다면 죄송합니다, 나는 영어를 배우고 있습니다.)

+0

u는 PKI (공개 키 인프라)를 이해할 필요가있다. 인증서를 이해하려면 ... – Balamurugan

답변

5

인증서의 목적은 사용자가 확인할 수있는 방법으로 정보를 표시하는 것입니다. 이 문맥에서 공개 키 인증서, 특히 X.509 인증서는 공개 키, 식별자 (주체 고유 이름 및/또는 주체 대체 이름) 및 다양한 기타 특성 간의 바인딩을 나타냅니다. 전체적으로, 이러한 정보는 인증서를 형성하기 위해 서명됩니다.

X.509 인증서에는 발급자와 제목이 모두 있습니다. 주체는 해당 인증서가 누구인지 또는 무엇을 식별하는지 (그리고이 인증서의 공개 키와 일치하는 개인 키를 소유하거나 소유하는 사람)를 나타내는 식별자입니다. 발급자는 개인 키를 사용하여이 인증서에 서명 한 사람 또는 조직의 식별자를 나타냅니다.

인증서 사용은 크게 두 가지 카테고리로 나눌 수 있습니다. 특정 응용 프로그램 또는 서비스 (예 : SSL/TLS 서버 인증)에 사용되는 인증서 및 다른 인증서의 유효성을 증명하는 데 사용되는 인증서입니다.

인증서는 공개 키 인프라 (PKI)의 구성 요소로 사용됩니다. 인증 기관 (CA)은 인증서를 발행하는 기관입니다. 인증서의 공개 키를 제목에 바인딩하는 주장에 서명합니다. 그렇게하면 발행 한 인증서의 발급자 이름으로 자신의 이름을 넣습니다.

인증서를 여권 (사진과 본인의 이름을 묶는)과 비교하면 CA는 여권 기관이됩니다. 실제로 여권에서 말하는 내용이 사실인지, 다른 사람이 확인할 수 있는지 그것.

CA를 신뢰하면 발급 한 인증서를 신뢰할 수 있습니다. 신뢰할 수있는 CA와 이전에 보지 못했던이 CA에서 발급 한 인증서간에 신뢰 체인을 구축 할 수 있습니다.

이와 함께 "부트 스트랩"문제가 발생합니다. CA를 어떻게 신뢰합니까?

자체 서명 인증서는 발급자와 주체가 동일한 인증서입니다. 자신이 가지고있는 공개 키와 일치하는 개인 키로 서명됩니다. 그들은 신뢰의 윗부분에 있습니다. 이들은 CA 인증서 인 경향이 있습니다 (특정 서비스에 대한 맞춤식이 아닌 경우 외부 인증 없이는 신뢰할 수 없습니다).

CA 인증서는 다른 인증서를 발급/유효화하는 데 사용할 수있는 인증서입니다. (루트/자체 서명 CA 인증서와 확인하려는 인증서 사이의 체인 중간에 중간 CA 인증서가있을 수 있습니다.) 다른 인증서를 확인하는 데 인증서를 사용하는 방법을 정의하는 규칙은 PKIX specification (RFC 3280/5280).

브라우저 및 운영 체제에는 기본적으로 신뢰할 수있는 사전 설치된 CA 인증서 목록이 함께 제공됩니다. 이들은 주로 인증서로 서비스에 대한 정보를 확인하는 상용 CA입니다. 상대방은 자신이 발급 한 인증서의 내용을 신뢰할 수 있습니다 (대부분의 경우 완벽한 시스템이 아닙니다). 신뢰할 수있는 CA 인증서 만 포함하도록 브라우저/OS를 신뢰해야하므로 "믿음의 도약"이 여기에 포함됩니다.

openssl s_client을 사용하고 "체인에 자체 서명 된 인증서"또는 "인증서를 확인할 수 없음"과 같은 메시지가 표시된다고해서 반드시 잘못된 것은 아니지만 openssl은 pre를 사용하지 않습니다. 기본적으로 신뢰할 수있는 CA 인증서의 정의 목록입니다. 대부분의 명령에는 -CAfile 또는 CApath과 같은 옵션이있어서 신뢰할 수있는 CA 인증서를 지정할 수 있습니다.

서비스에 대한 자체 서명 된 인증서는 특정 경우이므로 서비스에서 자체 내용을 자체적으로 표명합니다. 외부의 트러스트 방법을 사용하지 않는 한, 일반적으로 인증서의 진위 여부를 확인할 방법이 없습니다 (예를 들어, 직접 시스템에 설치하고 내용을 수동으로 변경 한 경우 또는 신뢰할 수있는 사람이 인증서를 준 경우 너에게).

(당신은 또한 HTTPS 서버 인증서를 사용하는 방법에 대한 this question에 관심이있을 수 있습니다.)

+0

좋은 답변에 감사드립니다. – MJM

2

는 일반적으로 인증서의 목적은 신뢰 체인을 구축하는 것입니다 : "이 제 3 자 회사를 신뢰, 그들은 신뢰 너를 믿을 수있어. " 자체 서명 인증서는 귀하가 직접 생성했음을 의미하므로 실제로 귀하를 신뢰하지 않습니다. (이것들은 테스트 용으로 훌륭하지만 다른 것은별로 없습니다.) 다른 유형은 믿을 수있는 회사입니다. Verisign과 같이 평판 좋은 회사에서 판매 할 수 있습니다. 그것은 상품 시장이기 때문에 가격은 회사간에 상당히 일치합니다. 의도 된 용도와 인증서의 범위에 따라 다릅니다. (예 : Android 앱에 서명하는 인증서는 https://www.example.com/을 확인하는 데 사용되는 인증서와 매우 다릅니다.)

"CA"또는 인증 기관은 인증서를 발급 한 회사입니다. 신뢰할 수있는 인증서의 경우 해당 회사입니다 (예 : Verisign. 자체 서명 된 인증서의 경우 CA는 귀하가 인증서를 발급 한 것입니다.

+0

Android 앱에 서명하기위한 인증서는 실제로 웹 사이트를 확인하는 데 사용되는 인증서와 매우 유사합니다. 몇 가지 주요 사용 특성 만 다를뿐 아니라 호스트 이름 확인에 사용 된 명명 규칙이 Android 앱에 반드시 적용되는 것은 아닙니다. – Bruno

+0

대부분의 사용자는 스위스 군용 칼을 필요로하지 않으므로 정확합니다. 따라서 미묘한 유사점과 차이점에 익숙하지 않습니다. – robrich

0

자체 서명 인증서는 대부분의 브라우저에서 일종의 "신뢰할 수없는"경고를 유발하고 계속 진행할지, 예외를 추가 할지를 묻습니다. 이는 연결 보안이 덜 안전하다는 의미는 아닙니다. 여전히 SSL을 통해.

일반적으로 CA는 수수료를 부과하지만 검색 할 때 무료로 사용할 수 있습니다.

관련 문제