パスワードを怪しいPCに打ち込むために、キーボードとして振る舞うハードウェア「ToothPaste」

BIOSやair-gapped環境、怪しい中古PCなど、パスワードマネージャーを入れられない相手にパスワードを送るための自作デバイス。ESP32-S3がUSB HIDキーボードとして振る舞い、Web BLE経由でAES-256暗号化したキー入力を無線送信する。V2ではMicrochipのATECC608Bを搭載し、ECDHで導出した鍵をチップ内に隔離。サーバーもクラウドも介さず完全ローカルで動く。
Bluetooth自体は安全なプロトコルではない。新しい実装では改善されているが、Web BLEが対応する認証方式は現状「just works」のみで、実質的に回線は開けっ放しだ。
HNでの議論
15- pluc
タイトルと名前がマジで説明的じゃないから:
ToothPasteは、WEB-BLE、暗号IC、ESP32-S3を使って、特別なドライバや面倒なセットアップなしに、AES-256で暗号化されたキーボードとマウスのコマンドをUSB対応のあらゆるデバイスにワイヤレスで送信できる。
- alhadrad
自分のプロジェクトの無恥な宣伝をさせてください。これはESP32ベースのプログラム可能なキーボード(HID)で、WebインターフェースとAPIを備えています。m5stack atomやm5stack cardputerに直接フラッシュできます。
際立った機能の一つは、Keepass KDBXデータベース標準の実装です。データベースはFRAMまたはSDカードに保存でき、Webインターフェース経由でロック解除できます。キーは揮発性メモリに保存されます。
マクロ、プログラム、関数を実行するためのDSLスクリプト言語があります。データベースのロックを解除すると、次の例のようなキーと値のDSL文字列で認証情報を送信できます:
{credstore myusername}
{TAB}
{credstore mypassword}
{ENTER}
- evan_a_a
BLEは、ペアリングプロセスを認証付きペアリングのLE Secure Connectionsを使用するように設定すれば安全です。これはまさにあなたが実装したもの(ECDH鍵合意)を行います。「Just Works」ペアリングだけが、帯域外確認を必要としないためMITMに対して脆弱な唯一の方法です。
要件: