
Lenovoの指紋認証付きUSBメモリー「ThinkPlus FU100」は、AES-256暗号化をうたっていましたが、内部のSDカードに保存されたデータは暗号化されていませんでした。指紋認証はUSB接続を有効にするだけで、カードを取り出せばデータにアクセスできる状態でした。調査では、ほかのメーカーのUSB製品やコピー防止ソフトにも、固定鍵やパスワード漏えいにつながる問題が見つかっています。
FU100では指紋認証がデータを暗号化していなかった
FU100の内部には通常のSDカードがあり、指紋認証はUSB接続のロック解除に使われていました。保存データ自体は暗号化されず、製品を物理的に入手した人がカードを読み取れる構造でした。
研究者のXusheng Li氏は、FU100の構造を「凝ったケースに入ったSDカード」と表現しました。製品の外側に認証機能があっても、記録媒体上のデータが暗号化されているとは限らないことが分かりました。
LenovoはFU100のほか、FU200、TU800、外付けSSDのTSD303などに関する修正を公表しました。FU100などの対象製品では、利用者が中国のサポート窓口へ連絡し、製品の交換または訪問によるファームウェア更新を受ける手順が案内されています。事前のバックアップと、送付前のデータ消去も推奨されています。
TSD303ではパスワードがUSB経由で漏れていた
TSD303ではデータ自体は暗号化されていましたが、入力されたパスワードをソフトウェアが照合するため、正しいパスワードがUSB経由で平文送信されていました。通信を取得すればパスワードを得られる問題でした。
最初の修正では、タイムスタンプに似た値から鍵を作るブロック暗号方式が導入されました。しかし、ソフトウェアを解析すると鍵を導出できるため、ドライブを盗まれた場合のデータ保護には不十分でした。
その後の修正では、ドライブ本体が入力されたパスワードを照合し、正しいパスワードを外部へ送らない方式に変更されました。同じソフトウェア開発キットは複数メーカーの計9製品にも使われていました。その多くでパスワードが露出する可能性があり、うち2製品はmicroSDカード上のデータを暗号化していませんでした。
固定鍵や隠れたアカウントも見つかる
Li氏は、Codexと勤務先のリバースエンジニアリングツールを使い、複数社の保護機能を調べました。Netacのツールではプログラムに埋め込まれた固定鍵と、診断ログに記録された利用者のパスワードが見つかり、解析には約7分かかったとしています。
KakaSoftのUSB Copy Protectionでは、利用者のパスワードなしでテストファイルを復号できる内部パスワードが再構築され、所要時間は約26分でした。NexcopyのCopy Secureでは、閲覧アプリに組み込まれた証明書から鍵を取り出せ、解析には約10分かかりました。
別の製品SecZure YutianDunでは、単純なパスワードを持つ隠しアカウントが2つ確認されました。実行履歴をさかのぼって調べるタイムトラベルデバッグという手法が使われています。Li氏は、こうした欠陥だけから悪意を推定することはできないとの見方を示しました。
暗号化とロック解除の仕組みを分けて見る
USBメモリー向けの保護プロファイルでは、保存データの暗号化と復号、データ暗号鍵を保護する鍵の形成を、USB機器内のプロセッサで行うことが要件とされています。この構成では、データ暗号鍵を鍵暗号化鍵で保護し、後者を認証要素から導く方式が示されています。
この暗号化方式は、攻撃者に大きな鍵空間の探索を強いることを目的としています。また、認証に使う要素をUSBメモリーと一緒に保管しないことを前提としています。パスワード入力を受け付ける機能や、接続を止めるロックだけでは、記録媒体を取り出された場合の保護を説明できません。
Li氏の調査では、Netacには3月の講演時点で修正がなく、KakaSoft、Nexcopy、SecZureには脆弱性の通知をしていませんでした。攻撃者がすでにドライブを入手している場合、回収や更新が難しいとの考えからです。一方、同氏はmicroSDカードを使いながら、利用者のパスワードから鍵を導出して暗号化するオープンソースUSBを、カード単体からデータを読めない設計例として挙げました。








