數(shù)字簽名编曼,數(shù)字證書和HTTPS


數(shù)字簽名是為了確保信件信息未被篡改靶剑,數(shù)字證書是為了確保獲得的公鑰合法。

數(shù)字簽名

數(shù)字簽名的目的是保證收件人能夠確定此信件的來源正確并且未被篡改過压怠。

數(shù)字簽名的流程如下:

  • 首先發(fā)件人使用HASH函數(shù)眠冈,生成了信件的摘要(Digest)

  • 發(fā)件人使用自己的私鑰對(duì)摘要進(jìn)行加密,從而生成了此封信件的數(shù)字簽名(Signature)

  • 發(fā)件人將此數(shù)字簽名附在信件中菌瘫,發(fā)送給收件人

  • 收件人收到信件后蜗顽,使用公鑰對(duì)數(shù)字簽名進(jìn)行解密,得到了信件摘要(Digest)雨让,從而證明了此信件確實(shí)是由發(fā)件人寄出的(公鑰正確的前提下)雇盖。

  • 收件人再對(duì)信件內(nèi)容進(jìn)行HASH,將得到的結(jié)果與上一步的Digest進(jìn)行對(duì)比栖忠,如果相同則證明此信件未被篡改過崔挖。

數(shù)字簽名的流程中,有一步存在風(fēng)險(xiǎn)庵寞。那就是收件人獲得的公鑰未必正確狸相。為了確保收件人持有的公鑰是正確的,因此引入了數(shù)字證書的概念捐川。

數(shù)字證書

數(shù)字證書是證書中心(CA脓鹃,certificate authority)為公鑰頒發(fā)的憑證。證書中心(CA)用自己的私鑰古沥,對(duì)發(fā)件人的公鑰和一些相關(guān)信息一起加密瘸右,生成"數(shù)字證書"(Digital Certificate)。

數(shù)字證書的流程如下:

  • 發(fā)件人向CA申請(qǐng)數(shù)字證書岩齿,證書中包含了發(fā)件人的個(gè)人信息太颤,證書的信息,發(fā)件人的公鑰

  • 發(fā)件人拿到數(shù)字證書以后盹沈,將簽名和數(shù)字證書同時(shí)附在信件中

  • 收件人收到信件后龄章,使用CA的公鑰解開數(shù)字證書,就可以獲得真實(shí)的公鑰了

數(shù)字證書和HTTPS

HTTPS實(shí)際上就是HTTP協(xié)議和SSL/TSL協(xié)議的組合,可以把HTTPS大致理解為“HTTP over SSL”或“HTTP over TSL”瓦堵。關(guān)于它們的相關(guān)介紹基协,可以參考這篇文章。對(duì)于HTTPS我們應(yīng)該有以下幾個(gè)認(rèn)知:

1)使用HTTPS傳輸數(shù)據(jù)是安全的菇用,因?yàn)閿?shù)據(jù)都是被加密傳輸?shù)模?/p>

2)使用HTTPS需要在服務(wù)器端配置密鑰對(duì)澜驮;

3)使用HTTPS需要花錢找專業(yè)的權(quán)威機(jī)構(gòu)進(jìn)行CA證書的簽發(fā)。

