我有服務器和客戶端應用程序通過作爲桌面應用程序的TCP套接字進行通信。我在服務器和客戶端機器之間啓用了Windows IP-sec,這樣我的網絡流量就會被加密。在登錄過程中,客戶端應用程序將密碼散列發送給服務器,服務器在應用服務器端散列之後在數據庫中驗證它是否正確。 現在還有另一種情況,客戶端應用程序通過TCP和服務器從服務器請求SQL服務器密碼以純文本形式發送此密碼,然後客戶端應用程序使用此密碼與SQL服務器連接,與連接其他第三方服務器的客戶端應用程序從服務器獲取密碼,服務器通過Ipsec將其發送爲純文本。我的問題是,這是否安全地通過啓用ipsec的服務器和客戶端發送密碼?如果不是,我還需要做些什麼才能保證安全?通過支持Ipsec的服務器和客戶端以純文本方式傳遞登錄憑證是否安全
-2
A
回答
0
IP-sec提供了加密功能,因此在IP-sec連接中以純文本形式發送密碼在理論上是安全的。
但是,如果可能的話,最好不要發送純文本密碼。
想到的方法是使用SSH密鑰。客戶端會生成密鑰對並將公鑰發送給服務器,服務器會將其轉發給SQL /第三方服務器。在這種情況下,私鑰永遠不必離開客戶端。這很難建立,但從長遠來看應該更安全。 PS:還記得,如果攻擊者有權訪問客戶機(直接或通過計算機上的惡意軟件),則可以從客戶機應用程序中提取密碼/密鑰。因此,始終假定用戶身份驗證爲客戶端將有權訪問這些密鑰,並且將能夠執行所有這些密鑰可用於執行的操作,即使您的客戶端不允許它。
相關問題
- 1. 通過PHP保持登錄憑據服務器端(安全和安全)
- 2. 通過iframe傳遞登錄憑證
- 3. redis是否支持服務器和客戶端之間的UDP
- 4. 安全客戶端服務器通道
- 5. Passport.js是否支持「客戶端憑證流」?
- 6. 從客戶端發送登錄憑證到OData服務
- 7. 通過具有客戶端證書認證的安全http服務器的Websockets
- 8. 如何將用戶證書從服務器安全地傳遞給客戶端?
- 9. 什麼是在認證過程中將登錄名和密碼從客戶端傳遞到服務器的安全方式?
- 10. 客戶端 - 服務器的安全性和認證
- 11. 發送登錄憑證在HTTP報頭到安全服務器
- 12. 通過aSynchronous服務器/客戶端流式傳輸mp3文件
- 13. 本地用戶登錄CRM 2011的客戶端憑證
- 14. 解析服務器:客戶端密鑰:通過Javascript登錄
- 15. 是否可以通過http傳輸客戶端到服務器的數據?
- 16. c#客戶端和java服務器之間的安全通信
- 17. C#客戶端和PHP服務器之間的安全通信
- 18. 是否可以通過客戶端(客戶)登錄來訪問Prestashop的Web服務而不是密鑰?
- 19. 安全傳輸文件從客戶端到服務器
- 20. java客戶端服務器安全
- 21. Flash客戶端 - 服務器安全
- 22. 客戶端 - 服務器REST APIs安全
- 23. 與客戶端安全服務器javascript
- 24. Jersey REST服務器安全和Android客戶端安全
- 25. 春季安全CAS客戶端通過URL登錄
- 26. LinkedIn API - 驗證用戶是否在服務器端登錄
- 27. 使用Android WebView通過客戶端證書連接到安全服務器
- 28. 將SQL登錄憑證傳遞給Delphi Datasnap服務器的最有效方法?
- 29. box.com是否支持自主客戶端或客戶端憑據授權?
- 30. 客戶端和服務器端驗證
是的,這是有道理的。而不是使用SSH密鑰。服務器啓動時會有RSA密鑰對並將公鑰發送給客戶端,客戶端會生成AES隨機密鑰並使用服務器公鑰對其進行加密,然後在客戶端應用程序需要時使用該密鑰對網絡上的SQL密碼進行加密和解密。就像TLS握手一樣。這有意義嗎? –
如果你不想/不能擺脫SQL密碼,那麼它是有道理的。 只有一個細節:使用密鑰協商代替服務器只是組成加密密鑰可能會更好,例如Diffie Hellman https://wiki.openssl.org/index.php/Diffie_Hellman – xhunterx