数据推送方法及装置与流程

文档序号:15751803发布日期:2018-10-26 17:54阅读:254来源:国知局
数据推送方法及装置与流程

本发明涉及互联网技术领域,特别是涉及一种数据推送方法及装置。



背景技术:

随着互联网技术的发展和各种终端的普及,终端会收到大量来自应用服务器的推送数据。为使终端中的应用不再后台运行的情况下也能够接收到应用服务器推送的数据,应用服务可以先将需要推送的目标数据发送给推送服务器,进而由推送服务器将该目标数据发送给终端。

现有技术中,为了确保推送数据过程的安全性,上述数据推送通过ssl(securesocketslayer,安全套接层)/tls(transportlayersecurity,传输层安全)等对称加密协议进行加密,从而确保推送的目标数据在应用服务器、推送服务器和终端之间的安全性,但由于在上述推送数据的过程中,是通过对称加密协议进行加密,所以作为第三方的推送服务器可以轻易对该目标数据进行解密,安全性较差,难以确保应用开发商和用户的隐私及数据安全。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据推送方法及装置。

依据本发明的一个方面,提供了一种数据推送方法,所述方法包括:

获取至少一个用户属性作为目标用户属性;

基于所述目标用户属性确定数据推送策略;

基于所述数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密,得到密文数据;

通过推送服务器将所述密文数据推送给终端。

可选的,在所述通过基于属性的加密算法对目标数据进行加密之前,所述方法还包括:

从所述安全平台获取公钥。

可选的,所述通过推送服务器将所述密文数据推送给终端包括:

基于所述数据推送策略确定用户标识;

将所述用户标识和所述密文数据发送给所述推送服务器,以使所述推送服务器将所述密文数据发送给所述用户标识对应的终端。

可选的,所述方法还包括:

将多个用户标识以及分别与各用户标识关联的用户属性提供给所述安全平台,以使所述安全平台基于所述多个用户标识以及各用户标识关联的用户属性,对所述终端当前的用户所具有的用户属性进行验证,并在验证通过后向所述终端反馈私钥。

依据本发明的一个方面,提供了一种数据推送方法,所述方法包括:

从推送服务器获取应用服务器推送的密文数据,其中,所述密文数据由所述应用服务器基于数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密得到;

基于与当前用户的用户标识所关联的用户属性,从所述安全平台获取私钥;

基于所述私钥对所述密文数据进行解密,得到所述目标数据。

可选的,所述基于与当前用户的用户标识所关联的用户属性,从所述安全平台获取私钥包括:

将所述当前用户的用户标识和所关联的用户属性提供给所述安全平台,以使所述安全平台对所述当前用户所具有的用户属性进行验证,并在验证通过后,确定与所述当前用户所具有的用户属性对应的私钥;

接收所述安全平台反馈的私钥。

可选的,所述方法还包括:

记录用户事件;

基于所述用户事件确定与所述当前用户的用户标识所关联的用户属性;

将所述当前用户的用户标识和所关联的用户属性提交给所述应用服务器,以使所述应用服务器基于用户所具有的用户属性向终端推送数据。

根据本发明的另一方面,提供了一种数据推送装置,所述装置包括:

第一获取模块,用于获取至少一个用户属性作为目标用户属性;

确定模块,用于基于所述目标用户属性确定数据推送策略;

加密模块,用于基于所述数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密,得到密文数据;

推送模块,用于通过推送服务器将所述密文数据推送给终端。

可选的,所述装置还包括:

第二获取模块,用于从所述安全平台获取公钥。

可选的,所述推送模块包括:

确定子模块,用于基于所述数据推送策略确定用户标识;

发送子模块,用于将所述用户标识和所述密文数据发送给所述推送服务器,以使所述推送服务器将所述密文数据发送给所述用户标识对应的终端。

可选的,所述装置还包括:

提供模块,用于将多个用户标识以及分别与各用户标识关联的用户属性提供给所述安全平台,以使所述安全平台基于所述多个用户标识以及各用户标识关联的用户属性,对所述终端当前的用户所具有的用户属性进行验证,并在验证通过后向所述终端反馈私钥。

根据本发明的另一方面,提供了一种数据推送装置,所述装置包括:

第一获取模块,用于从推送服务器获取应用服务器推送的密文数据,其中,所述密文数据由所述应用服务器基于数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密得到;

