一种基于镜像流的SSL/TLS协议明文数据采集方法技术

技术编号:16132349 阅读:31 留言:0更新日期:2017-09-01 22:32
本发明专利技术提供了一种基于镜像流的SSL/TLS协议明文数据采集方法,所述方法包括:步骤1)接收镜像的SSL/TLS数据包,对数据包中的记录进行提取,生成若干个完整记录,放入记录队列;步骤2)从记录队列里的记录中提取若干个完整消息,放入消息队列;步骤3)对消息队列中的消息进行解析,获取明文数据。本发明专利技术的方法根据SSL/TLS协议的封装格式,将数据包拼接成完成记录、进一步提取完整的单个消息之后再处理,对服务器是否将多个消息合成一个记录或者将单个消息封装到多个记录之中没有要求,且可以灵活选择加入需要解析的新消息,可扩展性好;本发明专利技术的方法对交换机镜像数据进行处理获取明文数据,不干涉系统原有业务,不影响系统性能。

【技术实现步骤摘要】
一种基于镜像流的SSL/TLS协议明文数据采集方法
本专利技术属于网络安全通信
,具体涉及到一种基于镜像流的SSL/TLS协议明文数据采集方法。
技术介绍
SSL协议及其继任者TLS协议,是为网络安全提供安全性及数据完整性的一种安全协议。SSL/TLS协议位于TCP/IP协议和应用层协议之间,可为各种应用层协议提供安全性保证,例如FTP、TELNET协议等,目前SSL/TLS协议最广泛的应用是保护HTTP协议安全。SSL/TLS协议包括两层:记录层协议和握手协议。记录协议为高层握手协议提供基本的安全服务,保证数据完整性,具体包括压缩解压缩、加解密、计算和校验MAC等。握手层协议包括握手协议、密码参数修改协议、告警协议和应用数据协议,用于通信双方认证、协商加密算法和生成秘钥等。由SSL/TLS协议保护的高层协议在客户端与服务器之间传输的为密文数据,并没有明文出现,这为数据审计带来了困难。需采取一些技术手段,将SSL/TLS通信过程中密文数据解密为明文数据,再对相应明文数据进行解析审计。如图1所示,现有技术中,通常在客户端与服务器之间引入SSL/TLS代理服务器,代理服务器串联在客户端与服务器之间,分别与客户端、服务器建立两条SSL/TLS连接。由于SSL/TLS代理服务器需获得数据后,进行解密获得明文数据,再将明文数据加密发送至客户端,额外的加密操作为系统带来了负担,导致系统响应时间变长、吞吐率降低。
技术实现思路
本专利技术的目的在于克服目前SSL/TLS通信过程中将密文数据解密为明文数据时存在的上述缺陷,提出了一种基于镜像流的SSL/TLS协议明文数据采集方法,通过该方法可以不通过SSL/TLS代理服务器,直接利用合法持有的服务器证书及私钥对SSL/TLS协议的密文数据进行解析,从而直接获得明文数据,减少了中间环节,提高了明文数据的获取的效率。为了实现上述目的,本专利技术提出了一种基于镜像流的SSL/TLS协议明文数据采集方法,所述方法包括:步骤1)接收镜像的SSL/TLS数据包,对数据包中的记录进行提取,生成若干个完整记录,放入记录队列;步骤2)从记录队列里的记录中提取若干个完整消息,放入消息队列;步骤3)对消息队列中的消息进行解析,获取明文数据。上述技术方案中,所述步骤1)具体包括:步骤101)接收镜像的SSL/TLS数据包;步骤102)从数据包中提取出第一条记录,查看记录缓存区是否有缓存记录,若不存在缓存记录,则直接计算接收的第一条记录的长度;若记录缓存区中存在缓存记录,则将数据包拼接至缓存记录后,计算出当前缓存的第一条记录的长度;步骤103)将第一条记录的长度和数据包长度进行比较,若第一条记录的长度加记录头长度等于数据包长度,转入步骤104);若第一条记录的长度加记录头长度小于数据包长度,转入步骤105);若第一条记录的长度加记录头长度大于数据包长度,转入步骤106);步骤104)将该记录放入记录队列;步骤105)对数据包进行拆分,循环提取单条完整的记录放入记录队列,并将最后不完整的记录放入记录缓存区;步骤106)将该记录放入记录缓存区;转入步骤101);放入记录缓存区的不完整记录等待后续的数据包进行拼接,然后再生成完整记录。上述技术方案中,所述步骤2)具体包括:步骤201)从记录队列里取出一个记录作为当前记录,步骤202)查看当前记录的类型,若当前记录类型为应用数据协议、改变密码规范协议或告警消息,转入步骤203);若当前记录类型握手协议,转入步骤204);步骤203)当前记录为单条完整的消息,放入消息队列;步骤204)查看消息缓存区是否有缓存消息,若不存在缓存消息,则直接计算当前记录中第一条消息的长度;若缓存中存在缓存消息,则将当前记录拼接至缓存消息后,计算出当前缓存的第一条消息的长度;步骤205)将计算的第一条消息的长度和当前记录长度进行比较,若第一条消息的长度加消息头长度等于当前记录长度,转入步骤206);若第一条消息的长度加消息头长度小于当前记录长度,转入步骤207);若第一条消息的长度加消息头长度大于当前记录长度,转入步骤208);步骤206)当前记录为单条完整消息,放入消息队列;步骤207)当前记录内含有多条消息,则对该记录进行拆分,循环提取若干条完整的消息放入消息队列;并将最后不完整的消息放入消息缓存区;步骤208)当前记录为一条不完整的消息,放入消息缓存区,转入步骤201);放入消息缓存区的不完整消息等待后续的记录进行拼接,然后再生成完整消息。上述技术方案中,所述步骤3)的具体实现过程为:从消息队列中取出一条消息,若消息类型为握手协议,则提取密码规范和秘钥信息;若消息类型为改变密码协议规范,则接下来的记录都会用新协商的密码规范和秘钥来保护;若消息类型为告警消息,则分析消息的严重性与告警描述;若消息类型为应用数据协议,则利用提取的密码规范和秘钥对传输数据进行解密,获取明文数据。上述技术方案中,所述握手协议包括:ClientHello、ServerHello、SeverCertificate、ServerHelloDone、ClientKeyExange、NewSessionTicket和Finished,所述提取密码规范和秘钥信息的具体步骤为:步骤301)若握手协议类型为ClientHello,则记录客户端随机数、session_id和session_ticket;步骤302)若握手协议类型为ServerHello,则判断是否发生会话重用,若发生会话重用,则从缓存会话信息中提取主秘钥和加密算法规范,并生成密码参数;若没有发生会话重用,则记录协议版本、服务端随机数、sesseion_id、加密套件和压缩算法;步骤303)若握手协议类型为SeverCertificate,则提取服务器公钥,查找匹配证书获取服务器私钥;步骤304)若握手协议类型为ServerHelloDone,则此时服务端已经完成秘钥交换消息;步骤305)若握手协议类型为ClientKeyExange,则利用服务器解密预主秘钥,计算主秘钥,并生成安全参数;若该会话为新回话,则将会话信息进行缓存;步骤306)若握手协议类型为NewSessionTicket,若此时没有发生会话重用,则填入缓存的会话信息中session_tiket项,若发生会话重用,则将缓存的会话信息中session_tieket项进行更新;步骤307)若握手协议类型为Finished,则验证相应方向的全部握手数据,待两方均验证通过后,即可开始应用数据传输。上述技术方案中,所述步骤3)还包括:获取明文数据后,对明文数据进行解析,生成审计日志并进行存储。与现有技术相比,本专利技术的优势在于:1、本专利技术的方法根据SSL/TLS协议的封装格式,将数据包拼接成完成记录、进一步提取完整的单个消息之后再处理,对服务器是否将多个消息合成一个记录或者将单个消息封装到多个记录之中没有要求,且可以灵活选择加入需要解析的新消息,可扩展性好;2、本专利技术的方法对交换机镜像数据进行处理获取明文数据,与传统的引入代理服务器方式相比,不干涉系统原有业务,不影响系统性能。附图说明图1为现有的SSL/TLS协议明文数据采集系统示意图;图2为本专利技术的基于镜像流的SSL/TLS协议明文数据采本文档来自技高网...
一种基于镜像流的SSL/TLS协议明文数据采集方法

