Https

為什麼 HTTPS 而不是 S-HTTP 成為標準方法?

  • October 22, 2014

為什麼 HTTPS 贏了?有誰知道 Netscape 和 Microsoft 都選擇HTTPS而不是S-HTTP (RFC 2660) 的任何具體原因?

在我看來,S-HTTP 更靈活,不需要單獨的 IP 或埠來提供正確的證書,因為 S-HTTP 能夠利用 Host 標頭。IP空間在當時是一個問題嗎?

我可以看到 HTTPS 比 S-HTTP 加密更多連接數據的論點,但是如果您可以輕鬆判斷使用者訪問哪個網站,因為每個 IP 只有一個站點(大多數時間)並且證書通常會說明無論如何都是什麼域。

**我的回答:**由 Netscape 和 HTTPS 在 1993/1994 年創建的 SSL 在 1994 年左右同時自然地添加到它上面。HTTPS 的最初目標是在不進行任何更改的情況下將現有協議改造成安全性。S-HTTP 直到 1999 年才出現並且需要 HTTP 1.1,所以到那時 HTTPS 已經如此根深蒂固,實施 S-HTTP 幾乎沒有什麼好處。感謝大家。

**編輯:*我在幾個地方看到了稱為“S-HTTP”的 RFC 2817,但這是錯誤的,與@Dave Holland*在他的回答中指出的關於 RFC 2660 的問題無關。我的回答中的某些元素也可以適用於 RFC 2660,並且由於存在相似之處,它可能對比較有用,但我真的不值得在這裡投贊成票。為混亂道歉…

我認為與 HTTPS 相比,對S-HTTP HTTP 升級到 TLS 的普遍指責是,它可以通過攔截但不中繼Upgrade消息來進行降級攻擊(儘管伺服器可以對此做一些事情),並且從從瀏覽器的角度來看,很難確定 URI 是否是安全的(https://http://前綴相比)。(當然,這與使用 TLS 等機制的協議使用的參數完全相反STARTTLS,更類似於升級到 TLS 的S-HTTP HTTP。)在這兩種情況下,必須正確配置協議(正確的密碼套件,.. .) 並且使用者界面必須為使用者提供足夠的資訊來判斷連接是否安全(好證書/壞證書,…)。

更重要的是,這可能與“市場力量”有關,它在歷史上實現了 HTTPS 而不是 S-HTTP,並且認為沒有理由改變(在底層 SSL/TLS 級別,從 SSLv2 遷移到SSLv3 和 TLSv1 及更高版本)。

此外,RFC 2817於 2000 年發布,到那時,HTTPS 已經存在了一段時間。該Upgrade機制還依賴於使用 HTTP 1.1,而 HTTPS 也可以在 HTTP 1.0 上工作(當時,並非所有東西都支持 HTTP 1.1)。

您可能會發現這些感興趣的執行緒:

引用自:https://serverfault.com/questions/180805