HTTPS網站是通過獨特的一個端口來進行加密傳輸,防止傳輸中的內容被竊取,
一般用HTTPS協議做網站的,一般是大型網站,以及支付網站,用戶數據比較重要的一些網站,
HTTPS證書要單獨購買,什麼是HTTPS呢?超文本傳輸安全協議( HTTPS )是一種通過計算
機網絡進行安全通信的傳輸協議。HTTPS 經由 HTTP 進行通信,但利用 SSL/TLS 來加密數據包。
HTTPS 開發的主要目的,是提供對網站服務器的身份認證,保護交換數據的隱私與完整性。
網站被攻擊原理如下圖所示:
1、首先攻擊者會對目標網站以及主機進行中間人攻擊,從而讓流量走自己的電腦(這與
burpsuit 的原理根本就是一樣的)。eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站安
全檢測、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
burpsuit 的原理根本就是一樣的)。eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站安
全檢測、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
2、此時客戶端便會與攻擊者的主機進行 https 加密通信,網站源主機也會與 攻擊者進行
https證書加密通信。
https證書加密通信。
3、雖然用戶此時進行的是https協議通信,但是所有的數據傳輸對於攻擊者來說都是明文的,
跟ARP中間人攻擊是一個道理,偽造IP來進行攻擊,這個是偽造了證書。
跟ARP中間人攻擊是一個道理,偽造IP來進行攻擊,這個是偽造了證書。
當https網站被攻擊時,我們來看一下攻擊者是如何攻擊的吧,分8個步驟,我來一一列舉,大家
看一下:
看一下:
一、第一步最重要的是要先建立TCP的三次握手連接,連接建立之後由客戶端向瀏覽器發起https
連接的協議請求。
連接的協議請求。
二、連接請求成功之後,client客戶端會發送自己所有支持的 ciphersuit ( 包括:對稱加密算法、
非對稱加密算法、單向加密算法、偽隨機數算法 )給目標服務器進行加密算法的協商,主機
會自動選擇他們倆都支持的最安全的ciphersuit 協議進行加密安全通信。
非對稱加密算法、單向加密算法、偽隨機數算法 )給目標服務器進行加密算法的協商,主機
會自動選擇他們倆都支持的最安全的ciphersuit 協議進行加密安全通信。
三、然後主機會發送自己的https證書到客戶端(證書用於驗證主機的身份,同時也包含了
主機以及網站的各種相關信息)。eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站
安全檢測、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
主機以及網站的各種相關信息)。eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站
安全檢測、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
四、客戶端在接收到主機的證書之後,會驗證該https證書是否是由本地根證書中所信任的頒發
機構頒發的證書。證書裡面會有證書頒發機構的私鑰簽名,只有正確的私鑰才能被客戶端保存的
公鑰解密,這就保證了證書的安全性;證書中還會存在主機的公鑰,只有擁有私鑰的主機才
能解密公鑰加密的內容,這就保證了後續網站之間傳輸過程的安全性。
機構頒發的證書。證書裡面會有證書頒發機構的私鑰簽名,只有正確的私鑰才能被客戶端保存的
公鑰解密,這就保證了證書的安全性;證書中還會存在主機的公鑰,只有擁有私鑰的主機才
能解密公鑰加密的內容,這就保證了後續網站之間傳輸過程的安全性。
五、驗證了證書的合法性之後,客戶端會使用剛才協商的偽隨機數算法生成對稱密鑰,然後將對
稱密鑰通過主機的公鑰進行加密之後,再發送給主機。
稱密鑰通過主機的公鑰進行加密之後,再發送給主機。
六、主機接收到公鑰加密的內容之後,會用自己的私鑰進行解密,從而獲取對稱密鑰,此時通
信雙方都得到了對稱密鑰就可以進行加密通信了。
信雙方都得到了對稱密鑰就可以進行加密通信了。
七、通信時客戶端會先將數據用對稱密鑰加密,然後又進行hash計算,然後用 服務器的公鑰將得
到的 hash 值進行加密,將該 hash 值和加密之後的密文發送給 server 端,發送數據過程類似hash
( private_encrypt ( data ) ) +
到的 hash 值進行加密,將該 hash 值和加密之後的密文發送給 server 端,發送數據過程類似hash
( private_encrypt ( data ) ) +
public_encrypt ( hash ) --> server。
八、主機接收到客戶端傳來的數據包之後,會先用自己的私鑰解密密文得到 hash1 ,然後用
hash1與沒有加密的 hash 進行比較,相同則代表傳輸的數據沒有被篡改,然後再用之前協商的
單向加密算法解密 hash ,用對稱密鑰解密密文得到 data server 發送數據過程類似:hash
( private_encrypt
( data ) ) +
hash1與沒有加密的 hash 進行比較,相同則代表傳輸的數據沒有被篡改,然後再用之前協商的
單向加密算法解密 hash ,用對稱密鑰解密密文得到 data server 發送數據過程類似:hash
( private_encrypt
( data ) ) +
private_encrypt ( hash ) --> client。
那麼網站被攻擊該如何防護呢?
首先要配置最安全的 https。
再一個就是網站用到的所有密碼不僅要靠 https協議來加密進行傳輸,在前端也要使用加密控件對
密碼進行加密,這樣就算被降級攻擊也拿不到明文的密碼,破解也需要很長時間。
密碼進行加密,這樣就算被降級攻擊也拿不到明文的密碼,破解也需要很長時間。
主機端防禦:
配置路由規則,綁定 IP/MAC 以防被 ARP 欺騙。謹慎打開瀏覽器提醒證書錯誤的網站,但是筆
者曾遇到過某部門網站居然都會出現證書報錯,不得已還是要打開。
者曾遇到過某部門網站居然都會出現證書報錯,不得已還是要打開。