我已經通過oData設置了可訪問數據的Windows Azure數據庫。我試圖找出如何保護WP7設備和數據庫之間的連接。安全我的意思是我只希望應用的用戶能夠訪問應用內的數據。WP7設備和Windows Azure之間的安全連接
我已經考慮過SSL,但對我來說相當昂貴 - 是否有另一種確保此連接的方法?
謝謝!
我已經通過oData設置了可訪問數據的Windows Azure數據庫。我試圖找出如何保護WP7設備和數據庫之間的連接。安全我的意思是我只希望應用的用戶能夠訪問應用內的數據。WP7設備和Windows Azure之間的安全連接
我已經考慮過SSL,但對我來說相當昂貴 - 是否有另一種確保此連接的方法?
謝謝!
「安全」有多種定義。您將需要身份驗證,因此Azure只允許正確的用戶訪問數據。這通常由WP7應用程序提供的用戶名和密碼處理。
WP7應用程序需要確保它正在與正確的服務器交談。 SSL使用數字證書處理此問題。還有其他的機制,但是使用基於公鑰/私鑰對的東西是最好的,因爲你可以驗證你連接到正確的服務器而不能模擬該服務器。然而,在大多數情況下使用的RSA算法在計算上是昂貴的。
在WP7應用程序和Azure之間發送的數據也需要保密,包括用戶的密碼。這通常由加密處理。您選擇計算上較不昂貴的算法或僅對某些數據進行加密。
在WP7應用程序和Azure之間發送的數據也需要某種形式的篡改檢測。否則有人可能會破壞發送或接收的數據。也許這是你可以接受的應用程序,但它必須是一種攻擊無法輕易再現的方式。正如Shanin's Maxim所說,攻擊者知道系統。
問題是SSL給你所有這些。是的,它可能很昂貴,但它是最好的通用解決方案之一。您可以使用Group Policy, code或PowerShell更改Azure提供的密碼套件。
如果你不想使用SSL,你需要知道你可以犧牲什麼。一般來說,我不會推薦自己製作加密機制或協議,因爲我們僅僅是人類傾向於搞砸它。
謝謝。每個用戶都不會擁有用戶名和密碼,那麼如何檢測「正確」的用戶呢?基本上,我試圖驗證的唯一事情是數據請求的來源是否來自我的應用程序。這個設置是否改變了,你的答案的一部分? – Cameron
您可以在應用程序中嵌入某種形式的祕密,但任何可以訪問源代碼或擁有反彙編程序的人都可以看到。否則,您可以發出已知的用戶密碼,但這實際上是一個用戶名和密碼。不幸的是沒有銀彈。 Azure訪問控制服務可能會自動執行某些操作。 – akton
即使我的申請中有'祕密',無論如何,'中間人'攻擊無法發現'祕密'嗎?我會看看AACS。 – Cameron