OpenSSL:
NIST:
保密性:
數據保密性
隱私性
完整性:
數據完整性
系統完整性
可用性
安全攻擊:
被動攻擊:竊聽
主動攻擊:偽裝、重放、消息篡改、拒絕服
安全機制:
加密、數字簽名、訪問控制、數據完整性、認證交換、流量填充、路由控制、公證
安全服務:
認證
訪問控制
數據保密性
連接保密性
無連接保密性
選擇域保密性
流量保密性
數據完整性
不可否認性
密碼算法和協議:
對稱加密
公鑰加密
單向加密
認證協議
Linux系統:OpenSSL, gpg(pgp)
加密算法和協議:
對稱加密:加密和解密使用同一個密鑰;
DES:Data Encryption Standard
3DES:
AES:Advanced (128bits, 192bits, 258, 384, 512bits)
Blowfish
Twofish
IDEA
RC6
CAST5
特性:
1、加密、解密使用同一個密鑰;
2、將原始數據分割成固定大小的塊,逐個進行加密;
缺陷:
1、密鑰過多;
2、密鑰分發;
公鑰加密:密鑰是成對兒出現
公鑰:公開給所有人;pubkey
私鑰:自己留存,必須保證其私密性;secret key
特點:用公鑰加密的數據,只能使用與之配對兒的私鑰解密;反之亦然;
數字簽名:主要在于讓接收方確認發送方身份;
密鑰交換:發送方用對方的公鑰加密一個對稱密鑰,并發送給對方;
數據加密:
算法:RSA, DSA, ELGamal
單向加密:只能解密,不能解密;提取數據指紋;
特性:定長輸出、雪崩效應;
算法:
md5: 128bits
sha1: 160bits
sha224
sha256
sha384
sha512
功能:
完整性;
密鑰交換:IKE
公鑰加密:
DH (Deffie-Hellman)
A: p, g
B: p, g
A: x
–> p^x%g
p^y%g^x = p^xy%g
B: y
–> p^y%g
p^x%g^y = p^xy%g
PKI: Public Key Infrastructure
簽證機構:CA
注冊機構:RA
證書吊銷列表:CRL
證書存取庫
X.509:定義了證書的結構以及認證協議標準
版本號
序列號
簽名算法ID
發行者名稱
有效期限
主體名稱
主體公鑰
發行者惟一標識
主體的惟一標識
擴展
發行者簽名
SSL: Secure Socket Layer
TLS: Transport Layer Security
1995:SSL 2.0, Netscape
1996: SSL 3.0
1999: TLS 1.0
2006: TLS 1.1 RFC 4346
2008:TLS 1.2
2015: TLS 1.3
分層設計:
1、最低層:基礎算法原語的實現,aes, rsa, md5
2、向上一層:各種算法的實現
3、再向上一層:組合算法實現的半成品
4、用各種組件拼裝而成的種種成品密碼學協議/軟件:
tls, ssh,
OpenSSL:開源項目
三個組件:
openssl: 多用途的命令行工具;
libcrypto: 公共加密庫;
libssl: 庫,實現了ssl及tls;
openssl命令:
openssl version:程序版本號
標準命令、消息摘要命令、加密命令
標準命令:
enc, ca, req, …
對稱加密:
工具:openssl enc, gpg
算法:3des, aes, blowfish, twofish
enc命令:
加密:openssl enc -e -des3 -a -salt -in anaconda-ks.cfg -out anaconda-ks.ciphertex 解密: openssl enc -d -des3 -a -salt -in anaconda-ks.ciphertex -out anaa.cfg
-des3
openssl ?
單向加密:
工具:md5sum, sha1sum, sha224sum, sha256sum,…, openssl dgst
dgst命令:
openssl dgst -md5 /PATH/TO/SOMEFILE
MAC: Message Authentication Code,單向加密的一種延伸應用,用于實現在網絡通信中保證所傳輸的數據的完整性;
機制:
CBC-MAC
HMAC:使用md5或sha1算法
生成用戶密碼:
passwd命令
openssl passwd -1 -salt SALT
例一:生成密碼
[root@localhost ~]# openssl passwd -1 -salt 123456789
生成隨機數:
openssl rand -base64|-hex NUM
NUM: 表示字節數;-hex時,每個字符4位,出現的字符數為NUM*2;
公鑰加密:
加密:
算法:RSA, ELGamal
工具:gpg, openssl rsautl
數字簽名:
算法:RSA, DSA, ELGamal
密鑰交換:
算法:dh
DSA: Digital Signature Algorithm
DSS:Digital Signature Standard
RSA:
生成密鑰對兒:
openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS
例一:生成密鑰私鑰
[root@localhost ~]# openssl genrsa -out rsakey.private 2048 Generating RSA private key, 2048 bit long modulus .+++
# (umask 077; openssl genrsa -out key.pri 2048)
提取出公鑰:
# openssl rsa -in /PATH/FROM/PRIVATEKEY.FILE -pubout
例一:提取出公鑰
[root@localhost ~]# openssl rsa -in rsakey.private -pubout
隨機數生成器:
/dev/random:僅從熵池返回隨機數;隨機數用盡,阻塞;
/dev/urandom:從熵池返回隨機數;隨機數用盡,會利用軟件生成偽隨機數;非阻塞;
原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/77642