計算機網(wǎng)絡之HTTPS/SSL/TLS

前言

前端面試少不了問http和https的區(qū)別,今天就嘗試深入了解下到底什么是https

1.http與https

1.1?HTTP和HTTPS的基本概念

  HTTP:是互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡協(xié)議恒削,是一個客戶端和服務器端請求和應答的標準(TCP)钓丰,用于從WWW服務器傳輸超文本到本地瀏覽器的傳輸協(xié)議携丁,它可以使瀏覽器更加高效,使網(wǎng)絡傳輸減少李茫。

  HTTPS:是以安全為目標的HTTP通道肥橙,簡單講是HTTP的安全版存筏,即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL椭坚,因此加密的詳細內(nèi)容就需要SSL藕溅。

  HTTPS協(xié)議的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩樱涣硪环N就是確認網(wǎng)站的真實性考阱。

1.2 HTTP與HTTPS有什么區(qū)別?

  HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的乞榨,也就是明文的吃既,因此使用HTTP協(xié)議傳輸隱私信息非常不安全跨细,為了保證這些隱私數(shù)據(jù)能加密傳輸,于是網(wǎng)景公司設計了SSL(Secure Sockets Layer)協(xié)議用于對HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進行加密震叙,從而就誕生了HTTPS媒楼。簡單來說戚丸,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,要比http協(xié)議安全对人。

  HTTPS和HTTP的區(qū)別主要如下:

  1拂共、https協(xié)議需要到ca申請證書宜狐,一般免費證書較少抚恒,因而需要一定費用络拌。

  2春贸、http是超文本傳輸協(xié)議,信息是明文傳輸逸嘀,https則是具有安全性的ssl加密傳輸協(xié)議允粤。

  3类垫、http和https使用的是完全不同的連接方式悉患,用的端口也不一樣,前者是80跪削,后者是443迂求。

  4碾盐、http的連接很簡單揩局,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸烹玉、身份認證的網(wǎng)絡協(xié)議阐滩,比http協(xié)議安全。

有些細節(jié)看不懂沒關(guān)系继效,你只要知道装获,http是明文傳輸,很容易被黑客竊取凡简,而https是加密傳輸秤涩,比較安全

2.SSL/TLS

https比http安全的原因就是它在TCP協(xié)議之上加入了SSL(Secure Sockets Layer 安全套接字協(xié)議)

眾所周知司抱,http(s)協(xié)議是工作在應用層,而其下就是傳輸層浊竟,而http(s)協(xié)議是基于傳輸層中的TCP協(xié)議之上的振定,就是說http(s)的數(shù)據(jù)傳輸是要在TCP三次握手后肉拓,也就是建立連接的基礎(chǔ)上才能進行http(s)通信

原本的http協(xié)議直接就是TCP握手完,就用明文傳輸數(shù)據(jù)

而https協(xié)議則是在TCP協(xié)議之上加入了SSL加密協(xié)議卑惜,在傳輸數(shù)據(jù)之前先進行加密

那TLS(Transport Layer Security)又是什么鬼呢露久?

簡單點說毫痕,TLS就是規(guī)范化的SSL

早期TCP上的https傳輸用的加密協(xié)議是SSL,等到SSL發(fā)展到3.0之后栏笆,有一個國際機構(gòu)將其標準化蛉加,標準化之后的SSL就叫做TLS七婴,不過人們還是習慣叫SSL,現(xiàn)在大部分用的就是TLS修肠,不過大家喜歡叫做SSL而已,就一回事嵌施。

3.對稱加密/非對稱加密

SSL是加密協(xié)議饲化,那它是怎么加密的呢?

在正式介紹之前吗伤,現(xiàn)來了解下密碼學的基本概念

1.密鑰:就是用來加密解密的東西

2.對稱密鑰:這是對于交流雙方來說的吃靠,就是說交流雙方用來加密解密的工具是一樣的,舉個例子足淆,比如說我想寫一封情書給女神巢块,但我不想別人竊取到我寫了什么,我就和女神約定巧号,我會用咸魚來加密族奢,你用咸魚就可以解密

