首页> 中国专利> 一种WhatsApp的crypt15备份解密方法、装置及相关介质

一种WhatsApp的crypt15备份解密方法、装置及相关介质

摘要

本发明公开了一种WhatsApp的crypt15备份解密方法、装置及相关介质,该方法适用于终端设备,包括:获取所述终端设备上备份的crypt15加密数据库;对所述crypt15加密数据库进行解析,以提取所述crypt15加密数据库中的protobuf结构的iv值和加密数据;获取终端设备的备份私钥,并基于所述备份私钥提取临时私钥;基于所述iv值、加密数据和临时私钥,通过AESGCM算法解密得到WhatsApp的备份数据库。本发明通过分析终端设备中WhatsApp端对端加密备份数据的过程,整合所需要的算法,从而能够解密WhatsApp端对端加密的crypt15数据库,实现快速、有效地对crypt15数据库中的备份数据进行解密的目的,获取WhatsApp账号的聊天数据库进而使用户能够对聊天数据库中的数据进行直观地查看、编辑和传输等操作。

著录项

  • 公开/公告号CN115688139A

    专利类型发明专利

  • 公开/公告日2023-02-03

    原文格式PDF

  • 申请/专利权人 深圳软牛科技有限公司;

    申请/专利号CN202211379063.3

  • 发明设计人 姚艺铭;朱志强;

    申请日2022-11-04

  • 分类号G06F21/60;G06F21/62;

  • 代理机构深圳市精英专利事务所;

  • 代理人丁宇龙

  • 地址 518000 广东省深圳市宝安区新安街道海旺社区兴业路1100号金利通金融中心大厦2栋1301-1310

  • 入库时间 2023-06-19 18:30:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-03

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及计算机软件技术领域,特别涉及一种WhatsApp的crypt15备份解密方法、装置及相关介质。

背景技术

WhatsAppMessenger,简称WhatsApp,是一款用于智能手机的跨平台加密即时通信应用程序。该软件透过互联网进行语音通话及影像通话,并使用标准移动网络电话号码向其他用户发送短信、文档文件、PDF文件、图片、视频、音乐、联系人信息、用户位置及录音档等。并且随着用户使用WhatsApp的时间越来越长,终端设备上产生的聊天数据也随之增大,因此为了让用户能够方便的管理自身聊天数据,WhatsApp提供了备份聊天数据的功能,可以随时恢复备份数据。

虽然WhatsApp提供了备份聊天数据的功能,但是关键的聊天数据库是进行加密的,用户只能在使用WhatsApp还原功能时才能使用该备份进行还原,而正常情况下WhatsApp用户并不能够自行读取备份的内容。在WhatsApp推出端对端加密功能前,数据库的加密形式为crypt12或者crypt14,当前市面上已经有能提供解密读取这种加密类型的备份。但是在WhatsApp推出端对端加密功能后,数据库的加密形式已经更新为crypt15,因此如何快速有效的让用户能够解密并查看备份的聊天数据,是目前需要解决的问题。

发明内容

本发明实施例提供了一种WhatsApp的crypt15备份解密方法、装置、计算机设备及存储介质,旨在快速、有效地对crypt15数据库中的备份数据进行解密。

第一方面,本发明实施例提供了一种WhatsApp的crypt15备份解密方法,适用于终端设备,包括:

获取所述终端设备上备份的crypt15加密数据库;

对所述crypt15加密数据库进行解析,以提取所述crypt15加密数据库中的protobuf结构的iv值和加密数据;

获取终端设备的备份私钥,并基于所述备份私钥提取临时私钥;

基于所述iv值、加密数据和临时私钥,通过AESGCM算法解密得到WhatsApp的备份数据库。

第二方面,本发明实施例一种WhatsApp的crypt15备份解密装置,适用于终端设备,包括:

数据库获取单元,用于获取所述终端设备上备份的crypt15加密数据库;

数据库解析单元,用于对所述crypt15加密数据库进行解析,以提取所述crypt15加密数据库中的protobuf结构的iv值和加密数据;

私钥获取单元,用于获取终端设备的备份私钥,并基于所述备份私钥提取临时私钥;

备份解密单元,用于基于所述iv值、加密数据和临时私钥,通过AESGCM算法解密得到WhatsApp的备份数据库。

第三方面,本发明实施例一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的WhatsApp的crypt15备份解密方法。

第四方面,本发明实施例一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的WhatsApp的crypt15备份解密方法。

