一种资源服务器和客户端交互会话消息的方法及装置转让专利

申请号 : CN201510034046.X

文献号 : CN104618362B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许海龙

申请人 : 广州弘承持信电子商务有限公司

摘要 :

本发明公开了一种资源服务器和客户端交互会话消息的方法及装置,在该方案中,资源服务器在对第一数字签名和第二数字签名均验证成功后,才根据计算得出的资源服务器的第一密钥向客户端传输会话消息,同理,客户端在对第三数字签名和第四数字签名均验证成功后,才根据计算得出的客户端的第二密钥向资源服务器传输会话消息,而认证管理器冒充资源服务器跟客户端交互时,要获取授权服务器的私钥,授权服务器冒充资源服务器和客户端交互时,要获取认证管理器的私钥,而认证管理器和授权服务器均无法获取对端的私钥,因此,本发明实施例中协商得到的密钥的安全性较高,进而基于协商得到的密钥传输的会话消息的安全性也较高。

权利要求 :

1.一种资源服务器和客户端交互会话消息的方法,其特征在于,包括:接收客户端发送的客户端的第一密钥及认证管理器的第一数字签名;

对所述第一数字签名进行验证,在所述第一数字签名验证成功时,根据所述客户端的第一密钥生成资源服务器的第一密钥;

接收所述客户端发送的所述客户端利用所述客户端的第二密钥加密的第二数字签名,所述第二数字签名是所述客户端对所述客户端的第一密钥和所述资源服务器的第二密钥所作的数字签名;所述客户端的第二密钥是根据接收到的所述资源服务器的第二密钥生成的;

基于所述资源服务器的第一密钥对加密的所述第二数字签名进行解密,获取所述第二数字签名时,对所述第二数字签名进行验证;

所述第二数字签名验证成功时,利用所述资源服务器的第一密钥加密与所述客户端交互的会话消息。

2.如权利要求1所述的方法,其特征在于,所述第一数字签名是所述认证管理器对所述客户端的公钥利用所述认证管理器的私钥生成的。

3.如权利要求2所述的方法,其特征在于,对所述第一数字签名进行验证之前,还包括:获取所述认证管理器的公钥、所述客户端的公钥;

对所述第一数字签名进行验证,具体包括:

根据哈希算法对所述客户端的公钥生成第一信息摘要;

使用所述认证管理器的公钥对所述第一数字签名解密,并比较将所述第一数字签名解密后得到的信息与所述第一信息摘要是否相同;

所述第一数字签名验证成功,具体包括:

所述第一数字签名解密后得到的信息与所述第一信息摘要相同。

4.如权利要求1-3任一项所述的方法,其特征在于,根据所述客户端的第一密钥生成资源服务器的第一密钥,具体包括:根据所述客户端的第一密钥生成的所述资源服务器的第一密钥符合如下规则:k1=A^b mod p

其中,所述k1为所述资源服务器的第一密钥,所述A为所述客户端的第一密钥,所述b为所述资源服务器的第三密钥,所述p为素数。

5.如权利要求1-3任一项所述的方法,其特征在于,接收所述第二数字签名之前,还包括:向授权服务器发送所述资源服务器的公钥;

接收所述授权服务器对所述资源服务器的公钥生成的第三数字签名;

将所述第三数字签名发送至所述客户端。

6.如权利要求1-3任一项所述的方法,其特征在于,接收所述第二数字签名之前,还包括:将所述资源服务器的公钥、所述资源服务器的第二密钥、所述资源服务器利用所述资源服务器的第一密钥加密的第四数字签名发送至所述客户端,所述第四数字签名是所述资源服务器对所述资源服务器的第二密钥和所述客户端的第一密钥所作的数字签名。

7.如权利要求6所述的方法,其特征在于,将所述资源服务器的公钥、所述资源服务器的第二密钥、所述第四数字签名发送至所述客户端之前,还包括:生成的所述资源服务器的第二密钥符合如下规则:B=g^b mod p

其中,所述B为所述资源服务器的第二密钥、所述g为原根、所述b为所述资源服务器的第三密钥。

8.如权利要求1-3任一项所述的方法,其特征在于,生成的所述客户端的第二密钥符合如下规则:k2=B^a mod p

其中,所述k2为所述客户端的第二密钥、所述B为所述资源服务器的第二密钥、所述a为所述客户端的第三密钥。

9.如权利要求1-3任一项所述的方法,其特征在于,对所述第二数字签名进行验证,具体包括:根据哈希算法对所述客户端的第一密钥和所述资源服务器的第二密钥生成第二信息摘要;

使用所述客户端的公钥对第二数字签名解密,并比较将所述第二数字签名解密后得到的信息与所述第二信息摘要是否相同;

所述第二数字签名验证成功,具体包括:

所述第二数字签名解密后得到的信息与所述第二信息摘要相同。

10.一种资源服务器和客户端交互会话消息的方法,其特征在于,包括:接收资源服务器发送的授权服务器的第三数字签名、所述资源服务器的第二密钥,及所述资源服务器利用所述资源服务器的第一密钥加密的第四数字签名,所述第四数字签名是所述资源服务器对所述资源服务器的第二密钥和所述客户端的第一密钥所作的数字签名;

对所述第三数字签名进行验证,在所述第三数字签名验证成功时,根据所述资源服务器的第二密钥生成所述客户端的第二密钥;

利用所述客户端的第二密钥对所述第四数字签名进行解密,获取所述第四数字签名时,对所述第四数字签名进行验证;

在所述第四数字签名验证成功时,利用所述客户端的第二密钥加密与所述资源服务器交互的会话消息。

11.如权利要求10所述的方法,其特征在于,所述第三数字签名是所述授权服务器对所述资源服务器的公钥利用所述授权服务器的私钥生成的。

12.如权利要求10或11所述的方法,其特征在于,对所述第三数字签名进行验证之前,还包括:获取所述授权服务器的公钥、所述资源服务器的公钥;

对所述第三数字签名进行验证,具体包括:

根据哈希算法对所述资源服务器的公钥生成第三信息摘要;

使用所述授权服务器的公钥对所述第三数字签名解密,并比较将所述第三数字签名解密后得到的信息与所述第三信息摘要是否相同;

所述第三数字签名验证成功,具体包括:

所述第三数字签名解密后得到的信息与所述第三信息摘要相同。

13.如权利要求10-11任一项所述的方法,其特征在于,根据所述资源服务器的第二密钥生成所述客户端的第二密钥,具体包括:根据所述资源服务器的第二密钥生成的所述客户端的第二密钥符合如下规则:k2=B^a mod p

其中,所述k2为所述客户端的第二密钥,所述B为所述资源服务器的第二密钥,所述a为所述客户端的第三密钥,所述p为素数。

14.如权利要求10-11任一项所述的方法,其特征在于,对所述第四数字签名进行验证,具体包括:根据哈希算法对所述资源服务器的第二密钥和所述客户端的第一密钥生成第四信息摘要;

使用所述资源服务器的公钥对第四数字签名解密,并比较将所述第四数字签名解密后得到的信息与所述第四信息摘要是否相同;

所述第四数字签名验证成功,具体包括:

所述第四数字签名解密后得到的信息与所述第四信息摘要相同。

15.如权利要求10-11任一项所述的方法,其特征在于,接收所述第三数字签名、所述资源服务器的第二密钥,及所述第四数字签名之前,还包括:将所述客户端的公钥发送至认证管理器;

接收所述认证管理器利用所述认证管理器的私钥对所述客户端的公钥生成的第一数字签名;

将接收到的所述第一数字签名发送至所述资源服务器。

16.如权利要求10-11任一项所述的方法,其特征在于,接收所述第三数字签名、所述资源服务器的第二密钥,及所述第四数字签名之前,还包括:生成所述客户端的第一密钥,并将所述第一密钥发送至所述资源服务器。

17.如权利要求16所述的方法,其特征在于,生成所述客户端的第一密钥,具体包括:生成的所述客户端的第一密钥符合如下规则:

A=g^a mod p

其中,所述A为所述客户端的第一密钥、所述g为原根、所述a为所述客户端的第三密钥。

18.如权利要求10-11任一项所述的方法,其特征在于,对所述第四数字签名进行验证之后,利用所述客户端的第二密钥加密与所述资源服务器交互的会话消息之前,还包括:对所述客户端的第一密钥和所述资源服务器的第二密钥生成第二数字签名;

对所述第二数字签名进行加密,并将加密后的所述第二数字签名发送至所述资源服务器。

