HTTPS加密的介紹

????????HTTPS(HyperText Transfer Protocol Secure,超文本傳輸安全協議)是HTTP協議的安全版本。它在HTTP的基礎上加入了SSL/TLS協議,用于對數據進行加密,并確保數據傳輸過程中的機密性、完整性和身份驗證。

在HTTPS出現之前,HTTP協議以明文形式傳輸數據。這意味著:

數據可以被竊聽(機密性缺失):

任何在數據傳輸路徑上的人(如你的ISP、咖啡館的Wi-Fi管理員、網絡攻擊者)都可以截獲并查看你發送和接收的數據,包括登錄密碼、信用卡信息、聊天內容等。

數據可以被篡改(完整性缺失):

中間人可以修改傳輸中的數據。例如,將你訪問的合法銀行網站鏈接替換成釣魚網站,或者在網頁內容中注入惡意代碼。

身份可能被冒充(身份驗證缺失):

你無法確定你正在訪問的網站是否是真正的目標網站,可能是一個偽造的“釣魚”網站。
HTTPS就是為了解決這些問題而設計的。

HTTPS加密是如何工作的?(核心機制:SSL/TLS握手)

????????HTTPS的核心在于SSL(Secure Sockets Layer,安全套接層)及其繼任者TLS(Transport Layer Security,傳輸層安全)協議。

????????一個典型的HTTPS通信過程分為兩個階段:

階段一:SSL/TLS握手(建立安全連接)

這是最關鍵的部分,雙方協商加密方式并驗證身份。過程大致如下:

客戶端發起請求(Client Hello):

瀏覽器(客戶端)向服務器發送一個“Client Hello”消息。
消息中包含:客戶端支持的TLS版本、客戶端支持的密碼套件(加密算法組合,如RSA、AES、SHA等)、一個隨機數(ClientRandom)。

服務器響應(Server Hello):

服務器收到請求后,選擇一個雙方都支持的TLS版本和密碼套件。
服務器發送“Server Hello”消息,包含:選定的TLS版本、選定的密碼套件、服務器生成的隨機數(ServerRandom)。

服務器發送證書(Server Certificate):

服務器將其數字證書發送給客戶端。這個證書由受信任的**證書頒發機構(CA)**簽發,包含了服務器的公鑰、域名、有效期等信息,并附有CA的簽名。
(可選)服務器密鑰交換(Server Key Exchange): 某些加密套件可能需要服務器發送額外的密鑰交換參數。

服務器發送結束(Server Hello Done):

服務器通知客戶端,服務器部分的初始信息發送完畢。

客戶端驗證證書并生成預主密鑰(Pre-Master Secret):

驗證證書: 客戶端檢查證書是否由受信任的CA簽發、是否過期、域名是否匹配當前訪問的網站。如果驗證失敗,瀏覽器通常會警告用戶。
生成預主密鑰: 客戶端生成一個隨機數,稱為預主密鑰(Pre-Master Secret)。
加密并發送預主密鑰: 客戶端使用從證書中獲取的服務器公鑰,將預主密鑰加密后發送給服務器。由于只有服務器的私鑰才能解密,這就保證了預主密鑰的傳輸是安全的。

客戶端發送結束(Client Key Exchange):

客戶端發送一個“Client Key Exchange”消息,內容就是剛才加密發送的預主密鑰(加密形式)。
客戶端還可能發送其他消息,如證書請求(如果需要客戶端認證)、擴展消息等。

服務器解密預主密鑰:

服務器使用自己的私鑰解密收到的預主密鑰。

雙方計算主密鑰(Master Secret):

關鍵步驟! 客戶端和服務器現在都擁有了三個隨機數:ClientRandom、ServerRandom和Pre-Master Secret。
雙方使用預先商定的密鑰派生函數(如偽隨機函數PRF),將這些隨機數作為輸入,計算出相同的主密鑰(Master Secret)。這個主密鑰是后續加密通信的基礎。

客戶端發送完成消息(Change Cipher Spec):

客戶端通知服務器,后續所有的通信都將使用協商好的加密算法和主密鑰進行加密。

客戶端發送 Finished 消息:

客戶端發送一個加密的“Finished”消息,這個消息是之前所有握手消息的哈希值(用主密鑰加密)。服務器可以解密并驗證這個哈希值,以確認握手過程沒有被篡改,并且客戶端確實擁有主密鑰。

服務器發送完成消息(Change Cipher Spec):

服務器通知客戶端,后續所有的通信都將使用協商好的加密算法和主密鑰進行加密。

服務器發送 Finished 消息:

服務器發送一個加密的“Finished”消息,內容是之前所有服務器端握手消息的哈希值(用主密鑰加密)。客戶端可以解密并驗證這個哈希值。
一旦雙方都成功驗證了對方的Finished消息,握手階段就結束了。 此時,一個安全的通信通道已經建立。

