Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>There are at least two easier approaches here (both complimentary) that avoid encrypting values or in-memory databases:</p> <p><b>#1 - ipa crack detection</b></p> <p>Avoid the technical (and legal) hassle of encrypting the database and/or the contents and just determine if the app is pirated and disable the network/scoring/ranking aspects of the game. See the following for more details:</p> <p><a href="http://thwart-ipa-cracks.blogspot.com/2008/11/detection.html" rel="noreferrer">http://thwart-ipa-cracks.blogspot.com/2008/11/detection.html</a></p> <p><b>#2 - data integrity verification</b></p> <p>Alternatively store a HMAC/salted hash of the important columns in each row when saving your data (and in your initial sqlite db). When loading each row, verify the data against the HMAC/hash and if verification fails act accordingly.</p> <p>Neither approach will force you to fill out the encryption export forms required by Apple/US government.</p> <p><b>Score submission</b></p> <p>Don't forget you'll need to do something similar for the actual score submissions to protect against values coming from something other than your app. You can see an implementation of this in the cocos2d-iphone and cocoslive frameworks at <a href="http://code.google.com/p/cocos2d-iphone/" rel="noreferrer">http://code.google.com/p/cocos2d-iphone/</a> and <a href="http://code.google.com/p/cocoslive/" rel="noreferrer">http://code.google.com/p/cocoslive/</a></p> <p><b>Response to comments</b></p> <p>There is no solution here that will 100% prevent data tampering. If that is a requirement, the client needs to be view only and all state and logic must be calculated on a trusted server. Depending on the application, extra anti-cheat mechanisms will be required on the client. </p> <p>There are a number of books on developing massively-multiplayer games that discuss these issues.</p> <p>Having a hash with a known secret in the code is likely a reasonable approach (at least, when considering the type of applications that generally exist on the App Store).</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload