양방향 SSL 설명
양방향 SSL이 작동하는 방식에 대해 다소 혼란 스럽습니다. 클라이언트는 서버로 보낼 인증서를 어떻게 생성합니까? 서버에서 생성되어 클라이언트에 배포됩니까?
또한 단방향 SSL보다 양방향 SSL의 장점은 무엇입니까?
연결 전에 두 인증서가 모두 있어야합니다. 일반적으로 인증 기관에서 생성합니다 (반드시 동일하지는 않음). (검증이 다르게 수행 될 수있는 대체 사례가 있지만 일부 검증 이 필요합니다.)
서버 인증서는 클라이언트가 신뢰하는 CA에서 생성해야하며 RFC 6125에 정의 된 명명 규칙을 따라야합니다 .
클라이언트 인증서는 서버가 신뢰하는 CA에서 만들어야합니다.
신뢰하는 것을 선택하는 것은 각 당사자의 몫입니다.
브라우저 내에서 인증서를 신청하고 CA가 발급 한 후에 설치할 수있는 온라인 CA 도구가 있습니다. 클라이언트 인증서 인증을 요청하는 서버에있을 필요는 없습니다.
인증서 배포 및 신뢰 관리는 CA를 통해 구현되는 PKI (공개 키 인프라)의 역할입니다. SSL / TLS 클라이언트 및 서버와 해당 PKI의 사용자.
클라이언트가 클라이언트 인증서 인증을 요청하는 서버에 연결하면 서버는 클라이언트 인증서 요청의 일부로 수락 할 수있는 CA 목록을 보냅니다. 그러면 클라이언트는 원하는 경우 클라이언트 인증서를 보낼 수 있으며 적절한 인증서를 사용할 수 있습니다.
클라이언트 인증서 인증의 주요 이점은 다음과 같습니다.
- 개인 정보 (개인 키)는 서버로 전송되지 않습니다. 클라이언트는 인증 중에 비밀을 전혀 공개하지 않습니다.
- 해당 인증서를 가진 사용자를 모르는 서버는 인증서를 발급 한 CA를 신뢰하고 인증서가 유효한 경우 해당 사용자를 계속 인증 할 수 있습니다. 이것은 여권이 사용되는 방식과 매우 유사합니다. 여권을 보여주는 사람을 한 번도 만난 적이 없을 수도 있지만 발급 기관을 신뢰하기 때문에 신원을 그 사람과 연결할 수 있습니다.
클라이언트 인증을위한 클라이언트 인증서의 장점에 관심이 있으 십니까? (Security.SE) .
"양방향 SSL"이라고 부르는 것을 일반적으로 클라이언트 인증서 인증을 사용하는 TLS / SSL이라고합니다.
example.com에 대한 "정상"TLS 연결에서는 클라이언트 만 example.com의 서버와 실제로 통신하고 있는지 확인합니다. 서버는 클라이언트가 누구인지 모릅니다. 서버가 클라이언트를 인증하려는 경우 일반적인 것은 암호를 사용하는 것이므로 클라이언트는 사용자 이름과 암호를 서버에 보내야하지만 이는 내부 프로토콜 (예 : HTTP)의 일부로 TLS 연결 내에서 발생합니다. TLS 프로토콜 자체의 일부입니다. 단점은 암호를 서버로 보내기 때문에 모든 사이트에 대해 별도의 암호가 필요하다는 것입니다. 따라서 예를 들어 PayPal 및 MyPonyForum에서 동일한 암호를 사용하는 경우 MyPonyForum에 로그인 할 때마다이 암호를 MyPonyForum의 서버로 전송하여이 서버의 운영자가이를 가로 채서 PayPal에서 시도하고 귀하의 이름으로 결제 할 수 있습니다. .
클라이언트 인증서 인증은 TLS 연결에서 클라이언트를 인증하는 또 다른 방법을 제공합니다. 비밀번호 로그인과 달리 클라이언트 인증서 인증은 TLS 프로토콜의 일부로 지정됩니다. 클라이언트가 서버를 인증하는 방식과 유사하게 작동합니다. 클라이언트는 공개 개인 키 쌍을 생성하고 서명을 위해 공개 키를 신뢰할 수있는 CA에 제출합니다. CA는 클라이언트를 인증하는 데 사용할 수있는 클라이언트 인증서를 반환합니다. 클라이언트는 이제 동일한 인증서를 사용하여 다른 서버에 인증 할 수 있습니다 (즉, PayPal 및 MyPonyForum에 대해 동일한 인증서를 악용 할 위험없이 사용할 수 있음). 작동 방식은 서버가 인증서를 보낸 후 클라이언트에게 인증서를 제공하도록 요청하는 것입니다. 그런 다음 일부 공개 키 마술이 발생합니다 (세부 정보를 읽고 싶다면RFC 5246 ) 이제 클라이언트는 올바른 서버와 통신한다는 것을 알고 있고, 서버는 올바른 클라이언트와 통신한다는 것을 알고 있으며 둘 다 연결을 암호화하고 확인하기위한 몇 가지 공통 키 자료를 가지고 있습니다.
양방향 SSL에서 클라이언트는 서버에 디지털 인증서를 요청하고 서버는 클라이언트로부터 동일한 것을 요청합니다. 조금 느리지 만 양방향이므로 더 안전합니다. 일반적으로 우리는 서버가 클라이언트의 신원을 신경 쓰지 않기 때문에 그것을 따르지 않지만 클라이언트는 연결하는 서버의 무결성에 대해 확인해야합니다.
참고 URL : https://stackoverflow.com/questions/10725572/two-way-ssl-clarification
'program story' 카테고리의 다른 글
긴 상수 목록을 Python 파일로 가져 오기 (0) | 2020.11.01 |
---|---|
문자열을 이스케이프한다는 것은 무엇을 의미합니까? (0) | 2020.11.01 |
javascript node.js가 Google 앱 엔진에없는 이유 (0) | 2020.11.01 |
로컬 호스트가 아닌 요청을 수신하도록 kestrel 웹 서버를 얻으려면 어떻게해야합니까? (0) | 2020.11.01 |
React Native 앱이 JavaScript 코드에서 디버그 또는 릴리스 빌드인지 어떻게 확인할 수 있습니까? (0) | 2020.11.01 |