我工作的一個遊戲啓動器,具有用於身份驗證的C#前端和後端PHP密碼,我需要從發射器通過未加密的連接將密碼發送到後端。有沒有辦法安全地做到這一點? (密碼以商店數據庫中的blowfish哈希爲開始,價格爲2美元...)發送通過未加密的連接
2
A
回答
4
Establishing an SSL
連接是傳輸密碼等敏感信息最常用的方法之一。爲此,至少您必須爲您的服務器/後端提供密鑰對(證書)。如果您的應用程序本身適用於它而不是瀏覽器,則不必由veriSign簽名。
請注意:您真正要做的是'保密'。這意味着除您和您的預定方可以閱讀郵件內容外,沒有人可以閱讀。在大多數情況下,這與「正確使用加密機制」有關。您還希望能夠抵禦諸如Man in the Middle Attack之類的攻擊。
很多時候開發者只是編程一些能夠工作並考慮安全性的東西;但如果您能夠提前想到這一點,那麼這是一個不容置疑的好處。
編輯:如果你只需要安全地發送一個密碼,這一切,然後@ rich.okelly的回答將是答案。由於您可以在應用程序上對服務器的可信公鑰進行硬編碼,並且只需由客戶端對該密碼進行加密。但是,如果您希望爲更多/所有會話建立安全連接,則可能需要考慮採用SSL解決方案。
1
在我看來,最好的事情(假設連接必須是不安全的),會在發送前對密碼進行加密和解密的後端 - 有效地滾動自己的消息級別的加密。
你會需要一個非對稱加密機制,這是可行的 - 公鑰/私鑰可能是去最簡單的方法。
2
在所有情況下,您的要求是這樣的:
與傳輸數據的不安全的,未加密的方式開始,我怎麼結束了傳輸數據的安全加密手段至少足夠長的時間來發送密碼?
- 互聯網總是作爲一個不安全和未加密的開始!
有很多種方法,rolling your own是其中最差的。選項包括但不限於:
- 使用C#庫像Bouncy Castle
- 創建使用AEAD密碼組的TLS 1.2會話
- 要使用非對稱密碼如RSA,ECDSA,或DSA(用鑰匙> = 2048位)加密密碼
- 使用VPN軟件,如OpenVPN
- 呼叫OpenSSL
- 創建TLS 1。使用AEAD加密套件
- 要使用非對稱密碼像RSA,ECDSA,或DSA(用鑰匙> = 2048比特)來加密密碼
- 呼叫GPG到的口令與你的公開密鑰來加密2會話
在任何情況下,您都必須以某種方式直接更改後端和前端,或者在它們之間添加其他圖層(VPN)。
相關問題
- 1. 通過未加密的連接
- 2. 通過Internet發送未加密的密碼
- 3. 截取通過未加密通道發送的信息
- 4. 未通過IE發送的HTTP頭「連接:關閉」
- 5. 通過unixODBC加密連接到postgresql?
- 6. Android - 通過發送cookie連接到URL
- 7. 通過連接發送數據
- 8. 如何通過tcp連接發送rsa.PublicKey?
- 9. 通過UDP連接發送數據(Bridge)
- 10. 通過tcp連接發送大文件
- 11. 通過netcat連接發送字符串
- 12. 未通過套接字發送XStream
- 13. 連接部分加密 - 部分未通過SSL傳輸
- 14. 通過telnet發送密鑰
- 15. 做odbc連接發送加密的密碼到服務器
- 16. 我該如何解決:您的應用通過未加密的連接發送廣告ID
- 17. 如何通過SignalR持續連接發送連接的組名?
- 18. Java通過套接字發送加密文件
- 19. 通過POST發送的PHP未通過PHP發送
- 20. 通過TCP連接發送XML - 僅發送數據
- 21. 未通過Gmail發送電子郵件 - 未接受用戶名和密碼
- 22. 記錄通過套接字連接發送/接收的內容
- 23. 通過一個連接通過cfmail發送郵件
- 24. 在通過GET發送url之前在PHP中加密密碼
- 25. 我如何加密密碼並通過httpservice發送flex
- 26. 通過套接字連接發送多個命令的問題
- 27. Python扭曲 - 如何通過連接的套接字連接發送數據?
- 28. web.config中的加密和未加密的連接字符串?
- 29. 如何通過直連線連接器發送用戶信息
- 30. 如何解密通過套接字從log4j發送的消息?