SSL及OpenSSL使用

1、SSL簡介算法

 1.SSL: secure socket layer(安全套接層)爲網絡通訊提供安全及數據完整性的一種安全協議,囊括了主要的單向加密、對稱加密、非對稱加密算法、經常使用的密鑰和證書封裝管理功能以及SSL協議。數據庫

 2.經常使用加密算法:vim

  <1>對稱加密:DES, 3DES, AES安全

 <2>非對稱加密(公鑰加密)RSA, DSS, ECC服務器

 <3>單向加密:MD5, SHA1, SHA2, SHA256, SHA512, SHA3網絡

3.SSL協議提供的安全信道三特性:socket

<1>數據的保密性:信息加密就是把明碼的輸入文件用加密算法轉換成加密的文件以實現數據的保密。加密的過程須要用到密鑰來加密數據而後再解密。主要經過對稱加密實現。ide

<2>數據的完整性:加密也能保證數據的一致性。消息驗證碼(MAC),可以校驗用戶提供的加密信息,接收者能夠用MAC來校驗加密數據,保證數據在傳輸過程當中沒有被篡改過。主要經過單向加密實現。函數

<3>安全驗證:加密的另一個用途是用來做爲我的的標識,用戶的密鑰能夠做爲他的安全驗證的標識。SSL是利用公開密鑰(非對稱加密)的加密技術來做爲用戶端與服務器端在傳送機密資料時的加密通信協定。主要經過非對稱加密實現。工具

2、OpenSSL主要命令

 1.OpenSSLSSL協議的一種實現

     OpenSSL提供兩個函數庫和一個應用程序

         libcrypto :實行加密解密功能。

         libssl:實現ssl

         openssl:應用程序

2.OpenSSL主要命令:

   <1>openssl version:顯示版本號

   <2>openssl enc:指定加密法

   openssl enc 加密方法 [-e| -d](加密、解密)-in FILE(指定要加密文件)-outFILE(加密後的文件)

  <3>openssl dgst(後加單向加密算法)–md5 FILE (獲取文件的特徵碼)

  md5sumFILE(獲取文件特徵碼)| sha1sumFILE

 <4> opennssl speed [加密算法(測試當前系統上的加密算法的速度、不帶參數對全部算法進行測試)

  <5>openssl passwd –1md5-salt 八位字符串(通常隨機生成):對用戶密碼進行加密

  <6>openssl rand-heax(十六進制)#(制定生成的位數:2#:生成隨機數

  <7>openssl rand –base64 #:生成十六進制隨機數位數爲2#

  <8>openssl genrsa [-out](指定私鑰保存文件) [flie][#](指定位數:2n次方):生成一個私鑰,默認512

  <9>openssl genrsa 加密算法 [#](指定位數:2n次方):對私鑰加密

  <10>openssl rsa –in FILE(私鑰文件)-pubout:提取公鑰

 <11>(umask 077openssl genrsa –out FILE #):制定密鑰文件權限爲600

3、OpenSSL使用:申請證書

1.生成一個私鑰

umask 077openssl genrsa out FILE #

2.製做一個證書籤署請求

openssl req –new(指定證書請求) –key FILE(私鑰文件) –out FILE(保存爲後綴爲csr格式的文件:證書請求格式通常爲.csr後綴)

填寫我的信息

3.CA負責簽名(簽署證書)

4、OpenSSL使用:自建CA

1.cd /etc/pki/CA/

2.生成一個私鑰

(umask 077; openssl genrsa –out private/cakey.pem #)

3.生成自簽證書

openssl req –new –x509(自籤) –key FILE(上步生成的私鑰文件) –out cacert.pem –days #(指定使用時間默認爲天)

我的信息,和申請的我的信息必須保持一致。

      不一致

    一致

4.建立數據庫文件

touch serial index.txt

echo 01 > serial (序列號從01開始

5、OpenSSL使用:簽署證書

openssl ca –in FILE(申請者私鑰文件)–out FILE(證書保存位置後綴爲.crt)–days #(使用時間)

查看文件index.txt serial (證書數據庫)

修改信息默認值:vim /etc/pki/tls/openssl.cnf

6、openssl 專用客戶端測試工具

openssl s_client –connect(指定鏈接主機) HOST:PORT –CAflile (指定證書文件) /path/to/cacertfile| -CApath(指定某個目錄下的證書) /path/to/cacertfile_dir/ -ssl1|ssl2|ssl3|tls1(指定協議

7、補充內容

1.一次安全的會話通過的步驟(單向加密、對稱加密、非對稱加密的結合)

數據發送方

         <1>發送方使用選定的單向加密算法計算原始數據的特徵碼。

<2>發送方使用本身的私鑰加密特徵碼,附加於原始數據後面。

<3>發送方生成一次性對稱密鑰,並使用此密鑰加密數據(原始數據+加密後的特徵碼)

<4>發送方使用接收方的公鑰加密一次性對稱密鑰,附加於加密數據後面,發送數據

數據接收方

<1>接收方使用本身的私鑰解密加密的一次性對稱密鑰。

<2>使用對稱密鑰解密數據,獲得加密的特徵碼和原始數據。

<3>使用發送方的公鑰解密加密的特徵碼。

<4>使用與發送方相同的單向加密算法從新計算數據的特徵碼,並與解密出的特徵作比較。

 2.OpenSSL中後綴名各表示什麼文件

.key格式:私有的密鑰

.crt格式:證書文件,certificate的縮寫

.csr格式:證書籤名請求(證書請求文件),含有公鑰信息,certificate signing request的縮寫

.crl格式:證書吊銷列表,Certificate Revocation List的縮寫

.pem格式:用於導出,導入證書時候的證書的格式,有證書開頭,結尾的格式