階段二:加密數據傳輸

握手完成后,客戶端和服務器使用在握手階段協商好的對稱加密算法和主密鑰(或從主密鑰派生出的會話密鑰)來加密和解密所有傳輸的數據(如HTML頁面、圖片、表單提交等)。對稱加密因為加解密速度快,適合大量數據的傳輸。

HTTPS加密的關鍵技術點:

非對稱加密(公鑰加密):

用于SSL/TLS握手階段,安全地交換對稱密鑰(主密鑰)。客戶端用服務器的公鑰加密數據,只有服務器用私鑰才能解密。

對稱加密(私鑰加密):

用于加密實際傳輸的大量數據。加解密速度快,但密鑰分發是個問題(這就是為什么需要非對稱加密來交換對稱密鑰)。

哈希函數(消息摘要):

用于生成數據的固定長度摘要(指紋)。即使數據有微小變化,摘要也會完全不同。在握手過程中用于驗證消息的完整性(Finished消息)。

數字證書:

由可信的第三方(CA)頒發,綁定服務器的公鑰和身份信息(域名)。客戶端通過驗證證書來確認服務器的身份,防止中間人攻擊。

證書頒發機構(CA):

操作系統、瀏覽器等預裝了眾多CA的根證書。客戶端通過信任這些根證書來驗證網站證書的合法性。


HTTPS的優勢總結:

數據保密性: 加密傳輸,防止竊聽。

數據完整性: 通過哈希校驗,防止數據被篡改。

身份認證: 通過證書驗證,確認網站的真實身份,防止釣魚。

提升搜索引擎排名: Google等搜索引擎優先推薦使用HTTPS的網站。

增強用戶信任: 瀏覽器地址欄顯示安全鎖標志,讓用戶更放心。


HTTPS的挑戰:

性能開銷: 加密/解密需要計算資源,相比HTTP稍慢(但現代硬件和優化算法已大大緩解)。

證書成本和管理: 獲取、部署、更新和管理證書需要成本和操作(雖然現在有許多免費證書方案如Let’s Encrypt)。

配置復雜性: 服務器需要正確配置SSL/TLS。

總結:

???????

?????????HTTPS通過結合非對稱加密、對稱加密、哈希函數和數字證書等技術,在HTTP的基礎上構建了一個安全的通信層。它通過復雜的SSL/TLS握手過程建立安全的通道,然后使用高效的對稱加密傳輸數據,從而有效保護了用戶與網站之間的通信安全,是現代互聯網不可或缺的基礎設施。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82692.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82692.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82692.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【freertos-kernel】stream_buffer

文章目錄 補充任務通知發送處理ulTaskGenericNotifyTakexTaskGenericNotifyWait 清除xTaskGenericNotifyStateClearulTaskGenericNotifyValueClear 結構體StreamBufferHandle_tStreamBufferCallbackFunction_t 創建xStreamBufferGenericCreatestream buffer的類型 刪除vStreamB…

在word中點擊zotero Add/Edit Citation沒有反應的解決辦法

重新安裝了word插件 1.關掉word 2.進入Zotero左上角編輯-引用 3.往下滑找到Microsoft Word,點重新安裝加載項

新華三H3CNE網絡工程師認證—Easy IP

Easy IP 就是“用路由器自己的公網IP,給全家所有設備當共享門牌號”的技術!(省掉額外公網IP,省錢又省配置!) 生活場景對比,想象你住在一個小區:普通動態NAT:物業申請了 …

算法打開13天

41.前 K 個高頻元素 (力扣347題) 給你一個整數數組 nums 和一個整數 k ,請你返回其中出現頻率前 k 高的元素。你可以按 任意順序 返回答案。 示例 1: 輸入: nums [1,1,1,2,2,3], k 2 輸出: [1,2]示例 2: 輸入: nums [1], k 1 輸出: …

LabVIEW與PLC液壓泵測控系統

針對液壓泵性能測試場景,采用LabVIEW與西門子 PLC 控制系統,構建高精度、高可靠性的智能測控系統。通過選用西門子 PLC、NI 數據采集卡、施耐德變頻電機等,結合LabVIEW 強大的數據處理與界面開發能力,實現液壓泵壓力、流量、轉速等…

應急響應靶機-web2-知攻善防實驗室

題目: 前景需要:小李在某單位駐場值守,深夜12點,甲方已經回家了,小李剛偷偷摸魚后,發現安全設備有告警,于是立刻停掉了機器開始排查。 這是他的服務器系統,請你找出以下內容&#…

Python制作史萊姆桌面寵物!可愛的

史萊姆桌面寵物 一個可愛的桌面史萊姆寵物,它會在您的任務欄上移動并提供可視化設置界面。 這里寫目錄標題 史萊姆桌面寵物功能特點安裝與運行直接運行方式創建可執行文件 使用說明自定義GIF說明打包說明開源地址 功能特點 可愛的史萊姆在任務欄上自動移動支持…

