圖解密碼技術(shù)學(xué)習(xí)-第十四章 SSL/TLS

什么是SSL/TLS

  • 網(wǎng)絡(luò)要保證通訊安全定躏,要保障的最主要的點,其實在前面都已經(jīng)介紹了共屈。就是:機密性、完整性、認(rèn)證問題
  • 我們把前面能夠保證這些要求的技術(shù)環(huán)列一下:
    • 保證機密性的對稱密碼幌衣,使用偽隨機數(shù)生成的密鑰,保證通訊雙方都能安全獲取密鑰的公鑰密碼Diffie-Hellman密鑰交換
    • 保證完整性的消息認(rèn)證碼豁护,生成此認(rèn)證碼的單向散列函數(shù)
    • 解決認(rèn)證問題的數(shù)字簽名證書
  • SSL/TLS實際上就是上面多種技術(shù)以某種方式組合在一起的組合套餐,以幫助實現(xiàn)通訊安全断部。
  • HTTP班缎、SMTP/POP3等應(yīng)用層協(xié)議可以承載在SSL/TLS之上
  • SSL和TLS大體是相同的她渴,只有少量微妙的區(qū)別。

基于TLS 1.0講解通訊過程

TLS協(xié)議結(jié)構(gòu)

  • TLS協(xié)議分成兩層:TLS記錄協(xié)議(TLS record protocol)趁耗、TLS握手協(xié)議(TLS handshake protocol)
  • TLS握手協(xié)議是負責(zé)加密以外的其他事情疆虚。握手協(xié)議分成4個子協(xié)議,分別是:握手協(xié)議径簿、密碼規(guī)格變更協(xié)議、警告協(xié)議篇亭、應(yīng)用數(shù)據(jù)協(xié)議
    • 握手協(xié)議:負責(zé)通信雙方之間協(xié)商決定密碼算法和共享密鑰
    • 密碼規(guī)格變更協(xié)議:負責(zé)向通信對象傳達變更密碼方式的信號
    • 警告協(xié)議:負責(zé)在發(fā)生錯誤時將錯誤傳給對方
    • 應(yīng)用數(shù)據(jù)協(xié)議:是將TLS承載的應(yīng)用數(shù)據(jù)傳達給通訊對象

-TLS記錄協(xié)議是負責(zé)消息的壓縮、加密以及數(shù)據(jù)的認(rèn)證暗赶。

  1. TLS記錄協(xié)議使用到的所有的算法等都是經(jīng)過握手協(xié)議協(xié)商確認(rèn)后的,以保證通訊雙方是使用相同的算法十嘿。
  2. 首先岳锁,消息會被 分割成多份绩衷,并用協(xié)商好的壓縮算法進行壓縮
  3. 其次激率,壓縮片段會加上消息認(rèn)證碼以保證完整性,為了防止重放攻擊還加上了片段編號招盲。
  4. 再次,壓縮后的消息片段會加上消息認(rèn)證碼一起進行加密曹货。加密使用CBC模式讳推,初始向量是通過主密碼生成。
  5. 最后银觅,加密后的報文,再加上數(shù)據(jù)類型、版本號匀伏、壓縮后的長度組成的報頭镰吆,就是最終的數(shù)據(jù)報文帘撰。

