OpenVPN&セキュリティ情報
2011-05-18
AndroidのClientLogin認証における脆弱性
既にいろいろなところでニュースとして取り上げられていますが、ちょっと情報の整理も兼ねて。ドイツのウルム大学の研究者たちの報告が最初の情報源です。
GoogleではClientLoginという認証方式を設けており、この方式に関してはGoogleのサイト上でも開発者向けの情報「Authentication and Authorization in the Google Data Protocol」で説明されています。簡単に言うと、ユーザーが一度Googleアカウントの認証をパスすると、その後最大2週間使用できるトークンがGoogleから発行され、その期間内はGoogleのサービスにそのトークン付きでリクエストを投げれば認証を通過できる(Googleアカウントの再度の認証は不要)、という仕組みです。この仕組みはGoogleのサービスを利用するサードパーティのアプリケーションでも利用できます。
Googleアカウントの認証手続きそのものは暗号化された通信経路上(HTTPS)で行われるため、ここは問題ありません。問題はその後で、認証後に発行されたトークンを使ったGoogleサービスへのリクエストが、暗号化されていないHTTP上を通過してしまうケースがある、ということです。HTTP上を通るのか、HTTPS上を通るのかは、そのアプリケーションの作りに依存します。少なくとも、Android 2.3.3以前のバージョンに搭載されたカレンダーや連絡先などのアプリケーションでは、リクエストがHTTP上を通過する(つまり、トークンが暗号化されない)と報告されています。
前述の「Authentication and Authorization in the Google Data Protocol」で使われている図を使って説明すると、このようになります。
認証に代わるトークンのやり取りが暗号化されていないということは、HTTPのリクエストをキャプチャしてしまえばそのトークンがそのまま入手でき、悪用できてしまうことになります。そのトークンの有効期限内であれば、他人のトークンを使ってGoogleサービスにアクセスできることになってしまうわけです。
Android 2.3.4以降、またはタブレット向けAndroid 3.0では問題が解決されているとのことですが、日本国内に存在するAndroid端末はほぼすべてがそれ以前のバージョンです。Android OSのバージョンアップも基本的にベンダーによる対応に依存しており、ユーザーがこの問題に対処するために自力でバージョンアップすることは難しいでしょう。
ユーザーができる対応としては、
- 公開されている無線LANアクセスポイントなど、第三者による通信の傍受が可能な環境で使用しているときは、Googleアカウントを使用するサービスすべてを利用しない(自動同期なども無効にしておく)。
- Android OSのバージョンアップ情報をこまめに確認し、アップデートが公開されたら速やかに適用する。
といったぐらいでしょうか。私もAndroidのユーザーとして、各ベンダーにも迅速な対応をお願いしたいものです。
Profile
- 山崎 太郎 (Taro Yamazaki)
- プラムシステムズ株式会社所属。 主にVPN(OpenVPN)やセキュリティ関連技術、Webアプリケーションを手がけています。
Page Views
Popular Posts
-
「VPNっていろいろあるけど、OpenVPNのメリットって何?」 という疑問は多くの方が持たれますよね。この点は公式サイトなどにもいろいろ書かれているのですが、実際に使ってきたユーザー側としてメリットと思う部分をまとめてみました。
-
現在ダウンロードできるOpenVPNでは、今まで認証局の構築で使用していたeasy-rsaが含まれなくなっています。 OpenVPN.netのダウンロードページ にも Note that easy-rsa is no longer bundled with OpenVPN...
-
Jan Just Keijser氏の記事「 Optimizing performance on gigabit networks 」については こちら でも概要を取り上げましたが、記事全体にいろいろなヒントが含まれていますので、全文の日本語訳を掲載しています。意訳している部分も...
-
OpenVPNでは、接続してきたクライアントのVPNアドレスは動的に割り振られます(その際に割り振られる際のアドレス範囲はOpenVPNサーバー側設定ファイルに基づきます)。特定のVPNクライアントに特定のVPNアドレスを割り振りたい場合、OpenVPNでは以下の2つの方法で設定...
-
では、いよいよiPhone構成ユーティリティでVoDの設定をしてみましょう。あ、 前の記事 での準備はきちんとやっておいてくださいね!
-
前回 は2つのワンタイムパスワードの生成方法について取り上げました。今回はいよいよ実際の生成アルゴリズムを取り上げましょう。TOTPをベースに説明します(ただ、前回も解説したように、基本的なロジックはTOTPとHOTPで同じです)。 参考としてpythonのコードも併記してみま...
-
現時点においてはマニュアルやHowToにも記載されていない(ChangeLogにちょっとだけ出てきます)あまり知られていない機能なのですが、「設定ファイルで鍵ファイルや証明書ファイルのパスを記載する」という通常の方法とは別に、「鍵ファイルや証明書ファイル内のデータをそのまま設定フ...
-
OpenVPNはLinuxをはじめとした幅広いプラットフォームで動作実績があるのが特徴の一つです。 今回は、最近の電子工作ブームでも話題のシングルボードPC 3機種をOpenVPNサーバーとしてセットアップし、OpenVPNのVPNパフォーマンスを測定してみましょう。
-
前回 はワンタイムパスワードの基本的な仕組みについて説明しました。サーバー側とクライアント側で、それぞれ共通のルールに基づいてパスワードを生成させる必要があることを取り上げましたが、今回は OATH が規定しているその生成ルールについて具体的に説明します。 ワンタ...
-
OpenVPNを使用している方ならよくご存知だと思いますが、通常OpenVPNでは証明書認証を使用します。証明書認証はID/パスワード認証に比較すると安全性が高いとされます(もちろん、秘密鍵の管理方法に大きく依存します)が、証明書認証の概念を理解しにくいユーザーが秘密鍵や証明...
© yamata::memo 2013 . Powered by Bootstrap , WebLyb
0 件のコメント :
コメントを投稿