2011-01-29 95 views
0

我正在開發和在vb.net WINXP +(Windows XP中向上)的應用程序。應用程序必須通過Internet從位於不同PC上的客戶端軟件接收備份數據。但我擔心這個應用程序在互聯網上的安全性。應用網絡安全

這將是實現在2008年vb.net安全性,以確保數據不被截取或干擾的最佳方式?發送之前的數據進行加密,保存它的方式,直到它需要解密之前觀看的

上午思考。

你會建議什麼類型的加密? 有沒有其他方式可以建議您發送這些數據?

回答

1

首先,您的服務器應用程序必須是Windows服務。我想你的服務器總是會啓動的,所以Windows服務是正確的。

Here你可以找到如何使用.NET語言實現Windows服務的參考(這很容易)。

然後確保你必須做一個選擇有關的加密類型的通道要使用:

  • 對稱:AES,3DES,河豚等 等
  • 不對稱:SSL或家庭 取得協議

對稱選項(here是一個示例)具有硬鍵管理,因爲您必須將所有客戶端的密鑰存儲在服務器上。或者您可以使用相同的密鑰,但它不安全,因爲您必須非常好地保護客戶端密鑰。如果攻擊者得到客戶的密鑰,整個安全基礎設施就掌握在敵人手中。

但是你可以爲每個客戶不同的對稱密鑰和服務器選擇是正確的。反正你必須保護客戶的數據和密鑰(模糊等)

不對稱選項(here就是一個例子)是最好的選擇我,因爲你可以有:

  • 客戶端身份驗證服務器 (服務器有客戶的所有 公鑰和驗證符號)
  • 服務器驗證客戶端 (客戶端擁有服務器的公共密鑰 )
  • 通道加密(信道是 與由客戶端握手的對稱會話密鑰 和 服務器通過公共和私有密鑰加密的)

執行最後一個最好的和公知的協議是SSL。你必須找到實現它的API,或者你必須自己去做(如果沒有錯誤和安全問題,實現起來非常困難)。

請記住,您需要SSL通信證書。通過OpenSSL製造的X509適合您的需求,並且易於創建。

1

有你應該考慮在這裏兩回事。

  1. 是否需要在服務器上加密備份數據,在這種情況下,客戶端應在傳輸之前使用對稱密碼(例如AES)加密數據。
  2. 對於傳輸本身,SSL(https)將是一個可靠的解決方案,只有服務器驗證。
+0

感謝您的回覆。兩個問題。 1)。加密是一個好主意,但大多數加密知識都可以很容易地解密。 2)我不知道如何使用vb(vb6或vb.net)進行ssl,特別是ssl2或ssl3。示例代碼或教程可能會有很好的幫助。 – Smith 2011-01-29 14:41:33