Authy OneTouch プッシュ認証用の webhook を設定しようとしています。イベントへの登録に成功しone_touch_request_responded
、サブスクリプション コールから Webhook 署名キーを保存しましたが、まだリクエストを確認できていません。攻撃者は偽のリクエストを偽造し、2FA チェックを簡単にバイパスできます。
コールバック要求が前述の形式と一致せず (特にヘッダーがなく)、次のヘッダーしかないことを考えると、API ドキュメントは非常に混乱します。X-Authy-Signature
{
host: 'XXX.ngrok.io',
'user-agent': 'Authy-api-webhooks/1.0',
'content-length': '2211',
'accept-encoding': 'gzip',
'content-type': 'application/json',
'x-forwarded-for': '3.89.35.175',
'x-forwarded-proto': 'http'
}
また、JWT トークンの署名を検証しようとしましたが、まだ役に立ちません (着信POST
要求: {"body":"a_jwt_token"}
): 常に無効な署名を取得します ( https://jwt.io/を使用しても同じです)。
const jwt = require("jsonwebtoken");
jwt.verify(req.body.body, Buffer.from(MY_SECRET_KEY, "base64"), { algorithm: ["HS256"] });
Webhook POST コールバックの信頼性を確認する適切な方法は何ですか?
ありがとう!