HTTPS協(xié)議

簡介

HTTPS(超文本傳輸安全協(xié)議)是一種通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的傳輸協(xié)議。HTTPS 經(jīng)由 HTTP 進(jìn)行通信,但利用SSL/TLS來加密數(shù)據(jù)包固逗。HTTPS開發(fā)的主要目的峡继,是提供對(duì)網(wǎng)站服務(wù)器的身份認(rèn)證岸梨,保護(hù)交換數(shù)據(jù)的隱私與完整性。HTTPS 的作用有:1篷扩、內(nèi)容加密兄猩,建立一個(gè)信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩?鉴未、身份認(rèn)證枢冤,確認(rèn)網(wǎng)站的真實(shí)性;3铜秆、數(shù)據(jù)完整性淹真,防止內(nèi)容被第三方冒充或者篡改。

連接建立

HTTPS 握手過程.jpg
  • 1连茧、客戶端發(fā)起請(qǐng)求核蘸。

客戶端先向服務(wù)器發(fā)出加密通信的請(qǐng)求,由于客戶端對(duì)一些加解密算法的支持程度不一樣啸驯,但是在TLS協(xié)議傳輸過程中必須使用同一套加解密算法才能保證數(shù)據(jù)能夠正常的加解密客扎,因此在這一步,客戶端需要向服務(wù)器提供以下信息:

1罚斗、支持的協(xié)議版本徙鱼,比如TLS 1.0版
2、一個(gè)客戶端生成的隨機(jī)數(shù)针姿,用于生成對(duì)話密鑰
3袱吆、支持的加密方法,比如RSA公鑰加密
4距淫、支持的壓縮方法

  • 2绞绒、服務(wù)器響應(yīng)請(qǐng)求。

服務(wù)端在接收到客戶端的請(qǐng)求之后榕暇,服務(wù)端需要確定加密協(xié)議的版本处铛,以及加密的算法饲趋,然后也生成一個(gè)隨機(jī)數(shù),以及將自己的證書發(fā)送給客戶端一并發(fā)送給客戶端撤蟆,這里的隨機(jī)數(shù)是整個(gè)過程的第二個(gè)隨機(jī)數(shù)奕塑。

1、協(xié)議的版本
2家肯、加密的算法
3龄砰、隨機(jī)數(shù),用于生成對(duì)話密鑰
4讨衣、服務(wù)器證書

  • 3换棚、客戶端回應(yīng)。

客戶端首先會(huì)對(duì)服務(wù)器下發(fā)的證書進(jìn)行驗(yàn)證反镇,如果證書不是可信機(jī)構(gòu)頒布固蚤、或者證書中的域名與實(shí)際域名不一致、或者證書已經(jīng)過期歹茶,就會(huì)向訪問者顯示一個(gè)警告夕玩,由其選擇是否還要繼續(xù)通信。如果驗(yàn)證通過惊豺,則向服務(wù)器發(fā)送以下信息燎孟。

1、一個(gè)隨機(jī)數(shù)尸昧。該隨機(jī)數(shù)用服務(wù)器公鑰加密揩页,第三個(gè)隨機(jī)數(shù)。
2烹俗、編碼改變通知爆侣,表示隨后的信息都將用雙方商定的加密方法和密鑰發(fā)送。
3幢妄、客戶端握手結(jié)束通知兔仰,表示客戶端的握手階段已經(jīng)結(jié)束。這一項(xiàng)同時(shí)也是前面發(fā)送的所有內(nèi)容的hash值磁浇,用來供服務(wù)器校驗(yàn)斋陪。

  • 4朽褪、服務(wù)器回應(yīng)置吓。

服務(wù)端在接收到客戶端傳過來的第三個(gè)隨機(jī)數(shù)的加密數(shù)據(jù)之后,使用私鑰對(duì)這段加密數(shù)據(jù)進(jìn)行解密缔赠,并用它生成本次會(huì)話所用的會(huì)話密鑰衍锚,然后向客戶端最后發(fā)送下面信息。

1嗤堰、編碼改變通知戴质,表示隨后的信息都將用雙方商定的加密方法和密鑰發(fā)送度宦。
2、服務(wù)器握手結(jié)束通知告匠,表示服務(wù)器的握手階段已經(jīng)結(jié)束戈抄。這一項(xiàng)同時(shí)也是前面發(fā)送的所有內(nèi)容的hash值,用來供客戶端校驗(yàn)后专。

HTTPS和HTTP的區(qū)別

1划鸽、http是超文本傳輸協(xié)議,信息是明文傳輸戚哎;https 則是具有安全性的ssl加密傳輸協(xié)議裸诽。
2、HTTP 和 HTTPS 使用的連接方式不同型凳,端口號(hào)也不一樣丈冬,前者是80,后者是443甘畅。
3埂蕊、HTTP 的連接很簡單,是無狀態(tài)的橄浓;HTTPS 協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸粒梦、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比 HTTP 協(xié)議安全荸实。
4匀们、HTTPS 對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行了加解密,因此它比 HTTP 慢准给。

問題

  • 1泄朴、如何保證公鑰不被篡改?

數(shù)字簽名技術(shù)
數(shù)字簽名技術(shù)就是對(duì)“非對(duì)稱密鑰加解密”和“數(shù)字摘要“兩項(xiàng)技術(shù)的應(yīng)用露氮,它將摘要信息用發(fā)送者的私鑰加密祖灰,與原文一起傳送給接收者。接收者只有用發(fā)送者的公鑰才能解密被加密的摘要信息畔规,然后用HASH函數(shù)對(duì)收到的原文產(chǎn)生一個(gè)摘要信息局扶,與解密的摘要信息對(duì)比。如果相同叁扫,則說明收到的信息是完整的三妈,在傳輸過程中沒有被修改,否則說明信息被修改過莫绣,因此數(shù)字簽名能夠驗(yàn)證信息的完整性畴蒲。

將公鑰放在數(shù)字證書中。只要證書是可信的对室,公鑰就是可信的模燥。

  • 2咖祭、證書包含哪些內(nèi)容?

1蔫骂、證書頒發(fā)機(jī)構(gòu)的名稱么翰;
2、證書本身的數(shù)字簽名辽旋;
3硬鞍、證書持有者的公鑰;
4戴已、證書簽名用到的Hash算法固该;

  • 3、如何驗(yàn)證證書的有效性糖儡?

1伐坏、證書頒發(fā)機(jī)構(gòu)的驗(yàn)證。如果是瀏覽器不認(rèn)識(shí)的機(jī)構(gòu)握联,直接認(rèn)為是危險(xiǎn)證書桦沉;
2、證書篡改的驗(yàn)證金闽。根據(jù)瀏覽器內(nèi)置的CA纯露,使用它的公鑰對(duì)數(shù)字簽名進(jìn)行解密得到摘要A,然后再根據(jù)簽名的Hash算法計(jì)算出證書的摘要B代芜,對(duì)比A與B埠褪,若相等則正常,若不相等則是被篡改過的挤庇。
3钞速、證書過期失效的驗(yàn)證。瀏覽器將網(wǎng)站提供的證書的序列號(hào)通過OCSP發(fā)送給證書頒發(fā)機(jī)構(gòu)嫡秕,后者會(huì)告訴瀏覽器證書是否還是有效的渴语。

  • 4、HTTPS 比 HTTP 建立連接更耗時(shí)嗎昆咽?

我們可以用以下 curl 相關(guān)命令查看連接建立的詳細(xì)信息:

curl -w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}\n" -so /dev/null https://www.baidu.com/

截圖如下:

curl.png

從上圖可以看出 HTTPS 連接建立的時(shí)間大概是 HTTP 的3倍左右驾凶,從而可以知道 HTTPS 建立連接的過程比 HTTP 慢。

  • 5掷酗、為什么一定要用三個(gè)隨機(jī)數(shù)调违,來生成會(huì)話密鑰?

因?yàn)榭蛻舳撕头?wù)器使用三個(gè)隨機(jī)數(shù)一同生成的密鑰就不容易被猜出了汇在,一個(gè)偽隨機(jī)可能完全不隨機(jī)翰萨,可是是三個(gè)偽隨機(jī)就十分接近隨機(jī)了脏答,每增加一個(gè)自由度糕殉,隨機(jī)性增加的可不是一亩鬼。如果有人竊取通信數(shù)據(jù),他很容易知道雙方選擇的加密方法阿蝶,以及三個(gè)隨機(jī)數(shù)中的兩個(gè)雳锋,整個(gè)通話的安全,取決于第三個(gè)隨機(jī)數(shù) Premaster secret 能不能被破解羡洁。

  • 6玷过、HTTPS 都是使用非對(duì)稱加密加密數(shù)據(jù)嗎?

SSL協(xié)議在握手階段使用的是非對(duì)稱加密筑煮,在傳輸階段使用的是對(duì)稱加密辛蚊,也就是說在SSL上傳送的數(shù)據(jù)是使用對(duì)稱密鑰加密的。因?yàn)榉菍?duì)稱加密的速度緩慢真仲,耗費(fèi)資源袋马。

  • 7、如何避免中間人攻擊秸应?

1虑凛、中間人攻擊一般都是根據(jù) CA 來展開的,因此软啼,不要隨意添加第三方 CA 信任桑谍;
2、在客戶端進(jìn)行代碼層面的證書校驗(yàn)祸挪,校驗(yàn)方式一般有兩種锣披,證書自身校驗(yàn)和公鑰校驗(yàn);
3贿条、數(shù)據(jù)傳輸?shù)臅r(shí)候盈罐,對(duì)數(shù)據(jù)本身進(jìn)行加密;



(待續(xù))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末闪唆,一起剝皮案震驚了整個(gè)濱河市盅粪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌悄蕾,老刑警劉巖票顾,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異帆调,居然都是意外死亡奠骄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門番刊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來含鳞,“玉大人,你說我怎么就攤上這事芹务〔醣粒” “怎么了鸭廷?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長熔吗。 經(jīng)常有香客問我辆床,道長,這世上最難降的妖魔是什么桅狠? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任讼载,我火速辦了婚禮,結(jié)果婚禮上中跌,老公的妹妹穿的比我還像新娘咨堤。我一直安慰自己,他們只是感情好漩符,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布吱型。 她就那樣靜靜地躺著,像睡著了一般陨仅。 火紅的嫁衣襯著肌膚如雪津滞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天灼伤,我揣著相機(jī)與錄音触徐,去河邊找鬼。 笑死狐赡,一個(gè)胖子當(dāng)著我的面吹牛撞鹉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颖侄,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼鸟雏,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了览祖?” 一聲冷哼從身側(cè)響起孝鹊,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎展蒂,沒想到半個(gè)月后又活,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锰悼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年柳骄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箕般。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耐薯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情曲初,我是刑警寧澤体谒,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站复斥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏械媒。R本人自食惡果不足惜目锭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纷捞。 院中可真熱鬧痢虹,春花似錦、人聲如沸主儡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糜值。三九已至丰捷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寂汇,已是汗流浹背病往。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留骄瓣,地道東北人停巷。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像榕栏,于是被迫代替她去往敵國和親畔勤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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