安全外壳ssh2协议数据的采集方法和装置制造方法

文档序号:7819415阅读:163来源:国知局
安全外壳ssh2协议数据的采集方法和装置制造方法
【专利摘要】本发明实施例涉及安全外壳SSH2协议数据的采集方法和装置,客户端设备与服务端设备之间建立了SSH2连接,该方法包括:获取客户端设备与服务端设备之间传输的SSH2数据包;将SSH2数据包重组排列为有序的网络数据包;依次检测SSH2数据包的类型;若SSH2数据包的类型表明SSH2数据包为SSH2协议握手阶段的数据包,则记录原握手信息,替换为新的握手信息,当握手信息充分时推导出SSH2密钥协商后的传输密钥;若SSH2数据包的类型表明SSH2数据包为SSH2协议密文传输阶段的数据包,则利用推导出的传输密钥,将密文数据转换成明文数据,将明文数据作为采集成果输出。由上可见,本发明实施例中,可以使得数据采集器不易遭到针对性攻击,并且,提高了采集效率,用户体验好。
【专利说明】安全外壳SSH2协议数据的采集方法和装置

【技术领域】
[0001]本发明涉及网络安全通信【技术领域】,尤其涉及安全外壳SSH2协议数据的采集方法和装置。

【背景技术】
[0002]随着人们对网络安全重视程度的不断提高,安全外壳(SSH,Secure Shell)协议逐渐得到广泛应用,SSH协议由互联网工程任务组(IETF, Internet Engineering TaskForce)的网络工作小组所制定,是建立在应用层和传输层基础上的安全协议,也是目前可靠的、专为远程登录会话和其他网络服务提供安全性的协议,目前SSH协议已经逐渐取代telnet等协议,成为远程登录和传输代理的首选协议。SSH2协议是SSH协议的2.x版本,在RFC 4250-RFC 4254标准中有详细的定义和描述,由于SSH2协议具有加密传输的特点,网络中的数据采集器无法直接对网络上的SSH2协议数据进行采集分析,因此需要通过特定的采集方法将采集到的SSH2协议数据由密文数据转换为明文数据。
[0003]图1为现有技术中SSH2协议数据的采集方法示意图,参照图1,客户端设备不能直接与服务端设备建立连接,而是通过数据采集器间接的建立连接,数据采集器显式地存在于网络中,拥有自己的IP地址,集成了 SSH代理服务端和SSH代理客户端,当数据采集器对SSH2协议数据进行采集时,采用二次登录的方法,先由客户端设备向数据采集器发起SSH连接和登录,然后由数据采集器向服务端设备发起SSH连接并登录,数据采集器需要同时维护两个SSH连接,根据获得的完整的SSH消息进行解密,以便将采集到的SSH2协议数据由密文数据转换为明文数据。
[0004]由上可见,现有技术中的SSH2协议数据的采集方法存在下述缺点:(I)数据采集器显式地存在于网络中,拥有自己的IP地址,容易暴露数据采集器的网络位置,从而遭到针对性攻击;(2)数据采集器需要获得完整的SSH消息才能进行解密等操作,在SSH消息较大、网络条件不佳或者并发用户数量较多时,会造成显著的采集延时,既降低了采集效率,又会给SSH的用户带来很差的操作体验。


【发明内容】

