0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HTTPS如何保證數(shù)據(jù)安全?

kae1_cdebyte ? 來源:億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 作者:億佰特物聯(lián)網(wǎng)應(yīng)用 ? 2022-10-28 09:47 ? 次閱讀

雖然現(xiàn)在許多網(wǎng)站都會用到HTTP和HTTPS,但是大家極力倡導(dǎo)使用的卻是更為安全的HTTPS,今天我們就來了解一下HTTPS是如何保證數(shù)據(jù)傳輸?shù)陌踩缘摹?/p>

本篇概要:1.HTTP的缺點(diǎn)2.HTTPS如何保證數(shù)據(jù)安全性3.對稱加密和非對稱加密4.HTTPS的請求過程5.如何防止數(shù)字證書被篡改6.單雙向認(rèn)證

1為什么說HTTP不安全?

HTTP本質(zhì)上就是一個TCP連接,只不過協(xié)議規(guī)定了使用80端口,以及發(fā)送命令或數(shù)據(jù)的格式,而TCP本身是沒有加密的功能。致命的是,HTTP在數(shù)據(jù)傳輸過程中,數(shù)據(jù)就是以明文的方式傳輸?shù)?,由于?shù)據(jù)沒有被加密,所以很容易出現(xiàn)數(shù)據(jù)竊聽、篡改或者是身份偽造的不安全的行為。

有什么優(yōu)化的方法?

既然使用明文進(jìn)行數(shù)據(jù)傳輸不安全,那我們可以嘗試一下對數(shù)據(jù)進(jìn)行加密處理。比如,通信雙方可以約定一種算法,首先將需要發(fā)送的數(shù)據(jù)按照一定的規(guī)則進(jìn)行加密,然后對方接收到消息后按照相同的規(guī)則進(jìn)行解密。這個就是對稱加密的體現(xiàn)形式了。

所謂對稱加密,即原文和密文可使用一個相同的密鑰進(jìn)行加密和解密,即使用同一把密匙對原文加密得到密文或者是對密文解密獲取到原文。其優(yōu)點(diǎn)是加密解密效率較高。

833acf48-5608-11ed-a3b6-dac502259ad0.png

但是使用對稱加密有一個關(guān)鍵點(diǎn),那就是這個對稱密鑰,應(yīng)該如何來確定呢?在HTTP請求中,加密密鑰協(xié)商,還是個難題。

2HTTPS如何保證數(shù)據(jù)安全的呢?

在HTTPS數(shù)據(jù)傳輸過程中對數(shù)據(jù)進(jìn)行加密處理,HTTPS是使用對稱加密和非對稱加密、簽名算法(簽名算法不是用來做加密的)以及證書機(jī)制來對消息進(jìn)行處理,以此達(dá)到一個安全的有效傳輸。

HTTPS是基于HTTP的上層添加了一個叫做TLS的安全層,對數(shù)據(jù)的加密等操作都是在這個安全層中進(jìn)行處理的,其底層還是應(yīng)用的HTTP。HTTPS通信先是使用非對稱加密進(jìn)行密鑰的協(xié)商,協(xié)商出一個對稱加密的密鑰,之后的通信則采用這個對稱密鑰進(jìn)行對稱加密密文傳輸。因?yàn)榉菍ΨQ加密其算法極其復(fù)雜,導(dǎo)致解密效率低下,而對稱加密效率則明顯高出百倍。

在上面我們提到過,對明文使用同一把密鑰進(jìn)行加密和解密是屬于對稱加密。那么非對稱加密又是怎樣的呢?

非對稱加密

非對稱加密,即原文加密和密文加密使用的是兩個不同的密鑰,一把稱之為公鑰,一把稱之為私鑰,使用公鑰加密的內(nèi)容可以通過私鑰進(jìn)行解密,同樣,使用私鑰加密的內(nèi)容使用公鑰可以進(jìn)行解密。公鑰和私鑰是相對而言的,通常而言,保留在己方不對外泄露稱之為私鑰,可公布公開的稱之為公鑰。

836c97c6-5608-11ed-a3b6-dac502259ad0.png

非對稱加密對明文進(jìn)行加密和解密是使用的不同的密鑰。但是,我們在上面提過,在使用加密時,其難點(diǎn)就在于密鑰協(xié)商過程,那么,HTTPS是如何處理這個密鑰協(xié)商過程呢。

在這里,我們需要引入一個新的名詞:數(shù)字證書。

數(shù)字證書

