2012-07-25 17 views
0

我很好奇如何從網站登錄表單向服務器正確發送用戶名和密碼。登錄認證機制 - 客戶端發送用戶名/密碼的正確方法

如果我只是發送的用戶名和密碼,沒有他們散列到HTTPS服務器是如何暴露的是我在POST請求別人嗅探包,找出您的密碼發送密碼?該服務器已啓用https。

什麼是正確的方法來做到這一點?

回答

3

如果服務器啓用了HTTPS,則任何通過線路傳輸的數據都將被加密。對於只有網絡的攻擊者來說,通過HTTPS甚至可以嗅探到明文密碼而沒有一方注意到這一點非常困難。

HTTPS在傳輸層上使用SSL/TLS,該傳輸層旨在提供加密和身份驗證。作爲握手協議的一部分,SSL/TLS協議針對每個會話協商對稱加密密鑰,並與強大的算法一起使用以保護線路上的數據。

爲了緩解'中間人'攻擊,客戶端和服務器用於建立共享加密密鑰的非對稱密鑰也由證書頒發機構進行加密簽名,以提供信任保證和防止證書的修改。只要證書頒發機構可以信任,就很容易檢查證書本身的簽名和服務器名稱。所有現代瀏覽器都會自動執行此操作,並在證書出現問題時向用戶發出警告。

只要您和您的用戶知道圍繞正確使用SSL的問題(例如,保證您的私鑰安全,並確保您的用戶注意瀏覽器警告),可以通過發送明文密碼SSL連接。

如果您的應用程序的需求甚至無法完成,您可以考慮使用X.509身份驗證(它使用客戶端和服務器端的證書)或Kerberos身份驗證(它不會發送任何密碼電線)。但對於基本的Web應用程序來說,這兩種解決方案都是過分的。

相關問題