本文へ移動
LIFEMAKERS.COM — 自立型ライフの実践知カタログ
解説・分析テクノロジーと道具FUTURE LIFE BRIEF

📡 Signal|Coldcard を更新しても、あの日に作った鍵は直らない——「パッチを当てた」と「安全になった」は別の話だ

Coldcard の一部 firmware で作られた seed が、設計より弱い乱数から生まれていた。修正版が出ても、すでにある鍵は直らない。問われているのは端末ではなく、鍵を作った日と作り方だ。

📡 Signal|Coldcard を更新しても、あの日に作った鍵は直らない——「パッチを当てた」と「安全になった」は別の話だのイメージ

この記事でわかること

  • Coinkite の告知によれば対象は Mk2/Mk3 の 4.0.1〜4.1.9、Mk4/Mk5 は標準版 5.6.0 より前、Q は 1.5.0Q より前。50回以上の独立したダイスロールで作った seed、または強固で固有の BIP-39 パスフレーズで守られた資金は対象外とされる
  • firmware の修正が直すのはこれから作る seed の乱数源で、脆弱な版で作られた鍵は更新後もそのまま。Coinkite の手順も新しい seed への移行と少額での確認までを含む
  • 7月30日の初回は25分ほどで約500ウォレットから約594 BTC。集計は暫定で出典ごとに数字が異なり、8月17日時点でも攻撃は継続中と伝えられている

8月1日に更新された Coinkite の告知は、自社のハードウェアウォレット Coldcard で作られた一部の seed が、設計より弱い乱数から生まれていたことを認めるものだった。原因は2021年3月に出た firmware に入り込んだ設定の誤りで、5年以上のあいだ表に出なかった。7月30日、その鍵を狙った引き出しが始まっている。

自分で鍵を持つことは、他人に預けない生き方の中心にある。だがその自立は、手元の機械が正しく乱数を作っているという、使う側からは確かめようのない前提の上に乗っていた。今回はその前提が外れたときに何が起きるかの実例になった。

見ておきたいのは一点だけだ。firmware を更新すれば、この件は自分の手元で終わるのか。

まず、対象を絞る

Coinkite の告知は範囲を明示している。対象は Mk2 と Mk3 の 4.0.1 から 4.1.9、Mk4 と Mk5 は標準版 5.6.0(Edge 版 6.6.0X)より前、Q は 1.5.0Q(Edge 版 6.6.0QX)より前。TAPSIGNER、OPENDIME、SATSCARD は対象外だ。

問われているのは端末ではなく鍵のほうだ、という点も告知に書いてある。危険なのは「対象の firmware が載っていた時期に、その端末で作られた seed」であって、いま手元にある機械そのものではない。

そして例外がある。Coinkite は、50回以上の独立した自分だけのダイスロールを入れて作った seed、あるいは強固で固有の BIP-39 パスフレーズで守られている資金は、この脆弱性の対象から外れると書いている。

弱さの程度も書かれている。Mk4・Q・Mk5 で生成された seed は、設計上の128ビットに対しておよそ72ビットだった。TRM Labs の分析は、より古い機種ではさらに落ちうるとしている。

型番ではなく、鍵を作った日と作り方が問われている。

「直した」と「安全になった」が別である理由

firmware の修正が直すのは、これから作る seed の乱数源だ。すでに存在する seed は、それが作られた瞬間の乱数から決まっている。更新は過去にさかのぼらない。

だから「もう更新したから大丈夫」は、この件では成り立たない。弱い乱数から生まれた鍵は、更新したあとも同じ鍵のままそこにある。

攻撃する側が端末に触れる必要がないことも、この構図を厳しくしている。取りうる鍵の範囲が狭いなら、あとは手元の計算機で候補を潰しながら、残高のあるアドレスを探せばいい。金庫にしまってあったことも、一度もネットに繋がなかったことも、防御にならない。

Coinkite が示した手順も、更新だけで閉じていない。更新する、新しい seed を作る、バックアップを記録して検証する、少額を送って確かめる、そのうえで残りを移す——ここまでが一続きになっている。

そして8月17日、Coin Bureau は Galaxy の調査責任者 Alex Thorn の言葉として、攻撃はまだ続いていると伝えた。最初の引き出しから2週間以上が経っている。

更新は入口であって、出口ではない。

数字のほうは、まだ固まっていない

TRM Labs によれば、7月30日の最初の一斉引き出しは25分ほどで進み、約500のウォレットから約594 BTC——当時の価値でおよそ3,800万ドル——が1つのアドレスへ集められた。同社が掲載した時点の Galaxy Research の集計は、5,200を超えるアドレスから約1,816 BTC、およそ1億1,600万ドル。ただし TRM 自身が暫定値だと断っている。

TechCrunch は8月4日の時点でおよそ1億3,000万ドルと書き、少なくとも十数人の攻撃者が動いていて、複数の集団が関わっているように見えるという Galaxy Research の見立てを伝えている。

数字が記事ごとに違うのは、どのアドレスをこの脆弱性によるものと数えるかが、まだ確定していないからだ。総額を見て安心することも、その逆もできない。

確定しているのは金額ではなく、原因のほうだ。

手元で確かめる順番と、その代償

できることは限られている。それでも順番はある。

最初は、その鍵をいつ作ったかだ。2021年3月以降にその端末で seed を生成したなら、対象の期間に入る。次に、作り方を思い出す。自分で50回以上ダイスを振って入れたか。資金にパスフレーズが掛かっているか。どちらも当てはまらないなら、Coinkite の言う対象に入る可能性がある。

ここから先には代償がある。新しい鍵へ移すには送金の手数料がかかる。バックアップを取り直し、保管する場所と方法をもう一度決める必要がある。移行のあいだは古い鍵と新しい鍵が並んで存在し、どちらのバックアップがどちらなのかを取り違えれば、攻撃者ではなく自分の手で資金を失う。急いだ移行そのものが事故になりうる、というのがこの作業の難しいところだ。

分かっていないことも残る。自分の seed が実際に何ビットで作られたのかを、端末があとから教えてくれるわけではない。判断は「作った条件」からの推定にとどまる。安全だと言い切れるのは Coinkite が書いた例外の範囲までで、その外側を誰かが保証してくれることはない。

自分で鍵を持つというのは、誰にも預けない代わりに、こういう日の判断も自分で引き受けるということだった。預けていれば、補償の話を誰かがしてくれたかもしれない。預けなかったから、確かめるのも移すのも自分になる。どちらがいいかという話ではなく、そういう取引だったという話だ。

あなたの手元にある鍵は、いつ、どんな条件で作られたものだろうか?

参照

あなたの暮らしで、最初に試せることは何でしょうか。