所謂數(shù)字證書,就是一份類似于身份證一樣的網(wǎng)絡(luò)通信憑證,以證明所請求對象的身份信息不被篡改并且是真實(shí)有效的,當(dāng)我們請求某個網(wǎng)站時,先去請求網(wǎng)站的數(shù)字證書,然后檢查證書的真實(shí)性和有效性,從而一步步進(jìn)行身份驗(yàn)證,具體過程會在后面進(jìn)行圖解。

所謂證書,就是服務(wù)端從網(wǎng)站公證處備案申請的一個身份證這樣的一個東西,里面包含有有效期開始時間、結(jié)束時間、證書持有人、簽名以及最關(guān)鍵的持有人的公鑰信息等。通常情況下,我們會為服務(wù)端配置SSL證書,SSL證書是數(shù)字證書的一種,由受信任的數(shù)字證書頒發(fā)機(jī)構(gòu)(簡稱CA)頒發(fā),具有服務(wù)器身份驗(yàn)證和數(shù)據(jù)傳輸加密的功能。

就好比我們訪問億佰特網(wǎng)站,我們怎么知道我們訪問的億佰特網(wǎng)站是否是一個假的呢,所以我們通常在訪問時,先去獲取對方網(wǎng)站的證書信息,然后和本地瀏覽器載入的證書進(jìn)行比較看是否是安全的。

HTTPS通信在客戶端請求服務(wù)端時,先去獲取服務(wù)端的證書,然后將證書在本地進(jìn)行對比校驗(yàn)(通常瀏覽器中會內(nèi)置很多證書,如上圖);當(dāng)驗(yàn)證通過時,則表示是一個安全的證書,否則瀏覽器狀態(tài)欄會提示“不安全”。

3HTTPS的請求過程

在上面我們簡單介紹了一下HTTPS和數(shù)字證書,但是它們是如何來解決HTTP中存在的數(shù)據(jù)竊聽、數(shù)據(jù)篡改、身份偽造問題的呢?

83a95544-5608-11ed-a3b6-dac502259ad0.png

上圖是HTTPS簡單的請求模型,使用這個模型可以完美的解決上面提到的三個問題點(diǎn)。

在第一次請求時,客戶端先去請求服務(wù)端的數(shù)字證書,并且生成一個隨機(jī)數(shù)R1,將隨機(jī)數(shù)和自己支持的加密算法告訴服務(wù)端。

服務(wù)端收到客戶端的請求后,選擇雙方共同支持的加密算法,并且生成新的隨機(jī)數(shù)R2,將服務(wù)器的數(shù)字證書及加密算法、隨機(jī)數(shù)一并返回給客戶端。

客戶端收到服務(wù)端的數(shù)字證書,然后使用瀏覽器內(nèi)置的CA證書進(jìn)行解密獲取到證書中的服務(wù)端的公鑰及服務(wù)端的認(rèn)證信息,從而確保證書沒有被人篡改過。然后生成新的隨機(jī)數(shù)R3,使用服務(wù)端的公鑰對隨機(jī)數(shù)R3進(jìn)行加密后返回給服務(wù)端并將隨機(jī)數(shù)R1、R2、R3組合成一串密鑰用作對稱加密用。

服務(wù)端收到客戶端加密后的隨機(jī)數(shù)R3,使用自己的私鑰對密文進(jìn)行解密獲取到隨機(jī)數(shù)R3,組合R1、R2、R3獲取到一串密鑰(和客戶端一致);然后開始使用對稱加密進(jìn)行通信。

上述就是HTTPS對密鑰協(xié)商的過程,由于非對稱加密一方密匙加密后只能使用另一方密匙解密,所以在前兩次數(shù)據(jù)傳輸中即使被竊聽也不怕,因?yàn)樵诘谌蝹鬟f隨機(jī)數(shù)R3時是使用公鑰加密的,只有服務(wù)端的私鑰才能解密,從而確保密鑰的安全性。

4如何防止數(shù)字證書被篡改

在上面的請求模型中,如何防止客戶端返回的數(shù)字證書被篡改呢?

我們在申請數(shù)字證書時,會提供我們的基本信息以及企業(yè)域名信息等,證書頒發(fā)機(jī)構(gòu)CA會根據(jù)證書中的這些信息以及所提供的簽名算法對內(nèi)容進(jìn)行摘要,得到一個消息摘要(散列hash串),即使用Hash算法獲取到的一個唯一標(biāo)識,然后CA機(jī)構(gòu)會使用自己的私鑰對摘要進(jìn)行加密,獲取到一個密文,即數(shù)字簽名,也叫做指紋;表示其唯一性。然后證書頒發(fā)機(jī)構(gòu)對整個明文數(shù)字證書使用證書頒發(fā)機(jī)構(gòu)CA自己的私鑰進(jìn)行加密,得到數(shù)字證書。

