人間に聞こえない音を巧みに操りSiriなどの音声アシスタントをハッキングする「ドルフィン・アタック」とは?
Amazon EchoやGoogle Homeなどの声で話しかけることで操作が可能な音声アシスタントを、人間には聞こえない超音波を使って自由に操ることができる技術「DolphinAttack」(ドルフィン・アタック)を中国の浙江大学の研究チームが開発しました。ここで注目すべき点は、人の声にだけ反応するはずの音声アシスタントを、超音波と「倍音」の原理をうまく利用しているというポイントです。
DolphinAttack: Inaudible Voice Commands - Dolphinattack.pdf
(PDF)https://assets.documentcloud.org/documents/3987864/Dolphinattack.pdf
Hackers send silent commands to speech recognition systems with ultrasound | TechCrunch
https://techcrunch.com/2017/09/06/hackers-send-silent-commands-to-speech-recognition-systems-with-ultrasound/
「OK Google」や「Alexa」と話しかけることで指示を行うことが可能になる音声アシスタントは、基本的に人間の声にのみ反応するように作られています。何らかの操作を行うためには人間に聞こえる周波数帯の音、すなわち「声」を発する必要があるため、仮に悪意を持ったハッカーが音声アシスタントの操作を乗っ取ろうとしても、周囲にいる人にその声が聞こえてしまいます。それでは「乗っ取り」は成功しないのですが、ドルフィン・アタックは物が振動するときに生じる「倍音」をうまく利用することで、人間には聞こえないほどの高い音から人の声を「生みだす」ことを可能にするという驚きの技術です。
◆倍音とは?
音は物質が振動することで生まれることはよく知られていますが、その際には基(もと)となる音に対する「倍音」が発生します。倍音は「音の基本となる周波数に対し、2以上の整数倍の周波数を持つ音の成分」とされるもので、自然界に存在する音は全て基音と倍音でできていると考えられています。
By Sphl
例えば、ピアノで鍵盤の中央付近にある「ラ」の音を鳴らすと、その音の高さ・周波数は440ヘルツ(Hz)となります。しかし実際には、440Hzの整数倍となる880Hzや1320Hz、1760Hzといった周波数の音や、基音よりも低い220Hzや110Hzといった音が同時に鳴っており、これらの倍音が楽器ごとの音色を決定しています。実際には、自然楽器が放っている倍音は整数倍ではないことも多く、特有の揺らぎなどがまた楽器の音色を生みだしています。
この倍音(共鳴)の仕組みを利用しているのが「ドルフィン・アタック」です。ドルフィン・アタックは、人の耳には聞こえない高い音を出しただけで、音声アシスタントのマイクが「話しかけられた」と勘違いして機能をオンにすることが可能となっています。
◆ドルフィン・アタックの簡単な仕組み
人の声を受けて動作する音声アシスタント機器には、マイクが内蔵されています。マイクは空気を通して伝わってきた振動を薄い膜「ダイアフラム」で受け止め、ダイアフラムが振動することで音を電気信号に変換します。この時、音を受けて振動するダイアフラムは入力された音の波形どおりに振動するのが理想ではあるのですが、やはり共鳴によってダイアフラムが元の音にはなかった振動を生みだしてしまうこともあります。
例えば、倍音が含まれていない「880Hz」の純音を鳴らしたとします。その音を受けたマイクのダイアフラムは、基本的には880Hzで振動して電気信号に変換します。しかし実際には、マイクの特性により純音には含まれていないはずの1760Hz(2倍)や440Hz(0.5倍)、110Hz(0.125倍)などといった音がわずかに含まれてしまいます。
多くの場合は、この倍音は問題にならないほど音が小さいために無視できるのですが、元の音が非常に大きな音量だった場合には、無視できないレベルの信号として認識されることにつながります。
ドルフィン・アタックでは、元となる人の声を電気的に変調し、人間の耳には聞こえない20kHz以上の非常に高い音に変換します。そしてその音を、音声アシスタントのマイクに向けて大きな音量で与えます。この時、人間にはもちろん何の音も鳴っていないように感じられているのですが、この音を受けたマイクのダイアフラムは与えられた音と同じ周波数で振動し、電気信号を生みだします。生みだされた電気信号が元の音と全く同じだった場合は、電気回路に内蔵されている「ローパスフィルター」によって超高音成分はカットされてしまい、「無音」であることになるのですが、ここで厄介になってくるのが、上記の倍音というわけです。
仮に、32kHz周辺の高さに変換した人の声が与えられると、マイクのダイアフラムではその音に応じた倍音の周波数でも振動を起こします。32kHz(=32000Hz)の音に対し、2分の1の周波数であれば16kHz、4分の1であれば8kHzと、その倍音は人間の可聴域に含まれるものとなってきます。さらに、8分の1であれば4kHz、16分の1だと2kHzとなるのですが、このあたりの周波数は人間の声を形づくる最も重要な周波数域といわれており、音声アシスタントに話の内容を理解させるために十分な情報を含んでいます。
この時、実際に鳴っている音は人間の可聴域を超えているので、周囲で様子を見守っている人間には全く何も聞こえていない状態。にもかかわらず、ドルフィン・アタックの超高音を受け取った音声アシスタントのマイクのダイアフラムは「勝手に」人の声と同じ振動を自ら生みだし、電気信号に変換してコンピューターに認識することで、音声アシスタントの「誤動作」を生みだすという仕組みです。
この説明は原理を単純化したものなので、実際にはより高度な変調などが行われている模様。しかし、人間の耳の特性とマイクの性能の落とし穴をうまく突いた方法であるドルフィン・アタックは、実に巧みなハッキング技術と唸ってしまえる仕組みを持っていると言えそう。浙江大学の研究チームは実際にこの技術を使い、SiriやGoogle Now、Samsung S Voice、Huawei HiVoice、Microsoft Cortana、Amazon Alexaなどの音声アシスタントを操作することに成功しているとのことです。
実験に用いられた機器の一例は以下のようなもの。Samsung Galaxy S6の信号を小型アンプで増幅して、超高音を再生するスピーカー(トランスデューサー)を鳴らすというもので、アンプとトランスデューサー、バッテリーなどでかかった費用は3ドル(約320円)以下だったとのこと。
思わず聞こえないはずの音に対して身構えてしまいそうな「ドルフィン・アタック」ですが、現段階では効果のある範囲が音声アシスタント機器本体から1メートルの範囲内だけとなっており、遠く離れた場所からコッソリと操作するほどの性能は持っていないことも明らかにされています。また、「Hey Siri」などと話しかけることで音声アシスタントをオンにする設定をオフにすることで、予期せぬ乗っ取りを簡単に防ぐことも可能です。とはいえ、音声アシスタント機器の横に置かれたBluetoothスピーカーをハッキングして踏み台にし、そこから超音波を流すことで音声アシスタントを操作する……という方法も考えられるので、油断は禁物かも。
・関連記事
PCから発生する電磁波を測定して秘密鍵を盗み出すハッキングマシンを市販の安価な部品だけで開発 - GIGAZINE
PCの発する音を利用して暗号を解読する新手のハッキング手法が登場 - GIGAZINE
コンピューターの「熱」で通信を行ってデータを盗み出すという手法 - GIGAZINE
スマホの周囲の会話はジャイロスコープ経由で盗聴可能 - GIGAZINE
192kHz/24bitのハイレゾ無圧縮音源は本当に聴き分けられるものなのか? - GIGAZINE
・関連コンテンツ