SSL认证:单向认证与双向认证——密码学笔记(八)
SSL協(xié)議即用到了對(duì)稱(chēng)加密也用到了非對(duì)稱(chēng)加密(公鑰加密),在建立傳輸鏈路時(shí),SSL首先對(duì)對(duì)稱(chēng)加密的密鑰使用非對(duì)稱(chēng)加密,鏈路建立好之后,SSL對(duì)傳輸內(nèi)容使用對(duì)稱(chēng)加密。
對(duì)稱(chēng)加密:速度高,可加密內(nèi)容較大,用來(lái)加密會(huì)話(huà)過(guò)程中的消息
公鑰加密:加密速度較慢,但能提供更好的身份認(rèn)證技術(shù),用來(lái)加密對(duì)稱(chēng)加密的密鑰
一、SSL單向認(rèn)證過(guò)程
1、客戶(hù)端向服務(wù)端發(fā)送SSL協(xié)議版本號(hào)、加密算法種類(lèi)、隨機(jī)數(shù)等信息
2、服務(wù)端給客戶(hù)端返回SSL協(xié)議版本號(hào)、加密算法種類(lèi)、隨機(jī)數(shù)等信息,同時(shí)也返回服務(wù)器端的證書(shū),即公鑰證書(shū)
3、客戶(hù)端使用服務(wù)端返回的信息驗(yàn)證服務(wù)器的合法性,驗(yàn)證通過(guò)后,則繼續(xù)進(jìn)行通信,否則終止通信,驗(yàn)證內(nèi)容包括:
? ? ?a、證書(shū)是否過(guò)期
? ? ?b、發(fā)行服務(wù)器證書(shū)的CA是否可靠
? ? ?c、返回的公鑰是否能正確解開(kāi)返回證書(shū)中的數(shù)字簽名
? ? ?d、服務(wù)器證書(shū)上的域名是否和服務(wù)器的實(shí)際域名相匹配
4、客戶(hù)端向服務(wù)器發(fā)送自己所能支持的對(duì)稱(chēng)加密方案,供服務(wù)器進(jìn)行選擇
5、服務(wù)器在客戶(hù)端提供的加密方案中選擇加密程度最高的加密方式
6、服務(wù)器將選擇好的加密方式通過(guò)明文方式返回給客戶(hù)端
7、客戶(hù)端接收到服務(wù)器返回的加密方案后,使用該加密方案生成產(chǎn)生隨機(jī)碼,用作通信過(guò)程中對(duì)稱(chēng)加密的密鑰,使用服務(wù)端返回的公鑰進(jìn)行加密,將加密后的隨機(jī)碼發(fā)送至服務(wù)器
8、服務(wù)器收到客戶(hù)端返回的加密信息后 ,使用自己的私鑰進(jìn)行解密,獲取對(duì)稱(chēng)加密密鑰。在接下來(lái)的會(huì)話(huà)中,服務(wù)器和客戶(hù)端將會(huì)使用該密碼進(jìn)行對(duì)稱(chēng)加密,保證通信過(guò)程中的信息安全。
二、SSL雙向認(rèn)證過(guò)程
1、客戶(hù)端向服務(wù)器發(fā)送連接請(qǐng)求(SSL協(xié)議版本號(hào)、加密算法種類(lèi)、隨機(jī)數(shù)等信息)
2、服務(wù)器給客戶(hù)端返回服務(wù)器端的證書(shū),即公鑰證書(shū),同時(shí)也返回證書(shū)相關(guān)信息(SSL協(xié)議版本號(hào)、加密算法種類(lèi)、隨機(jī)數(shù)等信息)
3、客戶(hù)端使用服務(wù)端返回的信息驗(yàn)證服務(wù)器的合法性(首先檢查服務(wù)器發(fā)送過(guò)來(lái)的證書(shū)是否是由自己信賴(lài)的CA中心所簽發(fā)的,再比較證書(shū)里的消息,例如域名和公鑰,與服務(wù)器剛剛發(fā)送的相關(guān)消息是否一致,如果是一致的,客戶(hù)端認(rèn)可這個(gè)服務(wù)端的合法身份),驗(yàn)證通過(guò)后,則繼續(xù)進(jìn)行通信,否則終止通信,具體驗(yàn)證內(nèi)容包括:
? ? ?a、證書(shū)是否過(guò)期
? ? ?b、發(fā)行服務(wù)器證書(shū)的CA是否可靠
? ? ?c、返回的公鑰是否能正確解開(kāi)返回證書(shū)中的數(shù)字簽名
? ? ?d、服務(wù)器證書(shū)上的域名是否和服務(wù)器的實(shí)際域名相匹配
4、服務(wù)端要求客戶(hù)端發(fā)送客戶(hù)端的證書(shū),客戶(hù)端會(huì)將自己的證書(shū)發(fā)送至服務(wù)端
5、驗(yàn)證客戶(hù)端的證書(shū),通過(guò)驗(yàn)證后,會(huì)獲得客戶(hù)端的公鑰
6、客戶(hù)端向服務(wù)器發(fā)送自己所能支持的對(duì)稱(chēng)加密方案,供服務(wù)器端進(jìn)行選擇
7、服務(wù)器端在客戶(hù)端提供的加密方案中選擇加密程度最高的加密方式
8、將加密方式通過(guò)使用之前獲取到的公鑰(客戶(hù)的公鑰)進(jìn)行加密,返回給客戶(hù)端
9、客戶(hù)端收到服務(wù)端返回的加密方案密文后,使用自己的私鑰進(jìn)行解密,獲取具體加密方式,而后獲取該加密方式的隨機(jī)碼,用作加密過(guò)程中的密鑰,使用之前從服務(wù)端證書(shū)中獲取到的公鑰進(jìn)行加密后,發(fā)送給服務(wù)端
10、服務(wù)端收到客戶(hù)端發(fā)送的消息后,使用自己的私鑰進(jìn)行解密,獲取對(duì)稱(chēng)加密的密鑰,在接下來(lái)的會(huì)話(huà)中,服務(wù)器和客戶(hù)端將會(huì)使用該密碼進(jìn)行對(duì)稱(chēng)加密,保證通信過(guò)程中信息的安全
三、SSL單向認(rèn)證和SSL雙向認(rèn)證的區(qū)別
SSL單向認(rèn)證只要求站點(diǎn)部署了SSL證書(shū)就行,任何用戶(hù)都可以去訪(fǎng)問(wèn)(IP被限制除外等),只是服務(wù)器提供了身份認(rèn)證。SSL雙向認(rèn)證則是需要服務(wù)端與客戶(hù)端提供身份認(rèn)證,只能是服務(wù)端允許的客戶(hù)去訪(fǎng)問(wèn),安全性相對(duì)高一些。
雙向認(rèn)證SSL協(xié)議要求服務(wù)器和用戶(hù)雙方都有證書(shū)。單向認(rèn)證SSL協(xié)議不需要客戶(hù)擁有CA證書(shū),只需將服務(wù)器驗(yàn)證客戶(hù)證書(shū)的過(guò)程去掉,以及在協(xié)商對(duì)稱(chēng)密碼方案、對(duì)稱(chēng)通話(huà)密鑰時(shí),服務(wù)器發(fā)送給客戶(hù)的是沒(méi)有加過(guò)密的(這并不影響SSL過(guò)程的安全性)密碼方案。這樣,雙方具體的通訊內(nèi)容,就是加過(guò)密的數(shù)據(jù),如果有第三方攻擊,獲得的只是加密的數(shù)據(jù),第三方要獲得有用的信息,就需要對(duì)加密的數(shù)據(jù)進(jìn)行解密,這時(shí)候的安全就依賴(lài)于密碼方案的安全。而幸運(yùn)的是,目前所用的密碼方案,只要通訊密鑰長(zhǎng)度足夠的長(zhǎng),就足夠安全,這也是強(qiáng)調(diào)使用128位加密通訊的原因。
一般Web應(yīng)用都是采用SSL單向認(rèn)證的,原因很簡(jiǎn)單,用戶(hù)數(shù)目廣泛,且無(wú)需在通訊層對(duì)用戶(hù)身份進(jìn)行驗(yàn)證,一般都在應(yīng)用邏輯層來(lái)保證用戶(hù)的合法登入。但如果是企業(yè)應(yīng)用對(duì)接,情況就不一樣,可能會(huì)要求對(duì)客戶(hù)端(相對(duì)而言)做身份驗(yàn)證,這時(shí)就需要做SSL雙向認(rèn)證。
總結(jié)
以上是生活随笔為你收集整理的SSL认证:单向认证与双向认证——密码学笔记(八)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信息论——密码学笔记(七)
- 下一篇: HTTP与HTTPS——密码学笔记(九)