CN104166822B - 一种数据保护的方法和装置 - Google Patents

一种数据保护的方法和装置 Download PDF

Info

Publication number
CN104166822B
CN104166822B CN201310186287.7A CN201310186287A CN104166822B CN 104166822 B CN104166822 B CN 104166822B CN 201310186287 A CN201310186287 A CN 201310186287A CN 104166822 B CN104166822 B CN 104166822B
Authority
CN
China
Prior art keywords
source data
tree
parameter
obscure
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310186287.7A
Other languages
English (en)
Other versions
CN104166822A (zh
Inventor
李剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201310186287.7A priority Critical patent/CN104166822B/zh
Priority to TW102132564A priority patent/TWI598765B/zh
Priority to US14/280,145 priority patent/US9836612B2/en
Priority to JP2016515006A priority patent/JP6257754B2/ja
Priority to EP14734976.5A priority patent/EP3000068B1/en
Priority to PCT/US2014/038746 priority patent/WO2014189900A1/en
Publication of CN104166822A publication Critical patent/CN104166822A/zh
Priority to HK15103039.0A priority patent/HK1202666A1/zh
Application granted granted Critical
Publication of CN104166822B publication Critical patent/CN104166822B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos

Abstract

本申请涉及一种数据保护的方法和装置,包括:通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;针对所述树形源数据,选择混淆策略;基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及将所述混淆树形源数据反编译成混淆后的脚本资源源数据。本申请将脚本资源源数据编译成树形源数据,并对树形源数据进行等价混淆处理,从而提高源数据的安全性;并且利用随机生成的加密密钥和加密令牌以及随机选取的加密算法,对客户端的相关参数进行数据加密,提高了数据安全性。

Description

一种数据保护的方法和装置
技术领域
本申请涉及数据安全领域,尤其涉及一种数据保护的方法和装置。
背景技术
当今社会对计算机等终端设备的应用越来越广泛,但是,在客户端中储存或客户端之间传输的源数据的信息安全也随之引起了公众的注意,由于没有对这些源数据进行源数据保护或保护措施较差,造成这些源数据在利用电子邮件、浏览器等应用软件进行传输、交换或存储的过程中,出现了源数据伪造、篡改、重放、丢失和泄露等现象的发生。
例如,JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给页面添加动态功能,JavaScript语言的出现使得页面和用户之间实现了一种实时性的、动态性的、交互性的关系。但是,由于JavaScript源代码(源数据)以明文形式呈现于客户端中,通过JavaScript采集的重要数据无法实现防伪造、防篡改、防重放等需求。所以,在该明文中存在的敏感源代码或者有价值的信息,可以在客户端中轻而易举地被获得,并依此针对客户端中的可能发生的行为进行非法操作。
在现有技术中,为应对上述问题,出现了在服务器侧对脚本资源进行混淆并在客户端侧对采集的数据进行加密和混淆,并传输给服务器端的方法,但是大多采用固定的加密算法、固定的加密密钥和固定的混淆参数,即静态的数据,缺少加密和混淆的更新机制,一旦被破解,数据很容易被伪造和篡改,严重威胁了源数据的安全性。
发明内容
本申请的主要目的在于提供一种数据保护的方法和装置,以解决现有技术存在的源数据明文容易被破解,而造成的客户端的相关数据易被伪造、篡改的问题,以提高数据的安全性。
为了解决上述技术问题,本申请的目的是通过以下技术方案实现的:
本申请提供了一种数据保护的方法,包括以下步骤:通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;针对所述树形源数据,选择混淆策略;基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及将所述混淆树形源数据反编译成混淆后的脚本资源源数据。
优选地,在根据本申请所述的方法中,所述混淆策略包括如下混淆处理方式中的至少一个:变量名替换、函数名替换、数值替换、语句顺序替换、去除空白、插入无效代码、代码加密。
优选地,在根据本申请所述的方法中,基于所述混淆策略,对所述树形源数据进行等价混淆处理的步骤,包括:根据所述混淆策略中包含的一个或多个混淆处理方式,生成与所述一个或多个混淆处理方式中每一个混淆处理方式对应的混淆参数;以及基于所述一个或多个混淆处理方式和所对应的混淆参数,对所述树形源数据进行混淆处理。
优选地,在根据本申请所述的方法中,所述混淆树形源数据和所述树形源数据的执行顺序相同。
优选地,在根据本申请所述的方法中,所述将所述混淆后的树形源数据反编译成混淆后的脚本资源源数据的步骤包括:通过对所述混淆树形源数据进行拆分,得到多个混淆后的语义结构;以及基于所述多个混淆后的语义结构中混淆后的语义单元,构建所述混淆后的脚本资源源数据。
优选地,根据本申请所述的方法,还可以包括:接收来自客户端的脚本资源请求,其中,所述脚本资源请求用于获取对应的脚本资源源数据,并且在所述脚本资源请求中包含加密令牌参数;基于所述加密令牌参数,生成与所述加密令牌参数对应的加密密钥;根据所述加密令牌参数,选择加密算法,并将所述加密密钥写入所述加密算法中;将包含所述加密密钥的加密算法组装到所述脚本资源源数据中。
优选地,根据本申请所述的方法,还可以包括:接收来自客户端的校验请求,其中,所述校验请求包括:加密令牌参数及被加密的参数,其中,所述加密令牌参数为客户端提取的网页数据中的加密令牌,所述被加密的参数为客户端根据混淆后的所述加密密钥和混淆后的所述加密算法加密的客户端中的相关参数;获取与所述混淆后的加密密钥对应的解密密钥和与所述混淆后的加密算法对应的解密算法;基于所述解密密钥和所述解密算法,对所述校验请求中被加密的参数进行完整性验证。
优选地,在根据本申请所述的方法中,所述被加密的参数包括:加密令牌参数、客户端环境参数、用户行为参数、调用其他浏览器插件参数。
优选地,在根据本申请所述的方法中,所述基于所述解密密钥和所述解密算法,对所述校验请求中被加密的参数进行完整性验证的步骤,包括:确定所述被加密的参数为非空值数据;通过所述解密密钥和所述解密算法,对非空值的所述被加密的参数进行解密;基于解密后的参数,提取加密令牌,并确定所述提取的加密令牌参数和所述校验请求中的加密令牌参数相同。
本申请还提供了一种数据保护的装置,包括:解析模块,用于通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;形成模块,用于基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;选择模块,用于针对所述树形源数据,选择混淆策略;混淆模块,用于基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及反编译模块,用于将所述混淆树形源数据反编译成混淆后的脚本资源源数据。
优选地,在根据本申请所述的装置中,所述混淆策略包括如下混淆处理方式中的至少一个:变量名替换、函数名替换、数值替换、语句顺序替换、去除空白、插入无效代码、代码加密。
优选地,在根据本申请所述的装置中,所述混淆模块还包括:生成单元,用于根据所述混淆策略中包含的一个或多个混淆处理方式,生成与所述一个或多个混淆处理方式中每一个混淆处理方式对应的混淆参数;以及混淆单元,基于所述一个或多个混淆处理方式和所对应的混淆参数,对所述树形源数据进行混淆处理。
优选地,在根据本申请所述的装置中,所述混淆树形源数据和所述树形源数据的执行顺序相同。
优选地,在根据本申请所述的装置中,所述反编译模块还包括:拆分单元,用于通过对所述混淆树形源数据进行拆分,得到多个混淆后的语义结构;以及构建单元,用于基于所述多个混淆后的语义结构中混淆后的语义单元,构建所述混淆后的脚本资源源数据。
与现有技术相比,根据本申请的技术方案存在以下有益效果:
本申请采用编译的方式将脚本资源源数据编译成树形源数据,并利用选择的混淆策略对树形源数据进行等价混淆处理,以此降低源数据的可读性,增加了源数据的破解难度,从而提高源数据的安全性,同时保护了脚本资源源数据中主要的数据结构、数据流程、函数入口、参数等信息;
本申请利用随机生成的加密密钥和加密令牌并通过随机选取的加密算法,对客户端的相关参数进行数据加密,并作数据完整性校验,以此降低数据被非法操作的可能性,提高了数据安全。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的数据保护的混淆方法的流程图
图2是本申请实施例的数据保护的加密令牌生成的步骤的流程图;
图3是本申请实施例的数据保护的脚本资源源数据加密算法和加密密钥生成步骤的流程图;
图4是本申请实施例的数据保护的数据完整性校验的步骤的流程图;以及
图5是本申请实施例的数据保护的装置的结构图。
具体实施方式
本申请的主要思想在于,随机生成加密密钥并随机选取加密算法,将所述加密密钥和所述加密算法置于脚本资源源数据中,将在客户端明文可见并且包含加密密钥和加密算法的脚本资源源数据进行等价混淆处理,增加源数据的破解难度,防止了脚本资源源数据被破解后,源数据(网页数据、脚本资源源数据)中的加密令牌、加密算法、加密密钥以及与客户端相关的参数容易被利用,导致发生客户端的相关数据被伪造、篡改、重放等非法操作,而且本申请所述加密令牌和所述加密密钥为一次性加密工具,使用过后立即销毁,极大的增加了数据非法性造作的成本,提高了数据安全。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为使本申请的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本申请作进一步地详细说明。
根据本申请的实施例,提供了一种数据保护的方法。
图1为本申请实施例的数据保护的混淆方法的流程图。
本申请的对脚本资源源数据的混淆的方法,是对脚本资源源数据进行编译,将脚本资源源数据解析成树形源数据,通过对树形源数据中多个语义结构进行逻辑关系转换和/或语义替换(混淆),同时保持和原执行结果一致,最后将混淆后的树形源数据反编译成混淆后的脚本资源源数据。该混淆后的脚本资源源数据和明文形式的脚本资源源数据执行效果相同,而且,混淆处理方式可选并且混淆参数随机生成,这样可以做到对同一脚本资源源数据的多次混淆的混淆结果不同,从而增加了脚本资源源数据的破解难度,提高了脚本资源源数据的安全性,并且,通过选择不同的混淆处理方式,控制了混淆后的脚本资源源数据的长度,减轻了因为混淆后的脚本资源源数据体积过大,造成脚本资源加载和执行过程过慢。
在步骤S102处,通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元。
具体而言,将所述脚本资源源数据读取成长字符串,扫描所述长字符串,并对该长字符串进行语法分析,对该长字符串中包含的具有实质意义的语义单元进行拆分,以得到所述脚本资源源数据中包含的多个语义单元。例如:分析长字符串中包含关键字for,说明该处涉及循环结构,则可以查询出长字符串中包含for(;;){}结构的语义单元。
在步骤S104处,基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中。
构建一个树形语义结构定义库,在该树形语义结构定义库中存储了多个语义结构,如:Script根节点(在该根节点下可以挂载任意符合JavaScript树形源数据特点的节点)、Block结构(最小存储和处理单位,可以挂载主要的执行过程)、函数声明、函数调用、基础数据节点(具体的数字或具体的字符串)、变量声明、变量赋值、变量引用、变量操作符、循环语法结构等等。
每一个语义单元都会存在一个对应的语义结构,当获得与所述脚本资源源数据相应的多个语义单元后,在所述树形语义结构定义库中找到每一个语义单元对应的语义结构,将所述多个语义单元中的每一个语义单元挂载至对应的语义结构中,将多个挂载了语义单元的语义结构进行拼装,以组成完整的树形源数据。
进一步地,将语义单元挂载至对应的语义结构中,还可以理解为,基于所述语义单元,对所述多个语义结构中的字符和/或数值进行赋值,如,对语义结构中的函数名进行赋值,以使树形语义结构定义库的语义结构中的通用函数名变化成和所述脚本资源源数据中的函数名一致。
例如,解析出所述长字符串中包含function add(num1,num2)语句,则表示该处代码包括函数声明,在树形语义结构定义库中查找对应所述函数声明的语义结构structfunction(),基于function add(num1,num2),对所述语义结构进行赋值,则可以得到struct function add(num1,num2)。
在步骤S106处,针对所述树形源数据,选择混淆策略。
该混淆策略利用不同的混淆处理方法或不同混淆处理方法的组合,实现对树形源数据的混淆,并且保持混淆前和混淆后的树形源数据的语义和执行顺序一致,即等价混淆处理。选择不同的混淆处理方法得到的混淆程度不同,越难被破解则混淆度越高,越容易被破解则混淆度越低。可选地,可以随机地选择混淆策略。
所述混淆策略包括如下混淆处理方式中的至少一个:变量名替换、函数名替换、数值替换、语句顺序替换、去除空白、插入无效代码、代码加密。
所述变量名替换是对树形源数据中的变量名称进行替换,同时保证该变量的定义、变量的赋值、变量的运算正确。所述变量名替换包括对变量声明节点、变量赋值、变量引用节点中相同变量的变量名进行替换。进一步地,在进行变量名替换时,变量名替换参数随机产生,并保证在同一个变量作用域内,不同变量的变量名不同,并且逻辑正确。例如,将变量名替换参数为随机的没有意义的字符,如“a”、“b”,用该没有意义的字符进行变量名替换。
与变量名相似,所述函数名替换是对树形源数据中的函数名称进行替换,将原本有意义的函数名替换为没有意义的字符,并保证在同一个函数作用域内,不同函数的函数名不同,并且逻辑正确。所述函数名替换包括对函数声明节点、函数引用节点中相同函数的函数名进行替换。进一步地,在进行函数名替换时,函数名替换参数随机产生,例如,生成函数名替换参数“aa”,并用该“aa”替换函数名。
进行变量名替换和函数名替换可以将原本有意义的变量名和函数名替换为没有意义的字符,加大了破解者的阅读难度和分析难度。
所述数值替换是将树形源数据中的数值替换成一个算数表达式,该算数表达式的计算结果是原来的数值。例如,随机生成两个数值替换参数,rand1和rand2;使用这两个数值替换参数组成一个算数表达式(num+rand1*rand2)%rand2,以此表示一个数值,并且可以将该算数表达式用8进制、16进制进行表示,增加混淆度。例如:在树形源数据中包含数值var1=1,将该数值替换为算数表达式(16进制)var1=0307%0x63。
所述语句顺序替换是在不影响树形源数据正常执行的情况下,对不要求调用顺序的数据之间进行顺序重组。具体而言,可以将能够打乱顺序的多个语句放置在一个循环结构内,例如,使用Switch函数选择语句顺序,使原来的语句顺序被打乱,但是在执行时,按照原来的语句顺序执行。
所述去除空白是查询树形源数据中所有的回车符、语句与语句之间的所有空格,将所述回车符、空格去除,以此降低数据的可读性。
在树形源数据中插入无效代码既不影响树形源数据的原有逻辑,也不影响树形源数据的正常执行。所以,可以预先构建一个无效代码库,在该无效代码库中随机的选择一个或多个无效代码插入树形源数据中,在插入无效代码后,该被插入无效代码的树形源数据能够正确执行。
所述代码加密是对树形源数据中的代码进行加密,如,对特定类型的关键字和特定长度的字符串进行加密,对满足特定长度的字符串进行加密等。
该代码加密从预设的代码算法库中随机选择代码加密算法,并随机生成代码加密密钥;基于所述代码加密算法和所述代码加密密钥,计算出需要加密的代码对应的密文;从所述代码算法库中查询与所述代码加密算法对应的代码解密算法,将所述代码加密密钥作为代码解密密钥或者生成一个与该代码加密密钥对应的代码解密密钥;在树形语义结构定义库中查找所述代码解密算法对应的语义结构,将所述代码解密密钥和所述密文作为所述语义结构的参数填充到该语义结构中,将该语义结构挂载到树形源数据的相应位置中,并且该位置保证所有代码都可以调用该代码解密算法;将所述需要加密的代码替换成解密算法的调用形式,以使执行结果不发生变化,即,该执行结果为通过所述代码解密算法和所述代码解密密钥对所述密文进行解密后的代码。
以上几种混淆处理方式,可以单独用于混淆处理,也可以选取其中几个组合在一起来执行混淆处理,以得到混淆策略。每一种混淆处理方式或每一个混淆处理方式的组合都会获得不同的混淆度。在应用中,可以预先确定一个混淆策略,也可以在多个混淆处理方式中随机选取一个或多个混淆处理方式作为混淆策略,还可以预先确定多个混淆策略并随机选择这多个混淆策略之一进行混淆处理。
多个混淆处理方式的组合不同或组合顺序不同,可以得到不同的混淆效果,例如,混淆后的树形源数据混淆度大小不同、体积大小不同等等。
表1
例如,在表1中,组合1-组合3是7个混淆处理方式的三种不同组合形式,每种组合形式中包含的混淆处理方式相同,但是由于组合顺序不同,所得到混淆后的树形源数据的混淆度从组合1-组合3依次减小,而且数据的体积也是从组合1-组合3依次减小。若需要混淆后的树形源数据具有较小的代码体积,可以选择少量的混淆处理方式组成一个混淆策略,以获得较小的混淆度,如:表1中的组合4。
需要说明的是,所述混淆处理方式并不限于在此描述的几种,还可以包括本领域已知或未来开发的可以用于混淆处理的混淆处理方式。
在步骤S108处,基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据。
在执行每一种混淆处理方式时都会生成与该混淆处理方式对应的混淆参数,如:变量名替换参数、函数名替换参数、数值替换参数、用于语句顺序替换的循环结构、无效代码、代码加密密钥等等。
根据所述混淆策略中包含的一个或多个混淆处理方式,生成与所述一个或多个混淆处理方式中每一个混淆处理方式对应的混淆参数。由于混淆策略的不同或是混淆策略中混淆处理方式的组合顺序不同或是混淆处理方式生成的混淆参数不同,使所述的混淆处理具有随机性和一次性,换言之,利用本申请的混淆处理方法可以使同一脚本资源源数据的每一次混淆结果不同。这样有效地提高了源数据的安全性。
基于所述一个或多个混淆处理方式和所对应的混淆参数,对所述树形源数据进行混淆处理。其中,对所述树形源数据的混淆处理为等价混淆处理,所述等价混淆处理表示所述混淆树形源数据和所述树形源数据的执行顺序相同。例如:基于所述代码加密的混淆处理方法对树形源数据中的字符串“javascript”进行代码加密(混淆),加密后的结果为“GvajecsaGpirot”,虽然“javascript”和“GvajecsaGpirot”内容不同,但是执行混淆树形源数据中混淆后的字符串“GvajecsaGpirot”时,执行结果依旧为“javascript”,所以混淆后的字符串“GvajecsaGpirot”等价于混淆前的字符串“javascript”。进一步地,所述等价混淆处理可以用于保护所述树形源数据中包含的重要数据,例如,在图3和图4的实施例中涉及的脚本资源源数据中包含的加密工具(加密算法和加密密钥),加密算法和加密密钥在经过等价混淆处理后,加密算法和加密密钥的内容可以发生变化但是执行结果不变,所述混淆后的加密算法和混淆后的加密密钥不影响后续使用,反而经过混淆处理加强了加密工具(加密算法和加密密钥)的破解难度。
在步骤S110处,将所述混淆树形源数据反编译成混淆后的脚本资源源数据。
遍历该混淆树形源数据,根据树形语义结构定义库中的语义结构,分析所述混淆树形源数据中的语义结构,通过对所述混淆树形源数据进行拆分,得到多个混淆后的语义结构。
在对树形源数据进行混淆处理时,所述树形源数据中语义结构,以及所述语义结构中填充的语义单元都进行了混淆处理,所以,基于所述多个混淆后的语义结构中混淆后的语义单元,构建所述混淆后的脚本资源源数据。
由于对所述树形源数据进行的是等价混淆处理,所以所述脚本资源源数据在混淆前和混淆后,执行结果相同,但是,因为对树形源数据进行了混淆处理,所以混淆后的脚本资源源数据与混淆前的脚本资源源数据内容不同,混淆后的脚本资源源数据较为复杂,增加了破解难度,保护了源数据的安全。
将该混淆后的脚本资源源数据发送至客户端,通过该混淆后的脚本资源源数据以实现对脚本资源的加载和运行。
本申请所述的数据保护的混淆方法可以增加脚本资源源数据的数据复杂性,有效地保护数据安全,以防脚本资源源数据中涉及的重要数据被非法利用。换言之,所述的混淆方法可以保护所述脚本资源源数据中包含的加密工具,该加密工具用于保护与客户端相关的参数,若脚本资源源数据中的加密工具等重要数据被破解,发生在客户端中的操作行为即可被非法操作。
在对脚本资源源数据进行上述混淆方法之前,可以预先将需要保护的重要数据放置于脚本资源源数据中,通过混淆处理的方式保护所述重要数据数据安全。
在一个实施例中,所述混淆方法可以用于保护脚本资源源数据中的加密工具(加密密钥和加密算法),并通过保护所述加密工具,实现对客户端中的相关参数的保护。
具体而言,所述加密工具用于加密所述客户端中的相关参数,在加密过程中,需要使用加密令牌。首先参考图2来说明本申请实施例的数据保护的加密令牌生成的步骤的流程图。
在步骤S202处,接收来自客户端的页面请求,并随机生成与该页面请求对应的加密令牌。
接收来自客户端的页面请求,该页面请求用于建立该客户端与服务器之间的网络会话,获得该网络会话的会话令牌,以实现对该服务器的访问,从而最终获取与所述页面请求对应的网页数据。
针对与该页面请求对应的会话令牌,随机生成加密令牌,该会话令牌和该加密令牌存在一一对应关系,将所述加密令牌与所述会话令牌的对应关系存储于加密令牌库中。其中,所述加密令牌可以是一个随机长字符串,例如,由数据或字母组成的,不少于16位的字符串;所述网络会话的会话令牌可以是一个具有唯一性的标识,用于表示客户端与交互的服务器之间的不间断的通信时间间隔,也可以用于识别客户端并保持该客户端与服务器之间的通信。如,Web中的Session(会话)。
在步骤204处,将所述加密令牌写入所述网页数据的相关位置中。例如,将生成的加密令牌写入所述网页数据的语句:<script type="text/javascript"src="http://xxx.com/yyy.js?token=abcdefghijklmn0123456789"></script>中,其中:语句“http://xxx.com/yyy.js”为需要客户端加载的JavaScript脚本资源地址,并且通过执行该脚本资源地址指向的脚本资源源数据来实现对客户端中的相关参数的收集和数据加密;语句“token=abcdefghijklmn0123456789”为加密令牌,该加密令牌的值“abcdefghijklmn0123456789”由服务器端随机生成。
在步骤S206处,将包含加密令牌的网页数据返回给客户端。基于所述包含加密令牌的网页数据,客户端对所述页面进行渲染,并将所述加密令牌渲染到网页中。
在网页渲染过程中,由于在客户端中不具备JavaScript脚本资源,所以,需要客户端向服务器再次发送脚本资源请求,以获取对应该脚本资源请求的脚本资源源数据,以完成脚本资源的加载。
与现有技术不同,本申请实施例的脚本资源加载的步骤还包括脚本资源源数据加密算法和加密密钥的生成步骤和脚本资源源数据的混淆步骤。基于加密算法和加密密钥对与客户端的相关参数进行数据加密,并由服务器对该加密后的相关参数进行完整性校验,以确定所述客户端产生的数据是否为合法数据。其中,加密密钥为随机生成,加密算法是在加密算法库中随机选择,加大了资源源代码的破解难度;以及对包含有所述加密算法和加密密钥的脚本资源源数据进行混淆,增强明文形式的脚本资源源数据在内容的复杂度,加大脚本资源源数据的阅读难度和破解难度的同时可以保护脚本资源源数据中主要的数据结构、数据流程、函数入口、参数等信息。
加密令牌生成后,需要选择加密算法以及生成加密密钥。如图3所示,图3是本申请实施例的数据保护的脚本资源源数据加密算法和加密密钥生成步骤的流程图。
在步骤S302处,接收来自客户端的脚本资源请求。
其中,所述脚本资源请求用于获取对应的脚本资源源数据,并且在所述脚本资源请求中包含加密令牌参数。该加密令牌参数等价于服务器随机生成的加密令牌,该加密令牌参数用于请求与该加密令牌相对应的加密密钥和加密算法。
在步骤S304处,基于所述加密令牌参数,生成与所述加密令牌参数对应的加密密钥。
服务器端接收到该脚本资源请求,基于该脚本资源请求中的加密令牌参数,随机生成一个具有唯一性的加密密钥,并将该加密令牌和与该加密令牌对应的所述加密密钥保存至加密密钥库中,在该加密密钥库中还保存与该加密密钥相对应的解密密钥,进一步地,该解密密钥可以与该加密密钥相同,也可以生成与该加密密钥相关的解密密钥。
在步骤S306处,根据所述加密令牌参数,选择加密算法,并将所述加密密钥写入所述加密算法中。
基于该加密令牌参数,在预设的加密算法库中选择一个加密算法,并记录该加密令牌对应的加密算法的标签,其中,该标签用于确定唯一一个加密算法和与该加密算法相对应的解密算法。进一步地,在选择加密算法时,可以随机选择加密算法,也可以根据预定规则选择加密算法,并且,存储于该加密算法库中的加密算法可以是对称加密算法,也可以是非对称加密算法,以及定期对该加密算法库中存储的加密算法进行维护和更新,提高加密算法的安全性。
将所述加密密钥写入所述加密算法中,例如,将该加密密钥作为该加密算法的参数挂载在加密算法的代码中。
在步骤S308处,将包含所述加密密钥的加密算法组装到所述脚本资源源数据中。换言之,并将代表加密算法的加密算法代码(包含加密密钥)组装至代表JavaScript脚本资源的脚本资源源代码中,将该包含有加密密钥的加密算法放置于该脚本资源源数据的相关位置中,如,放置于所述脚本资源源代码的第一层代码中,使该包含加密密钥的加密算法不被嵌套在任何循环结构中。
将该包含有加密算法和加密密钥的脚本资源源数据发送至客户端,该客户端可以利用脚本资源源数据中加密算法和加密密钥对采集的客户端相关的参数进行加密保护。为了进一步加强数据保护,如上所述采用图1的混淆方法对该包含有加密算法和加密秘钥的脚本资源源数据进行混淆处理,既不影响数据的执行结果还可以增加破解难度,通过保护加密工具从而进一步保护了数据安全。
在另一个实施例中,还可以对所述客户端中的相关参数进行校验,以验证通过该混淆处理方法保护源数据的安全性和保护客户端中相关数据的安全性所达到的效果。
在运行所述脚本资源源数据时,收集客户端中的相关参数,该相关参数可以用于分析客户端中的操作行为,如:点击鼠标的次数,调用浏览器插件的种类等等。需要收集的客户端的操作行为可以预先写入脚本资源源数据中,通过在客户端中运行该脚本资源源数据,达到收集并加密与该操作行为相关的参数的目的。
所述客户端中的相关参数可以包括:客户端环境参数、用户行为参数、调用其他浏览器插件参数、加密令牌参数等等,并将所述收集的客户端中的相关参数,利用混淆后的脚本资源源数据中的加密算法和加密密钥进行数据加密。
具体而言,所述客户端环境参数,如:浏览器版本、操作系统版本、客户端尺寸(大小、长宽)、屏幕分辨率等等。
所述用户行为参数,如:鼠标移动信息、鼠标点击信息、键盘敲击信息、焦点移动信息等等。
所述调用其他浏览器插件参数,如:调用其他浏览器控件、获得客户端MAC地址等。
所述加密令牌参数是指写入所述网页源代码中的加密令牌。
利用所述混淆后的脚本资源源数据中的混淆后的加密算法和混淆后的加密密钥对所述客户端中的相关参数进行数据加密,将加密后的所述相关参数发送至服务器进行操作行为分析,为确定该客户端中的相关参数是否已经发生非法操作,在进行所述操作行为分析之前,还需要对加密的数据进行数据完整性校验。向服务器发送校验请求,将所述加密数据(加密后的客户端中的相关参数)和所述网页数据中的加密令牌,作为该校验请求的参数,基于该参数做数据完整性校验,以确定是否存在伪造、篡改、重放等非法操作。
图4是本申请实施例的数据保护的数据完整性校验的步骤的流程图。
该数据完整性校验的步骤,用于检查所述加密数据是否存在(空值为不存在)、所述加密数据是否可以解密、是否存在数据重放。
在步骤S402处,接收来自客户端的校验请求,其中,所述校验请求包括:加密令牌参数及被加密的参数,其中,所述加密令牌参数为客户端提取的网页数据中的加密令牌,所述被加密的参数为客户端根据混淆后的所述加密密钥和混淆后的所述加密算法加密的客户端中的相关参数。
所述被加密的参数包括:加密令牌参数、客户端环境参数、用户行为参数、调用其他浏览器插件参数等等。
在步骤S404处,获取与所述混淆后的加密密钥对应的解密密钥和与所述混淆后的加密算法对应的解密算法。
在加密算法库中保存了与加密令牌对应的加密算法的解密算法,在加密密钥库中保存了加密令牌对应的加密密钥的解密密钥,并且,所述加密算法和所述加密密钥在经过等价混淆处理后语义未发生变化,所以,在所述加密算法库中可以查找与混淆后的加密算法对应的解密算法以及在所述加密秘钥库中可以查找与混淆后的加密密钥对应的解密密钥。根据所述校验请求中包含的加密令牌参数,获取与该加密令牌参数对应的解密算法和解密密钥。
在步骤S406处,基于所述解密密钥和所述解密算法,对所述校验请求中被加密的参数进行完整性验证。
对所述校验请求中被加密的参数进行完整性验证,首先,要确定所述被加密的参数为非空值数据,若为空值,则表示该被加密的参数不存在,数据完整性校验失效,并将该加密的参数确定为非法数据;若为非空值,则进行数据解密校验。
然后,通过所述解密密钥和所述解密算法,对非空值的所述被加密的参数进行解密。基于查找到的解密算法和解密密钥对所述加密的参数进行解密处理。若解密失败,则表示该被加密的参数可能发生过非法操作,数据完整性校验失效,并确定该加密的参数为非法数据;若解密成功,则生成与该被加密的参数对应的解密后的参数,并对该解密参数进行防数据重放校验。
最后,基于解密后的参数,提取该参数中加密令牌参数(加密令牌),并确定所述提取的加密令牌参数和所述校验请求中的加密令牌参数相同。进一步地,还可以将加密令牌库中与该网络会话对应的会话令牌与该提取出的加密令牌进行比较,判断是否相同,若不相同,则判断为数据重放,这样将该解密后的参数确定为非法数据;若相同,则将该解密后的加密令牌参数与接收到验证请求中的加密令牌参数进行比较,若不相同,则将该解密数据确定为非法数据,若相同,则所述解密数据的防重放校验通过。
当用户提交的加密的参数通过了数据完整性校验,则可以确定该加密的参数为合法数据,这时,可以利用解密的参数进行客户端的操作行为分析。
对于数据完整性校验中未通过的非法数据,可以向客户端发送用户数据异常的提示信息。
在数据完整性校验结束后,将本次网络会话过程中产生的加密令牌和加密密钥从加密令牌库和加密密钥库中删除,以此保证所述加密令牌和加密密钥不再被使用,达到加密令牌和加密密钥的一次性,以此增加源数据的破解难度。
本申请还提供了一种数据保护的装置。
参考图5,图5是本申请实施例的数据保护的装置的结构图。
根据本申请的所述装置包括解析模块501,形成模块503、选择模块505、混淆模块507和反编译模块509。
解析模块501,用于通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元。
形成模块503,用于基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中。
选择模块505,用于针对所述树形源数据,选择混淆策略。
所述混淆策略包括如下混淆处理方式中的至少一个:变量名替换、函数名替换、数值替换、语句顺序替换、去除空白、插入无效代码、代码加密。
混淆模块507,用于基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据。
所述混淆模块还包括:生成单元5071,用于根据所述混淆策略中包含的一个或多个混淆处理方式,生成与所述一个或多个混淆处理方式中每一个混淆处理方式对应的混淆参数;以及混淆单元5073,基于所述一个或多个混淆处理方式和所对应的混淆参数,对所述树形源数据进行混淆处理。
所述等价混淆处理,表示所述混淆树形源数据和所述树形源数据的执行顺序相同。
反编译模块509,用于将所述混淆树形源数据反编译成混淆后的脚本资源源数据。
所述反编译模块509还包括拆分单元5091,用于通过对所述混淆树形源数据进行拆分,得到多个混淆后的语义结构;以及构建单元5093,用于基于所述多个混淆后的语义结构中混淆后的语义单元,构建所述混淆后的脚本资源源数据。
本申请采用编译的方式将脚本资源源数据编译成树形源数据,并利用选择的混淆策略对树形源数据进行等价混淆处理,以此降低源数据的可读性,增加了源数据的破解难度,从而提高源数据的安全性,同时保护了脚本资源源数据中主要的数据结构、数据流程、函数入口、参数等信息;
本申请利用随机生成的加密密钥和加密令牌并通过随机选取的加密算法,对客户端的相关参数进行数据加密,并作数据完整性校验,以此降低数据被非法操作的可能性,提高了数据安全。
由于图5所描述的本申请的装置所包括的各个模块的具体实施方式与图3所示的数据保护的脚本资源源数据的混淆步骤的具体实施方式是对应的,由于已经对图3进行了详细描述,所以为了不模糊本申请,在此不再对各个模块的具体细节进行描述。
本说明书中的各个实施例一般采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块或单元。一般地,程序模块或单元可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。一般来说,程序模块或单元可以由软件、硬件或两者的结合来实现。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块或单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其主要思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种数据保护的方法,其特征在于,包括:
通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;
基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;
针对所述树形源数据,选择混淆策略;
基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及
将所述混淆树形源数据反编译成混淆后的脚本资源源数据。
2.根据权利要求1所述的方法,其特征在于,所述混淆策略包括如下混淆处理方式中的至少一个:变量名替换、函数名替换、数值替换、语句顺序替换、去除空白、插入无效代码、代码加密。
3.根据权利要求2所述的方法,其特征在于,基于所述混淆策略,对所述树形源数据进行等价混淆处理的步骤,包括:
根据所述混淆策略中包含的一个或多个混淆处理方式,生成与所述一个或多个混淆处理方式中每一个混淆处理方式对应的混淆参数;以及
基于所述一个或多个混淆处理方式和所对应的混淆参数,对所述树形源数据进行混淆处理。
4.根据权利要求1所述的方法,其特征在于,所述混淆树形源数据和所述树形源数据的执行顺序相同。
5.根据权利要求1所述的方法,其特征在于,所述将所述混淆树形源数据反编译成混淆后的脚本资源源数据的步骤包括:
通过对所述混淆树形源数据进行拆分,得到多个混淆后的语义结构;以及
基于所述多个混淆后的语义结构中混淆后的语义单元,构建所述混淆后的脚本资源源数据。
6.根据权利要求1所述的方法,其特征在于,还包括:
接收来自客户端的脚本资源请求,其中,所述脚本资源请求用于获取对应的脚本资源源数据,并且在所述脚本资源请求中包含加密令牌参数;
基于所述加密令牌参数,生成与所述加密令牌参数对应的加密密钥;
根据所述加密令牌参数,选择加密算法,并将所述加密密钥写入所述加密算法中;
将包含所述加密密钥的加密算法组装到所述脚本资源源数据中。
7.根据权利要求6所述的方法,其特征在于,还包括:
接收来自客户端的校验请求,其中,所述校验请求包括:加密令牌参数及被加密的参数,其中,所述加密令牌参数为客户端提取的网页数据中的加密令牌,所述被加密的参数为客户端根据混淆后的所述加密密钥和混淆后的所述加密算法加密的客户端中的相关参数;
获取与所述混淆后的加密密钥对应的解密密钥和与所述混淆后的加密算法对应的解密算法;
基于所述解密密钥和所述解密算法,对所述校验请求中被加密的参数进行完整性验证。
8.根据权利要求7所述的方法,其特征在于,所述被加密的参数包括:加密令牌参数、客户端环境参数、用户行为参数、调用其他浏览器插件参数。
9.根据权利要求8所述的方法,其特征在于,所述基于所述解密密钥和所述解密算法,对所述校验请求中被加密的参数进行完整性验证的步骤,包括:
确定所述被加密的参数为非空值数据;
通过所述解密密钥和所述解密算法,对非空值的所述被加密的参数进行解密;
基于解密后的参数,提取加密令牌参数,并确定所述提取的加密令牌参数和所述校验请求中的加密令牌参数相同。
10.一种数据保护的装置,其特征在于,包括:
解析模块,用于通过解析脚本资源源数据,获得与所述脚本资源源数据相应的多个语义单元;
形成模块,用于基于所述多个语义单元,形成树形源数据,其中所述树形源数据包含多个语义结构,所述多个语义单元填充在所述多个语义结构中;
选择模块,用于针对所述树形源数据,选择混淆策略;
混淆模块,用于基于所述混淆策略,对所述树形源数据进行等价混淆处理,以得到混淆树形源数据;以及
反编译模块,用于将所述混淆树形源数据反编译成混淆后的脚本资源源数据。
11.根据权利要求10所述的装置,其特征在于,所述混淆策略包括如下混淆处理方式中的至少一个:变量名替换、函数名替换、数值替换、语句顺序替换、去除空白、插入无效代码、代码加密。
12.根据权利要求11所述的装置,其特征在于,所述混淆模块还包括:
生成单元,用于根据所述混淆策略中包含的一个或多个混淆处理方式,生成与所述一个或多个混淆处理方式中每一个混淆处理方式对应的混淆参数;以及
混淆单元,基于所述一个或多个混淆处理方式和所对应的混淆参数,对所述树形源数据进行混淆处理。
13.根据权利要求10所述的装置,其特征在于,所述混淆树形源数据和所述树形源数据的执行顺序相同。
14.根据权利要求10所述的装置,其特征在于,所述反编译模块还包括:
拆分单元,用于通过对所述混淆树形源数据进行拆分,得到多个混淆后的语义结构;以及
构建单元,用于基于所述多个混淆后的语义结构中混淆后的语义单元,构建所述混淆后的脚本资源源数据。
CN201310186287.7A 2013-05-20 2013-05-20 一种数据保护的方法和装置 Active CN104166822B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201310186287.7A CN104166822B (zh) 2013-05-20 2013-05-20 一种数据保护的方法和装置
TW102132564A TWI598765B (zh) 2013-05-20 2013-09-10 Data protection methods and devices
US14/280,145 US9836612B2 (en) 2013-05-20 2014-05-16 Protecting data
EP14734976.5A EP3000068B1 (en) 2013-05-20 2014-05-20 Protecting data
JP2016515006A JP6257754B2 (ja) 2013-05-20 2014-05-20 データの保護
PCT/US2014/038746 WO2014189900A1 (en) 2013-05-20 2014-05-20 Protecting data
HK15103039.0A HK1202666A1 (zh) 2013-05-20 2015-03-25 種數據保護的方法和裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310186287.7A CN104166822B (zh) 2013-05-20 2013-05-20 一种数据保护的方法和装置

Publications (2)

Publication Number Publication Date
CN104166822A CN104166822A (zh) 2014-11-26
CN104166822B true CN104166822B (zh) 2017-10-13

Family

ID=51896782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310186287.7A Active CN104166822B (zh) 2013-05-20 2013-05-20 一种数据保护的方法和装置

Country Status (7)

Country Link
US (1) US9836612B2 (zh)
EP (1) EP3000068B1 (zh)
JP (1) JP6257754B2 (zh)
CN (1) CN104166822B (zh)
HK (1) HK1202666A1 (zh)
TW (1) TWI598765B (zh)
WO (1) WO2014189900A1 (zh)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095846B2 (en) 2013-05-30 2018-10-09 Jscrambler S.A. Web application protection
US11563566B2 (en) * 2014-10-27 2023-01-24 Micro Focus Llc Key splitting
US10503909B2 (en) 2014-10-31 2019-12-10 Hewlett Packard Enterprise Development Lp System and method for vulnerability remediation verification
JP6121981B2 (ja) * 2014-12-18 2017-04-26 ファナック株式会社 加工時に使用した変数値を埋め込んだ変数確認用ncプログラムの作成機能を備えた数値制御装置
WO2016108902A1 (en) * 2014-12-31 2016-07-07 Hewlett Packard Enterprise Development Lp Enterprise service bus logging
US20160328539A1 (en) * 2015-05-05 2016-11-10 Nxp B.V. Obscuring Software Code With Split Variables
JP6481515B2 (ja) * 2015-05-29 2019-03-13 富士通株式会社 情報処理装置、コンパイル方法、及びコンパイラプログラム
US10572672B2 (en) * 2015-08-14 2020-02-25 Hewlett Packard Enterprise Development Lp Modification of data elements using a semantic relationship
TWI603276B (zh) * 2015-11-18 2017-10-21 財團法人資訊工業策進會 網頁內容顯示系統及方法
CN106897211A (zh) * 2015-12-21 2017-06-27 阿里巴巴集团控股有限公司 针对混淆脚本语言的定位方法和系统
US20170187690A1 (en) * 2015-12-24 2017-06-29 Mcafee, Inc. Mitigating bot scans of sensitive communications
CN107180168A (zh) * 2016-03-10 2017-09-19 阿里巴巴集团控股有限公司 文件加载、生成方法和装置,以及智能终端
CN105897415B (zh) * 2016-06-06 2018-11-09 腾讯科技(深圳)有限公司 一种提升兼容性的数字签名生成方法及系统
CN106331752A (zh) * 2016-08-31 2017-01-11 杭州当虹科技有限公司 一种流媒体视频文件的保护方法
US10410014B2 (en) 2017-03-23 2019-09-10 Microsoft Technology Licensing, Llc Configurable annotations for privacy-sensitive user content
US10671753B2 (en) 2017-03-23 2020-06-02 Microsoft Technology Licensing, Llc Sensitive data loss protection for structured user content viewed in user applications
US10380355B2 (en) * 2017-03-23 2019-08-13 Microsoft Technology Licensing, Llc Obfuscation of user content in structured user data files
CN107085677A (zh) * 2017-03-29 2017-08-22 武汉斗鱼网络科技有限公司 一种Flash中防止代码被破解的方法及系统
CN109033764B (zh) * 2017-06-09 2023-04-11 腾讯科技(深圳)有限公司 反混淆处理方法及终端、计算机设备
US10977221B2 (en) * 2017-10-20 2021-04-13 Hewlett Packard Enterprise Development Lp Encoding of data formatted in human-readable text according to schema into binary
CN107908392B (zh) * 2017-11-13 2020-12-22 平安科技(深圳)有限公司 数据采集工具包定制方法、装置、终端和存储介质
CN109861945A (zh) * 2017-11-22 2019-06-07 浙江智贝信息科技有限公司 一种分布式代码运行及交互安全方法及其系统
CN109861944A (zh) * 2017-11-22 2019-06-07 浙江智贝信息科技有限公司 一种分布式信息安全处理及交互方法及其交互系统
CN109858241B (zh) * 2017-11-22 2021-12-17 浙江智贝信息科技有限公司 一种单设备代码安全执行和交互方法及其交互系统
CN108363911B (zh) * 2018-02-11 2021-10-29 西安四叶草信息技术有限公司 一种Python脚本混淆、水印的方法及装置
KR102109864B1 (ko) * 2018-02-22 2020-05-12 주식회사 알파비트 문서객체모델 레벨의 키 입력 암호화 장치 및 방법
CN108268178B (zh) * 2018-02-27 2021-07-13 Tcl移动通信科技(宁波)有限公司 移动终端触摸屏坐标输出控制、移动终端及存储介质
CN108683627B (zh) * 2018-03-23 2020-12-29 深圳市超算科技开发有限公司 一种物联网节点间通信加密方法及系统
CN108471423B (zh) * 2018-04-02 2021-03-09 北京奇艺世纪科技有限公司 一种私钥的获取方法及系统
CN108846265B (zh) * 2018-04-18 2021-07-30 北京奇虎科技有限公司 一种程序加固方法及装置
CN110196718B (zh) * 2018-05-10 2023-07-25 腾讯科技(深圳)有限公司 脚本混淆方法
CN108829396B (zh) * 2018-06-15 2022-02-01 腾讯科技(深圳)有限公司 脚本编译的方法、脚本执行的方法、相关装置及系统
CN109145535A (zh) * 2018-08-13 2019-01-04 阿里巴巴集团控股有限公司 一种前端页面提供方法及装置
CN109344575B (zh) * 2018-08-17 2022-08-26 北京奇虎科技有限公司 Lua脚本文件处理方法、装置及计算设备
CN109450906A (zh) * 2018-11-20 2019-03-08 杭州安恒信息技术股份有限公司 基于动态字符集混淆数据的方法和装置
CN109711118A (zh) * 2018-12-29 2019-05-03 上海上讯信息技术股份有限公司 一种基于插件化的iOS安全编译器及安全编译方法
US11095667B2 (en) 2019-02-14 2021-08-17 Forcepoint Llc Session-based recording of association of activities
CN109918917B (zh) * 2019-03-19 2021-06-08 北京智游网安科技有限公司 防止h5源码泄漏的方法、计算机设备和存储介质
US11250169B2 (en) 2019-05-02 2022-02-15 Bank Of America Corporation System for real-time authenticated obfuscation of electronic data
CN110300121B (zh) * 2019-07-23 2021-12-07 上海易点时空网络有限公司 基于全双工通讯的数据处理方法及装置
CN110555291B (zh) * 2019-08-06 2021-08-27 苏宁云计算有限公司 网页脚本代码保护方法及装置
US11086991B2 (en) * 2019-08-07 2021-08-10 Advanced New Technologies Co., Ltd. Method and system for active risk control based on intelligent interaction
CN112804184B (zh) * 2019-11-13 2023-10-10 阿里巴巴集团控股有限公司 数据混淆方法、装置及设备
US11610039B2 (en) * 2020-03-31 2023-03-21 Arm Limited Creating and/or enhancing hardware obscurity via randomization points
US11550548B2 (en) 2020-03-31 2023-01-10 Arm Limited Autonomous pseudo-random seed generator for computing devices
US11748460B2 (en) * 2020-04-27 2023-09-05 Imperva, Inc. Procedural code generation for challenge code
CN112035857B (zh) * 2020-08-26 2024-03-19 深圳市百富智能新技术有限公司 数据保护方法、装置、设备及介质
CN113268736A (zh) * 2021-06-24 2021-08-17 深圳平安智汇企业信息管理有限公司 一种信息处理方法、装置及电子设备
CN115085974A (zh) * 2022-05-20 2022-09-20 武汉虹旭信息技术有限责任公司 流量混淆方法及装置
CN115935302B (zh) * 2022-12-13 2023-09-15 深圳市探鸽智能科技有限公司 安卓安装包的生成方法和装置
CN116305131B (zh) * 2023-05-20 2023-08-11 北京长亭科技有限公司 脚本静态去混淆方法及系统
CN116405210B (zh) * 2023-05-29 2023-08-15 中国科学院大学 网络报文标签混淆方法、装置和电子设备
CN117235814B (zh) * 2023-11-16 2024-01-26 贵州华谊联盛科技有限公司 一种含有时间序列关联混淆数据的数据处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807239A (zh) * 2010-03-29 2010-08-18 山东高效能服务器和存储研究院 一种防止源代码反编译的方法
CN101986326A (zh) * 2010-12-01 2011-03-16 浙江核新同花顺网络信息股份有限公司 保护软件安全的方法及装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1260055A (zh) * 1997-06-09 2000-07-12 联信公司 用于提高软件安全性的模糊技术
US6829614B2 (en) 1999-09-30 2004-12-07 Nec Corporation Scrambling method of the data files
US7065652B1 (en) 2000-06-21 2006-06-20 Aladdin Knowledge Systems, Ltd. System for obfuscating computer code upon disassembly
JP3766367B2 (ja) 2002-10-18 2006-04-12 株式会社エヌ・ティ・ティ・ドコモ 情報配信方法
DE10316951A1 (de) * 2003-04-12 2004-10-21 Daimlerchrysler Ag Verfahren zur Überprüfung der Datenintegrität von Software in Steuergeräten
KR100568228B1 (ko) * 2003-05-20 2006-04-07 삼성전자주식회사 고유번호를 이용한 프로그램 탬퍼 방지 방법과 난독처리된 프로그램 업그레이드 방법, 상기 방법을 위한 장치
US7587616B2 (en) * 2005-02-25 2009-09-08 Microsoft Corporation System and method of iterative code obfuscation
US7620987B2 (en) * 2005-08-12 2009-11-17 Microsoft Corporation Obfuscating computer code to prevent an attack
US20070299928A1 (en) * 2006-06-22 2007-12-27 Pooja Kohli Maintaining sessions using cookie updation
US7805608B2 (en) * 2006-11-03 2010-09-28 Yahoo! Inc. User privacy through one-sided cookies
US20090132419A1 (en) 2007-11-15 2009-05-21 Garland Grammer Obfuscating sensitive data while preserving data usability
JP5395372B2 (ja) * 2008-06-19 2014-01-22 株式会社東芝 通信装置、鍵サーバ及びデータ
EP2365443B1 (en) * 2008-11-11 2018-07-04 International Business Machines Corporation Data providing device, system, server device, program, and method
US8806223B2 (en) 2011-05-03 2014-08-12 Douglas Norman Crowe System and method for management of encrypted data
AU2012272874B2 (en) 2011-06-21 2015-09-24 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
JP2013061843A (ja) 2011-09-14 2013-04-04 Fujifilm Corp コンピュータ・ソフトウエア解析システムならびにクライアント・コンピュータ,その動作制御方法およびその動作プログラム
CN107196938B (zh) * 2011-09-30 2020-07-24 贝宝公司 源自客户端的信息的差异客户端侧加密
JP5882683B2 (ja) * 2011-11-02 2016-03-09 キヤノン株式会社 情報処理装置およびその方法
US8914859B2 (en) 2011-11-07 2014-12-16 International Business Machines Corporation Managing the progressive legible obfuscation and de-obfuscation of public and quasi-public broadcast messages
WO2013091709A1 (en) 2011-12-22 2013-06-27 Fundació Privada Barcelona Digital Centre Tecnologic Method and apparatus for real-time dynamic transformation of the code of a web document
US8910297B2 (en) 2012-01-05 2014-12-09 Vmware, Inc. Securing user data in cloud computing environments
US9100382B2 (en) * 2012-03-20 2015-08-04 Qualcomm Incorporated Network security configuration using short-range wireless communication
JP2014186905A (ja) 2013-03-25 2014-10-02 Honda Motor Co Ltd 燃料電池スタック

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807239A (zh) * 2010-03-29 2010-08-18 山东高效能服务器和存储研究院 一种防止源代码反编译的方法
CN101986326A (zh) * 2010-12-01 2011-03-16 浙江核新同花顺网络信息股份有限公司 保护软件安全的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于JAVA的代码混淆研究";张宝国;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090415(第4期);文献第4.2节、第5.1.2节第3段、第5.1.3.1节、第5.2.2节第1段、第43页第2-3段,图5-3 *

Also Published As

Publication number Publication date
TW201445355A (zh) 2014-12-01
WO2014189900A1 (en) 2014-11-27
US20140344569A1 (en) 2014-11-20
EP3000068A1 (en) 2016-03-30
TWI598765B (zh) 2017-09-11
CN104166822A (zh) 2014-11-26
US9836612B2 (en) 2017-12-05
JP2016521875A (ja) 2016-07-25
EP3000068B1 (en) 2019-11-20
JP6257754B2 (ja) 2018-01-10
HK1202666A1 (zh) 2015-10-02

Similar Documents

Publication Publication Date Title
CN104166822B (zh) 一种数据保护的方法和装置
US9275222B2 (en) Reliable selection of security countermeasures
CN104318135B (zh) 一种基于可信执行环境的Java代码安全动态载入方法
EP3127034A1 (en) Software protection
CN108075888B (zh) 动态url生成方法及装置、存储介质、电子设备
CN109462602A (zh) 登录信息存储方法、登录验证方法、装置、设备及介质
CN113010856A (zh) 一种动态非对称加解密的JavaScript代码混淆方法与系统
CN110474932A (zh) 一种基于信息传输的加密方法及系统
CN109040134A (zh) 一种信息加密的设计方法及相关装置
CN110232021A (zh) 页面测试的方法及装置
CN108111622A (zh) 一种下载白盒库文件的方法、装置及系统
CN108134673A (zh) 一种生成白盒库文件的方法及装置
Idrus et al. Performance Analysis of Encryption Algorithms Text Length Size on Web Browsers,''
KR101452299B1 (ko) 무결성이 보장되는 프로그램 코드를 이용한 보안 방법 및 서버
CN106529317A (zh) 基于Shadow DOM的Web应用加解密方法
CN110147655A (zh) 应用程序的安全防护系统及方法
CN107291773B (zh) 一种网页地址生成方法和装置
Rajba et al. Data hiding using code obfuscation
CN110032832B (zh) 一种Web应用程序的处理方法及装置
US20210143978A1 (en) Method to secure a software code performing accesses to look-up tables
Groß et al. Protecting JavaScript apps from code analysis
CN108259490A (zh) 一种客户端校验方法及装置
CN110032833B (zh) 一种Web应用程序的处理方法及装置
Kushe Security assessment of web applications
TW201839673A (zh) 二維條碼產生及解譯系統及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1202666

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1202666

Country of ref document: HK

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191203

Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands

Patentee after: Innovative advanced technology Co., Ltd

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Co., Ltd.