CN111405550A - 一种WhatsApp的key文件提取方法及设备 - Google Patents
一种WhatsApp的key文件提取方法及设备 Download PDFInfo
- Publication number
- CN111405550A CN111405550A CN202010208090.9A CN202010208090A CN111405550A CN 111405550 A CN111405550 A CN 111405550A CN 202010208090 A CN202010208090 A CN 202010208090A CN 111405550 A CN111405550 A CN 111405550A
- Authority
- CN
- China
- Prior art keywords
- client
- data
- server
- request
- 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.)
- Granted
Links
- 238000000605 extraction Methods 0.000 title claims description 12
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000004088 simulation Methods 0.000 claims abstract description 10
- 150000003839 salts Chemical class 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 abstract description 11
- 238000013508 migration Methods 0.000 abstract description 9
- 230000005012 migration Effects 0.000 abstract description 9
- 238000013075 data extraction Methods 0.000 abstract description 7
- 239000000284 extract Substances 0.000 abstract description 2
- 238000012795 verification Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0838—Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明所提供的一种WhatsApp的key文件提取方法及设备,包括:模拟客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求;若客户端接收到WhatsApp服务器未认证该客户端的返回数据,则发送请求认证码指令至WhatsApp服务器;利用接收到WhatsApp服务器返回的认证码,将认证码和客户端信息作为请求参数,发送至WhatsApp服务器进行认证;客户端接收到WhatsApp服务器返回的认证成功指令,根据预设协议获取与客户端对应的key文件。本发明采用发送请求认证码的方式,提取key文件,进而方便完成数据提取、数据恢复和数据迁移,节约了所用时间。
Description
技术领域
本发明涉及数字取证技术领域,尤其涉及的是一种WhatsApp的key文件提取方法及设备。
背景技术
WhatsApp目前是全球用户数最多的应用app,尤其是在国外,它有着广泛的用户群体,WhatsApp非常注重隐私安全,它使用了端到端加密安全协议技术进行通信,黑客、取证机关很难通过窃听来截取解密数据。目前获取WhatsApp数据的方式基本是从设备app备份中或者云备份中获取。
iOS设备上WhatsApp的数据可以通过已经信任设备,进行调用iOS备份协议的手段将指定WhatsApp数据备份出来,此备份数据库未加密,可以直接解析出来数据,iOS上获取数据已经有了成熟的方案,而Android上WhatsApp提取解析数据更加复杂。
Android的WhatsApp有自动备份功能,可以备份数据到手机SD卡中,也可以备份到Google Drive上,但数据都是通过key文件加密的,key存放在Android系统不可访问位置,除非root Android设备之后才能获取到对应key文件来进行解密,对于取证和用户来说都是不容易的。由于WhatsApp数据文件进行了加密,导致用户无法方便的完成数据提取。
因此,现有技术存在缺陷,有待改进与发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种WhatsApp的key文件提取方法及客户端,旨在解决现有的WhatsApp备份数据文件进行了加密,导致用户无法方便的完成数据提取的问题。
本发明解决技术问题所采用的技术方案如下:
一种WhatsApp的key文件提取方法,其中,包括:
模拟客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求;
若客户端接收到WhatsApp服务器未认证该客户端的返回数据,则发送请求认证码指令至WhatsApp服务器;
利用接收到的WhatsApp服务器返回的认证码,将所述认证码和客户端信息作为请求参数,发送至WhatsApp服务器进行认证;
客户端接收到WhatsApp服务器返回的认证成功指令,根据预设协议获取与所述客户端对应的key文件。
所述模拟客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求的步骤具体包括:
客户端接收用户输入的手机国家区号和手机号码,并构造请求数据,其中,构造的请求头包括WhatsApp版本号、客户端系统版本和客户端设备型号,所述请求数据包括客户端id、国家区号和手机号码;
根据所述请求数据向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求,其中,所述查询请求为HTTPS的GET请求。
所述客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求的步骤之后包括:
若客户端接收到WhatsApp服务器已认证该客户端的返回数据,则直接根据预设协议获取与所述客户端对应的key文件。
所述若客户端接收到WhatsApp服务器未认证该客户端的返回数据,则发送请求认证码指令至WhatsApp服务器,具体包括:
当所述查询请求发送成功时,客户端接收到json格式的返回数据,并解析该返回数据;
若该返回数据中的信息为未认证,则接收用户选择认证方式的操作,客户端发送请求短信认证码指令或请求语音认证码指令至WhatsApp服务器;
若发送成功,则客户端接收到发送成功的返回数据,并显示下次再次获取认证码的等待时间;
所述等待时间进行倒计时,若等待超时,则倒计时结束,并等待用户再次发送请求短信认证码操作或请求语音认证码操作。
所述利用接收到WhatsApp服务器返回的认证码,将所述认证码和客户端信息作为请求参数,发送至WhatsApp服务器进行认证,具体包括:
所述客户端接收到WhatsApp服务器返回的短信认证码或语音认证码后,将国家区号、手机号码、客户端id、以及获取的认证码作为注册客户端的请求参数;
将所述请求参数发送至WhatsApp服务器,对客户端进行认证。
所述根据预设协议获取与所述客户端对应的key文件的步骤具体包括:
初始化协议框架,设置协议类型,以及初始化握手设置本地私钥key和远程公钥key;
连接WhatsApp服务器端口,域名为e1~e16.whatsapp.net中的任何一个节点,连接成功后,进行开始握手;
构造第一protobuf数据,所述第一protobuf数据包括国家区号、手机号,WhatsApp客户端版本号、系统版本、设备型号、客户端id和Guid值;
将第一protobuf数据通过第一协议加密后转为第一加密数据,并发送所述第一加密数据至WhatsApp服务器。
所述将第一protobuf数据通过第一协议加密后转为第一加密数据,并发送所述第一加密数据至WhatsApp服务器的步骤之后还包括:
所述客户端接收到WhatsApp服务器发送的与第一加密数据相对应的第一数据后,更换为第二协议,重新开始握手,并解密接收到的第一数据,其中第一数据解密后为ChatStatic Public Key;
通过第二协议对所述第一protobuf数据进行加密,将所述第一protobuf数据转为第二加密数据,并将第二加密数据发送至WhatsApp服务器;
当客户端接收到WhatsApp服务器发送的与第二加密数据相对应的第二数据后,构造第二protobuf数据,所述第二protobuf数据包括国家区号、手机号、账号盐值的sha256的Hash值及服务器盐值;
通过第二协议对第二protobuf数据加密后转为第三加密数据发送至WhatsApp服务器,客户端接收到WhatsApp服务器发送的与所述第三加密数据对应的第三数据后,对第三数据进行解密,得到32个字节的key值;
根据所述key值生成对应账号的key文件,所述key文件包括固定文件头、key版本、服务器盐值、账号盐值、账号盐值对应Hash值、IV值、以及key值。
所述根据预设协议获取与所述客户端对应的key文件的步骤之后还包括:
根据所述key值直接对SD卡中的WhatsApp加密数据文件进行解密解压,得到解密后的原始数据库。
本发明还提供一种设备,其中,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的WhatsApp的key文件提取程序,所述WhatsApp的key文件提取程序被所述处理器执行时实现如上所述的WhatsApp的key文件提取方法的步骤。
本发明还提供一种存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序能够被执行以用于实现如上所述的WhatsApp的key文件提取方法。
本发明所提供的一种WhatsApp的key文件提取方法及设备,包括:模拟客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求;若客户端接收到WhatsApp服务器未认证该客户端的返回数据,则发送请求认证码指令至WhatsApp服务器;利用接收到的WhatsApp服务器返回的认证码,将所述认证码和客户端信息作为请求参数,发送至WhatsApp服务器进行认证;客户端接收到WhatsApp服务器返回的认证成功指令,根据预设协议获取与所述客户端对应的key文件。本发明采用发送请求认证码的方式,提取出key文件,无需root,稳定安全,能够直接稳定快速获取key文件,进而使用户通过key文件来加密或解密对应的WhatsApp数据库文件,来完成后续的数据提取、数据恢复或数据迁移。
附图说明
图1是本发明中WhatsApp的key文件提取方法的流程图。
图2是本发明中WhatsApp的key文件提取方法具体实施例的流程图。
图3是本发明中设备的较佳实施例的功能原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
Android的WhatsApp有自动备份功能,可以备份数据到手机SD卡中,也可以备份到Google Drive上,但数据都是通过key文件加密的,key是存放在Android系统不可访问位置,除非root Android设备之后才能获取到对应key文件来进行解密,对于取证和用户来说都是不容易的。同时,WhatsApp服务商并没有提供iOS和Android两者之间数据传输的功能,因为数据文件的加密,导致很大的用户群体产生对应数据恢复的需求和WhatsApp数据迁移的需求。
目前市面上已知的方案有两种。第一、通过root Android设备,这种方式是通过Android漏洞来提权获取root权限,或者通过刷recovery的方式来进行root,root之后的Android设备拥有完整的访问权限,可以读取存储在系统目录下的key文件。第二、通过降级WhatsApp的方式获取key。此方案需要连接设备,保留用户数据,卸载WhatsApp,需要重启设备,安装低版本的WhatsApp,依靠低版本WhatsApp可以通过设备全备份的方式备份出WhatsApp的key文件,此方案需要连接两次Android设备,并等待重启,步骤复杂,容易出错。
具体来说,由于最新Android设备的安全性,保存解密密钥的key文件是无法直接访问的,而且Android系统本身的沙盒机制,所以除了官方签名WhatsApp,没有任何一个Android app和软件能够读取的key文件。
以下两种方式均具有一定的缺陷。
第一、通过root的手段,获取设备root权限,读取key文件,由于Android生态环境复杂,在Android系统基础上衍生出很多操作系统,不同的Android版本和机型有着不同的root方案。目前来看,Android root难度越来越大,而且root方案并不完善,从2016年之后Android系统会对整个磁盘加密,导致最新系统获取root权限时,目前比较稳定的root方法是通过刷recovery来提升权限,必须要清除用户数据,这样导致key文件也会被清除。因此,1、通过Android的漏洞来提权,难度和局限性大;2、通过刷recovery来root,key文件也会被清除;3、Android生态复杂,恶意软件较iOS更多,root之后系统稳定性和安全性受到威胁;4、对于取证机关,root时对设备会造成修改,影响取证准确性。
二、通过降级WhatsApp的方式获取key。此种方式会导致以下缺陷:1、两次连接,Android本身连接电脑需要打开开发者调试模式,并开启MTP传输模式,操作不便;2、需要花时间等待设备重启,重启之后需要重新引导连接;3、需要通过Android全局加密备份到本地电脑,再进行解密WhatsApp目录中的key文件,时间长。这种方案比root方案更容易实现,但流程复杂,花费时间多,操作不便,容易出错,对于普通用户来说操作上困难。
综上,由于Android上的WhatsApp备份直接加密的,而解密key又无法直接获取,在这种情况下,目前并没有一种稳定,方便,快捷的方案来获取key文件的方案。
因此,本发明提供了一种新方案,通过获取认证码的方式直接认证获取key,不需要root设备,直接通过获取认证码认证后,计算出key数据,速度快,稳定,简单,大大缩减了用户进行的数据提取、数据恢复和数据迁移的操作流程,减少了时间。
同时,还提出一种iOS到Android数据迁移的新方案,通过获取的KEY文件,将iOS中的数据库文件转换加密为对应手机号的Android加密备份数据,存放到对应SD卡位置,WhatsApp登录对应账号时会直接导入数据,能够快速方便解决WhatsApp的iOS设备到Android数据迁移的问题。
请参见图1,图1是本发明中一种WhatsApp的key文件提取方法的流程图。如图1所示,本发明实施例所述的WhatsApp的key文件提取方法包括以下步骤:
S100、模拟客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求。
在一种实现方式中,所述步骤S100具体包括:
S110、客户端接收用户输入的手机国家区号和手机号码,并构造请求数据,其中,构造的请求头包括WhatsApp版本号、客户端系统版本和客户端型号,所述请求数据包括客户端id、国家区号和手机号码;
S120、根据所述请求数据向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求,其中,所述查询请求为HTTPS的GET请求。
也就是说,首先我们需要构造请求数据,引导用户输入WhatsApp账号对应的手机国家区号和手机号码,向WhatsApp服务器查询判断是否已经认证该客户端,模拟客户端数据,构造的请求头包含WhatsApp版本号,移动设备系统版本和设备型号,构造的请求数据包含生成的客户端id,国家区号和手机号码等关键数据。构造完成请求数据后,该请求数据将参与向v.whatsapp.net域名发送查询请求,并且查询请求的发送方式为HTTPS的GET请求方式。
进一步地,所述步骤S100之后包括:
S200a、若客户端接收到WhatsApp服务器已认证该客户端的返回数据,则直接根据预设协议获取与所述客户端对应的key文件。
所述步骤S100之后还包括:
S200b、若客户端接收到WhatsApp服务器未认证该客户端的返回数据,则发送请求认证码指令至WhatsApp服务器。
在一种实现方式中,所述步骤S200b具体包括:
S210b、当所述查询请求发送成功时,客户端接收到json格式的返回数据,并解析该返回数据;
S220b、若该返回数据中的信息为未认证,则接收用户选择认证方式的操作,客户端发送请求短信认证码指令或请求语音认证码指令至WhatsApp服务器;
S230b、若发送成功,则客户端接收到发送成功的返回数据,并显示下次再次获取认证码的等待时间;
S240b、所述等待时间进行倒计时,若等待超时,则倒计时结束,并等待用户再次发送请求短信认证码操作或请求语音认证码操作。
具体的,查询请求发送成功之后,会接收到来自WhatsApp服务器返回数据,该数据为一种json格式的数据。然后,客户端解析json数据的结构,常见数据类型如下,login代表用户手机号,status代表是否成功,type代表认证后的状态,reason代表认证失败原因,sms_wait代表距离下次再次获取短信认证码的等待时间,以秒为单位,voice_wait类似sms_wait,代表距离下次再次获取来电语音认证码的等待时间,sms_length代表认证码长度,voice_length代表语音认证码长度,一般收到的都是6位认证码。
本发明通过解析json数据的结构可以判断出模拟的客户端是否已经认证。如果返回数据status数据为“ok”,同时type为“existing”则表示已经认证,已经认证的模拟客户端则直接进行后续的查询key步骤;如果返回数据status数据为“fail”,同时,reason=为“incorrect”,则需要请求验证码进行验证,用于信任模拟客户端。
用户需要选择认证方式,即短信或者语音两种认证方式,客户端对应软件发送模拟客户端请求短信或者语音认证码,如果返回数据status等于sent并且method等于sms或者voice,表示发送成功,同时数据还包含显示下次再次获取认证码的等待时间,单位为秒。例如sms_wait=25205秒之后,倒计时才能再次请求,请求之后,需要提示用户等待指定时间再次申请。
发送请求认证码指令成功之后,程序开始显示下次再次获取认证码的倒计时,用户开始等待接收认证码或者来电语音认证码,如果等待超时,倒计时结束,则进行再次请求认证码。
所述步骤S200b之后为步骤S300b。
S300b、利用接收到的WhatsApp服务器返回的认证码,将所述认证码和客户端信息作为请求参数,发送至WhatsApp服务器进行认证。
在一种实现方式中,所述步骤S300b具体包括:
S310b、所述客户端接收到WhatsApp服务器返回的短信认证码或语音认证码后,将国家区号、手机号码、客户端id、以及获取的认证码作为注册客户端的请求参数;
S320b、将所述请求参数发送至WhatsApp服务器,对客户端进行认证。
具体的,用户在收到短信验证码或语音验证码之后,通过国家区号、手机号码、客户端id、以及获取的6位验证码作为注册客户端的请求参数,请求认证模拟客户端,如请求成功,则返回内容和上述检测已经认证的返回内容一致,判断条件依然是status等于ok以及type等于existing,如果请求认证失败,验证码输入错误的情况则返回status等于fail,同时reason等于missing,此时需要重新输入正确的验证码或者再次获取新的验证码,重新认证。
所述步骤S300b之后为步骤S400b。
S400b、客户端接收到WhatsApp服务器返回的认证成功指令,根据预设协议获取与所述客户端对应的key文件。
在一种实现方式中,所述步骤S400b和S200a中的“根据预设协议获取与所述客户端对应的key文件”具体包括如下步骤:
S10、初始化协议框架,设置协议类型,以及初始化握手设置本地私钥key和远程公钥key;
S20、连接WhatsApp服务器端口,域名为e1~e16.whatsapp.net中的任何一个节点,连接成功后,开始握手;
S30、构造第一protobuf数据,所述第一protobuf数据包括国家区号、手机号,WhatsApp客户端版本号、系统版本、设备型号、客户端id和Guid值;
S40、将第一protobuf数据通过第一协议加密后转为第一加密数据,并发送所述第一加密数据至WhatsApp服务器。
S50、所述客户端接收到WhatsApp服务器发送的与第一加密数据相对应的第一数据后,更换为第二协议,重新开始握手,并解密接收到的第一数据,其中第一数据解密后为Chat Static Public Key;
S60、通过第二协议对所述第一protobuf数据进行加密,将所述第一protobuf数据转为第二加密数据,并将第二加密数据发送至WhatsApp服务器;
S70、当客户端接收到WhatsApp服务器发送的与第二加密数据相对应的第二数据后,构造第二protobuf数据,所述第二protobuf数据包括国家区号、手机号、账号盐值的sha256的Hash值及服务器盐值;
S80、通过第二协议对第二protobuf数据加密后转为第三加密数据发送至WhatsApp服务器,客户端接收到WhatsApp服务器发送的与所述第三加密数据对应的第三数据后,对第三数据进行解密,得到32个字节的key值;
S90、根据所述key值生成对应账号的key文件,所述key文件包括固定文件头、key版本,服务器盐值、账号盐值、账号盐值对应Hash值、IV值、以及key值。
也就是说,在模拟客户端认证之后,就可以通过和安全协议来访问查询对应key,初始化协议框架,设置协议类型,初始化握手设置本地私钥key和远程公钥key,连接WhatsApp服务器端口5222,相关域名可以是e1~e16.whatsapp.net的任何一个节点,连接成功后开始握手。构造要发送的protobuf数据,该数据包含国家区号、手机号、WhatsApp客户端版本号、系统版本、设备型号、客户端id、Guid等值,将protobuf数据通过协议加密之后转为加密数据,发送加密数据,接收数据,更换协议,重新开始握手,解密获取数据,数据解密后为Chat Static Public Key,重新再次用新协议加密之前构造protobuf的数据,再次发送加密数据,等待接收返回数据。
whatsapp服务器通讯是通过点对点的加密来通信的,最开始确定下的协议不会一直使用,whatsapp服务器收到客户端发送的数据之后,会告知客户端下次要更改协议,使用新协议来继续通信。如果客户端还是使用旧的协议,whatsapp服务器则会拒绝。本发明遵循的是Noise Protocol Framework,首先使用的协议是IK,在进行与whatsapp服务器的通讯时,会受到新的协议方式,协议方式并不固定,收到新协议后,客户端会修改为新协议。
接收到数据之后就完成了两次握手,此后我们进行查询计算key值。构造protbuf数据,该数据由国家区号、手机号、账号盐值的sha256的Hash值、服务器盐值构成,将会参与服务器查询计算key。通过新协议加密protobuf数据后发送,接收数据之后,进行用协议解密,解密后数据中包含32个字节的key值,该key用来加密和解密对应WhatsApp数据库。此时已经完成key的获取。
下面举一具体实施例进行说明,请参阅图2,具体步骤如下:
A10、构造客户端的请求数据;
A20、发送是否认证的查询请求;
A30、接收服务器返回的json数据;
A40、解析json数据;
A50、判断客户端是否已认证;若是,则执行步骤A90;若否,则执行A60;
A60、客户端请求短信或电话认证;
A70、接收短信验证码或语音验证码;
A80、通过验证码认证该客户端;
A90、WhatsApp服务器交互查询对应密钥key;
A100、组合生成密钥key文件。
获取到key数据后,就可以生成对应账号的key文件,该文件由固定文件头、key版本、服务器盐值、账号盐值、账号盐值对应Hash值、IV值、以及获取的32个字节的key值组成key文件,该文件可以用于对应账号的WhatsApp数据库加密解密。
在一种实现方式中,所述步骤S400b和S200a中的“根据预设协议获取与所述客户端对应的key文件”之后还包括:
S500:根据所述key值来加密或解密对应的WhatsApp数据库文件。
所述步骤S500具体包括:
S510、将iOS WhatsApp数据库通过key文件,利用预设的加密压缩方式生成加密文件,存储至SD卡;
S520、根据所述key值直接对SD卡中的加密文件进行解密解压,得到解密后的原始数据库。
也就是说,第一、通过此key值,直接对SD卡中的WhatsApp数据进行解密解压,将得到解密后的原始数据库,此数据库可以用于WhatsApp数据恢复,而目前数据恢复行业内的方案是通过root来获取key来解密数据库,通过解密后的数据库分析来还原数据。
另外,通过解密后的数据库也可以直接构造为iOS备份文件,将iOS备份文件还原到iOS端,提供解决WhatsApp从Android端到iOS数据迁移的方案。
第二、通过此key值,对iOS端的WhatsApp数据库进行压缩加密,转换为AndroidWhatsApp识别的加密文件,将加密文件放置到Android设备SD卡的WhatsApp文件夹,WhatsApp在登录对应号码时,会自动导入数据,来完成iOS到Android的WhatsApp数据迁移。
因此,本发明通过短信或电话的验证码认证方式,认证模拟客户端,并通过直接交互WhatsApp服务器,通过预设协议获取与客户端对应的key文件,通过获取的key文件解密WhatsApp备份文件实现数据提取、恢复的功能,通过key文件来加密iOS中WhatsApp的数据为Android加密文件,实现数据迁移到Android的功能。
如图3所示,本发明还提供了一种设备,其中,包括存储器20、处理器10及存储在所述存储器20上并可在所述处理器10上运行的WhatsApp的key文件提取程序,所述WhatsApp的key文件提取程序被所述处理器执行时实现如上所述的WhatsApp的key文件提取方法的步骤;具体如上所述。
本发明还一种存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序能够被执行以用于实现如上所述的WhatsApp的key文件提取方法;具体如上所述。
综上所述,本发明公开的一种WhatsApp的key文件提取方法及设备,包括:模拟客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求;若客户端接收到WhatsApp服务器未认证该客户端的返回数据,则发送请求认证码指令至WhatsApp服务器;利用接收到的WhatsApp服务器返回的认证码,将所述认证码和客户端信息作为请求参数,发送至WhatsApp服务器进行认证;客户端接收到WhatsApp服务器返回的认证成功指令,根据预设协议获取与所述客户端对应的key文件。本发明采用发送请求认证码的方式,提取出key文件,无需root,稳定安全,无需Android设备,兼容性强无限制,也能够直接稳定快速获取key文件,并用于Android的WhatsApp数据恢复,以及iOS到Android的WhatsApp数据迁移,进而使用户方便的完成数据提取、数据恢复和数据迁移,并且节约了所用时间。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种WhatsApp的key文件提取方法,其特征在于,包括:
模拟客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求;
若客户端接收到WhatsApp服务器未认证该客户端的返回数据,则发送请求认证码指令至WhatsApp服务器;
利用接收到的WhatsApp服务器返回的认证码,将所述认证码和客户端信息作为请求参数,发送至WhatsApp服务器进行认证;
客户端接收到WhatsApp服务器返回的认证成功指令,根据预设协议获取与所述客户端对应的key文件。
2.根据权利要求1所述的WhatsApp的key文件提取方法,其特征在于,所述模拟客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求的步骤具体包括:
客户端接收用户输入的手机国家区号和手机号码,并构造请求数据,其中,构造的请求头包括WhatsApp版本号、客户端系统版本和客户端设备型号,所述请求数据包括客户端id、国家区号和手机号码;
根据所述请求数据向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求,其中,所述查询请求为HTTPS的GET请求。
3.根据权利要求1所述的WhatsApp的key文件提取方法,其特征在于,所述客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求的步骤之后包括:
若客户端接收到WhatsApp服务器已认证该客户端的返回数据,则直接根据预设协议获取与所述客户端对应的key文件。
4.根据权利要求1所述的WhatsApp的key文件提取方法,其特征在于,所述若客户端接收到WhatsApp服务器未认证该客户端的返回数据,则发送请求认证码指令至WhatsApp服务器,具体包括:
当所述查询请求发送成功时,客户端接收到json格式的返回数据,并解析该返回数据;
若该返回数据中的信息为未认证,则接收用户选择认证方式的操作,客户端发送请求短信认证码指令或请求语音认证码指令至WhatsApp服务器;
若发送成功,则客户端接收到发送成功的返回数据,并显示下次再次获取认证码的等待时间;
所述等待时间进行倒计时,若等待超时,则倒计时结束,并等待用户再次发送请求短信认证码操作或请求语音认证码指操作。
5.根据权利要求4所述的WhatsApp的key文件提取方法,其特征在于,所述利用接收到WhatsApp服务器返回的认证码,将所述认证码和客户端信息作为请求参数,发送至WhatsApp服务器进行认证,具体包括:
所述客户端接收到WhatsApp服务器返回的短信认证码或语音认证码后,将国家区号、手机号码、客户端id、以及获取的认证码作为注册客户端的请求参数;
将所述请求参数发送至WhatsApp服务器,对客户端进行认证。
6.根据权利要求1或3所述的WhatsApp的key文件提取方法,其特征在于,所述根据预设协议获取与所述客户端对应的key文件的步骤具体包括:
初始化协议框架,设置协议类型,以及初始化握手设置本地私钥key和远程公钥key;
连接WhatsApp服务器端口,域名为e1~e16.whatsapp.net中的任何一个节点,连接成功后,进行开始握手;
构造第一protobuf数据,所述第一protobuf数据包括国家区号、手机号,WhatsApp客户端版本号、系统版本、设备型号、客户端id和Guid值;
将第一protobuf数据通过第一协议加密后转为第一加密数据,并发送所述第一加密数据至WhatsApp服务器。
7.根据权利要求6所述的WhatsApp的key文件提取方法,其特征在于,所述将第一protobuf数据通过第一协议加密后转为第一加密数据,并发送所述第一加密数据至WhatsApp服务器的步骤之后还包括:
所述客户端接收到WhatsApp服务器发送的与第一加密数据相对应的第一数据后,更换为第二协议,重新开始握手,并解密接收到的第一数据,其中第一数据解密后为ChatStatic Public Key;
通过第二协议对所述第一protobuf数据进行加密,将所述第一protobuf数据转为第二加密数据,并将第二加密数据发送至WhatsApp服务器;
当客户端接收到WhatsApp服务器发送的与第二加密数据相对应的第二数据后,构造第二protobuf数据,所述第二protobuf数据包括国家区号、手机号、账号盐值的sha256的Hash值及服务器盐值;
通过第二协议对第二protobuf数据加密后转为第三加密数据发送至WhatsApp服务器,客户端接收到WhatsApp服务器发送的与所述第三加密数据对应的第三数据后,对第三数据进行解密,得到32个字节的key值;
根据所述key值生成对应账号的key文件,所述key文件包括固定文件头、key版本、服务器盐值、账号盐值、账号盐值对应Hash值、IV值、以及key值。
8.根据权利要求7所述的WhatsApp的key文件提取方法,其特征在于,所述根据预设协议获取与所述客户端对应的key文件的步骤之后还包括:
根据所述key值来加密或解密对应的WhatsApp数据库文件。
9.一种设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的WhatsApp的key文件提取程序,所述WhatsApp的key文件提取程序被所述处理器执行时实现如权利要求1-8任一项所述的WhatsApp的key文件提取方法的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序能够被执行以用于实现如权利要求1-8任一项所述的WhatsApp的key文件提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010208090.9A CN111405550B (zh) | 2020-03-23 | 2020-03-23 | 一种WhatsApp的key文件提取方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010208090.9A CN111405550B (zh) | 2020-03-23 | 2020-03-23 | 一种WhatsApp的key文件提取方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111405550A true CN111405550A (zh) | 2020-07-10 |
CN111405550B CN111405550B (zh) | 2023-08-08 |
Family
ID=71413462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010208090.9A Active CN111405550B (zh) | 2020-03-23 | 2020-03-23 | 一种WhatsApp的key文件提取方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111405550B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769801A (zh) * | 2020-12-31 | 2021-05-07 | 深圳软牛科技有限公司 | 从云服务器提取备份的方法、装置、设备及存储介质 |
CN112949581A (zh) * | 2021-03-30 | 2021-06-11 | 深圳软牛科技有限公司 | 谷歌地图的数据提取方法、装置、设备及存储介质 |
CN114281805A (zh) * | 2022-01-06 | 2022-04-05 | 深圳软牛科技有限公司 | 一种基于WhatsApp软件的数据迁移方法、装置及终端设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715546B1 (en) * | 2016-02-18 | 2017-07-25 | Yahoo! Inc. | Method and system for searching encrypted data |
CN107563215A (zh) * | 2016-07-01 | 2018-01-09 | 四川秘无痕信息安全技术有限责任公司 | 一种安卓系统微信聊天记录解密方法 |
CN107563216A (zh) * | 2016-07-01 | 2018-01-09 | 四川秘无痕信息安全技术有限责任公司 | 一种安卓系统qq聊天记录解密方法 |
-
2020
- 2020-03-23 CN CN202010208090.9A patent/CN111405550B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715546B1 (en) * | 2016-02-18 | 2017-07-25 | Yahoo! Inc. | Method and system for searching encrypted data |
CN107563215A (zh) * | 2016-07-01 | 2018-01-09 | 四川秘无痕信息安全技术有限责任公司 | 一种安卓系统微信聊天记录解密方法 |
CN107563216A (zh) * | 2016-07-01 | 2018-01-09 | 四川秘无痕信息安全技术有限责任公司 | 一种安卓系统qq聊天记录解密方法 |
Non-Patent Citations (2)
Title |
---|
HTTPS://BLOG.ELCOMSOFT.COM/2018/01/EXTRACT-AND-DECRYPT-WHATSAPP-: ""Extract and Decrypt Android WhatsApp Backups from Google Account"", 《ELCOMSOFT BLOG》 * |
HTTPS://BLOG.ELCOMSOFT.COM/2018/12/A-NEW-METHOD-FOR-DECRYPTING-W: ""A New Method for Decrypting WhatsApp Backups"", 《ELCOMSOFT BLOG》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769801A (zh) * | 2020-12-31 | 2021-05-07 | 深圳软牛科技有限公司 | 从云服务器提取备份的方法、装置、设备及存储介质 |
CN112949581A (zh) * | 2021-03-30 | 2021-06-11 | 深圳软牛科技有限公司 | 谷歌地图的数据提取方法、装置、设备及存储介质 |
CN114281805A (zh) * | 2022-01-06 | 2022-04-05 | 深圳软牛科技有限公司 | 一种基于WhatsApp软件的数据迁移方法、装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111405550B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018000834A1 (zh) | 一种wifi热点信息修改方法及装置 | |
CN107612889B (zh) | 防止用户信息泄露的方法 | |
CN108200078B (zh) | 签名认证工具的下载安装方法及终端设备 | |
CN112039826B (zh) | 应用于小程序端的登录方法和装置,电子设备,可读介质 | |
EP3222025B1 (fr) | Procédé de contrôle d'accès a un système de production d'un système informatique non connecté à un système d'information dudit système informatique | |
US20200195433A1 (en) | System and method for secure sensitive data storage and recovery | |
CN107993073B (zh) | 一种人脸识别系统及其工作方法 | |
CN111628871B (zh) | 一种区块链交易处理方法、装置及电子设备和存储介质 | |
CN107124279B (zh) | 擦除终端数据的方法及装置 | |
CN112468571B (zh) | 内外网数据同步方法、装置、电子设备及存储介质 | |
EP2978192A1 (en) | Peer to peer remote control method between one or more mobile devices | |
CN108289074B (zh) | 用户账号登录方法及装置 | |
JP7422241B2 (ja) | パスワード回復方法、システム、クラウドサーバー及び電子デバイス | |
CN111460410A (zh) | 服务器登录方法、装置、系统与计算机可读存储介质 | |
CN111405550B (zh) | 一种WhatsApp的key文件提取方法及设备 | |
CN111405016A (zh) | 用户信息获取方法及相关设备 | |
CN105430601B (zh) | 一种蓝牙设备列表的展现方法、装置及移动终端 | |
US8732456B2 (en) | Enterprise environment disk encryption | |
JP6307610B2 (ja) | データ改竄検知装置、データ改竄検知方法、及びプログラム | |
EP3667530B1 (fr) | Accès sécurise à des données chiffrées d'un terminal utilisateur | |
CN110417754B (zh) | 一种基于主机代理服务权限认证的方法及装置 | |
CN116506224B (zh) | 文件上传方法、装置、计算机设备及存储介质 | |
EP3899765B1 (fr) | Réinitialisation d'un secret applicatif au moyen du terminal | |
CN114007218B (zh) | 认证方法、系统、终端以及数字身份认证功能实体 | |
JP2019121908A (ja) | 管理装置、管理装置の制御方法、及びプログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 1301-1310, building 2, jinlitong financial center building, 1100 Xingye Road, Haiwang community, Xin'an street, Bao'an District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen Ruan Niu Technology Group Co.,Ltd. Address before: 518101 No. 2903, Building C, Zhuoyue Times Square, Haiwang Community, Xin'an Street, Bao'an District, Shenzhen City, Guangdong Province, China Patentee before: AFIRSTSOFT CO.,LTD. |
|
CP03 | Change of name, title or address |