從入門到熟悉 HTTPS 的 9 個問題

2021-10-04 04:37:10 字數 2116 閱讀 6973

q1: 什麼是 https?

bs: https 是安全的 http

http協議中的內容都是明文傳輸,https的目的是將這些內容加密,確保資訊傳輸安全,最後乙個字母s 指的是 ssl/tls 協議,它位於 http 協議與 tcp/ip 協議中間。

q2: 你說的資訊傳輸安全是什麼意思

bs: 資訊傳輸的安全有三個方面:

1.客戶端和伺服器直接通訊只有自己看得懂,即使第三方拿到資料也看不到這些資訊的意義

2.第三方雖然看不懂內容,但是可以瞎幾把改,所以有了數字簽名技術,判斷是否被修改過

3.客戶端必須避免中間人攻擊,即除了真正的伺服器,任何第三方都無法冒充伺服器。

目前的 http 協議還不滿足上述三條要求中的任何一條。

q3: 這麼多要求,乙個乙個去滿足是不是很累?

bs: 不累,第三個要求可以不用管

是的,我沒開玩笑,你可以暫時別管第三個要求,因為它實際上隸屬於第乙個需求。我們都知道加密需要密碼,密碼不是天下掉下來,也得需要雙方經過通訊才能協商出來。所以乙個設計良好的加密機制必然會防止第三者的干擾和偽造。等搞明白了加密的具體原理,我們自然可以檢驗是否滿足:「任何第三者無法冒充伺服器」這一要求。

q4: 那怎麼加密資訊呢

bs: 使用對稱加密技術

對稱加密可以理解為對原始資料的可逆變換.

比如1234這串資料加密後變成2345 規則就是再每個數字變成+1,這裡的金鑰就是+1,另一方拿到2345就可以還原成原來的資訊了

引入加密對稱後https的握手流程會多了兩步,用來傳遞加密的金鑰

1、客戶端: 你好,我需要發起乙個 https 請求

1、伺服器: 好的,你的秘鑰是 1。

q5: 對稱秘鑰如何傳輸

伺服器直接返回明文的對稱加密金鑰是不是不安全。如果有監聽者拿到這個金鑰,不就知道客戶端和伺服器後續的通訊內容了麼?

bs: 利用非對稱加密

是這樣,所以不能明文傳遞對稱秘鑰,而且也不能用乙個新的對稱加密演算法來加密原來的對稱秘鑰,否則新的對稱秘鑰同樣無法傳輸,這就是雞生蛋、蛋生雞的悖論。

這裡我們引入非對稱加密的方式,非對稱加密的特性決定了伺服器用私鑰加密的內容並不是真正的加密,因為公鑰所有人都有,所以伺服器的密文能被所有人解析。但私鑰只掌握在伺服器手上,這就帶來了兩個巨大的優勢:

1、伺服器下發的內容不可能被偽造,因為別人都沒有私鑰,所以無法加密。強行加密的後果是客戶端用公鑰無法解開。

2、任何人用公鑰加密的內容都是絕對安全的,因為私鑰只有伺服器有,也就是只有真正的伺服器可以看到被加密的原文。

q5: 那公鑰怎麼傳輸

你好像還是沒有解決雞生蛋,蛋生雞的問題。你說客戶端傳送請求時要用公鑰加密對稱秘鑰,那公鑰怎麼傳輸呢?

bs: 對公鑰加密就行了。。。

每乙個使用 https 的伺服器都必須去專門的證書機構註冊乙個證書,證書中儲存了用權威機構私鑰加密的公鑰。這樣客戶端用權威機構的公鑰解密就可以了。

現在 https 協議的握手階段變成了四步:

1、客戶端: 你好,我要發起乙個 https 請求,請給我公鑰

2、伺服器: 好的,這是我的證書,裡面有加密後的公鑰

3、客戶端: 解密成功以後告訴伺服器: 這是我的 (用公鑰加密後的) 對稱秘鑰。

4、伺服器: 好的,我知道你的秘鑰了,後續就用它傳輸。

q6:那權威機構的公鑰又怎麼傳輸?

bs: 存在電腦裡

瀏覽器和作業系統都會維護乙個權威的第三方機構列表(包括他們的公鑰)

客戶端接收到的證書中會寫有頒發機構,客戶端就根據這個頒發機構的值在本地找相應的公鑰。

q9: https 握手會影響效能麼

tcp 有三次握手,再加上 https 的四次握手,會不會影響效能?

bs: 影響肯定有,但是可以接受

首先,https 肯定會更慢一點,時間主要花費在兩組 ssl 之間的耗時和證書的讀取驗證上,對稱演算法的加解密時間幾乎可以忽略不計。

九個問題從入門到熟悉HTTPS

女朋友也是軟體工程專業,因為快要畢業了,最近一邊做畢設一邊學習程式設計。前兩天她問我 https 的問題,本來想直接扔一篇網上的教程給她。後來想了一下,那些文章大多直接介紹概念,對新手不太友好,於是我乾脆親自給她解釋一下,順便整理了乙份問答錄。http 協議中的內容都是明文傳輸,https 的目的是...

學習python,從入門到放棄(9)

read 可以一次性讀取所有檔案內容,但是這種方法非常容易造成記憶體溢位,因為當檔案特別大時,讀取時記憶體會存不下。readline 一次唯讀一行內容,可以解決這樣的問題,搭配迴圈語句來使用,使記憶體中同一時刻只會有一行內容。readlines 也會一次性讀取所有內容,但是會將每一行的內容放置在乙個...

SD WAN十問,帶你從入門到高階

近年來,sd wan發展勢頭強勁,越來越多的企業使用者紛紛著手開始部署sd wan,sd wan市場繼續呈 式增長,並被各種分布式的組織廣泛採用,除了原有的mpls鏈路之外,企業還可以輕鬆部署sd wan產品,並在部署網際網路連線時大幅改善wan頻寬。sd wan的市場份額很高,很多初創公司 小的 ...