openssl的加密/解密等基本應用以及利用openssl實現私有CA

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

wKiom1Me9vbyjLBIAABuRuvtbU0703.jpg

wKiom1Me9wnSG8d-AAC930354Nc275.jpg



加密之後的文件/tmp/network.cipher

wKiom1Me9zvB_OEmAACoMq2S6o0282.jpg


例:對/tmp/network.cipher進行解密,保存至/tmp/network.clear


wKioL1Me9z3TRib5AACHBCTg11s624.jpg

解密後的文件/tmp/network.clear

wKiom1Me94vztjo5AAC6vb15PcU980.jpg


單項加密:


特性:


定常輸出


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文件中


wKiom1Me-V-DRsFNAAE5jPzxQvk716.jpg


單向加密的延伸:


   實現用戶認證: openssl passwd


   例:對輸入的密碼123456加密

wKioL1Me-XzwFXz3AACSJ6nwmlU524.jpg


非對稱加密:


   特點:


1.每個用戶擁用一對密鑰加密:公鑰和私鑰。

2.公鑰加密,私鑰解密;私鑰加密,公鑰解密。

3.公鑰傳輸的過程不安全,易被竊取和替換。

4.由於公鑰使用的密鑰長度非常長,所以公鑰加密速度非常慢,一般不使用其去加密。


作用:

1.某一個用戶用其私鑰加密,其他用戶用其公鑰解密,實現數字簽名的作用。

2.公鑰加密的另一個作用是實現密鑰交換。


公鑰加密:

   常用算法:RSAEIGamal


數字簽名:

   常用算法:RSAEIGamalDSA


   例:

   1.首先生成密鑰對

wKiom1Me-obBoSsSAAC4_4xIH6o992.jpg

   2.查看公鑰

wKioL1Me-o-BlQgMAAIx2OIOY20925.jpg

   3./etc/sysconfig/network文件使用公鑰加密保存至/var/network.cipher

wKiom1Me-tjCSw-CAACMtDBQBVY202.jpg

   加密後的文件

wKioL1Me-tTzTgB_AAEL6O6l6F4148.jpg

   4.將加密的文件/var/network.cipher解密後保存至/var/network.clear

wKioL1MfAcKSvqIQAAC0HpnGIW4726.jpg

   解密後的文件

wKiom1MfAgrTLL_EAACU9DAdLc4133.jpg


CA認證原理:

wKioL1MfAh7DIKM6AAHU57j2HW8383.jpg


Openssl實現私有CA

   所需環境:


               CA服務器 :172.16.251.35/16

               申請證書的客戶機:172.16.254.200/16


1.自建CA


   1)生成密鑰對

wKiom1MfAojjWdg6AADma-0E_C8725.jpg

查看公鑰

wKiom1MfAqaB78XKAAHrMPEoUDg710.jpg

2生成自簽證書

wKioL1MfAp-BiSsLAALRIYkQ5RI544.jpg

3創建所需要的文件

wKioL1MfArmwMl8fAADSB9PXzC8194.jpg

4初始化序列號爲01

wKiom1MfAvmwi1rXAABsmFJ0ULU331.jpg

2.openssl實現證書申請

在主機上生成密鑰,保存至應用此證書的客戶機的服務的配置文件目錄下

1)在客戶機創建目錄/etc/httpd/ssl並切換至其目錄下

wKiom1MfAw-DymNQAAByY9o05qA755.jpg


2)在客戶機生成密鑰對

wKiom1MfA3zBapvNAAC-ttqkz3s847.jpg


3生成證書籤署請求

wKioL1MfA3eALwN7AAM9P5yO9eA020.jpg

4)將證書請求發給CA
wKioL1MfA56Tk8xKAAGxIVC_VFQ723.jpg

3.CA簽署證書

1)查看傳給CA的證書申請

wKiom1MfA-3Au2R4AABk1FuFCMg652.jpg

2)簽署證書:

wKiom1MfBBDB6wLGAAN225JTAjc990.jpg

3將證書傳回給請求者(客戶機)

wKioL1MfBBzSzAOwAAHUKVzcKkA188.jpg

證書籤署成功

wKiom1MfBFjQueixAADZasAsH3U099.jpg

4.當客戶請求吊銷證書時,CA可以吊銷證書

wKiom1MfBGrBD3sQAACUo624qxI652.jpg










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章