3.非對稱密鑰:分為公鑰和私鑰,注意公鑰和私鑰的概念只在非對稱加密中出現(xiàn)丹鸿,為了說明什么是公鑰和私鑰越走,舉個例子,假設有一個檢舉機構(gòu)靠欢,它接受廣大人民群眾的實名舉報信廊敌,但為了不讓舉報人的名字泄露,就要進行加密秧廉,于是他就會生成一對公鑰和私鑰,把公鑰告訴群眾区丑,說誰想舉報就用這個公鑰加密,只有我有私鑰可以解密,大家放心旺罢。

在此之上蠢熄,加密方案分為兩種:

對稱加密:雙方使用的同一個密鑰,既可以加密又可以解密节吮,這種加密方法稱為對稱加密,也稱為單密鑰加密。

非對稱加密:一對密鑰由公鑰和私鑰組成(可以使用很多對密鑰)。私鑰解密公鑰加密數(shù)據(jù)诈泼,公鑰解密私鑰加密數(shù)據(jù)(私鑰公鑰可以互相加密解密)檬果。

擴展:

常見的對稱加密算法:AES,DES,3DES

常見的非對稱加密算法:RSA,DSA,ECC

4.數(shù)字簽名,數(shù)字證書

4.1 數(shù)字簽名

回到剛才實名舉報的例子偏灿,舉報信的傳輸是安全了(因為只有檢舉機構(gòu)的私鑰能解密)扁藕,那如果檢舉機構(gòu)想對舉報人回信,在舉報人的角度怎么能證實收到的回信是檢舉機構(gòu)發(fā)的呢?

在現(xiàn)實中很簡單,不就蓋個章嘛(不考慮被偽造的情況)

這個章在密碼學里叫數(shù)字簽名,既表明自己身份唯一的標識

那這個簽名怎么簽呢?

假如我是檢舉機構(gòu),我的回信叫l(wèi)etter

1.letter內(nèi)容+Hash函數(shù)——>摘要

2.摘要+私鑰——>數(shù)字簽名

3.將數(shù)字簽名放在letter內(nèi)容的下面發(fā)送給舉報人

注意:在數(shù)字簽名的過程中隘击,只有私鑰是具有唯一性的莺禁,hash函數(shù)是公開的,letter內(nèi)容可能被截獲修改!

對于舉報人,關(guān)心的只有兩點:1.信是不是檢舉機構(gòu)寄的平斩? 2.信的內(nèi)容有沒有被黑客修改侈沪?

如果上訴兩點一旦確認為 1.是 2.沒有? 那這封信就無誤了。

那怎么求證呢?我們看舉報人收到了什么內(nèi)容滥比,有信的內(nèi)容和數(shù)字簽名

對于第一點:1.信是不是檢舉機構(gòu)寄的?

因為私鑰是檢舉機構(gòu)的唯一標識屈雄,只能通過驗證數(shù)字簽名來求證

數(shù)字簽名+公鑰奶赔,如果能成功得到摘要就確定數(shù)字簽名沒有被偽造站刑,既信是檢舉機構(gòu)寄的

對于第二點:?2.信的內(nèi)容有沒有被黑客修改堕汞?

前文說過晃琳,hash是公開的,如果上面驗證了數(shù)字簽名的正確性视哑,那摘要就是可以反應原文的,所以

letter內(nèi)容+hash 得到摘要,再與上面解密數(shù)字簽名的摘要對比债蜜,一樣的話就是沒有修改

4.2 數(shù)字證書

有朋友說卦停,有數(shù)字簽名,雙方不就可以安全通信了嗎,那數(shù)字證書是什么案站?

上面一切可靠通信的前提是躬审,舉報人手持的公鑰和檢舉單位的私鑰是一對