第二获取模块,用于基于与当前用户的用户标识所关联的用户属性,从所述安全平台获取私钥;

解密模块,用于基于所述私钥对所述密文数据进行解密,得到所述目标数据。

可选的,所述第二获取模块包括:

提供子模块,用于将所述当前用户的用户标识和所关联的用户属性提供给所述安全平台,以使所述安全平台对所述当前用户所具有的用户属性进行验证,并在验证通过后,确定与所述当前用户所具有的用户属性对应的私钥;

接收子模块,用于接收所述安全平台反馈的私钥。

可选的,所述装置还包括:

记录模块,用于记录用户事件;

确定模块,用于基于所述用户事件确定与所述当前用户的用户标识所关联的用户属性;

提交模块,用于将所述当前用户的用户标识和所关联的用户属性提交给所述应用服务器,以使所述应用服务器基于用户所具有的用户属性向终端推送数据。

在本发明实施例中,由于不同的用户具有不同的用户属性,该用户属性难以被应用服务器和该用户的终端之外的其它设备获取得到,因此,可以获取至少一个用户属性作为目标用户属性,进而基于目标用户属性确定数据推送策略,并基于数据推送策略对目标数据进行加密,所得到的加密数据仅能够被具有目标用户属性的用户标识所在的终端解密,即能够使除应用服务器和该用户的终端之外的设备难以感知所推送的数据内容,从而提高了数据推送过程的安全性,确保用户以及应用开发商的隐私的数据安全。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是根据本发明实施例一的一种数据推送方法的步骤流程图;

图2是根据本发明实施例二的一种数据推送方法的步骤流程图;

图3是根据本发明实施例三的一种数据推送方法的步骤流程图;

图4是根据本发明实施例三的一种数据推送系统的示意图;

图5是根据本发明实施例三的一种数据推送方法的时序图;

图6是根据本发明实施例四的一种数据推送装置的结构框图;

图7是根据本发明实施例五的一种数据推送装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

参照图1,示出了本发明实施例中的一种数据推送方法的步骤流程图。该方法可以应用于应用服务器中,具体步骤包括:

步骤101,获取至少一个用户属性作为目标用户属性。

由于应用服务器可以为多个用户提供服务,且不同的用户可以具有不同的用户属性,比如订阅或关注不同种类的数据、具有不同年龄、处于不同的国籍等,而各用户的用户属性易于被应用服务器和该用户的终端,而难以被其它未由应用服务器或终端授权的设备获取得到,因此,为了便于后续对基于用户的用户属性对所推送的数据进行加密,使除应用服务器和该用户的终端之外的设备难以感知所推送的数据内容,提高推送数据过程的安全性,保护用户及应用开发商的隐私和数据安全,可以获取目标用户属性。

用户属性为用户所具有的特点,该用户属性可以由接收用户提交得到,或者,可以根据用户对应用的使用行为进行分析得到。

例如,用户属性可以包括关注或订阅的其它用户或话题、年龄、国籍、宗教信仰、所处地理位置、兴趣爱好、收入水平、消费能力等中的至少一个。当然,在实际应用中,该用户属性还可以包括其它能够用户所具有的特点的信息。

终端可以包括手机、电脑或可穿戴设备,当然,在实际应用中,该终端还可以包括其它类型的设备。该终端中可以安装与前述中的应用服务器相对应的应用,从而使用该应用服务器所提供的服务。

应用服务器可以从多个终端获取不同用户所具有的用户属性,从而收集得到多个用户属性,并在该多个用户属性中选择至少一个作为目标用户属性来推送数据。

由于不同的用户具有不同的用户属性,因而所需向不同的用户所推送的数据也可以与该用户所具有的用户属性相吻合,以准确向不同的用户对应推送不同的数据。所以,可以根据所推送的数据,选择所匹配的至少一个用户属性;或者,也可以随机选择至少一个用户属性,然后确定向符合所选择的用户属性对应的用户所推送的数据。

当然,在实际应用中,还可以通过其它方式来选择至少一个用户属性作为目标用户属性。

步骤102,基于所述目标用户属性确定数据推送策略。

由前述可知,目标用户属性包括至少一个用户属性,因此为了进一步精准地确定即将获取所推送的数据的用户,提高推送数据准确性,可以根据目标用户属性确定数据推送策略。

