加密、摘要、簽名、證書,一次說明白!

點(diǎn)贊關(guān)注,不再迷路,你的支持對(duì)我意義重大!

?? Hi,我是丑丑。本文 GitHub · Android-NoteBook 已收錄,這里有 Android 進(jìn)階成長(zhǎng)路線筆記 & 博客,歡迎跟著彭丑丑一起成長(zhǎng)。(聯(lián)系方式 & 入群方式在 GitHub)

前言

  • 數(shù)據(jù)安全傳輸,是一個(gè)非常寬泛的話題。HTTPS、文件簽名、應(yīng)用簽名等場(chǎng)景背后,其實(shí)解決的就是如何安全地傳輸數(shù)據(jù)的問題;
  • 在這篇文章里,我將帶你理解 數(shù)據(jù)安全傳輸?shù)幕灸P?,以及加密、摘要、簽名和?shù)字證書的概念與作用。如果能幫上忙,請(qǐng)務(wù)必點(diǎn)贊加關(guān)注,這真的對(duì)我非常重要。

目錄


1. 概述

1.1 CIA 三要素

在討論今天的主題之前,有必要先搞清楚到底什么是安全?在計(jì)算機(jī)領(lǐng)域,所謂的 “安全” 其實(shí)是指 “信息安全”,它的基本含義可以概括為三個(gè)要素,簡(jiǎn)稱 CIA 三要素

  • 1、機(jī)密性(Confidentiality): 指確保數(shù)據(jù)在傳輸和存儲(chǔ)過程中的私密性。主要的手段是加密、權(quán)限管理和敏感信息脫敏;

  • 2、完整性(Integrity): 指確保數(shù)據(jù)內(nèi)容完成,沒有被篡改。主要手段是數(shù)字簽名;

  • 3、可用性(Avaliability): 指確保服務(wù)保持可用狀態(tài)。例如能夠承受 Dos 等網(wǎng)絡(luò)攻擊。

1.2 非安全信道的風(fēng)險(xiǎn)

數(shù)據(jù)需要通過信道進(jìn)行傳輸,狹義上的信道是指報(bào)紙、有線網(wǎng)絡(luò)、無線電波等通信媒介,而廣義上說,信道可以理解為數(shù)據(jù)從分發(fā)到接收的整個(gè)過程。在非安全信道中,主要會(huì)面臨以下三個(gè)安全風(fēng)險(xiǎn):

  • 1、竊聽風(fēng)險(xiǎn): 現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)建立在 TCP/IP 協(xié)議族提供傳輸能力上,數(shù)據(jù)在傳輸線路上的每個(gè)環(huán)節(jié)都可能被竊聽,從而導(dǎo)致敏感數(shù)據(jù)泄露;

  • 2、篡改風(fēng)險(xiǎn): 數(shù)據(jù)在傳輸過程中可能被篡改,例如中間人攻擊。攻擊者可以和通信雙方分別建立獨(dú)立的連接,使得通信雙方誤以為它們正在進(jìn)行一個(gè)私密連接,但察覺不到數(shù)據(jù)被篡改;

  • 3、偽裝風(fēng)險(xiǎn): 攻擊者可以偽裝成合法的身份。

1.3 如何實(shí)現(xiàn)傳輸安全?

我們今天的主題 “加密 + 簽名 + 證書”,本質(zhì)上就是在非安全信道中實(shí)現(xiàn)數(shù)據(jù)安全傳輸?shù)慕鉀Q方案。要實(shí)現(xiàn)數(shù)據(jù)安全傳輸,其實(shí)就是要高效地解決非安全信道中的三個(gè)風(fēng)險(xiǎn):

  • 1、加密 —— 防竊聽 : 將明文轉(zhuǎn)換為密文,只有期望的接收方有能力將密文解密為明文,即使密文被攻擊者竊取也無法理解數(shù)據(jù)的內(nèi)容;

  • 2、驗(yàn)證完整性 —— 防止篡改: 對(duì)原始數(shù)據(jù)計(jì)算摘要,并將數(shù)據(jù)和摘要一起交付給通信對(duì)方。接收方收到后也對(duì)數(shù)據(jù)計(jì)算摘要,并比較是否和接受的摘要一致,借此判斷接收的數(shù)據(jù)是否被篡改。不過,因?yàn)槭盏降恼部赡鼙淮鄹?,所以需要使用更安全的手段:?shù)字簽名;

  • 3、認(rèn)證數(shù)據(jù)來源 —— 防止偽裝: 數(shù)字簽名能夠驗(yàn)證數(shù)據(jù)完整性,同時(shí)也能認(rèn)證數(shù)據(jù)來源,防止偽裝。


