密钥管理方法、服务代理、终端设备、系统以及存储介质与流程

文档序号:20770259发布日期:2020-05-15 19:35阅读:192来源:国知局
密钥管理方法、服务代理、终端设备、系统以及存储介质与流程

本发明涉及信息处理技术领域,尤其涉及一种密钥管理方法、服务代理、终端设备、系统以及存储介质。



背景技术:

密钥管理服务是为了能安全管理业务密钥,降低密钥管理不当带来的风险,提供密钥生成、存储、销毁等密钥全生命周期管理服务的系统。其中,密钥使用方作为业务端,密钥管理服务方作为服务端给业务提供服务。

如图1所示,在实际使用过程中,需要每个业务(app)通过身份认证协议与密钥管理服务器建立安全通讯,使用服务端提供的密钥管理服务,进行密钥的生成、存储、销毁等。

一般情况下,业务方需要通过密钥管理服务生成密钥,得到可以唯一索引密钥的密钥id(或者叫句柄、索引等),随后业务方可以直接从服务端拉取指定密钥业务(app),密钥在客户端本地不会落地存储,而是直接在内存中指定加解密相关密码运算。

上述密钥管理方案中,密钥的所有管理动作都是由业务方触发驱动,密钥管理服务端仅提供基本的密钥管理功能。这种方法对于部署具有海量设备和用户的业务方而言,密钥管理存在巨大困难。



技术实现要素:

本发明的主要目的在于提供一种密钥管理方法、服务代理、终端设备、系统以及存储介质,旨在降低密钥管理的困难程度,提高业务方app对密钥的使用便捷程度。

为实现上述目的,本发明提供一种密钥管理方法,所述密钥管理方法应用于终端设备,所述终端设备设置有终端密钥管理服务代理,所述密钥管理方法包括:

所述终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;

根据所述密钥获取请求获取所述业务方app的身份信息;

根据所述业务方app的身份信息获取所述业务方app的密钥。

可选地,所述根据所述密钥获取请求获取所述业务方app的身份信息的步骤包括:

根据所述密钥获取请求,并通过所述终端设备的操作系统获取所述业务方app的身份并将该身份映射到appid;

所述根据所述业务方app的身份信息获取所述业务方app的密钥的步骤包括:

根据所述业务方app的appid获取所述业务方app的密钥。

可选地,所述根据所述密钥获取请求,并通过所述终端设备的操作系统获取所述业务方app的身份并将该身份映射到appid的步骤包括:

所述终端密钥管理服务代理根据所述密钥获取请求,获取所述业务方app的进程标识pid;

根据所述业务方app的进程标识pid,从所述终端设备的操作系统获取所述业务方app的包名和签名证书信息;

根据所述业务方app的包名和app包签名证书信息查找app身份列表,获取所述业务方app的appid。

可选地,所述app身份列表由所述终端密钥管理服务代理从服务端获取。

可选地,所述根据所述业务方app的appid获取所述业务方app的密钥的步骤包括:

所述终端密钥管理服务代理在本地查找是否有所述业务方app的appid对应的密钥;

如果在本地查找到有所述业务方app的appid对应的密钥,则将所述业务方app的appid对应的密钥返回给所述业务方app。

可选地,所述终端密钥管理服务代理在本地查找是否有所述业务方app的appid对应的密钥的步骤之后还包括:

如果在本地未查找到有所述业务方app的appid对应的密钥,则调用密钥恢复接口,从所述服务端恢复密钥;

如果恢复密钥成功,则返回密钥给所述业务方app。

可选地,所述如果在本地未查找到有所述业务方app的appid对应的密钥,则调用密钥恢复接口,从所述服务端恢复密钥的步骤之后,还包括:

如果恢复密钥不成功,则调用密钥生成接口,生成密钥,并将生成的密钥返回给所述业务方app。

可选地,所述密钥管理方法还包括:

所述终端密钥管理服务代理通过调用所述服务端接口,将本地生成的密钥上传到所述服务端备份。

可选地,所述终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求的步骤之后还包括:

所述终端密钥管理服务代理获取所述终端设备的用户在所述服务端注册的密钥管理服务账号;

所述根据所述业务方app的身份信息获取所述业务方app的密钥的步骤包括:

根据所述业务方app的身份信息以及所述终端设备的用户在所述服务端注册的密钥管理服务账号获取所述业务方app的密钥。

此外,本发明实施例还提出一种终端密钥管理服务代理,所述终端密钥管理服务代理包括:

