web-dev-qa-db-ja.com

クレジットカード番号を保存する新しいiOSキーチェーンはどのくらい安全ですか?

iOS7には、保存されたパスワードをデバイス間で同期するiCloudキーチェーンが含まれています。それだけでなく、クレジットカード番号も同期します。

暗号化に関して私が見つけることができる唯一の情報は、それらが対称鍵暗号化であるAES-256で暗号化されていることです。これらの事実を考えると、実際にはiOSデバイスにクレジットカード番号を提供し、そのデバイスはパスワードを使用して復号化し、Webフォームに入力するように見えます。

だから私の質問は、これはユーザーのiOSパスワードを取得すると、すべてのサイトパスワードとともにクレジットカードの詳細をすべて平文で取り戻すことができるということですか、またはApple追加のセキュリティがありますかこれを防ぐには?

10
mirhagk

キーチェーンには4つの異なるストレージメカニズムがあり、任意のハッカーに4つの攻撃オプションを提供するため、それをいくつかの部分に分解します。

キーチェーンの内容がどれほど敏感であるかに応じて、4つすべてを正しく取得する必要があります。

iOSキーチェーンストレージ

iOSはAESを使用してキーチェーンデータを保存します。問題は、キーがどのように生成されるかです。

私の理解では、aesキーは、ユーザーのパスコードまたはパスワードを実行するか、カスタムのpbkdf2ハードウェアチップセットを介して導出され、すべてのデバイスに固有のROMのビットでパスワードをソルトし、pbkdf2チップセットのみが読み取ることができるそれ。

これにより、キーチェーンを保持する実際のiOSデバイスにパスコードを提供する場合を除いて、aesキーにアクセスすることが不可能になります。

Pbkdf2チップセットも4桁のパスコードの強度を上げるために意図的に遅くなっていますが、それでもまだ十分ではなく、本当に安全にしたい場合はパスコードの代わりにパスワードを使用することをお勧めします。

画面がオフの場合(および設定で遅延を設定した後)、キーチェーン(およびその他のもの)のaesキーはRAMから削除されることになり、pbkdf2チップセットを再度使用してキーにアクセスする必要があります。ブルートゥースの低エネルギーやプッシュ通知などの機能は、これがどれほど強力であるかについて私を少し緊張させます。電話がロックされている間に明らかに多くのことができるからです。私はそれを適切に調べていませんが、電話がロックされているときでもaesキーにアクセスできるかどうか少し心配です。誰かがあなたの電話に物理的にアクセスするのではないかと心配している場合は、完全にシャットダウンするかもしれません(おそらく、私のセクションよりも詳細がわかっている場合、誰かがこのセクションを編集できますか?)。

タッチIDがどのように機能するかわかりません。A7の「セキュアエンクレーブ」に保存されているキーを使用してパスコード/パスワードが暗号化されていると思います。これは、ARMのIntelの信頼できるプラットフォームモジュールに相当するマーケティング用語であり、armの実装ははるかに新しく(A7はAFAIKを実装した最初のチップです)、インテルのテクノロジーよりも堅牢であるように見えます。

Macキーホルダー

OS Xでは、キーチェーンはユーザーのログインパスワードに対してキー導出関数(おそらく適切なラウンド数のpbkdf2)を実行するだけです。手動で別の強力なパスワードに変更することもできます。

個人的には2つのキーチェーンがあります。ログインキーチェーンはログインパスワード(平均的な強度)を使用し、より機密性の高いデータ用にパスワードを入力するのがはるかに強力/苦痛な2つ目のキーチェーンを持っています。この2番目のキーチェーンもiCloud経由で同期されないので、手動でファイルをコピーします。

iCloud

iCloudもaesを使用しますが、キーの保存方法にはいくつかのオプションがあります。

これらのオプションの説明は、実際の動作と完全に一致しているわけではなく、誤解を招くほどに単純化されています。

3つの選択肢すべてで、暗号化されたキーチェーンデータはAppleのサーバーに保存されます。

ただし、データのaesキーは、iCloudキーチェーンを「ロック」するために4桁のピンまたはパスワードを指定した場合にのみサーバーに保存されます。派手なハードウェアキーの派生を行うことはできないので、4桁のピンは間違いなく悪い考えだと思います。 4桁のPINではなくパスワードを使用してください。

キーがどのように導出されるかについての公式声明はなかったと思います。おそらく、彼らはpbkdf2を使用しています。それが、他のあらゆる場所で使用されているものです。

パスコードまたはピンを提供しないオプションもあります。これは、データがクラウドにアップロードされないことを意味しますが、実際に意味するのは、AESキーがクラウドにアップロードされないことです。このオプションを使用する場合、新しいデバイスをセットアップするときはいつでも、インターネットを介して他の既存のデバイスのいずれかにピアツーピア接続を確立できる必要があり、それらはその方法でAESキーを共有します。デバイスは、キーを共有する前に許可を求めるアラートを出します。私のキーチェーンデータは他の場所にバックアップされているので、個人的にはこれが私が使用するオプションなので、iCloudキーチェーンへのアクセスを失ってもかまいません。

また、そこに保存されているキーチェーンにアクセスするには、iCloudにログインする必要があります。そのため、iCloudパスワードも必要です。ただし、これは単なるビジネスポリシーであり、暗号化には関与しません。 Appleのサポートスタッフによるソーシャルエンジニアリングは、誰かのiCloudアカウントにアクセスするのに効果的であることが証明されており、米国の法律では、Appleに法執行機関へのアクセスも提供する必要があります。つまり、キーチェーンにアクセスするときにiCloudにログインするという要件は基本的に無視します。これはほとんど役に立たないセキュリティ対策であるためです。

あなたのバックアップ

バックアップ手順に注意してください。バックアップにアクセスできる場合、特にハードウェアキーの派生を使用できないためにiOSで4桁のピンを使用している場合は、キーチェーンにアクセスできます(一意のROMキーなしで暗号化を解除できる必要があります)デバイス上)。

あなたはカーボナイト/ backblaze/Dropbox/iCloudを使ってキーチェーンをバックアップしていますか?私はそれを敏感なもので信用しません。ハードドライブを使用すると、盗まれる可能性はありますか?

最終的な考え

クレジットカードは、強力な暗号化を実際に必要としません。誰でもあなたの財布を盗んだり、あなたのカードの写真を撮ったり、ATMや店のレジスターを使ったり、sony/Adob​​e/etcを使ってあなたのアカウントに侵入したりして、磁気ストリップをすくうことができます。盗まれたカードを認識してすぐに報告し、取引履歴を監視して不正な取引を報告している限り、すべてのクレジットカードの盗難は保険の対象となり、元に戻すことができます。

個人的にはオンラインでの支払いを頻繁に行っていないため、クレジットカードをキーチェーンに保存していません。しかし、それはそれを保管するのに完全に安全な場所だと思います。ただし、インターネットバンキングのログインはキーチェーンには入れません。クレジットカードと同じ保護機能がないためです。

9
Abhi Beckert