19.一种资源服务器和客户端交互会话消息的装置,其特征在于,包括:接收单元,用于接收客户端发送的客户端的第一密钥及认证管理器的第一数字签名;

密钥生成单元,用于对所述第一数字签名进行验证,在所述第一数字签名验证成功时,根据所述客户端的第一密钥生成资源服务器的第一密钥;

所述接收单元还用于,接收所述客户端发送的所述客户端利用所述客户端的第二密钥加密的第二数字签名,所述第二数字签名是所述客户端对所述客户端的第一密钥和所述资源服务器的第二密钥所作的数字签名;所述客户端的第二密钥是根据接收到的所述资源服务器的第二密钥生成的;

验证单元,用于基于所述资源服务器的第一密钥对加密的所述第二数字签名进行解密,获取所述第二数字签名时,对所述第二数字签名进行验证;

交互单元,用于在所述第二数字签名验证成功时,利用所述资源服务器的第一密钥加密与所述客户端交互的会话消息。

20.如权利要求19所述的装置,其特征在于,所述接收单元接收到的第一数字签名是所述认证管理器对所述客户端的公钥利用所述认证管理器的私钥生成的。

21.如权利要求20所述的装置,其特征在于,还包括获取单元,用于获取所述认证管理器的公钥、所述客户端的公钥;

所述验证单元具体用于:根据哈希算法对所述客户端的公钥生成第一信息摘要;使用所述认证管理器的公钥对所述第一数字签名解密,并比较将所述第一数字签名解密后得到的信息与所述第一信息摘要是否相同;

所述验证单元对所述第一数字签名验证成功,具体为:所述第一数字签名解密后得到的信息与所述第一信息摘要相同。

22.如权利要求19-21任一项所述的装置,其特征在于,所述密钥生成单元根据所述客户端的第一密钥生成的所述资源服务器的第一密钥符合如下规则:k1=A^b mod p

其中,所述k1为所述资源服务器的第一密钥,所述A为所述客户端的第一密钥,所述b为所述资源服务器的第三密钥,所述p为素数。

23.如权利要求19-21任一项所述的装置,其特征在于,还包括第一发送单元,用于向授权服务器发送所述资源服务器的公钥;

所述接收单元还用于,接收所述授权服务器对所述资源服务器的公钥生成的第三数字签名;

所述第一发送单元还用于,将所述第三数字签名发送至所述客户端。

24.如权利要求19-21任一项所述的装置,其特征在于,还包括第二发送单元,用于将所述资源服务器的公钥、所述资源服务器利用所述资源服务器的第一密钥加密的第四数字签名发送至所述客户端,所述第四数字签名是所述资源服务器对所述资源服务器的第二密钥和所述客户端的第一密钥所作的数字签名。

25.如权利要求24所述的装置,其特征在于,所述密钥生成单元还用于:生成所述资源服务器的第二密钥,所述资源服务器的第二密钥符合如下规则:B=g^b mod p

其中,所述B为所述资源服务器的第二密钥、所述g为原根、所述b为所述资源服务器的第三密钥。

26.如权利要求19-21任一项所述的装置,其特征在于,所述密钥生成单元还用于,生成所述客户端的第二密钥,所述所述客户端的第二密钥符合如下规则:k2=B^a mod p

其中,所述k2为所述客户端的第二密钥、所述B为所述资源服务器的第二密钥、所述a为所述客户端的第三密钥。

27.如权利要求19-21任一项所述的装置,其特征在于,所述验证单元具体用于:根据哈希算法对所述客户端的第一密钥和所述资源服务器的第二密钥生成第二信息摘要;

使用所述客户端的公钥对第二数字签名解密,并比较将所述第二数字签名解密后得到的信息与所述第二信息摘要是否相同;

所述验证单元对所述第二数字签名验证成功时,具体为:所述第二数字签名解密后得到的信息与所述第二信息摘要相同。

28.一种资源服务器和客户端交互会话消息的装置,其特征在于,包括:接收单元,用于接收资源服务器发送的授权服务器的第三数字签名、所述资源服务器的第二密钥,及所述资源服务器利用所述资源服务器的第一密钥加密的第四数字签名,所述第四数字签名是所述资源服务器对所述资源服务器的第二密钥和所述客户端的第一密钥所作的数字签名;

验证单元,用于对所述第三数字签名进行验证;

密钥生成单元,用于在所述验证单元对所述第三数字签名验证成功时,根据所述资源服务器的第二密钥生成所述客户端的第二密钥;

所述验证单元还用于,利用所述客户端的第二密钥对所述第四数字签名进行解密,获取所述第四数字签名时,对所述第四数字签名进行验证;

交互单元,用于在所述验证单元对所述第四数字签名验证成功时,利用所述客户端的第二密钥加密与所述资源服务器交互的会话消息。

29.如权利要求28所述的装置,其特征在于,所述接收单元接收到的第三数字签名是所述授权服务器对所述资源服务器的公钥利用所述授权服务器的私钥生成的。

30.如权利要求28或29所述的装置,其特征在于,所述接收单元还用于:获取所述授权服务器的公钥、所述资源服务器的公钥;

所述验证单元在对所述第三数字签名进行验证时,具体为:根据哈希算法对所述资源服务器的公钥生成第三信息摘要;

使用所述授权服务器的公钥对所述第三数字签名解密,并比较将所述第三数字签名解密后得到的信息与所述第三信息摘要是否相同;

所述验证单元对所述第三数字签名验证成功时,具体为:所述验证单元将所述第三数字签名解密后得到的信息与所述第三信息摘要相同。

31.如权利要求28-29任一项所述的装置,其特征在于,所述密钥生成单元根据所述资源服务器的第二密钥生成的所述客户端的第二密钥符合如下规则:k2=B^a mod p

其中,所述k2为所述客户端的第二密钥,所述B为所述资源服务器的第二密钥,所述a为所述客户端的第三密钥,所述p为素数。

32.如权利要求28-29任一项所述的装置,其特征在于,所述验证单元对所述第四数字签名进行验证时,具体为:根据哈希算法对所述资源服务器的第二密钥和所述客户端的第一密钥生成第四信息摘要;

使用所述资源服务器的公钥对第四数字签名解密,并比较将所述第四数字签名解密后得到的信息与所述第四信息摘要是否相同;

所述验证单元对所述第四数字签名验证成功时,具体为:所述验证单元将所述第四数字签名解密后得到的信息与所述第四信息摘要相同。

33.如权利要求28-29任一项所述的装置,其特征在于,还包括发送单元,用于将所述客户端的公钥发送至认证管理器;

所述接收单元还用于,接收所述认证管理器利用所述认证管理器的私钥对所述客户端的公钥生成的第一数字签名;

所述发送单元还用于,将接收到的所述第一数字签名发送至所述资源服务器。

34.如权利要求28-29任一项所述的装置,其特征在于,所述密钥生成单元还用于:生成所述客户端的第一密钥,并将所述第一密钥发送至所述资源服务器。

35.如权利要求34所述的装置,其特征在于,所述密钥生成单元生成的所述客户端的第一密钥符合如下规则:A=g^a mod p

其中,所述A为所述客户端的第一密钥、所述g为原根、所述a为所述客户端的第三密钥。

36.如权利要求28-29任一项所述的装置,其特征在于,还包括数字签名生成单元,用于对所述客户端的第一密钥和所述资源服务器的第二密钥生成第二数字签名;

对所述第二数字签名进行加密,并将加密后的所述第二数字签名发送至所述资源服务器。

说明书 :

一种资源服务器和客户端交互会话消息的方法及装置

技术领域

[0001] 本发明涉及通信技术领域,特别涉及一种资源服务器和客户端交互会话消息的方法及装置。

背景技术

