我目前正在使用不允許https連接的免費主機,由於我的網站沒有託管任何敏感或私人內容,因此我不會升級到付費託管服務具有。但是由於我的網站確實處理密碼,並且由於許多用戶對不同的網站使用相同的密碼,我希望在處理這些密碼時提供合理的安全/加密數量。使用Javascript/PHP驗證公共密鑰
從Secure login: public key encryption in PHP and Javascript,看起來最大的問題在使用密碼的公鑰/私鑰加密技術來保護它,當它通過網絡發送的將是一個攻擊者可以修改發送到客戶端的公鑰,然後攔截加密的密碼,用攻擊者的私鑰解密,然後使用該站點的公鑰將其加密,然後將其發送到站點,實質上首先破壞了加密它的整個點。
當然,任何加密都比不加密更好,但是我希望盡我所能無需購買支持HTTPS的託管服務,這使我能夠回答我的問題。
是否有任何可靠的方法來防止(或只是檢測到&提醒用戶)中間人從替換他們自己的公鑰取代我的網站的公鑰?或者有什麼方法可以驗證服務器發送的公鑰是否真的是服務器的公鑰?如果無法驗證這一點,那麼SSL/TLS如何工作,以及他們如何驗證密鑰(如果SSL不使用公鑰/私鑰,我對此有相當有限的理解)。
我已經明白,與使用TLS/SSL相比,加密表單數據是一項極其薄弱的做法,並且不會阻止那些決定破解加密的人,因此請避免出現任何「你應該使用HTTPS「 - 只有評論(儘管如果你知道一個免費的託管服務提供商,允許HTTPS,我會更樂意聽到他們)
我還沒有嘗試過,但這已經出現了幾次:http://www.switchonthecode.com/tutorials/secure-authentication-without-ssl-using-javascript – Brad 2012-08-02 20:26:26
[This](http:///security.stackexchange.com/questions/1322/can-you-secure-a-web-app-from-firesheep-without-using-ssl)可能會有所幫助。 (從security.stackexchange.com鏈接)。 – Matt 2012-08-02 20:27:29
謝謝布拉德和馬特 - 我會看看那些:) – MatthewSot 2012-08-02 20:35:41