HTTPS--握手往产,證書及秘鑰協(xié)商

一、學習思路



二某宪、HTTPS 協(xié)議層次


SSL和TLS為數(shù)據(jù)安全通信提供支持仿村。


三、HTTPS設(shè)計思路


1兴喂、服務器生成公鑰對A蔼囊,把公鑰和其他信息info發(fā)送給CA機構(gòu),申請證書衣迷;

2畏鼓、CA機構(gòu),有一套自己的公鑰對S壶谒,CA機構(gòu)將info生成數(shù)字摘要云矫,并使用S私鑰對摘要進行加密,CA機構(gòu)在操作系統(tǒng)系統(tǒng)有有一套證書佃迄,保存的是S公鑰泼差;

3贵少、CA機構(gòu)將info和加密后的數(shù)字摘要生成證書發(fā)送給服務器呵俏;

4、服務器進行https通信時滔灶,先發(fā)送證書普碎;

5.6.7、客戶端收到證書后录平,首先驗證證書合法性麻车,獲取OS內(nèi)部受信任的CA證書,使用OS公鑰對證書摘要進行解密出hash值斗这,再使用相同的hash算法對證書內(nèi)容進行hash計算动猬,比較兩個hash值是否一致,一致則認為證書合法表箭;

8赁咙、客戶端驗證證書合法后,client生成對稱秘鑰對,并使用公鑰A將秘鑰對加密彼水,發(fā)送給服務器崔拥,之后的交互數(shù)據(jù),則使用對稱秘鑰加密凤覆。(實際過程并未如此)

由此可見链瓦,整個HTTPS過程涉及到兩對公鑰對,一是用戶加密數(shù)據(jù)通信的對稱秘鑰盯桦,放在數(shù)字證書中慈俯;二是CA機構(gòu)的公鑰對,放在OS內(nèi)俺附,用于驗證證書是否合法

四肥卡、TLS握手

整個交互過程可以分為三個階段:tcp握手,tls握手(明文或者密文)事镣,tls數(shù)據(jù)交互(密文)

tls握手用于驗證雙方及協(xié)商通信的加密秘鑰步鉴。

一般的,tls握手過程是明文交互的璃哟,也可以使用RSA對稱加密氛琢,雙方協(xié)商一致就可以。


有三種情況的握手:

a随闪、只驗證服務器的SSL握手過程

b阳似、驗證服務器和客戶端的SSL握手過程

c、恢復原有會話的SSL握手過程

下圖展示了“a铐伴、只驗證服務器的SSL握手過程”


注意撮奏,第4階段,server key exchange是可選的当宴,作為證書的補充

下列場景才會有server key exchange

協(xié)商采用了RSA加密畜吊,但服務器端的證書沒有提供RSA公鑰

協(xié)商采用了DH加密,但服務器端的證書沒有提供DH參數(shù)

協(xié)商采用了fortezza_kea加密户矢,但是服務端的證書沒有提供參數(shù)


4.1玲献、TLS會話緩存機制

為了加快建立握手的速度,減少協(xié)議帶來的性能降低和資源消耗梯浪,TLS協(xié)議有兩類會話緩存機制:

會話標識session ID和會話記錄session ticket.

client -> server:? clienthello(session id)

server -> client:? serverhello, change cipher spec, encrypted handshake message

client -> server:? change cipherspec, encrypted handshake message


客戶端再次和服務器建立連接捌年,則在client中session

ID中攜帶記錄的信息,發(fā)送給服務器挂洛。

服務器根據(jù)session ID檢索緩存記錄礼预,如果沒有檢索到,則按正常的握手進行虏劲;

如果檢索到托酸,則返回change_cipher_spec與encrypted_handshake_message;

如果客戶端能夠驗證通過服務器加密數(shù)據(jù)荠藤,則客戶端同樣發(fā)送change_cipher_spec與encrypted_handshake_message信息;

服務器驗證數(shù)據(jù)通過获高,則握手建立成功哈肖,開始進行正常的加密數(shù)據(jù)通信;

4.2念秧、客戶端重連

客服端和服務器之間建立了有效TLS連接并通信淤井;

客戶端需要更新秘鑰,主動發(fā)出client_hello信息摊趾;

服務器識別重建連接請求后币狠,發(fā)送server_hello信息;

