Openid or ノーマルなusername+passwordのdual認証をTurbogears実装したけど、そもそもにOpenIDが、攻撃対効果の観点で攻撃者からの十分な保護を提供してくれるのかを考えたい。
まずは攻撃者が経済目的(つまりスパムコメント、スパムTBなど)の場合。
リスク1:OpenIDのアカウントがのっとられる。ユーザの責任といえなくも無い。まあphishingとかで抜かれたアカウントを利用してloginされるとどうにもならない。
ただ、攻撃側のメリットがどのくらいあるかというと、そこがはっきりしない。スパムを打ってくる攻撃側は、非常に安いコストでそこそこのリターンを得ることができるから攻撃してくるわけです。ほかのユーザからOpenIDのアカウントを搾取するのにかかるコストは結構高いのではないだろうか。被害者のPCにトロイの木馬とかを仕込めるならOpenIDのアカウントではなく、銀行のアカウントを奪うだろう。となると・・・
リスク2:不正取得したアカウントからのスパミングが攻撃の中心だろう。
ただ、アカウントがbanされたらすぐに死んでしまうので、メールの不正送信ほど攻撃にか掛かるコストは安くは無いはずだ。メールの場合はここの部分をOpen replayや自前鯖等で迂回できる。しかもProviderは戦うためのリソースを持っている(後述)。
リスク3:OpenIDのServerを制限する必要がある。信用するサーバをどう限定するか?Spammerが自前Provider鯖をたててそこの認証を持ってくる可能性がある。
http://www.baldanders.info/spiegel/log2/000407.shtml
とはいえ、OpenIDのProviderは大手が多いはずだから、大手のProviderのみを受け付ければいい。得体の知れないProviderは却下。この辺の社会構造はPKIに似ている気がする。verisignがえらいのと同じようにProviderとしてえらい会社がひとつあれば十分。メールがブラックリストでがんばるところを、ホワイトリストで済ませることができる。日本ならmixiとかgreeとか個人に「社会的な意味で」密着しているタイプのProviderが望ましいかな。提供する側と提供される側の利害が一致していて、SSLとちがって金はらわんでも使えるのがうれしい。ユーザとしても必要以上に秘密を知っている相手を増やさなくていい。
また、でかいところはphishing対策やアカウントの不正取得対策をするパワーを持っているので、それにただ乗りできるのが弱小サイトのメリットでしょうか。そのかわりユーザがどのサイトにloginしているかを知られてしまいますが。秘密を守るなら一箇所に集中して丁寧に守るほうがやりやすいです。弱小サイトが片手間でがんばったところでたかが知れている防御しかできませんから。ならばOpenIDにたよって、しないほうがいい。節約した労力でサービスを充実させるほうが生産的です。
経済的な観点から見てよくできて、時間は掛かるでしょうがweb上の認証のデフォルトになるのではないかとおもいます。
攻撃者が、経済犯ではなく、社会犯の場合は話が変わってくる。社会犯は被害者を貶めることが目的なので、プロフィールやエントリの改竄、被害者が不適切なコメントを残したように見せかけることが目的になる。また犯人は、地球の反対側にいるかもしれない経済犯と異なり、被害者の半径2メートル以内に入ったことがある可能性が高い。極端な話、背後から被害者のパスワードをのぞき見たり、被害者の所有するPCを直接操作して認証情報を抜き取る可能性がある。このようなケースでOpenIDを奪われると被害は甚大だ。ネット上での人格権を侵害されたとも言うべき状況になるだろう。
この辺はRP側が運用で対処するしかないかもしれない。この発言は本人ではない可能性がありますとか、被害者から連絡があった際に事後報告するなど。なんせ足跡つきまくりで露骨にわかるので・・・。
被害者が自覚しにくい被害はloginして情報を覗き見るだけの場合だろう。last loginのIPとその逆引き、時刻を表示するくらいしか思いつかない。
0 件のコメント:
コメントを投稿