CN111831978A - 一种对配置文件进行保护的方法及装置 - Google Patents

一种对配置文件进行保护的方法及装置 Download PDF

Info

Publication number
CN111831978A
CN111831978A CN201910327878.9A CN201910327878A CN111831978A CN 111831978 A CN111831978 A CN 111831978A CN 201910327878 A CN201910327878 A CN 201910327878A CN 111831978 A CN111831978 A CN 111831978A
Authority
CN
China
Prior art keywords
key
configuration file
file
program
information
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.)
Pending
Application number
CN201910327878.9A
Other languages
English (en)
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910327878.9A priority Critical patent/CN111831978A/zh
Publication of CN111831978A publication Critical patent/CN111831978A/zh
Pending legal-status Critical Current

Links

Images

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/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供一种对配置文件进行保护的方法及装置,涉及互联网技术领域。该方法的一具体实施方式包括:S101、生成第一密钥,使用所述第一密钥对配置文件进行加密;S102、对所述第一密钥进行混淆并生成第一文件,所述第一文件指示了如何将所述第一密钥转换为混淆后的所述第一密钥;S103、生成第二密钥,使用所述第二密钥对所述第一文件进行加密。该实施方式,通过对配置文件、第一文件的多重加密保护手段,使得配置文件的安全性大大提高,同时又避免了现有技术中线上配置中心单点依赖的问题,以及反编译的情况下通过源文件获得配置文件的加密密钥的问题。

Description