请求接收模块,用于接收所述终端设备上的业务方app发起的密钥获取请求;

信息获取模块,用于根据所述密钥获取请求获取所述业务方app的身份信息;

密钥获取模块,用于根据所述业务方app的身份信息获取所述业务方app的密钥。

此外,本发明实施例还提出一种终端设备,所述终端设备包括终端密钥管理服务代理,所述终端密钥管理服务代理包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的密钥管理程序,所述密钥管理程序被所述处理器执行时实现如上所述的密钥管理方法的步骤。

此外,本发明实施例还提出一种密钥管理系统,包括终端设备以及与所述终端设备通讯连接的服务端,所述终端设备设置有终端密钥管理服务代理;

所述终端设备,用于在所述服务端上注册用户的密钥管理服务账号,并在用户登录密钥管理服务账号后,通过所述终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;根据所述密钥获取请求获取所述业务方app的身份信息;根据所述业务方app的身份信息获取所述业务方app的密钥;

所述服务端,用于为所述终端设备的用户注册密钥管理服务账号,在终端设备用户登录所述密钥管理服务账号后,通过所述密钥管理服务账号维护对应的业务方app密钥数据,并配合所述终端密钥管理服务代理对密钥进行管理服务。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有密钥管理程序,所述密钥管理程序被处理器执行时实现如上所述的密钥管理方法的步骤。

本发明实施例提出的密钥管理方法、服务代理、终端设备、系统以及存储介质,在终端设备上设置终端密钥管理服务代理,通过终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;根据所述密钥获取请求获取所述业务方app的身份信息;根据所述业务方app的身份信息获取所述业务方app的密钥。该方案通过在终端设备内部设置一个终端密钥管理服务代理,该终端密钥管理服务代理对业务方app屏蔽密钥管理技术细节,密钥管理只与业务方app的身份信息相关,可以实现相同业务在同一个账号所属的所有设备的密钥一致,从而,极大的降低了密钥管理的困难程度,提高了业务方app对密钥的使用便捷程度。

附图说明

图1为现有相关技术的密钥管理服务模型示意图;

图2为本发明密钥管理服务代理所属终端设备的功能模块示意图;

图3为本发明实施例密钥管理系统架构示意图;

图4为本发明实施例中服务端维护的密钥数据结构示意图;

图5为本发明密钥管理方法一示例性实施例的流程示意图;

图6为本发明密钥管理方法实施例的细化流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:在终端设备上设置终端密钥管理服务代理,通过终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;根据所述密钥获取请求获取所述业务方app的身份信息;根据所述业务方app的身份信息获取所述业务方app的密钥。该方案通过在终端设备内部设置一个终端密钥管理服务代理,该终端密钥管理服务代理对业务方app屏蔽密钥管理技术细节,密钥管理只与业务方app的身份信息相关,可以实现相同业务在同一个账号所属的所有设备的密钥一致,从而,极大的降低了密钥管理的困难程度,提高了业务方app对密钥的使用便捷程度。

本发明实施例方案涉及的技术术语包括:

pid(processidentification),操作系统里指进程识别号,也就是进程标识符,进程的代号。操作系统里每打开一个程序都会创建一个进程id,即pid。每个进程有唯一的pid编号,它是进程运行时系统分配的,在运行时pid不会改变标识符,但是进程终止后pid标识符就会被系统回收,可能会被继续分配给新运行的程序,即新的进程。

本发明实施例考虑到,相关技术中,密钥的所有管理动作都是由业务方触发驱动,密钥管理服务端仅提供基本的密钥管理功能。这种方法对于部署具有海量设备和用户的业务方而言,密钥管理存在巨大困难。

基于此,本发明实施例提出一种解决方案,可以降低密钥管理的困难程度,提高业务方app对密钥的使用便捷程度。比如,对于互联网业务而言,其最终用户可能具备多台设备,也就是在多台设备、同一用户下,业务方应该维护相同的密钥,以避免跨设备数据差异。

具体地,参照图2,图2为本发明密钥管理服务代理所属终端设备的功能模块示意图。该密钥管理服务代理可以为独立于终端设备的、能够进行数据处理的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等智能移动终端,还可以固定终端。

在本实施例中,该密钥管理服务代理所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。

