【技术实现步骤摘要】
一种加密系统安全测试系统、方法及装置
[0001]本申请涉及安全测试
,尤其涉及一种加密系统安全测试系统、方法及装置。
技术介绍
[0002]随着监管、企业对重要业务系统的安全性要求的提升,越来越多的系统采用加密算法对客户端浏览器传递到服务器的数据进行加密。而现有的自动化安全测试工具只能针对明文报文进行自动化安全扫描。
[0003]针对前端加密的系统,现有技术中的做法为人工进行js(编程语言)逆向,阅读代码逻辑,利用经验找到密钥位置及加解密函数,进而实现解密。现有技术存在的问题是不同系统采用的js混淆方式不同,一些系统的前端js代码难以阅读,人工定位密钥的方法不仅耗费大量时间,而且极其考验安全人员的经验和能力。
[0004]因此,目前亟需一种减少人工干预的自动化加密系统安全测试方案。
技术实现思路
[0005]本申请提供了一种加密系统安全测试系统、方法及装置,用以提供一种减少人工干预的自动化加密系统安全测试方案。
[0006]第一方面,本申请提供了一种加密系统安全测试系统,所述系统包括:浏览器模块、加解密代理模块、安全测试模块;
[0007]所述浏览器模块,用于监听密钥所在的目标代码行并实时记录所述目标代码行的最新目标变量值;当发送待测试的第一请求报文时,读取最新的目标变量值作为解密密钥值,将所述解密密钥值写入所述第一请求报文,将所述第一请求报文发送至所述加解密代理模块;
[0008]所述加解密代理模块,用于读取所述第一请求报文中携带的所述解密密钥值,采用 ...
【技术保护点】
【技术特征摘要】
1.一种加密系统安全测试系统,其特征在于,所述系统包括:浏览器模块、加解密代理模块、安全测试模块;所述浏览器模块,用于监听密钥所在的目标代码行并实时记录所述目标代码行的最新目标变量值;当发送待测试的第一请求报文时,读取最新的目标变量值作为解密密钥值,将所述解密密钥值写入所述第一请求报文,将所述第一请求报文发送至所述加解密代理模块;所述加解密代理模块,用于读取所述第一请求报文中携带的所述解密密钥值,采用所述解密密钥值对所述第一请求报文进行解密,将得到的解密报文发送至所述安全测试模块;所述安全测试模块,用于对所述解密报文进行安全测试。2.如权利要求1所述的系统,其特征在于,所述系统还包括应用服务器和JS Hook代理模块;所述应用服务器,用于发送响应于浏览器模块的响应报文;所述JS Hook代理模块,用于获取所述响应报文中的第一JS代码,在所述第一JS代码中添加Hook函数,得到第二JS代码,将所述第二JS代码发送至所述浏览器模块;所述浏览器模块,用于执行所述第二JS代码,获取所述Hook函数传入的变量值,将所述变量值作为备选密钥值保存至备选密钥列表;当接收到执行所述第二JS代码后加密生成的任一密文数据,采用所述备选密钥列表中保存的各个备选密钥值对所述密文数据进行解密,确定成功解密的目标密钥值及其对应的目标代码行。3.如权利要求2所述的系统,其特征在于,所述JS Hook代理模块,用于获取所述响应报文中的第一JS代码,查找所述第一JS代码中的变量声明语句和赋值表达式;在所述变量声明语句和赋值表达式处添加用于捕捉代码运行时的变量值的Hook函数,生成第二JS代码。4.如权利要求2所述的系统,其特征在于,所述浏览器模块,用于执行所述第二JS代码,获取所述Hook函数传入的变量值,按照密钥特征对所述变量值进行筛选,将符合所述密钥特征的变量值作为备选密钥值保存至所述备选密钥列表。5.如权利要求2所述的系统,其特征在于,所述浏览器模块,用于当接收到执行所述第二JS代码后加密生成的任一密文数据,采用所述备选密钥列表中保存的各个备选密钥值对所述密文数据进行解密,对得到的各个明文数据进行评分,将评分最高的明文数据对应的备选密钥值作为成功解密的目标密钥值,将所述目标密钥值对应的代码行作为目标代码行。6.一种基于权利要求2至5任一项所述的加密系统安全测试系统的加密系统安全测试方法,其特征在于,应用于JS Hook代理模块,所述方法包括:获取应用服务器发送的响应于浏览器模块的响应报文中的第一JS代码,在所述第一JS代码中添加Hook函数,得到第二JS代码,将所述第二JS代码发送至浏览器模块,使所述浏览器模块执行所述第二JS代码,获取所述Hook函数传入的变量值,将所述变量值作为备选密钥值保存至备选密钥列表;当接收到执行所述第二JS代码后加密生成的任一密文数据,采用所述备选密钥列表中保存的各个备选密钥值对所述密文数据进行解密,确定成功解密的目标密钥值及其对应的目标代码行;监听所述目标代码行并实时记录所述目标代码行的最新目标变量值;当发送待测试的第一请求报文时,读取最新的目标变量值作为解密密钥值,
将所述解密密钥值写入所述第一请求报文,将所述第一请求报文发送至加解密代理模块;使所述加解密代理模块读取所述第一请求报文中携带的所述解密密钥值,采用所述解密密钥值对所述第一请求报文进行解密,将得到的解密报文发送至安全测试模块;使所述安全测试模块对所述解密报文进行安全测试。7.如权利要求6所述的方法,其特征在于,所述方法包括:获取所述响应报文中的第一JS代码,查找所述第一JS代码中的变量声明语句和赋值表达式;在所述变量声明语句和赋值表达式处添加用于捕捉代码运行时的变量值的Hook函数,生成第二JS代码。8.一种基于权利要求1至5任一项所述的加密系统安全测试系统的加密系统安全测试方法,其特征在于,应用于浏览器模块,所述方法包括:监听密钥所在的目标代码行并实时记录所述目标代码行的最新目标变量值;当发送待测试的第一请求报文时,读取最新的目标变量值作为解密密钥值,将所述解密密钥值写入所述第一请求报文,将所述第一请求报文发送至加解密代理模块;使所述加解密代理模块读取所述第一请求报文中携带的所述...
【专利技术属性】
技术研发人员:刘加慧,蔡水捷,刘旭,代德顺,朱仟,陈玉成,
申请(专利权)人:中国银联股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。