本技术涉及信息安全,尤其涉及一种文件解密方法、密钥获取方法及其装置、电子设备、介质。
背景技术:
1、勒索病毒,通过入侵用户设备(系统),对用户设备(系统)中的文件进行加密,进而勒索用户交付赎金,以解密文件。此行为严重损害了用户利益。
2、目前,为了降低勒索病毒对用户利益的损害,当用户设备(系统)中的文件被勒索病毒加密后,通常从网络上获取泄露的勒索病毒的密钥,进而对加密文件进行解密。
3、但是,网络上泄露的密钥有限,在当前加密文件的密钥未通过网络泄露的情况下,将无法获取密钥,进而无法对相应的文件进行解密。
技术实现思路
1、本技术实施例的目的是提供一种文件解密方法、密钥获取方法及其装置、电子设备、介质,以提高对勒索病毒加密的文件进行解密的适用性。
2、为解决上述技术问题,本技术实施例提供如下技术方案:
3、本技术第一方面提供一种文件解密方法,所述方法包括:接收加密文件的解密请求,所述解密请求中包括所述加密文件的标识信息,所述加密文件基于勒索病毒加密;从所述解密请求中获取所述加密文件的标识信息;在数据库中查找所述标识信息对应的目标密钥,所述数据库中预先存储有标识信息与密钥的对应关系,所述数据库中的密钥基于所述加密文件所处系统的加密函数获得,所述数据库中的标识信息基于调用所述加密函数后调用的写文件函数获得;采用所述目标密钥解密所述加密文件,得到解密后的文件。
4、相较于现有技术,本技术第一方面提供的文件解密方法,在文件被勒索病毒加密后,需要解密文件时,先确定加密文件的标识信息,再在数据库中查找该标识信息对应的密钥。由于数据库中预先存储有多个加密文件的标识信息及其能够解密的密钥,并且,数据库中的密钥是在系统中文件被加密时基于加密函数获得的,就是勒索病毒加密文件对应的密钥,以及数据库中的标识信息也是在加密函数调用后,基于写文件函数获得的,就是加密文件的标识信息,因此,数据库中存储有系统中被勒索病毒加密的各个文件的标识信息及其密钥。通过加密文件的标识信息,在数据库中,就能够查找到该加密文件对应的密钥,从而使用该密钥解密该加密文件。只要是系统内的文件被勒索病毒加密,数据库中都存储有该加密文件的密钥,从而能够实现文件的解密,提高了对勒索病毒加密文件进行解密的适用性。
5、在本技术第一方面的一些变更实施方式中,在接收加密文件的解密请求之前,所述方法还包括:当监控到调用加密函数时,从所述加密函数调用的参数中获取密钥;当在调用所述加密函数后监控到调用写文件函数时,从所述写文件函数调用的参数中获取文件的标识信息;将获取的密钥和获取的标识信息对应存储至所述数据库。
6、通过监控加密函数和写文件函数,能够在勒索病毒对系统文件进行加密时,获取加密的密钥和被加密的文件,并将加密文件的标识和密钥进行存储,以便于需要对加密文件进行解密时,能够快速且精准的解密。
7、在本技术第一方面的一些变更实施方式中,所述加密函数调用的参数包括长度参数和数据参数,所述数据参数用于存储明文数据,所述长度参数用于存储所述明文数据的长度值;所述从所述加密函数调用的参数中获取密钥,包括:获取所述加密函数调用时所述长度参数中生成的长度值;判断所述长度值是否为预设长度,所述预设长度用于表征数据参数中的明文数据为密钥;若是,则获取所述加密函数调用时所述数据参数中生成的明文数据,并将所述生成的明文数据作为所述密钥。
8、通过长度参数,能够确定数据参数中的明文数据是否为密钥,进而能够提高密钥获取的准确性。
9、在本技术第一方面的一些变更实施方式中,所述预设长度包括第一长度、第二长度和第三长度,所述第一长度用于表征所述明文数据为密钥中的键值,所述第二长度用于表征所述明文数据为密钥中的偏移量,所述第三长度用于表征所述明文数据为密钥中的键值和偏移量;所述判断所述长度值是否为预设长度,包括:判断所述长度值是否为第一长度、第二长度或第三长度中的任一种;若所述长度值为第一长度或第二长度,则继续获取所述加密函数调用时所述长度参数中生成的长度值;若所述长度值为第三长度,则执行获取所述加密函数调用时所述数据参数中生成的明文数据的步骤。
10、通过具体的长度参数,能够确定密钥是否获取完全,并在确定密钥获取不完全的情况下,继续通过长度参数获取密钥,提高了密钥获取的完整性。
11、在本技术第一方面的一些变更实施方式中,在从所述加密函数调用的参数中获取密钥之后,所述方法还包括:根据所述密钥更新第一字段和第二字段中的内容,所述第一字段用于指示所述密钥中的键值是否已获取,所述第二字段用于指示所述密钥中的偏移量是否已获取;在从所述写文件函数调用的参数中获取文件的标识信息之前,所述方法还包括:当监控到调用写文件函数时,基于所述第一字段和所述第二字段判断所述密钥是否已完整获取;若是,则执行从所述写文件函数调用的参数中获取文件的标识信息的步骤;若否,则忽略所述写文件函数的调用。
12、在获取密钥后,在第一字段和第二字段中更新密钥的相关内容,能够确保密钥在获取完全后再与相应文件进行关联,进而能够准确地将密钥与加密文件进行关联。
13、在本技术第一方面的一些变更实施方式中,所述第一字段和所述第二字段存储于线程局部存储(thread local store,tls),所述tls的数量为多个;所述根据所述密钥更新第一字段和第二字段中的内容,包括:确定所述加密函数当前使用的目标线程;根据所述密钥更新所述目标线程对应的线程局部存储tls中第一字段和第二字段中的内容。
14、由于勒索病毒加密采用的是多线程,每一个线程加密一个磁盘中的文件,因此,根据密钥对其加密行为对应的线程下的tls中的第一字段和第二字段进行更新,能够准确地将密钥与相应的加密文件进行关联,提高后续文件解密的准确性。
15、在本技术第一方面的一些变更实施方式中,所述写文件函数调用的参数包括已写入字段,所述已写入字段用于指示相应文件的标识信息是否已被获取;在从所述写文件函数调用的参数中获取文件的标识信息之前,所述方法还包括:基于所述已写入字段判断相应文件的标识信息是否已被获取;若是,则忽略所述写文件函数的调用;若否,则执行从所述写文件函数调用的参数中获取文件的标识信息的步骤。
16、由于通过写文件函数能够对同一文件多次进行读写,因此,通过写文件函数中的已写入字段判断相应文件的标识信息是否已被获取,能够避免同一文件的标识信息被多次获取,提高了密钥与文件标识信息对应的准确性。
17、本技术第二方面提供一种密钥获取方法,所述方法包括:当监控到调用加密函数时,从所述加密函数调用的参数中获取密钥;当在调用所述加密函数后监控到调用写文件函数时,从所述写文件函数调用的参数中获取文件的标识信息;将获取的密钥和获取的标识信息对应存储至数据库。
18、本技术第三方面提供一种文件解密装置,所述装置包括:接收模块,用于接收加密文件的解密请求,所述解密请求中包括所述加密文件的标识信息,所述加密文件基于勒索病毒加密;获取模块,用于从所述解密请求中获取所述加密文件的标识信息;查找模块,用于在数据库中查找所述标识信息对应的目标密钥,所述数据库中预先存储有标识信息与密钥的对应关系,所述数据库中的密钥基于所述加密文件所处系统的加密函数获得,所述数据库中的标识信息基于调用所述加密函数后调用的写文件函数获得;解密模块,用于采用所述目标密钥解密所述加密文件,得到解密后的文件。
19、本技术第四方面提供一种密钥获取装置,所述装置包括:第一获取模块,用于当监控到调用加密函数时,从所述加密函数调用的参数中获取密钥;第二获取模块,用于当在调用所述加密函数后监控到调用写文件函数时,从所述写文件函数调用的参数中获取文件的标识信息;存储模块,用于将获取的密钥和获取的标识信息对应存储至数据库。
20、本技术第五方面提供一种电子设备,所述电子设备包括:处理器、存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行第一方面或第二方面中的方法。
21、本技术第六方面提供一种计算机可读存储介质,所述存储介质包括:存储的程序;其中,在所述程序运行时控制所述存储介质所在设备执行第一方面或第二方面中的方法。
22、本技术第二方面提供的密钥获取方法、第三方面提供的文件解密装置、第四方面提供的密钥获取装置、第五方面提供的电子设备、第六方面提供的计算机可读存储介质,与第一方面提供的文件解密方法具有相同或相似的有益效果。
1.一种文件解密方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在接收加密文件的解密请求之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述加密函数调用的参数包括长度参数和数据参数,所述数据参数用于存储明文数据,所述长度参数用于存储所述明文数据的长度值;所述从所述加密函数调用的参数中获取密钥,包括:
4.根据权利要求3所述的方法,其特征在于,所述预设长度包括第一长度、第二长度和第三长度,所述第一长度用于表征所述明文数据为密钥中的键值,所述第二长度用于表征所述明文数据为密钥中的偏移量,所述第三长度用于表征所述明文数据为密钥中的键值和偏移量;所述判断所述长度值是否为预设长度,包括:
5.根据权利要求2所述的方法,其特征在于,在从所述加密函数调用的参数中获取密钥之后,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述第一字段和所述第二字段存储于线程局部存储tls,所述tls的数量为多个;所述根据所述密钥更新第一字段和第二字段中的内容,包括:
7.根据权利要求2所述的方法,其特征在于,所述写文件函数调用的参数包括已写入字段,所述已写入字段用于指示相应文件的标识信息是否已被获取;在从所述写文件函数调用的参数中获取文件的标识信息之前,所述方法还包括:
8.一种密钥获取方法,其特征在于,所述方法包括:
9.一种文件解密装置,其特征在于,所述装置包括:
10.一种密钥获取装置,其特征在于,所述装置包括:
11.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至8中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质包括:存储的程序;其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1至8中任一项所述的方法。
