私がマルチシグ推しであることは恐らく皆さんもご存知のことでしょう。マルチシグウォレットを使い、送金の手順に移動やコミュニケーションを必要とすることは、特に5ドルレンチ攻撃(家に来た強盗にハードウェアウォレットのPINを吐くまで鈍器で殴られる)などの強盗対策に有効です。(鍵を集める際に時間もかかるし通報の機会が生まれ、失敗リスクが高い)
今日はマルチシグを活用したもっとも堅牢なコールドストレージのプロトコルの1つであるGlacier Protocolについて紹介します。
実際に実行される際は、この抄訳ではなく、より詳細で正確な原文を使用してください:
GLACIER PROTOCOLとは
多額のビットコインを自身で管理したい方向けのプロトコルで、技術的な知識はそれほど必要ありませんが、Glacier(氷河)という名のとおり、Glacier Protocolに則って資金の安全を確保するには時間と労力が必要です。
セキュリティの観点
ビットコインの保管時に考えたいリスクは大きく分けると下記です:
・鍵の紛失リスク(アクセスできなくなる)
→記憶媒体の紛失によるもの(人的ミス)
→記憶媒体の故障・消滅によるもの(不可抗力)
・鍵の盗難リスク(第三者に鍵を窃盗・強盗される)
→マルウェアによるもの(サイバー攻撃)
→物理的な盗難(窃盗・強盗)
→鍵の情報漏洩によるもの(人的ミス)
Glacier Protocolはペーパーウォレットを利用した2-of-4 multisigを設定し、秘密鍵を自宅と3箇所の貸金庫などに分散することで鍵の紛失リスクと物理的な盗難に対策し、秘密鍵の生成や署名には一度もインターネットに接続されていないコールドストレージ専用パソコンを利用することでサイバー攻撃の可能性を低減し、詳細なマニュアルで意図せぬ漏洩を防ぎます。
コスト
Glacier Protocolに記述されている方法に必要なものは、
・メーカーの違う新品ノートパソコン2台
・メーカーの違う新品のUSBメモリを2本ずつ
・インターネットアクセスと管理者権限のあるパソコン2台
(うち1台は他人の所有物か新品、もしくは長期間使用しているもの)
・プリンター
・カメラ付きのスマートフォン
・新品のUSBメモリをさらに2本
・精密機器用ドライバー (ノートパソコンのWifi機能を除去します)
・絶縁テープ
・カジノダイス (各面が出る確率が限りなく1/6に近いサイコロです)
・ファラデーバッグ (ワイヤーメッシュ入りの、電波を通さない袋)
・扇風機 (盗聴対策のホワイトノイズ発生機として)
・家庭用金庫
・耐久性の強いコピー用紙 (防水性、耐候性、耐熱性、破れにくさ)
・ボール紙の封筒 (中身が透けることがないように)
・封印シール (開封されたかわかるやつ)
と、かなり多岐に渡ります。安く揃えても6-8万円と見積もります。
メーカーが違うデバイスを使用する理由は、メーカー特有の脆弱性がもしも悪用された際に、同じ処理で違う結果が出力されたことに気づくためです。
もはや儀式のようなレベルですが、取引所などのコールドストレージへのアクセス手順も似たように儀式的なものです。
手順
イメージを掴みやすいので、手順を抄訳しました。
① 手順書をダウンロードし、検証し、印刷 (SHA256チェックサムを検証)
② インターネットアクセスと管理者権限のある2台のパソコンでそれぞれウィルススキャンをする(なければセキュリティソフトをインストールする)。
③ 新品のハードウェアを「新品パソコン1台と、メーカーが同一のUSBメモリ2本」×2組に分ける。絶対に混ぜない。(付箋を貼って区別推奨)
④ イーサネットポートがあれば封印シールを貼り、パソコンを分解してWifi基盤・Bluetooth基盤を取り外す (多くの場合同一のカード)
⑤ ②のパソコン両方でUbuntuをダウンロードし、検証する。③で分けたのとは別の新品USB2本にそれぞれのパソコンからUbuntuの起動イメージを書き込む。
⑥ ②のパソコン両方を、⑤で作った起動イメージの入ったUSBで起動する。起動したUbuntuから再びUbuntuをダウンロード・検証し、③で分けたUSBのうち1本ずつにそれぞれのパソコンからUbuntuの起動イメージを書き込む。(新品でないパソコンに③のセットからUSBを挿すのはこの1回のみで、以後は取り外し、セットとなるPC以外からは永遠に隔離する)
⑦ 次に、②のパソコン両方に、③のセットからまだ使用していないUSBをそれぞれ挿し、GlacierやBitcoin Core、qrencode、zbar-toolsなどをインストールし検証。(新品でないパソコンに③のセットからUSBを挿すのはこの1回のみで、以後は取り外し、セットとなるPC以外からは永遠に隔離する)
ここまでのポイント:
デバイス自体やハードウェアのメーカーを分けて、同じプロセスを並行して2回行うことで不正の検知を行っています。また、隔離PCの起動ドライブの作成をクリーンなOSから実行することでマルウェアの存在確率を下げるほか、手順もケースが1つしかないので指示しやすくなります。