Https 協(xié)議簡析及中間人攻擊原理
在下方公眾號后臺回復:面試手冊,可獲取杰哥匯總的 3 份面試 PDF 手冊。
1、基礎知識
1.1 對稱加密算法
對稱加密算法的特點是加密密鑰和解密密鑰是同一把密鑰K,且加解密速度快,典型的對稱加密算法有DES、AES等
對稱加密算法加密流程和解密流程
1.2 非對稱加密算法
非對稱加密算法的特點是加密密鑰K1和解密密鑰K2是不一樣的,他們是一對可互為加解密的密鑰,一個可以公開,叫公鑰;一個自己保留,不能讓其他人知道,叫私鑰。這樣就能比較好的解決信息傳遞的安全性,相對來說加解密速度較慢,典型的非對稱加密算法有RSA、DSA等。問題是如何保證加密用的接收者的公鑰,即如何安全的傳遞公鑰。
非對稱加密算法加密流程和解密流程
1.3 摘要算法、數(shù)字簽名
F(M) = D E(D)=S
F是單向散列函數(shù):即如果已知x,很容易計算F(x),但已知F(x),卻很難算出x
數(shù)字簽名就是用私鑰將摘要加密的結果,這樣能夠保證數(shù)據(jù)的完整性、防篡改、以及不可抵賴性。
摘要算法及數(shù)字簽名過程
1.4 校驗數(shù)據(jù)的完整性
乙方把接收到的發(fā)送方的明文用單向哈希函數(shù)取得摘要值與甲方的公鑰解密甲方的數(shù)字簽名而得到的摘要值進行比較,如果一樣說明信息完整,未受篡改,如果不一樣說明受到篡改
檢驗數(shù)據(jù)完整性過程
1.5 嚴密的數(shù)字加解密、數(shù)字簽名與驗證流程
在發(fā)送過程中首先將甲方的明文取摘要值,再將此摘要值用甲方的私鑰加密得到甲方的簽名,然后將甲的明文、數(shù)字簽名和數(shù)字證書合在一起用甲方隨機生成的對稱密鑰加密得到密文;第二步是將這一隨機生成的對稱密鑰用乙方的公鑰加密后得到數(shù)字信封;最后將密文和數(shù)字信封一起發(fā)送給乙方。
在乙方接收過程中,首先將收到數(shù)字信封用乙方的私鑰解密,得到隨機生成的對稱密鑰,第二步是解密得到的隨機生成的對稱密鑰將密文解密,得到甲方的明文、數(shù)字簽名和數(shù)字證書;第三步將甲方的明文取摘要值與甲方的數(shù)字簽名用甲方的公鑰解密得到的摘要進行比較,從而驗證簽名和檢驗數(shù)據(jù)的完整性。這一流程同時用到對稱算法和非對稱算法,是比較安全的流程
數(shù)字證書在這里起到的作用有:提供甲方的公鑰,保證發(fā)送信息方的不可抵賴性。
嚴密的數(shù)字加解密、數(shù)字簽名和驗證流程
1.6 X.509證書
為了保證證書的一致性,國際電信聯(lián)盟設計了一套專門針對證書格式的標準X.509,其核心提供了一種描述證書的格式。
X.509數(shù)字證書不僅包括用戶名和密碼,而且還包含了與用戶有關的其他信息,通過使用證書,CA可以為證書接收者提供一種方法,使他們不僅信任證書主體的公鑰,而且還信任有關證書主體的其他信息
X.509證書有有效期限、證書在期滿后就會失效。期間CA可能會出于某些原因吊銷證書。要吊銷證書,CA保存并分發(fā)一個吊銷證書的列表,即證書吊銷列表CRL。網(wǎng)絡用戶可以訪問CRL以確定證書的有效性
目前, X.509標準已在編排公共密鑰格式方面被廣泛接受,用戶許多網(wǎng)絡安全的應用程序,其中包括Ipsec, SSL, SET, S/MIME(安全多媒體Internet郵件擴展)
證書中主要域
2、HTTPS協(xié)議詳解
2.1 HTTPS概念說明
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講就是HTTP的安全版。其實現(xiàn)是在HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
SSL協(xié)議位于TCP/IP協(xié)議與各種應用協(xié)議之間,是一種國際標準的加密及身份認證通信協(xié)議,為TCP提供一個可靠的端到端的安全服務,為兩個通訊個體之間提供保密性和完整性。SSL層所處位置如下

