ssl

                           ssl




加密算法和協議:

對稱加密:加密和解密使用同一個密鑰;

依賴於:算法和密鑰;

安全性依賴於密鑰,而非算法

 

 

非對稱加密:公鑰加密

密鑰對兒:私鑰和公鑰

私鑰:secret key,僅允許個人使用;

公鑰:public key,公開給所有獲取;

 

公鑰從私鑰中提取而來;使用公鑰加密的數據,只能使用與此公鑰配對兒的私鑰解密;反之亦然;

用處:

身份認證:私鑰擁有者用自己的私鑰加密的數據,只要用其公鑰能解密,即可認證其身份;

密鑰交換:與被通信方通信之前,首先獲取到對方的公鑰,自己生成一個加密密碼,用對方的公鑰加密,併發送給對方;

數據加密:

算法:

RSA

DSA

ELGamal

特性:

1、密鑰長度較大,例如512bits, 2048bits, 4096bits

2、加密解密分別使用密鑰對兒中的密鑰相對進行;

3、常用於數據簽名和密鑰交換;

 

 

 

單向加密:提出數據的特徵碼;

特性:

1、定長輸出:無論原來的數據是多大級別,其加密結果長度一樣;

2、雪崩效應:原始數據微小改變,將會導致結果巨大變化;

3、不可逆:

 

算法:

MD5128bits定長輸出;

SHA1160bits定長輸出;

SHA256

SHA384

SHA512

 

CRC32

 

密碼保存路徑/etc/shadow

$#$#######$##############################################

 

用處:

1、數據完整性;

 

 

 

一次加密通信過程

發送者:

1、使用單向加密算法提取生成數據的特徵碼;

2、使用自己的私鑰 加密 特徵碼附加在數據後面;

3、生成用於對稱加密的臨時密鑰;

4、用此臨時密鑰  加密數據和已經使用私鑰加密後的特徵碼;

5、使用接收方的公鑰加密此臨時密鑰,附加在對稱加密後的數據後方;

 

接收方:

1、使用自己的私鑰解密加密的臨時密鑰;從而獲得對稱密鑰;

2、使用對稱密鑰解密對稱加密的 數據和私鑰加密的特徵碼密文;從而獲得數據和特徵碼密文;

3、使用發送方的公鑰解密特徵碼密文,從而獲得從計算生成的特徵碼;

4、使用與對方同樣的單向加密算法計算數據的特徵碼,並與解密而來的進行比較;

 

 

 

數字證書:

                      簽證機構:CA

註冊機構:RA

證書吊銷列表:CRL

 

功用:保證公鑰信息安全分發;

 

openssl的組成部分:

libcrypto:加密、解密庫文件;

libssl: ssl協議實現

openssl:多用途命令行工具,每種功能都使用專用的子命令來實現

 

 

加密文件(對稱加密):

工具:openssl enc, gpg(注:隨便輸入錯誤openssl+錯誤輸入能得到幫助)

算法:des, des3, aes, blowfish, twofish, idea, cast5

     

enc工具:

            man enc

      -e:對輸入數據進行加密

             -salt:隨機數加密

            -in:需要加密的文件

            -out:加密後輸出路徑

             -a:編譯成ASCII碼存放

# openssl enc -e -CIPHERNAME (算法名)-a -salt -in /PATH/FROM/SOMEFILE -out /PATH/TO/SOMECIPHERFILE

 

# openssl enc -d -CIPHERNAME -a -salt -in /PATH/FROM/SOMECIPHERFILE -out /PATH/TO/SOMEFILE

 

單向加密:

算法:md5, sha1

工具:openssl dgst, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum

 

# openssl dgst -CIPHERNAME(如:sha1 md5)/PATH/TO/SOMEFILE...

 

MAC: 消息認證碼,單向加密的一種延伸應用,用於實現在網絡通信中保證所傳輸的數據的完整性;

 

機制:

CBC-MAC

