面試官:說說http https的區(qū)別,https如何保證安全的?
http https的區(qū)別?
一、傳輸信息安全性不同
1、http協(xié)議:是超文本傳輸協(xié)議,信息是明文傳輸。如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息。 2、https協(xié)議:是具有安全性的ssl加密傳輸協(xié)議,為瀏覽器和服務器之間的通信加密,確保數(shù)據傳輸?shù)陌踩?/section>
二、連接方式不同
1、http協(xié)議:http的連接很簡單,是無狀態(tài)的。 2、https協(xié)議:是由SSL+HTTP協(xié)議構建的可進行加密傳輸、身份認證的網絡協(xié)議。
三、端口不同
1、http協(xié)議:使用的端口是80。 2、https協(xié)議:使用的端口是443.
四、證書申請方式不同
1、http協(xié)議:免費申請。2、https協(xié)議:需要到ca申請證書,一般免費證書很少,需要交費。傳輸信息安全性不同、連接方式不同、端口不同、證書申請方式不同
一、傳輸信息安全性不同
1、http協(xié)議:是超文本傳輸協(xié)議,信息是明文傳輸。如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息。 2、https協(xié)議:是具有安全性的ssl加密傳輸協(xié)議,為瀏覽器和服務器之間的通信加密,確保數(shù)據傳輸?shù)陌踩?/section>
二、連接方式不同
1、http協(xié)議:http的連接很簡單,是無狀態(tài)的。 2、https協(xié)議:是由SSL+HTTP協(xié)議構建的可進行加密傳輸、身份認證的網絡協(xié)議。
三、端口不同
1、http協(xié)議:使用的端口是80。 2、https協(xié)議:使用的端口是443.
https做了什么保證它是安全的?
使用,SSL/TLS協(xié)議來保證https的安全。
SSL/TLS協(xié)議的基本思路是采用公鑰加密法,也就是說,客戶端先向服務器端索要公鑰,然后用公鑰加密信息,服務器收到密文后,用自己的私鑰解密。
(1)客戶端向服務器端發(fā)起SSL連接請求; (2) 服務器把公鑰發(fā)送給客戶端,并且服務器端保存著唯一的私鑰 (3)客戶端用公鑰對雙方通信的對稱秘鑰進行加密,并發(fā)送給服務器端 (4)服務器利用自己唯一的私鑰對客戶端發(fā)來的對稱秘鑰進行解密, (5)進行數(shù)據傳輸,服務器和客戶端雙方用公有的相同的對稱秘鑰對數(shù)據進行加密解密,可以保證在數(shù)據收發(fā)過程中的安全,即是第三方獲得數(shù)據包,也無法對其進行加密,解密和篡改。
如何保證公鑰不被篡改?
將公鑰放在數(shù)字證書中。只要證書是可信的,公鑰就是可信的。
公鑰加密計算量太大,如何減少耗用的時間?
每一次對話(session),客戶端和服務器端都生成一個”對話密鑰”(session key),用它來加密信息。
由于”對話密鑰”是對稱加密,所以運算速度非常快,而服務器公鑰只用于加密”對話密鑰”本身,這樣就減少了加密運算的消耗時間。
(1) 客戶端向服務器端索要并驗證公鑰。 (2) 雙方協(xié)商生成”對話密鑰”。 (3) 雙方采用”對話密鑰”進行加密通信。上面過程的前兩步,又稱為”握手階段”(handshake)。
參考資料
https://zhuanlan.zhihu.com/p/354021419 https://segmentfault.com/a/1190000039683023 http://blog.itblood.com/1116.html
推薦閱讀: 一款開源的Java完整停車場系統(tǒng)項目(附源碼) MySQL與Redis緩存的同步方案 基于Spring+SpringMVC+Mybatis分布式敏捷開發(fā)系統(tǒng) 不要再滿屏寫 try...catch 了!這個更香! 最近面試BAT,整理一份面試資料《Java面試BAT通關手冊》,覆蓋了Java核心技術、JVM、Java并發(fā)、SSM、微服務、數(shù)據庫、數(shù)據結構等等。 獲取方式:關注公眾號并回復 java 領取,更多內容陸續(xù)奉上。 明天見(??ω??)??
評論
圖片
表情