本发明实施例提供了一种WhatsApp的crypt15备份解密方法、装置、计算机设备及存储介质,该方法适用于终端设备,包括:获取所述终端设备上备份的crypt15加密数据库;对所述crypt15加密数据库进行解析,以提取所述crypt15加密数据库中的protobuf结构的iv值和加密数据;获取终端设备的备份私钥,并基于所述备份私钥提取临时私钥;基于所述iv值、加密数据和临时私钥,通过AESGCM算法解密得到WhatsApp的备份数据库。本发明实施例通过分析终端设备中WhatsApp端对端加密备份数据的过程,整合所需要的算法,从而能够解密WhatsApp端对端加密的crypt15数据库,实现快速、有效地对crypt15数据库中的备份数据进行解密的目的,获取WhatsApp账号的聊天数据库进而使用户能够对聊天数据库中的数据进行直观地查看、编辑和传输等操作。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种WhatsApp的crypt15备份解密方法的流程示意图;

图2为本发明实施例提供的一种WhatsApp的crypt15备份解密方法的子流程示意图;

图3为本发明实施例提供的一种WhatsApp的crypt15备份解密方法的另一子流程示意图;

图4为本发明实施例提供的一种WhatsApp的crypt15备份解密装置的示意性框图;

图5为本发明实施例提供的一种WhatsApp的crypt15备份解密装置的子示意性框图;

图6为本发明实施例提供的一种WhatsApp的crypt15备份解密装置的另一子示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

下面请参见图1,图1为本发明实施例提供的一种WhatsApp的crypt15备份解密方法的流程示意图,该方法适用于终端设备,具体包括:步骤S101~S104。

S101、获取所述终端设备上备份的crypt15加密数据库;

S102、对所述crypt15加密数据库进行解析,以提取所述crypt15加密数据库中的protobuf结构的iv值和加密数据;

S103、获取终端设备的备份私钥,并基于所述备份私钥提取临时私钥;

S104、基于所述iv值、加密数据和临时私钥,通过AESGCM算法解密得到WhatsApp的备份数据库。

本实施例中,首先进行解密前的准备工作,即提取终端设备(例如安卓设备)上备份的WhatsApp通过端对端加密生成的crypt15加密数据库。然后是解析名为msgstore.db.crypt15的加密数据库,目的是提取其中的protobuf结构中包含的iv值和其他用户信息剩余数据对应的加密数据。接着是提取终端设备设备上保存的encryption_backup.key,即所述备份私钥,目的是取得后续所需要的临时秘钥。最后通过上述步骤获取得到的iv值、加密数据和临时秘钥,通过AESGCM算法解密得到压缩后的聊天数据库,即所述备份数据库。可以理解的是,本实施例所述的终端设备可以是安卓设备,也可以是IOS设备等等。

本实施例提出的WhatsApp的crypt15备份解密方法的主要目的在于解决现有方案中存在的问题:用户通过WhatsApp还原数据时,不能直接查看加密的数据和不能自行解密,以及现有技术中的解密方案不能支持WhatsApp新推出的端对端功能所生成的加密数据库crypt15类型,导致用户解密和查看备份数据库的需求场景受限。本实施例通过分析终端设备中WhatsApp端对端加密备份数据的过程,整合所需要的算法,从而能够解密WhatsApp端对端加密的crypt15数据库,获取WhatsApp账号的聊天数据库,该聊天数据库具体可以包括文本数据和媒体数据路径、好友信息等,进而使用户能够对聊天数据库中的数据进行直观地查看、编辑和传输等操作。

采用本实施例所述的方法,可以使用第三方程序或者工具能够解密WhatsApp端对端加密的crypt15数据库,并能够直观的查看或者编辑WhatsApp聊天备份数据库,并且可以采用本实施例所述的方法,在不使用WhatsApp程序的前提下,解密WhatsAppcrypt15数据库。和现有技术相比,本实施例能够解密WhatsApp端对端加密的crypt15数据库,并直观、快速、高效地进行数据库查看、编辑、保存,解决现有方案的问题。另外,本实施例所述的crypt15数据库是指CryptDB,该数据库软件允许用户查询加密的SQL数据库,而且能在不解密储存信息的情况下返回结果。CryptDB的工作原理是:在对加密的数据执行SQL查询时,使用的是一个SQL能够‘理解’的加密方案来进行加密。CryptDB同样将加密密钥和用户的密码进行了捆绑,这样的话数据项只有使用相应的用户的密码登陆才可以进行解密。作为结果,就是数据库管理员也不能接触到加密的数据,即使服务器被攻破,攻击者也无法解密用户的数据,如果该用户没有登录的话。

