Provides user information associated with messaging

By encrypting and storing user identification information in the messaging application, and using record identifiers and keys for metadata transmission, the problems of increasing information size and integrity verification during transmission are solved, and a safe and efficient transmission of user identification information is achieved.

CN114270775BActive Publication Date: 2025-08-12APPLE INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202080039784.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-05-31
Filing Date
2020-05-29
Publication Date
2025-08-12
Estimated Expiration
2040-05-29

AI Technical Summary

Technical Problem

When existing messaging applications transmit user identification information, it is easy to increase the message size and it is difficult to effectively verify information integrity.

Method used

By encrypting user identification information and storing it on cloud storage services, metadata transmission is performed using record identifiers and keys. The receiver uses record identifiers to retrieve and decrypt the identification information from the server and uses the keys to verify its integrity.

Benefits of technology

It realizes the secure transmission of user identification information without significantly increasing the message size and ensures that the receiver can verify its integrity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114270775B_ABST
    Figure CN114270775B_ABST
Patent Text Reader

Abstract

A device implementing a system for providing information corresponding to a user associated with a messaging application includes a processor configured to receive, via a messaging application on the device, a message and associated metadata from a second device, the associated metadata including a record identifier for a data record stored on a server, the data record including identification information corresponding to the user of the second device. The processor is further configured to send a request for the data record to the server, the request including the record identifier, and, in response to the sending, retrieve the data record. The processor is further configured to display the identification information of the user contained in the data record and the content of the message in a user interface of the messaging application.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This patent application claims the benefit of priority to U.S. Provisional Patent Application No. 62 / 855,846, filed on May 31, 2019, entitled “Providing User Information in Association with Messaging,” the disclosure of which is hereby incorporated herein in its entirety. Technical Field

[0003] This specification generally relates to messaging, including providing user information associated with messaging. Background Art

[0004] Messaging applications can provide users of electronic devices with the ability to communicate person-to-person. For example, messaging applications can be used to transmit messages with text and / or other content (such as images and videos). Electronic devices such as mobile phones, laptops, computers, and smartwatches can be used to participate in electronic messaging. For example, a user of a first device can use a messaging application to send content to another user of a second device. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] Certain features of the subject technology are set forth in the appended claims.For purposes of explanation, however, several embodiments of the subject technology are set forth in the following figures.

[0006] Figure 1 An example network environment for providing information corresponding to a user associated with a messaging is shown in accordance with one or more implementations.

[0007] Figure 2 An example device is shown that can implement a system for providing user information associated with messaging in accordance with one or more implementations.

[0008] Figure 3 Examples of cloud-based services that can be implemented by a server according to one or more implementations are shown.

[0009] Figure 4 Example processes for providing user information associated with messaging are shown in accordance with one or more implementations.

[0010] Figure 5 A flow diagram of providing user information associated with messaging is shown in accordance with one or more implementations.

[0011] Figure 6A flow chart illustrating an example process for encrypting user information in a data record according to one or more implementations is shown.

[0012] Figure 7 A flow chart illustrating an example process for decrypting user information corresponding to a data record in accordance with one or more implementations is shown.

[0013] Figure 8 Exemplary electronic systems are shown that can be used to implement various aspects of the subject technology according to one or more implementations. DETAILED DESCRIPTION

[0014] The specific embodiments shown below are intended to be descriptions of various configurations of the subject technology and are not intended to represent the only configuration in which the subject technology can be put into practice. The accompanying drawings are incorporated herein and constitute a part of the specific embodiments. The specific embodiments include specific details intended to provide a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details described herein and can be put into practice using one or more other specific implementations. In one or more specific implementations, structures and components are shown in block diagram form to avoid making the concept of the subject technology vague.

