ShadowCat: ブラウザベースのQRファイル転送でエアギャップを橋渡し
デバイス間で共有ネットワークや機能するBluetoothスタック、物理ケーブルがない状態でデータを移動させる課題は、コンピューティングにおける古典的な問題です。現代のクラウド転送がシームレスであることを当たり前に考えてしまいがちですが、ハードウェアの故障や高セキュリティのエアギャップ環境など、従来の通信プロトコルが機能しないシナリオがあります。
そこで登場するのが ShadowCat。QRコードの連続を利用してファイル転送を実現する、ミニマリスティックなブラウザベースツールです。画面とカメラという視覚的媒体を活用し、ブラウザをデータ送受信機に変えることで、データの視覚的ブリッジを作り出します。
ShadowCat の仕組み
ShadowCat はシングルページアプリケーションで、ファイルを QR コードのストリームに変換します。プロセスはシンプルながら効果的です。
- チャンク化: 送信デバイスがファイルを読み込み、より小さく管理しやすいチャンクに分割します。
- 送信: これらのチャンクが QR コードの連続にエンコードされ、画面上で高速に点滅します。
- 受信: 受信デバイスはカメラでコードのシーケンスをスキャンします。
- 再構築: 受信側はチャンクを収集し、重複を除去し、CRC(循環冗長検査)で再構築されたファイルの完全性を確認します。
このアプローチにより、ネットワークハンドシェイクを必要としない「一方向」データ転送が可能となり、通信ハードウェアが損傷したデバイスに特に有用です。作者の @unprovable が指摘したように、プロジェクトは「コーヒーマグで泳ぎレッスン」をした古い電話の通信が壊れた後にデータを復旧する必要から生まれました。
技術的考慮事項と制限
概念はエレガントですが、視覚コードでのファイル転送には特有の技術的ハードルがあります。ユーザーからは大きなテキストブロックを送ろうとした際に「コード長オーバーフロー」が発生したとの報告があり、単一セッションで扱えるデータ量に上限があることが示唆されています。
帯域幅のボトルネック
主な制約の一つは送信速度です。Wi‑Fi や Bluetooth と比べて QR ストリームは遅いです。しかし、サイズの小さいファイルや重要なテキストに関してはトレードオフが許容範囲です。一部のコミュニティメンバーは、同じデータ量に必要なフレーム数を減らすために Base64 エンコードではなくバイナリデータ挿入へ移行することを提案しています。
消失符号による信頼性向上
Hacker News の議論で繰り返し出てきたテーマは Fountain Codes(例: RaptorQ や Luby Transform コード)です。標準的な順次チャンク化では、1 フレームの欠落がファイル全体を破損させますが、消失符号を使うと受信側は 任意 の十分な数のパケットを受け取るだけで元のファイルを再構築できます(どのパケットが欠けたかは問わない)。
@kig が開発中の類似プロジェクト qr-send.com でも指摘されているように、Wirehair FEC(前方誤り訂正)を統合すれば、スキャン中にいくつかの QR コードが飛ばされても「魔法のように」元ファイルを組み立てられるようになります。
ユースケース:データ抽出からエアギャップセキュリティまで
視覚的データ転送手法の汎用性は、単なるハードウェア復旧を超える興味深い可能性を開きます。
エアギャップ通信
攻撃面を極力減らしたい人にとって、この手法は宝の山です。ユーザーの @MattCruikshank は、暗号化されたバイト列をエアギャップデバイスから QR コードとしてフラッシュし、スマートフォンがそれを受け取って別のエアギャップデバイスへ運ぶというシステムを構想しています。ワンタイムパッドや公開鍵暗号と組み合わせることで、物理的に隔離された高度に安全な通信チャネルが実現します。
データ抽出
サイバーセキュリティの観点からは、強力な抽出ツールです。@thedougd が指摘したように、こうしたソフトウェアを人気の CDN や GitHub Pages でホストすれば、動機のある攻撃者にとって「ブロックが非常に困難」な手段となります。
ハードウェアの長寿命化
セキュリティ以外にも、このアプローチには哲学的価値があります。クラウドサービスや特定の専有ドライバへの依存を排除することで、ShadowCat のようなツールはハードウェアの長寿命化を促進します。ネットワークチップが故障したために廃棄されがちな古いデバイスに新たな命を吹き込むことが可能です。
結論
ShadowCat は、時に最も効果的な解決策は最もミニマルなものだということを示しています。視覚的データ伝送の基本に立ち返ることで、コーヒーで浸水した電話からデータを復旧する場合でも、エアギャップ金庫内の機密メッセージを保護する場合でも、接続性のフリンジで活動する人々にとって重要なユーティリティを提供します。