1快毛、什么是https?什么是https證書屯掖?什么是TLS?
答:HTTPS是一種通過計算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的傳輸協(xié)議粪摘,經(jīng)由HTTP進(jìn)行通信绍坝,利用SSL/TLS建立全信道,加密數(shù)據(jù)包椎咧。HTTPS使用的主要目的是提供對網(wǎng)站服務(wù)器的身份認(rèn)證把介,同時保護(hù)交換數(shù)據(jù)的隱私與完整性。
答:HTTPS證書地技,又稱SSL證書秒拔,是一種數(shù)字證書。由CA(Certificate Authority證書頒發(fā)機(jī)構(gòu))頒發(fā)作谚。
答:TLS是傳輸層加密協(xié)議庵芭。
2、根CA從哪里來眨唬?
答:每個瀏覽器都有根證書庫好乐,所以大多數(shù)操作系統(tǒng)的根CA證書是默認(rèn)安裝的。
- 為什么需要CA機(jī)構(gòu)頒發(fā)證書岭妖?
答:防止”中間人“攻擊,同時可以為網(wǎng)站提供身份證明昵慌。
3斋攀、數(shù)字證書是如何生成的?
答:先hash再加密蜻韭。網(wǎng)站把自己的公鑰和其他信息提供給CA肖方,CA會對這些信息和公鑰進(jìn)行哈希運算得到一串更短的字符(提高加解密速度未状,非對稱加密效率較差),然后用CA自己的私鑰對這串哈希字符進(jìn)行加密艰垂,就得到“數(shù)字簽名”了埋虹。
所以雖然“數(shù)字證書”的網(wǎng)站信息都是明文的,但是核心就在于CA的“數(shù)字簽名”了胰柑。因為加密的私鑰只有CA知道爬泥。
4、瀏覽器如何保證網(wǎng)站發(fā)來的數(shù)字證書的合法性踩官?
答:
a境输、公鑰驗簽。用CA公鑰給“數(shù)字證書”里的“數(shù)字簽名”進(jìn)行解密辩越,得到一串哈希字符窗悯。
然后對“數(shù)字證書”的內(nèi)容進(jìn)行同樣的哈希運算,也得到一串哈希字符亏钩。
然后比較兩串哈希字符串是否一致。如果一致蛤签,說明“數(shù)字證書”是靠譜的栅哀,沒有被篡改。
b戳晌、域名對比痴柔。瀏覽器還會對比證書里的“主題背景”的CN公用名,或者“擴(kuò)展程序”里的“證書主題背景的備用名稱”豪嚎,是否和域名一致谈火,一致那就證明這份證書是該網(wǎng)站的。
c扔字、有效期檢查谍肤。瀏覽器還會檢查證書的有效期是否過期。
以上第3點和第4點篷角,就是典型的 CA私鑰簽名系任,公鑰驗簽。
5嘉蕾、https用的是對稱加密還是非對稱加密霜旧?
答:HTTPS 在內(nèi)容傳輸?shù)募用苌鲜褂玫氖菍ΨQ加密,非對稱加密只作用在證書驗證階段以清。
6、為什么數(shù)據(jù)傳輸是用對稱加密的眉孩?
第一:非對稱加密的加解密效率是非常低的勒葱,而 http 的應(yīng)用場景中通常端與端之間存在大量的交互死遭,非對稱加密的效率是無法接受的涩维。
第二:在 HTTPS 的場景中只有服務(wù)端保存了私鑰,一對公私鑰只能實現(xiàn)單向的加解密,所以HTTPS 中內(nèi)容傳輸加密采取的是對稱加密篷牌,而不是非對稱加密枷颊。
7戳杀、 使用https會被抓包嗎?
答:會被抓包夭苗,HTTPS 只防止用戶在不知情的情況下通信被監(jiān)聽信卡,如果用戶主動授信,是可以構(gòu)建“中間人”網(wǎng)絡(luò)题造,代理軟件可以對傳輸內(nèi)容進(jìn)行解密傍菇。
8、HTTPS必須在每次請求中都要先在SSL/TLS層進(jìn)行握手傳輸密鑰嗎界赔?
答:顯然每次請求都經(jīng)歷一次密鑰傳輸過程非常耗時丢习,那怎么達(dá)到只傳輸一次呢?靠“session”淮悼。
服務(wù)器會為每個瀏覽器(或客戶端軟件)維護(hù)一個session ID咐低,在TSL握手階段傳給瀏覽器,瀏覽器生成好密鑰傳給服務(wù)器后见擦,服務(wù)器會把該密鑰存到相應(yīng)的session ID下,之后瀏覽器每次請求都會攜帶session ID,服務(wù)器會根據(jù)session ID找到相應(yīng)的密鑰并進(jìn)行解密加密操作鲤屡,這樣就不必要每次重新制作儡湾、傳輸密鑰了!
9执俩、https 總結(jié):
① 證書驗證階段:
1)瀏覽器發(fā)起 HTTPS 請求徐钠;
2)服務(wù)端返回 HTTPS 證書;
3)客戶端驗證證書是否合法役首,如果不合法則提示告警尝丐。
② 數(shù)據(jù)傳輸階段:
1)當(dāng)證書驗證合法后,在本地生成隨機(jī)數(shù)衡奥;
2)通過公鑰加密隨機(jī)數(shù)爹袁,并把加密后的隨機(jī)數(shù)傳輸?shù)椒?wù)端;
3)服務(wù)端通過私鑰對隨機(jī)數(shù)進(jìn)行解密矮固;
4)服務(wù)端通過客戶端傳入的隨機(jī)數(shù)構(gòu)造對稱加密算法失息,對返回結(jié)果內(nèi)容進(jìn)行加密后傳輸。