SSL示意圖
2.2、SSL協(xié)議特點
①SSL協(xié)議可用于保護正常運行與TCP之上的任何應用協(xié)議,如HTTP、FTP、SMTP或Telent的通信,最常見的是用戶SSL來保護HTTP通信
②SSL協(xié)議的優(yōu)點在于它是應用層協(xié)議無關的。高層的應用協(xié)議能透明的建立于SSL協(xié)議之上
③SSL協(xié)議的應用層協(xié)議之前就完成加密算法、通信密鑰的協(xié)商以及服務器的認證工作。在此之后應用層協(xié)議所傳送的數(shù)據(jù)都會被加密。從而保證通信的安全性。
④SSL協(xié)議使用通信雙方的客戶證書以及CA根證書。允許客戶/服務器應用以一種不能被偷聽的方式通信,在通信雙方建立起了一條安全的、可信任的通信通道。
⑤該協(xié)議使用密鑰對傳送數(shù)據(jù)加密,許多網(wǎng)站都是通過這種協(xié)議從客戶端接收信用卡編號等保密信息。常用于交易過程
2.3、SSL協(xié)議工作的基本流程
Sl工作基本流程圖如下所示
SSl工作基本流程圖
SSL協(xié)議既用到了非對稱加密技術又用到了對稱加密技術。對稱加密技術雖然比公鑰加密技術的速度快,可是非對稱加密技術提供的更好的身份認證技術。SSL的握手協(xié)議非常有效的讓客戶端和服務器之間完成相互之間的身份認證。其主要過程如下:
1)客戶端向服務器傳輸客戶端的SSL協(xié)議版本號,支持的加密算法的種類,產生的隨機數(shù)Key1及其他信息
2)服務器在客戶端發(fā)送過來的加密算法列表中選取一種,產生隨機數(shù)Key2,然后發(fā)送給客戶端
3)服務器將自己的證書發(fā)送給客戶端
4)客戶端驗證服務器的合法性,服務器的合法性包括:證書是否過期,發(fā)行服務器證書的CA是否可靠,發(fā)行者的公鑰能否正確解開服務器證書的”發(fā)行者的數(shù)字簽名”,服務器證書上的域名是否和服務器的實際域名相匹配,如果合法性驗證沒有通過,通信將斷開,如果合法性驗證通過,將繼續(xù)向下進行;
5)客戶端隨機產生一個Pre-Master-Key,然后用服務器的公鑰(從證書中獲得)對其加密,然后將該Pre-Master-Key發(fā)送給服務器
6)服務器接收到Pre-Master-Key,則使用協(xié)商好的算法(H)計算出真正的用戶通信過程中使用的對稱加密密鑰Master-Key=H(C1+S1+PreMaster);
7)至此為止,服務器和客戶端之間都得到Master-Key,之后的通信過程就使用Master-Key作為對稱加密的密鑰進行安全通信;
3、中間人攻擊原理
針對SSL的中間人攻擊方式主要有兩類,分別是SSL劫持攻擊和SSL剝離攻擊
3.1 SSL劫持攻擊
SSL劫持攻擊即SSL證書欺騙攻擊,攻擊者為了獲得HTTPS傳輸?shù)拿魑臄?shù)據(jù),需要先將自己接入到客戶端和目標網(wǎng)站之間;在傳輸過程中偽造服務器的證書,將服務器的公鑰替換成自己的公鑰,這樣,中間人就可以得到明文傳輸帶Key1、Key2和Pre-Master-Key,從而竊取客戶端和服務端的通信數(shù)據(jù);
但是對于客戶端來說,如果中間人偽造了證書,在校驗證書過程中會提示證書錯誤,由用戶選擇繼續(xù)操作還是返回,由于大多數(shù)用戶的安全意識不強,會選擇繼續(xù)操作,此時,中間人就可以獲取瀏覽器和服務器之間的通信數(shù)據(jù)
3.2 SSL剝離攻擊
這種攻擊方式也需要將攻擊者設置為中間人,之后將HTTPS范文替換為HTTP返回給瀏覽器,而中間人和服務器之間仍然保持HTTPS服務器。由于HTTP是明文傳輸?shù)模灾虚g人可以獲取客戶端和服務器傳輸數(shù)據(jù)

source:https://www.cnblogs.com/gordon0918/p/5237717.html
推薦閱讀

