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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一文看懂https如何保证数据传输的安全性的

發(fā)布時(shí)間:2025/5/22 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一文看懂https如何保证数据传输的安全性的 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文地址:?https://www.cnblogs.com/kubidemanong/p/9390021.html

大家都知道,在客戶端與服務(wù)器數(shù)據(jù)傳輸?shù)倪^程中,http協(xié)議的傳輸是不安全的,也就是一般情況下http是明文傳輸?shù)?。但https協(xié)議的數(shù)據(jù)傳輸是安全的,也就是說https數(shù)據(jù)的傳輸是經(jīng)過加密。

在客戶端與服務(wù)器這兩個(gè)完全沒有見過面的陌生人交流中,https是如何保證數(shù)據(jù)傳輸?shù)陌踩缘哪?#xff1f;

下面我將帶大家一步步了解https是如何加密才得以保證數(shù)據(jù)傳輸?shù)陌踩缘摹N覀兿劝芽蛻舳朔Q為小客,服務(wù)器稱為小服。然后一步步探索在小客與小服的交流中(就是一方請(qǐng)求一方響應(yīng)),https是如何保證他們的交流不會(huì)被中間人竊聽的。

1. 對(duì)稱加密

假如現(xiàn)在小客與小服要進(jìn)行一次私密的對(duì)話,他們不希望這次對(duì)話內(nèi)容被其他外人知道??墒?#xff0c;我們平時(shí)的數(shù)據(jù)傳輸過程中又是明文傳輸?shù)?#xff0c;萬一被某個(gè)黑客把他們的對(duì)話內(nèi)容給竊取了,那就難受了。

為了解決這個(gè)問題,小服這家伙想到了一個(gè)方法來加密數(shù)據(jù),讓黑客看不到具體的內(nèi)容。該方法是這樣子的:

在每次數(shù)據(jù)傳輸之前,小服會(huì)先傳輸小客一把密鑰,然后小服在之后給小客發(fā)消息的過程中,會(huì)用這把密鑰對(duì)這些消息進(jìn)行加密。小客在收到這些消息后,會(huì)用之前小服給的那把密鑰對(duì)這些消息進(jìn)行解密,這樣,小客就能得到密文里面真正的數(shù)據(jù)了。如果小客要給小服發(fā)消息,也同樣用這把密鑰來對(duì)消息進(jìn)行加密,小服收到后也用這把密鑰進(jìn)行解密。 這樣,就保證了數(shù)據(jù)傳輸?shù)陌踩浴H鐖D所示:

這時(shí),小服想著自己的策咯,還是挺得意的。

可是,這時(shí)候問題來了。這個(gè)策略安全的前提是,小客擁有小服的那把密鑰??蓡栴}是,小服是以明文的方式把這把密鑰傳輸給小客的,這個(gè)時(shí)候,如果黑客截取了這把密鑰,那就難受了。小服與小客就算是加密了內(nèi)容,在截取了密鑰的黑客老哥眼里,這和明文沒啥區(qū)別。

2. 非對(duì)稱加密

小服還是挺聰明的,得意了一會(huì)之后,小服意識(shí)到了密鑰會(huì)被截取這個(gè)問題。倔強(qiáng)的小服又想到了另外一種方法:用非對(duì)稱加密的方法來加密數(shù)據(jù)。該方法是這樣的:

小服和小客都擁有兩把鑰匙,一把鑰匙的公開的(全世界都知道也沒關(guān)系),稱之為公鑰;而另一把鑰匙是保密(也就是只有自己才知道),稱之為私鑰。并且,用公鑰加密的數(shù)據(jù),只有對(duì)應(yīng)的私鑰才能解密;用私鑰加密的數(shù)據(jù),只有對(duì)應(yīng)的公鑰才能解密。

所以在傳輸數(shù)據(jù)的過程中,小服在給小客傳輸數(shù)據(jù)的過程中,會(huì)用小客給他的公鑰進(jìn)行加密,然后小客收到后,再用自己的私鑰進(jìn)行解密。小客給小服發(fā)消息的時(shí)候,也一樣會(huì)用小服給他的公鑰進(jìn)行加密,然后小服再用自己的私鑰進(jìn)行解密。 這樣,數(shù)據(jù)就能安全著到達(dá)雙方。如圖:

想著這么復(fù)雜的策略都能想出來,小服可是得意的不能在得意了.....

看著那么得意的小服,小客這時(shí)心情就不得好了。還沒等小服得意多久,小客就給它潑了一波冷水了。

