岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

return_urlだけでもリプレイ攻撃が防げるのかー

OpenID認証トランザクションの開始時にConsumer側でnonceを発行して、ユーザーのCookieやSessionデータ、あるいはreturn_urlに付与しておきつつ、自前でDBに格納しておく。

OpenIDとリプレイ攻撃 - Yet Another Hackadelic

cookie無効のUAでも使えるようにするため、return_urlだけでリプレイ攻撃を防ぎたい。リファラ漏洩に弱いのは承知の上。話を分かりやすくするためOpenID Authentication 1.1で考える。

openid.return_toを「foo?nonce=var」とした場合、IdPからのリダイレクト後には「nonce」と「openid.return_to」パラメータの値がそれぞれ「var」「foo?nonce=var」となる。よってnonceの存在チェックもできるし、check_authenticationも成功する。やったね。

これだけのことを理解するのに数時間かかったのが切ない。