[0002] 物联网(The Internet of things)是新一代信息技术的重要组成部分,是指通过各种信息传感设备,实时采集任何需要监控、连接、互动的物体或过程等各种需要的信息,与互联网结合形成的一个巨大网络。
[0003] 通常,在物联网中,RS(Resource Server,资源服务器)上面包含一个或多个资源实体,资源实体可以是传感器,如湿度传感器、温度传感器、重力传感器、各种工业传感器等;资源实体也可以是控制器,如灯的开关、温度调节器、各种工业控制器等。
[0004] 资源服务器是受限节点,受限节点相对于非受限节点,拥有有限的中央处理单元、有限的存储空间、有限的电池容量、有限的数据传输能力、有限的用户界面等,通常指传感器、控制器、智能对象、智能设备等。受限节点中的RAM(Random Access Memory,随机存储器)的存储容量小等于50千字节,非授权节点中的ROM(Read Only Memory,只读存储器)的存储容量小于等于为250千字节。由受限节点组成的网络通常称为受限网络,这样的网络通常传输通道不稳定、带宽有限而且不可预测、网络拓扑结构也不稳定。
[0005] 授权服务器一般位于资源服务器的归属域,是非受限节点,非受限节点是指,相对于受限节点,处理能力强、存储空间大、电池容量大、传输能力强、用户界面丰富等特点的设备,非授权节点中的RAM的存储容量大于50千字节,非授权节点中的ROM的存储容量大于为250千字节。授权服务器它代表资源拥有者来协助资源服务器行使对客户端的权限认证和授权控制,授权服务器的主要功能包括下列功能的一项或者多项:1)从资源拥有者处获取资源服务器的授权信息,即:哪个客户端对哪个资源服务器在什么条件下拥有哪些访问权限;2)协助资源服务器来建立客户端与资源服务器之间的安全数据传输通道,即:协商会话密钥或提供认证信息;3)根据客户端或资源服务器的请求,针对不同的客户端和不同的授权服务器上的不同的资源信息,返回授权信息;4)存储资源拥有者设置的授权规则,并根据授权规则,对来自于客户端或资源服务器的授权请求做授权验证。
[0006] 如图1所示,在实际应用中,客户端需要访问资源服务器上的资源实体来获取相关的资源,为了提高安全性,客户端和资源服务器之间交互的消息需要进行加密,密钥协商过程如下:
[0007] 步骤1:客户端向资源服务器发送资源请求;
[0008] 在该步骤中,资源请求中未包含授权信息;
[0009] 步骤2:资源服务器返回授权服务器的地址信息给客户端;
[0010] 步骤3:客户端向认证管理器发送授权请求,该授权请求用于请求授权信息;
[0011] 步骤4:认证管理器将授权请求转发至授权服务器,请求授权信息;
[0012] 步骤5:授权服务器生成随机数,并基于第一密钥和随机数生成第二密钥:K_RS-C;
[0013] 在该步骤中,第一密钥为预先配置的与资源服务器的共享密钥;
[0014] 步骤6:授权服务器向认证管理器发送授权信息、第二密钥和随机数;
[0015] 步骤7:认证管理器向客户端转发授权信息,以及第二密钥和随机数;
[0016] 步骤8:客户端保存接收到的第二密钥和授权信息,将随机数发送给资源服务器。
[0017] 在这之后,还执行如下操作:资源服务器基于第一密钥和接收到的随机数生成第二密钥;
[0018] 客户端与资源服务器基于第二密钥来建立DTLS(Datagram Transport Layer Security,数据包传输层安全性协议)安全通道,并基于DTLS安全通道,客户端与资源服务器之间进行交互。
[0019] 从上述可以看出,现有技术中认证管理器和授权服务器都知道客户端和资源服务器之间传输会话消息的密钥,可以获取客户端和资源服务器之间交互的会话消息,因此,安全性较差。

发明内容

