Google One VPN のホワイト ペーパー

Google One VPN の仕組み

Google では、ユーザーのオンラインの安全性を保つために、常にユーザーの個人情報のプライバシーとセキュリティの保護に努めています。3 つの基本原則(デフォルトでデータのセキュリティを確保すること、設計段階でプライベートなプロダクトを構築すること、ユーザー自身で情報を管理できるようにすること)を重視しています。

ネットワーキングのプライバシーとセキュリティについては、ウェブとアプリの広大なエコシステムにおいて、TLS(Transport Layer Security)などの保護機能を長く推奨してきました。残念ながら、すべてのオンライン サービス プロバイダがデータ保護に関する厳格な規格への準拠に取り組んでいるわけではありません1。このため、ユーザー保護の度合いと、ネットワーク トラフィックにアクセス可能なユーザーを管理する度合いにはばらつきがあります。セキュリティ保護を適切に実装した場合でも、IP アドレスやアクセスしたサイトなどのセンシティブ データが、他のユーザーに公開される場合があります2

VPN を適切に実装すると、次のようにさらなる保護が得られます。

  • 転送を暗号化することで、公共 WiFi アクセス ポイントやその他のサービス プロバイダなどの経路で、データとネットワーク アクティビティを、ハッカーやネットワーク ノードから隠す
  • 現在地やネットワーク アクティビティのトラッキングに使用されるおそれがある、アクセスしたトラッカー、サイト、アプリから IP アドレスをマスキングする
how a VPN connection works

図 1: VPN 接続の仕組み

VPN により、ネットワークの仲介者がトラフィックを盗み見することはできなくなりますが、VPN プロバイダには、センシティブ データにアクセスする権限を与えてしまう可能性があります。そのため、堅牢なプライバシーとセキュリティを保証する VPN プロバイダを選択することが重要です。残念ながら、すべての VPN が信頼できると証明されているわけではありません。脆弱性があるサービス3や、不必要なアクセス権をリクエストしたり、ユーザーのネットワーク データを収益化したり、ユーザーのオンライン アクティビティをログに記録しないという約束を守らないサービス4もあります。

ソリューションが混在した状況での VPN の需要の伸び5に伴い、Google ではその専門知識を、プライバシー、暗号学、ネットワーキング インフラストラクチャに活用して、Google クラスの VPN を構築しました。Google One VPN を使用すると、ネットワーキング トラフィックを VPN 側で識別することも、VPN のログに記録されることもありません。Google が VPN 接続を使用して、オンライン アクティビティを追跡、記録したり、販売したりすることは一切ありません。

透明性が高く検証可能なプライバシー

Google では、VPN は堅牢かつ透明性の高いものであるべきだと考えています。Google の設計の仕組みと、データおよびセキュリティの実践の個々の保証の提供方法を実演するために、クライアント API をオープンソース化(こちら)し、第三者によるシステム監査を実施(こちら)しました。

この透明性と外部検証に加えて、従来のアーキテクチャの潜在的な脆弱性の一部に対応する目的で Google One VPN を構築しました。従来の VPN では、セッション ID を使用してユーザーの ID をネットワーク トラフィックにリンクするため、ユーザーのセンシティブ データが危険にさらされるおそれがあります。VPN オペレーターや、インフラストラクチャに不正侵入する攻撃者は、この ID を使用してユーザーとそのネットワーク アクティビティを「盗み見」し、特定することが可能でした。

Google はユーザーの認証とサービスの利用を分離することで、この脆弱性をなくしたいと考えました。ユーザー認証と VPN への接続の間に暗号化ブラインド署名手順を採用することで、ネットワーク アクティビティが ID に結び付けられないことをユーザーに強く保証しています。

VPN by Google One’s authentication with blind signatures image

図 2: Google One VPN の、ブラインド署名を使用した認証

Architecturally, we’ve split authentication from the data tunnel setup into two separate services:

  • Authentication service: This service validates users’ access to VPN by Google One. The client first generates an OAuth token and a blinded token (see below for definition). Then, the authentication service validates and exchanges the OAuth token for a signed blinded token.
  • Key Management Service: The client can then ‘unblind’ this signed blinded token using cryptographic blinding. When the client connects to the data tunnel server, it provides only this signed unblinded token to the data tunnel server. Thus, the only piece that links the authentication server to the data tunnel server is a single, public key, used to sign all blinded tokens presented during a limited period of time.

ここで採用されているブラインド アルゴリズムは、1982 年に Chaum によって提案されたのが最初で6、一般的には「RSA ブラインド署名」と呼ばれています。目的は、認証サーバーと鍵管理サービスで決して同じ ID を使用しないことです。同じ ID の使用を避けるために、クライアントはトークンを生成し、フルドメイン ハッシュ関数を使用してトークンをハッシュ化します。次に、このハッシュ化したトークンと、ランダムな値、サーバーの公開署名鍵を組み合わせて、ブラインド トークンを生成します。その後このブラインド トークンは、認証サーバーによって署名されます。クライアントは VPN に接続する際に、クライアントのみが知っているランダムな値を使用して、ブラインド トークンとその署名のブラインドを解除できます。ブラインド解除されたトークンと署名は、鍵管理サーバーによって検証されます。

鍵管理サーバーは認証サーバーとは物理的に別のものであり、暗号化されたルート オブ トラストのみを共有して、ブラインド解除された署名済みトークンを検証します。他の情報が共有されることは一切ありません。このように、認証アーキテクチャは慎重に考慮された設計になっています。1 つ目のサービスの暗号化保護を破るだけでも時間がかかるため、攻撃者が 2 つ目のサービスの暗号化保護を破り、ユーザーとネットワーク アクティビティを関連付けることは不可能に近くなっています。Google が保有する世界中のコンピューティング キャパシティとほぼ同等のものを使用したとしても、両方のサービスの保護を破るには、数年かかるという計算結果が出ています。

VPN のログ記録の実践

The authentication step has already separated the user’s identity from the data tunnel that handles your network traffic. On top of that protection, the following data is never logged:

  • Network traffic, including DNS
  • IP addresses of the devices connecting to the VPN
  • Bandwidth utilized by an individual user
  • Connection timestamps by user

The VPN authentication and data plane services only record aggregate metrics —without any user identifiable information— for service reliability and performance optimization. These include aggregate throughput, uptime, latency, CPU/memory load and failure rates. Client applications running on the user's device may log additional metrics to understand product and feature adoption and engagement, prevent fraud, and to ensure VPN connection health. Client applications also provide the option to send feedback and errors to us, which include application and system logs, and are used for debugging purposes.

Using a VPN shouldn’t require that you completely turn over your trust to the VPN provider. A VPN provider should be able to transparently demonstrate how their service keeps your data private. Our VPN client-side code is open sourced so that users and privacy experts alike can verify how user data is handled, and we open up our implementation to rigorous external audits so you can be confident in our VPN’s privacy and security guarantees.

We believe an easy to use, highly private and performant VPN will significantly help improve user privacy online. So it should come as no surprise that we want to make VPN technology available to as many users as possible.

For more information about how VPN works, see: