Https

HTTPS介紹

超文本傳輸安全協(xié)議(Hypertext Transfer Protocol Secure诱建,縮寫(xiě):HTTPS蝴蜓,常稱為HTTP over TLS,HTTP over SSL或HTTP Secure)是一種網(wǎng)絡(luò)安全傳輸協(xié)議俺猿。在計(jì)算機(jī)網(wǎng)絡(luò)上茎匠,HTTPS經(jīng)由超文本傳輸協(xié)議進(jìn)行通信,但利用SSL/TLS來(lái)加密數(shù)據(jù)包押袍。HTTPS開(kāi)發(fā)的主要目的诵冒,是提供對(duì)網(wǎng)絡(luò)服務(wù)器的身份認(rèn)證,保護(hù)交換數(shù)據(jù)的隱私與完整性伯病。這個(gè)協(xié)議由網(wǎng)景公司(Netscape)在1994年首次提出造烁,隨后擴(kuò)展到互聯(lián)網(wǎng)上。

HTTPS連接經(jīng)常用于萬(wàn)維網(wǎng)上的交易支付和企業(yè)信息系統(tǒng)中敏感信息的傳輸午笛。

http協(xié)議直接放置在TCP協(xié)議之上惭蟋,而HTTPS提出在http和TCP中間加上一層加密層。從發(fā)送端看药磺,這一層負(fù)責(zé)把http的內(nèi)容加密后送到下層的TCP告组,從接收方看,這一層負(fù)責(zé)將TCP送來(lái)的數(shù)據(jù)解密還原成http的內(nèi)容癌佩。所以嚴(yán)格地講木缝,HTTPS并不是一個(gè)單獨(dú)的協(xié)議便锨,而是對(duì)工作在一加密連接(TLS或SSL)上的常規(guī)HTTP協(xié)議的稱呼。

下面是一個(gè)簡(jiǎn)單的HTTPS協(xié)議棧的圖:


101810-4eab94916c2dc161.png

HTTPS解決的問(wèn)題

HTTP協(xié)議由于是明文傳送我碟,所以存在三大風(fēng)險(xiǎn):

1放案、被竊聽(tīng)的風(fēng)險(xiǎn):第三方可以截獲并查看你的內(nèi)容

2、被篡改的危險(xiǎn):第三方可以截獲并修改你的內(nèi)容

3矫俺、被冒充的風(fēng)險(xiǎn):第三方可以偽裝成通信方與你通信

HTTP因?yàn)榇嬖谝陨先蟀踩L(fēng)險(xiǎn)吱殉,所以才有了HTTPS的出現(xiàn)。

相關(guān)術(shù)語(yǔ)

對(duì)稱密碼算法

是指加密和解密使用相同的密鑰厘托,典型的有DES友雳、RC5、IDEA(分組加密)铅匹,RC4(序列加密)押赊;

非對(duì)稱密碼算法

又稱為公鑰加密算法,是指加密和解密使用不同的密鑰(公鑰用于加密包斑,私鑰用于解密)流礁。比如A發(fā)送,B接收罗丰,A想確保消息只有B看到崇棠,需要B生成一對(duì)公私鑰,并拿到B的公鑰丸卷。于是A用這個(gè)公鑰加密消息,B收到密文后用自己的與之匹配的私鑰解密即可询刹。反過(guò)來(lái)也可以用私鑰加簽公鑰驗(yàn)簽谜嫉。也就是說(shuō)對(duì)于給定的公鑰有且只有與之匹配的私鑰可以解密,對(duì)于給定的私鑰凹联,有且只有與之匹配的公鑰可以解密沐兰。典型的算法有RSA,DSA蔽挠,DH住闯;

散列算法

散列變換是指把文件內(nèi)容通過(guò)某種公開(kāi)的算法,變成固定長(zhǎng)度的值(散列值)澳淑,這個(gè)過(guò)程可以使用密鑰也可以不使用比原。這種散列變換是不可逆的,也就是說(shuō)不能從散列值變成原文杠巡。因此量窘,散列變換通常用于驗(yàn)證原文是否被篡改。典型的算法有:MD5氢拥,SHA蚌铜,CRC等锨侯。
關(guān)于CA及數(shù)字證書(shū)

