Https知識(shí)科普

https 對(duì)稱密鑰加密 非對(duì)稱密鑰加密


Http的缺點(diǎn)

  • 通信使用明文(不加密),內(nèi)容可能被竊聽
  • 不驗(yàn)證通信雙方的身份,因此有可能遭遇偽裝
  • 無法證明報(bào)文的完成性,所以有可能已遭篡改

正是由于這些不足,才有必要學(xué)習(xí)并使用https廉邑。

1.為什么需要HTTPS

HTTP是明文傳輸?shù)牡构龋簿鸵馕吨橛诎l(fā)送端牵祟、接收端中間的任意節(jié)點(diǎn)都可以知道你們傳輸?shù)膬?nèi)容是什么抖格。這些節(jié)點(diǎn)可能是路由器、代理等收奔。
舉個(gè)最常見的例子滓玖,用戶登陸。用戶輸入賬號(hào)翩肌,密碼,采用HTTP的話汰蓉,只要在代理服務(wù)器上做點(diǎn)手腳就可以拿到你的密碼了棒卷。

用戶登陸 --> 代理服務(wù)器(做手腳)--> 實(shí)際授權(quán)服務(wù)器

2.HTTPS是如何保障安全的

HTTPS其實(shí)就是secure http的意思啦,也就是HTTP的安全升級(jí)版若厚。稍微了解網(wǎng)絡(luò)基礎(chǔ)的同學(xué)都知道蜒什,HTTP是應(yīng)用層協(xié)議,位于HTTP協(xié)議之下是傳輸協(xié)議TCP霎冯。TCP負(fù)責(zé)傳輸钞瀑,HTTP則定義了數(shù)據(jù)如何進(jìn)行包裝。

HTTP --> TCP (明文傳輸)

3.HTTPS相對(duì)于HTTP有哪些不同呢缠俺?

其實(shí)就是在HTTP跟TCP中間加多了一層加密層TLS/SSL贷岸。

通俗的講,TLS躏救、SSL其實(shí)是類似的東西户敬,SSL是個(gè)加密套件,負(fù)責(zé)對(duì)HTTP的數(shù)據(jù)進(jìn)行加密。TLS是SSL的升級(jí)版∧匮撸現(xiàn)在提到HTTPS,加密套件基本指的是TLS皮假。

傳輸流程的加密

HTTP是在應(yīng)用層將數(shù)據(jù)直接給到TCP進(jìn)行傳輸,HTTPS改成應(yīng)用層將數(shù)據(jù)給到TLS/SSL贺纲,將數(shù)據(jù)加密后褪测,再給到TCP進(jìn)行傳輸。

大致如圖所示:

SSL/TLS流程圖

就是這么回事懈叹。將數(shù)據(jù)加密后再傳輸分扎,而不是任由數(shù)據(jù)在復(fù)雜而又充滿危險(xiǎn)的網(wǎng)絡(luò)上明文裸奔,在很大程度上確保了數(shù)據(jù)的安全墨状。這樣的話菲饼,即使數(shù)據(jù)被中間節(jié)點(diǎn)截獲,壞人也看不懂通今。

4.HTTPS是如何加密數(shù)據(jù)的肛根?

對(duì)安全或密碼學(xué)基礎(chǔ)有了解的同學(xué),應(yīng)該知道常見的加密手段臼氨。一般來說,加密分為對(duì)稱加密储矩、非對(duì)稱加密(也叫公開密鑰加密)褂乍。

對(duì)稱加密:

對(duì)稱加密的意思就是,加密數(shù)據(jù)用的密鑰屡拨,跟解密數(shù)據(jù)用的密鑰是一樣的。

優(yōu)點(diǎn):對(duì)稱加密的優(yōu)點(diǎn)在于加密呀狼、解密效率通常比較高。缺點(diǎn)在于绝编,數(shù)據(jù)發(fā)送方貌踏、數(shù)據(jù)接收方需要協(xié)商、共享同一把密鑰哩俭,并確保密鑰不泄露給其他人。此外砸捏,對(duì)于多個(gè)有數(shù)據(jù)交換需求的個(gè)體隙赁,兩兩之間需要分配并維護(hù)一把密鑰,這個(gè)帶來的成本基本是不可接受的伞访。

非對(duì)稱加密

