什麼是 https?
https (基於安全套接字層的超文字傳輸協議 或者是 http over ssl) 是乙個 netscape 開發的 web 協議。
你也可以說:https = http + ssl
https 在 http 應用層的基礎上使用安全套接字層作為子層。
為什麼需要 https ?
超文字傳輸協議 (http) 是乙個用來通過網際網路傳輸和接收資訊的協議。http 使用請求/響應的過程,因此資訊可在伺服器間快速、輕鬆而且精確的進行傳輸。當你訪問 web 頁面的時候你就是在使用 http 協議,但 http 是不安全的,可以輕鬆對竊聽你跟 web 伺服器之間的資料傳輸。在很多情況下,客戶和伺服器之間傳輸的是敏感歇息,需要防止未經授權的訪問。為了滿足這個要求,網景公司(netscape)推出了https,也就是基於安全套接字層的 http 協議。
http 和 https 的相同點
大多數情況下,http 和 https 是相同的,因為都是採用同乙個基礎的協議,作為 http 或 https 客戶端——瀏覽器,設立乙個連線到 web 伺服器指定的埠。當伺服器接收到請求,它會返回乙個狀態碼以及訊息,這個回應可能是請求資訊、或者指示某個錯誤傳送的錯誤資訊。系統使用統一資源定位器 uri 模式,因此資源可以被唯一指定。而 https 和 http 唯一不同的只是乙個協議頭(https)的說明,其他都是一樣的。
http 和 https 的不同之處
http 的 url 以 http:// 開頭,而 https 的 url 以 https:// 開頭
http 是不安全的,而 https 是安全的
http 標準埠是 80 ,而 https 的標準埠是 443
在 osi 網路模型中,http 工作於應用層,而 https 工作在傳輸層
http 無需加密,而 https 對傳輸的資料進行加密
http 無需證書,而 https 需要認證證書
https 如何工作?
使用 https 連線時,伺服器要求有公鑰和簽名的證書。
當使用 https 連線,伺服器響應初始連線,並提供它所支援的加密方法。作為回應,客戶端選擇乙個連線方法,並且客戶端和伺服器端交換證書驗證彼此身份。完成之後,在確保使用相同金鑰的情況下傳輸加密資訊,然後關閉連線。為了提供 https 連線支援,伺服器必須有乙個公鑰證書,該證書包含經過證書機構認證的金鑰資訊,大部分證書都是通過第三方機構授權的,以保證證書是安全的。
換句話說,https 跟 http 一樣,只不過增加了 ssl。
http 包含如下動作:
瀏覽器開啟乙個 tcp 連線
瀏覽器傳送 http 請求到伺服器端
伺服器傳送 http 回應資訊到瀏覽器
tcp 連線關閉
ssl 包含如下動作:
驗證伺服器端
允許客戶端和伺服器端選擇加密演算法和密碼,確保雙方都支援
驗證客戶端(可選)
使用公鑰加密技術來生成共享加密資料
建立乙個加密的 ssl 連線
基於該 ssl 連線傳遞 http 請求
什麼時候該使用 https?
paypal: https:
如果某個**要求你填寫信用卡資訊,首先你要檢查該網頁是否使用 https 加密連線,如果沒有,那麼請不要輸入任何敏感資訊如信用卡號。
瀏覽器整合
多數瀏覽器在收到乙個無效證書的時候都會顯示警告資訊,而一些老的瀏覽器會彈出對話方塊讓使用者選擇是否繼續瀏覽。新的瀏覽器一般在整個視窗顯示橫幅的警告資訊,同時在位址列上顯示該**的安全資訊。如果**中包含加密和非加密的混合內容,多數瀏覽器會提示警告資訊。
在url前加https://字首表明是用ssl加密的。你的電腦與伺服器之間收發的資訊傳輸將更加安全。 web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。 http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。
https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議 要比http協議安全
https(secure hypertext transfer protocol)安全超文字傳輸協議
它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層(ssl)進行資訊交換,簡單來說它是http的安全版。
它是由netscape開發並內置於其瀏覽器中,用於對資料進行壓縮和解壓操作,並返回網路上傳送回的結果。https實際上應用了netscape的安全全套接字層(ssl)作為http應用層的子層。(https使用埠443,而不是象http那樣使用埠80來和tcp/ip進行通訊。)ssl使用40 位關鍵字作為rc4流加密演算法,這對於商業資訊的加密是合適的。https和ssl支援使用x.509數字認證,如果需要的話使用者可以確認傳送者是誰。
https和http的區別:
https協議需要到ca申請證書,一般免費證書很少,需要交費。
http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議
http和https使用的是完全不同的連線方式用的埠也不一樣,前者是80,後者是443。
http的連線很簡單,是無狀態的
https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議 要比http協議安全
https解決的問題:
1 . 信任主機的問題. 採用https 的server 必須從ca 申請乙個用於證明伺服器用途型別的證書. 改證書只有用於對應的server 的時候,客戶度才信任次主機. 所以目前所有的銀行系統**,關鍵部分應用都是https 的. 客戶通過信任該證書,從而信任了該主機. 其實這樣做效率很低,但是銀行更側重安全. 這一點對我們沒有任何意義,我們的server ,採用的證書不管自己issue 還是從公眾的地方issue, 客戶端都是自己人,所以我們也就肯定信任該server.
2 . 通訊過程中的資料的洩密和被竄改
一般意義上的https, 就是 server 有乙個證書.
a) 主要目的是保證server 就是他聲稱的server. 這個跟第一點一樣.
b) 服務端和客戶端之間的所有通訊,都是加密的.
i. 具體講,是客戶端產生乙個對稱的金鑰,通過server 的證書來交換金鑰. 一般意義上的握手過程.
ii. 加下來所有的資訊往來就都是加密的. 第三方即使截獲,也沒有任何意義.因為他沒有金鑰. 當然竄改也就沒有什麼意義了.
少許對客戶端有要求的情況下,會要求客戶端也必須有乙個證書.
a) 這裡客戶端證書,其實就類似表示個人資訊的時候,除了使用者名稱/密碼, 還有乙個ca 認證過的身份. 應為個人證書一般來說上別人無法模擬的,所有這樣能夠更深的確認自己的身份.
b) 目前少數個人銀行的專業版是這種做法,具體證書可能是拿u盤作為乙個備份的載體.
https 一定是繁瑣的.
a) 本來簡單的http協議,乙個get乙個response. 由於https 要還金鑰和確認加密演算法的需要.單握手就需要6/7 個往返.
i. 任何應用中,過多的round trip 肯定影響效能.
b) 接下來才是具體的http協議,每一次響應或者請求, 都要求客戶端和服務端對會話的內容做加密/解密.
i. 儘管對稱加密/解密效率比較高,可是仍然要消耗過多的cpu,為此有專門的ssl 晶元. 如果cpu 信能比較低的話,肯定會降低效能,從而不能serve 更多的請求.
ii. 加密後資料量的影響. 所以,才會出現那麼多的安全認證提示
更安全的Web通訊HTTPS
在網購過程中,如果使用純粹的http協議,那麼使用者的賬號密碼,信用卡,銀行卡資訊都將在資訊傳輸過程中直接裸奔。從例子中我們可以看到信用卡資訊直接被明文傳輸了。除了明文傳輸之外,還存在著以下兩個問題 無法驗證通訊方身份的真實性,即無法確認對方是否是真正的商家。無法確認資訊是否被篡改,即無法確認傳輸過...
https提供安全的web通訊 帶路
https提供安全的web通訊1.原理部分 1 了解加密演算法 加密演算法的分類 對稱加密和非對稱加密a.對稱加密 加密和解密使用同乙個金鑰,優點是速度快,缺點是金鑰的共享困難。典型的對稱加密演算法有des aes rc5 3des等。b.非對稱加密 生成乙個秘密對 公鑰和私鑰 加密過程中可以是私鑰...
Web通訊知識 FTP協議
協議,網路協議的簡稱,網路協議是通訊計算機雙方必須共同遵從的一組約定。如怎麼樣建立連線 怎麼樣互相識別等。只有遵守這個約定,計算機之間才能相互通訊交流。它的三要素是 語法 語義 時序。為了使資料在網路上從源到達目的,網路通訊的參與方必須遵循相同的規則,這套規則稱為協議 protocol 它最終體現為...