Googleが提供する安全なブラウジングのためのガイドライン
Googleは常にユーザーアカウントの安全性を向上させるための取り組みを行っています。その中でも特に注目すべきは、ウェブアプリケーションやブラウザの認証におけるセキュリティ対策です。この記事では、Googleがどのようにして「マン・イン・ザ・ミドル(MITM)」攻撃からユーザーを守ろうとしているのか、またそれによって影響を受ける開発者に向けて具体的な対策を紹介します。
「マン・イン・ザ・ミドル」(MITM)攻撃とは?
MITM攻撃は、攻撃者がユーザーとサービス間のやり取りを傍受し、情報を盗み取る手法です。この攻撃は、特に埋め込みブラウザフレームワーク(たとえば、Chromium Embedded Framework – CEF)や他の自動化プラットフォームを使用した場合に発生しやすいです。攻撃者は、ユーザーがGoogleにログインする際の通信を傍受し、ユーザーの認証情報(場合によっては二要素認証の情報も含む)を収集することができます。
重要な変更点
これらのリスクからユーザーを保護するため、Googleは**2021年1月4日**以降、すべての埋め込みフレームワークからのGoogleアカウントへのサインインをブロックすることを発表しました。
- この変更は、CEF(Chromium Embedded Framework)を基にしたアプリや、その他の非サポートブラウザに影響を与えます。
開発者へのガイドライン
開発者の方々には、この新しいセキュリティポリシーに適応するために、以下のポイントを確認していただきたいです。
- OAuth 2.0フローの実装:埋め込みフレームワークを使用しているアプリでは、ブラウザベースのOAuth 2.0フローを利用することを推奨します。
- ネイティブブラウザの使用:サインインには、コンパチブルなフルネイティブブラウザを利用することも選択肢の一つです。
- 限られた入力デバイス:制限された入力デバイス用のアプリケーションの場合、限られた入力デバイス用のOAuth 2.0フローを使用してください。
ブラウザの要件
Googleアカウントへのサインインを適切に行うためには、使用するブラウザも一定の要件を満たす必要があります。重要な点は以下の通りです。
- ブラウザにはJavaScriptが有効である必要があります。
- ブラウザはネットワーク通信をプロキシしたり変更したりしないこと。
- ヘッダの再書き換えや、HTTPSプロキシの使用は許可されていません。
- ブラウザは、ウェブ標準や機能の実装が適切である必要があります。
互換性のテスト
CE、Fを使用してサインインを行っている開発者の方は、2021年1月4日以降、このタイプの認証はサポートされなくなるため、アプリケーションの互換性を確認する必要があります。互換性をテストするための手順は以下の通りです。
- Google-Accounts-Check-OAuth-Login:trueというHTTPリクエストヘッダーを追加します。
- CE、Fでの互換性テストを行う場合は、CefRequestHandler#OnBeforeResourceLoadメソッドでカスタムヘッダーを追加します。
たとえば、次のように追加することができます:
CefRequest::HeaderMap hdrMap; request->GetHeaderMap(hdrMap); hdrMap.insert(std::make_pair("Google-Accounts-Check-OAuth-Login", "true"));
まとめ
Googleは、ユーザーのセキュリティを守るために絶えず努力しています。開発者は、これらの新しいガイドラインに従うことによって、ユーザーを守るだけでなく、サービスの信頼性を高めることができます。新たなポリシーに対応し、より安全なユーザー体験を提供するために準備を進めることが重要です。