[0015] Electronic devices such as mobile phones, laptops, computers, and smartwatches can be used to participate in electronic messaging. For example, a user of a device can send content to other users of other devices using messages transmitted via a messaging application. In addition, a user can select information that personally identifies himself / herself to other users, such as a name (e.g., a nickname) and / or an image (e.g., a photo, video, animation, avatar, etc.), for example within a messaging application. The theme system allows a user's device to securely transmit the user's selected identifying information (e.g., the user's name and / or image) to other users' devices in conjunction with messages transmitted via a messaging application using a cloud storage service, without significantly increasing the size of the message being transmitted.

[0016] In the subject system, a user's identification information can be encrypted and stored on a server, such as via a cloud storage service. The user's device can then attach a small amount of metadata (e.g., 16 bytes, 32 bytes, or any number of bytes) to outbound messages transmitted to other users' devices via a messaging application. The metadata can include information for retrieving the user's encrypted identification information from the server (e.g., a record identifier), as well as a key for decrypting the encrypted identification information. Thus, upon receiving a message from the user's device, the receiving device can retrieve the user's encrypted identification information from the server using the record identifier included in the metadata, and can decrypt the user's encrypted identification information using the key included in the metadata.

[0017] Thus, the subject system allows a user to securely disseminate their identifying information (including, for example, images, videos, animations, etc.) to other users via messaging without significantly impacting the size of the message being transmitted. Furthermore, in one or more specific implementations, the value of the record identifier used by a receiving device to retrieve the user's identifying information from a server can also be used as a hash value that can be used by the receiving device to verify the integrity of the user's identifying information. Thus, the subject system further allows a receiving device to verify the integrity of the user's identifying information without incurring an additional impact on the size of the message being transmitted.

[0018] Figure 1 An exemplary network environment 100 is shown for providing user information associated with messaging, according to one or more implementations. However, not all depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown. Variations in the arrangement and types of these components may be made without departing from the spirit or scope of the claims set forth herein. Additional components, different components, or fewer components may be provided.

[0019] The network environment 100 includes electronic devices 102, 103, 104, and 105 (hereinafter referred to as 102-105), a network 106, and a server 108. The network 106 can communicatively couple (directly or indirectly) any two or more of the electronic devices 102-105 and the server 108, for example. In one or more specific implementations, the network 106 can be an interconnected network that can include the Internet and / or devices communicatively coupled to the Internet. For purposes of explanation, Figure 1 The network environment 100 shown in FIG. 1 includes electronic devices 102 - 105 and a single server 108 ; however, the network environment 100 may include any number of electronic devices and any number of servers.

[0020] One or more of the electronic devices 102-105 may be, for example, a portable computing device such as a laptop computer, a smart phone, a smart speaker, a peripheral device (e.g., a digital camera, a headset), a tablet device, a wearable device (such as a smart watch, a band, etc.), or any other suitable device including, for example, one or more wireless interfaces, such as a WLAN radio, a cellular radio, a Bluetooth radio, a Zigbee radio, a near field communication (NFC) radio, and / or other radio devices. Figure 1 In the embodiment, by way of example, electronic device 102 is depicted as a smart phone, electronic device 103 is depicted as a smart watch, electronic device 104 is depicted as a laptop computer, and electronic device 105 is depicted as a smart speaker. Each of electronic devices 102-105 can be and / or can include the following with respect to Figure 2 The devices discussed and / or below with respect to Figure 8 All or part of the electronic system in question.

[0021] Electronic devices 102-105 can be configured to send electronic messages between each other via a messaging application (e.g., an email application, a text messaging application, an instant messaging application) running on the respective electronic devices 102-105. In addition, server 108 can be configured to securely store encrypted identification information (e.g., name and / or image data) of users of electronic devices 102-105, which is associated with the users' cloud-based user accounts. For example, a first user of electronic device 102 can choose to share identification information associated with messaging with a second user of electronic device 103. Electronic device 103 can access the identification information (e.g., from server 108) and display the identification information (e.g., name and / or image) of the first user, for example, within a user interface of the messaging application.

[0022] The server 108 may be and / or may include the following with respect to Figure 2 The devices discussed and / or below with respect to Figure 8 All or a portion of the electronic system discussed. Server 108 may include one or more servers, such as a server cloud, that can be used to store data records that include identification information (e.g., an encrypted information field) corresponding to a user of one or more of electronic devices 102-105. For purposes of explanation, a single server 108 is shown and discussed with respect to various operations. However, these operations and other operations discussed herein may be performed by one or more servers, and each different operation may be performed by the same or different servers.

[0023] Figure 2 An exemplary device 200 is shown that can implement a system for providing user information associated with messaging according to one or more implementations. For example, Figure 2 The device 200 may correspond to any one of the electronic devices 102-105 and / or Figure 1 108. However, not all depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and types of these components may be made without departing from the spirit or scope of the claims set forth herein. Additional, different, or fewer components may be provided.

[0024] The device 200 may include a processor 202, a memory 204, and a communication interface 206. The processor 202 may include appropriate logic, circuitry, and / or code capable of processing data and / or controlling the operation of the device 200. In this regard, the processor 202 may be enabled to provide control signals to various other components of the device 200. The processor 202 may also control the transfer of data between various portions of the device 200. Additionally, the processor 202 may enable implementation of an operating system or otherwise execute code to manage the operation of the device 200.

[0025] The memory 204 may include suitable logic, circuitry, and / or code to store various types of information, such as received data, generated data, code, and / or configuration information. The memory 204 may include, for example, random access memory (RAM), read-only memory (ROM), flash memory, and / or magnetic storage.

[0026] In one or more specific implementations, where device 200 corresponds to one or more of electronic devices 102-105, memory 204 can store code corresponding to a messaging application (e.g., an email application, a text messaging application, an instant messaging application, an operating system-level messaging application, or another type of application that provides for electronic messaging between devices). Additionally, where device 200 corresponds to server 108, memory 204 can store one or more data records that include encrypted identification information (e.g., name data, image data) for respective users of electronic devices 102-105.

[0027] The communication interface 206 may comprise suitable logic, circuitry, and / or code that may enable wired or wireless communication, such as between any of the electronic devices 102-105 and the server 108, over the network 106. The communication interface 206 may comprise, for example, one or more of a Bluetooth communication interface, a cellular interface, an NFC interface, a Zigbee communication interface, a WLAN communication interface, a USB communication interface, or generally any communication interface.

[0028] In one or more specific implementations, one or more of the processor 202, memory 204, communication interface 206, and / or one or more portions thereof may be implemented in software (e.g., subroutines and code), in hardware (e.g., an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a state machine, gated logic components, discrete hardware components, or any other suitable device), and / or a combination of both.

[0029] Figure 3An example of a cloud-based service 302 that can be implemented by a server 108 according to one or more specific implementations is shown. For example, the cloud-based service 302 can be implemented by one or more software modules running on the processor 202 of the server 108 and / or any other device. As another example, the cloud-based service 302 can be implemented by one or more software modules implemented by custom hardware (e.g., one or more coprocessors). However, not all of the depicted components can be used in all specific implementations, and one or more specific implementations may include additional or different components than those shown in the figures. Changes in the arrangement and type of these components may be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components may be provided.

[0030] In one or more specific implementations, the cloud-based service 302 provides users of electronic devices 102-105 with a means to securely store, maintain, and access user content. The cloud-based service 302 can provide users (e.g., of electronic devices 102-105) with corresponding user accounts to securely store, maintain, and access their corresponding content.

[0031] In one or more specific implementations, the cloud-based service 302 can be configured to store one or more data records 304 that contain encrypted identification information corresponding to a corresponding user. Each data record 304 can include an encrypted text field 306 and / or an encrypted image field 308 that can be used to identify a particular user. For example, the encrypted text field 306 can include name information (e.g., one or more of a nickname, first name, last name, and / or middle name), and the encrypted image field can include one or more photos, videos, and / or animations corresponding to the user. The encrypted text field 306 and / or the encrypted image field 308 can include information provided to the cloud-based service 302 by one of the electronic devices 102-105.

[0032] For example, a user of electronic device 102 may have selected or otherwise updated a name (e.g., a nickname) and / or an image (e.g., a photo, video, animation) at electronic device 102. The user may have chosen to share the selected name and / or image with another user (e.g., of electronic device 103). Accordingly, electronic device 102 may be configured to store a data record on cloud-based service 302 at a location identified by a data record identifier, wherein data record 304 includes an encrypted text field 306 (e.g., corresponding to a name) and / or an encrypted image field 308 (e.g., corresponding to an image). In one or more specific implementations, electronic device 102 may store multiple data records 304, each data record corresponding to a different profile used by the user (e.g., a corresponding data record corresponding to a business profile, a family profile, a friends profile, etc.).

[0033] As shown below relative to Figure 4 As discussed, electronic device 102 can send a record identifier and a key for decrypting the information fields of data record 304 to electronic device 103, for example, as metadata associated with a message sent by electronic device 102 to electronic device 103. Using the record identifier and key, electronic device 103 can access stored text field 306 and / or image field 308 from cloud-based service 302 and display the corresponding name and / or image of the user of electronic device 102, such as within a messaging application running on electronic device 103 and / or within an address book or contact list.

[0034] In one or more implementations, cloud-based services 302 can be implemented via software instructions stored in memory 204 that, when executed by processor 202, cause processor 202 to perform specific functions. In one or more implementations, cloud-based services 302 can be implemented in software (e.g., subroutines and code) and / or hardware (e.g., application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gated logic components, discrete hardware components, or any other suitable devices) and / or a combination of both. In one or more implementations, some or all of the depicted components can share hardware and / or circuitry, and / or one or more of the depicted components can utilize dedicated hardware and / or circuitry. Additional features and functionality of these modules according to aspects of the subject technology are further described in this disclosure.

[0035] Figure 4 An exemplary process 400 for providing user information associated with a message transmission is shown according to one or more specific implementations. For purposes of explanation, this document primarily refers to Figure 1The process 400 is described with reference to the electronic devices 102-103 and the server 108. However, the process 400 is not limited to Figure 1 The electronic devices 102-103 and the server 108 of the embodiment of the present invention may be used, and one or more blocks (or operations) of the process 400 may be performed by one or more other components and other suitable devices (e.g., any of the electronic devices 102-105). Further for the purpose of explanation, the blocks of the process 400 are described herein as occurring sequentially or linearly. However, multiple blocks of the process 400 may occur in parallel. In addition, the blocks of the process 400 do not have to be performed in the order shown, and / or one or more blocks of the process 400 do not have to be performed and / or may be replaced by other operations.

[0036] As described above, the subject system provides for a user of electronic device 102 to select and / or update identification information that can be used, for example, in messaging (e.g., a name and / or image used with a business profile, a family profile, a friend profile, etc.). In one or more implementations, such selection and / or updating of identification information can trigger electronic device 102 to initiate uploading of data record 304 to a server, which corresponds to operations 410-412 of process 400. In one or more implementations, the server can store multiple different data records 304 for a user of electronic device 102, such as a different record each time a user updates their identification information. In one or more implementations, the server can store a single data record 304 for a user such that each time a user updates / changes their identification information, the previous data record is replaced on the server with the updated data record 304.

[0037] Furthermore, operations 414-430 may correspond to electronic device 102 sending a message to a receiving device (e.g., electronic device 103). The message may be sent along with a record identifier that electronic device 103 may use to retrieve data record 304 and a key that electronic device 103 may use to decrypt the encrypted information field of data record 304. Electronic device 103 may display the corresponding identification information within a user interface of the messaging application.

[0038] At operation 402, the electronic device 102 derives a first key, a second key, and a third key from a master key. The master key may correspond to a key (e.g., a 16-byte key) generated by the electronic device 102 for authenticating and / or decrypting the data record 304. The electronic device 102 may derive the first key, the second key, and the third key by calling an HKDF function (e.g., a key derivation function based on a hash-based message authentication code (HMAC)) using the master key and a predefined string (e.g., "nickname" or another predefined string) as input. For example, the first key may correspond to the first 16 bytes of the key provided by the HKDF function call (e.g., where HKDF is configured to extract and expand the number of bytes relative to the 16-byte initial master key), the second key may correspond to the second 16 bytes thereof, and the third key may correspond to the third 16 bytes thereof. As described herein, the first key, the second key, and the third key may be used to authenticate and / or encrypt the data record and its information fields (e.g., the encrypted text field 306 and / or the encrypted image field 308).

[0039] At operation 404, the electronic device 102 encrypts the information field of the data record 304 using a first key derived from the master key. In one or more implementations, for each information field (e.g., each of the encrypted text field 306 and / or the image field 308), the electronic device 102 can encrypt the information field by generating a random initialization value (e.g., a random 96-bit IV_i value) and calculating the ciphertext using the first key. Thus, each of the information fields can be individually encrypted using the first key.

[0040] At operation 406, the electronic device 102 calculates a hash value for each of the encrypted information fields using the second key. In one or more specific implementations, for each of the encrypted information fields, a corresponding hash value may be calculated using a hash-based message authentication code (HMAC) function based on the second key. For example, the HMAC function may be performed based on a combination (e.g., concatenation) of a field name (e.g., "nickname," "first name," "last name," "middle name," or "image"), a random 96-bit IV_i value, and a ciphertext of the corresponding information field (e.g., encrypted data for the field).

[0041] At operation 408, the electronic device 102 generates a record identifier for the data record by calculating a hash value of the combined hash value (from operation 406) using the third key. In one or more implementations, the electronic device 102 combines (e.g., concatenates) the hash values calculated at operation 406 and calculates an additional hash value on the combined hash value using an HMAC function based on the third key. The electronic device 102 generates a record identifier based on, for example, the additional hash value. In one or more implementations, the size of the record identifier can be limited to 16 bytes.

[0042] At operation 410, the electronic device 102 sends a request to the server 108 to store a data record, the data record including the encrypted identification information and the hash value. In one or more implementations, the electronic device 102 sends each of the following: a random initialization value (e.g., a 96-bit IV_i value), a ciphertext corresponding to each encrypted information field (e.g., the encrypted text field 306 and / or the encrypted image field 308), and a hash value for each information field. The request to store the data record 304 may include a record identifier (e.g., corresponding to an additional hash value) that indicates to the server 108 the address at which the data record and the hash value are to be stored.

[0043] At operation 412, the server stores the data record and the hash value. In one or more specific implementations, the cloud-based service 302 of the server 108 is configured to store the data record at an address corresponding to the record identifier provided by the electronic device 102. In addition, the stored data record can include a random initialization value (e.g., a 96-bit IV_i value), ciphertext corresponding to each encrypted information field (e.g., the encrypted text field 306 and / or the encrypted image field 308), and a hash value for each information field, as provided by the electronic device 102. The data record can be associated with a cloud-based user account for the user of the electronic device 102 (e.g., as provided by the cloud-based service 302).

[0044] At operation 414, electronic device 102 sends a message and associated metadata including a record identifier and a master key to electronic device 103. As described herein, electronic device 103 can retrieve the data record from server 108 using the record identifier, can use the record identifier to verify the user identification information, and can use the master key to decrypt the encrypted user identification information in the retrieved data record to display the sending user's identification information on electronic device 103.

[0045] The message and associated metadata may be sent by electronic device 102 to electronic device 103 via a messaging application running on each of electronic devices 102-103. The messaging application may be one or more of an instant messaging application, an email application, a text messaging application, or another type of application that provides for electronic messaging between electronic devices 102-103. The messaging application (e.g., instant messaging, email, text messaging) may be the same or different for electronic devices 102-103.

[0046] In one or more implementations, electronic device 102 can be configured to send associated metadata along with the message to electronic device 103 based on a user opting in at electronic device 102. For example, one or more of an operating system, a messaging application, and / or another application running on electronic device 102 can provide a user interface that allows a user to select and / or update their identification information (e.g., name data and / or image data). In one or more implementations, the name data can include text entered by the user, and the image data can include a photo, video, and / or animation provided by the user (e.g., based on a user selection of an image and / or an image captured by a camera of electronic device 102).

[0047] The electronic device 102 may also include a user interface that provides a sending user with the ability to specify a receiving user (e.g., a messaging participant, such as a contact of the sending user) who is authorized to receive the sending user's identification information. In addition, the electronic device 102 may include a user interface that provides a sending user with the ability to specify which data record (e.g., corresponding to a business profile, a family profile, a friend profile, etc.) is to be provided to the receiving user. In this way, the user of the electronic device 102 can selectively share his / her identification information (e.g., name and / or photo) with the electronic device 103 (e.g., corresponding to the receiving user). In one or more specific implementations, the electronic device 102 may prompt the user to share identification information with a recipient who has not yet authorized the sharing of identification information, wherein a prompt is displayed when a message is sent to a recipient who has not yet been authorized by the sender to receive identification information.

[0048] As described above, the record identifier and the master key can be sent as metadata associated with the message. The size of the record identifier and the master key can be limited (e.g., 16 bytes each, 32 bytes total), for example, to reduce the amount of data required to send each message while transmitting information for accessing the user's encrypted identification information. Alternatively or in addition, the electronic device 102 can limit the amount of data sent by periodically sending the associated metadata, rather than sending the metadata with each message provided by the electronic device 102. For example, a messaging application running on the electronic device 102 can provide for sending the associated metadata once for every five messages sent by the electronic device 102 to the electronic device 103.

[0049] In one or more specific implementations, a messaging application running on electronic device 102 can provide for electronic device 102 to send the associated metadata as an out-of-band message to electronic device 103. In this regard, the out-of-band message can correspond to a "silent" message sent between electronic devices 102-103 via the messaging application but not displayed in a transcript of the messaging between electronic devices 102-103.

[0050] In one or more specific implementations, electronic device 103 may have previously received the record identifier and master key from electronic device 102 (e.g., associated with a previous message sent by electronic device 102). In response to the previous receipt of the information, electronic device 103 may have existing identification information of the sending user stored on electronic device 103. Therefore, electronic device 103 can be configured to compare the record identifier received at operation 414 with the record identifier stored in local memory (e.g., memory 204), and to continue verifying and retrieving the data record if the record identifiers do not match (e.g., because a matching result may indicate that the identification information is current and does not need to be updated).

[0051] At operation 416, the electronic device 103 derives the first key, the second key, and the third key from the master key. In one or more specific implementations, similar to operation 402, the electronic device 103 can derive the first key, the second key, and the third key by calling the HKDF function using the master key and a predefined string (e.g., "nickname") as input. The electronic device 103 can use the first key, the second key, and the third key to verify and / or decrypt the data record and its information fields (e.g., the encrypted text field 306 and / or the encrypted image field 308).

[0052] At operation 418, electronic device 103 sends a request for data record 304 to server 108 (e.g., cloud-based service 302). The request includes a record identifier provided by electronic device 102. Cloud-based service 302 can access data record 304 based on the record identifier (e.g., by looking up the data record from a data repository at an address corresponding to the record identifier). At operation 420, cloud-based service 302 provides electronic device 103 with the data record (e.g., with identification information encrypted by electronic device 102) and a hash value (e.g., provided to the server by electronic device 102 at operation 410).

[0053] At operation 422, the electronic device 103 calculates a hash value for the returned hash value using the third key and compares the calculated hash value with the record identifier. In one or more specific implementations, the calculated hash value may correspond to a hash operation (e.g., an HMAC function based on the third key) performed based on a combination / concatenation of hash values retrieved from the cloud-based service 302.

[0054] The electronic device 103 can compare the calculated hash value with the record identifier (e.g., the additional hash value corresponding to the hash value as described above with respect to operation 406). Thus, the data record can be at least partially verified based on a match between the calculated hash value and the record identifier. In the event of a mismatch, the electronic device 103 can determine that the data record is invalid and perform a failure operation (e.g., stop processing the data record and perform any necessary memory cleanup).

[0055] At operation 424, the electronic device 103 uses the second key to calculate a hash value for each of the encrypted information fields in the data record 304. In one or more specific implementations, for each encrypted information field, the electronic device 103 can use an HMAC function in conjunction with the second key to calculate a corresponding hash value for the information field. Similar to operation 406, the HMAC function can be based on a combination / concatenation of the field name, the random 96-bit IV_i value, and the ciphertext of the corresponding information field.

[0056] For each encrypted information field, the electronic device 103 can compare the calculated hash value with a corresponding hash value, such as that retrieved from the cloud-based service 302. Thus, the data record can be at least partially verified based on a match between the corresponding hash values. In the event of a mismatch, the electronic device 103 can determine that the corresponding information field is invalid and perform a failure action (e.g., stop processing the data record and perform any necessary memory cleanup).

[0057] In one or more specific implementations, electronic device 103 can determine, based on a hash value received from cloud-based service 302, that one or more of the encrypted information fields have changed while other encrypted information fields have not changed, relative to a previous version of the information fields stored on electronic device 103. Thus, with respect to operation 418 described above, electronic device 103 can initially request only the hash value (e.g., associated with the record identifier), and server 108 can initially return the hash value (e.g., without returning the information fields of the data record). Electronic device 103 can perform operations 422 and 424, as described above, based on the retrieved hash value. However, in the event that one or more of the encrypted information fields have changed while other encrypted information fields have not changed (e.g., based on a comparison of the hash values), electronic device 103 can be configured to retrieve from cloud-based service 302 only those information fields of the data record that have changed relative to their previous corresponding versions.

[0058] At operation 426, the electronic device 103 decrypts the data record using the first key. In one or more implementations, for each encrypted information field of the data record provided by the cloud-based service 302, the electronic device 103 can decrypt the information field using the first key. At operation 428, the electronic device 103 stores the verified decrypted data record (e.g., in a local memory of the electronic device 103, such as memory 204).

[0059] At operation 430, the electronic device 103 displays the message and information from the data record. In one or more specific implementations, the electronic device 103 displays the user's identification information contained in the data record (e.g., corresponding to the encrypted text field 306 and / or the image field 308) along with the content of the message in a user interface of the messaging application. For example, the identification information can be displayed in a pre-designated area (e.g., a banner) of the user interface so that a user at the electronic device 103 can view the name and / or image of the sending user associated with the messaging thread.

[0060] In one or more specific implementations, the electronic device 103 can be configured to display the identification information of the sending user in place of existing identification information of the sending user stored on the electronic device 103. For example, the electronic device 103 can update the identification information within a contacts application (e.g., address book) of the electronic device 103, where the contacts application stores contact information used by one or more applications (e.g., messaging, phone, email, maps). Such an update can be based on the user of the electronic device 103 authorizing the update of the identification information via the user interface. Updating the identification information (e.g., name and / or image) can cause the messaging application and / or other applications to replace the previously existing identification information with the updated identification information.

[0061] Figure 5 A flow chart for providing information corresponding to a user associated with a message transmission according to one or more specific implementations is shown. For the purpose of explanation, this document primarily refers to Figure 1 The process 500 is described with reference to the electronic devices 102-103 and the server 108. However, the process 500 is not limited to Figure 1 105 and one or more blocks (or operations) of process 500 may be performed by one or more other components of server 108 and other suitable devices (e.g., any one of electronic devices 102-105). Further for the purpose of explanation, the blocks of process 500 are described herein as occurring sequentially or linearly. However, multiple blocks of process 500 may occur in parallel. In addition, the blocks of process 500 do not have to be performed in the order shown, and / or one or more blocks of process 500 do not have to be performed and / or may be replaced by other operations.

[0062] A messaging application running on electronic device 103 receives a message from electronic device 102 and associated metadata, the associated metadata including a record identifier of a data record stored on server 108, the data record including encrypted identification information corresponding to a user of electronic device 102 (502). The associated metadata may also include a key for decrypting the encrypted identification information.

[0063] The electronic device 102 may be configured to send the associated metadata along with the message to the electronic device 103, such as based on having sent a predetermined number of previous messages to the electronic device 103 without including the associated metadata (e.g., such that the associated metadata is sent every fifth, ten, or any number of sent messages). The electronic device 102 may be configured to send the associated metadata along with the message to the electronic device 103 based on a user opting in at the electronic device 102.

[0064] The identification information of the user of the electronic device 102 may include at least one of a name or a photo of the user of the electronic device 102. The name may include at least one of a nickname, a first name, a last name, or a middle name of the user of the electronic device 102. The data record may be associated with a cloud-based user account of the user of the electronic device 102. In one or more specific implementations, the cloud-based service 302 may require the user to have an account with the cloud-based service to store the data record, but the cloud-based service 302 may allow the user to obtain the data record (e.g., including identification information of other users) without having an account with the cloud-based service 302. Therefore, even if the user does not have an account with the cloud-based service 302, the user can obtain identification information of other users from the cloud-based service 302.

[0065] Electronic device 103 sends a request for the data record, the request including the record identifier (504). In response to the request, electronic device 103 obtains the data record (506). In one or more specific implementations, when user identification information is encrypted in the data record, electronic device 103 can use a key included in the metadata to decrypt the encrypted identification information.

[0066] Electronic device 103 displays the user's identification information contained in the data record and the content of the message in the user interface of the messaging application (508). Displaying the user's identification information may include replacing existing identification information of the user stored on electronic device 103 with the user's identification information.

[0067] Figure 6 A flowchart illustrating an exemplary process for encrypting information corresponding to a user in a data record according to one or more specific implementations is shown. Figure 1 The process 600 is described with reference to the electronic devices 102-103 and the server 108. However, the process 600 is not limited to Figure 1 105 and one or more blocks (or operations) of process 600 may be performed by one or more other components of server 108 and other suitable devices (e.g., any one of electronic devices 102-105). Further for the purpose of explanation, the blocks of process 600 are described herein as occurring sequentially or linearly. However, multiple blocks of process 600 may occur in parallel. In addition, the blocks of process 600 do not have to be performed in the order shown, and / or one or more blocks of process 600 do not have to be performed and / or may be replaced by other operations.

[0068] The electronic device 102 derives a first key and a second key from a master key associated with a data record, the data record including at least one information field (602). The electronic device 102 encrypts the at least one information field using the first key (604).

[0069] The electronic device 102 generates a record identifier for the data record by performing a first hash operation on the at least one information field using the second key (606).The size of each of the master key and the record identifier may be limited to 16 bytes.

[0070] The derivation may further include deriving a third key from the master key. Generating the record identifier may further include performing a second hash operation on a hash value corresponding to the first hash operation using the third key. The data record may include multiple information fields. The second hash operation may be performed on multiple hash values corresponding to the multiple information fields.

[0071] Electronic device 102 sends a request to a server (e.g., server 108) for storing a data record, the request including the master key, the encrypted at least one information field, and a record identifier (608). Electronic device 102 sends the record identifier for retrieving the data record from the server and the master key for decrypting the retrieved data record to electronic device 103 (610).

[0072] The electronic device 103 can derive the first key and the second key from the master key and retrieve the data record from the server 108 based on the record identifier. The electronic device 103 can use the second key to verify the encrypted at least one information field based on the record identifier and based on performing a first hash operation on the at least one information field of the data record. The electronic device 103 can use the first key to decrypt the encrypted at least one information field.

[0073] The electronic device 103 can determine, based on the plurality of hash values, that a first information field in the plurality of information fields has changed and a second information field in the plurality of information fields has not changed relative to a previous version of the first information field and the second information field stored on the electronic device 103. Therefore, when retrieving information fields of a data record, the electronic device 103 can download the first information field from the server and avoid downloading the second information field based on this determination.

[0074] Electronic device 102 may send a message to electronic device 103 for display within a messaging application of electronic device 103. The record identifier and the master key may be sent as metadata associated with the message, the message including content separate from the data record. Electronic device 103 may provide at least one information field and the content of the message for display in a user interface of the messaging application.

[0075] Figure 7 A flowchart of another exemplary process for decrypting information corresponding to a user in a data record according to one or more specific implementations is shown. Figure 1 The process 700 is described with reference to the electronic devices 102-103 and the server 108. However, the process 700 is not limited to Figure 1105 and one or more blocks (or operations) of process 700 may be performed by one or more other components of server 108 and other suitable devices (e.g., any one of electronic devices 102-105). Further for the purpose of explanation, the blocks of process 700 are described herein as occurring sequentially or linearly. However, multiple blocks of process 700 may occur in parallel. In addition, the blocks of process 700 do not have to be performed in the order shown, and / or one or more blocks of process 700 do not have to be performed and / or may be replaced by other operations.

[0076] Electronic device 103 receives a key for a data record stored on a server (e.g., server 108) and a record identifier, the record identifier being a first hash value calculated from the data record (702). Electronic device 103 transmits a request for the data record to the server, the request including the record identifier (704).

[0077] Electronic device 103 receives a data record from server 108, having retrieved the data record from a data record repository based on a record identifier (706). Electronic device 103 verifies the data record based at least in part on the record identifier and a second hash value calculated from the data record (708). Electronic device 103 decrypts an encrypted information field of the data record using a key received in conjunction with the record identifier (710). The data record may include multiple information fields. Each of the first hash value and the second hash value may be calculated as a hash of a plurality of hash values corresponding to the multiple information fields.

[0078] The electronic device 103 may determine, based on the plurality of hash values, that a first information field in the plurality of information fields has changed and a second information field in the plurality of information fields has not changed relative to a previous version of the first information field and the second information field stored on the electronic device 103. The electronic device 103 may download the first information field from the server and avoid downloading the second information field based on the determination.

[0079] Electronic device 103 stores the verified decrypted data record (712). The key and record identifier may be received as metadata associated with the message received from electronic device 102. The data record may include identification information corresponding to the user of electronic device 102, and the message may include content separate from the data record. Electronic device 103 may provide the identification information and content of the message for display in a user interface of the messaging application.

[0080] As described above, one aspect of the present technology is the collection and use of data that can be obtained from specific and legitimate sources to provide user information associated with messaging. The present disclosure contemplates that, in some instances, the collected data may include personal information data that uniquely identifies or can be used to identify a specific person. Such personal information data may include demographic data, location-based data, online identifiers, phone numbers, email addresses, home addresses, data or records related to the user's health or fitness level (e.g., vital signs measurements, medication information, exercise information), date of birth, or any other personal information.

[0081] The present disclosure recognizes that the use of such personal information data in the present technology can be used to benefit users. For example, personal information data can be used to provide information associated with messaging corresponding to the user. Therefore, the use of such personal information data can facilitate transaction processing (e.g., online transaction processing). In addition, the present disclosure also anticipates other uses of personal information data that benefit users. For example, health and fitness data can be used according to the user's preferences to provide insights into their overall health status, or can be used as positive feedback to individuals who use technology to pursue health goals.

[0082] This disclosure contemplates that entities responsible for collecting, analyzing, disclosing, transmitting, storing, or otherwise using such personal information will adhere to established privacy policies and / or practices. Specifically, such entities are expected to implement and consistently apply privacy practices generally recognized as meeting or exceeding industry or government requirements for maintaining user privacy. Such information regarding the use of personal data should be prominently displayed and easily accessible to users and updated as the collection and / or use of data changes. Users' personal information should be collected only for lawful uses. Furthermore, such collection / sharing should occur only after receiving user consent or other lawful basis as provided in applicable law. Furthermore, such entities should consider taking any necessary steps to safeguard and secure access to such personal information and ensure that others with access to such personal information adhere to their privacy policies and procedures. Furthermore, such entities may subject themselves to third-party assessments to demonstrate compliance with widely accepted privacy policies and practices. Furthermore, policies and practices should be tailored to the specific types of personal information being collected and / or accessed and adapted to applicable laws and standards, including specific considerations specific to jurisdictions that may impose higher standards. For example, in the United States, the collection or access of certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); while health data in other countries may be subject to other regulations and policies and should be handled accordingly.

[0083] Regardless of the foregoing, the present disclosure also contemplates implementation schemes in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates providing hardware elements and / or software elements to prevent or block access to such personal information data. For example, in the case of providing information corresponding to the user associated with messaging, the present technology may be configured to allow the user to choose to "opt in" or "opt out" to participate in the collection of personal information data at any time during or after registration for the service. In addition to providing "opt-in" and "opt-out" options, the present disclosure contemplates providing notifications related to access or use of personal information. For example, a user may be notified that their personal information data will be accessed when downloading an application, and then be reminded again just before the personal information data is accessed by the application.

[0084] Furthermore, it is an object of the present disclosure that personal information data should be managed and processed to minimize the risk of unintentional or unauthorized access or use. Risk can be minimized by limiting data collection and deleting data once it is no longer needed. In addition, and when applicable, including in certain health-related applications, data de-identification can be used to protect the privacy of users. De-identification can be facilitated where appropriate by removing identifiers, controlling the amount or specificity of stored data (e.g., collecting location data at a city level rather than an address level), controlling how data is stored (e.g., aggregating data across users), and / or other methods such as differential privacy.

[0085] Therefore, while this disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, this disclosure also contemplates that various embodiments may be implemented without access to such personal information data. That is, various embodiments of the present technology will not be unable to function properly due to the lack of all or part of such personal information data.

[0086] Figure 8 An electronic system 800 is shown that can be used to implement one or more implementations of the subject technology. Figure 1 One or more of the electronic devices 102-105 and / or server 108 shown, and / or may be a portion thereof. The electronic system 800 may include various types of computer-readable media and interfaces for various other types of computer-readable media. The electronic system 800 includes a bus 808, one or more processing units 812, a system memory 804 (and / or cache), a ROM 810, a permanent storage device 802, an input device interface 814, an output device interface 806, and one or more network interfaces 816, or subsets and variations thereof.

[0087] The bus 808 collectively represents all system buses, peripheral buses, and chipset buses that communicatively connect the many internal devices of the electronic system 800. In one or more implementations, the bus 808 communicatively connects one or more processing units 812 with the ROM 810, the system memory 804, and the permanent storage device 802. The one or more processing units 812 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes disclosed herein. In different implementations, the one or more processing units 812 can be a single processor or a multi-core processor.

[0088] ROM 810 stores static data and instructions required by one or more processing units 812 and other modules of electronic system 800. On the other hand, permanent storage device 802 can be a read-write memory device. Permanent storage device 802 can be a non-volatile memory unit that stores instructions and data even when electronic system 800 is turned off. In one or more specific implementations, a mass storage device (such as a magnetic or optical disk and its corresponding disk drive) can be used as permanent storage device 802.

[0089] In one or more implementations, a removable storage device (such as a floppy disk, a flash drive, and its corresponding disk drive) can be used as the permanent storage device 802. Like the permanent storage device 802, the system memory 804 can be a read-write memory device. However, unlike the permanent storage device 802, the system memory 804 can be a volatile read-write memory, such as random access memory. The system memory 804 can store any of the instructions and data that one or more processing units 812 may need during execution. In one or more implementations, the processes disclosed herein are stored in the system memory 804, the permanent storage device 802, and / or the ROM 810. The one or more processing units 812 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes of one or more implementations.

[0090] The bus 808 is also connected to an input device interface 814 and an output device interface 806. The input device interface 814 enables a user to transmit information and select commands to the electronic system 800. Input devices that can be used with the input device interface 814 may include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 806 may, for example, enable the display of images generated by the electronic system 800. Output devices that can be used with the output device interface 806 may include, for example, a printer and a display device, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid-state display, a projector, or any other device for outputting information. One or more specific implementations may include a device that acts as both an input device and an output device, such as a touch screen. In these specific implementations, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, voice, or tactile input.

[0091] Finally, if Figure 8 As shown, bus 808 also couples electronic system 800 to one or more networks and / or to one or more network nodes, such as a network interface 816. Figure 1 . In this manner, electronic system 800 can be part of a computer network, such as a LAN, a wide area network ("WAN"), or an intranet, or can be part of a network of networks, such as the Internet. Any or all components of electronic system 800 can be used with the subject disclosure.

[0092] Implementations within the scope of the present disclosure may be implemented in part or in whole using a tangible computer-readable storage medium (or multiple tangible computer-readable storage media of one or more types) having one or more instructions programmed thereon. The tangible computer-readable storage medium may also be non-transitory in nature.

[0093] Computer-readable storage media can be any storage medium that can be read, written, or otherwise accessed by a general-purpose or special-purpose computing device, including any processing electronics and / or processing circuitry capable of executing instructions. For example, and without limitation, computer-readable media can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. Computer-readable media can also include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash memory, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.

[0094] Furthermore, the computer-readable storage medium may include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more implementations, the tangible computer-readable storage medium may be directly coupled to the computing device, while in other implementations, the tangible computer-readable storage medium may be indirectly coupled to the computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.

[0095] Instructions can be directly executable or can be used to develop executable instructions. For example, instructions can be implemented as executable or non-executable machine code, or can be implemented as high-level language instructions that can be compiled to produce executable or non-executable machine code. In addition, instructions can also be implemented as data, or can include data. Computer executable instructions can also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As those skilled in the art will appreciate, the details including but not limited to the number, structure, sequence and organization of instructions can be significantly different without changing the underlying logic, function, processing and output.

[0096] While the above discussion primarily relates to microprocessors or multi-core processors that execute software, one or more implementations are performed by one or more integrated circuits such as ASICs or FPGAs. In one or more implementations, such integrated circuits execute instructions stored on the circuits themselves.

[0097] Those skilled in the art will recognize that the various illustrative blocks, modules, elements, parts, methods and algorithms described herein can be implemented as electronic hardware, computer software or a combination of the two. In order to illustrate this interchangeability of hardware and software, various illustrative blocks, modules, elements, parts, methods and algorithms have been generally described above in terms of functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system. Technicians can implement the described functionality in different ways for each specific application. Various components and blocks can be arranged differently (e.g., arranged in different orders, or divided in different ways) without departing from the scope of the present subject technology.

[0098] Should be understood that the specific order or the hierarchical structure of the frames in the process disclosed by the present invention are illustrations of exemplary methods. Based on design preference requirements, it should be understood that the specific order or the hierarchical structure of the frames in the process can be rearranged or all the frames shown are executed. Any frame in these frames can be executed simultaneously. In one or more specific implementations, multitasking and parallel processing may be advantageous. In addition, the division of each system component in the above-mentioned specific implementation should not be understood as requiring this type of division in all specific implementations, and should be understood that program components and systems can generally be integrated together in a single software product or be packaged in multiple software products.

[0099] As used in this specification and any claims of this patent application, the terms "base station," "receiver," "computer," "server," "processor," and "memory" refer to electronic devices or other technical equipment. These terms exclude people or groups of people. For the purposes of this specification, the terms "display" or "displaying" mean displaying on an electronic device.

[0100] As used herein, the phrase "at least one of" following a list of items, any of which is separated by the terms "and" or "or," modifies the list as a whole, rather than each member (i.e., each item) of the list. The phrase "at least one of" does not require selection of at least one of each item listed; rather, the phrase allows for a meaning that includes at least one of any one item and / or at least one of any combination of items and / or at least one of each item. For example, the phrase "at least one of A, B, and C" or "at least one of A, B, or C" each refers to only A, only B, or only C; any combination of A, B, and C; and / or at least one of each of A, B, and C.

[0101] The predicate words "configured to," "operable to," and "programmed to" do not imply any specific tangible or intangible modification of a subject matter and are intended to be used interchangeably. In one or more implementations, a processor configured to monitor and control an operation or component may also mean that the processor is programmed to monitor and control the operation or that the processor is operable to monitor and control the operation. Similarly, a processor configured to execute code may be interpreted as a processor that is programmed to execute code or operable to execute code.

[0102] Phrases such as aspect, this aspect, another aspect, some aspects, one or more aspects, an implementation, this implementation, another implementation, some implementations, one or more implementations, an embodiment, this embodiment, another embodiment, some embodiments, one or more embodiments, configuration, this configuration, other configurations, some configurations, one or more configurations, subject technology, disclosure, the present disclosure, other variations thereof, and the like are used for convenience and do not imply that disclosure involving such one or more phrases is essential to the subject technology or that such disclosure applies to all configurations of the subject technology. Disclosure involving such one or more phrases may apply to all configurations or one or more configurations. Disclosure involving such one or more phrases may provide one or more examples. Phrases such as aspect or some aspects may refer to one or more aspects and vice versa, and this applies similarly to the other aforementioned phrases.

[0103] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any implementation described herein as "exemplary" or as an "example" is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, to the extent that the terms "including," "having," and the like are used in the specification or claims, such terms are intended to be inclusive, similar to the way the term "comprising" is interpreted when used as a transitional word in a claim.

[0104] All structural and functional equivalents to the elements of various aspects described throughout this disclosure that are known or later come to be known to one of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. In addition, nothing disclosed herein is intended to be made available to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element shall be construed under 35 U.S.C. §112(f) unless the element is explicitly recited using the phrase “means for” or, in the case of a method claim, the phrase “step for”.

[0105] The previous description is provided to enable those skilled in the art to practice various aspects described herein. Various modifications to these aspects will be apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the present claims are not intended to be limited to the aspects shown herein, but are intended to make the full scope consistent with the language claims, wherein reference to elements in singular values is not intended to mean "only one", but refers to "one or more", unless specifically noted. Unless otherwise specifically stated, the term "some" refers to one or more. Male pronouns (e.g., his) include female and neutral (e.g., her and its), and vice versa. Titles and subtitles (if any) are used only for convenience and do not limit this subject disclosure.

Claims

1. A method for displaying information, comprising: receiving, via a messaging application on a first device, a message and associated metadata from a second device, the associated metadata including a record identifier of a data record stored on a server, the data record including identification information corresponding to a user of the second device; In response to receiving the message, sending, by the first device, a request for the data record to the server, the request including the record identifier, the record identifier being used to retrieve the data record from the server; acquiring, by the first device and in response to the transmitting, the data record; as well as The identification information of the user and the content of the message contained in the data record are displayed by the first device in a user interface of the messaging application. 2 . The method of claim 1 , wherein displaying the identification information of the user comprises displaying the identification information of the user in place of existing identification information of the user stored on the first device. 3 . The method according to claim 1 , wherein the identification information of the user of the second device comprises at least one of a name or a photo of the user of the second device. 4 . The method of claim 1 , wherein the second device is configured to send the associated metadata along with the message to the first device based on having sent a predetermined number of previous messages to the first device without including the associated metadata. 5 . The method of claim 1 , wherein the second device is configured to send the associated metadata along with the message to the first device based on a user opting in at the second device.

6. The method of claim 1, the associated metadata further comprising a key for decrypting the data record. The method of claim 1 , wherein the data record is associated with a cloud-based user account of the user of the second device.

8. The method according to claim 1, further comprising: receiving, via the messaging application, a second message and second associated metadata from the second device, the second associated metadata including a second record identifier of a second data record stored on the server, the second data record including second identification information corresponding to the user of the second device; Sending, by the first device, a request for the second data record to the server, wherein the request for the second data record includes the second record identifier of the data record; acquiring, by the first device, the second data record; as well as The second identification information of the user and the content of the second message contained in the second data record are displayed by the first device in the user interface of the messaging application.

9. The method according to claim 1, further comprising: determining a hash value from the data record; as well as The data record is verified based at least in part on a comparison of the hash value and the record identifier.

10. A device for displaying information, comprising: one or more processors; and A memory storing computer instructions for executing the method according to any one of claims 1 to 9 when the computer instructions are executed by the one or more processors.

11. A computer program product comprising codes stored in a non-transitory computer-readable storage medium, the codes being operable to perform the method according to any one of claims 1 to 9 when executed by a processor.

12. A computer program product comprising code, the code being stored in a non-transitory computer-readable storage medium, the code comprising: code for receiving, by a messaging application on a first device, a message and associated metadata from a second device, the associated metadata including a record identifier of a data record stored on a server, the data record including identification information corresponding to a user of the second device; code for sending, by the first device, a request for the data record to the server in response to receiving the message, the request including the record identifier, the record identifier being used to retrieve the data record from the server; code for obtaining, by the first device and in response to the transmitting, the data record; and Code for storing, by the first device, the identification information of the user in association with a user identifier corresponding to the user.

13. The computer program product of claim 12, wherein the code for storing the identification information of the user comprises code for storing the identification information of the user in place of existing identification information of the user stored on the first device.

14. A method for displaying information, comprising: receiving, by a messaging application on a first device, a message and associated metadata from a second device, the associated metadata including a record identifier of a data record stored on a server, the data record including identification information corresponding to a user of the second device; In response to receiving the message, sending, by the first device, a request for the data record to the server, the request including the record identifier, the record identifier being used to retrieve the data record from the server; acquiring, by the first device and in response to the transmitting, the data record; and The identification information of the user is stored by the first device in association with a user identifier corresponding to the user. 15 . The method of claim 14 , wherein storing the identification information of the user comprises storing the identification information of the user in place of existing identification information of the user stored on the first device.

16. A device for displaying information, comprising: one or more processors; and A memory storing computer instructions which, when executed by the one or more processors, perform the method according to claim 14 or 15.

Citation Information

Patent Citations

  • Apparatus and method for secure file transfer

    CN108028834A

  • Database operation using metadata of data sources

    CN108292323A

  • Storage and management of mail attachments

    US20160142350A1

  • Messaging application interacting with one or more extension applications

    US20170357442A1