2. 加密 —— 防竊聽

2.1 什么是加密?

加密(Encryption)是將明文(Plaintext)轉(zhuǎn)換為密文(Ciphertext)的過程,只有期望的接收方有能力將密文解密為明文,即使密文被攻擊者竊取也無法理解數(shù)據(jù)的內(nèi)容。

在古典密碼時(shí)期,數(shù)據(jù)保密性取決于算法的保密性,一旦加密算法被破解或泄露,就失去了數(shù)據(jù)的安全性。而進(jìn)入現(xiàn)代密碼時(shí)期,柯克霍夫原則成為加密系統(tǒng)的基本設(shè)計(jì)原則:數(shù)據(jù)的安全性基于密鑰而不是算法的保密。

根據(jù)柯克霍夫原則,現(xiàn)代的保密通信模型是基于密鑰的保密模型模型。在這個(gè)模型中,加密和解密使用相同密鑰,就是 對(duì)稱加密密碼體制;反之,加密和解密使用是不同密鑰,就是 非對(duì)稱密碼體制。

2.2 對(duì)稱加密和非對(duì)稱加密的區(qū)別?

  • 1、密鑰管理: 對(duì)稱加密算法中需要將密鑰發(fā)送給通信對(duì)方,存在密鑰泄漏風(fēng)險(xiǎn);非對(duì)稱加密公鑰是公開的,私鑰是保密的,防止了私鑰外傳;

  • 2、密鑰功能: 公鑰加密的數(shù)據(jù),只可使用私鑰對(duì)其解密。反之,私鑰加密的數(shù)據(jù),只可使用公鑰對(duì)其解密(注意:公鑰加密的數(shù)據(jù)無法使用公鑰解密,因?yàn)楣€是公開的,如果公鑰可以解密的話,就失去了加密的安全性);

  • 3、計(jì)算性能: 非對(duì)稱加密算法的計(jì)算效率低,因此實(shí)際中往往采用兩種算法結(jié)合的復(fù)合算法:先使用非對(duì)稱加密建立安全信道傳輸對(duì)稱密鑰,再使用該密鑰進(jìn)行對(duì)稱加密;

  • 4、認(rèn)證功能: 非對(duì)稱加密算法中,私鑰只有一方持有,具備認(rèn)證性和抗抵賴性(第 3 節(jié) 數(shù)字簽名算法 應(yīng)用了此特性)。

考慮到性能的因素,在 HTTPS 協(xié)議中采用的是 “對(duì)稱加密” 和 “非對(duì)稱加密” 結(jié)合的 “混合加密” 方案:在建立通信時(shí),采用非對(duì)稱加密的方式來協(xié)商 “會(huì)話密鑰”,在通信過程中基于該密鑰進(jìn)行對(duì)稱加密通信。

2.3 數(shù)據(jù)加密標(biāo)準(zhǔn) —— DES

1977 年,數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard, DES)成為美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn),并逐漸成為事實(shí)標(biāo)準(zhǔn),很多主流的對(duì)稱加密算法都是從 DES 算法發(fā)展過來的。

DES 算法的主要缺點(diǎn)是加密強(qiáng)度和計(jì)算性能較差

  • 1、密鑰長(zhǎng)度太短: DES 算法密鑰長(zhǎng)度只有 56 bit,理論最大加密長(zhǎng)度為 256。隨著計(jì)算機(jī)算力的提高,用窮舉法可以在較短時(shí)間破解密鑰;

  • 2、不能對(duì)抗差分和線性密碼分析;

  • 3、計(jì)算性能較差: 增加 DES 密鑰長(zhǎng)度,加解密的計(jì)算開銷呈指數(shù)增長(zhǎng)。