非對(duì)稱加密的意思就是,加密數(shù)據(jù)用的密鑰(公鑰)厚掷,跟解密數(shù)據(jù)用的密鑰(私鑰)是不一樣的。
什么叫做公鑰呢田绑?其實(shí)就是字面上的意思——公開的密鑰抡爹,誰都可以查到。因此非對(duì)稱加密也叫做公開密鑰加密欧穴。
相對(duì)應(yīng)的,私鑰就是非公開的密鑰涮帘,一般是由網(wǎng)站的管理員持有笑诅。
公鑰映屋、私鑰兩個(gè)有什么聯(lián)系呢同蜻?
簡(jiǎn)單的說就是湾蔓,通過公鑰加密的數(shù)據(jù),只能通過私鑰解開默责。通過私鑰加密的數(shù)據(jù)咸包,只能通過公鑰解開。
很多同學(xué)都知道用私鑰能解開公鑰加密的數(shù)據(jù)媒熊,但忽略了一點(diǎn)坟比,私鑰加密的數(shù)據(jù),同樣可以用公鑰解密出來葛账。而這點(diǎn)對(duì)于理解HTTPS的整套加密、授權(quán)體系非常關(guān)鍵菲宴。


舉個(gè)例子

  • 登陸用戶:小明
  • 授權(quán)網(wǎng)站:某知名社交網(wǎng)站(以下簡(jiǎn)稱XX)

小明是某知名社交網(wǎng)站XX的用戶趋急,XX出于安全考慮在登陸的地方用了非對(duì)稱加密。小明在登陸界面敲入賬號(hào)愈犹、密碼闻丑,點(diǎn)擊“登陸”。于是嗦嗡,瀏覽器利用公鑰對(duì)小明的賬號(hào)密碼進(jìn)行了加密,并向XX發(fā)送登陸請(qǐng)求叁执。XX的登陸授權(quán)程序通過私鑰,將賬號(hào)谈宛、密碼解密,并驗(yàn)證通過窑滞。之后恢筝,將小明的個(gè)人信息(含隱私),通過私鑰加密后撬槽,傳輸回瀏覽器。瀏覽器通過公鑰解密數(shù)據(jù)侄柔,并展示給小明。

  • 步驟一: 小明輸入賬號(hào)密碼 --> 瀏覽器用公鑰加密 --> 請(qǐng)求發(fā)送給XX
  • 步驟二: XX用私鑰解密勋磕,驗(yàn)證通過 --> 獲取小明社交數(shù)據(jù)敢靡,用私鑰加密 --> 瀏覽器用公鑰解密數(shù)據(jù),并展示赶站。

用非對(duì)稱加密纺念,就能解決數(shù)據(jù)傳輸安全的問題了嗎?前面特意強(qiáng)調(diào)了一下烙博,私鑰加密的數(shù)據(jù),公鑰是可以解開的渣窜,而公鑰又是公開的宪躯。也就是說,非對(duì)稱加密只能保證單向數(shù)據(jù)傳輸?shù)陌踩浴?br> 此外详瑞,還有公鑰如何分發(fā)/獲取的問題掂林。下面會(huì)對(duì)這兩個(gè)問題進(jìn)行進(jìn)一步的探討泻帮。


公開密鑰加密的問題

從前面小明登陸社交網(wǎng)站XX的例子可以看出兩個(gè)問題

問題1:公鑰如何獲刃趟场饲常?

瀏覽器是怎么獲得XX的公鑰的狼讨?當(dāng)然,小明可以自己去網(wǎng)上查播聪,XX也可以將公鑰貼在自己的主頁布隔。然而衅檀,對(duì)于一個(gè)動(dòng)不動(dòng)就成敗上千萬的社交網(wǎng)站來說,會(huì)給用戶造成極大的不便利哀军,畢竟大部分用戶都不知道“公鑰”是什么東西。

這里要涉及兩個(gè)非常重要的概念:證書谎倔、CA(證書頒發(fā)機(jī)構(gòu))猿推。

證書
可以暫時(shí)把它理解為網(wǎng)站的身份證。這個(gè)身份證里包含了很多信息藕咏,其中就包含了上面提到的公鑰具垫。也就是說,當(dāng)小明筝蚕、小王铺坞、小光等用戶訪問XX的時(shí)候济榨,再也不用滿世界的找XX的公鑰了擒滑。當(dāng)他們?cè)L問XX的時(shí)候,XX就會(huì)把證書發(fā)給瀏覽器丐一,告訴他們說淹冰,乖,用這個(gè)里面的公鑰加密數(shù)據(jù)樱拴。
這里有個(gè)問題,所謂的“證書”是哪來的晶乔?這就是下面要提到的CA負(fù)責(zé)的活了。

CA(證書頒發(fā)機(jī)構(gòu))
強(qiáng)調(diào)兩點(diǎn):
可以頒發(fā)證書的CA有很多(國內(nèi)外都有)阵漏。
只有少數(shù)CA被認(rèn)為是權(quán)威腺怯、公正的,這些CA頒發(fā)的證書虑乖,瀏覽器才認(rèn)為是信得過的。比如VeriSign晾虑。(CA自己偽造證書的事情也不是沒發(fā)生過疹味。。帜篇。)
證書頒發(fā)的細(xì)節(jié)這里先不展開糙捺,可以先簡(jiǎn)單理解為,網(wǎng)站向CA提交了申請(qǐng)笙隙,CA審核通過后洪灯,將證書頒發(fā)給網(wǎng)站,用戶訪問網(wǎng)站的時(shí)候竟痰,網(wǎng)站將證書給到用戶签钩。
至于證書的細(xì)節(jié)掏呼,這里不做贅述。

