https和http的區別
1)https協議需要到ca申請證書,一般免費證書很少,需要交費
2)http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議
3)http使用80號埠,https使用443埠
4)http是一種無狀態連線;https則是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全
http為什麼不安全
http協議沒有任何的加密以及身份驗證的機制,非常容易遭遇竊聽、劫持、篡改,因此會造成個人隱私洩露,惡意的流量劫持等嚴重的安全問題
https如何保證安全
https是以安全為目標的http通道,是http的安全版。即http下加入ssl層(傳輸層和應用層之間),用於安全的http資料傳輸。
了解加密
對稱加密
對稱加密指加密和解密使用相同秘鑰的加密演算法。要求傳送發和接收方在安全通訊之前,商定乙個秘鑰。對稱演算法的安全性依賴於秘鑰,洩漏秘鑰意味著任何人都可以解密傳輸的訊息。
優點:演算法公開 計算量小 加密速度快 加密效率高
缺點:交易雙方都使用同樣秘鑰,安全性得不到保證;每對使用者每次使用對稱加密演算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量呈幾何級數增長,金鑰管理成為使用者的負擔;雖能提供加密傳輸,但不能驗證雙方身份
非對稱加密
這種加密生成公鑰和私鑰。公鑰加密的資料要用私鑰解密,私鑰加密的資料要用公鑰解密。這種演算法很多,常用的是rsa
優點:相比於對稱加密更加安全
缺點:cpu計算資源消耗非常大,一次完全tls握手,秘鑰交換使得非對稱解密計算量佔整個握手過程的90%以上。而對稱加密的計算量只是非對稱加密的0.1%,如果應用層資料也使用非對稱解密,效能開銷太大;對加密內容的長度有限制,不能超過公鑰長度。比如現在常用的公鑰長度是2048位,意味著待加密內容不能超過256個位元組
身份認證(ca數字證書)
https協議中身份認證的部分是由數字證書來完成的,證書由公鑰、證書主題、數字簽名等內容組成,在客戶端發起ssl請求後,服務端會將數字證書發給客戶端,客戶端對證書進行驗證,並獲取用於秘鑰交換的非對稱秘鑰
數字證書作用:
數字證書驗證:
申請者拿到ca的證書並部署在**伺服器端,瀏覽器發起握手接收到證書後,如何確認這個證書就是ca簽發的呢?怎樣避免第三方偽造這個證書?答案就是數字簽名(digital signature)。數字簽名是證書的防偽標籤,目前使用最廣泛的是sha-rsa(sha用於雜湊演算法,rsa用於非對稱加密演算法)數字簽名
加密的詳細過程
首先伺服器端用非對稱加密(rsa)產生公鑰和私鑰。然後把公鑰交給數字證書,並進行包裝發給客戶端,當公鑰到達客戶端之後,客戶端的tls首先驗證公鑰是否有效(頒發機構,公鑰有效期,ca數字簽名),若存在問題則彈出警告框,提示證書存在問題。若證書沒有問題,則客戶端會用對稱加密產生乙個秘鑰並用公鑰加密後傳送給伺服器,這個秘鑰就是以後用來通訊的秘鑰。這樣伺服器端收到公鑰加密的秘鑰就用自己的私鑰解開公鑰從而獲得秘鑰。這樣客戶端和伺服器都獲得了秘鑰,資訊交流相對是安全的
可將公鑰私鑰理解為鎖、鑰匙,只有伺服器有這把鎖的鑰匙;將鎖傳送給客戶端,客戶端收到後生成秘鑰,用鎖鎖住,再傳送給伺服器,伺服器用鑰匙開啟鎖獲得秘鑰。從而雙方可以進行安全的通訊使用非對稱加密僅僅獲得乙個用對稱加密生成的秘鑰?
這是因為非對稱加密的密碼對(公鑰私鑰)生成和加密的消耗時間比較長,為了節省雙方的計算時間,通常只用它來交換金鑰,而非直接用來傳輸資料(具體可看上文非對稱加密的缺點)
…未完待續
API介面認證 加密筆記
api合作商key 生成秘鑰key 秘鑰是用來完成加密,解密的 api合作商key 生成秘鑰 deskey 對稱加密 加解密是同乙個金鑰,速度快,資料接收方需要公布其私鑰給資料傳輸方,安全性完全依賴於該金鑰。如aes,3des,des等,適合做大量資料或資料檔案的加解密。非對稱加密 加密用公鑰,解密...
Https單向認證和雙向認證
原文url 公鑰加密 加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的金鑰 服務端給客戶端返回ssl協議版本號 加密演算法種類 隨機數等資訊,同時也返回伺服器端的證書,即公鑰證書 客戶端使用服務端返回的資訊驗證伺服器的合法性,包括 驗證通過後,將繼續進行通訊,否則,終止通訊 客戶端向服務...
Https單向認證和雙向認證
公鑰加密 加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的金鑰 服務端給客戶端返回ssl協議版本號 加密演算法種類 隨機數等資訊,同時也返回伺服器端的證書,即公鑰證書 客戶端使用服務端返回的資訊驗證伺服器的合法性,包括 驗證通過後,將繼續進行通訊,否則,終止通訊 客戶端向服務端傳送自己所...