HTTPS如何保證安全

2021-10-03 18:26:29 字數 1320 閱讀 5221

同事去大廠面試,回來帶回來乙個問題,聊聊https的安全和非對稱加密。剛好自己對這塊網路協議也不是很熟悉,剛好研究一波。

https如何保證安全?

https這邊主要採用了對稱加密+非對稱加密+ca認證去保證安全。

當我們在網路上傳輸資訊的時候,需要確保資訊的安全,不被竊聽,不被攔截,那從最簡單的方式,就是雙方約定好乙個暗號(key),用相同的key對資訊加密和解密,一般採用一種叫aes演算法來加密,aes保證了只要你的key足夠長,破解幾乎不可能。

好了這樣一來貌似安全了,但是有乙個嚴重的問題,這個key,怎麼給對方,如果直接通過網路傳輸還是會被中間人擷取,到時候中間人知道了你們的key,照樣可以破解,這個時候出現了另乙隻演算法,非對稱加密,這個加密方式比較複雜,簡單的來說就是生成一對秘鑰key1和key2,凡是key1加密的資料只能key2能解,key2加密的資料只能key1能解,這種演算法很多,常用的是rsa,ras基於二個非常大的素數乘積很容易算,但是像根據乘積算二個素數很複雜。

步驟如下圖:(假設是a和b之間互動)

利用ras技術生成key1和key2,這裡的key只能對方的key能解決。a這邊用明文的方式傳送key1到b,就算被擷取了,人家也無法破解。b這邊接收到key1後,另外準備乙個需要對稱加密的key,用key1對key進行加密。b這邊講加密好後的key傳輸到a,就算被擷取了,人家也無法破解。a這邊用key2吧加密後的key解出來,這樣雙方就拿到了需要對稱加密的key了。雙方用key進行資訊傳輸。

問題:為什麼不用非對稱加密直接對資訊加密而是對key加密,原因是非對稱加密和解密消耗時間非常長,通常不這麼做。

好了這樣一來貌似安全了,但還是有乙個漏洞,比如說,我a和b中間有乙個中間人(簡稱z),那麼很有可能會a傳送的時候被z擷取,z偽造了乙個key,假裝自己是b,用a發過來的key1對偽造的key加密,然後返回給a,讓a誤以為z就是b,同樣偽裝成a和b完成一次秘鑰的互動。那麼接下來,a和b之間的互動資訊就不安全了。解決這中問題,會引入第三方ca,ca是一些非常權威的專門用於認證**合法性的組織,服務商也就是b,可以向ca申請乙個證書,使得他們在建立連線的時候帶上ca的簽名。其實到這裡也不是絕對的安全,假設ca證書除了問題被中間人攻擊了,但大多情況下不必杞人憂天,基本上是安全的。

HTTPS 是如何保證安全的?

每當我們討論到資訊保安的時候,我們最長接觸到的資訊加密傳輸的方式莫過於 https 了,當我們瀏覽器位址列閃現出綠色時,就代表著這個 支援 https 的加密資訊傳輸方式,並且你與它的連線確實被加密了。但是 https 並不是乙個單一的東西,它知識我們常見的 http 協議和某個加密協議的乙個混合,...

Https是如何保證安全的

https 全稱 hypertext transfer protocol over secure socket layer 是以安全為目標的http通道,簡單講是http的安全版。即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl,簡單點也是https http ...

HTTPS 是如何保證安全的?

每當我們討論到資訊保安的時候,我們最長接觸到的資訊加密傳輸的方式莫過於 https 了,當我們瀏覽器位址列閃現出綠色時,就代表著這個 支援 https 的加密資訊傳輸方式,並且你與它的連線確實被加密了。但是 https 並不是乙個單一的東西,它知識我們常見的 http 協議和某個加密協議的乙個混合,...