관련된 좋은 포스팅이 있어 가져 왔습니다. 출처 원본이 보기 좋게 되어 있으니 링크 타고 들어가서 보시는 걸 추천 드립니다. 출처 : https://www.lesstif.com/ws/rest-api-hmac-87949394.html REST API 제작시 꼭 알고 있어야 할 HMAC 기반 인증 유명한 서비스의 REST API 를 사용하려면 secret access key id(보안 액세스 키 ID) 와 secret access key(보안 엑세스 키) 를 생성해서 등록해야 사용이 가능한 경우가 많습니다. 예로 AWS 는 발급받은 "AWS 보안 액세스 키 ID" 를 Authorization 헤더에 추가해서 보내야 하며 본문은 "보안 엑세스 키" 를 사용해서 HMAC 방식의 인증을 거쳐야 API 사용이 가능합니다. Authorization: AWS AWSAccessKeyId:Signature 위와 같은 방식은 내부적으로 해시 기반 메시지 인증(HMAC; Hash-based Message Authentication Code))이라는 보안 기술을 기반하고 있는데 HMAC 이 어떻게 동작하는지 잘 설명한 자료가 많지 않아서 정리해 봅니다. 인증의 필요성과 HTTP Basic Auth 사용자의 인증은 현대적인 웹 서비스에서는 매우 중요한 부분입니다. 제대로 인증을 하지 않으면 권한없는 이가 임의의 자료에 접근하거나 데이타를 훼손/파기할 수 있으며 이로 인해 서비스와 평판에 심각한 손상을 입을 수 있습니다. 전통적인 방식은 HTTP 표준에 있는 Basic Auth 방식을 사용해서 사용자의 id와 암호를 전달하는 방식입니다. 예로 아래와 같이 curl 로 인증 요청을 보내면 내부적으로 Authorization: Basic dXNlcmlkOm15cGFzc3dk 처럼 Authorization 헤더에 base64 로 encoding한 id 와 암호를 전달합니다. $ curl -v -u userid:mypasswd example.com ...