真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

HTTPS實現(xiàn)原理分析

概述

在上一節(jié)中介紹了兩種加密方法

橫山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,橫山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為橫山超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的橫山做網(wǎng)站的公司定做!

  • 對稱加密
  • 非對稱加密

其中對稱加密性能高,但是有泄露密鑰的風險,而非對稱加密相反,加密性能較差,但是密鑰不易泄露,那么能不能把他們進行一下結(jié)合呢?

HTTPS采用混合加密

HTTPS經(jīng)由HTTP進行通信,但利用SSL/TLS來加密數(shù)據(jù)包,而SSL/TLS的加密方式就是采用了對稱加密與非對稱加密的結(jié)合。

SSL/TLS考慮到非對稱加密的性能較低,所以在初始協(xié)商對稱加密密鑰時,使用了非對稱加密,當對稱加密密鑰協(xié)商完成后,則后續(xù)所有的通訊,全部采用對稱加密進行通訊。

但是這種方式無法證明公開密鑰就是真實服務(wù)器的公開密鑰,假設(shè)與B服務(wù)器進行通信,怎么確認公開密鑰是B服務(wù)器的,后續(xù)在公開密鑰傳輸途中已經(jīng)被替換了,但是卻發(fā)現(xiàn)不了。

由于任何人都可以訪問服務(wù)器,所以不可能一一把公鑰告訴他們,那么能不能提供一個公鑰下載的地方讓客戶機訪問服務(wù)器時先下載公鑰,但是下載公鑰的地址也有可能是假的,不可取。

那么有沒有更好的方式,既能安全的獲取公鑰又能確保訪問的服務(wù)器是真實的?答案:由數(shù)字證書認證機構(gòu)頒發(fā)(CA)公開密鑰證書

數(shù)字證書認證機構(gòu)是客戶端和服務(wù)器端都可以信賴的第三方機構(gòu),VeriSign就是一家數(shù)字證書機構(gòu)。流程如下:

  1. 企業(yè)向證書機構(gòu)提出公開密鑰申請。
  2. 證書機構(gòu)首先對公司身份進行核實,核實通過去,使用自己的私鑰對企業(yè)服務(wù)器的公開密鑰進行數(shù)字簽名,并把簽名信息綁定在公鑰證書里下發(fā)給企業(yè)。
  3. 拿到證書的客戶端對證書的簽名進行校驗,驗證通過,即可確認:
    1. 服務(wù)器的公開密鑰是值得信賴的
    2. 根據(jù)數(shù)字證書簽發(fā)機構(gòu)是真實有效的數(shù)字證書認證機構(gòu)。

這里應(yīng)該有人好奇,證書簽發(fā)機構(gòu)的公鑰是怎么傳到客戶端的?瀏覽器在發(fā)布時,已經(jīng)包含了主流的認證的機構(gòu)的公開密鑰了,所以是不需要傳輸?shù)摹?/p>

HTTPS通信流程

上圖大致描述了 SSL/TLS 的握手過程,具體細節(jié)如下:

  1. Client Hello

    握手第一步是客戶端向服務(wù)端發(fā)送 Client Hello 消息,這個消息里包含了一個客戶端生成的隨機數(shù) Random1、客戶端支持的加密套件(Support Ciphers)和 SSL Version 等信息。通過 Wireshark 抓包,我們可以看到如下信息:

  2. Server Hello

    第二步是服務(wù)端向客戶端發(fā)送 Server Hello 消息,這個消息會從 Client Hello 傳過來的 Support Ciphers 里確定一份加密套件,這個套件決定了后續(xù)加密和生成摘要時具體使用哪些算法,另外還會生成一份隨機數(shù) Random2。注意,至此客戶端和服務(wù)端都擁有了兩個隨機數(shù)(Random1+ Random2),這兩個隨機數(shù)會在后續(xù)生成對稱秘鑰時用到。

  3. Certificate

    這一步是服務(wù)端將自己的證書下發(fā)給客戶端,讓客戶端驗證自己的身份,客戶端驗證通過后取出證書中的公鑰。

  4. Server Hello Done

Server Hello Done 通知客戶端 Server Hello 過程結(jié)束。

  1. Client Key Exchange

客戶端收到服務(wù)端傳來的證書后,先從 CA 驗證該證書的合法性,驗證通過后取出證書中的服務(wù)端公鑰,再生成一個隨機數(shù) Random3,再用服務(wù)端公鑰非對稱加密 Random3生成 PreMaster Key。

Client Key Exchange 就是將這個 key 傳給服務(wù)端,服務(wù)端再用自己的私鑰解出這個 PreMaster Key 得到客戶端生成的 Random3。至此,客戶端和服務(wù)端都擁有 Random1 + Random2 + Random3,兩邊再根據(jù)同樣的算法就可以生成一份秘鑰,握手結(jié)束后的應(yīng)用層數(shù)據(jù)都是使用這個秘鑰進行對稱加密。為什么要使用三個隨機數(shù)呢?這是因為 SSL/TLS 握手過程的數(shù)據(jù)都是明文傳輸?shù)?,并且多個隨機數(shù)種子來生成秘鑰不容易被暴力破解出來。客戶端將 PreMaster Key 傳給服務(wù)端的過程如下圖所示:

  1. Change Cipher Spec(Client)

這一步是客戶端通知服務(wù)端后面再發(fā)送的消息都會使用前面協(xié)商出來的秘鑰加密了,是一條事件消息。

  1. Encrypted Handshake Message(Client)

這一步對應(yīng)的是 Client Finish 消息,客戶端將前面的握手消息生成摘要再用協(xié)商好的秘鑰加密,這是客戶端發(fā)出的第一條加密消息。服務(wù)端接收后會用秘鑰解密,能解出來說明前面協(xié)商出來的秘鑰是一致的。

  1. Change Cipher Spec(Server)

這一步是服務(wù)端通知客戶端后面再發(fā)送的消息都會使用加密,也是一條事件消息。

  1. Encrypted Handshake Message(Server)

這一步對應(yīng)的是 Server Finish 消息,服務(wù)端也會將握手過程的消息生成摘要再用秘鑰加密,這是服務(wù)端發(fā)出的第一條加密消息??蛻舳私邮蘸髸妹罔€解密,能解出來說明協(xié)商的秘鑰是一致的。

  1. Application Data

應(yīng)用層協(xié)議通信即發(fā)送HTTP請求。


網(wǎng)站題目:HTTPS實現(xiàn)原理分析
路徑分享:http://weahome.cn/article/dsojsco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部