A. SSL證書與CA數字證書有什麼區別
SSL證書和CA證書是從屬關系,因為SSL是眾多CA證書中的一種。CA是數字證書管理機構,SSL證書一種數字證書,SSL證書由CA機構簽發的。不過CA機構簽發的證書有很多種,都叫CA證書,所以SSL證書只是其中一種。
B. 什麼是SSL證書有什麼作用
要解釋什麼是SSL證書,首先要說明一下什麼是SSL和HTTPS。
SSL英文全稱是「Secure Sockets Layer」,中文含義為「安全套接層」,是為網路通信提供安全及數據完整性的一種安全協議,可以在傳輸層對網路連接進行加密,保障數據的安全性和隱私性。HTTPS即為HTTP+SSL,簡單可理解為HTTP的安全升級版,啟用了HTTPS的網站,可以有效保護訪問者的數據,避免第三方或阻斷流量。
SSL證書即為遵守SSL協議的一種數字證書,SSL證書由全球信任的證書頒發機構驗證伺服器身份後進行頒發,以實現網站身份驗證和數據加密傳輸的雙重作用。
1.對網站信息進行加密,提高安全防護能力
在未安裝SSL證書的情況下,用戶訪問伺服器的過程是明文傳輸,不進行加密處理,傳遞的任何信息都可能被第三方獲取,包括信用卡號、用戶名和密碼以及其他敏感信息,會對個人的財產安全以及網站形象造成很大損害。加裝SSL證書後,可實現對網站數據的加密傳輸,有效防止用戶信息被黑客監聽、竊取和篡改。
2.SSL證書可提供身份驗證,防止釣魚網站
除信息加密外,SSL證書還具有身份驗證功能。SSL證書是由可信任的CA機構頒發,申請證書時會嚴格核實申請人信息,核實通過才會頒發證書,有效防止第三方通過偽裝目標網站欺騙用戶的行為,保障用戶將信息發送到正確的伺服器,不用擔心信息的泄露。
3.SSL證書可增加網站的可信任度
安裝SSL證書的網站在Web瀏覽器的地址欄可顯示綠色小鎖圖標和綠色地址欄,EV 級別的SSL證書還能顯示企業/組織名稱。用戶看到這些信息和標志,可以確認所訪問的網站是目標網站而不是仿冒的釣魚網站,有效提升客戶的信任度。
4.提升網站的搜索排名
目前Google、網路、360等主流搜索引擎表示會優先收錄以HTTPS開頭的網站,並賦予網站更高的權重,有效提高網站關鍵詞的排名,增加網站流量和權重,提升品牌的形象和曝光。
5.防止流量劫持
普通的http網站非常容易遭受網路攻擊,尤其流量劫持,會強制用戶訪問其他網站,從而造成網站流量損失,而安裝了可信任的SSL證書,你的網站就能有效地避免流量劫持此類的問題。
C. 身份驗證中 用英語怎麼說
這樣說:
Identification (ID) authenticating
D. SSL是什麼東西
SSL證書是數字證書的一種,類似於駕駛證、護照和營業執照的電子副本。因為配置在伺服器上,也被稱為SSL伺服器證書。簡單來說,安裝SSL證書後,將http協議訪問網站改為使用http加密協議訪問網站,在數據發送者與接收者之間建立安全、可靠的加密通道。數據傳輸過程中,網站會向瀏覽器發送SSL證書,證書包含網站域名,證書有效期,證書的頒發機構以及用於加密傳輸密碼的公鑰等信息,由於公鑰加密的密碼只能被在申請證書時生成的私鑰解密,因此瀏覽器在生成密碼之前,需要先核對當前訪問域名與證書上綁定的域名是否一致,同時還要對證書的頒發機構進行驗證,如果驗證失敗,瀏覽器會給出證書錯誤的提示
E. 英文CA什麼意思,和一個外國朋友聊天,他說"that are CA,called secret.」
什麼是CA
CA中心又稱CA機構,即證書授權中心(Certificate Authority ),或稱證書授權機構,作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。CA中心為每個使用公開密鑰的用戶發放一個數字證書,數字證書的作用是證明證書中列出的用戶合法擁有證書中列出的公開密鑰。CA機構的數字簽名使得攻擊者不能偽造和篡改證書。在SET交易中,CA不僅對持卡人、商戶發放證書,還要對獲款的銀行、網關發放證書。它負責產生、分配並管理所有參與網上交易的個體所需的數字證書,因此是安全電子交易的核心環節。
電子商務的安全是通過使用加密手段來達到的,非對稱密鑰加密技術(公開密鑰加密技術)是電子商務系統中主要的加密技術,主要用於對稱加密密鑰的分發(數字信封)、數字簽名的實現(進行身份認證和信息的完整性檢驗)和交易防抵賴等。CA體系為用戶的公鑰簽發證書,以實現公鑰的分發並證明其合法性。該證書證明了該用戶擁有證書中列出的公開密鑰。證書是一個經證書授權中心數字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。證書的格式遵循X.509標准。
F. SSL協議是什麼意思求解答。。。
SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網路通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網路連接進行加密。
SSL (Secure Socket Layer)
為Netscape所研發,用以保障在Internet上數據傳輸之安全,利用數據加密(Encryption)技術,可確保數據在網路上之傳輸過程中不會被截取及竊聽。目前一般通用之規格為40 bit之安全標准,美國則已推出128 bit之更高安全標准,但限制出境。只要3.0版本以上之I.E.或Netscape瀏覽器即可支持SSL。
它已被廣泛地用於Web瀏覽器與伺服器之間的身份認證和加密數據傳輸。
SSL協議位於TCP/IP協議與各種應用層協議之間,為數據通訊提供安全支持。SSL協議可分為兩層: SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。 SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用於在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密密鑰等。
SSL協議提供的服務主要有:
1)認證用戶和伺服器,確保數據發送到正確的客戶機和伺服器;
2)加密數據以防止數據中途被竊取;
3)維護數據的完整性,確保數據在傳輸過程中不被改變。
SSL協議的工作流程:
伺服器認證階段:1)客戶端向伺服器發送一個開始信息「Hello」以便開始一個新的會話連接;2)伺服器根據客戶的信息確定是否需要生成新的主密鑰,如需要則伺服器在響應客戶的「Hello」信息時將包含生成主密鑰所需的信息;3)客戶根據收到的伺服器響應信息,產生一個主密鑰,並用伺服器的公開密鑰加密後傳給伺服器;4)伺服器恢復該主密鑰,並返回給客戶一個用主密鑰認證的信息,以此讓客戶認證伺服器。
用戶認證階段:在此之前,伺服器已經通過了客戶認證,這一階段主要完成對客戶的認證。經認證的伺服器發送一個提問給客戶,客戶則返回(數字)簽名後的提問和其公開密鑰,從而向伺服器提供認證。
從SSL 協議所提供的服務及其工作流程可以看出,SSL協議運行的基礎是商家對消費者信息保密的承諾,這就有利於商家而不利於消費者。在電子商務初級階段,由於運作電子商務的企業大多是信譽較高的大公司,因此這問題還沒有充分暴露出來。但隨著電子商務的發展,各中小型公司也參與進來,這樣在電子支付過程中的單一認證問題就越來越突出。雖然在SSL3.0中通過數字簽名和數字證書可實現瀏覽器和Web伺服器雙方的身份驗證,但是SSL協議仍存在一些問題,比如,只能提供交易中客戶與伺服器間的雙方認證,在涉及多方的電子交易中,SSL協議並不能協調各方間的安全傳輸和信任關系。在這種情況下,Visa和 MasterCard兩大信用卡公組織制定了SET協議,為網上信用卡支付提供了全球性的標准。
G. 請問「用戶名」「密碼」「驗證碼」的英文縮寫分別是什麼
「用戶名」的英文單詞沒有縮寫形式,而「密碼」、「驗證碼」的英文縮寫分別是PW、PIN。具體如下:
1、用戶名
「用戶名」的英文單詞是username,沒有縮寫形式。username通常指使用計算機程序或系統時用以識別身份時的用戶名。
例句:If you already have a username and password, use those credentials to log in. 如果您已經有了用戶名和密碼,就使用這些憑證登錄。
2、密碼
密碼的英文單詞是password,縮寫形式是PW,具有密碼、暗語、暗號、口令、通行詞等意思。
例句:It was impossible for anyone to get in because no one knew the password. 因為沒人知道密碼,所以任何人都不可能進得去。
3、驗證碼
驗證碼的英文是Completely Automated Public Turing test to tell Computers and Humans Apart,縮寫形式是CAPTCHA。
具有全自動區分計算機和人類的圖靈測試碼、驗證碼、認證碼等意思。例句:Can we take this understanding to create a new breed of CAPTCHA? 我們能以這個理解來去創造出一個新類別的驗證碼嗎?
(7)身份驗證和加密英文擴展閱讀
用戶名屬於登錄(登錄、登入、進入等)的帳戶名,也屬於所在網站的識別碼。通常可以使用漢字、字母、字碼等作為用戶名,如珠穆朗瑪峰、12345等。一般來說,凡是允許用戶注冊的網站,都會在其主頁顯著位置上設置「 注冊」的標簽,讓用戶申請用戶名。
只要符合其規定,並在其他用戶還沒有注冊此名時,即可注冊為用戶名,假如該名已經被他人注冊,都會給出提示。在這種情況下,只能再次申請,直到注冊成功。網路的用戶名,最常見的有博客、QQ、論壇等的用戶名。
H. HTTP,SSL/TLS和HTTPS協議的區別與聯系
概述:HTTP是普通明文傳輸協議,HTTPS是加密協議,相當於HTTP的安全版本,但需要HTTPS加密必須擁有SSL證書與TLS協議交流產生,SSL證書在線簽發:網頁鏈接
1、「HTTP」是什麼?
超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網路協議,所有的WWW文件都必須遵守這個標准,設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法(具體可查看馬海祥博客《深入解析互聯網協議的原理》的相關介紹)。
1960年美國人Ted Nelson構思了一種通過計算機處理文本信息的方法,並稱之為超文本(hypertext),這成為了HTTP超文本傳輸協議標准架構的發展根基。
簡單來說,HTTP就是一個網路協議,是專門用來幫你傳輸Web內容的,關於這個協議,就算你不了解,至少也聽說過吧?比如你訪問我的博客的主頁,瀏覽器地址欄會出現的網址:http://www.mahaixiang.cn,大部分網站都是通過HTTP協議來傳輸Web頁面、以及Web頁面上包含的各種東東(圖片、CSS 樣式、JS 腳本)。
2、「SSL/TLS」是什麼?
SSL是「Secure Sockets Layer」的縮寫,中文叫做「安全套接層」,它是在上世紀90年代中期,由網景公司設計的(順便插一句,網景公司不光發明了 SSL,還發明了很多 Web 的基礎設施——比如「CSS 樣式表」和「JS 腳本」)。
為啥要發明SSL這個協議捏?因為原先互聯網上使用的HTTP協議是明文的,存在很多缺點——比如傳輸內容會被偷窺(嗅探)和篡改,發明SSL協議,就是為了解決這些問題。
到了1999年,SSL因為應用廣泛,已經成為互聯網上的事實標准,IETF就在那年把SSL標准化,標准化之後的名稱改為TLS(是「Transport Layer Security」的縮寫),中文叫做「傳輸層安全協議」。
很多相關的文章都把這兩者並列稱呼(SSL/TLS),因為這兩者可以視作同一個東西的不同階段。
3、「HTTPS」是什麼意思?
解釋完 HTTP 和 SSL/TLS,現在就可以來解釋 HTTPS 啦,咱們通常所說的 HTTPS 協議,說白了就是「HTTP 協議」和「SSL/TLS 協議」的組合,你可以把 HTTPS 大致理解為——「HTTP over SSL」或「HTTP over TLS」(反正 SSL 和 TLS 差不多)。
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
它是一個URI scheme(抽象標識符體系),句法類同http:體系,用於安全的HTTP數據傳輸。
https:URL表明它使用了HTTP,但HTTPS存在不同於HTTP的默認埠及一個加密/身份驗證層(在HTTP與TCP之間),這個系統的最初研發由網景公司(Netscape)進行,並內置於其瀏覽器Netscape Navigator中,提供了身份驗證與加密通訊方法,現在它被廣泛用於萬維網上安全敏感的通訊,例如交易支付方面。
4、談談「對稱加密」和「非對稱加密」的概念
如果我們想搞明白「對稱加密」和「非對稱加密」的概念,首先,我們就要先知道什麼是「加密」和「解密」?
(1)、什麼是「加密」和「解密」?
通俗而言,你可以把「加密」和「解密」理解為某種互逆的數學運算,就好比「加法和減法」互為逆運算、「乘法和除法」互為逆運算。
「加密」的過程,就是把「明文」變成「密文」的過程;反之,「解密」的過程,就是把「密文」變為「明文」,在這兩個過程中,都需要一個關鍵的東東——叫做「密鑰」——來參與數學運算。
(2)、什麼是「對稱加密」?
所謂的「對稱加密技術」,意思就是說:「加密」和「解密」使用相同的密鑰。這個比較好理解,就好比你用 7zip 或 WinRAR 創建一個帶密碼(口令)的加密壓縮包,當你下次要把這個壓縮文件解開的時候,你需要輸入同樣的密碼,在這個例子中,密碼/口令就如同剛才說的「密鑰」。
對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key),這種方法在密碼學中叫做對稱加密演算法,對稱加密有很多種演算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。
(3)、什麼是「非對稱加密」?
所謂的「非對稱加密技術」,意思就是說:「加密」和「解密」使用不同的密鑰,這玩意兒比較難理解,也比較難想到,當年「非對稱加密」的發明,還被譽為「密碼學」歷史上的一次革命。
非對稱加密為數據的加密與解密提供了一個非常安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key),私鑰只能由一方安全保管,不能外泄,而公鑰則可以發給任何請求它的人,非對稱加密使用這對密鑰中的一個進行加密,而解密則需要另一個密鑰。
由於篇幅有限,對「非對稱加密」這個話題,我就不展開了,有空的話,我會再單獨寫一篇文章在馬海祥博客上發布。
(4)、各自有啥優缺點?
看完剛才的定義,很顯然:(從功能角度而言)「非對稱加密」能乾的事情比「對稱加密」要多,這是「非對稱加密」的優點,但是「非對稱加密」的實現,通常需要涉及到「復雜數學問題」,所以,「非對稱加密」的性能通常要差很多(相對於「對稱加密」而言)。
這兩者的優缺點,也影響到了 SSL 協議的設計。
5、HTTP協議的特點
作為背景知識介紹,還需要再稍微談一下 HTTP 協議本身的特點,HTTP本身有很多特點,考慮到篇幅有限,馬海祥只談那些和HTTPS相關的特點,想要了解更深入的HTTP知識,可查看馬海祥博客《HTTP服務的七層架構技術解析及運用》的相關介紹。
(1)、HTTP的版本和歷史
如今咱們用的 HTTP 協議,版本號是 1.1(也就是 HTTP 1.1),這個 1.1 版本是1995年底開始起草的(技術文檔是RFC2068),並在1999年正式發布(技術文檔是RFC2616)。
在 1.1 之前,還有曾經出現過兩個版本「0.9 和 1.0」,其中的 HTTP 0.9 沒有被廣泛使用,而 HTTP 1.0 被廣泛使用過。
(2)、HTTP 和 TCP 之間的關系
簡單地說,TCP 協議是 HTTP 協議的基石——HTTP 協議需要依靠 TCP 協議來傳輸數據。
在網路分層模型中,TCP 被稱為「傳輸層協議」,而 HTTP 被稱為「應用層協議」。
有很多常見的應用層協議是以 TCP 為基礎的,比如「FTP、SMTP、POP、IMAP」等。
TCP被稱為「面向連接」的傳輸層協議,關於它的具體細節,俺就不展開了(否則篇幅又失控了),你只需知道:傳輸層主要有兩個協議,分別是TCP和UDP,TCP比UDP更可靠,你可以把 TCP 協議想像成某個水管,發送端這頭進水,接收端那頭就出水,並且 TCP 協議能夠確保,先發送的數據先到達(與之相反,UDP不保證這點)。
(3)、HTTP協議如何使用 TCP 連接?
HTTP對 TCP 連接的使用,分為兩種方式:俗稱「短連接」和「長連接」(「長連接」又稱「持久連接」,叫做「Keep-Alive」或「Persistent Connection」)
假設有一個網頁,裡麵包含好多圖片,還包含好多外部的CSS文件和JS文件,在「短連接」的模式下,瀏覽器會先發起一個 TCP 連接,拿到該網頁的 HTML 源代碼(拿到 HTML 之後,這個 TCP 連接就關閉了)。然後,瀏覽器開始分析這個網頁的源碼,知道這個頁麵包含很多外部資源(圖片、CSS、JS)。然後針對每一個外部資源,再分別發起一個個 TCP 連接,把這些文件獲取到本地(同樣的,每抓取一個外部資源後,相應的 TCP 就斷開)。
相反,如果是「長連接」的方式,瀏覽器也會先發起一個 TCP 連接去抓取頁面,但是抓取頁面之後,該 TCP 連接並不會立即關閉,而是暫時先保持著(所謂的「Keep-Alive」),然後瀏覽器分析 HTML 源碼之後,發現有很多外部資源,就用剛才那個 TCP 連接去抓取此頁面的外部資源。
在 HTTP 1.0 版本,默認使用的是「短連接」(那時候是 Web 誕生初期,網頁相對簡單,「短連接」的問題不大)。
到了1995年底開始制定 HTTP 1.1 草案的時候,網頁已經開始變得復雜(網頁內的圖片、腳本越來越多了),這時候再用短連接的方式,效率太低下了(因為建立 TCP 連接是有「時間成本」和「CPU成本」),所以,在 HTTP 1.1 中,默認採用的是「Keep-Alive」的方式。
6、SSL/TLS協議的基本運行過程
SSL/TLS協議的基本思路是採用公鑰加密法,也就是說,客戶端先向伺服器端索要公鑰,然後用公鑰加密信息,伺服器收到密文後,用自己的私鑰解密,但是這里有兩個問題:
(1)、如何保證公鑰不被篡改?
解決方法:將公鑰放在數字證書中,只要證書是可信的,公鑰就是可信的。
(2)、公鑰加密計算量太大,如何減少耗用的時間?
解決方法:每一次對話(session),客戶端和伺服器端都生成一個"對話密鑰"(session key),用它來加密信息。由於"對話密鑰"是對稱加密,所以運算速度非常快,而伺服器公鑰只用於加密"對話密鑰"本身,這樣就減少了加密運算的消耗時間。
因此,SSL/TLS協議的基本過程是這樣的:
(1)、客戶端向伺服器端索要並驗證公鑰。
(2)、雙方協商生成「對話密鑰」。
(3)、雙方採用「對話密鑰」進行加密通信。
7、SSL、HTTP和HTTPS協議的聯系
SSL是Netscape公司所提出的安全保密協議,在瀏覽器(如Internet Explorer、Netscape Navigator)和Web伺服器(如Netscape的Netscape Enterprise Server、ColdFusion Server等等)之間構造安全通道來進行數據傳輸,SSL運行在TCP/IP層之上、應用層之下,為應用程序提供加密數據通道,它採用了RC4、MD5 以及RSA等加密演算法,使用40位的密鑰,適用於商業信息的加密。
同時,Netscape公司相應開發了HTTPS協議並內置於其瀏覽器中,HTTPS實際上就是SSL over HTTP,它使用默認埠443,而不是像HTTP那樣使用埠80來和TCP/IP進行通信。HTTPS協議使用SSL在發送方把原始數據進行加密,然後在接受方進行解密,加密和解密需要發送方和接受方通過交換共知的密鑰來實現,因此,所傳送的數據不容易被網路黑客截獲和解密。
然而,加密和解密過程需要耗費系統大量的開銷,嚴重降低機器的性能,相關測試數據表明使用HTTPS協議傳輸數據的工作效率只有使用HTTP協議傳輸的十分之一。
假如為了安全保密,將一個網站所有的Web應用都啟用SSL技術來加密,並使用HTTPS協議進行傳輸,那麼該網站的性能和效率將會大大降低,而且沒有這個必要,因為一般來說並不是所有數據都要求那麼高的安全保密級別,所以,我們只需對那些涉及機密數據的交互處理使用HTTPS協議,這樣就做到魚與熊掌兼得(具體可查看馬海祥博客《從SEO的角度來分析網站是否該採用HTTPS協議》的相關介紹)。
總之不需要用https的地方,就盡量不要用。
8、HTTPS協議的需求是什麼?
花了好多口水,終於把背景知識說完了,下面正式進入正題,先來說說當初設計HTTPS是為了滿足哪些需求?
很多介紹 HTTPS 的文章一上來就給你講實現細節,對此,馬海祥覺得這是不好的做法,一上來就給你講協議細節,你充其量只能知道如何做,無法理解為什麼,我在前一個章節講了「背景知識」,在這個章節講了「需求」,這就有助於你理解了。
為什麼要設計成這樣?——這就是 WHY 型的問題。
(1)、兼容性
因為是先有 HTTP 再有 HTTPS,所以,HTTPS 的設計者肯定要考慮到對原有 HTTP 的兼容性。
這里所說的兼容性包括很多方面,比如已有的 Web 應用要盡可能無縫地遷移到 HTTPS;比如對瀏覽器廠商而言,改動要盡可能小。
基於「兼容性」方面的考慮,很容易得出如下幾個結論:
①、HTTPS還是要基於 TCP 來傳輸
如果改為 UDP 作傳輸層,無論是 Web 服務端還是瀏覽器客戶端,都要大改,動靜太大了。
②、單獨使用一個新的協議,把 HTTP 協議包裹起來
所謂的「HTTP over SSL」,實際上是在原有的 HTTP 數據外面加了一層 SSL 的封裝,HTTP 協議原有的 GET、POST 之類的機制,基本上原封不動。
打個比方:如果原來的 HTTP 是塑料水管,容易被戳破;那麼如今新設計的 HTTPS 就像是在原有的塑料水管之外,再包一層金屬水管,一來,原有的塑料水管照樣運行;二來,用金屬加固了之後,不容易被戳破。
(2)、可擴展性
前面說了,HTTPS 相當於是「HTTP over SSL」。
如果 SSL 這個協議在「可擴展性」方面的設計足夠牛逼,那麼它除了能跟 HTTP 搭配,還能夠跟其它的應用層協議搭配,豈不美哉?
現在看來,當初設計 SSL 的人確實比較牛,如今的 SSL/TLS 可以跟很多常用的應用層協議(比如:FTP、SMTP、POP、Telnet)搭配,來強化這些應用層協議的安全性。
接著剛才打的比方:如果把 SSL/TLS 視作一根用來加固的金屬管,它不僅可以用來加固輸水的管道,還可以用來加固輸煤氣的管道。
(3)、保密性(防泄密)
HTTPS需要做到足夠好的保密性。
說到保密性,首先要能夠對抗嗅探(行話叫 Sniffer),所謂的「嗅探」,通俗而言就是監視你的網路傳輸流量,如果你使用明文的 HTTP 上網,那麼監視者通過嗅探,就知道你在訪問哪些網站的哪些頁面。
嗅探是最低級的攻擊手法,除了嗅探,HTTPS 還需要能對抗其它一些稍微高級的攻擊手法——比如「重放攻擊」(後面講協議原理的時候,會再聊)。
(4)、完整性(防篡改)
除了「保密性」,還有一個同樣重要的目標是「確保完整性」。
在發明 HTTPS 之前,由於 HTTP 是明文的,不但容易被嗅探,還容易被篡改。
舉個例子:比如咱們的網路運營商(ISP)都比較流氓,經常有網友抱怨說訪問某網站(本來是沒有廣告的),竟然會跳出很多中國電信的廣告,為啥會這樣呢?因為你的網路流量需要經過 ISP 的線路才能到達公網,如果你使用的是明文的 HTTP,ISP 很容易就可以在你訪問的頁面中植入廣告。
所以,當初設計 HTTPS 的時候,還有一個需求是「確保 HTTP 協議的內容不被篡改」。
(5)、真實性(防假冒)
在談到 HTTPS 的需求時,「真實性」經常被忽略,其實「真實性」的重要程度不亞於前面的「保密性」和「完整性」。
舉個例子:你因為使用網銀,需要訪問該網銀的 Web 站點,那麼,你如何確保你訪問的網站確實是你想訪問的網站?
有些天真的同學會說:通過看網址裡面的域名,來確保,為啥說這樣的同學是「天真的」?因為 DNS 系統本身是不可靠的(尤其是在設計 SSL 的那個年代,連 DNSSEC 都還沒發明),由於 DNS 的不可靠(存在「域名欺騙」和「域名劫持」),你看到的網址裡面的域名未必是真實滴!
所以,HTTPS 協議必須有某種機制來確保「真實性」的需求(至於如何確保,後面會細聊)。
9、HTTPS和HTTP的區別
超文本傳輸協議HTTP協議被用於在Web瀏覽器和網站伺服器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站伺服器之間的傳輸報文,就可以直接讀懂其中的信息,因此HTTP協議不適合傳輸一些敏感信息,比如信用卡號、密碼等。
為了解決HTTP協議的這一缺陷,需要使用另一種協議:安全套接字層超文本傳輸協議HTTPS。
為了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證伺服器的身份,並為瀏覽器和伺服器之間的通信加密。
一般來說,HTTPS和HTTP的區別主要為以下四點:
(1)、https協議需要到ca申請證書,一般免費證書很少,需要交費。
(2)、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
(3)、http和https使用的是完全不同的連接方式,用的埠也不一樣,前者是80,後者是443。
(4)、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全(具體可查看馬海祥博客《HTTP與HTTPS的區別》的相關介紹)。
10、HTTPS和HTTP的性能比較
再來說最後一個需求——性能。
本來簡單的http協議,一個get一個response,由於https要還密鑰和確認加密演算法的需要,單握手就需要6、7個往返,任何應用中,過多的round trip肯定影響性能,接下來才是具體的http協議,每一次響應或者請求,都要求客戶端和服務端對會話的內容做加密/解密。
盡管對稱加密/解密效率比較高,可是仍然要消耗過多的CPU,為此有專門的SSL晶元,如果CPU信能比較低的話,肯定會降低性能,從而不能serve更多的請求,加密後數據量的影響,所以,才會出現那麼多的安全認證提示(具體可查看馬海祥博客《HTTPS對網站性能優化的影響》的相關介紹)。
一般來說,引入HTTPS之後,不能導致性能變得太差,否則的話,誰還願意用?
為了確保性能,SSL 的設計者至少要考慮如下幾點:
(1)、如何選擇加密演算法(「對稱」or「非對稱」)?
(2)、如何兼顧 HTTP 採用的「短連接」TCP 方式?
SSL 是在1995年之前開始設計的,那時候的 HTTP 版本還是 1.0,默認使用的是「短連接」的 TCP 方式——默認不啟用 Keep-Alive。
HTTPS的關鍵性能影響是CPU和往返,如果CPU很強的話,性能可能就是有人講的80%;如果cpu是瓶頸的話,有人講原來可以server330-500個請求每秒,現在只有30-50%,因此在使用https請求數據的時候要注意看看你的項目裡面是否真的需要。