握手協(xié)議通信過程

  1. ClientHello(客戶端 -> 服務(wù)器)

    • 客戶端向服務(wù)端發(fā)送自己的信息:可用的版本號、當(dāng)前時間万皿、客戶端隨機數(shù)摧找、會話ID、可用的密碼套件清單牢硅、可用的壓縮方式清單
    • 可用的版本號蹬耘、可用的密碼套件清單、可用的壓縮方式清單:因為不同的瀏覽器可能支持的情況不一樣减余,所以需要發(fā)送給服務(wù)端以方便協(xié)商综苔。
    • 當(dāng)前時間:TLS不使用,但是上層的協(xié)議有可能使用
    • 客戶端隨機數(shù):后面會使用到
    • 會話ID:客戶端和服務(wù)端需要重新使用之前的連接時位岔,會使用到此信息如筛。
  2. ServerHello(服務(wù)器 -> 客戶端)

    • 服務(wù)端向客戶端發(fā)送自己的信息:使用的版本號、當(dāng)前時間抒抬、服務(wù)器隨機數(shù)杨刨、會話ID、使用的密碼套件清單擦剑、使用的壓縮方式清單
    • 使用的版本號妖胀、使用的密碼套件清單、使用的壓縮方式清單:這里發(fā)送的就是協(xié)商后的確定結(jié)果
    • 當(dāng)前時間:TLS不使用惠勒,但是上層的協(xié)議有可能使用
    • 服務(wù)器隨機數(shù):后面會使用到
  3. Certificate(服務(wù)器 -> 客戶端)

    • 就是發(fā)送服務(wù)器的證書
  4. ServerKeyExchange(服務(wù)器 -> 客戶端)

    • 如果Certificate不足以滿足需求時,則會發(fā)送ServerKeyExchange消息纠屋。具體的內(nèi)容根據(jù)密碼套件的不同而有所不同涂臣。
    • 這個不是必須的
  5. CertificateRquest(服務(wù)器 -> 客戶端)

    • 簡單的說就是我們平時說的雙向認(rèn)證,即服務(wù)器找客戶端要其證書用來驗證
    • 這個過程中巾遭,服務(wù)器會向客戶端發(fā)送這些消息:服務(wù)器能夠理解的證書類型肉康、服務(wù)器能夠理解的認(rèn)證機構(gòu)名稱清單
  6. ServerHelloDone(服務(wù)器 -> 客戶端)

    • 通知客戶端hello時間結(jié)束
  7. Certificate(客戶端 -> 服務(wù)器)

    • 第5步中如果服務(wù)器要了客戶端的證書,則發(fā)送給服務(wù)器
  8. ClientKeyExchange(客戶端 -> 服務(wù)器)

    • 這個就是最關(guān)鍵的一步灼舍,交換生成最終密鑰的關(guān)鍵素材
    • 如果是使用的RSA,則會將經(jīng)過服務(wù)器公鑰加密的預(yù)備主密碼隨著ClientKeyExchange消息一起發(fā)送
    • 如果是Diffie-Hellman密鑰交換涨薪,則隨著ClientKeyExchange消息一起發(fā)送的是Diffie-Hellman公開值
    • 預(yù)備主密碼使得服務(wù)端和客戶端分別計算出相同的主密碼
    • 主密碼作為關(guān)鍵的密鑰素材可以生成:對稱密碼的密鑰骑素、消息認(rèn)證碼的密鑰、對稱密碼的CBC模式中使用的初始化向量
  9. CertificateVerify(客戶端 -> 服務(wù)器)

    • 只有發(fā)送了第5步消息的時候刚夺,客戶端才會向服務(wù)器發(fā)送CertificateVerify消息
    • 這個消息是為了向服務(wù)器證明献丑,自己確實是真實的客戶端末捣,擁有客戶端證書的私鑰。為了實現(xiàn)這個目的创橄,客戶端會計算主密碼和握手協(xié)議種傳送的消息的散列值加上自己的數(shù)字簽名后發(fā)送給服務(wù)器箩做。
  10. ChangeCipherSpec(客戶端 -> 服務(wù)器)

    • 這不是握手協(xié)議,而是密碼規(guī)格變更協(xié)議妥畏“畎睿客戶端告訴服務(wù)器我要換密碼了。
    • 因為已經(jīng)雙方已經(jīng)交換了密碼套件信息醉蚁,可以開始切換密碼進行通信了燃辖。
  11. Finished(客戶端 -> 服務(wù)器)

    • 客戶端說我搞定了
  12. ChangeCipherSpec(服務(wù)器 -> 客戶端)

    • 服務(wù)器告訴客戶端,我要開始換密碼了
  13. Finished(服務(wù)器 -> 客戶端)

    • 服務(wù)器說我搞定了
  14. 切換至應(yīng)用數(shù)據(jù)協(xié)議

