2013-03-07 11 views
2

我的移動應用程序使用第三方API訪問一些資源。它有一個公鑰和一個私鑰。對於每個請求,我使用私鑰對某些特定數據進行哈希計算並將結果發送到服務器。服務器將使用我的私鑰驗證結果,以確保請求有效。私鑰不會通過網絡發送。如果私鑰被盜,我的手機應用會使用第三方API嗎?

然而,私鑰應保存在客戶端。我認爲用其他逆向工程技術找到它並不困難。使用私鑰更安全嗎?

如果密鑰被盜,我可以改變的私鑰。但原來的應用程序不能再使用。這是解決這個問題的更好方法嗎?

(我建立我自己的代理服務器可以解決這個問題的部分。有沒有更好的方法?)

回答

5

我建議卸載到自己控制的REST服務的第三方API的訪問。從這一點開始,您提供的私人API訪問密鑰會安全地鎖定在您擁有的計算機上,並且不太可能受到威脅。

然後你只需要更新您的移動應用程序在一個定義良好的接口和地址與您的服務器(可選做某種驗證的,你要處理的流量),再往前就是要求以後適當。這也使您能夠非常細緻地控制要向最終用戶公開的第三方API的特定部分。

這可能是一個非常糟糕的想法(並可能違背您的服務條款)分發用於第三方API訪問的私鑰,因爲惡意客戶可能會通過與服務一起瞎轉引起潛在的問題。

1

我不是很熟悉的事情,但你不應該使用公共密鑰編碼您在客戶端的東西,而不是使用私有密鑰的?

這是有公鑰/私鑰組合的點:公共密鑰是免費提供給大家使用編碼的東西,但一旦被編碼,該消息只能使用私鑰進行解碼;將其安全地存儲在受到良好保護的服務器上。

相關問題