2010-07-06 174 views
2

我不知道很多關於這些類型的事情,所以請原諒NOOBnessiPhone HTTP請求安全

我發送一個HTTP請求到服務器,我想在服務器知道該請求是真實的,所以我有一個帶有證書和密鑰(由服務器預先製作)的p12,與我的應用程序捆綁在一起,當我將請求發送到服務器並獲取挑戰時,我將其提取並用作憑證。

但即時通訊想知道這是多麼安全?我的密碼解密p12是在我的代碼中,因此那個字符串無法被破解我的應用程序二進制文件的人看到?如果是這樣,那麼他們不能破解p12並使用它向我的服務器發出惡意請求?

感謝

+0

大部分是http://stackoverflow.com/questions/3130969/securing-web-api-access/ – sarnold 2010-07-06 11:07:44

回答

1

你有沒有使用HTTPS使用客戶證書認證考慮?這肯定會解決你的身份驗證問題,但我不確定這是如何在iPhone內工作的。 (例如,Safari在選擇客戶端證書的方式方面存在問題。) 這將在傳輸級別(TLS,HTTP下)執行身份驗證。

如果您想在消息級別(在HTTP中)執行此操作,您還可以使用在標頭中使用私鑰簽名的摘要。 對於摘要,摘要已有標準標題(Content-MD5),但由於最近發現的缺陷,我不會推薦MD5。也許嘗試SHA-1或更高版本。 這些摘要不會被簽名,所以您需要一個額外的頭文件來簽名(例如X-Content-RsaWithSha1),如果服務器不知道提前期望哪個證書,可能還需要另一個頭文件來發送證書。 您還需要支持在服務器端讀取和驗證這些自定義標題。

HTTPSec specification解決HTTP級別的消息級安全問題,雖然我不知道任何iPhone實現。

關於p12文件的安全性,如果你的應用程序打算使用它,你將會以某種方式發送它的密碼,如果它被捆綁在應用程序中,所以破解二進制文件也肯定會顯示該密碼,因此私鑰。