<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          網(wǎng)絡(luò)篇:朋友面試之https認(rèn)證加密過程

          共 2135字,需瀏覽 5分鐘

           ·

          2021-05-24 20:50

          前言

          上次朋友關(guān)于TCP/IP面試的后續(xù),主要是https的相關(guān)面試要點(diǎn),請看下文

          面試官:HTTPS它的認(rèn)證加密過程是怎樣,它怎么保證內(nèi)容不會(huì)被篡改

          • 朋友:1,https是基于tcp協(xié)議的,客戶端先會(huì)和服務(wù)端發(fā)起鏈接建立
          • 朋友:2,接著服務(wù)端會(huì)把它的證書返回給客戶端,證書里面包括公鑰S.pub、頒發(fā)機(jī)構(gòu)和有效期等信息
          • 朋友:3,拿到的證書可以通過瀏覽器內(nèi)置的根證書(內(nèi)含C.pub)驗(yàn)證其合法性
          • 朋友:4,客戶端生成隨機(jī)的對稱加密秘鑰Z,通過服務(wù)端的公鑰S.pub加密發(fā)給服務(wù)端
          • 朋友:5,客戶端和服務(wù)端通過對稱秘鑰Z加密數(shù)據(jù)來進(jìn)行http通信

          面試官:那根證書怎么保證簽發(fā)的證書是有安全有效的

          • 朋友:1-服務(wù)器會(huì)預(yù)先生成非對稱加密密鑰,私鑰S.pri自己保留;而公鑰S.pub則發(fā)給CA機(jī)構(gòu)進(jìn)行簽名認(rèn)證
          • 朋友:2-CA也會(huì)預(yù)先生成一非對稱加密密鑰,其私鑰C.pri用來對服務(wù)器的公鑰S.pub進(jìn)行簽名生成CA證書
          • 朋友:3-CA機(jī)構(gòu)會(huì)把簽名生成的CA證書返回給服務(wù)器,也就是剛才服務(wù)端給客戶端那個(gè)證書
          • 朋友:4-因?yàn)镃A(證書頒發(fā)機(jī)構(gòu))比較權(quán)威,所以很多瀏覽器會(huì)內(nèi)置包含它公鑰(C.pub)的證書,稱之為根證書。然后可以使用根證書來驗(yàn)證其頒發(fā)證書的合法性了

          面試官:如果發(fā)生無限套娃的情況,根證書都被篡改怎么辦?

          • 朋友:無解,這需要CA根證書是準(zhǔn)確無誤,不手動(dòng)強(qiáng)制修改本地根證書就沒事,因?yàn)椴唤?jīng)過原有根證書認(rèn)證的證書是無法自動(dòng)被加入根證書

          面試官:你講得有些快,畫下圖看看

          • 朋友:https加密過程
          • 朋友:服務(wù)端證書通過CA機(jī)構(gòu)簽名認(rèn)證的過程如下

          面試官:前面你說到CA機(jī)構(gòu)會(huì)用密鑰對服務(wù)器的公鑰進(jìn)行簽名,簽名和加密,你是怎么理解

          • 朋友:使用非對稱加密算法時(shí),簽名是用來表示使用私鑰的加密過程
          • 朋友:如果用公鑰對數(shù)據(jù)加密,是加密
          • 朋友:反之用私鑰對數(shù)據(jù)加密,則稱之為簽名

          面試官:那CA證書是什么?

          • 朋友:CA證書是為了確保服務(wù)端的公鑰是準(zhǔn)確無誤,沒被修改過的
          • 朋友:證書通常包含這些內(nèi)容(1) 服務(wù)端的公鑰;(2) 證書發(fā)行者(CA)對證書的數(shù)字簽名;(3) 證書所用的簽名算法;(4) 證書發(fā)布機(jī)構(gòu)、有效期、所有者的信息等其他信息

          面試官:你講到HTTPS用到了加密算法,加密算法都有哪些類型,說說看

          • 朋友:加密算法分三大類:單向加密,對稱加密算法和非對稱加密算法

          面試官:對稱加密和非對稱加密有什么區(qū)別嗎

          • 朋友:使用對稱加密時(shí),加密和解密用的都是同一個(gè)密鑰;而非對稱加密,則是兩個(gè)密鑰,公鑰加密則需要私鑰解密,私鑰加密則需要公鑰解密。不能私鑰加密,私鑰解密

          面試官:MD5、SHA、Base64和RSA屬于什么類型的算法,對稱還是非對稱?

          • 朋友:MD5、SHA,稱為摘要算法,可以歸類為單向加密算法,其計(jì)算出的摘要信息,是不可逆向恢復(fù)成原來的數(shù)據(jù)
          • 朋友:RSA屬于非對稱加密算法
          • 朋友:而Base64并不算是加密算法,它更多時(shí)候是被稱為一種數(shù)據(jù)編碼方式

          面試官:用過哪些HTTP客戶端工具類?

          • 朋友:apache的CloseableHttpClient、jdk9的httpClient和spring clould體系里的ribbon、feign

          面試官:有沒有遇到過使用https證書問題,如果有,是什么問題呢?

          • 朋友:當(dāng)然,有一次使用apache-httpClient加載自定義證書時(shí)(沒經(jīng)過CA認(rèn)證),測試服拋出證書無法信任,然而本地運(yùn)行卻沒問題
          • 朋友:原因是證書在本地生成的,那時(shí)已經(jīng)默認(rèn)加入到根證書下了,而測試服jre的根證書目錄(/lib/security/cacerts)是沒有這個(gè)證書,放在項(xiàng)目resource下的證書也無法沒生效

          面試官:哦,那你是怎樣解決的

          • 朋友:三種解決方案。1-重寫TrustManager,無條件信任證書;2-把證書加到j(luò)re的根證書目錄;3-通過CA認(rèn)證

          面試官:網(wǎng)絡(luò)數(shù)據(jù)抓包了解不

          • 朋友:在linux系統(tǒng)可以使用tcpdump命令對tcp請求數(shù)據(jù)抓包,抓到的數(shù)據(jù)輸出到一個(gè)文件;然后可以在window使用wireshark軟件加載tcp數(shù)據(jù)文件,它可以提供界面分析

          面試官:講得還不錯(cuò),那下面我們換個(gè)話題,聊聊mysql事務(wù)....

          • 朋友:可以啊,我也稍微了解過一些事務(wù)的知識(shí)...

          歡迎指正文中錯(cuò)誤(故事純屬虛構(gòu),如有雷同純屬巧合)

          參考文章

          • 圖解HTTPS建立過程[1]
          • 摘要、簽名與數(shù)字證書都是什么?[2]
          • 數(shù)字簽名是什么?[3]

          Reference

          [1]

          圖解HTTPS建立過程: https://www.cnblogs.com/softidea/p/6958394.html

          [2]

          摘要、簽名與數(shù)字證書都是什么?: https://www.jianshu.com/p/b2774634041a

          [3]

          數(shù)字簽名是什么?: http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html


          瀏覽 85
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线激情小电影 | 中文字字幕在线中文 | 一级片 国产香蕉视频 | 久久婷婷五月综合 | 久久国产经典免费一区 |