OPENSSL加密技術及私有CA的搭建

加密方式有對稱加密 非對稱加密 單向加密

對稱加密:

    加密和加密都用同一個對稱密鑰,但是,這種加密方法存在一定問題,就是密鑰傳輸時,容易被盜竊。還有密鑰管理困難,對稱加密的方法:DES、AES、BlowfishTwofish、IDEA、RC6CAST5。

 

非對稱加密:

公鑰和私鑰都可以進行加密,解密是公鑰和私鑰對應解密的,就好像一把鎖對應多把相同的鑰匙一樣,公鑰可以公開的,非對稱加密解決了密鑰傳輸時帶來的問題,同時還解決了密鑰管理的繁雜的問題。但是如果你用非對稱加密的方式來加密一段數據,速度會非常慢,比對稱加密的速度慢幾個數量級。非對稱加密的方法:RSA DSA

 

單向加密:

單向加密是用來提取數據的特征碼,為了保證數據傳輸時的完整性,哪怕數據發生一點的變化,特征碼都會引起巨大的改變,單向加密的方法:MD5 SHA

 

數據的安全傳輸方式:

(這個圖取之于silently的淺談Openssl與私有CA搭建博客文章的圖)

 

1.png

第一步,用戶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位的編碼

例子:

     加密:         

2.png 

 

解密

3.png

非對稱加密:

私鑰生成:

 

      4.png

 

公鑰生成:

           

5.png 

 

單向加密:

文件內容單向加密:
6.png
密碼的單向加密:
7.png
                 
openssl支持隨機數,用隨機數作為salt

8.png

 

9.png

 

 

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)

 

10.png

 

看到配置文件,需要在/etc/pki/CA/index.txt 和 /etc/pki/CA/serial文件。

11.png

 

 

生成CA的私鑰:                 

12.png

為CA自己簽證:

 

13.png

這里的證書我放錯了,需要放到/etc/pki/CA目錄下的.

 

假如,我們在自己的機子上的http上生成一個證書讓CA來簽:

生成http的私鑰:

14.png 

   生成http證書簽訂的請求:                 

15.png 

上面的配置信息也可以通過配置文件來指定。

 

把請求交給CA簽訂:

16.png 

 

 

 

下面講一下吊銷證書(如果你的私鑰掉失后,應該做吊銷證書)

 

第一步,先看一下你證書的信息:

17.png 

-noout:不輸出多余的信息

-subject:輸出摘要信息

-serial:輸出該證書的序列號

 

然后,要對照一下/etc/pki/CA/index.txt文件里的證書信息,如果符合,就可以吊銷了。

 

18.png 

 

然后,我們還要跟新吊銷列表:

19.png 

20.png 

 

原創文章,作者:13-廣州-楊過,如若轉載,請注明出處:http://www.www58058.com/7079

(0)
13-廣州-楊過13-廣州-楊過
上一篇 2015-08-17 11:35
下一篇 2015-08-21 11:00

相關推薦

  • 文件系統管理&raid&腳本編程之參數、算數運算練習

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; (1) ~]# fdisk /dev/sdb Welcome to…

    Linux干貨 2016-11-08
  • 關于RHEL6中ulimit的nproc限制

    ulimit 用于限制 shell 啟動進程所占用的資源,支持以下各種類型的限制:所創建的內核文件的大小、進程數據塊的大小、Shell 進程創建文件的大小、內存鎖住的大小、常駐內存集的大小、打開文件描述符的數量、分配堆棧的最大大小、CPU 時間、單個用戶的最大線程數、Shell 進程所能使用的最大虛…

    Linux干貨 2016-10-19
  • 軟件包管理之yum

    本節主要是對linux軟件包管理中的yum的淺解 1、冒泡法對數組內數據排序 2、博客:        yum命令淺解    yum [options] [command] [package …]      …

    Linux干貨 2016-08-25
  • 網絡班N22期第六周博客作業

    請詳細總結vim編輯器的使用并完成以下練習題 打開文件: ~]# vim [options] [file ..]       +#:打開文件后,直接讓光標處于第#行       +/PART…

    Linux干貨 2016-09-26
  • 馬哥教育網絡班21期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; %s/^([[:space:]]{1,}.*)/#\1/s 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行…

    Linux干貨 2016-08-15
  • 相關練習

    1、請使用命令行展開功能來完成以下練習:    (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d  mkdir /tmp/{a,b}_{c,d}    (2)、創建/tmp/mylinux目錄下的:  mkdir -pv /tmp/mylinux/{bin,boot/grub,de…

    Linux干貨 2016-11-05
欧美性久久久久