암호 기술의 기초와 응용
TLS 인증서 검증에서는 서명 체인과 유효 기간을 확인할 뿐만 아니라, 접속하려 한 호스트 이름이 인증서의 SAN(주체 대체 이름)에 포함되는지도 확인한다. 이 확인이 꼭 필요한 이유로 올바른 것은?
- A공격자도 자신이 가진 다른 도메인 이름에 대해서는 신뢰받는 인증 기관에서 정규 인증서를 취득할 수 있기 때문에
- B호스트 이름을 확인하지 않으면 통신의 암호화 자체가 수행되지 않게 되기 때문에
- C호스트 이름이 일치하지 않는 인증서는 서명 체인이 반드시 도중에 끊어져 있으므로, 애초에 검증을 통과하지 못하기 때문에
정답과 해설 보기
정답: A. 공격자도 자신이 가진 다른 도메인 이름에 대해서는 신뢰받는 인증 기관에서 정규 인증서를 취득할 수 있기 때문에
인증서의 서명이 올바르고 기한 내라도, 그것이 '어느 도메인 이름을 위한 인증서인지'를 확인하지 않으면 의미가 없습니다. 공격자는 자신이 가진 도메인 이름에 대해서는 그 도메인을 관리하고 있음을 보이기만 하면 정규 인증서를 취득할 수 있습니다. 그래서 호스트 이름을 확인하지 않는 클라이언트는 그 인증서를 내미는 가짜 서버를 진짜로 간주해 버립니다. 독자적으로 TLS를 사용하는 프로그램에서 호스트 이름 검증을 비활성화한 채로 사용하는 실수는 잘 알려진 취약점의 원인입니다.