日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初识http

發布時間:2024/1/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识http 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初識HTTPS

HTTPS也被叫做“基于TLS的HTTP,基于SSL的HTTP,HTTP安全“,它是一個在Internet上廣泛使用的計算機網絡安全通信協議。

即HTTPS是HTTP的安全版本,在了解HTTPS為何安全之前,那么我們首先應該要知道HTTP為什么不安全。

HTTP為什么不安全

通過 HTTP 協議傳輸的信息是明文的。網絡包從客戶端/瀏覽器到服務器的這段過程中,需要經過多個網絡設備。我們的登錄帳號、密碼等信息可以輕易被其中任何一個網絡設備獲取。

如果其中的一個網絡設備被黑客控制,除了可以獲取我們發送的數據以外,還可以將我們發送的數據進行偽造后再進行發送。

這就是 HTTP 傳輸所面臨的問題之一:中間人攻擊,指消息傳遞的過程中,處在傳遞路徑上的攻擊者可以嗅探或者竊聽傳輸數據的內容。

HTTPS加密

HTTPS針對這個問題,采用了“加密”的方式來解決。

使用對稱加密算法(AES)

我們最先想到的應該就是對稱加密算法了,如果HTTPS使用的是對稱加密算法會是怎樣的情況呢?

對稱加密算法既指加密和解密需要使用的密鑰key是一樣的。

如果客戶端和服務端都有一個相同的密匙key,那么客戶端先使用密匙key加密數據之后再發送到服務端,此時中間人獲取到的數據是無法解密的。服務端使用key解密后,執行完畢返回同樣由該key加密的數據到客戶端。

整個過程看起來沒有問題,但是忽略了一個點,即密匙key如果是服務端生成的該如何告訴客戶端呢?實際上,無論采用什么樣的方式告訴客戶端,都有可能導致密匙key泄露,一旦密匙泄露,則整個加密的工作都顯得沒有意義了。

所以實際上HTTPS的加密并不是用的對稱加密算法這種方式。

使用非對稱加密算法(RSA)

HTTPS使用了另一種聰明的加密算法,非對稱加密算法。

非對稱加密算法會生成兩個密鑰(key1 和 key2)。凡是 key1 加密的數據,key1 自身不能解密,需要 key2 才能解密;凡事 key2 加密的數據,key2 自身不能解密,只有 key1 才能解密。

HTTPS實現

下面我們看看HTTPS中是如何使用RSA的:

  • 服務端在發送消息之前先用RSA技術生成了一對密鑰k1和k2。
  • 服務端把k1用明文發送給了客戶端,中間人也許會截取,但是沒有用,k1加密的數據需要k2才可以破解,而k2在服務端手中。
  • k1傳到了客戶端,客戶端會去生成一個接下來準備用于對稱加密(AES)的傳輸密鑰key,然后用收到的k1把key加密,傳給你。
  • 服務端用手上的k2解出key后,此時只有服務端和客戶端知道這個對稱加密的key。
  • 接下來的消息使用對稱加密的方式進行即可,即非對稱加密解決了之前我們的問題,即如何安全的把密匙key傳遞出去。
  • 這里也許你會有問題,為什么不直接用非對稱加密來加密信息,而是加密 AES 的 key 呢?

    因為非對稱加密和解密的平均消耗時間比較長,為了節省時間提高效率,我們通常只是用它來交換密鑰,而非直接傳輸數據。

    HTTPS證書

    我們之前通過加密技術已經解決了消息安全傳遞的問題了,那么是不是從此就萬無一失了呢?答案當然不是。

    我們設想一下,如果我們服務端(S)和客戶端(C)中間會途經一個黑客服務器,暫且就稱為H吧,下面我們看看H如何操作可以破解掉我們的加密防范。

  • S生成了k1,使用明文發送給C;
  • H接收到k1之后,并沒有轉發給C,而是先自己生成一個key,使用k1加密后發送給S,即對S來說,H偽裝成了C;
  • 同時,H生成了新的一個k1,使用明文發送給C,C會把加密后的key告訴H,即對C來說,H偽裝成了S;
  • 這樣一來,實際上H就成為了S和C之間的一個消息轉發者了,不旦可以知道S和C之間發送的消息,還可以偽造消息進行發送;
  • 這么看來,我們之前的努力貌似又功虧一簣了。

    所以此時我們需要引入一個非常權威的第三方,一個專門用來認證網站合法性的組織,可以叫做 CA(Certificate Authority)。各個網站服務商可以向 CA 申請證書,使得他們在建立安全連接時可以帶上 CA 的簽名。而 CA 得安全性是由操作系統或者瀏覽器來認證的。

    你的 Windows、Mac、Linux、Chrome、Safari 等會在安裝的時候帶上一個他們認為安全的 CA 證書列表,只有和你建立安全連接的網站帶有這些CA的簽名,操作系統和瀏覽器才會認為這個鏈接是安全的,否則就有可能遭到中間人攻擊。

    一旦某個 CA 頒發的證書被用于的非法途徑,那么這個 CA 之前頒發過的所有證書都將被視為不安全的,這讓所有 CA 在頒發證書時都十分小心,所以 CA 證書在通常情況下是值得信任的。

    總結

    使 HTTP 后面增加一個S(Security)的技術,正是 對稱加密 + 非對稱加密 + CA 認證 這三種技術的混合體。當然這個主要是 HTTPS 的基本原理,真正實際中的 HTTPS 的協議是比以上的描述更為復雜一些的,并且其中任何一步稍有閃失,整個流程都將不再安全。

    這也是為什么 HTTPS 協議從 SSL 1.0升級到 SSL 3.0,再被 TLS 1.0 現在被 TLS 1.3取代,其背后都是一個個細節上的優化,以防有任何閃失。

    TLS 協議相比 SSL 協議增加了傳輸層的安全保證。

    轉載于:https://www.cnblogs.com/SharkChilli/p/7989327.html

    總結

    以上是生活随笔為你收集整理的初识http的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。