一种对配置文件进行保护的方法及装置
技术领域
本发明涉及互联网技术领域,具体涉及一种对配置文件进行保护的方法及装置。
背景技术
一般而言,程序的配置文件对程序的运行至关重要,例如,配置文件中包含了程序启动或正常运行所必需的配置信息;例如,所述配置信息包括用户账号、用户密码等敏感信息。因此,为防止攻击者通过获取配置文件中的配置信息来入侵相应的程序——例如,关于访问数据库的程序,进而导致程序所涉及的数据信息遭到泄露,需要对配置文件采取一定的保护措施。
目前,常见的保护配置文件的方式主要有两种:一种是在程序的应用代码中对配置文件或其中的配置信息进行加密处理;另一种是建立统一的在线配置中心,在线动态获取这些重要的配置信息。
但发明人在实际的应用过程中发现,上述对配置文件进行加密的方式难以应对攻击,尤其是在攻入程序运行的服务器的情况下,攻击者可通过反编译程序运行时的二进制代码获得源文件(例如,以.java结尾的、以JAVA语言编写的源代码文件),进而破解配置文件的加密密钥;而统一的在线配置中心通常存在着单点依赖的问题,即一旦配置中心出现故障,所有的程序都将无法正常运行。
发明内容
有鉴于此,本发明实施例提供了一种对配置文件进行保护的方法及装置,以离线的方式实现了对配置文件的保护,即,使得配置文件的密钥、该密钥的生成方式、该密钥的保护方式均不出现在程序的源文件以及执行文件中,进而不仅避免了在线配置中心单点依赖的问题,还避免了反编译的情况下通过源文件获得配置文件的加密密钥的问题。
为实现上述目的,根据本发明实施例的第一方面,提供了一种对配置文件进行保护的方法,具体步骤包括:生成第一密钥,使用所述第一密钥对配置文件进行加密;对所述第一密钥进行混淆并生成第一文件,所述第一文件指示了如何将所述第一密钥转换为混淆后的所述第一密钥;生成第二密钥,使用所述第二密钥对所述第一文件进行加密。
可选地,丢弃所述第一密钥,并删除原始的明文配置文件。
可选地,所述第一文件为查找表文件,所述查找表文件记录了所述第一密钥与混淆后的所述第一密钥的对应关系。
可选地,根据所述第二密钥解密所述第一文件,根据解密后的第一文件,获得所述第一密钥;根据所述第一密钥,解密所述配置文件。
可选地,所述第二密钥为根据所述配置文件对应的程序运行时的可信环境信息生成的数字摘要。
可选地,所述环境信息包括下述的一种或多种:所述配置文件对应的程序使用的编程语言、所述编程语言的版本、所述编程语言的依赖路径信息、所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、所述配置文件对应的程序所加载的库信息。
可选地,所述环境信息还包括下述的一种或多种:所述配置文件对应的程序运行时的IP地址、MAC地址、操作系统的名称、操作系统的版本。
可选地,所述环境信息还包括所述配置文件对应的程序运行时的进程信息,所述进程信息包括下述的一种或多种:所述进程的用户、所述进程的权限、所述进程的父进程名称、所述进程运行时涉及的文件、所属进程的端口。
为实现上述目的,根据本发明实施例的第二方面,提供了一种用于对配置文件进行护的装置,包括:第一加密模块、第一文件生成模块、第二加密模块,其中,所述;所述第一加密模块,用于生成第一密钥,使用所述第一密钥对配置文件进行加密;所述第一文件生成模块,用于对所述第一密钥进行混淆并生成第一文件,所述第一文件指示了如何将所述第一密钥转换为混淆后的所述第一密钥;所述第二加密模块,用于生成第二密钥,使用第二密钥对所述第一文件进行加密。
可选地,所述第一加密模块,还用于丢弃所述第一密钥,并删除原始的明文配置文件。
可选地,所述第一文件为查找表文件,所述查找表文件记录了所述第一密钥与混淆后的所述第一密钥的对应关系。
可选地,还包括:第一解密模块和第二解密模块,其中,所述第二解密模块,用于根据所述第二密钥解密所述第一文件,并根据解密后的所述第一文件,获得所述第一密钥;所述第一解密模块,用于根据所述第一密钥,解密所述配置文件。
可选地,所述第二密钥为根据所述配置文件对应的程序运行时的可信环境信息生成的数字摘要。
可选地,所述环境信息包括下述的一种或多种:所述配置文件对应的程序使用的编程语言、所述编程语言的版本、所述编程语言的依赖路径信息、所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、所述配置文件对应的程序所加载的库信息。
可选地,所述环境信息还包括下述的一种或多种:所述配置文件对应的程序运行时的IP地址、MAC地址、操作系统的名称、操作系统的版本。
可选地,所述环境信息还包括所述配置文件对应的程序运行时的进程信息,所述进程信息包括下述的一种或多种:所述进程的用户、所述进程的权限、所述进程的父进程名称、所述进程运行时涉及的文件、所述进程的端口。
为实现上述目的,根据本发明实施例的第三方面,提供了一种用于对配置文件进行保护的服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述的配置文件的保护方法中的任一所述方法。
为实现上述目的,根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,当所述程序被处理器执行时实现如上述的配置文件的保护方法中的任一所述方法。
上述发明中的一个实施例具有如下优点或有益效果:通过使用第一密钥对配置文件进行加密、对第一密钥进行混淆并生成第一文件以及使用另一密钥(第二密钥)对第一文件进行进一步加密等多重加密保护手段,使得配置文件的安全性大大提高,同时又避免了现有技术中线上配置中心单点依赖的问题,以及反编译的情况下通过源文件获得配置文件的加密密钥的问题。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一实施例提供的对配置文件进行保护的方法的基本步骤示意图;
图2是根据本发明又一实施例提供的对配置文件进行保护的方法的基本步骤示意图;
图3a是本发明一实施例提供的对配置文件进行加密的应用示意图;
图3b是本发明一实施例提供的解密以获得配置文件的应用示意图;
图4是根据本发明一实施例提供的用于对配置文件进行保护的装置的结构示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
参见图1,本发明实施例提供了一种对配置文件进行保护的方法,具体步骤包括:
步骤S101,生成第一密钥,使用所述第一密钥对配置文件进行加密。
所述配置文件包含了程序运行所需要的必要信息,如数据库账号、数据库密码等信息,且这些信息不适合直接以明文的方式写入源代码中。可以理解的是,由于程序的配置文件中包含有用户账户、用户密码等极为重要且需要保密的信息,为了防止配置文件被他人盗用进而入侵程序以及程序所涉及的其他信息(例如,数据库信息),需要对配置文件采取一定的保护措施。
在本实施例中,使用第一密钥对配置文件进行加密。其中,可以采用对称加密算法中的密钥作为第一密钥,即,该第一密钥既用于加密配置文件也用于解密配置文件。可以理解的是,本申请不限于此,例如,也可以采用非对称加密算法中的公钥作为第一密钥,即该第一密钥用于加密配置文件,相应地,使用与该第一密钥相对应的私钥来解密配置文件。本申请中,为了提高配置文件的安全性,优选地,采用对称加密算法中的密钥对配置文件进行加密,此种情况下,仅可以使用用于加密的第一密钥来解密配置文件。此外,也可以通过加大第一密钥的破解难度来提高配置文件的安全性,例如,采用不易被他人推测的随机生成的随机数、伪随机数等作为第一密钥。
步骤S102,对所述第一密钥进行混淆并生成第一文件,所述第一文件指示了如何将所述第一密钥转换为混淆后的所述第一密钥。
随着计算能力的提高,所述第一密钥存在着被破解的可能,尤其是在攻击者攻入所述配置文件对应的程序运行的服务器的情况下,可以通过静态分析的方式获取到配置文件,例如通过反编译程序运行时的二进制代码获得源文件,进而破解配置文件的加密密钥,即本实施例中的第一密钥,进而获取配置文件中的配置信息入侵相应的程序。因此,为应对攻击,提升配置文件的安全性,需要进一步降低配置文件加密密钥被破解或泄露的可能。
基于此,通过白盒加密对所述第一密钥进一步进行处理;所述白盒加密的常见的实现方式是采用混淆算法对所述第一密钥进行混淆,并生成第一文件。第一文件指示了对第一密钥进行混淆加密或者解密的程序片段,不同的第一密钥对应生成的程序片段不同,且通常程序片段以库文件的形式存在。由于生成程序片段的计算过程是公开的,因此该过程又被称为白盒加密。在一个实施例中,所述第一文件为查找表文件,所述查找表文件记录了所述第一密钥与混淆后的所述第一密钥的对应关系。也即是说,查找表文件中记录了第一密钥和与其对应的输出,从而可以根据该输出来获知第一密钥;即第一文件记录了输入数据(例如,第一密钥)与输出数据(混淆后的第一密钥)的对应关系。可见,通过该表能够将原始密钥完全隐藏起来。由于所述第一文件中存在大量的混淆,攻击者很难于从第一文件中提取出正确的第一密钥,而第一文件调用者则可以通过正确使用第一文件的方式获得第一密钥,从而解密配置文件,因而大大降低了所述第一密钥被破解的可能。
可以理解的是,本申请中的第一文件并不限于上述查找表文件,例如第一文件也可以是记录了关于如何将第一密钥混淆成对应输出的算法的另一程序。例如,第一文件可以记录一个函数y=f(x),其中x表示作为输入数据的第一密钥,f(·)表示对x进行的计算,y表示作为输出数据的混淆后的第一密钥。
步骤S103,生成第二密钥,使用所述第二密钥对所述第一文件进行加密。
由于无法辨认第一文件调用者的身份的合法性,为防止第一文件被非法的调用,可以使用第二密钥对第一文件进行加密。在一个实施例中,可以采用对称加密算法中的密钥作为第二密钥,即,该第二密钥既用于加密第一文件也用于解密第一文件。可以理解的是,本申请不限于此,例如,也可以采用非对称加密算法中的公钥作为第二密钥,即该第二密钥既用于加密第一文件,相应地,使用与该第二密钥相对应的私钥来解密第一文件。本申请中,为了提高第一文件的安全性,优选地,采用对称加密算法中的密钥对第一文件进行加密,此种情况下,仅可以使用用于加密的第二密钥来解密第一文件。所述第二密钥可以为随机生成的密钥,也可以是根据设定的规则计算出的安全性极高的密钥。当且仅当第一文件的调用者获取到正确的所述第二密钥或与第二密钥对应的解密密钥时,才能正常调用第一文件,进而进一步提高了第一文件的安全性。
在一个实施例中,第二密钥为根据所述配置文件对应的程序运行时的可信环境信息生成的数字摘要。
所述的数字摘要是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数,这种函数是单向的,且可以把不同长度或内容的信息“摘要”成一串固定长度的短密文信息。因此数字摘要具有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。所述可信环境信息是指启动所述程序的用户为合法用户,且所述程序没有受到攻击者攻击时,正常运行情况下对应的环境信息。
在一种可选的实施方式中,所述环境信息可以包括下述的一种或多种:所述配置文件对应的程序使用的编程语言、所述编程语言的版本、所述编程语言的依赖路径信息、所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、所述配置文件对应的程序所加载的库信息。其中,所述执行文件(executable file)指的是可以由操作系统进行加载执行的文件,在不同的操作系统或运行环境下,可执行程序的执行方式不一样。
更进一步地,以使用的编程语言为java为例进行说明,可采集可信环境信息中的javaclasspath或者javaclasspath所指示的信息,例如库信息、路径信息以及其他文件信息,并计算出包含上述所采集的信息的可信环境信息的数字摘要,进而得到第二密钥。由于非法攻击者在所述配置文件对应的程序运行的环境下进行攻击时,通常将使用攻击者所拥有的服务器上的java语言调用所述第一文件,而攻击者所使用的当前环境信息中javaclasspath及javaclasspath所指示的信息与生成第二密钥时的可信环境信息中的javaclasspath及javaclasspath所指示的信息不一致,进而无法获取正确的所述第二密钥。因此,该实施方式可以大大地降低第一文件被非法调用的可能。
在一种可选的实施方式中,所述环境信息还包括下述的一种或多种:所述配置文件对应的程序运行时的IP地址、MAC地址、操作系统的名称、操作系统的版本。具体地,仍以使用的编程语言为java为例进行说明:若攻击者将整个配置文件对应的程序带出所述程序运行的环境后再进行攻击时,可以完整的拷贝javaclasspath或者javaclasspath所指示的信息。因此,仅通过采集包含有javaclasspath或者javaclasspath所指示的信息的可信环境信息来获取第二密钥,无法防止所述第一文件在遭受到上述攻击时被非法调用。但可以注意到的是,在遭受到上述的攻击时,所述程序运行时对应的IP地址、MAC地址、操作系统的名称、操作系统的版本中的一项或者多项又会发生变化。因此,可以通过使用可信环境信息中的所述配置文件对应的程序运行时的IP地址、MAC地址、操作系统的名称、操作系统的版本的数字摘要作为所述第二密钥来进一步防止所述第一文件被非法调用。
在一种可选的实施方式中,所述环境信息还包括所述配置文件对应的程序运行时的进程信息,所述进程信息包括下述的一种或多种:所述进程的用户、所述进程的权限、所述进程的父进程名称、所述进程运行时涉及的文件、所述进程的端口。
可以理解的是,所述环境信息还可以包括上述的一种或多种环境信息的任意组合。如,所述环境信息可以同时包括所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、以及所述配置文件对应的程序运行时的进程信息等。
在采集可信环境信息并计算出所述可信环境信息的数字摘要作为第二密钥的情况下,若攻击者试图将正在运行的程序从其所在服务器的内存中复制至另一台服务器以获得配置文件中所包括的配置信息,则将会导致程序被复制后再运行时的环境信息中一种或多种信息的改变,即使得所述程序运行时的当前环境信息与所述程序运行时的可信环境信息不一致,因而攻击者无法通过计算当前环境信息的数字摘要来获取到正确的所述第二密钥,进而使得所述第一文件无法被攻击者解密。此外,即便攻击者非法侵入程序运行的服务器,也无法获得用于生成第二密钥的完整的环境信息,例如无法获得所述配置文件对应的程序调用的一个或多个执行文件等等。因此,采用可信环境信息的数字摘要作为第二密钥,任何环境信息的变化都将导致无法正确地解密第一文件,可以大大提高所述第二密钥被破解的难度。
值得注意的是,在完成对配置文件进行加密并对第一密钥进行混淆生成第一文件的同时,丢弃所述随机生成的第一密钥并删除原本的明文配置文件,使得随后的任何人或者攻击者均无法从所述程序或者代码中获知明文配置文件或第一密钥,仅能获取到加密后的配置文件。在对所述第一文件进一步进行加密完成的情况下,也同步丢弃生成的第二密钥。因此,任何人不管是合法用户还是非法攻击者,想要正常启动或者入侵所述配置文件对应的程序,都需要一一破解所述第一文件、所述配置文件对应的加密密钥,才能获取到正确的配置信息,进而才能启动所述配置文件对应的程序。
综上,本实施例中,首先使用第一密钥对配置文件进行加密;然后根据混淆算法对第一密钥进行混淆,并使用第一文件,如查找表文件等记录该第一密钥与混淆后的第一密钥的对应关系;最后使用第二密钥对该第一文件进行加密。值得注意的是,第一文件以及第二密钥的生成方式完全不出现在配置文件对应的程序的源文件以及执行文件中,这使得配置文件的(第一)密钥、该密钥的生成方式、该密钥的保护方式均不出现在程序的源文件以及执行文件中,进而极大地提高了对配置文件的安全保护。这种对配置文件进行两次加密的保护方式,使得配置文件在纯离线的保护机制下的安全性得到大大提高,进而不仅避免了对在线配置中心单点依赖的问题,还避免了反编译的情况下通过源文件获得配置文件的加密密钥的问题。
参见图2,在上述实施例的基础上,本发明实施例提供了一种对配置文件进行保护的方法,具体步骤如下:
步骤S201,根据所述第二密钥解密所述第一文件,并根据解密后的所述第一文件,获得所述第一密钥。
由于在对配置文件进行加密保护时删除了第一密钥、第二密钥及原始的明文配置文件,使用者需要获得相应的解密密钥,解密所述第一文件,进而解密所述配置文件才能正常启动所述配置文件对应的程序。因此,第一文件调用者需要先采集配置文件对应的程序运行的当前环境信息并计算出相应的数字摘要作为所述第一文件的解密密钥,进而解密所述第一文件。可以理解的是,既可以采用对称加密算法对第一文件进行加密,也可以采用非对称加密算法对第一文件进行加密。本申请中,为了提高第一文件的安全性,优选地,采用对称加密算法中的密钥对第一文件进行加密,此种情况下,仅可以使用用于加密的第二密钥来解密第一文件,进而通过正确地使用所述第一文件提取混淆于所述第一文件中的第一密钥。若无法获得正确的第一文件解密密钥,则无法解密所述第一文件,所述配置文件对应的程序启动失败。
在一种可选的实施方式中,采集当前环境信息中的下述一种或多种信息:所述配置文件对应的程序使用的编程语言、所述编程语言的版本、所述编程语言的依赖路径信息、所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、所述配置文件对应的程序所加载的库信息,并计算出所采集的环境信息的数字摘要作为解密密钥,用以解密第一文件。具体地,以使用的编程语言为java为例进行说明,可采集当前环境信息中的javaclasspath或者javaclasspath所指示的信息,例如库信息、路径信息以及其他文件信息,并计算出包含上述所采集的信息的可信环境信息的数字摘要作为解密密钥,用以解密第一文件。当且仅当所述解密密钥与第二密钥一致时,即表明当前环境信息与可信环境信息一致时,所述解密密钥可以解密所述第一文件,否则所述配置文件对应的程序无法启动。
在一种可选的实施方式中,采集当前环境信息中的下述的一种或多种信息:所述配置文件对应的程序运行时的IP地址、MAC地址、操作系统的名称、操作系统的版本,并计算出所采集的环境信息的数字摘要作为解密密钥,用以解密第一文件。当且仅当所述解密密钥与第二密钥一致时,即表明当前环境信息与可信环境信息一致时,所述解密密钥可以解密所述第一文件,进而通过正确的使用第一文件提取隐藏于第一文件的第一密钥,否则所述配置文件对应的程序无法启动。
在一种可选的实施方式中,采集当前环境信息中的下述的一种或多种进程信息:所述进程的用户、所述进程的权限、所述进程的父进程名称、所述进程运行时涉及的文件、所述进程的端口,并计算出所采集的环境信息的数字摘要作为解密密钥,用以解密第一文件。当且仅当所述解密密钥与第二密钥一致时,即表明当前环境信息与可信环境信息一致时,所述解密密钥可以解密所述第一文件,进而通过正确的使用第一文件提取隐藏于第一文件的第一密钥,否则所述配置文件对应的程序无法启动。
可以理解的是,采集的当前环境信息可以为上述的任一种或多种环境信息的组合,且组合方式应当与生成第二密钥时采集的可信环境信息的组合方式一致。如,采集的当前环境信息可以同时包括所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、以及所述配置文件对应的程序运行时的进程信息等。
步骤S202,根据所述第一密钥,解密所述配置文件。
可以理解的是,既可以采用对称加密算法对配置文件进行加密,也可以采用非对称加密算法对配置文件进行加密。本申请中,为了提高配置文件的安全性,优选地,采用对称加密算法中的密钥对第一文件进行加密,此种情况下,仅可以使用用于加密的第一密钥来解密配置文件。在通过正确地使用第一文件提取出隐藏于其中的解密密钥的基础上,使用该解密密钥解密配置文件,当且仅当解密密钥与第一密钥一致时,才能从配置文件中获取如用户账户、用户密码等配置信息,进而正常启动配置文件对应的程序,否则程序启动失败。
参见图3a及3b,其中,图3a是本发明一实施例提供的对配置文件进行加密的应用示意图,图3b是本发明一实施例提供的解密以获得配置文件的应用示意图。配置文件对应的程序在第一次启动或者配置信息变更时,都需要读取所述配置文件,此时所述配置文件为明文配置文件,即原始打包信息。因此,为保证配置文件的安全性,在配置文件对应的程序第一次正常启动时,就对所述配置文件进行加密处理,并删除对应的明文配置文件以及用以加密的密钥,使得其后的任何一次启动都只能通过解密读取配置文件中的配置信息才能正常进行。
参见图3a,在配置文件对应的程序第一次正常启动时,一方面,为保证加密密钥具有较低的可被猜测性,选择通过随机的方式生成第一密钥,并用所述第一密钥对配置文件进行加密处理生成加密后的配置文件。可以理解的是,既可以采用对称加密算法,也可以采用非对称加密算法对配置文件进行加密。为提高配置文件的安全性,本实施例中,优选地,采用对称加密算法对配置文件进行加密,即有且仅有第一密钥可以解密所述配置文件。另一方面,将第一密钥用混淆加密算法进行混淆生成对应的第一文件,即仅在正确地使用所述第一文件时才可以从第一文件中提取出用以解密配置文件的第一密钥。随后,丢弃第一密钥并删除原始的明文配置文件,即程序对应的原始打包信息,使得后来启动所述程序的用户只能看到加密后的配置文件。
更进一步地,为保证第一文件的安全性,即防止第一文件被非法调用,采集可信环境信息,并计算出所采集的可信环境信息的数字摘要用作第二密钥,用以对第一文件进行加密。可以理解的是,既可以采用对称加密算法,也可以采用非对称加密算法对配置文件进行加密。为提第一文件的安全性,本实施例中,优选地,采用对称加密算法对第一文件进行加密,即有且仅有第二密钥可以解密所述配置文件。
采集的可信环境信息包括下述的一种或多种:所述配置文件对应的程序使用的编程语言、所述编程语言的版本、所述编程语言的依赖路径信息、所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、所述配置文件对应的程序所加载的库信息、配置文件对应的程序运行时的IP地址、MAC地址、操作系统的名称、操作系统的版本以及配置文件对应的程序运行时的进程信息。由于通过对称加密算法对所述第一文件进行加密,有且仅有所述第二密钥可以解密所述第一文件。如此,当非法攻击者调用第一文件时,必然会导致采集的环境信息中一项或者多项的改变,进而无法获得出正确的数字摘要作为第二密钥用以解密所述第一文件。
参见图3b,由于在程序第一次启动时,对配置文件进行了加密处理,再次启动程序时,只能通过解密第一文件以及配置文件的方式正常启动程序。因此,需要采集当前环境信息,并计算出采集的当前环境信息的数字摘要作为解密密钥,用以解密第一文件。可以理解的是,为获取正确的解密密钥,采集的当前环境信息应与图3a中所示的对第一文件进行加密时采集的环境信息内容一致,可以包括执行文件、进程信息、操作地址等中的一种或多种。随后,对第一文件的解密结果进行校验,即判断所述当前环境信息的数字摘要,与图3a中计算的可信环境信息的数字摘要,即第二密钥是否一致:若一致,则解密校验通过,即说明当前的运行的环境是可信的,可以使用解密后的第一文件获取第一密钥用以解密配置文件,进而正常启动程序;若不一致,则说明当前的环境信息与可信环境信息不一致,即第一文件被非法调用或存在非法攻击,因此,终止所述程序的启动,并将入侵事件上报至管理系统。
参见图4,本发明实施例提供了一种用于对配置文件进行保护的装置,包括:第一加密模块1、第一文件生成模块2、第二加密模块3,其中,第一加密模块1,用于生成第一密钥,使用所述第一密钥对配置文件进行加密;所述第一文件生成模块2,用于对所述第一密钥进行混淆并生成第一文件,所述第一文件指示了如何将所述第一密钥转换为混淆后的所述第一密钥;所述第二加密模块3,用于生成第二密钥,使用所述第二密钥对所述第一文件进行加密。
在一个优选的实施例中,所述第一加密模块1,还用于丢弃所述第一密钥,并删除原始的明文配置文件。
在一个优选的实施例中,所述第一文件为查找表文件,所述查找表文件记录了所述第一密钥与混淆后的所述第一密钥的对应关系。
在一个优选的实施例中,还包括:第一解密模块5和第二解密模块4,其中,所述第二解密模块4,用于根据所述第二密钥解密所述第一文件,并根据解密后的所述第一文件,获得所述第一密钥;所述第一解密模块5,用于根据所述第一密钥,解密所述配置文件。
在一个优选的实施例中,所述第二密钥为根据所述配置文件对应的程序运行时的可信环境信息生成的数字摘要。
在一种可选的实施方式中,所述环境信息包括下述的一种或多种:所述配置文件对应的程序使用的编程语言、所述编程语言的版本、所述编程语言的依赖路径信息、所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、所述配置文件对应的程序所加载的库信息。
在一种可选的实施方式中,所述环境信息还包括下述的一种或多种:所述配置文件对应的程序运行时的IP地址、MAC地址、操作系统的名称、操作系统的版本。
在一种可选的实施方式中,所述环境信息还包括所述配置文件对应的程序运行时的进程信息,所述进程信息包括下述的一种或多种:所述进程的用户、所述进程的权限、所述进程的父进程名称、所述进程运行时涉及的文件、所述进程的端口。
可以理解的是,所述环境信息还可以包括上述的一种或多种环境信息的任意组合。如,所述环境信息可以同时包括所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、以及所述配置文件对应的程序运行时的进程信息等。
本发明实施例还提供了一种用于对配置文件进行保护的服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例提供的方法。
图5示出了可以应用本发明实施例的配置文件的保护方法或装置的示例性系统架构,可以包括:终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所提供启动程序的请求或者调用第一文件的请求提供支持的后台管理服务器。后台管理服务器可以对接收到请求进行分析等处理,并将处理结果(例如解密后的配置文件)反馈给终端设备。
需要说明的是,本发明实施例所提供的配置文件的保护方法一般由服务器505执行,相应地,用于配置文件的保护的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备可以对配置文件以及第一文件进行加密。
根据本发明实施例的技术方案,在对配置文件进行保护时,不仅可以通过对配置文件、第一文件的多层加密保护措施,防止攻击者非法调用第一文件或者入侵配置文件对应的程序,进而大大提高配置文件的安全性,同时又避免了现有技术中线上配置中心单点依赖的问题,以及反编译的情况下通过源文件获得配置文件的加密密钥的问题。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (18)