[0005]本发明实施例提供一种SSH2协议数据的采集方法和装置,可以使得数据采集器不易遭到针对性攻击,并且,提高了采集效率,用户体验好。
[0006]一方面,提供了一种SSH2协议数据的采集方法,客户端设备与服务端设备之间建立了 SSH2连接,所述方法包括:
[0007]获取所述客户端设备与所述服务端设备之间传输的SSH2数据包;
[0008]将所述SSH2数据包重组排列为有序的网络数据包;
[0009]依次检测所述SSH2数据包的类型;
[0010]若所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议握手阶段的数据包,则记录原握手信息,替换为新的握手信息,当握手信息充分时推导出SSH2密钥协商后的传输密钥;
[0011]若所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议密文传输阶段的数据包,则利用推导出的所述传输密钥,将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,将所述明文数据作为采集成果输出。
[0012]另一方面,提供了一种SSH2协议数据的采集装置,客户端设备与服务端设备之间建立了 SSH2连接,所述装置包括:
[0013]获取单元,用于获取所述客户端设备与所述服务端设备之间传输的SSH2数据包;
[0014]重组单元,用于将所述获取单元获取的SSH2数据包重组排列为有序的网络数据包;
[0015]检测单元,用于依次检测所述重组单元SSH2重组后的数据包的类型;
[0016]第一处理单元,用于当所述检测单元检测出的所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议握手阶段的数据包时,记录原握手信息,替换为新的握手信息,当握手信息充分时推导出SSH2密钥协商后的传输密钥;
[0017]第二处理单元,用于当所述检测单元检测出的所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议密文传输阶段的数据包,则利用推导出的所述传输密钥,将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,将所述明文数据作为采集成果输出。
[0018]本发明实施例所提供的SSH2协议数据的采集方法中,客户端设备直接以服务端设备的地址作为目标地址建立SSH2连接,无需通过数据采集器进行二次登录,不需要为实现该方法的数据采集器分配网络地址,其中,数据采集器具体可以为一台网络交换设备,例如,交换机或路由器,置于客户端设备与服务端设备之间,本身没有IP地址,而现有技术中数据采集器相当于一台代理服务器,需要客户端设备主动去登录它,本发明中数据采集器可以在网络中透明地灵活部署,不易遭到针对性攻击;并且,本发明的SSH2协议数据的采集方法以SSH2数据包为处理单元,而非以完整SSH2消息为处理单元,因而处理延时小、并发服务能力强、提高了采集效率,用户体验好。

【专利附图】

【附图说明】
[0019]图1为现有技术中SSH2协议数据的采集方法示意图;
[0020]图2为本发明实施例中SSH2协议数据的采集方法示意图;
[0021]图3为本发明一个实施例中SSH2协议数据的采集方法流程图;
[0022]图4为本发明另一个实施例中SSH2协议数据的采集方法示意图;
[0023]图5为采用本发明实施例SSH2协议数据的采集方法处理数据包时的数据包交互图;
[0024]图6为本发明实施例中SSH2协议数据的采集装置的装置结构图。

