OpenIDに仕掛けられやすい5つの攻撃

セキュリティーから見たOpenIDの危険性 第1回は、OpenIDが注目される背景や理由、そして基本的な認証の流れについてみていきました。では、OpenIDをセキュリティーという観点で見た場合のポイントはどこにあるでしょうか。

村上 知紀

2009年2月10日 20:00

セキュリティーから見たOpenIDの危険性

 第1回は、OpenIDが注目される背景や理由、そして基本的な認証の流れについてみていきました。では、OpenIDをセキュリティーという観点で見た場合のポイントはどこにあるでしょうか。

 通常、Webの開発を行う場合、ある程度セキュリティーを考慮しながらプログラミングします。しかし、開発の状況によってはセキュリティーのチェックがついつい後回しになったり、抜けモレなどが発生することがあるのではないでしょうか。

 今回は、少しでもセキュリティーを意識しながら開発することができるように、なるべく平たい言葉でセキュリティーの課題について説明します。ここで、OpenIDの認証の流れを再確認するために、第1回での例えを使ってもう一度見てみましょう。

 スモークガラスの車が、駐車場の入り口に入ってくる。車の中から係員に話しかける。

「駐車場を利用したいんだけど」
「通行証を見せて」
「Aの通行証でも大丈夫だよね」
「大丈夫だよ。じゃあ、Aのゲートがあるからそこで許可とってきて。案内するから」
「わかった」

 係員は、Aゲートに電話してから、Aゲートの場所まで車を誘導し、車はそのままAゲートに入っていく。

 Aゲートの中はよく見ないが、Aゲートの中にも係員がいて、通行証の確認をしているのだろう。そのAゲートの中から程なく車が出てきて、また元の入り口にいる係員のところに戻ってきた。車の中からまた係員に話しかける。

「AゲートでOKもらったよ。証拠もあるよ」
「それならオッケーだ。中に入っていいよ」
「じゃあ、遠慮なく」

 スモークガラスの車、駐車場、係員の例えを使った説明はここまでです。

 上記のたとえでは、まずスモークガラスの車が駐車場に入ってきて、入り口の係員に話しかけますが、もし大量の車が一気に何度も来たらどうでしょうか。入り口は満杯になり、ほかの車が入ってこられない状態になることは容易に想像がつきます。また、Aゲートに大量に車が押し寄せたらどうでしょうか。

 これは、いわゆる「サービス拒否攻撃」と呼ばれます。

 言葉は悪いですが、よってたかってサービスを利用することによって、ほかの人の利用をできないようにするという嫌がらせに近い攻撃です。実際には、この攻撃にはあまり対処の方法がありませんが、入り口やAゲートに入る車の数を減らしたり、間隔を設けるといった対処が必要となります。

 しかし悪意のない善良なユーザーを拒否してしまっては、元も子もありませんから、あやしい車を識別して対処しなければなりません。具体的には、ログからあやしい挙動をしているIPを調べ、そのIPのアクセスを制限します。

入り口の係員が別のゲートに誘導する:フィッシング

 次に考えられるのは、入り口の係員が悪人の場合です。これは3つの攻撃方法が考えられます。

 まず1つ目は、係員はやさしい顔をして、Aのゲートまで連れて行くように見せかけて、Aゲートと見た目がそっくりのA'ゲートに案内する方法です。ユーザーは、それがAゲートだと信じて疑わないので、A'ゲートで認証を行います。つまり、自分のIDやパスワードを入力してしまうのです。ひどい場合には、もっといろいろな情報を要求されて、入力してしまうかもしれません。大事なIDとパスワードを取られるだけでなく、身ぐるみはがされてしまう危険性があるのです。

 これが、いわゆる「フィッシング(phishing)」と呼ばれる攻撃です。

 OpenIDの利用サービスは、OP(OpenID発行サイト)に認証をゆだねるため、必ず自分のサイトからOPへのリダイレクトを行います。ユーザーは、基本的に「見た目」でそのリダイレクト先を信用するので、ロゴや画面デザインが見慣れていればOpenIDを取得したサイトだと認識してしまう可能性があるのです。

 ブラウザからソースを自由に表示できるので、ロゴやデザインをまねたそっくりのサイトを作るのは簡単です。つまり「見た目」はすぐにまねできてしまうのです。

 ユーザーの立場からすると、そうしたフィッシングにひっかからないためには、信用できる利用サービスを使うことや、リダイレクト先のURLを見て判断することが挙げられるでしょう。

 OP側も基本的にどこからリダイレクトされてきたのか、これからどこにリダイレクトするのかといった情報をきちんと開示していますので、そうした情報をチェックすることも必要です。yahoo.co.jpでは、認証する際にそれがフィッシングページではないことを証明するログインシールをつけることを推奨しています。

 OpenIDのセキュリティーが語られる場合は、大抵このフィッシングが最初に取り上げられます。それは認証のためにOPにリダイレクトするというその仕様が、OpenIDの本質と切っては切り離せないためです。

 続いて、ほかの攻撃についてみてみましょう。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30