リモートSSL認証に使用されるパスワード変数がある場合、ソースコードに保存するのは安全ですか?Objective Cソースコードの機密情報の保護
NSString * password = @"password";
良い方法はありますか?
更新:混乱のため申し訳ありませんが、私はないではなく、私は私たち自身のバックエンドを呼び出すために使用されるパスワードを格納しています、ユーザーのパスワードを格納しています、すべてのアプリが同じパスワードを使用します。
リモートSSL認証に使用されるパスワード変数がある場合、ソースコードに保存するのは安全ですか?Objective Cソースコードの機密情報の保護
NSString * password = @"password";
良い方法はありますか?
更新:混乱のため申し訳ありませんが、私はないではなく、私は私たち自身のバックエンドを呼び出すために使用されるパスワードを格納しています、ユーザーのパスワードを格納しています、すべてのアプリが同じパスワードを使用します。
私の新しい答え:
は、バックエンド、期間にアクセスするには、静的なパスワードを使用しないようにしてください。パスワードが何であるかを決定したくない場合はどうなりますか?ユーザー名を&のパスワードにしてみませんか?
公開鍵または埋め込み証明書を使用して、アプリのみがバックエンドサーバにアクセスできるようにすることも考えられます。
私のオリジナルの答え:あなたはキーホルダーを知って取得したいよう
が鳴ります。
http://maniacdev.com/2011/07/tutorial-how-to-use-the-ios-keychain-to-store-names-and-passwords/
そしてhere is a related question that talks about the security of Keychain under iOS:ここ
はそれについて話すのチュートリアルです。
あなたは、すべてのユーザーのための店の静的パスワードをプログラムを持っているが、代わりに各ユーザーが認証のために彼/彼女のアカウント&パスワードを設定して、キーチェーンにその原料を保存する必要はありません。
NO!
アプリをビルドします。あなたはプレーンテキストであなたの秘密パスワードを参照してくださいよ...ターミナルに移動しstrings
を入力し、端末と押しリターンにあなたの実行可能ファイルをドラッグ:)
あなたは、そのハッシュを格納する必要があります。
実行可能ファイルを 'strings'端末にドラッグしましたが、ロードを続けると何も見えません – Howard
アプリケーション内に含まれるテキストは、簡単に抽出できます。この周りに実際の方法はありません。strings
ツールを使用すると、誰でもアプリに静的に埋め込まれたすべてのテキストコンテンツを見ることができます。しかし、あなたの文字列をいくつかの静的な文字列に分割し、正しい順序で連結すると、アプリに含まれるパスワードをリバースエンジニアリングするのがはるかに難しくなります。
似たような質問(How Safe is Information Contained within iPhone App Compiled Code)、具体的にはその質問に対する私の答えを、私が意味することのより深い説明のために見ることをお勧めします。 (その質問に対するニムロッドのコメントも興味深い。)
私は私の質問を更新した、私はユーザーのパスワードを格納していない代わりに、私は私たちのバックエンドを呼び出すためのパスワードを保存している、ユーザーはそれを知らない。 – Howard
あなたの元の質問が少しはっきりしていればいいでしょう。私は私の答えを修正しました。 –
ありがとう!しかし、たとえ公開鍵を使っていても、ユーザーが検出するのは簡単ですが、コード内のどこに隠す方が良いかと考えています。私はそれを行うには完璧な方法を持っている必要はありません、文字列として格納するよりもちょうど良いだろう。 – Howard