あなたのSeed Phraseは紙に書かれている。金庫の中かもしれない。床下かもしれない。Redditで「本気の」crypto勢はそうしていると読んで3カ所に分けて保管しているかもしれない。それでも紙は紙です。紙は燃えます。紙は水を吸います。紙はなくします。
もしバックアップが朽ちず、劣化せず、見つけた人にとっては何の意味も持たないものだったら、どうでしょうか?
それを実現するのがNFC Safeです。任意のテキスト - Seed Phrase、パスワード、リカバリーコードなど秘密にしたいもの - を256-bit AESでNFCタグに暗号化して書き込みます。タグは完全に自己完結しています。クラウドなし。サーバーなし。アカウントなし。シークレットを読み出すには、物理的なタグとパスフレーズの両方が必要です。どちらか片方では、タグはただの小さなプラスチック片で、中身は意味不明な文字列に見えるだけです。
暗号化フォーマットは完全にドキュメント化され、オープンです。Pythonのリファレンスデコーダーも公開されています。あなたのシークレットがアプリの存続に依存することはありません - NFC.coolがいつか消えても、標準のNFCリーダーと仕様書があればデータを復元できます。
シークレット保存の難しさ
どの方法にも弱点があります:紙は燃え、USBコネクターは腐食し、クラウドは侵害され、ハードウェアウォレットはcryptoのSeed専用、そして脳は忘れます。
理想的なバックアップは、物理的に頑丈で、暗号化されていて、自己完結し、冗長化でき、長持ちするもの。NFCタグはすべて満たします。バッテリーなし、可動部なし、NTAG216チップは10年以上のデータ保持が仕様。エポキシ加工タイプは水、衝撃、何十年もの放置に耐えます。
NFC Safeの使い方
NFC SafeはNFC.cool Tools内のNFC Appsにあります。上部のセグメントコントロールで暗号化と復号を切り替えます。
暗号化する:
Tools → NFC Apps → NFC Safe を開く
Encrypt を選択
シークレットを入力またはペースト
強いパスフレーズを設定
Encryptをタップ、NFCタグをiPhoneに近づける
復号する:
同じ画面で Decrypt に切り替え
パスフレーズを入力
暗号化済みのタグをタップ - シークレットが表示される
内部仕様:AES-256-GCM、PBKDF2(HMAC-SHA-256、100,000イテレーション、16バイトのランダムソルト)。タグ上にはカスタムNDEFレコード(urn:nfc:ext:crypto)として保存されます。フォーマット仕様はGitHubに公開。
冗長化のすすめ
NTAG216タグはコーヒー1杯ほどの値段です。何枚かまとめて買い、同じシークレットをそれぞれに暗号化し、別々の場所に置きます:机の引き出し、オフィス、家族の家、貸金庫、どこか隠した場所。タグ1枚だけではパスフレーズなしには意味がありません。設計上の2要素:物理的なタグ + パスフレーズ、それぞれ別の場所に。
USBやSDカードではなくNFCを選ぶ理由
コネクターなし - 腐食や曲がりの心配がない
バッテリーなし - パッシブ、リーダーから給電
ファイルシステムなし - 破損するものがない
ドライバーなし - どのスマホもNFCをネイティブで読める
小さくて安い - コインサイズ、まとめ買いで1ドル以下
頑丈 - エポキシタイプは水、衝撃、UVに強い
唯一の制約は容量:暗号化オーバーヘッド後で約500〜700バイト。24語のSeed Phrase、マスターパスワード、リカバリーコードには十分です。
セキュリティに関するメモ
パスフレーズがすべて。 256-bit AESは破れません。弱いパスフレーズは破れます。ランダム生成で20文字以上を使ってください。
NFCの読み取り距離は短い (約4 cm)。離れた場所からスキャンされる心配はありません。
リモートワイプはない。 タグを失くした?物理的に破壊してください(ハサミで十分)。
パスフレーズのリカバリーもない。 忘れたらデータは戻りません - 設計上そうなっています。タグとは別の場所に書き留めておくこと。
全体像
NFCタグは大切なものを保存するメディアになりつつあります。EU Digital Product Passportは商品の真正性証明にNFCを要求します。Philipsは歯ブラシヘッドに組み込んでいます。ホテルはルームキーに使っています。安く、頑丈で、ポケットの中のデバイスで普遍的に読める。
NFC Safeは、その頑丈さに暗号化を加えます。紙より長持ちし、見つけた人には読めず、コーヒー1杯より安いバックアップ。
NFC.cool Tools for iPhoneで配信中。Android版は近日対応予定。