用户认证方法、装置、计算机设备及计算机可读存储介质与流程

文档序号:18328924发布日期:2019-08-03 11:47阅读:144来源:国知局
用户认证方法、装置、计算机设备及计算机可读存储介质与流程

本发明涉及信息存储技术领域,特别是涉及一种用户认证方法、装置、计算机设备及计算机可读存储介质。



背景技术:

随着互联网技术的飞速发展,卫生与健康现代医疗卫生体系的建设规划也越来越成熟,预计到2020年,将建成全面的健康信息平台,实现所在地区各大医院之间信息的互联互通。健康信息平台中采用电子病历的形式存储患者的所有信息以及实时更新的信息,目前已经建立的健康信息平台通常依赖中心化的信息系统所搭载,并基于该中心化的信息系统实现已经认证的用户的电子病历的存储及更新。

相关技术中,中心化的信息系统是通过身份认证和授权来保护用户的个人隐私的,也即采用用户的身份证信息、联系方式信息等个人信息对用户的身份进行认证,进而将用户的电子病历与用户的个人信息绑定存储,以便在后续用户治疗时,采用用户提供个人信息的方式来获取用户的电子病历,实现对用户的治疗。

在实现本发明的过程中,发明人发现相关技术至少存在以下问题:

对用户进行认证使用的个人信息包括了很多用户的私密信息,如果系统出现安全漏洞或管理不善将导致所有的医疗信息泄漏事故,使得用户的私密信息也会被泄露,给用户带来严重的风险和损失,安全性较差。



技术实现要素:

有鉴于此,本发明提供了一种用户认证方法、装置、计算机设备及计算机可读存储介质,主要目的在于解决目前用户的私密信息也会被泄露,给用户带来严重的风险和损失,安全性较差的问题。

依据本发明第一方面,提供了一种用户认证方法,该方法包括:

当接收到用户的认证请求时,在所述认证请求中提取所述用户的个人信息,所述认证请求中携带所述个人信息;

根据所述个人信息中的公开信息,生成证书公钥,采用加密算法,对所述证书公钥进行计算,生成证书私钥;

基于所述证书私钥,对所述个人信息和所述证书公钥进行签名,生成数字证书;

将所述数字证书和所述个人信息绑定认证,提取所述公开信息作为用户标识,将绑定认证后的所述数字证书和所述用户标识传输至病历区块链,所述病历区块链用于存储用户的电子病历。

在另一个实施例中,所述当接收到用户的认证请求时,在所述认证请求中提取所述用户的个人信息之后,所述方法还包括:

对所述个人信息进行验证,判断所述个人信息是否为真实的个人信息;

如果确定所述个人信息是真实的个人信息,则继续执行上述获取证书公钥并生成数字证书的过程;

如果确定所述个人信息不是真实的个人信息,则生成失败响应,将所述失败响应返回至所述用户。

在另一个实施例中,所述根据所述个人信息中的公开信息,生成证书公钥,采用加密算法,对所述证书公钥进行计算,生成证书私钥,包括:

获取公开信息模板,按照所述公开信息模板,在所述个人信息中提取符合所述公开信息模板的公开信息,将所述公开信息作为所述证书公钥;

确定所述加密算法,采用所述加密算法,对所述证书公钥进行计算,生成证书私钥,所述加密算法至少为高级加密标准aes算法。

依据本发明第二方面,提供了一种用户认证方法,该方法包括:

接收所述认证中心传输的绑定认证的数字证书和用户标识,所述数字证书由所述认证中心对所述用户标识指示的用户进行认证后,并根据所述用户标识指示的用户的个人信息生成;

检测病历区块链中至少一个用户信息区块的可用数据量,统计所述绑定认证的数字证书和用户标识的目标数据量,根据所述目标数据量,在所述至少一个用户信息区块中确定目标用户信息区块,所述目标用户信息区块的可用数据量大于等于所述目标数据量;

将所述绑定认证的数字证书和用户标识添加至所述目标用户信息区块中进行存储。

在另一个实施例中,所述方法还包括:

当接收到电子病历存储请求时,确定所述电子病历存储请求中携带的用户标识指示的目标数字证书;

对所述目标数字证书进行数据读取,提取所述目标数字证书包括的证书公钥,基于所述证书公钥,对待存储电子病历进行加密,生成病历密文;

基于所述病历密文,生成病历区块,将所述病历区块添加至所述病历区块链中存储。

在另一个实施例中,所述方法还包括:

当接收到电子病历查询请求时,在所述电子病历查询请求中提取待查询用户标识、待查询数字证书以及待查询证书签名;

对所述待查询用户标识、待查询数字证书和所述待查询证书签名进行验证;

