一种安全协议消息构造方法技术

技术编号:18403961 阅读:52 留言:0更新日期:2018-07-08 22:13
本发明专利技术公开了一种高效的安全协议消息构造方法,首先,提出了针对使用函数钩子技术得到的安全协议实施中的安全相关函数的函数迹进行解析的算法,完成对函数迹的解析;然后,提出了协议消息的构造方法,基于该模型提出了基于的安全协议消息构造方法。消息构造包括需要被替换协议消息cell的定位、被劫持安全函数输出的重构、替换原协议消息中需要被替换的协议消息cell等步骤。因基于能获取安全协议客户端实施假设的安全协议实施安全性研究符合当前应用实际,该方法基于该假设构造安全协议消息,亦符合当前研究实际。因为本发明专利技术是在代码级构造安全协议消息,技术方案可行且具有更高的准确性及高效性。

A security protocol message construction method

This invention discloses an efficient security protocol message construction method. First, an algorithm is proposed to parse the function trace of the security related function in the implementation of the security protocol using the function hook technique, and the analysis of the function trace is completed. Then, the construction method of the protocol message is proposed, and the model is proposed based on the model. A message construction method based on security protocol is presented. Message construction includes the steps that need to be replaced by the location of the replacement protocol message cell, the reconfiguration of the hijacked security function, and the replacement of the protocol message cell that needs to be replaced in the original protocol message. The security protocol implementation of security protocol based on the assumption of the security protocol client implementation is consistent with the current application. This method is based on the hypothesis to construct the security protocol message, and it is also in line with the current research practice. Because the invention is to construct security protocol messages at code level, and the technical scheme is feasible and has higher accuracy and efficiency.