主密碼

  • 主密碼是根據(jù)下面信息計算出來的:預(yù)備主密碼网棍、客戶端隨機數(shù)黔龟、服務(wù)器隨機數(shù)
  • 如果是RSA,在握手的時候客戶端就會把預(yù)備主密碼發(fā)送給服務(wù)器滥玷;如果是Diffie-Hellman氏身,則會發(fā)送公開值給服務(wù)器,然后客戶端和服務(wù)器根據(jù)這個值生成預(yù)備主密碼
  • 客戶端隨機數(shù)和服務(wù)器隨機數(shù)相當(dāng)于為了防止攻擊者事先計算出來的鹽值
  • 使用主密碼生成對稱密碼的密鑰惑畴、消息認(rèn)證碼的密鑰蛋欣、對稱密碼的CBC模式中使用的初始化向量

對SSL/TLS的攻擊

  • 既然是工具箱的組合,那么使用到的技術(shù)的攻擊手法都可以進行攻擊
  • 對偽隨機數(shù)生成器的攻擊桨菜,主要是因為生成器的種子在時間和進程編號這樣可預(yù)測的范圍內(nèi)的數(shù)值
  • 利用證書時間差進行攻擊豁状,就是CRL列表提交了注銷,但還未批準(zhǔn)的時間差

SSL/TLS用戶的注意事項

  • 不要誤解證書的含義倒得。這點是最重要的泻红,就是通過證書認(rèn)證并不就代表服務(wù)器是正確的。很好理解霞掺,就是擁有合法身份證的人谊路,不一定是你要轉(zhuǎn)移錢的對象。
  • 密碼通信前數(shù)據(jù)不受保護
  • 密碼通信后數(shù)據(jù)不受保護
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末菩彬,一起剝皮案震驚了整個濱河市缠劝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骗灶,老刑警劉巖惨恭,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異耙旦,居然都是意外死亡脱羡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锉罐,“玉大人帆竹,你說我怎么就攤上這事∨Ч妫” “怎么了栽连?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長侨舆。 經(jīng)常有香客問我秒紧,道長,這世上最難降的妖魔是什么态罪? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任噩茄,我火速辦了婚禮,結(jié)果婚禮上复颈,老公的妹妹穿的比我還像新娘绩聘。我一直安慰自己,他們只是感情好耗啦,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布凿菩。 她就那樣靜靜地躺著,像睡著了一般帜讲。 火紅的嫁衣襯著肌膚如雪衅谷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天似将,我揣著相機與錄音获黔,去河邊找鬼。 笑死在验,一個胖子當(dāng)著我的面吹牛玷氏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腋舌,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼盏触,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了块饺?” 一聲冷哼從身側(cè)響起赞辩,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎授艰,沒想到半個月后辨嗽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡淮腾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年召庞,在試婚紗的時候發(fā)現(xiàn)自己被綠了岛心。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片来破。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡篮灼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出徘禁,到底是詐尸還是另有隱情诅诱,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布送朱,位于F島的核電站娘荡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏驶沼。R本人自食惡果不足惜炮沐,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望回怜。 院中可真熱鬧大年,春花似錦、人聲如沸玉雾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽复旬。三九已至垦缅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驹碍,已是汗流浹背壁涎。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留志秃,地道東北人怔球。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像洽损,于是被迫代替她去往敵國和親庞溜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

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

  • 原文: 高性能網(wǎng)絡(luò)瀏覽器-第四章傳輸層安全性(Transport Layer Security,TLS) 翻譯: ...
    夢很想家閱讀 4,668評論 2 6
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理碑定,服務(wù)發(fā)現(xiàn)流码,斷路器,智...
    卡卡羅2017閱讀 134,720評論 18 139
  • 一延刘、作用 不使用SSL/TLS的HTTP通信漫试,就是不加密的通信。所有信息明文傳播碘赖,帶來了三大風(fēng)險驾荣。 (1)竊聽風(fēng)險...
    XLsn0w閱讀 10,556評論 2 44
  • 前面兩篇文章中關(guān)于 HTTP 相關(guān)知識基本上介紹的差不多了外构,這篇文章是對 HTTP 協(xié)議的補充,主要介紹以下三點內(nèi)...
    lijiankun24閱讀 1,313評論 2 3
  • 1. 網(wǎng)絡(luò)基礎(chǔ)TCP/IP HTTP基于TCP/IP協(xié)議族播掷,HTTP屬于它內(nèi)部的一個子集审编。 把互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集...
    yozosann閱讀 3,445評論 0 20