CN114286294A - 向移动设备递送通知 - Google Patents

向移动设备递送通知 Download PDF

Info

Publication number
CN114286294A
CN114286294A CN202111591698.5A CN202111591698A CN114286294A CN 114286294 A CN114286294 A CN 114286294A CN 202111591698 A CN202111591698 A CN 202111591698A CN 114286294 A CN114286294 A CN 114286294A
Authority
CN
China
Prior art keywords
message
notification
server
recipient
application
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.)
Pending
Application number
CN202111591698.5A
Other languages
English (en)
Inventor
乔纳森·冈萨雷斯·桑切斯
夏尔马·阿林达姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google 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 Google LLC filed Critical Google LLC
Publication of CN114286294A publication Critical patent/CN114286294A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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]
    • 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/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • 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/23Reliability checks, e.g. acknowledgments or fault reporting
    • 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/58Message adaptation for wireless communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1016IP multimedia subsystem [IMS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • 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/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本公开涉及向移动设备递送通知。在此描述的实施方式涉及安全地向移动设备递送通知的方法、系统和计算机可读介质。在一些实施方式中,计算机实现的方法包括在接收方设备处接收来自无线运营商的消息,该消息包括来自应用服务器的通知。该方法进一步包括使用在接收方设备处本地存储的私钥对消息进行解密。该方法进一步包括识别在与已解密的消息相关联的接收方设备上执行的软件应用,其中已解密的消息包括通知。该方法进一步包括将已解密的消息递送到软件应用。

Description

向移动设备递送通知
技术领域
本公开涉及向移动设备递送通知。
背景技术
通知是在诸如智能手机、平板电脑、可穿戴设备、笔记本电脑等设备上执行的现代软件应用的共同特征。在许多情况下,通知由服务器生成,并通过互联网提供给设备上执行的应用。为了确保安全的消息递送,应用可以利用与此类服务器的安全连接,例如,传输层安全(TLS)连接。
在经由无线运营商网络耦合到无线运营商网络以进行数据和语音通信的移动设备上,建立和维护这样的连接可能需要大量的资源。例如,无线运营商系统(例如,利用网络地址转换(address translation))可能关闭不活动的安全连接(例如,TLS连接)。在这种情况下,应用需要重新建立与服务器的安全连接,以便于接收通知。
一种确保安全连接不被关闭的机制是应用生成并通过互联网向服务器发送定期保持活动消息(keep-alive messages)。然而,发送此类消息需要移动设备的无线电发射器处于活动的,这浪费电力,并且在电池供电的设备上导致电池耗尽。虽然可以将应用配置成定期——例如,每几分钟一次——连接到服务器以减少电力使用,但这可能使用户体验退化,因为通知递送可能延迟并且只能在安全连接被建立的周期发生。此外,从耦合到无线运营商网络的多个设备接收到的保持活动消息也可能导致蜂窝拥塞。
本文提供的背景描述是为了概括地呈现本公开的上下文。当前命名的发明人的工作,就其在此背景部分中描述的范围而言,以及在提交申请时可能不符合现有技术的描述方面,均未明示或暗示承认为作为现有技术反对本公开。
EP 2892206提出一种推送消息传递框架,其提供两种端到端的消息安全模型:“可信模型”,其预期用于在他们愿意与其分享推送消息的内容的意义上信任消息传递服务(MS)的开发人员;以及“不可信模型”,其用于不信任MS的开发人员。两种模型之间有存在重要的权衡:不可信模型中更高级别的安全性是以较低的易用性级别为代价。该提案提供一种易于使用的不可信模型的实现。此外,该提议涉及一种为两种安全模型保护机载客户端的私钥的方法。该方法最小化私钥在内存中暴露的持续时间,使得攻击者必须将攻击时间安排到使用密钥的确切时刻。这种安全措施对于很容易被盗用的Android客户端来说至关重要。最后,所提议的安全模型支持旨在防止盗版的应用认证功能性。
CN 104811365提出一种消息推送方法、消息推送系统、消息代理服务器和一个终端设施。该方法包括以下步骤:消息代理服务器接收并存储应用服务器发送的推送消息;消息代理服务器根据推送消息生成中间消息;并且消息代理服务器将中间消息发送给消息推送服务器以使消息推送服务器将中间消息转发给一个终端设施,并且然后,终端设施根据中间消息从消息代理服务器获取推送消息。根据本发明,消息代理服务器临时存储应用服务器发送的推送消息并生成中间消息,并且由推送服务器接收到的消息为中间消息。因此,推送服务器无法接收到推送消息的明文,并且可以解决敏感企业推送消息内容可能泄露的问题。
2017年12月15日Push API W3C工作草案提出了Push API的规范,该规范允许经由推送服务向webapp发送推送消息。应用服务器可以随时发送推送消息,即使webapp或用户代理处于非活动。推送服务确保向用户代理可靠且高效的交付。推送消息被递送到在webapp的起源中运行的服务人员,它可以使用消息中的信息更新本地状态或向用户显示通知。此规范旨在与web推送协议一起使用,该协议描述了应用服务器或用户代理如何与推送服务交互。
发明内容
在此描述的实施方式涉及安全地向移动设备递送通知的方法、系统和计算机可读介质。
在一个方面,一种计算机实现的方法包括在接收方设备处从无线运营商接收消息,该消息包括来自应用服务器的通知。该方法进一步包括使用在接收方设备本地存储的私钥对消息进行解密。该方法进一步包括识别在与已解密的消息相关联的接收方设备上执行的软件应用,其中已解密的消息包括通知。该方法进一步包括将已解密的消息递送到软件应用。
接收方设备是耦合到由无线运营商运营的蜂窝网络的无线设备,并且接收消息包括通过蜂窝网络上的富通信服务(RCS)协议接收消息。在一些实施方式中,该消息可以作为会话发起协议(SIP)消息被接收。在一些实施方式中,SIP消息可以是SIP OPTIONS消息。在这些实施方式中,通知可以被包括在SIP OPTIONS消息的内容主体中。
在一些实施方式中,可以经由与无线运营商通信的设备调制解调器在接收方设备的网络接入层处接收该消息。在这些实施方式中,软件应用和应用服务器之间不存在活动连接。
在一些实施方式中,该方法可以进一步包括,在解密之后,向无线运营商发送确认消息。
在一些实施方式中,该方法可以进一步包括,在接收消息之前,在接收方设备处生成包括公钥和私钥的加密密钥对;将私钥存储在接收方设备的本地存储中;以及将包括公钥的注册消息通过互联网传送到消息递送服务器。在一些实施方式中,注册消息可以进一步包括与软件应用相关联的令牌。在这些实施方式中,识别软件应用可以基于确定在已解密的消息中接收到的令牌与与软件应用相关联的令牌匹配。
在另一方面,一种设备包括处理器、可操作以将该设备耦合到无线运营商的调制解调器、以及耦合到该处理器的存储器,该存储器在其上存储有指令,当由处理器执行时,这些指令使处理器执行包括下述的操作:从无线运营商接收消息,该消息包括来自应用服务器的通知;使用私钥解密消息;识别与已解密的消息相关联的软件应用,其中已解密的消息包括通知;以及将解密后的消息递送到软件应用。经由与无线运营商通信的调制解调器在设备的网络接入层处接收该消息,并且其中在软件应用和应用服务器之间不存在活动连接。
在一些实施方式中,设备可以耦合到由无线运营商运营的蜂窝网络,并且接收消息包括通过蜂窝网络上的富通信服务(RCS)协议接收消息。在一些实施方式中,该消息可以作为会话发起协议(SIP)消息被接收。
在一些实施方式中,操作可以进一步包括,在接收消息之前,生成包括公钥和私钥的加密密钥对;将私钥存储在设备的本地存储中;将包括公钥的注册消息通过互联网传送到消息递送服务器。
在另一方面,一种用于递送消息的计算机实现的方法包括在消息递送服务器处接收来自应用服务器的通知。该方法进一步包括确定通知的接收方与存储在消息递送服务器处的公钥相关联,该公钥与接收方设备相关联。该方法进一步包括,响应于确定接收方与公钥相关联,通过用公钥加密通知来生成消息。该方法进一步包括将消息传送到无线运营商以递送到接收方设备。
接收方设备是耦合到由无线运营商运营的蜂窝网络的无线设备,并且通过蜂窝网络上的富通信服务(RCS)协议向接收方递送消息。在一些实施方式中,消息递送服务器和无线运营商可以为RCS维持对等连接。
在一些实施方式中,该方法可以进一步包括通过互联网向一个或多个其他接收方设备传送通知。
在一些实施方式中,该方法可以进一步包括,在接收通知之前,在消息递送服务器处接收来自接收方设备的注册消息,其中该注册消息包括公钥和接收方标识符。在一些实施方式中,确定通知的接收方与公钥相关联可以基于确定接收方匹配接收方标识符。在一些实施方式中,接收方设备可以执行软件应用并且其中接收方标识符可以是与软件应用相关联的令牌。
附图说明
图1是可以用于本文描述的一个或多个实施方式的示例网络环境的框图。
图2是图示根据一些实施方式的用于注册设备以接收通知的示例方法的流程图。
图3是图示根据一些实施方式的在设备处接收通知的示例方法的流程图。
图4是图示根据一些实施方式的通知的递送的流程图。
图5是可以用于实现本文描述的一个或多个特征的示例计算设备的框图。
具体实施方式
本文描述了用于经由无线运营商(通过网络接入层)向客户端设备递送消息的方法、系统和计算机可读介质(其可以是但不限于非暂时性计算机可读介质)。该消息可以包括对在客户端设备上执行的应用的通知。根据所描述的技术,设备向无线运营商注册以经由无线运营商递送包括app通知的消息。
所描述的技术解决了在客户端设备和将应用服务器生成的通知递送到客户端设备的消息递送服务器之间或者在客户端设备和应用服务器之间建立和维护安全连接的通知技术的技术缺陷,。此类通知技术通常使用互联网公共数据网络(PDN)上的顶层(OTT)传输层安全(TLS)连接。
这样的配置的技术问题是无线运营商后端上的网络地址转换(NAT)超时可能发生并且由于不活动而导致关闭安全连接,例如,在大于无线运营商设置的阈值的时段内通过安全连接的客户端设备和无线运营商之间没有交互系统。为了避免这种连接的关闭,需要客户端设备(例如,接收通知的应用)发送定期保持活动消息。发送此类消息需要唤醒无线电发射器(以及相关联的电路,包括客户端设备调制解调器)。无线电发射器的这种唤醒和使用可能浪费电力。在电池供电的设备上,此类活动可能耗尽设备电池。此外,保活消息可能导致无线运营商的蜂窝网络拥塞。
本文描述的方法、系统和非暂时性计算机可读介质技术利用客户端设备(例如,移动电话或其他蜂窝通信设备)和无线运营商系统之间的单注册消息传递(下文进一步描述)来递送消息(例如,包括app通知)。单注册消息传递是一种利用IP多媒体(核心网络)子系统PDN(IMS PDN),以使客户端设备向无线运营商系统注册并保持连接打开(不需要要求客户端定期唤醒的昂贵的保持活动)的机制。例如,富通信服务(RCS)协议可用于消息递送。
无线运营商通常共享的客户端设备注册(例如,用于经由LTE语音(长期演进)的客户端设备和无线运营商系统之间的通信和通过IP多媒体(核心网络)子系统PDN(IMS PDN)上的单个IP安全(IPSec)套接字的RCS注册)。客户端设备维持到IMS网络的连接以进行蜂窝通信。
根据本文描述的技术,在成功的设备注册之后,设备和IMS网络之间的这种连接被用于向客户端设备上的应用递送消息。通过消除建立TLS(或其他安全OTT连接)并保持其活动的开销,所描述的技术消除定期唤醒客户端设备或发送消息的需要,从而降低功耗、改进电池寿命并减少在无线(蜂窝)网络上的网络拥塞。此外,当客户端设备具有次优的互联网连接性时,所描述的技术可以改进通知递送的可靠性和性能。
此外,IMS网络的重要优点是其不具有网络地址转换并且被部署在互联网协议版本6(IPv6)上。所描述的技术通过执行允许可靠地递送app通知的设备注册来有利地利用IMS PDN的这一特征。经由IMS PDN递送消息的技术问题是IMS PDN通常被部署在防火墙环境中,这不允许直接连接到应用服务器和/或消息递送服务器。此外,客户端设备的设备操作系统对IMS PDN的暴露可能有限,因为此连接可以由客户端设备硬件(例如,设备调制解调器)管理。所描述的技术通过利用设备注册克服此问题。
所描述的技术有利地使用公钥密码术来确保通过无线运营商网络安全地发送app通知,而不需要建立安全的OTT连接。特别地,客户端设备提供公钥以供消息递送服务器(或生成通知的其他服务器)使用以加密通知。加密后的消息可以通过常规通信信道(例如,未加密)发送,而不妥协消息内容的安全性(例如,app通知)。安全存储在客户端设备上的私钥被利用以解密消息、检索通知并将其提供给客户端设备上的各自应用。
图1图示示例网络环境100的框图,其可以在本文描述的一些实施方式中使用。在一些实施方式中,网络环境100包括一个或多个服务器系统,例如,图1的示例中的服务器系统102和第二服务器系统140。例如,服务器系统102和140可以与网络130通信。服务器系统102可以包括服务器设备104和数据库106或其他存储设备。在一些实施方式中,服务器设备104可以提供消息递送应用108。第二服务器系统140可以包括一个或多个应用服务器,例如,app A服务器142和app B服务器144。
消息递送应用108可以被配置成通过网络130与一个或多个应用服务器——例如,app A服务器142、app B服务器144——进行通信。例如,应用服务器可以被配置成生成要发送到一个或多个客户端设备的通知并且可以将该通知发送到可以执行消息递送的消息递送服务器104。在一些实施方式中,消息递送应用108可以被实现为基于云的消息传递服务。消息递送应用108可以使应用服务器能够向客户端设备上的app(例如,app A 152、app B154)发送通知。例如,如果app A是电子邮件应用,则通知可以指示新电子邮件消息或其他数据可用于app A。在另一示例中,如果app B是购物app,则通知可以提醒用户要约或优惠券、提供订单状态更新等。在各种实施方式中,通知可以包括文本、图形(例如,图像、视频等)或其他内容。
网络环境100还可以包括一个或多个客户端设备,例如,客户端设备120、122、124和126,它们可以经由网络130彼此通信和/或与服务器系统102和/或第二服务器系统140通信。客户端设备120-126可以耦合到由无线运营商——例如,无线运营商系统(160)——运营的蜂窝网络。在一些实施方式中,客户端设备120-126可以被配置成经由蜂窝网络通过富通信服务(RCS)协议发送和接收消息。
网络130可以是任何类型的通信网络,例如,因特网或广域网。在一些实施方式中,两个或更多个客户端设备可以被配置成进行对等通信,例如,使用对等无线协议(例如,
Figure BDA0003429329470000091
Wi-Fi直连等)等。两个客户端设备120和122之间的对等通信的一个示例由箭头132示出。
网络环境100还包括耦合到网络130的无线运营商系统160。无线运营商系统160可以包括蜂窝服务基础设施,例如,其使客户端设备120-126中的任意一个能够经由蜂窝连接与无线运营商系统160通信。在一些实施方式中,蜂窝连接可以是长期演进(LTE)连接、5G连接等。在各种实施方式中,客户端设备120-126可以经由网络接入层维持与无线运营商系统160的连接性。例如,客户端设备可以通过4G或5G网络或经由ePDG(演进型分组数据网关连接,例如,当连接到无线接入点(WiFi)AP)时,维持与无线运营商系统160(运营商后端)的活动连接。在任意情况下,与无线运营商系统160的连接是通过IP安全(IPSec)的,并且因此,是可信和加密的。当客户端设备通过4G或5G网络被连接时,保持活动消息不是必要的。当客户端设备通过无线AP(WiFi)被连接时,设备调制解调器在IPSec信道上发送保持活动,而不唤醒设备的其余部分。因为为WiFi上语音(VoWiFi)维护IPSec信道,所以调制解调器发送的保持活动消息不对客户端设备或无线运营商网络造成额外负担。
无线运营商系统160可以包括运营商消息传递中心162。例如,运营商消息传递中心162可以包括一个或多个服务器设备。在一些实施方式中,运营商消息传递中心可以与执行消息递送应用108的服务器设备104建立对等连接。对等连接可以实现从消息递送应用经由运营商消息传递中心到客户端设备的有效和快速的消息中继。无线运营商系统160经由网络130,例如,互联网或其他广域网,耦合到服务器设备104和服务器系统140。
为了便于说明,图1示出用于服务器系统102、服务器设备104、数据库106、第二服务器系统140、app A服务器142和app B服务器144的一个块,并且示出用于客户端设备120、122、124和126的四个块。服务器块102、104、106、140、142和144可以表示多个系统、服务器设备和网络数据库,并且可以以与所示不同的配置来提供这些块。例如,服务器系统102和/或第二服务器系统140可以表示多个服务器系统,它们可以经由网络130与其他服务器系统进行通信。在一些实施方式中,例如,服务器系统102和/或第二服务器系统140可以包括云托管服务器。在一些示例中,数据库106和/或其他存储设备可以在与服务器设备104分离并且可以经由网络130与服务器设备104和其他服务器系统通信的服务器系统块中提供。在一些实施方式中,多个应用可以运行在相同的服务器上,例如,app A服务器142可以运行附加的应用,或者单个应用可以跨越多个服务器,例如,在分布式配置中。
此外,可以存在任意数量的客户端设备。每个客户端设备可以是任何类型的电子设备,例如,台式计算机、膝上型计算机、便携式或移动设备、手机、智能电话、平板电脑、电视、电视机顶盒或娱乐设备、可穿戴设备(例如,显示眼镜或护目镜、手表、耳机、臂章、珠宝等)、个人数字助理(PDA)、媒体播放器、游戏设备等。一些客户端设备也可能具有类似于数据库106或其他存储的本地数据库。在一些实施方式中,网络环境100可能不具有所示出的所有组件和/或可能具有其他元件,包括其他类型的元件,而不是或除了这里描述的那些元件之外。
在各种实施方式中,最终用户Userl、User2、User3和User4可以使用各自的客户端设备120、122、124和126与服务器系统102和/或彼此通信。在一些示例中,用户Userl、User2、User3和User4可以经由在各自的客户端设备和/或服务器系统102或第二服务器系统140上运行的应用,和/或经由在服务器系统102或第二服务器系统140上实施的网络服务,例如,社交网络服务或其他类型的网络服务,彼此交互。例如,相应的客户端设备120、122、124和126可以将数据传达到一个或多个服务器系统(例如,系统102、第二服务器系统140)并且传达来自于该一个或多个服务器系统的数据。
在一些实施方式中,服务器系统102和/或第二服务器系统140可以向客户端设备提供适当的数据,使得每个客户端设备可以接收上传到服务器系统102或第二服务器系统140的传达的内容或共享的内容和/或网络服务。在一些示例中,用户User1-User4可以经由音频或视频会议、音频、视频或文本聊天或其他通信模式或应用进行交互。
在一些实施方式中,客户端设备120、122、124和/或126中的任意一个可以提供一个或多个应用。例如,如图1中所示,客户端设备120可以提供app A 152、app B 154、消息传递应用156(这里也称为消息传递app 156)和通知核心158。其他客户端设备也可以包括各种应用。不同的客户端设备可能包括不同的应用。
在一些实施方式中,消息传递应用156可以是默认消息传递应用。在这些实施方式中,客户端设备的客户端设备120的调制解调器可以被配置成通过蜂窝连接接收消息,例如,使用来自运营商消息传递中心162的富通信服务(RCS)协议,并且在接收到消息时,自动将消息提供给消息传递应用156。消息传递应用156可以执行各种消息处理功能。例如,消息传递应用156可以在用户界面中显示消息。在另一示例中,消息传递应用156可以调用通知核心158并且可以将消息提供给通知核心158。在这些实施方式中,通知核心158可以执行一个或多个动作,例如,解密消息以获得消息内容(例如,通知),识别通知被寻址到的应用(例如,基于通知中的令牌),将通知转发到所识别的应用等。在一些实施方式中,消息传递app156和通知核心158可以被实现为单个应用。在一些实施方式中,消息传递app 156可以作为客户端设备120的操作系统的一部分提供。在一些实施方式中,通知核心158可以作为与客户端设备120一起分发的单独应用(或软件包)提供(例如,预安装)或可以被下载到客户端设备120。
应用152-158可以使用客户端设备120的硬件和/或软件来实现。在不同的实施方式中,一个或多个应用152-158可以是独立的客户端应用,例如,在客户端设备120-124中的任意一个上执行。
在各种实施方式中,除了消息传递app 156和通知核心158之外,客户端设备120还可以包括一个、两个或更多个应用。例如,此类应用可以提供各种类型的功能性,例如,日历、地址簿、电子邮件、网络浏览器、购物、交通(例如,出租车、火车、机票预订等)、娱乐(例如,音乐播放器、视频播放器、游戏应用等)、社交网络(例如,聊天、音频/视频通话、分享图像/视频等)等等。在一些实施方式中,一个或多个应用154可以是在客户端设备120上执行的独立应用。在一些实施方式中,一个或多个其他应用154可以访问服务器系统,例如,服务器系统102和/或第二服务器系统140,其提供数据和/或功能性。
客户端设备120、122、124和/或126上的用户界面能够显示用户内容和其他内容,包括图像、视频、数据和其他内容以及通信、隐私设置、通知,以及其他数据。可以使用客户端设备上的软件、服务器设备104上的软件和/或在服务器设备104和/或服务器系统140上执行的客户端软件和服务器软件——例如,与服务器系统102和/或服务器系统140通信的应用软件或客户端软件——的组合来显示这样的用户界面。用户界面可以由客户端设备或服务器设备的显示设备,例如,触摸屏或其他显示屏、投影仪等显示。在一些实施方式中,在服务器系统上运行的应用程序可以与客户端设备进行通信以在客户端设备处接收用户输入并在客户端设备处输出诸如视觉数据、音频数据等的数据。
图2是图示根据一些实施方式的用于注册设备以接收通知的示例方法200的流程图。在一些实施方式中,方法200可以例如在如图1中所示的客户端设备120、122、124或126中的一个或多个上实施。在所描述的示例中,实施系统包括一个或多个数字处理器或处理电路(“处理器”)和一个或多个存储设备。在一些实施方式中,一个或多个服务器(例如,服务器设备104)和/或客户端设备的不同组件可以执行方法200的不同块或其他部分。
在一些实施方式中,方法200或方法的部分可以由系统自动地发起。例如,该方法(或其部分)可以被周期性地执行,或基于一个或多个特定事件或条件被执行,例如,检测客户端设备上特定应用(例如,App A、App B)的安装或更新、检测客户端设备能够进行RCS消息传递、检测客户端设备的先前注册已经期满、自上次执行方法200以来已经期满的预定时间段、和/或在执行该方法时读取的设置中指定的一个或多个其他条件发生。
方法200可以开始于块202。在块202中,获得用户许可以在方法200的实施方式中使用用户数据。例如,获得许可的用户数据可以包括用户的电话号码(与客户端设备120相关联)、令牌、在客户端设备120上安装和可执行的应用的标识符等。向用户提供选项以选择性地提供访问此类用户数据的许可。例如,用户可以选取以提供访问所有请求的用户数据、请求的数据的任何子集或不访问请求的数据的许可。在一些实施方式中,这里描述的方法的一个或多个块可以使用这样的用户数据。块202之后是块204。
在块204中,确定如本文所述的方法200的其余部分(块212-218)是否可以用用户提供的许可来实现,例如,通过访问用户许可的数据。如果在块204中确定用户在块202中提供的许可不足以实现块212-218中的一个或多个,则块204之后是块206,否则块204之后是块212。
在块206中,请求用户许可以访问用户数据。例如,如果用户已经拒绝了对可以在块212-218中使用的用户数据的一个或多个部分的许可,则可以为用户提供用户界面以提供对用户数据的这些部分的许可。用户界面可以向用户指示可以如何使用数据和/或提供提供这样的许可的指示可以使用户受益,例如,通过使能客户端设备120的注册。可替代地,例如,如果用户拒绝对访问用户数据的请求或以其他方式指示他们拒绝许可,则该方法在块206处结束,使得不访问用户数据。在这种情况下,不执行块212-218。
如果用户提供的许可足以实现块,则块204之后是块212。该方法的其余部分,例如,块212-218是在用户允许的情况下选择性访问用户数据来执行的。在一些实施方式中,可以向用户提供附加提示以提供对用户数据的访问或修改许可。
在块212中,确定客户端设备(例如,客户端设备120)是否能够进行单注册消息传递。在一些实施方式中,单注册消息传递可以指代客户端设备经由无线运营商系统(例如,无线运营商系统160)与一个或多个其他客户端设备、服务器设备等进行的消息交换。在单注册下,客户端设备可以向无线运营商系统发送注册消息,这使得无线运营商系统能够注册客户端设备(例如,将在注册消息中发送的客户端设备信息存储在数据库中)并且向客户端设备递送源自其他客户端设备或服务器设备的消息。例如,可以通过富通信服务(RCS)协议来执行消息递送。如果确定客户端设备能够进行单注册消息传递,则块212之后是块214。否则,块212之后是块218。
在块214中,生成密码密钥对。密码密钥对包括私钥和公钥。可以使用任何标准密码技术生成密钥对。在一些实施方式中,密钥对可以使用良好隐私(PGP)加密生成。密钥对可能是可用的,使得使用公钥加密的数据只能使用私钥解密。在生成时,私钥被存储在生成密钥对的客户端设备120的本地存储中。块214之后可以是块216。
在块216中,生成注册消息并将其传送到消息递送服务器(例如,执行递送应用108的服务器设备104)。在一些实施方式中,注册消息包括公钥。在一些实施方式中,注册消息还包括接收方标识符。在其他实施方式中,公钥和/或接收方标识符可以与注册消息分开发送到消息递送服务器。例如,接收方标识符可以是例如从特定应用(例如,app A 152)接收到的令牌。在一些实施方式中,注册消息还包括与实现方法200的客户端设备(例如,客户端设备120)相关联的电话号码。一旦客户端设备被注册,消息递送服务器(例如,执行递送应用108的服务器104)可以经由网络接入层向客户端设备递送消息,例如,客户端设备通过该网络接入层与无线运营商系统交互(160)。客户端设备和无线运营商系统之间的交互可以通过无线运营商运营的公共数据网络(PDN)的IP多媒体子系统(IMS)上的单个IP安全(IPSec)套接字。
在块218中,如果在块212确定客户端设备不能够进行单注册消息传递,则执行该块218,实现默认通知技术,例如,app A 152可以被配置成通过要求设备发起和维持安全连接的互联网协议连接,例如,使用与消息递送服务器(例如,服务器104)的传输层安全性(TLS)来接收由用于在客户端设备上执行的应用,例如,app A 152、app B 154的应用服务器(例如,app A服务器142,app B服务器144)生成的通知。
图3是图示根据一些实施方式的在设备处接收通知的示例方法的流程图。在一些实施方式中,方法300可以例如在如图1中所示的客户端设备120、122、124或126中的一个或多个上实施。在所描述的示例中,实施系统包括一个或多个数字处理器或处理电路(“处理器”)和一个或多个存储设备。在一些实施方式中,一个或多个服务器(例如,服务器设备104)和/或客户端设备的不同组件可以执行方法300的不同块或其他部分。
方法300可以开始于块302。在块302中,获得在方法300的实施方式中使用用户数据的用户许可。例如,获得许可的用户数据可以包括用户的传入消息,例如,经由RCS协议、令牌、在客户端设备120上安装和可执行的应用的标识符等从无线运营商接收的。向用户提供选项以选择性地提供访问此类用户数据的许可。例如,用户可以选取以提供访问所有请求的用户数据、请求的数据的任何子集或不访问请求的数据的许可。在一些实施方式中,本文描述的方法的一个或多个块可以使用这样的用户数据。块302之后是块304。
在块304中,确定如本文所述的方法300的其余部分(块312-320)是否可以用用户提供的许可来实现,例如,通过访问如用户许可的数据。如果在块304中确定用户在块302中提供的许可不足以实现一个或多个块312-320,则块304之后是块306,否则块304之后是块312。
在块306中,请求用户许可以访问用户数据。例如,如果用户已经拒绝对可以在块312-320中使用的用户数据的一个或多个部分的许可,则可以为用户提供用户界面以提供对用户数据的这些部分的许可。用户界面可以向用户指示可以如何使用数据和/或提供提供这样的许可的指示可以使用户受益,例如,通过启用客户端设备120的注册。可替选地,例如,如果用户拒绝对访问用户数据的请求或以其他方式指示他们拒绝许可时,该方法在块306结束,是的不访问用户数据。在这种情况下,不执行块312-320。
在块312中,在接收方设备(例如,客户端设备120-126中的任意一个)处从无线运营商接收消息。例如,可以通过RCS协议接收该消息。在一些实施方式中,该消息可以作为会话发起协议(SIP)消息被接收。在一些实施方式中,SIP消息可以是SIP OPTIONS消息。在一些实施方式中,通知(例如,来自应用服务器的app通知,经由消息递送服务器发送)可以被包括在消息中,例如,在SIP OPTIONS消息的内容主体中。在一些实施方式中,可以经由与无线运营商系统通信的客户端设备的设备调制解调器在客户端设备的网络接入层处接收该消息。在这些实施方式中,软件应用和应用服务器之间不存在活动连接(例如,安全连接,诸如TLS连接或其他互联网协议连接)。
例如,用于例如,app A(152)、app B(154)等的特定应用的应用服务器,可以生成通知并将其发送到消息递送服务器上的消息传递应用(108)。消息递送服务器可以执行数据库查找(例如,在数据库106中)以确定通知是否与向消息递送服务器注册的接收方设备相关联(例如,使用如参考图2所描述的方法200)。例如,数据库可以包括匹配接收方标识符的记录,例如,在注册消息中接收的令牌。数据库记录可以包括,例如,形式为{令牌,设备标识符,公钥}的元组,其中公钥被包括在注册消息中并且其中设备标识符可以是在注册消息中接收到的电话号码。令牌可用于识别app和通知的目标设备,并且在消息递送服务器在注册过程期间接收到它时是已知的(如参考图2所述)。
消息递送服务器基于数据库查找基于确定通知中的接收方标识符(例如,令牌)匹配从应用服务器接收的通知中的令牌,确定通知的接收方是否与公钥相关联。此外,消息递送服务器识别与接收方设备相关联的公钥(来自包括令牌的数据库元组)。消息递送服务器可以通过使用公钥加密通知来生成消息。消息递送服务器可以基于设备标识符,例如,电话号码或与接收方设备相关联的其他标识符,将消息(包括加密的通知)传送到无线运营商,例如,包括运营商消息传递中心(162)的无线运营商系统(160)。在一些实施方式中,可以使用RCS协议来执行从消息递送服务器(104)到无线运营商系统(160)的消息传输。在这些实施方式中,消息递送服务器可以在将消息发送到无线运营商系统之前将消息格式化为RCS消息(例如,包括适当的消息报头等)。这可以减少无线运营商系统的集成需求,因为可以使用RCS协议将从消息递送服务器接收的消息转发到客户端设备,而无线运营商系统不必执行操作来格式化消息以符合RCS。此外,这确保了RCS协议可以用于消息递送,而无需对生成通知的服务器——例如,app A服务器142、app B服务器144等——进行任何改变。
无线运营商(例如,可以依次将消息递送到接收方设备。例如,运营商消息中心(162)可以将消息传送到接收方设备,例如,使用RCS协议。该消息可以通过网络接入层被传送,使得接收方设备在没有唤醒操作的情况下接收消息。在一些实施方式中,消息递送服务器和无线运营商可以维护用于RCS的对等连接,这可以允许利用高可靠性架构的RCS的消息递送与高性能网络接入层相结合。
在一些实施方式中,相同的令牌可以与多个接收方设备相关联。例如,接收通知的app可以是软件应用,其可以被安装在移动电话上(配置用于RCS消息传递),并且也可以安装在一个或多个其他设备上,例如,未配置成用于RCS消息传递的移动电话、笔记本电脑计算机、平板电脑或不包括蜂窝通信性能的其他设备等。如果一个或多个这样的接收方设备与从应用服务器接收到的通知中的令牌相关联,则消息递送服务器也可以向一个或多个此类设备传送该通知(没有使用公钥加密)。块312之后可以是块314。
在块314中,使用本地存储在接收消息的接收方设备处的私钥对接收到的消息进行解密。因为消息递送服务器使用基于接收方标识符(例如,令牌)识别的公钥来加密消息,所以私钥与公钥一起是密钥对的一部分,并且可以被利用以解密消息。块314之后可以是块316。
在块316中,识别在与已解密的消息相关联的接收方设备上执行的软件应用。例如,app的识别可以基于消息中包括的令牌。块316之后可以是块318。
在块318中,通知(已解密的消息)被递送到软件应用。例如,消息传递app和/或解密消息的通知核心可以经由任何合适的机制将通知递送给软件应用,例如,对应用的应用编程接口(API)调用。在一些实施方式中,递送消息可以包括唤醒特定应用(如果应用不活动)、启动应用(如果它没有运行)等。块318之后可以是块320。
在块320中,确认消息被发送到消息递送服务器。例如,确认消息可以用作以下一项或多项的指示:成功接收消息、成功解密消息或成功将消息递送到软件应用。在一些实施方式中,确认消息可以是通过RCS协议递送的“SIP 200 OK”消息。确认消息可以用于指示消息在接收方设备处被成功接收和/或处理。在一些实施方式中,消息递送服务器在接收到确认消息后,可以向(生成通知的)应用服务器发送已成功递送的指示的通知。
方法300的各个块可以组合、拆分成多个块或并行执行。例如,块314和316可以并行执行。方法300或其部分可以重复任意次数,例如,接收任意数量的消息。
图4是图示根据一些实施方式的设备注册和通知的递送的流程图。通知递送可以发生在网络环境,例如,网络环境100中。
在设备注册过程中,App A 152可以向消息传递应用156发送令牌(401)。例如,AppA 152可以被配置成使用令牌经由递送应用108从App A服务器142接收通知,例如,通知可以包括令牌,该令牌用作识别App A 152的特定实例(在客户端设备120上执行,而不是在任何其他客户端设备上执行)。在一些实施方式中,令牌可以由App A服务器142生成并通过互联网提供给特定实例App A 152。
在各种实施方式中,消息传递应用156可以与操作系统一起提供,由设备制造商预安装,或者可以由客户端设备的用户安装。消息传递app 156可以被配置成处理从无线运营商接收的消息,例如,从运营商消息传递中心162接收的消息,并且经由无线运营商向其他客户端设备发送消息。例如,消息传递应用156可以是可以发送和接收RCS协议消息的应用。与无线运营商的消息交换可以经由与无线运营商系统160通信的设备调制解调器发生并且可以利用设备的网络接入层,而不是应用可以利用来通过网络通信的网络通信栈中的更高层。
消息传递app 156可以生成注册消息(402)并将其发送到通知核心158。在一些实施方式中,注册消息可以包括令牌、设备标识符(例如,与客户端设备相关联的电话号码)以及与应用(例如,如参考图2所解释的那样生成)相关联的公钥。
在一些实施方式中,通知核心158可以包括被配置成与安装在客户端设备120上的一个或多个app通信的通知处理软件。在一些实施方式中,通知核心158和消息传递app 156可以被实施为单个软件应用。
通知核心158可以向递送应用108执行设备注册(404)。例如,通知核心158可以通过互联网(例如,使用互联网协议)向递送应用(108)发送注册消息。递送应用108可以在消息递送服务器(例如,服务器设备104)处实现。在一些实施方式中,消息递送服务器可以被配置成与一个或多个应用服务器通信,例如,app A服务器(142)、app B服务器(144)和/或附加app服务器。
接收注册消息的应用服务器(142)可以使用注册消息来创建(或更新)数据库记录。例如,数据库记录可以包括形式为{令牌,设备标识符,公钥}的元组。
应用服务器可以被配置成生成通知。例如,应用服务器可以与在客户端设备上执行的软件应用——诸如电子邮件应用、聊天应用、游戏、视频通话应用等——相关联。可以基于这些应用中的事件生成通知。例如,电子邮件应用的应用服务器可以在用户收到新电子邮件时生成通知,聊天应用可以响应接收到聊天消息生成通知等。相应应用的应用服务器可以生成通知,例如,以经由安装在客户端设备上的应用提供。
在图4中图示的示例中,app A服务器(142)可以向递送应用108发送(406)包括令牌的通知。在一些实施方式中,通知(例如,向用户示出的内容)的至少一部分可以在将通知发送到递送应用之前进行加密。递送应用108可以使用通知中的令牌来执行数据库查找以确定是否基于令牌识别接收方设备。例如,数据库查找可以包括将通知中的令牌与存储在数据库中的令牌进行匹配以检索设备标识符和公钥。
如果接收方设备被识别,则递送应用108可以向通知添加(410)信封以生成消息。例如,递送应用108可以使用与接收方相关联的公钥来加密通知,例如,如在来自接收方设备的注册消息中接收的。添加信封(加密通知)可以确保安全递送,因为只有已经存储相应私钥的接收设备才能解密消息以检索通知。在一些实施方式中,可以使用RCS协议来执行从消息递送服务器(104)到无线运营商系统(160)的消息传输。在这些实施方式中,添加信封可以包括消息递送服务器在将消息发送到无线运营商系统之前执行操作以将消息格式化为RCS消息,例如,包括适当的消息报头和/或其他信息。在将消息发送到无线运营商系统之前将消息格式化为RCS消息具有减少或消除无线运营商系统的集成要求的优点,因为可以使用RCS协议将从消息递送服务器接收的消息转发到客户端设备,同时无线运营商系统不必执行操作来格式化消息以符合RCS。
递送应用108可以将消息(408)发送到无线运营商,例如,发送到运营商消息传递中心(162)。在一些实施方式中,可以在消息递送服务器(104)和无线运营商系统(160)之间建立对等连接以实现消息递送。递送应用108可以基于在数据库查找中识别的设备标识符(例如,电话号码)来识别无线运营商系统。
无线运营商系统160处的运营商消息传递中心162可以将消息递送(412)到接收方设备,例如,到消息传递应用156。例如,可以经由网络接入层通过RCS协议递送消息。从运营商消息传递中心162到消息app 156的消息递送可以通过网络接入层发生,例如,运营商系统160可以向接收方设备发送RCS消息,其中接收方设备的调制解调器可以接收该消息并提醒消息传递app 156,其被配置成通过调制解调器接收消息。在一些实施方式中,该消息可以作为SIP OPTIONS消息发送。消息示例如下所示:
OPTIONS tel:+1222333xxxx SIP/2.0
From:sip:app@messagedeliveryserver.com
P-Asserted-Identity:sip:app@messagedeliveryserver.com
To:tel:+1-222333xxxx
Content-Length:23
Content-Type:application-type/x-encrypted-notification
<ENCRYPTED-MESSAGE>
在上面的示例消息中,“+1222333xxxx”是接收设备的电话号码,“app@messagedeliveryserver.com”指的是递送应用(例如,递送应用108)。“<ENCRYPTED-MESSAGE>”包括由递送应用加密的消息。
在一些实施方式中,该消息可以作为SIP NOTIFY消息发送。例如,客户端设备可以利用SIP SUBSCRIBE以从远程节点(例如,无线运营商系统160)请求当前状态和/或状态更新。当接收到这样的请求时,例如,响应于基于接收到包括来自递送应用108的通知的消息而确定当前状态的改变已经发生,远程节点可以发送SIP NOTIFY消息。
在接收到消息时,消息传递app 156可以移除(414)信封以检索通知内容。移除信封可以包括使用已存储的私钥解密消息。在移除信封之后,消息传递app 156可以向通知核心(158)发送(416)通知。
通知核心158可以识别(418)与通知相关联的app,例如,基于将通知中的令牌与与特定应用(例如,app A 152)相关联的令牌进行匹配。在识别app后,通知核心可以向app递送(420)通知。
App A 152可以以各种方式处理通知。例如,如果通知由应用服务器加密,则处理通知可以包括解密通知。在这些实施方式中,app A 152可以使用任何传统技术与app A服务器142建立共享秘密,并利用共享秘密来解密通知。App A 152可以基于通知内容通知用户(例如,“You have new email from Alyssa(您具有来自Alyssa的新电子邮件)”),或者可以执行其他操作。
在递送应用108无法识别接收方设备的情形下,例如,当通知中的app令牌与任何数据库记录不匹配时,递送应用108可以经由常规机制将通知递送到app A,例如,通过不利用运营商消息传递中心或设备标识符(电话号码)的互联网。此外,递送应用108可以将通知递送给附加的用户设备,例如,如果用户具有在不能经由无线运营商接收消息的诸如膝上型或平板计算机、可穿戴设备等的设备上执行的应用,所述设备没有耦合到运营商网络。在这种情况下,通知中的令牌可以被利用以递送通知。例如,执行此类设备(例如,与数据库记录不匹配)的应用可以被配置成通过互联网与应用服务器建立连接,例如,安全连接,诸如传输层安全(TLS)连接,以启用应用服务器来递送通知。
所描述的技术解决了传统通知技术的技术缺陷,这些技术在客户端设备和消息递送服务器之间或者在客户端设备和应用服务器之间建立和维护安全连接,该消息递送服务器将应用服务器生成的通知递送到客户端设备。此类通知技术通常使用互联网公共数据网络(PDN)上的顶层(OTT)传输层安全(TLS)连接。
这样的配置的技术问题是无线运营商后端上的网络地址转换(NAT)超时可能发生并且由于不活动而导致安全连接关闭,例如,在大于由无线运营商设置的阈值的时段内在客户端设备和无线运营商系统之间通过安全连接没有进行交互。为避免这种连接关闭,需要客户端设备(接收通知的应用)发送定期保持活动消息。发送此类消息需要唤醒无线电发射器(以及相关联的电路,包括客户端设备调制解调器)。无线电发射器的这种唤醒和使用可能浪费电力。在电池供电的设备上,此类活动可能耗尽设备电池。此外,保持活动消息可能导致无线运营商的蜂窝网络拥塞。
本文描述的技术利用客户端设备(例如,移动电话或其他蜂窝通信设备)和无线运营商系统之间的单注册消息传递来递送消息(例如,包括app通知)。例如,富通信服务(RCS)协议可以被用于消息递送。
无线运营商通常共享的客户端设备注册(例如,用于经由LTE语音(长期演进)的客户端设备和无线运营商系统之间的通信和通过IP多媒体(核心网络)子系统PDN(IMS PDN)上的单个IP安全(IPSec)套接字的RCS注册。客户端设备维持到IMS网络的连接以进行蜂窝通信。
根据这里描述的技术,在成功的设备注册(如参考图2和4所描述的)之后,这样的连接被利用于向客户端设备上的应用(如参考图3和4所描述的)的消息递送。通过消除建立TLS(或其他安全OTT连接)并保持其活动的开销,所描述的技术消除定期唤醒客户端设备或发送消息的需要,从而降低功耗、改进电池寿命并减少在无线(蜂窝)网络上的网络拥塞。此外,当客户端设备具有次优的互联网连接时,所描述的技术可以改进通知递送的可靠性和性能。
此外,IMS网络的重要优点是它没有网络地址转换并且被部署在互联网协议版本6(IPv6)上。所描述的技术通过执行允许可靠地递送app通知的设备注册来有利地利用IMSPDN的这一特征。经由IMS PDN的消息递送的技术问题是IMS PDN通常被部署在防火墙环境中,这不允许直接连接到应用服务器和/或消息递送服务器。此外,客户端设备的设备操作系统对IMS PDN的暴露可能有限,因为此连接可以由客户端设备硬件——例如,设备调制解调器——管理。所描述的技术通过执行设备注册并使用包括诸如令牌、设备标识符和公钥的信息的注册设备的数据库来克服这个问题。
此外,所描述的技术有利地使用公钥密码术来确保通过无线运营商网络安全地发送app通知,而不需要建立安全的OTT连接。特别地,客户端设备提供公钥以供消息递送服务器(或生成通知的其他服务器)使用以加密通知。已加密的消息可以通过常规通信信道(例如,未加密)发送,而不妥协消息内容的安全性(例如,app通知)。安全存储在客户端设备上的私钥被利用以解密消息、检索通知并将其提供给客户端设备上的相应应用。
图5是可以用于实施本文描述的一个或多个特征的示例设备500的框图。在一个示例中,设备500可以用于实施客户端设备,例如,图1中所示的客户端设备120-126中的任一个。替换地,设备500可实施服务器设备,例如,服务器104或者无线运营商系统160。在一些实施方式中,设备500可以是用于实施客户端设备、服务器设备、或客户端和服务器设备两者。设备500可以是如上所述的任何适合的计算机系统、服务器、或其它电子或硬件设备。
可以在可在任何类型的计算设备上执行的独立程序、在网页浏览器上运行的程序、在移动计算设备(例如,手机、智能电话、平板计算机、可穿戴设备(腕表、臂章、珠宝、头饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜、头戴式显示器等)、膝上型计算机、服务器计算机等)上运行的移动应用程序(“app”)中运行本文描述的一种或多种方法。
在一些实施方式中,设备500包括处理器502、存储器504、输入/输出(I/O)接口506以及调制解调器516。处理器502可以是用于执行程序代码并且控制设备500的基本操作的一个或多个处理器和/或处理电路。“处理器”包括用于处理数据、信号或其它信息的任何适合的硬件系统、机制、或组件。处理器可以包括具有带一个或多个核心(例如,在单个核心、双核心、或多核心配置中)的通用中央处理单元(CPU)、多个处理单元(例如,在多处理器配置中)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、复杂可编程逻辑器件(CPLD)、用于实现功能性的专用电路、用于实现基于神经网络模型的处理的专用处理器、神经电路、针对矩阵计算(例如,矩阵乘法)而优化的处理器的系统、或其它系统。
在一些实施方式中,处理器502可以包括实施神经网络处理的一个或多个协处理器。在一些实施方式中,处理器502可以是用于处理数据以产生概率输出的处理器,例如,由处理器502产生的输出可以是不精确的或者可以在距预期输出的范围内是准确的。处理不必限于特定地理位置或者具有时间限制。例如,处理器可以“实时地”、“离线”、在“批处理模式”等下执行其功能。可以通过不同的(或相同的)处理系统来在不同的时间并在不同的位置处执行处理的各部分。计算机可以是与存储器通信的任何处理器。
存储器504通常被设置在设备500中以供由处理器502访问,并且可以是适合于存储由处理器执行的指令并被定位为与处理器502分开和/或与其集成在一起的任何适合的处理器可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)、闪速存储器等。存储器504可存储由处理器502在服务器设备500上操作的软件,包括操作系统508、消息传递应用510(例如,可以与图1的消息传递应用156相同)、其它应用512、和应用数据514。消息传递应用510可以被配置成用于运营商消息传递的默认应用,使得在通过无线运营商网络(例如,在调制解调器516通过网络接入层)接收到消息时,消息传递应用510被自动调用。
其它应用512可以包括诸如数据显示引擎、网页托管引擎、地图应用、图像显示引擎、通知引擎(例如,可以实现通知核心158)、社交网络引擎等等。在一些实施方式中,图像传递应用510可以包括使得处理器502能够执行本文描述的功能——例如,图2、3或4的方法中的一些或全部——的指令。其他应用512(可以包括app A 152和app B 154)可以包括例如地图应用、图像编辑应用、媒体显示应用、通信应用、网页托管引擎或应用、通知引擎、媒体共享应用等等。本文公开的一种或多种方法可在多个环境和平台中操作,例如,作为可在任何类型的计算设备上运行的独立计算机程序、作为具有网页页面的网页应用、作为在移动计算设备上运行的移动应用程序(“app”)等。
存储器504中的任何软件能够可替换地被存储在任何其它适合的存储位置或计算机可读介质上。此外,存储器504(和/或其它连接的存储设备)可存储一个或多个消息、一个或多个分类法、电子百科全书、词典、同义词库、知识库、消息数据、语法、用户偏好、和/或本文描述的特征中使用的其它指令和数据。存储器504和任何其它类型的存储装置(磁盘、光盘、磁带、或其它有形介质)可被认为是“存储装置”或“存储设备”。
I/O接口506可提供用于使得能够将服务器设备500与其它系统和设备对接的功能。对接设备可作为设备500的一部分被包括、或者可以是分开的并与设备500进行通信。例如,网络通信设备、存储设备(例如,存储器和/或数据库)、和输入/输出设备可经由I/O接口506通信。在一些实施方式中,I/O接口可连接到接口设备,诸如输入设备(键盘、指点设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
可连接到I/O接口506的对接设备的一些示例可包括一个或多个显示设备520,所述显示设备520可用于显示内容,例如,图像、视频、和/或如本文所描述的应用的用户界面。显示设备520可经由本地连接(例如,显示总线)和/或经由联网连接来连接到设备500并且可以是任何适合的显示设备。显示设备520可包括任何适合的显示设备,诸如LCD、LED、或等离子体显示屏幕、CRT、电视、监视器、触摸屏、3-D显示屏幕、或其它视觉显示设备。例如,显示设备520可以是在移动设备上提供的平板显示屏幕、在护目镜或头戴式耳机设备中提供的多个显示屏幕、或用于计算机设备的监视器屏幕。
I/O接口506可与其它输入和输出设备对接。一些示例包括可捕获图像的一个或多个相机。一些实施方式可提供用于捕获声音(例如,作为捕获的图像、话音命令等的一部分)的麦克风、用于输出声音的音频扬声器设备、或其它输入和输出设备。
调制解调器516可以是被配置成与无线运营商系统(例如,无线运营商系统160)通信的蜂窝调制解调器。在不同的实施方式中,调制解调器516可以在与处理器502相同的芯片或管芯上实现,或者可以实现为单独的硬件。调制解调器516能够通过网络接入层与无线运营商系统通信。在一些实施方式中,调制解调器516可以被配置成发送由消息传递应用510提供的消息,例如,通过RCS协议。在一些实施方式中,调制解调器516可以被配置成接收消息,例如,通过RCS协议,并且将消息提供给消息传递应用510。
为了便于图示,图5示出了用于处理器502、存储器504、I/O接口506、和软件框508、510和512中的每一个的一个框。这些框可以表示一个或多个处理器或处理电路、操作系统、存储器、I/O接口、应用、和/或软件模块。在其它实施方式中,设备500可以不具有所示的所有组件,并且/或者代替本文所示的那些元件或者除了本文所示的那些元件之外还可以具有包括其它类型的元件的其它元件。虽然一些组件被描述为执行如本文的一些实施方式中所描述的框和操作,但是环境100、设备500、类似的系统的组件中的任何适合的组件或组合、或与这样的系统相关联的任何适合的一个或多个处理器可以执行所描述的框和操作。
计算设备500可以包括现在在图5中以各种配置示出的附加硬件和/或软件。例如,当计算设备500被利用以实现无线运营商系统时,它可以实现运营商消息传递中心(162),并且可以包括无线通信硬件。在另一示例中,当计算设备500被利用以实现消息递送服务器时,计算设备500可以实现递送应用108和/或存储数据库106。
本文描述的方法可通过可在计算机上执行的计算机程序指令或代码来实施。例如,代码可由一个或多个数字处理器(例如,微处理器或其它处理电路)实施并且可被存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,所述非暂时性计算机可读介质诸如磁、光学、电磁、或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、硬磁盘、光盘、固态存储器驱动器等。程序指令还可被包含在电子信号中并作为电子信号被提供,例如以从服务器(例如,分布式系统和/或云计算系统)递送的软件即服务(SaaS)的形式提供。替换地,一种或多种方法可用硬件(逻辑门等)或者用硬件和软件的组合加以实施。示例硬件可以是可编程处理器(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(ASIC)等。可将一种或多种方法作为在系统上运行的应用的一部分或组件、或者作为与其它应用和操作系统相结合地运行的应用或软件来执行。
尽管已相对于说明书的特定实施方式描述了说明书,但是这些特定实施方式仅仅是说明性的,而不是限制性的。示例中图示的概念可以被应用于其它示例和实施方式。
除以上描述之外,可以向用户提供有允许用户关于本文中描述的系统、程序或特征是否以及何时可以使得能够收集用户信息(例如,关于用户的社交网络、社交动作或活动、专业、用户的偏好、或用户的当前位置的信息)并且用户是否被从服务器发送了内容或通信做出选择的控制。此外,某些数据可以在它被存储或者使用之前被以一个或多个方式处理,使得个人可识别的信息被移除。例如,可以处理用户的身份,使得对用户来说不能够确定个人可识别的信息,或者用户的地理位置可以在获得位置信息的情况下被一般化(诸如到城市、邮政编码、或州级别),使得不能够确定用户的特定位置。因此,用户可以具有对收集关于用户的什么信息、如何使用该信息并且向用户提供什么信息的控制。
注意的是,如将为本领域的技术人员所知的那样,可以将本公开中描述的功能块、操作、特征、方法、设备和系统集成或者划分到系统、设备和功能块的不同组合中。可以使用任何适合的编程语言和编程技术来所述特定实施方式的例程。可以采用不同的编程技术,例如过程的或面向对象的。例行程序可以在单个处理设备或多个处理器上执行。尽管可以以具体次序呈现步骤、操作或计算,但是可以在不同的特定实施方式中改变该次序。在一些实施方式中,可以同时执行在本说明书中示出为有顺序的多个步骤或操作。

Claims (16)

1.一种计算机实现的方法,包括:
在接收方设备处从无线运营商接收消息,所述消息包括来自应用服务器的通知;
使用在所述接收方设备处本地存储的私钥对所述消息进行解密;
识别在与已解密的消息相关联的所述接收方设备上执行的软件应用,其中所述已解密的消息包括通知;以及
将所述已解密的消息递送到所述软件应用,
其中,所述接收方设备是耦合到由所述无线运营商运营的蜂窝网络的无线设备,并且其中接收所述消息包括通过所述蜂窝网络上的富通信服务(RCS)协议接收所述消息。
2.根据权利要求1所述的计算机实现的方法,进一步包括,在所述解密之后,向所述无线运营商发送确认消息。
3.根据权利要求1或者2所述的计算机实现的方法,进一步包括,在接收所述消息之前:
在所述接收方设备处生成包括公钥和私钥的加密密钥对;
将所述私钥存储在所述接收方设备的本地存储中;以及
将包括所述公钥的注册消息通过所述互联网传送到消息递送服务器。
4.根据权利要求3所述的计算机实现的方法,其中,所述注册消息进一步包括和所述软件应用相关联的令牌,并且其中识别所述软件应用基于确定在所述已解密的消息中的接收到的令牌与和所述软件应用相关联的所述令牌匹配。
5.根据权利要求1所述的计算机实现的方法,其中,所述消息作为会话发起协议(SIP)消息被接收。
6.根据权利要求5所述的计算机实现的方法,其中所述SIP消息是SIP OPTIONS消息,并且所述通知被包括在所述SIP选项消息的内容主体中。
7.一种设备,包括:
处理器;
调制解调器,所述调制解调器能够操作以将所述设备耦合到无线运营商;以及
存储器,所述存储器耦合到所述处理器,在所述存储器上存储有指令,当由所述处理器执行时,所述指令使所述处理器执行包括下述的操作:
从无线运营商接收消息,所述消息包括来自应用服务器的通知;
使用私钥解密所述消息;
识别与已解密的消息相关联的软件应用,其中已解密的消息包括所述通知;以及
将已解密的消息递送到所述软件应用;
经由与所述无线运营商通信的所述调制解调器在所述设备的网络接入层处接收所述消息,并且其中在所述软件应用和所述应用服务器之间不存在活动连接。
8.根据权利要求7所述的设备,其中,所述设备被耦合到由所述无线运营商运营的蜂窝网络,并且其中接收所述消息包括通过所述蜂窝网络上的富通信服务(RCS)协议接收所述消息。
9.根据权利要求7所述的设备,其中,所述消息作为会话发起协议(SIP)消息被接收。
10.根据权利要求9所述的设备,其中所述SIP消息是SIP OPTIONS消息,并且所述通知被包括在所述SIP选项消息的内容主体中。
11.根据权利要求7至10中的任意一项所述的设备,其中,所述操作进一步包括,在接收所述消息之前,
生成包括公钥和私钥的加密密钥对;
将所述私钥存储在所述设备的本地存储中;以及
将包括所述公钥的注册消息通过所述互联网传送到消息递送服务器。
12.一种用于递送消息的计算机实现的方法,所述方法包括:
在消息递送服务器处接收来自应用服务器的通知;
确定所述通知的接收方与存储在所述消息递送服务器处的公钥相关联,所述公钥与接收方设备相关联;
响应于确定所述接收方与所述公钥相关联,通过用所述公钥加密所述通知来生成所述消息;以及
将所述消息传送到无线运营商以递送到所述接收方设备;
其中,所述接收方设备是耦合到所述由无线运营商运营的蜂窝网络的无线设备,并且其中通过所述蜂窝网络上的富通信服务(RCS)协议向所述接收方递送所述消息。
13.根据权利要求12所述的计算机实现的方法,其中,所述消息递送服务器和所述无线运营商为RCS维持对等连接。
14.根据权利要求12所述的计算机实现的方法,进一步包括通过所述互联网向一个或多个其他接收方设备传送所述通知。
15.根据权利要求12-14中的任一项所述的计算机实现的方法,进一步包括,在接收所述通知之前:
在所述消息递送服务器处接收来自所述接收方设备的注册消息,其中所述注册消息包括所述公钥和接收方标识符。
16.根据权利要求15所述的计算机实现的方法,其中,确定所述通知的所述接收方与所述公钥相关联基于确定所述接收方匹配所述接收方标识符,其中所述接收方设备执行软件应用并且其中所述接收方标识符是与所述软件应用相关联的令牌。
CN202111591698.5A 2021-01-11 2021-12-23 向移动设备递送通知 Pending CN114286294A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP21150972.4A EP4027606A1 (en) 2021-01-11 2021-01-11 Delivery of notifications to mobile devices
EP21150972.4 2021-01-11

Publications (1)

Publication Number Publication Date
CN114286294A true CN114286294A (zh) 2022-04-05

Family

ID=74130132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111591698.5A Pending CN114286294A (zh) 2021-01-11 2021-12-23 向移动设备递送通知

Country Status (5)

Country Link
US (1) US20220224728A1 (zh)
EP (1) EP4027606A1 (zh)
JP (1) JP7366115B2 (zh)
KR (1) KR20220101562A (zh)
CN (1) CN114286294A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230117615A1 (en) * 2021-10-19 2023-04-20 At&T Intellectual Property I, L.P. Api driven subscriber ims registration status changes and ims routing steering

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2892206A1 (en) * 2013-12-17 2015-07-08 Deutsche Telekom AG A system and method for push framework security
CN104811364A (zh) * 2014-01-24 2015-07-29 华为技术有限公司 一种消息的推送方法、系统及消息代理服务器和终端设备
CN110225203A (zh) * 2019-06-12 2019-09-10 中卓信(北京)科技有限公司 一种富媒体短信的快应用展示装置、方法及操作方法
US20190356617A1 (en) * 2018-05-16 2019-11-21 T-Mobile Usa, Inc. Business chat to rich communication services interworking

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005284346A (ja) 2004-03-26 2005-10-13 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム
US8601152B1 (en) * 2006-07-31 2013-12-03 Aruba Networks, Inc. In-band security protocol decryptor and scanner
JP4337853B2 (ja) * 2006-09-04 2009-09-30 コニカミノルタビジネステクノロジーズ株式会社 アプリケーションプログラム配布装置、画像処理装置、及びプログラム
US8788824B2 (en) * 2009-08-13 2014-07-22 Verizon Patent And Licensing Inc. Selective encryption in broker-based messaging systems and methods
US8127350B2 (en) * 2010-06-30 2012-02-28 Juniper Networks, Inc. Multi-service VPN network client for mobile device
US9106671B2 (en) * 2011-08-23 2015-08-11 Telefonaktiebolaget L M Ericsson (Publ) Capability discovery optimization
US11665145B1 (en) * 2014-05-02 2023-05-30 Navroop Mitter Method of providing end to end encryption with auditability
FR3049806A1 (fr) * 2016-03-31 2017-10-06 Orange Procede de notification de l'indisponibilite d'un terminal
EP3491801B1 (en) 2016-07-28 2021-01-13 Koninklijke Philips N.V. Identifying a network node to which data will be replicated
US10979212B2 (en) * 2017-10-19 2021-04-13 Mellanox Technologies, Ltd. Method and apparatus for decrypting and authenticating a data record
US11044327B2 (en) * 2018-06-13 2021-06-22 Verizon Patent And Licensing Inc Systems and methods for wireless service migration
JP7202688B2 (ja) 2018-06-15 2023-01-12 Capy株式会社 認証システム、認証方法、アプリケーション提供装置、認証装置、及び認証用プログラム
US11251956B2 (en) 2018-07-02 2022-02-15 Avaya Inc. Federated blockchain identity model and secure personally identifiable information data transmission model for RCS

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2892206A1 (en) * 2013-12-17 2015-07-08 Deutsche Telekom AG A system and method for push framework security
CN104811364A (zh) * 2014-01-24 2015-07-29 华为技术有限公司 一种消息的推送方法、系统及消息代理服务器和终端设备
US20190356617A1 (en) * 2018-05-16 2019-11-21 T-Mobile Usa, Inc. Business chat to rich communication services interworking
CN110225203A (zh) * 2019-06-12 2019-09-10 中卓信(北京)科技有限公司 一种富媒体短信的快应用展示装置、方法及操作方法

Also Published As

Publication number Publication date
JP7366115B2 (ja) 2023-10-20
EP4027606A1 (en) 2022-07-13
US20220224728A1 (en) 2022-07-14
JP2022107581A (ja) 2022-07-22
KR20220101562A (ko) 2022-07-19

Similar Documents

Publication Publication Date Title
US10389694B2 (en) System and method for non-replayable communication sessions
CN111193695B (zh) 一种第三方账号登录的加密方法、装置及存储介质
WO2018014723A1 (zh) 密钥管理方法、装置、设备及系统
US20200107165A1 (en) Secure streaming of real-time location data between electronic devices
EP4014425B1 (en) Secure publish-subscribe communication methods and apparatus
US20160352790A1 (en) Collaborative business communication information system
US10129229B1 (en) Peer validation
CN112217920A (zh) 通过主机使用客户端接听呼叫
WO2020020007A1 (zh) 网络接入方法、装置、终端、基站和可读存储介质
US10855846B1 (en) Encrypting multiple party calls
US20160099919A1 (en) System and method for providing a secure one-time use capsule based personalized and encrypted on-demand communication platform
US11870760B2 (en) Secure virtual personalized network
CN111698264A (zh) 用于保持用户认证会话的方法和装置
JP7366115B2 (ja) モバイルデバイスへの通知の配信
Sabah et al. Developing an end-to-end secure chat application
US12015702B2 (en) Key sharing for media frames using blockchain
US9571462B1 (en) Extensible personality-based messaging system in a distributed computerized infrastructure for establishing a social network
US9286240B1 (en) Systems and methods for controlling access to content in a distributed computerized infrastructure for establishing a social network
US9577995B1 (en) Systems and methods for enabling secure communication between endpoints in a distributed computerized infrastructure for establishing a social network
US20230379162A1 (en) System and method of authenticating devices for secure data exchange
CN114765595B (zh) 聊天消息的显示方法、发送方法、装置、电子设备及介质
CN110890968B (zh) 一种即时通信方法、装置、设备及计算机可读存储介质
WO2020223917A1 (zh) 安全多方计算的实现方法、装置、计算机设备和存储介质
CN117082503A (zh) 用于通话加密的方法、装置、设备及存储介质
Umamaheswari et al. SPECIFICATION FOR PRESERVING THE SECURITY AND PRIVACY OF THE CHAT APPLICATION

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