iOS端末の復元とキーチェーンについて

iOS端末の復元とキーチェーンについて

iOS端末を復元した際にキーチェーンが復元されるかは、バックアップの方法などによって異なります。
キーチェーンでアプリのログイン状態などを制御している場合にはそのあたりを気をつける必要があります。

ちなみに弊社で提供しているEAPでは、code/pinによる復元機能が標準で用意されています。
このように簡単に復元できる仕組みが備わっているアプリであれば、バックアップからの復元後にログイン状態が維持できなくてもはあまり問題にならないかもしれません。

iOSには以下のバックアップの方法がありますが、それぞれ設定値によって復元した際のキーチェーンの状態が変わってきます。

バックアップ方法とキーチェーン復元の有無

i-Tunesでのバックアップ

バックアップの暗号化 キーチェーンの復元
あり される
なし されない

i-Cloudでのバックアップ

iCloudキーチェーン キーチェーンの復元
有効 される
無効 されない

基本的に暗号化バックアップでなければキーチェーンは保存されません。
i-Cloudバックアップは必ず暗号化バックアップになりますが、iCloudキーチェーンが有効でないとキーチェーンは保存されません。

アプリ側の実装

アプリ側の実装でも状況は変わってきます。
アプリからキーチェーンをセットした際に、属性が kSecAttrSynchronizableに設定された項目のみが同期されます。
また、アイテムの種類としてパスワード(kSecClassGenericPassword、kSecClassInternetPassword)は同期されますが、証明書(kSecClassCertificate)や暗号鍵(kSecClassKey)などは同期されないようです。

Only password items can be synchronized. Keychain syncing is not supported for certificates or cryptographic keys.

参考情報

kSecAttrSynchronizable
https://developer.apple.com/documentation/security/ksecattrsynchronizable

TAG

  • このエントリーをはてなブックマークに追加
金子 将範
エンジニア 金子 将範 rubyist

新しいことや難しい課題に挑戦することにやりがいを感じ、安定やぬるい事は退屈だと感じます。 考えるより先に手が動く、肉体派エンジニアで座右の銘は諸行無常。 大事なのは感性、プログラミングにおいても感覚で理解し、感覚で書きます。