【技术保护点】
一种基于镜像流的SSL/TLS协议明文数据采集方法,所述方法包括:步骤1)接收镜像的SSL/TLS数据包,对数据包中的记录进行提取,生成若干个完整记录,放入记录队列;步骤2)从记录队列里的记录中提取若干个完整消息,放入消息队列;步骤3)对消息队列中的消息进行解析,获取明文数据。

【技术特征摘要】
1.一种基于镜像流的SSL/TLS协议明文数据采集方法,所述方法包括:步骤1)接收镜像的SSL/TLS数据包,对数据包中的记录进行提取,生成若干个完整记录,放入记录队列;步骤2)从记录队列里的记录中提取若干个完整消息,放入消息队列;步骤3)对消息队列中的消息进行解析,获取明文数据。2.根据权利要求1所述的基于镜像流的SSL/TLS协议明文数据采集方法,其特征在于,所述步骤1)具体包括:步骤101)接收镜像的SSL/TLS数据包;步骤102)从数据包中提取出第一条记录,查看记录缓存区是否有缓存记录,若不存在缓存记录,则直接计算接收的第一条记录的长度;若记录缓存区中存在缓存记录,则将数据包拼接至缓存记录后,计算出当前缓存的第一条记录的长度;步骤103)将第一条记录的长度和数据包长度进行比较,若第一条记录的长度加记录头长度等于数据包长度,转入步骤104);若第一条记录的长度加记录头长度小于数据包长度,转入步骤105);若第一条记录的长度加记录头长度大于数据包长度,转入步骤106);步骤104)将该记录放入记录队列;步骤105)对数据包进行拆分,循环提取单条完整的记录放入记录队列,并将最后不完整的记录放入记录缓存区;步骤106)将该记录放入记录缓存区;转入步骤101);放入记录缓存区的不完整记录等待后续的数据包进行拼接,然后再生成完整记录。3.根据权利要求2所述的基于镜像流的SSL/TLS协议明文数据采集方法,其特征在于,所述步骤2)具体包括:步骤201)从记录队列里取出一个记录作为当前记录,步骤202)查看当前记录的类型,若当前记录类型为应用数据协议、改变密码规范协议或告警消息,转入步骤203);若当前记录类型握手协议,转入步骤204);步骤203)当前记录为单条完整的消息,放入消息队列;步骤204)查看消息缓存区是否有缓存消息,若不存在缓存消息,则直接计算当前记录中第一条消息的长度;若缓存中存在缓存消息,则将当前记录拼接至缓存消息后,计算出当前缓存的第一条消息的长度;步骤205)将计算的第一条消息的长度和当前记录长度进行比较,若第一条消息的长度加消息头长度等于当前记录长度,转入步骤206);若第一条消息的长度加消息头长度小于当前记录长度,转入步骤207);若第一条消息的长度加消息头长度大于当前记录长度,转入步骤208);步骤206)当前记录为单条完整消息,放入消息队列;步骤207)当前记录内含有多条消息,则对该记录进行拆分,循环提取若干条完整的消息放入消息队列;并将最后不完整的消息放入消息缓存...

【专利技术属性】
技术研发人员:宋磊闫露董海韬伍洪桥叶晓舟
申请(专利权)人:中国科学院声学研究所北京中科智网科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1