2009-07-22 14 views
1

自分のサーバーに通信する際に秘密として使用する文字列がコード内にあります。ハッカーが実行時にバイナリを検索したりメモリを調べたりすることによって、ハッカーがそれを見つけられないようにするために、この文字列を暗号化する最良の方法は何ですか? (可能な場合は、まったく防止する)ObjC/Cで文字列を非表示/暗号化する最も良い方法は何ですか?

可能な限り少なくともこれを難しくするために提案している対策はありますか?

答えて

2

あなたのサーバからの使用状況を監視し、アプリケーションと一致しない使用パターンを検出しようとする方がよいでしょう。コールへのパラメータとしてのアップは、複数のソースから過度に使用されていませんでした。アプリが最初に起動したときに最初の呼び出しを行い、他の呼び出しを許可するために電話IDをサーバーに記録することができます。

問題に近づくには複数の方法がありますが、それらはすべてサーバーベースであり、クライアントの中には何かがハッカーによって見られる可能性があります。クライアントが言うことは、常に嘘として扱われなければならないこともあります。

+1

まだ教えられていないadobeもそうです;) – ewanm89

1

技術的には不可能です。接続する前に解読した直後に、少なくとも暗号化されたコードをコード内で利用できるようになります。解体すると、バイナリから直接データを解読することができます。

これは実際にはiphoneタグを使用した閉鎖型プラットフォームなので、バイナリの単純な16進文字列であっても、それを得ることができる主要なハッカーにすぎません。

+0

可能な限り少なくともこれを難しくするために提案している対策はありますか? – erotsppa

+0

文字列を置くだけで文字列を置くことは意味がありません。それから、サーバーとの通信に常にHTTPSを使用して、詮索することはできません。もちろん、HTTPSを使用するにはパフォーマンスのペナルティを払わなければなりませんが、それを秘密にしておくことは唯一の方法です。 –

+0

さて、なぜこの文字列が必要なのですか?バイナリだけがサーバーに接続するようにしようとしていますか? – ewanm89

関連する問題