vue3 自動導入自己的js文件中的函數

vue3 自動導入自己的js文件中的函數 vite.config.js import AutoImport from unplugin-auto-import/viteexport default defineConfig({resolve: {alias: {: fileURLToPath(new URL(./src, import.meta.url))}},plugins: [vue(),AutoImport({imports: [vue, vue-router, pini…

Mobile App UI自動化locator

在開展mobile app UI層自動化測試時,編寫目標元素的locator是比較耗時的一個環節,弄清楚locator背后的邏輯,可以有效降低UI層測試維護成本。此篇博客以webdriverioappium作為UI自動化工具為例子,看看有哪些selector方法&#xff0…

44、web實驗-后臺管理系統基本功能

44、web實驗-后臺管理系統基本功能 “44、web實驗-后臺管理系統基本功能”通常指的是在Web開發學習過程中,關于構建后臺管理系統的實踐環節,主要涉及實現一個具備基本功能的后臺管理系統。以下是該實驗的主要內容: #### 實驗目標 - 掌握后臺管…

【Flask】:輕量級Python Web框架詳解

什么是Flask? Flask是一個用Python編寫的輕量級Web應用框架。它被稱為"微框架"(microframework),因為它核心簡單但可擴展性強,不強制使用特定的項目結構或庫。Flask由Armin Ronacher開發,基于Werkzeug WSGI工具包和Jin…

MAC電腦怎么通過觸摸屏打開右鍵

在Mac電腦上,通過觸摸屏打開右鍵菜單的方法如下: 法1:雙指輕點:在觸控板上同時用兩根手指輕點,即可觸發右鍵菜單。這是Mac上常用的右鍵操作方法。 法2:自定義觸控板角落:可以設置觸控板的右下角或左下角作為右鍵區域…

AI煉丹日志-26 - crawl4ai 專為 AI 打造的爬蟲爬取庫 上手指南

點一下關注吧!!!非常感謝!!持續更新!!! Java篇: MyBatis 更新完畢目前開始更新 Spring,一起深入淺出! 大數據篇 300: Hadoop&…

java32

1.反射 獲取類: 獲取構造方法: 獲取權限修飾符: 獲取參數信息: 利用反射出來的構造器來創建對象: 獲取成員變量: 獲取成員方法: 綜合練習: 動態代理:

OpenStack組件:放置服務(Placement)安裝

OpenEuler的安裝_openeuler5.1.0-249-CSDN博客 OpenStack云計算平臺基礎環境準備_openstack基礎環境配置-CSDN博客 OpenStack組件:鏡像服務(Glance)安裝-CSDN博客 OpenStack組件:認證服務(Keystone)安裝…

整合swagger,以及Knife4j優化界面

因為是前后端項目&#xff0c;需要前端的參與&#xff0c;所以一個好看的接口文檔非常的重要 1、引入依賴 美化插件其中自帶swagger的依賴了 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-spring-boot-starter&…

STM32——CAN總線

STM32——CAN總線 1. CAN總線基礎概念 1.1 CAN總線簡介 控制器局域網&#xff08;Controller Area Network, CAN&#xff09;是由Bosch公司開發的串行通信協議&#xff0c;專為汽車電子和工業控制設計&#xff0c;具有以下核心特性&#xff1a; 多主控制架構&#xff1a;所有…

什么是數據傾斜?如何優化?

什么是數據傾斜?如何優化? 一、數據傾斜的定義與表現 數據傾斜是指在大規模數據處理系統中,數據分布嚴重不均勻的現象,導致某些計算節點負載遠高于其他節點。這種現象在分布式計算框架(如Hadoop、Spark)和分布式數據庫(如Hive、HBase)中尤為常見。 關鍵特征:少數節點…

大模型數據流處理實戰:Vue+NDJSON的Markdown安全渲染架構

在Vue中使用HTTP流接收大模型NDJSON數據并安全渲染 在構建現代Web應用時&#xff0c;處理大模型返回的流式數據并安全地渲染到頁面是一個常見需求。本文將介紹如何在Vue應用中通過普通HTTP流接收NDJSON格式的大模型響應&#xff0c;使用marked、highlight.js和DOMPurify等庫進…

第11期_網站搭建_極簡云 單碼網絡驗證修復版本 虛擬主機搭建筆記

系統搭建環境 1、Nginx 最佳 2、php 7.2 3、MySql 5.6 后臺地址 域名/admin 后臺賬號 admin 密碼 123456 我使用寶塔面板的后門校驗&#xff0c;沒有發現有后門的現象&#xff0c;使用的話&#xff0c;建議再次核查一下。也希望各位 有能力的也核查一下。 夸克網盤下載地址&…