網絡通信安全基礎與信息加密交換原理及示例
Linux Services and Security
OpenSSL :Open Secure Socket Layer , 安全套接字層
OpenSSH :Open Secure SHell ,安全shell
OpenSSL 通信機制
NIST :國家安全署定義的安全元素
- 保密性:
數據保密性
隱私性
- 完整性:
數據完整性
系統完整性
- 可用性
安全攻擊的方式:
被動攻擊:竊聽
主動攻擊:僞裝、重放、消息篡改、拒絕服務
安全機制:
加密、數字簽名、訪問控制、數據完整性、認證交換、流量填充、路由控制、公證
安全服務:
認證服務
訪問控制服務
數據保密性服務
- 連接保密性
- 無連接保密性
- 選擇域保密性
- 流量保密性
數據完整性服務
不可否認性服務
密碼算法和協議:
對稱加密
公鑰加密
單向加密
認證協議
Linux系統常用的加密算法和協議的實現
OpenSSL 和 gpg(pgp協議)
加密算法和協議
對稱加密:加密和解密使用同一個祕鑰
DES :Data Encryption Standard
DES3 :Data Encryption Standard - Triple
AES :Anvanced Encryption Standard
Blowfish
Twofish
IDEA
RC6
CAST5
- 其中 DES3 和 AES 算法較爲常用
特性:加密、解密使用同一祕鑰;將原始數據分隔成固定大小的塊,逐個進行加密
缺陷:密鑰過多;密鑰分發安全性差
公鑰加密:密鑰是成對出現
公鑰:公開給任何人, pubkey
私鑰:通過工具創建,自己留存,必須保證其私密性;private(secret) key
特點:用公鑰加密的數據,只能使用與之配對的私鑰解密,反之亦然,用私鑰加密的數據,僅對應的公鑰可以解密;但加密解密過程很慢
公鑰加密的用途
- 數字簽名:主要在於接收方確認發送方的身份
- 密鑰交換:發送方用對方的公鑰加密一個對稱祕鑰,併發送給對方,此數據僅持有私鑰的人可以解密,加密一方都無法解密
- 數據加密:常用於加密非常小規模的數據,因加解密效率過低
算法:RSA,DSA,ELGamal
CA :權威的第三方證書頒發機構,保證大家能夠獲得真實的對象的公鑰:
單向加密:只能加密,不能解密;提取數據特徵碼(指紋);
特性:定長輸出、雪崩效應;
算法:
md5: Message Digest 5 , 128bits
sha1:Secure Hash Algorithm 1 , 160bits
sha224
sha256
sha512
功能:
完整性:驗證數據完整性
網絡通信過程信息加密傳輸的完整示例
雙方保證安全的前提是保證對方的身份信息與獲得的對方公鑰是匹配對應的,可以通過公信證明機構 CA 實現
- user1與user2進行信息交換
user1將要發出的明文數據A進行如下操作
- 首先對要發送的明文數據A進行【單向加密】,提取特徵碼B
- 然後用自己的私鑰,採用【私鑰加密】對特徵碼B進行加密,並附加在數據A後面
- 採用【對稱加密】算法,對明文數據A和特徵碼B二者的整體進行加密,將對稱加密的密碼C附加在已經加密過的 “A+B整體” 的後面
- 使用對方(即user2)的公鑰D-pub,對密碼C進行【公鑰加密】,得出密文E,並將E附加在已經加密過的 “A+B整體” 後面,得出整個要發送的數據包F
- 將數據包F通過Internet四層協議發送至user2
user2接收到F數據包將進行如下操作
- 通過Internet四層協議拆包,得到數據包F
- 用自己的私鑰D-sec對密文E採用【私鑰解密】,得到了對稱加密的密碼C ,完成密鑰交換
- 用密碼C,採用【對稱解密】將加密過的 “A+B整體” 解密,得到數據A和加密的特徵碼B;保證了數據安全傳輸
- 用對方(即user1)的公鑰採用【公鑰解密】將特徵碼B解密,得出user1發來數據的特徵碼B;如果能解密,說明該文件的發出方是user1;保證了身份可靠性
- 採用【單向加密】將數據A進行加密,將自己單向加密得出的特徵碼G和特徵碼B進行比對,如果一致,則保證了傳輸信息的完整性。
至此,數據傳輸過程的通信方身份可靠性、保密性、安全性和完整性一一完成並得到保證。