一种TLS加密流量识别方法及装置与流程

文档序号:22886330发布日期:2020-11-10 18:02阅读:383来源:国知局
一种TLS加密流量识别方法及装置与流程

本发明涉及移动通信领域,尤其涉及一种tls加密流量识别方法及装置。



背景技术:

随着移动宽带和智能终端的不断发展,以及用户信息安全隐私保护的加强,越来越多的ios及android应用程序的网络连接采用基于tls(transportlayersecurity,传输层安全)承载,致使tls加密流量占比越来越大。电信运营商对用户tls加密流量进行精确识别的需求场景也越来越多。在电信运营商移动网络中,不管是在p-gw(packetdatanetworkgateway)网元、mec(mobileedgecomputing,移动边缘计算)服务器,或者其它相关交换机、路由器、防火墙、流量分析器等设备中,都可能会需要基于dpi(deeppacketinspection,深度报文检测)技术对tls加密流量进行精确识别。

以5gmec为例,边缘计算为5g终端提供了高带宽、低时延的可靠的移动无线网络,一种可能的典型运营模式是,当网络负荷接近饱和时,mec设备将为不同应用业务提供不同的qos保障,尤其是对有合作关系的sp(serviceprovider,业务供应商)付费的应用业务提供高优先级qos保障。所以,通过dpi技术准确识别出合作sp的基于tls加密的应用业务流量尤为重要。

然而,常规dpi技术,通常根据tlsclienthello消息中sni(servernameindication,服务器名称指示)或tlscertificate消息中服务器证书cn(commonname)及san(subjectalternativename,主题备用名称)或dns(domainnamesystem,域名系统)请求/响应消息中服务器dns域名,对合作sp的应用业务tls加密流量进行识别。这类识别方法通常存在缺陷,比如:有些vpn(virtualprivatenetwork,虚拟专用网)软件利用这类sni、cn、san、dns等特征,将其vpn流量伪装成电信运营商的合作sp的应用业务流量,从而达到获取高优先级qos或者逃避计费等目的。

目前,一种常见的解决方法是,电信运营商提前获取合作sp的服务器公网ip地址,针对这些指定ip地址的tls加密流量进行dpi识别。但是,这种方法过于粗放,无法精确识别合作sp的细化业务。

目前,另一种常见解决方法是,电信运营商通过合作sp的服务器公网ip地址和一个或多个sni/cn/san/dns的组合信息对tls加密流量进行dpi识别。这种方法可以一定程度细化合作sp的应用业务,但是细化程度通常不够理想。而且,ietf(internetengineeringtaskforce,互联网工程任务组)在tls1.3(rfc8446)协议中已经对certificate消息进行加密,导致cn/san特征失效;以及在dot(rfc7858)和doh(rfc8484)协议中已经对dns消息加密,导致dns特征失效;以及加密sni的草案已拟定发布讨论,将导致未来sni特征也会失效。

目前需要一种针对电信运营商合作sp的应用业务tls加密流量的防欺诈的精确细化的可行的dpi识别方法。通过使用本发明的方法,可实现针对电信运营商合作sp的应用业务tls加密流量的防欺诈的精确细化的dpi识别,减少或防止流量欺诈现象的发生。



技术实现要素:

以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

为了使电信运营商精细化识别其合作sp基于tls加密的应用业务流量,且减少或防止流量欺诈现象的发生,本发明提出一种基于tls加密流量识别的方法,包括:

dpiserver接收来自注册网站的app注册请求信息,并为目标app分配app特征标识信息,且发送回注册网站;

dpiserver基于双向验证的tls连接,与appserver交换该app的app特征验证信息,交换后双方具有相同的app特征标识信息以及app特征验证信息;

dpiserver基于双向验证的tls连接,将该app的app特征标识信息以及app特征验证信息,发送给dpi网元;

dpi网元根据所述app特征验证信息验证用户tls流量中所述app特征标识信息的合法性,并根据所述app特征标识信息识别由该app产生的tls流量。

进一步的,所述app特征验证信息,包含用于dpi识别的app公钥信息、mac密钥及mac算法信息、多区间计数器合法范围信息。

进一步的,dpiserver与appserver建立的所述tls连接中,所述appserver的证书与dpiserver的证书,均由合法的第三方证书颁发机构签发。

进一步的,所述dpi网元匹配用户app流量信息中的serverhello消息中的app特征标识信息,识别对应app的流量信息。。

进一步的,所述dpi网元根据用户app流量信息中的serverhello消息中的app特征验证信息,验证对应app特征标识信息的合法性。

