SpiKey:鍵の音を盗聴する

鍵を鍵穴に差し込むと、カチャッという音がします。科学者たちは、この音を聞き取って鍵を複製する方法を見つけ出しました。

ドアロックが頼りになるのは、誰かに開けられて侵入されることがない場合です。コンピューターテクノロジーのおかげで物事は楽になりましたが、開けられないドアを嫌がる侵入者たちにとっても、状況は同じです(猫の話ではありませんよ)。3Dプリンターが登場し、合鍵の作成は以前よりもずっと簡単になりました。当然ながら、鍵をプリントするには、元の鍵の形がそこそこ分かる画像が少なくとも1つ必要です。

シンガポールのリサーチャーたちは先般、画像を必要としないドアロック解除の攻撃「SpiKey」について説明するレポートを公開しました(リンク先は英語)。鍵が鍵穴に入るときのカチャッという音をスマートフォンで録音するという、単純な方法です。

「カチャッ」という音が教える鍵の形

この攻撃は、最も一般的に使われているピンタンブラー錠で機能します。ピンタンブラー錠は、複数のピンが入ったシリンダーを回転させてドアを施錠または開錠する仕組みです。ピンは長さの違う2つの部分(上部と下部)から成り、バネの力で所定の位置に収まっています。

鍵穴に鍵が差し込まれていない状態では、シリンダーはピンによって完全にふさがれ、ピンの上部が邪魔をしてシリンダーは回転しません。対応する鍵が差し込まれるとピンが動き、ピンの上部と下部の境目がシリンダーの端にそろうので、シリンダーが回転します。ピンの位置を決める溝(穴)の深さは、鍵によって異なります。

ピンタンブラー錠に差し込まれた鍵

ピンタンブラー錠に差し込まれた鍵。出典

鍵を鍵穴に差し込むと、鍵の形に合わせてピンが動きます。鍵の突起部(溝と溝の間の突き出ている部分)がピンの真下を通過するときにピンが上がり、そしてまた下がります。ピンが下がるときには、カチャッという音がします。

この音が鳴る間隔を測定することで、研究チームは鍵の突起部と突起部の間の長さを割り出すことに成功しました。もちろんこの方法では、鍵ごとに異なる溝の深さまでは分かりません。しかし、鍵がどのような形をしているのかを多少なりとも知ることはできます。このようにして、合鍵の候補となるものの目星が付けられました。

SpiKey攻撃が危険である理由

SpiKey攻撃で元の鍵の姿を詳細に再現することはできません。しかし、鍵というものは全部が全部、作りが異なるわけではありません。調査チームは突起部間の距離に関するデータと、Schlage社製の6ピン錠の仕様に関する情報とを併せて、鍵の候補を33万種類から数種類にまで絞り込みました。攻撃者としては、3Dプリンターで鍵を5種類ばかり作り、順番に試してみればいいのです。そのうちのどれかが、ほぼ確実に開錠に成功するはずです。

慌てることはない

研究室内で開発される攻撃の大半がそうであるように、SpiKeyにも欠点があり、この方法で強盗が侵入してくる可能性は当面なさそうです。

攻撃を成功させるにはまず、錠のメーカーを知っていなければなりません。メーカーが違えば鍵の要件も違いますし、汎用性の高い合鍵を作るのはさらに困難です。また、ドアロックの種類はピンタンブラー錠だけではありません。広く使われているタイプはほかにも複数あります。

第2に、錠の内部にあるピンのうち2本以上が同時に音を鳴らした場合、この攻撃はうまくいきません。つまり、錠の種類が分かっていても、特定の種類の錠に合う鍵を見つけられる保証はないのです。調査では、Schlage社製の錠のうち半分以上がSpiKeyに対して脆弱であることが判明しましたが、メーカーが変わればその割合も異なります。

第3に、この実験では、錠に鍵を差し込む速度が一定で、途中で動作が止まることはないことが前提になっています。そういう条件で鍵が差し込まれることは、可能性としてはありますが、現実的にはなかなかないでしょう。

自宅(またはその他の場所)に押し入られないために

長い目で見れば、強盗その他のよからぬ人々がSpiKey攻撃を利用する可能性はあります。この攻撃から身を守るにはどうしたらいいでしょうか。

  • 複数の錠を取り付ける。できれば、種類の異なるものが良いでしょう。住居侵入を企む人物がどれか1つを複製できたとしても、そのほかの錠が守ってくれるはずです。
  • 錠以外の安全対策を講じる。警報装置その他のセキュリティシステムは単純なものからかなり複雑なものまで多数販売されており、好みに合わせて選べます。
  • マイクやカメラの機能を乗っ取られないように、自分の使用するデバイスを保護する。
ヒント

Windows Downdate攻撃から身を守る方法

Windows Downdateは、最新バージョンのOSを古いバージョンにロールバックさせ、脆弱性が残る状態を復活させ、攻撃者がシステムを容易に侵害できるような状態にする攻撃です。この攻撃のリスクを低減するにはどうしたらよいでしょうか?