如果对所述待查询用户标识、所述待查询数字证书和所述待查询证书签名验证成功,则在所述至少一个用户信息区块中查询所述待查询数字证书指示的待查询病历密文,将所述待查询病历密文返回;

如果对所述待查询用户标识、所述待查询数字证书和所述待查询证书签名验证失败,则生成失败响应,并返回所述失败响应。

在另一个实施例中,所述对所述待查询用户标识、待查询数字证书和所述待查询证书签名进行验证,包括:

在所述待查询数字证书中提取待查询证书公钥,采用所述待查询证书公钥对所述待查询证书签名解密,判断所述待查询证书公钥是否成功对所述待查询证书签名解密;

在所述病历区块链中查询所述待查询用户标识对应的数字证书与所述待查询数字证书是否一致;

相应地,当采用所述待查询证书公钥对所述待查询证书签名解密成功,且确定所述待查询用户标识对应的数字证书与所述待查询数字证书一致时,确定对所述待查询用户标识、所述待查询数字证书和所述待查询证书签名验证成功;

当采用所述待查询证书公钥对所述待查询证书签名解密失败,或确定所述待查询用户标识对应的数字证书与所述待查询数字证书不一致时,确定对所述待查询用户标识、所述待查询数字证书和所述待查询证书签名验证失败。

依据本发明第三方面,提供了一种用户认证装置,该装置包括:

提取模块,用于当接收到用户的认证请求时,在所述认证请求中提取所述用户的个人信息,所述认证请求中携带所述个人信息;

生成模块,用于根据所述个人信息中的公开信息,生成证书公钥,采用加密算法,对所述证书公钥进行计算,生成证书私钥;

签名模块,用于基于所述证书私钥,对所述个人信息和所述证书公钥进行签名,生成数字证书;

传输模块,用于将所述数字证书和所述个人信息绑定认证,提取所述公开信息作为用户标识,将绑定认证后的所述数字证书和所述用户标识传输至病历区块链,所述病历区块链用于存储用户的电子病历。

在另一个实施例中,所述装置还包括:

验证模块,用于对所述个人信息进行验证,判断所述个人信息是否为真实的个人信息;

所述生成模块,还用于如果确定所述个人信息是真实的个人信息,则继续执行上述获取证书公钥并生成数字证书的过程;

返回模块,用于如果确定所述个人信息不是真实的个人信息,则生成失败响应,将所述失败响应返回至所述用户。

在另一个实施例中,所述生成模块,包括:

提取子模块,用于获取公开信息模板,按照所述公开信息模板,在所述个人信息中提取符合所述公开信息模板的公开信息,将所述公开信息作为所述证书公钥;

计算子模块,用于确定所述加密算法,采用所述加密算法,对所述证书公钥进行计算,生成证书私钥,所述加密算法至少为高级加密标准aes算法。

依据本发明第四方面,提供了一种用户认证装置,该装置包括:

接收模块,用于接收所述认证中心传输的绑定认证的数字证书和用户标识,所述数字证书由所述认证中心对所述用户标识指示的用户进行认证后,并根据所述用户标识指示的用户的个人信息生成;

统计模块,用于检测病历区块链中至少一个用户信息区块的可用数据量,统计所述绑定认证的数字证书和用户标识的目标数据量,根据所述目标数据量,在所述至少一个用户信息区块中确定目标用户信息区块,所述目标用户信息区块的可用数据量大于等于所述目标数据量;

存储模块,用于将所述绑定认证的数字证书和用户标识添加至所述目标用户信息区块中进行存储。

在另一个实施例中,所述装置还包括:

确定模块,用于当接收到电子病历存储请求时,确定所述电子病历存储请求中携带的用户标识指示的目标数字证书;

加密模块,用于对所述目标数字证书进行数据读取,提取所述目标数字证书包括的证书公钥,基于所述证书公钥,对待存储电子病历进行加密,生成病历密文;

生成模块,用于基于所述病历密文,生成病历区块,将所述病历区块添加至所述病历区块链中存储。

在另一个实施例中,所述装置还包括:

提取模块,用于当接收到电子病历查询请求时,在所述电子病历查询请求中提取待查询用户标识、待查询数字证书以及待查询证书签名;

验证模块,用于对所述待查询用户标识、待查询数字证书和所述待查询证书签名进行验证;

第一返回模块,用于如果对所述待查询用户标识、所述待查询数字证书和所述待查询证书签名验证成功,则在所述至少一个用户信息区块中查询所述待查询数字证书指示的待查询病历密文,将所述待查询病历密文返回;

第二返回模块,用于如果对所述待查询用户标识、所述待查询数字证书和所述待查询证书签名验证失败,则生成失败响应,并返回所述失败响应。

在另一个实施例中,所述验证模块,用于在所述待查询数字证书中提取待查询证书公钥,采用所述待查询证书公钥对所述待查询证书签名解密,判断所述待查询证书公钥是否成功对所述待查询证书签名解密;在所述病历区块链中查询所述待查询用户标识对应的数字证书与所述待查询数字证书是否一致;

相应地,所述第一返回模块,用于当采用所述待查询证书公钥对所述待查询证书签名解密成功,且确定所述待查询用户标识对应的数字证书与所述待查询数字证书一致时,确定对所述待查询用户标识、所述待查询数字证书和所述待查询证书签名验证成功;

所述第二返回模块,用于当采用所述待查询证书公钥对所述待查询证书签名解密失败,或确定所述待查询用户标识对应的数字证书与所述待查询数字证书不一致时,确定对所述待查询用户标识、所述待查询数字证书和所述待查询证书签名验证失败。

依据本发明第五方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或第二方面所述方法的步骤。

依据本发明第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面所述的方法的步骤。

借由上述技术方案,本发明提供的一种用户认证方法、装置、计算机设备及计算机可读存储介质,与目前对用户进行认证使用的个人信息的方式相比,本发明当接收到用户的认证请求时,在认证请求中提取用户的个人信息,并根据个人信息中的公开信息生成证书公钥以及证书私钥,进而基于证书私钥,生成数字证书,使得根据用户的公开信息为用户生成数字证书,基于数字证书实现对用户的认证,无需直接使用个人信息进行信息存储等操作,降低用户的个人信息被泄露的风险,避免给用户带来严重的损失,安全性较好。

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

附图说明

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

图1a示出了本发明实施例提供的一种用户认证方法流程示意图;

图1b示出了本发明实施例提供的一种用户认证方法流程示意图;

图2a示出了本发明实施例提供的一种用户认证方法流程示意图;

图2b示出了本发明实施例提供的一种用户认证方法流程示意图;

图2c示出了本发明实施例提供的一种用户认证方法流程示意图;

图3a示出了本发明实施例提供的一种用户认证装置的结构示意图;

图3b示出了本发明实施例提供的一种用户认证装置的结构示意图;

图3c示出了本发明实施例提供的一种用户认证装置的结构示意图;

图4a示出了本发明实施例提供的一种用户认证装置的结构示意图;

图4b示出了本发明实施例提供的一种用户认证装置的结构示意图;

图4c示出了本发明实施例提供的一种用户认证装置的结构示意图;

图5示出了本发明实施例提供的一种计算机设备的装置结构示意图。

具体实施方式

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

本发明实施例提供了一种用户认证方法,可以根据用户的个人信息为用户生成数字证书,基于数字证书实现对用户的认证,达到了无需直接使用个人信息进行信息存储等操作,降低用户的个人信息被泄露的风险,避免给用户带来严重的损失,安全性较好的目的,如图1a所示,该方法应用于认证中心中,包括:

101、当接收到用户的认证请求时,在认证请求中提取用户的个人信息,认证请求中携带个人信息。

在本发明实施例中,当接收到用户的认证请求时,为了使认证中心可以获知当前为哪一个用户进行认证,并帮助认证中心对用户进行认证,认证请求中通常会携带个人信息,因此,认证中心可以在认证请求中提取用户的个人信息。

102、根据个人信息中的公开信息,生成证书公钥,采用加密算法,对证书公钥进行计算,生成证书私钥。

在本发明实施例中,为了使给用户生成的数字证书与用户息息相关,且后续生成的数字证书中需要包括证书公钥和证书私钥,因此,在个人信息中获取证书公钥,并采用加密算法,对证书公钥进行计算,从而生成证书私钥,以便后续基于证书公钥和证书私钥为用户生成数字证书。

103、基于证书私钥,对个人信息和证书公钥进行签名,生成数字证书。

在本发明实施例中,当确定了证书公钥和证书私钥后,由于下发给病历区块链的数字证书是不能包括证书私钥的,也即该证书私钥是用户自行保管的,因此,基于证书私钥,对个人信息和证书公钥进行签名,生成数字证书。

104、将数字证书和个人信息绑定认证,提取公开信息作为用户标识,将绑定认证后的数字证书和用户标识传输至病历区块链,病历区块链用于存储用户的电子病历。

在本发明实施例中,为了使病历区块链在接收到数字证书时,可以将数字证书与用户关联起来,以便后续对数字证书进行利用,认证中心在将数字证书传输至病历区块链之前,可在数字证书中提取用户标识,将数字证书和用户标识传输至病历区块链,病历区块链用于存储用户的电子病历。

本发明实施例提供的方法,当接收到用户的认证请求时,在认证请求中提取用户的个人信息,并根据个人信息中的公开信息生成证书公钥以及证书私钥,进而基于证书私钥,生成数字证书,使得根据用户的公开信息为用户生成数字证书,基于数字证书实现对用户的认证,无需直接使用个人信息进行信息存储等操作,降低用户的个人信息被泄露的风险,避免给用户带来严重的损失,安全性较好。