[0020] 本发明实施例提供一种资源服务器和客户端交互会话消息的方法及装置,用以解决现有技术中客户端和资源服务器之间交互会话消息时存在的安全性较差的缺陷。
[0021] 本发明实施例提供的具体技术方案如下:
[0022] 第一方面,提供一种资源服务器和客户端交互会话消息的方法,包括:
[0023] 接收客户端发送的客户端的第一密钥及认证管理器的第一数字签名;
[0024] 对所述第一数字签名进行验证,在所述第一数字签名验证成功时,根据所述客户端的第一密钥生成资源服务器的第一密钥;
[0025] 接收所述客户端发送的所述客户端利用所述客户端的第二密钥加密的第二数字签名,所述第二数字签名是所述客户端对所述客户端的第一密钥和所述资源服务器的第二密钥所作的数字签名;
[0026] 基于所述资源服务器的第一密钥对加密的所述第二数字签名进行解密,获取所述第二数字签名时,对所述第二数字签名进行验证;
[0027] 所述第二数字签名验证成功时,利用所述资源服务器的第一密钥加密与所述客户端交互的会话消息。
[0028] 结合第一方面,在第一种可能的实现方式中,所述第一数字签名是所述认证管理器对所述客户端的公钥利用所述认证管理器的私钥生成的。
[0029] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,对所述第一数字签名进行验证之前,还包括:
[0030] 获取所述认证管理器的公钥、所述客户端的公钥;
[0031] 对所述第一数字签名进行验证,具体包括:
[0032] 根据哈希算法对所述客户端的公钥生成第一信息摘要;
[0033] 使用所述认证管理器的公钥对所述第一数字签名解密,并比较将所述第一数字签名解密后得到的信息与所述第一信息摘要是否相同;
[0034] 所述第一数字签名验证成功,具体包括:
[0035] 所述第一数字签名解密后得到的信息与所述第一信息摘要相同。
[0036] 结合第一方面,以及第一方面的第一至第二种可能的实现方式,在第三种可能的实现方式中,根据所述客户端的第一密钥生成资源服务器的第一密钥,具体包括:
[0037] 根据所述客户端的第一密钥生成的所述资源服务器的第一密钥符合如下规则:
[0038] k1=A^b mod p
[0039] 其中,所述k1为所述资源服务器的第一密钥,所述A为所述客户端的第一密钥,所述b为所述资源服务器的第三密钥,所述p为素数。
[0040] 结合第一方面,以及第一方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,接收所述第二数字签名之前,还包括:
[0041] 向授权服务器发送所述资源服务器的公钥;
[0042] 接收所述授权服务器对所述资源服务器的公钥生成的第三数字签名;
[0043] 将所述第三数字签名发送至所述客户端。
[0044] 结合第一方面,以及第一方面的第一至第四种可能的实现方式,在第五种可能的实现方式中,接收所述第二数字签名之前,还包括:
[0045] 将所述资源服务器的公钥、所述资源服务器的第二密钥、所述资源服务器利用所述资源服务器的第一密钥加密的第四数字签名发送至所述客户端,所述第四数字签名是所述资源服务器对所述资源服务器的第二密钥和所述客户端的第一密钥所作的数字签名。
[0046] 结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,将所述资源服务器的公钥、所述资源服务器的第二密钥、所述第四数字签名发送至所述客户端之前,还包括:
[0047] 生成的所述资源服务器的第二密钥符合如下规则:
[0048] B=g^b mod p
[0049] 其中,所述B为所述资源服务器的第二密钥、所述g为原根、所述b为所述资源服务器的第三密钥。
[0050] 结合第一方面,以及第一方面的第一至第六种可能的实现方式,在第七种可能的实现方式中,生成的所述客户端的第二密钥符合如下规则:
[0051] k2=B^a mod p
[0052] 其中,所述k2为所述客户端的第二密钥、所述B为所述资源服务器的第二密钥、所述a为所述客户端的第三密钥。
[0053] 结合第一方面,以及第一方面的第一至第七种可能的实现方式,在第八种可能的实现方式中,对所述第二数字签名进行验证,具体包括:
[0054] 根据哈希算法对所述客户端的第一密钥和所述资源服务器的第二密钥生成第二信息摘要;
[0055] 使用所述客户端的公钥对第二数字签名解密,并比较将所述第二数字签名解密后得到的信息与所述第二信息摘要是否相同;
[0056] 所述第二数字签名验证成功,具体包括:
[0057] 所述第二数字签名解密后得到的信息与所述第二信息摘要相同。
[0058] 第二方面,提供一种资源服务器和客户端交互会话消息的方法,包括:
[0059] 接收资源服务器发送的授权服务器的第三数字签名、所述资源服务器的第二密钥,及所述资源服务器利用所述资源服务器的第一密钥加密的第四数字签名,所述第四数字签名是所述资源服务器对所述资源服务器的第二密钥和所述客户端的第一密钥所作的数字签名;
[0060] 对所述第三数字签名进行验证,在所述第三数字签名验证成功时,根据所述资源服务器的第二密钥生成所述客户端的第二密钥;
[0061] 利用所述客户端的第二密钥对所述第四数字签名进行解密,获取所述第四数字签名时,对所述第四数字签名进行验证;
[0062] 在所述第四数字签名验证成功时,利用所述客户端的第二密钥加密与所述资源服务器交互的会话消息。
[0063] 结合第二方面,在第一种可能的实现方式中,所述第三数字签名是所述授权服务器对所述资源服务器的公钥利用所述授权服务器的私钥生成的。
[0064] 结合第二方面,以及第二方面的第一种可能的实现方式,在第二种可能的实现方式中,对所述第三数字签名进行验证之前,还包括:
[0065] 获取所述授权服务器的公钥、所述资源服务器的公钥;
[0066] 对所述第三数字签名进行验证,具体包括:
[0067] 根据哈希算法对所述资源服务器的公钥生成第三信息摘要;
[0068] 使用所述授权服务器的公钥对所述第三数字签名解密,并比较将所述第三数字签名解密后得到的信息与所述第三信息摘要是否相同;
[0069] 所述第三数字签名验证成功,具体包括:
[0070] 所述第三数字签名解密后得到的信息与所述第三信息摘要相同。
[0071] 结合第二方面,以及第二方面的第一至第二种可能的实现方式,在第三种可能的实现方式中,根据所述资源服务器的第二密钥生成所述客户端的第二密钥,具体包括:
[0072] 根据所述资源服务器的第二密钥生成的所述客户端的第二密钥符合如下规则:
[0073] k2=B^a mod p
[0074] 其中,所述k2为所述客户端的第二密钥,所述B为所述资源服务器的第二密钥,所述a为所述客户端的第三密钥,所述p为素数。
[0075] 结合第二方面,以及第二方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,对所述第四数字签名进行验证,具体包括:
[0076] 根据哈希算法对所述资源服务器的第二密钥和所述客户端的第一密钥生成第四信息摘要;
[0077] 使用所述资源服务器的公钥对第四数字签名解密,并比较将所述第四数字签名解密后得到的信息与所述第四信息摘要是否相同;
[0078] 所述第四数字签名验证成功,具体包括:
[0079] 所述第四数字签名解密后得到的信息与所述第四信息摘要相同。
[0080] 结合第二方面,以及第二方面的第一至第四种可能的实现方式,在第五种可能的实现方式中,接收所述第三数字签名、所述资源服务器的第二密钥,及所述第四数字签名之前,还包括:
[0081] 将所述客户端的公钥发送至认证管理器;
[0082] 接收所述认证管理器利用所述认证管理器的私钥对所述客户端的公钥生成的第一数字签名;
[0083] 将接收到的所述第一数字签名发送至所述资源服务器。
[0084] 结合第二方面,以及第二方面的第一至第四种可能的实现方式,在第六种可能的实现方式中,接收所述第三数字签名、所述资源服务器的第二密钥,及所述第四数字签名之前,还包括:
[0085] 生成所述客户端的第一密钥,并将所述第一密钥发送至所述资源服务器。
[0086] 结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,生成所述客户端的第一密钥,具体包括:
[0087] 生成的所述客户端的第一密钥符合如下规则:
[0088] A=g^a mod p
[0089] 其中,所述A为所述客户端的第一密钥、所述g为原根、所述a为所述客户端的第三密钥。
[0090] 结合第二方面,以及第二方面的第一至第七种可能的实现方式,在第八种可能的实现方式中,对所述第四数字签名进行验证之后,利用所述客户端的第二密钥加密与所述资源服务器交互的会话消息之前,还包括:
[0091] 对所述客户端的第一密钥和所述资源服务器的第二密钥生成第二数字签名;
[0092] 对所述第二数字签名进行加密,并将加密后的所述第二数字签名发送至所述资源服务器。
[0093] 第三方面,提供一种资源服务器和客户端交互会话消息的装置,包括:
[0094] 接收单元,用于接收客户端发送的客户端的第一密钥及认证管理器的第一数字签名;
[0095] 密钥生成单元,用于对所述第一数字签名进行验证,在所述第一数字签名验证成功时,根据所述客户端的第一密钥生成资源服务器的第一密钥;
[0096] 所述接收单元还用于,接收所述客户端发送的所述客户端利用所述客户端的第二密钥加密的第二数字签名,所述第二数字签名是所述客户端对所述客户端的第一密钥和所述资源服务器的第二密钥所作的数字签名;
[0097] 验证单元,用于基于所述资源服务器的第一密钥对加密的所述第二数字签名进行解密,获取所述第二数字签名时,对所述第二数字签名进行验证;
[0098] 交互单元,用于在所述第二数字签名验证成功时,利用所述资源服务器的第一密钥加密与所述客户端交互的会话消息。
[0099] 结合第三方面,在第一种可能的实现方式中,所述接收单元接收到的第一数字签名是所述认证管理器对所述客户端的公钥利用所述认证管理器的私钥生成的。
[0100] 结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括获取单元,用于获取所述认证管理器的公钥、所述客户端的公钥;
[0101] 所述验证单元具体用于:根据哈希算法对所述客户端的公钥生成第一信息摘要;使用所述认证管理器的公钥对所述第一数字签名解密,并比较将所述第一数字签名解密后得到的信息与所述第一信息摘要是否相同;
[0102] 所述验证单元对所述第一数字签名验证成功,具体为:
[0103] 所述第一数字签名解密后得到的信息与所述第一信息摘要相同。
[0104] 结合第三方面,以及第三方面的第一至第二种可能的实现方式,在第三种可能的实现方式中,所述密钥生成单元根据所述客户端的第一密钥生成的所述资源服务器的第一密钥符合如下规则:
[0105] k1=A^b mod p
[0106] 其中,所述k1为所述资源服务器的第一密钥,所述A为所述客户端的第一密钥,所述b为所述资源服务器的第三密钥,所述p为素数。
[0107] 结合第三方面,以及第三方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,还包括第一发送单元,用于向授权服务器发送所述资源服务器的公钥;
[0108] 所述接收单元还用于,接收所述授权服务器对所述资源服务器的公钥生成的第三数字签名;
[0109] 所述第一发送单元还用于,将所述第三数字签名发送至所述客户端。
[0110] 结合第三方面,以及第三方面的第一至第四种可能的实现方式,在第五种可能的实现方式中,还包括第二发送单元,用于将所述资源服务器的公钥、所述资源服务器的第二密钥、所述资源服务器利用所述资源服务器的第一密钥加密的第四数字签名发送至所述客户端,所述第四数字签名是所述资源服务器对所述资源服务器的第二密钥和所述客户端的第一密钥所作的数字签名。
[0111] 结合第三方面的第五种可能的实现方式,在第六种可能的实现方式中,所述密钥生成单元还用于:
[0112] 生成所述资源服务器的第二密钥,所述资源服务器的第二密钥符合如下规则:
[0113] B=g^b mod p
[0114] 其中,所述B为所述资源服务器的第二密钥、所述g为原根、所述b为所述资源服务器的第三密钥。
[0115] 结合第三方面,以及第三方面的第一至第六种可能的实现方式,在第七种可能的实现方式中,所述密钥生成单元还用于,生成所述客户端的第二密钥,所述所述客户端的第二密钥符合如下规则:
[0116] k2=B^a mod p
[0117] 其中,所述k2为所述客户端的第二密钥、所述B为所述资源服务器的第二密钥、所述a为所述客户端的第三密钥。
[0118] 结合第三方面,以及第三方面的第一至第七种可能的实现方式,在第八种可能的实现方式中,所述验证单元具体用于:
[0119] 根据哈希算法对所述客户端的第一密钥和所述资源服务器的第二密钥生成第二信息摘要;
[0120] 使用所述客户端的公钥对第二数字签名解密,并比较将所述第二数字签名解密后得到的信息与所述第二信息摘要是否相同;
[0121] 所述验证单元对所述第二数字签名验证成功时,具体为:
[0122] 所述第二数字签名解密后得到的信息与所述第二信息摘要相同。
[0123] 第四方面,提供一种资源服务器和客户端交互会话消息的装置,包括:
[0124] 接收单元,用于接收资源服务器发送的授权服务器的第三数字签名、所述资源服务器的第二密钥,及所述资源服务器利用所述资源服务器的第一密钥加密的第四数字签名,所述第四数字签名是所述资源服务器对所述资源服务器的第二密钥和所述客户端的第一密钥所作的数字签名;
[0125] 验证单元,用于对所述第三数字签名进行验证;
[0126] 密钥生成单元,用于在所述验证单元对所述第三数字签名验证成功时,根据所述资源服务器的第二密钥生成所述客户端的第二密钥;
[0127] 所述验证单元还用于,利用所述客户端的第二密钥对所述第四数字签名进行解密,获取所述第四数字签名时,对所述第四数字签名进行验证;
[0128] 交互单元,用于在所述验证单元对所述第四数字签名验证成功时,利用所述客户端的第二密钥加密与所述资源服务器交互的会话消息。
[0129] 结合第四方面,在第一种可能的实现方式中,所述接收单元接收到的第三数字签名是所述授权服务器对所述资源服务器的公钥利用所述授权服务器的私钥生成的。
[0130] 结合第四方面,以及第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收单元还用于:
[0131] 获取所述授权服务器的公钥、所述资源服务器的公钥;
[0132] 所述验证单元在对所述第三数字签名进行验证时,具体为:
[0133] 根据哈希算法对所述资源服务器的公钥生成第三信息摘要;
[0134] 使用所述授权服务器的公钥对所述第三数字签名解密,并比较将所述第三数字签名解密后得到的信息与所述第三信息摘要是否相同;
[0135] 所述验证单元对所述第三数字签名验证成功时,具体为:
[0136] 所述验证单元将所述第三数字签名解密后得到的信息与所述第三信息摘要相同。
[0137] 结合第四方面,以及第四方面的第一至第二种可能的实现方式,在第三种可能的实现方式中,所述密钥生成单元根据所述资源服务器的第二密钥生成的所述客户端的第二密钥符合如下规则:
[0138] k2=B^a mod p
[0139] 其中,所述k2为所述客户端的第二密钥,所述B为所述资源服务器的第二密钥,所述a为所述客户端的第三密钥,所述p为素数。
[0140] 结合第四方面,以及第四方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,所述验证单元对所述第四数字签名进行验证时,具体为:
[0141] 根据哈希算法对所述资源服务器的第二密钥和所述客户端的第一密钥生成第四信息摘要;
[0142] 使用所述资源服务器的公钥对第四数字签名解密,并比较将所述第四数字签名解密后得到的信息与所述第四信息摘要是否相同;
[0143] 所述验证单元对所述第四数字签名验证成功时,具体为:
[0144] 所述验证单元将所述第四数字签名解密后得到的信息与所述第四信息摘要相同。
[0145] 结合第四方面,以及第四方面的第一至第四种可能的实现方式,在第五种可能的实现方式中,还包括发送单元,用于将所述客户端的公钥发送至认证管理器;
[0146] 所述接收单元还用于,接收所述认证管理器利用所述认证管理器的私钥对所述客户端的公钥生成的第一数字签名;
[0147] 所述发送单元还用于,将接收到的所述第一数字签名发送至所述资源服务器。
[0148] 结合第四方面,以及第四方面的第一至第四种可能的实现方式,在第六种可能的实现方式中,所述密钥生成单元还用于:
[0149] 生成所述客户端的第一密钥,并将所述第一密钥发送至所述资源服务器。
[0150] 结合第四方面的第六种可能的实现方式,在第七种可能的实现方式中,所述密钥生成单元生成的所述客户端的第一密钥符合如下规则:
[0151] A=g^a mod p
[0152] 其中,所述A为所述客户端的第一密钥、所述g为原根、所述a为所述客户端的第三密钥。
[0153] 结合第四方面,以及第四方面的第一至第七种可能的实现方式,在第八种可能的实现方式中,还包括数字签名生成单元,用于对所述客户端的第一密钥和所述资源服务器的第二密钥生成第二数字签名;
[0154] 对所述第二数字签名进行加密,并将加密后的所述第二数字签名发送至所述资源服务器。本发明有益效果如下:
[0155] 本发明实施例中,资源服务器在对第一数字签名和第二数字签名均验证成功后,才根据计算得出的资源服务器的第一密钥向客户端传输会话消息,同理,客户端在对第三数字签名和第四数字签名均验证成功后,才根据计算得出的客户端的第二密钥向资源服务器传输会话消息,而认证管理器冒充资源服务器跟客户端交互时,要获取授权服务器的私钥,授权服务器冒充资源服务器和客户端交互时,要获取认证管理器的私钥,而认证管理器和授权服务器均无法获取对端的私钥,因此,本发明实施例中协商得到的密钥的安全性较高,进而基于协商得到的密钥传输的会话消息的安全性也较高。

