一种用于推送消息的方法及设备的制造方法
【技术领域】
[0001] 本发明涉及通信技术领域,尤其涉及一种用于推送消息的方法及设备。
【背景技术】
[0002] 在如今的互联网服务中,服务器,如应用服务提供商(Application Service Provider, AS巧的服务器,可为用户设备提供推送服务。对于送种推送服务,用户设备只 需要进行一次性的注册或授权,所述ASP服务器便可W多次地、主动地向用户设备推送消 息。但是,大多数的ASP服务器不能直接向用户设备推送消息,而是需要通过第H方平台 (Third-Party Plat化rm,TP巧服务器向用户设备转发所推送的消息。常见的TPP包括;短 信或邮件服务提供商、苹果推送通知服务(Apple化sh Notification Service, APNs)和微 信公众平台等。
[0003] 为了使得TPP服务器无法获得ASP服务器向用户设备推送的消息,所述ASP服务 器在向所述用户设备推送消息前,所述ASP服务器和所述用户设备可采用迪菲-赫尔曼 值i巧e-HelIman, DH)协议进行密钥协商,获得对称密钥。所述ASP服务器可采用所述对称 密钥,对所述推送消息进行加密,相应地,所述用户设备可采用所述对称密钥,对所述推送 消息进行解密。例如:所述用户设备可接收多个ASP服务器,比如第一 ASP服务器和第二 ASP服务器,推送的消息。所述用户设备与所述第一 ASP服务器协商确定第一对称密钥,保 存与所述第一 ASP服务器对应的所述第一对称密钥。所述用户设备还与所述第二ASP服务 器协商确定第二对称密钥,保存与所述第二ASP服务器确定的所述第二对称密钥。送样,所 述用户设备需要耗费较多的存储空间来保存对称密钥,降低了安全性;所述用户设备还需 要配置针对所述对称密钥的管理机制,W便在接收到某一 ASP服务器推送的消息后,能够 快速查找出与某一 ASP服务器对应的对称密钥,增加了用户设备的负担。
【发明内容】
[0004] 本发明的实施例提供一种用于推送消息的方法及设备,有助于提高安全性和降低 设备的负担。
[0005] 为达到上述目的,本发明的实施例采用如下技术方案:
[0006] 第一方面,提供一种用于推送消息的方法,包括:
[0007] 服务器获得第一字段,所述第一字段为根据DH协议、第一随机数和DH参数生成的 数据,所述第一随机数为根据用户设备的私有密钥和所述服务器的标识生成的数据,所述 DH参数为所述用户设备和所述服务器共享的参数;
[0008] 所述服务器根据所述DH协议、第二随机数、所述第一字段W及所述DH参数,获得 第一密钥,所述第二随机数为所述服务器生成的随机数;
[0009] 所述服务器采用所述第一密钥加密第一消息,获得加密后的第一消息,所述第一 消息为所述服务器向所述用户设备推送的消息;
[0010] 所述服务器向所述用户设备发送第二字段和所述加密后的第一消息,所述第二字 段为根据所述DH协议、所述第二随机数和所述DH参数生成的数据。
[0011] 结合第一方面,在第一方面的第一种可能的实现方式中,所述服务器获得第一字 段包括:
[0012] 所述服务器接收所述用户设备发送的请求报文,所述请求报文用于请求所述服务 器提供推送服务,所述请求报文包括所述第一字段;
[0013] 所述服务器从所述请求报文中获得所述第一字段。
[0014] 结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的 实现方式中,还包括:
[0015] 所述服务器根据所述DH协议、第H随机数、所述第一字段W及所述DH参数,获得 第二密钥,所述第H随机数为所述服务器生成的随机数;
[0016] 所述服务器采用所述第二密钥加密第二消息,获得加密后的第二消息,所述第二 消息为所述服务器向所述用户设备推送的消息;
[0017] 所述服务器向所述用户设备发送第H字段和所述加密后的第二消息,所述第H字 段为根据所述DH协议、所述第H随机数和所述DH参数生成的数据。
[0018] 结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式, 在第一方面的第H种可能的实现方式中,所述请求报文还包括所述用户设备的标识,还包 括:
[0019] 所述服务器存储所述第一字段和所述用户设备的标识之间的对应关系。
[0020] 第二方面,提供一种用于推送消息的方法,包括:
[0021] 用户设备接收服务器发送的第二字段和加密后的第一消息,所述第二字段为根据 DH协议、第二随机数和DH参数生成的数据,所述第二随机数为所述服务器生成的随机数, 所述DH参数为所述用户设备和所述服务器共享的参数;
[0022] 所述用户设备获得第一随机数,所述第一随机数为根据所述用户设备的私有密钥 和所述服务器的标识生成的数据;
[0023] 所述用户设备根据所述DH协议、所述第一随机数、所述第二字段W及所述DH参 数,获得第一密钥;
[0024] 所述用户设备采用所述第一密钥对所述加密后的第一消息进行解密,获得第一消 息,所述第一消息为所述服务器向所述用户设备推送的消息。
[0025] 结合第二方面,在第二方面的第一种可能的实现方式中,所述用户设备接收服务 器发送的第二字段和加密后的第一消息之前,还包括:
[0026] 所述用户设备获得第一字段,所述第一字段为根据所述DH协议、所述第一随机数 和所述DH参数生成的数据;
[0027] 所述用户设备向所述服务器发送所述第一字段。
[0028] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,所述用户设备向所述服务器发送所述第一字段,包括:
[0029] 所述用户设备获得请求报文,所述请求报文用于向所述服务器请求提供推送服 务,所述请求报文包括所述第一字段;
[0030] 所述用户设备向所述服务器发送所述请求报文。
[0031] 结合第二方面、第二方面的第一种可能的实现方式或第二方面的第二种可能的实 现方式,在第二方面的第H种可能的实现方式中,还包括:
[0032] 所述用户设备接收所述服务器发送的第H字段和加密后的第二消息,所述第H字 段为根据所述DH协议、第H随机数和所述DH参数生成的数据,所述第H随机数为所述服务 器生成的随机数;
[0033] 所述用户设备根据所述DH协议、所述第一随机数、所述第H字段W及所述DH参 数,获得第二密钥;
[0034] 所述用户设备采用所述第二密钥对所述加密后的第二消息进行解密,获得所述第 二消息,所述第二消息为所述服务器向所述用户设备推送的消息。
[0035] 第H方面,提供一种服务器,包括:
[0036] 第一获得单元,用于获得第一字段,所述第一字段为根据DH协议、第一随机数和 DH参数生成的数据,所述第一随机数为根据用户设备的私有密钥和所述服务器的标识生成 的数据,所述DH参数为所述用户设备和所述服务器共享的参数;
[0037] 第二获得单元,用于根据所述DH协议、第二随机数、所述第一字段W及所述DH参 数,获得第一密钥,所述第二随机数为所述服务器生成的随机数;
[0038] 加密单元,用于采用所述第二获得单元获得的所述第一密钥加密第一消息,获得 加密后的第一消息,所述第一消息为所述服务器向所述用户设备推送的消息;
[0039] 发送单元,用于向所述用户设备发送第二字段和所述加密后的第一消息,所述第 二字段为根据所述DH协议、所述第二随机数和所述DH参数生成的数据。
[0040] 结合第H方面,在第H方面的第一种可能的实现方式中,还包括:
[0041] 接收单元,用于接收所述用户设备发送的请求报文,所述请求报文用于请求所述 服务器提供推送服务,所述请求报文包括所述第一字段;
[0042] 所述第一获得单元还用于从所述接收单元接收到的所述请求报文中获得所述第 一字段。
[0043] 结合第H方面或第H方面的第一种可能的实现方式,在第H方面的第二种可能的 实现方式中,
[0044] 所述第二获得单元还用于根据所述DH协议、第H随机数、所述第一字段W及所述 DH参数,获得第二密钥,所述第H随机数为所述服务器生成的随机数;
[0045] 所述加密单元还用于采用所述第二获得单元获得的所述第二密钥加密第二消息, 获得加密后的第二消息,所述第二消息为所述服务器向所述用户设备推送的消息;
[0046] 所述发送单元还用于向所述用户设备发送第H字段和所述加密后的第二消息,所 述第H字段为根据所述DH协议、所述第H随机数和所述DH参数生成的数据。
[0047] 结合第H方面的第一种可能的实现方式或第H方面的第二种可能的实现方式, 在第H方面的第H种可能的实现方式中,所述请求报文还包括所述用户设备的标识,还包 括:
[0048] 存储单元,用于存储所述第一字段和所述用户设备的标识之间的对应关系。
[0049] 第四方面,提供一种用户设备,包括:
[0050] 接收单元,用于接收服务器发送的第二字段和加密后的第一消息,所述第二字段 为根据DH协议、第二随机数和DH参数生成的数据,所述第二随机数为所述服务器生成的随 机数,所述DH参数为所述用户设备和所述服务器共享的参数;
[0051] 第一获得单元,用于获得第一随机数,所述第一随机数为根据所述用户设备的私 有密钥和所述服务器的标识生成的数据;
[0052] 第二获得单元,用于根据所述DH协议、所述第一随机数、所述第二字段W及所述 DH参数,获得第一密钥;
[0053] 解密单元,用于采用所述第二获得单元获得的所述第一密钥对所述加密后的第一 消息进行解密,获得第一消息,所述第一消息为所述服务器向所述用户设备推送的消息。
[0054] 结合第四方面,在第四方面的第一种可能的实现方式中,还包括:
[0055] 第H获得单元,用于在所述接收单元接收服务器发送的第二字段和加密后的第一 消息之前,获得第一字段,所述第一字段为根据所述DH协议、所述第一随机数和所述DH参 数生成的数据;
[0056] 发送单元,用于向所述服务器发送所述第H获得单元获得的所述第一字段。
[0057] 结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式 中,
[0058] 所述第H获得单元还用于获得请求报文,所述请求报文用于向所述服务器请求提 供推送服务,所述请求报文包括所述第一字段;
[0059] 所述发送单元用于向所述服务器发送所述第H获得单元获得的所述请求报文。
[0060] 结合第四方面、第四方面的第一种可能的实现方式或第四方面的第二种可能的实 现方式,在第四方面的第H种可能的实现方式中,
[0061] 所述接收单元还用于接收所述服务器发送的第H字段和加密后的第二消息,所述 第H字段为根据所述DH协议、第H随机数和所述DH参数生成的数据,所述第H随机数