HMAC 요청 서명에서 동일한 논리 요청이 항상 같은 바이트열이 되도록 서명 대상을 구성하는 방법과, 캡처된 정상 요청의 재전송을 막는 방법을 서술하시오.
METHOD
NORMALIZED_PATH
SORTED_QUERY
CANONICAL_HEADERS
SHA256(BODY)
TIMESTAMP
NONCE모범답안
메서드, 정규화한 경로·쿼리, 선택한 헤더와 본문 해시를 결정적인 표준 형식으로 정렬·직렬화해 HMAC 입력으로 사용한다. 타임스탬프와 일회용 nonce를 서명에 포함하고 서버가 허용 시간과 nonce 재사용 여부를 검증한다.
풀이와 판단 근거
HMAC은 양쪽이 정확히 같은 바이트열을 계산해야 하므로 필드 순서, 공백, 대소문자와 인코딩 규칙을 명확히 한 canonical request가 필요하다. 서명만으로는 과거에 유효했던 메시지의 재전송을 구분하지 못한다.
따라서 서명 범위에 타임스탬프와 nonce를 포함하고 서버가 짧은 허용 시간과 이미 사용한 nonce를 확인해 재전송을 거부해야 한다.
자주 틀리는 지점
- JSON 원문을 그대로 서명하면서 직렬화 규칙을 합의하지 않음
- HMAC 키를 요청에 함께 전송
- 타임스탬프만 포함하고 허용 시간 검증을 하지 않음
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.