暗号化のためのパスワードやキーをiPhoneアプリケーションのソースコードに保存しないのはなぜですか?暗号化のためのパスワードやキーをiPhoneアプリケーションのソースコードに保存しないのはなぜですか?
コードをリバースエンジニアリングして保存されたキーを見つける可能性はありますか?またはハードコード値が簡単にアクセス可能な場所に保存されている場合
暗号化のためのパスワードやキーをiPhoneアプリケーションのソースコードに保存しないのはなぜですか?暗号化のためのパスワードやキーをiPhoneアプリケーションのソースコードに保存しないのはなぜですか?
コードをリバースエンジニアリングして保存されたキーを見つける可能性はありますか?またはハードコード値が簡単にアクセス可能な場所に保存されている場合
キーをソースコードに保存すると、キーをリバースエンジニアリングすることができます。ジェネレータ関数を使ってキーを "生成"させることでこれをさらに難しくすることができますが、これはまだ難読化のレベルです。本当に動機づけられた攻撃者がそれを乗り越えることができます。このアプローチのもう一つの欠点は、ジェネレータ関数がいくつかのハードウェア定数に由来するキーを生成しない限り、アプリケーションのすべてのインスタンスで同じキーが機能することです。
この場合も、アプリケーションの安全性とセキュリティへの取り組みを分析する必要があります。セキュリティは常にトレードオフです。攻撃の確率やコストが非常に低い場合、セキュリティに多くの努力を費やすことは価値がありません。
より安全なアプローチは、ランダムなキーを作成してから、デバイス上の安全なストレージに保管することです。私はiOS APIを酷く熟知しておらず、そのような機能が提供されているかどうかはわかりません。 Windowsでは、例えば、これを提供するDPAPIと呼ばれるものがあります。
ユーザーの手に入るものはすべてアクセス可能です。キーの難読化は作業の一部ですが、問題を完全に排除するわけではありません。
はい、可能性があります。 – jtbandes