我們知道 HTTPS的安全性是由TLS保證的塔淤;
并且通信過(guò)程中具備【機(jī)密性】才菠、【完整心】哥攘、【身份認(rèn)證】依疼、【不可否認(rèn)】這四個(gè)特性就是安全的痰腮;
要搞定機(jī)密性的手段就是【加密】
今天我們說(shuō)的對(duì)稱加密與非對(duì)稱加密就是描述【機(jī)密性】這一特性;
幾個(gè)概念
加密的手段就是把消息通過(guò)某種方式換成誰(shuí)也看不懂的信息律罢,只有通過(guò)固定的鑰匙才能解密出原始的消息膀值;
明文
加密前的消息叫做明文
密文
加密后的消息稱為密文
解密
通過(guò)密鑰解出原始的消息叫做解密
加密算法
加密解密的操作過(guò)程稱為加密算法
密鑰
固定的鑰匙就是密鑰棍丐;
密鑰是一長(zhǎng)串的數(shù)字,單位時(shí)【位(bit)】沧踏;
按照密鑰的使用方式歌逢,加密可以分為【對(duì)稱加密】和【非對(duì)稱加密】
對(duì)稱加密
所謂的對(duì)稱加密就是加密和解密過(guò)程所需要的密鑰是同一個(gè);
只要保證了密鑰的安全性就是保證了通信過(guò)程中具有機(jī)密性了翘狱;
TLS中常用的對(duì)稱加密算法
AES
AES目前非常流行秘案,應(yīng)用最廣泛的對(duì)稱加密,是【高級(jí)加密標(biāo)準(zhǔn)】潦匈,密鑰長(zhǎng)度可以是 128阱高、192、256茬缩;
安全強(qiáng)度高赤惊、性能好;有些硬件也做過(guò)對(duì)其的特殊優(yōu)化凰锡;
ChaCha20
是Google設(shè)計(jì)的未舟,密鑰固定長(zhǎng)度為256位;在軟件上運(yùn)行的性能要超過(guò)AES掂为,曾在客戶端上比較流行裕膀;
后來(lái)ARMV8之后也加入了AES的硬件優(yōu)化,現(xiàn)在優(yōu)勢(shì)和AES比不是很大了菩掏;
對(duì)稱加密的分組模式
所謂的分組模式就是讓算法用固定長(zhǎng)度的密鑰加密任意長(zhǎng)度的明文魂角;
最新的分組模式稱為AEAD。加密的同時(shí)增加了認(rèn)證的功能智绸;常用有【GCM】野揪、【CCM】和【Poly1305】
Example
- AES128-GCM:密鑰長(zhǎng)度為128為的AES算法,使用的分組模式是GCM
- ChaCha20-Poly1305:使用ChaCha20算法瞧栗,分組模式Poly1305斯稳;
非對(duì)稱加密
對(duì)稱加密有一個(gè)很大的問(wèn)題,就是如何把密鑰安全的傳給對(duì)方呢迹恐?因?yàn)榈谝淮螐臋C(jī)密性角度來(lái)說(shuō)挣惰,密鑰的交換就是裸著呢;也容易出現(xiàn)雞生蛋殴边、蛋生雞的問(wèn)題憎茂;
這時(shí)候非對(duì)稱加密就派上用場(chǎng)了,非對(duì)稱加密也稱為公鑰加密算法
兩個(gè)密鑰
非對(duì)稱加密中有兩個(gè)密鑰锤岸,【公鑰】竖幔、【私鑰】;
這兩個(gè)密鑰是不同的是偷,不對(duì)稱的拳氢;
公鑰
公鑰是公開(kāi)給任何人使用的募逞;
公鑰加密的數(shù)據(jù)只能由私鑰能解
密鑰
密鑰是保密的;
私鑰加密的數(shù)據(jù)只能由共鑰能解馋评;
解決問(wèn)題
非對(duì)稱加密能解決密鑰傳遞的問(wèn)題放接,我們?cè)L問(wèn)的網(wǎng)站私鑰是秘密保管的,對(duì)外公開(kāi)公鑰留特;這樣就算消息被黑客截取到了纠脾,那么沒(méi)有私鑰也解不出消息報(bào)文;
TLS中的非對(duì)稱算法
DH磕秤、DSA乳乌、RSA、ECC
RSA是TLS中非對(duì)稱加密的扛把子市咆,本身非對(duì)稱算法就比對(duì)稱算法要復(fù)雜汉操,RSA安全性是基于【整數(shù)分解】;隨著計(jì)算機(jī)算力的提高蒙兰,RSA的長(zhǎng)度也由1024增長(zhǎng)到至少2048位磷瘤;
ECC屬于非對(duì)稱加密的后起之秀,反正挺厲害的搜变,都和數(shù)學(xué)和密碼學(xué)相關(guān)的采缚;
混合加密
綜合上述所講,是不是就可以認(rèn)為使用非對(duì)稱加密替代加密算法了呢挠他?
肯定不是扳抽,因?yàn)榉菍?duì)稱加密都是基礎(chǔ)復(fù)雜的數(shù)學(xué)難題,運(yùn)行速度上很慢殖侵,性能不是很給力贸呢;
僅僅使用非對(duì)稱加密雖然解決了安全,但是速度不行拢军;
描述
其實(shí)對(duì)稱加密的問(wèn)題就是出現(xiàn)在首次密鑰交換的工程是不安全楞陷,我們可以使用非對(duì)稱加密在首次通信時(shí)講對(duì)稱的密鑰進(jìn)行傳遞,之后真正進(jìn)行消息傳遞時(shí)使用對(duì)稱加密茉唉,這個(gè)混合加密即解決了首次密鑰安全的問(wèn)題也解決了通信過(guò)程加解密的性能問(wèn)題固蛾;