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ū)別
https協(xié)議需要到ca申請證書,一般免費證書很少,需要交費。
http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議。
http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
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解決的問題
信任主機的問題.
采用https的服務(wù)器必須從CA (Certificate Authority)申請一個用于證明服務(wù)器用途類型的證書。該證書只有用于對應(yīng)的服務(wù)器的時候,客戶端才信任此主機。通訊過程中的數(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é)議特點
SSL協(xié)議可用于保護正常運行于TCP之上的任何應(yīng)用協(xié)議,如HTTP、FTP、SMTP或Telnet的通信,最常見的是用SSL來保護HTTP的通信。
SSL協(xié)議的優(yōu)點在于它是與應(yīng)用層協(xié)議無關(guān)的。高層的應(yīng)用協(xié)議(如HTTP、FTP、Telnet等)能透明地建立于SSL協(xié)議之上。
SSL協(xié)議在應(yīng)用層協(xié)議之前就已經(jīng)完成加密算法、通信密鑰的協(xié)商以及服務(wù)器的認證工作。在此之后應(yīng)用層協(xié)議所傳送的數(shù)據(jù)都會被加密,從而保證通信的安全性。
SSL協(xié)議使用通信雙方的客戶證書以及CA根證書,允許客戶/服務(wù)器應(yīng)用以一種不能被偷聽的方式通信,在通信雙方間建立起了一條安全的、可信任的通信通道。
該協(xié)議使用密鑰對傳送數(shù)據(jù)加密,許多網(wǎng)站都是通過這種協(xié)議從客戶端接收信用卡編號等保密信息。常用于交易過程中。
SSL協(xié)議工作的基本流程
接通階段:客戶機通過網(wǎng)絡(luò)向服務(wù)器打招呼,服務(wù)器回應(yīng)
密碼交換階段:客戶機與服務(wù)器之間交換雙方認可的密碼,一般選用RSA密碼算法
會談密碼階段:客戶機器與服務(wù)器間產(chǎn)生彼此交談的會談密碼
檢驗階段:客戶機檢驗服務(wù)器取得的密碼
客戶認證階段:服務(wù)器驗證客戶機的可信度
結(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缺點
SSL協(xié)議需要在握手之前建立TCP連接,因此不能對UDP應(yīng)用進行保護。
為了不致于由于安全協(xié)議的使用而導(dǎo)致網(wǎng)絡(luò)性能大幅下降SSL協(xié)議并不是默認地要求進行客戶鑒別