【具体实施方式】
[0025]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0026]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027]为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
[0028]图2为本发明实施例中SSH2协议数据的采集方法示意图,参照图2,与图1所示的现有技术中SSH2协议数据的采集方法相比较,传统方法采取SSH 二次登录的方式,采集者显式地存在于网络中,拥有自己的IP地址,集成了 SSH代理服务端和代理客户端,与客户端和服务端分别建立两条IP/TCP/SSH连接,在采集数据时以SSH消息为处理单元;而本发明的方法中,采集者不建立连接,不必有自己的IP地址,透明地串联在客户端和服务端之间,在客户端与服务端的连接基础上,掌握两侧的SSH传输密钥对,以网络数据包为处理单元采集数据。
[0029]图3为本发明一个实施例中SSH2协议数据的采集方法流程图,其中,客户端设备与服务端设备之间建立了 SSH2连接,参照图3,该方法包括:
[0030]步骤301,获取所述客户端设备与所述服务端设备之间传输的SSH2数据包。
[0031]步骤302,将所述SSH2数据包重组排列为有序的网络数据包。
[0032]步骤303,依次检测所述SSH2数据包的类型。
[0033]步骤304,若SSH2数据包的类型表明所述SSH2数据包为SSH2协议握手阶段的数据包,则记录原握手信息,替换为新的握手信息,当握手信息充分时推导出SSH2密钥协商后的传输密钥。
[0034]步骤305,若SSH2数据包的类型表明所述SSH2数据包为SSH2协议密文传输阶段的数据包,则利用推导出的所述传输密钥,将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,将所述明文数据作为采集成果输出。
[0035]本发明实施例中,所述方法还可以包括数据包封装的处理步骤:对于替换为新的握手信息的SSH2协议握手阶段的数据包,重新确定传输控制协议TCP包头和网际互联协议IP包头,以及对所述替换为新的握手信息的SSH2协议握手阶段的数据包重新进行数据包封装,发送给接收方设备,所述接收方设备为所述客户端设备或所述服务端设备;对于SSH2协议密文传输阶段的数据包,利用推导出的所述传输密钥将所述明文数据加密成密文数据,重新确定TCP包头和IP包头,以及对所述密文数据重新进行数据包封装,发送给接收方设备。
[0036]另外,由于可以对不含TCP载荷的数据包不做任何处理,所述方法还可以包括:
[0037]若所述SSH2数据包的类型表明所述SSH2数据包为不含TCP载荷的数据包,则将所述不含TCP载荷的数据包发送给接收方设备。
[0038]其中,上述不含TCP载荷的数据包具体可以为TCP报头中的确认号(ACK,Acknowledge)数据包。
[0039]本发明实施例步骤302中,所述将所述SSH2数据包重组排列为有序的网络数据包,具体可以包括:将SSH2连接两个方向的数据包加入不同队列,按照TCP的序列号SEQ对所述SSH2数据包进行有序排列。
[0040]由于SSH2协议握手阶段包括版本协商子阶段、算法协商子阶段和密钥协商子阶段,因此步骤304中,所述若所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议握手阶段的数据包,则记录原握手信息,替换为新的握手信息,当握手信息充分时推导出SSH2密钥协商后的传输密钥,具体可以包括:
[0041]对于版本协商子阶段的数据包,记录原版本协商信息,替换为新的版本协商信息;
[0042]对于算法协商子阶段的数据包,记录原算法协商信息,替换为新的算法协商信息,当记录完所述客户端设备和所述服务端设备的算法协商信息后,分别推导所述客户端设备一侧的算法协商结果和所述服务端设备一侧的算法协商结果;
[0043]对于密钥协商子阶段的数据包,记录原密钥协商信息,替换为新的密钥协商信息,当接收到SSH2协议的新密钥启用消息后,分别推导所述客户端设备一侧的SSH2传输密钥和所述服务端设备一侧的SSH2传输密钥。
[0044]本发明实施例步骤305中,所述若所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议密文传输阶段的数据包,则利用推导出的所述传输密钥,将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,将所述明文数据作为采集成果输出,具体可以包括:
[0045]利用输入一侧的传输密钥将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,通过哈希消息认证码HMAC值校验所述明文数据的完整性;
[0046]将校验结果为完整的所述明文数据作为采集成果输出。
[0047]本发明实施例中,所述对于SSH2协议密文传输阶段的数据包,利用推导出的所述传输密钥将所述明文数据加密成密文数据,具体可以包括:利用输出一侧的传输密钥将校验后的所述明文数据加密成密文数据,并重新计算所述密文数据的HMAC值,校验所述密文数据的完整性;
[0048]所述重新确定TCP包头和IP包头,以及对所述密文数据重新进行数据包封装,发送给接收方设备,具体可以包括:对于校验结果为完整的所述密文数据,重新确定TCP包头和IP包头,以及对所述密文数据重新进行数据包封装,发送给接收方设备。
[0049]另外,所述重新确定TCP包头和IP包头,具体可以包括:判断所述数据包的长度是否发生改变;若判断出所述数据包的长度发生改变,则重新确定IP包头的总长、IP包头的头部校验和字段,以及TCP包头中的序列号SEQ、确认号ACK、校验和字段;若判断出所述数据包的长度没有发生改变,则重新确定TCP包头中的SEQ、ACK、校验和字段。
[0050]由上述处理过程可知,本发明实施例所提供的SSH2协议数据的采集方法中,客户端设备直接以服务端设备的地址作为目标地址建立SSH2连接,无需通过数据采集器进行二次登录,不需要为实现该方法的数据采集器分配网络地址,其中,数据采集器具体可以为一台网络交换设备,例如,交换机或路由器,置于客户端设备与服务端设备之间,本身没有IP地址,而现有技术中数据采集器相当于一台代理服务器,需要客户端设备主动去登录它,本发明中数据采集器可以在网络中透明地灵活部署,不易遭到针对性攻击;并且,本发明的SSH2协议数据的采集方法以SSH2数据包为处理单元,而非以完整SSH2消息为处理单元,因而处理延时小、并发服务能力强、提高了采集效率,用户体验好。
[0051]下面通过一个具体的实施例来对SSH2协议数据的采集方法进行详细描述。
[0052]图4为本发明另一个实施例中SSH2协议数据的采集方法示意图,参照图4,该方法包括:
[0053]步骤一、通过数据包重组模块,将SSH2连接两个方向的数据包加入不同队列,按照TCP的SEQ号进行有序排列,形成有序的网络数据包后依次交由中间处理。
[0054]其中,因为网络上传输的数据包会有乱序的情况出现,数据包重组模块将它们恢复成有序的排列,避免序列号在后面的数据包先被中间处理,造成中间处理时的数据错误。
[0055]步骤二、根据数据包的不同类型进行中间处理。
[0056]对SSH2协议握手阶段的数据包:若为版本协商子阶段的数据包,记录原版本协商信息,替换为新的版本协商信息;若为算法协商子阶段的数据包,记录原算法协商信息,替换为新的算法协商信息,当记录完客户端和服务端的算法协商信息后,分别推导客户端一侧和服务端一侧的算法协商结果;若为密钥协商子阶段的数据包,记录原密钥协商信息,替换为新的密钥协商信息,当接收到SSH2协议的新密钥启用消息后,分别推导客户端一侧和服务端一侧的SSH2传输密钥。
[0057]对SSH2协议密文传输阶段的数据包,首先利用输入一侧的传输密钥将数据包中的密文数据解密成明文数据,计算哈希消息认证码(HMAC, Hash-based Message Authenticat1n Code)值校验该消息,然后将校验后的明文SSH2数据包作为采集成果输出,最后利用输出一侧的传输密钥将校验后的明文SSH2消息加密成密文,并重新计算HMAC值。
[0058]其中,HMAC值可以用来验证数据包数据的完整性。
[0059]对不含TCP载荷的数据包,可以不作中间处理。
[0060]步骤三、通过数据包封装发送模块对数据包重新计算IP包头和TCP包头后发出。
[0061]其中,若该数据包在中间处理过程中改变了长度,重新计算IP包头的总长、头部校验和字段,以及TCP包头中的SEQ、ACK、校验和字段;若该数据包在中间处理过程中没有改变长度,重新计算TCP包头中的SEQ、ACK、校验和字段。
[0062]图5为采用本发明实施例SSH2协议数据的采集方法处理数据包时的数据包交互图,下面参照图5对本发明的方法做详细的说明。
[0063]在下面的说明中,到来的网络数据包经过数据包重组模块排列有序,数据包转发前经过数据包封装发送模块统一修改TCP/IP包头,在修改包头时,若该数据包在中间处理过程中改变了长度,重新计算IP包头的总长、头部校验和字段,以及TCP包头中的SEQ、ACK、校验和字段;若该数据包在中间处理过程中没有改变长度,重新TCP包头中的SEQ、ACK、校验和字段。
[0064](I)客户端发起TCP连接请求,与服务端进行三步握手的交互。
[0065](2)服务端向客户端发送自己的版本,采集者记录包含版本信息的数据包,替换成包含新版本信息的数据包;同理客户端向服务端发送自己的版本,采集者记录该数据包,替换成包含新版本信息的数据包。
[0066](3)服务端向客户端发送算法协商信息,采集者记录包含算法协商信息的数据包,替换为采集者可以处理的算法组成的算法协商信息;同理客户端向服务端发送算法协商信息,采集者记录包含算法协商信息的数据包,替换为采集者可以处理的算法组成的算法协商信息。当记录完客户端和服务端的算法协商信息后,分别推导客户端一侧和服务端一侧的算法协商结果。
[0067](4)客户端与服务端之间进行DH密钥协商,采集者记录其中的DH密钥协商信息,将其中的DH密钥交换参数、服务端公钥和数字签名等密钥协商信息替换为新的密钥协商信息。当接收到包含新密钥启用通知的数据包后,分别推导客户端一侧和服务端一侧的SSH2传输密钥。
[0068]具体中间处理过程为:
[0069]在版本协商阶段,采集者记录两端发送的版本消息,并将其替换为自己的版本消息向后转发。该过程会改变数据包的长度。
[0070]在算法协商阶段,采集者记录两端发送的算法协商消息,并将其替换为由采集者支持的算法构造出的算法协商消息。该过程会改变数据包的长度。
[0071]在密钥协商阶段,对于图5中的SSH2_GEXREQ消息,采集者记录和转发消息参数。该过程不会改变数据包的长度。对于图5中的SSH2_GEXGRP消息,采集者记录其中的DH密钥交换参数公开数P和G,然后转发。该过程不会改变数据包的长度。对于图5中的SSH2_GEXINIT消息,采集者生成两对DH密钥交换的私有秘密值和公开秘密值,这两对秘密值分别对于客户端和服务端。采集者将消息中客户端的公开秘密值替换为自己的应客户端的公开秘密值。该过程会改变数据包长度。对于图5中的SSH2_GEXREP消息,采集者将服务端的公开秘密值替换为自己对应服务端的公开秘密值,将服务端的加密公钥替换为采集者的加密公钥,将服务端的数字签名替换为采集者的数字签名,该过程会改变数据包的长度。在结束密钥协商阶段后,采集者就可以根据DH密钥交换的计算规则,分别计算出客户端一侧和服务端一侧的密钥交换结果。
[0072]这个计算规则是标准的,可以采用现有的密码学算法。
[0073]DH密钥交换算法的基本原理是:
[0074](I)客户端随机选择一个私有秘密值X,l〈x〈p_l,计算出e = g~x mod P,将计算出的e发送给服务器端。其中,P是一个很大的素数,g是P的素根。P和g是双方共有的一对参数。
[0075](2)服务器也随机生成一个私有秘密值y, l〈y〈p_l,计算出f = g~y mod p,也将计算出的f发送给客户端。
[0076](3)服务器接收到客户端发送过来的e,按照下面的公式计算出密钥协商结果:
[0077]K = (e) 'y mod p
[0078](4)客户端收到服务器端发送过来的f,同样按照下面的公式计算出密钥协商结果:
[0079]K = (f) 'x mod p
[0080]本发明实施例中,采集者通过替换数据包中DH密钥交换的参数,达到了分别于客户端、服务端进行密钥交换的目的,从而得到了客户端一侧和服务端一侧的秘钥协商结果。
[0081](5)客户端与服务端之间进行密文传输时,采集者首先利用输入一侧的传输密钥将数据包中的SSH2消息解密成明文,计算HMAC值校验该消息,然后将明文SSH2数据包作为采集成果输出,最后利用输出一侧的传输密钥将明文SSH2消息加密成密文,并重新计算HMAC 值。
[0082]其中,由于客户端和服务端持有的密钥不同,因此客户端加密的数据服务端用它的密钥是解不出来的,需要通过中间的数据采集者先用客户端密钥解密,再用服务端密钥加密,服务端才能解密出明文,因此这里数据采集者用输入一侧的密钥解密,再用输出一侧的密钥加密。
[0083](6)在上述过程中,还会存在诸如ACK包等不包含TCP载荷的数据包,对此采集者在中间处理这一步不对数据包进行改变。
[0084]相应地,本发明还提供了 SSH2协议数据的采集装置。
[0085]图6为本发明实施例中SSH2协议数据的采集装置的装置结构图,客户端设备与服务端设备之间建立了 SSH2连接,所述装置包括:
[0086]获取单元601,用于获取所述客户端设备与所述服务端设备之间传输的SSH2数据包;
[0087]重组单元602,用于将所述获取单元601获取的SSH2数据包重组排列为有序的网络数据包;
[0088]检测单元603,用于依次检测所述重组单元602SSH2重组后的数据包的类型;
[0089]第一处理单元604,用于当所述检测单元603检测出的所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议握手阶段的数据包时,记录原握手信息,替换为新的握手信息,当握手信息充分时推导出SSH2密钥协商后的传输密钥;
[0090]第二处理单元605,用于当所述检测单元603检测出的所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议密文传输阶段的数据包,则利用推导出的所述传输密钥,将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,将所述明文数据作为采集成果输出。
[0091 ] 优选地,所述装置还包括:
[0092]数据包封装发送单元,用于对于所述第一处理单元替换为新的握手信息的SSH2协议握手阶段的数据包,重新确定传输控制协议TCP包头和网际互联协议IP包头,以及对所述替换为新的握手信息的SSH2协议握手阶段的数据包重新进行数据包封装,发送给接收方设备,所述接收方设备为所述客户端设备或所述服务端设备;
[0093]加密单元,用于对于所述第二处理单元处理后的SSH2协议密文传输阶段的数据包,利用推导出的所述传输密钥将所述明文数据加密成密文数据;
[0094]所述数据包封装发送单元,还用于针对所述加密单元加密的密文数据重新确定TCP包头和IP包头,以及对所述密文数据重新进行数据包封装,发送给接收方设备。
[0095]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0096]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0097]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种安全外壳SSH2协议数据的采集方法,其特征在于,客户端设备与服务端设备之间建立了 SSH2连接,所述方法包括: 获取所述客户端设备与所述服务端设备之间传输的SSH2数据包; 将所述SSH2数据包重组排列为有序的网络数据包; 依次检测所述SSH2数据包的类型; 若所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议握手阶段的数据包,则记录原握手信息,替换为新的握手信息,当握手信息充分时推导出SSH2密钥协商后的传输密钥; 若所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议密文传输阶段的数据包,则利用推导出的所述传输密钥,将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,将所述明文数据作为采集成果输出。
2.如权利要求1所述的方法,其特征在于,所述方法还包括: 对于替换为新的握手信息的SSH2协议握手阶段的数据包,重新确定传输控制协议TCP包头和网际互联协议IP包头,以及对所述替换为新的握手信息的SSH2协议握手阶段的数据包重新进行数据包封装,发送给接收方设备,所述接收方设备为所述客户端设备或所述服务端设备; 对于SSH2协议密文传输阶段的数据包,利用推导出的所述传输密钥将所述明文数据加密成密文数据,重新确定TCP包头和IP包头,以及对所述密文数据重新进行数据包封装,发送给接收方设备。
3.如权利要求2所述的方法,其特征在于,所述方法还包括: 若所述SSH2数据包的类型表明所述SSH2数据包为不含TCP载荷的数据包,则将所述不含TCP载荷的数据包发送给接收方设备。
4.如权利要求3所述的方法,其特征在于,所述将所述SSH2数据包重组排列为有序的网络数据包,具体包括: 将SSH2连接两个方向的数据包加入不同队列,按照TCP的序列号SEQ对所述SSH2数据包进行有序排列。
5.如权利要求4中任一权利要求所述的方法,其特征在于,所述SSH2协议握手阶段包括版本协商子阶段、算法协商子阶段和密钥协商子阶段,所述若所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议握手阶段的数据包,则记录原握手信息,替换为新的握手信息,当握手信息充分时推导出SSH2密钥协商后的传输密钥,具体包括: 对于版本协商子阶段的数据包,记录原版本协商信息,替换为新的版本协商信息; 对于算法协商子阶段的数据包,记录原算法协商信息,替换为新的算法协商信息,当记录完所述客户端设备和所述服务端设备的算法协商信息后,分别推导所述客户端设备一侧的算法协商结果和所述服务端设备一侧的算法协商结果; 对于密钥协商子阶段的数据包,记录原密钥协商信息,替换为新的密钥协商信息,当接收到SSH2协议的新密钥启用消息后,分别推导所述客户端设备一侧的SSH2传输密钥和所述服务端设备一侧的SSH2传输密钥。
6.如权利要求5所述的方法,其特征在于,所述若所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议密文传输阶段的数据包,则利用推导出的所述传输密钥,将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,将所述明文数据作为采集成果输出,具体包括: 利用输入一侧的传输密钥将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,通过哈希消息认证码HMAC值校验所述明文数据的完整性; 将校验结果为完整的所述明文数据作为采集成果输出。
7.如权利要求6所述的方法,其特征在于,所述对于SSH2协议密文传输阶段的数据包,利用推导出的所述传输密钥将所述明文数据加密成密文数据,具体包括: 利用输出一侧的传输密钥将校验后的所述明文数据加密成密文数据,并重新计算所述密文数据的HMAC值,校验所述密文数据的完整性; 所述重新确定TCP包头和IP包头,以及对所述密文数据重新进行数据包封装,发送给接收方设备,具体包括: 对于校验结果为完整的所述密文数据,重新确定TCP包头和IP包头,以及对所述密文数据重新进行数据包封装,发送给接收方设备。
8.如权利要求2至7中任一权利要求所述的方法,其特征在于,所述重新确定TCP包头和IP包头,具体包括: 判断所述数据包的长度是否发生改变; 若判断出所述数据包的长度发生改变,则重新确定IP包头的总长、IP包头的头部校验和字段,以及TCP包头中的序列号SEQ、确认号ACK、校验和字段; 若判断出所述数据包的长度没有发生改变,则重新确定TCP包头中的SEQ、ACK、校验和字段。
9.一种安全外壳SSH2协议数据的采集装置,其特征在于,客户端设备与服务端设备之间建立了 SSH2连接,所述装置包括: 获取单元,用于获取所述客户端设备与所述服务端设备之间传输的SSH2数据包; 重组单元,用于将所述获取单元获取的SSH2数据包重组排列为有序的网络数据包; 检测单元,用于依次检测所述重组单元SSH2重组后的数据包的类型; 第一处理单元,用于当所述检测单元检测出的所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议握手阶段的数据包时,记录原握手信息,替换为新的握手信息,当握手信息充分时推导出SSH2密钥协商后的传输密钥; 第二处理单元,用于当所述检测单元检测出的所述SSH2数据包的类型表明所述SSH2数据包为SSH2协议密文传输阶段的数据包,则利用推导出的所述传输密钥,将所述SSH2协议密文传输阶段的数据包所携带的密文数据转换成明文数据,将所述明文数据作为采集成果输出。
10.如权利要求9所述的装置,其特征在于,所述装置还包括: 数据包封装发送单元,用于对于所述第一处理单元替换为新的握手信息的SSH2协议握手阶段的数据包,重新确定传输控制协议TCP包头和网际互联协议IP包头,以及对所述替换为新的握手信息的SSH2协议握手阶段的数据包重新进行数据包封装,发送给接收方设备,所述接收方设备为所述客户端设备或所述服务端设备; 加密单元,用于对于所述第二处理单元处理后的SSH2协议密文传输阶段的数据包,利用推导出的所述传输密钥将所述明文数据加密成密文数据; 所述数据包封装发送单元,还用于针对所述加密单元加密的密文数据重新确定TCP包头和IP包头,以及对所述密文数据重新进行数据包封装,发送给接收方设备。
【文档编号】H04L29/06GK104394129SQ201410637319
【公开日】2015年3月4日 申请日期:2014年11月5日 优先权日:2014年11月5日
【发明者】宋磊, 叶晓舟, 郑艳伟, 董海韬, 吴京洪, 樊浩 申请人:中国科学院声学研究所, 北京中科智网科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1