HTTPS與SSL

原地址

HTTPS

HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細內(nèi)容就需要SSL。 它是一個URI scheme(抽象標識符體系),句法類同http:體系。用于安全的HTTP數(shù)據(jù)傳輸。https:URL表明它使用了HTTPS,但HTTPS存在不同于HTTP的默認端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統(tǒng)的最初研發(fā)由網(wǎng)景公司進行,提供了身份驗證與加密通訊方法,現(xiàn)在它被廣泛用于萬維網(wǎng)上安全敏感的通訊,例如交易支付方面

HTTPS和HTTP的區(qū)別

  1. https協(xié)議需要到ca申請證書,一般免費證書很少,需要交費。

  2. http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議。

  3. http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。

  4. http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。

https的實現(xiàn)原理

有兩種基本的加解密算法類型

1. 對稱加密:密鑰只有一個,加密解密為同一個密碼,且加解密速度快,典型的對稱加密算法有DES、AES等;

2. 非對稱加密:密鑰成對出現(xiàn)(且根據(jù)公鑰無法推知私鑰,根據(jù)私鑰也無法推知公鑰),加密解密使用不同密鑰(公鑰加密需要私鑰解密,私鑰加密需要公鑰解密),相對對稱加密速度較慢,典型的非對稱加密算法有RSA、DSA等。

https的通信過程
https通信的優(yōu)點

1. 客戶端產(chǎn)生的密鑰只有客戶端和服務(wù)器端能得到;

2. 加密的數(shù)據(jù)只有客戶端和服務(wù)器端才能得到明文;

3. 客戶端到服務(wù)端的通信是安全的。

HTTPS解決的問題

  1. 信任主機的問題.
      采用https的服務(wù)器必須從CA (Certificate Authority)申請一個用于證明服務(wù)器用途類型的證書。該證書只有用于對應(yīng)的服務(wù)器的時候,客戶端才信任此主機。

  2. 通訊過程中的數(shù)據(jù)的泄密和被篡改

SSL

SSL介紹

SSL安全套接層協(xié)議(Secure Socket Layer)

為Netscape所研發(fā),用以保障在Internet上數(shù)據(jù)傳輸之安全,利用數(shù)據(jù)加密(Encryption)技術(shù),可確保數(shù)據(jù)在網(wǎng)絡(luò)上之傳輸過程中不會被截取及竊聽。目前一般通用之規(guī)格為40 bit之安全標準,美國則已推出128 bit之更高安全標準,但限制出境。只要3.0版本以上之IE或Netscape瀏覽器即可支持SSL。

當前版本為3.0。它已被廣泛地用于Web瀏覽器與服務(wù)器之間的身份認證和加密數(shù)據(jù)傳輸。

SSL協(xié)議位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,是一種國際標準的加密及身份認證通信協(xié)議,為TCP提供一個可靠的端到端的安全服務(wù),為兩個通訊個體之間提供保密性和完整性(身份鑒別)。SSL協(xié)議可分為兩層:SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上,用于在實際的數(shù)據(jù)傳輸開始前,通訊雙方進行身份認證、協(xié)商加密算法、交換加密密鑰等。

SSL協(xié)議特點

  1. SSL協(xié)議可用于保護正常運行于TCP之上的任何應(yīng)用協(xié)議,如HTTP、FTP、SMTP或Telnet的通信,最常見的是用SSL來保護HTTP的通信。

  2. SSL協(xié)議的優(yōu)點在于它是與應(yīng)用層協(xié)議無關(guān)的。高層的應(yīng)用協(xié)議(如HTTP、FTP、Telnet等)能透明地建立于SSL協(xié)議之上。

  3. SSL協(xié)議在應(yīng)用層協(xié)議之前就已經(jīng)完成加密算法、通信密鑰的協(xié)商以及服務(wù)器的認證工作。在此之后應(yīng)用層協(xié)議所傳送的數(shù)據(jù)都會被加密,從而保證通信的安全性。

  4. SSL協(xié)議使用通信雙方的客戶證書以及CA根證書,允許客戶/服務(wù)器應(yīng)用以一種不能被偷聽的方式通信,在通信雙方間建立起了一條安全的、可信任的通信通道。

  5. 該協(xié)議使用密鑰對傳送數(shù)據(jù)加密,許多網(wǎng)站都是通過這種協(xié)議從客戶端接收信用卡編號等保密信息。常用于交易過程中。

SSL協(xié)議工作的基本流程

  1. 接通階段:客戶機通過網(wǎng)絡(luò)向服務(wù)器打招呼,服務(wù)器回應(yīng)

  2. 密碼交換階段:客戶機與服務(wù)器之間交換雙方認可的密碼,一般選用RSA密碼算法

  3. 會談密碼階段:客戶機器與服務(wù)器間產(chǎn)生彼此交談的會談密碼

  4. 檢驗階段:客戶機檢驗服務(wù)器取得的密碼

  5. 客戶認證階段:服務(wù)器驗證客戶機的可信度

  6. 結(jié)束階段:客戶機與服務(wù)器之間相互交換結(jié)束的信息

詳細描述 (終于搞清流程了)