2.4 高級(jí)加密標(biāo)準(zhǔn) —— AES

高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard, AES),又稱 Rijndael [rain-dahl]加密法,是目前最流行的對(duì)稱加密算法之一。

相對(duì)于 DES 算法,AES 算法的主要優(yōu)點(diǎn)如下:

  • 1、密鑰長(zhǎng)度更大: 密鑰長(zhǎng)度最小為 12 bit,最大為 256 bit。用窮舉法難以破解;

  • 2、使用 WTS 設(shè)計(jì)策略,可對(duì)抗差分和線性密碼分析;

  • 3、計(jì)算性能高: 計(jì)算和內(nèi)存開銷低,適用于受限設(shè)備。

2.5 RSA 算法

1977 年,麻省理工學(xué)院的三位教授 Rivest、Shamir 和 Adleman 共同提出了 RSA 加密算法,其中 RSA 分別是他們姓氏的首字母。RSA 是經(jīng)典的非對(duì)稱加密算法,同時(shí)也是經(jīng)典的數(shù)字簽名算法。

RSA 算法的安全性依賴于一個(gè)數(shù)學(xué)難題 —— “大數(shù)因式分解”:兩個(gè)大素?cái)?shù)相乘非常容易,但對(duì)一個(gè)極大整數(shù)做因式分解的復(fù)雜度極高。如果存在某種快速因素分解的算法,那么 RSA 算法的可靠性將會(huì)大大折扣。RSA 算法存在一個(gè)系統(tǒng)性風(fēng)險(xiǎn):“不支持前向加密”。在 RSA 算法中,服務(wù)端公鑰是相對(duì)固定的,一但服務(wù)端私鑰被破解,則之前所有發(fā)送過得加密數(shù)據(jù)都會(huì)被破解。

關(guān)于 RSA 算法的原理解析,可參考:淺析 RSA 算法。

2.6 DH 算法

DH 算法的安全性依賴于一個(gè)數(shù)學(xué)難題 —— “離散對(duì)數(shù)”:已知對(duì)數(shù)計(jì)算出真數(shù)非常簡(jiǎn)單,但已知真數(shù)求對(duì)數(shù)的復(fù)雜度極高。 如果存在某種求對(duì)數(shù)的算法,那么 DH 算法的可靠性將會(huì)大大折扣。

目前,DH 算法有多種實(shí)現(xiàn),主要區(qū)別如下:

  • static DH 算法:一方的私鑰是靜態(tài)的(通常是服務(wù)器私鑰固定),不具備前向安全性;

  • DHE 算法:雙方的私鑰都在密鑰交換節(jié)點(diǎn)隨機(jī)生成,具備前向安全性;

  • ECDHE 算法:利用 ECC 橢圓曲線特性,可以用更少的計(jì)算量計(jì)算公鑰和私鑰。

關(guān)于 DH 算法的原理解析,可參考:這 HTTPS,真滴牛逼!

2.7 安全系統(tǒng)中為什么要使用隨機(jī)數(shù)?

在 RSA 算法生成密鑰對(duì)的過程中,我們需要隨機(jī)生成兩個(gè)大素?cái)?shù)。事實(shí)上,除了在 RSA 算法中,很多安全系統(tǒng)中都需要一個(gè)隨機(jī)數(shù),為什么呢?—— 關(guān)鍵在于隨機(jī)數(shù)不可預(yù)測(cè)性,可以提高破解和報(bào)文重放攻擊難度。

2.8 計(jì)算機(jī)如何生成隨機(jī)數(shù)?

