一种会话密钥的生成方法及装置转让专利

申请号 : CN201610498965.7

文献号 : CN106685907B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何应刚周远

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种会话密钥的生成方法及装置,其中该方法包括:接收客户端发送的会话密钥的请求指示;根据所述请求指示,获取所述客户端对应的标识信息;通过散列函数,对标识信息进行计算,生成密钥散列值;获取预设的会话密钥总数量,并利用该密钥散列值对会话密钥总数量进行取模运算,得到运算结果;基于该运算结果,生成与客户端相应的会话密钥。本发明实施例在接收到会话密钥的请求指示时,实时根据客户端对应的标识信息进行一次散列计算来生成会话密钥,不需要依赖服务器对客户端与会话密钥对应关系的存储,从而保证鉴权流程正常进行,降低对服务器的稳定性要求,以及减少存储空间消耗。

权利要求 :

1.一种会话密钥的生成方法,其特征在于,包括:接收客户端发送的会话密钥的请求指示;

根据所述请求指示,获取所述客户端对应的标识信息;

通过散列函数,对所述标识信息进行计算,生成密钥散列值;

获取预设的会话密钥总数量,并利用所述密钥散列值对所述会话密钥总数量进行取模运算,得到运算结果;

基于所述运算结果,查找预设存储的会话密钥集合,确定出所述客户端相应的会话密钥。

2.根据权利要求1所述的会话密钥的生成方法,其特征在于,所述获取所述客户端对应的标识信息包括:获取所述客户端对应的网络协议地址以及全局唯一标识符;

所述通过散列函数,对所述标识信息进行计算,生成密钥散列值包括:通过散列函数,对所述网络协议地址以及全局唯一标识符进行计算,生成密钥散列值。

3.根据权利要求1或2所述的会话密钥的生成方法,其特征在于,所述接收客户端发送的会话密钥的请求指示之前,还包括:接收客户端发送的鉴权请求;

所述接收客户端发送的会话密钥的请求指示,包括:当根据所述鉴权请求确定公钥加密算法私钥解密成功时,接收所述客户端发送的会话密钥的请求指示。

4.根据权利要求3所述的会话密钥的生成方法,其特征在于,所述基于所述运算结果,查找预设存储的会话密钥集合,确定出所述客户端相应的会话密钥之后,还包括:向所述客户端发送所述会话密钥,并向所述客户端返回鉴权成功的消息。

5.根据权利要求3所述的会话密钥的生成方法,其特征在于,所述接收客户端发送的鉴权请求之后,还包括:当根据所述鉴权请求确定公钥加密算法私钥解密失败时,向所述客户端返回鉴权失败的消息。

6.一种会话密钥的生成装置,其特征在于,包括:第一接收单元,用于接收客户端发送的会话密钥的请求指示;

获取单元,用于根据所述请求指示,获取所述客户端对应的标识信息;

计算单元,用于通过散列函数,对所述标识信息进行计算,生成密钥散列值,获取预设的会话密钥总数量,并利用所述密钥散列值,对所述会话密钥总数量进行取模运算,得到运算结果;

生成单元,用于基于所述运算结果,查找预设存储的会话密钥集合,确定出所述客户端相应的会话密钥。

7.根据权利要求6所述的会话密钥的生成装置,其特征在于,所述获取单元用于:获取所述客户端对应的网络协议地址以及全局唯一标识符;

所述计算单元用于:通过散列函数,对所述网络协议地址以及全局唯一标识符进行计算,生成密钥散列值。

8.根据权利要求6或7所述的会话密钥的生成装置,其特征在于,所述装置还包括:第二接收单元,用于接收客户端发送的鉴权请求;

所述第一接收单元用于:当根据所述鉴权请求确定公钥加密算法私钥解密成功时,接收所述客户端发送的会话密钥的请求指示。

9.根据权利要求8所述的会话密钥的生成装置,其特征在于,所述装置还包括:第一返回单元,用于向所述客户端发送所述会话密钥,并向所述客户端返回鉴权成功的消息。

