SignatureValidator はHMAC-SHA256アルゴリズムに基づくパラメータ署名検証ツールで、専らAPIセキュリティのために設計されています。リクエストパラメータにデジタル署名を生成することで、データの完全性と真実性を確保し、パラメータの改ざんやリプレイ攻撃を防止します。アルゴリズムの原理#
署名生成フロー#
リクエストパラメータ → 無効な値のフィルタリング → keyでソート → 署名対象文字列の構築 → HMAC-SHA256 → 署名
詳細な手順:#
ステップ1:パラメータのフィルタリング
自動的に署名に参与しないフィールドを除外します:sign、signature(署名フィールド自体)
None、空文字列 ''、空辞書 {}、空リスト []
ステップ2:パラメータのソート
パラメータ名(key)のASCIIコードを小さい順から大きい順にソート(辞書順)し、異なる言語での実装結果を一致させます。複合型(dict/list):JSON文字列にシリアル化(コンパクト形式、スペースなし、keyはソート)
ステップ4:URLエンコード
encodeURIComponentと互換性のあるエンコード方式を使用し、keyとvalueをエンコードして特殊文字を処理します。ステップ5:署名対象文字列の構築
形式:key1=value1&key2=value2&key3=value3email=ron%40ehido.kp&user_name=Franklin%20Santos%20%E4%BD%A0%E5%A5%BD%E5%90%83
pythonコード例#
Modified at 2025-11-14 10:57:19