851dc02c-5608-11ed-a3b6-dac502259ad0.png

當(dāng)數(shù)字證書中的內(nèi)容被篡改時,使用Hash算法對內(nèi)容進(jìn)行計算獲取到新的摘要,只需要對比一下兩個摘要是否相同即可知道證書中的數(shù)據(jù)知否有被篡改。

85901f5a-5608-11ed-a3b6-dac502259ad0.png

當(dāng)客戶端請求數(shù)據(jù)從瀏覽器端獲取到數(shù)字證書后,通過瀏覽器內(nèi)置的CA證書中的公鑰對數(shù)字證書進(jìn)行解密,獲取到明文數(shù)字證書(包含企業(yè)基本信息及服務(wù)端公鑰以及數(shù)字簽名),通過如上圖所示方式來判斷證書是否有被篡改。

85a8d37e-5608-11ed-a3b6-dac502259ad0.png

單雙向認(rèn)證

在上面的例子中,客戶端請求服務(wù)端獲取證書信息進(jìn)行認(rèn)證,這個就是單向認(rèn)證,只是客戶端認(rèn)證服務(wù)端,但是服務(wù)端并沒有認(rèn)證客戶端的請求。HTTPS支持單向認(rèn)證,也支持雙向認(rèn)證。

雙向認(rèn)證的情況通常比較少見,常見于銀行等領(lǐng)域,就像我們以前使用銀行的U盾,這就是一種雙向認(rèn)證案例,還有就是在電腦上安裝支付寶的證書等;雙向認(rèn)證比單向認(rèn)證更加安全,但是需要對每一個客戶端都進(jìn)行分配證書。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    499

    瀏覽量

    30980
  • 數(shù)據(jù)安全
    +關(guān)注

    關(guān)注

    2

    文章

    666

    瀏覽量

    29907

原文標(biāo)題:HTTPS如何保證數(shù)據(jù)安全?講得很細(xì)!