什么是CA

CA(Certificate Authority)是數(shù)字證書(shū)認(rèn)證中心的簡(jiǎn)稱,是指發(fā)放冬殃、管理囚痴、廢除數(shù)字證書(shū)的機(jī)構(gòu)。

CA的作用是檢查證書(shū)持有者身份的合法性审葬,并簽發(fā)證書(shū)(在證書(shū)上簽字)深滚,以防證書(shū)被偽造或篡改,以及對(duì)證書(shū)和密鑰進(jìn)行管理耳璧。

CA 也擁有一個(gè)證書(shū)(內(nèi)含公鑰)和私鑰成箫。網(wǎng)上的公眾用戶通過(guò)驗(yàn)證 CA 的簽字從而信任 CA ,任何人都可以得到 CA 的證書(shū)(含公鑰)旨枯,用以驗(yàn)證它所簽發(fā)的證書(shū)蹬昌。
如果用戶想得到一份屬于自己的證書(shū),他應(yīng)先向 CA 提出申請(qǐng)攀隔。在 CA 判明申請(qǐng)者的身份后皂贩,便為他分配一個(gè)公鑰,并且 CA 將該公鑰與申請(qǐng)者的身份信息綁在一起昆汹,并為之簽字后明刷,便形成證書(shū)發(fā)給申請(qǐng)者。

如果一個(gè)用戶想鑒別另一個(gè)證書(shū)的真?zhèn)温郑陀?CA 的公鑰對(duì)那個(gè)證書(shū)上的簽字進(jìn)行驗(yàn)證辈末,一旦驗(yàn)證通過(guò),該證書(shū)就被認(rèn)為是有效的映皆。

證書(shū)的內(nèi)容

數(shù)字證書(shū)的格式遵循X.509標(biāo)準(zhǔn)挤聘,X.509是由國(guó)際電信聯(lián)盟(ITU-T)制定的數(shù)字證書(shū)標(biāo)準(zhǔn),規(guī)范了公開(kāi)密鑰認(rèn)證捅彻、證書(shū)吊銷(xiāo)列表组去、授權(quán)證書(shū)、證書(shū)路徑驗(yàn)證算法等步淹。

證書(shū)的內(nèi)容包括:電子簽證機(jī)關(guān)的信息从隆、公鑰用戶信息、公鑰缭裆、權(quán)威機(jī)構(gòu)的簽字和有效期等等键闺。

下圖就表示一個(gè)數(shù)字證書(shū)包含的內(nèi)容:

101810-8ac0645c03a14513.png

我們這里能看到頒發(fā)機(jī)構(gòu)簽名是由申請(qǐng)者信息經(jīng)過(guò)哈希算法得到hash值,然后再用機(jī)構(gòu)的私鑰進(jìn)行加密幼驶。所以這個(gè)簽名只有辦法機(jī)構(gòu)的公鑰才能解密艾杏,而一般權(quán)威CA機(jī)構(gòu)的根證書(shū)(含公鑰)都內(nèi)置在瀏覽器中,所以客戶端接收到這個(gè)數(shù)字證書(shū)后,先把申請(qǐng)者信息用同樣的哈希算法得到hash值h1购桑,然后用公鑰進(jìn)行辦法機(jī)構(gòu)簽名解密得到hash值h2畅铭,如果h1==h2,則表示證書(shū)是有效的勃蜘。

SSL/TLS概念

SSL/TLS是加密通信協(xié)議硕噩,SSL由NetScape在1994年設(shè)計(jì),1999年互聯(lián)網(wǎng)標(biāo)準(zhǔn)化組織ISOC接替NetScape公司缭贡,發(fā)布了SSL的升級(jí)版TLS 1.0版÷茫現(xiàn)在主流的瀏覽器等都支持TLS1.2版本,如iOS9中新增App Transport Security(簡(jiǎn)稱ATS)特性阳惹,強(qiáng)制http轉(zhuǎn)向https谍失,其中加密通信協(xié)議就需要TLS1.2及以上版本。

SSL/TLS協(xié)議的基本思路是采用公鑰加密法莹汤,也就是說(shuō)快鱼,客戶端先向服務(wù)器端索要公鑰,然后用公鑰加密信息纲岭,服務(wù)器收到密文后抹竹,用自己的私鑰解密。

SSL/TLS協(xié)議的基本過(guò)程是這樣的:

(1) 客戶端向服務(wù)器端索要并驗(yàn)證公鑰止潮。
(2) 雙方協(xié)商生成"對(duì)話密鑰"窃判。
(3) 雙方采用"對(duì)話密鑰"進(jìn)行加密通信。
所以說(shuō)SSL/TLS協(xié)議主要是包含非對(duì)稱加密(公鑰加密)和對(duì)稱加密喇闸,用非對(duì)稱加密來(lái)得到對(duì)稱加密的"對(duì)話秘鑰"袄琳,然后用對(duì)稱加密來(lái)進(jìn)行加密通信。

HTTPS流程步驟

101810-3bc609bef1b24751.png

首先看看組成HTTPS的協(xié)議:HTTP協(xié)議和SSL/TLS協(xié)議燃乍。HTTP協(xié)議就不用講了跨蟹,而SSL/TLS就是負(fù)責(zé)加密解密等安全處理的模塊,所以HTTPS的核心在SSL/TLS上面橘沥。整個(gè)通信如下:

1、瀏覽器發(fā)起往服務(wù)器的443端口發(fā)起請(qǐng)求夯秃,請(qǐng)求攜帶了瀏覽器支持的加密算法和哈希算法座咆。

2、服務(wù)器收到請(qǐng)求仓洼,選擇瀏覽器支持的加密算法和哈希算法介陶。

3、服務(wù)器下將數(shù)字證書(shū)返回給瀏覽器色建,這里的數(shù)字證書(shū)可以是向某個(gè)可靠機(jī)構(gòu)申請(qǐng)的哺呜,也可以是自制的。

4箕戳、瀏覽器進(jìn)入數(shù)字證書(shū)認(rèn)證環(huán)節(jié)某残,這一部分是瀏覽器內(nèi)置的TLS完成的:

4.1 首先瀏覽器會(huì)從內(nèi)置的證書(shū)列表中索引国撵,找到服務(wù)器下發(fā)證書(shū)對(duì)應(yīng)的機(jī)構(gòu),如果沒(méi)有找到玻墅,此時(shí)就會(huì)提示用戶該證書(shū)是不是由權(quán)威機(jī)構(gòu)頒發(fā)介牙,是不可信任的。如果查到了對(duì)應(yīng)的機(jī)構(gòu)澳厢,則取出該機(jī)構(gòu)頒發(fā)的公鑰环础。

4.2 用機(jī)構(gòu)的證書(shū)公鑰解密得到證書(shū)的內(nèi)容和證書(shū)簽名,內(nèi)容包括網(wǎng)站的網(wǎng)址剩拢、網(wǎng)站的公鑰线得、證書(shū)的有效期等。瀏覽器會(huì)先驗(yàn)證證書(shū)簽名的合法性(驗(yàn)證過(guò)程類(lèi)似上面Bob和Susan的通信)徐伐。簽名通過(guò)后贯钩,瀏覽器驗(yàn)證證書(shū)記錄的網(wǎng)址是否和當(dāng)前網(wǎng)址是一致的,不一致會(huì)提示用戶呵晨。如果網(wǎng)址一致會(huì)檢查證書(shū)有效期魏保,證書(shū)過(guò)期了也會(huì)提示用戶。這些都通過(guò)認(rèn)證時(shí)摸屠,瀏覽器就可以安全使用證書(shū)中的網(wǎng)站公鑰了谓罗。