数据推送策略由一个用户属性或者多个由逻辑运算符连接的多个用户属性构成,从而能够说明即将获取所推送的数据的用户所具有的用户属性。该数据推送策略可以由应用服务器接收提交而得到,或者,可以由该应用服务器按照事先设置的方式,根据当前所推送的数据确定得到。

例如,目标用户属性包括“关注用户a”和“关注用户b”,如果需要将某数据推送给关注用户a或b的用户,则可以确定数据推送策略为{关注用户aor关注用户b}。

步骤103,基于所述数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密,得到密文数据。

为了减少由对称加密的数据推送过程中,所推送的数据可能被推送服务器等第三方设备获取并解密,从而感知到所推送的数据的问题,提高数据推送的安全性,确保用户和应用开发商的隐私和数据安全,可以通过基于属性的加密算法,对所推送的目标数据进行加密。

基于属性的加密算法是一种一对多的加密算法。该算法可以通过属性集合或访问策略对数据进行加密,加密后的数据可以被该属性结合或数据推送策略进行解密,当且仅当属性集合满足该访问策略,才能够对加密后的数据进行正确解密。比如,应用服务器向终端推送的目标数据通过数据推送策略:{关注用户aor关注用户b}进行加密,则对于获取到该目标数据的终端,若该终端当前的用户所具有的用户属性符合该数据推送策略,即关注了用户a或者关注了用户b,才能够对加密的目标数据进行解密。

安全平台可以作为属性权威机构,该安全平台能够向应用服务器提供基于属性的加密所需的公钥,以使应用服务器能够对目标数据进行加密。

安全平台进行初始化,输入安全参数k,输出公钥pk和主密钥msk,其中,pk=g0,g,h=gβ,f=g1/β,e(g,g)α为公开的能够被其它设备获取得到的,可以用于应用服务器对数据进行加密;msk=(β,gα)是保密的,用于后续为终端生成密钥。

其中,g0为一个素数阶为p的双线性群,g是g0的生成元,k用于确定该双线性群的大小,α和β为有限域zp中的两个随机元素,h和f为计算得到的参数。

其中,安全平台生成公钥、私钥还可以参见后续中的相关描述,此处不再一一赘述。

需要说明的是,本发明实施例中的公钥为应用服务器事先(比如在对目标数据进行加密之前)从安全平台获取并进行存储的。也可以是在每次确定需要对目标数据进行加密时从该安全平台获取的。当然,在实际应用中,应用服务器也可以通过其它方式获取该安全平台公布的公钥,比如,接收其它设备转发的该安全平台的公钥、或者接收相关技术人员提交得到该安全平台的公钥等。

目标数据为向用户推送的数据,该目标数据可以由应用服务器确定。比如,该目标数据可以为一个应用消息。

可以根据数据推送策略t、目标数据m以及公钥pk,通过基于属性的加密算法encrypt(),对m进行加密。在加密过程中,数据推送策略中的属性可以看做一个节点x,为各节点x构造多项式为qx,所有节点构成的集合为y,att(y)为节点所表示属性的属性值,则计算得加密后的目标数据,即密文数据c=hs,

其中,s为zp中的随机元素。

步骤104,通过推送服务器将所述密文数据推送给终端。

由前述可知,只有终端当前的用户才具有符合数据推送策略的用户属性,该终端才能够对该密文数据进行解密,而除应用服务器和该用户的终端之外的其它设备,比如推送服务器,难以获取到该用户所具有的用户属性,也就难以解密得到目标数据,因此,可以将该密文数据通过推送服务器推送给终端,能够减少推送服务器得到该目标数据的可能,提高了数据推送的安全性,确保了用户和应用开发商的隐私和数据安全。

推送服务器为将来自应用服务器的数据转发给终端的服务器,比如,该推送服务器可以包括apns(applepushnotificationservice,苹果推送通知服务)服务器。

应用服务器可以将密文数据发送给推送服务器,从推送服务器将密文数据提供给终端。

在本发明实施例中,由于不同的用户具有不同的用户属性,该用户属性难以被应用服务器和该用户的终端之外的其它设备获取得到,因此,可以获取至少一个用户属性作为目标用户属性,进而基于目标用户属性确定数据推送策略,并基于数据推送策略对目标数据进行加密,所得到的加密数据仅能够被具有目标用户属性的用户标识所在的终端解密,即能够使除应用服务器和该用户的终端之外的设备难以感知所推送的数据内容,从而提高了数据推送过程的安全性,确保用户以及应用开发商的隐私的数据安全。

