關(guān)于SSL的一些總結(jié)
HTTPS
HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。
HTTPS和HTTP的區(qū)別
? 1.https協(xié)議需要到ca申請證書,一般免費(fèi)證書很少,需要交費(fèi)。
? 2.http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議。
? 3.http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
? 4.http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。
https的實現(xiàn)原理
有兩種基本的加解密算法類型
? 1. 對稱加密:密鑰只有一個,加密解密為同一個密碼,且加解密速度快,典型的對稱加密算法有DES、AES等;
? 2. 非對稱加密:密鑰成對出現(xiàn)(且根據(jù)公鑰無法推知私鑰,根據(jù)私鑰也無法推知公鑰),加密解密使用不同密鑰(公鑰加密需要私鑰解密,私鑰加密需要公鑰解密),相對對稱加密速度較慢,典型的非對稱加密算法有RSA、DSA等。
https通信的優(yōu)點
? 1. 客戶端產(chǎn)生的密鑰只有客戶端和服務(wù)器端能得到;
? 2. 加密的數(shù)據(jù)只有客戶端和服務(wù)器端才能得到明文;
? 3. 客戶端到服務(wù)端的通信是安全的。
SSL
SSL介紹
? SSL安全套接層協(xié)議(Secure Socket Layer)
SSL協(xié)議工作的基本流程
? 1.接通階段:客戶機(jī)通過網(wǎng)絡(luò)向服務(wù)器打招呼,服務(wù)器回應(yīng)
? 2.密碼交換階段:客戶機(jī)與服務(wù)器之間交換雙方認(rèn)可的密碼,一般選用RSA密碼算法
? 3.會談密碼階段:客戶機(jī)器與服務(wù)器間產(chǎn)生彼此交談的會談密碼
? 4.檢驗階段:客戶機(jī)檢驗服務(wù)器取得的密碼
? 5.客戶認(rèn)證階段:服務(wù)器驗證客戶機(jī)的可信度
? 6.結(jié)束階段:客戶機(jī)與服務(wù)器之間相互交換結(jié)束的信息
通俗的講:
? 1. 首先服務(wù)器去CA機(jī)構(gòu)申請一個整證書,這個證書就是非對稱加密算法RSA,有公鑰和私鑰;
? 2. 客戶端手里掌握著對稱加密算法AES,DES, 客戶端給服務(wù)器發(fā)送hello消息;
? 3. 服務(wù)器給客戶端回復(fù)消息hello,并且返回一個服務(wù)器掌握的公鑰給客戶端;
? 4. 客戶端生成一個隨機(jī)數(shù),這個隨機(jī)數(shù)就是對稱加密的密鑰,然后把密鑰用服務(wù)器給的公鑰進(jìn)行非對稱加密,加密完成后發(fā)送給把結(jié)果發(fā)送給服務(wù)器;
? 5. 此時服務(wù)器得到客戶端發(fā)送給它的結(jié)果,然后用非對稱解密,拿到客戶端的對稱密鑰;
? 6. 客戶端發(fā)送加密的數(shù)據(jù),服務(wù)器得到就可以解密.