• / 29
  • 下载费用:5 金币  

5VPN中的SSL协议分析.pptx

关 键 词:
VPN 中的 SSL 协议 分析
资源描述:
,VPN中的SSL协议,组员贾潞汀 2015140327易晓露 2015140307郑旭 2015140388王霄 2015140905,,,1. SSL VPN简介,2.抓包工具Wireshark,3. SSL密钥交换 整体流程,,随着计算机网络的发展,网络安全越来越受到人们的关注。出于对安全的需求,越来越多的企业都开始部署虚拟专用网(VPN)。目前,市场上的VPN主要有基于IPSec和基于SSL的两大类型。,VPN,VPN简介,,,SSL VPN凭借其简单易用、部署和维护成本低的特点,并且已经能满足大多数企业基于Web的应用的需求,在未来几年,SSL VPN将越来越受到企业的青睐。 SSL VPN就是采用基于SSL协议构建的虚拟专用网技术,SSL协议也称为安全套接层协议,它是由网景公司提出的为应用层提供保护的安全协议。我们将使用wireshark工具抓取SSL协议的数据包,来验证VPN技术中SSL协议的安全性。,SSL VPN,,,1. SSL VPN简介,2.抓包工具Wireshark,3. SSL密钥交换 整体流程,Wireshark是目前最受欢迎的抓包工具。它可以运行在 Windows、Linux 及 MAC OS X 操作系统中, 并提供了友好的图形界面。 同时,Wireshark 提供功能强大的数据抓包功能。使用它,可以以各种方式抓取所需要的网络数据包。 在抓包前,先通过在VPS服务器上搭建VPN。VPN信息如下,IP地址为192.168.100.39。,Wireshark,在抓包前,先通过在VPS服务器上搭建VPN,VPN信息如图 IP地址为:192.168.100.39。,打开wireshark后如下图所示,在Interface List选项设置要抓取数据包的网卡信息,选择使用的VPN,点击Start后wireshark将会抓取网卡收发的数据包信息。 右侧是已经抓取的一些数据包。,,,1. SSL VPN简介,2.抓包工具Wireshark,3. SSL密钥交换 整体流程,,揭秘 SSL密钥交换整体流程 1. 换hello消息,对于算法,交换随机值等协商一致。 2. 交换必要的密码参数,以便双方得到统一的premaster secret。 3. 交换证书和相应的密码信息,以便进行身份认证。 4. 生master secret。 5. 把安全参数提供给TLS记录层。 6. 检验双方是否已经获得同样的安全参数。,,上述过程,如右图所示: 下面根据抓取的数据包来具体的分析SSL协议的工作流程,并说明这一过程为何可以防止第三方篡改,截获以及假冒,验证其安全性。,,1.建立TCP连接 这部分是建立TCP连接的过程,在客户端(55298)与服务器端(443)经过请求连接、授予连接、确认三次握手的过程后,建立起TCP连接。,Client server,,2.客户端发送client hello 首先,客户端向服务端发送Client Hello消息,传送客户端 SSL 协议的版本号,所有支持的密码套件(Cipher Suites),随机值(random)以及其他服务器和客户端之间通讯所需要的各种信息。Client Hello消息的具体内容如下图所示:,,客户端发送的CilentHello信息中具体包括如下内容:①客户端可以支持的SSL版本号(version).②用于生成session key的32字节的随机数CR(random)。③客户端可以支持的密码套件列表(cipher suites)。④客户端可以支持的压缩算法列表(compression methods)。,在这一部分中,content type, version, handshake type在后续的消息中也会出现.其中,content type表示SSL 通信所处的阶段,具体的对应关系如下表所示:,由上图和上表我们可以验证此时SSL通信所处的阶段为handshake。,,Version Type是TLS的版本,后面的数字代表了不同的major version和minor version。本次抓取的数据包中的version为TLS1.0代表major version=3,minor version=1。 其具体对应关系如下表所示:,Handshake type 表示handshake目前所进行到的阶段。其对应关系如下表:,,Cipher Specs指密码套件,该字段是一个枚举类型,说明了客户端所支持算法,每个Cipher Spec指定了一个加密组合,每个加密组合包含三种算法,包含密钥交换算法、加密算法、散列算法。服务端即sever会在客户端提供的加密组合中选取一组,在此次SSL通信中使用。 Random随机数是根据一个随机种子生成,这里的随机种子是gmt_unix_time,根据这个时间,使用伪随机数函数(PRF)生成一个32字节的random_bytes。 Compression methods压缩算法,Record层接收高层协议的数据时,会将数据进行分片,对于每个分片可以选择使用一定压缩算法来提高加密和传输效率。,,3.服务端回应 sever hello服务端回应客户端的sever hello中包含的具体内容为: ①SSL版本号(version)。在SSL通信过程中取客户端支持的最高版本号和服务端支持的最高版本号中的较低者。 ②用于生成主秘密的32字节的随机数SR(random)。在之前的内容中提到过,在客户端发来的client hello消息中也含有一个32字节的随机数。 ③会话ID(session ID)。Session ID是一组任意字节数的序列,如果对话中断,下次重连的时候,只要客户端给出这个编号,且服务器有这个编号的记录,双方就可以重新使用已有的"对话密钥",而不必重新生成。,,④一个密码套件(cipher suites)。该密码套件是从客户端支持的密码套件中所选择出来的。这次选择出来的是TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)。 ⑤压缩算法(compression methods),从客户端的压缩方法的列表中选择出。这里没有使用压缩算法。,,说明: 第2步和第3个步相当于SSL进行通信的建立安全能力的一个过程,在该过程的交互后,客户端和服务端确定了SSL版本,得到了密钥交换的算法,加密算法及信息验证的算法,压缩算法,还有客户端和服务端产生的两个随机数,该随机数用于后续的通信过程中产生session key。客户端和服务端确定的这些参数以及算法为后续的阶段做好准备。,,4.服务端的验证和密钥交换 在这一阶段中,首先服务器将数字证书和到根CA整个链发给客户端,使客户端能用服务器证书中的服务器公钥认证服务器。然后进行服务器端的密钥交换,服务器端的验证和密钥交换(sever key change)都是通过前面2、3阶段确定的密钥交换算法来进行的,从前面第3阶段的抓包截图中我们可以看出密钥交换算法为RSA,则服务器在向Client端发送的证书中含有public key,而sever端保留好该public key对应的private key, 在之后的步骤中来证明Sever端是证书的拥有者,服务端拥有私钥是一个证据,可以证明服务器是一个它在第一个信息发送的公钥证书中要求的实体。最后发送sever hello done信息,表示服务端握手结束,表明这一阶段的结束,下一阶段的开始。,,总之,在这一阶段中,客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的发行者的数字签名,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行下一步。,,5.客户端的验证和密钥交换 在这一阶段中client发送client key exchange ,来与sever交换 session key。用户端随机产生一个随机数premaster secret,然后用服务器的public key(服务器的public key从步骤4中的证书中获得)对其加密,然后将加密后的premaster secret传给服务器,服务器端用自己拥有的private key解密,从而服务端和客户端双方均得到premaster key。 另外,若在上一步骤中服务端对客户端发出证书请求,该阶段中客户端为向服务端证明自身向服务端发送证书信息,同时进行证书的权限验证,这部分属于可选内容,在本次抓包中没有这一步骤。,,在双方均得到premaster secret后,根据约定的加密方法,使用前面交互过程中得到的三个随机数(CR,SR,premaster secret),生成“对话密钥”(session key),用来加密接下来的整个对话过程。这一过程主要用到前面2、3阶段中产生的随机数(random)CR和SR以及一些常量字节流以及premaster secret经过两次hash后或者说经过一个伪随机函数PRF得到master secret, 之后master secret与key expansion常量以及CR和SR经过伪随机函数运算后得到密钥材料,最后从密钥材料中获得session key,IV。客户端和服务端的session key不同,但只要双方彼此知道对方的密钥即可。为了保证信息的完整性和机密性,SSL提取出两个IV,即对称算法中的初始化向量,服务端和客户端各一个,另外还有两个双方加密正文的密钥以及两个计算handshake 数据hash的key。具体从premaster secret到session key和IV的过程如图1~3所示:,图1由premaster secret 计算master secret,,图2 由master secret计算得到密钥材料,图3 从密钥材料提取加密密钥,,6. client发送change cipher spec 以及finished,客户端向服务器端发出信息(Change cipher spec),指明后面的数据通讯将使用的步骤5中的session key为对称密钥。,,客户端将经过一系列的运算得到的加密的握手信息发送给服务端,用来证明握手信息没有篡改过,以及自己是密钥拥有者。,,7. sever发送change cipher spec以及finished,服务器向客户端发出信息(Change Cipher Spec),指明后面的数据通讯将使用的步骤(5)中的session key为对称密钥,同样的,与client发送finished的算法一致,sever发送的加密信息,client会进行验证,如果通过就能证明握手信息没有篡改过,以及自己是密钥拥有者。从此,双方就可以开始后续通信。,,8.开始SSL安全通道的数据通信,这一阶段表示SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。该过程的数据包如下图所示:,从此过程开始,TLS Record层使用Application Data Protocol通信。 从上面的描述中,我们可以得到,SSL建立握手连接主要完成两个任务,第一个是身份的验证,客户端与服务端确认对方身份,防止第三方冒充,这个通过证书来实现;第二个任务是客户端和服务端交换session key,用于连接后的数据的传输加密和hash检验。,谢谢观看!,组员贾潞汀 郑旭易晓露 王霄,
展开阅读全文
1
  金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:5VPN中的SSL协议分析.pptx
链接地址:http://www.gold-doc.com/p-256961.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
copyright@ 2014-2018 金牌文库网站版权所有
经营许可证编号:浙ICP备15046084号-3
收起
展开