隨機(jī)數(shù)是計(jì)算機(jī)安全領(lǐng)域中非常重要的一個(gè)點(diǎn),很多場(chǎng)景中都需要一個(gè)隨機(jī)數(shù)來生成隨機(jī)事件,比如密鑰的生成、文件名、sessionId/orderId/token 等?,F(xiàn)代的隨機(jī)數(shù)生成模型依然采用的是 1946 年馮·諾依曼設(shè)計(jì)的隨機(jī)數(shù)模型:

1、輸入任意一個(gè)數(shù)作為 “種子”,通過隨機(jī)數(shù)算法得到一個(gè)隨機(jī)數(shù);
2、將生成的隨機(jī)數(shù)作為新的種子,代入下一輪計(jì)算;
3、重復(fù) 1、2 步驟,就可以生成多個(gè)具有統(tǒng)計(jì)意義的隨機(jī)數(shù)。

然而,通過這種模型生成的隨機(jī)數(shù)并不是絕對(duì)隨機(jī)的。只要取樣范圍足夠大,隨機(jī)結(jié)果一定會(huì)陷入循環(huán),因此這種模型生成的隨機(jī)數(shù)只能稱為 “偽隨機(jī)數(shù)”,而隨機(jī)結(jié)果陷入循環(huán)的周期稱為 “隨機(jī)周期”

要得到真正意義的隨機(jī)數(shù),需要硬件層面支持。1999 年 Intel 在其 i810 芯片組上集成了世界上第一款真隨機(jī)數(shù)生成器,它的方案是將電路的熱噪聲(分子的不規(guī)則運(yùn)動(dòng))作為數(shù)據(jù)來源,缺點(diǎn)是效率太低,因此目前計(jì)算機(jī)中采用的隨機(jī)數(shù)依舊是軟件實(shí)現(xiàn)的偽隨機(jī)數(shù)。雖然軟件無法做到真隨機(jī),但可以提高生成器的隨機(jī)性。比如采用更強(qiáng)壯的隨機(jī)算法(Java#SecurityRandom)、采用更復(fù)雜的種子(系統(tǒng)時(shí)間、鼠標(biāo)位置、網(wǎng)絡(luò)速度、硬盤讀寫速度)、擴(kuò)大隨機(jī)數(shù)的取值范圍、組合多個(gè)隨機(jī)算法等。


3. 數(shù)字簽名 —— 驗(yàn)證完整性 & 認(rèn)證數(shù)據(jù)來源

3.1 什么是數(shù)字簽名?

數(shù)字簽名(Digital Signature)也叫作數(shù)字指紋(Digital Fingerprint),它是消息摘要算法和非對(duì)稱加密算法的結(jié)合體,能夠驗(yàn)證數(shù)據(jù)的完整性,并且認(rèn)證數(shù)據(jù)的來源

數(shù)據(jù)簽名算法的模型分為兩個(gè)主要階段:

  • 1、簽名: 先計(jì)算數(shù)據(jù)的 [摘要],再使用私鑰對(duì) [摘要] 進(jìn)行加密生成 [簽名],將 [數(shù)據(jù) + 簽名] 一并發(fā)送給接收方;
  • 2、驗(yàn)證: 先使用相同的摘要算法計(jì)算接收數(shù)據(jù)的 [摘要],再使用預(yù)先得到的公鑰解密 [簽名],對(duì)比 [解密的簽名] 和 [計(jì)算的摘要] 是否一致。若一致,則說明數(shù)據(jù)沒有被篡改。

提示: 接收方如何安全地預(yù)先得到發(fā)送方的公鑰,見 第 4 節(jié)

3.2 為什么數(shù)字簽名可以驗(yàn)證完整性?

驗(yàn)證完整性主要依賴于消息摘要算法的特性,摘要算法的原理是根據(jù)一定的運(yùn)算規(guī)則提取原始數(shù)據(jù)中的信息,被提取的信息就是原始數(shù)據(jù)的消息摘要,也稱為數(shù)據(jù)指紋。著名的摘要算法有 MD5 算法和 SHA 系列算法。

摘要算法具有以下特點(diǎn):

  • 一致性: 相同數(shù)據(jù)多次計(jì)算的摘要是相同的,不同的數(shù)據(jù)(在不考慮碰撞時(shí))的摘要是不同的;
  • 不可逆性: 只能正向提取原始數(shù)據(jù)的摘要,無法從摘要反推出原始數(shù)據(jù);
  • 高效性: 摘要的生成過程高效快速;

摘要算法的模型分為兩個(gè)主要步驟:

  • 生成摘要: 先計(jì)算數(shù)據(jù)的 [摘要],再將 [數(shù)據(jù) + 摘要] 一并發(fā)送給接收方;
  • 驗(yàn)證摘要: 使用相同的摘要算法計(jì)算接收數(shù)據(jù)的 [摘要],對(duì)比 [收到的摘要] 與 [計(jì)算的摘要]是否一致。若一致,則說明數(shù)據(jù)是完整的。

需要注意的是,單純依靠摘要算法不能嚴(yán)格地驗(yàn)證數(shù)據(jù)完整性。因?yàn)樵诜前踩诺乐?,?shù)據(jù)和摘要都存在篡改風(fēng)險(xiǎn),攻擊者在篡改數(shù)據(jù)時(shí)也可以篡改摘要。因此,摘要算法需要配合加密算法才能嚴(yán)格驗(yàn)證完整性。