4.3 瀏覽器生成一個(gè)隨機(jī)數(shù)R,并使用網(wǎng)站公鑰對(duì)R進(jìn)行加密季二。

5檩咱、瀏覽器將加密的R傳送給服務(wù)器。

6胯舷、服務(wù)器用自己的私鑰解密得到R刻蚯。

7、服務(wù)器以R為密鑰使用了對(duì)稱加密算法加密網(wǎng)頁(yè)內(nèi)容并傳輸給瀏覽器桑嘶。

8炊汹、瀏覽器以R為密鑰使用之前約定好的解密算法獲取網(wǎng)頁(yè)內(nèi)容。

身份驗(yàn)證技術(shù)

所謂身份驗(yàn)證就是用公鑰生成可信賴的證書(shū)逃顶。因?yàn)榉菍?duì)稱加密存在一個(gè)問(wèn)題就是沒(méi)法驗(yàn)證拿到的公鑰就是服務(wù)端公開(kāi)的公鑰讨便。

為了解決以上問(wèn)題,CA應(yīng)用而生(Certifity Authority)以政,數(shù)字證書(shū)認(rèn)證機(jī)構(gòu)霸褒。在網(wǎng)上找到一張圖,一看就明白了

20180810172942942.png

兩個(gè)問(wèn)題

如何保證公鑰不被篡改盈蛮?

解決方法:將公鑰放在數(shù)字證書(shū)中废菱。只要證書(shū)是可信的,公鑰就是可信的。那如何保證證書(shū)是可信的呢殊轴?證書(shū)由CA機(jī)構(gòu)進(jìn)行頒發(fā)衰倦,而游覽器內(nèi)置了這些CA機(jī)構(gòu)的根證書(shū),只要由這些CA機(jī)構(gòu)辦法的數(shù)字證書(shū)即是可信的梳凛。

為什么不直接使用公鑰加密耿币,還要加上個(gè)對(duì)稱加密?

公鑰加密是非對(duì)稱加密韧拒,加密計(jì)算量大淹接,而對(duì)稱加密運(yùn)算速度非常快叛溢。所以這里只有第一次握手時(shí)進(jìn)行公鑰加密來(lái)得到對(duì)稱加密的"對(duì)話密鑰"塑悼,之后的通信就使用對(duì)稱加密來(lái)進(jìn)行通信了。
加密算法

HTTPS和HTTP的區(qū)別主要為以下四點(diǎn):

一楷掉、https協(xié)議需要到ca申請(qǐng)證書(shū)厢蒜,一般免費(fèi)證書(shū)很少,需要交費(fèi)烹植。

二斑鸦、http是超文本傳輸協(xié)議,信息是明文傳輸草雕,https 則是具有安全性加密傳輸協(xié)議巷屿。

三、http和https使用的是完全不同的連接方式墩虹,用的端口也不一樣嘱巾,前者是80,后者是443诫钓。

四旬昭、http的連接很簡(jiǎn)單,是無(wú)狀態(tài)的菌湃;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸问拘、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議比http協(xié)議安全。

HTTPS 的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

使用HTTPS 協(xié)議可認(rèn)證用戶和服務(wù)器惧所,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器场梆;
HTTPS 協(xié)議是由 SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議纯路,要比 http 協(xié)議安全,可防止數(shù)據(jù)在傳輸過(guò)程中不被竊取寞忿、改變驰唬,確保數(shù)據(jù)的完整性。
HTTPS 是現(xiàn)行架構(gòu)下最安全的解決方案,雖然不是絕對(duì)安全叫编,但它大幅增加了中間人攻擊的成本辖佣。

缺點(diǎn)

HTTPS 比HTTP耗費(fèi)更多服務(wù)器資源(https其實(shí)就是建構(gòu)在SSL/TLS之上的 http協(xié)議,所以要比較https比http多用多少服務(wù)器資源搓逾,主要看SSL/TLS本身消耗多少服務(wù)器資源卷谈。)
耗費(fèi)的資源多,過(guò)程也復(fù)雜霞篡,想當(dāng)然訪問(wèn)不如HTTP高效世蔗。大流量網(wǎng)站非必要也不會(huì)采用呼胚,流量成本太高喊熟。  
HTTPS 并不能防止站點(diǎn)被網(wǎng)絡(luò)蜘蛛抓取叶洞。在某些情形中余掖,被加密資源的URL可僅通過(guò)截獲請(qǐng)求和響應(yīng)的大小推得寸爆,這就可使攻擊者同時(shí)知道明文(公開(kāi)的靜態(tài)內(nèi)容)和密文(被加密過(guò)的明文),從而使選擇密文攻擊成為可能盐欺×薅梗  
SSL 證書(shū)需要錢(qián),功能越強(qiáng)大的證書(shū)費(fèi)用越高冗美,個(gè)人網(wǎng)站魔种、小網(wǎng)站沒(méi)有必要一般不會(huì)用《昭茫  
SSL 證書(shū)通常需要綁定IP务嫡,不能在同一IP上綁定多個(gè)域名,IPv4資源不可能支撐這個(gè)消耗漆改。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末心铃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挫剑,更是在濱河造成了極大的恐慌去扣,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件樊破,死亡現(xiàn)場(chǎng)離奇詭異愉棱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)哲戚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)奔滑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人顺少,你說(shuō)我怎么就攤上這事朋其⊥踉。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵梅猿,是天一觀的道長(zhǎng)氓辣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)袱蚓,這世上最難降的妖魔是什么钞啸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮喇潘,結(jié)果婚禮上体斩,老公的妹妹穿的比我還像新娘。我一直安慰自己响蓉,他們只是感情好硕勿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著枫甲,像睡著了一般源武。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上想幻,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天粱栖,我揣著相機(jī)與錄音,去河邊找鬼脏毯。 笑死闹究,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的食店。 我是一名探鬼主播渣淤,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吉嫩!你這毒婦竟也來(lái)了价认?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤自娩,失蹤者是張志新(化名)和其女友劉穎用踩,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體忙迁,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脐彩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了姊扔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惠奸。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖恰梢,靈堂內(nèi)的尸體忽然破棺而出佛南,到底是詐尸還是另有隱情证九,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布共虑,位于F島的核電站,受9級(jí)特大地震影響呀页,放射性物質(zhì)發(fā)生泄漏妈拌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一蓬蝶、第九天 我趴在偏房一處隱蔽的房頂上張望尘分。 院中可真熱鬧,春花似錦丸氛、人聲如沸培愁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)定续。三九已至,卻和暖如春禾锤,著一層夾襖步出監(jiān)牢的瞬間私股,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工恩掷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留倡鲸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓黄娘,卻偏偏與公主長(zhǎng)得像峭状,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逼争,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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

  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,524評(píng)論 0 13
  • 本文摘自 騰訊bugly 的文章《全站 HTTPS 來(lái)了》,內(nèi)容有修改罩阵。 大家在使用百度竿秆、谷歌或淘寶的時(shí)候,是否注...
    bnotes閱讀 3,658評(píng)論 1 9
  • 需求 “人們最初設(shè)計(jì)互聯(lián)網(wǎng)時(shí)稿壁,很少考慮到安全幽钢。這樣的結(jié)果是,核心通信協(xié)議本質(zhì)上是不安全的傅是,只能依靠所有參與方的誠(chéng)信...
    thinkq閱讀 1,021評(píng)論 0 3
  • HTTPS介紹 超文本傳輸安全協(xié)議(英語(yǔ):Hypertext Transfer Protocol Secure匪燕,縮...
    齊滇大圣閱讀 8,938評(píng)論 8 96
  • 前言 在說(shuō)HTTPS之前先說(shuō)說(shuō)什么是HTTP蕾羊,HTTP就是我們平時(shí)瀏覽網(wǎng)頁(yè)時(shí)候使用的一種協(xié)議。HTTP協(xié)議傳輸?shù)臄?shù)...
    布丁大人閱讀 2,626評(píng)論 2 14