您好,登錄后才能下訂單哦!
現代網絡通信中網絡安全是至關重要,安全的最基本的當然就是加密與解密了,今天跟大家分享一下加密與解密的基礎。
安全的目標:
保密性:confidentiality
完整性:integrity
可用性:availability
***類型:
威脅保密性的***:竊聽、通信量分析;
威脅完整性的***:更改、偽裝、重放、否認;
威脅可用性的***:拒絕服務(DoS);
解決方案:
技術方面:加密和解密;
傳統加密方法:替代加密方法、置換加密方法
現代加密方法:現代塊加密方法
服務方面:用于抵御***的服務,也即是為了上述安全目標而特地設計的安全服務;
認證機制
訪問控制機制
加密算法和協議:
1、單向加密:即提出數據指紋;
特性:定長輸出、有雪崩效應;
功能:完整性驗證;
缺陷:只能加密,不能解密;
常用算法:MD5(128bits)、sha1(160bits)、sha224、sha256、sha384、sha512...
2、對稱加密:加密和解密使用同一個密鑰;
特性:(1)加密和解密使用同一個密鑰;(2)將原始數據分割成為固定大小的塊,逐個進行加密;
功能:加密性好,加密速度快;
缺陷:(1)密鑰過多;(2)密鑰分發困難;
常用算法:3DES(Triple DES)、AES(128bits, 192bits, 256bits, 384bits)、Blowfish、RC6...
3、公鑰加密:密鑰分為公鑰與私鑰;
私鑰:secret key,通過工具創建,使用者自己留存,必須保證其私密性;
公鑰:pubkey,從私鑰中提取產生,可公開給所有人;
特性:用公鑰加密的數據,只能使用與之配對兒的私鑰解密;反之亦然;
功能:
數字簽名:主要在于讓接收方確認發送方的身份;
密鑰交換:發送方用對方公鑰加密一個對稱密鑰,并發送給對方;
數據加密:不常用,比對稱加密要慢3個數量級;
常用算法:RSA(即可簽名,也可加解密)、DSA(只能簽名,不可加解密)、ELGamal...
介紹了以上三種加密算法,下面來具體說一下加密和解密的過程:
加密過程:
1、數字簽名:
(1)發送者使用單向加密技術,提取原數據特征碼;
(2)發送者使用自己私鑰加密特征碼,并附加于原數據后方;
2、密鑰交換:
(1)發送者使用對稱加密技術對附有數字簽名的數據進行加密,并生成一個臨時對稱密鑰;
(2)發送者使用接收者的公鑰加密生成的臨時對稱密鑰,并附加于加了密的數據后方;
解密過程:
1、密鑰交換:
(1)接收者用自己私鑰解密加了密的對稱密鑰,得到臨時密鑰;
(2)接收者使用得到的臨時對稱密鑰,解密數據,得到附有數字簽名的數據;
2、身份認證:接收者使用發送者的公鑰解密數字簽名,驗證發送者身份,并得到原特征碼;
3、數據完整性驗證:接收者用單向加密技術,提取數據特征碼,并與原特征碼比較,驗證數據完整性
這種加密和解密的過程即能保證數據的安全性與完整性,也能保證通信雙方身份的認證。但由于公鑰是所有人可以拿到的,所有這樣的安全機制還是有安全隱患,即中間人欺騙。不過別擔心,有CA機構可以解決此問題,CA機構將在后面再做詳細介紹。下面我們繼續介紹最后一種加密協議:密鑰交換。
4、密鑰交換:IKE:Internet Key Exchange
實現方法有兩種:
(1)公鑰加密,在講公鑰加密與加密、解密過程已說到過,不再多說;
(2)DH:Deffie-Hellman
通信雙方無需在網絡上傳送公鑰,通過協商生成隨機數并在網絡上傳送隨機數,
通過計算隨機數生成密鑰。下面舉例說明:
(1)A和B為通信雙方,雙方先協商生成兩個隨機數m和n,并在網絡上傳送;
現在狀態:A和B同時擁有兩個隨機數m和n;
(2)A和B再各自生成一個私有的隨機數,不在網絡上傳送,只有自己知道自己私有隨機數;
比如:A生成x隨機數,B生成y隨機數,且只有自己知道自己的私有隨機數;
現在狀態:A擁有3個隨機數:m、n、x,其中x只有自己知道,m和n和B共享;
B擁有3個隨機數:m、n、y,其中y只有自己知道,m和n和B共享;
(3)計算隨機數,并將結果發送對方。
A: --> m^x%n ==> B
B: --> m^y%n ==> A
(4)收到對方的結果,再用自己私有的隨機數和結果計算,得到相同的密鑰;
A: (m^y%n)^x = m^xy%n
B: (m^x%n)^y = m^xy%n
m^xy%n即為雙方協商后計算出的密鑰,提高了安全性,即使別人獲取了m和n兩個數值,
也無法計算出x和y的數值。
接下來我們再介紹一下防止中間人欺騙CA機構,CA機構是一個第三方可信機構,為通信方頒發證書,可讓通信方可靠獲取對方公鑰的基礎保證機制。他是由PKI一套架構體系來完成的。
PKI:Public Key Infrastructure
公鑰基礎設施,以CA為核心生成的一套架構體系,提供證書服務,保證證書的合法性。組成部分如下:
簽證機構:CA
注冊機構:RA
證書吊銷列表:CRL
證書存取庫:CB
通過X.509v3定義了證書的結構以及認證協議標準,結構及標準如下:
版本號
序列號
簽名算法ID
發行者名稱
有效期限
主體名稱
主體公鑰
發行者的惟一標識
主體的惟一標識
擴展
發行者的簽名
那么CA是如何來保證通信雙方證書的合法性及通信雙方可靠獲取對方公鑰的呢?CA工作過各如下:
1、自簽證書:CA先給自己頒發一個證書,證書內容如X.509v3所規定,并將證書發送給有需要的通信方。取得通信方對CA的信任,通信方并可從證書中獲取CA的公鑰;
2、CA頒發證書:通信方向CA申請注冊證書,CA將簽署好證書并在證書后方加數字簽名,再將證書頒給申請方;
3、通信方獲取并驗證證書:
(1)通信方獲取自己證書或獲取對方證書后,可用CA公鑰解密證書后方數字簽名,確認證書確實是自己所信任的CA所頒發;
(2)用同樣的單向加密算法計算證書特征碼,對比原特征碼,驗證證書完整性;
(3)檢查證書有效期,看證書是否在有效期內;
(4)驗證證書內主體名稱,是否是通信對方的名稱;
(5)檢查證書是否被吊銷;
至此我們再來總結一下通信雙方通信過程:
1、通信方獲取CA證書,并申請取得自己證書;
2、通信雙方協商各加密算法;
3、通信雙方協商獲取對方公鑰并驗證證書;
4、發送方加密數據,并發送;
5、接收方接收數據,并解密驗證;
具體過程以上都介紹過,此處不再詳細說明了。
至此有關安全加密解密基礎的內容就結束了。只是個人總結,希望相互學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。