本发明还提供一种tls加密流量特征信息管理装置,包括:

置于dpiserver中的app注册管理模块,其用于接收来自注册网站的app注册请求信息,并为目标app分配app特征标识信息,且发送回注册网站;

置于dpiserver中的appserver更新管理模块,其基于双向验证的tls连接,与appserver交换该app的app特征验证信息,交换后双方具有相同的app特征标识信息以及app特征验证信息;

置于dpiserver中的dpi特征更新管理模块,其基于双向验证的tls连接,将该app的app特征标识信息以及app特征验证信息,发送给dpi网元。

进一步的,所述app特征验证信息,包含用于dpi识别的app公钥信息、mac密钥及mac算法信息、多区间计数器合法范围信息。

进一步的,appserver更新管理模块与appserver建立的所述tls连接中,所述appserver的证书与dpiserver的证书,均由合法的第三方证书颁发机构签发。

本发明还提供一种服务器,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求上述任意一项所述tls加密流量识别的方法。

附图说明

图1是本发明提供的tls加密流量识别方法的流程图;

图2是本发明提供的tls加密流量特征信息管理装置结构图;

图3是本发明提供的一种服务器的结构图;

图4是本发明提供的tls加密流量识别方法的时序交互图。

具体实施方式

下文中将结合附图对本发明的实施例进行详细说明。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明所述的dpi网元,一方面可以指dpi独立网元设备,另一方面也可以指pgw网关、mec服务器、交换机、路由器、防火墙等内置dpi功能的网元设备。

本发明引入dpiserver,为app分配apptoken等信息。app业务流量通过serverhello消息的自定义tls扩展携带apptoken等信息,以供dpi网元准确识别合作sp的基于tls加密的app业务流量,使得dpi网元可以通过本发明提出的一系列手段防范流量欺诈情况:通过mac(messageauthenticationcode,消息鉴权码)验证相关数据的完整性,通过多区间计数器检查防止重放攻击,通过公钥密码签名验证app身份,通过appserver公网ip地址检查加强特征识别的准确性。

如图1所示,本发明实施例提供一种tls加密流量识别方法。

s101,app注册阶段。如图1所示第一步,dpiserver接收到app开发者通过注册网站发来的app注册请求消息并处理。dpiserver通过相应的app注册响应消息返回给注册网站为app开发者提供app注册信息。

典型地,app注册请求消息中包含:app名称、sp名称、appserver名称、用于appserver更新阶段的appserver证书cn/san等信息。典型地,app注册响应消息中包括:专用tls扩展类型id、apptoken、成功分配apptoken的日期时间等信息。

例如,dpiserver以“sp名称+app名称”为唯一标识,为该sp的该app分配全局唯一的apptoken。apptoken可以为128位(即16字节)大整数。

对于专用tls扩展类型id的分配,dpiserver首先确保所选的扩展类型id不能是iana(internetassignednumbersauthority,互联网编号管理局)已分配的知名扩展类型id。iana(www.iana.org)正式文件《transportlayersecurity(tls)extensions》记录着最新的知名扩展类型id,如0为server_name,1为max_fragment_length,16为application_layer_protocol_negotiation(alpn),35为session_ticket,41为pre_shared_key(psk),43为supported_versions,等数十个,这些知名扩展类型id不能被选取。dpiserver可以从目前65000多个“unassigned”数字中选取扩展类型id,或者从目前200多个“reservedforprivateuse”数字中选取扩展类型id。

可选的,dpiserver可以支持,app注册请求消息中包含需要排除的tls扩展类型id的一个或多个取值范围。app可能会在tls中加入其它与本发明无关的自定义扩展类型id,所以dpiserver分配的专用tls扩展类型id不能与app的其它自定义扩展类型id相冲突。典型地,dpiserver在排除iana知名tls扩展类型id,并排除app指定的其它扩展类型id之后,再为该app分配用于dpi识别的专用tls扩展类型id。

可选的,为了给流量欺诈行为增加难度和成本,dpiserver在排除iana知名tls扩展类型id后,并且排除app指定的其它扩展类型id后,可以给不同sp(即“sp名称”)分配相同或不同的专用tls扩展类型id;或者,也可以给不同app(即“sp名称+app名称”)分配相同或不同的专用tls扩展类型id。

典型地,app开发者将通过注册网站获得的专用tls扩展类型id、apptoken、成功分配apptoken的日期时间等信息部署到appserver。app开发者将通过注册网站获得的专用tls扩展类型id等信息部署到appclient。

在appclient中部署专用tls扩展类型id,使得appclient产生tls流量的clienthello消息时,携带专用tls扩展类型id。