本发明实施例提供了一种用户认证方法,可以接收认证中心传输的数字证书,基于数字证书实现对用户的认证,达到了无需直接使用个人信息进行信息存储等操作,降低用户的个人信息被泄露的风险,避免给用户带来严重的损失,安全性较好的目的,如图1b所示,该方法包括:

105、接收认证中心传输的绑定认证的数字证书和用户标识,数字证书由认证中心对用户标识指示的用户进行认证后,并根据用户标识指示的用户的个人信息生成。

在本发明实施例中,由于认证中心在生成了数字证书后,会将数字证书和用户标识传输给病历区块链,因此,病历区块链会接收到认证中心传输的数字证书和用户标识。

106、检测病历区块链中至少一个用户信息区块的可用数据量,统计绑定认证的数字证书和用户标识的目标数据量,根据目标数据量,在至少一个用户信息区块中确定目标用户信息区块,目标用户信息区块的可用数据量大于等于目标数据量。

在本发明实施例中,由于病历区块链基于区块存储数据,因此,在接收到数字证书和用户标识后,为了避免浪费病历区块链中的存储空间,需要对病历区块链中的至少一个用户信息区块的可用数据量进行检测,找到一个可以容纳绑定认证的数字证书和用户标识的目标数据量的目标用户信息区块,以便可以基于该目标用户信息区块存储绑定认证的数字证书和用户标识的目标数据量。107、将绑定认证的数字证书和用户标识添加至目标用户信息区块中进行存储。

在本发明实施例中,当生成了用户信息区块后,便可以将绑定认证的数字证书和用户标识添加至目标用户信息区块中进行存储,完成用户的认证以及注册。

本发明实施例提供的方法,接收认证中心传输的绑定认证的数字证书和用户标识,并检测病历区块链中至少一个用户信息区块的可用数据量,统计绑定认证的数字证书和用户标识的目标数据量,根据目标数据量,在至少一个用户信息区块中确定目标用户信息区块,将绑定认证的数字证书和用户标识添加至目标用户信息区块中进行存储,使得基于数字证书实现对用户的认证,无需直接使用个人信息进行信息存储等操作,降低用户的个人信息被泄露的风险,避免给用户带来严重的损失,安全性较好。

本发明实施例提供了一种用户认证方法,可以根据用户的个人信息为用户生成数字证书,基于数字证书实现对用户的认证,达到了无需直接使用个人信息进行信息存储等操作,降低用户的个人信息被泄露的风险,避免给用户带来严重的损失,安全性较好的目的,如图2a所示,该方法应用于认证中心和病历区块链中,涉及到认证中心和病历区块链之间的交互,具体包括:

201、当接收到用户的认证请求时,认证中心在认证请求中提取用户的个人信息,认证请求中携带个人信息。

在本发明实施例中,为了避免不法分子随意的在病历区块链中上传并下载数据,认证中心为用户提供认证服务,基于用户的个人信息为用户进行认证,使得后续只有通过认证的用户才可以使用病历区块链所提供的各种服务,从而避免不法分子进行恶意操作。认证中心可以为用户提供客户端,用户通过下载客户端来享受认证中心提供的用户认证服务。客户端中为用户提供注册入口,当检测到用户触发该注册入口时,确定检测到用户请求注册,显示注册页面。在检测到用户对注册页面的确认时,确定接收到用户的认证请求,认证中心获取用户在注册页面中填写的个人信息,从而获取到用户的个人信息,也即在认证请求中提取用户的个人信息,以便在后续可以基于用户的个人信息对用户进行认证。具体地,用户提供的个人信息可以包括用户的身份证号码、社保账号、姓名等信息。

在实际应用的过程中,由于每个人的身份证号码与姓名是具有唯一对应关系的,考虑到有些不法分子为了在认证中心中认证,可能提供假的身份证号码或者假的姓名等,因此,在提取到用户的个人信息后,可以对用户的个人信息的真实性进行验证,并在确定个人信息是真实的时,再继续为用户提供认证服务。具体地,在对个人信息进行验证时,获取数据库中预设的身份证号码与姓名之间的对应关系,判断用户提供的个人信息中的身份证号码以及姓名的对应关系是否可与数据库中存储的对应关系匹配,也即判断个人信息是否为真实的个人信息。如果确定个人信息是真实的个人信息,则表示当前用户提供的个人信息是真实的,可以继续执行上述获取证书公钥并生成数字证书的过程;如果确定个人信息不是真实的个人信息,则表示当前用户提供的个人信息是虚假的,或者用户提供的个人信息发生了错误,需要用户重新提供,因此,生成失败响应,将失败响应返回至用户。需要说明的是,为了使用户可以明确哪一些信息发生了错误,生成的失败响应中可以显示发生错误的那一项信息,以便用户对信息进行修改,并重新提供正确的个人信息。

202、认证中心获取公开信息模板,按照公开信息模板,在个人信息中提取符合公开信息模板的公开信息,将公开信息作为证书公钥。

在本发明实施例中,由于后续生成的数字证书是具有证书公钥和证书私钥的,证书私钥和证书公钥可以相互解密和加密,且证书公钥是公开的,而证书私钥是用户自己持有的,为了使后续给用户生成的数字证书与用户是相关的,从而在保证数字证书的唯一性的同时,还可以将数字证书与用户关联起来,可以在个人信息中提取公开信息,并将公开信息作为证书公钥,进而基于该公开信息为用户生成数字证书。

其中,由于用户提供的个人信息中有些信息是可以公开的,有些是私密信息不便于公开,因此,认证中心中可以设置一个确定哪些信息是可以公开的标准,也即设置一个公开信息模板,并按照公开信息模板在用户提供的个人信息中提取公开信息,将提取到的公开信息作为证书公钥。具体地,公开信息可为用户的个人信息中的社保账号。本发明实施例对公开信息包括的内容不进行具体限定。

203、认证中心确定加密算法,采用加密算法,对证书公钥进行计算,生成证书私钥。

在本发明实施例中,当确定了证书公钥后,为了使证书公钥与证书私钥是对应的,从而实现证书公钥和证书私钥之间可以相互加密或者解密,认证中心确定加密算法,并采用该加密算法,对证书公钥进行计算,从而生成证书私钥,以便后续基于证书私钥和证书公钥生成数字证书。其中,加密算法可以为aes(advancedencryptionstandard,高级加密标准)算法。本发明实施例对加密算法为哪一种算法不进行具体限定。

204、基于证书私钥,认证中心对个人信息和证书公钥进行签名,生成数字证书。

在本发明实施例中,当生成了证书私钥后,便可以基于证书私钥、证书公钥和个人信息为该用户生成数字证书。为了使生成的数字证书与用户是相关的,且生成的数字证书具有唯一性,在生成数字证书时,认证中心可以基于证书私钥,对个人信息和证书公钥进行签名,将签名得到的结果作为数字证书。其中,由于数字证书是需要上传至病历区块链中,由病历区块链在存储电子病历时使用的,因此,数字证书中仅包括证书公钥,并没有包括证书私钥,证书私钥是需要认证中心下发给用户自行保存的,以便用户基于该证书私钥可以在病历区块链中请求电子病历查询、电子病历存储等操作。

205、认证中心将数字证书和个人信息绑定认证,提取公开信息作为用户标识,将绑定认证后的数字证书和用户标识传输至病历区块链。

在本发明实施例中,病历区块链用于存储用户的电子病历。为了使病历区块链可以基于数字证书为用户提供病历存储、病历查询等服务,认证中心在生成了数字证书后,将该数字证书和个人信息绑定认证,并将该数字证书传输给病历区块链,以便病历区块链将该数字证书存储。

考虑到病历区块链在同一时间可能会接收到大量的数字证书,很容易造成数字证书与用户之间对应关系的混淆,因此,认证中心在将数字证书传输给病历区块链之前,先在个人信息中提取用户的用户标识,并将数字证书和用户标识对应传输至病历区块链。其中,认证中心在将数字证书和用户标识对应传输至病历区块链中时,可以采用用户标识对数字证书进行标记,实现将数字证书与用户标识一一对应。具体地,用户标识可为姓名、社保账号等,或者还可直接将个人信息中的公开信息作为用户标识,本发明实施例对用户标识不进行具体限定。

需要说明的是,在将数字证书和用户标识传输至病历区块链后,由于用户也需要获知在认证中心中认证得到的数字证书,且需要用户将证书私钥自行保存,因此,认证中心还将数字证书和证书私钥下发给用户,以便用户将数字证书和证书私钥存储。

206、病历区块链接收认证中心传输的绑定认证的数字证书和用户标识,检测病历区块链中至少一个用户信息区块的可用数据量,统计绑定认证的数字证书和用户标识的目标数据量,根据目标数据量,在至少一个用户信息区块中确定目标用户信息区块,将绑定认证的数字证书和用户标识添加至目标用户信息区块中进行存储。

