VPNとプロキシおよびプライバシーについて

vivaldiのセキュリティーとプライバシーのシリーズ第5回を非公式に訳させていただきました。VPNの本来の使われ方にも触れた数少ない良記事です。公式訳はこなれていて読みやすかったですが、専門用語の訳出にちょっとブレがあったので、少しくどめに訳してみました。他の4回分も入門者向けだが本質をついた、とても良い記事が揃っているのでおすすめです。
**Vivaldiの方へ:** 権利的にまずかったらご連絡を受け取り次第すぐ対応します。
用途別にメインSafariサブVivaldiときどきFirefoxで毎日使っていますが、Vivaldiはとっても良いブラウザです。ちょっと重いけど。


## [VPNs, proxies and privacy](https://vivaldi.com/ja/blog/vpns-proxies-privacy/)
このプライバシーとセキュリティの連載では、**原義のVPN**、**安全な匿名化できるwebプロキシ**、**ブラウザVPN** などについて掘り下げ、そしてvpnサービスに何を期待したらいいのかを解説するよ。
![Photo-by-Hannah-Wei-on-Unsplash.jpg](https://qiita-image-store.s3.amazonaws.com/0/278462/3ba568d3-3470-94aa-350f-158f1b46b45c.jpeg)

一般的な場合、あなたのブラウザからwebページに接続するためには次のような経路をたどる。ブラウザからコンピューター、コンピューターからWiFiや家庭内LAN、家庭内LANからインターネットサービスプロバイダー(ISP)、IPSからティア1、ティア1から相手国のティア1、相手国のティア1からwebサイトのホストプロバイダー、webサイトのホストプロバイダーからwebサイトへ。

ああなんと多くの段階を経るのだろうか！事実、世界のどこにあなたがいて、世界のどこにwebサイトがあるかによって、通信データは途中で他の国をも通り抜けるのだ。

## **安全ではない通信方式** におけるプライバシーの真相
**保護されてないため安全ではない通信方式** において、その接続の何らかの部分を制御または共有している誰もが、送り出されたデータを覗き見ることができる。その誰かはあなたのコンピューターやネットワークの中にいるかもしれない。ISP、通信経路上の様々な区域の運営者、あなたの居住国の政府や通信経路上の政府、ホストプロバイダー、同じホストサーバーにwebサイトを持っている誰か、なのかもしれない。

全ては覗き見ることができるんだ。

## 保護されて安全な通信方式でデータを送ること
webサイトが **保護されて安全な通信方式** を提案してきたとき(有効な証明書を持ち強力な暗号化がなされているHTTPSのURLのとき)、そして **保護されて安全な通信方式** を利用する時には、通信されるデータはwebサイトとあなたのブラウザだけが見ることができる。

ちょっとまった、そんなに単純なことか？

残念ながらそうではない。通信を確立するために、ブラウザはDNSサービス、多くの場合ISPによって提供される、を用いてwebサイトのIPアドレスを調べる必要がある。その後ブラウザは当該のIPアドレスを通信の確立に使う。つまりすなわち、通信を監視している誰もが、DNSリクエストに伴って送られるwebサイトのドメインを見ることになるし見ることができるということで、結果として、通信の内容は分からずとも、どのwebサイトと通信しているかは解明されてしまうということだ。

もし **保護されて安全なDNSサービス** を利用できたとしても、ブラウザがwebサイトと通信するときには、通信を監視している誰もが、どのIPアドレスに接続されているかを覗き見ることができ、DNSを逆引きすることであなたがどのwebサイトを訪れたかを解明できるのだ。

## まずはVPNから話そう
人々がVPNをブラウジングのために使うときは、全く別種の2つの目的のいずれかに、多くの場合は分類できる：

1. LAN内の他のユーザー、ISP、圧制的な当局などから、通信データを秘匿するため。
2. プライバシーのためであったり、特定の地域からの通信が遮断されているwebサイトにアクセスするために、webサイトからIPアドレスを秘匿するため。
![VPN-scenario-1.jpg](https://qiita-image-store.s3.amazonaws.com/0/278462/1fef338a-ff8d-1f50-11b0-0e24755ca157.jpeg)

原義においてVPNとは、コンピューターから他のネットワーク、例えば会社のネットワーク、への **保護されて安全な通信** を提供するものだった。コンピューターが通信回線にデータを送ろうとするときには、コンピューターの中にいる **VPNサービス** がデータを暗号化し、インターネットを経由して接続したいネットワークに内包された目的地たるVPNサーバーへと送り出す。VPNサーバーは通信データを解析し、まるであなたのコンピューターであるかのように振る舞いながら、目的のネットワークにデータを送る。そのネットワークからの応答は同様の手順であなたのコンピューターに送り返される。

通信経路の全てを監視していたとしても、誰も何が送信されているかを覗き見ることはできず、目的のネットワーク上のどのコンピューターと通信しているかさえ覗き見ることもできない。

なかなか良さそうだ、しかしこれが大半のVPSサービスが行なっていることなのだろうか？残念ながら「No」だ。ここでプロキシが登場する。

## プロキシとは何ぞ
プロキシとは、あなたのコンピューターを代理してwebサイトにリクエストするサービスのことだ。ブラウザはプロキシを経由して通信するように設定される。ブラウザがwebサイトを読み込もうとするとき、ブラウザは通常のwebサイトと通信するのと同じようにプロキシへ通信し、リクエストを伝える。そのあとでプロキシがブラウザに代理してリクエストを送り、webサイトが応答すると、プロキシはその応答をブラウザに流し戻す。

これを読むと、webサイトにIPアドレスを見せない、つまり分類2のユーザーにとって魅力的な、プライバシー上の利点があるように思えるかもしれない、しかし実のとこ一般的なプロキシは、X-Forwarded-Forという名称のヘッダー領域を利用してあなたのIPアドレスをwebサイトに送っているのだ。結局のところプロキシの提供者は、もしもあなたがサイバー攻撃をしようとした時に非難されたくはないからね。とすると、webサイトの所有者はまさにあなたのIPアドレスから攻撃が来たと分かっているわけだ。

もちろん、偽のXFFヘッダーを詐称してリクエストすることで責任を誰かになすりつけることもできる。しかし、そのプロキシアドレスが既知で信頼できるかをまとめたリストを参照することで、webサイトはあなたのXFFヘッダーがでっち上げられたものかを検討できる。

ほとんどのプロキシは、HTTPSプロキシとして知られ、**保護されて安全な通信** の内容へ干渉せずに直接webサイトに受け流す。なぜならプロキシはwebサイトの証明書なしには通信内容を解読できないからだ。この仕組みこそが、HTTPSなwebサイトがプロキシを挿しても有効な所以である。

プロキシは時に通信を解読しようとする、しかしそのためには、プロキシは偽の証明書をブラウザに提示する必要がある、自身のルート証明書としてね。もちろんブラウザはそいつを信頼できないものと判断し、あなたを傍受から守るためにエラーメッセージを表示するだろう。この提示はwebサイトのデバッグに際して行われることがあり、その時には、テストを行う人がプロキシの証明書を受け入れる必要がある。またこの提示は通信をスキャンするためにウイルス対策ソフトによって行われることもある。

### 通信経路が保護されて安全なwebプロキシ
**安全なwebプロキシ** は、プロキシまでの通信を傍受されない安全なものにする。それは通信しているwebサイトが仮にHTTP(または安全ではないHTTPS)を使っていたとしても有効だ。LAN内の他のユーザーが通信データを覗き見するのを防げるというプライバシー上の利点がある(分類1のユーザーにとって魅力的だ)。覗く人物は、あなたが **安全なwebプロキシ** に接続していることは分かるが(もっともコネクションは一般的なHTTPS通信と全く違わずに見える)、しかしどのようなデータが送信されているかを盗み見ることはできない。もちろん、webサイトはXFFヘッダーを依然として見ることができるので、webサイトはこの時もあなたのIPアドレスを知っている(分類2のユーザーにとっては好ましくないだろうが)。

信頼性については、**安全なwebプロキシ** が証明書を用いてその真正性を証明する。よってあなたは接続しているのが正しい **安全なwebプロキシ** であると判断することができる。そうでない時には、誰かがプロキシとの通信を傍受することができたり、**偽の安全なwebプロキシ** を提供したりすることができ、したがってあなたの通信を監視することができてしまう。

### 匿名化できるプロキシ
**匿名化できるプロキシ** とは、基本的には **ただのプロキシ** か **安全なプロキシ** のうちwebサイトに接続する時にXFFヘッダーを送らないものをいう。つまりすなわちwebサイトはあなたのIPアドレスを見ることができず、あなたは匿名のユーザーになれるということだ(分類2のユーザーにとって魅力的だ)。

いくつかのサービスには、JavaScriptや望まないコンテンツなどを排除するために検問の機能を提供するのものもある。しかしこれが意味するのは、あなたの全てのログイン手続きをプロキシの提供者に明け渡すことであり、プロキシの提供者はたとえ **安全なwebサイト** であったとしてもあなたが何をしているか盗み見ることができるのだ。これでは、ある一つのプライバシーの危険を他の危険にすり替えただけに過ぎない。

 **匿名化できる安全なプロキシ** であれば2つの分類のどちらもいちどきに解決できると思うかもしれないが、残念ながらそう単純なことではなく、他にも考慮すべきことはたくさんある。たとえば、どのようにあなたのLANとコンピューターが設定されているかといったことだ。あなたのコンピューターはwebサイトに接続する時にDNSリクエストを送り、webサイトを認証するためにCRLとOCSPリクエストを送る(もしもCRLSetが利用できない時に)。ブラウザはその他のリクエストも送る。たとえばマルウェアブロックリストのリクエストや、サムネイルのリクエストなど。こんな時にVPNが役立つ(しかし覚えておくべき重要なことは、多くの **VPNを騙るサービス** はそうではないのだと)。

他に意味するのは、ユーザーがプロキシを使ってサイバー攻撃をしようとしたときに、プロキシサービスが非難を受けるということだ。これを避けるために、プロキシの提供者は通信を制限したり、ログインを要求したり、通信のログを保管したりして、正確な人物に責任を問えるようにする。これはプロキシをプライバシーのために使おうとする全ての人の試みを挫くね。

## VPNサービスにて注意すべきこと
多くの場合、VPNサービスとは「VPN」と自称するだけの **匿名化できる安全なwebプロキシ** に過ぎない。それらはしばしば「webサイトとの安全なコネクションを提供する」であったり「あなたのwebサイトへのコネクションを暗号化する」だといったことを宣伝する。双方共に正しくはないが、しかし多くの企業は競合に負けないためにそれらの売り文句に頼るのだ。このような種類のVPNサービスはwebサイトへの通信経路の全体を保護して安全にできるはずがない。なぜならそのVPNサービスは通信経路の一部にしか干渉できないからだ。
![VPN-scenario-2.jpg](https://qiita-image-store.s3.amazonaws.com/0/278462/064decb7-ef4a-3a3a-8e98-ea9466b2a7a2.jpeg)

いってみるとVPNという言葉は、**原義のVPN** としては使われておらず、プロキシを表すために使われているというわけだ。ブラウザからVPNサーバーまでの通信が保護されて安全だとしても、そのあとwebサイトに接続するためにはVPNサーバーのネットワークを離れてインターネットに戻る必要がある。そのwebサイトへの通信は通常と同じく保護されないので安全ではない(もしもHTTPSが使われてるなら保護済で安全)。通信は通る旅路の後ろ半分では傍受可能なままなのだ。この場合にVPNが成せることは、その通信にささやかなプライバシーを添える程度のことである。

さらに言えば、保護されて安全な(HTTPS)通信はただの暗号化以上のものがある。HTTPSは、誰も証明書の偽のコピーを提示しておらず、誰も通信を傍受していないことが証明された信頼できる証明書を持ったwebサイトへ通信していることを保証する。VPNはこれに干渉することができず、保護されておらず安全ではない通信を保護されて安全な通信に変えることはできない。もしも証明書が有効でない場合は、完全に暗号化された通信すら保護されて安全だとは言えない。

## プライバシーを改善しよう
VPNについて話すとき、私たちは「安全な」という言葉を使うことを必死に避けた上で、プライバシーの改善について話す必要がある。なぜならその詭弁こそが **安全なwebプロキシ** や **プロキシとしてのVPN** が現実に謳っていることだからだ。

論理に沿えば、**プロキシとしてのVPN** は匿名化ができる必要はないが、しかし実際にはほぼ全てが匿名化をしている。

**安全なwebプロキシ** と **プロキシとしてのVPN** との間の最も大きな違いは、VPN-まともなVPNサービスをコンピューターの中で使うとき-は関連するすべての通信を捕捉することができる、ブラウザによって開始された通信だけではなく。またVPNは、DNS、OCSP、CRL などのブラウザが生成した補完的な通信もすべて捕捉することができ、これらはwebサイトへの直接の通信ではない(マルウェア防御のための検査とかね)。いくつかの場合には、**安全なwebプロキシ** を使うときにはブラウザはこれらの通信の多くを削減できる。例えば自身のDNSリクエストなど。しかし依然として、確実にすべてのシステムの通信を補足できない場面は存在する。だとしても**プロキシとしてのVPN** は、VPNのふりをしているだけの **安全なwebプロキシ** よりも良いものであるとは言える。

## ブラウザVPN
もしブラウザのとあるアプリケーションが拡張機能を提案してきたとき、そいつが当該アプリケーションだけに有効なVPNだと主張するならば、そいつは **本物のVPN** ではなく **匿名化できる安全なwebプロキシ** だと判断できる良い兆候である。これは全てを台無しにするわけではなく、通信に紐づいた通信データの全ては捕捉できないという制限が加わるというだけだ。そいつはDNSトラフィックを捕捉できない(しかし実行方法によっては場合により可能だ)。そいつはシステムが行う証明書の失効チェックも捕捉することはできない。つまりすなわち、通信データの大半を隠匿することはできても、数ビットの情報がプロキシを経ずに流れていくことをどうともできず、依然として、あなたのコンピューターの中から通信データを監視している人物はあなたがおとずれたwebサイトを解明できるのだ。分類1のユーザーにとってプライバシー上の考慮すべき重大な事柄だろう。

**プロキシとしてのVPN** は、こんなときにより役立つ。コンピューターからのすべての通信データを補足するものとして。それはつまり同じ判断をする必要はないということで；全てのアプリケーションからの全ての通信データがVPNを通過するか、VPNを何も通過しないかの2択ができる。一つのアプリケーションからの通信データのみがVPNを通過するなんて現象はありえないのだよ。

しかしながら、**匿名化できるプロキシとしてのVPN** と **匿名化できる安全なwebプロキシ** のどちらもあなたのIPアドレスを隠匿するにはもってこいであり、分類2のユーザーは十分に恩恵にあずかれる。

## そのほかに
* 他の方法であなたのIPアドレスを明らかにする、すべてのプラグインを無効にする。
* Vivaldiでは、WebRTCを用いてあなたがローカルIPアドレスを発信するのを止めることができる(設定 – プライバシー – WebRTC IPの取り扱い – 最高品質のwebRTCを無効にするためIPアドレスをブロードキャストする)。
* まっさらなプロフィールもしくはプライベートブラウジングモードを使うことで、識別に使われるCookieやキャッシュファイルを排除することができる。

もっと多くのヒントは、プライバシーとセキュリティついてのシリーズの続きの記事にあるよ。

## セキュリティーとプライバシーのシリーズ
(Vivaldi公式訳に飛びます)

* [第1回　Webブラウザにおけるセキュリティの基礎：入門編](
https://jp.vivaldi.net/2018/04/03/basics-of-web-browser-security/)

* [第2回　共用型ネットワーク、追跡、フィンガープリント](
https://jp.vivaldi.net/2018/04/06/shared-networks-tracking-fingerprinting/)

* [第3回　あなたのブラウザー、アンチウィルス他のネットワーク傍受型ソフトウェア](
https://jp.vivaldi.net/2018/04/12/network-intercepting-software/)

* [第4回　Vivaldiのウェブサイトのパーミッションとサードパーティ製のサービスについて](
https://jp.vivaldi.net/2018/04/27/website-permissions-third-party-services/)

メインの画像はUnsplashの[Hannah Wei](https://unsplash.com/@herlifeinpixels)による。