1.一种对配置文件进行保护的方法,其特征在于,包括:
生成第一密钥,使用所述第一密钥对配置文件进行加密;
对所述第一密钥进行混淆并生成第一文件,所述第一文件指示了如何将所述第一密钥转换为混淆后的所述第一密钥;
生成第二密钥,使用所述第二密钥对所述第一文件进行加密。
2.根据权利要求1所述的对配置文件进行保护的方法,其特征在于,还包括:丢弃所述第一密钥,并删除原始的明文配置文件。
3.根据权利要求1所述的对配置文件进行保护的方法,其特征在于,所述第一文件为查找表文件,所述查找表文件记录了所述第一密钥与混淆后的所述第一密钥的对应关系。
4.根据权利要求1所述的对配置文件进行保护的方法,其特征在于,还包括:
根据所述第二密钥解密所述第一文件,并根据解密后的所述第一文件,获得所述第一密钥;
根据所述第一密钥,解密所述配置文件。
5.根据权利要求1所述的配置文件的保护方法,其特征在于,所述第二密钥为根据所述配置文件对应的程序运行时的可信环境信息生成的数字摘要。
6.根据权利要求5所述的对配置文件进行保护的方法,其特征在于,所述环境信息包括下述的一种或多种:所述配置文件对应的程序使用的编程语言、所述编程语言的版本、所述编程语言的依赖路径信息、所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、所述配置文件对应的程序所加载的库信息。
7.根据权利要求6所述的对配置文件进行保护的方法,其特征在于,所述环境信息还包括下述的一种或多种:所述配置文件对应的程序运行时的IP地址、MAC地址、操作系统的名称、操作系统的版本。
8.根据权利要求7所述的对配置文件进行保护的方法,其特征在于,所述环境信息还包括所述配置文件对应的程序运行时的进程信息,所述进程信息包括下述的一种或多种:所述进程的用户、所述进程的权限、所述进程的父进程名称、所述进程运行时涉及的文件、所述进程的端口。
9.一种用于对配置文件进行保护的装置,其特征在于,包括:所述第一加密模块、第一文件生成模块、第二加密模块,其中,
所述第一加密模块,用于生成第一密钥,使用所述第一密钥对配置文件进行加密;
所述第一文件生成模块,用于对所述第一密钥进行混淆并生成第一文件,所述第一文件指示了如何将所述第一密钥转换为混淆后的所述第一密钥的;
所述第二加密模块,用于生成第二密钥,使用所述第二密钥对所述第一文件进行加密。
10.根据权利要求9所述的用于对配置文件进行保护的装置,其特征在于,所述第一加密模块,还用于丢弃所述第一密钥,并删除原始的明文配置文件。
11.根据权利要求9所述的用于对配置文件进行保护的装置,其特征在于,所述第一文件为查找表文件,所述查找表文件记录了所述第一密钥与混淆后的所述第一密钥的对应关系。
12.根据权利要求9所述的用于对配置文件进行保护的装置,其特征在于,还包括:第一解密模块和第二解密模块,其中,
所述第二解密模块,用于根据所述第二密钥解密所述第一文件,并根据解密后的所述第一文件,获得所述第一密钥;
所述第一解密模块,用于根据所述第一密钥,解密所述配置文件。
13.根据权利要求9所述的用于对配置文件进行保护的装置,其特征在于,所述第二密钥为根据所述配置文件对应的程序运行时的可信环境信息生成的数字摘要。
14.根据权利要求13所述的用于对配置文件进行保护的装置,其特征在于,所述环境信息包括下述的一种或多种:所述配置文件对应的程序使用的编程语言、所述编程语言的版本、所述编程语言的依赖路径信息、所述配置文件对应的程序调用的一个或多个执行文件、所述配置文件对应的程序使用的一个或多个源文件、所述配置文件对应的程序所加载的库信息。
15.根据权利要求14所述的用于对配置文件进行保护的装置,其特征在于,所述环境信息还包括下述的一种或多种:所述配置文件对应的程序运行时的IP地址、MAC地址、操作系统的名称、操作系统的版本。
16.根据权利要求15所述的用于对配置文件进行保护的装置,其特征在于,所述环境信息还包括所述配置文件对应的程序运行时的进程信息,所述进程信息包括下述的一种或多种:所述进程的用户、所述进程的权限、所述进程的父进程名称、所述进程运行时涉及的文件、所述进程的端口。
17.一种用于对配置文件进行保护的服务器,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现权利要求1-8中任一项所述的方法。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-8中任一项所述的方法。
CN201910327878.9A 2019-04-23 2019-04-23 一种对配置文件进行保护的方法及装置 Pending CN111831978A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910327878.9A CN111831978A (zh) 2019-04-23 2019-04-23 一种对配置文件进行保护的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910327878.9A CN111831978A (zh) 2019-04-23 2019-04-23 一种对配置文件进行保护的方法及装置

Publications (1)

Publication Number Publication Date
CN111831978A true CN111831978A (zh) 2020-10-27

Family

ID=72911397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910327878.9A Pending CN111831978A (zh) 2019-04-23 2019-04-23 一种对配置文件进行保护的方法及装置

Country Status (1)

Country Link
CN (1) CN111831978A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064672A (zh) * 2021-04-30 2021-07-02 中国工商银行股份有限公司 一种负载均衡设备配置信息的校验方法及装置
CN113434884A (zh) * 2021-06-30 2021-09-24 青岛海尔科技有限公司 一种配置文件的加密方法、解密方法和相关装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064672A (zh) * 2021-04-30 2021-07-02 中国工商银行股份有限公司 一种负载均衡设备配置信息的校验方法及装置
CN113434884A (zh) * 2021-06-30 2021-09-24 青岛海尔科技有限公司 一种配置文件的加密方法、解密方法和相关装置

Similar Documents

Publication Publication Date Title
CN108632284B (zh) 基于区块链的用户数据授权方法、介质、装置和计算设备
JP6545136B2 (ja) ウェブページの暗号化送信のためのシステム及び方法
US11329962B2 (en) Pluggable cipher suite negotiation
US8787566B2 (en) Strong encryption
US9973481B1 (en) Envelope-based encryption method
WO2019218919A1 (zh) 区块链场景下的私钥管理方法、装置及系统
US20110246433A1 (en) Random number based data integrity verification method and system for distributed cloud storage
CN104618096B (zh) 保护密钥授权数据的方法、设备和tpm密钥管理中心
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
CN110636043A (zh) 一种基于区块链的文件授权访问方法、装置及系统
EP4195583A1 (en) Data encryption method and apparatus, data decryption method and apparatus, terminal, and storage medium
JP6925686B1 (ja) 情報処理システム、情報処理装置、情報処理方法、および、情報処理プログラム
US20140059341A1 (en) Creating and accessing encrypted web based content in hybrid applications
KR20080033373A (ko) 취소 정보 관리
KR20150045790A (ko) 신뢰 보안 플랫폼 모듈을 이용한 보안 애플리케이션 인증 및 관리 방법 및 장치
Khan et al. SSM: Secure-Split-Merge data distribution in cloud infrastructure
WO2019120038A1 (zh) 数据加密存储
Athena et al. Survey on public key cryptography scheme for securing data in cloud computing
US10635826B2 (en) System and method for securing data in a storage medium
CN114942729A (zh) 一种计算机系统的数据安全存储与读取方法
CN111831978A (zh) 一种对配置文件进行保护的方法及装置
Junghanns et al. Engineering of secure multi-cloud storage
CN112560003A (zh) 用户权限管理方法和装置
CN109450899B (zh) 密钥管理方法及装置、电子设备、存储介质
CN107707528B (zh) 一种用户信息隔离的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination