2013-08-06 26 views
1

我目前正在爲手機遊戲編寫用戶認證API。我想確保用戶只能從移動應用程序訪問系統。 (也就是說,即使精確的POST參數有效,如果從瀏覽器或CURL(未授權系統)訪問服務器API,服務器也必須拒絕訪問。理想情況下,系統不應該允許重放攻擊。散列和使用時間作爲鹽以防止未經授權的系統訪問和重放攻擊

有沒有人有這樣做的想法或例子?

我正在考慮在客戶端應用程序中添加一個具有當前時間戳和SHA256參數的私有密鑰的每用戶salt,然後這些密鑰將在服務器上進行驗證。這種方式將阻止來自瀏覽器或CURL的訪問,因爲攻擊者需要獲取私鑰才能計算SHA256哈希。鹽(包括時間戳)也將作爲參數之一發送,服務器將獲得時間戳並拒絕訪問,如果它超過特定時間。但是我對安全性以及是否是普通或正確的做法不太確定,因爲我從未設計過安全的應用程序,或者看過之前的源代碼。

感謝您的輸入!

回答

0

這將阻止用戶攔截網絡上的請求並將它們與CURL結合使用。但私鑰和簽名算法都可以爲您的應用程序提取並重新實現,因此此解決方案不會完全安全。

唉,如果沒有一些自定義防篡改硬件發佈給用戶,這裏就不能有完整的安全性。

+0

感謝您的意見!我不會擔心試圖從應用中提取密鑰的玩家太多,因爲我基於幾個類似鍵的字符串即時生成密鑰(其中一些字符串是虛擬的以欺騙黑客) 。我只需要讓大多數球員有點難以迴避 – Zennichimaro