題:
除了HTTPS之外,為什麼還要提供HTTP?
lofidevops
2017-04-18 18:00:56 UTC
view on stackexchange narkive permalink

我正在設置一個新的Web服務器。除了TLS / HTTPS,我還在考慮實施嚴格傳輸安全性和其他HTTPS強制執行機制。

這些似乎都是基於我自己的假設除了 https://www.example.com 之外,還提供 http://www.example.com 。為什麼我不只提供HTTPS?也就是說,是否有基於安全性的理由來提供HTTP服務-例如,如果我不設置HSTS,有人可以欺騙 http://www.example.com 嗎?

如果擔心的話,非瀏覽器在獲取內容時會遇到更多麻煩。例如,諸如craigslist之類的網站在mashup上蓬勃發展。對於非人類的“用戶”,我看不到打開一些http部分會帶來什麼危害;他們不在乎網上誘騙,xss或隱私,您甚至不需要提供HTML ...
@dandavis-真的有問題嗎?如果Craigslist僅使用HTTPS,難道不是每個人都將獲取腳本轉換為HTTPS嗎?大多數HTTP客戶端庫都包含HTTPS支持。
如果您運行沒有問題的純HTTPS網站,人們應該如何散佈有關HTTPS的FUD是不切實際的?想想,伙計!那麼可憐的黑客又想到處都沒聽說過HTTPS的祖母又如何呢?就像您要推廣更安全的網絡之類。
@Johnny:不像HTTP那樣支持HTTP,僅此而已。它會更好的...
@dandavis這讓我感到困惑……所有主流瀏覽器都應該開始* HTTP *之前嘗試使用HTTP ...這將解決大量安全問題...
六 答案:
Anders
2017-04-18 18:58:32 UTC
view on stackexchange narkive permalink

出於可用性的原因,您需要提供從所有HTTP URL到HTTPS的重定向。否則,初次訪問者只要在瀏覽器的URL欄中輸入 example.com/some/page ,就會遇到連接錯誤。

提供重定向並不能使您更脆弱。在瀏覽器中沒有您的HSTS條目的用戶仍然會發出HTTP請求。 HTTP上是否存在真正的服務與中間的人無關。

因此,您需要運行HTTP服務器,但是除了重定向之外,它不需要響應任何其他內容

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/57580/discussion-on-answer-by-anders-why-should-i-offer-http-in-addition-to-https)。
Ronny
2017-04-18 18:44:48 UTC
view on stackexchange narkive permalink

為什麼我不只提供https服務?

主要原因是瀏覽器的默認行為向後兼容性

默認行為

當最終用戶(即不了解協議或安全性)在瀏覽器中鍵入網站地址時,瀏覽器默認使用HTTP。有關為什麼瀏覽器選擇此行為的更多信息,請參見此問題

因此,用戶很可能無法訪問您的網站。

向後兼容性

使用舊系統和舊瀏覽器的某些用戶可能不支持HTTPS或更可能沒有最新的根證書數據庫 ,或不支持某些協議。

在這種情況下,它們將無法訪問網站或出現安全警告。您需要定義最終用戶的安全性是否足以強制使用HTTPS。

許多網站仍在偵聽HTTP,但會自動重定向到HTTPS,並忽略 really 的用戶瀏覽器。

如果我沒有設置HSTS,有人可以欺騙 http://www.example.com嗎?

如果攻擊者想欺騙 http://www.example.com ,則它需要以某種方式控制域或控制IP地址。

我想你的意思是:攻擊者可以執行中間人攻擊嗎?

在那種情況下可以,但是即使有或沒有HSTS:

  • 沒有HSTS :攻擊者可以輕鬆地位於服務器和用戶中間,並且是主動的(即,修改內容)或被動的(即,竊聽)

  • 使用HSTS :用戶首次嘗試使用HTTP訪問站點時,攻擊者可能會迫使用戶使用HTTP。但是,攻擊者可以執行攻擊的時間窗口有限。

您應該做什麼?

與許多網站一樣,您應該允許HTTP連接,並使服務器將用戶重定向到HTTPS版本。這樣,您將覆蓋瀏覽器的默認行為,並確保您的用戶使用HTTPS版本。

沒有正確協議或根證書的舊系統將無法訪問該網站(或至少會發出警告) ),但這不是問題。

結論

禁用HTTP弊大於利。它並不能真正提供更多的安全性。

如果保護大多數資源的用戶無法訪問該資源,那麼為保護該資源而添加的任何安全性都是無用的。如果最終用戶由於其瀏覽器默認為HTTP而無法訪問您的網站,並且您不偵聽HTTP連接,那麼有什麼好處?

只需執行HTTP 301重定向到HTTPS版本。

相關問題

我指的是粗體的“ With HSTS”項目符號,它表示如果服務器提供從HTTP到HTTPS的重定向,則安全性會降低。
-1
另外,某些用戶可能無法訪問`https`網站。例如,中國以前一直在阻止所有Wikimedia項目的https流量。
只是對單詞選擇的更正:用戶不是輸入“ URL”,而是輸入“網址”。(沒有默認方案/協議之類的東西。)
我將@OskarSkog更改為“網站地址”,謝謝。
請注意,對於“使用HSTS”,預加載的HSTS實際上甚至可以保護您站點的首次訪問者免受MITM攻擊。
Taul
2017-04-18 23:40:49 UTC
view on stackexchange narkive permalink