实施例二

参照图2,示出了本发明实施例中的一种数据推送方法的步骤流程图。该方法可以应用于终端中,具体步骤包括:

步骤201,从推送服务器获取应用服务器推送的密文数据,其中,所述密文数据由所述应用服务器基于数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密得到。

为了获取到应用服务器所推送的数据,可以从推送服务器获取密文数据。且由于该加密数据由应用服务器基于数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密得到,所得到的加密数据仅能够被具有目标用户属性的用户标识所在的终端解密,即能够使除应用服务器和该用户的终端之外的设备难以感知所推送的数据内容,从而提高了数据推送过程的安全性,确保用户以及应用开发商的隐私的数据安全。

其中,应用服务器基于数据推送策略和安全平台发布的公钥,通过基于属性的加密算法对所要推送的目标数据进行加密的方式,可以参见前述中的相关描述,此处不再一一赘述。

步骤202,基于与当前用户的用户标识所关联的用户属性,从所述安全平台获取私钥。

由前述可知,密文数据是由应用服务器基于数据推送策略和安全平台发布的公钥,通过基于属性的加密算法进行加密的,且仅能够被用户属性符合数据推送策略时进行解密,因此,为了便于后续对密文数据进行解密,可以从安全平台获取私钥。

用户标识为用户的标识,该用户标识可以包括用户名、昵称、用户id(identification,身份证)和所在终端的终端id等中的至少一个

终端可以将当前用户的用户标识和所关联的用户属性提供给安全云平台,或者将该用户标识提供给安全云平台,安全平台能够对该用户所具有的用户属性进行验证,向终端提供私钥,以便于该终端能够对该目标数据进行解密。由上述可知,由于获取私钥需要对用户所具有的用户属性进行验证,推送服务器等第三方设备难以感知用户所具有的用户属性,当然也就难以获取得到能够对密文数据进行解密的私钥,进而难以获取得到目标数据,提高了推送数据的安全性,确保了用户和应用开发商的隐私和数据安全。

安全平台可以事先获取(比如从应用服务器获取)并存储多个用户的用户标识以及各用户标识分别关联的用户属性。当获取到终端提供的用户标识和用户属性时,可以根据该用户标识,从存储的用户标识和用户属性中,获取与该用户标识所关联的用户属性,若所获取的用户属性中包括该终端所提供的用户属性,则确定该验证通过,向该终端提供私钥,否则确定验证不通过,不向该终端提供私钥。当仅获取到终端提供的用户标识时,可以直接根据该用户标识,从存储的用户标识和用户属性中,获取与该用户标识所关联的用户属性,根据所获取的用户属性中向该终端提供私钥。

安全平台可以利用保留的msk,运行密钥生成算法keygen,生成私钥该私钥与计算得到该私钥的用户属性对应,比如,在本发明实施例中,具有目标用户属性的用户标识所在的终端,从安全平台获取的私钥即为与目标用户属性对应的。

其中,s为用户属性集合,j∈s,rj∈zp。

步骤203,基于所述私钥对所述密文数据进行解密,得到所述目标数据。

若终端当前的用户所具有的用户属性,符合对应用服务器对目标应用服务器进行加密时所采用的数据推送策略,则能够对该密文数据进行解密;当然,若该终端当前的用户所具有的用户属性,不符合对应用服务器对目标应用服务器进行加密时所采用的数据推送策略,则不能对该密文数据进行解密。

终端在接收到密文数据时,可以运行解密算法,输入私钥sk和密文数据ct,得目标数据

在本发明实施例中,由于不同的用户具有不同的用户属性,该用户属性难以被应用服务器和该用户的终端之外的其它设备获取得到,而终端所获取到的加密数据由应用服务器基于数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密得到,该终端需要基于当前用户的用户标识所关联的用户属性,从安全平台获取私钥对加密数据进行解密。因此当该终端当前用户所具有的用户属性符合该数据推送策略时,所获取到的密钥才能够对该加密数据进行解密,即能够使除应用服务器和该用户的终端之外的设备难以感知所推送的数据内容,从而提高了数据推送过程的安全性,确保用户以及应用开发商的隐私的数据安全。

实施例三

