/ 가이드 / 웹훅·API 서명 검증하기 — HMAC 실전 가이드

웹훅은 외부 서비스가 내 서버로 이벤트를 보내는 방식입니다. 그런데 누구나 그 URL로 요청을 보낼 수 있으므로, 받은 요청이 정말 그 서비스에서 온 것인지 확인해야 합니다. 이때 쓰는 표준 방법이 HMAC 서명입니다.

발신 측과 수신 측은 비밀 키를 공유합니다. 발신 측은 요청 본문을 키로 HMAC-SHA256 해시해 서명을 헤더에 담아 보냅니다. 수신 측은 같은 키로 같은 본문을 해시해 두 서명이 일치하는지 비교합니다.

일치하면 두 가지가 동시에 보장됩니다. 키를 가진 쪽만 올바른 서명을 만들 수 있으므로 진위가, 본문이 조금이라도 바뀌면 서명이 달라지므로 무결성이 확인됩니다. GitHub·Stripe·Slack 등 대부분의 웹훅이 이 방식을 씁니다.

AG HASH에서 직접 검증해 볼 수 있습니다. HMAC 옵션을 켜고 공유 키를 입력한 뒤 요청 본문을 붙여넣으면 HMAC-SHA256 값이 나옵니다. 이를 요청 헤더의 서명과 비교하면 됩니다. 실제 검증에서는 타이밍 공격을 피하는 상수 시간 비교를 권장합니다.

이 알고리즘으로 해시하기