客戶端和服務器開始新的重建連接過程砾层;


4.3漩绵、服務器重連

客服端和服務器之間建立了有效TLS連接并通信;

客戶端訪問受保護的信息肛炮;

服務端返回hello_request信息止吐;

客戶端收到hello_request信息之后發(fā)送client_hello信息,開始重新建立連接侨糟;



五碍扔、證書

5.1、證書結(jié)構(gòu)


版本:標識證書的版本(1,2和3)

序列號:標識證書的唯一標識符

簽名算法:本證書所用簽名算法

頒發(fā)者:證書頒發(fā)者的可識別名

使用者:證書擁有者的可識別名

公鑰:證書發(fā)布的公鑰

CRL:證書吊銷列表秕重,包含CA已經(jīng)吊銷的證書序列號及其吊銷日期

證書策略:

使用者秘鑰標識符

頒發(fā)機構(gòu)秘鑰標識符:用于證書鏈的驗證

證書吊銷列表(CRL)與證書狀態(tài)在線查詢協(xié)議(OCSP)

一般CA都只是每隔一定時間(幾天或者幾個月)才發(fā)布新的吊銷列表不同,所以CRL不能及時反映證書狀態(tài)。

而OCSP就能滿足實時在線查詢證書狀態(tài)的要求溶耘。OCSP服務器會返回證書的三個狀態(tài):正常二拐、吊銷和未知。

在頒發(fā)機構(gòu)信息訪問提供了OCSP服務器地址 http://ocsp.wsign.com

瀏覽器在訪問https網(wǎng)站是凳兵,先檢查此證書是否已經(jīng)被吊銷百新,如果證書已經(jīng)被吊銷,則會顯示警告信息: “此組織的證書已被吊銷留荔。安全證書問題可能顯示試圖欺騙您或截獲您向服務器發(fā)送的數(shù)據(jù)吟孙。建議關(guān)閉此網(wǎng)頁澜倦,并且不要繼續(xù)瀏覽該網(wǎng)站聚蝶。 ”

5.2、信任鏈

CA組織結(jié)構(gòu)是一個樹結(jié)構(gòu)藻治,一個root CA下面有多個mid CA碘勉,而mid CA又可以包含多個mid CA。

root CA和mid CA都可以頒發(fā)證書給用戶桩卵,頒發(fā)的分別是root證書和中間證書验靡,最終用戶用來認證公鑰的證書被稱為end-user證書倍宾。

如果end-user證書是mid CA頒發(fā)的,那么握手階段胜嗓,需要把中間證書也一并發(fā)給客戶端高职。


證書鏈驗證過程:



六、秘鑰協(xié)商過程

在TLS握手階段確定了雙方使用的密碼學套件辞州。

(秘鑰協(xié)商怔锌、證書驗證、數(shù)據(jù)加密是三個獨立的過程)

舉例:

TLS_DHE_RSA_WITH_AES_256_CBC_SHA

DHE_RSA:表示握手過程中使用的非對稱加密算法(秘鑰交換用的是DHE, 證書用的RSA),如果WITH只有一個变过,那么表示交換信息和證書用的是同一個算法

??????? (可選的主要的密鑰交換算法包括:RSA, DH, ECDH, ECDHE埃元。可選的主要的證書算法包括:RSA, DSA, ECDSA媚狰。兩者可以獨立選擇岛杀,并不沖突)

AES_256_CBC_SHA:表示加密信道的對稱加密算法和hash算法

?

七、秘鑰交換算法

雙方在握手過程中崭孤,通過秘鑰交換算法类嗤,確定后續(xù)通信的秘鑰

常用的秘鑰交換算法:RSA、DH類秘鑰交換算法

7.1辨宠、RSA秘鑰交換過程:

A->B

B:把公鑰放在證書中

A:使用隨機數(shù)算法土浸,生成一個秘鑰key,用公鑰加密彭羹,發(fā)送給B黄伊。

RSA面臨的問題:一旦私鑰外泄(私鑰參與了協(xié)商過程),那么key就能解密之前監(jiān)聽的所有的密文(向前不安全)派殷,安全性取決于私鑰是否保存完好还最。


7.2、更安全的DH類秘鑰交換算法

DH類秘鑰算法有:DH, DHE, ECDH, ECDHE