存储器130中存储有操作系统以及密钥管理程序,密钥管理服务代理可以将获取的业务方app的身份信息以及业务方app的密钥等存储于该存储器130中;输出模块110可为显示屏、扬声器等,显示屏可以输出业务方app发起的密钥获取请求、根据该请求获取的业务方app的身份信息等信息。通信模块140可以包括wifi模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。

其中,存储器130中的密钥管理程序被处理器执行时实现以下步骤:

通过所述终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;

根据所述密钥获取请求获取所述业务方app的身份信息;

根据所述业务方app的身份信息获取所述业务方app的密钥。

进一步地,存储器130中的密钥管理程序被处理器执行时还实现以下步骤:

根据所述密钥获取请求,并通过所述终端设备的操作系统获取所述业务方app的身份并将该身份映射到appid;

所述根据所述业务方app的身份信息获取所述业务方app的密钥的步骤包括:

根据所述业务方app的appid获取所述业务方app的密钥。

进一步地,存储器130中的密钥管理程序被处理器执行时还实现以下步骤:

通过所述终端密钥管理服务代理根据所述密钥获取请求,获取所述业务方app的进程标识pid;

根据所述业务方app的进程标识pid,从所述终端设备的操作系统获取所述业务方app的包名和签名证书信息;

根据所述业务方app的包名和app包签名证书信息查找app身份列表,获取所述业务方app的appid。

进一步地,存储器130中的密钥管理程序被处理器执行时还实现以下步骤:

通过所述终端密钥管理服务代理在本地查找是否有所述业务方app的appid对应的密钥;

如果在本地查找到有所述业务方app的appid对应的密钥,则将所述业务方app的appid对应的密钥返回给所述业务方app。

如果在本地未查找到有所述业务方app的appid对应的密钥,则调用密钥恢复接口,从服务端恢复密钥;

如果恢复密钥成功,则返回密钥给所述业务方app。

如果恢复密钥不成功,则调用密钥生成接口,生成密钥,并将生成的密钥返回给所述业务方app。

进一步地,存储器130中的密钥管理程序被处理器执行时还实现以下步骤:

通过所述终端密钥管理服务代理调用服务端接口,将本地生成的密钥上传到服务端备份。

进一步地,存储器130中的密钥管理程序被处理器执行时还实现以下步骤:

通过所述终端密钥管理服务代理获取所述终端设备的用户在服务端注册的密钥管理服务账号;

根据所述业务方app的身份信息以及所述终端设备的用户在服务端注册的密钥管理服务账号获取所述业务方app的密钥。

本实施例通过上述方案,在终端设备上设置终端密钥管理服务代理,通过终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;根据所述密钥获取请求获取所述业务方app的身份信息;根据所述业务方app的身份信息获取所述业务方app的密钥。该方案通过在终端设备内部设置一个终端密钥管理服务代理,该终端密钥管理服务代理对业务方app屏蔽密钥管理技术细节,密钥管理只与业务方app的身份信息相关,可以实现相同业务在同一个账号所属的所有终端设备的密钥一致,从而,极大的降低了密钥管理的困难程度,提高了业务方app对密钥的使用便捷程度。

参照图3,图3为本发明实施例密钥管理系统架构示意图。

如图3所示,本发明实施例涉及的密钥管理系统包括:终端设备以及与所述终端设备通讯连接的服务端,终端设备内部可以运行多个业务(如通信录、相册、云备份等),所述终端设备还设置有终端密钥管理服务代理。

终端密钥管理服务代理(agent)内置了账号管理、app身份判定、密钥管理等模块。

其中,终端密钥管理服务代理管理的账号是终端设备用户在服务端注册的密钥管理服务账号。一个用户对应一个密钥管理服务账号,该密钥管理服务账号可以由用户在不同的终端设备上使用相同的业务方app,从而可以实现相同业务在同一个账号所属的所有终端设备的密钥一致,极大的降低密钥管理的困难程度,提高业务方app对密钥的使用便捷程度。

其中,服务端提供多个业务模式(mod)的密钥管理服务。用户在使用终端设备上的业务方app前登陆用户账号,即登录密钥管理服务账号,账号登陆后,服务端将该终端设备添加到服务端可信设备链表。服务端存储所有登陆了用户账号的终端设备,并以账号为单位维护账号密钥数据。服务端维护的密钥数据结构如图4所示,包括:用户的账号信息、各app的密钥数据,以及用户使用的终端设备链表等。

具体实现时,所述终端设备用于在所述服务端上注册用户的密钥管理服务账号,并在用户登录密钥管理服务账号后,通过所述终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;根据所述密钥获取请求获取所述业务方app的身份信息;根据所述业务方app的身份信息获取所述业务方app的密钥;