附图说明

[0156] 图1为现有技术中协商密钥的流程图;
[0157] 图2为本发明实施例中资源服务器和客户端交互会话消息的一种流程图;
[0158] 图3为本发明实施例中资源服务器和客户端交互会话消息的另一种流程图;
[0159] 图4为本发明实施例中资源服务器和客户端交互会话消息的实施例;
[0160] 图5A为本发明实施例中资源服务器和客户端交互会话消息的装置的一种结构示意图;
[0161] 图5B为本发明实施例中资源服务器和客户端交互会话消息的装置的另一种结构示意图;
[0162] 图6A为本发明实施例中资源服务器和客户端交互会话消息的装置的一种结构示意图;
[0163] 图6B为本发明实施例中资源服务器和客户端交互会话消息的装置的另一种结构示意图。

具体实施方式

[0164] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0165] 另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字母“/”,一般表示前后关联对象是一种“或”的关系。
[0166] 下面结合说明书附图对本发明优选的实施方式进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0167] 认证管理器位于客户端的归属域,是非受限节点,它代表客户端拥有者来协助客户端行使认证和授权功能。认证管理器是逻辑实体,可以与客户端合设或与授权服务器合设。如果客户端是非受限节点,认证管理器可以合设在客户端内。如果客户端是受限节点,认证管理器可以单独存在,或者位于授权服务器内。认证管理器的主要功能包括下列功能的一项或者多项:1)协助客户端来建立客户端与资源服务器之间、客户端与授权服务器之间的安全数据传输通道,即:协商会话密钥或提供认证信息;2)代表客户端,向授权服务器发送授权请求,以及接收授权响应。
[0168] 在非对称算法(Diffie-Hellman)中需要两个密钥:公钥(Public Key)和私钥(Private Key)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用与该公钥对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用与该公钥对应的公开密钥才能解密,因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
[0169] 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公钥向乙方公开,自己保留的密钥作为私钥;得到该公钥的乙方使用该公钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的私钥对加密后的信息进行解密。另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验证。
[0170] 下面结合附图对本发明优选的实施方式进行详细说明。
[0171] 参阅图2所示,本发明实施例中,资源服务器和客户端交互会话消息的一种流程如下,该流程应用于物联网场景下:
[0172] 步骤200:资源服务器接收客户端发送的客户端的第一密钥及认证管理器的第一数字签名;
[0173] 步骤210:资源服务器对第一数字签名进行验证,在第一数字签名验证成功时,根据客户端的第一密钥生成资源服务器的第一密钥;
[0174] 步骤220:资源服务器接收客户端发送的客户端利用客户端的第二密钥加密的第二数字签名,第二数字签名是客户端对客户端的第一密钥和资源服务器的第二密钥所作的数字签名;
[0175] 步骤230:资源服务器基于资源服务器的第一密钥对加密的第二数字签名进行解密,获取第二数字签名时,对第二数字签名进行验证;
[0176] 步骤240:资源服务器在第二数字签名验证成功时,利用资源服务器的第一密钥加密与客户端交互的会话消息。
[0177] 本发明实施例中,可选的,第一数字签名是认证管理器对客户端的公钥利用认证管理器的私钥生成的。
[0178] 本发明实施例中,资源服务器接收客户端发送的客户端的第一密钥及认证管理器的第一数字签名时,可选的,可以采用如下方式:
[0179] 可以基于CoAP(Constrained Application Protocol,受限应用协议)来发送第一数字签名,具体在实现时,第一数字签名可以承载在CoAP消息中扩展的Option选项,或者是Payload消息体中。
[0180] 本发明实施例中,对第一数字签名进行验证之前,还包括:
[0181] 获取认证管理器的公钥、客户端的公钥;
[0182] 对第一数字签名进行验证,具体包括:
[0183] 根据哈希算法对客户端的公钥生成第一信息摘要;
[0184] 使用认证管理器的公钥对第一数字签名解密,并比较将第一数字签名解密后得到的信息与第一信息摘要是否相同;
[0185] 第一数字签名验证成功,具体包括:
[0186] 第一数字签名解密后得到的信息与第一信息摘要相同。
[0187] 本发明实施例中,资源服务器根据客户端的第一密钥生成资源服务器的第一密钥时,可选的,可以采用如下方式:
[0188] 根据客户端的第一密钥生成的资源服务器的第一密钥符合如下规则:
[0189] k1=A^b mod p   (公式一)
[0190] 其中,k1为资源服务器的第一密钥,A为客户端的第一密钥,b为资源服务器的第三密钥,p为素数。
[0191] 其中,A^b mod p的算法是具体是,A的b次方,再对素数p取模(即对p取余),该运算规则是现有技术,在此不再进行一一详述。
[0192] 本发明实施例中,资源服务器为了提高和客户端协商得到的加密交互会话消息时使用的密钥的安全性,还要接收到客户端发送的数字签名,而客户端向资源服务器发送数字签名前,还要接收到资源服务器发送的授权服务器的数字签名,并对授权服务器的数字签名验证成功后,才向资源服务器发送数字签名,因此,本发明实施例中,接收第二数字签名之前,还包括:
[0193] 向授权服务器发送资源服务器的公钥;
[0194] 接收授权服务器对资源服务器的公钥生成的第三数字签名;
[0195] 将第三数字签名发送至客户端。
[0196] 进一步的,还包括如下操作
[0197] 将资源服务器的公钥、资源服务器的第二密钥、资源服务器利用资源服务器的第一密钥加密的第四数字签名发送至客户端,第四数字签名是资源服务器对资源服务器的第二密钥和客户端的第一密钥所作的数字签名。
[0198] 这样,客户端在接收到第三数字签名后,进行验证,如果验证成功,根据接收到的资源服务器的第二密钥计算客户端的第二密钥,利用计算得到的客户端的第二密钥对加密的第四数字签名进行解密,对解密后的第三数字签名验证成功后,将利用客户端的第二密钥加密的第二数字签名发送至资源服务器,资源服务器利用资源服务器的第一密钥对加密的第二数字签名解密,并验证成功后,资源服务器和客户端密钥协商成功,并利用协商成功的密钥交互会话消息即可。
[0199] 本发明实施例中,将资源服务器的公钥、资源服务器的第二密钥、第四数字签名发送至客户端之前,还包括如下操作:
[0200] 生成的资源服务器的第二密钥符合如下规则:
[0201] B=g^b mod p   (公式二)
[0202] 其中,B为资源服务器的第二密钥、g为原根、b为资源服务器的第三密钥。
[0203] 其中,生成的客户端的第二密钥符合如下规则:
[0204] k2=B^a mod p   (公式三)
[0205] 其中,k2为客户端的第二密钥、B为资源服务器的第二密钥、a为客户端的第三密钥。
[0206] 本发明实施例中,对第二数字签名进行验证时,可选的,可以采用如下方式:
[0207] 根据哈希算法对客户端的第一密钥和资源服务器的第二密钥生成第二信息摘要;
[0208] 使用客户端的公钥对第二数字签名解密,并比较将第二数字签名解密后得到的信息与第二信息摘要是否相同;
[0209] 第二数字签名验证成功时,可选的,可以采用如下方式:
[0210] 第二数字签名解密后得到的信息与第二信息摘要相同。
[0211] 本发明实施例中,资源服务器和客户端之间传输信息,资源服务器和授权服务器之间传输信息时,可选的,可以采用CoAP消息来传输,具体信息承载在CoAP消息中的扩展的Option选项,或者Payload消息体中。
[0212] 本发明实施例中,在本实施例中,引入了四个数字签名,其作用分别是:
[0213] 认证管理器对客户端公钥的数字签名,即第一数字签名,主要是被资源服务器用来验证接收到的客户端的公钥是否真的来自于客户端;
[0214] 第二数字签名,主要是被资源服务器用来验证客户端的第一密钥是否真的来自于客户端;
[0215] 授权服务器对资源服务器公钥的数字签名,即第三数字签名,主要是被客户端用来验证接收到的资源服务器公钥是否真的来自于资源服务器;
[0216] 第四数字签名,主要是被客户端用来验证资源服务器的第二密钥是否真的来自于资源服务器。
[0217] 本发明实施例中,授权服务器要冒充资源服务器跟客户端进行交互时,要伪造认证管理器的第一数字签名,而第一数字签名是根据认证管理器的私钥构造的,认证管理器是客户端可信任的实体,授权服务器是资源服务器可信任的实体,这两个实体之间是不会互相串通的,因此,授权服务器时无法冒充资源服务器跟客户端进行交互,提高了资源服务器和客户端之间交互的会话消息的安全性。
[0218] 参阅图3所示,本发明实施例中,资源服务器和客户端交互会话消息的一种流程如下,该流程应用于物联网场景下:
[0219] 步骤300:客户端接收资源服务器发送的授权服务器的第三数字签名、资源服务器的第二密钥,及资源服务器利用资源服务器的第一密钥加密的第四数字签名,第四数字签名是资源服务器对资源服务器的第二密钥和客户端的第一密钥所作的数字签名;
[0220] 步骤310:客户端对第三数字签名进行验证,在第三数字签名验证成功时,根据资源服务器的第二密钥生成客户端的第二密钥;
[0221] 步骤320:客户端利用客户端的第二密钥对第四数字签名进行解密,获取第四数字签名时,对第四数字签名进行验证;
[0222] 步骤330:客户端在第四数字签名验证成功时,利用客户端的第二密钥加密与资源服务器交互的会话消息。
[0223] 本发明是实施例中,可选的,第三数字签名是授权服务器对资源服务器的公钥利用授权服务器的私钥生成的。
[0224] 本发明实施例中,对第三数字签名进行验证之前,还包括如下操作:
[0225] 获取授权服务器的公钥、资源服务器的公钥;
[0226] 对第三数字签名进行验证时,可选的,可以采用如下操作:
[0227] 根据哈希算法对资源服务器的公钥生成第三信息摘要;
[0228] 使用授权服务器的公钥对第三数字签名解密,并比较将第三数字签名解密后得到的信息与第三信息摘要是否相同;
[0229] 此时,第三数字签名验证成功时,可选的,可以采用如下方式:
[0230] 第三数字签名解密后得到的信息与第三信息摘要相同。
[0231] 本发明实施例中,根据资源服务器的第二密钥生成客户端的第二密钥时,可选的,可以采用如下方式:
[0232] 根据资源服务器的第二密钥生成的客户端的第二密钥符合如下规则:
[0233] k2=B^a mod p   (公式三)
[0234] 其中,k2为客户端的第二密钥。
[0235] 本发明实施例中,对第四数字签名进行验证时,可选的,可以采用如下方式:
[0236] 根据哈希算法对资源服务器的第二密钥和客户端的第一密钥生成第四信息摘要;
[0237] 使用资源服务器的公钥对第四数字签名解密,并比较将第四数字签名解密后得到的信息与第四信息摘要是否相同;
[0238] 本发明实施例中,第四数字签名验证成功时,可选的,可以采用如下方式:
[0239] 第四数字签名解密后得到的信息与第四信息摘要相同。
[0240] 本发明实施例中,为了使客户端验证客户端的传输的信息是真正来自于客户端,接收第三数字签名、资源服务器的第二密钥,及第四数字签名之前,还包括如下操作:
[0241] 将客户端的公钥发送至认证管理器;
[0242] 接收认证管理器利用认证管理器的私钥对客户端的公钥生成的第一数字签名;
[0243] 将接收到的第一数字签名发送至资源服务器。
[0244] 本发明实施例中,客户端和认证管理器之间传输客户端的公钥,及第一数字签名时,可选的,可以基于HTTP(Hyper-Text Transport Protocol,超文本传输协议)来传输,也可以基于CoAP来传输。其中,基于HTTP协议传输的方案适用于客户端能力不受限的情况,基于CoAP协议传输的方案适用于客户端能力受限的情况。
[0245] 本发明实施例中,客户端接收到的第四数字签名是利用资源服务器的第一密钥加密的,而资源服务器的第一密钥是根据客户端的第一密钥生成的,因此,客户端接收第三数字签名、资源服务器的第二密钥,及第四数字签名之前,还包括如下操作:
[0246] 生成客户端的第一密钥,并将第一密钥发送至资源服务器。
[0247] 本发明实施例中,生成客户端的第一密钥,具体包括:
[0248] 生成的客户端的第一密钥符合如下规则:
[0249] A=g^a mod p   (公式四)
[0250] 其中,A为客户端的第一密钥、a为客户端的第三密钥。
[0251] 本发明实施例中,为了确定对客户端的第一密钥和资源服务器的第二密钥所作的第二数字签名是来自于客户端,那么,对第四数字签名进行验证之后,利用客户端的第二密钥加密与资源服务器交互的会话消息之前,还包括如下操作:
[0252] 对客户端的第一密钥和资源服务器的第二密钥(B)生成第二数字签名;
[0253] 对第二数字签名进行加密,并将加密后的第二数字签名发送至资源服务器。
[0254] 本发明实施例中,认证管理器要冒充资源服务器跟客户端交互时,要伪造授权服务器的第三数字签名,而第三数字签名是根据授权服务器的私钥构造的,认证管理器是客户端可信任的实体,授权服务器是资源服务器可信任的实体,这两个实体之间是不会互相串通的,因此,认证管理器时无法冒充资源服务器跟客户端进行交互,提高了资源服务器和客户端之间交互会话消息的安全性。
[0255] 如图4所示,为了更好地理解本发明实施例,以下给出具体应用场景,针对资源服务器和授权服务器交互会话消息的过程,做出进一步详细描述:
[0256] 步骤400:客户端向认证管理器发送客户端的公钥;
[0257] 步骤410:认证管理器利用认证管理器的私钥对客户端的公钥作数字签名,生成第一数字签名,将第一数字签名发送至客户端;
[0258] 步骤420:客户端产生客户端的第三密钥,并根据第三密钥生成客户端的第一密钥;
[0259] 步骤430:客户端将客户端的公钥、第一数字签名,及客户端的第一密钥发送至资源服务器;
[0260] 步骤440:资源服务器向授权服务器发送资源服务器的公钥;
[0261] 步骤450:授权服务器利用授权服务器的私钥对资源服务器的公钥作数字签名,生成第三数字签名,将第三数字签名发送至资源服务器;
[0262] 步骤460:资源服务器产生资源服务器的第三密钥,并根据第三密钥生成资源服务器的第二密钥,根据客户端的公钥对第一数字签名进行认证,并根据资源客户端的第一密钥生成资源服务器的第一密钥;
[0263] 步骤470:资源服务器将资源服务器的公钥、授权服务器的第三数字签名,及利用资源服务器的第一密钥加密的资源服务器的第四数字签名发送至客户端;
[0264] 步骤480:客户端根据资源服务器的公钥对第三数字签名进行验证,并在验证成功后,根据资源服务器的第二密钥计算客户端的第二密钥,并利用客户端的第二密钥对第四数字签名解密,并对解密后的第四数字签名进行验证;
[0265] 步骤490:客户端对第四数字签名验证成功后,利用客户端的第二密钥加密的第二数字签名,并将第二数字签名发送至资源服务器;
[0266] 步骤500:资源服务器对第二数字签名解密并验证,验证成功后,客户端基于客户的第二密钥、资源服务器基于资源服务器的第一密钥作为会话消息的传输密钥。
[0267] 其中,第二数字签名是客户端对客户端的第一密钥和资源服务器的第二密钥所作的数字签名,
[0268] 上述讲述的是执行步骤400-410后立即执行步骤420,在实际应用中,在执行步骤400-410后不需要立即执行步骤420,步骤400-410作为预处理过程,一次生成的第一数字签名,可用于客户端和资源服务器多次协商密钥的过程,同理,步骤450-460也不是必须的过程,可以作为预处理过程,一次生成的第三数字签名,可以用于客户端和资源服务器多次协商密钥的过程。
[0269] 基于上述相应方法的技术方案,参阅图5A所示,本发明实施例提供一种资源服务器和客户端交互会话消息的装置,该装置包括接收单元50、密钥生成单元51、验证单元52,及交互单元53,其中:
[0270] 接收单元50,用于接收客户端发送的客户端的第一密钥及认证管理器的第一数字签名;
[0271] 密钥生成单元51,用于对第一数字签名进行验证,在第一数字签名验证成功时,根据客户端的第一密钥生成资源服务器的第一密钥;
[0272] 接收单元50还用于,接收客户端发送的客户端利用客户端的第二密钥加密的第二数字签名,第二数字签名是客户端对客户端的第一密钥和资源服务器的第二密钥所作的数字签名;
[0273] 验证单元52,用于基于资源服务器的第一密钥对加密的第二数字签名进行解密,获取第二数字签名时,对第二数字签名进行验证;
[0274] 交互单元53,用于在第二数字签名验证成功时,利用资源服务器的第一密钥加密与客户端交互的会话消息。
[0275] 本发明实施例中,可选的,接收单元50接收到的第一数字签名是认证管理器对客户端的公钥利用认证管理器的私钥生成的。
[0276] 本发明实施例中,进一步的,还包括获取单元,用于获取认证管理器的公钥、客户端的公钥;
[0277] 验证单元52具体用于:根据哈希算法对客户端的公钥生成第一信息摘要;使用认证管理器的公钥对第一数字签名解密,并比较将第一数字签名解密后得到的信息与第一信息摘要是否相同;
[0278] 验证单元52对第一数字签名验证成功,具体为:
[0279] 第一数字签名解密后得到的信息与第一信息摘要相同。
[0280] 本发明实施例中,可选的,密钥生成单元51根据客户端的第一密钥生成的资源服务器的第一密钥符合如下规则:
[0281] k1=A^b mod p
[0282] 其中,k1为资源服务器的第一密钥,A为客户端的第一密钥,b为资源服务器的第三密钥,p为素数。
[0283] 本发明实施例中,进一步的,还包括第一发送单元,用于向授权服务器发送资源服务器的公钥;
[0284] 接收单元50还用于,接收授权服务器对资源服务器的公钥生成的第三数字签名;
[0285] 第一发送单元还用于,将第三数字签名发送至客户端。
[0286] 本发明实施例中,进一步的,还包括第二发送单元,用于将资源服务器的公钥、资源服务器的第二密钥、资源服务器利用资源服务器的第一密钥加密的第四数字签名发送至客户端,第四数字签名是资源服务器对资源服务器的第二密钥和客户端的第一密钥所作的数字签名。
[0287] 本发明实施例中,进一步的,密钥生成单元51还用于:
[0288] 生成资源服务器的第二密钥,资源服务器的第二密钥符合如下规则:
[0289] B=g^b mod p
[0290] 其中,B为资源服务器的第二密钥、g为原根、b为资源服务器的第三密钥。
[0291] 本发明实施例中,进一步的,密钥生成单元51还用于,生成客户端的第二密钥,客户端的第二密钥符合如下规则:
[0292] k2=B^a mod p
[0293] 其中,k2为客户端的第二密钥、B为资源服务器的第二密钥、a为客户端的第三密钥。
[0294] 本发明实施例中,可选的,验证单元52具体用于:
[0295] 根据哈希算法对客户端的第一密钥和资源服务器的第二密钥生成第二信息摘要;
[0296] 使用客户端的公钥对第二数字签名解密,并比较将第二数字签名解密后得到的信息与第二信息摘要是否相同;
[0297] 验证单元52对第二数字签名验证成功时,具体为:
[0298] 第二数字签名解密后得到的信息与第二信息摘要相同。
[0299] 如图5B所示,为本发明实施例提供的资源服务器和客户端交互会话消息的装置的另一种结构示意图,包括接收器500、处理器510及发射器520,其中:
[0300] 接收器500,用于接收客户端发送的客户端的第一密钥及认证管理器的第一数字签名;
[0301] 处理器510,用于对第一数字签名进行验证,在第一数字签名验证成功时,根据客户端的第一密钥生成资源服务器的第一密钥;
[0302] 接收器500还用于,接收客户端发送的客户端利用客户端的第二密钥加密的第二数字签名,第二数字签名是客户端对客户端的第一密钥和资源服务器的第二密钥所作的数字签名;
[0303] 处理器510还用于,基于资源服务器的第一密钥对加密的第二数字签名进行解密,获取第二数字签名时,对第二数字签名进行验证;在第二数字签名验证成功时,利用资源服务器的第一密钥加密与客户端交互的会话消息。
[0304] 可选的,接收器500接收到的第一数字签名是认证管理器对客户端的公钥利用认证管理器的私钥生成的。
[0305] 处理器510还用于,获取认证管理器的公钥、客户端的公钥;
[0306] 处理器510对第一数字签名进行验证,具体为:
[0307] 根据哈希算法对客户端的公钥生成第一信息摘要;
[0308] 使用认证管理器的公钥对第一数字签名解密,并比较将第一数字签名解密后得到的信息与第一信息摘要是否相同;
[0309] 处理器510对第一数字签名验证成功,具体为:
[0310] 处理器510对第一数字签名解密后得到的信息与第一信息摘要相同。
[0311] 处理器510根据客户端的第一密钥生成资源服务器的第一密钥,具体为:
[0312] 根据客户端的第一密钥生成的资源服务器的第一密钥符合如下规则:
[0313] k1=A^b mod p
[0314] 其中,k1为资源服务器的第一密钥,A为客户端的第一密钥,b为资源服务器的第三密钥,p为素数。
[0315] 还包括发射器520,用于向授权服务器发送资源服务器的公钥;
[0316] 接收器510接收授权服务器对资源服务器的公钥生成的第三数字签名;
[0317] 将第三数字签名发送至客户端。
[0318] 发射器520还用于,将资源服务器的公钥、资源服务器的第二密钥、资源服务器利用资源服务器的第一密钥加密的第四数字签名发送至客户端,第四数字签名是资源服务器对资源服务器的第二密钥和客户端的第一密钥所作的数字签名。
[0319] 可选的,处理器510生成的资源服务器的第二密钥符合如下规则:
[0320] B=g^b mod p
[0321] 其中,B为资源服务器的第二密钥、g为原根、b为资源服务器的第三密钥。
[0322] 可选的,处理器510生成的客户端的第二密钥符合如下规则:
[0323] k2=B^a mod p
[0324] 其中,k2为客户端的第二密钥、B为资源服务器的第二密钥、a为客户端的第三密钥。
[0325] 可选的,处理器510具体用于,根据哈希算法对客户端的第一密钥和资源服务器的第二密钥生成第二信息摘要;
[0326] 使用客户端的公钥对第二数字签名解密,并比较将第二数字签名解密后得到的信息与第二信息摘要是否相同;
[0327] 处理器510对第二数字签名验证成功,具体为:
[0328] 处理器510对第二数字签名解密后得到的信息与第二信息摘要相同。
[0329] 基于上述相应方法的技术方案,参阅图6A所示,本发明实施例提供一种资源服务器和客户端交互会话消息的装置,该装置包括接收单元60、验证单元61、密钥生成单元62,及交互单元63,其中:
[0330] 接收单元60,用于接收资源服务器发送的授权服务器的第三数字签名、资源服务器的第二密钥,及资源服务器利用资源服务器的第一密钥加密的第四数字签名,第四数字签名是资源服务器对资源服务器的第二密钥和客户端的第一密钥所作的数字签名;
[0331] 验证单元61,用于对第三数字签名进行验证;
[0332] 密钥生成单元62,用于在验证单元61对第三数字签名验证成功时,根据资源服务器的第二密钥生成客户端的第二密钥;
[0333] 验证单元61还用于,利用客户端的第二密钥对第四数字签名进行解密,获取第四数字签名时,对第四数字签名进行验证;
[0334] 交互单元63,用于在验证单元61对第四数字签名验证成功时,利用客户端的第二密钥加密与资源服务器交互的会话消息。
[0335] 可选的,接收单元60接收到的第三数字签名是授权服务器对资源服务器的公钥利用授权服务器的私钥生成的。
[0336] 进一步的,接收单元60还用于:
[0337] 获取授权服务器的公钥、资源服务器的公钥;
[0338] 验证单元61在对第三数字签名进行验证时,具体为:
[0339] 根据哈希算法对资源服务器的公钥生成第三信息摘要;
[0340] 使用授权服务器的公钥对第三数字签名解密,并比较将第三数字签名解密后得到的信息与第三信息摘要是否相同;
[0341] 验证单元61对第三数字签名验证成功时,具体为:
[0342] 验证单元61将第三数字签名解密后得到的信息与第三信息摘要相同。
[0343] 可选的,密钥生成单元62根据资源服务器的第二密钥生成的客户端的第二密钥符合如下规则:
[0344] k2=B^a mod p
[0345] 其中,k2为客户端的第二密钥,B为资源服务器的第二密钥,a为客户端的第三密钥,p为素数。
[0346] 可选的,验证单元61对第四数字签名进行验证时,具体为:
[0347] 根据哈希算法对资源服务器的第二密钥和客户端的第一密钥生成第四信息摘要;
[0348] 使用资源服务器的公钥对第四数字签名解密,并比较将第四数字签名解密后得到的信息与第四信息摘要是否相同;
[0349] 验证单元61对第四数字签名验证成功时,具体为:
[0350] 验证单元61将第四数字签名解密后得到的信息与第四信息摘要相同。
[0351] 进一步的,还包括发送单元,用于将客户端的公钥发送至认证管理器;
[0352] 接收单元60还用于,接收认证管理器利用认证管理器的私钥对客户端的公钥生成的第一数字签名;
[0353] 发送单元还用于,将接收到的第一数字签名发送至资源服务器。
[0354] 进一步的,密钥生成单元62还用于:
[0355] 生成客户端的第一密钥,并将第一密钥发送至资源服务器。
[0356] 可选的,密钥生成单元62生成的客户端的第一密钥符合如下规则:
[0357] A=g^a mod p
[0358] 其中,A为客户端的第一密钥、g为原根、a为客户端的第三密钥。
[0359] 进一步的,还包括数字签名生成单元,用于对客户端的第一密钥和资源服务器的第二密钥生成第二数字签名;
[0360] 对第二数字签名进行加密,并将加密后的第二数字签名发送至资源服务器。
[0361] 如图6B所示,为本发明实施例提供的资源服务器和客户端交互会话消息的装置的另一种结构示意图,包括接收器600、处理器610及发射器620,其中:
[0362] 接收器600,用于接收资源服务器发送的授权服务器的第三数字签名、资源服务器的第二密钥,及资源服务器利用资源服务器的第一密钥加密的第四数字签名,第四数字签名是资源服务器对资源服务器的第二密钥和客户端的第一密钥所作的数字签名;
[0363] 处理器610,用于对第三数字签名进行验证,在第三数字签名验证成功时,根据资源服务器的第二密钥生成客户端的第二密钥;利用客户端的第二密钥对第四数字签名进行解密,获取第四数字签名时,对第四数字签名进行验证;在第四数字签名验证成功时,利用客户端的第二密钥加密与资源服务器交互的会话消息。
[0364] 可选的,接收器600接收到的第三数字签名是授权服务器对资源服务器的公钥利用授权服务器的私钥生成的。
[0365] 进一步的,处理器610还用于,获取授权服务器的公钥、资源服务器的公钥;
[0366] 处理器610对第三数字签名进行验证,具体为:
[0367] 根据哈希算法对资源服务器的公钥生成第三信息摘要;
[0368] 使用授权服务器的公钥对第三数字签名解密,并比较将第三数字签名解密后得到的信息与第三信息摘要是否相同;
[0369] 处理器610对第三数字签名验证成功,具体为:
[0370] 第三数字签名解密后得到的信息与第三信息摘要相同。
[0371] 处理器610根据资源服务器的第二密钥生成客户端的第二密钥,具体为:
[0372] 根据资源服务器的第二密钥生成的客户端的第二密钥符合如下规则:
[0373] k2=B^a mod p
[0374] 其中,k2为客户端的第二密钥,B为资源服务器的第二密钥,a为客户端的第三密钥,p为素数。
[0375] 可选的,处理器610对第四数字签名进行验证,具体为:
[0376] 根据哈希算法对资源服务器的第二密钥和客户端的第一密钥生成第四信息摘要;
[0377] 使用资源服务器的公钥对第四数字签名解密,并比较将第四数字签名解密后得到的信息与第四信息摘要是否相同;
[0378] 处理器610对第四数字签名验证成功,具体为:
[0379] 第四数字签名解密后得到的信息与第四信息摘要相同。
[0380] 还包括发射器620,用于将客户端的公钥发送至认证管理器;
[0381] 接收器600还用于,接收认证管理器利用认证管理器的私钥对客户端的公钥生成的第一数字签名;
[0382] 发射器620还用于,将接收到的第一数字签名发送至资源服务器。
[0383] 处理器610还用于,生成客户端的第一密钥,并将第一密钥发送至资源服务器。
[0384] 可选的,处理器610生成的客户端的第一密钥符合如下规则:
[0385] A=g^a mod p
[0386] 其中,A为客户端的第一密钥、g为原根、a为客户端的第三密钥。
[0387] 可选的,处理器610对客户端的第一密钥和资源服务器的第二密钥生成第二数字签名;对第二数字签名进行加密,并将加密后的第二数字签名发送至资源服务器。
[0388] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
[0389] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
[0390] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
[0391] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0392] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。