Search

US-12627987-B2 - First-party application data transfer

US12627987B2US 12627987 B2US12627987 B2US 12627987B2US-12627987-B2

Abstract

As disclosed herein, a computer-implemented method is provided. In one aspect, the computer-implemented method may include capturing, at a first client device hosting a messaging application, a context code generated for display in a graphical user interface of a second client device hosting the messaging application. The computer-implemented method may include determining, based on the context code, the second client device is authorized to receive from the first client device a dataset associated with a user account of the messaging application. The computer-implemented method may include establishing, based on determining the second client device is authorized, a peer-to-peer connection between the first client device and the second client device. The computer-implemented method may include transferring, by the peer-to-peer connection, the dataset and metadata associated with the dataset from the first client device to the second client device. A system and a non-transitory computer-readable storage medium are also disclosed.

Inventors

  • Ming Zhou
  • Alison Luiz de Oliveira Chaves
  • William DeBruynkops

Assignees

  • WHATSAPP LLC

Dates

Publication Date
20260512
Application Date
20240209

Claims (18)

  1. 1 . A computer-implemented method, comprising: capturing, at a first client device hosting a messaging application, a context code generated for display in a graphical user interface of a second client device hosting the messaging application; determining, based on the context code, the second client device is authorized to receive from the first client device a dataset associated with a user account of the messaging application; establishing, based on determining the second client device is authorized, a peer to-peer connection between the first client device and the second client device; and transferring, by the peer-to-peer connection, (i) the dataset, and (ii) metadata associated with the dataset from the first client device to the second client device, wherein the metadata includes (i) a hash associated with the user account and (ii) random data used by the server to generate the hash, wherein the random data is a salt associated with the server.
  2. 2 . The computer-implemented method of claim 1 , wherein the first client device and the second client device are associated with the user account of the messaging application.
  3. 3 . The computer-implemented method of claim 1 , wherein capturing the context code comprises scanning the context code using a camera of the first client device.
  4. 4 . The computer-implemented method of claim 1 , wherein the context code is a quick response (QR) code.
  5. 5 . The computer-implemented method of claim 1 , wherein the context code includes a hash of a self-signed certificate of the second client device or a random cryptographic key generated by the second client device.
  6. 6 . The computer-implemented method of claim 1 , further comprising conducting a handshake with the second client device according to a cryptographic communication protocol.
  7. 7 . The computer-implemented method of claim 6 , wherein determining the second client device is authorized to receive the dataset comprises: determining a first hash of a first self-signed certificate corresponding to the context code generated by the second client device matches a second hash of a second self-signed certificate provided by the second client device during the handshake; or determining a first random cryptographic key generated by the second client device and corresponding to the context code generated by the second client device matches a second random cryptographic key generated by the second client device and provided by the second client device during the handshake.
  8. 8 . The computer-implemented method of claim 1 , wherein the dataset includes a messaging history and a media history associated with the user account of the messaging application.
  9. 9 . The computer-implemented method of claim 1 , further comprising: receiving, from a server associated with the messaging application, a cryptographic key generated by the server and associated with the user account; and encrypting the dataset for a transfer of the dataset from the first client device to the second client device, wherein the dataset is encrypted using the cryptographic key.
  10. 10 . A system, comprising: one or more processors; and a memory storing instructions which, when executed by the one or more processors, cause the system to: capture, at a first client device hosting a messaging application, a context code generated for display in a graphical user interface of a second client device hosting the messaging application; determine, based on the context code, the second client device is authorized to receive from the first client device a dataset associated with a user account of the messaging application; establish, based on determining the second client device is authorized, a peer-to-peer connection between the first client device and the second client device; and transfer, by the peer-to-peer connection, (i) the dataset, and (ii) metadata associated with the dataset from the first client device to the second client device, wherein the metadata includes (i) a hash associated with the user account and (ii) random data used by the server to generate the hash, wherein the random data is a salt associated with the server.
  11. 11 . The system of claim 10 , wherein the first client device and the second client device are associated with the user account of the messaging application.
  12. 12 . The system of claim 10 , wherein to capture the context code, the one or more processors execute instructions to scan the context code using a camera of the first client device, and wherein the context code is a quick response (QR) code.
  13. 13 . The system of claim 10 , wherein the context code includes a hash of a self- signed certificate of the second client device or a random cryptographic key generated by the second client device.
  14. 14 . The system of claim 10 , wherein the one or more processors further execute instructions to conduct a handshake with the second client device according to a cryptographic communication protocol.
  15. 15 . The system of claim 14 , wherein to determine the second client device is authorized to receive the dataset, the one or more processors execute instructions to: determine a first hash of a first self-signed certificate corresponding to the context code generated by the second client device matches a second hash of a second self-signed certificate provided by the second client device during the handshake; or determine a first random cryptographic key generated by the second client device and corresponding to the context code generated by the second client device matches a second random cryptographic key generated by the second client device and provided by the second client device during the handshake.
  16. 16 . The system of claim 10 , wherein the dataset includes a messaging history and a media history associated with the user account of the messaging application.
  17. 17 . The system of claim 10 , wherein the one or more processors further execute instructions to: receive, from a server associated with the messaging application, a cryptographic key generated by the server and associated with the user account; and encrypt the dataset for a transfer of the dataset from the first client device to the second client device, wherein the dataset is encrypted using the cryptographic key.
  18. 18 . A non-transitory computer-readable storage medium having instructions embodied thereon, the instructions being executable by one or more processors to perform a method, the method comprising: capturing, at a first client device hosting a messaging application, a context code generated for display in a graphical user interface of a second client device hosting the messaging application; conducting a handshake with the second client device according to a cryptographic communication protocol; determining, based on the context code, the second client device is authorized to receive from the first client device a dataset associated with a user account of the messaging application, wherein determining the second client device is authorized to receive the dataset comprises: determining a first hash of a first self-signed certificate corresponding to the context code generated by the second client device matches a second hash of a second self-signed certificate provided by the second client device during the handshake; or determining a first random cryptographic key generated by the second client device and corresponding to the context code generated by the second client device matches a second random cryptographic key generated by the second client device and provided by the second client device during the handshake; establishing, based on determining the second client device is authorized, a peer to-peer connection between the first client device and the second client device; receiving, from a server associated with the messaging application, a cryptographic key generated by the server and associated with the user account; encrypting the dataset for a transfer of the dataset from the first client device to the second client device, wherein the dataset is encrypted using the cryptographic key; and transferring, by the peer-to-peer connection, (i) the dataset, and (ii) metadata associated with the dataset from the first client device to the second client device, wherein the metadata includes (i) a hash associated with the user account and (ii) random data used by the server to generate the hash, wherein the random data is a salt associated with the server.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS The present application claims the benefit of priority under 35 U.S.C. § 119(e) from U.S. Provisional Patent Application Ser. No. 63/484,455 entitled “FIRST-PARTY APPLICATION DATA TRANSFER,” filed on Feb. 10, 2023, the disclosure of which is hereby incorporated by reference in its entirety for all purposes. BACKGROUND Field The present disclosure generally relates to data transfer between mobile computing devices. More particularly, the present disclosure relates to local transfer of messaging (or “chat”) application data from one mobile computing device to another computing device. Related Art Messaging applications have evolved to become integral parts of the daily lives of users, facilitating instant messaging, multimedia sharing, and collaboration. As a result, users generate extensive messaging histories. When it becomes desirable to change mobile devices, a user may wish to transfer messaging application data (e.g., messaging history or media files) from a current device to a next device. To accomplish this transfer, a user may rely on an intermediary, such as a third-party application or cloud storage service. SUMMARY The disclosed systems and methods provide a secure mechanism for locally transferring messaging application data from a first device to a second device without relying on a third-party application or service. According to certain aspects of the present disclosure, a computer-implemented method is provided. The computer-implemented method may include capturing, at a first client device hosting a messaging application, a context code generated for display in a graphical user interface of a second client device hosting the messaging application. The computer-implemented method may include determining, based on the context code, the second client device is authorized to receive from the first client device a dataset associated with a user account of the messaging application. The computer-implemented method may include establishing, based on determining the second client device is authorized, a peer-to-peer connection between the first client device and the second client device. The computer-implemented method may include transferring, by the peer-to-peer connection, the dataset and metadata associated with the dataset from the first client device to the second client device. According to another aspect of the present disclosure, a system is provided. The system may include one or more processors configured by machine-readable instructions. The processor(s) may be configured to capture, at a first client device hosting a messaging application, a context code generated for display in a graphical user interface of a second client device hosting the messaging application. The processor(s) may be configured to determine, based on the context code, the second client device is authorized to receive from the first client device a dataset associated with a user account of the messaging application. The processor(s) may be configured to establish, based on determining the second client device is authorized, a peer-to-peer connection between the first client device and the second client device. The processor(s) may be configured to transfer, by the peer-to-peer connection, the dataset and metadata associated with the dataset from the first client device to the second client device. According to yet other aspects of the present disclosure, a non-transitory computer-readable storage medium having instructions embodied thereon, the instructions being executable by one or more processors to perform a method, is provided. The method may include capturing, at a first client device hosting a messaging application, a context code generated for display in a graphical user interface of a second client device hosting the messaging application. The method may include determining, based on the context code, the second client device is authorized to receive from the first client device a dataset associated with a user account of the messaging application. The method may include establishing, based on determining the second client device is authorized, a peer-to-peer connection between the first client device and the second client device. The method may include transferring, by the peer-to-peer connection, the dataset and metadata associated with the dataset from the first client device to the second client device. It is understood that other configurations of the subject technology will become readily apparent to those skilled in the art from the following detailed description, wherein various configurations of the subject technology are shown and described by way of illustration. As will be realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the drawings and detailed description are to be re