李清平 孟祥芳 黃莉平
摘 要:Diffie-Hellman算法通過密鑰交換的方式為企業VPN網絡的信息傳輸提供數據機密性,其有效性依賴于計算離散對數的難度。在描述算法過程的基礎上,利用Visual C++語言編程并在Windows XP環境中編譯。通過一個具體的企業VPN網絡部署和配置,實現了企業內網對等體之間通過VPN隧道的相互通信和對Internet資源的訪問,分析了由于加載VPN數據包而對網絡性能產生的影響,主要體現在網絡吞吐量和網絡延遲的變化上。因此提高VPN網絡的應用性能和數據傳輸的質量是今后研究的主要方向。
關鍵詞:Diffie-Hellman算法;VPN技術;網絡性能;網絡吞吐量;網絡延遲
中圖分類號:TP391 文獻標識碼:A
1 引言(Introduction)
Diffie-Hellman算法,簡稱DH算法,由W.Diffie和M.E.Hellman在1976年公布的一種密鑰一致性算法,該算法是一種建立密鑰的方法,并非加密方法,但其產生的密鑰可用于加密、密鑰管理或任何其它的加密方式,這種密鑰交換技術的目的在于使兩個用戶間能安全地交換密鑰(KEY)以便用于今后的報文加密[1]。DH密鑰交換算法對公開密鑰密碼編碼學產生了深遠的影響。
DH算法是一種確保共享KEY安全穿越網絡的方法。Internet是一個公共的網絡,企業通過Internet來連接遠程站點和傳輸數據,容易造成內部網絡的安全威脅。VPN(Virtual Private Network,虛擬專用網絡)在公用網絡上建立企業網絡,通過提供機密性和安全性來保障企業內網數據的安全傳輸,具有成本低,易于使用的特點。數據機密性包括對稱式加密DES、3DES、AES和非對稱式加密RSA,這些加密方法都可以通過DH密鑰交換來為對等體生成所需的密鑰[2-4]。
2 Diffie-Hellman算法描述(Diffie-Hellman
algorithm description)
離散對數:定義素數p的原始根(Primitive Root)是能生成1-(p-1)之間所有數的一個數,設a為p的原始根,則:
a mod p,a2 mod p,…,ap-1 mod p是各不相同的整數,且以某種排列方式組成了從1到p-1的所有整數。對于任意數b及素數p的原始根a,可以找到一個唯一的指數i,滿足:
b=ai mod p,其中0≤i≤p-1,那么指數i稱為b的以a為基數的模p的離散對數。
Diffie-Hellman算法的有效性依賴于計算離散對數的難度,其含義是:當已知大素數p和它的一個原根a后,對于給定的b,要計算出i被認為是很困難的,而給定i計算b卻相對容易[5-7]。
假設網絡上有兩個用戶A和B,彼此之間協商共同的密碼,算法過程如圖1所示。
圖1 Diffie-Hellman算法過程示意圖
Fig.1 Diagram of Diffie-hellman algorithm process
(1)A和B事先約好大素數p和它的原始根a;
(2)A隨機產生一個數x,計算X=ax mod p,然后把X發給B;
(3)B隨機產生一個數y,計算Y=ay mod p,然后把Y發給A;
(4)A計算k=Yx mod p;
(5)B計算k* =Xy mod p。
因為k=Yx mod p=(ay)x mod p=(ax)y mod p=Xy mod p;
k* =Xy mod p;
所以k=k* 。
不安全網絡上的竊聽者只能得到a、p、X、Y,除非能計算離散對數x和y,否則將無法得到密鑰k,但對于大素數p,計算離散對數是十分困難的,因此k為用戶A和B獨立計算出的密鑰。
3 Diffie-Hellman算法實現(Diffie-Hellman
algorithm implementation)
編程思路:輸入一個素數和它的一個原始根,生成小于此素數的一個隨機數,計算出用戶的公鑰,保存信息。然后再輸入對方的公鑰,計算出雙方的會話密鑰。
核心代碼如圖2所示,程序在Windows XP操作系統下,Visual C++ 2012環境中編譯通過。
圖2 Diffie-Hellman算法的C++編程核心代碼
Fig.2 Core code of diffie-hellman algorithm by C++
4 網絡部署和配置(Network deployment and
configuration)
4.1 網絡部署和拓撲圖
用戶A所在的網絡和用戶B所在的網絡分別接入Internet,各自通過公有地址訪問Internet上的資源,同時出于通信安全和節省費用的考慮,需要建立彼此之間點到點的VPN隧道,其拓撲圖如圖3所示。
圖3 企業網絡VPN部署拓撲圖
Fig.3 Topology of enterprise network VPN deployment
4.2 配置命令及解析
VPN使用數據機密性、數據完整性、認證等加密技術以及隧道技術來允許企業在Internet上建立安全的端到端私有網絡。數據機密性包括DES、3DES、AES對稱式加密算法和RSA非對稱性式加密算法,兩者都可以通過Diffie-Hellman密鑰交換生成對等體雙方的密鑰[2,8]。數據完整性目前有兩種常用的散列算法:HMAC-MD5和HMAC-SHA-1,HMAC-SHA-1算法更安全,但占用的資源也相對較多[2,9]。認證包含兩種方法:預共享密鑰(Pre-Shared Key,PSK)和RSA簽名,預共享密鑰比較容易配置,但擴展性不是很好[10,11]。現以用戶A所在網絡的路由器Enterprise Router 1(簡稱ER1)為例配置VPN并進行解析,用戶B所在網絡的路由器Enterprise Router 2可參考此配置,不再贅述。主要配置命令如下:endprint
// IKE(Internet Key Exchange Protocol,Internet 密鑰交換協議)配置
ER1(config)#crypto isakmp policy 1 // 建立isakmp策略
ER1(config-isakmp)#hash md5 // 哈希采用md5驗證
ER1(config-isakmp)#encryption 3des // 采用3des加密
ER1(config-isakmp)#authentication pre-share // 采用預共享密鑰認證方式
ER1(config)#crypto isakmp key ﹡ address ※ // ﹡代表預共享密鑰,※表示對等體的路由器IP地址
ER1(config)#crypto ipsec transform-set # ah-md5-hmac esp-des // 創建交換集,#為交換集名稱,后面兩項為加密傳輸算法
ER1(config)#crypto map §1 ipsec-isakmp // 創建加密圖§,序號為1
ER1(config-crypto-map)#set transform-set # // 使用創建的交換集#
ER1(config-crypto-map)#set peer ※ // VPN隧道對端的IP地址※
ER1(config-crypto-map)#match address 101 // 創建訪問控制列表ACL,確定受保護的感興趣流。ACL的具體配置這里從略,需要說明的是VPN不能使用標準ACL,只能使用擴展ACL。
ER1(config)#interface serial 1/0
ER1(config-if)#crypto map § // 加密圖§與接口綁定
4.3 外網服務器配置
為了驗證企業內網用戶訪問Internet上的資源,在WWW Server服務器中制作一個簡單的web網頁index.html,域名為http://www.dhalgorithm.com,如圖4所示,同時使用公有IP地址202.101.172.1在DNS Server中創建與域名的對應解析,如圖5所示。
圖4 在WWW Server服務器中制作的web網頁
Fig.4 Web page making in WWW server
圖5 在DNS Server中建立的域名解析
Fig.5 Domain name resolution making in DNS server
5 結果驗證(Result validation)
企業內網用戶A和用戶B之間能相互ping通,彼此之間能通過VPN隧道進行信息交流,如圖6所示。
圖6 用戶A ping 用戶B的結果
Fig.6 Result of user A ping user B
企業內網用戶A和用戶B均能通過公有IP地址訪問Internet上WWW Server中的web頁面,如圖7所示。
圖7 用戶訪問Internet資源的結果
Fig.7 Result of the user accessing internet resource
6 網絡影響分析(Network influence analysis)
當用戶A和用戶B建立通信時,雙方執行IKE驗證,協商加密方式,此時網絡的吞吐量比較小且平穩,網絡延遲降低。此后所有的數據流都將使用雙方協商的加密機制進行加密,再封裝于隧道包頭內,用戶A所在網絡的VPN網關在接收到終端A發出的訪問數據包時對其目標地址進行檢查并封裝構造一個新的VPN數據包,然后將封裝后的原數據包作為VPN數據包的負載發送到Internet。用戶B所在網絡的VPN網關對接收到的數據包進行檢查并解封裝,然后將還原后的原始數據包發送至目標終端B,在終端B看來,它收到的數據包就和從終端A直接發過來的一樣。從終端B返回終端A的數據包處理過程與上述相同。由于VPN技術的加密與解密、封裝和解封裝,在此過程會產生新的VPN數據包,使得網絡吞吐量加大,網絡延遲也相應增加。之后數據包發送完畢,網絡吞吐量和網絡延遲也緩慢下降,分別如圖8和圖9所示。
圖8 企業網絡吞吐量情況
Fig.8 Enterprise network throughput
圖9 企業網絡的網絡延遲情況
Fig.9 Enterprise network delay
7 結論(Conclusion)
VPN允許遠程站點或企業分支機構使用Internet等公共互聯網絡的路由基礎設施以安全的方式建立連接,具有節約成本、增強安全性、容易擴展、支持新興應用等特點。Diffie-Hellman算法為VPN網絡對等體雙方提供加密和解密所需的密鑰,以保證通信雙方的數據機密性。VPN技術在企業內網中的配置較為復雜,另外由于隧道技術、數據機密性、完整性和認證等安全保障策略,導致網絡吞吐量隨著VPN數據包的生成而增大,網絡延遲也相應增加,使得網絡產生抖動,數據的傳輸質量也隨之減低,因此提高VPN網絡的應用性能是亟待解決的問題。
參考文獻(References)
[1] Diffie W,Hellman M E.New Directions in Cryptography[J].
IEEE Transactions on Information Theory,1976,22(06):644-654.
[2] 崔北亮.CCNA認證指南(640-802)[M].北京:電子工業出版
社,2009:551-556.
[3] 余海冰,潘澤宏.Diffie-Hellman密鑰交換技術綜述[J].科技信
息,2007(10):51-52.
[4] 汪志達,葉 偉.Diffie-Hellman密鑰交換的算法實現與應用研
究[J].計算機應用與軟件,2008,25(05):260-261.
[5] 李必濤,等.一種能夠抵抗主動攻擊的改進Diffie-Hellman密
鑰協商方案[J].中央民族大學學報(自然科學版),2008,17(04):
54-57.
[6] 閻軍智,李鳳華,馬建峰.基于Diffie-Hellman算法的分層密鑰
分配方案[J].電子學報,2011(01):119-123.
[7] 楊增福.基于Diffie-Hellman方法的密鑰協商協議的設計與分
析[D].鄭州:鄭州大學,2012:3-14.
[8] 寇應展,等.基于IPSec的VPN實現技術研究[J].科學技術與工
程,2006,06(14):2171-2173.
[9] 陳旭.虛擬專用網VPN 在企業辦公中的應用[J].計算機安全,
2007(09):59-61.
[10] 李緒亮.校園網的VPN方案設計[D].濟南:山東大學,2011:
13-25.
[11] 董芳.虛擬專用網(VPN)的研究與實現[J].集寧師范學院學
報,2013,35(02):107-108;114.
作者簡介:
李清平(1969-),男,本科,副教授.研究領域:計算機網絡技
術教學與應用.
孟祥芳(1978-),女,本科,講師.研究領域:高職教學管理.
黃莉平(1986-),女,碩士,軟件設計師.研究領域:網站開發
和編程.endprint
// IKE(Internet Key Exchange Protocol,Internet 密鑰交換協議)配置
ER1(config)#crypto isakmp policy 1 // 建立isakmp策略
ER1(config-isakmp)#hash md5 // 哈希采用md5驗證
ER1(config-isakmp)#encryption 3des // 采用3des加密
ER1(config-isakmp)#authentication pre-share // 采用預共享密鑰認證方式
ER1(config)#crypto isakmp key ﹡ address ※ // ﹡代表預共享密鑰,※表示對等體的路由器IP地址
ER1(config)#crypto ipsec transform-set # ah-md5-hmac esp-des // 創建交換集,#為交換集名稱,后面兩項為加密傳輸算法
ER1(config)#crypto map §1 ipsec-isakmp // 創建加密圖§,序號為1
ER1(config-crypto-map)#set transform-set # // 使用創建的交換集#
ER1(config-crypto-map)#set peer ※ // VPN隧道對端的IP地址※
ER1(config-crypto-map)#match address 101 // 創建訪問控制列表ACL,確定受保護的感興趣流。ACL的具體配置這里從略,需要說明的是VPN不能使用標準ACL,只能使用擴展ACL。
ER1(config)#interface serial 1/0
ER1(config-if)#crypto map § // 加密圖§與接口綁定
4.3 外網服務器配置
為了驗證企業內網用戶訪問Internet上的資源,在WWW Server服務器中制作一個簡單的web網頁index.html,域名為http://www.dhalgorithm.com,如圖4所示,同時使用公有IP地址202.101.172.1在DNS Server中創建與域名的對應解析,如圖5所示。
圖4 在WWW Server服務器中制作的web網頁
Fig.4 Web page making in WWW server
圖5 在DNS Server中建立的域名解析
Fig.5 Domain name resolution making in DNS server
5 結果驗證(Result validation)
企業內網用戶A和用戶B之間能相互ping通,彼此之間能通過VPN隧道進行信息交流,如圖6所示。
圖6 用戶A ping 用戶B的結果
Fig.6 Result of user A ping user B
企業內網用戶A和用戶B均能通過公有IP地址訪問Internet上WWW Server中的web頁面,如圖7所示。
圖7 用戶訪問Internet資源的結果
Fig.7 Result of the user accessing internet resource
6 網絡影響分析(Network influence analysis)
當用戶A和用戶B建立通信時,雙方執行IKE驗證,協商加密方式,此時網絡的吞吐量比較小且平穩,網絡延遲降低。此后所有的數據流都將使用雙方協商的加密機制進行加密,再封裝于隧道包頭內,用戶A所在網絡的VPN網關在接收到終端A發出的訪問數據包時對其目標地址進行檢查并封裝構造一個新的VPN數據包,然后將封裝后的原數據包作為VPN數據包的負載發送到Internet。用戶B所在網絡的VPN網關對接收到的數據包進行檢查并解封裝,然后將還原后的原始數據包發送至目標終端B,在終端B看來,它收到的數據包就和從終端A直接發過來的一樣。從終端B返回終端A的數據包處理過程與上述相同。由于VPN技術的加密與解密、封裝和解封裝,在此過程會產生新的VPN數據包,使得網絡吞吐量加大,網絡延遲也相應增加。之后數據包發送完畢,網絡吞吐量和網絡延遲也緩慢下降,分別如圖8和圖9所示。
圖8 企業網絡吞吐量情況
Fig.8 Enterprise network throughput
圖9 企業網絡的網絡延遲情況
Fig.9 Enterprise network delay
7 結論(Conclusion)
VPN允許遠程站點或企業分支機構使用Internet等公共互聯網絡的路由基礎設施以安全的方式建立連接,具有節約成本、增強安全性、容易擴展、支持新興應用等特點。Diffie-Hellman算法為VPN網絡對等體雙方提供加密和解密所需的密鑰,以保證通信雙方的數據機密性。VPN技術在企業內網中的配置較為復雜,另外由于隧道技術、數據機密性、完整性和認證等安全保障策略,導致網絡吞吐量隨著VPN數據包的生成而增大,網絡延遲也相應增加,使得網絡產生抖動,數據的傳輸質量也隨之減低,因此提高VPN網絡的應用性能是亟待解決的問題。
參考文獻(References)
[1] Diffie W,Hellman M E.New Directions in Cryptography[J].
IEEE Transactions on Information Theory,1976,22(06):644-654.
[2] 崔北亮.CCNA認證指南(640-802)[M].北京:電子工業出版
社,2009:551-556.
[3] 余海冰,潘澤宏.Diffie-Hellman密鑰交換技術綜述[J].科技信
息,2007(10):51-52.
[4] 汪志達,葉 偉.Diffie-Hellman密鑰交換的算法實現與應用研
究[J].計算機應用與軟件,2008,25(05):260-261.
[5] 李必濤,等.一種能夠抵抗主動攻擊的改進Diffie-Hellman密
鑰協商方案[J].中央民族大學學報(自然科學版),2008,17(04):
54-57.
[6] 閻軍智,李鳳華,馬建峰.基于Diffie-Hellman算法的分層密鑰
分配方案[J].電子學報,2011(01):119-123.
[7] 楊增福.基于Diffie-Hellman方法的密鑰協商協議的設計與分
析[D].鄭州:鄭州大學,2012:3-14.
[8] 寇應展,等.基于IPSec的VPN實現技術研究[J].科學技術與工
程,2006,06(14):2171-2173.
[9] 陳旭.虛擬專用網VPN 在企業辦公中的應用[J].計算機安全,
2007(09):59-61.
[10] 李緒亮.校園網的VPN方案設計[D].濟南:山東大學,2011:
13-25.
[11] 董芳.虛擬專用網(VPN)的研究與實現[J].集寧師范學院學
報,2013,35(02):107-108;114.
作者簡介:
李清平(1969-),男,本科,副教授.研究領域:計算機網絡技
術教學與應用.
孟祥芳(1978-),女,本科,講師.研究領域:高職教學管理.
黃莉平(1986-),女,碩士,軟件設計師.研究領域:網站開發
和編程.endprint
// IKE(Internet Key Exchange Protocol,Internet 密鑰交換協議)配置
ER1(config)#crypto isakmp policy 1 // 建立isakmp策略
ER1(config-isakmp)#hash md5 // 哈希采用md5驗證
ER1(config-isakmp)#encryption 3des // 采用3des加密
ER1(config-isakmp)#authentication pre-share // 采用預共享密鑰認證方式
ER1(config)#crypto isakmp key ﹡ address ※ // ﹡代表預共享密鑰,※表示對等體的路由器IP地址
ER1(config)#crypto ipsec transform-set # ah-md5-hmac esp-des // 創建交換集,#為交換集名稱,后面兩項為加密傳輸算法
ER1(config)#crypto map §1 ipsec-isakmp // 創建加密圖§,序號為1
ER1(config-crypto-map)#set transform-set # // 使用創建的交換集#
ER1(config-crypto-map)#set peer ※ // VPN隧道對端的IP地址※
ER1(config-crypto-map)#match address 101 // 創建訪問控制列表ACL,確定受保護的感興趣流。ACL的具體配置這里從略,需要說明的是VPN不能使用標準ACL,只能使用擴展ACL。
ER1(config)#interface serial 1/0
ER1(config-if)#crypto map § // 加密圖§與接口綁定
4.3 外網服務器配置
為了驗證企業內網用戶訪問Internet上的資源,在WWW Server服務器中制作一個簡單的web網頁index.html,域名為http://www.dhalgorithm.com,如圖4所示,同時使用公有IP地址202.101.172.1在DNS Server中創建與域名的對應解析,如圖5所示。
圖4 在WWW Server服務器中制作的web網頁
Fig.4 Web page making in WWW server
圖5 在DNS Server中建立的域名解析
Fig.5 Domain name resolution making in DNS server
5 結果驗證(Result validation)
企業內網用戶A和用戶B之間能相互ping通,彼此之間能通過VPN隧道進行信息交流,如圖6所示。
圖6 用戶A ping 用戶B的結果
Fig.6 Result of user A ping user B
企業內網用戶A和用戶B均能通過公有IP地址訪問Internet上WWW Server中的web頁面,如圖7所示。
圖7 用戶訪問Internet資源的結果
Fig.7 Result of the user accessing internet resource
6 網絡影響分析(Network influence analysis)
當用戶A和用戶B建立通信時,雙方執行IKE驗證,協商加密方式,此時網絡的吞吐量比較小且平穩,網絡延遲降低。此后所有的數據流都將使用雙方協商的加密機制進行加密,再封裝于隧道包頭內,用戶A所在網絡的VPN網關在接收到終端A發出的訪問數據包時對其目標地址進行檢查并封裝構造一個新的VPN數據包,然后將封裝后的原數據包作為VPN數據包的負載發送到Internet。用戶B所在網絡的VPN網關對接收到的數據包進行檢查并解封裝,然后將還原后的原始數據包發送至目標終端B,在終端B看來,它收到的數據包就和從終端A直接發過來的一樣。從終端B返回終端A的數據包處理過程與上述相同。由于VPN技術的加密與解密、封裝和解封裝,在此過程會產生新的VPN數據包,使得網絡吞吐量加大,網絡延遲也相應增加。之后數據包發送完畢,網絡吞吐量和網絡延遲也緩慢下降,分別如圖8和圖9所示。
圖8 企業網絡吞吐量情況
Fig.8 Enterprise network throughput
圖9 企業網絡的網絡延遲情況
Fig.9 Enterprise network delay
7 結論(Conclusion)
VPN允許遠程站點或企業分支機構使用Internet等公共互聯網絡的路由基礎設施以安全的方式建立連接,具有節約成本、增強安全性、容易擴展、支持新興應用等特點。Diffie-Hellman算法為VPN網絡對等體雙方提供加密和解密所需的密鑰,以保證通信雙方的數據機密性。VPN技術在企業內網中的配置較為復雜,另外由于隧道技術、數據機密性、完整性和認證等安全保障策略,導致網絡吞吐量隨著VPN數據包的生成而增大,網絡延遲也相應增加,使得網絡產生抖動,數據的傳輸質量也隨之減低,因此提高VPN網絡的應用性能是亟待解決的問題。
參考文獻(References)
[1] Diffie W,Hellman M E.New Directions in Cryptography[J].
IEEE Transactions on Information Theory,1976,22(06):644-654.
[2] 崔北亮.CCNA認證指南(640-802)[M].北京:電子工業出版
社,2009:551-556.
[3] 余海冰,潘澤宏.Diffie-Hellman密鑰交換技術綜述[J].科技信
息,2007(10):51-52.
[4] 汪志達,葉 偉.Diffie-Hellman密鑰交換的算法實現與應用研
究[J].計算機應用與軟件,2008,25(05):260-261.
[5] 李必濤,等.一種能夠抵抗主動攻擊的改進Diffie-Hellman密
鑰協商方案[J].中央民族大學學報(自然科學版),2008,17(04):
54-57.
[6] 閻軍智,李鳳華,馬建峰.基于Diffie-Hellman算法的分層密鑰
分配方案[J].電子學報,2011(01):119-123.
[7] 楊增福.基于Diffie-Hellman方法的密鑰協商協議的設計與分
析[D].鄭州:鄭州大學,2012:3-14.
[8] 寇應展,等.基于IPSec的VPN實現技術研究[J].科學技術與工
程,2006,06(14):2171-2173.
[9] 陳旭.虛擬專用網VPN 在企業辦公中的應用[J].計算機安全,
2007(09):59-61.
[10] 李緒亮.校園網的VPN方案設計[D].濟南:山東大學,2011:
13-25.
[11] 董芳.虛擬專用網(VPN)的研究與實現[J].集寧師范學院學
報,2013,35(02):107-108;114.
作者簡介:
李清平(1969-),男,本科,副教授.研究領域:計算機網絡技
術教學與應用.
孟祥芳(1978-),女,本科,講師.研究領域:高職教學管理.
黃莉平(1986-),女,碩士,軟件設計師.研究領域:網站開發
和編程.endprint