OVPN ファイルは、中身が無害だという証明ではなく、プログラムへの入力として扱ってください。サーバーのアドレスを確認しても分かるのは、そのプロファイルがどこへ接続したいかだけで、それ以外は分かりません。そのファイルには二つの別個の信頼の判断が含まれています。クライアントがあなたのマシン上で何をできるか、そしてどの事業者が通信を受け取るかです。よく知られたプロトコル名は、どちらも決めてくれません。

一つのファイルに二つの判断が隠れている

一つ目の判断はローカルです。プロファイルは設定言語であり、それを読むクライアントは、プラグインを読み込む、スクリプトを実行する、あるいはルーティングと DNS の適用方法を変えるといった命令に対応している場合があります。二つ目の判断は遠隔です。ファイルに何が書かれていても、出口の事業者はそこに届く通信を見ます。

両者を混同すると、どちらの方向にも悪い助言になります。見知らぬ事業者の一見きれいなプロファイル、あるいは誰も読んでいないフックを伴う有名事業者のプロファイルです。ローカルで安全なプロファイルでも、あなたが選ばない相手に通信を渡すことがあります。

どのクライアントよりも先にプロファイルを読む

どのクライアントが処理するよりも前に、ファイルをテキストとして読んでください。ファイルの外を指す命令、実行ファイルを参照する命令、権限を変える命令を探し、その一覧をクライアントの文書化された対応と比べます。短い検索はセキュリティ監査ではありませんが、プロファイルがサーバーの一覧なのか、それ以上のものなのかを教えてくれます。

grep -nE '^(script-security|up|down|plugin|route-up|ipchange)' untrusted.ovpn

空の結果は安心材料ですが、決定的ではありません。設定が相互作用したり、インクルードされたファイルから供給されたりするからです。絞り込んだ一覧は、判決ではなく読み続ける理由として扱ってください。

プロファイルと一緒に届く指示も、プロファイルと同じだけ吟味する価値があります。四つの要求があれば立ち止まるべきです。スクリプトを有効にする、ヘルパーやライブラリをインストールする、クライアントを管理者として実行する、インポートの制限を弱める、のいずれかです。どれも信頼の境界を外へ広げるもので、サーバー一覧をインポートする通常の一部ではありません。

ファイル全体も一度通して読んでください。見慣れない一行は、絞り込んだ一覧より文脈の中で判断するほうが容易です。見慣れない行があれば、推測せずにクライアントのマニュアルで調べてください。

クライアントが実際に何を実行するか

Community OpenVPN の 2.6 マニュアル は script-security のはしごを文書化しています。レベル 1 が既定で、ユーザー定義のスクリプトを遮断し、レベル 2 はそれを許可します。プラグインの読み込みは独自の命令を持つ別の仕組みです。だから同じファイルでもクライアントによって意味が変わります。モバイルやベンダーのクライアントは、より狭い命令の集合しか受け付けないか、フックをまったく受け付けないことがあります。

起動方法もクライアントと同じくらい重要です。特権を持つヘルパーが起動したプロファイルは、ユーザー空間で起動したものより多くのことができる場合があり、その違いこそ、インポートの確認を読み飛ばさずに読む理由です。

バージョンも重要です。これらのレベルはリリースごとに定義され、数世代遅れたクライアントは同じ方針を実装していないことがあります。見つけた最新版ではなく、実行しているビルドに合うマニュアルを読んでください。クライアントがどこにもバージョン文字列を表示しないなら、それ自体が速度を落とす理由です。

住所だけでなく、事業者を比べる

事業者は他のあらゆる仲介者と同じように比べてください。出口を誰が運営しているか、何を記録しているか、プロファイルがどう届いたかを尋ねます。検証済みのダウンロードページと一致するフィンガープリントは、見慣れたホスト名より多くを語ります。到達できるサーバーは、何かが応答したことしか証明しません。

資格情報は、圧力の下で人が間違える部分です。サーバー名が見慣れているからといって、無関係なアカウントのパスワードをダウンロードしたプロファイルに入力しないでください。プロファイルは秘密鍵を平文で含むこともあり、ファイル全体をレビューのスレッドに投稿すると、その鍵をスレッドに渡すことになります。

正しく検証された HTTPS セッションでも、パケットを転送するだけの相手からページの内容は隠されます。したがって出口がすべてのパスワードを自動的に見るわけではありませんが、どのサイトに到達したかは見え、その境界は誇張せず正確に述べる価値があります。

ファイルの出所が不明なままの場合、あるいは要求する権限に受け入れられる説明がない場合は、説明責任を問える出所のプロファイルに置き換えてください。管理された仕事の接続では、管理者はクライアントと設定を二つではなく一つの判断として承認すべきです。ここで悪意を先に証明する必要はありません。アクセスを断ることは正当な答えです。

関連記事