加密方式有對稱加密 非對稱加密 單向加密
對稱加密:
加密和加密都用同一個對稱密鑰,但是,這種加密方法存在一定問題,就是密鑰傳輸時,容易被盜竊。還有密鑰管理困難,對稱加密的方法:DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5。
非對稱加密:
公鑰和私鑰都可以進行加密,解密是公鑰和私鑰對應解密的,就好像一把鎖對應多把相同的鑰匙一樣,公鑰可以公開的,非對稱加密解決了密鑰傳輸時帶來的問題,同時還解決了密鑰管理的繁雜的問題。但是如果你用非對稱加密的方式來加密一段數據,速度會非常慢,比對稱加密的速度慢幾個數量級。非對稱加密的方法:RSA DSA
單向加密:
單向加密是用來提取數據的特征碼,為了保證數據傳輸時的完整性,哪怕數據發生一點的變化,特征碼都會引起巨大的改變,單向加密的方法:MD5 SHA
數據的安全傳輸方式:
(這個圖取之于silently的淺談Openssl與私有CA搭建博客文章的圖)
第一步,用戶B向服務器A發起訪問請求,并攜帶自己的證書信息。服務器A收到用戶B發來的證書后,查找安裝系統時內置的證書或通過其它可靠途徑獲得證書公鑰從中挑選出一個對應的公鑰解密證書的簽名信息,完成CA的合法身份驗證,并得到簽名信息的特征碼,而后使用同樣的算法提取簽名信息的特征碼與之對比,完成簽名信息的完整性校驗,然后再對比主體的名稱與服務器的主機名是否一樣,如果一樣就從用戶B中發來的證書中提取用戶B的公鑰信息,最后將自己的證書發送給用戶B。
第二步,用戶B收到服務器A發來的證書,使用與之同樣的證書驗證流程驗證證書的合法性以及完整性,提取服務器A的公鑰信息。
第三步:使用單向加密算法,提取數據的SO的特征碼信息,使用自己的私鑰加密上一步提取出來的特征碼信息,而后將其附在數據S0后面,組成數據段S1,通過算法生成對稱密鑰,利用對稱加密對數據段S1進行加密,生成加密后的數據段S2。使用用戶B的公鑰將上一步生成的對稱密鑰加密后將其附在數據段S2后面,生成數據段S3。最后將S3發送給用戶
第四步:使用自己的私鑰解密數據段S3,得到服務器A生成的對稱加密密鑰和數據段S2。使用上一步解密得到的密鑰解密數據段S2得到加密后的數據特征碼和明文數據段S0, 使用自己的私鑰解密上一步得到的數據特征碼,然后使用與服務器A相同的單向加密的算法提取明文數據S0的特征碼與之比對,比對結果正確則說明數據時完整的。
使用openssl實現加密:
對稱加密:
opesnssl enc
-e:表示加密
-d:表示解密
-in file:表示輸入需要加密或解密的文件
-out file:表示輸出加密或解密的文件
-a:表示64位的編碼
例子:
加密:
解密
非對稱加密:
私鑰生成:
公鑰生成:
單向加密:
文件內容單向加密:
密碼的單向加密:
openssl支持隨機數,用隨機數作為salt:
PKI公鑰管理:
CA認證機構:證書的簽訂及頒發機構
RA注冊機構:注冊證書的地方
數字證書庫:用于存儲已簽發的數字證書及公鑰,用戶可由此獲得所需的其他用戶的證書及公鑰;
密鑰備份及恢復系統:如果用戶丟失了用于解密數據的密鑰,則數據將無法被解密,這將造成合法數據丟失。為避免這種情況,PKI提供備份與恢復密鑰的機制。但須注意,密鑰的備份與恢復必須由可信的機構來完成。并且,密鑰備份與恢復只能針對解密密鑰,簽名私鑰為確保其唯一性而不能夠作備份。
證書作廢系統:證書作廢處理系統是PKI的一個必備的組件。與日常生活中的各種身份證件一樣,證書有效期以內也可能需要作廢,原因可能是密鑰介質丟失或用戶身份變更等。為實現這一點,PKI必須提供作廢證書的一系列機制。
CA證書的x.509格式
(1) 版本號 (不同x.509格式的版本號)
(2) 序列號(發放證書的序列號)
(3) 簽名算法標識符 (標識證書的hash算法和密鑰的算法)
(4) 認證機構 (發放證書的機構)
(5) 有效期限 (證書可以使用的時間)
(6) 主體信息 (擁有者的姓名 服務的名字)
(7)主體的公鑰信息(公鑰的信息)
(8) 認證機構的數字簽名 (存放用私鑰加密單向加密的證書信息的特征碼)
構建私有CA
先看一下openssl的配置文件(/etc/pki/tls/openssl.cnf)
看到配置文件,需要在/etc/pki/CA/index.txt 和 /etc/pki/CA/serial文件。
生成CA的私鑰:
為CA自己簽證:
這里的證書我放錯了,需要放到/etc/pki/CA目錄下的.
假如,我們在自己的機子上的http上生成一個證書讓CA來簽:
生成http的私鑰:
生成http證書簽訂的請求:
上面的配置信息也可以通過配置文件來指定。
把請求交給CA簽訂:
下面講一下吊銷證書(如果你的私鑰掉失后,應該做吊銷證書)
第一步,先看一下你證書的信息:
-noout:不輸出多余的信息
-subject:輸出摘要信息
-serial:輸出該證書的序列號
然后,要對照一下/etc/pki/CA/index.txt文件里的證書信息,如果符合,就可以吊銷了。
然后,我們還要跟新吊銷列表:
原創文章,作者:13-廣州-楊過,如若轉載,請注明出處:http://www.www58058.com/7079