8.高度な匿名化方法

8.1. 匿名化通信の方法

8.1.1. 匿名化通信の基本

匿名化通信構築の考え方

TCP/IPの通信の匿名化を行うにあたって以下通信中継ノードを組み合わせて設定を行う。

  • 匿名化ネットワーク
    • Tor
    • I2P
  • VPN
    • 外部VPNサービス
      • ログポリシーあり
      • ノーログポリシー
    • 自前ホスティング
  • プロキシ
    • 自前ホスティング
    • 公開串

※I2Pは匿名P2Pによるファイル共有/チャット向きであるため、後述では匿名ネットワークはTorを使用した設定を紹介する。

匿名化パターンの検討

パターンVPN over TorTor over VPNTor over ProxyProxy over TorVPN over ProxyProxy over VPN
ISPに対する秘匿性あなたのTor使用が見えるVPN使用が見えるProxyの使用が見えるあなたのTor使用が見えるProxyの使用が見えるVPN使用が見える
VPNに対する秘匿性あなたのIPは見えないあなたのIPが見える--ProxyIPが見えるあなたのIPが見える
Torネットに対する秘匿性通常TorVPNIPがTorから見えるProxyIPがTorから見える通常Tor--
Proxyに対する秘匿性--あなたのIPが見えるTorExitのIPが見えるあなたのIPが見えるVPNIPが見える
アクセス先サーバに対する秘匿性VPNのIPが見えるTorExitのIPが見えるTorExitのIPが見える接続元IPはProxyのIPになる(不明確)VPNのIPが見えるProxyのIPが見える
パターンVPN over TorTor over VPNTor over ProxyProxy over TorVPN over ProxyProxy over VPN
特徴匿名性重視型実用性重視型検閲回避型Web偽装・IP偽装型特殊/非推奨地理制限回避型
匿名性ランキング12非推奨3非推奨4
匿名性×(Proxyが信頼できない場合)×(Proxyが信頼できない場合)
あなたのIPを知る相手TorEntryノード運営者VPNサーバ運営者Proxyサーバ運営者TorEntryノード運営者Proxyサーバ運営者VPNサーバ運営者
使用用途* 匿名でVPNに接続したい
* 公開Wi-Fiで接続元を隠してVPNに接続
* Torブロックされている環境でTorを使いたい
* ISPやLAN(企業・学校)からTor使用が見えない
Torがブロックされている国やLAN環境(企業・学校など)でProxyなら通る場合有効TorExit IPが制限されているサイトへのアクセスに使えるProxyしか許可されていないLAN環境(企業・学校など)でVPNを使いたい場合* Webスクレイピング
* 地理制限回避
デメリットTor Exitノード経由の接続なのでVPNプロバイダに弾かれる可能性ログなしVPNを前提にすべき* 匿名性はほぼ失われる
* Proxyが信頼できない場合危険大
* Proxyを信頼できないと危険
* DNSリーク注意
信頼できないProxyを通すとトラフィック監視・盗聴リスク* DNSリークの可能性
* Proxyを信頼できないと危険

上記より、Tor over ProxyとVPN over Proxyは自前Proxy鯖以外でないと大幅に危険となる。
またこれらの手法は組織LANでTor/VPNを使用したい場合の有効打であるため、ここでは構築方法の紹介を割愛する。

8.1.2. VPN over Torの構築

構築パターンの検討

この方法では以下ルートで対象サーバまで通信を行う。

[発信元IP]=>[ISP]=>[Torネットワーク]=>[VPN]=>[接続先サーバ]

実装方法は以下の通り。

  1. VPN over Torに対応しているVPNサービスを使う方法
    • 対応しているVPNプロバイダのAirVPNを使用
  2. VPNルータでTorのSOCKS5プロキシを利用しVPN接続をTor経由にする方法
    • どのVPNプロバイダでも使用可能
    • VPNルータが必要で設定が少し複雑
    • OpenVPNのみ対応
  3. Tails や Whonix Gateway を経由してVPNを接続する
    • 自前ホスティングのVPNにしかできない
    • VPNプロバイダを使う場合こちらもSOCKS5プロキシ設定が必要

1,2の方法を案内する。

AirVPNを使用した設定方法

AirVPNでは2つの方法でVPN over Torを実現できる。

  • 専用ソフト「Eddie」をクライアントにインストールしVPN over Tor接続をする方法
  • VPNルータにAirVPNクライアントをインストールし、Torプロキシ設定を行う方法

設定方法はAirVPNの公式ページを確認。

VPNルータにTor SOCKSプロキシを設定する方法

  1. OpenwrtベースのVPNルータに改造可能な物理ルータ/ソフトウェアルータを用意する
    • おすすめはGL-inetの1万円以上の物理ルータ(GL-AXT1800やGL-MT3000など)
  2. VPN接続の設定を行い、キルスイッチ(Kill Switch)の有効化をする
    • GL-inet製ルータならWebUIの詳細設定で有効可能
  3. VPNクライアント設定でTorのSOCKS5プロキシを設定する
  4. 動作確認を行う
SOCKS5プロキシを設定方法
# 1.SSHでルータにログインする
ssh root@[ルータのIP]
# 2. Torパッケージのインストール
opkg update
opkg install tor
# 3. Tor設定ファイルの編集
vi /etc/tor/torrc
# 4.SOCSK5プロキシの有効化設定
# SOCKS5プロキシのポートは通常9050だが、必要に応じて変更可能
SOCKSPort 9050
# 5. 設定保存後Torを再起動
/etc/init.d/tor start
/etc/init.d/tor enable

VPNクライアント設定でTorのSOCKS5プロキシを指定する。 具体的には.ovpnに以下行を追加。

socks-proxy 127.0.0.1 9050
Iptablesによる透過プロキシ設定

Torを透過プロキシとして動作させ、LAN内の全端末の通信をTorにリダイレクトする場合は、iptablesでTCP/DNSトラフィックをTorのTransPort(例:9040)やDNSPort(例:5353)に転送する設定が必要となる。

GL.iNetルーターの環境では標準で透過プロキシ用のiptablesルールが整備されていないため、以下のような設定例を参考にカスタマイズを行う。※あくまで参考

# TransPortとDNSPortをtorrcで有効化
echo "TransPort 9040" >> /etc/tor/torrc
echo "DNSPort 5353" >> /etc/tor/torrc
/etc/init.d/tor restart

# iptables設定例(eth1はLANインターフェースの例)
iptables -t nat -A PREROUTING -i eth1 -p tcp --syn -j REDIRECT --to-ports 9040
iptables -t nat -A PREROUTING -i eth1 -p udp --dport 53 -j REDIRECT --to-ports 5353

GL.iNetルータの環境やOpenWrtのバージョンによっては追加パッケージ(redsocks2など)が必要になる場合がある。

8.1.3. Tor over VPNの構築

構築パターンの検討

この方法では以下ルートで対象サーバまで通信を行う。

[発信元IP]=>[ISP]=>[VPNサーバ]=>[Torネットワーク]=>[接続先サーバ]

実装方法は以下の通り。

  1. TorBrowserとクライアントPCによる構築
  2. VPNルータ+Tails等による構築

TorBrowserとクライアントPCによる構築

手順は以下の通り。

  1. PCにインストールしたVPNクライアントを起動しVPNを張る
  2. Tor BrowserでTorネットワークに接続する

なお、このままではTor Browserで見る情報のみTor over VPNとなるため注意。
システム全体をTor化したい場合は tor デーモン + iptables でルーティングするようにする。

VPNルータ+Tails等による構築

手順は以下の通り。

  1. VPNルータでVPNを張る
  2. Tails/Whonix gateway等を起動しアクセスする。

VPNルータのキルスイッチ設定も忘れずに。

8.1.4. Proxy over Torの構築

構築パターンの検討

この方法では以下ルートで対象サーバまで通信を行う。

[発信元IP]=>[ISP]=>[Torネットワーク]=>[Proxyサーバ]=>[接続先サーバ]

Proxyなので多くの場合、Webアクセスのみの対応となる。
構築方法は以下の通り。

  1. Tor Browserに設定する方法
  2. Tails/Whonixに設定する方法(非推奨)

1のみ紹介する。

Tor Browserに設定する方法

about.configを開き以下設定をする。

パラメータ
network.proxy.type1(手動設定)
network.proxy.socks127.0.0.1
network.proxy.socks_port9050
network.proxy.http公開プロキシIP
network.proxy.http_port公開プロキシポート
network.proxy.ssl公開プロキシIP
network.proxy.ssl_port公開プロキシポート

公開プロキシによってはTor Exitからの接続を拒否するものもあるため注意。

8.1.5. Proxy over VPNの構築

構築パターンの検討

この方法では以下ルートで対象サーバまで通信を行う。

[発信元IP]=>[ISP]=>[VPNサーバ]=>[Proxyサーバ]=>[接続先サーバ]

8.1.6. 多段Proxy/VPNの構築

構築パターンの検討

この方法では以下ルートで対象サーバまで通信を行う。
例では2段の串の例。

なお中継ノードが複数入るため、通信速度のパフォーマンスは結構落ちる

[発信元IP]=>[ISP]=>[VPNサーバ1/Proxyサーバ1]=>[VPNサーバ2/Proxyサーバ2]=>[接続先サーバ]

VPN over VPN over Tor

この構成では以下ルートで対象サーバまで通信を行うことを前提とする。

[発信元IP]=>[ISP]=>[Torネットワーク]=>[自前VPNサーバ]=>[VPNサーバ]=>[接続先サーバ]

VPNチェイン構成 (二重VPN) をTor越しに構成する設定となる。
また、自前VPNサーバが匿名契約/匿名管理されている場合は匿名性は非常に高い構成となる。

Proxy over VPN over Tor

この構成では以下ルートで対象サーバまで通信を行うことを前提とする。

[発信元IP]=>[ISP]=>[Torネットワーク]=>[VPNサーバ(自前/商用)]=>[Proxyサーバ]=>[接続先サーバ]

Torユーザだと気づかれにくい(出口がVPN/Proxyになるため)。 またProxyサーバが信頼できる必要がある。なお設定は複雑。

VPN over Tor over VPN

この構成では以下ルートで対象サーバまで通信を行うことを前提とする。

[発信元IP]=>[ISP]=>[VPNサーバ]=>[Torネットワーク]=>[VPNサーバ2]=>[接続先サーバ]

これはTorネットワークからVPNサーバ2に接続できることが前提となる。
そのためVPNサーバ2は自前ホスティングかAirVPNを使用することになる。

VPN over Tor over Proxy

この構成では以下ルートで対象サーバまで通信を行うことを前提とする。

[発信元IP]=>[ISP]=>[Proxyサーバ]=>[Torネットワーク]=>[VPNサーバ]=>[接続先サーバ]

ProxyはTorアクセス前提のためSOCKS5 Proxy必須となる。
またSOCKS5がログを残さなければ入口情報を秘匿可能となるが、他の一部と同様TorからのVPNサーバへのアクセスを許可させる必要がある。

多段VPN

複数のVPN事業者を連ねることで追跡を困難にする構成
いずれかがログを取っていても相互補完しにくい特徴がある。また、Torを使わず速度を確保しつつ匿名化可能。 ログ回避・多層化したい場合に推奨。

[発信元IP]=>[ISP]=>[自前VPNサーバ]=>[VPNサーバ1]=>[VPNサーバ2]=>[接続先サーバ]

VPN間の接続ができる設定が必要となる。

多段VPNに対応したVPNプロバイダは以下の通り。

  • MullvadVPN
    • Bridge Mode(VPN over VPN)あり
  • IVPN
    • Multi-hopを手動選択可能
  • ProtonVPN
    • Secure Core VPN(自社ノードで二段)を提供
  • NordVPN
    • Double VPNサーバあり(ルートは固定)
  • AirVPN
    • OpenVPN構成次第で可能(非公式)
  • Windscribe
    • Double-Hop可能(GUI上で設定)

注意点としてログ連携されると通信経路がバレる可能性あるため、VPN業者は慎重に選ぶこと。

多段Proxy

この構成では以下ルートで対象サーバまで通信を行うことを前提とする。

[発信元IP]=>[ISP]=>[Proxyサーバ]=>[Proxyサーバ2]=>[Proxyサーバ3]=>[接続先サーバ]

構築手順は以下の通り。

  • ProxyChainsを使用する(Linuxのみ)

詳しくはコチラの「Proxychains」から。

8.2. OS/ストレージの匿名化方法

8.2.1. OS使用匿名化の考え方

OS使用の匿名化の方針は以下の通り。

  • OSを使用した経歴が残らない/残りにくい
  • OSの使用した証拠を簡単に破棄/隠蔽できる

これらの観点より、以下手法を検討する。

  1. Tails+HiddenVMの構成
  2. WhonixGatway+仮想化基盤の構成
  3. 通常OS+Tor/VPNルータ
  4. Qubes OS+Whonix Template

4は高スペックな環境が求められるため1~3の方法を検討する。

項目Tails + HiddenVMWhonix Gateway + 仮想化基盤通常OS + Tor/VPNルータ
匿名性◎(最強クラス)〇(適切構成で強固)△(設定ミスで崩壊の恐れ)
可搬性△(ホスト機依存)〇(ルータを持ち歩けば可能)
痕跡の残りにくさ△(ホストに残る)✕(残りまくる)
セットアップの簡単さ△〜✕(重い構成)◎(比較的簡単)
拡張性(他OS)

8.2.2. Tails+HiddenVMの構成

この構成は匿名性と非永続性の両立を狙ったもの。仮想化された別OSをTails上で動かしつつ、ホスト側に痕跡を残さない。
なお、この方法はTails自体のOPSECの考え方から外れるため、それは考慮すること。

【メリット】

  • 超高匿名性:Tailsが全通信をTor化+痕跡を残さない
  • 物理分離:VMストレージが別USBで暗号化されているため情報漏洩リスクが低い
  • ポータブル:ノートPCとUSBがあれば持ち運べる

【デメリット】

  • USBポート/USBメモリ×2必須:環境によっては使いにくい
  • TailsにQEMU等の準備が必要:毎回の準備が面倒 (Tailsの永続化領域を使用で回避可能)
  • 操作ミスでOPSEC破綻の可能性あり(例:VM内でTorをバイパスするソフト使用)

8.2.3. WhonixGatway+仮想化基盤の構成

Whonix GatewayがTorゲートウェイになり、仮想ネットワーク経由で他OSを匿名化する構成。

【メリット】

  • 柔軟性:Kali、Windows、Debianなど好きなOSを匿名化可能
  • 安全性(構成による):正しく構築すればDNSリークやIPリークの心配が少ない

【デメリット】

  • 重い:Gateway + Workstationなど2VM以上を同時に動かす必要あり
  • ホストOSに痕跡が残る:Whonixの使用履歴、VMファイル、ログなど

なお、WhonixはTor over Torを避けるべき。

8.2.4. 通常OS+Tor/VPNルータ

全トラフィックをTor(またはVPN)ルータ経由にして、デバイス全体を匿名化する方法。

【メリット】

  • 手軽:OpenWRT/GL.iNetルータにTor設定すれば完成
  • 既存OSでも使える:Windows/macOSなどでも利用可能

【デメリット】

  • DNSリーク/Proxy Bypass:クライアント側の設定ミスで匿名性崩壊
  • デバイスに痕跡が残る(使用アプリ、ブラウザキャッシュなど)

ルータ側でTorゲートウェイを動作させることが肝心。またブラウザをTor Browserに限定しないと危険

8.2.5. ストレージ暗号化の考え方

ストレージの匿名化/暗号化の方針は以下の通り。

  • ストレージのデータを暗号化し復号/読み取りしにくくする
  • 簡単に記憶媒体を読み取ることができない

また暗号化の対象とその手法の検討は以下のようになる

  • フルディスク暗号化:OSやアプリケーション、データを含むディスク全体
    • Windowsの場合: Bitlocker
    • Linuxの場合: LUKS
    • MacOSの場合: FileVault
  • 部分的なデータの暗号化:機密文書、写真、PDF、設定ファイルなど
    • 個別データの保護(バックアップ含む)
      • 全般対応: VeraCrypt
      • Linuxの場合: gocryptfs, EncFS
    • ホーム/データ領域の暗号化
      • Linuxの場合: eCryptfs, LUKS

ここでは汎用性の高い、Linuxのフルディスク暗号化(LUKS)とVeraCryptによる個別ファイル暗号化の方法を解説する。

8.2.6. LUKSによるLinuxフルディスク暗号化

インストーラが対応している場合

  1. OSインストール中に「Use LVM with LUKS encryption」を選択
  2. パスフレーズを設定(ブート時に毎回入力が必要)
  3. 自動で LUKS + LVM 構成が組まれる
/dev/sda
 └─ LUKS (暗号化)
      └─ LVMボリューム
            ├─ / (root)
            ├─ /home
            └─ swap

インストール後に後から暗号化する場合

8.2.7. VeraCryptによる個別ファイル暗号化

Windowsでの使用方法

  1. VeraCryptをインストール(公式サイトから)
  2. 暗号化ボリュームを作成
    1. 「Create Volume」を選択
    2. 「Create an encrypted file container」
    3. 「Standard VeraCrypt volume」→ 保存先とファイル名指定
    4. 容量(例:1GB)を指定
    5. 暗号化方式(AESなど)を選択
    6. パスワード設定
    7. ファイルシステム(例:FAT/NTFS)を選択して作成
  3. ボリュームをマウントして使用
    1. 空いているドライブ文字(例:Z:)を選択
    2. 作成した暗号化ファイルを選択
    3. 「Mount」ボタン→ パスワード入力
    4. 仮想ドライブ(Z:)として使えるようになる
  4. 終了時は「Dismount」

Linuxでの使用法

# Debian系の場合
sudo apt install veracrypt

GUI起動してWindowsと同様に操作。

8.3. 各種サービスの匿名利用方法

8.4. 匿名化決済の方法

8.5. 匿名化ホスティングの方法

8.5.1. 匿名化ホスティングの考え方

匿名ホスティングは以下の展開したいケースが考えられる。

  • サーフェスウェブ上での展開(通常のWeb上)
    • 権力者や政府機関の違法/不正行為の暴露するリークサイトの運営
    • C&Cサーバ/スパムメール配信サーバ/フィッシングサイトの運営
    • グレー/ブラックなコンテンツを扱うサイトの運営
    • 匿名でのVPN/Proxyサーバの運営
  • ダークウェブ上での展開(Tor,I2Pなど)
    • .onionサービスの運営
    • .i2pサービスの運営

8.5.2. 匿名ドメインの入手

Njalla

OrangeWebsite

8.5.3. CloudFlareへの匿名登録

8.5.4. VPSの匿名契約

8.5.4. ダークウェブでサイトを運営する

.onionサービスの運営

Webサーバソフト+Torで構築する。

  1. Webサーバソフト(Apache/Nginx等)の用意
    • localhostでサービスを展開するようにする(外部公開しない)
  2. Torのインストール
    • Torの設定ファイル(通常 /etc/tor/torrc)を編集する
    • Torの再起動
  3. HiddenServiceDirで指定したディレクトリ内に hostname ファイルが生成される
    • このファイルに記載されている文字列が.onionドメインとなる
# /etc/tor/torrcの設定例
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80

バージョン3のHidden Serviceキー(HiddenServiceVersion 3)を使うのが現在の標準でより安全となる。 また、.onionはCDN等によるWAF設置ができないため以下のセキュリティ対策が必須となる。

  • ModSecurityなどのオープンソースWAFをWebサーバーやリバースプロキシに導入する
  • Fail2Ban等による不正アクセス対策
  • レートリミットやIP単位の制限、User-Agentフィルタなどを活用する
  • CAPTCHA認証の導入
  • DoS/DDoSやスパム対策の強化
  • 限定ユーザ・chroot化・AppArmor/SELinux活用などで制限
  • 定期再起動設定、ログの破棄
  • ファイルアップロード機能を付ける場合はサンドボックス環境を用意

なおサイトの運営にあたって、jsは不使用、cssはCDN経由せず、ローカルホスティングで軽量/自作等、動的コンテンツの実装はphpやperlでの実装が推奨される。DBはMariaDB、SQLite(頻繁な書き込みがないなら)が推奨。

.i2pサービスの運営