암호 기술의 기초와 응용

TLS 인증서 검증에서는 서명 체인과 유효 기간을 확인할 뿐만 아니라, 접속하려 한 호스트 이름이 인증서의 SAN(주체 대체 이름)에 포함되는지도 확인한다. 이 확인이 꼭 필요한 이유로 올바른 것은?

  1. A공격자도 자신이 가진 다른 도메인 이름에 대해서는 신뢰받는 인증 기관에서 정규 인증서를 취득할 수 있기 때문에
  2. B호스트 이름을 확인하지 않으면 통신의 암호화 자체가 수행되지 않게 되기 때문에
  3. C호스트 이름이 일치하지 않는 인증서는 서명 체인이 반드시 도중에 끊어져 있으므로, 애초에 검증을 통과하지 못하기 때문에
정답과 해설 보기

정답: A. 공격자도 자신이 가진 다른 도메인 이름에 대해서는 신뢰받는 인증 기관에서 정규 인증서를 취득할 수 있기 때문에

인증서의 서명이 올바르고 기한 내라도, 그것이 '어느 도메인 이름을 위한 인증서인지'를 확인하지 않으면 의미가 없습니다. 공격자는 자신이 가진 도메인 이름에 대해서는 그 도메인을 관리하고 있음을 보이기만 하면 정규 인증서를 취득할 수 있습니다. 그래서 호스트 이름을 확인하지 않는 클라이언트는 그 인증서를 내미는 가짜 서버를 진짜로 간주해 버립니다. 독자적으로 TLS를 사용하는 프로그램에서 호스트 이름 검증을 비활성화한 채로 사용하는 실수는 잘 알려진 취약점의 원인입니다.

이 분야 연습하기 분야로 돌아가기

암호 기술의 기초와 응용의 다른 문제

  1. 인증서 투명성(Certificate Transparency, CT) 구조에 대한 설명으로 올바른 것은?
  2. TLS 1.3(RFC 8446)에서 TLS 1.2로부터 바뀐 점으로 올바른 것은?
  3. TLS 1.3의 암호 스위트 TLS_AES_128_GCM_SHA256이 지정하는 것의 조합으로 올바른 것은?
  4. TLS 1.3의 0-RTT(이전 연결에서 얻은 사전 공유 키를 사용하여, 첫 메시지와 함께 '얼리 데이터'를 보내는 방법)의 주의점으로 올바른 것은?
  5. 상호 TLS(mTLS)에 대한 설명으로 올바른 것은?