日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

计算机网络:浅谈HTTPS和加密

發(fā)布時(shí)間:2025/4/16 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机网络:浅谈HTTPS和加密 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 前言

最近研究HTTPS(超文本傳輸安全協(xié)議),是在HTTP協(xié)議的基礎(chǔ)上增加了一層SSL協(xié)議。SSL協(xié)議用來(lái)在客戶(hù)端和服務(wù)器之間創(chuàng)建一個(gè)安全可靠的通信環(huán)境,那么我們要深入了解HTTP協(xié)議是如何做到安全可靠的通信,我們就要了解一下簡(jiǎn)單的密碼學(xué)原理。下面我們就開(kāi)始從密碼學(xué)講起,然后深入到HTTPS相比HTTP協(xié)議之上如何去建立一個(gè)可靠安全的通信。

2. 加密方式

密碼學(xué)是一門(mén)涉及數(shù)學(xué)、電子信息、計(jì)算機(jī)等多學(xué)科的一門(mén)重要學(xué)科,是現(xiàn)代網(wǎng)絡(luò)安全的基石。其中加密方式可以分為兩類(lèi),一類(lèi)是可逆的加密方式,一類(lèi)是不可逆的加密方式

2.1 不可逆的加密方式

信息摘要(Message Digest)和安全散列(Secure Hash)算法屬于此類(lèi),常見(jiàn)的算法包括 MD5、SHA1、PBKDF2、bcrypt 等。此類(lèi)算法可將任意大小的原始數(shù)據(jù)變換成規(guī)定長(zhǎng)度的輸出,即獲取內(nèi)容的數(shù)字指紋,常用于校驗(yàn)原始內(nèi)容是否被篡改。

2.2 可逆的加密方式

可逆的加密方式又可以分為以下三種:

  • 基于算法的加密算法,也被稱(chēng)為古典加密算法,如 HTTP 認(rèn)證中的 base64,比特幣生成地址用的 base58(公開(kāi)的算法也可稱(chēng)作編碼方式)。這類(lèi)算法主要對(duì)原始內(nèi)容進(jìn)行置換和替換得到密文。
  • 對(duì)稱(chēng)加密算法,加密和解密使用同一個(gè)密鑰。對(duì)稱(chēng)加密算法的出現(xiàn)標(biāo)志密碼學(xué)進(jìn)入現(xiàn)代密碼學(xué)階段,密文的安全性從依賴(lài)于算法轉(zhuǎn)向依賴(lài)于密鑰。常見(jiàn)的對(duì)稱(chēng)加密算法有 DES、3DES、AES;
  • 非對(duì)稱(chēng)加密算法,加密和解密使用不同的密鑰。非對(duì)稱(chēng)加密算法開(kāi)創(chuàng)了密碼學(xué)的里程碑,解決了對(duì)稱(chēng)加密過(guò)程中密鑰分發(fā)的安全問(wèn)題,被認(rèn)為現(xiàn)代密碼學(xué)最偉大的發(fā)明。常見(jiàn)的算法有 RSA、DH(Diffie-Hellman)、橢圓曲線算法(Elliptic curve cryptography,ECC)。

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

這里我們重點(diǎn)來(lái)介紹對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密。對(duì)稱(chēng)加密就是指加密和解密都是使用的同一個(gè)密鑰。

也就是說(shuō)在加密的同時(shí),也會(huì)把密鑰發(fā)送給對(duì)方。在發(fā)送密鑰過(guò)程中可能會(huì)造成密鑰被竊取,那么如何解決這一問(wèn)題呢?

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

公開(kāi)密鑰使用一對(duì)非對(duì)稱(chēng)密鑰。一把叫私有密鑰,另一把叫公開(kāi)密鑰私有密鑰不讓任何人知道,公有密鑰隨意發(fā)送。也就是說(shuō),發(fā)送密文方使用對(duì)方的公開(kāi)密鑰進(jìn)行加密,對(duì)方接受到信息后,使用私有密鑰進(jìn)行解密。非對(duì)稱(chēng)加密算法還可以用來(lái)做數(shù)字簽名。

對(duì)于公鑰和私鑰的理解,我們可以查看如下博客 公鑰、密鑰、數(shù)字簽名