3.3 為什么數(shù)字簽名可以認(rèn)證數(shù)據(jù)來源?

這是因?yàn)楹灻麜r(shí)引入了發(fā)送方的私有信息(私鑰),只有 ”合法的發(fā)送方“ 才能產(chǎn)生其他人無法偽造的一段數(shù)字簽名(加密字符串),這個(gè)數(shù)字簽名就證明了數(shù)據(jù)的真實(shí)來源。當(dāng)接收方采用 ”合法途徑“ 獲得發(fā)送方的公有信息是(公鑰),并且成功驗(yàn)證數(shù)字簽名,那么正說明數(shù)據(jù)來自 ”合法的接收方“。

另外,在簽名時(shí)引入發(fā)送方私有信息,在驗(yàn)證時(shí)使用發(fā)送方公有信息,這正好符合 “非對(duì)稱加密” 的特點(diǎn)。因此簽名時(shí)引入的私有信息正是私鑰,驗(yàn)證時(shí)使用的公有信息正式公鑰。

3.4 摘要算法存在碰撞,是不是不安全?

摘要算法(散列算法)本質(zhì)上是一種 壓縮映射,因此一定存在不同原始數(shù)據(jù)映射到同一個(gè)散列值的情況,這就是發(fā)生了碰撞(散列沖突,Hash Collision)。事實(shí)上,MD5、SHA-1 等散列算法已經(jīng)陸續(xù)被找到快速散列碰撞的的方法,攻擊者可以構(gòu)造內(nèi)存篡改但摘要一致的文件從而繞過檢查。但不代表完全不安全,因?yàn)榇鄹臑橛袃r(jià)值的偽造內(nèi)容還有困難??

3.5 為什么摘要中需要加鹽?

為了提高安全性,在對(duì)原始數(shù)據(jù)生成摘要之前,我們往往會(huì)先向原始數(shù)據(jù)中加鹽,再生成摘要。為什么要這么做呢?

這是為了避免 “彩虹表(Rainbow tables)” 攻擊,提高簡(jiǎn)單數(shù)據(jù)的安全性。因?yàn)檎惴ㄓ幸恢滦缘奶攸c(diǎn),相同數(shù)據(jù)多次計(jì)算的摘要是相同的。利用這個(gè)特性,攻擊者可以預(yù)先生成一系列簡(jiǎn)單數(shù)據(jù)的摘要,并存儲(chǔ) “摘要 - 數(shù)據(jù)” 的映射,這個(gè)映射關(guān)系就是彩虹表。在獲取到數(shù)據(jù)摘要后,如果發(fā)現(xiàn)摘要存在彩虹表中,就可以輕易地反推出原始數(shù)據(jù)。

