日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是Https

HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL

Https的作用

  • 內容加密 建立一個信息安全通道,來保證數據傳輸的安全;
  • 身份認證 確認網站的真實性
  • 數據完整性 防止內容被第三方冒充或者篡改

Https的劣勢

  • 對數據進行加解密決定了它比http慢

需要進行非對稱的加解密,且需要三次握手。首次連接比較慢點,當然現在也有很多的優化。

出于安全考慮,瀏覽器不會在本地保存HTTPS緩存。實際上,只要在HTTP頭中使用特定命令,HTTPS是可以緩存的。Firefox默認只在內存中緩存HTTPS。但是,只要頭命令中有Cache-Control: Public,緩存就會被寫到硬盤上。 IE只要http頭允許就可以緩存https內容,緩存策略與是否使用HTTPS協議無關。

HTTPS和HTTP的區別

  • https協議需要到CA申請證書。
  • http是超文本傳輸協議,信息是明文傳輸;https 則是具有安全性的ssl加密傳輸協議。
  • http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
  • http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

http默認使用80端口,https默認使用443端口

下面就是https的整個架構,現在的https基本都使用TLS了,因為更加安全,所以下圖中的SSL應該換為SSL/TLS

詳解Https是如何確保安全的

 

下面就上圖中的知識點進行一個大概的介紹。

加解密相關知識

對稱加密

對稱加密(也叫私鑰加密)指加密和解密使用相同密鑰的加密算法。有時又叫傳統密碼算法,就是加密密鑰能夠從解密密鑰中推算出來,同時解密密鑰也可以從加密密鑰中推算出來。而在大多數的對稱算法中,加密密鑰和解密密鑰是相同的,所以也稱這種加密算法為秘密密鑰算法或單密鑰算法。

常見的對稱加密有:DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、RC4、IDEA

非對稱加密

與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey);并且加密密鑰和解密密鑰是成對出現的。非對稱加密算法在加密和解密過程使用了不同的密鑰,非對稱加密也稱為公鑰加密,在密鑰對中,其中一個密鑰是對外公開的,所有人都可以獲取到,稱為公鑰,其中一個密鑰是不公開的稱為私鑰。

非對稱加密算法對加密內容的長度有限制,不能超過公鑰長度。比如現在常用的公鑰長度是 2048 位,意味著待加密內容不能超過 256 個字節。

摘要算法

數字摘要是采用單項Hash函數將需要加密的明文“摘要”成一串固定長度(128位)的密文,這一串密文又稱為數字指紋,它有固定的長度,而且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致。“數字摘要“是https能確保數據完整性和防篡改的根本原因。

數字簽名

數字簽名技術就是對“非對稱密鑰加解密”和“數字摘要“兩項技術的應用,它將摘要信息用發送者的私鑰加密,與原文一起傳送給接收者。接收者只有用發送者的公鑰才能解密被加密的摘要信息,然后用HASH函數對收到的原文產生一個摘要信息,與解密的摘要信息對比。如果相同,則說明收到的信息是完整的,在傳輸過程中沒有被修改,否則說明信息被修改過,因此數字簽名能夠驗證信息的完整性。

數字簽名的過程如下:

明文 --> hash運算 --> 摘要 --> 私鑰加密 --> 數字簽名

數字簽名有兩種功效:

一、能確定消息確實是由發送方簽名并發出來的,因為別人假冒不了發送方的簽名。

二、數字簽名能確定消息的完整性。

注意:

數字簽名只能驗證數據的完整性,數據本身是否加密不屬于數字簽名的控制范圍

數字證書

為什么要有數字證書?

對于請求方來說,它怎么能確定它所得到的公鑰一定是從目標主機那里發布的,而且沒有被篡改過呢?亦或者請求的目標主機本本身就從事竊取用戶信息的不正當行為呢?這時候,我們需要有一個權威的值得信賴的第三方機構(一般是由政府審核并授權的機構)來統一對外發放主機機構的公鑰,只要請求方這種機構獲取公鑰,就避免了上述問題的發生。

數字證書的頒發過程

用戶首先產生自己的密鑰對,并將公共密鑰及部分個人身份信息傳送給認證中心。認證中心在核實身份后,將執行一些必要的步驟,以確信請求確實由用戶發送而來,然后,認證中心將發給用戶一個數字證書,該證書內包含用戶的個人信息和他的公鑰信息,同時還附有認證中心的簽名信息(根證書私鑰簽名)。用戶就可以使用自己的數字證書進行相關的各種活動。數字證書由獨立的證書發行機構發布,數字證書各不相同,每種證書可提供不同級別的可信度。

