2011-11-26 40 views
1

我採取一個簡單的登錄系統,在沒有重要的或私人信息的處理或存儲在Web應用程序,我想提供的登錄數據傳輸竊聽保護。保護登錄HTTPS時不可用

我已經運行HTTPS的Apache模塊,但有時不是在選擇,由於端口的訪問限制和其他一些問題,所以,

爲了不過分複雜化的東西,還提供在那些一個相當不錯的保護的情況下,這裏有一個快速和廉價的協議我的思想,我的關於它的最大的問題是,如果(爲什麼呢,如果你願意)是什麼好還是很大的禁忌做這種解決辦法的:

  1. 在登錄表格,客戶端接收2個隨機長度(不能太短不能太長)的文本串(其中服務器生成並保持在$ _SES SION var只是一個檢查)以及服務器的公共gpg密鑰。

  2. 用戶+字符串1和通+字符串2是JavaScript的GPG編碼發送給服務器之前用服務器的公鑰。

  3. 服務器恢復發送的登錄信息GPG與私鑰和去除串解密,哈希值傳遞一個檢查,如果有存儲爲用戶匹配,返回登錄錯誤/授權訪問應用程序與用戶的配置文件,直到結束會議。

我明白這只是保護的登錄信息(而不是針對任何中間人攻擊僞造的服務器,如果我需要這個,我只想逼HTTPS),這與一些基本的會話ID盜竊保護相結合技術應該可以防止被動竊聽者通過竊取憑證來訪問系統,如果我是對的。

我應該實施這個還是浪費時間和資源?

+0

在另一側,登錄,如果用戶存在錯誤信息不指定,也是我有一個密碼恢復系統和登記表,我儘量不透露以同樣的方式任何現有的帳戶信息,一切(包括登錄時高來自相同ip的失敗頻率)被驗證碼保護。 – NotGaeL

+0

爲什麼不簡單地解決導致HTTPS不起作用的問題? – CodeCaster

+0

當然,但我不知道如何解決它時,客戶端訪問的HTTPS端口被阻止,並且我也有這個「你的證書不是由一個受信任的機構頒發/簽名」的問題,包括防病毒警告我必須修復... – NotGaeL

回答

3

保護登錄時,你灑真正的認證令牌(會話ID)幾毫秒之後是沒有意義的。會話ID在整個生命週期內都必須使用HTTPS進行保護,但在任何情況下都不能通過純文本傳輸此值,否則您將明顯違反OWASP a9

攻擊者都喜歡: 「Oah很好,你爲我認證了這個會話,我只是拿這個cookie值並且以該用戶身份驗證,謝謝!」

+0

我知道,但我發現另一個便宜的解決方法是改變每個請求的cookie的價值,所以很難保持一個被盜的會話,是不正確的? – NotGaeL

+0

@elcodedocle這絕不是解決這個問題的方法。客戶端加載的HTML/JS可能受到攻擊者的影響。你需要一個安全的傳輸層,期限。 – rook

+0

好的,3分之3說這是沒有解決方案,那麼沒有解決方案。謝謝大家,夥計! – NotGaeL