用戶在設(shè)置密碼時(shí),也要避免使用 123456 這種簡(jiǎn)單密碼,因?yàn)槿菀妆徊屎绫砉羝平狻榱颂岣甙踩?,在傳輸手機(jī)號(hào)、密碼等敏感信息的過程中,往往會(huì)在原始密碼中加鹽。

3.6 可以先使用私鑰對(duì)原數(shù)據(jù)簽名,再對(duì)簽名進(jìn)行摘要嗎?

不可以,主要有兩個(gè)原因:

  • 1、可行性: 接收方需要通過摘要驗(yàn)證數(shù)據(jù)完整性,然而接收方無法對(duì)數(shù)據(jù)進(jìn)行簽名,因此無法驗(yàn)證數(shù)據(jù)摘要一致性;

  • 2、時(shí)間效率: 對(duì)原始數(shù)據(jù)進(jìn)行簽名(加密)時(shí)間太長(zhǎng),而摘要算法本身是壓縮映射,可以縮短簽名消耗的時(shí)間。


4. 數(shù)字證書 —— 安全地發(fā)放公鑰

第 3 節(jié) 中,我們提到接收方需要使用發(fā)送方的公鑰來驗(yàn)證數(shù)據(jù)真實(shí)性。那么,接收方怎樣才能安全地獲得發(fā)送方公鑰呢?這就需要數(shù)字證書來保證。

4.1 什么是數(shù)字證書?

數(shù)字簽名和數(shù)字證書總是成對(duì)出現(xiàn),二者不可分離。數(shù)字簽名主要用來驗(yàn)證數(shù)據(jù)完整性和認(rèn)證數(shù)據(jù)來源,而數(shù)字證書主要用來安全地發(fā)放公鑰。 數(shù)字證書主要包含三個(gè)部分:用戶的信息、用戶的公鑰和 CA 對(duì)該證書實(shí)體信息的簽名。

數(shù)字證書的模型主要分為兩個(gè)步驟:

  • 1、頒發(fā)證書:

    • 1.1 申請(qǐng)者將簽名算法、公鑰、有效時(shí)間等信息發(fā)送給 CA 機(jī)構(gòu);
    • 1.2 CA 機(jī)構(gòu)驗(yàn)證申請(qǐng)者身份后,將申請(qǐng)者發(fā)送的信息打成一個(gè)實(shí)體,并計(jì)算摘要;
    • 1.3 CA 機(jī)構(gòu)使用自己的私鑰對(duì)摘要進(jìn)行加密,生成證書簽名(Certificate Signature);
    • 1.4 CA 機(jī)構(gòu)將證書簽名添加在數(shù)字證書上,構(gòu)成完整的數(shù)字生出。
  • 2、驗(yàn)證證書

    • 2.1 驗(yàn)證方使用相同的摘要算法計(jì)算證書實(shí)體的摘要;
    • 2.2 使用 CA 機(jī)構(gòu)的公鑰(瀏覽器和操作系統(tǒng)中集成了 CA 的公鑰信息)解密證書簽名;
    • 2.3 對(duì)比解密后的數(shù)據(jù)與計(jì)算的摘要是否一致,如果一致則是可信任的證書。

4.2 什么是證書頒發(fā)機(jī)構(gòu) CA?

證書頒發(fā)機(jī)構(gòu)(certifcation authroity, CA)是負(fù)責(zé)數(shù)字證書的審批、頒發(fā)、歸檔和吊銷等功能的機(jī)構(gòu),具有權(quán)威性。CA 機(jī)構(gòu)分為 “根 CA” 和 “中間 CA”,原則上要避免根 CA 機(jī)構(gòu)直接頒發(fā)最終實(shí)體證書,而需要由中間 CA 機(jī)構(gòu)頒發(fā)最終實(shí)體證書。這是為了避免證書失效的影響范圍,一旦根證書失效或被偽造,那么整個(gè)證書鏈都有問題。

4.3 什么是證書鏈?

