<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          圖解 | 數(shù)字簽名和數(shù)字證書(shū)的前世今生

          共 6585字,需瀏覽 14分鐘

           ·

          2020-09-19 03:08

          ? 前言

          這是 2020 年一個(gè)平平無(wú)奇的周末,小北在家里刷著 B 站,看著喜歡的 up 主視頻。

          在一旁玩手機(jī)的女朋友突然問(wèn)”你知道數(shù)字證書(shū)是來(lái)干啥的不,為啥瀏覽器提示證書(shū)不可信?”

          你要問(wèn)這個(gè),那我可來(lái)勁了,于是乎從加密、數(shù)字簽名一直講到了數(shù)字證書(shū)。。。終于把女朋友講睡著了,獨(dú)自寫(xiě)下這篇文章。

          正文

          如果你能非常清晰的回答出以下問(wèn)題,可以直接拉到最下面幫我點(diǎn)個(gè)贊~,把時(shí)間用去陪陪女朋友:

          1. 非對(duì)稱(chēng)加密中公私鑰都可以加密,那么什么時(shí)候用公鑰加密,什么時(shí)候用私鑰“加密” ?

          2. 什么是數(shù)字簽名,數(shù)字簽名的作用是什么?

          3. 為什么要對(duì)數(shù)據(jù)的摘要進(jìn)行簽名,而不是直接計(jì)算原始數(shù)據(jù)的數(shù)字簽名?

          4. 什么是數(shù)字證書(shū),數(shù)字證書(shū)解決了什么問(wèn)題?

          這篇文章,主要圍繞數(shù)字簽名數(shù)字證書(shū)的原理以及它們的作用展開(kāi)。

          爭(zhēng)取做到讓不具備任何密碼學(xué)基礎(chǔ)知識(shí)的同學(xué)都能聽(tīng)懂,所以在這里需要先對(duì)齊一些加密相關(guān)的概念 。

          1. 什么是加密

          加密就是對(duì)明文數(shù)據(jù)按某種特殊算法進(jìn)行處理,使其成為不可讀的一段代碼,通常稱(chēng)為“密文“, 密文通過(guò)”密鑰“解密后還原出原來(lái)的明文,通過(guò)這樣的途徑可以達(dá)到保護(hù)數(shù)據(jù)不被非法人竊取、閱讀的目的。

          定義簡(jiǎn)單吧?那來(lái)看個(gè)題,考慮以下哪些屬于加密方法:

          • AES
          • RSA
          • MD5
          • BASE64
          • SM4

          這幾種都是日常開(kāi)發(fā)中常用的數(shù)據(jù)編碼技術(shù),但是只有 AES、RSA、SM4 才能算是加密方法。

          為什么呢?一個(gè)區(qū)分的簡(jiǎn)單方法就是看編碼后的數(shù)據(jù)是否還能還原,能還原的是加密。

          MD5 實(shí)際上是對(duì)數(shù)據(jù)進(jìn)行有損壓縮,無(wú)論數(shù)據(jù)有多長(zhǎng),1KB、1Mb 還是 1G,都會(huì)生成固定 128 位的散列值,并且 MD5 理論上是不可能對(duì)編碼后的數(shù)據(jù)進(jìn)行還原的,即不可逆。

          MD5 因?yàn)槠渚哂胁豢赡嫘浴蜗蚝愣ㄐ裕ㄏ嗤臄?shù)據(jù)多次計(jì)算值不變)被廣泛應(yīng)用于文件完整性驗(yàn)證、口令加密以及接下來(lái)會(huì)講到的數(shù)字簽名中。

          至于 BASE64 是否算做加密方法,仁者見(jiàn)仁。在這里不下結(jié)論,因?yàn)?BASE64 編碼不需要密鑰,且編碼后的字符串任何人都可以解碼出原串,所以一般不認(rèn)為是加密方法。BASE64 常用來(lái)做轉(zhuǎn)碼,把二進(jìn)制字節(jié)序列轉(zhuǎn)化為 ASCII 字符序列。

          2. 加密算法的分類(lèi)

          加密算法按照加解密使用的密鑰是否相同,可分為:

          • 對(duì)稱(chēng)加密(Symmetric Cryptography)
          • 非對(duì)稱(chēng)加密(Asymmetric Cryptography)

          1. 對(duì)稱(chēng)加密

          對(duì)稱(chēng)加密是指加密和解密時(shí)使用同一個(gè)密鑰。

          2. 非對(duì)稱(chēng)加密

          非對(duì)稱(chēng)加密是指加密和解密使用不同的密鑰,這兩個(gè)密鑰分別叫做「公鑰」、「私鑰」。

          公鑰是可以公開(kāi)給所有人的,而私鑰需要自己保密的。

          公鑰加密的數(shù)據(jù)只能用私鑰解密:

          同理,私鑰“加密”的數(shù)據(jù)只能用公鑰“解密”:

          大家注意到?jīng)],我對(duì) 私鑰“加密” 這里打了引號(hào),為什么呢?

          因?yàn)樗借€不是用來(lái)加密的,準(zhǔn)確的說(shuō)法應(yīng)該是 「私鑰簽名,公鑰驗(yàn)簽」。

          這個(gè)問(wèn)題很多同學(xué)都存在誤解,認(rèn)為公私鑰都可以用于加密。

          實(shí)際上不是的,至于為什么,后面講完簽名我會(huì)解釋的。

          3. 故事開(kāi)始

          為了講這個(gè)故事,小北請(qǐng)來(lái)了密碼學(xué)中常用的學(xué)術(shù)情侶,Alice 和 Bob,以及竊聽(tīng)者代表 Eve。

          我們從 Alice、Bob 約會(huì)的故事展開(kāi),來(lái)講講其中暗藏著哪些危機(jī),又是如何一步步化解的。

          3.1 第一回合

          九月,一個(gè)夜黑風(fēng)高的晚上,Bob 想約 Alice 出來(lái)玩,于是給 Alice 發(fā)了一封郵件:

          但我們都知道網(wǎng)絡(luò)是不可信的,并且由于消息在網(wǎng)絡(luò)中是明文傳輸?shù)模院诳涂梢暂p易的截獲、篡改甚至冒充 ?Bob。

          來(lái),我們看看黑客 Eve 是怎么干的:

          黑客竊聽(tīng)偽造

          瞧,Eve 輕易的拿到了郵件內(nèi)容 (竊聽(tīng)),并且修改了郵件內(nèi)容 (篡改),甚至說(shuō)他可以隨時(shí)冒充 Bob 給 Alice 發(fā)送郵件 (偽裝)

          如果上圖中 Eve 偽造的內(nèi)容被 Alice 接收到了,那么后果可想而知。

          現(xiàn)實(shí)世界中,我們每天都在通過(guò)網(wǎng)絡(luò)進(jìn)行聊天、轉(zhuǎn)賬、瀏覽不存在網(wǎng)站。

          如果都是這樣明文傳輸數(shù)據(jù),顯然毫無(wú)安全感。

          3.2 第二回合

          既然我們不能明文傳輸,那么 Bob 和 Alice 提前商量好密鑰,使用對(duì)稱(chēng)加密對(duì)郵件內(nèi)容加密不就好了~

          對(duì)稱(chēng)加密

          現(xiàn)在 Bob 發(fā)送的郵件都使用和 Alice 提前商量好的密鑰加密后再傳輸。

          由于沒(méi)有密鑰,Eve 就算截獲到數(shù)據(jù)也無(wú)法獲取郵件的內(nèi)容,也沒(méi)法篡改和冒充 Bob。

          因?yàn)榇鄹暮蟮臄?shù)據(jù)必須使用密鑰再次加密 Alice 才能正確解密。

          那么只要 Bob 和 Alice 能夠保證 密鑰不泄露,整個(gè)通信就是安全的。

          如果密鑰泄露,被中間人截獲,那么就等同于明文通信。

          所以我們不能把安全性寄托在人上面。

          并且這里也存在一個(gè)問(wèn)題,如果兩個(gè)人不能線(xiàn)下見(jiàn)面, 如何在網(wǎng)上安全的交換密鑰呢?

          這似乎是無(wú)解的,因?yàn)?strong>交換密鑰的時(shí)候我們必須明文通信,不然對(duì)方根本看不懂。但是明文交換即意味著可能泄露。

          但是別忘了我們的密碼學(xué)工具箱里還有一個(gè)好東西— 「非對(duì)稱(chēng)加密」。

          Bob 和 Alice 各自生成一對(duì)公私鑰,因?yàn)楣€本來(lái)就是公開(kāi)的,即可以被任何人獲取,所以可以通過(guò)網(wǎng)絡(luò)明文交換公鑰。

          然后使用公鑰加密郵件內(nèi)容后發(fā)送給對(duì)方,接收者使用自己的私鑰即可解密。完美~

          3.3 第三回合

          來(lái)看看,在非對(duì)稱(chēng)加密體系下,Bob 如何給 Alice 發(fā)消息的。

          首先 Alice 需要先生成一對(duì)公私鑰,私鑰只能 Alice 自己知道,公鑰是可以讓任何人都知道的,因此可將公鑰直接發(fā)送給 Bob,就算被截獲也無(wú)所謂。

          非對(duì)稱(chēng)加密

          Bob 使用 Alice 的公鑰加密郵件內(nèi)容,加密后的內(nèi)容只能由 Alice 的私鑰解密,所以就算 Eve 截獲也是徒勞。

          反之,如果 Alice 想給 Bob 回信,就需要用 Bob 的公鑰加密后發(fā)送。

          這就解決了密鑰交換問(wèn)題,也保證了郵件內(nèi)容不會(huì)泄露。也就是說(shuō)現(xiàn)在可以防竊聽(tīng)。

          3.4 如何證明 Bob 是 Bob

          不知道你注意到?jīng)]有,這里也存在另外一個(gè)問(wèn)題:

          Eve 也可以使用 Alice 的公鑰冒充 Bob 給 Alice 發(fā)郵件啊,因?yàn)?Alice 的公鑰本來(lái)就是公開(kāi)的,任何人都可以獲得。

          由于 Eve 也可以獲得 Alice 公鑰,所以沒(méi)法防止 Eve 偽造篡改,并且對(duì)于 Alice 而言,她無(wú)法分辨出郵件到底是 Eve 發(fā)的還是 Bob。

          所以這個(gè)問(wèn)題的本質(zhì)就是 「Alice 如何確認(rèn)郵件來(lái)自于 Bob」。

          那么在生活中,我們?nèi)绾巫鲞@件事呢?

          那就是讓 Bob 在紙上簽名并且按手印,因?yàn)橹讣y和字跡是 Bob 獨(dú)有的,其它人很難偽造。

          所以我們需要在計(jì)算機(jī)中引入類(lèi)似的機(jī)制:

          即只有 Bob 自己能夠產(chǎn)生的獨(dú)一無(wú)二的標(biāo)志,并且其它人能夠驗(yàn)證這個(gè)標(biāo)志確實(shí)是屬于 Bob的。

          這就是我們今天要講的主題—「數(shù)字簽名」。

          還記得什么是 Bob 獨(dú)有的嗎?

          對(duì),就是 Bob 自己的私鑰,Bob 用自己的私鑰對(duì)郵件內(nèi)容計(jì)算一個(gè)「簽名」,將「簽名」和郵件內(nèi)容一起發(fā)送出去,接受者 Alice 可以使用 Bob 的公鑰驗(yàn)證這個(gè)簽名是否正確,這就叫「驗(yàn)簽」。

          如果不是 Bob 的私鑰計(jì)算的簽名,那么 Alice 用 Bob 公鑰驗(yàn)簽將會(huì)出錯(cuò)。

          可以看到, Eve 試圖使用自己的私鑰計(jì)算簽名然后發(fā)送給 Alice, 但是 Alice 使用 Bob的公鑰進(jìn)行驗(yàn)簽時(shí)將會(huì)出錯(cuò)!

          那么 Eve 可能篡改內(nèi)容并冒充 Bob 的簽名嗎?不可能!因?yàn)閮?nèi)容發(fā)生改變時(shí),對(duì)應(yīng)的簽名也需要重新計(jì)算,而簽名的生成依賴(lài)于私鑰,只要 Bob 的私鑰不泄露,簽名就不會(huì)被冒充。

          啊啥?你說(shuō)萬(wàn)一私鑰泄露了怎么辦?那就當(dāng)我沒(méi)說(shuō)......

          所以使用數(shù)字簽名,我們能夠鑒別消息的發(fā)送者,也就是說(shuō)黑客無(wú)法偽裝發(fā)送者進(jìn)行發(fā)送數(shù)據(jù),也無(wú)法篡改。

          注意:

          可以看出我們這里數(shù)據(jù)是明文傳輸?shù)?,存在竊聽(tīng)風(fēng)險(xiǎn)。但是我們?yōu)榱岁U述數(shù)字簽名機(jī)制是如何運(yùn)轉(zhuǎn)的,故意將保證信息機(jī)密性的機(jī)制省略了。

          如果想要保證數(shù)據(jù)的機(jī)密性,我們常見(jiàn)的做法是,通信雙方通過(guò)非對(duì)稱(chēng)加密安全交換對(duì)稱(chēng)加密的密鑰,后續(xù)通信過(guò)程的數(shù)據(jù)都使用對(duì)稱(chēng)加密保證數(shù)據(jù)機(jī)密性。

          并且「簽名」的作用本身也不是用來(lái)保證數(shù)據(jù)的機(jī)密性,而是用于驗(yàn)證數(shù)據(jù)來(lái)源的防止數(shù)據(jù)被篡改的,也就是確認(rèn)發(fā)送者的身份。

          一般而言,我們不會(huì)直接對(duì)數(shù)據(jù)本身直接計(jì)算數(shù)字簽名,為什么呢?

          因?yàn)閿?shù)字簽名屬于非對(duì)稱(chēng)加密,非對(duì)稱(chēng)加密依賴(lài)于復(fù)雜的數(shù)學(xué)運(yùn)算,包括大數(shù)乘法、大數(shù)模等等,耗時(shí)比較久。

          如果數(shù)據(jù)量大的時(shí)候計(jì)算數(shù)字簽名將會(huì)比較耗時(shí),所以一般做法是先將原數(shù)據(jù)進(jìn)行 Hash 運(yùn)算,得到的 Hash 值就叫做「摘要」。

          「摘要」就像人的指紋一樣,可以代表一個(gè)人,只要內(nèi)容發(fā)生了改變,計(jì)算出來(lái)的摘要也應(yīng)該變化。

          「摘要」最好是不可逆轉(zhuǎn)的,一般使用開(kāi)頭提到的 MD5 作為 Hash 函數(shù),MD5 輸出的結(jié)果固定位 128 位。

          為什么「摘要」最好是不可逆轉(zhuǎn)的?

          因?yàn)榧热?Alice 可以用 Bob 公鑰解開(kāi)簽名,那么理論上其它人,比如 Eve 也可以使用 Bob 公鑰解開(kāi)簽名拿到數(shù)據(jù)。

          所以我們最好對(duì)數(shù)據(jù)的「摘要」進(jìn)行簽名,這樣,Eve 就算解開(kāi)簽名,拿到的也是「摘要」,如果摘要是不可逆轉(zhuǎn)的,也就是無(wú)法從摘要反推出原文,也就達(dá)到了保密的作用。

          發(fā)送者使用私鑰對(duì)「摘要」計(jì)算數(shù)字簽名。那么接收者如何驗(yàn)證呢?

          接受者 Alice 收到后,取下數(shù)字簽名,同時(shí)用 Bob 的公鑰解密,得到「摘要1」,證明確實(shí)是 Bob 發(fā)的

          ( 畫(huà)外音:如果使用 Bob 的公鑰驗(yàn)證簽名出錯(cuò),那么簽名一定不是 Bob 的私鑰生成的)

          再對(duì)郵件內(nèi)容使用相同的散列函數(shù)計(jì)算「摘要2」,與上面得到的「摘要1」進(jìn)行對(duì)比,兩者一致就說(shuō)明信息未被篡改。

          這樣兩步分證明發(fā)送者身份和保證數(shù)據(jù)未被篡改。

          3.5 這就夠了嗎?

          Bob 和 Alice 現(xiàn)在可以依賴(lài)于對(duì)稱(chēng)加密進(jìn)行保密通信,也可以依賴(lài)于數(shù)字簽名驗(yàn)證消息是否是對(duì)方發(fā)送的。

          但是這一切的根基是建立在 Alice 持有的公鑰確實(shí)是 Bob的,反之亦然。

          什么意思呢?

          試想,Eve 如果將自己的公鑰冒充 Bob 發(fā)送給 Alice,然后 Alice 保存了下來(lái),那以后凡是 Bob 發(fā)送的消息,反而會(huì)驗(yàn)證簽名失敗,被當(dāng)做冒充者。那你可能會(huì)問(wèn),為什么 Eve 可以將自己的公鑰發(fā)送給 Alice,而 Alice 毫不知情呢?

          看!我們又回到了最初的起點(diǎn),只不過(guò)這次被篡改的是公鑰,之前是消息本身。

          因?yàn)?Bob 的公鑰是直接通過(guò)網(wǎng)絡(luò)發(fā)送給 Alice的,所以 Eve 才可以在這一步做手腳,進(jìn)行篡改,將自己的公鑰冒充 Bob 發(fā)送給 Alice,也就是發(fā)送公鑰這一步?jīng)]有做到:

          • 防篡改
          • 防冒充

          防篡改怎么和防冒充怎么實(shí)現(xiàn)的呢?

          我們前面講了,就是靠數(shù)字簽名!但是數(shù)字簽名需要接受者持有發(fā)送者公鑰,才能進(jìn)行驗(yàn)簽。

          而我們現(xiàn)在處理的是分發(fā)公鑰這一步,所以.......死鎖了。這像是先有雞還是先有蛋的問(wèn)題

          現(xiàn)在的問(wèn)題就是「Bob 無(wú)法證明它自己是 Bob」。

          這個(gè)是不是似曾相識(shí),以前去辦事的時(shí)候經(jīng)常被要求出具「我媽是我媽」這類(lèi)證明。但是我們自己說(shuō)“我媽就是我媽”,人家根本不會(huì)信呀,需要一個(gè)可信第三方出具證明,比如派出所。

          那么「Alice 如何才能確認(rèn) Bob 發(fā)送給自己的公鑰確實(shí)是 Bob 的,而沒(méi)有被篡改?」

          在只有 Alice 和 Bob 兩人的情況下是沒(méi)法驗(yàn)證的。

          所以,我們這里也需要一個(gè)第三方幫 Bob證明 「Bob 的公鑰就是 Bob 的公鑰」,有點(diǎn)繞口令那感覺(jué)了~

          3.6 數(shù)字證書(shū)

          為了解決這個(gè)問(wèn)題,就引入了「數(shù)字證書(shū)」,什么叫數(shù)字證書(shū)呢?

          百度百科:

          數(shù)字證書(shū)是指在互聯(lián)網(wǎng)通訊中標(biāo)志通訊各方身份信息的一個(gè)數(shù)字認(rèn)證,人們可以在網(wǎng)上用它來(lái)識(shí)別對(duì)方的身份。

          因此數(shù)字證書(shū)又稱(chēng)為數(shù)字標(biāo)識(shí)。數(shù)字證書(shū)對(duì)網(wǎng)絡(luò)用戶(hù)在交流中的信息和數(shù)據(jù)等以加密或解密的形式保證了信息和數(shù)據(jù)的完整性和安全性。

          看了這個(gè)描述,是不是感覺(jué)還是云里霧里,還是我用大白話(huà)來(lái)說(shuō)吧~

          只要你理解了前面的數(shù)字簽名,就能理解這里的數(shù)字證書(shū),因?yàn)槲野褦?shù)字證書(shū)叫做「公鑰的數(shù)字簽名」。

          為什么呢?我們引入數(shù)字證書(shū)的目的是為了保證公鑰不被篡改,即使被篡改了也能識(shí)別出來(lái)。

          而防篡改的方法就是數(shù)字簽名,但是這個(gè)簽名不能我們自己做,原因說(shuō)過(guò)了,因?yàn)槲覀兊墓€還沒(méi)分發(fā)出去,別人無(wú)法驗(yàn)證。

          所以只能找可信的第三方來(lái)幫我們簽名,即證書(shū)頒布機(jī)構(gòu)(CA),CA 會(huì)將:證書(shū)的頒布機(jī)構(gòu)、有效期、公鑰、持有者(subject)等信息用 CA 的私鑰進(jìn)行簽名。

          并且將簽名結(jié)果和這些信息放在一起,這就叫做「數(shù)字證書(shū)」。

          這樣,Bob 就可以去 CA 申請(qǐng)一個(gè)證書(shū),然后將自己的證書(shū)發(fā)給 Alice,那么 Alice 如何驗(yàn)證這個(gè)證書(shū)確實(shí)是 Bob的呢?

          當(dāng)然是使用 CA 的公鑰進(jìn)行驗(yàn)簽。

          注意:

          CA 的公鑰也是需要使用證書(shū)來(lái)分發(fā)的,所以 Alice 的電腦必須安裝 CA 的證書(shū),證書(shū)里包含了 CA 的公鑰。

          收到 Bob 發(fā)過(guò)來(lái)的數(shù)字證書(shū)后,Alice 使用 CA 的公鑰進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)即證明這確實(shí)是 Bob 證書(shū),也就可以使用證書(shū)中包含的 Bob 的公鑰,按照之前討論的流程進(jìn)行通信。

          那么 Eve 是否可以在中途篡改 Bob 的證書(shū)呢?

          答案是不行,因?yàn)樽C書(shū)的信息使用 CA 的私鑰進(jìn)行簽名,只要 Eve 修改了任何一個(gè) Bit 都會(huì)導(dǎo)致最后簽名驗(yàn)證不通過(guò)。

          那 Eve 可不可以修改證書(shū)信息后自己重新計(jì)算一次證書(shū)的數(shù)字簽名呢?

          也不行,因?yàn)樽C書(shū)的數(shù)字簽名計(jì)算依賴(lài)于 CA 的私鑰,Eve 是拿不到 CA 的私鑰的。

          如果拿到了,說(shuō)明什么?整個(gè)世界都是不可信的。

          3.7 數(shù)字證書(shū)長(zhǎng)啥樣

          這是我電腦中的自帶的證書(shū):

          電腦自帶證書(shū)

          可以看到,包含了證書(shū)持有人的公鑰和證書(shū)的簽名。

          另外,證書(shū)頒發(fā)機(jī)構(gòu)是有層級(jí)關(guān)系的,下級(jí) CA 的證書(shū)是需要由上級(jí) CA 簽名的。

          換句話(huà)說(shuō)一定存在根證書(shū)頒發(fā)機(jī)構(gòu),那么他們的證書(shū)是由誰(shuí)簽名的呢?

          答案是自簽,自己給自己認(rèn)證。

          這是我電腦中的一個(gè)自簽的根證書(shū)頒發(fā)機(jī)構(gòu):

          自簽的根證書(shū)機(jī)構(gòu)

          為什么根證書(shū)可以自簽,誰(shuí)來(lái)保證安全?

          你把錢(qián)存在銀行,你會(huì)擔(dān)心嗎?我們基于對(duì)國(guó)家的信任,才信任銀行,這就是信任鏈的基礎(chǔ)!我們思考問(wèn)題應(yīng)該是分層的,如果不認(rèn)可一個(gè)統(tǒng)一的基礎(chǔ),一直套娃下去,那么問(wèn)題就無(wú)解。

          那還有個(gè)問(wèn)題,如何保證根證書(shū)的可靠性?這是操作系統(tǒng)和瀏覽器預(yù)裝的,由微軟、蘋(píng)果等操作系統(tǒng)廠商來(lái)選擇根證書(shū)。

          3.8 證書(shū)不可信?

          那么什么情況下瀏覽器會(huì)提示 “證書(shū)不可信” 呢?

          根據(jù)我們上面的分析,下面是可能的原因:

          1. 證書(shū)不是權(quán)威 CA 頒發(fā)

          有些企業(yè)為了貪圖便宜使用盜版的證書(shū),沒(méi)有經(jīng)過(guò) CA 認(rèn)證。也就是無(wú)法使用瀏覽器內(nèi)置 CA 公鑰進(jìn)行驗(yàn)證。

          1. 證書(shū)過(guò)期

          上面說(shuō)了,證書(shū)里有一項(xiàng)就是有效期,一般就是一年或者兩年的時(shí)間。如果證書(shū)過(guò)期,那么瀏覽器就會(huì)提示“證書(shū)不可信”

          1. 證書(shū)部署錯(cuò)誤

          可能是服務(wù)器證書(shū)部署出錯(cuò),比如證書(shū)與域名不匹配,因?yàn)樽C書(shū)里有一項(xiàng)是持有人信息的。

          好了,饒了一大圈,Bob 終于可以安全的向 Alice 發(fā)出前往紅樹(shù)林的邀請(qǐng)了~

          附錄

          QA

          現(xiàn)在我們來(lái)回答文章開(kāi)頭提出的一些問(wèn)題:

          1. 非對(duì)稱(chēng)加密中公私鑰都可以加密,那么什么時(shí)候用公鑰加密,什么時(shí)候用私鑰“加密” ?

            • 加密場(chǎng)景,那么肯定希望只有我才能解密,別人只能加密。即公鑰加密,私鑰解密。

            • 簽名場(chǎng)景,既然是簽名,就希望只能我才能簽名,別人只能驗(yàn)證。即私鑰簽名,公鑰驗(yàn)簽

          2. 什么是數(shù)字簽名,數(shù)字簽名的作用是什么?

            • 數(shù)字簽名就是使用私鑰對(duì)數(shù)據(jù)摘要進(jìn)行簽名,并附帶和數(shù)據(jù)一起發(fā)送。可以起到防篡改、防偽裝、防否認(rèn)的作用。

          3. 為什么要對(duì)數(shù)據(jù)的摘要進(jìn)行簽名,而不是直接計(jì)算原始數(shù)據(jù)的數(shù)字簽名?

            • 數(shù)據(jù)可能比較大,簽名是使用非對(duì)稱(chēng)加密算法,比較耗時(shí)
            • 防止第三方使用公鑰解開(kāi)簽名后,拿到原始數(shù)據(jù)
          4. 什么是數(shù)字證書(shū),數(shù)字證書(shū)存在解決了什么問(wèn)題?

            • 數(shù)字證書(shū)就是由 CA 機(jī)構(gòu)使用自己私鑰,對(duì)證書(shū)申請(qǐng)者的公鑰進(jìn)行簽名認(rèn)證。

            • 數(shù)字證書(shū)解決了如何安全分發(fā)公鑰的問(wèn)題,也奠定了信任鏈的基礎(chǔ)。


          推薦閱讀

          1、【大學(xué)逆襲之路-開(kāi)篇】本科掙 30 萬(wàn),秋招提前批offer,帥地做對(duì)了什么?(附所有知識(shí)清單)


          瀏覽 48
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久AV片| 最爽亂倫刺激對白1 | 欧洲亚洲在线 | 操B视频欧美 | 日逼视频免费看的网站 |