在appserver中部署专用tls扩展类型id,使得appserver在对含有该扩展类型id的clienthello回复serverhello响应时,携带该扩展类型id,以及相应的扩展内容。

对于tls1.0协议、tls1.1协议、tls1.2协议,clienthello不加密、serverhello不加密,本阶段引入的专用tls扩展可以正常加入clienthello、serverhello中。

对于tls1.3协议,clienthello不加密、serverhello不加密,本阶段引入的专用tls扩展可以正常加入clienthello、serverhello中。但是,因为tls1.3协议引入了encryptedextensions消息用于加密不需要明文传输的扩展,所以在本发明实施时需要确保本阶段引入的专用tls扩展应加入到serverhello中,而不是加入到encryptedextensions中。典型地,以openssl-1.1.1库为例,通过opensslapi函数ssl_ctx_add_custom_ext()设置自定义扩展时,通过将该函数的相关参数设置为包含“ssl_ext_tls1_3_server_hello”而不是包含“ssl_ext_tls1_3_encrypted_extensions”,从而使得本阶段引入的专用tls扩展可以正常加入serverhello中。

s102,appserver更新阶段。如图1所示第二步,dpiserver接收appserver发起的tls连接建立请求,并采用双向证书验证机制建立tls连接。dpiserver接收appserver更新请求消息,并处理appserver周期性更新的dpi识别及验证信息,同时dpiserver也通过appserver更新响应消息,将新的dpi识别及验证信息发送给appserver。

典型地,appserver更新请求消息包含:apptoken、成功分配apptoken的日期时间、appserver公网ip地址(可选)、用于dpi识别的appserver公钥信息。appserver更新响应消息包含:多区间计数器合法范围、mac密钥、mac算法等信息。

典型地,appserver与dpiserver之间的tls连接采用双向证书验证机制,给流量欺诈行为增加难度和成本。appserver作为tls客户端将自己的证书通过上行certificate消息发送给dpiserver,dpiserver作为tls服务端将自己的证书通过下行certificate消息发送给appserver。appserver和dpiserver各自的证书,均须由第三方合法ca(certificateauthority,证书颁发机构)签发,以保证双方能通过对方的证书验证对方的合法身份。其中,dpiserver通过第一步app注册阶段获得的“用于appserver更新阶段的appserver证书cn/san”,对appserver通过上行certificate发送的cn及san进行校验,以验证appserver的合法身份。

典型地,appserver通过与dpiserver的tls连接,周期性地发送appserver更新请求消息给dpiserver,将appserver公网ip地址(可选)、用于dpi识别的appserver公钥信息发送给dpiserver;同时,在该消息中携带apptoken、成功分配apptoken的日期时间,以便于dpiserver关联到第一步app注册阶段所形成的该app的相关信息。

例如,在appserver更新请求消息中,包含用于dpi识别的appserver公钥信息。典型地,appserver可以周期性地重新生成该公钥及其配对的私钥,并将最新生成的公钥通过此消息发送给dpiserver。该公钥用于后续第四步dpi特征识别阶段中,dpi网元验证appserver对apptoken扩展内容相关部分的签名。

可选地,在appserver更新请求消息中,appserver如果能获取其对appclient所提供服务的appserver公网ip地址,则应将这些ip地址上报给dpiserver,以便后续第四步dpi特征识别阶段中,dpi网元加强特征识别精确性。典型地,对于这些ip地址,可以通过多组/多对以“包含”和“对包含进行排除”的方式来描述,比如,以ipv4为例可描述为,包含从x1.x2.x3.x4到y1.y2.y3.y4范围内的ip地址,并排除该范围内从m1.m2.m3.m4到n1.n2.n3.n4范围内的ip地址,而且包含或排除所描述的内容可以是一个或多个地址范围。

典型地,在appserver更新响应消息中,包含dpiserver分配的多区间计数器合法范围。典型地,多区间计数器取值范围可以是从1开始到最大值64位(8字节)的正整数(记为max64)。多区间计数器合法范围可以是从1到max64之间的一个或多个范围段。

例如,在appserver更新响应消息中,包含mac密钥和mac算法信息。典型地,mac算法可以采用hmac算法(rfc2104),在本消息中的算法描述格式可以为“hmac-md5”、“hmac-sha1”、“hmac-sha224”、“hmac-sha256”、“hmac-sha384”、“hmac-sha512”等。

s103,dpi特征更新阶段。如图1所示第三步,dpiserver接收dpi网元发起的tls连接建立请求,并采用双向证书验证机制建立tls连接。dpiserver接收dpi网元发起的dpi特征更新请求并处理,以及通过相应的dpi特征更新响应为dpi网元提供app的最新dpi特征信息。

典型地,dpi特征更新响应消息包含:app名称、sp名称、appserver名称、专用tls扩展类型id、apptoken、成功分配apptoken的日期时间、appserver公网ip地址(可选)、用于dpi识别的appserver公钥、多区间计数器合法范围、mac密钥、mac算法等信息。

典型地,dpi网元与dpiserver之间的tls连接采用双向证书验证机制,给流量欺诈行为增加难度和成本。dpi网元作为tls客户端将自己的证书通过上行certificate消息发送给dpiserver,dpiserver作为tls服务端将自己的证书通过下行certificate消息发送给dpi网元。dpiserver的证书,须由第三方合法ca签发,以保证dpi网元能通过该证书验证dpiserver的合法身份。dpi网元的证书,可由dpiserver作为私有ca为dpi网元签发,预置于dpi网元中,作为dpi网元的合法身份证明。

典型地,dpi网元通过与dpiserver的tls连接,周期性地向dpiserver发送dpi特征更新请求消息,以获取dpiserver中各个app最新的识别特征信息。

典型地,dpiserver将上次dpi网元请求之后发生过相关信息更新的各app识别特征信息,通过dpi特征更新响应消息发送给dpi网元。可选地,dpiserver将上次dpi网元请求之后未发生过相关信息更新的各apptoken或“sp名称+app名称”置于消息中发送给dpi网元。

可选地,dpi网元发送的dpi特征更新请求消息中,可以指定或排除一个或多个apptoken或“sp名称+app名称”。对应地,dpiserver在发送的dpi特征更新响应消息中,只携带相应的app的最新的识别特征信息。

s104,dpi特征识别阶段。如图1所示第四步,dpi网元检测app上网流量中的clienthello、serverhello消息中的指定扩展类型及其内容,匹配apptoken并验证appserver签名及mac,确认app流量的真实性,从而准确识别app业务流量。

典型地,该app业务流量中appclient发出的clienthello消息内包含:之前分配的专用tls扩展类型id且内容为空。该app业务流量中appserver发出的serverhello消息内包含:之前分配的专用tls扩展类型id、该扩展内容包含有apptoken、成功分配apptoken的日期时间、多区间计数器合法范围内的一个多区间计数器值、对前部分扩展内容的签名、签名算法、对前部分扩展内容的mac值、mac算法等信息。

典型地,appclient发出的clienthello消息中,包含一个自定义tls扩展,其扩展类型id为第一步app注册阶段分配的专用tls扩展类型id,其扩展内容为空。

典型地,appserver发出的serverhello消息中,包含一个自定义tls扩展,其扩展类型id为第一步app注册阶段分配的专用tls扩展类型id,其扩展内容如下:

具体地,扩展内容1:apptoken。该apptoken来自于第一步app注册阶段。

具体地,扩展内容2:成功分配apptoken的日期时间。该日期时间信息来自于第一步app注册阶段。

具体地,扩展内容3:多区间计数器合法范围内的一个多区间计数器值。该多区间计数器合法范围来自于第二步appserver更新阶段。典型地,对于同一个appclient用户(以ip地址区分),appserver在该多区间计数器合法范围内,从小到大取值,对于每个tls连接的serverhello消息,其多区间计数器值加1,达到该多区间计数器取值范围的最大值后,再回绕到最小值重新开始。

具体地,扩展内容4:对扩展内容1~扩展内容3整体的签名。appserver采用扩展内容5的签名算法对扩展内容1~扩展内容3整体进行签名。典型地,首先对该内容进行哈希以获取固定长度的哈希结果,然后对哈希结果使用第二步appserver更新阶段所生成的用于dpi识别的appserver公钥所对应的私钥进行加密,加密结果即为签名。

具体地,扩展内容5:签名算法。该签名算法由appserver决定,包含哈希算法和公钥加密算法,典型地,如“md5-rsa”、“sha1-rsa”、“sha224-rsa”、“sha256-rsa”、“sha384-rsa”、“sha512-rsa”等之一。

具体地,扩展内容6:对扩展内容1~扩展内容5整体的mac值。appserver采用扩展内容7的mac算法,使用第二步appserver更新阶段从dpiserver获取的mac密钥,对扩展内容1~扩展内容5整体生成mac值。

具体地,扩展内容7:mac算法。该mac算法由appserver决定,从由第二步appserver更新阶段由dpiserver分配的多个mac算法中,选择其中一个以使用。

