https能防止大家都有公鑰情況下的信息竊取嗎?能防止中間人攻擊嗎?
https能防止中間人攻擊嗎?
如果用戶和攻擊者都有這個網站的公鑰(公鑰是一樣的吧,參考12306),https還能保護普通用戶與伺服器的安全連接嗎?========@iCruiser
是的,公鑰可以保護用戶提交給伺服器的信息(被公鑰加密過),被沒有私鑰的人解密,但是如何保證用戶從伺服器獲得的數據是真實的?比如我作為中間人惡意的篡改了伺服器返回的頁面,加了個js監聽,把用戶輸入表單數據的同時ajax到我伺服器;因為我也有同樣的公鑰,我在搞到用戶的數據後也可以作惡。
接題主的補充繼續往下答。
不知道題主是否見到過這種提示「當前網站部分內容不安全,是否繼續訪問」。
這種提示一般就是網頁上的部分內容為通過SSL/TLS加密,而另一部分是沒有加密/驗證的。如果是全站https, 然後中間人篡改了部分返回內容,這個時候用戶已經收到了提示。(中間人沒有session key和伺服器的私鑰,無法把自己添加的內容加密/簽名)
另外,題主的很大一個誤解是,客戶端是用伺服器端的公鑰來加密自己上傳的內容,而實際上,公鑰僅僅是參與了「驗證伺服器身份」和「產生會話密鑰」這兩部分功能,而真正的會話內容(比如伺服器返回的網頁、表單、郵件正文等)是通過會話密鑰進行加密的。
===================把評論也直接擺上來算了====================
那麼sslstrip為什麼能用?
答:
那不是針對https本身的,而是通過修改路由信息,把https請求重定向到域名相似的http鏈接,還有偽造類似鎖的標記來欺騙用戶。(類似釣魚)
現在很多攻擊不是針對協議本身,而是針對沒有安全常識或者安全常識不足的用戶。
技術上做的再多,也架不住用戶喜歡「簡單」的心。
如果訪問的網站本身就是個黑站,用什麼協議也保不住用戶了。
==============有時間我會做個較為完整的威脅建模,從應用層到IP層=============
用戶數據保護不是單靠一層就能完成的
(待續)
有種技術叫sslstrip啊,跟著 @玄星 連著答題,這項技術被我擺出來好多次了。。
中間人攻擊不一定僅僅是對數據進行監聽,中間人還可以修改數據。sslstrip就是將本應該是HTTPS傳送的數據強行替換成了HTTP協議。
具體的原理我不想再寫一遍了,直接上這個演講:https://youtu.be/MFol6IMbZ7Y
總的來說,網頁對中間人攻擊是毫無防備的,最不濟中間人也能用DNS污染做一個偽造頁面來釣魚。最有效的解決方法就是所有用戶都使用HTTPS Everywhere這類的插件強制使用HTTPS,不過大部分人在遇到HTTPS用不了的時候,為了節約時間,都會默默地去用回HTTP協議,一點防範意識都沒有。那個SR的Ross Ulbricht就是戴了Tor還被人sslstrip掉了。你忘了世界上有樣東西叫做PKI,每一個伺服器的公鑰證書都是由CA簽發的,可以由CA發布的證書驗證至於CA本身的可信程度,由運營CA的負責,審核申請證書的人,以及證書私鑰泄漏後拉黑證書都是信任機制的一部分驗證的同時生成session key,用來加密之後所有的會話通信。照理來說應該整個頁面所有內容都加密,不允許你插個不加密內容進去
可以的,HTTPS就是安裝了ssl證書的,網站會很安全關於SSL證書詳情你可以看看這個ssl證書_https證書_ssl數字證書
中間人看到的數據是密文,可以理解為一堆亂碼,想要改了之後別人還能解密出來不太可能
其實https的安全是基於SSL/TLS證書的驗證,而這種驗證都是出於信任的原則,我們信任瀏覽器,瀏覽器信任一些根證書,如果這些CA機構的根證書的私鑰保管得好沒有泄露給任何其他組織,而且所使用的加密套件不是過期的,那麼這種https網站應該是能夠防止中間人攻擊的(即被攻擊後瀏覽器能夠發現並彈出警告提示)。
https是安裝過SSL證書的訪問方式,不能阻擋攻擊但是可以對信息進行加密傳輸,這樣就算是信息被竊取也是竊取的亂碼屬於加密過的信息,46-256位加密演算法也保證了信息基本不會被破解。SSL免費申請:https://www.zzidc.com/SSL
@玄星 「把https請求重定向到域名相似的http鏈接」
我估計您明白sslstrip是什麼,但是這句話挺容易造成誤解的。準確來講不是重定向,而是壓根就沒發出去https請求。它利用的原理是將HTTP頁面上的"https://"替換成"http://"。或者用戶在地址欄輸入http://mybank.com時,實際上瀏覽器首先請求的是http://mybank.com,即使伺服器有http://mybank.com到 https 的重定向,但是中間人可以阻止http://mybank.com 請求發到伺服器,相反中間人作為代理去向伺服器請求,全程都是http的,這個攻擊就賭用戶不知道https。如果用戶直接輸入 https:// www.alipay.com 中間人無法做sslstrip攻擊。
@Rix Tox 說的HTTPS Everywhere是一個辦法,另一個辦法是HSTS,同樣強制HTTPS,並禁止用戶忽略證書警告。HTTP嚴格傳輸安全
推薦閱讀:
※https 頁面上如何嵌入像優酷這樣的非 https 的外部資源?
※網站從http轉到https需要多久?
※開啟全站HTTPS後 , 用 Firefox 打開提示此連接不受信任,如何徹底解決這個問題?
※登陸所有網頁都是「此網站安全證書存在問題」的情況用https刪除後面的s這個方法解決是什麼原理?
※http/2 和 PWA有何關聯?