對(duì)稱加密僻弹、非對(duì)稱加密、摘要他嚷、數(shù)字簽名蹋绽、數(shù)字證書

作為一個(gè)開發(fā)人員芭毙,或多或少都聽說過對(duì)稱加密、非對(duì)稱加密蟋字、摘要稿蹲、數(shù)字簽名、數(shù)字證書這幾個(gè)概念鹊奖,它們是用來保證在互聯(lián)網(wǎng)通信過程中數(shù)據(jù)傳輸安全的苛聘。有人可能會(huì)有疑惑,我給傳輸數(shù)據(jù)加個(gè)密不就安全了忠聚,為什么還要搞這么多花樣出來设哗?本文主要通過一個(gè)案例來講解這幾個(gè)概念的實(shí)際作用。

在此之前两蟀,我先簡單介紹一下這幾個(gè)概念网梢。

1.名詞解釋

對(duì)稱加密

對(duì)稱加密是指用來加密和解密的是同一個(gè)秘鑰。其特點(diǎn)是加密速度快赂毯,但是秘鑰容易被黑客截獲战虏,所以安全性不高。常見的有AES党涕、DES算法烦感。

非對(duì)稱加密

非對(duì)稱加密是指用來加密和解密的是不同的秘鑰,它們是成對(duì)出現(xiàn)的膛堤,稱為公鑰和私鑰手趣,知道其中一個(gè)秘鑰是無法推導(dǎo)出另外一個(gè)秘鑰的。用公鑰加密的內(nèi)容需要用私鑰才能解密肥荔,用私鑰加密的內(nèi)容需要用公鑰才能解密绿渣。非對(duì)稱加密的特點(diǎn)是安全性高,缺點(diǎn)是加密速度慢燕耿。常見的有RSA算法中符。

摘要

所謂的摘要就是一段信息或者一個(gè)文件通過某個(gè)哈希算法(也叫摘要算法)而得到的一串字符。摘要算法的特點(diǎn)就是不同的文件計(jì)算出的摘要是不同的(也有可能相同誉帅,但是可能性非常非常低)舟茶,比如一個(gè)1G的視頻文件,哪怕只是改動(dòng)其中一個(gè)字節(jié)堵第,最后計(jì)算得到的摘要也是完全不同的吧凉,所以摘要算法通常是用來判斷文件是否被篡改過。其還有一個(gè)特點(diǎn)就是通過摘要是無法推導(dǎo)出源文件的信息的踏志。常用的摘要算法有MD5阀捅、SHA等。

數(shù)字簽名

數(shù)字簽名就是一個(gè)文件的摘要加密后的信息针余。數(shù)字簽名是和源文件一起發(fā)送給接收方的饲鄙,接收方收到后對(duì)文件用摘要算法算出一個(gè)摘要凄诞,然后和數(shù)字簽名中的摘要進(jìn)行比對(duì),兩者不一致的話說明文件被篡改了忍级。

數(shù)字證書

數(shù)字證書是一個(gè)經(jīng)證書授權(quán)中心生成的文件帆谍,數(shù)字證書里一般會(huì)包含公鑰、公鑰擁有者名稱轴咱、CA的數(shù)字簽名汛蝙、有效期、授權(quán)中心名稱朴肺、證書序列號(hào)等信息窖剑。其中CA的數(shù)字簽名是驗(yàn)證證書是否被篡改的關(guān)鍵,它其實(shí)就是對(duì)證書里面除了CA的數(shù)字簽名以外的內(nèi)容進(jìn)行摘要算法得到一個(gè)摘要戈稿,然后CA機(jī)構(gòu)用他自己的私鑰對(duì)這個(gè)摘要進(jìn)行加密就生成了CA的數(shù)字簽名西土,CA機(jī)構(gòu)會(huì)公開它的公鑰,驗(yàn)證證書時(shí)就是用這個(gè)公鑰解密CA的數(shù)字簽名鞍盗,然后用來驗(yàn)證證書是否被篡改需了。

2.案例講解

場(chǎng)景:

張三要找人裝修一個(gè)房子,原則是誰的出價(jià)便宜就給誰裝修般甲,所以對(duì)于報(bào)價(jià)文件就是屬于機(jī)密文件援所。下面我們來看下不同的方式傳輸報(bào)價(jià)文件都會(huì)有什么風(fēng)險(xiǎn)。

2.1 通過對(duì)稱加密有什么風(fēng)險(xiǎn)

現(xiàn)在李四想接這個(gè)裝修的活欣除,他做了一份報(bào)價(jià)文件(文件名:lisi.txt,文件內(nèi)容:報(bào)價(jià)50萬)挪略。然后李四用一個(gè)對(duì)稱秘鑰123對(duì)這個(gè)文件進(jìn)行加密历帚。最后李四將這個(gè)秘鑰和加密的文件發(fā)給張三,張三收到后用這個(gè)秘鑰解密杠娱,知道了李四的報(bào)價(jià)是50萬挽牢。