問題2:數(shù)據(jù)傳輸僅單向安全

公鑰加密的數(shù)據(jù)铅檩,只有私鑰能解開,于是小明的賬號(hào)拾给、密碼是安全了蒋得,半路不怕被攔截窄锅。
然后有個(gè)很大的問題:私鑰加密的數(shù)據(jù)追驴,公鑰也能解開。加上公鑰是公開的暇咆,小明的隱私數(shù)據(jù)相當(dāng)于在網(wǎng)上換了種方式裸奔。(中間代理服務(wù)器拿到了公鑰后扯旷,毫不猶豫的就可以解密小明的數(shù)據(jù))钧忽。

上面提到耸黑,通過私鑰加密的數(shù)據(jù)大刊,可以用公鑰解密還原缺菌。那么另患,這是不是就意味著昆箕,網(wǎng)站傳給用戶的數(shù)據(jù)是不安全的鹏倘?
答案是:是O吮谩!9(三個(gè)嘆號(hào)表示強(qiáng)調(diào)的三次方)

看到這里循狰,可能你心里會(huì)有這樣想:用了HTTPS绪钥,數(shù)據(jù)還是裸奔程腹,這么不靠譜跪楞,還不如直接用HTTP來的省事甸祭。但是池户,為什么業(yè)界對(duì)網(wǎng)站HTTPS化的呼聲越來越高呢赊抖?這明顯跟我們的感性認(rèn)識(shí)相違背啊氛雪。

因?yàn)椋篐TTPS雖然用到了公開密鑰加密报亩,但同時(shí)也結(jié)合了其他手段弦追,如對(duì)稱加密劲件,來確保授權(quán)、加密傳輸?shù)男时榉场踩浴?/p>

概括來說,整個(gè)簡(jiǎn)化的加密通信的流程就是:

1.小明訪問XX拐云,XX將自己的證書給到小明(其實(shí)是給到瀏覽器,小明不會(huì)有感 知)

2.瀏覽器從證書中拿到XX的公鑰A

3.瀏覽器生成一個(gè)只有自己自己的對(duì)稱密鑰B薇缅,用公鑰A加密泳桦,并傳給XX(其實(shí)是-有協(xié)商的過程灸撰,這里為了便于理解先簡(jiǎn)化)

4.XX通過私鑰解密完疫,拿到對(duì)稱密鑰B

5.瀏覽器壳鹤、XX 之后的數(shù)據(jù)通信芳誓,都用密鑰B進(jìn)行加密

注意:對(duì)于每個(gè)訪問XX的用戶兆沙,生成的對(duì)稱密鑰B理論上來說都是不一樣的葛圃。比如小明、小王厘唾、小光喷楣,可能生成的就是B1、B2曲伊、B3


總結(jié):雖然作為前端開發(fā),對(duì)于http可以不用理解的那么深懈糯。但是對(duì)于這些基本原理還是需要懂的届腐。HTTP的入門書推薦圖解HTTP,里面的內(nèi)容很生動(dòng)形象围详。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末雹食,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子街立,更是在濱河造成了極大的恐慌赎离,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡做祝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來件舵,“玉大人铅祸,你說我怎么就攤上這事。” “怎么了什猖?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵荤傲,是天一觀的道長(zhǎng)遂黍。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么敬飒? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任昧碉,我火速辦了婚禮四康,結(jié)果婚禮上慕嚷,老公的妹妹穿的比我還像新娘。我一直安慰自己挠说,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布仔夺。 她就那樣靜靜地躺著日裙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪格侯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天驮履,我揣著相機(jī)與錄音倒戏,去河邊找鬼。 笑死葛闷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扣泊。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼蹂空,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼咐熙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起爪飘,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤犁罩,失蹤者是張志新(化名)和其女友劉穎含滴,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碑韵,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡治筒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年牲平,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜈抓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拾酝,死狀恐怖客们,靈堂內(nèi)的尸體忽然破棺而出嗽桩,到底是詐尸還是另有隱情涝缝,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站玩徊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏畔塔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一冰肴、第九天 我趴在偏房一處隱蔽的房頂上張望联逻。 院中可真熱鬧,春花似錦换可、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至糯俗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背跪帝。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工黎泣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人托呕。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓着降,卻偏偏與公主長(zhǎng)得像厌殉,于是被迫代替她去往敵國和親耀销。 傳聞我的和親對(duì)象是個(gè)殘疾皇子铲汪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容