参照图3,示出了本发明实施例中的一种数据推送方法的步骤流程图。该方法可以应用于数据推送系统中,具体步骤包括:

步骤301,应用服务器从终端获取多个用户标识以及分别与各标识关联的用户属性。

为了便于后续能够精准的根据用户属性向各用户推送数据、确定数据推送策略对数据以对数据推送过程进行加密,提高数据推送的准确性和安全性,应用服务器可以从终端收集用户标识以及关联的用户属性。

终端可以通过接收用户提交或者对用户对应用的使用行为进行分析,从而获取得到用户属性,并将该用户属性以及关联的用户标识发送给应用服务器。相应的,应用服务器可以从接收多个终端发送的用户标识以及关联的用户属性,从而得到多个用户标识以及分别与各用户标识关联的用户属性。

终端可以向用户提供用户属性提交入口,该用户属性提交入口中包括设置用户属性的相关信息,从而能够通过该用户属性提交入口,接收用户提交的用户属性。

在本发明实施例中,可选的,为了减少由用户提交失误或者难以主观确定等情况导致的获取用户属性不准确的问题,即为了提高获取用户属性的准确性,提高交互效果和体验,终端可以记录用户事件,基于所述用户事件确定与所述当前用户的用户标识所关联的用户属性,将所述当前用户的用户标识和所关联的用户属性提交给所述应用服务器,以使所述应用服务器基于用户所具有的用户属性向终端推送数据。也即是,通过用户对应用的使用行为,确定用户所具有的用户属性。

用户事件为用户对应用进行操作产生的事件,该事件可以包括关注事件、评论事件、发帖事件、阅读事件、点赞事件、购买事件或订餐事件等中的至少一种,当然,在实际应用中,还可以包括其它事件。

终端可以对用户事件进行统计分析,包括机器学习模型、神经网络模型、分类器等对用户事件进行统计分类,确定与用户关联的用户属性,当然,也可以将记录的用户事件提供给相关技术人员,由相关技术人员根据用户事件确定与用户关联的用户属性。

以关注事件为例,当记录到用户对“用户a”点击了关注按钮时,即记录到对“用户a”的关注事件,可以确定该用户的用户属性为“关注用户a”。以评论事件为例,当用户对“话题a”的内容的评论数目大于评论阈值时,可以确定用户属性为“关注话题a”,其中,阈值可以由终端事先确定。以购买事件为例,可以确定各购买事件中所购买物品的平均价格x,并进而确定为用户属性为“购买力为x”。

另外,在本发明的另一可选实施例中,可以将记录得到的用户事件发送给应用服务器,使应用服务器基于用户事件确定与用户关联的用户属性。

在本发明实施例中,可选的,为了便于后续安全平台对终端进行验证并在验证通过后提供相应的私钥,确保数据推送的安全性,可以将多个用户标识以及分别与各用户标识关联的用户属性提供给所述安全平台,以使所述安全平台基于所述多个用户标识以及各用户标识关联的用户属性,对所述终端当前的用户所具有的用户属性进行验证,并在验证通过后向所述终端反馈私钥。

其中,安全平台对基于多个用户标识以及各用户标识关联的用户属性,对终端当前的用户所具有的用户属性进行验证的方式可以参见前述中的相关描述,此处不再一一赘述。

步骤302,所述应用服务器获取至少一个用户属性作为目标用户属性,基于所述目标用户属性确定数据推送策略。

其中,应用服务确定目标用户属性以及数据推送策略的方式,可以参见前述中的相关描述,此处不再一一赘述。

步骤303,所述应用服务器从安全平台获取公钥。

为了确保后续应用服务器能够对数据推送进行加密,确保对数据推送过程进行加密的可靠性,进而提高数据推送的安全性和可靠性,可以从安全平台获取公钥。

安全平台可以事先基于属性的加密算法,生成并公布公钥,从而使该应用服务器获取到该公钥。

其中,安全平台生成公钥的方式,可以参见前述中的相关描述,此处不再一一赘述。

另外,在实际应用中,为了提高获取公钥以及数据推送的灵活性,应用服务器还可以在执行下述步骤304之前的任意时刻,从安全平台获取公钥。

步骤304,所述应用服务器基于所述数据推送策略和所述安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密,得到密文数据。

其中,应用服务器对目标数据进行加密的方式,可以参见前述中的相关描述,此处不再一一赘述。