在本发明实施例中,当病历区块链接收到认证中心传输的数字证书和用户标识后,便确定该用户在认证中心中认证成功了。由于病历区块链是采用区块的形式存储数据的,考虑到有一些用户信息区块还没有饱和,因此,病历区块链在存储绑定认证的数字证书和用户标识时,首先,检测病历区块链中至少一个用户信息区块的可用数据量,统计绑定认证的数字证书和用户标识的目标数据量;随后,将至少一个用户信息区块的可用数据量与目标数据量进行比对,将可用数据量大于等于目标数据量的用户信息区块作为目标用户区块,将绑定认证的数字证书和用户标识添加至目标用户信息区块中进行存储。需要说明的是,在确定目标用户区块时,可能有多个用户信息区块的可用数据量均大于等于目标数据量,则此时可以在多个用户信息区块中选取可用数据量最小的来存储绑定认证的数字证书和用户标识,或者随机选取一个用户信息区块存储绑定认证的数字证书和用户标识。本发明实施例对选取目标用户信息区块的方式不进行具体限定。

通过执行上述步骤201至步骤206中所示的过程,用户便可以完成在认证中心中的认证,使得认证中心为用户生成并下发数字证书,这样,用户便可以继续在病历区块链中请求存储电子病历,该方法应用于病历区块链中,参见图2b,具体包括:

207、当接收到电子病历存储请求时,病历区块链确定电子病历存储请求中携带的用户标识指示的目标数字证书。

在本发明实施例中,由于病历区块链中存储有每一个在认证中心中注册过的用户的数字证书,因此,在接收到携带有用户标识的电子病历存储请求时,病历区块链可基于该用户标识进行查找,查找与该用户标识对应的数字证书作为目标数字证书,以便在后续基于该目标数字证书对接收到的待存储电子病历进行加密,保证电子病历存储的安全性。需要说明的是,确定用户标识指示的目标电子证书的过程也是对用户身份进行检测的过程,如果未能确定用户标识指示的目标电子证书,也即病历区块链中没有存储用户标识指示的目标电子证书,则表明用户尚未在区块链中进行注册,需要用户在认证中心中进行注册后才可以将电子病历存储在病历区块链中,这样,便不能继续执行下述操作。

208、病历区块链对目标数字证书进行数据读取,提取目标数字证书包括的证书公钥,基于证书公钥,对待存储电子病历进行加密,生成病历密文。

在本发明实施例中,当根据电子病历存储请求中携带的用户标识确定了目标数字证书后,由于目标数字证书中包括证书公钥,为了保证待存储电子病历的存储安全,可以在目标数字证书中提取证书公钥,基于该证书公钥,对该待存储电子病历进行加密,生成包括待存储电子病历的病历密文,并在后续将该病历密文进行存储,以便保证待存储电子病历的安全性。

209、病历区块链基于病历密文,生成病历区块,将病历区块添加至病历区块链中存储。

在本发明实施例中,由于在存储病历密文时,是由病历区块链存储的,因此,在生成病历密文后,为了将病历密文存储,基于病历密文,生成包括病历密文的病历区块,将该病历区块添加至病历区块链中存储,从而完成待存储电子病历的存储。

需要说明的是,由于每一个用户端中都存储有与一个相同且同步的病历区块链,为了保证每一个用户端中的病历区块链的数据是一致的,从而使得在哪一个用户端中均可以实现对电子病历的查询,因此,在将病历区块添加至病历区块链中存储后,将生成的病历区块广播给每一个用户端,以便每一个用户端均将该病历区块添加至自身存储的病历区块链中,从而保证数据的一致性。

在实际应用的过程中,用户在医院中看病时,需要医院在病历区块链中获取用户之前的电子病历,因此,病历区块链还为用户提供电子病历查询服务,参见图2c,该方法包括:

210、当病历区块链接收到电子病历查询请求时,在电子病历查询请求中提取待查询用户标识、待查询数字证书以及待查询证书签名。

在本发明实施例中,用户端为用户提供查询入口,当检测到用户触发该查询入口时,确定检测到用户请求查询。由于病历区块链中存储电子病历与用户标识是一一对应的,因此,需要用户提供待查询用户标识,以便按照该待查询用户标识查询指定的电子病历;另外,为了保证电子病历的安全性,避免电子病历被不法分子获取,造成电子病历中信息的泄露,在需要用户提供待查询用户标识的同时,还需要用户提供待查询数字证书,以便通过对该待查询数字证书进行验证来实现对请求进行电子病历查询的用户的身份的验证。而且,为了进一步保证后续传输的查询请求的安全性,避免查询请求在传输的过程中被篡改,病历区块链接收到的电子病历查询请求中还可能会携带用户端采用待查询证书私钥对待查询数字证书进行签名生成的待查询证书签名,这样,病历区块链还需要将该待查询证书签名提取出来,以便后续通过对该待查询证书签名进行验证来确定生成的查询请求是否被篡改。

