通信経路は決して信頼しない
無線のセキュリティの実績は芳しくありません。どれなら十分に安全かを議論する代わりに、AirNox はどれも安全ではないと想定し、セキュリティを一つ上の層で組み立てます。

目次
通信手段は認証情報ではない
Bluetooth のペアリングが証明するのは、2台のデバイスがペアリングの手順を踏んだということです。NFC の近さが証明するのは、何かがリーダーから数センチ以内にあったということです。QR コードが証明するのは、カメラが模様を見たということです。どれも、相手が誰なのかは証明しません。そして、これらの通信手段はどれも公に攻撃されてきました。盗聴、鍵強度のダウングレード、ごく普通のスマホ2台でタップを街の反対側までリレーする攻撃。
そこで私たちは、3つすべてを敵対的なものとして扱います。盗聴も、注入も、リレーも、誰にでもできる。通信手段が主張することは、何の証明にもなりません。

ペアリングは1回だけ
信頼を確立するのは1回だけ、デスクトップとスマホをペアリングするときです。デスクトップが QR コードを表示し、スマホがそれを読み取ります。続いて両方の画面に短いコードが表示されるので、それを見比べます。一致すれば、2台のデバイスは、どの通信手段も目にしたことのない鍵について合意しており、それ以降は互いの身元を把握しています。一致しなければ、間に何かが入り込んでいたということなので、そこで中止します。
この比較は、人間が通信路を確かめる唯一の瞬間であり、重要なのはまさにその瞬間です。それ以降のすべては、あなたが自分の目で確立した信頼を引き継ぎます。

セッション
ペアリングが済むと、デスクトップとスマホの間のすべてのメッセージは、ウォレット自身が管理するセッションの中を通ります。エンドツーエンド(end-to-end)で暗号化されているので、盗聴されている通信手段から漏れるのはノイズだけです。相互認証(mutually authenticated)されているので、どちらの側も、メッセージがペアリングした相手から来たもので、それになりすました何かからではないとわかります。動いている通信手段に結び付けられているので、ある経路で捕捉したメッセージを、別の経路でリプレイすることはできません。
セッションは、十分に研究された最新のハンドシェイク設計に基づいています。広く使われている安全なトンネルが採用しているのと同じ種類のものです。私たちは暗号を即興で作りません。
破棄されるもの
途中で改ざんされたメッセージは、認証に失敗して破棄されます。リプレイされたメッセージは、順序が合わずに破棄されます。順序が狂って届いたメッセージも破棄されます。ペアリングした相手ではないデバイスからのメッセージは、ハンドシェイクを通過できません。どの場合も、スマホには署名するものが何も表示されません。有効なものが何も届いていないからです。
だから、Bluetooth LE と NFC の利便性は、セキュリティを何も犠牲にしません。通信手段はいくら弱くてもかまいません。下にある無線が安全かどうかは、私たちが答える必要のない問いです。
どの通信手段でも、同じセッション
セッションは、自分が光、電波、タップのどれに乗っているのかを知りません。QR でペアリングし、日々の作業には Bluetooth LE を、業務用端末では NFC を使う。どれも再ペアリングなしでできます。通信手段を切り替えても、信頼されるものは変わりません。通信手段は、そもそも最初から信頼されていないからです。
それでもエアギャップ(air gap)と言えるのか
純粋主義者は、エアギャップとは光だけのことだと言います。この言葉について議論するつもりはありません。厳格なバージョンがよければ、QR コードだけを使ってください。いつでも利用できます。私たちが大切にしている性質は、言葉の下にあるものです。鍵を持つデバイスにはインターネットへの経路がなく、行き来するのは、スマホが自分でデコードするリクエストと、スマホが自ら生成を選んだ署名だけ。Bluetooth LE 上のセッションも、この性質を保ちます。加わるのは、あなたがそれを使い続けられるということです。
シリーズ記事一覧
- パソコンは侵害されていると想定する
- Mass Adoption Security:署名するのは、すでに持っているスマホ
- ギャップを越える3つの方法:QR コード、Bluetooth LE、NFC
- 電波上で姿を見せない:スキャンしても見つからない署名端末
- 通信経路は決して信頼しない
- スマホが見せるもの:署名端末上でのトランザクション解析
- スマホは自分の記録を残す
- デスクトップの金庫:Argon2id と、推測に強いプロファイル
- ブラウザウォレットなしで dApp を使う
- ルールのある MCP サーバー:上限の範囲で動く AI エージェント
- すべてを、1つの守られたウォレットで
- 小さく、ネイティブに:C++、JavaScript ランタイムなし、ワークステーションから Raspberry Pi まで