對(duì)稱加密(Symmetrical Encryption):
對(duì)稱加密,是一種既簡(jiǎn)單速度又快的加密方式,加密與解密使用的都是同一個(gè)密鑰,別名又叫做:?jiǎn)蚊荑€加密;對(duì)稱加密有很多公開(kāi)算法,并且因?yàn)樗屎芨撸赃m用于加密大量數(shù)據(jù)的場(chǎng)合;但其密鑰的傳輸過(guò)程是不安全的,并且容易被破解,密鑰管理起來(lái)也相對(duì)麻煩。
優(yōu)點(diǎn):
- (1)對(duì)稱加密算法的優(yōu)點(diǎn)是算法公開(kāi)。
- (2)計(jì)算量小。
- (3)加密速度快。
- (4)加密效率高。
缺點(diǎn):
- 對(duì)稱加密算法的缺點(diǎn)是在數(shù)據(jù)傳送前,發(fā)送方和接收方必須商定好秘鑰,然后使雙方都能保存好秘鑰。
- 其次如果一方的秘鑰被泄露,那么加密信息也就不安全了。
- 另外,每對(duì)用戶每次使用對(duì)稱加密算法時(shí),都需要使用其他人不知道的獨(dú)一秘鑰,這會(huì)使得收、發(fā)雙方所擁有的鑰匙數(shù)量巨大,密鑰管理成為雙方的負(fù)擔(dān)。
算法:
- 在對(duì)稱加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
非對(duì)稱加密(Asymmetric Encryption):
非對(duì)稱加密算法需要兩個(gè)密鑰來(lái)進(jìn)行加密和解密,這兩個(gè)密鑰是公開(kāi)密鑰(public key,簡(jiǎn)稱公鑰)和私有密鑰(private
key,簡(jiǎn)稱私鑰),如果用公開(kāi)密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開(kāi)密鑰才能解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫作非對(duì)稱加密算法。加密密鑰是公開(kāi)的,密鑰的分配和管理就很簡(jiǎn)單,而且能夠很容易地實(shí)現(xiàn)數(shù)字簽名,因此最適合于電子商務(wù)應(yīng)用的需要;但是如果對(duì)大數(shù)量進(jìn)行操作,計(jì)算量特別大,速度遠(yuǎn)遠(yuǎn)比不上對(duì)稱加密。
一圖簡(jiǎn)單了解非對(duì)稱加密:最后利用會(huì)話秘鑰(棕色)給數(shù)據(jù)進(jìn)行加密
優(yōu)點(diǎn):
- (1)密鑰分配簡(jiǎn)單。
- (2)密鑰的保存量少。
- (3)可以滿足互不相識(shí)的人之間進(jìn)行私人談話時(shí)的保密性要求。
- (4)可以完成數(shù)字簽名和數(shù)字鑒別。
缺點(diǎn):
- (1)公鑰密碼是對(duì)大數(shù)進(jìn)行操作,計(jì)算量特別浩大,速度遠(yuǎn)比不上私鑰密碼體制。
- (2)公鑰密碼中要將相當(dāng)一部分密碼信息予以公布,勢(shì)必對(duì)系統(tǒng)產(chǎn)生影響。
- (3)在公鑰密碼中,若公鑰文件被更改,則公鑰被攻破。
算法:
- 在非對(duì)稱加密算法中常用的算法又:RSA、DSA、ECDSA等。
區(qū)別:
- (1)對(duì)稱加密中加密和解密使用的秘鑰是同一個(gè);非對(duì)稱加密中采用兩個(gè)密鑰,一般使用公鑰進(jìn)行加密,私鑰進(jìn)行解密。
- (2)對(duì)稱加密解密的速度比較快,非對(duì)稱加密和解密花費(fèi)的時(shí)間長(zhǎng)、速度相對(duì)較慢。
- (3)對(duì)稱加密的安全性相對(duì)較低,非對(duì)稱加密的安全性較高。
SSL證書
- 保存在源服務(wù)器的數(shù)據(jù)文件,包含公鑰和私鑰
- SSL證書是數(shù)字證書的一種,因?yàn)榕渲迷诜?wù)器上,也稱為SSL服務(wù)器證書。
- SSL 證書 就是遵守 SSL協(xié)議,由受信任的數(shù)字證書頒發(fā)機(jī)構(gòu)CA,在驗(yàn)證服務(wù)器身份后頒發(fā),具有服務(wù)器身份驗(yàn)證和數(shù)據(jù)傳輸加密功能。
TLS1.2握手過(guò)程
- SSL由從前的網(wǎng)景公司開(kāi)發(fā),有1,2,3三個(gè)版本,但現(xiàn)在只使用版本3
- SSL是TLS的前身,TLS是SSL的標(biāo)準(zhǔn)化后的產(chǎn)物,有1.0 1.1 1.2三個(gè)版本,默認(rèn)使用1.0
三次握手成功后進(jìn)行SSL握手
-
Client Hello(TLS版本,加密套件,Client隨機(jī)數(shù)):Client首先發(fā)送Hello,告訴Server支持的TLS版本以及支持的加密套件,再把Client隨機(jī)數(shù)發(fā)給Server。
-
Server Hello:Server收到Client Hello也給Client發(fā)送Hello,并告知Server確認(rèn)支持的TLS版本以及選擇的加密算法。同樣,也會(huì)把Server隨機(jī)數(shù)發(fā)給Client。
-
Certificate:Server接著再發(fā)送自己的證書給Client,這樣Client瀏覽器就可以對(duì)照自己的證書信任列表來(lái)確認(rèn)這個(gè)服務(wù)器是否可信。
-
Server Key Exchange:發(fā)送完證書,Server就把公鑰發(fā)送給Client。
-
Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message:Client用剛剛收到的公鑰加密pre-master預(yù)主密鑰,并把這個(gè)加密后的隨機(jī)數(shù)發(fā)送給Server。Server收到加密后的預(yù)主密鑰,會(huì)用自己的私鑰進(jìn)行解密從而得到預(yù)主密鑰。
-
Change Cipher Spec: 這一步就是告訴服務(wù)器往后的數(shù)據(jù)就用商議好的算法和密鑰來(lái)加密。
-
Encrypted Handshake Message: 表示Client這邊的TLS協(xié)商已經(jīng)OK了。同時(shí)服務(wù)器也會(huì)發(fā)送這個(gè),表示也TLS準(zhǔn)備完成【此時(shí)完成的握手,可以進(jìn)行數(shù)據(jù)加密交換】文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-438099.html
Client會(huì)用Client隨機(jī)數(shù)、Server隨機(jī)數(shù)和預(yù)主密鑰(也就是三個(gè)隨機(jī)數(shù))計(jì)算出會(huì)話密鑰。Server也同樣計(jì)算出和Client一樣的會(huì)話密鑰。之后,Client和Server就都只使用這個(gè)會(huì)話密鑰對(duì)數(shù)據(jù)進(jìn)行加密。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-438099.html
- 服務(wù)器和客戶端采用非對(duì)稱加解密方式交換對(duì)稱加密的密鑰(隨機(jī)數(shù)3),保證這個(gè)對(duì)稱密鑰不泄露,交換成功后就采用對(duì)稱加密方式。
到了這里,關(guān)于對(duì)稱加密與非對(duì)稱加密、證書、SSL/TLS握手過(guò)程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!