1

すべてのゲーム ロジックがローカルで実行される (サーバー バックエンドなし) ゲームを開発しており、ゲーム データ (ユーザー クレジット、ゲーム設定など) の改ざんを困難にしたいと考えています。

現在、ジェイルブレイクされていないデバイスでも、ファイルシステムにアクセスしてゲーム データを変更することが可能です。たとえば、ユーザーのインベントリ統計が plist ファイルに保存されている場合、それらを編集するのは非常に簡単です。

ゲーム設定を plist ファイルからソースコード ファイルに移動してバイナリにコンパイルする場合、設定を変更するには、少なくともバイナリを変更する必要があります。ジェイルブレイクされていない電話では、変更されたバイナリは引き続き実行されますか、それとも Apple のコード署名によりバイナリの変更が妨げられますか?

ゲームデータの改ざんを少し難しくするための、迅速かつ簡単に実装できる対策は何ですか (特にジェイルブレイクされていない電話で)。最適には、変更を加えるために少なくともジェイルブレイクを必要とするある種のセキュリティを提供したいと考えています。ゲームに)?

そう-質問を要約すると:

  1. iOS アプリのバイナリ部分を変更して、ジェイルブレイクされていないデバイスで引き続き実行できますか?
  2. ジェイルブレイクされていないデバイスでゲームデータの改ざんをより困難にするための、迅速かつ簡単に実装できる対策は何ですか?
4

2 に答える 2

0

質問に答えるには:

  1. いいえ。アプリケーションは再度署名する必要があります。

  2. 単純だが解読不可能ではない測定は、データを安全なコンテナー (キー チェーンなど) に安全に保管するか、ディスクに保管する前に自分で暗号化することです。攻撃者は実行中のアプリを監視して、メモリ内の復号化されたデータにアクセスするか、セキュア ストアをクラックする必要があります。

iOS (および Mac OS X) でデータを暗号化および復号化する方法はいくつかあります。1 つの方法は、公式ドキュメントのEncrypting and Decrypting Dataでかなりうまく説明されてい ます。

于 2013-08-08T10:02:29.480 に答える
0

署名が無効になるため、バイナリを変更することはできません。ユーザーに変更してほしくないデータに対して、ある種の暗号化を使用するだけです。これは、必要に応じて単純にすることも複雑にすることもできます。iOS がすぐに使用できる暗号化サービスを提供しているとは思いませんが、それを独り占めする必要はありません。ここではパスワードレベルのセキュリティについて話しているわけではないので、単純なROT13アルゴリズムで十分です。必要に応じて、暗号化されたデータにチェックサムを追加し、チェックサムが一致しない場合は無効にすることもできます。

于 2013-08-08T13:15:12.483 に答える