- キーボードの入力音だけからユーザーが押したキーを推定する音響サイドチャネル攻撃が、ディープラーニングと組み合わさることで最大95%の精度を記録
- 攻撃者は近くのマイク、マイク権限を持つマルウェア感染スマートフォン、またはZoom通話中のキー入力音を利用し、パスワード・会話・メッセージのような機密情報を露出させる可能性がある
- 実験は最新のMacBook Proで36個のキーをそれぞれ25回押した音を収集し、波形・スペクトログラムを作成した後、CoAtNet画像分類器を学習させる方式で進められた
- 同じノートPCと17cm離れたiPhone 13 miniを使った環境で、スマートフォン録音は95%、Zoom録音は93%、Skypeは91.7%の精度を記録
- タイピング方法の変更、ランダムパスワード、ホワイトノイズ、オーディオフィルター、生体認証やパスワードマネージャーが緩和策として挙げられるが、静かなキーボードに替えるだけでは防御は難しい
キー入力音を利用したデータ窃取
- 英国の大学研究チームは、マイクで録音したキーボード入力音を使ってキー入力データを推定するディープラーニングモデルを学習した
- マイク録音ベースの攻撃で、モデルは95%の精度を達成
- Zoom経由で収集した音声で学習した場合、精度は**93%**に下がったが、この媒体でも依然として高水準であり記録的な結果といえる
- 攻撃が成功すれば、パスワード、会話、メッセージ、そのほかの機密情報が悪意ある第三者に漏えいする可能性がある
音響サイドチャネルが現実的な理由
- 他のサイドチャネル攻撃は、特殊な条件、データ転送率、距離制限の影響を受ける場合がある
- マイク搭載機器が広く普及し、高品質な音声キャプチャが可能になったことで、音響攻撃の実行難度は低下している
- 機械学習の発展と結びついた音ベースのサイドチャネル攻撃は、以前の想定よりもはるかに実現可能で危険な攻撃手法になっている
攻撃手順とデータ収集
- 最初の段階は、対象キーボードのキー入力音の録音
- 近くのマイクで録音できる
- マイクへのアクセス権を持つマルウェア感染スマートフォンでも可能
- Zoom通話では、悪意ある会議参加者が対象の入力したメッセージと録音された音を関連付けられる
- 研究チームは最新のMacBook Proで36個のキーをそれぞれ25回押し、各入力で発生した音を記録した
- 録音から波形とスペクトログラムを生成し、各キーごとに識別可能な違いを可視化した
- 信号をキー入力識別に活用できるようにするため、特定のデータ処理段階を経ている
モデル学習と実験環境
- スペクトログラム画像は、画像分類器であるCoAtNetの学習に使用された
- 研究チームは最良の予測精度を得るため、エポック、学習率、データ分割パラメータを試行した
- 実験環境は次の通り
- 過去2年間にAppleノートPCで使われたキーボードを備えた同一のノートPC
- 対象から17cm離れたiPhone 13 mini
- Zoom
- 分類器の精度は媒体ごとに差があった
- スマートフォン録音: 95%
- Zoom録音: 93%
- Skype録音: 91.7%
可能な緩和策
- 論文は、音響サイドチャネル攻撃を強く懸念するユーザーに対し、タイピング方法の変更やランダムパスワードの使用を提案している
- 他の防御策として、キー入力音を再生するソフトウェア、ホワイトノイズ、ソフトウェアベースのキー入力音声フィルターが含まれる
- この攻撃モデルは非常に静かなキーボードでも高い効果を示しており、メカニカルキーボードに吸音材を追加したり、メンブレン式キーボードに替えたりする方法は有効とは言いがたい
- 可能な場合は生体認証を使用し、機密情報を手動入力しないようパスワードマネージャーを使うことも緩和要因となる
Zoomの追加推奨
- Zoomはユーザーのプライバシーとセキュリティを重要視していると述べている
- 研究チームが提案した緩和策に加え、Zoomユーザーは次の設定で情報をより安全に保てる
- 背景雑音抑制機能をより高い設定にする
- 会議参加時はデフォルトでマイクをミュートする
- 会議中にタイピングするときはマイクをミュートする
1件のコメント
Hacker News のコメント
学習データとテストデータを同じノートPC・マイク・環境で作っており、さらには同じ人がキーを押していた可能性もある
Zoom モデルも Zoom で集めたデータで新たに学習しているが、これを実用的なサイドチャネル攻撃と呼びつつ、このアプローチが一般化するかはまったく確認していないように見える
任意のキーボード音を学習しようとするのではなく、特定の標的の音を学習する攻撃だ
たとえば Twitch の配信者がライブマイクをオンにしたままチャットに返信を入力し、その後 Twitch のパスワードを入力するなら、最初の状況の音声を学習して2つ目の状況に適用できる
Zoom 攻撃の利点は、標的にチャット欄へ入力させられれば、「暗号文」を聞いた直後に「平文」を得られる点だ
別の文脈で聞こえるタイピングも、たいていは LLM がすでに認識できるいくつかの文法、つまり自然言語、プログラミング言語、コマンド、計算入力などに合う可能性が高く、そうでなければおそらくパスワードである可能性が高い
最近のノイズ除去はあまりに攻撃的なので、「エンジン音/救急車/街の騒音がすみません」と言っても、実際には他の人には何のことかわからない場合が多い
キーボード音はかなり識別しやすいので、それほど難しいことでもない
大学の卒業プロジェクトで似たような音響サイドチャネル攻撃を試したことがあるが、この分野には成果物がかなり多く、誰かが方法論を組み合わせるのを待っている状態だ
幾何モデル、こうした学習/非学習の統計モデル、複数の言語モデルを組み合わせるアプローチで、かなり良い結果が出る
読んだ論文をいくつか挙げると次の通り
https://doi.org/10.1007/s10207-019-00449-8 - SonarSnoop。携帯電話のスピーカーから超音波を出し、ユーザーのインタラクション、たとえばスワイプベースの暗証入力をプロファイリングする
https://people.eecs.berkeley.edu/~daw/papers/ssh-use01.pdf - “Timing Analysis of Keystrokes and Timing Attacks on SSH”。2001年の論文で、キー入力タイミングの統計モデルを使い、暗号化された SSH トラフィックからパスワードを復元する
https://doi.org/10.1145/1609956.1609959 - “Keyboard acoustic emanations revisited”。隠れマルコフモデルと英語の特性を用い、ケプストラム特徴に基づく分類でテキストを復元する
https://doi.org/10.1145/2660267.2660296 - “Context-free Attacks Using Keyboard Acoustic Emanations”。到達時間差から物理的位置を確率的に推定する幾何学的アプローチを用いる
なぜこれを大したことではないかのように過小評価するのか、よくわからない
セキュリティや諜報の観点ではかなり意味が大きく、音声学習が高感度の盗聴装置を事実上キーロガーにできるレベルまで来たということだ
従来のネットワーク攻撃よりも音声盗聴装置を設置するほうがはるかに簡単な状況は多く、最新のショットガンマイクなら建物の中に入る必要すらないかもしれない
これはパスワード窃取よりもはるかに広く適用可能だ
以前からこの攻撃ベクトルに興味があり、本当にこの地点まで来るのか気になっていた
本当に興味深い
抽象的な音ではなく、そのキーボードで実際に自分がタイピングした録音を使い、現実的に聞こえるフレーズやシーケンスとして混ぜて再生する方式だ
実際のキー入力音が混ざるようにごく短く止めれば、解読したり、パスワード入力の時点のような他のイベントと相関を取ったりするのは非常に難しくなりそうだ
さらに良いのは周囲にホワイトノイズを流しておく方法で、実際に非常に重要な会議ではときどきそうしていると聞いたことがある
そこまで重要人物でないなら、重要な内容は携帯電話でだけ入力すればよい。タッチスクリーンが十分な音を出さないことを願う
大したことではないように見える
興味深い。どのような音響特性を認識しているのか、本当に気になる
各キーの物理的な指紋に近いものなのか、だからキーキャップやスプリングを替えるとモデルを更新しなければならないのか気になる。昔のタイプライターを製造上のばらつきから法科学的に識別していたのと似ているのだろうか?
それともキー自体は同一だが、周囲の物体の形状のために、キーボードやノートPCの内部で各キーが互いに異なる共鳴パターンを出すのだろうか? キーボードを部屋の中で移動したら、モデルを再学習しなければならないのだろうか?
キーをどれだけ強く押すかによる違いがまったくないのか、それとも大きいのかも気になる
キーボード別では、薄い MacBook のキーと外付けのフルハイトキーボードを比べたとき、どちらが各キーをより簡単に、または難しく識別できるのかも気になる
各キーにどれだけ速く到達するか、リズム、特定のキーをどれだけ強く打つ傾向があるか、などが影響しそうだ
キーボードよりも人間をより多くプロファイリングしている感じがする
参考までに、一部、おそらく大半のビデオ会議ソフトウェアは、音声からキーボード音を除去している
ノートPCではマイクがキーのすぐ横にあるため、特に気が散る問題になるからだ
Zoom はノイズ除去の一環として、デフォルトでこれを行っているはずだ。キーダウンイベントを使えば、音声ストリームだけでなく識別の助けにもできるので、もっと簡単かもしれない
基本的なノイズ除去さえ有効になっていれば、通常のビデオ会議ではこの種の攻撃を防げるはずだ
そのため、攻撃者がすでに一般的なキーロガーや隠しカメラを仕掛けられるほどの物理アクセス権限を持っていない状況で、これが現実的な脅威になるケースはあまり思い浮かばない
通話中に誰かがタイピングを始めると、とてもはっきり聞こえる
Georgi Gerganov が数年前にすでに1つ作っている
https://github.com/ggerganov/kbd-audio
例の図は0.5秒ごとにキーを1つ押す様子を示しており、これは約24 wpmの一本指タイピングを示唆している
このやり方なら、モデルは非常にきれいな波形を得られる
平均的、あるいは速いタイピストに対してもこのアプローチがうまく機能するのか気になる。音のプロファイルを文字と結び付けるのは、はるかに難しくなるかもしれない
十分な訓練データがあれば、標準的なタイピストから再現可能なパターンを見つけられそうだ
例えば QWERTY 配列で「A」を打った後、「Q」は「J」より入力に1.2〜2.3倍時間がかかる、といったペアごとのテンポパターンがあり得る
候補文字をすべて総当たりするよりも、探索空間を狭める助けになる
標的がパスフレーズを使っているなら、「hXXXse battXXX stXXXXX cXXXXXX」のように、一部の基準文字を高確率で識別できたときに解釈可能になる
この記事を見て、このアイデアの変形に関する開始プロジェクトをオープンソースで公開した: https://github.com/secretlessai/audio-mnist
以前から、CNN のような画像分類手法を音声データに適用することに関心があった
数年前の週末プロジェクトとして、手書き数字の音声録音から簡単な「audio-mnist」データセットを作ったが、数日作業した後はそれ以上進められなかった
それでもオープンソースで公開すべきだとしばらく考えていて、この記事が行動のきっかけになった
データをさらに集め、基本的な CNN の例などを入れれば、さまざまな研究やツールにとって良い出発点になり得る
録音を作成し、音声を分割するための別コードは、まだ見つけて分かりやすく整理する必要がある
この過程の一部が、興味を持つ人や役に立つ人の助けになればうれしい
これで動くワイヤレスキーボードがあればよさそうだ
バッテリーも、充電も、同期も不要になるはずだ
Zenith が作った Space Command リモコンで、テレビリモコンを時々「clicker」と呼ぶ理由はこれだという
https://www.theverge.com/23810061/zenith-space-command-remot...
失敗確率×コスト影響は、エラー率が一桁改善されても耐えがたいものになりそうだ
そろそろ Zoom 通話に、私が「fuck you」とタイピングしている背景音声を注入するときだ
目的は、盗聴者に自分の人生の選択を完全に再評価させ、もしかすると物語そのものに引き込むことだ
良い基準点になるからだ