那么使用HTTPS與網(wǎng)站服務(wù)器進(jìn)行交互的流程和原理到底是怎樣的呢惋鸥?讓我們先以逆向思考的方式來進(jìn)行說明:

  • 我們說過杂穷,公鑰加密/非對(duì)稱加密方式雖然安全,但是由于密鑰過長卦绣,加密和解密速度都遠(yuǎn)遠(yuǎn)低于對(duì)稱加密耐量。因此,出于對(duì)性能方面的考慮滤港,HTTPS并不是把所有傳輸?shù)臄?shù)據(jù)都使用公鑰加密的方式進(jìn)行機(jī)密性的保護(hù)廊蜒,而是繼續(xù)使用對(duì)稱加密的方式來加密數(shù)據(jù)。還有一個(gè)原因就是溅漾,使用公鑰機(jī)密算法來保證數(shù)據(jù)機(jī)密性的話山叮,需要通信雙方都要有密鑰對(duì)兒,否則總有一方發(fā)出的數(shù)據(jù)是能被對(duì)方公布的公鑰解密的添履。

  • 既然時(shí)使用對(duì)稱加密的方式加密數(shù)據(jù)屁倔,就需要有一個(gè)通信雙方都知道的加解密所使用的密鑰。HTTPS是通過上面提到的密鑰交換技術(shù)來動(dòng)態(tài)協(xié)商這個(gè)密鑰的暮胧,實(shí)際上就是由客戶端生成一個(gè)隨機(jī)密鑰锐借,然后發(fā)送給服務(wù)器端,這樣就解決了密鑰的管理問題往衷。

  • 既然說HTTPS是安全的钞翔,那么客戶端生成的這個(gè)隨機(jī)密鑰肯定不能以明文的方式發(fā)送給服務(wù)器端啊。是的炼绘,當(dāng)客戶端以https的方式訪問一個(gè)站點(diǎn)時(shí)嗅战,該站點(diǎn)會(huì)自動(dòng)下發(fā)其公鑰信息“沉粒客戶端會(huì)使用這個(gè)公鑰對(duì)產(chǎn)生的隨機(jī)密鑰進(jìn)行加密,然后傳送給服務(wù)器端疟呐。服務(wù)器端以自己的私鑰對(duì)這個(gè)密文進(jìn)行解密脚曾,然后得到這個(gè)密鑰的明文內(nèi)容。至此启具,客戶端與服務(wù)端用于對(duì)稱加密和解密的密鑰協(xié)商與傳輸工作已經(jīng)安全的完成了本讥。

  • 那么要通過網(wǎng)絡(luò)獲取服務(wù)器端的公鑰信息,那么怎么驗(yàn)證該公鑰信息的合法性呢?我們上面說過拷沸,不是所有問題都能依賴技術(shù)來解決的色查。這里要驗(yàn)證公鑰信息的合法性就要依靠CA證書簽發(fā)機(jī)構(gòu)了,網(wǎng)站服務(wù)的提供者必須找一個(gè)大家都信任的機(jī)構(gòu)來對(duì)他提供的公鑰進(jìn)行簽名撞芍,用戶得到一個(gè)網(wǎng)站下發(fā)的公鑰后看到有這個(gè)機(jī)構(gòu)的簽名就認(rèn)為這個(gè)公鑰是合法的秧了,是可信賴的。

  • 那么CA機(jī)構(gòu)的簽名要以什么樣的形式來提供呢序无?實(shí)際上網(wǎng)站服務(wù)器下發(fā)給客戶端(通常是瀏覽器)的公鑰已經(jīng)不僅僅是密鑰對(duì)兒中公鑰的內(nèi)容了验毡,而是包含了證書簽發(fā)機(jī)構(gòu)寫入的其他信息的CA證書。這個(gè)CA證書中包括證書簽發(fā)機(jī)構(gòu)的標(biāo)識(shí)和公鑰的數(shù)據(jù)指紋帝嗡,當(dāng)然還有包含網(wǎng)站服務(wù)提供者的公鑰信息以及證書到期時(shí)間等等晶通。但是,我們前面提到過哟玷,單向加密只能保證數(shù)據(jù)的完整性狮辽,不能保證數(shù)據(jù)機(jī)密性。CA證書的偽造者完全可以偽造公鑰信息并生成相應(yīng)的數(shù)據(jù)指紋巢寡,然后發(fā)送給用戶隘竭。那么現(xiàn)在的問題就變成了要驗(yàn)證CA證書中公鑰的合法性以及CA證書提供者的身份了。貌似問題只是轉(zhuǎn)移了讼渊,而沒有被解決动看。

  • 其實(shí)每個(gè)CA證書的簽發(fā)機(jī)構(gòu)也都有自己的密鑰對(duì)兒,他們放在CA證書中的公鑰的數(shù)據(jù)指紋時(shí)通過自己的私鑰加密過的爪幻,而這些CA證書簽發(fā)機(jī)構(gòu)的公鑰是被各瀏覽器廠商內(nèi)置在瀏覽器內(nèi)部的菱皆。當(dāng)瀏覽器接收到某網(wǎng)站服務(wù)器下發(fā)的CA證書后會(huì)根據(jù)CA證書中簽發(fā)機(jī)構(gòu)的標(biāo)識(shí)來讀取瀏覽器內(nèi)置的相應(yīng)CA簽發(fā)機(jī)構(gòu)的公鑰信息,通過這個(gè)公鑰信息對(duì)公鑰數(shù)據(jù)指紋的密文進(jìn)行解密就可以得到CA證書中包含的公鑰信息的真實(shí)數(shù)據(jù)指紋挨稿。瀏覽器再通過單向加密的方式自己計(jì)算一次CA證書中包含的公鑰信息的數(shù)據(jù)指紋仇轻,兩個(gè)數(shù)據(jù)指紋一致則說明這個(gè)CA證書確實(shí)是該CA機(jī)構(gòu)簽發(fā)的,同時(shí)也證明了CA證書中的公鑰信息沒有被篡改過奶甘。至此篷店,所有的問題就都解決了。