10.根据权利要求8所述的会话密钥的生成装置,其特征在于,所述装置还包括:第二返回单元,用于当根据所述鉴权请求确定公钥加密算法私钥解密失败时,向所述客户端返回鉴权失败的消息。

说明书 :

一种会话密钥的生成方法及装置

技术领域

[0001] 本发明属于通信技术领域,尤其涉及一种会话密钥的生成方法及装置。

背景技术

[0002] 目前,在各种通信系统中,如何实现用户之间交互信息的保护,保证通信内容的安全和保密是需要重点考虑的。具体而言,由服务器负责生成会话密钥(session key),该会话密钥为一个通信会话加密的密钥,又称对称密钥,同一密钥用于加密和解密。在由服务器端控制的会话密钥管理中,由于会话密钥总数有限,为了保护使会话密钥不被拖库,服务器会对同一个客户端下发特定的会话密钥。例如,将客户端与会话密钥的对应关系保存起来,这样在接收到会话密钥请求时,通过保存的对应关系查找已分配的值,得到对应的会话密钥,从而保证同一客户端多次请求获得的是同一个会话密钥。
[0003] 但是由于现有的会话密钥分配需要依赖存储服务,即需要依赖服务器对客户端与会话密钥对应关系的存储,并且,当会话密钥数据库服务不可访问时,将导致鉴权流程无法进行,因此对服务器的稳定性要求高、存储空间消耗较大。

发明内容

[0004] 本发明的目的在于提供一种会话密钥的生成方法及装置,旨在降低对服务器的稳定性要求,减少存储空间消耗。
[0005] 为解决上述技术问题,本发明实施例提供以下技术方案:
[0006] 一种会话密钥的生成方法,其中包括:
[0007] 接收客户端发送的会话密钥的请求指示;
[0008] 根据所述请求指示,获取所述客户端对应的标识信息;
[0009] 通过散列函数,对所述标识信息进行计算,生成密钥散列值;
[0010] 获取预设的会话密钥总数量,并利用所述密钥散列值对所述会话密钥总数量进行取模运算,得到运算结果;
[0011] 基于所述运算结果,生成所述客户端相应的会话密钥。
[0012] 为解决上述技术问题,本发明实施例还提供以下技术方案:
[0013] 一种会话密钥的生成装置,其中包括:
[0014] 第一接收单元,用于接收客户端发送的会话密钥的请求指示;
[0015] 获取单元,用于根据所述请求指示,获取所述客户端对应的标识信息;
[0016] 计算单元,用于通过散列函数,对所述标识信息进行计算,生成密钥散列值,获取预设的会话密钥总数量,并利用所述密钥散列值,对所述会话密钥总数量进行取模运算,得到运算结果;
[0017] 生成单元,用于基于所述运算结果,生成所述客户端相应的会话密钥。
[0018] 相对于现有技术,本发明实施例,在接收到客户端发送的会话密钥的请求指示时,获取该客户端对应的标识信息,然后通过散列函数,对获取到的标识信息进行实时计算,得到密钥散列值,其后结合预设的会话密钥总数量进行进一步计算,生成客户端相应的会话密钥,并向该客户端发送相应的会话密钥;即本实施例在接收到会话密钥的请求指示时,实时根据客户端对应的标识信息进行一次散列计算来生成会话密钥,不需要依赖服务器对客户端与会话密钥对应关系的存储,从而保证鉴权流程正常进行,降低对服务器的稳定性要求,以及减少存储空间消耗。

附图说明

[0019] 下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
[0020] 图1a是本发明实施例提供的会话密钥的生成方法的场景示意图;
[0021] 图1b是本发明实施例提供的会话密钥的生成方法的流程示意图;
[0022] 图2a为本发明实施例提供的会话密钥的生成方法的另一流程示意图;
[0023] 图2b为本发明实施例提供的会话密钥加解密的流程示意图;
[0024] 图3a为本发明实施例提供的会话密钥的生成装置的结构示意图;
[0025] 图3b为本发明实施例提供的会话密钥的生成装置的另一结构示意图;
[0026] 图4为本发明实施例提供的服务器的结构示意图。

具体实施方式

