linux加密和解密技術基礎、KPI及創建私有CA
一、加密方式分爲:
1.對稱加密:加密和解密使用同一個密鑰;
對稱加密:採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱爲對稱加密,在對稱加密算法中常用的算法有:DES、 3DES、TDEA、AES、 Blowfish、Twofish
IDE、ARC6、CAST5等。
特性:
1、加密、解密使用同一個密鑰;
2、強原始數據分割成固定大小的塊,逐個進行加密;
缺陷:
1、密鑰過多;
2、密鑰分發困難;
2.公鑰加密:密鑰分爲公鑰與私鑰
公鑰加密:也叫非對稱加密,屬於通信科技下的網絡安全二級科學,指的是由對應唯一性密鑰組成的加密方法。它解決了密鑰的發佈和管理問題,是目前商業密碼的核心,在公鑰加密體制中,沒有公開的是明文,公開的是密文,公鑰,算法。
公鑰:從私鑰中提取產生;可公開給所有人;pubkey
私鑰:通過工具創建,使用者自己留存,必須保證其私密性;secret key;
特點:用公鑰加密的數據,只能使用與之配對兒的私鑰解密;反之亦然;
用途:
數字簽名:主要在於讓接收方確認發送方的身份;
密鑰交換:發送方用對方公鑰加密一個對稱密鑰,併發送給對方;
數據加密
算法:RSA, DSA, ELGamal
DSS: Digital Signature Standard
DSA:Digital Signature Algorithm
3.單向加密:即提出數據指紋;只能加密,不能解密;
單向加密:是非可逆加密,就是不可解密的加密方法,提取數據的指紋。常見的加密算法有MD5、SHA、HMAC這三種加密算法。
特性:定長輸出、雪崩效應;
功能:完整性;
算法:
md5:Message Digest 5, 128bits
sha1:Secure Hash Algorithm 1, 160bits
sha224, sha256, sha384, sha512
密鑰交換: IKE(Internet Key Exchange)
公鑰加密
DH(Deffie-Hellman)
A:p, g
B:p, g
A: x
--> p^x%g ==> B
A: (p^y%g)^x=p^yx%g
B: y
--> p^y%g ==> A
B: (p^x%g)^y=p^xy%g
二、PKI
PKI是public key infrastructure的首字母縮寫,翻譯過來就是公鑰基礎設施;PKI是一種遵循標準的利用公鑰加密技術爲電子商務的開展提供一套安全基礎平臺的技術和規範。
公鑰基礎設施:
簽證機構:CA是PKI的核心,CA負責管理PKI結構下的所有用戶的證書,把用戶的公鑰和用戶的其他信息捆綁在一起,在網上驗證用戶的身份,CA還要負責用戶證書的黑名單等級和黑名單發佈。
註冊機構:RA
證書吊銷列表:CRL
證書存取庫:
X.509v3:定義了證書的結構以及認證協議標準
版本號
序列號
簽名算法ID
發行者名稱
有效期限
主體名稱
主體公鑰
發行者的惟一標識
主體的惟一標識
擴展
發行者的簽名
SSL:Secure sockets Layer
Netscape: 1994
V1.0, V2.0, V3.0
TLS: Transport Layer Security
IETF: 1999
V1.0, V1.1, V1.2, V1.3
分層設計:
1、最底層:基礎算法原語的實現,aes, rsa, md5
2、向上一層:各種算法的實現;
3、再向上一層:組合算法實現的半成品;
4、用各種組件拼裝而成的各種成品密碼學協議軟件;
三、CA:
公共信任的CA,私有CA;
建立私有CA:
openssl
OpenCA
openssl命令:
配置文件:/etc/pki/tls/openssl.cnf
構建私有CA:
在確定配置爲CA的服務上生成一個自簽證書,併爲CA提供所需要的目錄及文件即可;
步驟:
(1) 生成私鑰;
~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
(2) 生成自簽證書;
~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
-new:生成新證書籤署請求;
-x509:生成自籤格式證書,專用於創建私有CA時;
-key:生成請求時用到的私有文件路徑;
-out:生成的請求文件路徑;如果自籤操作將直接生成簽署過的證書;
-days:證書的有效時長,單位是day;
(3) 爲CA提供所需的目錄及文件;
~]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
~]# touch /etc/pki/CA/{serial,index.txt}
~]# echo 01 > /etc/pki/CA/serial
要用到證書進行安全通信的服務器,需要向CA請求籤署證書:
步驟:(以httpd爲例)
(1) 用到證書的主機生成私鑰;
~]# mkdir /etc/httpd/ssl
~]# cd /etc/httpd/ssl
~]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
(2) 生成證書籤署請求
~]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
(3) 將請求通過可靠方式發送給CA主機;
(4) 在CA主機上籤署證書;
~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
查看證書中的信息:
~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
吊銷證書:
步驟:
(1) 客戶端獲取要吊銷的證書的serial(在使用證書的主機執行):
~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
(2) CA主機吊銷證書
先根據客戶提交的serial和subject信息,對比其與本機數據庫index.txt中存儲的是否一致;
吊銷:
# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
其中的SERIAL要換成證書真正的序列號;
(3) 生成吊銷證書的吊銷編號(第一次吊銷證書時執行)
# echo 01 > /etc/pki/CA/crlnumber
(4) 更新證書吊銷列表
# openssl ca -gencrl -out thisca.crl
查看crl文件:
# openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text
四、加密解密技術常用的功能及算法;
(1)對稱加密
工具:openssl enc、gpg
使用openssl enc 加密/etc/fstab文件:
解密/tmp/fstab文件:
(2)單向加密:
工具: sha1sum,md5sum,openssl dgst