2013-04-27 65 views
0

如何保護提供私人信息的公共服務信息?保護中間人服務的公共服務信息

該服務根據客戶端發送給它的用戶名和密碼提供一些信息。例如:

請求

<get-my-info> 
<username>username</username> 
<password>password</password> 
</get-my-info> 

響應

<your-info> 
<private-info-a>private-info-a</private-info-a> 
<private-info-b>private-info-b</private-info-b> 
</your-info> 

服務應該是相當容易使用,並允許新的客戶出現,所以迫使客戶端註冊與它關聯的密鑰不是一個選項。

將私鑰放在服務器上併發送公鑰給客戶端來加密敏感信息就足夠了嗎?因此,只有服務器才能解密來自客戶端的消息,並且所有客戶端都將使用相同的公鑰,從而更容易創建新的客戶端。

該服務正在連接一個遺留數據庫,該數據庫提供服務所需的所有信息:用戶名/密碼和私人信息查詢。維護用戶名/密碼方法並避免數據庫更改(例如存儲用戶的密鑰)是首選。

+2

如果您使用標準https,則在中間攻擊時您是安全的,只要您具有啓動每個對話的某種身份驗證和授權步驟即可。您也可以爲每個請求發送安全令牌。 – faester 2013-04-27 14:50:11

+0

@faester,能否請您發表有關HTTPS的答案,以便我可以接受它?謝謝。 – 2013-05-02 12:34:46

回答

0

如果您使用標準https,那麼您在中間攻擊時是安全的,只要您有一些身份驗證和授權步驟即可開始每個對話。您也可以爲每個請求發送安全令牌。

1

你接近....

你可能混淆了兩個概念在這裏,驗證用戶,並保護(加密)的數據。而不會詳細討論安全協議如何工作(https,SSL)。託管服務的服務器需要一個證書,就像您說的那樣,服務器將擁有一個其他人不知道的私鑰,以及一個公鑰任何人都可以知道...... 現在你的客戶將使用服務器公鑰加密數據(瀏覽器將處理此事),這將確保只有服務可以解密數據(使用私鑰),因此數據安全......

,以確保(產地完整性),該服務需要使用(用戶名和密碼)

總之,你將需要購買併爲您的服務器註冊證書來認證客戶端。客戶端必須認證自己