投票贊成的答案非常好。如果您完全關閉HTTP,則將犧牲可用性而不會對安全造成重大影響。

但是,您可以使用HSTS Preload選項減輕這種情況。預加載網站意味著您向瀏覽器供應商註冊了域名,他們將對他們的瀏覽器進行硬編碼,以僅通過HTTPS訪問您的網站。這意味著,如果用戶嘗試通過HTTP訪問您的網站,則瀏覽器會將請求更改為HTTPS。他們的用戶無需先獲取HSTS標頭即可獲得安全保護。他們將始終通過安全通道與您建立聯繫。

現在,這不能保護正在使用尚未更新其僅HTTPS網站列表的瀏覽器的用戶。即使使用預加載,我也建議不要為使用舊版本或未更新瀏覽器的少數人關閉HTTP。

但是請注意,預加載是永久的!要退出預加載列表非常困難。

要進入預加載列表,請執行以下操作: https://hstspreload.org/

退出預載列表將解決什麼問題?我的意思是,為什麼會有人想要?(我問的是一個技術問題;不是問問題。我的理解是,如果他們出於某種原因決定“停止”為HTTPS服務,他們只會想離開。)
@Wildcard正確。我能想到的一個用例是,如果某個域是由X者註冊的,則他們讓該域失效或以其他方式將該域轉讓給Y者。現在,Y者被迫使用https,即使他們可能出於諸如成本之類的原因而不想這樣做,其拖放式網站創建者的技術限制等。
@Erik,謝謝。因此,從非常長期的設計角度來看,我懷疑HSTS的預加載是通過*故意選擇*永久實現的,最終最終目標是*實際上*棄用HTTP,因此流行的瀏覽器將要求您進行“高級設置””菜單甚至將其啟用。至少我們可以做夢。:)
@Wildcard我同意這可能是目標。我想知道,默認情況下還是僅通過IPv6,這將首先在Internet範圍內發生?;)兩者都是需要的,但都是艱苦的戰鬥……
Scott Hemle對此有一些很好的信息。請閱讀有關此內容的博客頁面:https://hpkp.scotthelme.co.uk/death-by-copy-paste/ 簡而言之,斯科特給出了三個原因。1)不考慮對您管理的所有子域的影響2)不考慮對您允許第三方管理的所有子域的影響。3)複製/粘貼標頭配置以包括預加載(然後有人在獲得您許可或未經您許可的情況下註冊您的網站)。
Root
2017-04-18 18:05:02 UTC
view on stackexchange narkive permalink

您不必這樣做。

某些較舊的瀏覽器和操作系統(通常是並行運行)沒有較新的證書根權限,但是它們通常不支持較新的HTTPS

您可能擁有不支持HTTPS,自定義腳本等的設備。

沒有人可以欺騙HTTP,因為DNS記錄屬於您,A記錄指向您的特定IP地址(在理想情況下)。

您要做的只是為了保持兼容性,就是這樣。

“沒有人不能欺騙http” –您是說“沒有人可以”還是“每個人都可以”?“ DNS記錄屬於您,而一條記錄則指向您的特定IP地址” —通過這種推理,永遠不會發生中間人攻擊,因此不需要證書頒發機構和信任鏈。
“沒有人可以欺騙http,因為DNS記錄屬於您” –是。除非有人欺騙了DNS條目,否則可以欺騙它。
user3496510
2017-04-18 22:12:54 UTC
view on stackexchange narkive permalink

您應該僅支持HTTP以支持向後兼容。並確保您在後端服務器中正確重定向到HTTPS。最好的方法是僅對您的主頁或任何不包含敏感信息的頁面提供HTTP支持。您不得支持對用戶在身份驗證後可以訪問的頁面的HTTP請求。

即使有設備(IoT)正在訪問服務器的敏感數據,也必須強制它們使用TLS(許多當前設備可以存儲您的證書並創建TLS連接)。請記住,3.0之前的SSL版本確實存在許多漏洞,例如poodlebug等。因此,請從Web服務器禁用所有以前的版本,並僅允許> TLS 1.1。

您最好實現HSTS。我建議您也考慮在您的站點上實施HPKP的可行性。

Russell Hankins
2017-04-22 01:19:21 UTC
view on stackexchange narkive permalink

除了https之外,我還使用http來實現兩個目的:

  1. 將http重定向到https網站。如果有人在瀏覽器中輸入您的網站名稱,就可以使用。
  2. 我為http創建了一個單獨的網站,用於有人嘗試不使用點com名稱訪問該網站的情況。 (真正的用戶不會這樣做。)此網站將顯示一條簡單的Coming Soon消息。它還會將其IP地址附加到IP表拒絕列表中,以從服務器中永久禁止該IP。 stops strike>可以降低使用 masscan的黑客的速度。 (我找到了masscan,方法是存儲我阻止的所有IP的用戶代理字符串,以向另一位程序員證明這不是Google掃描,但實際上,進行IP掃描的外國黑客正在尋找可嘗試入侵的Web服務器)。 / li> ol>


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...