SSL 協(xié)議既用到了公鑰加密技術(shù)又用到了對稱加密技術(shù),對稱加密技術(shù)雖然比公鑰加密技術(shù)的速度快,可是公鑰加密技術(shù)提供了更好的身份認證技術(shù)。SSL 的握手協(xié)議非常有效的讓客戶和服務(wù)器之間完成相互之間的身份認證,其主要過程如下:

1. 客戶端的瀏覽器向服務(wù)器傳送客戶端SSL 協(xié)議的版本號,加密算法的種類,產(chǎn)生的隨機數(shù),以及其他服務(wù)器和客戶端之間通訊所需要的各種信息。

2. 服務(wù)器向客戶端傳送SSL 協(xié)議的版本號,加密算法的種類,隨機數(shù)以及其他相關(guān)信息,同時服務(wù)器還將向客戶端傳送自己的證書。

3. 客戶利用服務(wù)器傳過來的信息驗證服務(wù)器的合法性,服務(wù)器的合法性包括:證書是否過期,發(fā)行服務(wù)器證書的CA 是否可靠,發(fā)行者證書的公鑰能否正確解開服務(wù)器證書的“發(fā)行者的數(shù)字簽名”,服務(wù)器證書上的域名是否和服務(wù)器的實際域名相匹配。如果合法性驗證沒有通過,通訊將斷開;如果合法性驗證通過,將繼續(xù)進行第四步。

4. 用戶端隨機產(chǎn)生一個用于后面通訊的“對稱密碼”,然后用服務(wù)器的公鑰(服務(wù)器的公鑰從步驟②中的服務(wù)器的證書中獲得)對其加密,然后將加密后的“預(yù)主密碼”傳給服務(wù)器。 (服務(wù)端驗證成功)

5. 如果服務(wù)器要求客戶的身份認證(在握手過程中為可選),用戶可以建立一個隨機數(shù)然后對其進行數(shù)據(jù)簽名,將這個含有簽名的隨機數(shù)和客戶自己的證書以及加密過的“預(yù)主密碼”一起傳給服務(wù)器。

6. 如果服務(wù)器要求客戶的身份認證,服務(wù)器必須檢驗客戶證書和簽名隨機數(shù)的合法性,具體的合法性驗證過程包括:客戶的證書使用日期是否有效,為客戶提供證書的CA 是否可靠,發(fā)行CA 的公鑰能否正確解開客戶證書的發(fā)行CA 的數(shù)字簽名,檢查客戶的證書是否在證書廢止列表(CRL)中。檢驗如果沒有通過,通訊立刻中斷;如果驗證通過,服務(wù)器將用自己的私鑰解開加密的“預(yù)主密碼”,然后執(zhí)行一系列步驟來產(chǎn)生主通訊密碼(客戶端也將通過同樣的方法產(chǎn)生相同的主通訊密碼)。

7. 服務(wù)器和客戶端用相同的主密碼即“通話密碼”,一個對稱密鑰用于SSL 協(xié)議的安全數(shù)據(jù)通訊的加解密通訊。同時在SSL 通訊過程中還要完成數(shù)據(jù)通訊的完整性,防止數(shù)據(jù)通訊中的任何變化。

8. 客戶端向服務(wù)器端發(fā)出信息,指明后面的數(shù)據(jù)通訊將使用的步驟7中的主密碼為對稱密鑰,同時通知服務(wù)器客戶端的握手過程結(jié)束。

9. 服務(wù)器向客戶端發(fā)出信息,指明后面的數(shù)據(jù)通訊將使用的步驟7中的主密碼為對稱密鑰,同時通知客戶端服務(wù)器端的握手過程結(jié)束。

10. SSL 的握手部分結(jié)束,SSL 安全通道的數(shù)據(jù)通訊開始,客戶和服務(wù)器開始使用相同的對稱密鑰進行數(shù)據(jù)通訊,同時進行通訊完整性的檢驗。

SSL缺點

  1. SSL協(xié)議需要在握手之前建立TCP連接,因此不能對UDP應(yīng)用進行保護。

  2. 為了不致于由于安全協(xié)議的使用而導(dǎo)致網(wǎng)絡(luò)性能大幅下降SSL協(xié)議并不是默認地要求進行客戶鑒別

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 一、SSL協(xié)議的設(shè)計思想 上一篇文章通過三個例子說明了HTTP協(xié)議存在的三個安全性問題: 通信內(nèi)容可以被竊聽 通信...
    tsyeyuanfeng閱讀 9,702評論 5 45
  • 一、作用 不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文傳播,帶來了三大風險。 (1)竊聽風險...
    XLsn0w閱讀 10,621評論 2 44
  • HTTPS簡介 超文本傳輸安全協(xié)議(英語:Hypertext Transfer Protocol Secure,縮...
    我的SEO成長之路閱讀 1,316評論 0 3
  • HTTPS概念 1)簡介 2)HTTPS和HTTP的區(qū)別 https協(xié)議需要到ca申請證書,一般免費證書很少,需要...
    Mr_不靠譜_先森閱讀 921評論 1 10
  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,566評論 0 13