1. 程式人生 > >1.3CA和證書以及openssl工具基礎

1.3CA和證書以及openssl工具基礎

ron 字符 版本 cer 好的 roc swd passwd命令 sha

CA和證書以及openssl工具基礎

CA和證書

CA(Certificate Authority)簽證機構

CA的作用是為網絡中通信雙方的公鑰提供可信任數字簽名

CA是被公認的的網絡信任結構,CA證書的內容包括:

頒發者 
使用者 
版本 
簽名算法 
簽名哈希算法 
使用者 
公鑰 
指紋 
指紋算法 

證書獲取
證書類型:
證書授權機構的證書
服務器
用戶證書
獲取證書兩種方法:
? 使用證書授權機構
生成簽名請求(csr)
將csr發送給CA
從CA處接收簽名
? 自簽名的證書
自已簽發自己的公鑰

安全協議

SSL: Secure Socket Layer,TLS: Transport Layer Security

功能:機密性,認證,完整性,重放保護

兩階段協議,分為握手階段和應用階段
握手階段(協商階段):客戶端和服務器端認證對方身份(依賴於PKI體系,利用數字證書進行身份認證),並協商通信中使用的安全參數、密碼套件以及主密鑰。後續通信使用的所有密鑰都是通過MasterSecret生成。
應用階段:在握手階段完成後進入,在應用階段通信雙方使用握手階段協商好的密鑰進行安全通信

OpenSSL
OpenSSL:開源項目
三個組件:
openssl: 多用途的命令行工具,包openssl
libcrypto: 加密算法庫,包openssl-libs
libssl:加密模塊應用庫,實現了ssl及tls,包nss
?openssl命令:

兩種運行模式:交互模式和批處理模式
openssl version:程序版本號
標準命令、消息摘要命令、加密命令
標準命令:
enc, ca, req, ...

openssl命令

對稱加密:
工具:openssl enc, gpg
算法:3des, aes, blowfish, twofish

enc命令:
幫助:man enc

-e 默認為使用-e選項,所以缺省
-des3 使用3DES加密算法
-salt 使用鹽,保證同一個文件的加密生成的密文每次不同
-in 需要openssl處理的文件

-out 處理完輸出的文件

加密:
openssl enc -e -des3 -a -salt -in testfile-out testfile.cipher

解密:
openssl enc -d -des3 -a -salt –in testfile.cipher-out testfile

單向加密**

使用 dgst 子命令完成單向加密

dgst命令:
幫助:man dgst
openssl dgst -md5 [-hex默認] /PATH/SOMEFILE
openssl dgst -md5 testfile
md5sum /PATH/TO/SOMEFILE

技術分享圖片

生成用戶密碼:
passwd命令:
幫助:man sslpasswd
openssl passwd -1 -salt SALT(最多8位)
openssl passwd -1 –salt centos

技術分享圖片
生成隨機數:
幫助:man sslrand
openssl rand -base64|-hex NUM (NUM: 表示字節數;-hex時,每個字符為十六進制,相當於4位二進制,出
現的字符數為NUM*2)
技術分享圖片

1.3CA和證書以及openssl工具基礎