基于密码学的多层级角色权限控制方法和装置
技术领域
本发明属于计算机技术领域,尤其涉及一种基于密码学的多层级角色权限控制方法、装置、电子设备及可存储介质。
背景技术
非对称加密算法(asymmetric cryptographic algorithm):该算法需要两个密钥,公开密钥(public key)和私有密钥(private key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
分层确定性密码学技术(Hierarchical Deterministic)-简称HD:分层(Hierarchical)指的是密钥之间存在层级关系,从父密钥可以生成子密钥;确定性(Deterministic)指的是,根据密钥在层级中的编号,就可以从父密钥确定性地推导出该密钥的具体内容。
1、传统的权限控制方案分为功能访问控制和数据访问控制,其只能解决访问权限控制需求,无法解决验证权限需求。
2、传统方案的安全性和稳定性都存在较大隐患,如利用模拟登录、暴力破解、反编译等技术手段可攻击权限系统,破解得到最高权限。
3、传统方案还需要针对业务需求情况,专门定制开发,建设成本和维护成本偏高。
4、单纯的分层确定性密码技术无法实现延时访问、单时段数据访问等时间维度的访问权限控制,同时也无法实现验证权限控制功能。
发明内容
本发明实施例的第一目的在于提供一种基于密码学的多层级角色权限控制方法,旨在解决上述现有技术存在的至少一个问题。
本发明实施例是这样实现的,一种基于密码学的多层级角色权限控制方法,应用于服务端,包括:
接收种子数据,根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色,其中,所述多级密钥为分层确定性密钥,每个所述密钥包括公钥和私钥;
响应于第一角色上传数据原文的操作,生成所述数据原文的第一哈希头,将所述数据原文用第一角色的公钥加密获得第一密文、用第一角色的私钥和所述第一哈希头签名以获得数据签名,将所述数据签名与所述第一密文组合为带签名的第一密文,将所述第一哈希头、带签名的第一密文存储至数据库;
响应于第二角色获取所述第一密文的请求,将所述第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器;
响应于第三角色获取第二密文和第一哈希头的请求,将所述第二密文和第一哈希头发送至第三角色的客户端,以使第三角色的客户端解密所述第二密文获得数据原文和所述第一哈希头并根据获得的数据原文生成第二哈希头,将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文。
在一个实施例中,所述根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色包括:根据所述种子数据生成多级密钥,将所述多级密钥根据预设规则分配下发至对应权限的角色,所述预设规则包括:具有可上传数据和下载自己上传的权限的角色分配所述多级密钥的最后一层级密钥,具有上传和访问自己及自己对应的多层级密钥的下层级密钥对应的角色上传的数据权限的角色分配所述多级密钥的父密钥和最后一层级密钥之间层级的密钥,具有上传和访问所有角色上传数据的权限的角色分配所述多级密钥的父密钥,不可当期访问数据的角色在下期密钥分配时分配当期的密钥。
在一个实施例中,所述第一角色只具有上传数据和下载自己上传的数据的权限,所述第二角色具有访问所有数据或自己及自己对应的多层级密钥的下层级密钥对应的角色上传的数据的权限,所述第三角色具有验证权限。
在一个实施例中,通过哈希算法生成所述第一哈希头和第二哈希头。
在一个实施例中,所述第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文包括:第二角色的客户端利用第一角色的公钥,验证所述第一密文的签名得到第一角色的身份以确定第一角色的角色序号,根据所述第一角色的角色序号和第二角色的密钥和链码生成所述第一角色的私钥,利用所述第一角色的私钥解密所述第一密文得到数据原文。
在一个实施例中,所述第三角色的客户端解密所述第二密文获得数据原文包括:所述第三角色的客户端以所述私钥进行解密所述第二密文得到数据原文。
在一个实施例中,所述将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文包括:当所述第一哈希头和第二哈希头一致时,判定所述第二角色没有篡改数据原文,当所述第一哈希头和第二哈希头不一致时,判定所述第二角色有篡改数据原文。
本发明实施例的另一目的在于提供一种基于密码学的多层级角色权限控制装置,应用于服务端,包括:
密钥生成模块,用于接收种子数据,根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色,其中,所述多级密钥为分层确定性密钥,每个所述密钥包括公钥和私钥;
数据处理模块,用于响应于第一角色上传数据原文的操作,生成所述数据原文的第一哈希头,将所述数据原文用第一角色的公钥加密、用第一角色的私钥和所述第一哈希头签名以获得数据签名,将所述数据签名与所述第一密文组合为带签名的第一密文,将所述第一哈希头、带签名的第一密文存储至数据库;
请求处理模块,用于响应于第二角色获取所述第一密文的请求,将所述第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器;
数据验证模块,用于响应于第三角色获取第二密文和第一哈希头的请求,将所述第二密文和第一哈希头发送至第三角色的客户端,以使第三角色的客户端解密所述第二密文获得数据原文和所述第一哈希头并根据获得的数据原文生成第二哈希头,将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文。
本发明实施例的又一目的在于提供一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述基于密码学的多层级角色权限控制方法的步骤。
本发明实施例的再一目的在于一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述基于密码学的多层级角色权限控制方法的步骤。
本发明实施例提供的一种基于密码学的多层级角色权限控制方法,应用于服务端,包括:接收种子数据,根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色,其中,所述多级密钥为分层确定性密钥,每个所述密钥包括公钥和私钥;响应于第一角色上传数据原文的操作,生成所述数据原文的第一哈希头,将所述数据原文用第一角色的公钥加密获得第一密文、用第一角色的私钥和所述第一哈希头签名以获得数据签名,将所述数据签名与所述第一密文组合为带签名的第一密文,将所述第一哈希头、带签名的第一密文存储至数据库;响应于第二角色获取所述第一密文的请求,将所述第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器;响应于第三角色获取第二密文和第一哈希头的请求,将所述第二密文和第一哈希头发送至第三角色的客户端,以使第三角色的客户端解密所述第二密文获得数据原文和所述第一哈希头并根据获得的数据原文生成第二哈希头,将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文。该多层级角色权限控制方法,应用于服务端后,可实现以下有益效果:
1、权限可灵活调整分配:根据现实业务需求,快速灵活的调整角色权限,并实现延时权限,单时段权限等按时间控制的访问权限;同时可区分访问权限和验证权限;
2、极高的安全性:系统即便被反编译、模拟登陆欺诈等手段的击破,黑客可获取到的也是加密内容;
3、普适、易用:不需专门定制开发,只通过向每个角色分配的密钥即可实现权限控制;
总之,本发明适用于在空间维度和时间维度的各种访问权限和验证权限需求,真实生活中极其复杂的业务需求同样可以通过简单配置灵活实现,极大的减少权限系统的开发成本与维护成本。本发明基于密码学技术,以密钥确定权限,天然具有强大的安全性和稳定性。
附图说明
图1为本发明一个实施例提供的一种基于密码学的多层级角色权限控制方法的实现流程;
图2为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的上下级角色权限实现示意图;
图3为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的验证方式示意;
图4为本发明实施例提供的一种基于密码学的多层级角色权限控制装置的主要模块示意图;
图5为本发明实施例提供的可以应用于其中的示例性系统架构图;
图6为适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图;
图7为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的具体应用时的示意图;
图8为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的分层确定性密钥关系图;
图9为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的多层级密钥的主密钥生成方式图;
图10为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的多层级密钥的子私钥生成方式图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和 / 或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。
需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以互相组合。
为了进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如下。
图1示出了本发明实施例提供的一种基于密码学的多层级角色权限控制方法的实现流程,为了便于说明,仅示出与本发明实施例相关的部分,详述如下:
S101:接收种子数据,根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色,其中,所述多级密钥为分层确定性密钥,每个所述密钥包括公钥和私钥;
S102:响应于第一角色上传数据原文的操作,生成所述数据原文的第一哈希头,将所述数据原文用第一角色的公钥加密获得第一密文、用第一角色的私钥和所述第一哈希头签名以获得数据签名,将所述数据签名与所述第一密文组合为带签名的第一密文,将所述第一哈希头、带签名的第一密文存储至数据库;
S103:响应于第二角色获取所述第一密文的请求,将所述第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器;
S104:响应于第三角色获取第二密文和第一哈希头的请求,将所述第二密文和第一哈希头发送至第三角色的客户端,以使第三角色的客户端解密所述第二密文获得数据原文和所述第一哈希头并根据获得的数据原文生成第二哈希头,将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文。
在S101中:接收种子数据,根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色,其中,所述多级密钥为分层确定性密钥,每个所述密钥包括公钥和私钥。种子数据为用户自己定义的助记词。如图8为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的分层确定性密钥关系图,根据种子数据通过分层确定性密钥技术生成如图8所示的多级密钥,其中主密钥可称为父密钥,子密钥的子密钥为孙密钥,图9为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的多层级密钥的主密钥生成方式图,将种子数据进行哈希运算后生成512位数据,取其中256位作为主链码,取另外256位作为主私钥,根据主私钥生成相应的主公钥,主私钥、主公钥组成主密钥,主链码作为子密钥的原始数据之一。图10为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的多层级密钥的子私钥生成方式图,以子密钥序号、上述生成的主链码和主私钥组合后做为子密钥的种子数据,然后以此种子数据进行和主密钥的生成方式相同的操作以生成子链码、子私钥和子公钥,以得到子密钥以及孙密钥的生成原始数据。由此,可以在得知某子密钥序号时,可以用上述方式根据父密钥推导出其子密钥。当多级密钥生成后,可以分配给对应的角色,其中生成密钥的层级由设定的角色的层级决定,比如,有三个层级的角色时,可以生成三级密钥,即父密钥、子密钥和孙密钥,然后将父密钥分配给最高级别的角色,将子密钥分配给中间级别的角色,将子密钥分配给最低等级的角色,其中,级别越低,权限越低,当然,还可以根据实际业务需求,进行灵活的密钥分配,以实现只能有用权限的人员访问相关内容,比如:角色权限需求与单个密钥有交集或补集,可通过分配给角色多项密钥组合,以实现灵活的权限控制;定期分配密钥以实现时间维度控制权限,通过分配上期密钥,实现延期访问权限;部分角色拥有验证权限,需验证的单条原文信息由被验证方(数据输入方)或管理方(最高权限方)发送给验证方,验证方利用原文进行哈希运算,与验证方自行取得的加密信息的哈希头进行比对,若结果一致,则验证内容未被篡改。
在一个实施例中,所述根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色包括:根据所述种子数据生成多级密钥,将所述多级密钥根据预设规则分配下发至对应权限的角色,所述预设规则包括:具有可上传数据和下载自己上传的权限的角色分配所述多级密钥的最后一层级密钥,具有上传和访问自己及自己对应的多层级密钥的下层级密钥对应的角色上传的数据权限的角色分配所述多级密钥的父密钥和最后一层级密钥之间层级的密钥,具有上传和访问所有角色上传数据的权限的角色分配所述多级密钥的父密钥,不可当期访问数据的角色在下期密钥分配时分配当期的密钥。由此实现不同角色不同权限的安全权限管理。
在一个实施例中,所述第一角色只具有上传数据和下载自己上传的数据的权限,所述第二角色具有访问所有数据或自己及自己对应的多层级密钥的下层级密钥对应的角色上传的数据的权限,所述第三角色具有验证权限。在这里,第二角色可以是最高权限,即具有访问所有角色上传的数据和信息的权限,因此可以分配多级密钥的父密钥,第一角色只有上传数据和访问下载自己上传数据信息的权限,因此给其分配多级密钥的孙密钥,此时,还可以包括第四角色,第四角色具有可以访问自己和归属于其下级角色上传的数据和信息的权限,比如在实际业务场景中,部分拥有第一角色的人员为为第四角色人员的下级,第四角色需要访问其下属上传的数据和信息,因此可以给他分配其下属人员孙密钥对应的子密钥,以实现该功能。在这里,也可以不包括第四角色,此时,第二角色具有访问部分数据的权限,即充当上述的第四角色,此时没有最高权限的角色。在一个具体场景中,某一角色需要权限为只可访问自己及其下属角色的往期历史数据和信息,那么在给其分配密钥时,只分配上期多级密钥的子密钥,该子密钥为其下属的孙密钥对应的子密钥,由此实现实现延期访问权限。
在一个实施例中,种子数据的获取可以进行期限的自行设置,比如,可以设置为7天、21天、一个月等,由此实现对数据的期限管理。
在一个实施例中,通过哈希算法生成所述第一哈希头和第二哈希头。
在S102中:响应于第一角色上传数据原文的操作,生成所述数据原文的第一哈希头,将所述数据原文用第一角色的公钥加密获得第一密文、用第一角色的私钥和所述第一哈希头签名以获得数据签名,将所述数据签名与所述第一密文组合为带签名的第一密文,将所述第一哈希头、带签名的第一密文存储至数据库。由此实现数据的安全存储,就算被黑客盗取数据,数据也是加密的数据,对于加密数据的爆破和破解也需要多级密钥才可以,使得数据的存储更加安全可靠。
在S103中:响应于第二角色获取所述第一密文的请求,将所述第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器。由此可以使得需要访问数据的角色方便的访问和查看数据,且防止其篡改数据进行伪证或造假。具体的,可以为:响应于第二角色获取所述第一角色上传数据的请求,将所述第一哈希头、带签名的第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述带签名的第一密文的签名确定第一角色身份、进而用第二角色密钥推导出第一角色密钥解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器。
在一个实施例中,所述第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文包括:第二角色的客户端利用第一角色的公钥,验证所述第一密文的签名得到第一角色的身份以确定第一角色的角色序号,根据所述第一角色的角色序号和第二角色的密钥和链码生成所述第一角色的私钥,利用所述第一角色的私钥解密所述第一密文得到数据原文。
在S104中:响应于第三角色获取第二密文和第一哈希头的请求,将所述第二密文和第一哈希头发送至第三角色的客户端,以使第三角色的客户端解密所述第二密文获得数据原文和所述第一哈希头并根据获得的数据原文生成第二哈希头,将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文。由此可以实现验证方验证数据原文是否被篡改,进而防止最高权限用户利用最高权限修改和篡改数据进行弄虚作假。
在一个实施例中,所述第三角色的客户端解密所述第二密文获得数据原文包括:所述第三角色的客户端以所述私钥进行解密所述第二密文得到数据原文。
在一个实施例中,所述将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文包括:当所述第一哈希头和第二哈希头一致时,判定所述第二角色没有篡改数据原文,当所述第一哈希头和第二哈希头不一致时,判定所述第二角色有篡改数据原文。
具体的,图7为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的具体应用时的示意图,其可以应用于 “数据查询存证平台”,通过本发明实现了灵活可变的链上信息权限(包括访问权限和验证权限)控制。该场景密钥体系共3层,需求角色分为ABCD共4类。其中:A需要访问所有信息原文;B需要访问所有其下级的往期信息原文,但本期信息不可见;C类不可直接访问任何原文,需要A传给其原文,由其验证原文信息是否被篡改;D需要访问自己的所有内容原文。
根据上述权限需求,设定的角色权限及密钥分配:角色A:拥有所有角色上传信息的访问权限,分配父密钥;角色B:拥有其所有下级角色的历期上传信息的访问权限,分配上一期的子密钥1;角色C:拥有验证权限,通过从A获取信息原文,进行哈希操作,与自己取得相应信息的哈希头比对,验证A传递的信息是否被篡改;角色D:拥有本角色上传信息的访问权限,分配相对应的孙密钥。若后期各角色的权限需求有变化或增加更多权限角色,可通过增加密钥体系层级,结合定时轮换密钥实现新的需求。
由此,本发明实施例提供的一种基于密码学的多层级角色权限控制方法,应用于服务端,包括:接收种子数据,根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色,其中,所述多级密钥为分层确定性密钥,每个所述密钥包括公钥和私钥;响应于第一角色上传数据原文的操作,生成所述数据原文的第一哈希头,将所述数据原文用第一角色的公钥加密获得第一密文、用第一角色的私钥和所述第一哈希头签名以获得数据签名,将所述数据签名与所述第一密文组合为带签名的第一密文,将所述第一哈希头、带签名的第一密文存储至数据库;响应于第二角色获取所述第一密文的请求,将所述第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器;响应于第三角色获取第二密文和第一哈希头的请求,将所述第二密文和第一哈希头发送至第三角色的客户端,以使第三角色的客户端解密所述第二密文获得数据原文和所述第一哈希头并根据获得的数据原文生成第二哈希头,将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文。该多层级角色权限控制方法,应用于服务端后,可实现以下有益效果:
1、权限可灵活调整分配:根据现实业务需求,快速灵活的调整角色权限,并实现延时权限,单时段权限等按时间控制的访问权限;同时可区分访问权限和验证权限;
2、极高的安全性:系统即便被反编译、模拟登陆欺诈等手段的击破,黑客可获取到的也是加密内容;
3、普适、易用:不需专门定制开发,只通过向每个角色分配的密钥即可实现权限控制;
总之,本发明适用于在空间维度和时间维度的各种访问权限和验证权限需求,真实生活中极其复杂的业务需求同样可以通过简单配置灵活实现,极大的减少权限系统的开发成本与维护成本。本发明基于密码学技术,以密钥确定权限,天然具有强大的安全性和稳定性。
图4示出了本发明实施例提供的一种基于密码学的多层级角色权限控制装置的主要模块示意图,为了便于说明,仅示出与本发明实施例相关的部分,详述如下:
一种基于密码学的多层级角色权限控制装置200,包括:
密钥生成模块201,用于接收种子数据,根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色,其中,所述多级密钥为分层确定性密钥,每个所述密钥包括公钥和私钥;
数据处理模块202,用于响应于第一角色上传数据原文的操作,生成所述数据原文的第一哈希头,将所述数据原文用第一角色的公钥加密获得第一密文、用第一角色的私钥和所述第一哈希头签名以获得数据签名,将所述数据签名与所述第一密文组合为带签名的第一密文,将所述第一哈希头、带签名的第一密文存储至数据库;
请求处理模块203,用于响应于第二角色获取所述第一密文的请求,将所述第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器;
数据验证模块204,用于响应于第三角色获取第二密文和第一哈希头的请求,将所述第二密文和第一哈希头发送至第三角色的客户端,以使第三角色的客户端解密所述第二密文获得数据原文和所述第一哈希头并根据获得的数据原文生成第二哈希头,将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文。
对于密钥生成模块201,用于接收种子数据,根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色,其中,所述多级密钥为分层确定性密钥,每个所述密钥包括公钥和私钥。接收种子数据,根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色,其中,所述多级密钥为分层确定性密钥,每个所述密钥包括公钥和私钥。种子数据为用户自己定义的助记词。如图8为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的分层确定性密钥关系图,根据种子数据通过分层确定性密钥技术生成如图8所示的多级密钥,其中主密钥可称为父密钥,子密钥的子密钥为孙密钥,图9为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的多层级密钥的主密钥生成方式图,将种子数据进行哈希运算后生成512位数据,取其中256位作为主链码,取另外256位作为主私钥,根据主私钥生成相应的主公钥,主私钥、主公钥组成主密钥,主链码作为子密钥的原始数据之一。图10为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的多层级密钥的子私钥生成方式图,以子密钥序号、上述生成的主链码和主私钥组合后做为子密钥的种子数据,然后以此种子数据进行和主密钥的生成方式相同的操作以生成子链码、子私钥和子公钥,以得到子密钥以及孙密钥的生成原始数据。由此,可以在得知某子密钥序号时,可以用上述方式根据父密钥推导出其子密钥。当多级密钥生成后,可以分配给对应的角色,其中生成密钥的层级由设定的角色的层级决定,比如,有三个层级的角色时,可以生成三级密钥,即父密钥、子密钥和孙密钥,然后将父密钥分配给最高级别的角色,将子密钥分配给中间级别的角色,将子密钥分配给最低等级的角色,其中,级别越低,权限越低,当然,还可以根据实际业务需求,进行灵活的密钥分配,以实现只能有用权限的人员访问相关内容,比如:角色权限需求与单个密钥有交集或补集,可通过分配给角色多项密钥组合,以实现灵活的权限控制;定期分配密钥以实现时间维度控制权限,通过分配上期密钥,实现延期访问权限;部分角色拥有验证权限,需验证的单条原文信息由被验证方(数据输入方)或管理方(最高权限方)发送给验证方,验证方利用原文进行哈希运算,与验证方自行取得的加密信息的哈希头进行比对,若结果一致,则验证内容未被篡改。
在一个实施例中,所述根据所述种子数据生成多级密钥,分配下发密钥至对应权限的角色包括:根据所述种子数据生成多级密钥,将所述多级密钥根据预设规则分配下发至对应权限的角色,所述预设规则包括:具有可上传数据和下载自己上传的权限的角色分配所述多级密钥的最后一层级密钥,具有上传和访问自己及自己对应的多层级密钥的下层级密钥对应的角色上传的数据权限的角色分配所述多级密钥的父密钥和最后一层级密钥之间层级的密钥,具有上传和访问所有角色上传数据的权限的角色分配所述多级密钥的父密钥,不可当期访问数据的角色在下期密钥分配时分配当期的密钥。由此实现不同角色不同权限的安全权限管理。
在一个实施例中,所述第一角色只具有上传数据和下载自己上传的数据的权限,所述第二角色具有访问所有数据或自己及自己对应的多层级密钥的下层级密钥对应的角色上传的数据的权限,所述第三角色具有验证权限。在这里,第二角色可以是最高权限,即具有访问所有角色上传的数据和信息的权限,因此可以分配多级密钥的父密钥,第一角色只有上传数据和访问下载自己上传数据信息的权限,因此给其分配多级密钥的孙密钥,此时,还可以包括第四角色,第四角色具有可以访问自己和归属于其下级角色上传的数据和信息的权限,比如在实际业务场景中,部分拥有第一角色的人员为为第四角色人员的下级,第四角色需要访问其下属上传的数据和信息,因此可以给他分配其下属人员孙密钥对应的子密钥,以实现该功能。在这里,也可以不包括第四角色,此时,第二角色具有访问部分数据的权限,即充当上述的第四角色,此时没有最高权限的角色。在一个具体场景中,某一角色需要权限为只可访问自己及其下属角色的往期历史数据和信息,那么在给其分配密钥时,只分配上期多级密钥的子密钥,该子密钥为其下属的孙密钥对应的子密钥,由此实现实现延期访问权限。
在一个实施例中,种子数据的获取可以进行期限的自行设置,比如,可以设置为7天、21天、一个月等,由此实现对数据的期限管理。
在一个实施例中,通过哈希算法生成所述第一哈希头和第二哈希头。
数据处理模块202,用于响应于第一角色上传数据原文的操作,生成所述数据原文的第一哈希头,将所述数据原文用第一角色的公钥加密获得第一密文、用第一角色的私钥和所述第一哈希头签名以获得数据签名,将所述数据签名与所述第一密文组合为带签名的第一密文,将所述第一哈希头、带签名的第一密文存储至数据库。由此实现数据的安全存储,就算被黑客盗取数据,数据也是加密的数据,对于加密数据的爆破和破解也需要多级密钥才可以,使得数据的存储更加安全可靠。
请求处理模块203,用于响应于第二角色获取所述第一密文的请求,将所述第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器。由此可以使得需要访问数据的角色方便的访问和查看数据,且防止其篡改数据进行伪证或造假。具体的,可以为:响应于第二角色获取所述第一角色上传数据的请求,将所述第一哈希头、带签名的第一密文下发至所述第二角色的客户端,以使第二角色的客户端根据所述带签名的第一密文的签名确定第一角色身份、进而用第二角色密钥推导出第一角色密钥解密所述第一密文得到数据原文、并对得到的数据原文通过第三角色的公钥加密得到第二密文后发送至服务器。
在一个实施例中,所述第二角色的客户端根据所述第一密文的签名解密所述第一密文得到数据原文包括:第二角色的客户端利用第一角色的公钥,验证所述第一密文的签名得到第一角色的身份以确定第一角色的角色序号,根据所述第一角色的角色序号和第二角色的密钥和链码生成所述第一角色的私钥,利用所述第一角色的私钥解密所述第一密文得到数据原文。
数据验证模块204,用于响应于第三角色获取第二密文和第一哈希头的请求,将所述第二密文和第一哈希头发送至第三角色的客户端,以使第三角色的客户端解密所述第二密文获得数据原文和所述第一哈希头并根据获得的数据原文生成第二哈希头,将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文。由此可以实现验证方验证数据原文是否被篡改,进而防止最高权限用户利用最高权限修改和篡改数据进行弄虚作假
在一个实施例中,所述第三角色的客户端解密所述第二密文获得数据原文包括:所述第三角色的客户端以所述私钥进行解密所述第二密文得到数据原文。
在一个实施例中,所述将所述第一哈希头和第二哈希头比对以判断第二角色是否篡改数据原文包括:当所述第一哈希头和第二哈希头一致时,判定所述第二角色没有篡改数据原文,当所述第一哈希头和第二哈希头不一致时,判定所述第二角色有篡改数据原文。
具体的,图7为本发明实施例提供的一种基于密码学的多层级角色权限控制方法的具体应用时的示意图,其可以应用于 “数据查询存证平台”,通过本发明实现了灵活可变的链上信息权限(包括访问权限和验证权限)控制。该场景密钥体系共3层,需求角色分为ABCD共4类。其中:A需要访问所有信息原文;B需要访问所有其下级的往期信息原文,但本期信息不可见;C类不可直接访问任何原文,需要A传给其原文,由其验证原文信息是否被篡改;D需要访问自己的所有内容原文。
根据上述权限需求,设定的角色权限及密钥分配:角色A:拥有所有角色上传信息的访问权限,分配父密钥;角色B:拥有其所有下级角色的历期上传信息的访问权限,分配上一期的子密钥1;角色C:拥有验证权限,通过从A获取信息原文,进行哈希操作,与自己取得相应信息的哈希头比对,验证A传递的信息是否被篡改;角色D:拥有本角色上传信息的访问权限,分配相对应的孙密钥。若后期各角色的权限需求有变化或增加更多权限角色,可通过增加密钥体系层级,结合定时轮换密钥实现新的需求。
由此,本发明实施例提供的一种基于密码学的多层级角色权限控制装置,其应用于服务端后,可以实现如下有益效果:
1、权限可灵活调整分配:根据现实业务需求,快速灵活的调整角色权限,并实现延时权限,单时段权限等按时间控制的访问权限;同时可区分访问权限和验证权限;
2、极高的安全性:系统即便被反编译、模拟登陆欺诈等手段的击破,黑客可获取到的也是加密内容;
3、普适、易用:不需专门定制开发,只通过向每个角色分配的密钥即可实现权限控制;
总之,本发明适用于在空间维度和时间维度的各种访问权限和验证权限需求,真实生活中极其复杂的业务需求同样可以通过简单配置灵活实现,极大的减少权限系统的开发成本与维护成本。本发明基于密码学技术,以密钥确定权限,天然具有强大的安全性和稳定性。
图5示出了可以应用本发明实施例的基于密码学的多层级角色权限控制方法或基于密码学的多层级角色权限控制装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所发送的往来消息提供支持的后台管理服务器。后台管理服务器可以在接收到终端设备请求后进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本发明实施例所提供的基于密码学的多层级角色权限控制方法一般由服务器505执行,相应地,敏感词检测过滤装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的电子设备的计算机系统600的结构示意图。图6示出的计算机系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括确定模块、提取模块、训练模块和筛选模块 。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,确定模块还可以被描述为“确定候选用户集的模块”。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。