[0027] 请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
[0028] 在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
[0029] 本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本发明保护范围之内。
[0030] 本发明实施例提供一种会话密钥的生成方法及装置。
[0031] 参见图1a,该图为本发明实施例所提供的会话密钥的生成方法的场景示意图,该场景中可以包括会话密钥的生成装置,该会话密钥的生成装置具体可以集成在服务器等网络设备中,所述服务器可以由若干台服务器组成的服务器集群,或者是一个云计算服务中心。该会话密钥的生成装置,主要用于接收客户端发送的会话密钥的请求指示,然后,根据所述请求指示,获取该客户端对应的标识信息;其后,通过散列函数,对标识信息进行计算,如,通过散列计算生成密钥散列值,并利用该密钥散列值对预设的会话密钥总数量进行取模运算,得到运算结果,最后基于该运算结果,生成该客户端相应的会话密钥,等等。
[0032] 此外,该场景中还可以包括多个客户端,其中客户端可以向会话密钥的生成装置发送会话密钥的请求指示,并接收会话密钥的生成装置基于请求指示生成的会话密钥,从而客户端可以通过该会话密钥与业务服务侧进行数据传输,等等。
[0033] 以下将分别进行详细说明。
[0034] 在本实施例中,将从会话密钥的生成装置的角度进行描述,该资源调度装置具体可以集成在服务器或网关等网络设备中。
[0035] 一种会话密钥的生成方法,包括:接收客户端发送的会话密钥的请求指示;根据所述请求指示,获取所述客户端对应的标识信息;通过散列函数,对所述标识信息进行计算,生成密钥散列值;获取预设的会话密钥总数量,并利用所述密钥散列值对所述会话密钥总数量进行取模运算,得到运算结果;基于所述运算结果,生成所述客户端相应的会话密钥。
[0036] 请参阅图1b,图1b是本发明实施例提供的会话密钥的生成方法的流程示意图。所述方法包括:
[0037] 在步骤S101中,接收客户端发送的会话密钥的请求指示。
[0038] 可以理解的是,会话密钥(session key)是保证用户跟其它计算机或者两台计算机之间安全通信会话而随机产生的加密和解密密钥。会话密钥由服务器生成以及下发,以使客户端通过会话密钥与业务服务侧进行数据传输。
[0039] 进一步的,在会话密钥的生成装置接收客户端发送的会话密钥的请求指示之前,还可以包括:接收客户端发送的鉴权请求。
[0040] 基于此,接收客户端发送的会话密钥的请求指示可以包括:当根据所述鉴权请求确定公钥加密算法(RSA,Rivest Shamir Adleman)私钥解密成功时,接收所述客户端发送的会话密钥的请求指示。
[0041] 在步骤S102中,根据所述请求指示,获取所述客户端对应的标识信息。
[0042] 本实施例中,所述客户端对应的标识信息可以具体包括网络协议(IP,Internet Protocol)地址、全局唯一标识符(GUID,Globally Unique Identifier)等信息中任一或两个以上组合。
[0043] 其中,IP地址是指IP协议中给因特网上的每台计算机和其它设备都规定的一个唯一的地址。由于有这种唯一的地址,才保证了服务器能够高效而且方便地从多台计算机中确定所需的客户端。
[0044] 全局唯一标识符GUID是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。
[0045] 在步骤S103中,通过散列函数,对所述标识信息进行计算,生成密钥散列值。
[0046] 可以理解的是,为了保证同一个客户端获得的会话密钥不变,可以选取不容易变化的元素作为客户端的标识信息,从而可以确定客户端的唯一标志。进而,会话密钥的生成装置可以根据该标识信息进行计算,生成相应的会话密钥。
[0047] 其中,散列函数(hash function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用来代表一个短的随机字母和数字组成的字符串。
[0048] 在步骤S104中,获取预设的会话密钥总数量,并利用所述密钥散列值对所述会话密钥总数量进行取模运算,得到运算结果。
[0049] 在步骤S105中,基于所述运算结果,生成所述客户端相应的会话密钥。
[0050] 其中,所述步骤S104与步骤S105可具体包括:
[0051] 比如,会话密钥的生成装置可以首先通过散列函数,对标识信息进行计算,生成密钥散列值,然后获取预设的会话密钥总数量,并利用密钥散列值,对会话密钥总数量进行取模运算,得到运算结果;最后基于运算结果,确定出相应的会话密钥。
[0052] 也就是说,会话密钥的生成装置对所述标识信息进行一次散列计算,得到密钥散列值,进而根据预设的会话密钥总数量以及密钥散列值,对会话密钥总数量进行取模运算,从而根据取模运算的结果确定出会话密钥。
[0053] 比如,散列计算后得到密钥散列值为“201”,预设的会话密钥总数量为“100”,对该密钥散列值“201”进行取模运算,得到运算结果为“1”;然后根据预先存储的会话密钥集合,找到标识号为“1”相应的会话密钥,从而将该会话密钥确定为当前客户端相应的会话密钥。
[0054] 可选的,由于所述标识信息可以具体包括网络协议IP地址、全局唯一标识符GUID,因此会话密钥的生成装置可以通过散列函数,对所述网络协议地址以及全局唯一标识符进行计算,生成密钥散列值。
[0055] 可具体的,会话密钥的生成装置可以根据这两个元素确定客户端的唯一标志,如根据公式“HashCode=HashFunction(IP+GUID)”生成密钥散列值,从而确定唯一的会话密钥。
[0056] 可以理解的是,这样同一个客户端在不同的鉴权节点和不同的请求中,通过使用散列函数可以使同一个客户端获得的会话密钥收敛,即密钥散列值(HashCode)是确定唯一的,从而可以确保会话密钥一致,同时可以保证服务器不被拖库。
[0057] 进一步的,在会话密钥的生成装置确定出客户端相应的会话密钥后,向该客户端发送会话密钥,并在向所述客户端发送所述会话密钥之后,向所述客户端返回鉴权成功的消息,即鉴权流程结束。
[0058] 可选的,在客户端接收到该会话密钥后,客户端会利用该会话密钥请求加解密,以完成与业务服务侧之间的数据传输。比如,该会话密钥应用于电脑管家接入服务协议加固,即在接入服务原有协议上增加安全加密层,如客户端业务层将请求明文数据发送至客户端协议加固模块,利用会话密钥进行加密处理,加密后由接入服务协议加固模块利用会话密钥对其进行解密处理,并将解密后数据包发送至业务服务侧进行处理,等等。
[0059] 可选的,在接收客户端发送的鉴权请求之后,还可以包括:当根据所述鉴权请求确定公钥加密算法私钥(即RSA私钥)解密失败时,向所述客户端返回鉴权失败的消息。
[0060] 由上述可知,本实施例提供的会话密钥的生成方法,在接收到客户端发送的会话密钥的请求指示时,获取该客户端对应的标识信息,然后通过散列函数,对获取到的标识信息进行实时计算,得到密钥散列值,其后结合预设的会话密钥总数量进行进一步计算,生成客户端相应的会话密钥,并向该客户端发送相应的会话密钥;即本实施例在接收到会话密钥的请求指示时,实时根据客户端对应的标识信息进行一次散列计算来生成会话密钥,不需要依赖服务器对客户端与会话密钥对应关系的存储,从而保证鉴权流程正常进行,降低对服务器的稳定性要求,以及减少存储空间消耗。
[0061] 根据上述实施例所描述的方法,以下将举例作进一步详细说明。
[0062] 首先,为各个客户端建立一个鉴权服务器,该鉴权服务器主要用于对客户端进行鉴权,并下发会话密钥(session key)。其次,在所述鉴权服务器中设置多个会话密钥,以根据不同的客户端下发不同会话密钥。在由该鉴权服务器控制的会话密钥管理中,由于会话密钥总数有限,因此鉴权服务器需要对同一个客户端下发特定的会话密钥。以下将进行详细说明。
[0063] 请参阅图2a,图2a为本发明实施例提供的会话密钥的生成方法的流程示意图。所述方法包括:
[0064] 在步骤S201中,判断公钥加密算法RSA私钥解密是否成功。
[0065] 比如,客户端A向鉴权服务器发送一鉴权请求,鉴权服务器接收到到该鉴权请求后判断RSA私钥解密是否成功,若成功,则执行步骤S202,若失败,则执行步骤S207。
[0066] 其中,RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。当鉴权服务器对RSA私钥解密成功,则认为客户端身份鉴权成功,并为该客户端准备和下发会话密钥。
[0067] 在步骤S202中,接收客户端发送的会话密钥的请求指示。
[0068] 在步骤S203中,获取所述客户端的网络协议IP地址以及全局唯一标识符GUID。
[0069] 其中,步骤S202以及步骤S203可具体包括:
[0070] 比如,在鉴权服务器鉴权成功后,接收到客户端A发送的请求下发会话密钥的指示消息,其中该会话密钥是保证用户跟其它计算机或者两台计算机之间安全通信会话而随机产生的加密和解密密钥,如会话密钥应用于电脑管家接入服务协议加固,等等。
[0071] 进一步的,在鉴权服务器鉴权成功后,鉴权服务器提取该客户端的网络协议IP地址以及全局唯一标识符GUID,以根据该IP地址以及GUID生成该客户端相应的会话密钥。
[0072] 可以理解的是,在鉴权服务器鉴权成功后,鉴权服务器可以在接收到客户端发送的会话密钥的请求指示后,再获取客户端的IP地址以及GUID,也可以先提取客户端的IP地址以及GUID,在接收到客户端发送的会话密钥的请求指示时进行调用,此处不作具体限定。
[0073] 在步骤S204中,通过散列函数HashCode=HashFunction(IP+GUID),得到密钥散列值HashCode。
[0074] 在步骤S205中,根据密钥散列值HashCode对会话密钥总数量进行取模运算,获得会话密钥。
[0075] 其中,步骤S204以及步骤S205可具体包括:
[0076] 为了同一个客户端获得的会话密钥不变,鉴权服务器需要确定客户端的唯一标志,本发明选取了两个不易变化的元素:IP和GUID,采用以下公式:HashCode=HashFunction(IP+GUID)生成对应的密钥散列值HashCode。
[0077] 比如,由于IP和GUID都可以当作字符串,因此可优先选择乘法散列函数方法来计算,其中伪代码可具体如下:
[0078]
[0079] 其中,x表示要计算HashCode的字符串,此处指的是IP+GUID组成的字符串;a、p、INITIAL_VALUE是可以选择的参数,主要用来解决hash冲突的情况。在一些要求不高的场景中,参数p可以不要;a和INITIAL_VALUE可以根据具体场景来设定,如INITIAL_VALUE设置为5381,a可以设置为33,INITIAL_VALUE设置为0,a可以设置为5或31,等等[0080] 比如,可具体的,IP为“127.0.0.1”,GUID为“aefd817adef889aefdaaaa”,由于IP和GUID是对应的x,因此,此处x为字符串“127.0.0.1aefd817adef889aefdaaaa”。
[0081] 进一步的,根据上述伪代码计算出密钥散列值HashCode后,根据该密钥散列值HashCode,对会话密钥总数量进行取模运算,即对会话密钥总数量求模,得到的余数就是指示第几个会话密钥。
[0082] 比如,得到密钥散列值为“201”,预设的会话密钥总数量为“100”,对该密钥散列值“201”进行取模运算,得到运算结果为“1”;然后根据预先存储的会话密钥集合,找到标识号(或者序列号)为“1”的相应的会话密钥,从而将该会话密钥确定为当前客户端相应的会话密钥。
[0083] 这样同一个客户端在不同的鉴权节点和不同的请求中,通过使用散列函数可以使同一个客户端获得的会话密钥收敛,即密钥散列值(HashCode)是确定唯一的,从而可以确保会话密钥一致,同时可以保证鉴权服务器不被拖库。
[0084] 在步骤S206中,向客户端发送所述会话密钥,并向所述客户端返回鉴权成功的消息。
[0085] 在鉴权服务器确定出客户端相应的会话密钥后,会向该客户端发送会话密钥,并在向所述客户端发送所述会话密钥之后,向所述客户端返回鉴权成功的消息,即鉴权流程结束。
[0086] 在步骤S207中,向所述客户端返回鉴权失败的消息。
[0087] 容易想到的是,在客户端接收到该会话密钥后,客户端会利用该会话密钥请求加解密,以完成与业务服务侧之间的数据传输。比如,该会话密钥应用于电脑管家接入服务协议加固,即在接入服务原有协议上增加安全加密层,可参考图2b,为客户端请求加解密的流程示意。
[0088] 比如,客户端业务层可以将请求明文数据发送至客户端协议加固模块,客户端协议加固模块利用会话密钥进行加密处理,加密后由接入服务协议加固模块利用会话密钥对其进行解密处理,并将解密后数据包发送至业务服务侧进行处理;相反的,业务服务侧也可以根据该会话密钥对明文数据进行加解密,以相应客户端业务层的请求,此处不作具体描述。
[0089] 在某些实施方式中,也可以在客户端与业务服务侧之间进行数据传输时生成所述会话密钥,比如,客户端业务层将请求明文数据发送至客户端协议加固模块的同时,可以一并向鉴权服务器发送会话密钥的请求指示,鉴权服务器根据该客户端对应的标识信息进行散列计算后得到会话密钥,并将其发送至客户端协议加固模块,从而客户端协议加固模块可以利用该会话密钥进行加密处理,加密后由接入服务协议加固模块利用会话密钥对其进行解密处理,并将解密后数据包发送至业务服务侧进行处理,等等,以利用该会话密钥加密和解密,完成与业务服务侧之间进行数据传输。
[0090] 在本发明中,鉴权服务器负责下发会话密钥,通过使用散列函数使同一个客户端获得的会话密钥收敛,从而消除被拖库风险,安全性高;并且鉴权服务器无需对客户端与会话密钥对应关系的存储,且会话密钥收敛不依赖与外部服务,从而减少服务器的空间消耗,同时,鉴权服务器获取相应的会话密钥只需要一次hash计算,计算简便且效率较高。
[0091] 由上述可知,本实施例提供的会话密钥的生成方法,在接收到客户端发送的会话密钥的请求指示时,获取该客户端对应的标识信息,然后通过散列函数,对获取到的标识信息进行实时计算,得到密钥散列值,其后结合预设的会话密钥总数量进行进一步计算,生成客户端相应的会话密钥,并向该客户端发送相应的会话密钥;即本实施例在接收到会话密钥的请求指示时,实时根据客户端对应的标识信息进行一次散列计算来生成会话密钥,不需要依赖服务器对客户端与会话密钥对应关系的存储,从而保证鉴权流程正常进行,降低对服务器的稳定性要求,以及减少存储空间消耗。
[0092] 为便于更好的实施本发明实施例提供的会话密钥的生成方法,本发明实施例还提供一种基于上述会话密钥的生成方法的装置。其中名词的含义与上述会话密钥的生成的方法中相同,具体实现细节可以参考方法实施例中的说明。
[0093] 请参阅图3a,图3a为本发明实施例提供的会话密钥的生成装置的结构示意图,所述会话密钥的生成装置可以包括第一接收单元301、获取单元302、计算单元303以及生成单元304。
[0094] 所述第一接收单元301,用于接收客户端发送的会话密钥的请求指示。
[0095] 可以理解的是,会话密钥(session key)是保证用户跟其它计算机或者两台计算机之间安全通信会话而随机产生的加密和解密密钥。会话密钥由服务器生成以及下发,以使用户根据会话密钥实现用户身份鉴权。
[0096] 所述获取单元302,用于根据所述请求指示,获取所述客户端对应的标识信息;所述计算单元303,用于通过散列函数,对所述标识信息进行计算,生成密钥散列值,获取预设的会话密钥总数量,并利用所述密钥散列值,对所述会话密钥总数量进行取模运算,得到运算结果。
[0097] 可以理解的是,为了保证同一个客户端获得的会话密钥不变,可以选取不容易变化的元素作为客户端的标识信息,从而可以确定客户端的唯一标志。进而,会话密钥的生成装置可以根据该标识信息进行计算,生成相应的会话密钥。
[0098] 所述生成单元304,用于基于所述运算结果,生成所述客户端相应的会话密钥。
[0099] 可一并参考图3b,为本发明提供的会话密钥的生成装置的另一结构示意图,所述会话密钥的生成装置还可以包括:第二接收单元305,用于接收客户端发送的鉴权请求。
[0100] 基于此,所述第一接收单元301可具体用于:当根据所述鉴权请求确定公钥加密算法RSA私钥解密成功时,接收所述客户端发送的会话密钥的请求指示。
[0101] 本实施例中,所述客户端对应的标识信息可以具体包括网络协议IP地址、全局唯一标识符GUID等信息中任一或两个以上组合。
[0102] 其中,IP地址是指IP协议中给因特网上的每台计算机和其它设备都规定的一个唯一的地址。由于有这种唯一的地址,才保证了服务器能够高效而且方便地从多台计算机中确定所需的客户端。
[0103] 全局唯一标识符GUID是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。
[0104] 可以理解的是,为了保证同一个客户端获得的会话密钥不变,可以选取不容易变化的元素作为客户端的标识信息,从而可以确定客户端的唯一标志。进而,会话密钥的生成装置可以根据该标识信息进行计算,生成相应的会话密钥。
[0105] 比如,会话密钥的生成装置可以首先通过散列函数(hash function),对标识信息进行计算,生成密钥散列值,然后获取预设的会话密钥总数量,并利用密钥散列值,对会话密钥总数量进行取模运算,得到运算结果;最后基于运算结果,确定出相应的会话密钥。
[0106] 其中,散列函数是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用来代表一个短的随机字母和数字组成的字符串。
[0107] 也就是说,会话密钥的生成装置对所述标识信息进行一次散列计算,得到密钥散列值,进而根据预设的会话密钥总数量以及密钥散列值,对会话密钥总数量进行取模运算,从而根据取模运算的结果确定出会话密钥。
[0108] 比如,散列计算后得到密钥散列值为“201”,预设的会话密钥总数量为“100”,对该密钥散列值“201”进行取模运算,得到运算结果为“1”;然后根据预先存储的会话密钥集合,找到标识号为“1”相应的会话密钥,从而将该会话密钥确定为当前客户端相应的会话密钥。
[0109] 可选的,由于所述标识信息可以具体包括网络协议IP地址、全局唯一标识符GUID,因此所述计算单元303可以用于:通过散列函数,对所述网络协议地址以及全局唯一标识符进行计算,生成密钥散列值。
[0110] 可具体的,会话密钥的生成装置可以根据这两个元素确定客户端的唯一标志,如根据公式“HashCode=HashFunction(IP+GUID)”生成密钥散列值,从而确定唯一的会话密钥。
[0111] 可以理解的是,这样同一个客户端在不同的鉴权节点和不同的请求中,通过使用散列函数可以使同一个客户端获得的会话密钥收敛,即密钥散列值(HashCode)是确定唯一的,从而可以确保会话密钥一致,同时可以保证服务器不被拖库。
[0112] 可选的,所述会话密钥的生成装置还可以包括:第一返回单元306,用于向所述客户端返回鉴权成功的消息。
[0113] 即,在会话密钥的生成装置确定出客户端相应的会话密钥后,会向该客户端发送会话密钥,并在向所述客户端发送所述会话密钥之后,向所述客户端返回鉴权成功的消息,即鉴权流程结束。
[0114] 可选的,在客户端接收到该会话密钥后,客户端会利用该会话密钥请求加解密,以完成与业务服务侧之间的数据传输。比如,该会话密钥应用于电脑管家接入服务协议加固,即在接入服务原有协议上增加安全加密层,如客户端业务层将请求明文数据发送至客户端协议加固模块,利用会话密钥进行加密处理,加密后由接入服务协议加固模块利用会话密钥对其进行解密处理,并将解密后数据包发送至业务服务侧进行处理,等等。
[0115] 可选的,所述会话密钥的生成装置还可以包括:第二返回单元307,用于当根据所述鉴权请求确定公钥加密算法私钥解密失败时,向所述客户端返回鉴权失败的消息。
[0116] 具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
[0117] 该会话密钥的生成装置具体可以集成在服务器或网关等网络设备中。
[0118] 由上述可知,本实施例提供的会话密钥的生成装置,在接收到客户端发送的会话密钥的请求指示时,获取该客户端对应的标识信息,然后通过散列函数,对获取到的标识信息进行实时计算,得到密钥散列值,其后结合预设的会话密钥总数量进行进一步计算,生成客户端相应的会话密钥,并向该客户端发送相应的会话密钥;即本实施例在接收到会话密钥的请求指示时,实时根据客户端对应的标识信息进行一次散列计算来生成会话密钥,不需要依赖服务器对客户端与会话密钥对应关系的存储,从而保证鉴权流程正常进行,降低对服务器的稳定性要求,以及减少存储空间消耗。
[0119] 本发明实施例还提供一种服务器,其中可以集成本发明实施例的会话密钥的生成装置,如图4所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
[0120] 该服务器可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、射频(Radio Frequency,RF)电路403、电源404、输入单元405、以及显示单元406等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0121] 处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
[0122] 存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
[0123] RF电路403可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器401处理;另外,将涉及上行的数据发送给基站。通常,RF电路403包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路403还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
[0124] 服务器还包括给各个部件供电的电源404(比如电池),优选的,电源可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0125] 该服务器还可包括输入单元405,该输入单元405可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
[0126] 该服务器还可包括显示单元406,该显示单元406可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元406可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。
[0127] 具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
[0128] 接收客户端发送的会话密钥的请求指示;根据所述请求指示,获取所述客户端对应的标识信息;通过散列函数,对所述标识信息进行计算,生成密钥散列值;获取预设的会话密钥总数量,并利用所述密钥散列值对所述会话密钥总数量进行取模运算,得到运算结果;基于所述运算结果,生成所述客户端相应的会话密钥。
[0129] 优选的,所述处理器401还可以用于,获取所述客户端对应的网络协议地址以及全局唯一标识符;通过散列函数,对所述网络协议地址以及全局唯一标识符进行计算,生成密钥散列值。
[0130] 优选的,所述处理器401还可以用于,接收客户端发送的鉴权请求;当根据所述鉴权请求确定公钥加密算法私钥解密成功时,接收所述客户端发送的会话密钥的请求指示。
[0131] 优选的,所述处理器401还可以用于,向所述客户端返回鉴权成功的消息。
[0132] 优选的,所述处理器401还可以用于,当根据所述鉴权请求确定公钥加密算法私钥解密失败时,向所述客户端返回鉴权失败的消息。
[0133] 由上述可知,本实施例提供的服务器中,在接收到客户端发送的会话密钥的请求指示时,获取该客户端对应的标识信息,然后通过散列函数,对获取到的标识信息进行实时计算,得到密钥散列值,其后结合预设的会话密钥总数量进行进一步计算,生成客户端相应的会话密钥,并向该客户端发送相应的会话密钥;即本实施例在接收到会话密钥的请求指示时,实时根据客户端对应的标识信息进行一次散列计算来生成会话密钥,不需要依赖服务器对客户端与会话密钥对应关系的存储,从而保证鉴权流程正常进行,降低对服务器的稳定性要求,以及减少存储空间消耗。
[0134] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对会话密钥的生成方法的详细描述,此处不再赘述。
[0135] 本发明实施例提供的所述会话密钥的生成装置,譬如为计算机、平板电脑、具有触摸功能的手机等等,所述会话密钥的生成装置与上文实施例中的会话密钥的生成方法属于同一构思,在所述会话密钥的生成装置上可以运行所述会话密钥的生成方法实施例中提供的任一方法,其具体实现过程详见所述会话密钥的生成方法实施例,此处不再赘述。
[0136] 需要说明的是,对本发明所述会话密钥的生成方法而言,本领域普通测试人员可以理解实现本发明实施例所述会话密钥的生成方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在终端的存储器中,并被该终端内的至少一个处理器执行,在执行过程中可包括如所述会话密钥的生成方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。
[0137] 对本发明实施例的所述会话密钥的生成装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。
[0138] 以上对本发明实施例所提供的一种会话密钥的生成方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。