Phone number obfuscation in social media platforms
By replacing phone numbers with server-generated logical identifiers (LIDs) on social media and instant messaging platforms, the security risks brought by phone numbers as identity identification are solved, and users' privacy protection and secure communication are achieved.
Patent Information
- Application Number
- CN202411127270.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-24
- Filing Date
- 2024-08-16
- Publication Date
- 2025-02-25
AI Technical Summary
Using phone numbers as identity identification on social media and instant messaging platforms can lead to security risks such as identity theft and illegal trespassing.
Provides a system and method that allows a user to use a logical identifier (LID) as their addressable user identity without revealing their phone number. The LID is a server-generated unique ID for registration, batch allocation, or on-demand allocation when existing users log in.
By using logical identifiers, users can communicate securely without revealing their phone number, reducing the risk of identity theft and illegal intrusion while improving user privacy protection.
Smart Images

Figure CN119520468A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to and the benefit of U.S. patent application No. 18 / 237,848, filed on August 24, 2023, the entire contents of which are incorporated herein by reference. Technical Field
[0003] The present disclosure relates generally to secure communications and, more particularly, to obfuscation of phone numbers on platforms such as social media and instant messaging. Background Art
[0004] Social media platforms facilitate information sharing between virtual communities and networks. Social media platforms typically include interactive Internet-based applications. Users on social media platforms send and receive content, such as through posts on user feeds, direct messages, etc. The content may include text, audio, video, and / or images. The use of mobile phones has become an important part of modern communications. The growth of mobile phones has brought about the widespread use of social media applications and instant messaging applications as a means of communication. However, the use of mobile phone numbers as identification in these applications may pose security risks, such as identity theft and trespassing. Summary of the invention
[0005] The subject disclosure provides systems and methods for secure communications. Users are allowed to use a logical ID or logical identifier (LID) as their new addressable user identity in the system without revealing their corresponding phone number. The LID is a server-generated unique ID that is assigned to each user in the system during registration, during batch allocation, or during on-demand allocation during login of an existing user.
[0006] One aspect of the present disclosure relates to a method for obfuscating a user identifier on a social media platform. The method may include registering a client device based on a user identifier. The registration may include sending a short message service (SMS) message including a verification code to the client device based on the user identifier. The method may include generating an internal supplemental identifier associated with the user identifier. The method may include receiving a confirmation of the SMS message from the client device based on the user identifier. The confirmation may include the verification code. The method may include implementing the internal supplemental identifier between a client-side transaction and a server-side transaction. The method may include generating a display name associated with the internal supplemental identifier. The display name may be different from the user identifier.
[0007] Another aspect of the present disclosure relates to a system configured to obfuscate a user identifier on a social media platform. The system may include one or more hardware processors configured by machine-readable instructions. The one or more processors may be configured to register a client device based on a user identifier. The user identifier may include a phone number. Registration may include sending an SMS message including a verification code to the client device based on the user identifier. The one or more processors may be configured to generate an internal supplemental identifier associated with the user identifier. The internal supplemental identifier may be unrecognizable to entities outside the social media server. The mapping between the internal supplemental identifier and the user identifier may be 1 to 1 (1:1). The one or more processors may be configured to receive a confirmation of the SMS message from the client device based on the user identifier. The confirmation may include a verification code. The one or more processors may be configured to implement the internal supplemental identifier between client-side transactions and server-side transactions. The one or more processors may be configured to generate a display name associated with the internal supplemental identifier. The display name may be different from the user identifier. The display name may be unique to the user identifier.
[0008] Yet another aspect of the present disclosure relates to a non-transitory computer-readable storage medium containing instructions executable by one or more processors to perform a method for obfuscating a user identifier on a social media platform. The method may include registering a client device based on a user identifier. The user identifier may include a phone number. Registering may include sending an SMS message including a verification code to the client device based on the user identifier. The method may include generating an internal supplemental identifier associated with the user identifier. The internal supplemental identifier may be unrecognizable to entities external to the social media server. The mapping between the internal supplemental identifier and the user identifier may be 1:1. The method may include receiving a confirmation of the SMS message from the client device based on the user identifier. The confirmation may include the verification code. The method may include implementing the internal supplemental identifier between a client-side transaction and a server-side transaction. The method may include generating a display name associated with the internal supplemental identifier. The display name may be different from the user identifier. The display name may be unique to the user identifier. The method may include displaying the display name in a user interface during communication by the client device.
[0009] Yet another aspect of the present disclosure relates to a system configured to obfuscate a user identifier on a social media platform. The system may include means for registering a client device based on a user identifier. Registration may include sending an SMS message including a verification code to the client device based on the user identifier. The system may include means for generating an internal supplemental identifier associated with the user identifier. The system may include means for receiving a confirmation of the SMS message from the client device based on the user identifier. The confirmation may include the verification code. The system may include means for implementing the internal supplemental identifier between a client-side transaction and a server-side transaction. The system may include means for generating a display name associated with the internal supplemental identifier. The display name may be different from the user identifier. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] To easily identify the discussion of any particular element or act, the highest digit or digits in a reference number refer to the figure number in which the element is first introduced.
[0011] Figure 1 is a block diagram illustrating an overview of an environment in which some embodiments of the disclosed technology may operate.
[0012] Figure 2A and Figure 2B An example flow diagram of group messaging in which user phone numbers are obfuscated is shown in accordance with one or more implementations.
[0013] Figure 3
[0013] A system configured for secure communications in accordance with one or more implementations is shown.
[0014] Figure 4 An example flow diagram for secure communications according to certain aspects of the present disclosure is shown.
[0015] Figure 5 is a block diagram illustrating an example computer system (eg, representing both clients and servers) with which aspects of the subject technology may be implemented.
[0016] In one or more embodiments, not all components depicted in each of the figures are required, and one or more embodiments may include additional components not shown in the figures. The arrangement and type of components may be varied without departing from the scope of the subject disclosure. Additional components, different components, or fewer components may be utilized within the scope of the subject disclosure. DETAILED DESCRIPTION
[0017] In the following detailed description, many specific details are set forth to provide a full understanding of the present disclosure. However, it will be apparent to one of ordinary skill in the art that the various embodiments of the present disclosure can be practiced without some of these specific details. In other instances, well-known structures and techniques are not shown in detail to avoid obscuring the present disclosure.
[0018] Figure 1 1 is a block diagram showing an overview of an environment 100 in which some embodiments of the disclosed technology may operate. The environment 100 may include one or more client computing devices, mobile devices 104, tablet computers 112, personal computers 114, laptop computers 116, and / or desktop computers 118, among others. The client devices may communicate wirelessly via a network 110. The client computing devices may operate in a networked environment using a logical connection to one or more remote computers (e.g., server computing devices) through the network 110. The server computing devices 106a and 106b may be configured to display (e.g., make the encrypted content visible) content to one or more of the client computing devices for those client computing devices that present the correct public key. As an example, the server computing devices 106a and 106b may include a database (e.g., database 108) that tracks which users of the client computing devices have authorized other client users to access their encrypted content (e.g., encrypted by the corresponding private key).
[0019] In some embodiments, environment 100 may include servers such as edge servers that receive client requests and coordinate the implementation of these requests through other servers. The server may include server computing devices 106a and 106b that can logically form a single server. Alternatively, server computing devices 106a and 106b may each be a distributed computing environment that includes multiple computing devices located at the same physical location or geographically different physical locations. Client computing devices and server computing devices 106a and 106b may each act as a server or client of one or more other server / client devices. Server computing devices 106a and 106b may be connected to a database 108, or may include its own memory. Each server computing device 106a and 106b may correspond to a group of servers, and each of these servers may share a database 108, or may have its own database 108. Database 108 may logically form a single unit, or may be part of a distributed computing environment that includes multiple computing devices, which are located in their corresponding servers, in the same physical location, or in geographically different physical locations. The database 108 may store data indicating a key for a given user's encrypted content or access to the given user's encrypted content authorized by the given user to other users and / or shared social media content that may be subscribed to by other users. For example, when containing a copy of the shared key, the database 108 may also be used to facilitate key rotation in a one-to-many encryption architecture by enabling the publication of new keys.
[0020] The network 110 may be a local area network (LAN), a wide area network (WAN), a mesh network, a hybrid network, or other wired or wireless network. The network 110 may be the Internet or some other public or private network. The client computing device may be connected to the network 110 via a network interface, for example, via wired communication or wireless communication. The connection may be any kind of local area network, wide area network, wired network, or wireless network, including the network 110 or a separate public or private network. In some embodiments, the server computing devices 106a and 106b may be used as part of a social network such as implemented via the network 110. The social network may host content and protect access to the content (e.g., via a database 108), but the server computing devices 106a and 106b of the social network do not have access to private keys and may be remote from / separated from one or more applications that perform key generation and content encryption. The social network may maintain a social graph and perform various actions based on the social graph. A social graph may include a set of nodes (representing social networking system objects, also referred to as social objects) interconnected by multiple edges (representing interactions, activities, or relationships). A social networking system object may be a social networking system user, a non-human entity, a content item, a group, a social networking system page, a location, an application, a topic, a conceptual representation, or other social networking system object (e.g., a movie, a band, a book, etc.).
[0021] A content item may be any digital data, such as text, images, audio, video, links, web pages, details (e.g., tags such as sentiment indicators, status text snippets, location indicators, etc. provided by a client device), or other multimedia. In various embodiments, a content item may be a social network item or part of a social network item, such as a post, a like, a mention, a news report, an event, a share, a comment, a message, other notifications, etc. In the context of a social graph, topics and concepts include nodes representing any person, place, thing, or idea. A social networking system may enable a user to enter and display the following items: information related to the user's interests; age / date of birth; location (e.g., longitude / latitude, country, region, city, etc.); education information; life stage; relationship status; name; commonly used device model; languages identified as familiar to the user; occupation; contact information; or other demographic or biometric information in a user profile. In various embodiments, any such information may be represented by a node in a social graph or an edge between nodes.
[0022] The social networking system may enable users to upload or create pictures, videos, documents, songs, or other content items, and may enable users to create and schedule events. In various embodiments, content items may be represented by nodes in a social graph or edges between nodes. The social networking system may enable users to upload or create content items, interact with content items or other users, express interests or opinions, or perform other actions. The social networking system may provide various ways to interact with non-user objects within the social networking system. In various embodiments, actions may be represented by nodes in a social graph or edges between nodes. For example, a user may form or join a group, or become a fan of a page or entity within the social networking system. In addition, a user may create, download, view, upload, link to, mark, edit, or play a social networking system object. A user may interact with a social networking system object outside the context of a social networking system. For example, an article on a news website may have a "like" button that a user can click. In each of these instances, the interaction between the user and the object may be represented by an edge in the social graph that connects the user's node to the object's node. As another example, a user may use location detection functionality (e.g., a Global Positioning System (GPS) receiver on a mobile device) to “check in” to a particular location, and in the social graph, an edge may connect the user's node with the location's node.
[0023] The social networking system may provide users with various communication channels. For example, the social networking system may enable users to send emails, instant messages, or text / SMS messages to one or more other users. The social networking system may enable users to post messages to the user's wall or profile, or another user's wall or profile. The social networking system may enable users to post messages to groups or fan pages. The social networking system may enable users to comment on images, wall posts, or other content items created or uploaded by the user or another user. In addition, the social networking system may allow users (via their avatars or realistic representations) to interact with objects or other avatars in a virtual environment (e.g., in an artificial reality work environment). In some embodiments, a user may post a status message to the user's profile that indicates a current event, mental state, thought, feeling, activity, or any other expression related to the current time. The social networking system may enable each user to communicate not only within the social networking system but also outside the social networking system. For example, the first user may send a message to the second user within the social networking system, may send an email to the second user through the social networking system, may send an email originating from the social networking system to the second user outside the social networking system, may send an instant message to the second user within the social networking system, may send an instant message originating from the social networking system to the second user outside the social networking system, may provide voice or video messaging between multiple users, or may provide a virtual environment in which users may communicate and interact via their own avatars or other digital representations. In addition, the first user may comment on the second user's profile page, or may comment on an object associated with the second user (e.g., a content item uploaded by the second user).
[0024] A social networking system enables a user to associate himself with other users in the social networking system and establish connections with these users. When two users (e.g., social graph nodes) explicitly establish a social connection in the social networking system, the two users become "friends" (or, "connections") within the context of the social networking system. For example, a friend request from "John Doe" to "Jane Smith" accepted by "Jane Smith" is a social connection. The social connection can be an edge in a social graph. Compared to the information about each other that would otherwise be available to multiple users who are not connected, becoming a friend, or being within a threshold number of friend edges on a social graph, can allow multiple users to access more information about each other. For example, becoming a friend can allow a user to view another user's profile, view another user's friends, or view another user's photos. Similarly, becoming a friend within a social networking system can allow a user to have more opportunities to communicate with another user, such as through (internal and external to the social networking system) email, instant messaging, text messaging, phone, or any other communication interface. Becoming a friend may allow a user access to view, comment on, download, like, or otherwise interact with content items uploaded by another user. Establishing connections, accessing user information, communicating, and interacting within the context of a social networking system may be represented by edges between nodes representing two social networking system users.
[0025] In addition to explicitly establishing a connection in a social networking system, for the purpose of determining the social context used when determining a communication topic, users with common characteristics may also be considered to be connected (e.g., soft connections or implicit connections). In some embodiments, users belonging to a public network are considered to be connected. For example, users who go to the same school, users who work for the same company, or users who belong to the same social networking system group may be considered to be connected. In some embodiments, users with common biological characteristics may be considered to be connected. For example, the geographic area where a user is born or lives, the age of the user, the gender of the user, and the emotional state of the user may be used to determine whether the user is connected. In some embodiments, users with common interests may be considered to be connected. For example, the user's movie preferences, music preferences, political views, religious views, or any other interests may be used to determine whether the user is connected. In some embodiments, users who have performed the same behavior in a social networking system may be considered to be connected. For example, users who agree with or recommend the same object, users who comment on the same content item, or users who RSVP to the same event may be considered to be connected. A social networking system may utilize a social graph to determine a user connected to a specific user or a user similar to a specific user in order to determine or evaluate the social context between these users. The social networking system may utilize such social context and common attributes to facilitate the content distribution system and the content caching system to predictably select content items for caching in a cache device associated with a particular social networking account.
[0026] The disclosure of personal phone numbers may cause concern for users of social media applications and messaging applications. Although communication is the primary function of these platforms, users may be reluctant to share their phone numbers with others, especially strangers. This is particularly true in the case of workplace messaging applications, where colleagues may be asked to communicate but may not want to reveal their personal phone numbers. As a result, users may be reluctant to join groups or participate in conversations, which may lead to reduced engagement and productivity.
[0027] The subject disclosure provides systems and methods for secure communications. Allows users to use a logical ID or LID as their new addressable user identity in the system without revealing their corresponding phone number. The LID is a server-generated unique ID that is assigned to each user in the system during registration, during bulk allocation, during on-demand allocation during login of existing users.
[0028] The embodiments described herein address the foregoing and other disadvantages by providing a logical identifier (LID) that is unique to a user's account. The LID replaces the user's phone number and is used for all communications within the system. In this way, users can communicate with each other without revealing their personal phone numbers. The LID can be managed by a server and can be assigned during registration or assigned on-demand during login by an existing user. The system can include privacy settings that allow users to control who can access their phone numbers, thereby preventing malicious users from grabbing phone number information.
[0029] Some embodiments may provide phone number hiding (PNH) without phone identity in the support system. For example, some embodiments may provide addressable user identities referred to as logical IDs or LIDs. LIDs may be unique IDs generated by a server and assigned to each user in the system. LIDs may be assigned during new user registration, or during batch allocation (e.g., via a crawler), or through on-demand allocation during login of existing users. LID-based IDs may be used to uniquely address any client on the network, where these IDs belong to a domain different from phone number-based identities. For example, in a Jabber ID (JID)-based system, the JID may be extended by adding a new JID domain called "lid" to support LID-based user identities and device identities as valid JIDs. LID-based JIDs may be used anywhere in the client-server protocol to uniquely address users or devices in the system without revealing the corresponding phone number.
[0030] LIDs may be managed during account lifecycle events such as re-registration and phone number changes. LIDs may not change when an existing account re-registers, but may change when a user's account is re-registered after being deleted by the user or by the server due to inactivity. LIDs may change when a user changes their phone number through the Change Phone Number flow.
[0031] An end-to-end encryption (E2EE) identity model can be adopted in which the user's LID identity is completely separated from their phone number identity to prevent malicious actors from revealing the LID by cross-referencing the E2EE identity keys between the LID and the phone number. Each client can generate a separate identity key, a signed prekey, and a set of one-time prekeys for its LID identity. These keys can then be used to establish an independent LID-based E2EE session for the LID thread. The authentication quick response code (QR code) can be modified to support out-of-band authentication of LID-based identities.
[0032] Users can gain explicit control over phone number sharing through privacy settings. After discovering the LIDs of participants in a chat thread such as a group, the client can issue a new query to obtain the LID-to-phone number mappings for these LIDs. The server can only reveal the phone numbers of those users whose privacy settings allow their phone numbers to be shared with the requesting user.
[0033] Some embodiments provide first-class support for 1:1 LID threads, allowing clients to query E2EE keys and device lists through the recipient's LID and establish an E2EE 1:1 LID thread with that user. LID threads can use LID-based JIDs anywhere in all protocols to avoid any mix and match between LID and phone number identities and E2EE sessions. Some use cases may include 1:1 conversations starting from a group (in which LID discovery occurs via the group), and 1:1 threads with businesses (in which LIDs can be discovered via links). Some embodiments may provide an upgrade path through an atomic two-way contact exchange protocol to promote LID threads to regular phone number-based threads. Support for signed tokens can prevent unauthorized LID-based messaging outside of approved contexts. According to some embodiments, server-side implementations may involve changing database schemas to store additional LID information, and client-side implementations may involve updating user interfaces to handle LID-based threads and contact discovery.
[0034] Figure 2A and Figure 2BAn example flow chart (e.g., process 200) of group messaging in which user phone numbers are obfuscated according to some embodiments is shown. Process 200 includes several steps starting with step 202. In step 202, the client attempts to send a message in a group chat. In step 204, the client retrieves the recipient LID from the server and uses its own LID and the recipient's LID as identifiers to generate an E2EE session with each group participant (e.g., according to a signal encryption protocol). The client uses the E2EE key associated with the LID identity to create the E2EE session. The server does not expose the phone numbers of the participants to the client. Then, in step 206, the client encrypts the group message using the LID-based E2EE session. In step 208, the client sends the encrypted message to the server.
[0035] In step 210, the server receives the encrypted message. In step 212, the server forwards the encrypted message to the recipient's device with the sender's identity as the sender's LID. In step 214, the recipient's device decrypts the encrypted message by creating an E2EE session using its own LID-based E2EE key and the sender's LID-based key. In step 216, the recipient's device decrypts the message using the E2EE session and displays the message to the recipient.
[0036] In step 218, the recipient may choose to reply to the message. In step 228, the server forwards the encrypted reply message to all group participants including the sender's device. In step 232, the sender's device decrypts the reply message using the E2EE session and displays the reply message to the sender. The sender and recipient may continue the conversation by exchanging encrypted messages in the same manner. The E2EE session key may be regenerated for each message to ensure message security. The conversation may be ended by the sender or the recipient, and the E2EE session key may be deleted from the client and the server.
[0037] Process 200 can provide a secure method for group messaging in which user phone numbers are obfuscated. Using LID-based identifiers in the client-server protocol, and using LID-based E2EE sessions and keys, ensures that the user's phone number is not exposed to other users in the group. The server can maintain a mapping between LIDs and phone numbers, but only shares mappings for users who have explicitly allowed sharing of their phone numbers. These phone numbers are selectively attached by the server to the message sent to the recipient. The receiving client can then display these phone numbers in the user interface (UI). For other clients with which the phone number is not shared, any other display name, such as the sender's profile name or a phone number with some numbers masked, can be attached by the server to the message sent to the recipient. In this case, the receiving client will never learn the sender's phone number, and the sender's profile name or masked phone number can be displayed in the UI. Process 200 can allow excellent support for 1:1 LID threads, which can be used for secure conversations with business, or when the user does not want to share his phone number. Process 200 can support an upgrade path to a thread based on a regular phone number.
[0038] The disclosed system or systems solve a problem in conventional secure communication technology associated with computer technology, namely, the technical problem of using a phone number to identify a device, account, or user without exposing the phone number. The disclosed system solves this technical problem by providing a solution that is also rooted in computer technology, namely, by providing phone number obfuscation, for example, on social media platforms and instant messaging platforms. The disclosed subject technology also provides improvements to the functionality of computers themselves, as it improves processing and efficiency in secure communications.
[0039] Figure 3 A system 300 configured for secure communications according to certain aspects of the present disclosure is shown. One or more computing platforms 302 can be configured to communicate with one or more remote platforms 304 according to a client / server architecture, a peer-to-peer architecture, and / or other architectures. One or more remote platforms 304 can be configured to communicate with other remote platforms via one or more computing platforms 302 and / or according to a client / server architecture, a peer-to-peer architecture, and / or other architectures. A user can access the system 300 via the one or more remote platforms 304.
[0040] One or more computing platforms 302 may be configured by machine-readable instructions 306. Machine-readable instructions 306 may include one or more instruction modules. These instruction modules may include computer program modules. Such instruction modules may include one or more of the following: client device registration module 308; identifier generation module 310; confirmation reception module 312; identifier implementation module 314; display name generation module 316; server query module 318; display name display module 320; version sending module 322; confirmation verification module 324; email message sending module 326; and / or other instruction modules.
[0041] The client device registration module 308 may be configured to register a client device based on a user identifier. Registration of the client device may be performed by a mobile application. Registration may include sending an SMS message including a verification code to the client device based on the user identifier. The user identifier may include a phone number. During communication, the user identifier may be obscured in the user interface. The user identifier may be associated with a social media account.
[0042] The identifier generation module 310 may be configured to generate an internal supplemental identifier associated with the user identifier. The internal supplemental identifier may be stored in a database associated with the social media platform. The internal supplemental identifier may be generated based on a random number generator.
[0043] The confirmation receiving module 312 can be configured to receive a confirmation of the SMS message from the client device based on the user identifier. The confirmation can include a verification code. The identifier implementation module 314 can be configured to implement an internal supplemental identifier between the client-side transaction and the server-side transaction.
[0044] The display name generation module 316 may be configured to generate a display name associated with the internal supplemental identifier. The display name may be unique to the user identifier. The display name may include a summary name or a randomly selected number. The display name may be randomly generated based on a set of predefined rules. The display name may be different from the user identifier.
[0045] The server query module 318 may be configured to query the server-to-user identifier for an internal supplemental identifier. The internal supplemental identifier may not be recognizable to entities external to the consumer application server (e.g., a social media server). The internal supplemental identifier may be encrypted for communication between the client device and the server.
[0046] The display name display module 320 may be configured to display the display name in a user interface during communications by the client device. The version sending module 322 may be configured to send an encrypted version of the internal supplemental identifier to the client device for use in subsequent transactions. The confirmation verification module 324 may be configured to verify confirmation of the SMS message before generating the internal supplemental identifier.
[0047] The email message sending module 326 can be configured to send an email message including a verification code to the client device. The verification code can be valid for a limited period of time. The verification code can be generated based on a cryptographic hash function. The verification code can be sent to a phone number associated with the user identifier. In some embodiments, the mapping between the internal supplemental identifier and the user identifier can be 1:1.
[0048] In some embodiments, one or more computing platforms 302, one or more remote platforms 304, and / or external resources 328 may be operably linked via one or more electronic communication links. For example, such electronic communication links may be established at least in part via a network such as the Internet and / or other networks. It will be understood that this is not intended to be limiting, and the scope of the present disclosure includes embodiments in which one or more computing platforms 302, one or more remote platforms 304, and / or external resources 328 may be operably linked via some other communication medium.
[0049] A given remote platform 304 may include one or more processors configured to execute computer program modules. These computer program modules may be configured to enable an expert or user associated with the given remote platform 304 to interact with the system 300 and / or external resources 328, and / or to provide other functionality attributed herein to one or more remote platforms 304. As non-limiting examples, a given remote platform 304 and / or a given computing platform 302 may include one or more of the following: a server; a desktop computer; a laptop computer; a handheld computer; a tablet computing platform; a netbook; a smart phone; a game console; and / or other computing platforms.
[0050] External resources 328 may include information sources external to system 300, external entities participating in system 300, and / or other resources. In some implementations, some or all of the functionality attributed herein to external resources 328 may be provided by resources included in system 300.
[0051] The one or more computing platforms 302 may include electronic storage 330, one or more processors 332, and / or other components. The one or more computing platforms 302 may include communication links or ports for enabling information exchange with a network and / or other computing platforms. Figure 3 The illustration of one or more computing platforms 302 in FIG. 1 is not intended to be limiting. The one or more computing platforms 302 may include multiple hardware components, software components, and / or firmware components that operate in conjunction to provide the functionality attributed herein to the one or more computing platforms 302. For example, the one or more computing platforms 302 may be implemented as a cloud of computing platforms that operate in conjunction with the one or more computing platforms 302.
[0052] Electronic storage 330 may include non-transitory storage media that electronically stores information. The electronic storage media of electronic storage 330 may include one or both of the following: system storage provided integrally with one or more computing platforms 302 (i.e., substantially non-removable); and / or removable storage that is removably connected to one or more computing platforms 302, for example, via a port (e.g., a universal serial bus (USB) port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). Electronic storage 330 may include one or more of the following: optically readable storage media (e.g., optical disks, etc.); magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy disk drive, etc.); charge-based storage media (e.g., electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), etc.); solid-state storage media (e.g., flash drives, etc.); and / or other electronically readable storage media. Electronic storage 330 may include one or more virtual storage resources (e.g., cloud storage, virtual private networks, and / or other virtual storage resources). Electronic storage 330 may store software algorithms, information determined by processor(s) 332, information received from computing platform(s) 302, information received from remote platform(s) 304, and / or other information that enables computing platform(s) 302 to function as described herein.
[0053] The one or more processors 332 may be configured to provide information processing capabilities in the one or more computing platforms 302. Thus, the one or more processors 332 may include one or more of the following: a digital processor; an analog processor; a digital circuit designed to process information; an analog circuit designed to process information; a state machine; and / or other mechanisms for electronically processing information. Figure 3308, 310, 312, 314, 316, 318, 320, 322, 324 and / or 326, and / or other modules. One or more processors 332 may be configured to execute modules 308, 310, 312, 314, 316, 318, 320, 322, 324 and / or 326, and / or other modules by the following components: software; hardware; firmware; some combination of software, hardware and / or firmware; and / or other mechanisms for configuring processing capabilities on one or more processors 332. As used herein, the term "module" may refer to any component or group of components that perform the functions attributed to the module. This may include one or more physical processors, processor readable instructions, circuitry, hardware, storage media, or any other component during execution of processor readable instructions.
[0054] It should be understood that although modules 308, 310, 312, 314, 316, 318, 320, 322, 324, and / or 326 are Figure 3 308, 310, 312, 314, 316, 318, 320, 322, 324, and / or 326 may be implemented remotely from other modules. The description of the functionality provided by the different modules 308, 310, 312, 314, 316, 318, 320, 322, 324, and / or 326 described below is for purposes of illustration and is not intended to be limiting, as any of the modules 308, 310, 312, 314, 316, 318, 320, 322, 324, and / or 326 may provide more functionality or less functionality than described. For example, one or more of the modules 308, 310, 312, 314, 316, 318, 320, 322, 324, and / or 326 may be deleted, and some or all of their functionality may be provided by other modules in the modules 308, 310, 312, 314, 316, 318, 320, 322, 324, and / or 326. As another example, the one or more processors 332 may be configured to execute one or more additional modules that may perform some or all of the functionality attributed below to one of the modules 308, 310, 312, 314, 316, 318, 320, 322, 324, and / or 326.
[0055] In a particular embodiment, one or more objects (e.g., content or other types of objects) of a computing system may be associated with one or more privacy settings. One or more objects may be stored on or otherwise associated with any suitable computing system or application, such as a social networking system, a client system, a third-party system, a social networking application, a messaging application, a photo sharing application, or any other suitable computing system or application. Although the examples discussed herein are in the context of an online social network, these privacy settings may be applied to any other suitable computing system. The privacy settings (or "access settings") of an object may be stored in any suitable manner, such as being associated with the object, in an index on an authorization server, in another suitable manner, or in any combination of these manners. The privacy settings of an object may specify how the object (or specific information associated with the object) may be accessed, stored, or otherwise used (e.g., viewed, shared, modified, copied, executed, presented, or identified) within an online social network. When the privacy settings of an object allow a particular user or other entity to access the object, the object may be described as "visible" relative to the user or other entity. By way of example and not limitation, a user of an online social network may specify a privacy setting for a user profile page that identifies a set of users who may access work experience information on the user profile page, thereby denying other users access to that information.
[0056] In certain embodiments, the privacy settings of an object may specify a "blocked list" of users or other entities that should not be allowed to access certain information associated with the object. In certain embodiments, the blocked list may include third-party entities. The blocked list may specify one or more users or entities for whom the object is not visible. As an example and not limitation, a user may specify a group of users that may not access an album associated with the user, thereby denying access to the album to these users (while also potentially allowing certain users not in the group of users to access the album). In certain embodiments, privacy settings may be associated with specific social graph elements. The privacy settings of a social graph element (e.g., a node or edge) may specify how an online social network may be used to access the social graph element, information associated with the social graph element, or an object associated with the social graph element. As an example and not limitation, a specific concept node corresponding to a specific photo may have a privacy setting that specifies that only the user tagged in the photo and the friends of the user tagged in the photo can access the photo. In certain embodiments, privacy settings may allow a user to choose to have or not have: the social networking system store / record, or share its content, information, or actions with other systems (e.g., third-party systems). Although this disclosure describes using particular privacy settings in particular manners, this disclosure contemplates using any suitable privacy settings in any suitable manner.
[0057] In certain embodiments, privacy settings may be based on one or more nodes or edges of a social graph. Privacy settings may be specified for one or more edges or edge types of a social graph, or may be specified relative to one or more nodes, or node types of a social graph. A privacy setting applied to a specific edge connecting two nodes may control whether the relationship between two entities corresponding to these nodes is visible to other users of the online social network. Similarly, a privacy setting applied to a specific node may control whether the user or concept corresponding to the node is visible to other users of the online social network. As an example and not limitation, a first user may share an object to a social networking system. The object may be associated with a concept node connected to the user node of the first user by an edge. The first user may specify a privacy setting applied to a specific edge of the concept node connected to the object, or may specify a privacy setting applied to all edges connected to the concept node. As another example and not limitation, the first user may share a group of objects (e.g., a group of images) of a specific object type. The first user may specify a privacy setting for all objects associated with the specific object type of the first user as having a specific privacy setting (e.g., specifying that all images posted by the first user are visible only to the friends of the first user and / or users tagged in the image).
[0058] In certain embodiments, the social networking system may present a "privacy wizard" to the first user (e.g., within a webpage, module, one or more dialog boxes, or any other suitable interface) to assist the first user in specifying one or more privacy settings. The privacy wizard may display instructions, appropriate privacy-related information, current privacy settings, one or more input fields for receiving one or more inputs from the first user to change or confirm the specified privacy settings, or any suitable combination thereof. In certain embodiments, the social networking system may provide the first user with a "control panel" function that may display the first user's current privacy settings to the first user. The control panel function may be displayed to the first user at any suitable time (e.g., after input from the first user invoking the control panel function, after a particular event or triggering action occurs). The control panel function may allow the first user to modify one or more of the first user's current privacy settings at any time and in any suitable manner (e.g., redirecting the first user to the privacy wizard).
[0059] The privacy settings associated with an object can specify any suitable granularity at which access is allowed or denied. As an example and not limitation, access or denial of access can be specified for the following users: a specific user (e.g., only me, my roommate, and my boss), users within a specific degree of separation (e.g., friends, or friends of friends), user groups (e.g., a gaming club, my family), user networks (e.g., employees of a specific employer, students or alumni of a specific university), all users ("public"), no users ("private"), users of third-party systems, specific applications (e.g., third-party applications, external websites), other suitable entities, or any combination of the above users or entities. Although the present disclosure describes a specific granularity at which access is allowed or denied, the present disclosure contemplates any suitable granularity at which access is allowed or denied.
[0060] In certain embodiments, one or more servers may be authorization / privacy servers for implementing privacy settings. In response to a request from a user (or other entity) for a particular object stored in a data repository, the social networking system may send a request for the object to the data repository. The request may identify the user associated with the request, and the request may only be sent to the user (or the user's client system) if the authorization server determines that the user is authorized to access the object based on the privacy settings associated with the object. If the requesting user is not authorized to access the object, the authorization server may prevent the requested object from being retrieved from the data repository, or may prevent the requested object from being sent to the user. In the context of a search query, the object may be provided as a search result only if the querying user is authorized to access the object, for example, if the privacy settings of the object allow the object to be presented to the querying user, discovered by the querying user, or otherwise visible to the querying user. In certain embodiments, an object may represent content visible to a user through a user's news feed. As an example and not limitation, one or more objects may be visible to a user's "trends" page. In certain embodiments, an object may correspond to a specific user. The object may be content associated with the particular user, or may be an account of the particular user or information stored on a social networking system or other computing system. By way of example and not limitation, a first user may view one or more second users of an online social network through a "people you may know" feature of the online social network or by viewing the first user's friend list. By way of example and not limitation, a first user may specify that they do not want to see an object associated with a particular second user in their newsfeed or friend list. If the privacy setting of the object does not allow it to appear in front of the user, be sent by the user, but the present disclosure contemplates implementing the privacy setting in any suitable manner.
[0061] In certain embodiments, different objects of the same type associated with a user may have different privacy settings. Different types of objects associated with a user may have different types of privacy settings. As an example and not limitation, a first user may specify that the first user's status update is public, but any images shared by the first user are only visible to the first user's friends on an online social network. As another example and not limitation, a user may specify different privacy settings for different types of entities, such as individual users, friends of friends, followers, user groups, or corporate entities. As another example and not limitation, a first user may specify a group of users who may view a video posted by the first user while preventing the video from being visible to the first user's employer. In certain embodiments, different privacy settings may be provided for different user groups or user communities. As an example and not limitation, a first user may specify that other users at the same university as the first user may view the first user's photos, but other users who are family members of the first user may not view those same photos.
[0062] In certain embodiments, the social networking system may provide one or more default privacy settings for each object of a certain object type. The privacy setting for an object that is set as the default may be changed by a user associated with the object. As an example and not limitation, all images posted by a first user may have a default privacy setting that is visible only to the first user's friends, and for a particular image, the first user may change the privacy setting for the image to be visible to friends and friends of friends.
[0063] In certain embodiments, privacy settings may allow a first user to specify (e.g., by opting out, by not opting in) whether a social networking system may receive, collect, record, or store specific objects or information associated with the user for any purpose. In certain embodiments, privacy settings may allow a first user to specify whether a specific application or process may access, store, or use specific objects or information associated with the user. Privacy settings may allow a user to opt in or opt out of having a specific application or process access, store, or use an object or information. The social networking system may access such information to provide a specific function or service to the first user, but the social networking system may not access the information for any other purpose. Prior to accessing, storing, or using such objects or information, the social networking system may prompt the user to provide a privacy setting that specifies which applications or processes, if any, may access, store, or use the object or information before allowing any such action. By way of example and not limitation, a first user may send a message to a second user via an application associated with an online social network (e.g., a messaging application), and may specify a privacy setting that the social networking system should not store such messages.
[0064] In certain embodiments, a user may specify whether certain types of objects or information associated with a first user may be accessed, stored, or used by the social networking system. By way of example and not limitation, a first user may specify that images sent by the first user through the social networking system may not be stored by the social networking system. By way of another example and not limitation, a first user may specify that messages sent from the first user to a particular second user may not be stored by the social networking system. By way of yet another example and not limitation, a first user may specify that all objects sent via a particular application may be saved by the social networking system.
[0065] In certain embodiments, privacy settings may allow a first user to specify whether a particular object or information associated with the first user may be accessed from a particular client system or a third-party system. Privacy settings may allow a first user to choose to allow or not allow access to an object or information from a particular device (e.g., a phone book on a user's smartphone), from a particular application (e.g., a messaging application), or from a particular system (e.g., an email server). The social networking system may provide default privacy settings for each device, system, or application, and / or the first user may be prompted to specify a specific privacy setting for each context. As an example and not limitation, a first user may utilize a location services feature of a social networking system to provide recommendations for restaurants or other places near the user. The first user's default privacy settings may specify that the social networking system may use location information provided from the first user's client device to provide location-based services, but the social networking system may not store the first user's location information or provide it to any third-party system. The first user may then update the privacy settings to allow a third-party image sharing application to use the location information in order to geotag photos.
[0066] In certain embodiments, privacy settings may allow a user to specify one or more geographic locations where an object may be accessed. Access or denial of access to an object may depend on the geographic location of the user attempting to access the object. As an example and not limitation, a user may share an object and specify that only users in the same city may access or view the object. As another example and not limitation, a first user may share an object and specify that the object may be visible to a second user only when the first user is in a particular location. If the first user leaves the particular location, the object is no longer visible to the second user. As another example and not limitation, the first user may specify that an object may only be visible to a second user within a threshold distance from the first user. If the user subsequently changes location, the original second user who had access to the object may lose access, while a new set of second users may gain access when they come within a threshold distance of the first user.
[0067] In certain embodiments, changes to privacy settings may take effect retroactively, affecting the visibility of objects and content shared prior to the change. As an example and not limitation, a first user may share a first image and specify that the first image is public to all other users. At a later time, the first user may specify that any images shared by the first user should be made visible only to the first user group. The social networking system may determine that the privacy setting also applies to the first image and make the first image visible only to the first user group. In certain embodiments, changes to privacy settings may take effect only later. Continuing with the example above, if the first user changes the privacy setting and then shares the second image, the second image may be visible only to the first user group, but the first image may remain visible to all users. In certain embodiments, in response to a user action to change the privacy setting, the social networking system may also prompt the user to indicate whether the user wants to apply the change to the privacy setting retroactively. In certain embodiments, the user's change to the privacy setting may be a one-time change specific to one object. In certain embodiments, the user's change to the privacy setting may be a global change for all objects associated with the user.
[0068] In certain embodiments, in response to a triggering action associated with a first user, the social networking system may determine that the first user may want to change one or more privacy settings. The triggering action may be any suitable action on an online social network. By way of example and not limitation, the triggering action may be a change in the relationship between a first user and a second user of an online social network (e.g., "un-friending" a user, changing the relationship status between users). In certain embodiments, upon determining that a triggering action has occurred, the social networking system may prompt the first user to change the privacy settings regarding the visibility of an object associated with the first user. The prompt may redirect the first user to a workflow process for editing the privacy settings regarding one or more entities associated with the triggering action. The privacy settings associated with the first user may be changed only in response to explicit input from the first user, and may not be changed without the approval of the first user. By way of example and not limitation, the workflow process may include providing the first user with the current privacy settings regarding a second user or a group of users (e.g., unmarking the first user or the second user from a particular object, changing the visibility of a particular object relative to a second user or a group of users), and receiving an instruction from the first user to change the privacy settings based on any of the methods described herein, or to maintain the existing privacy settings.
[0069] In certain embodiments, a user may be required to provide verification of a privacy setting before the user is allowed to perform a certain action on an online social network, or may be required to provide verification before changing a certain privacy setting. When performing a certain action or changing a certain privacy setting, a prompt may be presented to the user to remind the user of his or her current privacy setting and to request the user to verify the privacy setting for the certain action. In addition, before performing a certain action, the user may be required to provide confirmation, double confirmation, identity verification, or other suitable types of verification, and the action may not be completed before providing such verification. As an example and not limitation, a user's default privacy setting may indicate that a person's relationship status is visible to all users (i.e., "public"). However, if the user changes his or her relationship status, the social networking system may determine that such an action may be sensitive and may prompt the user to confirm that his or her relationship status should remain public before proceeding. As another example and not limitation, a user's privacy setting may specify that the user's posts are only visible to the user's friends. However, if the user changes the privacy setting of his or her posts to public, the social networking system may prompt the user with a reminder that the current privacy setting of the user's posts is only visible to friends, and a warning that the change will make all of the user's past posts visible to the public. The user may then be required to provide a second verification, enter authentication credentials, or provide other types of verification before changes to the privacy settings are made. In certain embodiments, the user may be required to provide verification of the privacy settings periodically. Prompts or reminders may be sent to the user periodically based on the amount of time that has passed or the number of user actions. As an example and not limitation, the social networking system may send a reminder to the user every six months or after every ten photo posts to confirm his or her privacy settings. In certain embodiments, privacy settings may also allow the user to control access to objects or information on a per-request basis. As an example and not limitation, the social networking system may notify the user each time a third-party system attempts to access information associated with the user and require the user to provide verification that access should be allowed before proceeding.
[0070] The techniques described herein may be implemented as one or more methods performed by one or more physical computing devices; may be implemented as one or more non-transitory computer-readable storage media storing instructions that, when executed by one or more computing devices, cause the one or more methods to be performed; or may be implemented as one or more physical computing devices that are specifically configured with a combination of hardware and software that causes the one or more methods to be performed.
[0071] Figure 4 An example flow chart (eg, process 400) for secure communications according to certain aspects of the present disclosure is shown. For purposes of explanation, reference is made herein to Figures 1 to 3An example process 400 is described. Further for purposes of explanation, the steps of the example process 400 are described herein as occurring in series or linearly. However, multiple instances of the example process 400 may occur in parallel. For purposes of explaining the subject technology, reference will be made to Figures 1 to 3 Let's discuss process 400.
[0072] At step 402, process 400 may include registering a client device based on a user identifier. Registration may include sending an SMS message including a verification code to the client device based on the user identifier. At step 404, process 400 may include generating an internal supplemental identifier associated with the user identifier. At step 406, process 400 may include receiving a confirmation of the SMS message from the client device based on the user identifier. The confirmation may include the verification code. At step 408, process 400 may include implementing the internal supplemental identifier between the client-side transaction and the server-side transaction. At step 410, process 400 may include generating a display name associated with the internal supplemental identifier. The display name may be different from the user identifier.
[0073] For example, if the above combination Figure 3 As described, at step 402, process 400 may include registering a client device based on a user identifier through client device registration module 308. Registration may include sending an SMS message including a verification code to the client device based on the user identifier. At step 404, process 400 may include generating an internal supplemental identifier associated with the user identifier through identifier generation module 310. At step 406, process 400 may include receiving a confirmation of the SMS message from the client device based on the user identifier through confirmation reception module 312. The confirmation may include the verification code. At step 408, process 400 may include implementing the internal supplemental identifier between the client-side transaction and the server-side transaction through identifier implementation module 314. At step 410, process 400 may include generating a display name associated with the internal supplemental identifier through display name generation module 316. The display name may be different from the user identifier.
[0074] According to one aspect, the user identifier comprises a telephone number.
[0075] According to an aspect, the internal supplemental identifier is not recognizable to entities external to the social media server, and wherein the mapping between the internal supplemental identifier and the user identifier is 1:1.
[0076] According to one aspect, process 400 can include querying a server-to-user identifier for an internal supplemental identifier.
[0077] According to one aspect, process 400 can include displaying a display name in a user interface during communications by a client device.
[0078] According to one aspect, the display name comprises a summary name or a randomly selected number.
[0079] According to one aspect, the internal supplemental identifier is encrypted for communication between the client device and the server.
[0080] According to one aspect, process 400 can include sending an encrypted version of the internal supplemental identifier to the client device for use in a subsequent transaction.
[0081] According to one aspect, the verification code is valid for a limited period of time.
[0082] According to one aspect, the display name is unique to the user identifier.
[0083] Figure 5 5 is a block diagram illustrating an exemplary computer system 500 with which aspects of the subject technology may be implemented. In some aspects, computer system 500 may be implemented using hardware or a combination of software and hardware in a dedicated server, integrated into another entity, or distributed across multiple entities.
[0084] The computer system 500 (e.g., server and / or client) includes a bus 508 or other communication mechanism for transmitting information, and a processor 502 coupled to the bus 508 for processing information. As an example, the computer system 500 can be implemented with one or more processors 502. The processor 502 can be a general-purpose microprocessor, a microcontroller, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a state machine, gate logic, a plurality of discrete hardware components, or any other suitable entity that can perform calculations on information or other manipulations of information.
[0085] In addition to hardware, the computer system 500 may also include code that creates an execution environment for the computer program in question, such as code that constitutes the following stored in the included memory 504: processor firmware, protocol stack, database management system, operating system, or a combination of one or more of them, the memory being, for example, random access memory (Random Access Memory, RAM), flash memory, read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable Read-Only Memory, PROM), erasable PROM (Erasable PROM, EPROM), registers, hard disk, removable disk, compact disc read-only memory (CD-ROM), digital video disc (DVD) or any other suitable storage device, the memory being coupled to the bus 508 for storing information and instructions to be executed by the processor 502. The processor 502 and the memory 504 may be supplemented by, or incorporated in, special purpose logic circuitry.
[0086] The instructions may be stored in the memory 504 and may be implemented in one or more computer program products, i.e., one or more modules of a plurality of computer program instructions, which are encoded on a computer-readable medium for execution by the computer system 500 or for controlling the operation of the computer system 500, and according to any method known to those skilled in the art, the computer program instructions include but are not limited to computer languages such as data-oriented languages (e.g., SQL, dBase), system languages (e.g., C, object-oriented programming languages extending C (Objective-C), C++, assembly), structured languages (e.g., Java, .NET), and application languages (e.g., PHP, Ruby, Perl, Python). The instructions may also be implemented in computer languages such as array languages, aspect-oriented languages, assembly languages, authoring languages, command line interface languages, compiled languages, concurrent languages, curly-bracket languages, data flow languages, data structured languages, declarative languages, esoteric languages, extension languages, fourth generation languages, functional languages, interactive mode languages, interpreted languages, iterative languages, list-based languages, little languages, logic-based languages, machine languages, macro languages, metaprogramming languages, multiparadigm languages, numerical analysis, non-English-based languages, class-based object-oriented languages, prototype-based object-oriented languages, off-side rule languages, procedural languages, reflective languages, rule-based languages, scripting languages, stack-based languages, synchronous languages, syntax handling languages, visual languages, wirth languages, and XML-based languages. Memory 504 may also be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 502 .
[0087] Computer programs as discussed herein do not necessarily correspond to files in a file system. A program may be stored in a portion of a file storing other programs or data (e.g., one or more scripts stored in a markup language document), a single file dedicated to the program in question, or multiple collaborative files (e.g., a file storing one or more modules, subroutines, or partial codes). A computer program may be deployed to execute on one or more computers, which are located at a site or distributed across multiple sites and interconnected by a communication network. The processes and logic flows described in this specification may be performed by one or more programmable processors, which execute one or more computer programs to perform functions by operating on input data and generating outputs.
[0088] The computer system 500 also includes a data storage device 506 such as a disk or optical disk, which is coupled to the bus 508 for storing information and instructions. The computer system 500 can be coupled to various devices via an input / output module 510. The input / output module 510 can be any input / output module. An exemplary input / output module 510 includes a data port such as a USB port. The input / output module 510 is configured to be connected to a communication module 512. An exemplary communication module 512 includes a network interface card, such as an Ethernet card and a modem. In some aspects, the input / output module 510 is configured to be connected to multiple devices, such as an input device 514 and / or an output device 516. An exemplary input device 514 includes a keyboard and a pointing device (e.g., a mouse or a tracking ball), and a user can provide input to the computer system 500 through the keyboard and the pointing device. Other types of input devices 514 can also be used to provide interaction with the user, such as a tactile input device, a visual input device, an audio input device, or a brain-computer interface device. For example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and the input from the user may be received in any form including sound input, voice input, tactile input, or brain wave input. Exemplary output device 516 includes a display device for displaying information to the user, such as a liquid crystal display (LCD) monitor.
[0089] According to one aspect of the present disclosure, the above-mentioned gaming system can be implemented using a computer system 500 in response to a processor 502 executing one or more sequences of one or more instructions contained in a memory 504. These instructions can be read into the memory 504 from another machine-readable medium (e.g., a data storage device 506). The execution of the sequence of instructions contained in the main memory 504 causes the processor 502 to perform the process steps described herein. One or more processors in a multi-processing configuration can also be used to execute the sequence of instructions contained in the memory 504. In alternative aspects, hard-wired circuits can be used to replace software instructions, or hard-wired circuits can be used in combination with software instructions to implement various aspects of the present disclosure. Therefore, aspects of the present disclosure are not limited to any specific combination of hardware circuits and software.
[0090] Aspects of the subject matter described in this specification may be implemented in a computing system that includes a back-end component (e.g., a data server), or includes a middleware component (e.g., an application server), or includes a front-end component (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described in this specification); or aspects of the subject matter described in this specification may be implemented in any combination of one or more such back-end components, one or more such middleware components, or one or more such front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). The communication network may, for example, include any one or more of a LAN, a WAN, the Internet, etc. In addition, for example, the communication network may include, but is not limited to, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star bus network, a tree or hierarchical network, etc. The communication module may, for example, be a modem or an Ethernet card.
[0091] Computer system 500 can include client and server.Client and server are usually far away from each other, and usually interact through communication network.The relationship between client and server is generated by means of computer programs running on respective computers and having client-server relationship between each other.Computer system 500 can be but not limited to, for example, desktop computer, laptop computer or tablet computer.Computer system 500 can also be embedded in another device, and this another device is for example but not limited to: mobile phone, personal digital assistant (PDA), mobile audio player, global positioning system (Global Positioning System, GPS) receiver, video game console, and / or TV set-top box.
[0092] As used herein, the term "machine-readable storage medium" or "computer-readable medium" refers to any one or more media that participate in providing instructions to processor 502 for execution. Such media can take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as data storage device 506. Volatile media include dynamic memory, such as memory 504. Transmission media include coaxial cables, copper wires, and optical fibers, including the wires that comprise bus 508. Common forms of machine-readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tapes, any other magnetic media, CD-ROMs, DVDs, any other optical media, punch cards, paper tapes, any other physical media with a pattern of holes, RAM, PROMs, EPROMs, FLASH EPROMs, any other memory chips or cassettes, or any other media that a computer can read. The machine-readable storage medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.
[0093] When the user's computer system 500 reads the game data and provides the game, information can be read from the game data and stored in a memory device (e.g., memory 504). In addition, data from memory 504, a server accessed via a network, bus 508, or data storage device 506 can be read and loaded into memory 504. Although data is described as being found in memory 504, it will be understood that the data need not be stored in memory 504 and can be stored in other memory (e.g., data storage device 506) accessible to processor 502 or distributed across several media.
[0094] As used herein, the phrase "at least one of..." following a list of items, together with the terms "and" or "or" used to separate any of the items, modifies the list as a whole, rather than modifying each member of the list (i.e., each item). The phrase "at least one of..." does not require selection of at least one item; rather, the phrase is meant to include at least one of any of the items, and / or at least one of any combination of the items, and / or at least one of each of the items. As an example, the phrase "at least one of A, B, and C" or "at least one of A, B, or C" both refer 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.
[0095] To the extent the terms "including," "having," and the like are used in this specification or the claims, such terms are intended to be open ended in a manner similar to the term "comprising" when used as a transitional word in the claims being interpreted as "comprising." The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
[0096] Unless otherwise specified, reference to an element in the singular is not intended to mean "one and only one," but rather "one or more." All structural and functional equivalents to the elements of the various configurations described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the subject technology. In addition, nothing disclosed herein is intended to be dedicated to the public, regardless of whether such disclosure is explicitly recorded in the above description.
[0097] Although this specification contains many details, these details should not be interpreted as limitations on the scope of the content that may be claimed, but should be interpreted as descriptions of specific embodiments of the subject matter. Certain features described in the context of different embodiments in this specification may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented separately or in any suitable sub-combination in multiple embodiments. In addition, although features may be described above as working in certain combinations and even initially claimed as such, in some cases, one or more features from the claimed combination may be removed from the combination, and the claimed combination may be directed to a sub-combination or a variation of the sub-combination.
[0098] The subject matter of this specification has been described in particular aspects, but other aspects may be implemented and are within the scope of the following claims. For example, although the operations are depicted in a particular order in the drawings, this should not be understood as requiring the operations to be performed in the particular order shown or in a continuous order, or requiring the execution of all the operations shown to achieve the desired results. The actions described in the claims can be performed in different orders and still achieve the desired results. As an example, the processes depicted in the drawings do not necessarily require the particular order shown or the continuous order to achieve the desired results. In some cases, multi-tasking parallel processing may be advantageous. In addition, the separation of the various system components in the above-mentioned multiple aspects should not be understood as requiring such separation in all aspects, but it should be understood that the described program components and systems can generally be integrated together in one software product or packaged in multiple software products. Other variations are within the scope of the following claims.
Claims
1. A method for obfuscating user identifiers on a social media platform, the method comprising: registering the client device based on a user identifier, wherein registering comprises sending a short message service SMS message including a verification code to the client device based on the user identifier; generating an internal supplemental identifier associated with the user identifier; receiving, based on the user identifier, a confirmation of the SMS message from the client device, wherein the confirmation includes the verification code; implementing the internal supplemental identifier between a client-side transaction and a server-side transaction; and A display name is generated that is associated with the internal supplemental identifier, wherein the display name is different from the user identifier.
2. The method according to claim 1, wherein: The user identifier includes a telephone number.
3. The method according to claim 1, wherein: The internal supplemental identifier is not recognizable to entities external to the social media server, and wherein the mapping between the internal supplemental identifier and the user identifier is one-to-one.
4. The method according to claim 1, further comprising: A server-to-user identifier of the internal supplemental identifier is queried.
5. The method according to claim 1, further comprising: The display name is displayed in a user interface during communications by the client device.
6. The method according to claim 1, wherein: The display name includes a summary name or a randomly selected number.
7. The method according to claim 1, wherein: The internal supplemental identifier is encrypted for communication between the client device and a server.
8. The method according to claim 1, further comprising: An encrypted version of the internal supplemental identifier is sent to the client device for use in a subsequent transaction.
9. The method according to claim 1, wherein: The verification code is valid for a limited period of time.
10. The method according to claim 1, wherein: The display name is unique to the user identifier.
11. A system configured to obfuscate user identifiers on a social media platform, the system comprising: One or more hardware processors configured by machine-readable instructions to: registering a client device based on a user identifier, wherein the user identifier comprises a telephone number, and wherein registering comprises sending a short message service (SMS) message comprising a verification code to the client device based on the user identifier; generating an internal supplemental identifier associated with the user identifier, wherein the internal supplemental identifier is not recognizable to an entity external to the social media server, and wherein the mapping between the internal supplemental identifier and the user identifier is one-to-one; receiving, based on the user identifier, a confirmation of the SMS message from the client device, wherein the confirmation includes the verification code; implementing the internal supplemental identifier between a client-side transaction and a server-side transaction; and A display name is generated that is associated with the internal supplemental identifier, wherein the display name is different from the user identifier, and wherein the display name is unique to the user identifier.
12. The system according to claim 11, wherein: The one or more hardware processors are further configured by the machine-readable instructions to verify the confirmation of the SMS message prior to generating the internal supplemental identifier.
13. The system according to claim 11, wherein: The user identifier is obfuscated in the user interface during communications.
14. The system according to claim 11, wherein: The one or more hardware processors are further configured by the machine-readable instructions to send an email message including a verification code to the client device.
15. The system according to claim 11, wherein: The user identifier is associated with a social media account.
16. The system according to claim 11, wherein: The internal supplemental identifier is stored in a database associated with the social media platform.
17. The system of claim 11, wherein: The verification code is generated based on a cryptographic hash function.
18. The system of claim 11, wherein: The display name is randomly generated based on a set of predefined rules.
19. The system of claim 11, wherein: The verification code is sent to a telephone number associated with the user identifier.
20. A non-transitory computer-readable storage medium having instructions thereon, the instructions being executable by one or more processors to perform a method for obfuscating a user identifier on a social media platform, the method comprising: registering a client device based on a user identifier, wherein the user identifier comprises a telephone number, and wherein registering comprises sending an SMS message comprising a verification code to the client device based on the user identifier; generating an internal supplemental identifier associated with the user identifier, wherein the internal supplemental identifier is not recognizable to an entity external to the social media server, and wherein the mapping between the internal supplemental identifier and the user identifier is one-to-one; receiving, based on the user identifier, a confirmation of the SMS message from the client device, wherein the confirmation includes the verification code; implementing the internal supplemental identifier between the client-side transaction and the server-side transaction; generating a display name associated with the internal supplemental identifier, wherein the display name is different from the user identifier, and wherein the display name is unique to the user identifier; and The display name is displayed in a user interface during communications by the client device.