CN114329564A - 私有化格式文件的处理方法、电子设备及介质 - Google Patents
私有化格式文件的处理方法、电子设备及介质 Download PDFInfo
- Publication number
- CN114329564A CN114329564A CN202111654641.5A CN202111654641A CN114329564A CN 114329564 A CN114329564 A CN 114329564A CN 202111654641 A CN202111654641 A CN 202111654641A CN 114329564 A CN114329564 A CN 114329564A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- dongle
- electronic device
- encryption lock
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000012795 verification Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002085 persistent effect Effects 0.000 abstract description 4
- 238000010276 construction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开一种私有化格式文件的处理方法及设备。该方法应用于电子设备,包括:接收针对第一文件的第一操作,第一文件为私有化格式文件,第一文件位于电子设备的内存中,第一操作用于指示特定软件存储第一文件;通过加密锁加密第一数据,得到第二数据,其中第一文件包括第一数据;基于加密锁中的设备私钥对第一数据签名,得到第四数据;其中,设备私钥与私有化格式文件关联的特定软件的开发商对应;持久化存储包括第二数据、第四数据和证书链的第二文件。采用上述实现方式,用户在能够合法使用特定软件并持有能够解密该私有化格式文件的特定加密锁的情况下,才能打开、编辑、存储该私有化格式文件,可以防止文件内容被恶意获取。
Description
技术领域
本申请涉及文件处理技术领域,特别涉及一种私有化格式文件的处理方法。此外本申请还涉及一种电子设备,以及一种计算机可读存储介质。
背景技术
在一些系统,例如Windows系统中,文件可以按照不同的格式和用途等分很多类型。为便于管理和识别,在对文件命名时,一般可以以扩展名来作区分。即,文件名格式可以为“主文件名.扩展名”。这样,系统就可以根据文件名中的扩展名,来判定文件的类型,进而确定其格式和用途等。扩展名几乎已经成为每个文件名中必不可少的一部分。对于一些操作系统而言,如果一个文件名中没有扩展名,那么该操作系统就无法处理这个文件,无法判别到底该如何处理该文件。
对于一些文件而言,其类型是较常见的,多种常见的软件都可以打开这些文件,对其执行编辑、保存等操作。而对于另一些文件而言,其可能是由某一个软件开发商自主开发的,具有私有的扩展名。这样的文件可以被称为私有化格式文件。一般地,只有该软件开发商开发的某一款或某几款特定软件,才能打开这些文件。采用这样的方式可以在一定程度上保持软件开发商研发的软件的自主性和独立性。这也在一定程度上对这些私有化格式文件中的内容起到了保护作用。
发明内容
本申请的其中一个目的在于提供一种针对私有化格式文件的加密、解密的方法,从而更好地保护这些私有化格式文件。
本申请的第一方面提供一种私有化格式文件的处理方法,包括:
电子设备接收针对第一文件的第一操作,所述第一文件为私有化格式文件,所述第一文件位于所述电子设备的内存中,所述第一操作用于指示特定软件存储所述第一文件;
所述电子设备通过加密锁,基于所述加密锁中的许可加密第一数据,得到第二数据,其中,所述第一文件包括所述第一数据;
所述电子设备通过所述加密锁,基于所述加密锁中的设备私钥对所述第一数据签名,得到第四数据;其中,所述设备私钥与所述私有化格式文件关联的特定软件的开发商对应;
所述电子设备持久化存储第二文件,所述第二文件为私有化格式文件,所述第二文件中包括:所述第二数据、所述第四数据以及证书链;其中,所述证书链来自所述加密锁,用于验证所述第四数据。
结合第一方面,在一种可能的实现方式中,所述加密锁中包括至少一种预设文件类型;
所述第二数据为:在所述第一文件的类型与所述至少一种预设文件类型中的任一种匹配的情况下,通过所述加密锁加密所述第一数据而得到的数据;和/或,
所述第四数据为:在所述第一文件与所述至少一种预设文件类型中的任一种匹配的情况下,通过所述加密锁对所述第一数据签名而得到的数据。
结合第一方面,在一种可能的实现方式中,所述电子设备通过所述加密锁,基于所述加密锁中的设备私钥对所述第一数据签名,得到第四数据的步骤,包括:
所述电子设备处理所述第一数据,得到第三数据;
所述电子设备将所述第三数据传输给所述加密锁;
所述电子设备从所述加密锁接收所述第四数据,所述第四数据由所述加密锁基于所述设备私钥对所述第三数据签名而得到。
结合第一方面,在一种可能的实现方式中,所述第四数据由所述加密锁基于所述设备私钥对所述第一数据或或第三数据签名,并基于所述签名结果和所述加密锁的唯一标识而得到。
结合第一方面,在一种可能的实现方式中,该方法还包括:
在所述第二文件被修改并指示存储被修改的第二文件的情况下,电子设备通过所述加密锁,基于所述加密锁中的许可,对所述第二数据、所述第四数据、所述证书链和加密锁的唯一标识中的至少一个,以及第八数据加密,得到第九数据;其中,所述第八数据包含在被修改的第二文件中;
所述电子设备通过所述加密锁,基于所述加密锁中的设备私钥对所述第八数据签名,得到第十数据;
所述电子设备持久化存储第三文件,所述第三文件为私有化格式文件,所述第三文件包括:所述第九数据、所述第十数据以及证书链。
本申请的第二方面提供一种私有化格式文件的处理方法,包括:
电子设备接收针对第二文件的第二操作;所述第二文件为私有化格式文件,所述第二文件包括:第二数据、第四数据以及证书链;所述第二操作用于指示特定软件打开或编辑所述第二文件;
所述电子设备通过加密锁,基于所述加密锁中的许可解密所述第二数据,得到第五数据;
所述电子设备基于所述证书链和所述第五数据,验证所述第四数据;
在所述第四数据通过所述验证的情况下,所述电子设备允许针对所述第二文件中的所述第二操作;
其中,在所述第四数据通过所述验证的情况下,证书链所指示的设备公钥与所述加密锁中的设备私钥对应,所述设备私钥与所述私有化格式文件关联的特定软件的开发商。
结合第二方面,在一种可能的实现方式中,所述加密锁中包括至少一种预设文件类型;
所述第五数据为:在所述第二文件的类型与所述至少一种预设文件类型中的任一种匹配的情况下,所述加密锁解密所述第二数据所而得到的数据;或者,
在所述第二文件的类型与所述至少一种预设文件类型中的任一种匹配的情况下,所述加密锁将所述第五数据返回给所述电子设备。
结合第二方面,在一种可能的实现方式中,所述电子设备基于所述证书链和所述第五数据,验证所述第四数据的步骤,包括:
所述电子设备确定第六数据,所述第六数据为对所述第五数据处理而得到的数据;
所述电子设备基于所述证书链验证设备公钥的合法性,以及,基于所述设备公钥和所述第六数据,验证所述第四数据;其中,所述证书链指示所述设备公钥
本申请的第三方面提供一种电子设备,包括:
存储器,配置为存储预定的计算机指令;
处理器,配置为运行所述预定的计算机指令,以实现第一方面或者第二方面的任一种方法的全部或部分步骤。
本申请的第四方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行第一方面或第二方面的任一种方法。
采用上述私有化格式文件的处理方法,当用户更改了一个私有化格式文件的内容,并需要持久化存储更改后的文件时,不直接执行持久化存储的步骤,而是一方面利用加密锁中的许可对该文件中的数据加密,从而保护该文件的内容;另一方面,利用该加密锁中的设备密钥来对该文件中的数据签名,并存储到该文件当中,从而保障被加密的数据的完整性和合法性。通过这样的方式,私有化格式文件的内容在电子设备的内存以外的地方始终处于加密状态,可以有效防止私有化格式文件的内容被恶意破解和获取,也可以有效防止私有化格式文件被非法修改。用户只有在能够合法使用特定软件并持有能够解密该私有化格式文件的特定加密锁的情况下,才能够打开、编辑、存储该私有化格式文件。此外,采用这样的方式还记录了该私有化格式文件的存储者(加密锁的持有者)的相关信息,便于追溯私有化格式文件的编辑历史。
附图说明
图1为本申请实施例的方法的一个示例性应用场景的系统架构示意图。
图2为本申请的一个示例性的私有化格式文件的加密方法的流程示意图。
图3为本申请的另一个示例性的私有化格式文件的加密方法的流程示意图。
图4为本申请的一个示例性的私有化格式文件的解密方法的流程示意图。
图5为本申请的一个示例性的私有化格式文件的解密方法的流程示意图。
图6是根据本申请实施例的一个示例性的电子设备的结构示意图。
具体实施方式
为清楚、完整地描述本申请的技术方案,下面将结合实施例和附图作进一步说明。
对于一些特定软件而言,用户往往需要向软件开发商购买使用许可,才能够合法、正常使用这些软件。而对应的私有化格式文件只能被这些特定软件打开、编辑等,这就在一定程度上对这些私有化格式文件中的内容起到了保护作用。尤其是对于普通的软件用户而言,要从私有化格式文件中获取其中的一些有用的内容是有一定难度的。然而,对于一些具有技术能力的攻击者而言,其可能能够破解私有化格式文件,从中获取到有价值的内容。为此,本申请实施例提出一种针对私有化格式文件的处理方法,采用该方法可以更好地保护私有化格式文件。
此外,在一些实现方式中,私有化格式文件可能会被加密,但是加密所使用的密钥往往会以明文的形式存储在特定软件中或者特定软件运行过程中的内存中。这使得具有一定技术能力的攻击者能够相对容易地获取到密钥,从而获取私有化格式文件中的内容。
为此,本申请实施例提供一种新的保护私有化格式文件的方式。当用户更改了一个私有化格式文件的内容,并需要持久化存储更改后的文件时,不直接执行持久化存储的步骤,而是一方面利用加密锁中的许可对该文件中的数据加密,从而保护该文件的内容;另一方面,利用该加密锁中的设备密钥来对该文件中的数据签名,并存储到该文件当中,从而保障被加密的数据的完整性和合法性。采用这样的方式,私有化格式文件的内容在电子设备的内存以外的地方始终处于加密状态,可以有效防止私有化格式文件的内容被恶意破解和获取,也可以有效防止私有化格式文件被非法修改。用户只有在能够合法使用特定软件并持有能够解密该私有化格式文件的特定加密锁的情况下,才能够打开、编辑、存储该私有化格式文件。此外,采用这样的方式还记录了该私有化格式文件的存储者(加密锁的持有者)的相关信息,便于追溯私有化格式文件的编辑历史。
为便于理解,以下将首先介绍一个示例性的系统架构,然后对本申请实施例提出的针对私有化格式文件的处理方法,包括加密过程和相应的解密过程,分别作说明。
参见图1,图1为本申请实施例的方法的一个示例性应用场景的系统架构示意图。该系统包括电子设备和加密锁。
本申请实施例中的电子设备,可以包括但不限于诸如手机、平板电脑、个人计算机(Personal Computer,PC)、可穿戴设备、物联网设备、车联网设备、增强现实(augmentedreality,AR)/虚拟现实(virtual reality,VR)设备、个人数字助理(Personal DigitalAssistant,PDA)等设备,本申请对于电子设备的具体产品形态/类型不作限定。
电子设备上可以安装有特定的软件,这些软件可以被配置为在某些条件下需要获得软件开发商的许可才能合法使用。例如,在建筑行业中的工程造价软件、计价软件、算量软件、施工软件、运维软件等。这些软件所对应的文件,例如造价工程文件、计价工程文件等,很多都是私有化格式的,具有自己特有的扩展名。
本申请实施例中的加密锁,是一种信息安全装置。广义的加密锁可以包括硬件加密锁、云锁、软锁等。硬件加密锁可以通过USB、并口等方式与电子设备物理连接,从而传输数据。例如,安装在电子设备上的特定软件可以通过USB口访问硬件加密锁,如图1所示。软锁主要是指存储在计算机等电子设备上的一种加密容器,电子设备上的某些软件等可以通过驱动访问本地的加密容器。云锁主要是指运行在服务器上的加密锁云服务,也可以理解为一种运行在服务端的加密锁实体。电子设备上的某些软件可以通过互联网或者局域网等网络来访问云锁。本申请实施例中对加密锁的具体产品形态不作限定。
需要说明的是,在一些应用场景中,对于不同的用户而言,其使用的电子设备可能是同一个电子设备,也可能是不同的电子设备。例如,在建筑行业中,一个工程文件可能需要由多个不同的专业人员打开、编辑、保存才能形成完整的方案,这多个专业人员可以使用相同的电子设备来编辑,也可以使用各自的不同的电子设备来编辑,本申请对此不作限定。
还需要说明的是,在本申请实施例的方案中,用户保存私有化格式文件,或者想要打开、编辑私有化格式文件,都需要使用到加密锁。对于一个不同的用户而言,其使用的加密锁可能是同一个加密锁,也可能不是同一个加密锁。仍以建筑行业为例,多个不同专业人员在编辑一个工程文件的时候,可以相互传递同一个加密锁,也可以各自持有各自的加密锁。在一些实现方式中,当不同的专业人员各自持有各自的加密锁的时候,这些加密锁需要具有一些共同的特征才可以。例如,这些不同的专业人员都属于同一个建筑公司,他们所使用的加密锁中的设备证书是一样的或者有一定关联的,都是加密锁的厂商为该建筑公司颁发的,可以是与该建筑公司这个主体唯一对应的。
本申请实施例提供一种私有化格式文件的加密方法,该方法可以由电子设备,或者电子设备和加密锁来执行。为便于理解,以下以某一个文件(第一文件)为例,描述需要持久化存储该第一文件时所执行的解密方法的步骤。
参见图2,图2为本申请的一个示例性的私有化格式文件的加密方法的流程示意图。该方法可以包括S101至S104的步骤。
S101:电子设备接收针对第一文件的第一操作。
第一文件可以是任一个私有化格式文件。例如,第一文件可以是某个造价工程文件、计价工程文件等。电子设备上安装有与第一文件对应的软件,例如工程造价软件、工程计价软件等。第一文件可以被对应的软件打开、编辑、保存等。
私有化格式文件可以由某个开发商所开发的特定格式的文件。在一般情况下,私有化格式文件可以被设定为只有该软件开发商所开发的特定软件(即对应的软件)才能够打开该私有化格式文件。即,该私有化格式文件可以被设定为只有与该私有化格式文件关联的特定软件的开发商所开发的软件才能够打开。当然,应理解的是,在有些情况下,其他的软件开发商也有可能会开发出其他能够兼容打开这些私有化格式文件的软件。这样的情况有时候是该特定软件的开发商所不能完全控制的。
在一些实现方式中,这些特定的软件可以在应用层面将读写接口进行封装,接管文件的读写,保证文件暂时不出现在电子设备的硬盘中。也就是说,当一个私有化格式文件被对应的软件编辑之后,该文件可以暂时放在电子设备的内存中。在用户编辑之后,一般需要执行存储的操作,来将编辑的内容进行持久化的存储,例如存储到电子设备的硬盘中。这时就可以触发电子设备利用加密锁来处理内存中的该文件。在一些实现方式中,电子设备即便不能顺利利用加密锁来处理内存中的文件并成功持久化保存,该内存中的文件也不允许被存储到硬盘中。
第一操作可以用于指示通过特定软件存储第一文件。示例性地,用户在电子设备上的特定的软件中编辑,然后点击该特定软件中的“保存”等按钮,从而输入第一操作给电子设备,以指示电子设备存储编辑后形成的第一文件。
可选地,在一些实现方式中,第一操作还可以用于指示创建一个私有化格式文件。示例性地,用户在电子设备上的特定软件中想要创建一个新的文件的时候,可以点击该特定软件中的“新建”等按钮,从而输入第一操作给电子设备,以指示电子设备创建一个新的文件(为便于区分,本申请实施例中称之为初始文件)。这样,在一开始创建一个私有化格式文件的时候,电子设备就可以响应该指示创建的操作,执行后续的加密、签名、持久化存储等部分或全部步骤。
应理解,用户创建该初始文件之后,用户可以在该软件中继续编辑,然后保存编辑后形成的文件。当用户保存时,电子设备可以响应该指示保存的操作,来执行后续的加密、签名、持久化存储等步骤。在这种情况下,用户创建的初始文件在被编辑后所形成的文件,可以被视为前述步骤中的第一文件。当然,其他任意用户利用特定的软件打开某一个私有化格式文件,编辑后所形成的文件,也可以作为前述步骤中的第一文件。后文将以被修改的第二文件视为第一文件为例,对此作进一步的示例性说明。
S102:电子设备通过加密锁,基于加密锁中的许可加密第一数据,得到第二数据;其中,第一文件包括第一数据。
第一数据可以是第一文件中的部分或者全部内容。在一些实现方式中,电子设备可以将第一文件中的一些关键数据提取出来,作为第一数据。然后,电子设备利用加密锁来对第一数据加密,得到第二数据。在另一些实现方式中,电子设备可以将整个第一文件视为第一数据,利用加密锁来加密。在一些情况下,第一文件或者其中需要加密的内容的数据量可能较大。因此,在又一些实现方式中,电子设备可以将需要加密的内容视为数据流,分次利用加密锁来加密,那么,该数据流或者每一次加密的这部分数据流可以被视为第一数据。
在加密锁中还可以存在许可。该许可可以包括许可ID、许可条款等内容。在一些实现方式中,该许可可以是针对特定文件或者特定类型的文件而颁发的许可。示例性地,该许可可以是针对用户创建的某一个私有化格式文件(例如前述的初始文件)而颁发的许可。尽管该私有化格式文件后续可能还会被多次编辑,每次编辑后保存都可以使用该许可来对该文件加密。在另一些实现方式中,用户想要合法使用特定的软件,需要从该特定的软件的开发商处购买许可,该针对特定软件而颁发的许可,也可以被用来加密私有化格式文件。即,在用户这一侧,其使用特定软件和操作私有化格式文件可以依赖于同一个许可。
基于加密锁中的许可加密第一数据可以采用多种可能的实现方式。在加密的一些实现方式中,电子设备可以将第一数据传输给加密锁,加密锁基于许可中的部分信息(例如许可ID等)对该第一数据加密,得到第二数据。在加密的另一些实现方式中,电子设备可以对第一数据做一些处理,例如变换运算,然后将运算结果传输给加密锁。加密锁再基于许可中的部分信息(例如许可ID等)对该运算结果加密,得到第二数据。在一些实现方式中,电子设备可以将第一数据传输给加密锁,加密锁可以对第一数据做一些处理,例如变换运算,然后基于许可中的部分信息(例如许可ID等)对该运算结果加密,得到第二数据。
加密锁基于许可加密第一数据所采用的算法,可以采用现有技术中的算法,例如AES算法、RSA算法等。示例性地,在一些实现方式中,加密锁可以采用AES算法的CTR模式。当然,加密锁也可以采用其他可能的算法,本申请对于具体采用的加密算法不作限定。
S103:电子设备通过加密锁,基于加密锁中的设备密钥对第一数据签名,得到第四数据。
其中,设备密钥与私有化格式文件关联的特定软件的开发商对应。
不同的软件开发商可以具有不同的密钥/密钥对,来表示该软件开发商的身份。这些密钥或者密钥对中的私钥可以被存储在加密锁中,作为设备密钥。应理解,一个软件开发商可以具有一个或多个不同的密钥/密钥对,也可以具有多把加密锁,不同加密锁中存储的设备密钥可以相同,也可以不同。示例性地,针对相同项目组所拥有的加密锁,可以都存储相同的设备密钥,针对不同项目组所拥有的加密锁,则可以存储不同的设备密钥。
加密锁中存储的设备密钥,尤其是设备私钥可以在锁内生成,且可以被设置为不能被导出到加密锁外部,从而加强了设备密钥的安全性。也就是说,加密锁内存储的密钥只能在符合条件的情况下被使用,而不能被导出或读取。
在一些实现方式中,加密锁可以基于加密锁中的设备密钥(例如设备私钥)对第一数据签名,得到第四数据。在另一些实现方式中,加密锁可以先对第一数据做一些处理(例如哈希运算),得到第三数据(例如哈希运算结果),然后利用设备密钥处理该第三数据,得到签名结果,并将该签名结果作为第四数据。在又一些实现方式中,参见图3,电子设备可以先对第一数据做一些处理,得到第三数据,然后利用设备密钥处理该第三数据,得到签名结果,并将该签名结果作为第四数据。上述的哈希运算示例性地可以为sha256计算,生成的第三数据为一个64位的字符串。与由加密锁执行处理的方式相比而言,由电子设备执行处理的方式可以降低对加密锁的计算能力的要求。
在一些实现方式中,加密锁可以基于前述签名结果和该加密锁的唯一标识(例如该加密锁的序列号/SN号),生成第四数据,如图3所示。示例性地,加密锁可以将签名结果和加密锁的标识拼接得到第四数据。这样,最终持久化存储的第二文件中就会包含该加密锁的唯一标识的信息。随着一个文件被不断编辑、保存,最终得到的文件中可能会记录着每一次保存所采用的加密锁的信息,从而便于追溯该文件曾经被哪些加密锁的持有者编辑、保存过。
加密锁可以将第四数据以及前述的第二数据返回给电子设备,以便电子设备能够持久化存储。
S104:电子设备持久化存储第二文件,第二文件为私有化格式文件,第二文件中包括:第二数据、第四数据以及证书链。
在一些实现方式中,加密锁还可以将用于验证第四数据,也就是验证签名的证书链发送给电子设备,以便电子设备持久化存储在私有化格式文件中,在后续需要的时候(例如打开该私有化格式文件的时候)可以用来验证其中存储的签名。也就是说,前述的证书链来自加密锁,主要用于验证第四数据。后续的解密过程中将对该证书链的使用作进一步的示例性说明。
证书链可以包括用于验证第四数据的设备密钥的密钥信息。为便于说明,后续将以一对设备密钥(设备私钥和设备公钥)为例作说明。在一些实现方式中,证书链中至少包括与设备私钥对应的设备公钥的信息(为便于区分,下文也称之为第一公钥信息)。第一公钥信息可以是设备公钥本身,也可以是用于指示设备公钥的信息,本申请对其具体形式不作限定,只要电子设备在需要使用该设备公钥的时候能够根据该第一公钥信息获取到相应的设备公钥即可。
在一些实现方式中,前述设备密钥可以是某一个CA签发的,该CA可以为特定主体(例如前述的特定软件的开发商等)颁发包含设备公钥的设备公钥证书(为便于区分,下文也称之为第一公钥证书)。第一公钥证书可以是经该CA的私钥签过名的。因此,证书链中还可以包括该CA的公钥信息(为便于区分,下文也称之为第二公钥信息)。也就是说,在这种情况下,证书链中包括了第一公钥信息,以及对应的第二公钥信息。
在一些实现方式中,在上述CA还具有上一级CA的情况下,包含该CA的公钥的公钥证书(为便于区分,下文也称之为第二公钥证书)可以是经上一级CA的私钥签过名的。因此,证书链中还可以包括其上一级CA的公钥信息(为便于区分,下文也称之为第三公钥信息)。以此类推,证书链中还可以包括上上一级CA的公钥信息(即第四公钥信息)、再上一级CA的公钥信息(即第五公钥信息)等,直到根CA的公钥信息。上一级公钥信息所指示的公钥,可以用于验证下一级公钥证书的签名。通过一级一级验证,可以保障设备公钥的合法性,进而保障对于第四数据的验证结果的可靠性。
电子设备可以基于第四数据、第二数据以及证书链来生成第二文件,持久化存储在电子设备或者其他计算机可读存储介质中。第二文件是与第一文件相同或者类似的私有化格式文件。即处理前后文件的私有化格式可能是相同的,也可能并不完全相同的,但是类似的,二者均可以被前述的特定软件打开或编辑。
应理解,第二文件中还可以包括其他可能的数据,本申请对此不作限定。示例性地,在前述的第一数据是第一文件的关键数据的情况下,第二文件中还可以包括第一文件的除前述关键数据以外的其他数据。
又示例性地,第二文件中还可以包括时间戳,该时间戳可以用于指示本次存储第二文件的时间。应理解,这里的时间戳可以是由加密锁生成并传输给电子设备的,也可以由电子设备自行生成,本申请对此不作限定。这样,对于一个被多次编辑和存储的文件而言,该文件中不但可以记录每一次的存储者(持有加密锁的用户)的信息,例如加密码锁的唯一标识以及证书链等,还可以记录对应的编辑时间,从而更加便于追溯文件的编辑历史。这样的实现方式也非常适合被应用在私有化格式工程文件上,例如招投标文件等,可以为更好地辨别是否存在招投标违规行为提供基础。
本申请实施例提供一种私有化格式文件的解密方法,该方法可以由电子设备,或者电子设备和加密锁来执行。为便于理解,以下以前述的第二文件为例,描述特定软件需要打开或者编辑该第二文件时所执行的解密方法的步骤。
应理解,对于其他类似的私有化格式文件,在需要打开或者编辑的时候也可以采用相同或者类似的步骤。
还应理解,执行解密方法的步骤的电子设备,与前述执行加密方法的步骤的电子设备,可以是同一个电子设备,也可以是不同的电子设备,本申请对此不作限定。
参见图4,图4为本申请的一个示例性的私有化格式文件的解密方法的流程示意图。该方法可以包括S201至S204的步骤。
S201:电子设备接收针对第二文件的第二操作。
第二文件为私有化格式文件,第二文件包括:第二数据、第四数据以及证书链。关于私有化格式文件、第二文件所包括的第二数据、第四数据和证书链,可以参考前文的相关描述,此处不再赘述。
第二操作用于指示通过特定软件打开或编辑第二文件。示例性地,用户在电子设备上的特定软件中点击“打开”等按钮,选择第二文件,或者用户双击第二文件,从而输入第二操作给电子设备,以指示电子设备打开或者编辑第二文件。
S202:电子设备通过加密锁,基于加密锁中的许可解密第二数据,得到第五数据。
电子设备可以与加密锁通信连接,以便与加密锁交互信息。应理解,这里的加密锁与前述实施例中用于加密的加密锁,可能是同一把加密锁,也可能是不同的加密锁。
在一些实现方式中,电子设备可以将第二数据整体、分批次或者以数据流等方式传输给加密锁,加密锁利用存储在加密锁中的、与该第二数据对应的许可,解密该第二数据,得到第五数据。
应理解,在加密锁中可能存在一个或多个许可。在一些实现方式中,在加密数据的时候可以标识或者记录所基于的是哪一个许可,这样在解密数据的时候即可以相应地采用该许可来解密。
还应理解,加密锁可以采用一种或多种不同的加解密算法来处理数据。在一些实现方式中,在加密数据的时候可以标识或者记录所基于的是哪一种或者哪几种算法,这样在解密数据的时候即可以相应地采用这一种或者这几种算法来解密。示例性地,在加密的时候加密锁首先对第一数据做了变换运算,然后基于许可对运算结果加密,得到的第二数据,则相应地,在解密的时候,加密锁可以先基于许可对运算结果解密,然后对解密结果做对应的变换逆运算,从而得到第五数据。
在解密得到第五数据之后,加密锁可以将该第五数据返回给电子设备,也可以对其执行其他处理步骤,例如计算该第五数据的哈希值,将哈希值返回给电子设备。在一些应用场景中,由于加密锁此时还没有验证第二文件所包含的第四数据,其可以先不将第五数据返回给电子设备,以免恶意的攻击者在第四数据通过验证之前就能够从电子设备中获取到第五数据。等到第四数据通过的验证之后,再将该第五数据返回给电子设备。在另一些应用场景中,如图5所示,加密锁可以将第五数据返回给电子设备。电子设备可以将其暂存在内存中,并设置其不允许被读取,从而保证只有在第四数据通过了验证之后才允许电子设备打开或者编辑该文件的内容。
可选地,加密锁中存储有至少一种预设的文件类型。这些预设的文件类型可以是由软件开发商等预先设定好的,其可以是私有化格式文件。在一些实现方式中,预设的文件类型可以是该软件开发商自己开发的私有化格式文件。软件开发商可以在初始化加密锁时,将预设的文件格式类型写入到加密锁内。采用这样的方式,可以使得加密锁只针对特定的文件类型做处理,而不处理其他文件类型,从而进一步提高私有化格式文件的保护强度和针对性。
在一些实现方式中,在加密锁解密第二数据之前,其可以确定第二文件的文件类型。在第二文件的文件类型与预先设定的文件类型匹配的情况下,再基于许可去解密第二数据。如果第二文件的文件类型与预先设定的文件类型中的任一种都不匹配,则不解密第二数据。
在另一些实现方式中,在加密锁返回第五数据或者第五数据的哈希值等之前,加密锁可以确定第二文件的文件类型与至少一种预设的文件类型是否匹配。如果匹配,则加密锁可以返回第五数据或第五数据的哈希值;如果不匹配,则不返回上述数据。
S203:电子设备基于证书链和第五数据,验证第四数据。
在一些实现方式中,如图5所示,在电子设备接收到返回的第五数据的情况下,其可以对第五数据做一些处理,例如哈希运算,得到哈希值(为便于区分,下文将其称为第六数据),然后将利用该第六数据、证书链来验证第四数据。在另一些实现方式中,在电子设备接收到返回的哈希值(由加密锁基于第五数据计算得到)时,可以将其作为第六数据,利用第六数据、证书链来验证第四数据。
示例性地,电子设备可以利用证书链所指示的设备公钥解密第四数据,得到第七数据,然后确定第七数据和第六数据是否匹配。如果匹配,则可以认为第四数据能够通过验证。如果不匹配,则可以认为第四数据不能通过验证。
又示例性地,设备公钥来自设备公钥证书(即前述的第一公钥证书),在基于该设备公钥确定第六数据和第七数据匹配的基础上,还可以用其上一级CA的公钥证书(即前述的第二公钥证书)所包含的第二公钥来验证第一公钥证书的签名。在第一公钥证书的签名验证通过的基础上,还可以用其再上一级CA的公钥证书(即第三公钥证书)所包含的第三公钥来验证第二公钥证书的签名。以此类推,一级一级验证,直到利用根CA的公钥证书验证了根证书的自签名位置。如果所有的验证都通过,则可以认为第四数据能够通过验证。如果有任意一级验证不能通过,都可以认为第四数据不能通过验证。上述每一级验证所使用的公钥的信息都可以由证书链来指示。
还示例性地,如图5所示,电子设备可以基于证书链验证设备公钥的合法性。其验证方法与前述的一级一级的验证类似,此处不再赘述。在验证了设备公钥合法的情况下,电子设备再利用设备公钥和第五数据来验证第四数据。例如,电子设备可以利用设备公钥解密第四数据,得到第七数据,然后与前述实现方式类似,判断第六数据与第七数据是否匹配。
可以理解的是,在第四数据能够通过验证的情况下,证书链所指示的设备公钥与加密锁中的设备私钥必然是对应的。
S204:在第四数据通过验证的情况下,电子设备允许针对第二文件中的第二操作。
在一些实现方式中,在第四数据能够通过S203的步骤的验证的情况下,可以允许电子设备执行前述的第二操作。这样,电子设备上的特定软件就可以打开或者允许当前的用户编辑第二文件。该第二操作可以是针对解密出来的第五数据的操作,也可以是针对第二文件中的其他内容的操作,本申请对此不作限定。
在另一些实现方式中,当第四数据还包含了其他信息的时候,电子设备还可以利用其包含的其他信息来执行其他可能的验证。示例性地,当第四数据还包含了加密锁的唯一标识(为便于区分,下文称之为第一锁标识)的情况下,电子设备可以接收当前加密锁的唯一标识(为便于区分,下文称之为第二锁标识)。然后,电子设备可以比较第一锁标识和第二锁标识,如果二者相同或者符合一些预设的规则,则可以认为验证通过。在基于加密锁的唯一标识的验证通过的情况下,可以允许电子设备执行前述的第二操作,如图5所示。
应理解,如果当前用户编辑第二文件之后,又需要对该文件进行存储,则又可能会触发前述的S101的步骤。在这种情况下,编辑后的第二文件可以被视为前述的第一文件,循环前述的S101至S104的步骤。
示例性地,在第二文件被修改后,其暂时还是被存放在电子设备的内存中。电子设备接收到针对该修改后的第二文件的第一操作(用于指示存储修改后的第二文件),通过当前连接的加密锁,基于加密锁中的许可,对第八数据加密,得到第九数据;其中,第八数据包含在被修改的第二文件中。电子设备通过加密锁,基于加密锁中的设备私钥对第八数据签名,得到第十数据。然后电子设备持久化存储第三文件,第三文件也为私有化格式文件,第三文件包括:第九数据、第十数据以及证书链。
可选地,在一种实现方式中,可以将前一次存储的第二数据、第四数据、证书链、加密锁的唯一标识以及时间戳中的一个或多个数据,与第八数据一起,都由加密锁加密,从而得到第九数据。采用这样的方式,前一次存储私有化格式文件有关的数据会被用于形成下一次存储的文件,每一次存储的私有化格式文件之间都存在着关联,这使得被存储的私有化格式文件,包括其中记录的与编辑历史相关的数据,都更加不易被篡改。这也有助于更加精确地追溯私有化格式文件的编辑和存储历史。
请结合图6,本申请实施例中还提供一种电子设备,该电子设备300可以包括:
存储器301,配置为存储预定的计算机指令;
处理器302,配置为运行预定的计算机指令以实现前述任一种实现方式中电子设备所实现的部分或全部步骤。
本申请实施例中还提供一种加密锁,该加密锁可以包括:
存储器,配置为存储预定的计算机指令;
处理器,配置为运行预定的计算机指令以实现前述任一种实现方式中加密锁所实现的部分或全部步骤。
本领域技术人员应明白,本申请的实施例可提供为方法、设备、计算机可读存储介质或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例,或结合软件和硬件的实施例的形式。
本申请还可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质上实施的计算机程序产品的形式。即,本申请实施例中还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行前述任一种实现方式中第一电子设备或者第二电子设备所实现的部分或全部步骤。当然,在有些情况下,该存储介质也可能存储有两个电子设备的执行的计算机程序。
当通过软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所描述的产品实施例仅仅是示意性的。例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,比如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或者不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。本领域技术人员可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案对现有技术做出贡献的部分,或者该技术方案的部分,可以以软件产品的形式体现出来。该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序的介质。
应理解,在本申请的各种实施例中,各步骤的执行顺序应以其功能和内在逻辑确定,各步骤序号的大小并不意味着执行顺序的先后,不对实施例的实施过程构成任何限定。例如,前述步骤S102和步骤S103可以同时进行,也可以以任意的先后顺序执行,本申请对此不作限定,但步骤S104需要在步骤S102和S103之后执行。
还应理解,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项,或者存在一定差异的概念进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
本说明书中各个实施例之间相同、相似的部分相互参见即可。只要逻辑上不矛盾,不同实施例之间可以相互结合。
Claims (10)
1.一种私有化格式文件的处理方法,其特征在于,包括:
电子设备接收针对第一文件的第一操作,所述第一文件为私有化格式文件,所述第一文件位于所述电子设备的内存中,所述第一操作用于指示特定软件存储所述第一文件;
所述电子设备通过加密锁,基于所述加密锁中的许可加密第一数据,得到第二数据,其中,所述第一文件包括所述第一数据;
所述电子设备通过所述加密锁,基于所述加密锁中的设备私钥对所述第一数据签名,得到第四数据;其中,所述设备私钥与所述私有化格式文件关联的特定软件的开发商对应;
所述电子设备持久化存储第二文件,所述第二文件为私有化格式文件,所述第二文件中包括:所述第二数据、所述第四数据以及证书链;其中,所述证书链来自所述加密锁,用于验证所述第四数据。
2.根据权利要求1所述的方法,其特征在于,所述加密锁中包括至少一种预设文件类型;
所述第二数据为:在所述第一文件的类型与所述至少一种预设文件类型中的任一种匹配的情况下,通过所述加密锁加密所述第一数据而得到的数据;和/或,
所述第四数据为:在所述第一文件与所述至少一种预设文件类型中的任一种匹配的情况下,通过所述加密锁对所述第一数据签名而得到的数据。
3.根据权利要求1至2任一项所述的方法,其特征在于,所述电子设备通过所述加密锁,基于所述加密锁中的设备私钥对所述第一数据签名,得到第四数据的步骤,包括:
所述电子设备处理所述第一数据,得到第三数据;
所述电子设备将所述第三数据传输给所述加密锁;
所述电子设备从所述加密锁接收所述第四数据,所述第四数据由所述加密锁基于所述设备私钥对所述第三数据签名而得到。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述第四数据由所述加密锁基于所述设备私钥对所述第一数据或或第三数据签名,并基于所述签名结果和所述加密锁的唯一标识而得到。
5.根据权利要求1至4任一项所述的方法,其特征在于,还包括:
在所述第二文件被修改并指示存储被修改的第二文件的情况下,电子设备通过所述加密锁,基于所述加密锁中的许可,对所述第二数据、所述第四数据、所述证书链和加密锁的唯一标识中的至少一个,以及第八数据加密,得到第九数据;其中,所述第八数据包含在被修改的第二文件中;
所述电子设备通过所述加密锁,基于所述加密锁中的设备私钥对所述第八数据签名,得到第十数据;
所述电子设备持久化存储第三文件,所述第三文件为私有化格式文件,所述第三文件包括:所述第九数据、所述第十数据以及证书链。
6.一种私有化格式文件的处理方法,其特征在于,包括:
电子设备接收针对第二文件的第二操作;所述第二文件为私有化格式文件,所述第二文件包括:第二数据、第四数据以及证书链;所述第二操作用于指示特定软件打开或编辑所述第二文件;
所述电子设备通过加密锁,基于所述加密锁中的许可解密所述第二数据,得到第五数据;
所述电子设备基于所述证书链和所述第五数据,验证所述第四数据;
在所述第四数据通过所述验证的情况下,所述电子设备允许针对所述第二文件中的所述第二操作;
其中,在所述第四数据通过所述验证的情况下,证书链所指示的设备公钥与所述加密锁中的设备私钥对应,所述设备私钥与所述私有化格式文件关联的特定软件的开发商。
7.根据权利要求6所述的方法,其特征在于,所述加密锁中包括至少一种预设文件类型;
所述第五数据为:在所述第二文件的类型与所述至少一种预设文件类型中的任一种匹配的情况下,所述加密锁解密所述第二数据所而得到的数据;或者,
在所述第二文件的类型与所述至少一种预设文件类型中的任一种匹配的情况下,所述加密锁将所述第五数据返回给所述电子设备。
8.根据权利要求6或7所述的方法,其特征在于,所述电子设备基于所述证书链和所述第五数据,验证所述第四数据的步骤,包括:
所述电子设备确定第六数据,所述第六数据为对所述第五数据处理而得到的数据;
所述电子设备基于所述证书链验证设备公钥的合法性,以及,基于所述设备公钥和所述第六数据,验证所述第四数据;其中,所述证书链指示所述设备公钥。
9.一种电子设备,其特征在于,包括:
存储器,配置为存储预定的计算机指令;
处理器,配置为运行所述预定的计算机指令,以实现权利要求1至8任一项所述的方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111654641.5A CN114329564A (zh) | 2021-12-30 | 2021-12-30 | 私有化格式文件的处理方法、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111654641.5A CN114329564A (zh) | 2021-12-30 | 2021-12-30 | 私有化格式文件的处理方法、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114329564A true CN114329564A (zh) | 2022-04-12 |
Family
ID=81019268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111654641.5A Pending CN114329564A (zh) | 2021-12-30 | 2021-12-30 | 私有化格式文件的处理方法、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114329564A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104392153A (zh) * | 2014-12-10 | 2015-03-04 | 北京深思数盾科技有限公司 | 一种软件保护方法及系统 |
CN107391974A (zh) * | 2017-07-19 | 2017-11-24 | 北京深思数盾科技股份有限公司 | 一种软件保护装置数据的备份方法及装置 |
CN109286502A (zh) * | 2018-11-13 | 2019-01-29 | 北京深思数盾科技股份有限公司 | 恢复加密机管理员锁的方法以及加密机 |
CN110011988A (zh) * | 2019-03-21 | 2019-07-12 | 平安科技(深圳)有限公司 | 基于区块链的证书验证方法及装置、存储介质、电子装置 |
-
2021
- 2021-12-30 CN CN202111654641.5A patent/CN114329564A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104392153A (zh) * | 2014-12-10 | 2015-03-04 | 北京深思数盾科技有限公司 | 一种软件保护方法及系统 |
CN107391974A (zh) * | 2017-07-19 | 2017-11-24 | 北京深思数盾科技股份有限公司 | 一种软件保护装置数据的备份方法及装置 |
CN109286502A (zh) * | 2018-11-13 | 2019-01-29 | 北京深思数盾科技股份有限公司 | 恢复加密机管理员锁的方法以及加密机 |
CN110011988A (zh) * | 2019-03-21 | 2019-07-12 | 平安科技(深圳)有限公司 | 基于区块链的证书验证方法及装置、存储介质、电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108076057B (zh) | 一种基于区块链的数据保全系统及方法 | |
EP2267628B1 (en) | Token passing technique for media playback devices | |
CN109697365B (zh) | 信息处理方法及区块链节点、电子设备 | |
CN102073826B (zh) | 利用轻量级数字水印添加组件的数字版权管理的系统和方法 | |
JP5281074B2 (ja) | 情報セキュリティ装置および情報セキュリティシステム | |
US8844049B2 (en) | Method for generating a cryptographic key for a protected digital data object on the basis of current components of a computer | |
GB2404536A (en) | Protection of data using software wrappers | |
CN101142599A (zh) | 基于硬件识别的数字权利管理系统 | |
CN109711841B (zh) | 数据交易方法及系统、平台、存储介质 | |
CN112364305A (zh) | 基于区块链平台的数字内容版权保护方法和装置 | |
CN100547598C (zh) | 基于对称密钥加密保存和检索数据 | |
CN105468940A (zh) | 软件保护方法及装置 | |
EP1837789A2 (en) | Method and apparatus for temporarily accessing content using temporary license | |
JP2023548572A (ja) | ブロックチェーンに機密データを記憶すること | |
CN105893837A (zh) | 应用程序安装方法、安全加密芯片及终端 | |
CN101447009A (zh) | 软件安装方法、装置及系统 | |
EP2286610B1 (en) | Techniques for peforming symmetric cryptography | |
CN100437422C (zh) | 软件使用权加密保护的系统和方法 | |
US8755521B2 (en) | Security method and system for media playback devices | |
US8756433B2 (en) | Associating policy with unencrypted digital content | |
CN101661573B (zh) | 电子印章制章方法和电子印章使用方法 | |
CN114329564A (zh) | 私有化格式文件的处理方法、电子设备及介质 | |
WO2022132718A1 (en) | Technologies for trust protocol with immutable chain storage and invocation tracking | |
CN111639353A (zh) | 一种数据管理方法、装置、嵌入式设备及存储介质 | |
CN116070219B (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 |