고객이 webhook URL을 등록 할 수있는 서비스를 개발 중이며 등록 된 URL에 대한 업데이트를 보내드립니다. 보안을 위해 클라이언트 (수신자)가 요청을 보내는 사람 (서버)을 식별하게하려고합니다.웹 훅 아이덴티티 보안 방법
Facebook 및 Github은 모두 페이로드의 해시가 비밀 키로 시작되는 X-Hub-Signature
을 보냅니다.
나는 동일한 전략을 따를 수 있습니다. 그러나 단순히 사용하는 경우 jwt
:
- webhook 등록시 클라이언트와 비밀 키를 공유합니다.
- 그런 다음 각 webhook 요청에서 동일한 비밀 키를 사용하여 jwt를 전송합니다.
저는 암호화에 대해 많이 알지 못하지만 서명에서 페이로드를 사용하지 않기 때문에 반복적으로 서명을 계산할 필요가 없으므로 jwt 방식이 더 효율적으로 보입니다.
그러나 그렇다면 왜 페이스 북과 github가 다른 접근 방식을 따르고 있습니까?
동의! 그러나 모든 메시지에 비밀을 전송하는 것은 현명하지 않습니다. 비밀이 유실 될 가능성이 있기 때문입니다. ' 나는 평범한 비밀을 보내지 않을 것이다. 나는'jwt'를 보낼 것입니다. –
재생 공격을 지적 해 주셔서 감사합니다. –
질문의 일부를 잘못 읽은 것처럼 보입니다. JWT에는 MAC가 포함됩니다. MAC/JWT 계산에 페이로드를 포함해야합니다. 그렇지 않으면 공격자가 다른 페이로드로 MAC을 재사용 할 수 있습니다. –