當舉報人手上的公鑰被惡意替換成某詐騙公司的公鑰之后,詐騙公司就可以偽裝成檢舉機構(gòu)和舉報人通信而不被發(fā)現(xiàn)蟆盐,因為詐騙公司本身就擁有自己的私鑰承边,而且把舉報人的公鑰替換成了自己的公鑰,而舉報人根本發(fā)現(xiàn)不了石挂,還以為自己跟檢舉機構(gòu)安全保密的通信呢博助。

這時候就要數(shù)字證書登場了!

證書中心(certificate authority痹愚,簡稱CA)用自己的私鑰富岳,檢舉機構(gòu)的公鑰和一些相關(guān)信息一起加密,生成"數(shù)字證書"(Digital Certificate)拯腮。

數(shù)字證書保證了檢舉機構(gòu)和對應公鑰的匹配性

就是說窖式,檢舉機構(gòu)下次寄信時帶上這個數(shù)字證書,舉報人用CA的公鑰解密的到檢舉機構(gòu)的公鑰动壤,和客戶端(瀏覽器)的"證書管理器"萝喘,有"受信任的根證書頒發(fā)機構(gòu)"列表對比,如果在上面就可以,不在上面就是假的公鑰阁簸。

擴展:有的朋友就說了弦蹂,那如果CA的公鑰被替換了怎么辦?

有興趣的朋友可以去了解一下這種情況强窖,稱為中間人攻擊凸椿,既黑客組織同時冒充服務端和客戶端進行雙向偽裝通信

5.SSL在http的應用

言歸正傳,說回SSL

SSL加密過程

1.瀏覽器向服務器發(fā)起https請求

2.服務器返回公鑰和數(shù)字證書

3.瀏覽器檢查證書是不是由可以信賴的機構(gòu)頒發(fā)的翅溺,確認證書有效和此證書是此網(wǎng)站的

4.使用公鑰加密了一個隨機對稱密鑰脑漫,包括加密的URL一起發(fā)送到服務器

5.服務器用自己的私匙解密了你發(fā)送的鑰匙。然后用這把對稱加密的鑰匙給你請求的URL鏈接解密

6.服務器用你發(fā)的對稱鑰匙給你請求的網(wǎng)頁加密咙崎。你也有相同的鑰匙就可以解密發(fā)回來的網(wǎng)頁了

一句話總結(jié):

連接的時候使用非對稱加密优幸,確認服務器正確無誤后,生成對稱密鑰褪猛,在以后的通信中采用對稱加密网杆,加快速度。

參考文章

https://www.cnblogs.com/hai-blog/p/8311671.html

https://www.cnblogs.com/wqhwe/p/5407468.html

https://www.cnblogs.com/aaronLinux/p/9018369.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伊滋,一起剝皮案震驚了整個濱河市碳却,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌笑旺,老刑警劉巖昼浦,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異筒主,居然都是意外死亡关噪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門乌妙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來使兔,“玉大人,你說我怎么就攤上這事藤韵∨傲ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵荠察,是天一觀的道長置蜀。 經(jīng)常有香客問我奈搜,道長悉盆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任馋吗,我火速辦了婚禮焕盟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己脚翘,他們只是感情好灼卢,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著来农,像睡著了一般鞋真。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沃于,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天涩咖,我揣著相機與錄音,去河邊找鬼繁莹。 笑死檩互,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的咨演。 我是一名探鬼主播闸昨,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼薄风!你這毒婦竟也來了饵较?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤遭赂,失蹤者是張志新(化名)和其女友劉穎告抄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嵌牺,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡打洼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逆粹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片募疮。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖僻弹,靈堂內(nèi)的尸體忽然破棺而出阿浓,到底是詐尸還是另有隱情,我是刑警寧澤蹋绽,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布芭毙,位于F島的核電站,受9級特大地震影響卸耘,放射性物質(zhì)發(fā)生泄漏退敦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一蚣抗、第九天 我趴在偏房一處隱蔽的房頂上張望侈百。 院中可真熱鬧,春花似錦、人聲如沸钝域。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽例证。三九已至路呜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間织咧,已是汗流浹背拣宰。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烦感,地道東北人巡社。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像手趣,于是被迫代替她去往敵國和親晌该。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345