문제

SSL 인증서를 안전하게 확인하는 데 필요한 일련의 단계는 무엇입니까? 내 (매우 제한된) 이해는 HTTPS 사이트를 방문 할 때 서버가 클라이언트 (브라우저)에 인증서를 보내고 브라우저는 해당 인증서에서 인증서의 발급자 정보를 가져온 다음 발급자에게 연락하여 어떻게 든 비교한다는 것입니다. 유효성에 대한 인증서.

  • 정확히 어떻게 이루어 졌습니까?
  • 이 과정은 중간 중간의 공격에 영향을 미치는 과정은 어떻습니까?
  • 어떤 임의의 사람이 자신의 검증 서비스를 설정하여 중간의 공격에 사용하기 위해 자신의 검증 서비스를 설정하지 않도록하는 것은 무엇입니까?
도움이 되었습니까?

해결책

다음은 매우 단순화 된 설명입니다.

  1. 웹 브라우저는 웹 서버의 공개 키가 포함 된 웹 서버의 인증서를 다운로드합니다. 이 인증서는 신뢰할 수있는 인증서의 개인 키와 서명됩니다.

  2. 웹 브라우저에는 모든 주요 인증 기관의 공개 키가 설치되어 있습니다. 이 공개 키를 사용하여 웹 서버의 인증서가 실제로 신뢰할 수있는 인증서에 의해 서명되었는지 확인합니다.

  3. 인증서에는 웹 서버의 도메인 이름 및/또는 IP 주소가 포함되어 있습니다. 웹 브라우저는 인증서에 인증서에 나열된 주소가 개방형 연결된 주소임을 확인합니다.

  4. 웹 브라우저는이 연결에서 HTTP 트래픽을 암호화하는 데 사용되는 공유 대칭 키를 생성합니다. 이것은 모든 것에 공개/개인 키 암호화를 사용하는 것보다 훨씬 효율적입니다. 브라우저는 웹 서버의 공개 키로 대칭 키를 암호화 한 다음 웹 서버 만 개인 키를 가지고 있으므로 웹 서버 만 해독 할 수 있도록합니다.

인증 기관 (CA)은 중간의 사람의 공격을 방지하는 데 필수적입니다. 그러나 서명되지 않은 인증서조차도 공유 대칭 키에 액세스 할 수있는 방법이 없기 때문에 누군가가 암호화 된 트래픽을 수동적으로 듣지 못하게합니다.

다른 팁

위에서 언급 한 것처럼 인증서를 구매하는 것 외에도 무료로 자신을 만들 수도 있습니다. 이것을 "자체 서명 된 인증서"라고합니다. 자체 서명 된 인증서와 구매 한 인증서의 차이점은 간단합니다. 구매 한 사람은 브라우저가 이미 알고있는 인증서에 의해 서명되었습니다. 즉, 브라우저는 구매 한 인증서의 진위를 쉽게 검증 할 수 있습니다.

불행히도 이것은 자체 서명 된 인증서가 Godaddy 및 Verisign과 같은 상업용 CA에서 판매 한 것보다 본질적으로 덜 안전하다는 일반적인 오해로 이어졌으며, 사용하는 경우 브라우저 경고/예외를 사용해야한다는 공통점이 있습니다. 이것은 잘못되었습니다.

자체 서명 된 인증서 (또는 Bobince가 제안한대로 CA 인증)를 안전하게 배포하고 사이트를 사용할 브라우저에 설치하는 경우, 그것은 구매 한 것만 큼 안전하며 중간 공격 및 인증서 위조에 취약하지 않은 것만 큼 안전합니다. 분명히 이것은 소수의 사람들만이 사이트에 대한 안전한 액세스 (예 : 내부 앱, 개인 블로그 등)가 필요한 경우에만 가능하다는 것을 의미합니다.

나 자신과 같은 동료 소규모 블로거가 자신을 보호하기 위해 인식을 높이고 장려하기 위해, 나는 인증서의 개념과 자체 서명 된 인증서를 안전하게 만들고 사용하는 방법을 더 자세히 설명하는 엔트리 레벨 튜토리얼을 작성했습니다. (코드 샘플 및 스크린 샷으로 완성).

당신은 그렇게 말했습니다

브라우저는 해당 인증서에서 인증서의 발급자 정보를 가져온 다음이를 사용하여 발행자에게 연락하여 유효성에 대한 인증서를 비교합니다.

고객은 두 가지 때문에 발행자에게 확인할 필요가 없습니다.

  1. 모든 브라우저에는 모든 주요 CAS 공개 키의 사전 설치 목록이 있습니다.
  2. 인증서에 서명되며, 서명 자체는 클라이언트가 자신의 직접 및 발행자 서버에 연락하지 않고 해당 인증서가 정통적으로 확인할 수 있기 때문에 인증서가 유효하다는 충분한 증거입니다. 그것이 비대칭 암호화의 아름다움입니다.

2. 1 없이는 할 수 없습니다.

이것은 이것에 더 잘 설명됩니다 큰 다이어그램 나는 얼마 전에 만들었습니다

(하단에서 "서명은 무엇입니까?"로 건너 뛰십시오)

blob

고객은 SSL 인증서 당국의 공개 키 사전 시드 스토어를 보유하고 있습니다. 서버를 신뢰할 수 있도록 소위 "루트"인증서 중 하나까지 중간 당국을 통해 서버 인증서의 신뢰 체인이 있어야합니다.

신뢰할 수있는 당국의 목록을 조사 및/또는 변경할 수 있습니다. 종종 귀하는 귀하가 신뢰하는 회사 또는 귀하가 참석하는 학교 또는 그렇지 않은 것과 같이 귀하가 신뢰하는 지역 당국에 대한 인증서를 추가하기 위해이 작업을 수행합니다.

사전 시드 목록은 사용하는 클라이언트에 따라 다를 수 있습니다. 대형 SSL 인증서 공급 업체는 루트 CERT가 모든 주요 브라우저 ($$$)에 있음을 보장합니다.

공격자가 신뢰할 수있는 루트 인증서의 개인 키를 가지고 있지 않는 한, 마이너스 공격은 "불가능"합니다. 해당 인증서가 널리 배포되기 때문에 이러한 개인 키의 노출은 일반적으로 전자 상거래의 보안에 심각한 영향을 미칩니다. 그로 인해 개인 키는 매우 밀접하게 보호됩니다.

기술적으로 더 기술적으로 생각되면이 사이트는 아마도 당신이 원하는 것일 것입니다. http://www.zytrax.com/tech/survival/ssl.html

경고 : 토끼 구멍이 깊어진다 :).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top