在一实施例中,所述步骤S101包括:

在终端设备上的WhatsApp程序中选择备份数据;

对所述备份数据进行端对端加密;

将端对端加密的备份数据生成格式为crypt15的加密数据库。

本实施例中,首先在终端设备上的WhatsApp程序中选择端对端加密备份数据,端对端加密有两个方式,分别是通过用户自己设置密码的方式和WhatsApp生成一个64秘钥让用户自己保存的方式。在设置完端对端加密方式后,程序将通过端对端加密的方式备份当前的聊天数据。最后生成的加密数据库格式为crypt15,即文件名为msgstore.db.crypt15。

在具体实施例中,终端设备为安卓设备,且该安装设备的安卓版本为高于或等于安卓11的版本时,则该端对端加密数据库的路径为“sdcard/Android/media/com.WhatsApp/WhatsApp/Databases”。而如果该安卓设备上的安卓版本是低于安卓11时,那么msgstore.db.crypt15加密数据库的路径便为“sdcard/WhatsApp/Databases”。

S104:这两个路径都是在SD卡下的路径,我们可以直接访问到该路径,并将名为msgstore.db.crypt15的加密数据库提取出来,至此,完成第一步,提取安卓设备上备份的WhatsAppcrypt15加密数据库。

在一实施例中,如图2所示,所述步骤S102包括:步骤S201~S203。

S201、获取所述crypt15加密数据库的第一二进制数据;

S203、筛选所述第一二进制数据中的Varint32类型数据,并将所述Varint32类型数据作为头部数据,以及将所述第一二进制数据中的其余数据作为所述加密数据;

S204、对所述头部数据进行protobuf序列化,并protobuf序列化后的所述头部数据中选取iv值。

本实施例中,crypt15加密数据库的二进制数据解析后可以分为两个部分,分别是包含当前加密信息的头部数据和真正加密的数据(即所述加密数据)。其中,头部数据部分的长度是最前几个字节数据对应Varint32类型的值,该长度对应当前加密信息的头部数据,剩下的数据则是真正的加密数据。此外,头部数据部分是一个protobuf序列化后的二进制数据,其包含两层结构,其中有后续操作需要的iv值和hmac值组成的Bag,还有包含当前加密信息的Info,以及对应加密的WhatsApp版本号和对应WhatsApp账号的手机号码后两位数。

在一实施例中,所述步骤S103包括:

通过root权限或者降级备份的方法提取终端设备上保存的备份私钥。

在一实施例中,所述通过root权限或者降级备份的方法提取终端设备上保存的备份私钥,包括:

基于root权限获取终端设备在使用端对端功能备份数据后生成的目标文件;

获取所述目标文件的第二二进制数据,并在所述第二二进制数据中选取最后n个字节作为所述备份私钥。

在另一实施例中,所述通过root权限或者降级备份的方法提取终端设备上保存的备份私钥,还包括:

使用adb命令安装未覆盖当前应用数据的WhatsApp历史版本;

使用adb命令将WhatsApp历史版本的应用数据备份至本地;

在备份的所述应用数据中提取所述备份私钥。

本实施例中,当终端设备上的WhatsApp程序使用端对端功能备份数据后,会在终端设备上路径为“/data/data/com.WhatsApp/files/”的地方生成一个文件,即所述目标文件,名为encryption_backup.key;该目标文件包含了上述msgstore.db.crypt15加密数据库解密时所需要的秘钥,具体秘钥数据为该目标文件二进制数据的最后32个字节。

由于上述路径是终端设备程序的私有目录,正常情况下不能访问,但是若是由root过的终端设备,则可以直接访问该私有目录,并将encryption_backup.key提取出来。或者使用降级备份提取所述备份私钥。即首先使用adb命令安装定制的旧版本WhatsApp,但不覆盖原有的应用数据,接着使用adb命令备份WhatsApp的应用数据到本地,然后便可以从备份的应用数据中提取到备份私钥encryption_backup.key。

在一实施例中,如图3所示,所述步骤S103包括:步骤S301~S305。

S301、将所述临时私钥与同样字节大小的空字符串进行HMAC计算,得到第一临时hash值;

S302、将所述第一临时hash值与同样字节大小的空字符串进行HMAC计算,得到第二临时hash值;

S303、将所述第二临时hash值与备份加密字符串进行HMAC计算,得到第三临时hash值;

S304、将所述第三临时hash值与二进制数据为1的字符串记性HMAC计算,得到目标私钥;