同時(shí)王五也想接這個(gè)裝修的活,他本來是想報(bào)價(jià)55萬的摊求,但是又擔(dān)心報(bào)價(jià)太高而丟掉這個(gè)活禽拔。恰巧王五是個(gè)黑客高手,于是他截獲了李四發(fā)給張三的秘鑰和加密文件室叉,知道了李四報(bào)價(jià)是50萬睹栖。最后王五將自己的報(bào)價(jià)改成了49萬發(fā)給張三,結(jié)果王五接下了這個(gè)裝修活茧痕。

結(jié)論:
用對(duì)稱加密的話野来,一旦秘鑰被黑客截獲,加密就形同虛設(shè)踪旷,所以安全性比較低曼氛。

2.2 如果用非對(duì)稱加密會(huì)怎么樣

首先張三會(huì)生成一對(duì)秘鑰豁辉,私鑰是zhangsan1,公鑰是zhangsan2舀患,私鑰張三自己保存徽级,將公鑰公布出去。

李四將報(bào)價(jià)文件list.txt用張三公布的公鑰zhangsan2進(jìn)行加密后傳給張三聊浅,然后張三用私鑰zhangsan1進(jìn)行解密得到李四的報(bào)價(jià)是50萬餐抢。

這個(gè)時(shí)候即使王五截獲到了李四發(fā)給張三的報(bào)價(jià)文件,由于王五沒有張三的私鑰狗超,所以他是無法解密文件的弹澎,也就無法知道李四的報(bào)價(jià)。最后王五因?yàn)閳?bào)價(jià)55萬而丟掉了這個(gè)裝修的機(jī)會(huì)努咐。

所以用非對(duì)稱加密是可以保證數(shù)據(jù)傳輸安全的苦蒿。不過這里說一句題外話,既然非對(duì)稱加密安全性高渗稍,那為什么不淘汰掉對(duì)稱加密呢佩迟?其實(shí)關(guān)鍵就在于加密速度,非對(duì)稱加密計(jì)算量很大竿屹,所以加密速度是很慢的报强,如果發(fā)送消息非常頻繁,使用非對(duì)稱加密的話就會(huì)對(duì)性能造成很大影響拱燃。所以在實(shí)際開發(fā)過程中通常是對(duì)稱加密和非對(duì)稱加密結(jié)合使用的秉溉。也就是對(duì)稱加密的秘鑰是用非對(duì)稱加密后發(fā)送的,這樣能保證對(duì)稱加密的秘鑰不被黑客截獲碗誉,然后在發(fā)送業(yè)務(wù)數(shù)據(jù)時(shí)就用對(duì)稱加密召嘶。這樣既保證了安全性也保證了加密速度。

結(jié)論:
非對(duì)稱加密可以防止黑客截獲加密后的內(nèi)容哮缺,安全性高弄跌。

2.3 數(shù)字簽名有什么用

前面都說了非對(duì)稱加密是安全的,那為什么還要數(shù)字簽名呢尝苇?

設(shè)想一下铛只,王五截獲了李四的報(bào)價(jià)文件,王五雖然無法知道李四的實(shí)際報(bào)價(jià)糠溜,但是他完全可以偽造一份李四的報(bào)價(jià)(文件名:lisi.txt淳玩,文件內(nèi)容:報(bào)價(jià)60萬),然后將這份偽造文件用張三公布的公鑰zhangsan2進(jìn)行加密后替換原來的報(bào)價(jià)文件非竿。張三收到后解密發(fā)現(xiàn)報(bào)價(jià)是60萬凯肋,于是張三就以為李四報(bào)的價(jià)是60萬,最后決定將裝修的活給報(bào)價(jià)55萬的王五來做汽馋。

發(fā)生這個(gè)問題的關(guān)鍵就在于張三無法知道報(bào)價(jià)文件是否被篡改過侮东。要解決這個(gè)問題就需要用到數(shù)字簽名圈盔。

首先李四需要自己生成一對(duì)非對(duì)稱加密的秘鑰,私鑰lisi1自己保存悄雅,公鑰lisi2發(fā)給張三驱敲。然后李四對(duì)自己的報(bào)價(jià)文件通過摘要算法得到一個(gè)摘要(假設(shè)摘要是aaa),再用自己的私鑰lisi1加密這個(gè)摘要就得到了報(bào)價(jià)文件的數(shù)字簽名宽闲,最后將加密的報(bào)價(jià)文件和數(shù)字簽名一起發(fā)給張三众眨,張三收到后先用李四發(fā)過來的公鑰lisi2解密數(shù)字簽名得到摘要aaa,然后用自己的私鑰zhangsan1解密加密的文件得到報(bào)價(jià)源文件容诬,然后對(duì)報(bào)價(jià)源文件進(jìn)行摘要算法娩梨,看計(jì)算得到的結(jié)果是不是aaa,如果不是aaa的話就說明報(bào)價(jià)文件被篡改了览徒。

