在上一章的測試中,可以看到提示中包含了******* WARNING *******: all encryption and authentication features disabled -- all data will be tunnelled as cleartext這句話,表明由于沒有認證,是以×××隧道中的流量都是明文的。
*****預共享密鑰可以用于小型×××網絡,如果數量多起來的話配置會非常麻煩********
現使用最簡單的預共享密鑰進行加密
先來生成密鑰,在Centos上使用如下指令可在目前目錄下生成一個2048bit的密鑰檔案secret.key
/usr/local/sbin/openvpn --genkey --secret secret.key
檔案内容如下
#
# 2048 bit Open××× static key
-----BEGIN Open××× Static key V1-----
18111a27e319a4efc2e538d134e6fd3c
2348893fad5d59deba0f52053b5fda08
7d9b38854e8bbbb861cd733dcc8b79f1
7af85a7a20fa31677f8f1b132f2e6e29
5d46d25e1e7d35c5d067887ceb966a9a
22a9fa8c73eb74a0bbbcb05221fedd03
2272433c3d1306143051d8a8c4bf90d7
c00382b72781a9cbc5d69eb7ceebef4d
ed3ce5255bd1a8ca38ea47390c0c71ec
c1770c4422e5c2bdeba18d3843a3b46a
bc62dd5234bc0eb21156739bf906dad3
2f31db872aa317a9758433d9185c2152
3d3caa7bb47acb26e6828346ba14066b
58b5dbfc02eb48e6a3dfc2ec0ed04a57
d1b4e149d56e82b41019cf75e5e6653d
26dc496761e742b4ec594f2be26d66cf
-----END Open××× Static key V1-----
對稱加密
Client與Server之間的流量都使用同一個密鑰進行加密,這個密鑰就是secret.key檔案,具體來說,是把整個key的内容劃分成四個部分(如上四個顔色塊)
CentOS上
/usr/local/sbin/openvpn --ifconfig 172.16.5.1 255.255.255.0 --dev tap --secret secret.key
Win7上
openvpn --ifconfig 172.16.5.2 255.255.255.0 --dev tap --secret c:\secret.key --remote coosh.net
無論是用戶端還是伺服器端,任何方向的資料,均使用18111a27e319a4efc2e538d134e6fd3c來做加解密用的CIPHER key,使用5d46d25e1e7d35c5d067887ceb966a9a22a9fa8c來做加解密HMAC key。
非對稱加密
伺服器Centos端上的指令如下(--verb 7是debug指令,可以不寫)
/usr/local/sbin/openvpn --ifconfig 172.16.5.1 255.255.255.0 --dev tap --secret secret.key 0 --verb 7
用戶端Win7上的指令如下
openvpn --ifconfig 172.16.5.2 255.255.255.0 --dev tap --secret secret.key 1 --verb 7 --remote coosh.net
伺服器端有四個key,分别是
加密CIPHER key:18111a27e319a4efc2e538d134e6fd3c
加密HMAC key:5d46d25e1e7d35c5d067887ceb966a9a22a9fa8c
解密CIPHER key:ed3ce5255bd1a8ca38ea47390c0c71ec
解密HMAC key:3d3caa7bb47acb26e6828346ba14066b58b5dbfc
用戶端也有四個key,分别是
加密CIPHER key:ed3ce5255bd1a8ca38ea47390c0c71ec
加密HMAC key:3d3caa7bb47acb26e6828346ba14066b58b5dbfc
解密CIPHER key:18111a27e319a4efc2e538d134e6fd3c
解密HMAC key:5d46d25e1e7d35c5d067887ceb966a9a22a9fa8c
萬變不離key檔案的内容。