암호 기술의 기초와 응용
TLS에서 서버 인증서의 개인 키가 나중에 유출되더라도 그 이전에 기록된 통신은 복호화되지 않는 성질(전방향 안전성)을 얻을 수 있는 키 교환 방법은?
- A연결마다 일회용 값을 만들어 수행하는 ECDHE 등의 키 교환
- B클라이언트가 만든 키 재료를 서버 인증서의 RSA 공개 키로 암호화하여 보내는 방식
- C서버와 클라이언트가 미리 정한 같은 대칭 키를 모든 연결에서 계속 사용하는 방식
정답과 해설 보기
정답: A. 연결마다 일회용 값을 만들어 수행하는 ECDHE 등의 키 교환
ECDHE의 마지막 E는 에페메랄(일회용)이라는 의미로, 연결마다 새로운 비밀 값으로 키 교환을 하고 끝나면 버립니다. 인증서의 개인 키는 서명에만 사용하므로, 나중에 유출되더라도 과거 연결의 공유 비밀은 계산할 수 없습니다. 반면 키 재료를 서버의 RSA 공개 키로 암호화하여 보내는 방식에서는 기록해 둔 통신과 나중에 유출된 개인 키가 있으면 과거의 통신을 모두 복호화할 수 있어 버립니다. TLS 1.3에서는 이 방식이 폐지되어, 키 교환은 전방향 안전성이 있는 (EC)DHE가 기본이 되었습니다(사전 공유 키만으로 연결을 재개하는 경우는 제외합니다).