検索
特集/連載

一体なぜ? 数分で破られた「iOS 10」ローカルバックアップパスワードの脆弱性「iOS 10.1」と「iOS 10.2」では修正済み

2016年、「iOS 10」のパスワード照合システムに不備があり、ハッカーがローカルバックアップを容易に解読できてしまうという問題が発覚した。どうすればこの問題は防げたのだろうか。

Share
Tweet
LINE
Hatena

関連キーワード

iOS | Apple | iPhone | 脆弱性 | セキュリティホール


blog
「iOS 10」のパスワード照合システム脆弱性に関するElcomSoftのブログ記事《クリックで拡大》

 ロシアのデジタルフォレンジック企業ElcomSoftの研究者らは2016年、AppleのモバイルOS「iOS 10」のパスワード照合システムに不備があることを発見した。ハッカーがローカルバックアップを解読し、パスワードや認証トークンを入手できてしまうという脆弱(ぜいじゃく)性だ。ElcomSoftの報告によると、この欠陥はiOSの以前のバージョンにあった一部のセキュリティチェックがiOS 10で省略されたことによるものだという。この脆弱性はどのように利用されるのだろうか。iOS 10にどのようなセキュリティチェックがあれば、この問題を防げたのだろうか。

 モバイルデバイスのセキュリティ機能は企業にとって重要な差別化要因となる。そのため、自社製品へのセキュリティ機能の追加や強化をアピールするのがベンダーの常だ。

 そういう意味では、ElcomSoftが指摘したように、iOS 10のローカルバックアップを保護するためのパスワード照合システムが以前よりもはるかに脆弱になったというのは妙な話だ。ElcomSoftの研究者らはフォレンジックツールキット「iOS Forensic Toolkit」をアップデートする過程で、iOS 10デバイスで作成した「iTunes」のローカルバックアップパスワードにはブルートフォース(総当たり)攻撃を容易に仕掛けられることを発見した。以前のバージョンのiOSが作成するローカルバックアップでは、ほぼあり得なかったことだ。

 iOSのバージョン4から9までは、バックアップ用パスワードの暗号化に「Password-Based Key Derivation Function」(PBKDF2)という鍵導出関数とハッシュ関数「SHA-1」を使用していた。PBKDF2や「BCrypt」や「scrypt」といったパスワードのハッシュ化アルゴリズムは、辞書攻撃やブルートフォース攻撃への耐性を強めるために故意に計算量が多くなっている。

 Appleの実装では、PBKDF2はパスワードのハッシュ計算を1万回反復した。この「キーストレッチング」と呼ばれる手法によって、パスワードを試すのに掛かる時間は大幅に増加する。ElcomSoftがパスワード回復ツール「Elcomsoft Phone Breaker」を使って、NVIDIAのGPUアクセラレータ「NVIDIA GTX 1080」を搭載する1台のPCでテストしたところ、iOS 9のローカルバックアップでは毎秒15万個強のパスワードを試せる程度だった。

 だがどういうわけかAppleはiOS 10でこの堅牢なセキュリティ設計に変更を加え、ハッシュ計算を1回しか反復しない一般的な暗号学的ハッシュ関数「SHA-256」を採用した。セキュリティの面で、これは良い選択肢とはいえない。辞書攻撃やブルートフォース攻撃のペースを遅らせるためのキーストレッチングのアルゴリズムがないからだ。実際、ElcomSoftがGPUアクセラレータは使わずに標準的なデスクトップCPUだけでテストしたところ、iOS 10では毎秒600万個ものパスワードを試すことができたという。この速度であれば、大文字あるいは小文字だけの6文字の英数字パスワードはものの数分で破ることが可能だ。

 パスワードを7文字にすれば、攻撃に掛かる時間は数時間に増える。だがiOS 10以前であれば、7文字のパスワードを破るのに1週間近くは掛かっていたはずだ。iOS 10のローカルバックアップ用パスワードの保護レベルは大きく後退したということだ。いったんパスワードを盗み出せば、バックアップの全てのコンテンツを解読できる。クレジットカードやWi-Fiネットワーク情報などの機密情報を保存するAppleのパスワード管理システム「Keychain」用のパスワードも含めてだ。

 この問題は「iCloud」のバックアップには影響しない。この攻撃を実行するためには、バックアップが保存されているデバイスへのローカルアクセスかリモートアクセスが必要だ。信頼できるコンピュータから抽出したペアリングの記録を用いて、iTunesのバックアップを強制的に実行することもできる。

 Appleは既に「iOS 10.1」と「iOS 10.2」でこの問題を修正済みだ。現在はバックアップデータベースを丸ごと暗号化し、パスワードクラッキングに掛かる時間は以前のiOSと比べてもはるかに長くなっている。さらにAppleはユーザーに対し、英数字と記号を組み合わせた10文字以上のパスワードのように強力なパスワードを使うよう推奨している。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る