步骤305,所述应用服务器基于所述数据推送策略确定用户标识,将所述用户标识和所述密文数据发送给推送服务器。

由于数据推送策略能够说明即将获取所推送的数据的用户所具有的用户属性,因此,可以根据该数据推送策略,确定具有符合的用户属性的用户标识,从而便于向该用户标识所在的终端推送数据。

应用服务器可以按照数据推送策略,以及多个用户的用户属性,对多个用户标识进行筛选,从而选择得到符合该数据推送策略的用户。

例如,数据推送策略为{关注用户aand关注用户b},则可以将该数据推送策略,对用户标识进行筛选,得到同时关联有“关注用户a”和“关注用户b”的用户标识。

步骤306,所述推送服务器将所述密文数据发送给所述用户标识对应的终端。

推送服务器可以按照接收到的密文数据以及用户标识,将该密文数据发送给各用户标识所在的终端中。

步骤307,所述终端从所述推送服务器获取所述应用服务器推送的密文数据。

终端可以接收推送服务器发送的密文数据。

步骤308,所述终端将所述当前用户的用户标识和所关联的用户属性提供给所述安全平台。

为了便于后续安全平台对终端当前的用户标识所关联的用户属性进行验证,并获取到私钥,以减少密文数据被推送服务器等其它设备解密的可能,提高数据推送的安全性,终端可以将当前的用户标识以及与该用户标识所关联的用户属性提供给安全平台。

终端可以将当前的用户标识以及该用户标识所关联的用户属性发送给安全平台。

步骤309,所述安全平台对所述当前用户所具有的用户属性进行验证,并在验证通过后,确定与所述当前用户所具有的用户属性对应的私钥。

其中,安全平台对用户标识关联的用户属性进行验证并生成私钥的方式,可以参见前述中的相关描述,此处不再一一赘述。

步骤310,所述终端基于所述私钥对所述密文数据进行解密,得到所述目标数据。

其中,终端基于私钥对密文数据进行解密的方式,可以参见前述中的相关描述,此处不再一一赘述。

另外,为了进一步确保数据推送的安全性,上述任意两端之间的数据交互可以通过ssl/tls等对称加密协议进行加密。

例如,本发明所提供的数据推送系统可以如图4所示,该系统包括应用服务器01、终端02、安全平台03和推送服务器04。应用于该系统的数据推送方法时序图如图5所示,包括:

s1,用户使用产生使用行为,终端根据该使用行为,生成用户属性,与用户标识关联;

s2,终端将用户标识以及关联的用户属性反馈给应用服务器;

s3,安全平台运行初始化算法,输入安全参数k,输出公共参数pk和主密钥msk,公布pk;

s4,应用服务求从安全平台获取pk;

s5,应用服务器确定目标用户属性,根据目标用户属性确定数据推送策略t,根据t确定用户标识,基于t和pk,通过基于属性的加密算法,对目标数据m进行加密,得到加密数据ct;

s6,应用服务器将ct和用户标识发送给推送服务器;

s7,推送服务器基于用户标识,将ct发送给对应的终端;

s8,终端基于当前用户的用户属性,从安全平台获取私钥;

s9,安全平台对该终端当前用户的用户属性进行验证,通过后基于msk生成私钥sk;

s10,安全平台将sk发送给终端;

s11,终端基于sk,运行解密算法,对ct进行解密,得到目标数据m。

当然,关于上述系统中各端的详细功能还可以参见本发明各实施例中的相关描述,或者,在实际应用中,根据数据推送需要,各端还可以具有更多更少的功能,各步骤的执行顺序也可以有所改变(比如可以先步骤s3,再执行步骤s1和s2),此处不再一一赘述。

在本发明实施例中,首先,由于不同的用户具有不同的用户属性,该用户属性难以被应用服务器和该用户的终端之外的其它设备获取得到,因此,可以获取至少一个用户属性作为目标用户属性,进而基于目标用户属性确定数据推送策略,并基于数据推送策略对目标数据进行加密,所得到的加密数据仅能够被具有目标用户属性的用户标识所在的终端解密,即能够使除应用服务器和该用户的终端之外的设备难以感知所推送的数据内容,从而提高了数据推送过程的安全性,确保用户以及应用开发商的隐私的数据安全。

