加密算法主要分爲對稱加密算法和對稱加密算法
一。對稱加密算法的原理:使用相同的密鑰進行加密運算的算法就是對稱加密算法
加密過程(內容-->對稱加密-->加密後的內容)
解密過程(加密內容-->對稱加密方式--》解密後的內容)
優點與特點:速度塊 加密相對安全 加密緊湊;缺點是不能用於大規模使用,會隨參與人數的正佳而映像密鑰的存儲和管理,不支持數字簽名和不可否認性
二. 非堆成加密的原理:非對稱算法需要每個參與者產生一對密鑰,且將公鑰共享到服務器,保證了私 鑰的安全
加密解密過程:產生密鑰對--> 通過公鑰/私鑰進行加密-->加密內容-->通過私鑰/公鑰進行解密-->解密後的內容
優點:不需要發送密鑰給接受者,密鑰數目與參與者相同,沒有複雜的密鑰分發問題,在交換公鑰錢不需要預先建立信任關係
缺點:加密速度慢,會導致密文遠大於加密前的長度
三.單向加密的過程:(發送方=A 接受方=B 傳輸內容=O)
1.A使用算法生成自己的數字簽名,用自己的私鑰對數字簽名加密並與C打包
2.A使用算法生成隨機對稱密鑰加密整個數據,生成數據C1
3.A再用B的公鑰加密隨機生成的對稱密鑰,生成最終的數據CC
4.B先使用自己的私鑰對數據CC機密,得到生成的隨機對稱密鑰
5。B再用A的公鑰解密有A的私鑰加密生成的數字就簽名
6.最後對比數字簽名,確定該包是否由A發送過來的
四. 證書的產生流程:
1.Client 能互聯網下載CA的公鑰,用於驗證Server身份
2.Server 通過加密算法生成一對密鑰,將公鑰發給CA認證機構,做數字證書
3.CA 通過自己的私鑰加密 Server 公鑰並加上自己的數字簽名後,將生成的數字證書發給Server
4.Client 與 Server 通TCP的三次握手建立連接
5.Client 發出HTTP的報文請求,並和Server協商使用哪種算法加密
6.Server 響應報文並將公鑰(CA證書)發送給客戶端
7.Client 能通過CA的公鑰解密CA證書,得到Server的公鑰和數字簽名,Client 通過散列函數算出
Server公鑰的數字簽名與得到的數字簽名對比,來驗證Server身份,驗證成功併發送數據請求
8.Server 處理請求,並根據Client請求的資源類型,來訪問相關資源做出響應報文,並記錄日誌
9.Client 與 Server 通過TCP的四次揮手斷開連接,通信完成
五.建立CA證書籤署服務器
(一)CA服務器
1.生成密鑰對
2.生成自簽署證書
3.初始化工作環境
#touch /etc/pki/CA/{index.txt,serial}
#echio 01 > index.txt
(二)節點生成簽署證書請求(這裏以http服務爲例)
1.生成密鑰對
2.生成簽署請求
3.使用scp將簽署請求發送給CA服務器 使用scp即可
(三)CA爲節點簽署證書
1.驗證證書的信息的真實性
2.簽署證書
3.將證書發送給節點
#scp 證書名 服務器IP地址
(四)吊銷證書
1.節點後去證書中的serial與subject信息,並將信息發送給CA服務器
# openssl x509 -in /path/to/certificate_file.crt -noout -serial -subject
2.CA服務器對比驗證需要吊銷的證書
3.吊銷證書
# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
4.生成吊銷列表
# echo 00 > /etc/pki/CA/crlnumber
5、更新證書吊銷列表
# cd /etc/pki/CA/crl/
# openssl ca -gencrl -out thisca.crl
如果需要,查看crl文件的內容:
# openssl crl -in /path/to/crlfile.crl -noout -text
注:openssl的各子命令的詳細用法請使用# man openssl