APP下载

基于SSLVPN的密钥分配的安全性分析

2017-03-07舒晓飞蒋念平

电子科技 2017年2期
关键词:会话服务端加密算法

舒晓飞,蒋念平

(上海理工大学 光电信息与计算机工程学院,上海200093)

基于SSLVPN的密钥分配的安全性分析

舒晓飞,蒋念平

(上海理工大学 光电信息与计算机工程学院,上海200093)

针对SSL VPN协议中密钥分配存在安全隐患的问题,采用Openssl和Wireshark抓包软件,对SSL协议以及密钥管理的安全性进行了分析。针对分析的结果,提出采用量子密钥分配技术解决SSL VPN密钥分配过程中安全隐患问题,尽可能少的对原协议的修改,通过对密钥的获取和替换,给出合理的实现方案,提高数据传输的安全性。

SSL VPN;SSL协议;Openssl;Wireshark;密钥分配;量子密钥

互联网技术的发展,致使人们对信息安全有了更多的要求。SSL VPN(Security Socket Layer Virtual Private Network)技术具有廉价、易于安装和管理以及细粒度的访问控制等优点[1]。自该项技术被开发以来,就成为当前主要解决方案。SSL VPN是网络应用层的一种远程访问技术,不仅基于自身成熟的SSL协议,而且可以满足大多数网络用户的需求,近年在企业网中得到了广泛应用[2]。目前主要的SSL VPN方案与产品都是依赖于SSL协议的握手协议实现密钥管理,大幅降低了配置和管理上的复杂性。SSL VPN 作为一种安全技术,在实际应用中还存在一些安全隐患。作为一种确保信息安全传输的重要数据传输技术,为了实现更高的安全性,文中主要对 SSL VPN 协议中密钥分配优缺点和安全问题做一个综述性的介绍,并且给出了相应的解决方案。

1 VPN概述

虚拟专用网络(Virtual Private Network,VPN),是通过公用网络建立起来一个临时的、有安全保障的通道,是一条通过公用网络搭建起来的相对安全并且稳定的隧道[3]。VPN在公共网络中单独的建立私人通道,在数据的传送过程中,通过隧道技术确保其不会被窃取。简而言之,就是在复杂和不安全的公有网络上建立起的安全和信任的私有网络[4]。以OSI模型参照标准,不同的VPN技术可以在不同的OSI协议层实现[5]如图1所示。

图1 VPN在不同OSI层次中的实现

2 SSL VPN结构分析

SSL VPN是嵌入在浏览器里,不同于IPSec VPN需要对每台客户机安装客户端软件才能使用。浏览器先是与SSL VPN浏览器进行连接,接着将利用对网络进行封包并转向的办法,使用者能够在异地运行该应用程序时,并读取服务器里的数据。SSL介于应用层和TCP层之间,如图2所示。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL协议是基于WEB应用的安全协议,能保证数据的真实性、完整性和机密性[6]。

图2 SSL在协议中的位置

作为安全产品,SSL VPN利用了对称密码技术来实现数据的加密,非对称加密技术实现密钥的交换,利用PKI技术作为整个系统认证的基础,通过这些密码技术,实现了通信安全的3个主要目标:即消息的完整、保密性、对端点的认证[7]。

SSL协议的目的是为了客户端和服务端经过加密的SSL信道搭建起更有保障和稳定的传输通道。它是分层的协议。在每一层协议里,包含了消息的长度,已经描述的内容。SSL主要包含两个协议:握手协议和记录协议。握手协议是为通信双方建立会话通道;记录协议是对数据进行封装。图3为SSL协议的结构示意。

图3 SSL协议结构

3 SSL协议分析

SSL VPN自问世以来,虽然因其对数据有着较好的安全保障,而得到了广泛的应用,但是其安全性是有条件的[8]。随着计算机性能的提升,算法就会有可能被破解,因此其本身依然存在着安全隐患。2014年,Openssl就被谷歌一工程师发现了轰动世界的Heartbleed漏洞。

SSL协议中最重要的就是握手协议,握手协议是客户机和服务器用SSL连接通信时使用的第一个子协议[9]。SSL握手是在SSL协议的第一阶段建立的,经过了SSL握手,客户端和服务端就会互相认证身份并且建立起连接,同时明确了加密需要的算法以及将要用到的会话密钥。握手协议的过程如图4所示。

图4 握手协议过程

首先客户端会给服务端发送一个Client hello消息,消息内容包含:客户端能够支持SSL的最高版本号;一个用于生成主秘密(Master-secret)的32字节的随机数[10];一个确定会话的会话ID;一个客户端可以支持的密码套件列表以及压缩算法列表。其中密码套件列表包含:密钥交换算法、加密算法、散列算法。接着服务端就会返回给客户端一个Server hello消息,消息内容包含的内容与Client hello一样。

