https
https 協議
概念
https=http+SSL SSL:加密套接字 ssl加密使用openssl庫 openssl : 1. ssl加密套件 2. https的通訊 apt-get install openssl
加密基礎知識
1.對稱加密:指的是加密方和解密方使用的是同一個金鑰 優點:加密解密的速度很快 缺點:如果兩個從未通訊過的使用者要進行通訊的時候, 該如何把解密的金鑰傳輸給對方呢(金鑰仍然要在網路上傳輸,所以金鑰還是可能會被“中間人”截獲),這是對稱加密最大的缺點; 常見的對稱加密演算法有: DES:使用56位的金鑰,2000年的時候被人破解了,所以現在基本不再使用 AES:高階加密標準,可以使用128,129,256 512 1024 2048 4096金鑰 其他的還有blowfish,Twofish和RC6,IDEA(商業演算法),CAST5等
-
非對稱加密:非對稱加密方式解決了對稱加密的缺陷,它的加密和解密金鑰是不同的,比如對一組數字加密,我們可以用公鑰對其加密,然後我們想要將其還原,就必須用私鑰進行解密,公鑰和私鑰是配對使用的,常見的非對稱加密演算法有: 優點: 加密和解密 用不同金鑰 缺點:加密速度非常慢
RSA:既可以用來加密解密,又可以用來實現使用者認證 DSA:只能用來加密解密,所以使用範圍沒有RSA廣 非對稱加密長度通常有512,1024,2048,4096位,最常用的就是2048位,長度固然可以增加安全性但是需要花費很長時間來進行加密/解密,和對稱加密相比,加密/解密的時間差不多是對稱加密的1000倍,所以我們通常用其作為使用者認證,用對稱加密來實現資料的加密/解密
-
單項加密: 單向加密就是用來計算一段資料的特徵碼的,為了防止使用者通過“暴力破解”的方式解密,所以單向加密一般具有“雪崩效應”就是說:只要被加密內容有一點點的不同,加密所得結果就會有很大的變化。單項加密還有一個特點就是無論被加密的內容多長/短,加密的結果(就是提取特徵碼)是定長的,用途:用於驗證資料的完整性,常用的單項加密演算法 特點:加密後的資料長度固定:128 雪崩效應 MD5:這種加密演算法固定長度為128位 SHA1:這種加密演算法固定長度是160位
HTTPS簡介
ssl加密流程
- 每個資料包都有不同的對稱加密金鑰 ---隨機生成
- 如何獲得對方的公鑰
-
證書:
- 公鑰 資料 -->單項加密- ---->對稱加密 ----->非對稱加密(使用對方的公鑰做加密的金鑰)
- 每次進行資料傳輸的時候,每包資料都有一個隨機生成的金鑰
自建根證書
.key :通過傳入的口令,按照系統的演算法生成的私鑰 openssl genrsa -des3 -out root.key .csr格式:證書籤名請求(證書請求檔案),含有公鑰資訊,certificate signing request的縮寫 openssl req -new -key root.key -out root.csr .crt格式:證書檔案,certificate的縮寫 openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.csr -out root.crt .crl格式:證書吊銷列表,Certificate Revocation List的縮寫 .pem格式:用於匯出,匯入證書時候的證書的格式,有證書開頭,結尾的格式
生成伺服器證書,並用自建根證書進行簽名
- 建立伺服器證書金鑰:server.key
openssl genrsa -out server.key 2048
去除key檔案的口令:openssl rsa -in server.key -out server.key
- 建立伺服器證書申請檔案:server.csr
openssl req -new -key server.key -out server.csr
- 建立服務證書:server.crt
openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAcreateserial -in server.csr -out server.crt
注意,-days為證書有效期
openssl工具庫用法:
檢視openssl元件是否安裝 rpm -ql openssl /usr/lib64/libcrypt.so /usr/bin/openssl --- 加密 openssl version
對檔案進行加密測試輸出到fstab.des3 openssl enc -des3 -in fstab -e -out fstab.des3
對檔案進行解密 openssl enc -des3 -in fstab.des3 -d -out fstab
對檔案進行單項加密 openssl dgst -md5 fstab
ssl協議功能
- 保證傳輸資料的保密性
- 保證傳輸資料的完整性 rc4
- 實現通訊雙方的互相身份認證-----非對稱加密
ssl加密 解密過程
- 加密過程 單項加密 對稱加密 非對稱加密
- 證書 對方的公鑰 數字簽名--->公鑰的單項加密結果
- https通訊中 要進行證書互動
- SSL 協議是一個分層的協議,共有兩層組成
-
高層協議包括
- SSL 握手協議
- 改變加密約定協議
- 報警協議
-
處於 SSL 協議的底層
- SSL記錄層協議
-
建立ssl套接字
getopt 引數解析 ./webd -p 80 -k server.key -c server.cert -l chain.cert
編譯ssl程式時 * 安裝ssl的庫 * -lopenssl
./tlsone wayserver -p john123 -k ../pem/server/server.key.pem -c ../pem/server/server.cert.pem -l ../pem/server/server chain.cert.pem