2017-11-01 5 views
0

私はiOSの初心者で、APIエンドポイントから返されたトークンに基づいてセッションを維持する必要があるアプリケーションを開発しています。私はそれについて検索し、安全なデータがユーザのデフォルトに保存されるべきではないことを知ったので、私はKeychainを選択しました。私の質問は:iOSでデータを保護する。キーチェーンまたはその他の方法

  • キーチェーンは十分に安全ですか?
  • 他にも良い方法がありますか?
  • Keychainは値を暗号化して保存しますか(デフォルト動作)?
  • キーチェーンと一緒に暗号化/復号化を使用する正しい方法は何ですか?次のように現在、私が使用しているキーホルダーに関連するコマンドが与えられている

import SwiftKeychainWrapper //installed through Cocoapods 

    //Storing 
    let saveTokenSuccessful: Bool = KeychainWrapper.standard.set(token!, forKey: "myToken") 

    //Retrieving 
    let retrievedToken: String? = KeychainWrapper.standard.string(forKey: "myToken") 

    //Deleting 
    let removeTokenSuccessful: Bool = KeychainWrapper.standard.remove(key: "myToken") 
+0

あなたはキーチェーンよりも優れていません。 – zaph

答えて

2

は十分に安全なキーチェーンされていますか?

私はこう言っています。データの機密性によって決まるかもしれません。

Keychainは暗号化した後に値を保存しますか(デフォルト動作)?ドキュメントから

暗号化は、GCM(ガロア/カウンタモード)でのAES 128です

Appleは過去にiOSのセキュリティに関する論文を発表した、それかもしれません始めるには良い読書になります。あなたはそれを見つけることができますhere

さらに詳しい情報はkeychainsです。

+0

あなたの答えをありがとう。もう1つ教えてください。 Keychainを使用しないと、その代わりに何がありますか? (私のデータを保護する必要があるためUserDefaults以外) – kinza

+0

私は本当に別のことを知っていませんが、私にとっては標準はキーチェーンを使用することです。おそらく暗号化ライブラリを使用してカスタムのものを作ることができると思うが、それに対して助言をするだろう。 – bubu

+0

おかげで:) – kinza

1

データがファイルシステムに保存される前に自動的に暗号化されるため、キーチェーンは良いソリューションです。 そしてApple docから:

...キーチェーンは、ユーザーがデバイスがロックされたときにロックされ、デバイスのロックを解除し、そしてときに自動的にロックが解除されます。アプリケーションは、独自のキーチェーン項目、またはそのアプリが属するグループと共有されている項目にのみアクセスできます。

+0

答えをありがとうございました。キーチェーンを使用しないと、その代わりに何がありますか? (データを保護する必要があるためUserDefaults以外) – kinza

+0

このライブラリを使用して、データを暗号化することができます。[CryptoSwift](https://github.com/krzyzanowskim/CryptoSwift)を暗号化してデータベースに保存します。 –

+0

よろしくお願いします。ありがとう:) – kinza

関連する問題