接下来服务端先发送一个服务器证书,客户端对服务端发来的证书会进行一系列验证,并从证书中抽取出来服务器中包含的公共密钥,客户端用这个公共密钥将产生一个预共享密钥Pre-master-secret,并利用这个预共享密钥用之前服务端的公钥加密后发送给服务端。在发送前,客户端也会发送自己的证书给服务端认证,认证后才会接收客户端发送来的预共享密钥。至此客户端和服务端都共享一个预共享密钥,并且也互相认证了对方的身份[11]。

然后客户端根据预共享密钥,字符串以及之前生成的客户端随机数经过复杂的计算生成主密钥(Master-secret),服务端用私钥解密得到预共享密钥,接着也生成主密钥(Master-secret)。最后经过散列算法,依次得到MAC密钥、会话密钥、会话ID。到此握手协议结束。如图5所示为SSL协议中密钥的导出过程。

图5 密钥的导出过程

计算主密钥的公式为

Master_secret =

MD5(Pre_master_secret+SHA-1(“A”+pre_master_secret+client_random+server_random

+MD5(Pre_master_secret+SHA-1(“BB”+Pre_master_secret+client_random+server_random))

+MD5(Pre_master_secret+SHA-1(“CCC”+Pre_master_secret+client_random+server_random))

密钥分组的计算公式为

Keyblock =

MD5(master_secret+SHA-1(“A”+master_secret+client_random+server_random

+MD5(master_secret+SHA-1(“BB”+master_secret+client_random+server_random))

+MD5(master_secret+SHA-1(“CCC”+master_secret+client_random+server_random))

SSL VPN的密钥导出函数为一系列基于MD5和SHA-1组合的扩展函数。并使用诸如“A”,“BB”等便签常量确保每个摘要的输出都不相同。

4 SSL VPN与量子密钥结合的方案

4.1 SSL VPN密钥分配安全隐患分析

在搭建好客户端和服务端进行通信,并用Wireshark对数据进行抓包,对比发现SSL VPN在第一次会话中通过握手协议完成客户端与服务端身份认证并协商密钥和加密算法,等这次会话结束,下次会话当客户端和服务器再次握手时,不再协商加密算法和主密钥,握手协议的安全完全依赖于对主密钥的保护,并且每次会话中无论时间长短,都会一直使用生成几组密钥,不会变动[12]。密钥协商过程以及用于认证的预共享密钥技术的安全性,都依赖于复杂繁琐的数学计算推导,因此只要某次会话的密钥被窃取,就意味着这组数据所有的内容都被窃取获得,无法保证这组数据传输的安全。

第一次和第二次握手协议的过程,首次会话需要客户端和服务端互相交换证书来证明和确认对方身份,之后再次对话就不需要这个环节,直接默认对方的身份;同时通过交换证书用于确认身份的密钥也没有改变,在握手过程中,确定的加密算法、摘要算法、压缩算法以及首次会话中计算出的预共享密钥和主密钥,在之后的对中都是没有改变的;而之后的会话密钥则是通过之前确定的主密钥和随机数加上不同长度的字符长度通过确定好的摘要算法进行计算得出会话密钥[13]。如下所示为通过抓包所得密钥的算法

Handshake Protocol: Server Hello

Handshake Type: Server Hello

Length: 85

Version: TLS 1.0(0x0301)

Random

SessionID Length: 32

SessionID:

66965c873ce25aff4b89b1545e089b1545e0

8b4cbd0087bf823ba9d8

CipherSuite:

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0XC014)

Compression Method: null(0)

发现首次握手协议确定的加密、摘要、压缩算法,之后的会话中并没有改变。因此SSL协议在首次握手之后确定了所有的密钥和加密算法,之后对话的安全性完全依赖于加密算法的复杂度,随着计算机能力的不断提升,这样的密钥分配机制使得其安全性并不保险。一旦加密算法被破解,密钥被复制,其传送的信息就会被窃取。

4.2 量子密钥的安全性

随着量子通信技术的迅速发展[14],运用量子技术研制出的密钥,具有不复制性的,理论上是不可能被窃取。量子密钥的安全性是基于量子力学为基础的,量子密钥技术可以是客服端和服务端实现绝对的无条件安全的密钥分配,它的安全性是基于量子力学的基本理论来确保,窃听信息者即便有着无限的计算能力也将无法获取任何关于安全密钥的信息。

在实际的数据传输中运用量子密钥不仅可以有效的防治黑客对传送的数据进行窃取,同时量子密钥在运输过程中充当密码的都是一次性的,每个量子代表1 bit的数据,量子密钥将以极化和运动方向来表示数据码。量子密钥有4种极化方式:水平、垂直为一组;两条对角线为一组[15]。同时量子密钥还是不可复制的,黑客根本无法知道量子的状态也就无法窃取运输的数据,保证了数据传输的绝对安全。

4.3 方案的提出与分析

针对SSL VPN密钥分配安全性问题,提出一种在不改变SSL协议结构的前提下,通过替换协议过程中协商的密钥,替换为更高安全级别的密钥的方案;根据 SSL协议的自身结构特征,隧道在建立的过程和此后的所有会话包含 3 种类型的密钥:(1)通信的过程中客户端与服务端用于互相身份认证的密钥;(2)通过密钥协商进而获得的预主密钥和主密钥;(3)在会话过程中由主密钥导出的会话密钥。所以量子密钥在SSLVPN 中3个不同层次中得到运用,分别作为认证密钥、主密钥和会话密钥。由于该密钥技术目前只在国内少数公司拥有这样的技术和产品,所有并没有条件做这样的方案实现,只是提出合理性的方案。如图6所示为SSLVPN与量子密钥结合的协议步骤。

图6 SSLVPN与量子密钥结合的协议步骤

通信过程中量子密钥的分配与SSL VPN 的结合,最大限度的确保了数据传输的安全性,使其具有安全性、简洁性和可拓展性。这种方法结合了量子密码,并在SSL VPN 中用作认证密钥、主密钥和会话密钥,利用添加的消息协商过程来协商与量子密码生成和提取等相关的内容,整个协议都是以在不变动已有SSL协议为条件,且运作简单易行[16]。

5 结束语

SSL VPN 的整个系统或者过程,并不是绝对安全的,其协议过程中协商的加密算法和密钥都存在一些安全问题,本文对此进行了研究,给出了一套全理的解决方案。

[1] 杨文凯. SSL VPN安全关键技术研究[D].成都:西南交通大学, 2010.

[2] 杜理明.基于SSLVPN技术的校园网远程访问设计[J].甘肃高师学报,2011,16(5):1-2.

[3] Chou W. Inside SSL: accelerating secure transactions[J]. It Professional, 2002, 4(5):37-41.

[4] Gentry P B. What is a VPN?[J]. Information Security Technical Report, 2001, 6(1):15-22.

[5] Tennfy.Socket5与VPN在原理上的异同[EB/OL]. (2015-05-28)[2015-12-23]www.tennfy.com.

[6] 麒麟.SSL协议详解[EB/ O L].(2012-12-02)[2015 -1 2-23].http://kb.cnblogs.com/page/162080/.

[7] 程紫尧. 多种应用环境下安全认证协议的研究[D].北京:北京交通大学,2013.

[8] 王亮. 基于WSN的ECC与AES混合加密算法研究[D]. 赣州:江西理工大学, 2013.

[9] 麻光景. SaaS平台数据安全问题的研究[D].西安:西安电子科技大学,2014.

[10] 王磊. 电子支付安全技术研究[D]. 重庆:重庆大学, 2005.

[11] 程军. 无线自动化测试工具的设计与实现[D].武汉:华中科技大学,2011.

[12] 刘东,王双,周静,等. 量子密钥在电网SSL VPN中的应用[J]. 电网科技,2014,38(2):544-548.

[13] 孙宝林,杨球,吴长海.RSA公开密钥密码算法及其在信息交换中的应用[J].武汉交通科技大学学报,2000,24(2):169-172.

[14] 章丽平.AdHoc网络中一种基于环状分层结构的组密钥协商协议[J].计算机科学,2008,35(10):61-64.

[15] 粟倩.于量子密码算法的安全通信方案研究与设计[D]. 长沙:中南大学,2012.

[16] 朱媛媛. 软件安全性测试与评估方法研究[D].镇江:江苏大学,2013.

Analysis of the Security of Key Distribution Based on SSLVPN

SHU Xiaofei,JIANG Nianping

(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology,
Shanghai 200093)

The security socket layer virtual private network (SSL VPN) key distribution has security flaws. The Openssl and Wireshark are adopted to analyze the safety of the key management of the SSL protocol. Quantum key distribution is proposed in view of the result analysis to solve the problem of safety problems in the process of SSL VPN key distribution by obtaining and replaceing the key with as little as possible modifications to the original agreement, thus improving the security of data transmission.

SSL VPN; the SSL protocol; Openssl; Wireshark; key distribution; quantum key

2016- 04- 06

舒晓飞(1990-),男,硕士研究生。研究方向:网络控制。蒋念平(1957-),男,副教授。研究方向:计算机应用等。

10.16180/j.cnki.issn1007-7820.2017.02.043

TN9.05.04;TN918.4

A

1007-7820(2017)02-165-04

猜你喜欢

会话服务端加密算法
QQ和微信会话话轮及话轮转换特点浅析
基于整数矩阵乘法的图像加密算法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
混沌参数调制下RSA数据加密算法研究
基于集群节点间即时拷贝的会话同步技术研究①
汉语教材中的会话结构特征及其语用功能呈现——基于85个会话片段的个案研究
基于小波变换和混沌映射的图像加密算法
对称加密算法RC5的架构设计与电路实现
摸清黑客套路防范木马侵入