文章出處:【微信號:cdebyte,微信公眾號:億佰特物聯(lián)網(wǎng)應(yīng)用專家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    https 的本質(zhì)、證書驗(yàn)證過程以及數(shù)據(jù)加密

    1. 什么是 HTTPS HTTP 加上加密處理和認(rèn)證以及完整性保護(hù)后即是 HTTPS。 它是為了解決 HTTP 存在的安全性問題,而衍生的協(xié)議,那使用 HTTP 的缺點(diǎn)有: 1.通信使用明文可能會
    的頭像 發(fā)表于 10-30 10:53 ?54次閱讀
    <b class='flag-5'>https</b> 的本質(zhì)、證書驗(yàn)證過程以及<b class='flag-5'>數(shù)據(jù)</b>加密

    工業(yè)交換機(jī)如何保證數(shù)據(jù)的訪問安全

    在現(xiàn)代工業(yè)自動化環(huán)境中,工業(yè)交換機(jī)作為關(guān)鍵的網(wǎng)絡(luò)設(shè)備,扮演著數(shù)據(jù)傳輸和信息交互的重要角色。為了確保數(shù)據(jù)的訪問安全,工業(yè)交換機(jī)不僅具備高效的轉(zhuǎn)發(fā)性能,還集成了多層次的安全防護(hù)機(jī)制,以抵御
    的頭像 發(fā)表于 09-19 16:18 ?164次閱讀
    工業(yè)交換機(jī)如何<b class='flag-5'>保證</b><b class='flag-5'>數(shù)據(jù)</b>的訪問<b class='flag-5'>安全</b>

    這是幾種HTTPS代理保障用戶數(shù)據(jù)安全的方式#HTTPS代理

    HTTP
    jf_62215197
    發(fā)布于 :2024年08月23日 08:14:11

    數(shù)據(jù)安全審計系統(tǒng):筑牢數(shù)據(jù)安全防線 提高數(shù)據(jù)資產(chǎn)安全

    隨著萬物互聯(lián)的技術(shù)演進(jìn),以及數(shù)字化轉(zhuǎn)型的快速發(fā)展,數(shù)據(jù)庫成為最具有戰(zhàn)略性的數(shù)字資產(chǎn)載體,保障數(shù)據(jù)安全也就保障了存儲其中的數(shù)據(jù)安全,
    的頭像 發(fā)表于 07-17 13:38 ?654次閱讀

    有沒有辦法使用AT命令連接到安全服務(wù)器(https)?

    有沒有辦法使用 AT 命令連接到安全服務(wù)器 (https)?如果是這樣,將如何做到?
    發(fā)表于 07-17 08:16

    吉利:沒有任何一家汽車制造商能夠保證電池系統(tǒng)的100%安全

    近日,吉利控股集團(tuán)的高層管理者沈源先生,在其公開言論中深刻指出了電動汽車電池安全性的復(fù)雜性與挑戰(zhàn)性。他直言不諱地表示,基于物理學(xué)的客觀規(guī)律,沒有任何一家汽車制造商能夠絕對保證電池系統(tǒng)的100%安全,這一坦誠態(tài)度彰顯了行業(yè)對
    的頭像 發(fā)表于 07-13 15:49 ?2001次閱讀

    讀寫分離怎么保證數(shù)據(jù)同步

    的問題。如果數(shù)據(jù)同步不能得到有效保證,可能會導(dǎo)致數(shù)據(jù)不一致,影響業(yè)務(wù)的正常運(yùn)行。 一、讀寫分離中的數(shù)據(jù)同步問題 寫操作的延遲同步 在讀寫分離架構(gòu)中,寫操作通常由主服務(wù)器(Master)
    的頭像 發(fā)表于 07-12 09:49 ?911次閱讀

    光纖布線如何保證數(shù)據(jù)可靠傳輸

    在當(dāng)今的數(shù)字環(huán)境中,數(shù)據(jù)傳輸是技術(shù)進(jìn)步的命脈,通信網(wǎng)絡(luò)的穩(wěn)定性和可靠性至關(guān)重要。隨著對更快、更高效的數(shù)據(jù)傳輸?shù)男枨蟛粩嘣鲩L,創(chuàng)新者不斷尋求解決方案來保證無縫連接;在這些解決方案中,光纖布線代表了
    的頭像 發(fā)表于 04-07 10:34 ?307次閱讀

    請問NFC數(shù)據(jù)傳輸如何保證數(shù)據(jù)安全?

    NFC數(shù)據(jù)傳輸如何保證數(shù)據(jù)安全
    發(fā)表于 04-07 06:18

    Cache中的data在不同核間獲取數(shù)據(jù)的時候如何保證拿到的數(shù)據(jù)是最新的?

    1. Cache 中的data在不同核間獲取數(shù)據(jù)的時候如何保證拿到的數(shù)據(jù)是最新的? 2.如果關(guān)閉了Cache ,運(yùn)行速度就變好慢,但是core0取core1的數(shù)據(jù)又想要保持是最新的
    發(fā)表于 01-31 06:49

    雅特力AT32 MCU基于mbed TLS的HTTPS服務(wù)器

    HTTPS概述HTTPS安全性是基于TransportLayerSecurity(TLS),TLS是一種網(wǎng)絡(luò)加密通信的方式,作為SecureSocketsLayer(SSL)的接續(xù)協(xié)議,TLS允許
    的頭像 發(fā)表于 01-06 08:14 ?519次閱讀
    雅特力AT32 MCU基于mbed TLS的<b class='flag-5'>HTTPS</b>服務(wù)器

    redis多線程還能保證線程安全

    是單線程的,多個客戶端請求會按序執(zhí)行,每個請求使用一個線程完成,這樣可以避免多線程之間的競爭條件和鎖等帶來的開銷。但是,由于Redis是存儲內(nèi)存中的數(shù)據(jù)的,當(dāng)多個客戶端同時對同一個數(shù)據(jù)進(jìn)行讀寫操作時,就會存在線程安全的問題。 首
    的頭像 發(fā)表于 12-05 10:28 ?1628次閱讀

    Android安全性:保護(hù)你的應(yīng)用和用戶數(shù)據(jù)

    其次,數(shù)據(jù)傳輸加密也是一個重要的安全性方面。在應(yīng)用中,數(shù)據(jù)的傳輸經(jīng)常涉及到敏感信息,例如用戶的個人信息、登錄憑證等。為了保護(hù)這些敏感信息不被竊取或篡改,應(yīng)用開發(fā)者應(yīng)該使用安全的通信協(xié)議
    的頭像 發(fā)表于 11-25 11:24 ?1337次閱讀

    多線程如何保證數(shù)據(jù)的同步

    多線程編程是一種并發(fā)編程的方法,意味著程序中同時運(yùn)行多個線程,每個線程可獨(dú)立執(zhí)行不同的任務(wù),共享同一份數(shù)據(jù)。由于多線程并發(fā)執(zhí)行的特點(diǎn),會引發(fā)數(shù)據(jù)同步的問題,即保證多個線程對共享數(shù)據(jù)的訪
    的頭像 發(fā)表于 11-17 14:22 ?1108次閱讀