典型地,dpi网元检测tls流量中clienthello消息是否包含相关的专用tls扩展类型id,如果包含,则需要继续对该tls-tcp(transmissioncontrolprotocol,传输控制协议)流的serverhello消息进一步检测;如果不包含,则不需要继续对该tls-tcp流的serverhello消息进一步检测。

典型地,dpi网元检测tls流量中serverhello消息是否包含相关的专用tls扩展类型id,如果包含,则继续对该扩展内容进一步检测并验证;如果不包含,则不需要继续对该扩展内容进一步检测并验证。典型地,dpi网元对该扩展内容的检测及验证方法如下:

典型地,dpi网元提取扩展内容1,作为apptoken。如果后续验证通过,则将该apptoken识别为相应app,即将当前tls流量准确识别为相应app业务。

可选地,dpi网元提取扩展内容2,作为成功分配apptoken的日期时间,一方面可以用于对apptoken唯一性的验证,另一方面可以用于对apptoken版本信息的描述。

典型地,dpi网元提取扩展内容3,作为多区间计数器值。dpi网元检测该多区间计数器值是否在多区间计数器合法范围内。如果在合法范围内,则检查对于同一个appserver(以网络侧ip地址+网络侧port区分)下的同一个appclient用户(以用户侧ip地址区分)的不同tls流的serverhello消息多区间计数器值是否递增或达最大值回绕,如果是递增或达最大值回绕,则认为该多区间计数器值通过检查,否则认为不通过检查。如果不在合法范围内,则也认为不通过检查。对多区间计数器的合法取值检查,用于防止基于重放攻击的流量欺诈情况。

典型地,dpi网元提取扩展内容4,作为appserver对扩展内容1~扩展内容3整体的签名;dpi网元对扩展内容1~扩展内容3整体,使用从扩展内容5提取到的签名算法,以及从第三步dpi特征更新阶段中获取的用于dpi识别的appserver公钥,验证签名。具体地,从扩展内容5提取到的签名算法包括哈希算法和公钥加密算法,采用该哈希算法对扩展内容1~扩展内容3整体进行哈希获取哈希结果;采用该公钥加密算法,使用从第三步dpi特征更新阶段中获取的用于dpi识别的appserver公钥,对扩展内容4进行解密获取解密结果;如果该哈希结果与该解密结果一致,则认为通过签名验证;否则认为未通过签名验证。对扩展的签名验证用于认证appserver的身份合法性,以减少或防止流量欺诈情况。

典型地,dpi网元提取扩展内容5,作为验证扩展内容4的签名算法。

典型地,dpi网元提取扩展内容6,作为appserver对扩展内容1~扩展内容5整体的mac值;dpi网元对扩展内容1~扩展内容5整体,使用从扩展内容7提取到的mac算法,以及从第三步dpi特征更新阶段中获取的mac密钥,计算生成mac值;如果生成的mac值与提取到mac值一致,则认为mac校验通过,否则认为mac校验未通过。对扩展的mac校验用于确保扩展内容的完整性,降低流量欺诈发生的可能性。

典型地,dpi网元提取扩展内容7,作为验证扩展内容6的mac算法。

典型地,dpi网元对于通过多区间计数器检查、签名验证、mac校验的apptoken,则可将该apptoken识别为相应app,即将当前tls流量准确识别为相应app业务。

可选地,在上述准确识别app业务的情况下,dpi网元如果从第三步dpi特征更新阶段中,获取到appserver公网ip地址,则可检查当前tls-tcp流的网络侧ip地址是否在该appserver公网ip地址范围内,如果是,则更可加强识别结果的准确性。

如图2所示,本发明实施例还提供一种tls加密流量特征信息管理装置,包括:

设置于dpiserver200中的app注册管理模块201。app注册管理模块接收来自注册网站的app注册请求信息,并为目标app分配app特征标识信息,且发送回注册网站。

设置于dpiserver200中的appserver更新管理模块202。appserver更新管理模块基于双向验证的tls连接,与appserver交换该app的app特征验证信息,交换后双方具有相同的app特征标识信息以及app特征验证信息。

设置于dpiserver200中的dpi特征更新管理模块203。dpi特征更新管理模块基于双向验证的tls连接,将该app的app特征标识信息以及app特征验证信息,发送给dpi网元。

如图3所示,本发明实施例还提供一种服务器300,包括:存储器301、处理器302、总线接口303、用户接口304、输出接口305,所述处理器302执行所述tls加密流量识别方法。

本发明不仅仅限于以上实施例,凡依本发明权利要求范围所做的等效变更,皆属于本发明权利要求涵盖范围。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1