小客嚴(yán)肅著說:其實(shí),你的這種方法也不是那么的安全啊。還是存在被黑客截取的危險(xiǎn)啊。例如:

你在給我傳輸公鑰的過程中,如果黑客截取了你的公鑰,并且拿著自己的公鑰來冒充你的公鑰來發(fā)給我。我收到公鑰之后,會(huì)用公鑰進(jìn)行加密傳輸(這時(shí)用的公鑰實(shí)際上是黑客的公鑰)。黑客截取了加密的消息之后,可以用他自己的私鑰來進(jìn)行解密來獲取消息內(nèi)容。然后在用你(小服)的公鑰來對(duì)消息進(jìn)行加密,之后再發(fā)給你(小服)。 這樣子,我們的對(duì)話內(nèi)容還是被黑客給截取了啊。(倒過來小客給小服傳輸公鑰的時(shí)候也一樣)。

我靠,這么精妙的想法居然也不行,小服這波,滿臉無神。

## 插講下 ##

其實(shí)在傳輸數(shù)據(jù)的過程中,在速度上用對(duì)稱加密的方法會(huì)比非對(duì)稱加密的方法快很多。所以在傳輸數(shù)據(jù)的時(shí)候,一般不單單只用非對(duì)稱加密這種方法(我們先假設(shè)非對(duì)稱密碼這種方法很安全),而是會(huì)用非對(duì)稱加密 + 對(duì)稱加密這兩種結(jié)合的方法。 你想啊,對(duì)于對(duì)稱加密這種方法來說,之所以不安全是因?yàn)?strong>密鑰在傳輸?shù)倪^程中,被別人知道了。基于這個(gè),我們可以用非對(duì)稱加密方法來安全著傳輸密鑰,之后在用對(duì)稱加密的方法來傳輸消息內(nèi)容(當(dāng)然,我這里假定了非對(duì)稱加密傳輸是安全的,下面會(huì)講如何使之安全)。

數(shù)字證書

我們回頭想一下,是什么原因?qū)е?strong>非對(duì)稱加密這種方法的不安全性呢?它和對(duì)稱加密方法的不安全性不同。非對(duì)稱加密之所以不安全,是因?yàn)樾】褪盏搅斯€之后,無法確定這把公鑰是否真的是小服。

也就是說,我們需要找到一種策略來證明這把公鑰就是小服的,而不是別人冒充的。

為了解決這個(gè)問題,小服和小客通過絞盡腦汁想出了一種終極策略:數(shù)字證書

我們需要找到一個(gè)擁有公信力、大家都認(rèn)可的認(rèn)證中心(CA)

小服再給小客發(fā)公鑰的過程中,會(huì)把公鑰以及小服的個(gè)人信息通過Hash算法生成消息摘要。如圖:

為了防止摘要被人調(diào)換,小服還會(huì)用CA提供的私鑰對(duì)消息摘要進(jìn)行加密來形成數(shù)字簽名。如圖:

并且,最后還會(huì)把原來沒Hash算法之前的信息和數(shù)字簽名合并在一起,形成數(shù)字證書。如圖:

當(dāng)小客拿到這份數(shù)字證書之后,就會(huì)用CA提供的公鑰來對(duì)數(shù)字證書里面的數(shù)字簽名進(jìn)行解密得到消息摘要,然后對(duì)數(shù)字證書里面小服的公鑰和個(gè)人信息進(jìn)行Hash得到另一份消息摘要,然后把兩份消息摘要進(jìn)行對(duì)比,如果一樣,則證明這些東西確實(shí)是小服的,否則就不是。如圖:

這時(shí)可能有人會(huì)有疑問,CA的公鑰是怎么拿給小客的呢?小服又怎么有CA的私鑰呢?其實(shí),(有些)服務(wù)器在一開始就向認(rèn)證中心申請(qǐng)了這些證書,而客戶端里,也會(huì)內(nèi)置這些證書。如圖(此圖來元阮一峰的網(wǎng)絡(luò)日志)

當(dāng)客戶端收到服務(wù)器返回來的數(shù)據(jù)時(shí),就會(huì)在內(nèi)置的證書列表里,查看是否有有解開該數(shù)字證書的公鑰,如果有則.....否則.....

講到這里,就大概結(jié)束了。希望對(duì)你有所幫助勒。如果有哪里寫得不對(duì)的地方,歡迎大家指出。

總結(jié)

以上是生活随笔為你收集整理的一文看懂https如何保证数据传输的安全性的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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