電波上で姿を見せない:スキャンしても見つからない署名端末
「ここにウォレットがあります」と知らせる無線は、オフライン署名端末(signer)の意味を半分台無しにしてしまいます。だから AirNox Vault を動かすスマホは、自分の存在を知らせません。

目次
無線の問題
Bluetooth があると、机の上での操作が便利になります。同時に、スマホが「しゃべるもの」になります。「Wallet」のような名前を固定アドレスでアドバタイズ(周囲への存在通知)するデバイスは、見つけられ、識別され、日をまたいで追跡され、攻撃する価値のある標的として目を付けられうるデバイスです。Bluetooth デバイスのスキャンに必要なのは、スマホ1台と無料のアプリだけ。デスクトップ上のマルウェア(malware)にも同じことができます。
私たちが求めたのは、ビーコンにならずに得られる利便性です。設計は3つの部分からなります。そもそもスマホがいつ電波を出すのか、出すときに何を伝えるのか、そしてその内容を誰が理解できるのか。
アプリを開いていなければ、電波は出ない
スマホがアドバタイズするのは、AirNox Vault が開いていて、ロック解除されていて、前面に表示されている間だけです。スマホをロックすれば沈黙します。別のアプリに切り替えれば沈黙します。伏せて引き出しにしまえば、何も送信されません。チャネルを温めておくバックグラウンドサービスもありません。

アドバタイズしている間も、送信出力は低く抑えられています。届く範囲は机の上です。これは誰に聞こえるかについての意図的な選択であって、暗号化の代わりではありません。
話すときに何を伝えるか
3つの点が、このアドバタイズを見知らぬ相手にとって無意味なものにします。
デバイス名を含みません。電波上のどこにも、AirNox ともウォレットとも、何も書かれていません。
システムがそのたびに作り直すランダムな Bluetooth アドレスを使います。メモしておいて、明日また探せるような固定アドレスはありません。
そして、アナウンスするサービス識別子は、固定ではなく計算で求められます。スマホがデスクトップと共有しているペアリング(pairing)と、現在の時間枠から導出されるので、数分ごとに変わり、そのペアリングを持つデスクトップだけが現在の値を割り出せます。ほかの誰にとっても、それはランダムに見える数値で、しばらくすれば別のランダムに見える数値に変わります。

スキャナーに見えるもの
隣の部屋のスキャナーに見えるのは、ランダムに見える識別子を持つ、名前のないランダムなアドレスです。数分後には、別の識別子を持つ別のアドレスが見えます。両者を結び付けるものは何もありません。そのデバイスを、Bluetooth を使うほかの名前のない機器ではなく、ウォレットだと示すものも何もありません。次回のために覚えておけるものが、何もないのです。
デスクトップ上のマルウェアに見えるもの
感染していると想定しているデスクトップにも、それ以上のことは見えません。そこにいるマルウェアには、検索する名前も、覚えておく固定アドレスもなく、あなたがアプリを前面に出すまで、見つけるものがありません。ウォレットソフトウェアがスマホを認識できるのは、ペアリングのときにその場にいたからです。そのソフトウェアの設定を盗んだマルウェアでも、あなたが手の届く範囲でアプリを開くのを待たなければならず、その先にはセッションが立ちはだかります。セッションについては次の記事で取り上げます。
見つけたところで何も得られない理由
仮に攻撃者が、あなたが使っている最中のスマホを見つけたとします。見つけただけでは何も得られません。どのリクエストも、署名されるバイト列からデコードされてスマホの画面に表示され、あなたはそれを読んで Accept(承諾)を押すか、押さないかを決めます。無線が運ぶのは、ペアリング時に認証されたセッションの中の、暗号化された通信です。聞こえる距離にいることと、そこに加われることは別の話です。
姿を見せないことは、最初の層です。その役目は、ほとんどの時間は攻撃すべきものが何もない状態にし、あるときも、特に何でもないものに見えるようにすることです。
シリーズ記事一覧
- パソコンは侵害されていると想定する
- Mass Adoption Security:署名するのは、すでに持っているスマホ
- ギャップを越える3つの方法:QR コード、Bluetooth LE、NFC
- 電波上で姿を見せない:スキャンしても見つからない署名端末
- 通信経路は決して信頼しない
- スマホが見せるもの:署名端末上でのトランザクション解析
- スマホは自分の記録を残す
- デスクトップの金庫:Argon2id と、推測に強いプロファイル
- ブラウザウォレットなしで dApp を使う
- ルールのある MCP サーバー:上限の範囲で動く AI エージェント
- すべてを、1つの守られたウォレットで
- 小さく、ネイティブに:C++、JavaScript ランタイムなし、ワークステーションから Raspberry Pi まで