所述服务端用于为所述终端设备的用户注册密钥管理服务账号,在终端设备用户登录所述密钥管理服务账号后,通过所述密钥管理服务账号维护对应的业务方app密钥数据,并配合所述终端密钥管理服务代理对密钥进行管理服务。

基于上述终端设备架构及系统架构但不限于上述架构,提出本发明方法实施例。

参照图5,图5为本发明密钥管理方法一示例性实施例的流程示意图。该密钥管理方法应用于终端设备,所述终端设备设置有终端密钥管理服务代理,所述密钥管理方法包括:

步骤s101,所述终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;

在终端设备上运行的业务方app(如通信录、相册、云备份等),在运行过程中需要密钥时,业务方app作为调用方,向终端设备上的终端密钥管理服务代理发送密钥获取请求,在密钥获取请求中指明需要的密钥信息。

步骤s102,根据所述密钥获取请求获取所述业务方app的身份信息;

终端密钥管理服务代理接收到密钥获取请求后,根据所述密钥获取请求获取所述业务方app的身份信息,该业务方app的身份信息包括业务方app的包名和签名证书信息、appid,进一步还可以包括app的版本号、数字签名等。

作为一种实施方式,终端密钥管理服务代理根据所述密钥获取请求,并通过所述终端设备的操作系统获取所述业务方app的身份,然后将该身份映射到appid,从而获取到业务方app的appid。

具体地,首先,所述终端密钥管理服务代理根据所述密钥获取请求,获取所述业务方app的进程标识pid;

然后,根据所述业务方app的进程标识pid,从所述终端设备的操作系统获取所述业务方app的包名和签名证书信息;

然后,根据所述业务方app的包名和app包签名证书信息查找app身份列表,获取所述业务方app的appid。

其中,所述app身份列表由所述终端密钥管理服务代理从服务端获取。

具体地,服务端维护的数据包括:用户的账号信息、各app的密钥数据,以及用户使用的终端设备链表等,其中,服务端还维护app身份列表,该app身份列表具备三个域:

版本号:单调递增整数值,每次列表更新都会递增该版本号。app身份列表只能单调递增,只能用新版本覆盖旧版本。

数据项列表:如下表1所示,表中具备三个字段:app包名、app包签名证书信息、appid。其中app包名和app包签名证书信息构成联合主键,将app的包名和app的签名证书映射成appid。appid是一个guid,由服务端在添加表项时调用系统guid接口生成。一个appid可以唯一确认一个app,同一个用户账号下,相同的appid的app具备相同的密钥。

因为软件版本迭代的关系,在实践中,app的包名和app包签名证书信息可能会发生变化,所以可能发生不同的app包名或不同的app包签名证书信息联合键对应了相同的appid的情况。

数字签名:服务端使用服务端私钥对前述两个域的数据内容签名。

表1数据项列表

服务端提供身份列表获取接口(httprestful服务接口,形如service.getapplist()),终端密钥管理服务代理(agent)通过http服务获取app身份列表,该app身份列表被缓存在终端设备本地。当终端密钥管理服务代理(agent)获取到新列表时或从本地存储加载列表时,终端密钥管理服务代理(agent)通过验证签名和版本号确保是合法的新版本列表。

步骤s103,根据所述业务方app的身份信息获取所述业务方app的密钥。

终端密钥管理服务代理根据所述业务方app的appid获取所述业务方app的密钥。

作为一种实现方式,具体实现如下:

首先,所述终端密钥管理服务代理在本地查找是否有所述业务方app的appid对应的密钥;

如果在本地查找到有所述业务方app的appid对应的密钥,则将所述业务方app的appid对应的密钥返回给所述业务方app。

如果在本地未查找到有所述业务方app的appid对应的密钥,则调用密钥恢复接口,从服务端恢复密钥;

如果恢复密钥成功,则返回密钥给所述业务方app。

如果恢复密钥不成功,则调用密钥生成接口,生成密钥,并将生成的密钥返回给所述业务方app。

此外,所述终端密钥管理服务代理通过调用服务端接口,将本地生成的密钥上传到服务端备份。

本实施例的具体细化流程可以如图6所示。

记获取密钥功能的名称为get_key,业务方app通过调用终端密钥管理服务代理的get_key接口即可获得app在该密钥管理服务账号下的密钥。接口内部执行过程如图6所示:

首先,调用方app发起调用(远程调用)请求(get_key接口)给终端密钥管理服务代理。

终端密钥管理服务代理通过终端设备的操作系统等相关机制获取调用方身份(比如通讯录),并将该身份映射到appid。

终端密钥管理服务代理首先在本地查找是否有appid对应的密钥,如果存在密钥则直接返回给调用方。

如果本地没有密钥,则调用密钥恢复接口,尝试从服务端恢复密钥,如果恢复成功,则返回密钥给调用方。

如果服务端不存在该app密钥,则终端密钥管理服务代理调用密钥生成接口,生成密钥。

密钥生成成功后,上传密钥到服务端,并返回密钥给调用方。

相比现有技术,本实施例方案通过在终端设备平台内部设置一个终端密钥管理服务代理,根据终端设备上具体业务身份(app身份、appid)自动管理密钥,能够对app屏蔽密钥管理技术细节,实现相同业务方app在同一个密钥管理服务账号所属的所有终端设备的密钥一致,即相同账号下相同app具有相同密钥,实现密钥跨设备透明使用,对于相同账号的不同app,则具有不同密钥。终端密钥管理服务代理可以实现对密钥的查询、恢复、生成与备份管理。

在终端设备侧业务视角,密钥管理相关动作完全是透明的,业务方app仅需要调用1个接口(获取密钥)即可完成密钥管理所有动作。从而极大的降低了密钥管理的困难程度,提高了业务方app对密钥的使用便捷程度。

本发明实施例方案,极大地简化了业务方密钥管理的困难程度,让业务方专注于业务层面实现。同时本发明实施例能够为相同账号的相同app提供完全一致的密钥服务,可以保证跨设备密钥一致,从而使得用户设备数据加密同步得到更方便的实现。

进一步地,在所述终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求之后还包括:

所述终端密钥管理服务代理获取所述终端设备的用户在服务端注册的密钥管理服务账号;

之后,终端密钥管理服务代理根据所述业务方app的身份信息以及所述终端设备的用户在服务端注册的密钥管理服务账号获取所述业务方app的密钥。

本实施例通过上述方案,在终端设备上设置终端密钥管理服务代理,通过终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;根据所述密钥获取请求获取所述业务方app的身份信息;根据所述业务方app的身份信息获取所述业务方app的密钥。该方案通过在终端设备内部设置一个终端密钥管理服务代理,该终端密钥管理服务代理对业务方app屏蔽密钥管理技术细节,密钥管理只与业务方app的身份信息相关,可以实现相同业务在同一个账号所属的所有设备的密钥一致,从而,极大的降低了密钥管理的困难程度,提高了业务方app对密钥的使用便捷程度。

此外,本发明实施例还提出一种终端密钥管理服务代理,所述终端密钥管理服务代理包括:

请求接收模块,用于接收所述终端设备上的业务方app发起的密钥获取请求;

信息获取模块,用于根据所述密钥获取请求获取所述业务方app的身份信息;

密钥获取模块,用于根据所述业务方app的身份信息获取所述业务方app的密钥。

本实施例实现终端密钥管理的原理及实施过程,请参照上述各实施例,在此不再赘述。

此外,本发明实施例还提出一种终端设备,所述终端设备包括终端密钥管理服务代理,所述终端密钥管理服务代理包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的密钥管理程序,所述密钥管理程序被所述处理器执行时实现如上述实施例所述的密钥管理方法的步骤。

由于本密钥管理程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有密钥管理程序,所述密钥管理程序被处理器执行时实现如上述实施例所述的密钥管理方法的步骤。

由于本密钥管理程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。

相比现有技术,本发明实施例提出的密钥管理方法、服务代理、终端设备、系统以及存储介质,在终端设备上设置终端密钥管理服务代理,通过终端密钥管理服务代理接收所述终端设备上的业务方app发起的密钥获取请求;根据所述密钥获取请求获取所述业务方app的身份信息;根据所述业务方app的身份信息获取所述业务方app的密钥。该方案通过在终端设备内部设置一个终端密钥管理服务代理,该终端密钥管理服务代理对业务方app屏蔽密钥管理技术细节,密钥管理只与业务方app的身份信息相关,可以实现相同业务在同一个账号所属的所有设备的密钥一致,从而,极大的降低了密钥管理的困难程度,提高了业务方app对密钥的使用便捷程度。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本发明每个实施例的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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