CN111405550B - 一种WhatsApp的key文件提取方法及设备 - Google Patents

一种WhatsApp的key文件提取方法及设备 Download PDF

Info

Publication number
CN111405550B
CN111405550B CN202010208090.9A CN202010208090A CN111405550B CN 111405550 B CN111405550 B CN 111405550B CN 202010208090 A CN202010208090 A CN 202010208090A CN 111405550 B CN111405550 B CN 111405550B
Authority
CN
China
Prior art keywords
whatsapp
data
client
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.)
Active
Application number
CN202010208090.9A
Other languages
English (en)
Other versions
CN111405550A (zh
Inventor
朱志强
李盛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Ruan Niu Technology Group Co ltd
Original Assignee
Afirstsoft Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Afirstsoft Co Ltd filed Critical Afirstsoft Co Ltd
Priority to CN202010208090.9A priority Critical patent/CN111405550B/zh
Publication of CN111405550A publication Critical patent/CN111405550A/zh
Application granted granted Critical
Publication of CN111405550B publication Critical patent/CN111405550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication

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的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 (7)

1.一种WhatsApp的key文件提取方法,其特征在于,包括:
模拟客户端向WhatsApp服务器发送用于查询WhatsApp服务器是否已认证该客户端的查询请求;
若客户端接收到WhatsApp服务器未认证该客户端的返回数据,则发送请求认证码指令至WhatsApp服务器;
利用接收到的WhatsApp服务器返回的认证码,将所述认证码和客户端信息作为请求参数,发送至WhatsApp服务器进行认证;
客户端接收到WhatsApp服务器返回的认证成功指令,根据预设协议获取与所述客户端对应的key文件;
所述根据预设协议获取与所述客户端对应的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值来加密或解密对应的WhatsApp数据库文件;
其中,根据所述key值,对iOS端的WhatsApp数据库进行压缩加密,转换为AndroidWhatsApp识别的加密文件,来完成iOS到Android的WhatsApp数据迁移。
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.一种设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的WhatsApp的key文件提取程序,所述WhatsApp的key文件提取程序被所述处理器执行时实现如权利要求1-5任一项所述的WhatsApp的key文件提取方法的步骤。
7.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序能够被执行以用于实现如权利要求1-5任一项所述的WhatsApp的key文件提取方法。
CN202010208090.9A 2020-03-23 2020-03-23 一种WhatsApp的key文件提取方法及设备 Active CN111405550B (zh)

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 CN111405550A (zh) 2020-07-10
CN111405550B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769801B (zh) * 2020-12-31 2023-05-02 深圳软牛科技有限公司 从云服务器提取备份的方法、装置、设备及存储介质
CN112949581A (zh) * 2021-03-30 2021-06-11 深圳软牛科技有限公司 谷歌地图的数据提取方法、装置、设备及存储介质
CN114281805B (zh) * 2022-01-06 2023-03-31 深圳软牛科技有限公司 一种基于WhatsApp软件的数据迁移方法、装置及终端设备

Citations (3)

* Cited by examiner, † Cited by third party
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
CN107563216A (zh) * 2016-07-01 2018-01-09 四川秘无痕信息安全技术有限责任公司 一种安卓系统qq聊天记录解密方法
CN107563215A (zh) * 2016-07-01 2018-01-09 四川秘无痕信息安全技术有限责任公司 一种安卓系统微信聊天记录解密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
CN107563216A (zh) * 2016-07-01 2018-01-09 四川秘无痕信息安全技术有限责任公司 一种安卓系统qq聊天记录解密方法
CN107563215A (zh) * 2016-07-01 2018-01-09 四川秘无痕信息安全技术有限责任公司 一种安卓系统微信聊天记录解密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Extract and Decrypt Android WhatsApp Backups from Google Account";https://blog.elcomsoft.com/2018/01/extract-and-decrypt-whatsapp-;《ElcomSoft blog》;第1-6页 *

Also Published As

Publication number Publication date
CN111405550A (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
CN111405550B (zh) 一种WhatsApp的key文件提取方法及设备
CN108989346B (zh) 基于账号隐匿的第三方有效身份托管敏捷认证访问方法
US9197420B2 (en) Using information in a digital certificate to authenticate a network of a wireless access point
CN107612889B (zh) 防止用户信息泄露的方法
CN108307674A (zh) 一种保障终端安全的方法和设备
US11394543B2 (en) System and method for secure sensitive data storage and recovery
JP2014529837A (ja) 身分認証管理装置及びその方法
CN109472130A (zh) Linux密码管理方法、中控机、可读存储介质
CN111628871B (zh) 一种区块链交易处理方法、装置及电子设备和存储介质
US20170244692A1 (en) Authentication of a user using a security device
WO2018166163A1 (zh) Pos终端控制方法、pos终端、服务器及存储介质
CN107124279B (zh) 擦除终端数据的方法及装置
CN109842616B (zh) 账号绑定方法、装置及服务器
CN111901304B (zh) 移动安全设备的注册方法和装置、存储介质、电子装置
CN111405016A (zh) 用户信息获取方法及相关设备
JP6307610B2 (ja) データ改竄検知装置、データ改竄検知方法、及びプログラム
CN115334073B (zh) 一种深度拉取远程文件的方法和系统
US20130238905A1 (en) Data shielding system and method
CN114448722B (zh) 跨浏览器登录方法、装置、计算机设备和存储介质
CN106453335B (zh) 一种数据传输方法及装置
KR20190012026A (ko) 로그인 인증 처리를 위한 시스템 및 방법
CN110049036B (zh) 数据加密方法、装置及数据加密系统
CA3098369C (en) Method and system for implementing a virtual smart card service
EP3667530A1 (fr) Accès sécurise à des données chiffrées d'un terminal utilisateur
CN115862192B (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
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.