00概要
裏側へのチャネル
NII Iznanka は、あなたのデバイスから私たちのサーバー(スフィア)までの暗号化チャネルを作ります。そこから先、インターネットへはスフィアから出ていきます。
- プロバイダーや他人の Wi-Fi に見えるのはスフィアへの暗号化された通信だけで、サイトのアドレスや DNS リクエストは見えません
- サイトに見えるのはスフィアのアドレスで、あなたのものではありません
- チャネルのプロトコルは AWG2(AmneziaWG 2.0) がベース:WireGuard の暗号に DPI 対策の偽装を加えたもの
- アクセスには NFVPN キーを使います。1 つですべてのデバイスに対応
01プロトコル
ベースは AWG2
私たちのプロトコルは AmneziaWG 2.0(AWG2) をベースにしています。WireGuard のオープンソースのフォークで、暗号と速度はそのままに、ディープパケットインスペクション(DPI)が WireGuard を見分ける特徴を隠します。
暗号:WireGuard と同じ
| 項目 | 方式 |
|---|---|
| 鍵交換 | Curve25519、Noise IK パターン |
| チャネルの暗号化 | ChaCha20-Poly1305 |
| ハッシュ | BLAKE2s |
| トランスポート | UDP、スフィアごとに 1 ポート |
偽装:AWG2 が加えるもの
普通の WireGuard は歩き方でばれます。ハンドシェイクは常に同じ長さで、制御パケットは同じバイト列から始まります。こうしたチャネルは復号されなくても遮断されます。AWG2 はこれらの特徴を崩します:
| 手法 | パラメーター | 効果 |
|---|---|---|
| ハンドシェイク前のダミー | Jc, Jmin, Jmax | プロトコルに存在しないランダム長のパケットを送る |
| サイズへのランダムな追加 | S1 … S4 | 制御パケットの長さが一定でなくなる |
| 独自のヘッダー | H1 … H4 | メッセージ種別が WireGuard と一致しない(AWG2 では範囲で指定) |
| シグネチャパケット | I1 … I5 | セッションの始まりが他のプロトコルの通信に見える |
▸ 個別の難読化
スフィアごとにこれらのパラメーターのセットが異なります。サーバーと同時に生成され、他では二度と使われません。あるスフィアから取った指紋は、隣では役に立ちません。
偽装はトランスポート自体に組み込まれているため、速度と遅延はほとんど変わりません。
02パケットの経路
ボタンからサイトまで
- 接続。アプリが選んだスフィアまで AWG2 チャネルを確立します。偽装付きのハンドシェイクの後、暗号化パケットをやり取りします。
- チャネルの中。デバイスのすべての通信(スプリットトンネル有効時は選んだアプリの通信)がチャネルに入ります。DNS リクエストも中を通り、スフィアで解決されます。
- 出口。スフィアがパケットを復号し、自身のアドレスからインターネットへ送ります。応答も同じ経路で戻ります。
- 撤収。切断すればチャネルは閉じます。Windows クライアントの Kill Switch は、チャネル確立中に通信が外へ漏れるのを防ぎます。
03誰に何が見えるか
正直な表
| 誰 | 見えるもの | 見えないもの |
|---|---|---|
| プロバイダー、他人の Wi-Fi | スフィアのアドレスに接続していること、時間と通信量 | サイト、DNS リクエスト、通信内容 |
| スフィア | チャネルが開いている間の接続元アドレス、パケットの送り先(どの VPN でも同じ仕組み) | 何も記録しない:サイトのアドレスも DNS リクエストも内容も |
| サイト | スフィアのアドレスと、あなたが自ら伝える情報(アカウントへのログイン、Cookie) | あなたの本当の IP |
| 私たち | キー、デバイス一覧、通信量カウンター、メールまたは Telegram ID | どこへアクセスし、そこで何をしているか |
データについての詳細:利用ポリシー。
04キーとデバイス
パス NFVPN
- キーはサイトのマイページ(メール確認後)か Telegram ボットで発行されます。1 つですべてのデバイスに使えます
- アプリはキーを URL ではなく HTTPS のリクエスト本文で送るため、他人のログに残りません
- 初回接続時にデバイスが登録され、スフィアでそのデバイス専用の WireGuard 鍵ペアが生成されます
- 鍵は暗号化(AES-256-GCM)して保管し、アクセスキー自体はさらにハッシュでも保持します
- マイページかボットの「デバイスをリセット」で、すべてのスフィアの鍵ペアが一度に無効になります。キーはそのままです
05スフィア
私たちのサーバー
- すべてのスフィアは私たちのもの。NII Iznanka チームが借り、設定し、ファイアウォールで守っています。他社のプールを転売することはありません
- スフィアのエージェントが知っているのはデバイスの公開鍵とバイトカウンターだけ。DNS リクエストの収集機能は無効化・削除済みです
- 速度は公平に分配されます。1 台が独占しないよう、デバイスごとに上限があります
- スフィア同士は互いを知りません。1 つが落ちても他は動き続け、アプリが別のスフィアを提案します
- スフィアのコード(1-1 AENSLAND、1-2 MANDALA …)はサイト、ボット、アプリで共通です
06アプリ
装備
| プラットフォーム | チャネルの維持方法 |
|---|---|
| Windows | サービスと Wintun ドライバー、Kill Switch、アプリ単位の除外 |
| Linux | AppImage ひとつ、チャネルは pkexec で起動 |
| Android | システム VPN、アプリ単位のスプリットトンネル、起動時に自動接続 |
| Steam Deck | ゲームモードで動く Decky プラグイン |
| iPhone, iPad, Mac | マイページから取得する AWG 設定ファイル(対応クライアント用) |
07限界
VPN にできないこと
- 自分のアカウントでログインしたサイトに対して匿名にはなりません
- ブラウザのトラッカーや Cookie は防げません
- デバイス自体のウイルスは駆除できません
- 自分から話した情報は隠せません
08セキュリティ
脆弱性を見つけた?
security@iznanka.tech までご連絡ください。確認のうえお礼をいたします。同じチームが企業向けの監査とペンテストも行っています。詳しくはホームへ。