it-swarm-korea.com

X.509 "클라이언트 인증서"와 일반 SSL 인증서의 차이점은 무엇입니까?

회사에서 여러 비즈니스 고객 서비스와 대화 할 수있는 웹 서비스를 설정하고 있습니다. SOAP를 사용하여 정보를 교환 할 것입니다. 두 당사자가 제공 한 SSL 인증서로 인증을 처리하고 싶지만 인증서 유형간에 근본적인 차이가 있는지에 대해서는 약간의 손실이 있습니다.

사람들이 HTTPS에 대해 이야기 할 때 Verisign 또는 다른 기관으로부터 SSL 인증서를 얻는 것에 대해 이야기합니다. 클라이언트 측 인증에 대해 이야기 할 때 X.509 인증서를 얻는 것에 대해 이야기합니다. 이 두 단어가 같은 것입니까, 하나가 다른 것으로 바뀔 수 있습니까, 아니면 이해하지 못하는 다른 차이점이 있습니까?

97

X509 인증서는 공개/개인 키 쌍의 공개 키 유형입니다. 이 키 페어는 SSL을 통한 암호화 또는 식별과 같은 다양한 용도로 사용될 수 있습니다. SSL 인증서는 X509 인증서의 한 유형입니다. SSL은 트래픽을 암호화하고 당사자를 확인하여 작동합니다 (Verisign은이 웹 사이트를 자신이 누구인지 신뢰하므로 귀하도 가능할 수 있음). Verisign은 인증 기관 (CA)의 역할을합니다. CA는 자신이 말한 모든 것을 진실로 간주해야한다고 신뢰합니다 (CA를 실행하려면 주요 보안 고려 사항이 필요함). 따라서 CA가 실제로 자신임을 신뢰하는 인증서를 제공하면 사용자 인증서/클라이언트 인증서가있는 것입니다.

이러한 유형의 인증서 중 일부는 전체적으로 사용할 수 있지만 다른 인증서는 특정 활동에만 사용할 수 있습니다.

Windows에서 인증서를 열거 나 (IE에서 인증서 속성을보고) 인증서 속성을 살펴 보거나) certmgr.msc를 실행하고 인증서를 보려면 세부 정보 탭> 키 사용법을 확인하십시오. 그러면 인증서의 용도/사용 내용이 결정됩니다.

SOAP의 경우 인증서는 식별과 암호화의 두 가지 용도로 사용될 수 있습니다. 메시지 서명 (메시지 해싱)을 포함하면 3 개가됩니다.

클라이언트 인증서는 발신 클라이언트 또는 사용자를 식별합니다. 응용 프로그램에서 SOAP 요청)을하면 웹 서비스에 인증서를 전달하여 누가 요청을하는지 알려줍니다.

65
Steve

TLS에서 서버에는 개인 키와 인증서 (서버 인증서라고도 함)가 있어야합니다. 서버 인증서는 서버를 식별하고 인증합니다. 클라이언트는 선택적으로 자체 개인 키와 인증서 (일반적으로 클라이언트 인증서라고도 함)를 가질 수 있습니다. 클라이언트 인증서가 사용되면 클라이언트를 식별하고 인증합니다.

웹에서 HTTPS를 사용하면 일반적으로 서버에 서버 인증서가 있지만 클라이언트 인증서는 사용되지 않습니다. 즉, 클라이언트는 통신중인 서버를 인증 할 수 있지만 서버는 어떤 클라이언트가 연결하고 있는지 인증 할 수 없습니다.

그러나 많은 프로그래밍 컨텍스트에서 일반적으로 두 엔드 포인트가 서로를 인증하기를 원할 것입니다. 따라서 서버 인증서와 클라이언트 인증서를 모두 사용하려고합니다.

TLS에서 모든 인증서는 X.509 인증서입니다. X.509는 단지 데이터 형식입니다.

인증서에는 공개 키와 인증 기관 (CA)의 서명이 포함됩니다. 웹에서 일반적으로 웹 사이트에는 Verisign 또는 기타 잘 알려진 CA에서 발행 (서명) 한 서버 인증서가 있습니다. 웹 브라우저에는 거의 100 개의 서로 다른 CA 목록이 미리 설치되어 있으며 가장 널리 사용되는 웹 사이트에는 해당 CA 중 하나에서 발행 한 서버 인증서가 있습니다. 예를 들어 Verisign은 모든 브라우저의 표준 CA 목록에서 CA 중 하나입니다. Verisign은 인증서 발급을 원하는 경우 비용을 청구합니다.

표준 CA에서 인증서에 서명하는 대신 자체 서명 된 인증서를 사용할 수 있습니다. 표준 CA 중 하나가 아니라 본인 (또는 원하는 사람)이 발급 한 인증서입니다. 자체 서명 된 서버 인증서로 인해 브라우저가 사용자에게 경고 대화 상자를 표시하므로 대부분의 웹 사이트는 피하려고 시도하기 때문에 이것은 웹에서 크게 널리 사용되지 않습니다. 그러나 프로그래밍 방식으로 사용할 경우 자체 서명 된 인증서가 제대로 작동 할 수 있습니다. 자체 서명 된 인증서를 사용하는 경우 Verisign에 돈을 지불 할 필요가 없습니다. OpenSSL의 명령 줄 도구를 사용하여 자체 서명 인증서를 만드는 방법에 대한 자습서를 찾을 수 있습니다.

SSL은 TLS와 동의어입니다. 기술적으로 SSL은 여러 가지 이전 버전의 표준에서 사용 된 이름이고 TLS는 여러 가지 최신 버전의 표준에서 사용되는 새로운 이름이지만 많은 사람들이 두 용어를 서로 바꾸어 사용할 수 있습니다.

보다 유용한 배경 지식을 얻으려면 공개 키 인증서에 대한 Wikipedia 기사 를 읽으십시오.

36
D.W.

"일반"SSL 인증서는 일반적으로 are X.509 인증서입니다.
그러나 이는 서버 인증 및 암호화에만 사용할 수 있습니다. 인증서의 특성 중 하나는 지정된 목적이며 일반적으로 다른 목적으로 사용할 수 없습니다.
그러나 클라이언트 인증서는 서버 인증서와 거의 동일하며 "클라이언트 인증"으로 지정됩니다.

기능적으로 일부 시스템은 클라이언트 인증서의 하위 집합 만 수락하도록 선택하는 경우가 많습니다 (예 : 자체 CA에서 발급 한 것.

15
AviD

기능적으로는 공개 RSA 키와 인증 기관이 서명 한 식별 정보와 동일합니다. 실제로 서버 키는 일반적으로 문제의 도메인을 식별하는 공통 이름 (예 : * .wikimedia.org)으로 설정됩니다. 상대방의 인증 요구 사항과 일치하는 한 자체 생성을 포함하여 인증서 사용을 제한하는 것이 없다고 생각합니다.

4
Jeff Ferland