HTTP与HTTPS——密码学笔记(九)
原文:http://www.mahaixiang.cn/internet/1233.html
一、HTTP協議
HTTP協議:Hyper Text Transfer Protocol(超文本傳輸協議),是用于從萬維網(WWW:World Wide Web)服務器傳輸超文本到本地瀏覽的傳送協議,是一個客戶端和服務器端請求和應答的標準(TCP),是互聯網上應用最為廣泛的一種網絡協議,它可以使瀏覽器更加高效,使網絡傳輸減少。
HTTP協議被用于在Web瀏覽器和網站服務器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP協議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。
HTTP是一個基于TCP/IP通信協議來傳遞數據(HTML文件,圖片文件,查詢結果等)。
使用TCP端口為:80
二、HTTPS協議
由于使用HTTP協議傳輸隱私信息非常不安全,于是網景(Netscape)公司設計了SSL(Secure Sockets Layer)協議用于對HTTP協議傳輸的數據進行加密,由此誕生了HTTPS協議。
HTTPS協議:Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本傳輸協議。HTTP協議直接放置在TCP協議上,而HTTPS提出在HTTP和TCP中間加上一層加密層。從發送端看,這一層負責把HTTP的內容加密后送到下層的TCP,從接收方看,這一層將TCP送來的數據解密還原成HTTP的內容。SSL協議是主要用于WEB的安全傳輸協議,它在HTTPS協議棧中負責實現加密層。因此,一個HTTPS協議棧大致是:
使用TCP端口默認為:443
HTTPS加密、驗證過程:
簡單說來,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比HTTP協議安全。
HTTPS工作原理:
1、客戶端發起HTTPS請求:用戶在瀏覽器里輸入一個https網址,然后連接到server的443端口
2、服務器的配置:采用HTTPS協議的服務器必須要有一套數字證書,可以自己制作,也可以向組織申請,區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個不錯的選擇,有1年的免費服務)。這套證書其實就是一對公鑰和私鑰。
3、傳送證書:這個證書其實就是公鑰,只是包含了很多信息,如證書的頒發機構,過期時間等等。
4、客戶端解析證書:這部分工作是由客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等等,如果發現異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個隨機值,然后用證書對該隨機值進行加密。
5、傳送加密信息:這部分傳送的是用證書加密后的隨機值,目的就是讓服務器得到這個隨機值,以后客戶端和服務端的通信就可以通過這個隨機值來進行加密解密了。
6、服務端解密信息:服務端用私鑰解密后,得到了客戶端傳過來的隨機值(私鑰),然后把內容通過該值進行對稱加密,所謂對稱加密就是,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密算法夠彪悍,私鑰夠復雜,數據就夠安全。
7、傳輸加密后的信息:這部分信息是服務端用私鑰加密后的信息,可以在客戶端被還原
8、客戶端解密信息:客戶端用之前生成的私鑰解密服務端傳過來的信息,于是獲取了解密后的內容,整個過程第三方即使監聽到了數據也束手無策。
三、HTTP和HTTPS協議的區別
1、https協議需要CA申請證書,一般免費證書較少,因而需要一定費用
2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443
4、http的連接很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全
總結
以上是生活随笔為你收集整理的HTTP与HTTPS——密码学笔记(九)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSL认证:单向认证与双向认证——密码学
- 下一篇: 时间戳服务——信息安全(二)