CN110521172A - 用于处理短暂内容消息的方法和系统 - Google Patents

用于处理短暂内容消息的方法和系统 Download PDF

Info

Publication number
CN110521172A
CN110521172A CN201780089651.4A CN201780089651A CN110521172A CN 110521172 A CN110521172 A CN 110521172A CN 201780089651 A CN201780089651 A CN 201780089651A CN 110521172 A CN110521172 A CN 110521172A
Authority
CN
China
Prior art keywords
message
content
user
short duration
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780089651.4A
Other languages
English (en)
Other versions
CN110521172B (zh
Inventor
兰德尔·萨拉法
尤金·福克斯曼
布赖恩·阿克顿
简·库姆
迈克尔·B·多诺霍
艾伦·安德鲁·克雷特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WhatsApp LLC
Original Assignee
WhatsApp LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WhatsApp LLC filed Critical WhatsApp LLC
Priority to CN202210060725.4A priority Critical patent/CN114465782A/zh
Publication of CN110521172A publication Critical patent/CN110521172A/zh
Application granted granted Critical
Publication of CN110521172B publication Critical patent/CN110521172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72436User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for text messaging, e.g. short messaging services [SMS] or e-mails
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/226Delivery according to priorities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72439User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for image or video messaging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • H04W12/0431Key distribution or pre-distribution; Key agreement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04W4/14Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/088Access security using filters or firewalls

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

示例性实施例涉及用于传输短暂内容消息的技术。发送客户端可以在初始会话建立期间使用第一解密密钥来建立与消息的可能接收者的端到端加密会话。客户端可以通过服务器向接收者发送短暂内容消息,包括加密的内容和第二密钥。由于第二密钥的缺乏,服务器可能不能够检索加密内容。服务器可以过滤预期接收者的列表,并且可以将短暂内容消息转发给在过滤列表上的接收者。接收者可以从消息检索第二密钥,并使用第一和第二密钥来将加密的内容解密。从发送客户端的角度看,每当接收者列表改变时,发送客户端都可以改变第二密钥,如在短暂内容消息被传输的时间处所确定的。

Description

用于处理短暂内容消息的方法和系统
相关申请
本申请要求2017年9月15日提交的且标题为“Methods and Systems forProcessing an Ephemeral Content Message”的美国专利申请序列号15/705,999的优先权,该美国专利申请要求2017年2月17日提交的且标题为“Methods and Systems forProcessing an Ephemeral Content Message”的美国临时申请序列号62/460,136的优先权。前面提到的申请的内容通过引用被并入本文。
背景
例如通信服务、消息传送服务和社交网络服务的一些服务允许用户与其他用户交换消息。例如更新消息的一些消息可以被广播给能够查看来自发送用户(例如,发送用户的联系人或广大公众)的通信的服务用户。
附图的简要说明
图1A描绘了用于消息传送应用的示例性界面。
图1B描绘了用于共享短暂内容(ephemeral content)的示例性界面。
图1C描绘了用于捕获待共享的短暂内容的示例性界面。
图1D描绘了在共享短暂内容之后的图1B的界面。
图1E描绘了用于选择短暂内容的接收者的示例性界面。
图1F描绘了用于改变隐私设置以确定哪些用户接收共享的短暂内容的示例性界面。
图1G描绘了用于在消息传送服务中查看对话中的短暂内容的示例性界面。
图1H描绘了显示包含图像或视频的短暂内容的放大版本的示例性界面。
图1I描绘了用于回复包含图像或视频的短暂内容的示例性界面。
图1J描绘了用于显示包括对短暂内容的回复的对话的示例性界面。
图1K描绘了用于从对话中共享短暂内容的示例性界面。
图1L描绘了用于从对话中选择待共享的内容的示例性内容。
图1M描绘了显示包含音频记录的短暂内容的放大版本的示例性界面。
图1N描绘了显示包含位置的短暂内容的放大版本的示例性界面。
图1O描绘了显示包含天气报告的短暂内容的放大版本的示例性界面。
图1P描绘了显示包含新闻项目的短暂内容的放大版本的示例性界面。
图2描绘了适合于将端到端加密应用于短暂内容消息的示例性系统。
图3A描绘了表示客户端数据库的示例性数据结构。
图3B描绘了表示包括会话建立信息的消息的示例性数据结构。
图3C描绘了表示在会话建立出现之后的消息的示例性数据结构。
图3D描绘了在网络中被传输以便在端到端加密通信系统中交换媒体文件的示例性消息。
图3E描绘了示例性短暂内容消息。
图3F描绘了具有对称和非对称关系的示例性联系人列表。
图4是示出根据示例性实施例的信息交换的示例性数据流图。
图5A是描绘用于生成短暂内容消息的示例性发送客户端侧逻辑的流程图。
图5B是描绘用于处理进入内容共享界面的请求的示例性发送客户端侧逻辑的流程图。
图6A是描绘用于处理短暂内容消息的传输的示例性服务器侧逻辑的流程图。
图6B是描绘用于过滤联系人列表的示例性服务器侧逻辑的流程图。
图7A是描绘用于显示短暂内容消息的示例性接收客户端侧逻辑的流程图。
图7B是描绘用于对短暂内容排序的示例性接收客户端侧逻辑的流程图。
图8A是提供包括示例性集中式通信服务的系统的概览的框图;
图8B是提供包括示例性分布式通信服务的系统的概览的框图;
图8C更详细地描绘了图8A-8B的社交网络图;
图9是用于消息传送服务的系统的例子的框图;
图10是示出适合于供示例性实施例使用的示例计算设备的框图;
图11描绘了示例性通信架构;以及
图12是描绘示例性多载波通信设备的框图。
详细描述
示例性实施例涉及用于通过短暂内容消息来生成、处理和显示短暂内容的技术。短暂内容消息可以是例如包括短暂内容的消息。短暂内容包括被配置为仅在有限的时期内或在有限的条件下可访问的内容。当短暂内容到期时,内容可能被删除或可能变得不可访问。
尽管结合短暂内容被描述,但本文描述的一些技术(例如所描述的过滤和排序技术)可以结合短暂或非短暂内容来被使用。
在短暂内容消息的上下文中,当前的消息传送技术存在许多问题。例如,内容被选择或生成用于包含在常规消息中的方式可能过于复杂;根据内容的类型并根据内容被生成的方式,用户可以开始以不同的方式将内容发送给通信服务的另一个用户。在一个例子中,用户可以以与基于图片的消息的不同的方式生成基于文本的消息。甚至在一个类别中,入口点也可能不同。在另一个例子中,用户可以在选择先前捕获的照片时以一种方式生成基于图片的消息,以及当用户希望针对消息捕获新照片时以另一种方式生成基于图片的消息。
一些通信系统也可以允许用户回复包括内容的消息。回复可被实现的一种方式是将回复附加到在多个用户当中的现有对话,或者响应于短暂内容而开始具有指定用户组的新对话。然而,因为回复用户可能对原始消息被发送到的接收者的整个列表不是知情的,所以这种技术可能使回复被发送到没有接收到初始消息传输的另外用户。从发送基于原始内容的消息的人的角度来看,这种行为可能是不希望有的,因为那个人可能希望从消息中排除某些人或者将消息限制到明确界定的组。
此外,由于基于内容的消息被广播到用户的方式,维持隐私可能很难。例如,当基于内容的消息被广播时,基于内容的消息通常被传输到中间服务器以处理广播。优选地(从隐私的观点看),只有基于内容的消息的发送者和接收者能够检查消息的内容。然而,当广播消息被发送到服务器用于传输到接收客户端时,在不披露发送用户希望保持安全而免于拦截的信息的情况下,可能难以向广播服务器提供足够的信息以允许广播服务器发送消息。
仍然进一步地,通信系统可以采取不同的方法来减少垃圾邮件或不想要的消息。例如在社交网络中,短暂内容可能被发送给与发送用户有界定关系的那些用户(例如发送用户的朋友)。然而,不是所有的消息传送服务或社交网络服务都结合了关系或友谊的概念。例如,基于简单消息服务(SMS)的系统或另一种类型的基于联系人的消息传送服务可以允许用户基于接收者的电话号码来将消息发送到任何其他接收者。在这些例子中,在用户之间可能没有界定关系。
在涉及界定关系的系统中,如果用户有关系,系统可以通过仅允许用户与彼此通信(或以优选的形式与彼此通信)来避免垃圾邮件通信。例如,人可能只看到他们自己的朋友的基于内容的消息。在不依赖于友谊的限定概念的通信系统中,这也许是不可能的。
提供短暂内容能力的通信系统的另一个问题在于,这种系统的界面可能变得混乱,并且从其他类型的消息中辨别出短暂内容消息可能很难。例如,在允许用户提交帖子的通信系统中,短暂内容可以在帖子当中被显示。类似地,在基于消息的系统中,短暂内容可以显示在消息当中。然而,因为短暂内容通常用于传达与帖子或消息相比的不同种类的信息,所以希望检查他们的联系人的短暂内容的用户可能不希望为了查看他们的联系人的短暂内容而筛选大量帖子或消息。
类似地,当短暂内容与消息混合时,用于显示短暂内容的一种简单的技术是以短暂内容的每个相应消息/单元被接收的顺序将它排列在消息中。尽管按时间顺序排序可能对消息有意义,但与其他情况相比,用户常常对某些短暂内容更感兴趣(例如,来自他们的家人或亲密的朋友,与普通熟人相反)。因此,短暂内容的纯粹按时间顺序排序可能不产生短暂内容的特别有用的显示。
此外,当短暂内容消息包括媒体(例如,图片、视频等)时,确保接收用户能够访问媒体同时保持端到端加密可能很难。此外,短暂内容消息可以被广播给相对大数量的人。在一些短暂性模型中,对于不同的接收者,短暂内容可能在不同的时间到期。可能很难使短暂内容对对于其该短暂内容还没有到期的一些用户变得可用,同时使短暂内容对对于其该短暂内容已到期的其他用户变得不可用。
在提供短暂内容的通信系统中可能出现的另一个问题是维持对于先前传输的短暂内容的隐私的问题。在一些系统中,用户执行操作以接收关于其他用户的更新。例如,在社交网络服务中,一个用户可以与另一个用户成为朋友,或者可以关注(follow)该用户以便查看该用户的状态。这样的配置被称为关注模型。
在关注模型中,当新用户关注发送用户时,发送用户在被该新用户关注之前提交的短暂内容对于该新用户可变得可见。换句话说,在这两个用户变得有联系之前发送的短暂内容可以在联系被建立之后变得可见。这种行为对于一些用户可能是不可取的,这些用户可能希望将他们以前的短暂内容维持为对新的关注者是私密的。
关注模型也可能在保持短暂内容消息的端到端加密方面产生问题。因为用于加密短暂内容消息的许多参数(例如,消息密钥)在消息被发送的时刻处被决定,所以如果短暂内容消息稍后对新的关注者变得可用,则维持强加密也许是不可能的。如果加密被维持,新的加密会话可能需要在此之后被生成,增加了通信系统的开销。
为了解决这些和其他问题,示例性实施例提供了用于发送短暂内容消息用于通信或消息传送服务的新技术。
提供了精简的(streamlined)入口点,用于最初生成包括内容(例如短暂内容)的消息并用于回复先前发送的短暂内容消息。初始入口点聚焦于有限数量的明确界定的用例,而不管内容的类型或内容最初如何被生成。
短暂内容消息功能的初始入口可以由两个清晰且精简的用例提供,而不管媒体最初如何被捕获。系统可以向用户呈现在短暂内容消息中共享媒体或者在非短暂内容消息中(诸如在对话或聊天中)共享媒体的选项。因此,减轻了基于所生成的媒体的类型来识别适当的入口点的问题。许多不同类型的媒体可以用作短暂内容,包括图像(例如照片和GIF)、视频、天气报告、新闻、文本、标签、PTT或语音消息等。
短暂内容可以作为消息被发送,以便保持端到端加密。本文描述的各种方面便于将短暂内容封装为消息,并且进一步提供用于以有效的但仍保持发送用户的隐私的方式共享与消息有关的媒体的技术。
当用户回复短暂内容时,回复可以触发发端用户和回复用户之间的一对一聊天。因此,最初发送用户的隐私被保持。可选地,短暂内容可以最初被发送到一个组(而不是用户的整个联系人列表),并且回复可以被发送回该组。这样的实施例继续保持发送用户的隐私,因为只有发送用户选择来共享短暂内容消息的原始组成员被包括在对话中。为了便于组通信,服务器可以检查该组的成员资格,并验证在该组的每个成员之间存在加密会话。
可以与上述实施例结合来使用的其他实施例涉及用于通过通信网络传输短暂内容消息的过程。
最初,发送客户端可以与短暂内容的可能接收者(例如,用户的联系人列表或选定组)建立端到端加密会话,并且可以在初始设置期间提供第一密钥。客户端使用加密会话通过服务器来将消息发送给接收者。该消息包括加密内容和用于将媒体项目解密的第二密钥,加密内容可以是媒体项目的缩略图和到媒体项目的链接或指针。
接收者使用第一密钥来将内容解密,从消息中取回第二密钥,并使用第二密钥来将加密内容解密。服务器(或外部用户)不能够检索消息的加密部分,因为服务器(或外部用户)不拥有在加密会话的初始设置期间发送的第一密钥(因此,服务器或外部用户不能取回将内容解密的第二密钥)。
服务器可以从发送用户接收预期接收者的列表,并过滤该列表以减少垃圾邮件或不想要的消息。例如,服务器过滤掉与发送者没有对称关系的那些用户或者发送者阻止或被发送者阻止的任何用户。因为服务器基于对称性来过滤潜在的接收者,所以在用户之间的友谊或界定关系的概念是不需要的,以便减少不想要的消息。
从客户端的角度看,每当接收者列表改变时,发送客户端可以使第二密钥循环。这个决定在短暂内容被传输的时间处做出;在一些实施例中,当新的对称关系被创建时(例如,当在发送者的联系人列表中的用户在短暂内容的传输之后将发送者添加到他们自己的联系人列表时),短暂内容不被重新传输。
因为短暂内容由发送者引导到潜在接收者以及因为新联系人不检索或访问先前的短暂内容,所以示例性实施例可以实现共享短暂内容的引导模型,而不是上面所述的关注模型。因此,发送用户对谁以及何时看到他们的短暂内容有更多的控制。
可与上述实施例结合来使用的其他实施例涉及用于显示短暂内容并与短暂内容交互的技术。
尽管短暂内容作为消息被传输(以便保持加密),但是该消息可以用标志来被标记,该标志将它指定为短暂内容。当标志存在时,接收者客户端知道将消息的内容显示为短暂内容而不是常规消息。
内容的短暂性可以通过用媒体项目的缩略图和到在服务器上存储的媒体项目的链接或指针封装短暂内容消息来实现。当短暂内容到期时(例如,在24小时内,在1或2次观看之后,等等),缩略图仍保留在消息传送历史中,但链接可能变成不活动的。当链接是活动的时,用户可以选择链接以进入短暂内容的全屏呈现。
不同的媒体类型可以与不同类型的全屏呈现相关联。例如,位置更新可以带来具有指示所标记的位置的地图数据的图像。
当短暂内容到期时,链接可能变成不活动的。试图访问不活动的链接的用户可能不能够访问媒体项目。然而,媒体项目可以继续驻留在服务器上,并且对于那些其链接保持是活动的用户依然可用。因此,链接可能对于不同的用户在不同的时间处变得不活动。
与非短暂内容相比,短暂内容可以在UI中在单独选项卡上被提供。来自不同用户的所显示的短暂内容可以基于兴趣分数被排序,并以所排列的顺序被显示。兴趣分数可以基于例如下列项被计算:(1)谁的短暂内容以前被观看过;(2)来自特定用户的被观看的短暂内容的百分比;(3)谁的短暂内容定期(例如,每天/每周/每月)被观看;(4)哪些短暂内容是最近的;等等。短暂内容可以按所排列的顺序显示在单独的选项卡中。因此,短暂内容不需要与消息或帖子混合,并且拥挤或混乱的显示的问题可以被解决。此外,排序可以允许用户快速找到感兴趣的或高优先级的短暂内容而不需要寻遍用户可能不太感兴趣的短暂内容。
该简要概述旨在用作对下面更详细讨论的概念的非限制性介绍。然而,在讨论另外的示例性实施例之前,首先提供关于数据隐私的简要注释。将关于下面的附图处理隐私设置和认证的更详细描述。
关于数据隐私的注释
本文描述的一些实施例利用可以包括由一个或更多个用户自愿提供的信息的训练数据或度量。在这样的实施例中,可以用多种方式保护数据隐私。
例如,在用户数据被收集或使用之前,用户可能需要决定加入任何数据收集。也可以给用户提供决定退出任何数据收集的机会。在决定加入数据收集之前,用户可以被提供有数据将被使用的方式、数据将被保留多长时间以及在适当的位置上以保护数据不被泄露的保护措施的描述。
识别数据从其被收集的用户的任何信息可以被清除或与数据分离。在任何识别信息需要被保留(例如,以满足管理要求)的情况下,可以向用户通知识别信息的收集、识别信息的将被做出的用途以及识别信息将被保留的时间的量。特别识别用户的信息可以被移除,并且可以用例如通用标识号或其他非特定形式的标识来代替。
一旦被收集,数据可以存储在包括保护措施以防止对数据的未经授权的访问的安全数据存储位置上。数据可以以加密格式被存储。识别信息和/或非识别信息可以在预定时间段后从数据存储库中被清除。
尽管在本文为了说明的目的描述了特定的隐私保护技术,但是本领域中的普通技术人员将认识到,隐私也以其他方式被保护。将在下面在描述网络实施例的章节中讨论关于数据隐私的另外的细节。
假设用户的隐私条件被满足,示例性实施例可以部署在各种各样的消息传送系统中,包括在社交网络中或在移动设备上的消息传送(例如,通过消息传送客户端应用或经由短消息服务)连同其他可能性。接下来提供用于参与在消息传送系统中的同步视频对话的示例性逻辑和过程的概述。
作为对理解的帮助,在描述基本实现的详细描述之前,将首先提出一系列例子。注意,这些例子被规定为是仅仅说明性的,以及本发明不限于所示的实施例。
示例性界面
现在参考附图,其中相似的参考数字始终用于指相似的元件。在下面的描述中,为了解释的目的,阐述了许多具体细节,以便提供其透彻理解。然而,可以在没有这些具体细节的情况下实施新的实施例。在其他实例中,在框图形式中示出众所周知的结构和设备,以便便于其描述。意图是覆盖与所主张的主题一致的所有修改、等同物和备选方案。
在附图和附随的描述中,标号“a”、“b”和“c”(以及类似的标志符)被规定为是表示任何正整数的变量。因此例如,如果一个实现设置a=5的值,那么被示为部件122-1至122-a的完整的一组部件122可以包括部件122-1、122-2、122-3、122-4和122-5。实施例并不被限制在这个上下文中。
图1A描绘了用于通信应用的示例性界面100。通信应用可以允许用户与通信服务的其他用户交换通信,例如消息和短暂内容。该界面可以显示被组织成对话/聊天的消息。
对话或聊天可以与识别对话或聊天的对话标识符相关联。对话标识符可以进一步与参与对话的一组参与者相关联。
用户可以通过使用界面100发送消息来参与对话/聊天。例如,界面100可以包括用于撰写(composing)新消息的撰写指示符。当撰写新消息时,可以呈现允许用户将新消息靶向到现有对话和/或指定一组接收者的界面。如果指定的一组接收者对应于对于其对话已经存在的一组接收者,则该消息可以被靶向到现有对话。如果否,则可以在指定的接收者之间创建新的对话。可以用所识别的对话的对话ID来标记该消息。
界面100可以显示最近(recent)的对话和关于对话的信息(例如,参与者、最新(most recent)消息的片段、最新消息的时间和发送者等)。
界面100可以包括允许通信的功能被访问的菜单或可交互的元素。例如,示例性界面100包括允许摄像机界面被访问用于捕获照片或视频的摄像机图标102。界面100还包括允许短暂内容被生成和/或观看的短暂内容图标104。这些元素是示例性的,并且在其他实施例中其他类型的元素可以存在。例如,除了摄像机图标102之外或代替摄像机图标102,还可以提供用于生成、访问或选择不同类型的媒体的一个或更多个媒体图标。
图1B描绘了在接收到短暂内容图标104的选择时显示的示例性短暂内容界面106。短暂内容界面106可以提供用于与由通信服务的用户共享的短暂内容交互的位置,其不同于用于观看其他类型的内容(例如,非短暂消息、帖子等)的界面。
短暂内容界面可以包括允许新的短暂内容被生成或选择的可交互元素108。在选择可交互元素108时,应用可以显示用于生成或选择内容的界面。例如,选择可交互元素108可以使摄像机界面被显示,如图1C所示,以便生成新的照片或视频内容。可选地或此外,选择可交互元素108可以使菜单被显示,类似于图1L所示的菜单,用于生成新的短暂内容或用于选择在短暂内容消息中将被共享的现有内容。
短暂内容界面106可以包括用于显示由当前用户共享的最近的短暂内容的界面部分110。如果当前用户最近(例如,在预定的时间段内)没有共享任何短暂内容,或者如果由用户共享的所有短暂内容对于每个接收者(内容与该接收者共享)已经到期,则可交互元素108可以显示在界面部分110中以指示用户没有任何主动共享的短暂内容。
界面106的另一部分可以显示当前用户可用的短暂内容项目112-i(例如,由其他用户与当前用户共享的短暂内容)。短暂内容项目112-i可以包括生成短暂内容项目112-i的用户的标识符,并且可以包括短暂内容项目112-i的缩略图114-i的显示。缩略图114-i可以包括短暂内容的表示,例如内容的缩小版本、内容的一部分、内容的低质量版本等。缩略图114-i可以与到内容的链接或指针相关联。当链接或指针是活动的时选择缩略图可能使内容的全屏或放大显示被显示。
为了实现短暂性,链接在某些条件下可能变成不活动的。例如,链接可能对于某个数量的观看(例如,一次或两次观看)是活动的,或者可能在特定时间段(例如,从内容首次被发送时起的预定时间段(例如24小时),或者从内容首次在全屏或放大尺寸中由接收用户访问时起的预定时间段(例如24小时))内是活动的。链接保持活动的或变得不活动的条件可以可选地由发送用户配置。
缩略图114-i可以包括指示链接是活动的还是不活动的指示符116-i。例如,指示符116-i可以是在缩略图114-i周围的环,其根据链接状态而改变颜色(例如,绿色或蓝色表示活动,黑色或红色表示不活动),或者当链接变得不活动时改变或消失。指示符116-i可以以其他方式用图形区分内容的状态(例如,对活动链接附加校验标记、在活动链接周围生成发光效果等)。
在一些实施例中,指示符116-i还可以指示关于可用短暂内容的其他信息。在图1B描绘的例子中,每个指示符116-i的环被分成数量为n的段。指示符116-i的段的数量可以表示从结合缩略图114-i识别的用户可得到的或与结合缩略图114-i识别的用户相关联的内容项目的数量。例如,指示符116-1指示六个短暂内容项目当前从用户Jane可得到。同时,指示符116-2指示两个短暂内容项目当前从用户Joe可得到。所显示的缩略图114-i可以对应于从所识别的用户可得到的最新的内容项目。
尽管在图1B中描绘的例子中界面106的仅单个部分专用于其他用户的短暂内容,但是在一些实施例中短暂内容可以显示在多个不同的选项卡或部分中。例如,第一部分可以专用于重要的短暂内容或通信服务确定用户可能感兴趣的短暂内容。这样的一部分可以包括预定数量的排位高的短暂内容项目,其可以根据兴趣分数被排序,如下面更详细描述的。第二部分可以专用于最近的短暂内容项目,例如预定数量的最近接收的短暂内容项目,而不管短暂内容项目将如何被排序。
如上面所提到的,在选择可交互元素108时,可以显示用于生成短暂内容的界面。在图1C中描绘了这样的界面118的一个例子。
示例性界面118允许用户捕获照片或视频(尽管示例性实施例不限于捕获照片或视频,但还可以涉及共享先前捕获的照片或视频或者生成或选择其他类型的媒体)。当用户在任何界面中选择摄像机图标102时,界面118也可以被显示。
当经由短暂内容界面106进入界面118时,可以显示指示符120以指定内容正被捕获为短暂媒体。与指示符120的交互可以使界面重返到短暂内容界面106而不捕获新内容。另一方面,当经由摄像机图标102进入界面118时,所捕获的内容可以是非短暂的(和/或可以在稍后的时间变得短暂);因此在这种情况下,指示符120可以不被显示。
界面118可以包括显示在与捕获按钮124交互时将被捕获的媒体(例如,来自摄像机的实时预览)的预览部分122。一旦接收到捕获按钮124的选择,就可以捕获在预览窗口122中显示的媒体。在一些实施例中,捕获按钮124可以是多功能捕获按钮。在这样的实施例中,以一种方式(例如点击)与捕获按钮124交互可以使一种类型的媒体(例如照片)被捕获,而以另一种方式(例如持续保持)与捕获按钮124交互可以使另一种类型的媒体(例如视频)被捕获。界面118可以此外或可选地包括用于在捕获类型(例如,照片对音频对视频)之间进行选择的各种图标。
界面118可以包括用于向媒体添加文本标题的标题栏126以及用于操纵媒体的控件128。例如,当被捕获的媒体是照片时,可以提供照片编辑工具以及用于向照片添加图像、文本或绘图的工具。
一旦媒体被捕获、操纵和/或加标题,用户可以与定稿元素130交互以将媒体定稿为短暂内容并经由短暂内容消息共享该短暂内容。在一些实施例中,与定稿元素的交互使媒体作为短暂内容被发送到如由发送用户的隐私设置规定的一组接收者(参见图1F)。
一旦内容已经被共享,应用就可以重返到短暂内容界面106,如图1D所示。在这种情况下,界面的第一部分可以被更新以指示用户最近共享了短暂内容。例如,最近共享的内容的缩略图114-3可以代替在第一部分中的可交互元素108。可选地,如果内容先前被共享,则缩略图114-3可以被更新以显示最新被共享的内容。
在一些实施例中,捕获或选择媒体(例如,如在图1C中所完成的)可以使共享界面132被显示,如图1E所示。共享界面132可以包括第一部分134,该第一部分允许发送用户将媒体作为短暂内容发送到在发送者的联系人列表中的选定的一组用户。该一组用户可以通过用户的隐私设置被配置,如下面所讨论的。
共享界面132可以呈现允许用户与频繁地联系的各方共享媒体的第二部分136。这些方可以包括单独的用户或用户组,其可以基于用户在预定时间段(例如,过去的一周、一个月等)内最频繁地与哪些个人或组通信来被选择。第三部分138可以类似地允许用户与用户最近通信的个人或组(例如,用户已经参与的n个最新的通信线程)共享媒体。
可以关于每个潜在实体(媒体可以与该潜在实体被共享)来提供选择元素140-i。在选择所述选择元素140-i时,选择元素可以被更新以指示该实体已经被选择来包括。用户可以选择多个不同的实体来接收内容。
当媒体与在第二部分136或第三部分138中的实体共享时,媒体可以作为非短暂内容被共享,并且可以被添加到对应于选择的对话。可选地,根据发送用户的设置,内容可以作为短暂内容被共享到选定的对话中。
在一些实施例中,当媒体与在第二部分136或第三部分138中的实体共享时,对应于指定接收者的短暂内容消息可以被视为组消息,并且对短暂内容消息的回复可以视情况被添加到与相应接收者的组对话。这种消息可以被标记或指定为组消息。另一方面,当使用界面的第一部分134与实体共享媒体时,相应的短暂内容消息可以被视为广播,并且对短暂内容消息的回复可以被添加到在发送者和回复者之间的一对一对话。该消息可以被标记或指定为广播。
当使用在界面132的第一部分134中的可选择元素140-1(对应于短暂内容共享选项)共享媒体时,媒体可以作为短暂内容被传输给预定的用户集。可以通过用户的隐私设置来设置或调整预定的用户集。例如,在选择在第一部分134中的“…”指示符时,可以给用户呈现隐私界面142,如图1F所示。
在隐私界面142中,用户可以在不同的共享选项之间进行选择,用于将媒体共享为短暂内容。例如,用户可以选择“我的联系人”选项,用于向用户的联系人列表或地址簿中的每个联系人广播短暂内容。还可以给用户呈现与联系人列表中的每个联系人共享内容的选项,除了被排除的用户的选定子集以外。选择这个选项或与这个选项交互可能使允许发送用户选择要从传输中排除的联系人的界面被显示。在又一个选项中,可以允许用户从联系人列表中选择联系人的子集,内容应该与联系人的该子集共享。选择这个选项或与这个选项交互可能使允许发送用户选择要包括在传输中的联系人的界面被显示。
当媒体作为短暂内容使用如图1E所示的第一部分134的短暂内容共享选项来传输时,媒体可以出现在接收用户的短暂内容界面106中(图1B和图1D)。当媒体被共享到组或个人时,媒体可以作为消息出现在发送用户和组或个人之间的对话中,如在图1G的对话界面144中所示的。
在该例子中,消息146被添加到具有短暂内容的对话。消息146可以指示内容是短暂的(在该例子中,不同于一般消息,该消息包括有说明“John的状态”的报头)。该消息可以显示内容的缩略图114-4,并且可以显示指示内容的短暂状态的指示符116-4(例如,如果内容是可用的,则显示蓝色环,或如果内容是不可用的,则显示黑色环)。
如果内容保持是可用的,则观看对话界面144的接收者可以与缩略图114-4交互。与缩略图114-4交互可以使内容的全屏(或放大尺寸)版本被显示在可视化界面148中,如图1H所示。
可视化界面148可以显示图像或视频的全分辨率或高分辨率版本(例如,与缩略图版本相比)。界面148可以包括退出全屏显现的可选选项(例如,“返回”按钮),其可以将用户返回到前一界面。在一些实施例中,进入或退出全屏显现可以触发与内容的短暂性相关的动作(例如,使观看计数器递增或启动计时器)。例如,如果内容被规定为对于有限数量的观看是可用的,则打开全屏显现可以使观看计数器递增,该观看计数器可以在每当在全屏显现被访问之前被检查以确定内容是否保持是可用的(例如,如果观看的当前数量小于观看的预定阈值数量)。如果内容被规定为对于从它第一次被观看时起的有限量的时间(例如,24小时)是可用的,则打开全屏显现可以启动短暂计时器,该短暂计时器可以在每当全屏显现被访问之前被检查以确定该内容是否保持是可用的(例如,当计时器尚未到期时)。在一些实施例中,退出全屏显现可以使存储在设备上的媒体的任何本地副本被删除。
短暂内容的任何全屏显现可以可选地包括来自同一用户的其他可用短暂内容的指示150。在这种情况下,显示多个状态栏150-1、150-2,其中该数量对应于当前(接收)用户可以从发送用户访问的可用(例如,未到期)短暂内容项目的数量。状态栏150的数量可以对应于在关于缩略图114显示的边框116中的线段数量(例如,参见图1B)。
可选地,可以在预定的时间段内显示在界面148中显示的短暂内容。当进入全屏视图时,可以启动定时器,并且当定时器到期时,系统可以使所显示的短暂内容前进到下一个可用的短暂内容。对应于当前短暂内容项目的状态栏150-1可以在外观上改变以反映在计时器上剩余的时间量。在该例子中,对应于过去的时间的百分比的状态栏150-1的一部分可以用不同的颜色表示。当计时器运行时,该部分可以在大小上增加,直到在预定的阈值时间处该部分占据实质上全部状态栏150-1为止。当所显示的短暂内容随后前进时,状态栏150中的一个可以被消除,并且显示可以被更新(例如,以重新调整剩余状态栏150的大小和/或使状态栏150回到中心位置)。
进一步可选地,与界面148的交互可以手动地推进所显示的短暂内容(例如,移动到下一个可用的短暂内容项目)。例如,界面148可以登记交互,例如点击或滑动,使内容前进。
系统最初可以在界面148中针对给定的发送用户显示最新的短暂内容项目。当自动或手动地前进时,所显示的下一个短暂内容项目可以对应于从同一发送用户可得到的下一个最新的短暂内容项目。当对于给定发送用户的最后可用的暂时内容项目被显示时,系统可以针对下一个发送用户(例如,下一最高排位的用户或发送下一最高排位的暂时内容项目的用户,如由本文所述的排序逻辑所确定的)显示最新的暂时内容项目。
全屏显现还可以提供选项152以回复短暂内容。在该例子中,与选项152交互可以使回复界面被显示,如图1I所示。
在回复界面中,可以显示预览栏154,其显示如(例如)通过键盘或其他输入设备输入的回复的预览。可选地,可以呈现用于用媒体(例如,图片、视频、音频、位置等)回复短暂内容的媒体元素156。当回复被定稿时,用户可以与定稿元素158交互以传输回复。
回复短暂内容的其他手段(例如,通过在对话界面144或在短暂内容界面106中选择回复短暂内容的选项)也可以允许生成回复。
根据一些实施例,对广播短暂内容消息的回复可以作为在短暂内容消息的原始发送者和生成回复的接收者之间的一对一对话来被添加(即使短暂内容最初被发送到选定组或作为广播发送)。如果当前在这些用户之间没有对话存在,则可生成新的对话。对话可以依赖于当短暂内容消息从发送者传输到接收者时建立的加密会话。
例如,图1J描绘了在当前用户回复了接收到的短暂内容消息146之后的图1G的对话界面144。回复160可以被添加到短暂内容消息146。在一些实施例中,只有内容的原始发送者和回复者能够看到回复160,即使短暂内容消息146最初与一组接收者被共享(如在图1G的例子中的)。
可选地,回复160可以在组对话中作为单独的消息出现,并且可以对组的所有成员可见。
可选地或此外,短暂内容的原始发送者和回复短暂内容的用户可以在不同于组对话的单独对话界面144中看到在单独的一对一对话中的原始消息146和回复160。
作为备选方案或除了在摄像机界面中或通过短暂内容界面共享短暂内容之外,短暂内容还可以从对话界面144内被共享,如图1K所示。在该例子中,可以在界面144的内容生成部分中提供可选择的元素162。选择可选择的元素162可以使菜单164被显示,如图1L所示。菜单可以包括允许不同类型的媒体被选择或生成的一组菜单选项166-i。
例如,在该例子中的第一菜单选项166-1可以使摄像机界面被显示。第二菜单选项166-2可以打开用户的相册和/或视频库以允许预先存在的内容被选择用于作为暂时媒体被共享。第三选项166-3可以打开允许用户从本地或远程存储库中选择文档用于共享的预览窗口。第四选项166-4可以允许用户共享他们的位置(或选定位置的位置标签)。第五选项166-5可以允许用户共享来自他们的联系人列表中的联系人。
可以此外或可选地提供其他选项。例如,天气选项可以允许天气报告被生成或选择作为内容项目;可以提供用于生成或选择文本的文本选项;可以提供用于生成或选择音频内容的音频内容选项;可以提供用于生成或选择新闻故事的新闻内容选项;以及可以提供用于生成或选择超链接的超链接选项,连同其他可能性。
选择菜单164中的选项166-i之一可以改变显示以改变为适当的捕获和选择工具。例如,如果用户选择音频内容选项,则显示可以改变以允许用户在所存储的音频记录当中选择和/或选择到音频记录界面。如果用户选择超链接内容选项,则显示可以被改变以显示用户的所存储的特别喜爱的网站的列表(例如,从web浏览器应用中检索),和/或提供用于输入统一资源定位符(URL)的文本输入栏。类似地,如果用户选择位置内容选项,则显示可以被改变以显示所存储的特别喜爱的位置的列表(例如,从地图应用中检索)和/或用于输入新位置的搜索栏。
在一些实施例中,选项166-i可以与默认内容或动作相关联。例如,选择天气选项可以使在当前位置处的天气报告被选择为内容项目。选择位置选项可以使用户的当前位置被加载到位置标签中以用作内容项目。选择文本选项可能使当前存储在设备的剪贴板中的任何文本被选择为内容项目。
可选地,在选择或生成短暂内容时,可以显示用于向内容添加标题的界面。在准备好内容和/或标题之后,可以生成并发送短暂内容消息,如下面更详细讨论的。
上述界面中的几个聚焦于共享照片或视频。然而,也可以共享其他类型的媒体,并且每种不同类型的媒体可以与不同类型的全屏显现相关联。对于不同的媒体类型,在图1M-1P中示出内容的全屏或放大显示的附加例子。
图1M描绘了显示包含音频记录的短暂内容的放大版本的示例性界面168。界面168可以包括用于播放或暂停音频记录的控件170、用于控制在记录内的回放位置的位置控件172以及用于控制音频记录的回放音量的音量控件174。
图1N描绘了显示包含位置的短暂内容的放大版本的示例性界面176。短暂内容可以包括描述位置的位置标签,并且全屏显现可以显示地图,该地图包括来自标签的位置或者以该位置为中心。界面176可以包括显示在地图上的所标记的地点的精确位置的地图钉178。
图1O描绘了显示包含天气报告的短暂内容的放大版本的示例性界面180。该界面可以包括在短暂内容消息被生成的时间处指示的位置处的当前天气的大表示182以及附加细节(例如每小时、每天或每周预测)的小表示184。
图1P描绘了显示包含新闻项目的短暂内容的放大版本的示例性界面186。该界面可以显示大标题188、与新闻项目相关联的图像190以及新闻内容192。
图1H和1M-1P的全屏显现被规定为是说明性的。其他配置可以用于所描绘的媒体项目的类型,并且其他类型的媒体项目也可以与全屏显现相关联。
接下来关于图2描述用于分发短暂内容消息的示例性系统。
示例性端到端加密系统
如图2所示,示例性实施例可以提供在发送客户端202和接收客户端212-i之间的由中间服务器204促进的端到端加密。本文描述的一些实施例利用服务器侧扇出(fan out)来传输组消息和广播。在服务器侧扇出过程中,发送客户端202向服务器204传输消息的单个副本,然后服务器204向适当的接收客户端212-i传输消息的副本,如图2所示。
在客户端202、212和服务器204之间的所有通信可以在单独的加密信道内分层。例如,具有端到端能力的客户端可以使用来自噪声协议框架的具有Curve 25519的噪声管道、高级加密标准Galois/计数器模式(AES_GCM)和安全散列算法256(SHA256)用于长期运行的交互连接。用于建立加密信道的参数可以存储在服务器204处的客户端数据库206中。
这种配置提供几个理想的属性,包括:快速、轻便的连接和重新开始;元数据的加密,以对未经授权的网络观察者隐藏元数据;关于连接用户的身份的信息不会被泄露;以及没有客户端认证密码存储在服务器204上。客户端可以使用Curve 25519密钥对来验证它们自己,因此服务器只存储客户端的公共认证密钥。如果服务器的用户数据库206被损害,则没有隐私认证证书将被泄漏。
为了以加密方式传输媒体和/或附件,通信系统还可以包括托管blob储存器210的blob服务器208。下面将更详细地描述使用blob储存器210来传输内容(特别是与发送短暂内容消息相结合)。
示例性加密协议和数据结构
本章节描述了适合于端到端加密的示例性加密协议和数据结构。尽管在本文关于特定例子说明性地描述了实施例,但是本发明不限于所描述的例子。本文描述的一些方面可以与任何类型的通信系统或加密协议一起使用,而其他方面可以优选地关于端到端加密通信系统被使用。
适合于供示例性实施例使用的加密协议的例子是由加利福尼亚州旧金山的OpenWhisper Systems设计的信号协议。示例性实施例还可以利用匿名密钥协商协议椭圆曲线Diffie-Hellman(ECDH)。然而,其他加密协议和密钥协商协议也可以适合于供示例性实施例使用。
有利地,端到端加密协议可以防止第三方(以及甚至通信服务本身)对由服务传输的消息进行明文访问。即使来自用户的设备的加密密钥在物理上受到损害,它们也不能用来及时将先前传输的消息解密。
为了使用端到端加密,用户可以最初向通信服务注册。如图3A所示,用户的注册信息可以存储在客户端数据库206中。每个用户可以与由分配给用户账户的标识符编入索引的条目302-i相关联。
在注册时,与注册用户相关联的通信服务的应用可以向中间服务器204传输公共身份密钥304、带有它的签名的公共签名预密钥306以及一批公共一次性预密钥310-i。
在一个实施例中,身份密钥304可以是在应用被安装在客户端设备上的时间处生成的长期Curve25519密钥对。签名的预密钥306可以是在安装时间处生成并由身份密钥签名的中期Curve25519密钥对。签名预密钥306可以在周期性基础上旋转。一次性预密钥310-i可以是在安装时间处生成并根据需要补充的用于一次性使用的Curve25519密钥对的队列308。
服务器204可以存储与用户的标识符302-i相关联的这些公钥304、306、310-i。根据示例性实施例,服务器204在任何时候都不能访问客户端的任何私钥。
除了公钥304、306、310-i之外,服务器204还可以存储包括与用户账户的联系人相关联的一个或更多个联系人用户标识符314-i的联系人列表312。在联系人列表312中的联系人可以是在用户的移动设备上的联系人列表或者可以从在用户的移动设备上的联系人列表中得到。在联系人列表312中的一些条目可以与一个或更多个标志相关联。这种标志的一个例子是被阻止用户标志,指示与相应联系人用户标识符314-i相关联的用户被与条目302-i相关联的用户账户阻止。当用户帐户被阻止时,来自被阻止用户的消息不被传送给阻止用户。
在一些实施例中,中间服务器204可以不存储联系人列表312,但也许能够询问潜在接收者客户端以得到他们自己的联系人列表,以便提供下面描述的过滤功能。
来自客户端数据库206的信息可以用于发起端到端加密会话;使用会话信息,端到端加密消息可以被交换,直到会话结束或到期为止。一旦会话被建立,客户端就不需要重建与彼此的新会话,直到现有会话状态被失去(例如,通过外部事件,例如应用重新安装或设备更改)为止。图3B描绘了适合于建立端到端加密会话的示例性消息316。
为了建立会话,发起会话的客户端(“发起者”)可以请求接收者的公共身份密钥304、公共签名预密钥306和单个公共一次性预密钥310-i。
作为响应,服务器204可以返回所请求的公钥值。一次性预密钥310-i仅被使用一次,因此它在被请求后从服务器储存器中被移除。发起者可以将接收者的身份密钥304保存为Irecipient,将签名预密钥306保存为Srecipient,并将一次性预密钥310-i保存为Orecipient
发起者然后可以生成短暂Curve25519密钥对作为Einitiator318。发起者可以加载它自己的身份密钥304作为Iinitiator320。发起者可以将主密码计算为:
方程1:master_secret=ECDH(Initiator,Srecipient)||ECDH(Einitiator,Icecipient)||ECDH(Einnitiator,Srecipient)||ECDH(Einitiator,Orecipient)
如果没有一次性预密钥310-i(例如,队列308中的密钥在发起者请求这样的密钥时被用尽,并且没有被接收者补充),那么最后的ECDH可以被省略。
发起者可以使用基于散列消息认证码(HMAC)的密钥导出函数(HKDF)来从主密码创建根密钥和链密钥,如下面更详细讨论的。根密钥可以是用于生成链密钥的32字节值。链密钥可以是用于创建消息密钥的32字节值。消息密钥可以是用于加密消息内容的80字节值。在消息密钥中,32字节可用于高级加密标准-256(AES-256)密钥,32字节可用于HMAC安全散列算法-256(HMAC-SHA256)密钥,以及16字节可用于初始化向量(IV)。
在建立长期运行的加密会话之后,发起者可以立即开始向接收者发送消息316,即使接收者是离线的。在接收者做出响应之前,发起者可以包括接收者建立相应会话所需的信息(在所发送的所有消息的报头中)。这包括发起者的Einitiator 318和Iinitiator 320。可选地,该消息还可以包括公钥322和加密内容324,如关于图3C所述的。
当接收者接收到包括会话建立信息的消息316时,接收者可以使用它自己的私钥和在传入消息的报头中公布的公钥来计算相应的主密码。接收者删除由发起者使用的一次性预密钥310-i。发起者可以使用HKDF来从主密码中导出相应的根密钥和链密钥。
一旦会话被建立,客户端就可以使用用于加密的在密码块链接(CBC)模式中的AES256和用于认证的HMAC-SHA256与消息密钥交换被保护的消息。
消息密钥可以对被传输的每个消息改变,并且是短暂的,使得用于加密消息的消息密钥不能在消息被发送或接收之后从会话状态重构。
消息密钥可以从发送者的链密钥中导出,该链密钥随着所发送的每条消息而棘轮前进。此外,在每次消息往返的情况下执行新的ECDH协议以创建新的链密钥。这通过即时散列棘轮和往返Diffie-Hellman(DH)棘轮的组合提供正向隐私。
每当发送者需要新的消息密钥时,消息密钥可以被计算为:
方程2:消息密钥=HMAC-SHA256(链密钥,0x01)
然后,链密钥可以被更新为:
方程3:链密钥=HMAC-SHA256(链密钥,0x02)
这使链密钥棘轮前进,且也意味着所存储的消息密钥不能用于导出链密钥的当前或过去的值。
如图3C所示,每当消息326被传输时,公钥322(例如,短暂Curve25519公钥)可以与加密的消息内容324一起被公布。一旦响应被接收到,新的链密钥和根密钥就可以被计算为:
方程4:短暂_密码=ECDH(短暂发送者,短暂接收者)
方程5:链密钥,根密钥=HKDF(根密钥,短暂_密码)
根据示例性实施例,链仅用于从一个用户发送消息,因此消息密钥不被重用。由于消息密钥和链密钥被计算的方式,消息可能延迟地到达、无次序或可能完全被丢失而不造成问题。
如图3D所示,端到端加密也可以用于传输媒体和其他附件。发送消息328的发送客户端202可以生成短暂的32字节AES256密钥336和短暂的32字节HMAC-SHA256密钥338。发送者可以在具有随机IV的CBC模式中用AES256密钥来将附件330加密,然后使用HMAC-SHA256来附加密文的消息认证码(MAC)332。发送客户端202然后可以将加密附件330作为blob上传到blob储存器210。
发送客户端202然后可以向接收客户端212传输正常加密消息334。如上面所讨论的,可以使用公钥322来保护消息334。消息334的内容324可以包括加密密钥336、HMAC密钥338和加密blob的SHA256散列340以及在blob储存器中的blob的指针342。
接收客户端212可以将内容324解密,并传输对存储在指针342的位置处的blob的请求344。在接收到加密blob 346之后,接收客户端可以计算blob的SHA256散列,并且证实该散列与消息334的散列340匹配,可以验证MAC 332,并且可以将明文解密。
上面所述的用于交换媒体的过程也可以用于交换与短暂内容消息相关联的内容,如图3E所示。作为短暂内容生成过程的一部分,用户可以选择关于短暂内容消息被共享的媒体,并使用上述过程来将媒体上传到blob储存器210。发送客户端202然后可以向中间服务器204传输短暂内容消息348,用于传输到接收客户端212-i。
短暂内容消息348可以包括由公钥322保护的加密内容324,如关于上面所述的其他类型的消息所描述的。可选地,消息348还可以包括接收者列表350。接收者列表可以是在发送客户端202处选择的接收者列表。例如在广播场景中,发送客户端202可以自动将它的整个联系人列表添加到接收者列表中。在一些实施例中,如果服务器204存储发送客户端的联系人列表,则当发送用户希望发送消息作为广播时,接收者列表350可以被广播标志替换。服务器204可以将广播标志解释为向在由服务器存储的联系人列表中的每个联系人(受到过滤,如下面所讨论的)传输短暂内容消息的指令。如果发送用户选择一组接收者来接收短暂内容消息,则接收者列表350可以包括该组的选定成员。
在采用服务器侧扇出的示例性实施例中,服务器可以接收如在图3E中所描绘的短暂内容消息348,并且可以使用接收者列表350来确定消息可以被扇出到的候选者。然后,服务器可以从消息中移除接收者列表350,使得接收者不接收短暂内容消息被发送到的其他用户的列表。
加密内容324可以包括短暂内容标志352,其将消息348的内容324指定为表示共享的短暂内容。尽管短暂内容可以以消息的形式被传输以便保持端到端加密,但是短暂内容标志352的存在可以向接收客户端212指示消息348应该被处理并显示为短暂内容消息,而不是对话中的正常消息。
内容324还可以包括缩略图354。缩略图354可以表示不太详细、具有较低分辨率、显示内容的有限部分等的所上传的内容的版本。可选地或此外,缩略图354可以是内容的图像表示。对于不同类型的内容,图像表示可以是不同的,例如,包括音频记录的内容可以由显示播放按钮的音符的图标表示,而位置标签可以由显示地图钉或地球仪的图标表示。代替图像表示,缩略图354可以包括媒体类型的标志或描述,使得在本地存储在接收客户端上的对应于媒体类型的图像表示可以被选择和使用。
内容324还可以包括允许对应于缩略图354的内容项目从blob储存器210被检索的媒体消息内容356。例如,媒体消息内容356可以包括上面关于图3D的媒体消息334描述的项目,特别是加密密钥336和到blob储存器210中的内容的指针342或链接。
如上面所提到的,加密密钥336用于将存储在blob储存器210中的媒体加密。当发送短暂内容消息时,发送客户端202可以用加密密钥336来将媒体加密,且然后传输加密密钥336作为短暂内容消息348的一部分。当短暂内容消息348被扇出到多个接收者时,每个接收者将具有同一加密密钥336的副本,并且因此可以访问在blob储存器中的相同加密blob346。因此,附件的多个副本(例如,对于每个接收用户有一个副本)不需要单独地被加密并上传到blob储存器。此外,更少的网络消息需要从发送客户端202被传输,发送客户端202不需要传输单独的消息,对于被分配给单独接收客户端212的每个加密密钥336有一个消息。
如果从发送客户端的角度看短暂内容的接收者改变了,则可以为新的接收者列表生成新的加密密钥336(即使共享的内容项目是与先前传输的相同的媒体)。换句话说,加密密钥336不被重新用于向短暂内容消息添加新的接收者,或者用于具有不同接收者列表的新的短暂内容消息。这个隐私模型有助于保持加密强度,并确保如果用户以某种方式能够从短暂内容消息中找出媒体对象,则该用户将不能访问那个媒体对象,除非用户被包括在分发加密密钥336的原始传输中。因此,可以更有效地保护对媒体对象的访问。
因为服务器不能访问加密密钥336,其本身在消息348中以仅对特定接收者客户端可见的方式被加密,所以服务器不能将上传到blob储存器210的媒体解密。
如上面所讨论的,短暂内容消息(和其他类型的消息)可以从服务器204扇出,用于广播或组消息。换句话说,希望向一组用户发送消息的客户端可以向服务器204传输单个消息,其然后由服务器204分发n次到n个不同的组成员(或n个不同的广播接收者)。
一些实施例可以可选地结合客户端侧扇出过程来使用,其中客户端在n个不同的时间处向n个不同的组成员或广播接收者发送单个消息。与客户端侧扇出相比支持服务器侧扇出的一个原因是效率:在服务器侧扇出过程中,客户端只需要向服务器传输单个消息,与在客户端扇出过程中必须被传输的n条消息相反。此外,服务器侧扇出允许服务器204实现用于提高网络效率和减少消息传送垃圾的过程,例如本文描述的过滤过程。上面描述的用于开发成对加密会话的过程针对发送到组或广播接收者的大多数消息实现高效的服务器侧扇出。
可以使用信号消息传送协议的发送者密钥构成要素来实现高效的组消息传送。更特别地,组成员第一次向组发送消息时,发送者可以生成随机32字节链密钥和随机Curve25519签名密钥对。发送者可以将32字节链密钥和来自签名密钥的公钥组合成发送者密钥消息。发送者可以使用上面解释的成对消息传送协议来对组的每个成员单独地加密发送者密钥。
对于发送给组的所有后续消息,发送者可以从链密钥中导出消息密钥,并更新链密钥。发送者可以在CBC模式中使用AES256来将消息加密,并且可以使用签名密钥来对密文签名。发送者可以向服务器传输单个密文消息,服务器向所有组接收者执行服务器侧扇出。消息发送者的链密钥的散列棘轮提供正向保密。每当一个组成员离开时,所有的组参与者清除他们的发送者密钥并重新开始。
服务器侧扇出的一个优点在于服务器204可以对接收到的短暂内容消息执行过滤,以便减少垃圾邮件。例如,服务器204可以从发送客户端202接收广播短暂内容消息,并且可以仅将短暂内容消息转发给具有与和发送客户端202相关联的用户帐户的对称关系的那些用户帐户。在图3F中示出关系对称性的例子。
图3F描绘了各种用户的联系人列表312-i。每个联系人列表312-i包括一个或更多个联系人314-i。在该例子中,第一用户的联系人列表312-1包括第二用户和第三用户的用户标识符314-2、314-3。第四用户的标识符314-4不存在于第一用户的联系人列表312-1中。
第二用户的联系人列表312-2包括第一用户的标识符314-1。因为第一用户的联系人列表312-1包括第二用户的ID 314-2,并且因为第二用户的联系人列表312-2包括第一用户的ID 314-1,所以第一用户和第二用户被认为具有对称关系。例如,如果第一用户和第二用户都使彼此列在他们的移动设备的联系人列表中,则这种关系可能出现。
第三用户的联系人列表312-3包括第二用户的ID 314-2和第四用户的ID 314-4,但不包括第一用户的ID 314-1。因为第一用户的联系人列表312-1包括第三用户的ID 314-3,但第三用户的联系人列表312-3不包括第一用户的ID 314-1,所以在第一用户和第三用户之间的关系被认为是不对称的。这样的条件(其中发送用户的联系人列表包括潜在接收者,但接收者的联系人列表不包括发送用户)在本文被称为正向不对称。
第四用户的联系人列表312-4包括第一用户的ID 314-1、第二用户的ID 314-2和第三用户的ID 314-3。因为第四用户的联系人列表312-4包括第一用户的ID 314-1,但第一用户的联系人列表312-1不包括第四用户的ID 314-4,所以在第一用户和第四用户之间的关系也是非对称的。这样的条件(其中发送用户的联系人列表不包括潜在接收者,但接收者的联系人列表包括发送用户)在本文被称为反向不对称。
根据示例性实施例,当服务器204接收到要由发送客户端202广播(或传输到组)的短暂内容消息(或任何类型的消息)时,服务器204可以检索发送用户的联系人列表,并且可以使用该列表作为广播的潜在接收者的初始候选列表。对于在候选列表中的每个用户ID,这些用户的联系人列表可以被检索和复查,以确定发送用户是否存在于接收者的联系人列表中。如果在发送者和潜在接收者之间的关系是对称的,则接收者可以保留在候选列表中。如果关系是不对称的(例如,潜在接收者的联系人列表不包括发送用户),则潜在接收者可以从候选列表中被过滤出。这种程序可能有助于减少垃圾邮件,例如,这个过滤可以防止垃圾邮件发送者将未经授权的接收者添加到他们自己的联系人列表以及然后向这些接收者广播邮件。
关于谁接收短暂内容消息的决定可以在短暂内容消息被传输的时间处被做出。因此,如果在短暂内容消息被传输之后关系变得对称,最初被过滤出的接收者将不接收短暂内容消息。例如在图3F中描绘的例子中,如果第三用户在第一用户发送短暂内容消息之后将第一用户的ID 314-1添加到他的联系人列表312-3(从而使在第一用户和第三用户之间的关系变得对称),则该短暂内容消息在关系变得对称之后并不被发送到第三用户。类似地,如果在第一用户发送短暂内容消息之后第一用户将第四用户的ID314-4添加到第一用户的联系人列表312-1,则该短暂内容消息在关系变得对称之后并不被发送到第四用户。在这两种情况下,由于关系的现在对称的性质,由第一用户传输的未来短暂内容消息对于第三用户和第四用户变得可见。
然而在一些实施例中,如果关系后来变得对称,最初由于正向不对称而从候选列表中过滤出的接收者可以接收先前的短暂内容消息。将反向不对称关系更改为对称关系可能不导致这种新的传输。这些实施例有助于保护发送用户的隐私。在正向不对称的情况下,发送用户有机会来考虑哪些用户将接收短暂内容消息广播。因为不对称是在正向方向上,所以第一用户至少知道不对称接收者可能已经接收到短暂内容消息(由于接收者在第一用户的联系人列表312-1中)。
另一方面,在反向不对称的情况下,第一用户未将潜在接收者包括在第一用户的联系人列表312-1中,且因此不会考虑到短暂内容消息广播可能已经被发送给接收者。因此,当不对称关系后来变得对称时,新接收者不应自动接收先前的短暂内容消息。如果第一用户希望新接收者接收先前的短暂内容消息,则用户可以被呈现将所有、一些或单独短暂内容消息转发给接收者的选项。
在又一些另外的实施例中,与另一用户建立对称性可以使得先前的短暂内容消息对另一用户变得可见,而不管原始不对称是正向的还是反向的。
接下来关于在图4中描绘的数据流图来描述示例性实施例的这个和其他方面。
示范性信息交换
图4是示出根据示例性实施例的在发送客户端、中间服务器、blob服务器、接收客户端和第三客户端之间的信息交换的示例性数据流图。
当最初用通信服务创建账户时,发送客户端可以发送一个或更多个账户创建消息402。账户创建消息402可以作为第一次参加服务和安装服务的应用的结果而被发送。当用户首次登录到新设备、更新他们的硬件或软件等时,附加的类似消息可以被传输。账户创建消息402可以包括自动生成的信息和/或来自发送客户端的用户的信息。账户创建消息402可用于填充服务器的客户端数据库206。
类似地,接收客户端可以利用通信服务创建账户,并且可以相应地向中间服务器传输账户创建消息404。
如所述,当发送客户端希望与接收客户端通信时,发送客户端向中间服务器发送会话创建请求406以请求接收客户端的公钥。服务器用会话数据408(例如,包括接收者的公共身份密钥、签名的预密钥和一次性预密钥)做出响应。
可以针对每个发送者-接收者对来执行这个过程(与服务器交换会话创建消息406和会话数据消息408)。它可以在发送者首次联系接收者(或者在会话以前到期之后第一次联系接收者)时被执行。它也可以当发送者为在发送者的地址簿中的每个接收者(发送者具有与该接收者的对称关系,并且加密会话以前没有为该接收者建立)发送广播消息(例如广播短暂内容消息)时被执行。
当发送客户端希望发送包括诸如媒体410的内容的短暂内容消息时,发送客户端可以将媒体410上传到blob服务器,如上面关于图3D所讨论的。发送客户端然后可以向服务器发送短暂内容消息412。如本文所述,服务器可以执行过滤,并确定在发送用户的联系人列表中的哪个接收者将接收短暂内容消息412。服务器然后可以向在过滤列表中的每个接收者发送相应的短暂内容消息414。
如上面所提到的,短暂内容消息可以包括缩略图和到在blob储存器中的媒体的链接。当激活链接(例如,通过点击缩略图的表示或与缩略图的表示交互)时,接收客户端可以生成媒体请求416以向blob储存器请求媒体。如上面关于图3D所述的,blob储存器可以用媒体响应420来对媒体请求做出响应。因此,媒体可以被下载到接收客户端。
在一些实施例中,链接可以是暂时的。例如,链接可以在预定时间段(例如,24小时)内或对于预定次数的观看(例如,一次使用、两次使用等)是有效的。因此,接收客户端可以被配置为从blob服务器检索媒体,但在呈现全屏显示之后删除媒体。在一些实施例中,例如当链接在预定时间段之后到期时,接收客户端可以被配置为在预定时间段之后从本地储存库中删除媒体,并且同时将链接标记为不活动的,使得该链接不能被再次用于检索媒体。在其他实施例中,例如当链接在预定次数的观看之后到期时,接收客户端可以被配置为在全屏视图已经被呈现预定次数之后从本地储存库中删除媒体,并且同时将链接标记为不活动的,使得链接不能被再次用于检索媒体。在又一些另外的实施例中,接收客户端可以被配置为将检索到的媒体存储在临时储存库中,并且每次在全屏视图被呈现之后删除媒体。在这样的实施例中,链接可以在某个时段内(例如,对于预定次数的观看或在预定量的时间内)保持是活动的,并且可以用于在这个时段内检索媒体。在时段结束后,该链接可以变为不活动的,在此时之后该链接不能用于从blob储存器中检索媒体。
通过将媒体远程地存储在blob储存器中并提供到媒体的链接,该链接在某些条件下可以变得不活动,媒体可以保留在储存库中,即使一些或所有链接开始到期。例如,如果链接被配置为在一次观看后到期,则不同的接收用户可能在不同的时间观看全屏显现。媒体可以保留在blob服务器上(例如,直到所有链接都到期为止),而具有不活动的链接的用户可能实际上不能够得到媒体。同时,具有活动链接的用户可以继续能够通过blob储存器来访问媒体,直到他们的链接到期为止。
如上面所提到的,用户可以回复短暂内容消息。例如,接收客户端可以向中间服务器提交回复422。中间服务器可以将回复分配到适当的对话或线程(其中对话可以由它的参与者唯一地定义)。为此目的,中间服务器可以将回复与(例如)线程或对话标识符相关联。将回复分配到对话后,服务器可以将回复424(至少)传输给发送用户。
根据示例性实施例,当原始短暂内容消息作为广播被传输时,由接收用户对发送用户的短暂内容消息的回复可以被分配到在发送用户和接收用户之间的一对一对话。如果短暂内容消息被传输到一个组,则回复可以在一对一基础上被发送,或者可以被分配到与该组相关联的对话。当将回复分配到组对话时,服务器可以证实在每对或组的成员之间存在成对加密会话。如果这种会话不存在,则回复可以被发送到在接收用户和发送者之间的一对一对话中。
在传输短暂内容消息412之后,发送用户可以将新联系人(在这种情况下,第三用户)添加到发送用户的联系人列表。因此,发送用户可以向服务器传输新的联系消息426。如在图4的例子中所示,将新用户添加到发送用户的联系人列表不使相应的短暂内容消息被发送到第三用户客户端,即使第三用户先前已经将发送用户包括在第三用户的联系人列表中(反向不对称)。短暂内容消息对于第三用户客户端依然是不可用的。
类似地,第三用户可以将新联系人(在这种情况下,发送客户端)添加到第三用户的联系人列表。因此,新的联系人消息428可以被传输到服务器。再次,将新用户添加到第三用户的联系人列表不使相应的短暂内容消息被发送到第三用户,即使发送用户先前已经将第三用户包括在发送用户的联系人列表中(正向不对称)。
可选地,如果发送用户在短暂内容消息412被广播的时间处已经将第三用户包括在发送用户的联系人列表中,那么稍后建立对称关系(由于新的联系人消息428)可以使短暂内容消息412被发送到第三用户客户端或者以其他方式对第三用户客户端是可用的。
示例性逻辑
接下来关于图5A-7C描述用于实现上述实施例的示例性逻辑。示例性逻辑可以用硬件、软件或硬件和软件的组合来实现(例如,至少部分地用硬件来实现)。
图5A是描绘由系统(例如发送客户端)执行的用于在通信服务中生成短暂内容消息的示例性逻辑500的流程图。
在块502处,系统可以执行初始账户建立。初始账户建立可以用用于建立加密会话的信息(例如关于图3A描述的信息)填充通信服务的中间服务器的客户端数据库。
当用户最初向通信服务注册时和/或当用户登录到新设备、在新设备上安装通信服务的软件、更新现有软件或硬件等时,块502的步骤可以被执行。
在块504处,系统可以可选地发起与一个或更多个其他用户的加密通信会话。系统可以传输消息并执行与关于图3B描述的操作类似的操作。当该用户试图与一个用户(与该用户的加密会话当前不存在)通信时,当用户更新他们的通信软件时,当用户…时,块504的步骤可以被执行。
在块506处,系统可以进入通信服务的短暂内容消息功能。关于图5B更详细地描述短暂内容消息进入的例子。作为短暂内容消息进入的一部分,可以为短暂内容消息选择内容,并且可以生成短暂内容消息。
在块508处,系统可以可选地接收对短暂内容消息的一组接收者的选择。可以呈现允许用户从在发送客户端上的联系人列表中选择接收者的界面。选择的接收者的列表可以被加载到在块514处生成的短暂内容消息中。如果特定的接收者没有被选择,则短暂内容消息可以被标记用于传输到在发送客户端上的联系人列表的每个成员。联系人列表可以被加载到在块514处生成的短暂内容消息中。
在块510处,系统可以可选地发起与在块508处识别的任何潜在接收者的加密通信会话,对于潜在接收者,会话没有先前在块504处被发起。
在块512处,系统可以将在块506处选择的内容加密,并将加密的内容上传到媒体服务器。为此目的,系统可以生成消息并执行与关于图3D描述的操作类似的操作。
在块514处,系统可以生成包括短暂内容的消息。内容可以包括指示消息是短暂内容消息的短暂内容标志。内容可以如前所述被加密,并与用于将消息解密的公钥和在块508处生成的接收者列表一起被打包。
在块516处,系统可以将在块514处生成的消息传输到中间服务器。服务器可以接收消息,删除接收者列表,并将消息扇出到列表中的接收者。
在块518处,系统可以从服务器接收对短暂内容消息的回复。回复可以与对话ID和一个或更多个参与者相关联。在块520处,系统可以识别与会话ID相关联的预先存在的对话,或者可以生成具有会话ID并且包括一个或更多个参与者的新对话。原始短暂内容消息可以作为消息被包括在对话中,并且在块518处接收的回复可以被添加到对话。然后,处理可以终止。
图5B是描绘由系统(例如发送客户端)执行的用于处理进入内容共享界面的请求的示例性逻辑550的流程图。
在块552处,系统可以向通信应用呈现界面,例如在图1A中描绘的界面。该界面可以包括用于显示短暂内容界面的短暂内容图标。在块554处,系统可以例如通过登记与暂时内容图标的交互来接收访问短暂内容界面的指令。
响应于在块554处接收到指令,在块556处系统可以显示短暂内容界面,例如在图1B中描绘的界面,并且可以接收对界面中的短暂内容可交互元素的选择。
在块558处,系统可以响应于接收到内容共享选择而呈现内容选择/生成界面。内容选择/生成界面可以呈现用于选择待共享的预先存在的内容或者用于生成新内容的一个或更多个选项。在图1C和图1L中描绘了这种界面的例子。
在块560处,系统可以接收内容用于通过内容界面来共享。内容可以在界面中被选择,或者可以通过界面来生成。然后,处理可以终止。
图6A是描绘由系统(例如中间服务器)执行的用于处理短暂内容消息的传输的示例性逻辑600的流程图。
在块602处,系统可以从客户端接收账户建立请求,并且在块604中可以执行账户建立。系统可以在块606中接收发起加密会话的请求,并且在块608处可以发起加密会话。这些块通常对应于关于图5A的块502-504描述的客户端侧步骤,并且为了简洁起见,进一步的讨论在这里被省略。
在块610处,系统可以从发送客户端接收短暂内容消息。短暂内容消息可以作为消息被接收,并且在一些实施例中可以与从发送客户端接收的其他(非短暂内容)消息不可区分。在其他实施例中,消息可以被标记为包括在服务器可访问的消息的一部分中的短暂内容,并且服务器可以将消息识别为短暂内容消息并执行指定的短暂内容特定处理。
在块612处,系统可以从消息中检索接收者列表。如果没有接收者列表存在(例如,在消息中为接收者列表指定的预定位置为空),则系统可以假设该消息被规定为从发送用户到在发送用户的联系人列表中的每个联系人的广播。
在块614处,系统可以过滤联系人列表以减少不想要的消息。关于图6B更详细地描述块614。
在块616处,系统可以将原始消息扇出到在过滤列表中的接收者。所传输的消息可以省略在块612中识别的接收者列表,但可以以其他方式包括在原始消息中包括的内容和解密密钥。
在块618处,系统可以从在块616中消息被传输到的一个或更多个接收者接收对短暂内容消息的回复。根据原始消息是作为组消息还是广播被传输,系统可以将回复分配到不同类型的对话。因此在块620处,系统可以确定原始短暂内容消息是广播消息还是组消息。如果原始消息没有指定接收者或者指定在发送用户的联系人列表中的所有接收者或者以其他方式被标记为广播消息,则系统可以确定原始短暂内容消息作为广播的一部分被传输。另一方面,如果原始消息指定少于发送者的整个联系人列表的有限数量的接收者或者针对组会话指定会话ID以识别接收者或者以其他方式被标记为组消息,则系统可以确定原始短暂内容消息作为组消息的一部分被传输。
如果短暂内容消息作为广播被传输,则在块622处系统可以将回复分配到在原始发送者和回复接收者之间的一对一对话。系统可以维持涉及每个用户的活动对话的列表,并且可以检查该列表以确定在这两个用户之间是否已经存在一对一对话。如果是,则现有会话的会话ID可以被检索,并且回复可以与会话ID相关联(原始短暂内容消息也可以与会话ID相关联)。如果否,则新的会话ID可以被生成并与两个用户相关联。回复和原始消息可以与新的对话ID相关联。
如果原始短暂内容消息作为组消息被传输,则在块624处系统可以证实组中的每对用户与加密会话相关联。这个块可用于确保组消息的安全性。尽管可能在短暂内容的原始发送者和短暂内容的每个接收者之间存在成对加密会话(在图5A的块504和/或510处被执行),但不能一定假设接收者具有与彼此的成对加密会话。如果是必要的,系统可以在没有成对加密会话的任何对接收者之间发起加密会话。
然后处理可以继续进行到块626,其中系统将回复分配到组对话。系统可以检查上述对话列表以确定在这些发送者和接收者之间是否已经存在组对话。如果是,则现有会话的会话ID可以被检索,并且回复可以与会话ID相关联(原始短暂内容消息也可以与会话ID相关联)。如果否,新的会话ID可以被生成并与参与者相关联。回复和原始消息可以与新的对话ID相关联。
在块628处,系统可以传输回复,作为在块622或块626中识别的对话的一部分。然后,处理可以终止。
图6B是描绘由系统(例如中间服务器)执行的用于在接收到短暂内容消息时过滤联系人的列表的示例性逻辑650的流程图。短暂内容消息可以作为广播被传输或者传输给一组指定的接收者。
在块652处,系统可以访问短暂内容消息的预期接收者的列表。在广播的情况下,预期接收者的初始列表可以是发送用户的联系人列表。在一组指定的接收者(例如,对话中的参与者、选定组等)的情况下,发送客户端可以通过提供列表、通过提供对话或线程ID(会话中的参与者可以从该会话或线程ID导出)或通过一些其他手段来指定接收者。在一些实施例中,发送客户端还可以在广播的情况下指定一组接收者。在任一种情况下,发送客户端可以将预期接收者的列表附加到短暂内容消息。
在块654处,系统可以确定任何另外的潜在接收者是否仍有待处理。如果否,则处理可以继续进行到块565,并且系统可以返回过滤后的接收者列表作为消息的接收者的最终列表。
如果系统在块654处确定更多潜在接收者仍有待处理,则处理可以继续进行到块658,并且在发送用户的联系人列表中的下一个潜在接收者可以被选择用于复查。
在块660处,系统可以确定选定预期接收者是否已经被发送者阻止。例如,系统可以访问发送用户的联系人列表,并确定与选定预期接收者相关联的条目是否与被阻止的标志相关联。如果是(即,选定预期接收者被发送者阻止),则处理可以继续进行到块662,并且选定预期接收者可以从消息将被发送到的接收者的列表中移除。然后,处理可以返回到块654,并且系统可以确定额外的潜在接收者是否尚须评估。
如果否(即,选定预期接收者没有被发送者阻止),则处理可以继续进行到块664。
在块664处,系统可以访问选定预期接收者的联系人列表。例如,系统可以访问客户端数据库206,并基于选定预期接收者的用户ID来执行查找。系统可以访问与选定预期接收者相关联的联系人列表312,并在其中针对发送用户搜索联系人UID 314-i。
在块666处,系统可以确定发送者是否在与选定预期接收者相关联的联系人列表中。如果否,则处理可以继续进行到块662,并且选定预期接收者可以从接收者列表中被过滤出(由于反向不对称)。
如果否(即,在选定预期接收者的联系人列表中找到发送用户),则处理可以继续进行到块668。在块668处,系统可以确定发送者是否已经被预期接收者阻止。例如,系统可以确定与在预期接收者的联系人列表中的发送用户相关联的联系人条目(如在块666中检索的)是否与阻止标志相关联。如果是,则处理可以继续进行到块662,并且选定预期接收者可以从接收者列表中被过滤出。
如果否,则处理可以继续进行到块670,并且选定预期接收者可以被包括在短暂内容消息的接收者列表中。然后,处理可以返回到块654,并且系统可以确定额外的潜在接收者是否尚须评估。
图7A是描绘由系统(例如接收客户端)执行的用于显示短暂内容消息的示例性逻辑700的流程图。
在块702处,系统可以执行与通信服务的初始建立,并且在块704处可以发起加密会话。这些块通常对应于关于图5A的块502-504描述的客户端侧步骤,并且为了简洁起见,进一步的讨论在这里被省略。
在块706处,系统可以在块704中发起的会话中接收加密消息。在块708处,系统可以解析消息以检索公钥,并且在块710处可以计算它自己的私钥。在块712处,系统可以使用公钥和私钥来将消息解密。上面关于图3A-3E描述了用于将消息解密的一般过程。
在块714处,系统可以确定短暂内容标志是否存在于解密的消息中或者与解密的消息相关联。如果否,则处理可以继续进行到块716,并且解密的内容可以在对话中被显示为正常消息。如果是,则处理可以继续进行到块718。
在块718处,系统可以将该消息处理为短暂内容消息。系统可以解析消息的内容以检索媒体的缩略图(或指定待使用的在本地存储的缩略图的指示符)和到在blob储存器上存储的媒体的链接。
系统可以在块720处确定短暂内容消息的排序,使得短暂内容消息可以按排序的顺序被显示。关于图7B更详细地描述块720。
在块722处,系统可以在专用于短暂内容消息的界面的一个或更多个短暂内容选项卡或部分中显示缩略图。关于图1B和图1D描述了这种界面的例子。作为在块720处执行的处理的一部分,系统可以计算与短暂内容消息相关联的兴趣分数。最近的短暂内容消息(例如,在预定的时间段内)和/或预定数量的短暂内容消息可以基于兴趣分数以排序的顺序被显示。
在块724处,系统可以接收缩略图的选择。该选择可以在专用于短暂内容消息的界面的部分中、在对话中的消息中等被接收。
在块726处,系统可以确定链接当前是否是活动的。例如,可以在预定量的时间之后或者在内容已经被观看了预定的次数之后将链接设置为不活动的。链接变为不活动的条件可以作为链接的一部分或者以其他方式在短暂内容消息中被指定。如果没有条件被指定,则系统可以应用默认条件,或者链接可以被设置为保持永久活动。
如果在块726处链接当前不是活动的,那么在块728处系统可以阻止显示内容。如果在块726处链接是活动的,则处理可以继续进行到块730。
在块730处,系统可以使用链接来检索内容并将内容解密。上面关于图3D描述了用于检索内容和将内容解密的过程。
在块732处,系统可以显示内容项目的全屏或放大表示。关于图1E-1I描述了用于显示内容项目的全屏或放大表示的界面的例子。
在块734处,系统可以在显示全屏通知时可选地将链接标记为不活动的。这可以例如在内容的短暂性模型使得内容只能被观看一次的情况下被使用,或者为了每当内容被请求时迫使接收客户端重新下载内容,使得在当内容被访问的时间之间内容不保留在本地设备上。
在块736处,系统可以接收对短暂内容消息的回复。例如,用户可以在全屏显现中选择回复选项,对包括短暂内容消息的消息进行回复等等。在块738处,系统可以向服务器传输回复。然后,处理可以终止。
图7B是描绘由系统(例如发送客户端)执行的用于将短暂内容消息排序的示例性逻辑750的流程图。
在块752处,系统可以接收显示短暂内容消息的指令。例如,当加载通信应用的界面时,界面的一个或更多个部分可以专用于显示短暂内容消息。本地用户可访问的最近的短暂内容消息可以存储在本地设备或服务器上的队列中。当加载界面的部分时,系统可以指示排序逻辑750将排队的短暂内容消息进行排序。
系统可以建立与短暂内容消息相关联的用户ID的输出队列或列表。UID可以按照以它们被排序的顺序置于输出队列或列表内。输出队列或列表最初可以是空的,并且当短暂内容消息被评估时,与短暂内容消息相关联的UID可以被添加到列表。
在块754处,系统可以确定是否仍然有额外的短暂内容消息有待排序。例如,系统可以接收由服务器传输到接收客户端的最近的短暂内容消息的列表。该列表可以包括在预定量的时间内传输到接收客户端的每个短暂内容消息,或者可以包括预定数量的短暂内容消息等。在块754处,系统可以确定在列表上的所有短暂内容消息是否已经被评估。
如果否,则在块756处系统可以基于所计算的兴趣分数(如下所述)来对短暂内容消息排序,如果在每个短暂内容消息被评估时系统没有执行排序的话。被排序的短暂内容消息可以按排序的顺序添加到输出队列或列表。在块758处,系统可以返回排序的结果。
如果在块754处有短暂内容消息待评估,则处理可以继续进行到块760。在块760处,系统可以检索待评估的下一个短暂内容消息(例如,从服务器或本地输入队列)。
在块762处,系统可以确定在评估中的短暂内容消息的新近度。短暂内容消息可以与时间戳相关联,并且系统可以确定自从时间戳以来已经过去的时间的量。可以基于过去的时间的量来计算新近度分数。
在块764处,系统可以识别短暂内容消息的发送者。可以关于短暂内容消息来识别发送者。系统可以维持与在系统上的联系人列表中的每个联系人相关联的收视率度量,并且对应于发送者的度量可以在块764处被检索。
在块766处,系统可以评估与发送者相关联的收视率度量。例如,在块768处系统可以确定当前用户是否最近(例如,在预定量的时间内)复查了来自发送者的短暂内容消息。系统可以基于最新复查的短暂内容消息来计算最近的复查分数。
在块770处,系统可以确定当前用户已经复查的来自发送者的最近(或全部时间的)短暂内容消息的百分比或比例。系统可以基于该百分比或比例来计算百分比复查分数。
在块772处,系统可以确定当前用户是否定期复查来自发送者的短暂内容消息。例如,系统可以确定用户在一段时间内根据频率多长时间复查一次发送者的短暂内容消息。基于复查的规律性,可以计算定期复查分数。
在块774处,系统可以基于在块762和766处评估的度量来计算兴趣分数。度量可以被加权和累积以达成兴趣分数。权重可以基于应用而改变。
处理然后可以返回到块754,并且系统可以确定是否有附加的短暂内容消息有待评估。
通信系统概览
这些例子可以由在本地、在客户端设备处或远程地(例如,在远程服务器处)或其某种组合提供的通信系统实现。图8A-8C描绘了通信系统的各种例子,并在下面被更详细地讨论。
图8A描绘了便于在两个或更多个用户之间的加密通信的示例性集中式通信系统800。集中式系统800可以在单个计算实体中(例如完全在单个集中式服务器设备826内)实现消息传送或通信服务的一些或全部结构和/或操作。
通信系统800可以包括具有包括一个或更多个部件的软件应用的计算机实现的系统。尽管图8A所示的通信系统800在某个拓扑中具有有限数量的元件,但通信系统800可以在替代拓扑中包括更多或更少的元件。
通信服务800通常可以被布置成接收、存储和传送通信,例如消息。通信可以包括媒体或内容项目或者可以与媒体或内容项目相关联。
客户端设备810可以传输被寻址到一个或更多个接收用户、用户账户或解析到接收客户端设备810的其他标识符的通信。在示例性实施例中,客户端设备810和它们的相应客户端820中的每个与通信服务800的一个或更多个特定用户相关联。在一些实施例中,客户端设备810可以是蜂窝设备,例如智能手机,并且可以基于与每个客户端设备810相关联的电话号码来被识别到通信服务800。在一些实施例中,每个客户端可以与向通信服务800注册的用户账户相关联。一般来说,可以通过用于接收通信的各种技术来对每个客户端寻址。虽然在一些实施例中客户端设备810可以是蜂窝设备,但是在其他实施例中一个或更多个客户端设备810可以是个人计算机、平板设备、任何其他形式的计算设备。
客户端810可以包括一个或更多个输入设备812和一个或更多个输出设备818。输入设备812可以包括例如麦克风、键盘、摄像机、电子笔、触摸屏和用于接收输入(包括消息数据、请求、命令、用户界面交互、选择和其他类型的输入)的其他设备。输出设备818可以包括扬声器、显示设备(例如监视器或触摸屏)以及用于向通信系统800显现界面的其他设备。
客户端810可以包括存储器,其可以是非暂时性计算机可读存储介质,例如硬盘驱动器、固态驱动器、闪存、只读存储器或随机存取存储器中的一个或组合。存储器可以是输入814的表示和/或输出816的表示以及一个或更多个应用。例如,存储器可以存储允许用户与社交网络服务交互的消息传送客户端820和/或社交网络客户端。
输入814可以是文本的,例如在输入设备812是键盘的情况下。可选地,输入814可以是音频或视频记录,例如在输入设备812是麦克风或摄像机的情况下。
输入814可以服从于自动语音识别(ASR)逻辑,以便将音频记录转换成由消息传送系统800可处理的文本。ASR逻辑可以位于客户端设备810处(使得音频记录在本地由客户端810处理,并且相应的文本被传输到通信服务器826),或者可以远程地位于通信服务器826处(在这种情况下,音频记录可以被传输到通信服务器826,并且通信服务器826可以将音频处理成文本)。其他组合也是可能的,例如,如果输入设备812是触摸板或电子笔,输入814可以是以手写的形式,其可以服从于手写或光学字符识别分析逻辑,以便将输入812转换成可处理的文本。
客户端810可以被提供有网络接口822,用于与网络824(例如互联网)通信。网络接口822可以以与网络824兼容的格式和/或使用与网络824兼容的协议来传输输入812,并且可以从网络824接收相应的输出816。
网络接口822可以通过网络824与通信服务器826通信。消息传送服务器826可操作来在消息传送客户端之间接收、存储和转发消息。
通信服务器826可以包括网络接口822、通信偏好82和通信逻辑830。通信偏好828可以包括对于一个或更多个用户和/或视频通信的一个或更多个隐私设置。例如,通信偏好828可以包括对于本文描述的逻辑的一个或更多个设置,包括默认设置。
如上所述,通信逻辑830可以包括用于生成、处理和/或显示短暂内容消息的短暂内容逻辑832(短暂内容逻辑832可以此外或可选地设置在客户端810上)。
客户端810和/或通信服务器826的网络接口822也可以用于通过网络824与社交网络服务器836通信。社交网络服务器836可以包括定义社交网络中的连接的社交网络图838,或者可以与社交网络图838交互。此外,通信服务器826可以为了各种目的(例如检索来自社交网络的连接信息、消息传送历史、事件细节等)而连接到社交网络服务器836。
客户端810的用户可以是与社交网络服务器836交互或通过社交网络服务器836通信的个人(人类用户)、实体(例如企业、公司或第三方应用)或组(例如个人或实体)。社交网络服务器836可以是托管在线社交网络的网络可寻址计算系统。社交网络服务器836可以生成、存储、接收和发送社交网络数据,例如用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据。社交网络服务器836可以直接地或经由网络824由网络环境的其他部件访问。
社交网络服务器836可以包括授权服务器(或其他合适的部件),该授权服务器允许用户例如通过设置适当的隐私设置来选择赞同或选择撤消让他们的动作由社交网络服务器836记录或与其他系统(例如,诸如消息传送服务器826的第三方系统)共享。用户的隐私设置可以确定可以记录与用户相关联的什么信息、可以如何记录与用户相关联的信息、何时可以记录与用户相关联的信息、谁可以记录与用户相关联的信息、可以与谁共享与用户相关联的信息以及与用户相关联的信息可以为了什么目的而被记录或共享。授权服务器可用于通过封锁、数据散列、匿名化或视情况而定的其他适当的技术来实施社交网络服务器836的用户的一个或更多个隐私设置。
更特别地,在线社交网络的一个或更多个内容对象可以与隐私设置相关联。对象的隐私设置(或“访问设置”)可以以任何合适的方式(例如与对象相关联地、在授权服务器上的索引中、以另一种合适的方式或其任何组合)被存储。对象的隐私设置可以指定如何使用在线社交网络来访问(例如,查看或共享)对象(或与对象相关联的特定信息)。在对象的隐私设置允许特定用户访问那个对象的场合,对象可以被描述为关于那个用户是“可见的”。作为例子而不是作为限制,在线社交网络的用户可以指定对于用户简档页面的隐私设置识别可以访问在用户简档页面上的工作经验信息的一组用户,从而拒绝其他用户访问该信息。在特定实施例中,隐私设置可以指定不应被允许访问与对象相关联的某些信息的用户的“黑名”。换句话说,黑名单可以指定一个或更多个用户或实体,对于其,对象是不可见的。作为例子而不是作为限制,用户可以指定可能不访问与用户相关联的相册的一组用户,从而拒绝那些用户访问相册(同时也可能允许不在该组用户内的某些用户访问相册)。
在特定实施例中,隐私设置可以与社交网络图838的特定元素相关联。社交图元素的隐私设置(例如节点或边)可以指定可以如何使用在线社交网络来访问社交图元素、与社交图元素相关联的信息或与社交图元素相关联的内容对象。作为例子而不是作为限制,对应于特定照片的特定概念节点可以具有指定照片只可由在照片中标记的用户及其朋友访问的隐私设置。在特定实施例中,隐私设置可以允许用户选择赞同或选择撤销让他们的动作由社交网络服务器836记录或者与其他系统共享。在特定实施例中,与对象相关联的隐私设置可以指定被允许的访问或访问的拒绝的任何合适粒度。作为例子而不是作为限制,可以为特定用户(例如,仅仅我、我的室友和我的老板)、在特定分离程度内的用户(例如,朋友或朋友的朋友)、用户组(例如,游戏俱乐部、我的家人)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公众”)、无用户(“私人”)、第三方系统的用户、特定应用(例如,第三方应用、外部网站)、其他合适的用户或实体或其任何组合指定访问或访问的拒绝。尽管本公开描述了以特定方式使用特定的隐私设置,但本公开设想以任何合适的方式使用任何合适的隐私设置。
响应于来自用户(或其他实体)的对存储在数据储存器中的特定对象的请求,社交网络服务器836可以向该对象的数据储存器发送请求。该请求可以识别与该请求相关联的用户。如果授权服务器基于与对象相关联的隐私设置确定用户被授权访问对象,则所请求的数据对象可以仅被发送给用户(或用户的客户端系统810)。如果请求用户没有被授权访问该对象,则授权服务器可以阻止所请求的对象从数据储存器中被检索,或者可以阻止所请求的对象被发送给用户。在搜索查询上下文中,对象可以仅作为搜索结果被生成,如果查询用户被授权访问该对象。换句话说,对象必须具有对查询用户可见的可见性。如果对象具有对用户不可见的可见性,则该对象可能从搜索结果被排除。
在一些实施例中,目标化标准可用于为了各种目的而识别社交网络的用户。用于识别用户和将用户作为目标的目标标准可以包括在社交网络服务器836上的明确的指定用户兴趣或者用户与在社交网络服务器836上的节点、对象、实体、品牌或页面的明确联系。此外或者作为备选方案,这样的目标化标准可以包括隐含的或推断的用户兴趣或联系(其可以包括分析用户的历史、人口统计、社会或其他活动、朋友的社会或其他活动、订阅或类似于该用户的其他用户的任何前述项(例如基于共享的兴趣、联系或事件))。特定实施例可以利用平台定目标,其可以涉及平台和“喜欢”印象数据;上下文信号(例如,“谁现在正在查看或最近已经查看过可口可乐的页面?”);轻量化联系(例如,“签到”);联系相似(lookalikes);粉丝;所提取的关键词;EMU广告;推理广告;系数、亲缘关系或其他社交图信息;朋友的朋友联系;钉住或推进;交易;民意测验;家庭收入、社会群或群体;在图像或其他媒体中检测到的产品;社交或开放图边类型;地理预测;简档或页面的视图;状态更新或其他用户帖子(其分析可能涉及自然语言处理或关键词提取);事件信息;或者协同过滤。识别用户和以用户作为目标还可能视情况暗指隐私设置(例如用户决定退出)、数据散列或数据匿名化。
在图8A中描绘的集中式实施例可能非常适合于作为新系统或作为现有系统的升级来部署,因为该逻辑被合并到消息传送服务器826中。相反,图8B描绘了示例性分布式消息传送系统850,其中用于选择优势/相关参与者并显示缩小尺寸的界面的功能被分配并且是从消息传送服务器远程地可访问的。分布式系统850的例子包括客户端-服务器架构、3层架构、N层架构、紧密耦合或聚集的架构、对等架构、主-从设备架构、共享数据库架构以及其他类型的分布式系统。
在图8B中描绘的许多部件与图8A中的部件相同,且为了简洁起见,这些元件的描述不在这里重复。在集中式实施例和分布式实施例之间的主要差异是单独的短暂服务器852的添加,短暂服务器852托管相关的短暂内容逻辑832。短暂服务器852可以不同于通信服务器826,但可以直接地或通过网络824与通信服务器826通信,以向通信服务器826提供短暂内容逻辑832的功能。
在图8B中描绘的实施例可能特别适合于允许示例性实施例与现有的消息传送系统一起被部署,例如当替换现有的消息传送服务器是困难或不合乎需要的时。此外在一些情况下,通信服务器826可能具有限制或阻止附加中枢功能的添加的有限资源(例如,处理或存储资源)。在这种情况下,仍然可以通过单独的通信服务器852来提供本文描述的能力。
图8C示出了社交网络图838的例子。在示例性实施例中,社交网络服务可以经由社交网络服务将一个或更多个社交图838存储在一个或更多个数据储存器中作为社交图数据结构。
社交图838可以包括多个节点,例如用户节点854和概念节点856。社交图838还可以包括连接节点的边858。社交图838的节点和边可以作为数据对象被存储在例如数据储存器(例如社交图数据库)中。这种数据储存器可以包括社交图838的节点或边的一个或更多个可搜索或可查询的索引。
社交图838可以由社交网络服务器826、客户端系统810、第三方系统或用于合适的应用的任何其他经批准的系统或设备访问。
用户节点854可以对应于社交网络系统的用户。用户可以是与社交网络系统交互或通过社交网络系统通信的个人(人类用户)、实体(例如企业、公司或第三方应用)或组(例如个人或实体)。在示例性实施例中,当用户向社交网络系统注册账户时,社交网络系统可以创建对应于用户的用户节点854,并将用户节点854存储在一个或更多个数据储存器中。本文描述的用户和用户节点854在适当的情况下可以指注册用户和与注册用户相关联的用户节点854。另外或作为备选方案,在适当的情况下,本文描述的用户和用户节点854可以指没有向社交网络系统注册的用户。在特定实施例中,用户节点854可以与由用户提供的信息或由各种系统(包括社交网络系统)收集的信息相关联。作为例子而不是作为限制,用户可以提供他们的姓名、简档图片、联系人信息、出生日期、性别、婚姻状况、家庭状况、就业、教育背景、偏好、兴趣或其他人口统计信息。在特定实施例中,用户节点854可以与对应于与用户相关联的信息的一个或更多个数据对象相关联。在特定实施例中,用户节点854可以对应于一个或更多个网页。用户节点854可以与在社交网络系统中的用户的唯一用户标识符相关联。
在特定实施例中,概念节点856可以对应于概念。作为例子而不是作为限制,概念可以对应于地方(例如,电影院、餐馆、地标或城市);网站(例如,与社交网络服务相关联的网站或与web应用服务器相关联的第三方网站);实体(例如,个人、企业、团体、运动队或名人);资源(例如音频文件、视频文件、数码照片、文本文件、结构化文档或应用),其可以位于社交网络系统内或外部服务器,例如web应用服务器上;不动产或知识产权(例如,雕塑、绘画、电影、游戏、歌曲、想法、照片或书面作品);游戏;活动;想法或理论;另一个合适的概念;或者两个或更多个这样的概念。概念节点556可以与由用户提供的概念的信息或由各种系统(包括社交网络系统)收集的信息相关联。作为例子而不是作为限制,概念的信息可以包括名称或标题;一个或更多个图像(例如,书籍的封面的图像);位置(例如,地址或地理位置);网站(其可以与URL相关联);联系人信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或者这样的信息的任何合适的组合。在特定实施例中,概念节点856可以与对应于与概念节点856相关联的信息的一个或更多个数据对象相关联。在特定实施例中,概念节点856可以对应于一个或更多个网页。
在特定实施例中,社交图838中的节点可以表示网页(其可以被称为“简档页面”)或由网页表示。简档页面可以由社交网络系统托管或是社交网络系统可访问的。简档页面也可以托管在与第三方服务器相关联的第三方网站上。作为例子而不是作为限制,对应于特定外部网页的简档页面可以是特定外部网页,并且简档页面可以对应于特定概念节点856。简档页面可以是由其他用户的全部或选定子集可查看的。作为例子而不是作为限制,用户节点854可以具有相应的用户简档页面,其中相应的用户可以添加内容、做出声明或以其他方式表达他或她自己。企业页面可以包括商业实体的用户简档页面。作为另一个例子而不是限制,概念节点856可以具有相应的概念简档页面,其中一个或更多个用户可以添加内容、做出声明或表达自己,特别是关于对应于概念节点856的概念。
在特定实施例中,概念节点856可以表示由第三方系统托管的第三方网页或资源。第三方网页或资源除了别的元素以外还可以包括代表动作或活动的内容、可选择的图标或其他图标或其他可交互对象(其可以例如用JavaScript、AJAX或PHP代码来实现)。作为例子而不是作为限制,第三方网页可以包括可选择的图标,例如“喜欢”、“签到”、“吃”、“推荐”或其他合适的动作或活动。查看第三方网页的用户可以通过选择图标之一(例如,“吃”)来执行动作,使客户端系统向社交网络系统发送指示用户的动作的消息。响应于该消息,社交网络系统可以在对应于用户的用户节点854和对应于第三方网页或资源的概念节点856之间创建边(例如,“吃”边),并将边858存储在一个或更多个数据储存器中。
在特定实施例中,在社交图838中的一对节点可以通过一条或更多条边858连接到彼此。连接一对节点的边858可以表示在该对节点之间的关系。在特定实施例中,边858可以包括或表示对应于在一对节点之间的关系的一个或更多个数据对象或属性。作为例子而不是作为限制,第一用户可以指示第二用户是第一用户的“朋友”。响应于该指示,社交网络系统可以向第二用户发送“朋友请求”。如果第二用户确认“朋友请求”,社交网络系统可以在社交图838中创建将第一用户的用户节点854连接到第二用户的用户节点854的边858,并将边858作为社交图信息存储在一个或更多个数据储存器中。在图8C的例子中,社交图838包括指示在用户“Amanda”和用户“Dorothy”的用户节点854之间的朋友关系的边858。尽管本公开描述或示出了连接特定用户节点854的具有特定属性的特定边858,但本公开设想连接用户节点854的具有任何合适属性的任何合适边858。作为例子而不是作为限制,边858可以表示友谊、家庭关系、企业或雇佣关系、粉丝关系、关注者关系、访客关系、订户关系、上级/下级关系、互惠关系、非互惠关系、另一种合适类型的关系或者两种或更多种这样的关系。此外,尽管本公开一般将节点描述为被连接,但本公开也将用户或概念描述为被连接。在本文中,对被连接的用户或概念的提及在适当的情况下可以指与在社交图838中由一条或更多条边858连接的那些用户或概念相对应的节点。
在特定实施例中,在用户节点854和概念节点856之间的边858可以表示由与用户节点854相关联的用户朝着与概念节点856相关联的概念执行的特定动作或活动。作为例子而不是作为限制,如图8C所示,用户可以“喜欢”、“参加”、“播放”、“收听”、“烹饪”、“工作”或“观看”概念,每个概念可以对应于边类型或子类型。对应于概念节点856的概念简档页面可以包括例如可选择的“签到”图标(例如,可点击的“签到”图标)或可选择的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,社交网络系统可以响应于对应于相应动作的用户动作创建“收藏夹”边或“签到”边。作为另一个例子而不是限制,用户(用户“Carla”)可以使用特定的应用(SPOTIFY,其为在线音乐应用)来收听特定的歌曲(“Across the Sea”)。在这种情况下,社交网络系统可以在对应于用户的用户节点854和对应于歌曲和应用的概念节点856之间创建“收听”边858和“使用”边(如图8C所示),以指示用户收听了该歌曲并使用了该应用。此外,社交网络系统可以在对应于该歌曲和该应用的概念节点856之间创建“播放”边858(如图8C所示),以指示特定的歌曲由特定的应用播放。在这种情况下,“播放”边858对应于由外部应用(SPOTIFY)对外部音频文件(歌曲“Across the Sea”)执行的动作。尽管本公开描述了连接用户节点854和概念节点856的具有特定属性的特定边858,但本公开设想连接用户节点854和概念节点856的具有任何适当属性的任何适当边858。此外,尽管本公开描述了代表单个关系的在用户节点854和概念节点856之间的边,但本公开设想代表一个或更多个关系的在用户节点854和概念节点856之间的边。作为例子而不是作为限制,边858可以代表用户喜欢的和已经在特定概念下使用的边。可选地,另一条边858可以表示在用户节点854和概念节点856之间的每种类型的关系(或单个关系的倍数)(如图8C所示,在用户“Edwin”的用户节点854和“SPOTIFY”的概念节点856之间)。
在特定实施例中,社交网络系统可以在社交图838中的用户节点854和概念节点856之间创建边858。作为例子而不是作为限制,查看概念简档页面的用户(例如,通过使用由用户的客户端系统托管的web浏览器或专用应用)可以通过点击或选择“喜欢”图标来指示他或她喜欢由概念节点856表示的概念,这可以使用户的客户端系统向社交网络系统发送指示用户喜欢与概念简档页面相关联的概念的消息。响应于该消息,社交网络系统可以在与用户相关联的用户节点854和概念节点856之间创建边858,如由在用户和概念节点856之间的“喜欢”边858所示的。在特定实施例中,社交网络系统可以在一个或更多个数据储存器中存储边858。在特定实施例中,边858可以由社交网络系统响应于特定的用户动作而自动形成。作为例子而不是作为限制,如果第一用户上传图片、观看电影或听歌曲,则边858可以在对应于第一用户的用户节点854和对应于那些概念的概念节点856之间形成。尽管本公开描述了以特定方式形成特定边858,但本公开设想以任何合适的方式形成任何合适的边858。
社交图838还可以包括多个产品节点。产品节点可以代表与特定业务相关联的特定产品。企业可以向消费者-企业服务提供产品目录,且因此消费者-企业服务可以表示在社交图838中的产品内的每个产品,每个产品在不同的产品节点中。产品节点可以包括与产品相关的信息,例如定价信息、描述信息、制造商信息、可用性信息和其他相关信息。例如,在餐馆的菜单上的每个项目可以在社交图838中用描述每个项目的产品节点来表示。产品节点可以由边链接到提供产品的企业。在多个企业提供一种产品的情况下,每个企业可以具有与它提供的产品相关联的不同的产品节点,或者每个企业可以链接到同一个产品节点。产品节点可以由边链接到已经购买、评级、拥有、推荐或查看产品的每个用户,其中边描述关系的性质(例如,购买、评级、拥有、推荐、查看或其他关系)。依靠所链接的商家业务,每个产品节点可以与图形id和相关联的商家id相关联。因此,通过在社交图838中检索链接到企业的用户节点的可用产品节点,可以将从企业可购买的产品传递给用户。产品节点的信息可以由社交网络系统操纵为封装关于被提及的产品的信息的产品对象。
这样,社交图838可用于推断社交网络系统的两个或更多个用户的共享的兴趣、共享的体验或其他共享或共同的属性。例如,两个或更多个用户(每个用户具有到在社交图838中表示的公共企业、产品、媒体项目、机构或其他实体的边)可以指示与那个实体的共享关系,其可以用于针对一个或更多个用户建议社交网络系统(包括消息传送系统)的定制使用。上述实施例可以由消息传送架构执行,消息传送架构的例子接着参考图9被描述。
消息传送架构
图9示出了实现适合于供示例性实施例使用的消息传送服务900的各种功能的多个服务器的实施例。将认识到,在消息传送服务900的各种实施例中可以使用工作和功能的不同分布。
消息传送服务900可以包括域名前端902。域名前端902可以被分配与在域名系统(DNS)中的消息传送服务900相关联的一个或更多个域名。域名前端902可以接收传入的连接,并将这些连接分配到提供各种消息传送服务的服务器。
消息传送服务902可以包括一个或更多个聊天服务器904。聊天服务器904可以包括用于接收和传输用户-用户消息传送更新(例如聊天消息)的前端服务器。传入的连接可以由域名前端902基于工作负载平衡来分配给聊天服务器904。
消息传送服务900可以包括后端服务器908。后端服务器908可以执行支持前端聊天服务器904的聊天操作的专门任务。可以使用多种不同类型的后端服务器908。将认识到,在不同的实施例中,任务类型到不同后端服务器908的分配可以改变。在一些实施例中,在本文描述的实施例中,由专用服务器提供的一些后端服务可以被组合到单个服务器或一组服务器上,每个服务器执行在不同服务器之间划分的多个任务。类似地,在一些实施例中,本文描述的一些专用后端服务器的任务可以在不同服务器组的不同服务器之间被划分。
消息传送服务900可以包括一个或更多个离线储存服务器910。一个或更多个离线储存服务器910可以存储对于当前离线消息传送客户端的消息传送内容,持续到当消息传送客户端重新连接时。
消息传送服务900可以包括一个或更多个会话服务器912。一个或更多个会话服务器912可以维持所连接的消息传送客户端的会话状态。
消息传送系统900可以包括一个或更多个存在服务器914。一个或更多个存在服务器914可以维持消息传送服务900的存在信息。存在信息可以对应于用户特定的信息,其指示给定用户是否具有在线消息传送客户端以及有空聊天、具有在线消息传送客户端但是当前离开它、没有在线消息传送客户端以及任何其他存在状态。
消息传送服务900可以包括一个或更多个推送储存服务器916。一个或更多个推送储存服务器916可以缓存推送请求并将推送请求传输到消息传送客户端。推送请求可用于唤醒消息传送客户端,通知消息传送客户端消息传送更新是可用的,以及以其他方式执行与消息传送客户端的服务器侧驱动交互。
消息传送服务900可以包括一个或更多个群组服务器918。一个或更多个群组服务器918可以维持群组的列表,将用户添加到群组,从群组中移除用户,以及执行群组聊天消息的接收、缓存和转发。
消息传送服务900可以包括一个或更多个黑名单服务器920。一个或更多个黑名单服务器920可以维持用户特定的黑名单,用户特定的传入黑名单为每个用户指示被禁止向该用户传输消息的一个或更多个其他用户。可选地或此外,一个或更多个黑名单服务器920可以维持用户特定的外发黑名单,其为每个用户指示该用户被禁止将消息传输到的一个或更多个其他用户。将认识到,传入块列表和外发块列表可以组合地存储在例如数据库中,其中传入块列表和外发块列表表示块信息的同一存储库的不同视图。
消息传送服务900可以包括一个或更多个最后看到的信息服务器922。一个或更多个最后看到的信息服务器922可以接收、存储和维持指示最后被看到的位置、状态、消息传送客户端以及用户最后看到的到消息传送服务900的连接的其他元素的信息。
消息传送服务900可以包括一个或更多个密钥服务器924。一个或更多个密钥服务器可以托管对于公钥/私钥加密通信的公钥。
消息传送服务900可以包括一个或更多个简档照片服务器926。一个或更多个简档照片服务器926可以存储消息传送服务900的多个用户的简档照片并且变得有空取回简档照片。
消息传送服务900可以包括一个或更多个垃圾邮件日志服务器928。一个或更多个垃圾邮件日志服务器928可以记录已知的和可疑的垃圾邮件(例如,不想要的消息,尤其是具有促销性质的消息)。一个或更多个垃圾邮件日志服务器928可以操作来分析消息以确定它们是否是垃圾邮件,并在一些实施例中执行对抗可疑垃圾邮件发送者(发送垃圾邮件消息的用户)的惩罚性措施。
消息传送服务900可以包括一个或更多个统计服务器930。一个或更多个统计服务器可以编译和存储与消息传送服务900的操作和消息传送服务900的用户的行为相关的统计信息。
消息传送服务900可以包括一个或更多个web服务器932。一个或更多个web服务器932可以参与与web浏览器的超文本传输协议(HTTP)和超文本传输协议安全(HTTPS)连接。
消息传送服务900可以包括一个或更多个聊天活动监控服务器934。一个或更多个聊天活动监控服务器934可以监控用户的聊天以确定由消息传送服务900的用户进行的未授权或被劝阻的行为。一个或更多个聊天活动监控服务器934可以与垃圾邮件日志服务器928和黑名单服务器920协作来工作,其中一个或更多个聊天活动监控服务器934识别垃圾邮件或其他被劝阻的行为,并且向垃圾邮件日志服务器928提供垃圾邮件信息,并在适当的情况下向黑名单服务器920提供阻止信息。
消息传送服务900可以包括一个或更多个同步服务器936。一个或更多个同步服务器936可以使消息传送系统500与来自消息传送客户端的联系人信息(例如在移动电话上的地址簿)同步,以在消息传送服务900中确定用户的联系人。
消息传送服务900可以包括一个或更多个多媒体服务器938。一个或更多个多媒体服务器可以存储在消息传送客户端之间在运送中的多媒体(例如,图像、视频、音频)、为离线端点缓存的多媒体,并且可以执行多媒体的代码转换。
消息传送服务900可以包括一个或更多个支付服务器940。一个或更多个支付服务器940可以处理来自用户的支付。一个或更多个支付服务器940可以连接到外部第三方服务器用于执行支付。
消息传送服务900可以包括一个或更多个注册服务器942。一个或更多个注册服务器942可以注册消息传送服务900的新用户。
消息传送服务900可以包括一个或更多个语音中继服务器944。一个或更多个语音中继服务器944可以中继在消息传送客户端之间的互联网语音协议(VoIP)语音通信以用于执行VoIP呼叫。
上述方法可以体现为在计算机可读介质上的指令或者计算架构的一部分。图10示出了适合于实现如前所述的各种实施例的示例性计算架构1000的实施例。在一个实施例中,计算架构1000可以包括电子设备(例如计算机1001)或者被实现为电子设备的一部分。实施例并不被限制在这个上下文中。
如在本申请中使用的,术语“系统”和“部件”意欲指计算机相关实体,或者是硬件、硬件和软件的组合、软件、或者是在执行中的软件,其例子由示例性计算架构1000提供。例如,部件可以是但不限于是在处理器上运行的进程、处理器、硬盘驱动器、(光和/或磁存储介质的)多个储驱动器、对象、可执行文件、执行线程、程序和/或计算机。作为例证,在服务器上运行的应用和服务器都可以是部件。一个或更多个部件可以驻留在执行的进程和/或线程中,并且部件可以位于一台计算机上和/或分布在两台或更多台计算机之间。此外,部件可以通过各种类型的通信介质通信地耦合到彼此以协调操作。协调可以涉及信息的单向或双向交换。例如,部件可以以通过通信介质传递的信号的形式来传递信息。该信息可以被实现为分配给各种信号线的信号。在这样的分配中,每个消息都是一个信号。然而,另外的实施例可以可选地使用数据消息。这种数据消息可以跨越各种连接被发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构1000包括各种常见的计算元件,例如一个或更多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件、电源等。然而,实施例不限于由计算架构1000实现。
如图10所示,计算架构1000包括处理单元1002、系统存储器1004和系统总线1006。处理单元1002可以是各种市场上可买到的处理器中的任何一种,没有限制地包括处理器;应用、嵌入式和安全处理器;处理器;IBM和单元处理器;Core(2)处理器;以及类似的处理器。双微处理器、多核处理器和其他多处理器架构也可以用作处理单元1002。
系统总线1006针对包括但不限于系统存储器1004的系统部件提供到处理单元1002的接口。系统总线1006可以是几种类型的总线结构中的任何一种,这些总线结构可以使用各种市场上可买到的总线架构中的任何一种进一步互连到存储器总线(有或没有存储器控制器)、外围总线和本地总线。接口适配器可以通过插槽架构连接到系统总线1006。示例插槽架构可以没有限制地包括加速图形端口(AGP)、卡总线、(扩展)工业标准架构((E)ISA)、微通道架构(MCA)、NuBus、外围部件互连(扩展)(PCI(X))、PCI Express、个人计算机存储卡国际协会(PCMCIA)和诸如此类。
计算架构1000可以包括或实现各种制造物品。制造物品可以包括计算机可读存储介质以存储逻辑。计算机可读存储介质的例子可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的例子可以包括使用任何合适类型的代码实现的可执行计算机程序指令,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码和诸如此类。实施例还可以至少部分地被实现为在非暂时性计算机可读介质中或上包含的指令,其可以由一个或更多个处理器读取和执行以使本文描述的操作的执行成为可能。
系统存储器1004可以包括以一个或更多个较高速度存储器单元的形式的各种类型的计算机可读存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(例如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、设备的阵列(例如独立磁盘冗余阵列(RAID)驱动器)、固态存储器设备(例如,USB存储器、固态驱动器(SSD))和适合于存储信息的任何其他类型的存储介质。在图10所示的实施例中,系统存储器1004可以包括非易失性存储器1008和/或易失性存储器1010。基本输入/输出系统(BIOS)可以存储在非易失性存储器1008中。
计算架构1000可以包括以一个或更多个较低速度存储器单元的形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)1012、从可移动磁盘1016读取或向可移动磁盘1016写入的磁性软盘驱动器(FDD)1014以及从可移动光盘1020(例如,CD-ROM或DVD)读取或向可移动光盘1020写入的光盘驱动器1018。HDD 1012、FDD 1014和光盘驱动器1020可以分别通过HDD接口1022、FDD接口1024和光学驱动器接口1026连接到系统总线1006。用于外部驱动器实现的HDD接口1022可以包括通用串行总线(USB)和IEEE 694接口技术中的至少一种或两种。
驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块(包括操作系统1028、一个或更多个应用程序1030、其他程序模块1032和程序数据1034)可以存储在驱动器和存储器单元1008、1012中。在一个实施例中,一个或更多个应用程序1030、其他程序模块1032和程序数据1034可以包括例如消息传送系统500的各种应用和/或部件。
用户可以通过一个或更多个有线/无线输入设备(例如键盘1036)和指向设备(例如鼠标1038)来将命令和信息输入到计算机1001内。其他输入设备可以包括麦克风、红外(IR)遥控器、射频(RF)遥控器、游戏板、手写笔、读卡器、软件狗、指纹读取器、手套、图形平板计算机、操纵杆、键盘、视网膜读取器、触摸屏(例如电容性、电阻性的等)、轨迹球、跟踪板、传感器、触控笔和诸如此类。这些和其他输入设备常常通过耦合到系统总线1006的输入设备接口1040连接到处理单元1002,但也可以通过其他接口(例如并行端口、IEEE 694串行端口、游戏端口、USB端口、IR接口等)来连接。
监控器1042或其他类型的显示设备也通过接口(例如视频适配器1044)连接到系统总线1006。监控器1042可以在计算机1001的内部或外部。除了监控器1042之外,计算机通常还包括其他外围输出设备,例如扬声器、打印机等。
计算机1001可以使用经由有线和/或无线通信到一个或更多个远程计算机(例如远程计算机1044)的逻辑连接来在联网环境中操作。远程计算机1044可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐电器、对等设备或其他公共网络节点,并且通常包括关于计算机1001描述的许多或所有元件,尽管为了简洁的目的,只有存储器/储存设备1046被示出。所描绘的逻辑连接包括到局域网(LAN)1048和/或更大的网络(例如广域网(WAN)1050)的有线/无线连接。这种LAN和WAN联网环境在办公室和公司中是普通的,并且便于全企业计算机网络,例如内联网,所有这些网络都可以连接到全球通信网络,例如互联网。
当在LAN联网环境中被使用时,计算机1001通过有线和/或无线通信网络接口或适配器1052连接到LAN 1048。适配器1052可以便于到LAN1048的有线和/或无线通信,LAN1048还可以包括布置在其上用于与适配器1052的无线功能通信的无线接入点。
当在WAN联网环境中被使用时,计算机1001可以包括调制解调器1054,或者连接到在WAN 1050上的通信服务器,或者具有用于通过WAN1050(例如借助于互联网)建立通信的其他装置。可以是内部的或外部的并且是有线和/或无线设备的调制解调器1054通过输入设备接口1040连接到系统总线1006。在联网环境中,关于计算机1001描绘的程序模块或其部分可以存储在远程存储器/储存设备1046中。将认识到,所示的网络连接是示例性的,并且在计算机之间建立通信链路的其他手段可以被使用。
计算机1001可操作来使用IEEE 802系列的标准来与有线和无线设备或实体(例如操作地设置在无线通信中的无线设备(例如,IEEE 802.13空中调制技术))通信。这至少尤其包括Wi-Fi(或无线保真)、WiMax和BluetoothTM无线技术。因此,通信可以是如同传统网络一样的预定义结构,或者仅仅是在至少两个设备之间的自组通信。Wi-Fi网络使用被称为IEEE802.13x(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机连接到彼此、连接到互联网和有线网络(其使用IEEE 802.3相关的媒体和功能)。
图11是描绘适合于实现如前所述的各种实施例的示例性通信架构1100的框图。通信架构1100包括各种常见的通信元件,例如发射机、接收机、收发机、无线电装置、网络接口、基带处理器、天线、放大器、滤波器、电源等。然而,实施例不限于由通信架构1100实现。
如图11所示,通信架构1100包括一个或更多个客户端1102和服务器1104。客户端1102可以实现客户端设备510。服务器1104可以实现服务器设备526。客户端1102和服务器1104操作地连接到可用于存储对相应的客户端1102和服务器1104是本地的信息(例如cookies和/或相关联的上下文信息)的一个或更多个相应的客户端数据储存器1106和服务器数据储存器1108。
客户端1102和服务器1104可以使用通信框架1110在彼此之间传递信息。通信框架1110可以实现任何众所周知的通信技术和协议。通信框架1110可以被实现为分组交换网络(例如,公共网络例如互联网、私有网络例如企业内联网等)、电路交换网络(例如,公共交换电话网络)或者分组交换网络和电路交换网络的组合(具有合适的网关和译码器)。
通信框架1110可以实现被布置成接受、通信和连接到通信网络的各种网络接口。网络接口可以被视为一种专用形式的输入输出接口。网络接口可以采用连接协议,没有限制地包括直接连接、以太网(例如,厚、薄、双绞线10/100/1000Base T和诸如此类)、令牌环、无线网络接口、蜂窝网络接口、IEEE 802.11a-x网络接口、IEEE 802.16网络接口、IEEE802.20网络接口和诸如此类。此外,多个网络接口可以用于与各种通信网络类型接合。例如,可以采用多个网络接口来允许通过广播、多播和单播网络进行通信。如果处理要求规定更大的速度和容量,分布式网络控制器架构可以类似地用于合并(pool)、负载平衡或以其他方式增加客户端1102和服务器1104所需的通信带宽。通信网络可以是有线和/或无线网络中的任何一个和组合,没有限制地包括直接互连、安全定制连接、专用网络(例如企业内联网)、公共网络(例如互联网)、个人区域网(PAN)、局域网(LAN)、城域网(MAN)、作为在互联网上的节点的操作任务(OMNI)、广域网(WAN)、无线网络、蜂窝网络和其他通信网络。
图12示出了在多载波OFDM系统(例如消息传送系统500)中使用的设备1200的实施例。设备1200可以实现例如如参考消息传送部件逻辑600、意图确定逻辑700和群组选择逻辑800描述的软件部件1202。设备1200还可实现逻辑电路1204。逻辑电路1204可以包括物理电路以执行针对消息传送系统500描述的操作。如图12所示,设备1200可以包括无线电接口1206、基带电路1208和计算平台1210,尽管实施例不限于这个配置。
设备1200可以在单个计算实体中(例如完全在单个设备中)实现消息传送系统500和/或逻辑电路1204的一些或全部结构和/或操作。可选地,设备1200可以使用分布式系统架构(例如客户端-服务器架构、3层架构、N层架构、紧密耦合或聚集的架构、对等架构、主-从设备架构、共享数据库架构和其他类型的分布式系统)来跨越多个计算实体分配对于消息传送系统500和/或逻辑电路1204的结构和/或操作的部分。实施例并不被限制在这个上下文中。
在一个实施例中,无线电接口1206可以包括适于传输和/或接收单载波或多载波调制信号(例如,包括互补码键控(CCK)和/或正交频分复用(OFDM)符号)的部件或部件的组合,尽管实施例不限于任何特定的空中接口或调制方案。无线电接口1206可以包括例如接收机1212、发射机1214和/或频率合成器1216。无线电接口1206可以包括偏置控制器、晶体振荡器和/或一个或更多个天线1218。在另一个实施例中,无线电接口1206可以如所需的使用外部电压控制振荡器(VCO)、表面声波滤波器、中频(IF)滤波器和/或RF滤波器。由于潜在RF接口设计的多样性,其扩展性描述被省略。
基带电路1208可以与无线电接口1206通信以处理、接收和/或传输信号,并且可以包括例如用于下变频所接收的信号的模数转换器1220以及用于上变频用于传输的信号的数模转换器1222。此外,基带电路1208可以包括基带或物理层(PHY)处理电路1224,用于相应接收/传输信号的PHY链路层处理。基带电路1208可以包括例如用于媒体访问控制(MAC)/数据链路层处理的处理电路1226。基带电路1208可以包括用于例如通过一个或更多个接口1230与处理电路1226和/或计算平台1210通信的存储器控制器1228。
在一些实施例中,PHY处理电路1224可以包括结合诸如缓冲存储器的附加电路来构造和/或解构通信帧(例如无线电帧)的帧构造和/或检测模块。可选地或此外,MAC处理电路1226可以共享对这些功能中的某些功能的处理,或者独立于PHY处理电路1224而执行这些过程。在一些实施例中,MAC和PHY处理可以集成到单个电路中。
计算平台1210可以对设备1200提供计算功能。如所示,计算平台1210可以包括处理部件1232。除了基带电路1208之外或者作为基带电路1208的替代,设备1200可以使用处理部件1232来执行消息传送系统500和逻辑电路1204的处理操作或逻辑。处理部件1232(和/或PHY 1224和/或MAC 1226)可以包括各种硬件元件、软件元件或两者的组合。硬件元件的例子可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件元件的例子可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子程序、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施例是否使用硬件元件和/或软件元件来实现可以根据任何数量的因素(例如期望计算速率、功率电平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束)而变化,如对给定实现所需的。
计算平台1210还可以包括其他平台部件1234。其他平台部件1234包括公共计算元件,例如一个或更多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件(例如数字显示器)、电源等。存储器单元的例子可以没有限制地包括以一个或更多个较高速度存储器单元的形式的各种类型的计算机可读和机器存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(例如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、设备的阵列(例如独立磁盘冗余阵列(RAID)驱动器)、固态存储器设备(例如,USB存储器、固态驱动器(SSD))和适合于存储信息的任何其他类型的存储介质。
设备1200可以是例如超移动设备、移动设备、固定设备、机器对机器(M2M)设备、个人数字助理(PDA)、移动计算设备、智能电话、电话、数字电话、蜂窝电话、用户设备、电子书读取器、头戴式耳机、单向寻呼机、双向寻呼机、消息传送设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器农场、web服务器、网络服务器、互联网服务器、工作站、微型计算机、主计算机、超级计算机、网络电器、web电器、分布式计算系统、多处理器系统、基于处理器的系统、消费电子设备、可编程消费电子设备、游戏设备、电视机、数字电视机、机顶盒、无线接入点、基站、节点B、演进节点B(eNB)、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器或其组合。因此,可以在设备1200的各种实施例中包括或省略本文描述的设备1200的功能和/或特定配置,如适当地所需的。在一些实施例中,设备1200可以被配置为与和本文引用的WMAN和/或其他宽带无线网络的3GPP LTE规范和/或IEEE1402.16标准中的一个或更多个相关联的协议和频率兼容,尽管实施例并不被限制在这个方面中。
可以使用单输入单输出(SISO)架构来实现设备1200的实施例。然而,某些实现可以包括多个天线(例如,天线1218),用于使用用于波束成形或空分多址接入(SDMA)的自适应天线技术和/或使用MIMO通信技术来进行传输和/或接收。
可以使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合来实现设备1200的部件和特征。此外,在适当的情况下,可以使用微控制器、可编程逻辑阵列和/或微处理器或前述项的任何组合来实现设备1200的特征。注意,硬件、固件和/或软件元件在本文可以被共同或单独地称为“逻辑”或“电路”。
应当认识到,在图12的框图中所示的示例性设备1200可以代表许多潜在实现的一个在功能上描述性的例子。因此,在附图中描绘的块功能的划分、省略或包括并不意味着用于实现这些功能的硬件部件、电路、软件和/或元件将必须在实施例中被划分、省略或包括。
至少一个计算机可读存储介质1236可以包括指令,指令当被执行时使系统执行本文描述的任何计算机实现的方法。
关于术语的一般注释
可以使用措辞“一个实施例”或“实施例”连同它们的派生词来描述一些实施例。这些术语意味着关于该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。短语“在一个实施例中”在说明书中的不同地方中的出现不一定都指同一实施例。此外,除非另外提到,否则上面描述的特征被识别为在任何组合中一起可使用。因此,单独地讨论的任何特征可与彼此组合地被使用,除非提到特征与彼此不相容。
一般参考本文使用的符号和术语,本文的详细描述可以从在计算机或计算机网络上执行的程序过程方面来呈现。这些过程描述和表示由本领域中的技术人员使用来最有效地向本领域中的其他技术人员传达他们的工作的实质。
过程在这里且通常被构想为导致期望结果的操作的前后一致的序列。这些操作是需要物理量的物理操纵的操作。通常,尽管不是必须的,这些量采取能够被存储、传输、组合、比较和其他操纵的电、磁或光信号的形式。主要是由于共同使用的原因,将这些信号称为比特、值、元素、符号、字符、项、数字和诸如此类有时被证明是方便的。然而应该注意,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。
此外,所执行的操纵通常被称为诸如添加或比较的术语,这些术语通常与由操作人员所执行的心理操作相关联。在本文描述的形成一个或更多个实施例的一部分的任何操作中,操作人员的这种能力不是必需的或者在大多数情况下是合意的。更确切地,操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。
可以使用措辞“耦合”和“连接”连同它们的派生词来描述一些实施例。这些术语不一定被预期为彼此的同义词。例如,可以使用术语“连接”和/或“耦合”来描述一些实施例,以指示两个或更多个元件与彼此直接物理或电接触。然而,术语“耦合”也可以意味着两个或更多个元件与彼此不直接接触,但是仍然与彼此相互合作或相互作用。
各种实施例还涉及用于执行这些操作的装置或系统。该装置可以为所需目的专门构造,或者它可以包括如由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文提出的过程并不固有地与特定的计算机或其他装置相关。各种通用机器可以与根据本文的教导编写的程序一起使用,或者构建更专用的装置以执行所需的方法步骤可以证明是方便的。对于各种这些机器的所需的结构将从所给出的描述中出现。
需要强调,提供本公开的摘要以允许读者快速确定技术公开的性质。它在它将不用于解释或限制权利要求的范围或含义的理解的情况下被提交。此外,在前面的详细描述中,可以看到,为了简单化本公开的目的,各种特征在单个实施例中被分组在一起。公开的这个方法不应被解释为反映所要求保护的实施例需要比在每个权利要求中明确陈述的更多的特征的意图。更确切地,如所附的权利要求所反映的,创造性主题在于少于单个所公开的实施例的全部特征。因此,所附的权利要求被特此合并到详细描述中,每个权利要求独立地作为单独的实施例。在所附权利要求中,术语“包括(including)”和“其中(in which)”分别用作相应术语“包括(comprising)”和“其中(wherein)”的简明英语等效形式。此外,术语“第一”、“第二”、“第三”等仅用作标签,且并不意欲将数字要求强加在它们的对象上。
上面已经描述的内容包括所公开的架构的例子。当然,不可能描述部件和/或方法的每一个可能的组合,但是本领域中的普通技术人员可以认识到许多另外的组合和置换是可能的。因此,新的架构意欲包含落在所附权利要求的精神和范围内的所有这样的变更、修改和变化。

Claims (34)

1.一种方法,包括:
接收对于在发送客户端和接收客户端之间的端到端加密会话的建立信息,所述建立信息包括与用于将消息内容解密的第一加密密钥相关的信息;
向所述接收客户端传输所述建立信息;
接收包括短暂内容的消息,所述短暂内容与加密媒体和用于将所述媒体解密的第二密钥相关联;以及
向所述接收客户端传输所述短暂内容。
2.根据权利要求1所述的方法,其中,加密内容包括所述媒体的缩略图和到所述媒体的链接。
3.根据权利要求1所述的方法,还包括:
访问所述消息的预期接收者列表;
过滤所述预期接收者列表,所述过滤包括下列操作中的一个或更多个:
从所述列表中移除没有与和所述发送客户端帐户相关联的发送用户帐户的对称关系的接收者,
移除阻止来自所述发送用户帐户的消息的接收者,或
移除其消息被所述发送用户帐户阻止的接收者。
4.根据权利要求1所述的方法,还包括:
从所述接收客户端接收对所述消息的回复;
确定所述消息被作为广播的一部分传输;以及
发送所述回复作为在与所述发送客户端相关联的发送用户账户和与所述接收客户端相关联的接收用户账户之间的一对一对话的一部分。
5.根据权利要求1所述的方法,其中,所述消息被传输到一组接收者,以及所述方法还包括接收对所述消息的回复,证实在所述组的每对成员之间存在加密会话,以及将所述回复传输到所述一组接收者。
6.根据权利要求1所述的方法,还包括:
在接收到所述消息之后建立在与所述发送客户端相关联的发送用户账户和第三用户账户之间的同步关系;以及
禁止向与所述第三用户相关联的第三设备传输所述消息。
7.根据权利要求1所述的方法,其中,接收包括所述短暂内容的所述消息的服务器不能够访问所述加密媒体。
8.一种非暂时性计算机可读介质,其存储:
被配置为使一个或更多个处理器接收在发送客户端和接收客户端之间的端到端加密会话的建立信息的指令,所述建立信息包括与用于将消息内容解密的第一加密密钥相关的信息;
被配置为使所述一个或更多个处理器向所述接收客户端传输所述建立信息的指令;
被配置为使所述一个或更多个处理器接收包括短暂内容、与加密媒体相关联的状态更新和用于将所述媒体解密的第二密钥的消息的指令;以及
被配置为使所述一个或更多个处理器向所述接收客户端传输所述状态更新的指令。
9.根据权利要求8所述的介质,其中,加密内容包括所述媒体的缩略图和到所述媒体的链接。
10.根据权利要求8所述的介质,还存储:
被配置为使所述一个或更多个处理器访问所述消息的预期接收者列表的指令;
被配置为使所述一个或多个处理器过滤所述预期接收者列表的指令,所述过滤包括下列操作中的一个或更多个:
从所述列表中移除没有与和所述发送客户端帐户相关联的发送用户帐户的对称关系的接收者,
移除阻止来自所述发送用户帐户的消息的接收者,或
移除其消息被所述发送用户帐户阻止的接收者。
11.根据权利要求8所述的介质,还存储:
被配置为使所述一个或更多个处理器从所述接收客户端接收对所述消息的回复的指令;
被配置为使所述一个或更多个处理器确定所述消息被作为广播的一部分传输的指令;以及
被配置为使所述一个或更多个处理器发送所述回复作为在与所述发送客户端相关联的发送用户账户和与所述接收客户端相关联的接收用户账户之间的一对一对话的一部分的指令。
12.根据权利要求8所述的介质,其中,所述状态更新被传输到一组接收者,以及所述介质还存储被配置为使所述一个或更多个处理器接收对所述消息的回复、证实在所述组的每对成员之间存在加密会话以及将所述回复传输到所述一组接收者的指令。
13.根据权利要求8所述的介质,还存储:
被配置为使所述一个或更多个处理器在接收到所述消息之后建立在与所述发送客户端相关联的发送用户账户和第三用户账户之间的同步关系的指令,其中所述一个或更多个处理器被配置为禁止向与所述第三用户相关联的第三设备传输所述消息。
14.根据权利要求8所述的介质,其中,接收包括所述短暂内容的所述消息的服务器不能够访问所述加密内容。
15.一种装置,包括:
非暂时性计算机可读介质,其被配置为存储对于在发送客户端和接收客户端之间的端到端加密会话的建立信息,所述建立信息包括与用于将消息内容解密的第一加密密钥相关的信息;
端到端加密会话逻辑,其至少部分地在硬件中实现,被配置为向所述接收客户端传输所述建立信息;以及
网络接口逻辑,其至少部分地在硬件中实现,被配置为接收包括短暂内容、与加密媒体相关联的状态更新和用于将所述媒体解密的第二密钥的消息;以及向所述接收客户端传输所述消息。
16.根据权利要求15所述的装置,其中,所述加密内容包括所述媒体的缩略图和到所述媒体的链接。
17.根据权利要求15所述的装置,还包括过滤逻辑,所述过滤逻辑至少部分地在硬件中实现,被配置为访问所述消息的预期接收者列表并过滤所述预期接收者列表,所述过滤包括下列操作中的一个或更多个:
从所述列表中移除没有与和所述发送客户端帐户相关联的发送用户帐户的对称关系的接收者,
移除阻止来自所述发送用户帐户的消息的接收者,或
移除其消息被所述发送用户帐户阻止的接收者。
18.根据权利要求15所述的装置,还包括验证逻辑,所述验证逻辑至少部分地在硬件中实现,被配置为确定所述消息被作为广播的一部分传输,其中所述网络接口逻辑进一步被配置为从所述接收客户端接收对所述状态更新的回复,并发送所述回复作为在与所述发送客户端相关联的发送用户账户和与所述接收客户端相关联的接收用户账户之间的一对一对话的一部分。
19.根据权利要求15所述的装置,其中,所述消息被传输到一组接收者,以及所述装置还包括验证逻辑,所述验证逻辑至少部分地在硬件中实现,被配置为证实在所述组的每对成员之间存在加密会话,其中所述网络接口逻辑进一步被配置为接收对所述状态更新的回复,并当所述验证逻辑证实所述加密会话的存在时将所述回复传输到所述一组接收者。
20.根据权利要求15所述的装置,还包括关系逻辑,所述关系逻辑至少部分地在硬件中实现,被配置为在接收到所述消息之后建立在与所述发送客户端相关联的发送用户账户和第三用户账户之间的同步关系,其中所述一个或更多个处理器被配置为禁止向与所述第三用户相关联的第三设备传输所述消息。
21.一种计算机实现的方法,包括:
接收对于在发送客户端和接收客户端之间的端到端加密会话的建立信息,所述建立信息包括与用于将消息内容解密的第一加密密钥相关的信息;
向所述接收客户端传输所述建立信息;
接收包括短暂内容的消息,所述短暂内容与加密媒体和用于将所述媒体解密的第二密钥相关联;以及
向所述接收客户端传输所述短暂内容。
22.根据权利要求21所述的方法,其中
所加密的短暂内容包括所述媒体的缩略图和到所述媒体的链接。
23.根据权利要求21或22所述的方法,还包括:
访问所述消息的预期接收者列表;
过滤所述预期接收者列表,所述过滤包括下列操作中的一个或更多个:
从所述列表中移除没有与和所述发送客户端帐户相关联的发送用户帐户的对称关系的接收者,
移除阻止来自所述发送用户帐户的消息的接收者,和/或
移除其消息被所述发送用户帐户阻止的接收者。
24.根据权利要求21到23中的任一项所述的方法,还包括:
从所述接收客户端接收对所述消息的回复;
确定所述消息被作为广播的一部分传输;以及
发送所述回复作为在与所述发送客户端相关联的发送用户账户和与所述接收客户端相关联的接收用户账户之间的一对一对话的一部分。
25.根据权利要求21到24中的任一项所述的方法,其中,所述消息被传输到一组接收者,以及所述方法还包括接收对所述消息的回复,证实在所述组的每对成员之间存在加密会话,以及将所述回复传输到所述一组接收者。
26.根据权利要求21到25中的任一项所述的方法,还包括:
在接收到所述消息之后建立在与所述发送客户端相关联的发送用户账户和第三用户账户之间的同步关系;以及
禁止向与所述第三用户相关联的第三设备传输所述消息。
27.根据权利要求21到26中的任一项所述的方法,其中,接收包括所述短暂内容的所述消息的服务器不能够访问所述加密媒体。
28.一种非暂时性计算机可读介质,其存储:
被配置为当由计算设备的一个或更多个处理器执行时使所述一个或更多个处理器执行根据权利要求1至7中的任一项所述的方法的所有步骤的指令。
29.一种装置,包括一个或更多个处理器和存储指令的非暂时性计算机可读介质,所述指令当由所述一个或更多个处理器中的一个或更多个执行时使所述一个或更多个处理器执行包括权利要求21至27中的任一项所述的所有步骤的方法。
30.根据权利要求29所述的装置,包括:
非暂时性计算机可读介质,其被配置为存储对于在发送客户端和接收客户端之间的端到端加密会话的建立信息,所述建立信息包括与用于将消息内容解密的第一加密密钥相关的信息;
端到端加密会话逻辑,其至少部分地在硬件中实现,被配置为向所述接收客户端传输所述建立信息;以及
网络接口逻辑,其至少部分地在硬件中实现,被配置为接收包括短暂内容、与加密媒体相关联的状态更新和用于将所述媒体解密的第二密钥的消息;以及向所述接收客户端传输所述消息。
31.根据权利要求29或30所述的装置,还包括过滤逻辑,所述过滤逻辑至少部分地在硬件中实现,被配置为访问所述消息的预期接收者列表并过滤所述预期接收者列表,所述过滤包括下列操作中的一个或更多个:
从所述列表中移除没有与和所述发送客户端帐户相关联的发送用户帐户的对称关系的接收者,
移除阻止来自所述发送用户帐户的消息的接收者,或
移除其消息被所述发送用户帐户阻止的接收者。
32.根据权利要求29至31中的任一项所述的装置,还包括验证逻辑,所述验证逻辑至少部分地在硬件中实现,被配置为确定所述消息被作为广播的一部分传输,其中所述网络接口逻辑进一步被配置为从所述接收客户端接收对所述消息的回复,并发送所述回复作为在与所述发送客户端相关联的发送用户账户和与所述接收客户端相关联的接收用户账户之间的一对一对话的一部分。
33.根据权利要求29至32中的任一项所述的装置,其中,所述消息被传输到一组接收者,以及所述装置还包括验证逻辑,所述验证逻辑至少部分地在硬件中实现,被配置为证实在所述组的每对成员之间存在加密会话,其中所述网络接口逻辑进一步被配置为接收对所述状态更新的回复,并当所述验证逻辑证实所述加密会话的存在时将所述回复传输到所述一组接收者。
34.根据权利要求29至33中的任一项所述的装置,还包括关系逻辑,所述关系逻辑至少部分地在硬件中实现,被配置为在接收到所述消息之后建立在与所述发送客户端相关联的发送用户账户和第三用户账户之间的同步关系,其中所述一个或更多个处理器被配置为禁止向与所述第三用户相关联的第三设备传输所述消息。
CN201780089651.4A 2017-02-17 2017-09-18 用于处理短暂内容消息的方法和系统 Active CN110521172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210060725.4A CN114465782A (zh) 2017-02-17 2017-09-18 用于处理短暂内容消息的方法和系统

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762460136P 2017-02-17 2017-02-17
US62/460,136 2017-02-17
US15/705,999 US10681202B2 (en) 2017-02-17 2017-09-15 Methods and systems for processing an ephemeral content message
US15/705,999 2017-09-15
PCT/US2017/051997 WO2018151758A1 (en) 2017-02-17 2017-09-18 Methods and systems for processing an ephemeral content message

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210060725.4A Division CN114465782A (zh) 2017-02-17 2017-09-18 用于处理短暂内容消息的方法和系统

Publications (2)

Publication Number Publication Date
CN110521172A true CN110521172A (zh) 2019-11-29
CN110521172B CN110521172B (zh) 2022-02-25

Family

ID=63167482

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210060725.4A Pending CN114465782A (zh) 2017-02-17 2017-09-18 用于处理短暂内容消息的方法和系统
CN201780089651.4A Active CN110521172B (zh) 2017-02-17 2017-09-18 用于处理短暂内容消息的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210060725.4A Pending CN114465782A (zh) 2017-02-17 2017-09-18 用于处理短暂内容消息的方法和系统

Country Status (5)

Country Link
US (6) US10681202B2 (zh)
JP (2) JP2020512724A (zh)
KR (3) KR102480096B1 (zh)
CN (2) CN114465782A (zh)
WO (1) WO2018151758A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111600847A (zh) * 2020-04-22 2020-08-28 维沃移动通信有限公司 信息处理方法及电子设备
CN112866303A (zh) * 2021-04-25 2021-05-28 武汉中科通达高新技术股份有限公司 一种级联媒体传输链路管理方法及装置

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10439999B2 (en) * 2014-06-02 2019-10-08 Michael T. Mantzke Point-to-point secure data store and communication system and method
US9940637B2 (en) 2015-06-05 2018-04-10 Apple Inc. User interface for loyalty accounts and private label accounts
US11580608B2 (en) 2016-06-12 2023-02-14 Apple Inc. Managing contact information for communication applications
USD828371S1 (en) * 2016-10-20 2018-09-11 Google Llc Display screen or portion thereof with graphical user interface
US10681202B2 (en) 2017-02-17 2020-06-09 Whatsapp Inc. Methods and systems for processing an ephemeral content message
US10742587B2 (en) * 2017-04-10 2020-08-11 Facebook, Inc. Systems and methods for sharing content
USD937292S1 (en) * 2017-04-19 2021-11-30 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US10382372B1 (en) * 2017-04-27 2019-08-13 Snap Inc. Processing media content based on original context
US10581953B1 (en) * 2017-05-31 2020-03-03 Snap Inc. Real-time content integration based on machine learned selections
US10990635B2 (en) * 2017-06-26 2021-04-27 Facebook, Inc. Systems and methods for ranking ephemeral content associated with a social networking system
US11023429B2 (en) * 2017-07-12 2021-06-01 Facebook, Inc. Methods and systems for associating content with conversation tuples
US11122094B2 (en) 2017-07-28 2021-09-14 Snap Inc. Software application manager for messaging applications
US11323398B1 (en) * 2017-07-31 2022-05-03 Snap Inc. Systems, devices, and methods for progressive attachments
US10754996B2 (en) * 2017-09-15 2020-08-25 Paypal, Inc. Providing privacy protection for data capturing devices
CA3080156A1 (en) * 2017-10-24 2019-05-02 Allen Ivester Package delivery with message management
US10728352B2 (en) * 2017-10-27 2020-07-28 Facebook, Inc. Managing digital forums and networking groups utilizing a group activity indicator
US11303601B2 (en) 2017-12-14 2022-04-12 Meta Platforms, Inc. Systems and methods for sharing content
US10873558B2 (en) 2017-12-14 2020-12-22 Facebook, Inc. Systems and methods for sharing content
US10805367B2 (en) * 2017-12-29 2020-10-13 Facebook, Inc. Systems and methods for sharing content
US10587397B2 (en) * 2018-02-13 2020-03-10 Seagate Technology Llc Storage medium enterprise and block chain enabled communication
US10764221B1 (en) * 2018-03-13 2020-09-01 Facebook, Inc. Systems and methods for sharing content
DK201870374A1 (en) 2018-05-07 2019-12-04 Apple Inc. AVATAR CREATION USER INTERFACE
US11431725B2 (en) * 2020-09-23 2022-08-30 BabelWorks AI, Inc. Systems and methods for dynamic network pairings to enable end-to-end communications between electronic devices
US11012403B1 (en) * 2018-09-04 2021-05-18 Facebook, Inc. Storylines: collaborative feedback system
US20200097913A1 (en) * 2018-09-23 2020-03-26 Microsoft Technology Licensing, Llc Contextual User Interface Notifications
US10895964B1 (en) * 2018-09-25 2021-01-19 Snap Inc. Interface to display shared user groups
US10666584B2 (en) * 2018-10-06 2020-05-26 Jiazheng Shi Method and system for protecting messenger identity
CN109361679A (zh) * 2018-11-08 2019-02-19 蓝信移动(北京)科技有限公司 消息监管方法和系统以及密钥服务器
WO2020096087A1 (ko) * 2018-11-09 2020-05-14 라인플러스 주식회사 메시지 그룹 관리를 위한 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
CA3124259A1 (en) * 2018-12-18 2020-06-25 Qaqaq Inc. Asynchronous short video communication platform based on animated still images and audio
US10817317B2 (en) 2019-01-24 2020-10-27 Snap Inc. Interactive informational interface
US10412063B1 (en) * 2019-02-05 2019-09-10 Qrypt, Inc. End-to-end double-ratchet encryption with epoch key exchange
US11146675B1 (en) 2019-02-18 2021-10-12 State Farm Mutual Automobile Insurance Company System and user interface having push-to-talk, outbound dialer, and messaging functions with recipients identified using a proxy alias
US11431664B2 (en) 2019-02-18 2022-08-30 State Farm Mutual Automobile Insurance Company Outbound dialer and messaging system and user interface for group messaging
US11082213B2 (en) * 2019-02-28 2021-08-03 General Electric Technology Gmbh Switching authentication and encryption of content between keys based on a key availability assurance value
CN110096665B (zh) * 2019-04-28 2022-03-04 北京字节跳动网络技术有限公司 图片类评论数据的展示方法、装置、设备及介质
KR102613825B1 (ko) * 2019-05-06 2023-12-15 애플 인크. 다수의 애플리케이션들과의 아바타 통합
US11405347B1 (en) * 2019-05-31 2022-08-02 Meta Platforms, Inc. Systems and methods for providing game-related content
USD976266S1 (en) 2019-06-18 2023-01-24 Meta Platforms, Inc. Display screen or portion thereof with a graphical user interface
US11206232B2 (en) * 2019-06-18 2021-12-21 Facebook, Inc. Generating and maintaining group messaging threads for ephemeral content
US20200412975A1 (en) * 2019-06-28 2020-12-31 Snap Inc. Content capture with audio input feedback
US11134036B2 (en) 2019-07-05 2021-09-28 Snap Inc. Event planning in a content sharing platform
US11646983B1 (en) 2019-07-16 2023-05-09 Whatsapp Llc Methods and systems for transmitting an image with thumbnail data
US11178079B1 (en) * 2019-07-16 2021-11-16 Whatsapp Llc Methods and systems for transmitting an image with thumbnail data
US11425205B1 (en) * 2019-07-16 2022-08-23 Whatsapp Inc. Methods and systems for transmitting an image in chunks
CN110995775B (zh) * 2019-10-11 2020-12-01 浙江口碑网络技术有限公司 一种业务数据处理方法、装置以及系统
US11106863B1 (en) 2019-12-30 2021-08-31 Snap Inc. User-specified replacement of terms in messaging
US11700225B2 (en) 2020-04-23 2023-07-11 Snap Inc. Event overlay invite messaging system
JP2021190966A (ja) * 2020-06-04 2021-12-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US11356392B2 (en) 2020-06-10 2022-06-07 Snap Inc. Messaging system including an external-resource dock and drawer
US11539647B1 (en) * 2020-06-17 2022-12-27 Meta Platforms, Inc. Message thread media gallery
US11140240B1 (en) * 2020-07-14 2021-10-05 Facebook, Inc. Generating a dynamic dependent client device activity dashboard and managing contact-control privileges via managing client device interfaces
US11115363B1 (en) * 2020-09-02 2021-09-07 Whatsapp Llc Utilizing encrypted ephemeral messages to modify ephemeral message duration settings
CN114244955B (zh) * 2020-09-08 2022-12-30 华为技术有限公司 服务的分享方法、系统、电子设备及计算机可读存储介质
US20220100351A1 (en) * 2020-09-30 2022-03-31 Snap Inc. Media content transmission and management
US20220269336A1 (en) * 2021-02-25 2022-08-25 Quebec Inc. (Auger Groupe Conseil) Systems and methods for virtual interaction
IT202100006311A1 (it) * 2021-03-18 2022-09-18 Leopizzi Srl Sistema di messaggistica e individuazione di utenti vicini tra loro anche in assenza di connessione internet.
US20220321510A1 (en) * 2021-03-31 2022-10-06 Snap Inc. User presence indication data management
CN113128896B (zh) * 2021-04-29 2023-07-18 重庆文理学院 基于物联网的智慧车间管理系统及方法
US11528601B1 (en) 2021-06-09 2022-12-13 T-Mobile Usa, Inc. Determining and ameliorating wireless telecommunication network functionalities that are impaired when using end-to-end encryption
WO2022272155A1 (en) * 2021-06-25 2022-12-29 Whatsapp, Llc End-to-end encrypted application state sharing
US11973730B2 (en) 2022-06-02 2024-04-30 Snap Inc. External messaging function for an interaction system
US20230421525A1 (en) * 2022-06-22 2023-12-28 Whatsapp Llc Facilitating pausing while recording audio and/or visual messages in social media messaging applications
US20240004517A1 (en) * 2022-06-30 2024-01-04 Snap Inc. Messaging application with conversation filtering

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449511A (zh) * 2006-06-14 2009-06-03 威尔塞斯 用于广播和接收被加扰的多媒体节目的方法以及用于所述方法的网络前端、终端、接收机和安全处理器
WO2015157720A2 (en) * 2014-04-11 2015-10-15 Oscar Tango Papa Llc Methods and apparatus for implementing a communications system secured using one-time pads

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US6331865B1 (en) 1998-10-16 2001-12-18 Softbook Press, Inc. Method and apparatus for electronically distributing and viewing digital contents
FI112903B (fi) 2000-12-05 2004-01-30 Nokia Corp Menetelmä, järjestelmä ja jakosolmu sanomien jakamiseksi
US6938065B2 (en) * 2000-12-12 2005-08-30 Ericsson Inc. System and method for controlling inclusion of email content
GB2370136B (en) * 2001-05-17 2002-11-06 Uzee Ltd Server based document distribution
US7016499B2 (en) * 2001-06-13 2006-03-21 Sun Microsystems, Inc. Secure ephemeral decryptability
JP2004102547A (ja) 2002-09-06 2004-04-02 Nec Corp コミュニケーションシステム、コミュニケーションサーバ、及び、コミュニケーション方法
US7590696B1 (en) * 2002-11-18 2009-09-15 Aol Llc Enhanced buddy list using mobile device identifiers
US7949759B2 (en) 2003-04-02 2011-05-24 AOL, Inc. Degrees of separation for handling communications
US7409545B2 (en) * 2003-09-18 2008-08-05 Sun Microsystems, Inc. Ephemeral decryption utilizing binding functions
US7660904B2 (en) 2004-05-11 2010-02-09 Microsoft Corporation Providing keys to share data within an instant messaging session
US7716479B2 (en) * 2005-06-03 2010-05-11 Microsoft Corporation Dynamically resolving recipients to retrieve public keys during send/receive
US20070008108A1 (en) * 2005-07-07 2007-01-11 Schurig Alma K Unsynchronized beacon location system and method
CA2616956C (en) 2005-07-29 2014-04-15 Cataphora, Inc. A method and apparatus to provide a unified redaction system
US20080183822A1 (en) * 2007-01-25 2008-07-31 Yigang Cai Excluding a group member from receiving an electronic message addressed to a group alias address
US9268735B2 (en) 2008-09-30 2016-02-23 Oracle America, Inc. Loadable and modular conditional access application
WO2011060424A1 (en) * 2009-11-16 2011-05-19 Nrg Systems, Inc. Data acquisition system for condition-based maintenance
US8433764B2 (en) * 2010-02-09 2013-04-30 Google Inc. Identification of message recipients
KR101701151B1 (ko) * 2010-09-20 2017-02-02 삼성전자주식회사 휴대 단말기를 이용한 통합 메시지 송수신 방법 및 장치
US8984051B2 (en) * 2011-07-26 2015-03-17 Salesforce.Com, Inc. Computer implemented methods and apparatus for communicating feed information to one or more recipients
US9641480B2 (en) * 2012-02-05 2017-05-02 Apple Inc. Automated participant account determination for a communication session
US8707454B1 (en) * 2012-07-16 2014-04-22 Wickr Inc. Multi party messaging
US8964947B1 (en) * 2013-03-11 2015-02-24 Amazon Technologies, Inc. Approaches for sharing data between electronic devices
US9264463B2 (en) 2013-03-15 2016-02-16 Facebook, Inc. Method and system of managing ephemeral post in a social networking system
US9143906B2 (en) 2013-03-15 2015-09-22 Google Inc. Premium messaging challenges
KR101495257B1 (ko) 2013-04-18 2015-02-25 주식회사 팬택 단말 아이콘 제어 방법 및 장치
PL2820953T3 (pl) * 2013-07-02 2016-04-29 Symborg S L Szczep Glomus iranicum var. tenuihypharum var. nov. i jego zastosowanie jako biostymulatora
US8914752B1 (en) 2013-08-22 2014-12-16 Snapchat, Inc. Apparatus and method for accelerated display of ephemeral messages
US20150100670A1 (en) 2013-10-04 2015-04-09 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast
US9083770B1 (en) * 2013-11-26 2015-07-14 Snapchat, Inc. Method and system for integrating real time communication features in applications
KR20150066129A (ko) 2013-12-06 2015-06-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
US8909725B1 (en) * 2014-03-07 2014-12-09 Snapchat, Inc. Content delivery network for ephemeral objects
US20160042404A1 (en) * 2014-08-05 2016-02-11 Vellum Tech Corporation Ephemeral message communication from a sender to a recipient using a multimedia data routed through a server
US9595031B1 (en) * 2014-08-20 2017-03-14 Square, Inc. Payment via a messaging application
US20160063277A1 (en) 2014-08-27 2016-03-03 Contentguard Holdings, Inc. Method, apparatus, and media for creating social media channels
US10061914B2 (en) * 2014-11-14 2018-08-28 Mcafee, Llc Account recovery protocol
US9948625B2 (en) * 2015-01-07 2018-04-17 Cyph, Inc. Encrypted group communication method
US9992258B2 (en) 2015-01-13 2018-06-05 Whatsapp Inc. Techniques for managing a remote web client from an application on a mobile device
US11627639B2 (en) * 2015-01-26 2023-04-11 Ievgen Verzun Methods and apparatus for HyperSecure last mile communication
US9313154B1 (en) 2015-03-25 2016-04-12 Snapchat, Inc. Message queues for rapid re-hosting of client devices
EP3082355A1 (en) 2015-04-17 2016-10-19 Gemalto Sa A method for controlling remotely the permissions and rights of a target secure element
US9432340B1 (en) 2015-05-07 2016-08-30 Bogart Associates System and method for secure end-to-end chat system
EP3101862A1 (en) * 2015-06-02 2016-12-07 Gemalto Sa Method for managing a secure channel between a server and a secure element
US10122774B2 (en) * 2015-06-29 2018-11-06 Microsoft Technology Licensing, Llc Ephemeral interaction system
RU2018103181A (ru) * 2015-06-30 2019-07-31 Виза Интернэшнл Сервис Ассосиэйшн Конфиденциальные аутентификация и обеспечение
US10237220B2 (en) 2015-07-24 2019-03-19 Facebook, Inc. Techniques to promote filtered messages based on historical reply rate
US10320794B2 (en) 2015-07-29 2019-06-11 Microsoft Technology Licensing, Llc System for sharing selectively ephemeral content
CN107847197A (zh) * 2015-08-05 2018-03-27 波士顿科学医学有限公司 用于膀胱标测的智能装置
US10419444B2 (en) * 2015-08-24 2019-09-17 Cyberlink Corp. Systems and methods for protecting messages utilizing a hidden restriction mechanism
US10157333B1 (en) * 2015-09-15 2018-12-18 Snap Inc. Systems and methods for content tagging
US10440026B2 (en) * 2015-11-24 2019-10-08 Facebook, Inc. Systems and methods for providing public ephemeral media content without requiring subscription
US10623515B2 (en) * 2015-12-01 2020-04-14 Fastly, Inc. Stenographic marking using network addressing
US10949349B2 (en) * 2015-12-01 2021-03-16 Fastly, Inc. Anonymized network addressing in content delivery networks
US9913114B1 (en) 2015-12-15 2018-03-06 Snap Inc. Simplified message grouping and display
US10129197B2 (en) * 2015-12-31 2018-11-13 Oath Inc. Computerized system and method for modifying a message to apply security features to the message's content
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10331750B2 (en) 2016-08-01 2019-06-25 Facebook, Inc. Systems and methods to manage media content items
US11057196B2 (en) * 2016-09-08 2021-07-06 Hewlett-Packard Development Company, L.P. Establishing shared key data for wireless pairing
US10516749B1 (en) 2016-10-07 2019-12-24 Snap Inc. Mobile device content navigation
CN113206959B (zh) 2016-11-01 2024-01-09 斯纳普公司 用于确定自动包围配置的方法和服务器
US10609554B2 (en) * 2016-11-29 2020-03-31 PlaceIQ, Inc. System and method to collect device location context without the collection of raw, detailed location data at scale
US10341304B1 (en) 2017-01-04 2019-07-02 Snap Inc. Device independent encrypted content access system
US20180219812A1 (en) 2017-02-01 2018-08-02 Damion Delanno Hanson Mobile app messaging platform system
US10681202B2 (en) * 2017-02-17 2020-06-09 Whatsapp Inc. Methods and systems for processing an ephemeral content message
US11157134B2 (en) 2017-07-12 2021-10-26 Facebook, Inc. Interfaces for a messaging inbox
US10375019B2 (en) * 2017-10-06 2019-08-06 Stealthpath, Inc. Methods for internet communication security

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449511A (zh) * 2006-06-14 2009-06-03 威尔塞斯 用于广播和接收被加扰的多媒体节目的方法以及用于所述方法的网络前端、终端、接收机和安全处理器
WO2015157720A2 (en) * 2014-04-11 2015-10-15 Oscar Tango Papa Llc Methods and apparatus for implementing a communications system secured using one-time pads

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111600847A (zh) * 2020-04-22 2020-08-28 维沃移动通信有限公司 信息处理方法及电子设备
CN112866303A (zh) * 2021-04-25 2021-05-28 武汉中科通达高新技术股份有限公司 一种级联媒体传输链路管理方法及装置

Also Published As

Publication number Publication date
CN110521172B (zh) 2022-02-25
JP2020512724A (ja) 2020-04-23
CN114465782A (zh) 2022-05-10
US10681202B2 (en) 2020-06-09
US20180241871A1 (en) 2018-08-23
KR102480096B1 (ko) 2022-12-23
JP2022169529A (ja) 2022-11-09
KR20220066181A (ko) 2022-05-23
WO2018151758A1 (en) 2018-08-23
US10778831B2 (en) 2020-09-15
KR20190109768A (ko) 2019-09-26
KR102396947B1 (ko) 2022-05-13
US10582036B2 (en) 2020-03-03
US11316965B1 (en) 2022-04-26
US20180241705A1 (en) 2018-08-23
US11882231B1 (en) 2024-01-23
KR20220063295A (ko) 2022-05-17
US20180241707A1 (en) 2018-08-23
US11265413B1 (en) 2022-03-01
KR102427983B1 (ko) 2022-08-02

Similar Documents

Publication Publication Date Title
CN110521172A (zh) 用于处理短暂内容消息的方法和系统
US11128466B2 (en) Zero-knowledge environment based social networking engine
US10904261B2 (en) Intelligent personal information management system
EP2972949B1 (en) Wireless data privacy maintained through a social network
EP3364330B1 (en) Methods and systems for processing an ephemeral content message
EP3230912B1 (en) Method, apparatus, and computer-readable medium for data exchange
Adams et al. Combining social authentication and untrusted clouds for private location sharing
US20230319059A1 (en) Privacy friendly system for viewing user presence in an end-to-end encrypted communication platform
Prasad et al. The top 10 list for terabit speed wireless personal services
CN110476392A (zh) 用于具有多个步长的密钥棘轮移动的技术

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: California, USA

Applicant after: Woz EPP Co.,Ltd.

Address before: California, USA

Applicant before: WHATSAPP Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant