日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【待补】TLS、SSL、HTTPS、MQTTS等

發布時間:2024/8/23 c/c++ 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【待补】TLS、SSL、HTTPS、MQTTS等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、兩種基本加密方式

1.1 對稱加密

????????對稱加密是指雙方持有相同的密鑰進行通信,加密速度快。常見的對稱加密算法有DES、3DES、AES等。存在問題:通信雙方如何獲得相同的密鑰?

1.2?非對稱加密

????????非對稱加密,又稱為公開密鑰加密,是為了解決對稱加密中的安全問題而誕生,一個稱為公開密鑰(public key),即公鑰,另一個稱為私鑰(private key),即私鑰。相對于對稱加密來說,其加密速度很慢。

  • 公鑰(public key)是對外開放的,私鑰(private key)是自己擁有的。
  • 公鑰(public key)加密的數據,只能用私鑰(private key)解密。
  • 私鑰(private key)加密的數據,只能用公鑰(public key)解密。

二、如何使用兩種基本加密方式保證數據安全

2.1 數據安全的類型

? ? ? ? 現在信息傳輸中,需要保證三類數據傳輸安全:

? ? ? ? a. 數據的保密性:即保證數據即使被竊聽,hacker也無法獲取信息內容;

????????b. 數據的完整性:即保證數據不會中途被hacker修改

? ? ? ? c. 身份認證:即保證接收的數據來源可信,不是hacker冒充發送的。

2.2 數據保密性?

? ? ? ? 解決方法:對稱加密+非對稱加密

? ? ? ? 為保證數據的保密性,可以使用對稱加密或非對稱加密。使用對稱加密,速度相對非對稱加密很快,但是存在一個安全問題,密鑰如何傳遞?

????????由此通用的方法是使用非對稱加密+對稱加密來完成,即用非對稱加密方式傳輸對稱加密的密鑰,利用對稱密鑰進行數據傳輸。具體過程為:客戶端使用公鑰對對稱加密的密鑰進行加密,然后傳遞給服務端,服務端使用私鑰進行解密確認密鑰。兩端開始對稱加密的傳輸數據。

2.3 數據完整性

? ? ? ? 解決方法:散列算法+非對稱加密

????????數據傳輸的途中,數據有可能被第三方劫持篡改。為了防止這種情況的通用方法是使用散列算法如SHA1,MD5等。使用散列算法將傳輸內容hash一次獲得hash值(即摘要)。客戶端使用服務端的公鑰摘要和信息內容進行加密,然后傳輸給服務端,服務端使用私鑰進行解密獲得原始內容和摘要值,這時服務端使用相同的hash算法對原始內容進行hash,然后與摘要值比對,如果一致,說明信息是完整的。

2.4 身份識別(數字簽名)

? ? ? ? 解決方案:證書(私鑰公用)

? ? ? ? 為了保證數據安全性,在接收到數據后,接收方需要驗證數據的發送方的身份。通用方法是把發送端的公鑰發送給接收端,發送端通過把自己的內容使用私鑰加密然后發送給接收端,接收端只能用發送端的公鑰解密,自然就驗證了發送端的身份。

?進階思考:

????????在保證數據保密性、完整性、來源確定的時候,都需要互相持有對方的公鑰。為保證數據保密性,數據發送方要有接收方的公鑰;為保證完整性,數據發送方要有接收方的公鑰;身份識別的時候,數據接收方要有發送方的公鑰。

????????這就引出一個問題,這個公鑰要如何傳輸到對方的手中?如果在傳輸公鑰的過程中,公鑰被劫持,第三方就能偽造一對公私鑰,在接收方這里偽裝發送方,在發送方這里偽裝接收方。為了避免這種情況,引出數字證書。

三、數字證書

3.1 數字證書的作用與內容

????????數字證書是由權威容的CA(Certificate Authority)機構頒發給服務端(數據發送方)。CA機構通過服務端(發送方)提供的相關信息生成證書,證書內容包含了持有人的相關信息服務器的公鑰簽署者簽名信息(數字簽名,即用私鑰加密,保證這個信息真的來自簽署者)等。

????????但是證書也是可以偽造的,如何保證證書為真呢?

????????一個證書中含有三個部分:"證書內容,散列算法,加密密文"。證書內容會被散列算法hash計算出hash值,然后使用CA機構提供的私鑰進行RSA加密。過程如下圖:

?

當客戶端(接收方)發起請求,要客戶端(發送端)的公鑰的時候,服務器將該數字證書發送給客戶端,客戶端通過CA機構提供的公鑰對加密密文進行解密獲得散列值(數字簽名),同時將證書內容使用相同的散列算法進行Hash得到另一個散列值,比對兩個散列值,如果兩者相等則說明證書沒問題。

3.2 數字證書分類

一些常見的數字證書類型:

  • X.509#DER 二進制格式證書,常用后綴.cer .crt
  • X.509#PEM 文本格式證書,常用后綴.pem
  • 有的證書內容是只包含公鑰(服務器的公鑰),如.crt、.cer、.pem
  • 有的證書既包含公鑰又包含私鑰(服務器的私鑰),如.pfx、.p12

四、 Mosqiutto+ TLS/SSL

總結

以上是生活随笔為你收集整理的【待补】TLS、SSL、HTTPS、MQTTS等的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。