外部 Web サイトが POST 要求を送信できる API エンドポイントがあります。リクエストが本物であり、改ざんされていないことを確認し、整合性の原則を尊重するための最良の方法は何ですか?
データはクレジット カード情報などの価値がないため、HTTPS 統合は必要ありません。
HMAC とデジタル署名の両方を調べましたが、2 番目のオプションの方が優れていると思いますが、これが正しい方法かどうかはわかりません。
同様に、リクエストをハッシュしてサーバーで検証するだけで十分でしょうか?
外部 Web サイトが POST 要求を送信できる API エンドポイントがあります。リクエストが本物であり、改ざんされていないことを確認し、整合性の原則を尊重するための最良の方法は何ですか?
データはクレジット カード情報などの価値がないため、HTTPS 統合は必要ありません。
HMAC とデジタル署名の両方を調べましたが、2 番目のオプションの方が優れていると思いますが、これが正しい方法かどうかはわかりません。
同様に、リクエストをハッシュしてサーバーで検証するだけで十分でしょうか?
HMAC とデジタル署名の両方が整合性と認証を提供します。
主な違い - HMAC メッセージは第三者によってチェック/検証できません。秘密を知っている人だけがメッセージを検証/認証できます。デジタル署名されたメッセージには公開証明書があり、誰でも添付の公開鍵でメッセージを解読し、ハッシュを計算し、特別な信頼できる側で公開鍵をチェックすることで、メッセージの所有者を確認できます。
結論 - メッセージが実際に送信者に属しているかどうかを誰も確認する必要がない場合は、HMAC を使用します。
同様に、リクエストをハッシュしてサーバーで検証するだけで十分でしょうか?
いいえ。中間者はメッセージを変更し、変更されたメッセージのハッシュを添付できます。ハッシュは整合性を提供します。つまり、メッセージを変更するとハッシュも変更されますが、ハッカーはメッセージをコンテンツとハッシュで完全に置き換えるだけなので、ハッシュの等価性について心配する必要はありません。HMAC のようないくつかの秘密の使用法は、そのようなメッセージの置換を防ぎます: 中間者はメッセージを変更できますが、秘密を知らないため、ハッシュを再計算できませんでした。