1

アプリに少しセキュリティを追加しようとしています。アプリが接続するサーバーがあり、接続時にバイナリのチェックサムを送信することを考えています。チェックサムが必要なものと一致しない場合。サーバーは接続を許可しません。

アプリのセキュリティを強化する方法についての記事をいくつか読みましたが、多くはバイナリのチェックサムについて言及していますが、実行時にバイナリを実際にチェックサムする方法を説明するコードは見つかりませんでした。

たとえば、これは http://www.seoxys.com/3-easy-tips-to-prevent-a-binary-crack/#ptrace

それ以外に、私が理解していることから、提出時にAppleが署名するので、事前に正確なチェックサムを知る方法はありませんか? ただし、新しいバージョンを送信するときにサーバーのチェックを無効にし、チェックサムがわかっているときにチェックを再度有効にすることができます。完全な解決策ではありませんが、どのような解決策がありますか?

私を正しい方向に向けることができる人はいますか?

4

1 に答える 1

1

要するに、これは非常に難しいことです。その理由は、いったんクライアント コードを制御できないからです。チェックサムですべてが完全に機能している場合でも、攻撃者はバイナリのチェックサムを取得して変更し、そのコードを変更して、新しいチェックサムではなく以前のチェックサムを送信させることができます。実際、変更できる _getBinaryChecksum() のような関数を使用して、おそらく彼/彼女を簡単にするでしょう:-)

これを行う場合は、SHA-256などの暗号学的に強力なハッシュ アルゴリズムを使用してください。Apple が署名するとハッシュが変更されることは正しいため、Apple が署名した後、ファイルのハッシュを使用してサーバーをプログラムする必要があります。また、アプリに何らかの変更を加えるとハッシュに大きな影響が及ぶため、以前のハッシュの履歴リストを保持して、まだアップグレードしていない顧客を排除しないようにする必要があることに注意してください。

同様のことをしようとしているように聞こえるので、これらの StackOverflow の質問を確認することをお勧めします。

iPhone アプリケーションで REST API を使用する場合のセキュリティ

https://stackoverflow.com/questions/15390354/api-key-alternative/15390892#15390892

于 2013-03-22T22:25:54.007 に答える