在這種情況下狈定,如果王五截獲了李四發(fā)給張三的文件。王五是無法解密報(bào)價(jià)文件的习蓬。如果王五偽造一份報(bào)價(jià)文件的話纽什,等張三收到后就會(huì)發(fā)現(xiàn)報(bào)價(jià)文件和數(shù)字簽名不匹配。那王五能不能偽造報(bào)價(jià)文件的同時(shí)也偽造簽名呢躲叼?因?yàn)橥跷鍥]有李四的私鑰芦缰,所以沒法對(duì)偽造的報(bào)價(jià)文件的摘要進(jìn)行加密,所以也就沒法偽造簽名枫慷。

結(jié)論:
非對(duì)稱加密雖然能確保加密文件內(nèi)容不被竊取让蕾,但不能保證文件不被篡改。數(shù)字簽名就是用來驗(yàn)證文件是否被篡改過或听。

2.4 數(shù)字證書有什么用

既然非對(duì)稱加密可以保證文件內(nèi)容的安全性探孝,數(shù)字簽名又可以保證文件不被篡改,那還要數(shù)字證書有什么用呢神帅?

我們?cè)賮碓O(shè)想一下,王五自己也生成了一對(duì)用于非對(duì)稱加密的秘鑰萌抵,私鑰是wangwu1找御,公鑰是wangwu2。前面李四將自己的公鑰lisi2發(fā)給張三的過程中被王五給截獲了绍填,王五用自己的公鑰wangwu2替換了李四的公鑰lisi2霎桅,所以張三最后收到的公鑰實(shí)際上是王五的,但張三對(duì)這并不知情讨永。后面李四發(fā)的數(shù)字簽名和加密的報(bào)價(jià)文件都被王五截獲滔驶,并且王五偽造了一份報(bào)價(jià)文件,同時(shí)用自己的私鑰加密報(bào)價(jià)文件的摘要生成偽造的簽名并發(fā)給張三卿闹,張三收到后進(jìn)行驗(yàn)證發(fā)現(xiàn)數(shù)字簽名和報(bào)價(jià)文件是匹配的揭糕,就以為這份報(bào)價(jià)文件是真實(shí)的萝快。

出現(xiàn)這個(gè)問題的關(guān)鍵就在于張三沒法確認(rèn)收到的公鑰到底是不是李四發(fā)的,這個(gè)時(shí)候數(shù)字證書就起到作用了著角。李四到權(quán)威的數(shù)字證書機(jī)構(gòu)申請(qǐng)數(shù)字證書揪漩,證書里面包含了公鑰(lisi2)和公鑰的擁有者(李四)等相關(guān)信息,然后李四將證書發(fā)給張三吏口,張三通過證書里面的信息就可以知道公鑰到底是不是李四的了奄容。

那證書在發(fā)送過程中有沒有可能被王五截獲并篡改呢?要知道證書里面還包含CA的數(shù)字簽名产徊,這個(gè)簽名是證書機(jī)構(gòu)用他們自己的私鑰對(duì)證書的摘要進(jìn)行加密的昂勒,而公鑰是公開的。所以即便王五截獲并篡改了證書內(nèi)容舟铜,他也無法偽造證書機(jī)構(gòu)的簽名戈盈,張三在收到證書后通過驗(yàn)證簽名也會(huì)發(fā)現(xiàn)證書被篡改了。所以到這一步才能保證數(shù)據(jù)傳輸?shù)恼嬲踩?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末深滚,一起剝皮案震驚了整個(gè)濱河市奕谭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痴荐,老刑警劉巖血柳,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異生兆,居然都是意外死亡难捌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門鸦难,熙熙樓的掌柜王于貴愁眉苦臉地迎上來根吁,“玉大人,你說我怎么就攤上這事合蔽』鞯校” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵拴事,是天一觀的道長沃斤。 經(jīng)常有香客問我,道長刃宵,這世上最難降的妖魔是什么衡瓶? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮牲证,結(jié)果婚禮上哮针,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好十厢,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布等太。 她就那樣靜靜地躺著,像睡著了一般寿烟。 火紅的嫁衣襯著肌膚如雪澈驼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天筛武,我揣著相機(jī)與錄音缝其,去河邊找鬼。 笑死徘六,一個(gè)胖子當(dāng)著我的面吹牛内边,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播待锈,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼漠其,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了竿音?” 一聲冷哼從身側(cè)響起和屎,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎春瞬,沒想到半個(gè)月后柴信,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宽气,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年随常,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萄涯。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绪氛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涝影,到底是詐尸還是另有隱情枣察,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布燃逻,位于F島的核電站序目,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏唆樊。R本人自食惡果不足惜宛琅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一刻蟹、第九天 我趴在偏房一處隱蔽的房頂上張望逗旁。 院中可真熱鬧,春花似錦、人聲如沸片效。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淀衣。三九已至昙读,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間膨桥,已是汗流浹背蛮浑。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留只嚣,地道東北人沮稚。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像册舞,于是被迫代替她去往敵國和親蕴掏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359