【技术实现步骤摘要】
一种安全协议消息构造方法
本专利技术属于信息安全
,涉及一种安全协议消息构造方法,具体涉及一种高效的安全协议消息构造方法。
技术介绍
安全协议作为网络空间安全的重要组成部分,是保障网络空间安全的关键和灵魂。所以,对运行于计算机网络、通信网络和分布式系统中的安全协议的安全性进行分析与验证,发现其逻辑错误与安全漏洞,对保障网络空间安全至关重要。从安全协议设计、安全协议抽象规范安全性的分析与验证、到安全协议实施(安全协议代码),人们主要集中在对安全协议抽象规范的安全性分析和验证方面,实用性较差。近几年来,人们对安全协议的最终表现形式:安全协议实施越来越感兴趣。因为无论任何安全协议,要想发挥作用,必须进行安全协议实施,故对其安全性进行分析对保障网络空间安全具有重要意义。安全协议实施本身不仅比其抽象规范复杂,而且在安全协议实施过程中,因程序员的专业素质层次不齐,无法保证不引入逻辑错误或者是代码错误,进而可能会造成安全协议实施与其抽象规范不一致。此外,很多实践表明,即使对形式化方法已证明安全的安全协议,在实施过程中,也可能因为人为的失误而引入了新的安全问题,变得不再安全。由此可见,仅仅在安全协议抽象模型层面对其进行安全性分析研究是远远不够的,必须对安全协议实施的安全性进行研究,以得到具有很强实用性的安全协议实施,这是保证信息网络空间安全的基础前提,更是网络空间安全的重要组成部分。安全协议实施目前主要依靠人为的理解和提取。通过程序分析理解实施代码,需要准确理解其语义特征和含义,由于先验模式的局限性,就导致了安全协议实施理解的误差。此外,有些私有协议在保证自身规范的同时使用了自定义的加密/解密函等函数,这些函数的先验模式的建立便存在模式不完整等缺陷,这对安全协议实施的语义特征及规范化理解也造成了较大难度,进而对分析安全协议实施的安全性也产生了很大的挑战。安全协议实施由安全协议客户端实施和安全协议服务器端实施两部分组成。当前的研究主要分别基于以下三个假设:①.安全协议客户端实施及服务器端实施都不能获得;②.安全协议客户端实施及服务器端实施都能获得;③.安全协议客户端实施可以获得。根据目前实际网络安全应用,研究者几乎不可能获得安全协议服务器端实施。所以,从获得安全协议服务器端实施、获得安全协议客户端实施及安全协议服务器端实施两个假设来分析安全协议实施安全性,其应用价值与意义较小。基于以上三点前提假设,目前对安全协议实施安全性分析主要应用了程序分析(代码分析)、网络轨迹(net-trace)、指令分析、软件测试及模型抽取的方法。相关研究工作存在以下主要问题:1)、对安全协议实施理解不全面、不准确,导致分析结果不准确;2)、对安全协议些实施的规范抽象准确率不高。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种高效的安全协议消息构造方法。本专利技术所采用的技术方案是:一种高效的安全协议消息构造方法,其特征在于:首先建立消息构造模型,然后基于函数迹进行协议消息构造;所述建立消息构造模型,首先设fun()函数是通过函数钩子方法监控的JavaScript函数,arg为fun()函数对应的参数,argm为修改之后的参数,Sg是fun()函数修改参数重新执行后得到的输出值,Tn为协议消息中的消息cell,M为原始协议消息,Mg为构造后得到的协议消息;则所述模型的工作流程包括以下子步骤:步骤A1:用argm替换掉fun(arg)中的参数arg得到参数修改后的函数fun(argm);步骤A2:重新执行fun(argm)得到新的函数输出Sg,Sg用来替代消息cell中对应位置的消息cell块Tn;步骤A3:在消息M中定位到需要被替换的消息cell,Tn(n=1,2,3...,n);然后得到新的消息Mg,该Mg消息就是得到的构造消息;所述基于函数迹进行协议消息构造,具体实现包括以下子步骤:步骤B1:对使用函数钩子方法得到的函数迹进行解析,得到函数名funname与函数参数arg的栈结构;步骤B2:修改相应函数参数得到新的函数输出,调用栈结构中的函数参数arg和函数名funname,修改arg得到argm,然后重新执行funname对应的函数得到新的函数输出Sg;步骤B3:在拦截的客户端协议消息M中,定位需要被替换的消息cell-Tn,接着从M消息中删除Tn,然后把步骤B2中得到的Sg值嵌入到原Tn所在位置,便得到新的消息Mg,该消息即构造消息。本专利技术首先,对截获的安全协议消息进行cell解析,提出了适用于实际应用的安全协议消息解析算法,该算法有针对性地对安全协议消息进行解析,对协议消息中不必要进行最小cell解析的协议消息进行cell解析,具有较高的效率;接着,使用安全函数的原始输出与解析后的函数迹进行序列对比,以此定位协议消息中需要被替换的协议消息cell,该过程把函数输出与cell块进行全序列对比,具有很高准确率;其次,从安全协议实施着手,通过使用函数钩子技术对安全协议实施的安全相关函数进行精确的监控、跟踪及函数输出重构,这里从安全协议实施入手,对安全相关函数的参数、输出等信息进行精确监控,结果准确;然后,使用重构的安全函数输出替代已经被定位的需要被替换的cell,便得到构造的安全协议消息,该消息被发送至安全协议服务器端。本专利技术的整个过程中,对安全协议实施进行代码级的分析及处理,对协议消息进行最小单元cell的解析以及准确地cell定位,均对安全协议相关的最小单元进行收集、分析及处理,具备很高的效率及准确率。附图说明图1为本专利技术实施例的消息构造模型;图2为本专利技术实施例的函数迹解析算法;图3为本专利技术实施例中以HTTP1.1为例的协议协议消息的分块划分示意图;图4为本专利技术实施例的安全函数输出直接组成协议消息块时的替换消息块的定位示意图;图5为本专利技术实施例的安全函数输出直接组成协议消息块情形下的协议消息构造示意图;图6为本专利技术实施例的被钩函数输出经过其他函数处理后组成协议消息块时的替换消息块的定位示意图;图7为本专利技术实施例的被钩函数输出经过其他函数变换处理后组成协议消息cell时的协议消息构造示意图。具体实施方式为了便于本领域普通技术人员理解和实施本专利技术,下面结合附图及实施例对本专利技术作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本专利技术,并不用于限定本专利技术。为了分析基于B/S模式下网络应用系统所部署的安全协议的实施(协议部署代码)安全性,提出了基于消息构造的方法进行安全协议实施安全性分析。此处,消息构造意为自动化生成合法的安全协议客户端消息,该消息被发往安全协议服务器端。后面对服务端的响应消息进行分析,由此分析安全协议实施安全性。对于协议消息构造,建立了消息构造模型,具体如图1所示。图1中fun是通过函数钩子技术监控的JavaScript函数,arg为该函数对应的参数,argm为修改之后的参数(Modifiedargument),Sg(Generatedstatement)是fun函数修改参数重新执行后得到的输出值(返回值),Tn为协议消息中的消息cell,M为原始协议消息,Mg为构造后得到的协议消息。整个模型的流程如下:(1)首先,用argm替换掉fun(arg)中的参数arg得到参数修改后的函数fun(argm本文档来自技高网
...

【技术保护点】
1.一种安全协议消息构造方法,其特征在于:首先建立消息构造模型,然后基于函数迹进行协议消息构造;所述建立消息构造模型,首先设fun()函数是通过函数钩子方法监控的JavaScript函数,arg为fun()函数对应的参数,argm为修改之后的参数,Sg是fun()函数修改参数重新执行后得到的输出值,Tn为协议消息中的消息cell,M为原始协议消息,Mg为构造后得到的协议消息;则所述模型的工作流程包括以下子步骤:步骤A1:用argm替换掉fun(arg)中的参数arg得到参数修改后的函数fun(argm);步骤A2:重新执行fun(argm)得到新的函数输出Sg,Sg用来替代消息cell中对应位置的消息cell块Tn;步骤A3:在消息M中定位到需要被替换的消息cell,Tn(n=1,2,3...,n);然后得到新的消息Mg,该Mg消息就是得到的构造消息;所述基于函数迹进行协议消息构造,具体实现包括以下子步骤:步骤B1:对使用函数钩子方法得到的函数迹进行解析,得到函数名funname与函数参数arg的栈结构;步骤B2:修改相应函数参数得到新的函数输出,调用栈结构中的函数参数arg和函数名funname,修改arg得到argm,然后重新执行funname对应的函数得到新的函数输出Sg;步骤B3:在拦截的客户端协议消息M中,定位需要被替换的消息cell‑Tn,接着从M消息中删除Tn,然后把步骤B2中得到的Sg值嵌入到原Tn所在位置,便得到新的消息Mg,该消息即构造消息。...

【技术特征摘要】
1.一种安全协议消息构造方法,其特征在于:首先建立消息构造模型,然后基于函数迹进行协议消息构造;所述建立消息构造模型,首先设fun()函数是通过函数钩子方法监控的JavaScript函数,arg为fun()函数对应的参数,argm为修改之后的参数,Sg是fun()函数修改参数重新执行后得到的输出值,Tn为协议消息中的消息cell,M为原始协议消息,Mg为构造后得到的协议消息;则所述模型的工作流程包括以下子步骤:步骤A1:用argm替换掉fun(arg)中的参数arg得到参数修改后的函数fun(argm);步骤A2:重新执行fun(argm)得到新的函数输出Sg,Sg用来替代消息cell中对应位置的消息cell块Tn;步骤A3:在消息M中定位到需要被替换的消息cell,Tn(n=1,2,3...,n);然后得到新的消息Mg,该Mg消息就是得到的构造消息;所述基于函数迹进行协议消息构造,具体实现包括以下子步骤:步骤B1:对使用函数钩子方法得到的函数迹进行解析,得到函数名funname与函数参数arg的栈结构;步骤B2:修改相应函数参数得到新的函数输出,调用栈结构中的函数参数arg和函数名funname,修改arg得到argm,然后重新执行funname对应的函数得到新的函数输出Sg;步骤B3:在拦截的客户端协议消息M中,定位需要被替换的消息cell-Tn,接着从M消息中删除Tn,然后把步骤B2中得到的Sg值嵌入到原Tn所在位置,便得到新的消息Mg,该消息即构造消息。2.根据权利要求1所述的安全协议消息构造方法,其特征在于,步骤B1中所述对使用函数钩子方法得到的函数迹进行解析,具体实现包括以下子步骤:步骤B1.1:将通过函数钩子方法获得的安全函数的执行迹保存在日志文件中;步骤B1.2:对该日志文件进行遍历,直到该文件的结束;把读取的函数迹按照函数名、函数输入及函数输出的形式表示成相的安全函数迹—APIi;步骤B1.3:若得到的函数函数迹不空,则将其存入到建立的栈结构中,直到把所有函数返回值不空的函数迹存入栈中。3.根据权利要求1所述的安全协议消息构造方法,其特征在于,步骤B3的具体实现包括以下子步骤:步骤B3.1:获得一条协议消息;在安全协议客户端输入特定的输入数据,客户端必将产生一条完整的协议消息;在其被发送过程中,使用中间人代理Proxy拦截该条消息,由此便获得一条完整的协议消息;步骤B3.2:对协议消息进行解析划分得到消息cell;在协议消息中,包含协议消息字符最多的一段称为协议消息段,记为集合P,消息块中最小的单元称为协议消息cell,记为集合T;协议消息段中由一个或多个协议消息cell组成的协议消息部分,且该部分所包含的协议消息字符或协议消息cell在数量上比协议消息段少,该部分消息称为协议消息块,记为集合B,且T∈B∈P,在获得协议消息后,对该消息进行cell解析划分操作,定位出协议消息中需要被替换的消息cell块Tn(n=1,2,…,n),即在协议消息中识别出消息中的结束符、分界符及连接符,以得到协议消息具体cell分块;步骤B3.3:被替换协议消息cell的定位与安全函数输出的重构;首先,定位需要被替换消息cell在协议消息中的位置,对该位置进行标记,并移除该位置的协议消息cell块;然后,从使用函数钩子方法得到的函数迹进行解析结果中调用函数及其参数,并修改其参数,重新运...

【专利技术属性】
技术研发人员:孟博鲁金钿王德军朱容波
申请(专利权)人:中南民族大学
类型:发明
国别省市:湖北,42

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

1