암호 기술의 기초와 응용
TLS 1.3의 0-RTT(이전 연결에서 얻은 사전 공유 키를 사용하여, 첫 메시지와 함께 '얼리 데이터'를 보내는 방법)의 주의점으로 올바른 것은?
- A얼리 데이터는 암호화되지 않고 평문 그대로 보내지므로, 비밀번호나 신용카드 번호 등을 포함해서는 안 된다
- B공격자가 기록한 얼리 데이터를 다시 보내는 리플레이 공격을 완전히 막을 수 없으므로, 반복해도 문제가 없는 요청에 한해 사용한다
- C얼리 데이터는 일반 데이터보다 전방향 안전성이 강하므로, 송금 등 중요한 요청일수록 사용해야 한다
정답과 해설 보기
정답: B. 공격자가 기록한 얼리 데이터를 다시 보내는 리플레이 공격을 완전히 막을 수 없으므로, 반복해도 문제가 없는 요청에 한해 사용한다
0-RTT에서는 클라이언트가 이전 연결에서 받은 사전 공유 키로부터 얼리 데이터용 키를 만들고, 첫 메시지와 함께 암호화한 데이터를 보내므로 대기 시간을 1왕복만큼 줄일 수 있습니다. 다만 이 시점에서는 서버의 새로운 난수가 사용되지 않았기 때문에, 공격자가 기록한 얼리 데이터를 한 번 더 보내면 서버가 같은 요청을 한 번 더 처리해 버릴 우려가 있습니다(리플레이 공격). 또한 얼리 데이터는 사전 공유 키만으로 보호되므로, 그 키가 유출되었을 때의 전방향 안전성도 없습니다. 그래서 0-RTT는 페이지 가져오기처럼 몇 번 실행해도 결과가 바뀌지 않는 요청에 한하고, 송금이나 주문에는 사용하지 않는 것이 기본입니다.