211、病历区块链对待查询用户标识、待查询数字证书和待查询证书签名进行验证,如果对待查询用户标识、待查询数字证书和待查询证书签名验证成功,则执行下述步骤212;如果对待查询用户标识、待查询数字证书和待查询证书签名验证失败,则执行下述步骤213。

在本发明实施例中,在本发明实施例中,当病历区块链提取到待查询用户标识、待查询数字证书以及待查询证书签名后,便通过对待查询用户标识、待查询数字证书和待查询证书签名进行验证,实现对用户的身份进行验证。具体地,在对待查询用户标识、待查询数字证书和待查询证书签名进行验证时,首先,在待查询数字证书中提取待查询证书公钥,采用待查询证书公钥对待查询证书签名解密,判断待查询证书公钥是否成功对待查询证书签名解密。待验证证书签名是基于待验证数字证书的待验证证书私钥对待验证证书进行签名得到的,因此,基于公私钥对可以相互加密和解密的属性,可以采用待验证证书公钥对待验证证书签名解密,并根据是否签名成功来确定待验证证书签名的真实性。随后,为了验证该用户是否在病历区块链中注册过,避免未能在病历区块链中注册的不法分子将恶意信息混入病历区块链中,因此,需要根据待查询用户标识验证用户是否在病历区块链中注册过,也即在病历区块链中查询待查询用户标识对应的数字证书与待查询数字证书是否一致。

这样,当采用待查询证书公钥对待查询证书签名解密成功,且确定病历区块链中存储有与待查询用户标识对应的待查询用户信息时,确定对待查询用户标识、待查询数字证书和待查询证书签名验证成功,这时,便可以为用户返回请求查询的电子病历,也即执行下述步骤212;当采用待查询证书公钥对待查询证书签名解密失败,或确定病历区块链中未存储有与待查询用户标识对应的待查询用户信息时,确定对待查询用户标识、待查询数字证书和待查询证书签名验证失败,这时,表示用户的身份无法确定,或者用户未在认证中心中认证过,此时,便需要用户重新发送查询请求,也即执行下述步骤213。

212、如果对待查询用户标识、待查询数字证书和待查询证书签名验证成功,则病历区块链确定待查询数字证书指示的待查询病历密文,将待查询病历密文返回。

在本发明实施例中,如果病历区块链对待查询用户标识、待查询数字证书和待查询证书签名验证成功,则表示待查询用户标识指示的用户在认证中心中认证过,且身份已经通过了验证,此时,便可以向用户返回其想要查询的电子病历。

需要说明的是,由于病历区块链中在存储电子病历时,是生成了包括电子病历的病历密文进行存储的,因此,病历区块链根据待查询用户标识获取到的也是病历密文,这样,病历区块链便将获取到的待查询病历密文返回至用户端,以便用户端通过对该病历密文进行解密实现对电子病历的查看。

213、如果对待查询用户标识、待查询数字证书和待查询证书签名验证失败,则病历区块链生成失败响应,并返回失败响应。

在本发明实施例中,如果病历区块链对待查询用户标识、待查询数字证书和待查询证书签名验证失败,则表示对用户的身份验证失败了,或者用户没有在认证中心中认证,因此,生成失败响应,并返回失败响应。

本发明实施例提供的方法,当接收到用户的认证请求时,在认证请求中提取用户的个人信息,并根据个人信息中的公开信息生成证书公钥以及证书私钥,进而基于证书私钥,生成数字证书,使得根据用户的公开信息为用户生成数字证书,基于数字证书实现对用户的认证,无需直接使用个人信息进行信息存储等操作,降低用户的个人信息被泄露的风险,避免给用户带来严重的损失,安全性较好。

进一步地,作为图1a所述方法的具体实现,本发明实施例提供了一种用户认证装置,如图3a所示,所述装置包括:提取模块301,生成模块302,签名模块303和传输模块304。

该提取模块301,用于当接收到用户的认证请求时,在认证请求中提取用户的个人信息,认证请求中携带个人信息;

该生成模块302,用于根据所述个人信息中的公开信息,生成证书公钥,采用加密算法,对所述证书公钥进行计算,生成证书私钥;

该签名模块303,用于基于证书私钥,对个人信息和证书公钥进行签名,生成数字证书;

该传输模块304,用于将所述数字证书和所述个人信息绑定认证,提取所述公开信息作为用户标识,将绑定认证后的所述数字证书和所述用户标识传输至病历区块链,所述病历区块链用于存储用户的电子病历。

在具体的应用场景中,如图3b所示,该装置还包括验证模块305和返回模块306。

该验证模块305,用于对个人信息进行验证,判断个人信息是否为真实的个人信息;

该生成模块302,还用于如果确定个人信息是真实的个人信息,则继续执行上述获取证书公钥并生成数字证书的过程;

