2009-11-19 164 views
1

我想阻止用戶篡改我iPhone應用中生成的數據,例如高分。所以我正在考慮使用相關數據的MD5散列,並將安全鹽硬編碼到應用程序中。當數據讀回時,我創建一個新的散列並將其與舊散列進行比較。如果有差異,我知道有人正在擺弄這些數據。iPhone應用程序中的安全漏洞有多安全?

我猜測總有一種方法讓人們繞過它,但這種方法是否會成功;

  • 非常困難。
  • 整蠱。
  • 完全沒有區別。
+0

爲了真正評估這些舊信息,需要了解更多信息,它存儲在哪裏以及它的安全性如何。 – zaph 2009-11-19 12:05:50

回答

2

我會說棘手,但不是很困難。使用調試器並觀察salt被加載到內存中仍然非常簡單,但它絕對足以阻止絕大多數用戶。

不幸的是,這是一個典型的DRM問題,對於充分動機的攻擊者沒有解決方案。你最好的選擇是儘可能地創造更多的障礙,這樣不值得有人時間。

也許提交的高分也可能包含遊戲狀態的一些細節,這將允許您檢查可能給用戶帶來不一致的不一致。例如,如果你看到一個用戶達到了1,000,000點,但只達到了2級,那麼你知道一些事情了!

快速獲勝至少會打敗運行strings的用戶對付你的二進制文件,以確保鹽串看起來不明顯;不要使用「鹽鹼」!

+1

MD5的長度很短,真的不應該用在新設計中,應該使用SHA-1或一個或更新的表兄弟,例如SHA-256。 – zaph 2009-11-19 11:47:27

+0

在這種情況下,問題不是碰撞,而是鹽本身的隱藏。 用戶使用調試器提取鹽比計算衝突要容易得多(或試圖通過蠻力提取鹽),因此這不是一個可行的攻擊矢量。 – jnic 2009-11-19 12:00:16

+0

SHA-1沒有鹽,沒有一個是需要的,所以沒有黑客發現鹽的問題。鹽與MD5一起使用,因爲結果很短。 – zaph 2009-11-19 12:24:02