其次,终端能够记录用户事件,基于用户事件确定与当前用户的用户标识所关联的用户属性,将当前用户的用户标识和所关联的用户属性提交给应用服务器,从而能够通过用户对应用的使用行为,确定用户所具有的用户属性,减少了由用户提交失误或者难以主观确定等情况导致的获取用户属性不准确的问题,即提高了获取用户属性的准确性,提高了交互效果和体验。

另外,应用服务器能够从安全平台的公钥,确保了能够对数据推送过程进行加密的可靠性,进而提高了数据推送的安全性和可靠性。

另外,终端可以将所述当前用户的用户标识和所关联的用户属性提供给所述安全平台,确保了安全平台能够对用户的用户属性进行验证,并向终端提供私钥,减少密文数据被推送服务器都能其它设备解密的可能,进一步提高了数据推送的安全性。

需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。

实施例四

参照图6,示出了本发明实施例中的一种数据推送装置的结构框图。该装置可以包括:

第一获取模块601,用于获取至少一个用户属性作为目标用户属性;

确定模块602,用于基于所述目标用户属性确定数据推送策略;

加密模块603,用于基于所述数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密,得到密文数据;

推送模块604,用于通过推送服务器将所述密文数据推送给终端。

可选的,所述装置还包括:

第二获取模块,用于从所述安全平台获取公钥。

可选的,所述推送模块包括:

确定子模块,用于基于所述数据推送策略确定用户标识;

发送子模块,用于将所述用户标识和所述密文数据发送给所述推送服务器,以使所述推送服务器将所述密文数据发送给所述用户标识对应的终端。

可选的,所述装置还包括:

提供模块,用于将多个用户标识以及分别与各用户标识关联的用户属性提供给所述安全平台,以使所述安全平台基于所述多个用户标识以及各用户标识关联的用户属性,对所述终端当前的用户所具有的用户属性进行验证,并在验证通过后向所述终端反馈私钥。

在本发明实施例中,由于不同的用户具有不同的用户属性,该用户属性难以被应用服务器和该用户的终端之外的其它设备获取得到,因此,可以获取至少一个用户属性作为目标用户属性,进而基于目标用户属性确定数据推送策略,并基于数据推送策略对目标数据进行加密,所得到的加密数据仅能够被具有目标用户属性的用户标识所在的终端解密,即能够使除应用服务器和该用户的终端之外的设备难以感知所推送的数据内容,从而提高了数据推送过程的安全性,确保用户以及应用开发商的隐私的数据安全。

实施例五

参照图7,示出了本发明实施例中的一种数据推送装置的结构框图。该装置可以包括:

第一获取模块701,用于从推送服务器获取应用服务器推送的密文数据,其中,所述密文数据由所述应用服务器基于数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密得到;

第二获取模块702,用于基于与当前用户的用户标识所关联的用户属性,从所述安全平台获取私钥;

解密模块703,用于基于所述私钥对所述密文数据进行解密,得到所述目标数据。

可选的,所述第二获取模块包括:

提供子模块,用于将所述当前用户的用户标识和所关联的用户属性提供给所述安全平台,以使所述安全平台对所述当前用户所具有的用户属性进行验证,并在验证通过后,确定与所述当前用户所具有的用户属性对应的私钥;

接收子模块,用于接收所述安全平台反馈的私钥。

可选的,所述装置还包括:

记录模块,用于记录用户事件;

确定模块,用于基于所述用户事件确定与所述当前用户的用户标识所关联的用户属性;

提交模块,用于将所述当前用户的用户标识和所关联的用户属性提交给所述应用服务器,以使所述应用服务器基于用户所具有的用户属性向终端推送数据。

在本发明实施例中,由于不同的用户具有不同的用户属性,该用户属性难以被应用服务器和该用户的终端之外的其它设备获取得到,而终端所获取到的加密数据由应用服务器基于数据推送策略和安全平台公布的公钥,通过基于属性的加密算法对目标数据进行加密得到,该终端需要基于当前用户的用户标识所关联的用户属性,从安全平台获取私钥对加密数据进行解密。因此当该终端当前用户所具有的用户属性符合该数据推送策略时,所获取到的密钥才能够对该加密数据进行解密,即能够使除应用服务器和该用户的终端之外的设备难以感知所推送的数据内容,从而提高了数据推送过程的安全性,确保用户以及应用开发商的隐私的数据安全。

对于上述数据推送装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。

在此提供的数据推送方法及装置不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的数据推送方法即装置方案中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1