0

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 コールバックの信頼性を確認する適切な方法は何ですか?

ありがとう!

4

1 に答える 1