OpenVPN协议解析-握手数据包分析

OpenVPN协议解析-握手数据包分析

ID:46549386

大小:95.50 KB

页数:11页

时间:2019-11-25

OpenVPN协议解析-握手数据包分析_第1页
OpenVPN协议解析-握手数据包分析_第2页
OpenVPN协议解析-握手数据包分析_第3页
OpenVPN协议解析-握手数据包分析_第4页
OpenVPN协议解析-握手数据包分析_第5页
资源描述:

《OpenVPN协议解析-握手数据包分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、学习一种协议的最好的方式就是研究它的数据包,这样可以加深对协议的理解。对于研究过某种协议数据包的家伙来讲,他一定知道协议头的哪个位置对应哪个字段,虽然这对于理解协议为什么这么设计可能没有太人的帮助,然而对于排查问题和实际实施是很冇帮助的。既然很多人都对RichardStevens的《TCP/IP详解》情冇独钟,咱就剽窃他的风格,解析一下OpenVPN的握手是如何完成的。木文分析70余个数据包,当然,最终我会略去重复的内容,来看看OpenVPN的握手协商过程。1•分析前的解释•数据包格式本文以如下格式分析每一个握乎数据包,具体Op

2、enVPN数据包的格式,请参阅《OpenVPN协议解析■网络结构之外》:1.1.1.*文为了节省篇幅,省去了UDP以下各层的数据,直接从OpenVPN的封装开始。1/12以下为数据包格式,xx为十六进制字节:方向,分别为Server->Client和Client・>Server

3、xx

4、:操作码+keyid,1字节,xx右移5位就是操作码

5、xx

6、xx

7、xx

8、xx

9、xx

10、xx

11、xx

12、xx

13、:sessionID,这个ID是单方向的,8字节

14、xx

15、xx

16、xx

17、xx

18、xx

19、xx

20、xx

21、xx

22、1a

23、de

24、38

25、06

26、ab

27、5e

28、55

29、0f

30、

31、8f

32、ed

33、ea

34、ca

35、:数据包消息MAC,本文启用tls-auth选项,本文MAC长度20字节(使用SHA1)

36、xx

37、xx

38、xx

39、xx

40、xx

41、xx

42、xx

43、xx

44、:包id和时间戳,包括ack包的id和时间戳,在该方向每法送一个包,包id都会递增。8字节

45、xx

46、[...

47、xx

48、...]:如果ackbufferlength长度为0,没有ack信息,如果不为0,则后面包含确认的包序列号,然后追加一个对端的sessionid,变长

49、xx

50、xx

51、xx

52、xx

53、:包序列号,不包括ack包,也就是说,发送一个非PACK包,包序列号才会递增,实际

54、上如果是P_ACK包,根本就没有这一行字段。4字节1.2.TLS/SSL握手协议关于TLS/SSL握手协议,最好的资料是RFC,然后或许看OpenSSL的源码上手更快些。这里仅给出儿个图示和儿点解释,SSL握手协议包格式如2IPleaderTCPheaderSS!.recordheaderhandshakeheader7handshakedataHMAC20bytes20bytes5hytes4bytes4016or20bytes<—handshakenu'ssdge—■—^Xr—padding—"Sr—SSI.recordTC

55、PsegmentIPp

56、于类世分别为:Clienthello:0x01Serverhello:0x02Certificate:0x0bServerkeyexchange:0x0cCertificaterequest:OxOdServerhellodone:OxOeCertificateverify:OxOfClientkeyexchange:0x10Finish:0x141.3.SSL握手协议和OpenVPN握手的关系我们知道,OpenVPN的连接建立使用了SSL握手协议,可是却抓不到SSL握手包,实际上SSL握手协议是作为一种载荷封装在了OpenVP

57、N的协议包里面了,SSL握手协议数据实际上是写入了一块内存,然后OpenVPN从该内存中读出这些数据包,然后封装后通过reliable层发出,数据到达对端后,解封装后写入一块内存,然后SSL从内存屮读;l;SSL握手载荷,一切都是通过BIO实现的。(如不其理解,请参阅《OpenVPN协议解析■网络结构之外》)可以看出,SSL和OpenVPN属于不同的层次,SSL握于协议在OpenVPN握手协议Z上,然而当SSL握手结束后,OpenVPN的密钥协议又在SSL记录协议协议Z上,更清晰的图示如下所示:提供安全通道提供密钥ILS/SSL

58、握手OpenVPN握手协议密钥交换找荷SSL记录协议ip数据报/以太帧ReliabiltyLayerOpenVPN记录协议OpenVPN^路复用/解复用协议(OVPN头);操作码^KEYIDUDP因此,OpenVPN握手协议可以将SSL握手载荷随意拆分和合并,它

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。