什么是ssl證書及背后的秘密

背景: 2016年底 iOS App 強(qiáng)制要求使用HTTPS協(xié)議。Chrome 計(jì)劃在2017年將所有使用非 HTTPS 協(xié)議的網(wǎng)站標(biāo)記為不安全,并在地址欄的前面顯示一個(gè)紅叉。Mozilla 宣布所有的新特性將只提供給 HTTPS 網(wǎng)站,HTTP 網(wǎng)站將逐步被禁止訪問瀏覽器功能。

HTTP

HTTP 的缺點(diǎn)

使用明文通信

http 沒有加密功能, 無法對(duì)請(qǐng)求和響應(yīng)的內(nèi)容加密。內(nèi)容在經(jīng)過網(wǎng)絡(luò)中間節(jié)點(diǎn)是容易被竊聽。

不驗(yàn)證通信方身份

HTTP 在請(qǐng)求和響應(yīng)時(shí), 不確認(rèn)通信雙方的身份。也就是說, 客戶端無法確認(rèn)返回的消息就是從真正的服務(wù)器上返回的, 有可能是從偽裝的服務(wù)器上返回的。

同時(shí), 服務(wù)端也不知道接收響應(yīng)的客戶端是否就是正真的目標(biāo)客戶端。
這就是中間人攻擊。

不驗(yàn)證報(bào)文完整性

客戶端端和服務(wù)端都無法確認(rèn)收到的消息是否就是對(duì)方發(fā)送的原始消息, 有可能中間被修改。

HTTPS

在不安全的網(wǎng)絡(luò)上創(chuàng)建一安全信道。

什么是HTTPS

TLS是傳輸層安全協(xié)議(Transport Layer Security)的縮寫,是一種對(duì)基于網(wǎng)絡(luò)的傳輸?shù)募用軈f(xié)議,可以在受信任的第三方公證基礎(chǔ)上做雙方的身份認(rèn)證。

SSL是TLS的前身,現(xiàn)在已不再更新 > TSL/SSL 原理

HTTPS是在基于TLS/SSL的安全套接字上的的應(yīng)用層協(xié)議,除了傳輸層進(jìn)行了加密外,其它與常規(guī)HTTP協(xié)議基本保持一致

簡(jiǎn)單來說就是 HTTPS = HTTP + TLS/SSL

如何彌補(bǔ)HTTP缺點(diǎn)的

加密

加密方式
  1. 共享秘鑰加密(對(duì)稱密鑰加密)

    使用雙方共同擁有的單個(gè)密鑰。這種密鑰既用于加密,也用于解密,叫做機(jī)密密鑰。

  2. 公開秘鑰加密(非對(duì)稱加密)

    一個(gè)公鑰和一個(gè)私鑰,這兩個(gè)密鑰在數(shù)學(xué)上是相關(guān)的。在公鑰加密中,公鑰可在通信雙方之間公開傳遞,或在公用儲(chǔ)備庫(kù)中發(fā)布,但相關(guān)的私鑰是保密的。只有使用私鑰才能解密用公鑰加密的數(shù)據(jù)。使用私鑰加密的數(shù)據(jù)只能用公鑰解密。

在HTTP應(yīng)用中單純的使用上面的任一中加密方式都存在問題:

  • 服務(wù)端如何安全的將秘鑰發(fā)送給客戶端?如果通信被竊聽, 那么攻擊者就在獲得密文的同時(shí)獲得秘鑰,加密也就失去了意義。
  • 如何讓所有的客戶端持有公鑰? 客戶端如何確認(rèn)收到的公開秘鑰不是從中間人發(fā)送過來的假秘鑰而是貨真價(jià)實(shí)的真秘鑰?
HTTPS 的加密方式

HTTPS 使用混合使用2中加密方式, 同時(shí)使用證書來證明公鑰的正確性。

認(rèn)證

目的: 為保證雙方傳遞信息的 真實(shí)性、可靠性、完整性。

CA: 證書認(rèn)證中心 (Certificate Authority) 中心。是一個(gè)負(fù)責(zé)發(fā)放和管理數(shù)字證書的第三方權(quán)威機(jī)構(gòu)。

認(rèn)證流程:

  1. 把證書請(qǐng)求 (ssl.csr) 發(fā)給證書機(jī)構(gòu)。

  2. CA 確認(rèn)申請(qǐng)人身份后使用 CA 機(jī)構(gòu)的私鑰對(duì)服務(wù)器公鑰進(jìn)行數(shù)字簽名, 同時(shí)把已簽名的公鑰分配給機(jī)構(gòu), 并且把證書和公鑰及簽名進(jìn)行綁定。

    也就是證書里面包含了服務(wù)器公鑰 + CA 對(duì)公鑰的數(shù)字簽名。

  3. 服務(wù)器把證書發(fā)送給客戶端(瀏覽器)

  4. 客戶端使用CA機(jī)構(gòu)的公鑰驗(yàn)證證書上的數(shù)字簽名。 如果驗(yàn)證通過,則表明:

    • CA 的認(rèn)證服務(wù)器是有效的
    • CA 的公鑰是有效的
    • 服務(wù)器的公鑰是有效的

    合法的CA機(jī)構(gòu)的公鑰是內(nèi)置在瀏覽器中的。

  5. 客戶端使用服務(wù)器的公鑰對(duì)報(bào)文加密

  6. 服務(wù)器使用私鑰解密報(bào)文

既然我們有開源的 openssl, 為什么還要去購(gòu)買ssl證書?

https 安全的前提

數(shù)字證書頒發(fā)機(jī)構(gòu)(CA)被客戶端和服務(wù)端絕對(duì)信任。

自簽名證書

基于OpenSSL自建CA和頒發(fā)SSL證書

就是自己扮演 CA 機(jī)構(gòu),自己給自己的服務(wù)器頒發(fā)證書。

由于自簽名證書無法排除被中間人偽造的可能, 所有瀏覽器對(duì)自簽名證書不信任,瀏覽的時(shí)候回給出風(fēng)險(xiǎn)提示。

因此, 只有值得信賴的第三方機(jī)構(gòu)介入, 才能讓植入在瀏覽器中的認(rèn)證機(jī)構(gòu)公開秘鑰發(fā)揮作用, 從而借此證明服務(wù)器的真實(shí)性。

證書服務(wù)商

最好,提一下我本人也是ssl證書的代理商,買ssl證書可以找我哦, 感謝!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 互聯(lián)網(wǎng)的通信安全,建立在SSL/TLS協(xié)議之上。 本文簡(jiǎn)要介紹SSL/TLS協(xié)議的運(yùn)行機(jī)制。文章的重點(diǎn)是設(shè)計(jì)思想和...
    拉肚閱讀 2,679評(píng)論 0 6
  • 本文轉(zhuǎn)載,出處如下:數(shù)字證書原理 文中首先解釋了加密解密的一些基礎(chǔ)知識(shí)和概念,然后通過一個(gè)加密通信過程的例子說明了...
    隨安居士閱讀 1,709評(píng)論 1 8
  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,566評(píng)論 0 13
  • 信息安全三要素 1. 保密性:信息在傳輸時(shí)不被泄露 2. 完整性:信息在傳輸時(shí)不被篡改 3. 身份認(rèn)證:用于確定你...
    Jason1226閱讀 1,319評(píng)論 0 0
  • 刺眼的的陽光從窗簾的縫隙躍進(jìn)屋里,巧不巧的正好照人臉上,晃的人無法繼續(xù)睡,翻個(gè)身讓陽光照在背上,真暖。院...
    小希希如令閱讀 257評(píng)論 0 0