一、加解密
對稱加密:加密密鑰與解密密鑰相同,或者可以簡單相互推導的密碼體制叫對稱密碼體制
非對稱加密:加密密鑰與解密密鑰不相同,且無法通過簡單的相互推導的密碼體制叫非對稱密碼機制
1.1、對稱加密算法
對稱算法也是傳統密碼算法,大多數對稱算法中,加密密鑰與解密密鑰是相同的,所以也稱爲單密鑰算法。
它要求發送方和接收方在安全通信之前,商定一個密鑰。對稱算法的安全性依賴於密鑰,泄漏密鑰就意味着任何人都可以對他們發送或接收的消息解密,所以密鑰的保密性非常重要。
加密算法的優點是算法的效率高、速度快。對稱加密的缺點是密鑰的管理比較重要。
1.1.1、DES算法
DES算法是由IBM公司研製的一種加密算法,DES是一個分組加密算法,以64位爲分組對數據加密;它的密鑰長度是56位(因爲每個第8位都用作奇偶校驗)密鑰可以是任意的56位數,而且可以任意時候改變。其保密性依賴於密鑰。由於DES的密鑰長度僅有56位,所以可以採用三重DES的方案,把一個64位的明文用一個密鑰加密,再用另一個密鑰解密,然後再使用第一個密鑰加密
1.1.2、IDEA算法
IDEA算法是國際數據加密算法,IDEA分組長度爲64位,密鑰長度爲128位。其使用的運算非常簡單,只需要異或,模2^16加和模(2^16+1)乘,軟件實現方面IDEA算法的效率要高於DES算法。
1.2、非對稱加密算法
不對稱密碼體制又稱爲雙密鑰或公鑰密碼體制,與對稱密碼相比,非對稱密碼又兩個不同的密鑰,一個是私鑰需要被祕密保存;另一個是公鑰,需要對外公開。
公鑰密碼系統的工作方式爲:任何人都可以將自己加密的公鑰公開,其他人慾傳送信息該接收方,可以使用公鑰將信息加密發送,接收方收到加密的信息後,擁有與此公鑰相對應的私鑰將加密信息解析出來,這樣就不需要事先雙方通過安全通道交換密鑰。
1.2.1、RSA算法
RSA密碼體制是常有的非對稱密碼,是一個既能用於數據加密也能用於數字簽名的算法。
RSA的安全性依賴於大素數分解,公鑰和私鑰都是兩個大素數的函數。所以從一個密鑰和密文推斷出明文的難度相當於分解兩個大素數的乘積。
RSA的安全性依賴於大數分解,由於需要進行大數計算,所以效率與DES相比是很慢的,RSA只用於少量數據的加密
二、散列函數與數字簽名
2.1、散列函數
散列函數是一種公開的數學函數,散列函數運算的輸入信息叫做報文,運算後得到的結果叫做散列碼或叫做消息摘要。散列函數的特點如下:
1. 不同內容的報文具有不同的散列碼,給定M,要找到另一消息M,使得H(M) = H(M`) 很難;
2.散列函數是單向的,給出M容易計算出h,給定h,根據h=H(M) 反推M卻很難;
3.對於任何一個報文,無法預知它的散列碼
4.散列碼具有固定的長度,不管原始報文的長度如何,通過散列函數運算後的散列碼具有一樣的長度
2.1.1、MD5
MD5時一種非常著名的散列算法,MD5散列算法對輸入的任意長度消息產生128位(16字節)長度的散列碼。MD5算法有如下4步:
1)附加填充位,首先對輸入的報文進行填位補充,使填充後的數據長度模512餘448。如果數據長度正好是模512餘448,則需要增加512位填充位,也就是填充的個數位1~512,填充位第一個位爲1,其他爲0
2)補足長度,將數據長度表示爲二進制,如果長度超過64位,則截取低64位;如果不足64位則在高位補0。將這個64位的報文長度補在經過填充的報文後面,使得最後的數據爲512位的整數倍
3)初始化MD緩存器,MD5運算要用到一個128位的MD5緩存器,用來保存中間變量和最終結果,緩存器可看出4個32位的寄存器A、B、C、D
4)處理數據段,定義4個非線形函數F、G、H、I,對輸入報文運算以512位數據段爲單位進行處理,對每一個數據段都要進行4輪的邏輯處理,在4輪中分別使用4個不同的函數FGHI,每一輪以ABCD和當前的512位的塊爲輸入,處理後送入ABCD
2.1.2、SHA
SHA和M5D相似,但碼長爲160位。SHA也是用512位長的數據塊經過複雜運算得出,SHA比MD5更加安全,但計算起來比MD5要慢一些。
2.1.3、HMAC
HMAC是一種報文鑑別碼,通常會和MD5或SHA一起使用。
2.2、數字簽名
數字簽名可解決否認、僞造、篡改及冒充等問題。具體要求:發送者事後不能否認發送的報文簽名、接收者能夠覈實發送者發送的報文簽名、接收者不能僞造發送者的報文簽名、接收者不能對發送者的報文進行部分篡改、網絡中的某一用戶無法冒充另一個用戶作爲發送者或接收者。
數字簽名方案一般有三個過程:系統的初始化過程 =》 簽名產生過程 =》簽名驗證過程
在簽名產生過程中,用戶利用給定的算法對消息產生簽名;
在簽名驗證過程中,驗證者利用公開驗證方法對給定消息的簽名進行驗證。
1、用戶首先可以下載或購買數字簽名軟件,產生密鑰對後,軟件自動向外界傳送公開密鑰;
2、由於公開密鑰對存儲需要,所以需要建立一個鑑定中心(CA)完成個人信息及其密鑰對確定工作
3、用戶在獲取公鑰時,首先向鑑定中心請求數字確認,鑑定中心確認用戶身份後,發出數字確認,同時鑑定中國女性向數據庫發送確認信息。
4、然後用戶使用私鑰對所傳信息簽名,保證信息的完整性、真實性,也使發送方無法否則消息的發送
5、接收方接收到消息後,使用公開密鑰確認數字簽名
2.3、數字簽名
數字簽名和公鑰加密都是基於不對稱機密技術,存在的問題是如何保證公開密鑰的持有者是真實的;以及大規模信息系統環境下公開密鑰如何產生、分發和管理。
此時就需要用到數字證書和PKI
2.3.1、數字證書
數字證書提供了一個在公鑰和擁有相應私鑰的實體之間建立關係的機制,目前最常用的數字證書格式是由國際標準ITU-T X.509 V3版本定義的。
數字證書中採用公鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每個用戶自己保存私鑰,用它進行解密和簽名;同時設定一個公鑰由本人公開,爲一組用戶所共享,用於加密和驗證簽名。數字證書是用戶在系統中作爲確認身份的證據,在通信的各個環節中,參與通信的各方通過驗證對方的數字證書,從而確認對方身份的真實性和有效性,從而解決相互間的信任問題。
證書的內容包括:唯一標識證書所有者的名稱、唯一標識證書籤發者的名稱、證書所有者的公開密鑰、證書籤發者的數字簽名、證書的有效期及證書的序列號等。
2.3.2、公鑰基礎設施
PKI(公鑰基礎設施)的目標是向廣大的信息系統用戶和應用程序提供公開密鑰的管理服務。
PKI的結構模型中有三類實體:管理實體、端實體和證書庫。
管理實體是PKI的核心,是服務的提供者;
端實體是PKI的用戶,是服務的使用者;
證書庫是一個分佈式數據庫,用於證書和CRL的存放和檢索。
CA和RA是兩種管理實體,
CA是框架中唯一能夠發佈和撤銷證書的實體,維護證書的生命週期;
RA負責處理用戶請求,在驗證了請求的有效性後,代替用戶向CA提交。
RA可以單獨實現,也可以合併在CA中實現。作爲管理實體,CA和RA以證書方式向端實體提供公開密鑰的分發服務。
不同的實體間通過PKI操作完成證書的請求、確認、發佈、撤銷、更新和獲取等過程。
PKI操作分爲存取操作和管理操作兩類,其中存取操作包括管理實體或端實體把證書和CRL存放到證書庫、從證書庫中讀取證書和CRL;
管理操作則是管理實體與端實體之間或管理實體與管理實體之間的交互,是爲了完成證書的各項管理任務和建立證書鏈。
2.3.3、密鑰相關概念
KDC(Key Distribution Center):密鑰分配中心
Kerberos:密鑰分配協議的一種
AS(Authentication Server):鑑別服務器
TGS(Ticket-Granting Server):票據授予服務器
CA(Certification Authority):認證中心
三、安全通信協議
3.1、IPSec協議
IPSec協議是由因特網工程任務組(IETF)頒佈的IP層安全標準IP SECURITY協議,IPSec在IP層對數據包進行高強度的安全處理提供數據源驗證、無連接數據完整性、數據機密性、抗重播和有限通信流機密性等安全服務。
3.2、SSL協議
SSL協議(Secure Socket Layer)是Natscape推出的一種網絡安全協議,是在傳輸過程通信協議(TCP/IP)上實現的一種安全協議。在SSL中採用了公開密鑰和私有密鑰兩種加密方式,它對計算機之間的整個會話進行加密。
SSL安全服務位於TCP和應用層之間,可爲應用層,如HTTP、FPT、SMTP提供安全業務,服務對象主要是Web應用。
它的基本目標是在通信雙方之間建立安全的連接,可運行在任何可靠的通信協議之上、應用層協議之下。
3.3、PGP協議
PGP協議(Pretty Good Privacy)是針對電子郵件在Internet上通信的安全問題而設計的一種混合加密系統。
PGP包含4個密碼單元,即單鑰密碼(IDEA)、雙鑰密碼(RSA)、單向雜湊算法(MD-5)和一個隨機數生成算法。
該協議規定公鑰密碼和分組密碼是在同一個系統中。PGP的用戶擁有一張公鑰列表,列出了所需要通信的用戶及其公鑰。
3.4、HTTPS協議
超文本傳輸安全協議,HTTP協議與SSL協議的結合形成了HTTPS協議
3.5、SET協議
SET協議是安全電子交易協議,用於即時電子支付場景
3.6、SSH協議
SSH協議是安全外殼協議,爲建立在應用層基礎上的安全協議,SSH是可靠的專爲遠程登錄會話和其他網絡服務提供安全性的協議
3.7、MIME
MIME是通用互聯網郵件擴充,廣泛應用的一種電子郵件技術規範和安全協議。
常見網絡層協議
協議 | 層級 | 描述 |
IPSec | 網絡層 | IPSec是一個協議族,並不是一個單一的協議 |
SSL | 運輸層 | 作用於運輸層和應用層的HTTP之間 |
TLS | 運輸層 | 是在SSL基礎上進行了升級的版本 |
SET | 運輸層 | 用於安全電子交易的協議 |
HTTPS | 應用層 | 超文本傳輸協議,安全版本的HTTP |
PGP | 應用層 | 用於電子郵件的安全軟件包 |
SSH | 應用層 | 遠程會話的協議 |