네트워크 기초
TLS에서 브라우저가 접속한 서버를 '위장이 아니다'라고 판단할 수 있는 이유로 올바른 것은?
- A인증서 안에 암호화에 사용하는 대칭 키가 들어 있고, 그것을 아는 것은 진짜 서버뿐이기 때문에
- B인증서는 서버의 IP 주소에 결합되어 있고, IP 주소는 속일 수 없기 때문에
- C인증서에는 신뢰할 수 있는 인증 기관의 개인 키로 만든 서명이 있어 위조할 수 없고, 나아가 서버는 핸드셰이크에서 인증서의 공개 키에 대응하는 개인 키를 가지고 있음을 보여야 하기 때문에
정답과 해설 보기
정답: C. 인증서에는 신뢰할 수 있는 인증 기관의 개인 키로 만든 서명이 있어 위조할 수 없고, 나아가 서버는 핸드셰이크에서 인증서의 공개 키에 대응하는 개인 키를 가지고 있음을 보여야 하기 때문에
인증서는 '이 도메인 이름의 공개 키는 이것이다'라는 내용에 인증 기관(CA)이 자신의 개인 키로 서명한 것입니다. 브라우저는 OS나 브라우저에 내장된 CA의 공개 키로 서명을 확인하므로, 공격자는 올바른 서명을 만들 수 없어 가짜 인증서를 만들 수 없습니다. 다만 진짜 인증서는 누구나 입수하여 그대로 제시할 수 있습니다. 그래서 TLS 핸드셰이크에서는 서버가 인증서의 공개 키에 대응하는 개인 키로 서명을 수행하여 그 개인 키를 가지고 있음을 보입니다. 실제 암호화에 사용하는 대칭 키는 핸드셰이크의 키 교환(ECDHE 등)으로 그때그때 만들어지며 인증서에는 들어 있지 않습니다. 인증서는 일반적으로 IP 주소가 아니라 도메인 이름에 결합되어 있습니다.