SSL工作原理是什么?
TLS/SSL的功能實(shí)現(xiàn)主要依賴于三類基本算法:散列函數(shù) Hash、對稱加密和非對稱加密,其利用非對稱加密實(shí)現(xiàn)身份認(rèn)證和密鑰協(xié)商,對稱加密算法采用協(xié)商的密鑰對數(shù)據(jù)加密,基于散列函數(shù)驗(yàn)證信息的完整性。
解決上述身份驗(yàn)證問題的關(guān)鍵是確保獲取的公鑰途徑是合法的,能夠驗(yàn)證服務(wù)器的身份信息,為此需要引入權(quán)威的第三方機(jī)構(gòu)CA。CA 負(fù)責(zé)核實(shí)公鑰的擁有者的信息,并頒發(fā)認(rèn)證"證書",同時(shí)能夠?yàn)槭褂谜咛峁┳C書驗(yàn)證服務(wù),即PKI體系。
基本的原理為,CA負(fù)責(zé)審核信息,然后對關(guān)鍵信息利用私鑰進(jìn)行"簽名",公開對應(yīng)的公鑰,客戶端可以利用公鑰驗(yàn)證簽名。CA也可以吊銷已經(jīng)簽發(fā)的證書,基本的方式包括兩類 CRL 文件和 OCSP。CA使用具體的流程如下:
請問SSL證書的原理是什么,誰能介紹下
SSL證書的工作原理:
客戶端向服務(wù)器請求HTTPS連接
客戶端向服務(wù)器傳送客戶端SSL協(xié)議的版本號(hào),加密算法的種類,產(chǎn)生的隨機(jī)數(shù),以及其他服務(wù)器和客戶端之間通訊所需要的各種信息。
服務(wù)器確認(rèn)并返回證書
服務(wù)器向客戶端傳送SSL 協(xié)議的版本號(hào),加密算法的種類,隨機(jī)數(shù)以及其他相關(guān)信息,同時(shí)服務(wù)器還將向客戶端傳送自己的證書。
客戶端驗(yàn)證服務(wù)器發(fā)來的證書
客戶端利用服務(wù)器傳過來的信息驗(yàn)證服務(wù)器的合法性,服務(wù)器的合法性包括:證書是否過期,發(fā)行服務(wù)器證書的CA 是否可靠,發(fā)行者證書的公鑰能否正確解開服務(wù)器證書的“發(fā)行者的數(shù)字簽名”,服務(wù)器證書上的域名是否和服務(wù)器的實(shí)際域名相匹配。如果合法性驗(yàn)證沒有通過,通訊將斷開;如果驗(yàn)證通過,將繼續(xù)進(jìn)行。
信息驗(yàn)證通過,客戶端生成隨機(jī)密鑰A,用公鑰加密后發(fā)給服務(wù)器
從第③步驗(yàn)證過的證書里面可以拿到服務(wù)器的公鑰,客戶端生成的隨機(jī)密鑰就使用這個(gè)公鑰來加密,加密之后,只有擁有該服務(wù)器(持有私鑰)才能解密出來,保證安全。
服務(wù)器用私鑰解密出隨機(jī)密鑰A,以后通信就用這個(gè)隨機(jī)密鑰A來對通信進(jìn)行加密
這個(gè)握手過程并沒有將驗(yàn)證客戶端身份的邏輯加進(jìn)去。因?yàn)樵诖蠖鄶?shù)的情況下,HTTPS只是驗(yàn)證服務(wù)器的身份而已。如果要驗(yàn)證客戶端的身份,需要客戶端擁有證書,在握手時(shí)發(fā)送證書,而這個(gè)證書是需要成本的。
數(shù)字證書(SSL)的工作原理?
SSL連接始終由客戶端啟動(dòng)。在SSL會(huì)話開始時(shí),將執(zhí)行SSL握手。此握手生成會(huì)話的加密參數(shù)。
解釋原因:
客戶端提交https請求
服務(wù)器響應(yīng)客戶,并把證書公鑰發(fā)給客戶端
客戶端驗(yàn)證證書公鑰的有效性
有效后,會(huì)生成一個(gè)會(huì)話密鑰
用證書公鑰加密這個(gè)會(huì)話密鑰后,發(fā)送給服務(wù)器
服務(wù)器收到公鑰加密的會(huì)話密鑰后,用私鑰解密,回去會(huì)話密鑰
客戶端與服務(wù)器雙方利用這個(gè)會(huì)話密鑰加密要傳輸?shù)臄?shù)據(jù)進(jìn)行通信
請點(diǎn)擊輸入圖片描述
解決辦法:Gworg獲得SSL證書。
SSL證書的工作原理
隨著電子商務(wù)和網(wǎng)上銀行等應(yīng)用的興起,極大地方便了人們的日常生活,受到人們的青睞。
因?yàn)檫@些應(yīng)用都需要在網(wǎng)絡(luò)上進(jìn)行在線交易,它們對網(wǎng)絡(luò)通信的安全性提出了更高的要求。傳統(tǒng)的HTTP協(xié)議不具備安全機(jī)制——采用明文的形式數(shù)據(jù)傳輸、不能驗(yàn)證通信兩方的身份、無法防止傳輸?shù)臄?shù)據(jù)被篡改等,導(dǎo)致HTTP無法滿足電子商務(wù)和網(wǎng)上銀行等應(yīng)用的安全性要求。
Netscape公司提出的安全協(xié)議SSL,利用數(shù)據(jù)加密、身份驗(yàn)證和消息完整性驗(yàn)證機(jī)制,為網(wǎng)絡(luò)上數(shù)據(jù)的傳輸提供安全性保證。可確保數(shù)據(jù)在網(wǎng)絡(luò)上之傳輸過程中不會(huì)被截取及竊聽。
SSL具有以下 作用
1.提供較高的安全性保證
SSL利用數(shù)據(jù)加密、身份驗(yàn)證和消息完整性驗(yàn)證機(jī)制。保證網(wǎng)絡(luò)上傳輸數(shù)據(jù)的安全性。
2.支持各種應(yīng)用層協(xié)議
盡管SSL設(shè)計(jì)的初衷是為了解決萬維網(wǎng)安全性問題,可是因?yàn)镾SL位于應(yīng)用層和傳輸層之間。它能夠?yàn)楦鞣N基于TCP等可靠連接的應(yīng)用層協(xié)議提供安全性保證。
3.部署簡單
目前SSL已經(jīng)成為網(wǎng)絡(luò)中用來鑒別站點(diǎn)和網(wǎng)頁瀏覽者身份,在瀏覽器使用者及Webrver之間進(jìn)行加密通信的全球化標(biāo)準(zhǔn)。SSL協(xié)議已被集成到大部分的瀏覽器中,如IE、Netscape、Firefox等。這就意味著隨意一臺(tái)裝有瀏覽器的計(jì)算機(jī)都支持SSL連接。不須要安裝額外的client軟件。
SSL協(xié)議實(shí)現(xiàn)的安全 機(jī)制
傳輸數(shù)據(jù)的機(jī)密性:網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)非常容易被非法用戶竊取,SSL采用在通信兩方之間建立加密通道的方法保證傳輸數(shù)據(jù)的機(jī)密性。
身份驗(yàn)證機(jī)制:電子商務(wù)和網(wǎng)上銀行等應(yīng)用中必須保證要登錄的Webrver是真實(shí)的,以免重要信息被非法竊取。SSL利用數(shù)字簽名來驗(yàn)證通信對端的身份。
非對稱密鑰算法能夠用來實(shí)現(xiàn)數(shù)字簽名。因?yàn)橥ㄟ^私鑰加密后的數(shù)據(jù)僅僅能利用相應(yīng)的公鑰進(jìn)行解密,因此依據(jù)解密是否成功,就能夠推斷發(fā)送者的身份。如同發(fā)送者對數(shù)據(jù)進(jìn)行了“簽名”。比如。Alice使用自己的私鑰對一段固定的信息加密后發(fā)給Bob,Bob利用Alice的公鑰解密,假設(shè)解密結(jié)果與固定信息同樣。那么就能夠確認(rèn)信息的發(fā)送者為Alice,這個(gè)過程就稱為數(shù)字簽名。
SSLclient必須驗(yàn)證SSLrver的身份,SSLrver是否驗(yàn)證SSLclient的身份。則由SSLrver決定。
使用數(shù)字簽名驗(yàn)證身份時(shí)。須要確保被驗(yàn)證者的公鑰是真實(shí)的,否則。非法用戶可能會(huì)冒充被驗(yàn)證者與驗(yàn)證者通信。如圖1所看到的。Cindy冒充Bob,將自己的公鑰發(fā)給Alice,并利用自己的私鑰計(jì)算出簽名發(fā)送給Alice,Alice利用“Bob”的公鑰(實(shí)際上為Cindy的公鑰)成功驗(yàn)證該簽名,則Alice覺得Bob的身份驗(yàn)證成功,而實(shí)際上與Alice通信的是冒充Bob的Cindy。SSL利用PKI提供的機(jī)制保證公鑰的真實(shí)性。
消息完整性驗(yàn)證:為了避免網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)被非法篡改,SSL利用基于MD5或SHA的MAC算法來保證消息的完整性。
MAC算法是在密鑰參與下的數(shù)據(jù)摘要算法,能將密鑰和隨意長度的數(shù)據(jù)轉(zhuǎn)換為固定長度的數(shù)據(jù)。利用MAC算法驗(yàn)證消息完整性的過程如圖所示。
發(fā)送者在密鑰的參與下,利用MAC算法計(jì)算出消息的MAC值。并將其加在消息之后發(fā)送給接收者。接收者利用相同的密鑰和MAC算法計(jì)算出消息的MAC值。并與接收到的MAC值比較。假設(shè)二者相同。則報(bào)文沒有改變;否則,報(bào)文在傳輸過程中被改動(dòng),接收者將丟棄該報(bào)文。
典型組網(wǎng) 應(yīng)用
HTTPS是基于SSL安全連接的HTTP協(xié)議。HTTPS通過SSL提供的數(shù)據(jù)加密、身份驗(yàn)證和消息完整性驗(yàn)證等安全機(jī)制。為Web訪問提供了安全性保證,廣泛應(yīng)用于網(wǎng)上銀行、電子商務(wù)等領(lǐng)域。
下圖為HTTPS在網(wǎng)上銀行中的應(yīng)用。某銀行為了方便客戶,提供了網(wǎng)上銀行業(yè)務(wù),客戶能夠通過訪問銀行的Webrver進(jìn)行帳戶查詢、轉(zhuǎn)帳等。
通過在客戶和銀行的Webrver之間建立SSL連接,能夠保證客戶的信息不被非法竊取。
SSL 是如何工作的?
SSL的工作原理:當(dāng)一個(gè)使用者在Web上用Netscape瀏覽器漫游時(shí),瀏覽器利用HTTP協(xié)議與Web服務(wù)器溝通。例如,瀏覽器發(fā)出一個(gè)HTTP GET命令給服務(wù)器,想下載一個(gè)首頁的HTML檔案,而服務(wù)器會(huì)將檔案的內(nèi)容傳送給瀏覽器來響應(yīng)。GET這個(gè)命令的文字和HTML檔案的文字會(huì)通過會(huì)話層(Socket)的連接來傳送,Socket使兩臺(tái)遠(yuǎn)程的計(jì)算機(jī)能利用Internet來通話。通過SSL,資料在傳送出去之前就自動(dòng)被加密了,它會(huì)在接收端被解密。對沒有解密鑰的人來說,其中的資料是無法閱讀的。
SSL采用TCP作為傳輸協(xié)議提供數(shù)據(jù)的可靠傳送和接收。SSL工作在Socket層上,因此獨(dú)立于更高層應(yīng)用,可為更高層協(xié)議,如Telnet、FTP和HTTP提供安全業(yè)務(wù)。SSL提供的安全業(yè)務(wù)和TCP層一樣,采用了公開密鑰和私人密鑰兩種加密體制對Web服務(wù)器和客戶機(jī)(選項(xiàng))的通信提供保密性、數(shù)據(jù)完整性和認(rèn)證。在建立連接過程中采用公開密鑰,在會(huì)話過程中使用私人密鑰。加密的類型和強(qiáng)度則在兩端之間建立連接的過程中判斷決定。在所有情況下,服務(wù)器通過以下方法向客戶機(jī)證實(shí)自身:給出包含公開密鑰的、可驗(yàn)證的證明;演示它能對用此公開密鑰加密的報(bào)文進(jìn)行解密。
TLS/SSL工作原理
TLS/SSL的功能實(shí)現(xiàn)主要依賴于三類基本算法:散列函數(shù)hash,對稱加密和非對稱加密,其利用得對稱加密實(shí)現(xiàn)身份認(rèn)證和密鑰協(xié)商,對稱加密算法采用協(xié)商的密鑰對數(shù)據(jù)加密,基于散列函數(shù)驗(yàn)證信息的完整性。
常見的有MD5、SHA1、SHA256,該類函數(shù)特點(diǎn)是函數(shù)單向不可逆、對輸入非常敏感、輸出長度固定,針對數(shù)據(jù)的任何修改都會(huì)改變散列函數(shù)的結(jié)果,用于防止信息篡改并驗(yàn)證數(shù)據(jù)的完整性。
常見的有AES-CBC,DES,3DES,AES-GCM等,相同的密鑰可以用于信息的加密和解密,掌握密鑰才能獲取信息,能夠防止信息竊聽,通信方式是1對1.
對稱加密的優(yōu)勢是信息傳輸1對1,需要共享相同的密碼,密碼的安全是保證信息安全的基礎(chǔ),服務(wù)器和N個(gè)客戶端通信,需要維持N個(gè)密碼記錄,且缺少修改密碼的機(jī)制。
常見的有RSA算法,還包括ECC,DH等算法, 算法特點(diǎn)是,密鑰成對出現(xiàn),一般稱為公鑰和私鑰,公鑰加密的信息只用私鑰才能解開,私鑰加密的東西只能公鑰解開。因此掌握公鑰的不同客戶端之間不能互相解密信息,只能和掌握私鑰的服務(wù)器進(jìn)行加密通信,服務(wù)器可以實(shí)現(xiàn)1對多的通信,客戶端也可以用來驗(yàn)證私鑰的服務(wù)器身份。
非對稱加密的特點(diǎn)是信息傳輸1對多,服務(wù)器只需要維持一個(gè)私鑰就能夠和多個(gè)客戶端進(jìn)行加密通信,但服務(wù)器發(fā)出的信息能夠被所有的客戶端解密,切該算法的計(jì)算復(fù)雜,加密速度慢。
TLS的基本工作方式是:客戶端使用非對稱加密與服務(wù)器進(jìn)行通信,實(shí)現(xiàn)身份驗(yàn)證并協(xié)商對稱加密使用的密鑰,然后對稱加密算法采用協(xié)商密鑰對信息以及信息摘要進(jìn)行加密通信,不同的節(jié)點(diǎn)之間采用的對稱密鑰不同,從而保證信息只能通信雙方獲取。