現(xiàn)在我們?cè)賮硪哉5捻樞蛎枋鲆幌率褂肏TTPS與網(wǎng)站服務(wù)器進(jìn)行交互的過程:

1)瀏覽器A與網(wǎng)站服務(wù)器B通過三次握手后建立網(wǎng)絡(luò)連接臭家。

2)瀏覽器A告訴網(wǎng)站服務(wù)器B:我想跟你通過HTTPS協(xié)議進(jìn)行秘密交流疲陕。

3)網(wǎng)站服務(wù)器B把包含自己公鑰信息的CA證書下發(fā)給瀏覽器A,并告訴瀏覽器A這個(gè)CA證書里有我的公鑰信息钉赁,你決定一個(gè)對(duì)稱加密使用的秘鑰串蹄殃,然后通過這個(gè)公鑰加密后發(fā)送給我。

4) 瀏覽器A接收到網(wǎng)站服務(wù)器B下發(fā)的CA證書后你踩,對(duì)這個(gè)CA證書的及其包含的公鑰信息的合法性表示懷疑诅岩。于是根據(jù)CA證書中包含的證書簽發(fā)機(jī)構(gòu)的標(biāo)識(shí)找到自身內(nèi)置的該簽發(fā)機(jī)構(gòu)的公鑰對(duì)CA證書中公鑰的數(shù)據(jù)指紋進(jìn)行解密讳苦,然后再自己計(jì)算一下CA證書中公鑰的數(shù)據(jù)指紋,對(duì)了一下這兩個(gè)數(shù)據(jù)指紋是一致的吩谦。瀏覽器A放心了鸳谜,知道這個(gè)CA證書是合法的,CA證書中的公鑰也沒有被篡改過式廷。

5)然后瀏覽器A通過通過密鑰協(xié)商技術(shù)產(chǎn)生了一個(gè)隨機(jī)的字符串作為與網(wǎng)站服務(wù)器B進(jìn)行秘密通信的密鑰咐扭,并把這個(gè)密鑰通過CA證書中包含的公鑰進(jìn)行加密后發(fā)送給網(wǎng)站服務(wù)器B。

6)網(wǎng)站服務(wù)器B接收到密文格式的密鑰后懒棉,通過自己的私鑰進(jìn)行解密得到密鑰的明文內(nèi)容草描。

7)瀏覽器A和網(wǎng)站服務(wù)器B開始了秘密交流。

參考文章

數(shù)字簽名是什么策严? - 阮一峰的網(wǎng)絡(luò)日志

https://www.cnblogs.com/yyds/p/6992125.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末穗慕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子妻导,更是在濱河造成了極大的恐慌逛绵,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倔韭,死亡現(xiàn)場(chǎng)離奇詭異术浪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)寿酌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門胰苏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人醇疼,你說我怎么就攤上這事硕并。” “怎么了秧荆?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵倔毙,是天一觀的道長。 經(jīng)常有香客問我乙濒,道長陕赃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任颁股,我火速辦了婚禮么库,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘豌蟋。我一直安慰自己廊散,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布梧疲。 她就那樣靜靜地躺著允睹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幌氮。 梳的紋絲不亂的頭發(fā)上缭受,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音该互,去河邊找鬼米者。 笑死,一個(gè)胖子當(dāng)著我的面吹牛宇智,可吹牛的內(nèi)容都是我干的蔓搞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼随橘,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼喂分!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起机蔗,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤蒲祈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后萝嘁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梆掸,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年牙言,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了酸钦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咱枉,死狀恐怖卑硫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庞钢,我是刑警寧澤拔恰,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站基括,受9級(jí)特大地震影響颜懊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜风皿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一河爹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桐款,春花似錦咸这、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酿雪。三九已至,卻和暖如春侄刽,著一層夾襖步出監(jiān)牢的瞬間指黎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國打工州丹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留醋安,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓墓毒,卻偏偏與公主長得像吓揪,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子所计,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容