该返回模块306,用于如果确定个人信息不是真实的个人信息,则生成失败响应,将失败响应返回至用户。

在具体的应用场景中,如图3c所示,该生成模块302,包括提取子模块3021和计算子模块3022。

该提取子模块3021,用于获取公开信息模板,按照公开信息模板,在个人信息中提取符合公开信息模板的公开信息,将公开信息作为证书公钥;

该计算子模块3022,用于确定加密算法,采用加密算法,对证书公钥进行计算,生成证书私钥,加密算法至少为高级加密标准aes算法。

本发明实施例提供的装置,可以当接收到用户的认证请求时,在认证请求中提取用户的个人信息,并根据个人信息中的公开信息生成证书公钥以及证书私钥,进而基于证书私钥,生成数字证书,使得根据用户的公开信息为用户生成数字证书,基于数字证书实现对用户的认证,无需直接使用个人信息进行信息存储等操作,降低用户的个人信息被泄露的风险,避免给用户带来严重的损失,安全性较好。

进一步地,作为图1b所述方法的具体实现,本发明实施例提供了一种用户认证装置,如图4a所示,所述装置包括:接收模块401,统计模块402和存储模块403。

该接收模块401,用于接收认证中心传输的绑定认证的数字证书和用户标识,数字证书由认证中心对用户标识指示的用户进行认证后,并根据用户标识指示的用户的个人信息生成;

该统计模块402,用于检测病历区块链中至少一个用户信息区块的可用数据量,统计绑定认证的数字证书和用户标识的目标数据量,根据目标数据量,在至少一个用户信息区块中确定目标用户信息区块,目标用户信息区块的可用数据量大于等于目标数据量;

该存储模块403,用于将绑定认证的数字证书和用户标识添加至目标用户信息区块中进行存储。

在具体的应用场景中,如图4b所示,该装置还包括确定模块404,加密模块405和生成模块406。

该确定模块404,用于当接收到电子病历存储请求时,确定电子病历存储请求中携带的用户标识指示的目标数字证书;

该加密模块405,用于对目标数字证书进行数据读取,提取目标数字证书包括的证书公钥,基于证书公钥,对待存储电子病历进行加密,生成病历密文;

该生成模块406,用于基于病历密文,生成病历区块,将病历区块添加至病历区块链中存储。

在具体的应用场景中,如图4c所示,该装置还包括提取模块407,验证模块408,第一返回模块409和第二返回模块410。

该提取模块407,用于当接收到电子病历查询请求时,在电子病历查询请求中提取待查询用户标识、待查询数字证书以及待查询证书签名;

该验证模块408,用于对待查询用户标识、待查询数字证书和待查询证书签名进行验证;

该第一返回模块409,用于如果对待查询用户标识、待查询数字证书和待查询证书签名验证成功,则在至少一个用户信息区块中查询待查询数字证书指示的待查询病历密文,将待查询病历密文返回;

该第二返回模块410,用于如果对待查询用户标识、待查询数字证书和待查询证书签名验证失败,则生成失败响应,并返回失败响应。

在具体的应用场景中,该验证模块408,用于在待查询数字证书中提取待查询证书公钥,采用待查询证书公钥对待查询证书签名解密,判断待查询证书公钥是否成功对待查询证书签名解密;在病历区块链中查询待查询用户标识对应的数字证书与待查询数字证书是否一致;

相应地,该第一返回模块409,用于当采用待查询证书公钥对待查询证书签名解密成功,且确定待查询用户标识对应的数字证书与待查询数字证书一致时,确定对待查询用户标识、待查询数字证书和待查询证书签名验证成功;

该第二返回模块410,用于当采用待查询证书公钥对所述待查询证书签名解密失败,或确定所述待查询用户标识对应的数字证书与所述待查询数字证书不一致时,确定对所述待查询用户标识、所述待查询数字证书和所述待查询证书签名验证失败。

本发明实施例提供的装置,接收认证中心传输的绑定认证的数字证书和用户标识,并检测病历区块链中至少一个用户信息区块的可用数据量,统计绑定认证的数字证书和用户标识的目标数据量,根据目标数据量,在至少一个用户信息区块中确定目标用户信息区块,将绑定认证的数字证书和用户标识添加至目标用户信息区块中进行存储,使得基于数字证书实现对用户的认证,无需直接使用个人信息进行信息存储等操作,降低用户的个人信息被泄露的风险,避免给用户带来严重的损失,安全性较好。

需要说明的是,本发明实施例提供的一种用户认证装置所涉及各功能单元的其他相应描述,可以参考图1a至图1b和图2a至图2c中的对应描述,在此不再赘述。

在示例性实施例中,参见图5,还提供了一种设备,该设备500包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的用户认证方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的用户认证方法的步骤。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

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