Openssl
openSSL整個軟件包大概可以分成三個主要的功能部分:
Libcrupto:密碼算法庫
Libssl:TLS/SSL協議庫,用於實現TLS/ssl的功能
openssl應用程序: 多功能命令工具主要包括密鑰生成、證書管理、格式轉換、數據加密和簽名、SSL測試以及其它輔助配置功能。
Openssl的基本應用
對稱算法:
特點:
加密和解密使用同一個口令
加密/解密速度快
密鑰傳輸的過程不安全,且容易被破解,密鑰管理也比較麻煩。
作用:
用於大量數據的加密
openssl enc實現加密及解密
openssl enc -ciphername [-in filename] [-out filename] [-e] [-d] [-a/-base64] [-salt]
-ciphername:指定要使用加密/解密算法(常用算法:DES、、DES3、AES、Blowfish、Twofish、RC6、CAST5)
-in filename:指定要加密/解密的文件
-out filename:指定加密/解密後的結果要保存的文件
-e:加密,且默認情況下爲加密
-d:對加密的文件進行解密
-a/-base64:以base64格式輸出或保存到指定文件中
-salt:在密碼中加入一串字符串,不指定字符串默認爲隨機字符串
對/etc/sysconfig/network使用DES3加密並保存至/tmp/network.cipher中
加密之前的/etc/sysconfig/network
加密之後的文件/tmp/network.cipher
例:對/tmp/network.cipher進行解密,保存至/tmp/network.clear
解密後的文件/tmp/network.clear
單項加密:
特性:
定常輸出
One-Way (不可逆)
Collision-free(雪崩效應即數據發生微小的變化結果將會千差萬別)
作用:
確保數據的完整性。
openssl dgst 保證數據完整性
openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-out filename] /path/to/file
-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1:指定要使用的加密算法
-out filename:指定將加密的文件保存到指定的文件中
/path/to/file:指定要加密的文件
例:抽取/etc/sysconfig/network的數據特徵碼保存至/tmp/network.dgst文件中
單向加密的延伸:
實現用戶認證: openssl passwd
例:對輸入的密碼123456加密
非對稱加密:
特點:
1.每個用戶擁用一對密鑰加密:公鑰和私鑰。
2.公鑰加密,私鑰解密;私鑰加密,公鑰解密。
3.公鑰傳輸的過程不安全,易被竊取和替換。
4.由於公鑰使用的密鑰長度非常長,所以公鑰加密速度非常慢,一般不使用其去加密。
作用:
1.某一個用戶用其私鑰加密,其他用戶用其公鑰解密,實現數字簽名的作用。
2.公鑰加密的另一個作用是實現密鑰交換。
公鑰加密:
常用算法:RSA、EIGamal
數字簽名:
常用算法:RSA、EIGamal、DSA
例:
1.首先生成密鑰對
2.查看公鑰
3.對/etc/sysconfig/network文件使用公鑰加密保存至/var/network.cipher
加密後的文件
4.將加密的文件/var/network.cipher解密後保存至/var/network.clear
解密後的文件
CA認證原理:
Openssl實現私有CA
所需環境:
CA服務器 :172.16.251.35/16
申請證書的客戶機:172.16.254.200/16
1.自建CA
1)生成密鑰對
查看公鑰
2)生成自簽證書
3)創建所需要的文件
4)初始化序列號爲01
2.用openssl實現證書申請
在主機上生成密鑰,保存至應用此證書的客戶機的服務的配置文件目錄下
1)在客戶機創建目錄/etc/httpd/ssl並切換至其目錄下
2)在客戶機生成密鑰對
3)生成證書籤署請求
3.CA簽署證書
1)查看傳給CA的證書申請
2)簽署證書:
3)將證書傳回給請求者(客戶機)
證書籤署成功
4.當客戶請求吊銷證書時,CA可以吊銷證書