一种WhatsApp的mcrypt1附件解密方法、装置及相关介质
文献发布时间:2023-06-19 18:30:43
技术领域
本发明涉及备份数据解密领域,特别涉及一种WhatsApp的mcrypt1附件解密方法、装置及相关介质。
背景技术
WhatsApp Messenger,简称WhatsApp,是Meta公司旗下一款用于智能手机的跨平台加密即时通信应用程序。在现有技术中,由于WhatsApp是将备份数据作为应用数据传输到谷歌云端硬盘(Google Drive)上的,所以正常情况下,只能通过WhatsApp对谷歌云端硬盘上的备份数据进行下载;此过程需要通过WhatsApp登录对应的账号,并进入还原备份的界面,才能将谷歌云端硬盘上的备份下载到本地;如果用户想自行下载这个备份数据,只能通过其他方式去实现下载。
而目前市面上针对WhatsApp加密方式的解密只有crypt12和crypt14两种类型的数据库,对于mcrypt1附件加密类型的解密方案,目前还没有提出。即使能实现直接下载谷歌云端硬盘上的备份数据,但下载的备份数据属于加密后的mcrypt1类型的,目前并没有对应的解密方案提出。因此,如何快速有效的让用户能够解密并查看mcrypt1类型的备份数据,是目前需要解决的问题。
发明内容
本发明实施例提供了一种WhatsApp的mcrypt1附件解密方法、装置及相关介质,旨在解决现有技术中WhatsApp用户无法快速有效的解密并查看mcrypt1类型的备份数据的问题。
第一方面,本发明实施例提供了一种WhatsApp的mcrypt1附件解密方法,包括:
获取目标设备上的WhatsApp备份数据;其中,所述WhatsApp备份数据包括账户备份列表和备份文件列表;
根据所述备份文件列表构建对应所述WhatsApp备份数据的下载链接,利用所述下载链接下载对应的mcrypt1附件;
通过管理员权限或降级备份提取所述目标设备上保存的备份秘钥;
根据所述备份秘钥计算得到第一加密秘钥,利用所述第一加密秘钥分别对所述WhatsApp备份数据中的加密数据和元数据信息进行解密,得到所述mcrypt1附件的属性信息;
根据所述备份秘钥计算得到第二加密秘钥和偏移值,利用所述第二加密秘钥和所述偏移值解密所述mcrypt1附件,得到解密后的所述mcrypt1附件。
第二方面,本发明实施例提供了一种WhatsApp的mcrypt1附件解密装置,包括:
备份数据获取单元,用于获取目标设备上的WhatsApp备份数据;其中,所述WhatsApp备份数据包括账户备份列表和备份文件列表;
加密数据获取单元,用于根据所述备份文件列表构建对应所述WhatsApp备份数据的下载链接,利用所述下载链接下载对应的mcrypt1附件;
备份秘钥提取单元,用于通过管理员权限或降级备份提取所述目标设备上保存的备份秘钥;
第一数据解密单元,用于根据所述备份秘钥计算得到第一加密秘钥,利用所述第一加密秘钥分别对所述WhatsApp备份数据中的加密数据和元数据信息进行解密,得到所述mcrypt1附件的属性信息;
第二数据解密单元,用于根据所述备份秘钥计算得到第二加密秘钥和偏移值,利用所述第二加密秘钥和所述偏移值解密所述mcrypt1附件,得到解密后的所述mcrypt1附件。
第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述第一方面的WhatsApp的mcrypt1附件解密方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述第一方面的WhatsApp的mcrypt1附件解密方法。
本发明实施例提供一种WhatsApp的mcrypt1附件解密方法,获取目标设备上的WhatsApp备份数据并下载对应的mcrypt1附件,提取所述目标设备上保存的备份秘钥;根据所述备份秘钥计算得到第一加密秘钥,利用所述第一加密秘钥分别对所述WhatsApp备份数据中的加密数据和元数据信息进行解密,得到所述mcrypt1附件的属性信息;根据所述备份秘钥计算得到第二加密秘钥和偏移值,利用所述第二加密秘钥和所述偏移值解密所述mcrypt1附件,得到解密后的所述mcrypt1附件。本发明通过提取目标设备上的备份秘钥并结合下载到的备份数据来对mcrypt1附件进行解密,使得用户能够快速有效的解密并查看mcrypt1类型的备份数据。
本发明实施例还提供一种WhatsApp的mcrypt1附件解密装置、计算机设备和存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种WhatsApp的mcrypt1附件解密方法的流程示意图;
图2为本发明实施例提供的一种WhatsApp的mcrypt1附件解密方法的另一流程示意图;
图3为本发明实施例提供的一种WhatsApp的mcrypt1附件解密装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面请参见图1,图1为本发明实施例提供的一种WhatsApp的mcrypt1附件解密方法的流程示意图,具体包括:步骤S101~S105。
S101、获取目标设备上的WhatsApp备份数据;其中,所述WhatsApp备份数据包括账户备份列表和备份文件列表;
S102、根据所述备份文件列表构建对应所述WhatsApp备份数据的下载链接,利用所述下载链接下载对应的mcrypt1附件;
S103、通过管理员权限或降级备份提取所述目标设备上保存的备份秘钥;
S104、根据所述备份秘钥计算得到第一加密秘钥,利用所述第一加密秘钥分别对所述WhatsApp备份数据中的加密数据和元数据信息进行解密,得到所述mcrypt1附件的属性信息;
S105、根据所述备份秘钥计算得到第二加密秘钥和偏移值,利用所述第二加密秘钥和所述偏移值解密所述mcrypt1附件,得到解密后的所述mcrypt1附件。
结合图1和图2所示,在步骤S101中,首先是对所述mcrypt1附件解密前的资源获取的准备工作,即获取目标设备上的WhatsApp备份数据;其中,所述WhatsApp备份数据包括账户备份列表和备份文件列表;WhatsApp用户使用谷歌云端硬盘进行云备份,将聊天数据备份到用户对应的所述谷歌云端硬盘账号中,所述聊天数据包括文本聊天信息(即所述WhatsApp备份数据)和附件信息(即所述mcrypt1附件),其中所述附件信息包括视频、音频、图片、文档、表情包和贴纸等。
在一实施例中,所述步骤S101,包括:
通过谷歌云端硬盘服务器获取应用数据请求权限,利用所述应用数据请求权限返回的凭证令牌获取所述账户备份列表;根据所述账户备份列表向所述谷歌云端硬盘服务器发送应用备份数据的请求信息,接收返回的凭证令牌并获取所述备份文件列表。
在本实施例中,使用登录成功后的谷歌云端硬盘账号获取所述谷歌云端硬盘上的WhatsApp备份数据;先获取所述WhatsApp备份数据中的所述账户备份列表,向谷歌云端硬盘服务器发送请求信息来获取应用数据请求权限,对应的服务为“appsbackup”,再利用返回的凭证令牌去获取谷歌云端硬盘上的所述账号备份列表,为WhatsApp的账号(手机号);接下来结合获取到的所述账号备份列表,模拟WhatsApp向所述谷歌云端硬盘服务器发送获取应用备份数据的请求信息,对应的服务为“drive.appdata”,再利用返回的凭证令牌去获取所述谷歌云端硬盘上的所述备份文件列表,主要是各个WhatsApp账号的文件列表,包括文件名称、上传时间、文件大小、加密数据、元数据信息等。需要注意的是,返回的凭证令牌,对应的字段为authorization;当API接口需要有访问权限的控制时,可以使用接口认证的方式,即可以使用这个凭证构成BearerToken(token令牌)去调用接口。
在步骤S102中,通过登录成功后的所述谷歌云端硬盘账号模拟使用WhatsApp权限去申请下载凭证,再结合所述WhatsApp备份数据中的所述备份文件列表构建成下载链接去下载对应的mcrypt1附件;这里的所述mcrypt1附件即所述步骤S101中的所述附件信息,所述附件信息在以往通过所述谷歌云端硬盘进行云备份的时候,是没有任何加密措施的,直接将所述附件信息作为文件的方式上传到所述谷歌云端硬盘上,WhatsApp用户的文本聊天信息和附件信息在所述谷歌云端硬盘上不能得到安全的保障;所以WhatsApp为了让用户的附件聊天数据得到更好的安全保障,推出了端对端加密的功能,这个功能让用户的聊天附件信息经过mcrypt1格式的加密后再上传到所述谷歌云端硬盘上。
在一实施例中,所述步骤S102,包括:
向所述谷歌云端硬盘服务器发送下载所述WhatsApp备份数据的请求信息并接收返回的凭证令牌;解析所述备份文件列表并构建所述mcrypt1附件的下载链接,根据所述下载链接和所述凭证令牌下载得到所述mcrypt1附件。
在本实施例中,通过模拟WhatsApp向所述谷歌云端硬盘服务器发送下载所述WhatsApp备份数据的请求信息,对应的服务为“drive.file”,再接收返回的凭证令牌;将获取到的所述WhatsApp备份数据中的所述备份文件列表进行解析,构成所述mcrypt1附件的下载链接,再结合接收返回的凭证令牌向所述谷歌云端硬盘服务器发送下载所述mcrypt1附件的请求,下载得到所述谷歌云端硬盘上WhatsApp对应账号的所述mcrypt1附件。需要注意的是,所述步骤S102中的返回的凭证令牌与所述步骤S101中的返回的凭证令牌都是指凭证令牌Token,但是两个凭证令牌对应的访问权限是不同的,根据请求的服务决定不同的访问权限。
在步骤S103中,所述目标设备上的WhatsApp程序使用端对端功能备份数据后,会在所述目标设备上路径为“/data/data/com.whatsapp/files/”的地方生成一个文件,名为“encryption_backup.key”,对应的中文名为备份秘钥;所述备份秘钥包含加密数据库解密时所需要的秘钥,具体秘钥数据为所述备份秘钥的二进制数据的最后32个字节;需要注意的是,路径“/data/data/com.whatsapp/files/”是私有目录,正常情况下拒绝访问;可以通过管理员权限直接访问这个私有目录并将所述备份秘钥提取出来,或者使用降级备份的方法提取所述备份秘钥;当然,若还有其他可以提取所述备份秘钥的方式,同样可行。
在步骤S104中,根据所述备份秘钥计算得到第一加密秘钥,利用所述第一加密秘钥分别对所述WhatsApp备份数据中的加密数据和元数据信息进行解密,得到所述mcrypt1附件的属性信息;具体的,所述元数据信息解密后得到包含所述mcryp1附件的具体信息,如具体路径、名称、md5Hash值、文件大小和上传时间等;所述加密数据解密后得到所述mcryp1附件总的数据大小和附件个数。
在一实施例中,所述步骤S104,包括:
将所述备份秘钥与预定字符串进行一次SHA256算法运算,得到解密所述元数据信息的所述第一加密秘钥。
进一步的,对所述加密数据进行Base64解码,得到解码后的第一二进制数据;将所述第一加密秘钥和所述第一二进制数据进行AES CBC算法运算,得到所述mcrypt1附件的总属性信息,所述总属性信息包括所有所述mcrypt1附件的总数据大小和附件个数。
进一步的,对所述元数据信息进行Base64解码,得到解码后的第二二进制数据;将所述第一加密秘钥和所述第二二进制数据进行AES CBC算法运算,得到所述mcrypt1附件的单属性信息,所述单属性信息包括单个所述mcrypt1附件的属性信息。
在本实施例中,将提取到的所述备份秘钥与预定字符串“metadata encryption”进行一次HMAC(哈希消息认证码,下同)的SHA256算法运算,解密所述元数据信息的所述第一加密秘钥;具体的,安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法,能计算出一个数字消息所对应到的长度固定的字符串的算法;而SHA-2,名称来自于安全散列算法2(英语:Secure Hash Algorithm2)的缩写,一种密码散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布,属于SHA算法之一,是SHA-1的后继者;其下又可再分为六个不同的算法标准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256;本实施例中采用到的即为SHA-256(SHA256算法,下同)。
进一步的,在得到解密所述元数据信息的所述第一加密秘钥后,可以解密所述文件备份列表中的所述加密数据,具体标识为“encryptedData”;将所述加密数据进行Base64(Base64是一种基于64个可打印字符来表示二进制数据的方法)解码,解码后得到所述第一二进制数据;需要注意的是,二进制数据(本实施例中提到的第一、第二二进制数据均适用)的格式为前17个字节(第一个字节为IV值的大小,后16个字节为IV值,IV值的大小固定为16)为IV值加大小,17个字节往后的33个字节(第一个字节为校验值的大小,后32个字节为校验值,校验值的大小固定为32)为校验值加大小,再往后的字节为真正加密数据;将所述第一加密秘钥与解析得到的所述IV值和所述真正加密数据进行AES CBC算法(密码分组链接模式,下同)运算,得到所述mcrypt1附件的总属性信息,所述总属性信息包括所有所述mcrypt1附件的总数据大小和附件个数。
进一步的,解密所述文件备份列表中的所述元数据信息,具体标识为“metadata”;所述元数据信息的格式类型跟所述加密数据的格式类型(encryptedData)一样,对所述元数据信息进行Base64解码,得到解码后的第二二进制数据,利用解密所述加密数据的相同方法解析得到对应的IV值、校验值和真正加密数据,即所述第二二进制数据;将所述第一加密秘钥和所述第二二进制数据进行AES CBC算法运算,得到所述mcrypt1附件的单属性信息,所述单属性信息包括单个所述mcrypt1附件的属性信息,比如具体路径、名称、md5Hash值、文件大小和上传时间等。
在步骤S105中,根据所述备份秘钥计算得到第二加密秘钥和偏移值,利用所述第二加密秘钥和所述偏移值解密所述mcrypt1附件,得到解密后的所述mcrypt1附件;至此,用户即可直接查看浏览WhatsApp在所述谷歌云端硬盘上备份的所述mcrypt1附件的内容。
在一实施例中,所述步骤S105,包括:
将所述mcrypt1附件的文件名转换为第三二进制数据,并将所述备份秘钥与空数据进行一次SHA256算法运算,得到临时秘钥;将所述临时秘钥与所述空数据、整数1和所述第三二进制数据进行哈希消息认证码运算,得到所述第二加密秘钥;将所述临时秘钥与所述空数据、整数2和所述第三二进制数据进行哈希消息认证码运算,得到所述偏移值;基于AES GCM算法,通过所述第二加密秘钥和所述偏移值对所述mcrypt1附件进行解密,得到解密后的所述mcrypt1附件。
在本实施例中,所述mcrypt1附件的文件名由64个字符组成,这64个字符对应的是32位的二进制数据;首先将所述mcrypt1附件的文件名转为所述第三二进制数据,然后将所述备份秘钥与空数据进行一次哈希消息认证码的SHA256算法运算,得到所述临时秘钥,将所述临时秘钥与所述空数据、整数1、所述第三二进制数据进行哈希消息认证码运算,得到所述第二加密秘钥;将所述临时秘钥与所述空数据、整数2和所述第三二进制数据进行哈希消息认证码运算,得到所述偏移值;算出所述第二加密秘钥和所述偏移值后,基于AES GCM算法,通过所述第二加密秘钥和所述偏移值对所述mcrypt1附件进行解密,得到解密后的所述mcrypt1附件,至此,完成所述mcrypt1附件的解密流程。需要注意的是,所述空数据可以理解成一个临时变量,初始化时所述临时变量是空的数据,每经过一次运算所述临时变量将被赋值一次,具体的变量参数由实际情况决定。
结合图3所示,图3为本发明实施例提供的一种WhatsApp的mcrypt1附件解密装置的示意性框图,WhatsApp的mcrypt1附件解密装置300包括:
备份数据获取单元301,用于获取目标设备上的WhatsApp备份数据;其中,所述WhatsApp备份数据包括账户备份列表和备份文件列表;
加密数据获取单元302,用于根据所述备份文件列表构建对应所述WhatsApp备份数据的下载链接,利用所述下载链接下载对应的mcrypt1附件;
备份秘钥提取单元303,用于通过管理员权限或降级备份提取所述目标设备上保存的备份秘钥;
第一数据解密单元304,用于根据所述备份秘钥计算得到第一加密秘钥,利用所述第一加密秘钥分别对所述WhatsApp备份数据中的加密数据和元数据信息进行解密,得到所述mcrypt1附件的属性信息;
第二数据解密单元305,用于根据所述备份秘钥计算得到第二加密秘钥和偏移值,利用所述第二加密秘钥和所述偏移值解密所述mcrypt1附件,得到解密后的所述mcrypt1附件。
在本实施例中,所述备份数据获取单元301先获取目标设备上的WhatsApp备份数据;所述加密数据获取单元302根据所述备份文件列表构建对应所述WhatsApp备份数据的下载链接,利用所述下载链接下载对应的mcrypt1附件;所述备份秘钥提取单元303通过管理员权限或降级备份提取所述目标设备上保存的备份秘钥;所述第一数据解密单元304根据所述备份秘钥计算得到第一加密秘钥,利用所述第一加密秘钥分别对所述WhatsApp备份数据中的加密数据和元数据信息进行解密,得到所述mcrypt1附件的属性信息;所述第二数据解密单元305根据所述备份秘钥计算得到第二加密秘钥和偏移值,利用所述第二加密秘钥和所述偏移值解密所述mcrypt1附件,得到解密后的所述mcrypt1附件。
在一实施例中,所述备份数据获取单元301,包括:
第一获取单元,用于通过谷歌云端硬盘服务器获取应用数据请求权限,利用所述应用数据请求权限返回的凭证令牌获取所述账户备份列表;
第二获取单元,用于根据所述账户备份列表向所述谷歌云端硬盘服务器发送应用备份数据的请求信息,接收返回的凭证令牌并获取所述备份文件列表。
在一实施例中,所述加密数据获取单元302,包括:
第一发送单元,用于向所述谷歌云端硬盘服务器发送下载所述WhatsApp备份数据的请求信息并接收返回的凭证令牌;
第一下载单元,用于解析所述备份文件列表并构建所述mcrypt1附件的下载链接,根据所述下载链接和所述凭证令牌下载得到所述mcrypt1附件。
在一实施例中,所述第一数据解密单元304,包括:
第一计算单元,用于将所述备份秘钥与预定字符串进行一次SHA256算法运算,得到解密所述元数据信息的所述第一加密秘钥。
第一解码单元,用于对所述加密数据进行Base64解码,得到解码后的第一二进制数据;
第二计算单元,用于将所述第一加密秘钥和所述第一二进制数据进行AES CBC算法运算,得到所述mcrypt1附件的总属性信息,所述总属性信息包括所有所述mcrypt1附件的总数据大小和附件个数。
第二解码单元,用于对所述元数据信息进行Base64解码,得到解码后的第二二进制数据;
第三计算单元,用于将所述第一加密秘钥和所述第二二进制数据进行AES CBC算法运算,得到所述mcrypt1附件的单属性信息,所述单属性信息包括单个所述mcrypt1附件的属性信息。
在一实施例中,所述第二数据解密单元305,包括:
第四计算单元,用于将所述mcrypt1附件的文件名转换为第三二进制数据,并将所述备份秘钥与空数据进行一次SHA256算法运算,得到临时秘钥;
第五计算单元,用于将所述临时秘钥与所述空数据、整数1和所述第三二进制数据进行哈希消息认证码运算,得到所述第二加密秘钥;
第六计算单元,用于将所述临时秘钥与所述空数据、整数2和所述第三二进制数据进行哈希消息认证码运算,得到所述偏移值;
第七计算单元,用于通过所述第二加密秘钥和所述偏移值对所述mcrypt1附件基于AES GCM算法进行解密,得到解密后的所述mcrypt1附件。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本发明实施例还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机设备,可以包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然计算机设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
- 基于SM2算法的解密密钥分割及解密方法、装置和介质
- 一种脚本加密方法、脚本解密运行方法和相关装置
- 一种硬件解密方法、装置、系统及解密设备
- 一种信息共享方法、装置、相关设备及介质
- 一种智能语音交互方法及装置、相关设备及存储介质
- 一种WhatsApp的crypt15备份解密方法、装置及相关介质
- 安卓设备WhatsApp的crypt12备份解密方法、系统、装置和存储介质