證書包含哪些內容

  • 證書頒發機構的名稱
  • 證書本身的數字簽名
  • 證書持有者公鑰
  • 證書簽名用到的Hash算法

驗證證書的有效性

瀏覽器默認都會內置CA根證書,其中根證書包含了CA的公鑰

  1. 證書頒發的機構是偽造的:瀏覽器不認識,直接認為是危險證書
  2. 證書頒發的機構是確實存在的,于是根據CA名,找到對應內置的CA根證書、CA的公鑰。用CA的公鑰,對偽造的證書的摘要進行解密,發現解不了,認為是危險證書。
  3. 對于篡改的證書,使用CA的公鑰對數字簽名進行解密得到摘要A,然后再根據簽名的Hash算法計算出證書的摘要B,對比A與B,若相等則正常,若不相等則是被篡改過的。
  4. 證書可在其過期前被吊銷,通常情況是該證書的私鑰已經失密。較新的瀏覽器如Chrome、Firefox、Opera和Internet Explorer都實現了在線證書狀態協議(OCSP)以排除這種情形:瀏覽器將網站提供的證書的序列號通過OCSP發送給證書頒發機構,后者會告訴瀏覽器證書是否還是有效的。

1、2點是對偽造證書進行的,3是對于篡改后的證書驗證,4是對于過期失效的驗證。

SSL 與 TLS

SSL (Secure Socket Layer,安全套接字層)

SSL為Netscape所研發,用以保障在Internet上數據傳輸之安全,利用數據加密(Encryption)技術,可確保數據在網絡上之傳輸過程中不會被截取,當前為3.0版本。

SSL協議可分為兩層: SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。 SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用于在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。

TLS (Transport Layer Security,傳輸層安全協議)

用于兩個應用程序之間提供保密性和數據完整性。

TLS 1.0是IETF(Internet Engineering Task Force,Internet工程任務組)制定的一種新的協議,它建立在SSL 3.0協議規范之上,是SSL 3.0的后續版本,可以理解為SSL 3.1,它是寫入了 RFC 的。該協議由兩層組成: TLS 記錄協議(TLS Record)和 TLS 握手協議(TLS Handshake)。較低的層為 TLS 記錄協議,位于某個可靠的傳輸協議(例如 TCP)上面。

SSL/TLS協議作用:

  • 認證用戶和服務器,確保數據發送到正確的客戶機和服務器;
  • 加密數據以防止數據中途被竊取;
  • 維護數據的完整性,確保數據在傳輸過程中不被改變。

TLS比SSL的優勢

  1. 對于消息認證使用密鑰散列法:TLS 使用“消息認證代碼的密鑰散列法”(Hmac),當記錄在開放的網絡(如因特網)上傳送時,該代碼確保記錄不會被變更。SSLv3.0還提供鍵控消息認證,但HMAC比SSLv3.0使用的(消息認證代碼)MAC 功能更安全。
  2. 增強的偽隨機功能(PRF):PRF生成密鑰數據。在TLS中,HMAC定義PRF。PRF使用兩種散列算法保證其安全性。如果任一算法暴露了,只要第二種算法未暴露,則數據仍然是安全的。
  3. 改進的已完成消息驗證:TLS和SSLv3.0都對兩個端點提供已完成的消息,該消息認證交換的消息沒有被變更。然而,TLS將此已完成消息基于PRF和HMAC值之上,這也比SSLv3.0更安全。
  4. 一致證書處理:與SSLv3.0不同,TLS試圖指定必須在TLS之間實現交換的證書類型。
  5. 特定警報消息:TLS提供更多的特定和附加警報,以指示任一會話端點檢測到的問題。TLS還對何時應該發送某些警報進行記錄。

SSL、TLS的握手過程

SSL與TLS握手整個過程如下圖所示,下面會詳細介紹每一步的具體內容:

詳解Https是如何確保安全的

 

客戶端首次發出請求

由于客戶端(如瀏覽器)對一些加解密算法的支持程度不一樣,但是在TLS協議傳輸過程中必須使用同一套加解密算法才能保證數據能夠正常的加解密。在TLS握手階段,客戶端首先要告知服務端,自己支持哪些加密算法,所以客戶端需要將本地支持的加密套件(Cipher Suite)的列表傳送給服務端。除此之外,客戶端還要產生一個隨機數,這個隨機數一方面需要在客戶端保存,另一方面需要傳送給服務端,客戶端的隨機數需要跟服務端產生的隨機數結合起來產生后面要講到的 Master Secret 。

客戶端需要提供如下信息:

  • 支持的協議版本,比如TLS 1.0版
  • 一個客戶端生成的隨機數,稍后用于生成”對話密鑰”
  • 支持的加密方法,比如RSA公鑰加密
  • 支持的壓縮方法

服務端首次回應

服務端在接收到客戶端的Client Hello之后,服務端需要確定加密協議的版本,以及加密的算法,然后也生成一個隨機數,以及將自己的證書發送給客戶端一并發送給客戶端,這里的隨機數是整個過程的第二個隨機數。

服務端需要提供的信息:

  • 協議的版本
  • 加密的算法
  • 隨機數
  • 服務器證書

客戶端再次回應

客戶端首先會對服務器下發的證書進行驗證,驗證通過之后,則會繼續下面的操作,客戶端再次產生一個隨機數(第三個隨機數),然后使用服務器證書中的公鑰進行加密,以及放一個ChangeCipherSpec消息即編碼改變的消息,還有整個前面所有消息的hash值,進行服務器驗證,然后用新秘鑰加密一段數據一并發送到服務器,確保正式通信前無誤。

客戶端使用前面的兩個隨機數以及剛剛新生成的新隨機數,使用與服務器確定的加密算法,生成一個Session Secret。

ChangeCipherSpec

ChangeCipherSpec是一個獨立的協議,體現在數據包中就是一個字節的數據,用于告知服務端,客戶端已經切換到之前協商好的加密套件(Cipher Suite)的狀態,準備使用之前協商好的加密套件加密數據并傳輸了。

服務器再次響應

服務端在接收到客戶端傳過來的第三個隨機數的 加密數據之后,使用私鑰對這段加密數據進行解密,并對數據進行驗證,也會使用跟客戶端同樣的方式生成秘鑰,一切準備好之后,也會給客戶端發送一個 ChangeCipherSpec,告知客戶端已經切換到協商過的加密套件狀態,準備使用加密套件和 Session Secret加密數據了。之后,服務端也會使用 Session Secret 加密一段 Finish 消息發送給客戶端,以驗證之前通過握手建立起來的加解密通道是否成功。

后續客戶端與服務器間通信

確定秘鑰之后,服務器與客戶端之間就會通過商定的秘鑰加密消息了,進行通訊了。整個握手過程也就基本完成了。

值得特別提出的是:

SSL協議在握手階段使用的是非對稱加密,在傳輸階段使用的是對稱加密,也就是說在SSL上傳送的數據是使用對稱密鑰加密的!因為非對稱加密的速度緩慢,耗費資源。其實當客戶端和主機使用非對稱加密方式建立連接后,客戶端和主機已經決定好了在傳輸過程使用的對稱加密算法和關鍵的對稱加密密鑰,由于這個過程本身是安全可靠的,也即對稱加密密鑰是不可能被竊取盜用的,因此,保證了在傳輸過程中對數據進行對稱加密也是安全可靠的,因為除了客戶端和主機之外,不可能有第三方竊取并解密出對稱加密密鑰!如果有人竊聽通信,他可以知道雙方選擇的加密方法,以及三個隨機數中的兩個。整個通話的安全,只取決于第三個隨機數(Premaster secret)能不能被破解。

其他補充

對于非常重要的保密數據,服務端還需要對客戶端進行驗證,以保證數據傳送給了安全的合法的客戶端。服務端可以向客戶端發出 Cerficate Request 消息,要求客戶端發送證書對客戶端的合法性進行驗證。比如,金融機構往往只允許認證客戶連入自己的網絡,就會向正式客戶提供USB密鑰,里面就包含了一張客戶端證書。

PreMaster secret前兩個字節是TLS的版本號,這是一個比較重要的用來核對握手數據的版本號,因為在Client Hello階段,客戶端會發送一份加密套件列表和當前支持的SSL/TLS的版本號給服務端,而且是使用明文傳送的,如果握手的數據包被破解之后,攻擊者很有可能串改數據包,選擇一個安全性較低的加密套件和版本給服務端,從而對數據進行破解。所以,服務端需要對密文中解密出來對的PreMaster版本號跟之前Client Hello階段的版本號進行對比,如果版本號變低,則說明被串改,則立即停止發送任何消息。

分享到:
標簽:Https
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定