在現(xiàn)實(shí)世界中诊杆,你想和朋友聊點(diǎn)騷話又不想被其他人聽(tīng)見(jiàn),這時(shí)為了保證談話類(lèi)容的安全性你會(huì)選擇一個(gè)沒(méi)有其他人的地方或者是降低點(diǎn)音量削解。在網(wǎng)絡(luò)世界中為了保證數(shù)據(jù)傳輸?shù)陌踩耘越ⅲ鸵玫郊用芰恕?/p>
對(duì)稱(chēng)加密
對(duì)稱(chēng)加密采用了對(duì)稱(chēng)密碼編碼技術(shù),它的特點(diǎn)是文件加密和解密使用相同的密鑰铭污,即加密密鑰也可以用作解密密鑰恋日,這種方法在密碼學(xué)中叫做對(duì)稱(chēng)加密算法,對(duì)稱(chēng)加密算法使用起來(lái)簡(jiǎn)單快捷嘹狞,密鑰較短岂膳,且破譯困難,除了數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)磅网,另一個(gè)對(duì)稱(chēng)密鑰加密系統(tǒng)是國(guó)際數(shù)據(jù)加密算法(IDEA)谈截,它比DES的加密性好,而且對(duì)計(jì)算機(jī)功能要求也沒(méi)有那么高。IDEA加密標(biāo)準(zhǔn)由PGP(Pretty Good Privacy)系統(tǒng)使用簸喂。如下圖:
看起來(lái)似乎是妥了毙死,但仔細(xì)一想不對(duì)啊。我通過(guò)網(wǎng)絡(luò)把秘鑰發(fā)給別人的時(shí)候喻鳄,要是秘鑰被人給截取了扼倘,那不是白加密了。當(dāng)然這個(gè)問(wèn)題很早就有人想到了除呵,于是提出了非對(duì)稱(chēng)加密再菊。
非對(duì)稱(chēng)加密
1976年,美國(guó)學(xué)者Dime和Henman為解決信息公開(kāi)傳送和密鑰管理問(wèn)題竿奏,提出一種新的密鑰交換協(xié)議袄简,允許在不安全的媒體上的通訊雙方交換信息腥放,安全地達(dá)成一致的密鑰泛啸,這就是“公開(kāi)密鑰系統(tǒng)”。相對(duì)于“對(duì)稱(chēng)加密算法”這種方法也叫做“非對(duì)稱(chēng)加密算法”秃症。與對(duì)稱(chēng)加密算法不同候址,非對(duì)稱(chēng)加密算法需要兩個(gè)密鑰:公開(kāi)密鑰(publickey)和私有密 (privatekey)。公開(kāi)密鑰與私有密鑰是一對(duì)种柑,如果用公開(kāi)密鑰對(duì)數(shù)據(jù)進(jìn)行加密岗仑,只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密聚请,那么只有用對(duì)應(yīng)的公開(kāi)密鑰才能解密荠雕。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫作非對(duì)稱(chēng)加密算法驶赏。
如下圖:
舉個(gè)栗子:
王胖想給明二娃發(fā)消息炸卑,王胖有一對(duì)公鑰和私鑰,明二娃有一對(duì)公鑰和私鑰煤傍。
王胖發(fā)(你在做啥子呢盖文?)給明二娃。(你在做啥子呢蚯姆?)這段話首先會(huì)用明二娃的公鑰加密五续,加密后的數(shù)據(jù)發(fā)給明二娃后,明二娃就用自己的私鑰解密得到王胖給他發(fā)的消息了龄恋。
明二娃收到消息后回王胖(我在玩游戲)疙驾,(我在玩游戲)這段話就會(huì)用王胖的公鑰加密,王胖收到加密消息后就會(huì)用自己的私鑰解密郭毕,這就完成了對(duì)話荆萤。
對(duì)稱(chēng)加密 + 非對(duì)稱(chēng)加密
非對(duì)稱(chēng)加密的加密解密過(guò)程要比對(duì)稱(chēng)加密慢上不少,要想速度快又想安全,咋整链韭?
于是就有了對(duì)稱(chēng)加密加上非對(duì)稱(chēng)加密偏竟。(1) 生成一個(gè)對(duì)稱(chēng)加密算法的密鑰, 用非對(duì)稱(chēng)加密的方式安全發(fā)給對(duì)方敞峭, (2) 隨后就不用非對(duì)稱(chēng)加密了踊谋, 只用這個(gè)密鑰,利用對(duì)稱(chēng)加密算法來(lái)通信旋讹。
中間人攻擊
仔細(xì)想想非對(duì)稱(chēng)加密殖蚕,感覺(jué)還是有哪里不對(duì)啊。王胖給明二娃發(fā)消息的時(shí)候會(huì)用明二娃的公鑰加密沉迹,王胖哪來(lái)的明二娃的公鑰睦疫,當(dāng)然是是明二娃發(fā)給王胖的。如果明二娃給王胖發(fā)公鑰的時(shí)候被另一個(gè)人黑哥給截取了鞭呕,黑哥截取到明二娃的公鑰后蛤育,將黑哥自己的公鑰發(fā)給王胖。以后王胖給明二娃發(fā)消息的時(shí)候用的就是黑哥的公鑰葫松,黑哥截取到王胖給明二娃發(fā)的消息后就可以用自己的私鑰解密得到消息晨继。由于黑哥手上有明二娃的公鑰慰安,黑哥又可以將消息用明二娃的公鑰加密發(fā)給明二娃祝懂。
王胖和明二娃以為是在安全的通行腾么,殊不知消息已經(jīng)被黑哥悄悄給竊取了。這就是中間人攻擊
那王胖如何才能確保自己收到的是明二娃的公鑰呢珊擂,這就涉及到認(rèn)證問(wèn)題了圣勒,也就是CA認(rèn)證