證書鏈?zhǔn)嵌鄠€(gè)數(shù)字證書建立的的證書驗(yàn)證鏈條。數(shù)字證書主要包含三個(gè)部分:用戶信息、用戶密鑰以及 CA 機(jī)構(gòu)對(duì)該證書實(shí)體的簽名。為了驗(yàn)證證書實(shí)體的合法性,需要獲得頒發(fā)該證書的 CA 機(jī)構(gòu)公鑰,這個(gè)公鑰就存在于上一級(jí)證書中。因此,為了驗(yàn)證證書的合法性,就需要沿著證書鏈向上追溯直到根證書為止。

根證書是自簽名證書,用戶下載根證書就表示信任該根證書所有簽發(fā)的證書。在操作系統(tǒng)或?yàn)g覽器中,已經(jīng)內(nèi)置了一部分受信任的根證書。

4.4 數(shù)字證書的標(biāo)準(zhǔn)

數(shù)字證書主要包含三個(gè)部分:用戶的信息、用戶的公鑰和 CA 對(duì)該證書實(shí)體信息的簽名。目前的數(shù)字證書采用的是公鑰基礎(chǔ)設(shè)施(PKI)制定的 X.509 標(biāo)準(zhǔn),目前已經(jīng)有 3 個(gè)版本,其中比較常見的是 X.509 第三版的標(biāo)準(zhǔn)。主要格式如下:

字段 描述
版本 (Version) 證書的版本信息
序列號(hào) (Serial Number) 證書的唯一標(biāo)識(shí)
簽名算法標(biāo)識(shí) (Hash) 證書簽名采用的算法
有效期 (Validity) 證書有效期的開始日期和結(jié)束日期
持有者信息 (Subject) 證書的持有者
公鑰 (Subject Public Key Info) 持有者構(gòu)建的公共密鑰
頒布者信息 (Issuer) 證書頒布者
簽名 (Certificate Signature) 頒布者對(duì)證書實(shí)體的簽名

5. 總結(jié)

看到這里,你應(yīng)該已經(jīng)建立起數(shù)據(jù)安全傳輸?shù)幕菊J(rèn)知。大多數(shù)情況,我們是在討論 HTTPS 協(xié)議時(shí)才會(huì)遇到加密、摘要、簽名和證書等概念。事實(shí)上,這些概念不止于 HTTPS,但凡涉及到數(shù)據(jù)在非安全信道中流轉(zhuǎn)時(shí),就需要應(yīng)用這些工具來實(shí)現(xiàn)數(shù)據(jù)安全傳輸。

后面,我會(huì)寫一些文章,在更多具體場(chǎng)景中討論數(shù)據(jù)安全傳輸,請(qǐng)關(guān)注~ 更多文章:


參考資料


創(chuàng)作不易,你的「三連」是丑丑最大的動(dòng)力,我們下次見!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 公眾號(hào)首發(fā)地址 看到這個(gè)標(biāo)題,很多老鐵會(huì)斬釘截鐵的說,這道題我會(huì)!就是用https來進(jìn)行安全傳輸?shù)摹?對(duì),很優(yōu)秀,...
    自律財(cái)富自由閱讀 721評(píng)論 0 0
  • 前言 http和https對(duì)于web developers來說肯定都不陌生,甚至是每天都在接觸,然而在我接觸的一些...
    LK2917閱讀 788評(píng)論 0 14
  • 前言 http和https對(duì)于web developers來說肯定都不陌生,甚至是每天都在接觸,然而在我接觸的一些...
    酷拼車閱讀 652評(píng)論 0 0
  • 〇、序言 貨幣由于其天然屬性決定了其與安全不可分割的聯(lián)系,從最早的金庫、保險(xiǎn)柜、鏢局到后來的ATM機(jī)、運(yùn)鈔車;從存...
    怒馬2048閱讀 39,813評(píng)論 4 79
  • 前情概述 由于后續(xù)會(huì)持續(xù)更新 iOS 應(yīng)用安全系列文章 , 在此先更幾篇密碼學(xué) , 應(yīng)用簽名 , 為后續(xù)展開代碼注...
    lb_閱讀 1,502評(píng)論 0 2

友情鏈接更多精彩內(nèi)容