首先要理解非對(duì)稱加密與對(duì)稱加密
(1)非對(duì)稱加密算法需要兩個(gè)密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對(duì),如果用公開密鑰對(duì)數(shù)據(jù)進(jìn)行加密,
只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開密鑰才能解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,
所以這種算法叫作非對(duì)稱加密算法。非對(duì)稱加密算法實(shí)現(xiàn)機(jī)密信息交換的基本過程是:
甲方生成一對(duì)密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對(duì)機(jī)密信息進(jìn)行加密后再發(fā)送給甲方;
甲方再用自己保存的另一把專用密鑰對(duì)加密后的信息進(jìn)行解密。
非對(duì)稱加密原理:
1.A要向B發(fā)送信息,A都會(huì)產(chǎn)生一對(duì)用于加密和解密的公鑰和私鑰。
2.A的私鑰保密,A的公鑰告訴B;B的私鑰保密,B的公鑰告訴A。
3.A要給B發(fā)送信息時(shí),A用B的公鑰加密信息,因?yàn)锳知道B的公鑰。
4.A將這個(gè)消息發(fā)給B(已經(jīng)用B的公鑰加密消息)。
5.B收到這個(gè)消息后,B用自己的私鑰解密A的消息。其他所有收到這個(gè)報(bào)文的人都無法解密,因?yàn)橹挥蠦才有B的私鑰。
(2)對(duì)稱加密算法是應(yīng)用較早的加密算法,技術(shù)成熟。在對(duì)稱加密算法中,數(shù)據(jù)發(fā)信方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,
使其變成復(fù)雜的加密密文發(fā)送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對(duì)密文進(jìn)行解密,
才能使其恢復(fù)成可讀明文。在對(duì)稱加密算法中,使用的密鑰只有一個(gè),發(fā)收信雙方都使用這個(gè)密鑰對(duì)數(shù)據(jù)進(jìn)行加密和解密,
這就要求解密方事先必須知道加密密鑰。對(duì)稱加密算法的特點(diǎn)是算法公開、計(jì)算量小、加密速度快、加密效率高。
不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對(duì)用戶每次使用對(duì)稱加密算法時(shí),都需要使用其他人不知道的惟一鑰匙,
這會(huì)使得發(fā)收信雙方所擁有的鑰匙數(shù)量成幾何級(jí)數(shù)增長(zhǎng),密鑰管理成為用戶的負(fù)擔(dān)。
對(duì)稱加密算法在分布式網(wǎng)絡(luò)系統(tǒng)上使用較為困難,主要是因?yàn)槊荑€管理困難,使用成本較高。
在計(jì)算機(jī)專網(wǎng)系統(tǒng)中廣泛使用的對(duì)稱加密算法有DES、IDEA和AES。
單向認(rèn)證:
Https在建立Socket連接之前,需要進(jìn)行握手。
(1)客戶端向服務(wù)端發(fā)送SSL協(xié)議版本號(hào)、加密算法種類、隨機(jī)數(shù)等信息。
(2)服務(wù)端給客戶端返回SSL協(xié)議版本號(hào)、加密算法種類、隨機(jī)數(shù)等信息,同時(shí)也返回服務(wù)器端的證書,即公鑰證書
(3)客戶端使用服務(wù)端返回的信息驗(yàn)證服務(wù)器的合法性,包括:證書是否過期,發(fā)型服務(wù)器證書的CA是否可靠,返回的公鑰是否能正確解開返回證書中的數(shù)字簽名
,服務(wù)器證書上的域名是否和服務(wù)器的實(shí)際域名相匹配,驗(yàn)證通過后,將繼續(xù)進(jìn)行通信,否則,終止通信
(4)客戶端向服務(wù)端發(fā)送自己所能支持的對(duì)稱加密方案,供服務(wù)器端進(jìn)行選擇。
(5)服務(wù)器端在客戶端提供的加密方案中選擇加密程度最高的加密方式。
(6)服務(wù)器將選擇好的加密方案通過明文方式返回給客戶端,
(7)客戶端接收到服務(wù)端返回的加密方式后,使用該加密方式生成產(chǎn)生隨機(jī)碼,用作通信過程中對(duì)稱加密的密鑰,
使用服務(wù)端返回的公鑰進(jìn)行加密,將加密后的隨機(jī)碼發(fā)送至服務(wù)器。
(8)服務(wù)器收到客戶端返回的加密信息后,使用自己的私鑰進(jìn)行解密,獲取對(duì)稱加密密鑰。
在接下來的會(huì)話中,服務(wù)器和客戶端將會(huì)使用該密碼進(jìn)行對(duì)稱加密,保證通信過程中信息的安全。
雙向認(rèn)證
雙向認(rèn)證和單向認(rèn)證原理基本差不多,只是除了客戶端需要認(rèn)證服務(wù)端以外,增加了服務(wù)端對(duì)客戶端的認(rèn)證。
(1)客戶端向服務(wù)端發(fā)送SSL協(xié)議版本號(hào)、加密算法種類、隨機(jī)數(shù)等信息。
(2)服務(wù)端給客戶端返回SSL協(xié)議版本號(hào)、加密算法種類、隨機(jī)數(shù)等信息,同時(shí)也返回服務(wù)器端的證書,即公鑰證書。
(3)客戶端使用服務(wù)端返回的信息驗(yàn)證服務(wù)器的合法性,包括:
證書是否過期
發(fā)型服務(wù)器證書的CA是否可靠
返回的公鑰是否能正確解開返回證書中的數(shù)字簽名
服務(wù)器證書上的域名是否和服務(wù)器的實(shí)際域名相匹配
驗(yàn)證通過后,將繼續(xù)進(jìn)行通信,否則,終止通信
(4)服務(wù)端要求客戶端發(fā)送客戶端的證書,客戶端會(huì)將自己的證書發(fā)送至服務(wù)端
(5)驗(yàn)證客戶端的證書,通過驗(yàn)證后,會(huì)獲得客戶端的公鑰
(6)客戶端向服務(wù)端發(fā)送自己所能支持的對(duì)稱加密方案,供服務(wù)器端進(jìn)行選擇
(7)服務(wù)器端在客戶端提供的加密方案中選擇加密程度最高的加密方式
(8)將加密方案通過使用之前獲取到的公鑰進(jìn)行加密,返回給客戶端
(9)客戶端收到服務(wù)端返回的加密方案密文后,使用自己的私鑰進(jìn)行解密,獲取具體加密方式,而后,產(chǎn)生該加密方式的隨機(jī)碼,用作加密過程中的密鑰,
使用之前從服務(wù)端證書中獲取到的公鑰進(jìn)行加密后,發(fā)送給服務(wù)端
(10)服務(wù)端收到客戶端發(fā)送的消息后,使用自己的私鑰進(jìn)行解密,獲取對(duì)稱加密的密鑰,在接下來的會(huì)話中,
服務(wù)器和客戶端將會(huì)使用該密碼進(jìn)行對(duì)稱加密,保證通信過程中信息的安全。
- https證書購(gòu)買_域名https證書購(gòu)買_https證書認(rèn)證
- GaussDB認(rèn)證_GaussDB考試認(rèn)證_GaussDB認(rèn)證指南-華為云
- 手機(jī)實(shí)名認(rèn)證查詢_手機(jī)實(shí)名認(rèn)證信息_手機(jī)號(hào)認(rèn)證
- 手機(jī)號(hào)認(rèn)證_手機(jī)實(shí)名認(rèn)證方法_手機(jī)實(shí)名認(rèn)證操作
- 手機(jī)實(shí)名認(rèn)證方法_手機(jī)實(shí)名認(rèn)證查詢_手機(jī)實(shí)名認(rèn)證操作
- 手機(jī)三要素實(shí)名認(rèn)證_手機(jī)實(shí)名認(rèn)證方法_手機(jī)號(hào)認(rèn)證