S305、将所述目标私钥作为key,结合所述iv值,利用AESGCM算法将所述加密数据解密为包含备份数据的SQL数据库。

本实施例中,通过上述准备步骤后,可以获取得到iv值、加密数据和临时私钥,其中,所述iv值和加密数据通过解析msgstore.db.crypt15的加密数据库得到,32字节大小的所述临时私钥通过解析encryption_backup.key文件得到。

利用得到的iv值、加密数据和临时私钥进行解密私钥步骤。首先,将所述临时秘钥与一个32字节大小的空字符串进行一次sha256的HMAC计算,此时得到一个临时的hash值(即所述第一临时hash值),再将该第一临时hash值继续与一个32字节大小的空字符串进行一次sha256的HMAC计算,得到所述第二临时hash值,接着将该第二临时hash值与字符串"backupencryption"(备份加密)进行HMAC计算,此时得到所述第三临时hash值,最后将该第三临时hash值与二进制数据为1的字符串进行一次HMAC计算,得到最终所需要的解密秘钥值。随后通过AESGCM(AdvancedEncryptionStandard,高级加密标准,一种区块加密标准;GCM表示伽罗瓦/计数器模式,是对称密钥密码块密码的一种操作模式)算法解密,key为前述的解密秘钥,iv值为上述的解析数据库拿到的iv值。解密后得到一个zlib压缩的文件数据,再将其进行解压后,得到解密后的SQL数据库,该SQL数据库内包含了WhatsApp备份的聊天数据。

图4为本发明实施例提供的一种WhatsApp的crypt15备份解密装置400的示意性框图,该装置400适用于终端设备,包括:

数据库获取单元401,用于获取所述终端设备上备份的crypt15加密数据库;

数据库解析单元402,用于对所述crypt15加密数据库进行解析,以提取所述crypt15加密数据库中的protobuf结构的iv值和加密数据;

私钥获取单元403,用于获取终端设备的备份私钥,并基于所述备份私钥提取临时私钥;

备份解密单元404,用于基于所述iv值、加密数据和临时私钥,通过AESGCM算法解密得到WhatsApp的备份数据库。

在一实施例中,所述数据库获取单元401包括:

数据选择单元,用于在终端设备上的WhatsApp程序中选择备份数据;

端对端加密单元,用于对所述备份数据进行端对端加密;

格式生成单元,用于将端对端加密的备份数据生成格式为crypt15的加密数据库。

在一实施例中,如图5所示,所述数据库解析单元402包括:

第一获取单元501,用于获取所述crypt15加密数据库的第一二进制数据;

数据筛选单元502,用于筛选所述第一二进制数据中的Varint32类型数据,并将所述Varint32类型数据作为头部数据,以及将所述第一二进制数据中的其余数据作为所述加密数据;

序列化单元503,用于对所述头部数据进行protobuf序列化,并protobuf序列化后的所述头部数据中选取iv值。

在一实施例中,所述私钥获取单元403包括:

备份提取单元,用于通过root权限或者降级备份的方法提取终端设备上保存的备份私钥。

在一实施例中,所述备份提取单元包括:

文件获取单元,用于基于root权限获取终端设备在使用端对端功能备份数据后生成的目标文件;

第二获取单元,用于获取所述目标文件的第二二进制数据,并在所述第二二进制数据中选取最后n个字节作为所述备份私钥。

在一实施例中,所述备份提取单元还包括:

软件安装单元,用于使用adb命令安装未覆盖当前应用数据的WhatsApp历史版本;

应用备份单元,用于使用adb命令将WhatsApp历史版本的应用数据备份至本地;

私钥提取单元,用于在备份的所述应用数据中提取所述备份私钥。

在一实施例中,如图6所示,所述备份解密单元404包括:

第一哈希单元601,用于将所述临时私钥与同样字节大小的空字符串进行HMAC计算,得到第一临时hash值;

第二哈希单元602,用于将所述第一临时hash值与同样字节大小的空字符串进行HMAC计算,得到第二临时hash值;

第三哈希单元603,用于将所述第二临时hash值与备份加密字符串进行HMAC计算,得到第三临时hash值;

第四哈希单元604,用于将所述第三临时hash值与二进制数据为1的字符串记性HMAC计算,得到目标私钥;

数据解密单元605,用于将所述目标私钥作为key,结合所述iv值,利用AESGCM算法将所述加密数据解密为包含备份数据的SQL数据库。

由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本发明实施例还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供了一种计算机设备,可以包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然计算机设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号