DH(靜態(tài)DH算法毡惜,秘鑰交換始終選擇相同的私鑰拓轻,因此,每次的共享私鑰都相同)

DHE(臨時DH算法经伙,每個連接生成一個臨時的DH秘鑰扶叉,因此同一秘鑰永遠不會被使用兩次。向前保密)

7.3帕膜、DHE秘鑰交換算法(基于離散對數(shù)難題)簡單說明:

??? A->B

??? A:生成一個隨機數(shù)X(作為自己的私鑰)枣氧,a= g^x mod p (g的x次方對p取模),p 是個大素數(shù)垮刹,g是生成數(shù)达吞,將a發(fā)送給B????????

? ? B:生成一個隨機數(shù)Y(作為自己的私鑰),b= g^y mod p荒典,將b發(fā)送給A酪劫。

? ?A: 計算 key1 = b^x mod p

??? B:計算 key2 = a^y mod p

? ? 根據(jù)數(shù)學邏輯吞鸭,key1=key2,所以秘鑰交換成功

DHE安全性體現(xiàn)在:傳輸?shù)闹皇莂、b覆糟、p刻剥、g,中間沒有傳輸私鑰x和y,在已知這四個數(shù)很難得出x和y(依賴于離散)滩字,保證了安全透敌。

DH秘鑰計算舉例:

假設(shè) g =10, p = 7踢械,x = 3, a = 6酗电,y = 11 , b = 5

key1 = ((g^x)mod p)^y mod p = ((10^3)mod 7)^11 mod 7 =6

key2 = ((g^y)mod p)^x mod p = ((10^11)mod 7)^3 mod 7 =6

7.4、基于ECDHE的秘鑰交換算法(基于橢圓離散對數(shù)難題)

ECDHE的運算是把DHE中模冪運算替換成了點乘運算内列,速度更快撵术,可逆更難

A->B

A:生成一個隨機數(shù)Ra,計算Pa(x,y) = Ra * Q(x, y)话瞧,Q(x, y)為全世界公認的某個橢圓曲線算法的基點嫩与。將Pa(x, y)發(fā)送至服務器。

B:生成隨機值Rb交排,計算Pb(x,y)= Rb * Q(x, y)划滋。將Pb(x, y)發(fā)送至客戶端。

A:計算Sa(x,y) = Ra * Pb(x, y)

B:計算Sb(x,y) = Rb * Pa(x, y)

算法保證了Sa =Sb = S埃篓,提取其中的S的x向量作為密鑰(預主密鑰)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末处坪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子架专,更是在濱河造成了極大的恐慌同窘,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件部脚,死亡現(xiàn)場離奇詭異想邦,居然都是意外死亡,警方通過查閱死者的電腦和手機委刘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門丧没,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锡移,你說我怎么就攤上這事呕童。” “怎么了罩抗?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵拉庵,是天一觀的道長灿椅。 經(jīng)常有香客問我套蒂,道長钞支,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任操刀,我火速辦了婚禮烁挟,結(jié)果婚禮上结执,老公的妹妹穿的比我還像新娘蒙揣。我一直安慰自己,他們只是感情好细移,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布欢唾。 她就那樣靜靜地躺著且警,像睡著了一般。 火紅的嫁衣襯著肌膚如雪礁遣。 梳的紋絲不亂的頭發(fā)上斑芜,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機與錄音祟霍,去河邊找鬼杏头。 笑死,一個胖子當著我的面吹牛沸呐,可吹牛的內(nèi)容都是我干的醇王。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼崭添,長吁一口氣:“原來是場噩夢啊……” “哼寓娩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起呼渣,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤根暑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后徙邻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體排嫌,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年缰犁,在試婚紗的時候發(fā)現(xiàn)自己被綠了淳地。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡帅容,死狀恐怖颇象,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情并徘,我是刑警寧澤遣钳,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站麦乞,受9級特大地震影響蕴茴,放射性物質(zhì)發(fā)生泄漏劝评。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一倦淀、第九天 我趴在偏房一處隱蔽的房頂上張望蒋畜。 院中可真熱鬧,春花似錦撞叽、人聲如沸姻成。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽科展。三九已至,卻和暖如春糠雨,著一層夾襖步出監(jiān)牢的瞬間辛润,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工见秤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留砂竖,地道東北人。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓鹃答,卻偏偏與公主長得像乎澄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子测摔,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

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