HMAC:使用md5sha1算法

 

生成用戶密碼:

# openssl passwd -1 -salt 8bits隨機數

 

生成隨機數:

# openssl rand -hex|-base64 NUM

 

 

 

 

 

OpenSSL(2)

 

公鑰加密:

工具:gpg, openssl rsautl

 

數字簽名:RSA, DSA, ELGamal

DSA: Digital(數字) Signature(簽名) Algorithm(算法)

DSS: Digital Signature Standard

 

密鑰交換:

公鑰加密、DH

 

生成密鑰對兒:

操作過程:生成私鑰,從私鑰中提取公鑰;

# openssl genrsa -out /PATH/TO/PRIVATE_KEYFILE    NUM_BITS

 

注意:在bash命令行上放在小括號中執行的命令,其實是通過打開一個子shell進程進行的;

 

#(umask 077; openssl genrsa -out /PATH/TO/PRIVATE_KEYFILE NUM_BITS)

 

從私鑰中手動提取公鑰:

# openssl rsa -in /PATH/FROM/PRIVATE_KEY_FILE -pubout

                                          -pubout :輸出公鑰信息

隨機數生成器:

random, urandom

 

熵池:保存硬件中斷產生的隨機數

 

/dev/random:僅從熵池中返回隨機數,當熵池中的隨機數耗盡時,取隨機數的進程將會被阻塞;

/dev/urandom:先從熵池中取隨機數,當熵池中的隨機耗盡時,就通過僞隨機數生成器生成隨機數;

 

X.509 v3數字證書的格式:

CA通過證書證實他人的公鑰信息,證書上有ca的簽名

獲取證書的方法:

RA註冊

建立私有CA

OpenSSL

OpenCA

 

使用OpenSSL構建私有CA

1、生成私鑰;

2、生成自簽署證書;

 

(1) 私鑰用於簽發證書時,向證書添加數字簽名使用;

(2) 證書:每個通信方都導入此證書至“受信任的證書頒發機構”;

 

 

配置文件:/etc/pki/tls/openssl.cnf

工作目錄:/etc/pki/CA/

 

建立私有CA

信息輸入錯誤 ctrl鍵刪除

1、生成私鑰文件: /etc/pki/CA/private/cakey.pem

 

# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

 

2、生成自簽證書

 

# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days #

 

-new: 生成新的證書籤署請求;

-key:私鑰文件路徑,用於提取公鑰;

-days N: 證書有效時長,單位爲“天”;

-out:輸出文件保存位置;

-x509:直接輸出自簽署的證書文件,通常只有構建CA時才這麼用;

 

3、提供輔助文件 注:一定要創建啊!!!!
 

# touch /etc/pki/CA/index.txt

# echo 01 > /etc/pki/CA/serial

 

給節點發證書:

1、節點申請證書

在證書申請的主機上進行如下步驟:

(1) 生成私鑰;

(2) 生成證書籤署請求;

 

注意:

(a) 其中的subject信息部分,要與CA的保持一致;

(b) Common Name要使用此主機在通信真實使用名字;

 

(3) 把請求發送給CA

 

2CA簽發證書

(1) 驗正請求者信息

(2) 簽署證書

# openssl ca -in /PATH/FROM/CSR_FILE -out /PATH/TO/CRT_FILE -days N

(3) 把簽署好的證書發還給請求者

 

                            數字證書一般.crt結尾        證書請求.csr結尾

 

吊銷證書:

1、獲取吊銷證書的序列號;

# openssl x509 -in /PATH/FROM/CRT_FILE -noout -serial -subject

 

2、實現證書吊銷

(1) 吊銷證書

# openssl ca -revoke /PATH/FROM/CRT_FILE

 

(2) 生成吊銷證書的編號

echo 01 > /etc/pkie/CA/crlnumber

 

(3) 更新證書吊銷列表

# openssl crl -gencrl -out THISCA.crl

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章