公鑰就是指的是密鑰是公開(kāi)的,每個(gè)人都可以持有一把公鑰。私鑰就是指的是密鑰是私有的,只能被私鑰擁有者使用。

  • 當(dāng)網(wǎng)絡(luò)中的其他人要發(fā)送消息給私鑰擁有者的時(shí)候,其他人可以用公鑰對(duì)消息進(jìn)行加密,私鑰擁有者獲取到加密后的消息,然后使用私鑰進(jìn)行解密。
  • 當(dāng)私鑰擁有者要發(fā)送消息給網(wǎng)絡(luò)中其他人的時(shí)候,私鑰擁有者可以通過(guò)對(duì)消息進(jìn)行Hash函數(shù),生成相應(yīng)的摘要。然后通過(guò)使用私鑰對(duì)要發(fā)送的摘要進(jìn)行加密,生成數(shù)字簽名,然后將數(shù)字簽名和加密后的消息發(fā)送給網(wǎng)絡(luò)其他人。網(wǎng)絡(luò)其他人收到加密后的消息,通過(guò)對(duì)數(shù)字簽名使用公鑰進(jìn)行解密生成摘要,然后對(duì)消息通過(guò)Hash函數(shù),生成相應(yīng)的摘要。通過(guò)對(duì)比解密后的摘要和Hash函數(shù)生成的摘要,判斷消息是否在網(wǎng)絡(luò)中被篡改。但是這種通信還會(huì)存在一定的問(wèn)題,萬(wàn)一網(wǎng)絡(luò)其他人的公鑰被攻擊者篡改成自己的公鑰,那么這種網(wǎng)絡(luò)通信就不安全的。下面講解如何通過(guò)CA認(rèn)證中心對(duì)公鑰進(jìn)行認(rèn)證,生成數(shù)字證書(shū)。
  • 私鑰擁有者通過(guò)去找“證書(shū)中心”,為公鑰進(jìn)行認(rèn)證。證書(shū)中心用自己的私鑰,對(duì)私鑰擁有者的公鑰和一些相關(guān)信息做認(rèn)證一起加密,生成“數(shù)字證書(shū)”。然后私鑰擁有者將數(shù)字證書(shū)以及數(shù)字簽名和消息發(fā)送給網(wǎng)絡(luò)其他人,網(wǎng)絡(luò)其他人通過(guò)使用認(rèn)證中心提供的公鑰對(duì)“數(shù)字證書(shū)”進(jìn)行解密,得到安全可靠的公鑰,然后使用公鑰對(duì)“數(shù)字簽名”進(jìn)行解密,得到相應(yīng)的摘要。通過(guò)對(duì)比解密后的摘要和Hash函數(shù)生成的摘要,判斷消息是否在網(wǎng)絡(luò)中被篡改。

3. HTTPS(超文本傳輸控制協(xié)議)

解決的問(wèn)題:在HTTP協(xié)議中有可能存在信息竊聽(tīng)或身份偽裝等問(wèn)題,而使用HTTPS通信機(jī)制可以有效地防止這些問(wèn)題。

HTTP協(xié)議存在的問(wèn)題:

  • 通信使用明文不對(duì)數(shù)據(jù)進(jìn)行加密(內(nèi)容容易被竊聽(tīng))
  • 不驗(yàn)證通信方身份(容易偽裝)
  • 無(wú)法確定報(bào)文完整性(內(nèi)容易被篡改)
  • 3.1 HTTPS簡(jiǎn)介

    什么是HTTPS:與SSL(安全套接層)組合使用的HTTP被稱(chēng)為HTTPS(HTTP Secure,超文本傳輸安全協(xié)議)

    加密處理防止竊聽(tīng):通信加密。HTTP協(xié)議與SSL組合使用,加密HTTP的通信內(nèi)容。用SSL建立安全通信線路之后,就可以在這條線路通信了。

    HTTP + 加密 + 認(rèn)證 + 完整性保護(hù) = HTTPS

    在使用http協(xié)議時(shí),HTTP直接與TCP通信,當(dāng)使用SSL時(shí),則需要先與SSL通信,然后再由SSL和TCP通信。

    3.2 HTTPS采用混合加密機(jī)制

    HTTPS采用共享密鑰加密和公開(kāi)密鑰加密兩者混合加密,兩者都有各自的優(yōu)點(diǎn)。共享密鑰加密處理速度快,但密鑰無(wú)法安全發(fā)送給對(duì)方;公開(kāi)密鑰加密處理速度慢,但密鑰能夠安全交換。

    但如果我們將兩種加密方式一起使用,則兩種加密方式就能互補(bǔ)。也就是說(shuō),利用公開(kāi)密鑰加密方式安全地交換在共享密鑰加密中要使用的密鑰,在確保密鑰安全前提下,使用共享密鑰加密方式進(jìn)行通信

    下面我們來(lái)詳細(xì)討論一下HTTPS如何通過(guò)SSL協(xié)議獲得安全可靠的共享密鑰:

  • 第一次握手:客戶(hù)端請(qǐng)求建立SSL連接,發(fā)送支持的加密方式以及一個(gè)隨機(jī)數(shù)client random給服務(wù)器
  • 第二次握手:服務(wù)器選擇其中一種加密方式,并且再加上一個(gè)生成的隨機(jī)數(shù)Server random,和數(shù)字證書(shū)(其中包括公鑰)給客戶(hù)端。
  • 第三次握手:客戶(hù)端通過(guò)介紹到服務(wù)器端發(fā)送過(guò)來(lái)的數(shù)字證書(shū),并且確定這個(gè)數(shù)字證書(shū)是有效的,并且再發(fā)送一個(gè)隨機(jī)數(shù)3,將這個(gè)隨機(jī)數(shù)通過(guò)使用數(shù)字證書(shū)中得到的公鑰進(jìn)行加密發(fā)送給服務(wù)器。
  • 第四次握手:服務(wù)器收到客戶(hù)端的回復(fù),利用自己的私鑰進(jìn)行解密,獲得這個(gè)隨機(jī)數(shù),然后通過(guò)前面三個(gè)隨機(jī)數(shù)以及協(xié)商他們的加密方式,客戶(hù)端和服務(wù)器都計(jì)算生成一個(gè)對(duì)稱(chēng)密鑰。這樣服務(wù)器和客戶(hù)端就通過(guò)非對(duì)稱(chēng)加密方式獲得了各自安全可看到的共享密鑰。
  • 總結(jié)

    以上是生活随笔為你收集整理的计算机网络:浅谈HTTPS和加密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。