本发明涉及一种区块链上私人数据的访问控制方法,属于区块链-访问控制。
背景技术:
1、随着网络技术的发展,越来越智能化的设备为人们带来了前所未有的便捷生活,手机成为了人们生活中不可或缺的智能设备,人们在使用手机的同时也将大量私人数据存放进了手机当中。近年来,倒卖、恶意删除、修改个人信息,内部人员泄露数据等情况时有发生,严重影响用户的隐私安全。因此需要一种隐私数据访问控制方法来保护用户手机上的隐私数据。
2、区块链具有去中心化、高信任、可追溯、不可篡改等安全特性,满足用户隐私数据存储的安全可信需求,然而除了需要存储安全外,对于数据的访问控制也需要一种安全的访问控制方法对数据的访问进行保护。
3、中国移动公司推出的超级sim卡芯片实现了物理防克隆功能(puf),能够保证一人一卡的匹配对应,同时这款超级sim芯片在安全方面不仅能够支持物理防克隆功能(puf),还支持主流中国国家商用密码算法以及国际算法,为手机数据传输提供安全加密机制。因此可以使用超级sim卡里的sm2签名模块实现用户的身份可信证明,从而实现可信的访问控制。
技术实现思路
1、本发明要解决的技术问题是提供一种区块链上私人数据的访问控制方法,用于解决手机隐私数据存储时不安全现象以及现有的访问控制方法不够安全的问题。
2、本发明的技术方案是:一种区块链上私人数据的访问控制方法,首先在区块链上部署访问控制智能合约,所述访问控制智能合约至少包括用户注册模块,数据上传模块以及数据访问模块;其次,在数据库中建立三种类型的数据表以供智能合约使用以实现访问控制,所述的三种类型的数据表分别是:用户信息表,用户验证信息表以及用户私人数据表;最后,用户使用智能合约的用户注册模块将用户信息以及用户手里的超级sim卡进行绑定,并建立用户的验证信息表以及用户私人数据表,注册成功后用户通过生成有效的token使用数据上传模块,将私人数据进行上传,最后用户通过生成有效的token执行数据访问模块实现查询私人数据操作。
3、具体步骤为:
4、step1:用户使用智能合约的用户注册模块发起注册请求,注册一个区块链上的合法用户。
5、具体注册流程为:
6、step1.1:用户使用智能合约的用户注册模块,区块链返回给用户一个验证码codeverify,用户使用移动超级sim卡的sm2签名功能对验证码进行签名后,生成注册信息msgregister=msg(codeverify,srigncode,pubkeysim,phonenum),其中pubkeysim是sim卡中用于验证sm2签名的公钥,phonenum是注册用户的手机号。
7、step1.2:智能合约收到注册信息后使用注册信息中的公钥对注册信息中的签名进行认证,若认证通过则将注册信息里的签名公钥以及手机号存放进用户表里,完成用户注册步骤。
8、step2:用户向区块链中的智能合约数据上传模块提出数据上传申请,发送手机上的私人隐私数据,区块链对收到数据存放进每个节点里的共识账本中,实现隐私数据的安全存储
9、具体上传流程为:
10、step2.1:用户向区块链中的智能合约数据上传模块提出数据上传申请,区块链向数据归属账户的手机发送验证码codeverify,并将该验证码codeverify以及生成时间tgen存入用户信息验证表中。
11、step2.2:手机收到验证码后,使用移动超级sim卡的sm2签名功能对验证码进行签名生成验证码签名值signcode,之后将验证码以及签名值生成token,即token=msg(codeverify,signcode)。
12、step2.3:用户将上传的数据data与token一起,生成上传消息msgupload=msg(data,token),并发送给区块链
13、step2.4:区块链收到上传消息包后,首先将token拆解出来,并查询用户信息验证表里的生成时间tgen,检查是否超过了设计的时效性。若时效性验证通过,之后查询用户信息表里的公钥pubkeysim,并用该公钥对token里的签名值进行验证。签名正确性验证通过后,则将上传消息里的数据data存放进用户私人数据表中,并进行共识以保证数据的存储安全性
14、step3:当用户或其他用户需要访问私人数据时,需要向区块链中的智能合约数据访问模块提出数据访问申请,区块链向数据所属用户发送验证码,当数据所属用户允许访问后,给区块链返回一个具有时效性的token,在时效性内其余用户可以对隐私数据进行访问。
15、具体访问流程为:
16、step3.1:用户向区块链中的智能合约数据访问模块提出数据访问申请,区块链向数据归属账户的手机发送验证码codeverify,并将该验证码codeverify以及生成时间tgen存入用户信息验证表中。
17、step3.2:手机收到验证码后,使用移动超级sim卡的sm2签名功能对验证码进行签名生成验证码签名值signcode,之后将验证码以及签名值生成token,即token=msg(codeverify,signcode)。最后将token发送给区块链进行验证。
18、step3.3:区块链收到token后,查询用户信息验证表里的生成时间tgen,检查是否超过了设计的时效性。若时效性验证通过,之后查询用户信息表里的公钥pubkeysim,并用该公钥对token里的签名值进行验证。签名正确性验证通过后,将用户私人数据表里的信息发送给访问用户。
19、本发明建立在使用区块链对用户隐私数据保存时,建立可信的数据访问控制方法,对数据访问进行保护,通过使用区块链存储手机隐私数据以解决隐私数据存储不安全问题。
20、本发明的有益效果是:解决了隐私数据存放在手机上的存储安全问题,实现了隐私数据的用户可信访问。通过将隐私数据上传至区块链上,实现隐私数据的安全性存放,使隐私数据具有不可篡改性以及完整性等安全性;通过使用用户手机上的移动超级sim与区块链上数据账户进行绑定实现一人一卡的安全匹配,并通过具有时效性的token实现可信数据访问控制。
1.一种区块链上私人数据的访问控制方法,其特征在于:
2.根据权利要求1所述的区块链上私人数据的访问控制方法,其特征在于,所述step3具体步骤为:
3.根据权利要求1所述的区块链上私人数据的访问控制方法,其特征在于,所述step3.1具体步骤为:
4.根据权利要求1所述的区块链上私人数据的访问控制方法,其特征在于,所述step3.2具体步骤为:
5.根据权利要求1所述的区块链上私人数据的访问控制方法,其特征以及用户数据访问模块的具体步骤为: