8.高度な匿名化方法
8.1. 匿名化通信の方法
8.1.1. 匿名化通信の基本
匿名化通信構築の考え方
TCP/IPの通信の匿名化を行うにあたって以下通信中継ノードを組み合わせて設定を行う。
- 匿名化ネットワーク
- Tor
- I2P
- VPN
- 外部VPNサービス
- ログポリシーあり
- ノーログポリシー
- 自前ホスティング
- 外部VPNサービス
- プロキシ
- 自前ホスティング
- 公開串
※I2Pは匿名P2Pによるファイル共有/チャット向きであるため、後述では匿名ネットワークはTorを使用した設定を紹介する。
匿名化パターンの検討
パターン | VPN over Tor | Tor over VPN | Tor over Proxy | Proxy over Tor | VPN over Proxy | Proxy over VPN |
---|---|---|---|---|---|---|
ISPに対する秘匿性 | あなたのTor使用が見える | VPN使用が見える | Proxyの使用が見える | あなたのTor使用が見える | Proxyの使用が見える | VPN使用が見える |
VPNに対する秘匿性 | あなたのIPは見えない | あなたのIPが見える | - | - | ProxyIPが見える | あなたのIPが見える |
Torネットに対する秘匿性 | 通常Tor | VPNIPが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 Tor | Tor over VPN | Tor over Proxy | Proxy over Tor | VPN over Proxy | Proxy over VPN |
---|---|---|---|---|---|---|
特徴 | 匿名性重視型 | 実用性重視型 | 検閲回避型 | Web偽装・IP偽装型 | 特殊/非推奨 | 地理制限回避型 |
匿名性ランキング | 1 | 2 | 非推奨 | 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]=>[接続先サーバ]
実装方法は以下の通り。
- VPN over Torに対応しているVPNサービスを使う方法
- 対応しているVPNプロバイダのAirVPNを使用
- VPNルータでTorのSOCKS5プロキシを利用しVPN接続をTor経由にする方法
- どのVPNプロバイダでも使用可能
- VPNルータが必要で設定が少し複雑
- OpenVPNのみ対応
- 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プロキシを設定する方法
- OpenwrtベースのVPNルータに改造可能な物理ルータ/ソフトウェアルータを用意する
- おすすめはGL-inetの1万円以上の物理ルータ(GL-AXT1800やGL-MT3000など)
- VPN接続の設定を行い、キルスイッチ(Kill Switch)の有効化をする
- GL-inet製ルータならWebUIの詳細設定で有効可能
- VPNクライアント設定でTorのSOCKS5プロキシを設定する
- 動作確認を行う
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ネットワーク]=>[接続先サーバ]
実装方法は以下の通り。
- TorBrowserとクライアントPCによる構築
- VPNルータ+Tails等による構築
TorBrowserとクライアントPCによる構築
手順は以下の通り。
- PCにインストールしたVPNクライアントを起動しVPNを張る
- Tor BrowserでTorネットワークに接続する
なお、このままではTor Browserで見る情報のみTor over VPNとなるため注意。
システム全体をTor化したい場合は tor デーモン + iptables でルーティングするようにする。
VPNルータ+Tails等による構築
手順は以下の通り。
- VPNルータでVPNを張る
- Tails/Whonix gateway等を起動しアクセスする。
VPNルータのキルスイッチ設定も忘れずに。
8.1.4. Proxy over Torの構築
構築パターンの検討
この方法では以下ルートで対象サーバまで通信を行う。
[発信元IP]=>[ISP]=>[Torネットワーク]=>[Proxyサーバ]=>[接続先サーバ]
Proxyなので多くの場合、Webアクセスのみの対応となる。
構築方法は以下の通り。
- Tor Browserに設定する方法
- Tails/Whonixに設定する方法(非推奨)
1のみ紹介する。
Tor Browserに設定する方法
about.config
を開き以下設定をする。
パラメータ | 値 |
---|---|
network.proxy.type | 1(手動設定) |
network.proxy.socks | 127.0.0.1 |
network.proxy.socks_port | 9050 |
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の使用した証拠を簡単に破棄/隠蔽できる
これらの観点より、以下手法を検討する。
- Tails+HiddenVMの構成
- WhonixGatway+仮想化基盤の構成
- 通常OS+Tor/VPNルータ
- Qubes OS+Whonix Template
4は高スペックな環境が求められるため1~3の方法を検討する。
項目 | Tails + HiddenVM | Whonix 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フルディスク暗号化
インストーラが対応している場合
- OSインストール中に「Use LVM with LUKS encryption」を選択
- パスフレーズを設定(ブート時に毎回入力が必要)
- 自動で LUKS + LVM 構成が組まれる
/dev/sda
└─ LUKS (暗号化)
└─ LVMボリューム
├─ / (root)
├─ /home
└─ swap
インストール後に後から暗号化する場合
8.2.7. VeraCryptによる個別ファイル暗号化
Windowsでの使用方法
- VeraCryptをインストール(公式サイトから)
- 暗号化ボリュームを作成
- 「Create Volume」を選択
- 「Create an encrypted file container」
- 「Standard VeraCrypt volume」→ 保存先とファイル名指定
- 容量(例:1GB)を指定
- 暗号化方式(AESなど)を選択
- パスワード設定
- ファイルシステム(例:FAT/NTFS)を選択して作成
- ボリュームをマウントして使用
- 空いているドライブ文字(例:Z:)を選択
- 作成した暗号化ファイルを選択
- 「Mount」ボタン→ パスワード入力
- 仮想ドライブ(Z:)として使えるようになる
- 終了時は「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で構築する。
- Webサーバソフト(Apache/Nginx等)の用意
- localhostでサービスを展開するようにする(外部公開しない)
- Torのインストール
- Torの設定ファイル(通常 /etc/tor/torrc)を編集する
- Torの再起動
- 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(頻繁な書き込みがないなら)が推奨。