一种隔离用户身份信息的方法、***、设备和存储介质
技术领域
本发明涉及区块链技术领域,尤其涉及一种隔离用户身份信息的方法、***、设备和存储介质。
背景技术
当今互联网时代各种网络应用层出不穷,滴滴打车,饿了么,闲鱼,58同城等一些涉及真实交易的应用App都要求用户实名认证,用户出于隐私的考虑,往往不希望把隐私信息透露给这些应用App,随着数据时代的来临,用户数据对应用软件将越来越宝贵,而用户们也将越来越重视自己的隐私,不愿意透露,但是为了使用应用软件,又不得不透露,随着政府对应用App安全性的更高重视,各种应用App也不得不让用户提供更加详细的认证材料,要求用户实名认证,不但用户要把身份证正反两面拍照上传,而且还要面部拍照鉴别,如果运行应用的机构把身份证信息用在其他地方,用户也不会知晓;导致用户泄露的隐私越来越多,用户越来越反感,矛盾日益尖锐。
中国发明专利申请,公开号:CN108063752A;公开日:2018.05.22;该发明公开了一种基于区块链与代理重加密技术的可信基因检测及数据共享方法,应用在基于依次连接的应用管理层、区块链层以及分布式数据存储层的应用***。该方法建立基于区块链技术的检测机构和医院的信誉度管理方案,解决第三方机构随意给出检测结果的问题。同时,基于公钥加密方案,保护个人用户的隐私数据,使得个人对自己的基因数据有完全的控制权和所有权。最后,在区块链智能合约中实现一种可撤销的代理重加密方案,保证科研机构在得到个人用户授权之后获取基因组数据。该专利是面向个人用户,针对基因检测这一隐私数据的防泄露共享方法,在基因数据面向第三方机构公开的时候无法做到绝对意义上的防隐私泄露。
发明内容
1.发明要解决的技术问题
为了克服上述技术问题,本发明提供了一种隔离用户身份信息的方法、***、设备和存储介质。它可以保护用户的隐私,防止用户隐私泄露。
2.技术方案
为解决上述问题,本发明提供的技术方案为:
一种隔离用户身份信息的方法,包括以下步骤:
S1、用户通过区块链产生公钥和私钥;
产生公钥和私钥的方式共有2种,一种是,通过区块链随机产生公钥和私钥,另一种是,区块链运营方根据用户身份信息(姓名、性别,身份证号、手机号、邮箱、声音、面部图像,指纹,家庭住址,户口所在地等个人用户身份信息,或者企业、组织、机构或单位的名称、统一社会信用代码、地址、税号等集体身份信息)进行Hash加密后,产生私钥和公钥,私钥如果丢失,可以向区块链运营方找回。
S2、用户的公钥和用户身份信息保存在区块链中;
用户的身份信息需要和第三方认证机构认证签名后保存到区块链,身份信息的分类不同可能有不同的第三方认证机构,比如身份证信息需要政府公安局认证,学历信息需要高校认证,银行卡资产信息可能要银行认证,汽车信息由车辆管理所认证,按照分类保存在区块链上,由于只是签名信息,是一串数字,这串证书签名信息包括认证机构,被认证用户的区块链账户ID,和对真实信息的加密签名信息,可以通过第三方认证机构网站鉴定真实性,同时又***露具体信息,比如身份证号,面部信息等,同时也证明了身份信息的真实可信性,将用户的隐私信息隐藏起来,保护了用户隐私,使得用户隐私信息无法被盗用或滥用。同时在必要时候也可以通过第三方认证机构在征得用户同意情况下获取真实信息。
S3、区块链对同一用户产生多个不同的账户ID;
如果一个用户只有一个账户ID,那么通过追溯该账户ID在区块链上的交易行为或活动行为,会增大该用户的账户ID被攻击的风险,从而容易导致用户隐私信息被盗取;一个用户对应拥有多个账户ID,无法追溯该用户的行为,进而起到保护用户隐私信息的作用,使得攻击者无法通过某个账户ID的行为确定到用户。账户ID的数量可以设定成区块链随机产生,也可以设定成由用户请求产生,而账户ID的产生方式可以是对用户的公钥做不同次数的hash,即可产生多个不同的账户ID。
S4、用户通过账户ID在应用上进行注册。
用户不需要提供用户身份证等敏感信息给应用,账户ID代表用户的隐私信息已经被区块链备份和认证,用户的隐私信息保存在区块链上,区块链提供代表用户隐私信息已经被备份和认证的账户ID在应用上注册,这些应用不一定是在区块链上搭建的,可以是运营方自主开发的软件应用,也可以是基于区块搭建的应用,但每个应用均与区块链有连接接口,对区块链存在一定的信任基础,以便用户在对应的应用上注册时,方便获取代表用户隐私信息的账户ID,从而将用户的隐私信息与应用隔离开来。
优选地,步骤S1中用户通过区块链随机产生公钥和私钥。
优选地,区块链运营方根据用户身份信息产生私钥和公钥。所述的用户身份信息包括身份证号、手机号、邮箱、声音、面部图像,指纹,家庭住址,户口所在地等用户身份信息,私钥如果丢失,可以向区块链运营方找回。
优选地,S4中的注册包括以下步骤:
S401、用户向区块链发送一笔验证交易,选择一个账户ID和私钥签名信息发送给区块链;
S402、区块链节点会对账户ID和用户签名信息进行验证,验证通过,证明此账户ID属于该用户,且未被使用,在应用上继续注册使用;验证不通过,证明该账户ID不是该用户所有或该账户ID已被使用,不能在应用上注册使用;
S403、验证通过,并注册成功后,区块链记录该账户ID状态为已经被使用。
以免下次注册新应用时重复使用该账户ID,以免同一个账户ID被多个应用使用,给攻击者制造追踪账户ID行踪,进而攻击用户的机会,以免成为被攻击的对象,能够进一步保护用户的隐私不被泄露。
一种隔离用户身份信息的***,根据以上任一项所述的一种隔离用户身份信息的方法,包括:公私钥产生模块,用于用户通过区块链产生公钥和私钥;隐私信息保存模块,用于保存公私钥产生模块中生成的公钥和用户身份信息;账户ID产生模块,对在区块链上保存公钥和用户身份信息的用户产生多个不同的账户ID;应用模块,用户使用账户ID产生模块生成的账户ID注册应用账户。
优选地,所述的公私钥产生模块在区块链上根据用户的请求,随机产生公钥和私钥,或者,根据用户身份信息产生私钥和公钥。
优选地,所述的隐私信息保存模块包括区块链的分布式存储数据库和区块链运营方的私有数据库。
优选地,所述的应用模块包括账户ID验证模块和注册模块,账户ID验证模块,用于验证账户ID是否属于对应的用户,验证账户ID是否已经被使用;注册模块,根据账户ID产生用户在该应用上的账户信息。
一种设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器互相连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如以上所述方法。
一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行如以上所述方法。
3.有益效果
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
(1)本发明基于区块链技术,提供了一种隔离用户身份信息的方法,通过向第三方应用只提供一个可认证的区块链账户ID,而不需要其他任何信息,即可使用户在享受应用所带来的便利的同时,不用担心隐私信息泄露;
(2)传统的第三方应用需要采集用户的隐私信息,掌握大量用户信息,在第三方应用运营的过程中,经常存在主动或被动的隐私泄露问题,给用户带来诸多的风险,本发明利用区块链信息密文存储,去中心化,不可篡改的特性,将用户的隐私信息与第三方应用隔离开来,使用区块链向用户产生的账户ID在第三方应用上注册使用,第三方应用无法得知与账户ID对应用户的隐私信息,从而也无法对用户的隐私进行主动泄露;
(3)在本发明提供的一种隔离用户身份信息的方法中,用户在区块链上可以产生多个账户ID,面对不同的应用使用不同的账户ID,即单一用户的多个账户ID与用户所使用的应用一一对应,从而确保用户在使用不同的应用时,所用的账户ID不同,进而避免用户同一账户ID在不同应用上的行为被追溯和收集,避免用户在不同应用上的行为存在被动泄露的可能性;
(4)本发明提供的一种隔离用户身份信息的方法,用户在应用注册时,会向区块链发送验证交易,验证通过后,才能在应用上注册使用,不需要向每个应用提供用户的隐私信息,且每个应用基于对区块链的信任,也可以很快速的获取注册用户数量群;
(5)本发明的一种隔离用户身份信息的方法,用户在区块链上保存的隐私信息是经过Hash后,以密文的形式保存在区块链上的,没有用户的私钥签名验证,任何人是无法得知隐私信息的明文内容的,因此用户可以完全掌控个人的隐私信息,防止隐私信息泄露。
附图说明
图1为方法的应用示意图;
图2为方法的流程框图之一;
图3为方法的流程框图之二;
图4为验证交易流程图;
图5为***框图;
图6为设备框图;
图7为实施例2的示意图之一;
图8为实施例2的示意图之二;
图9为实施例3的示意图;
图10为实施例7的示意图;
图11为实施例8的示意图之一;
图12为实施例8的示意图之二。
具体实施方式
为进一步了解本发明的内容,结合附图及实施例对本发明作详细描述。
实施例1
如图2、3所示,一种隔离用户身份信息的方法,包括以下步骤:
S1、用户通过区块链产生公钥和私钥;
产生公钥和私钥的方式共有2种,一种是,通过区块链随机产生公钥和私钥,一旦私钥丢失无法找回,另一种是,区块链运营方根据用户身份信息(姓名、性别,身份证号、手机号、邮箱、声音、面部图像,指纹,家庭住址,户口所在地等个人用户身份信息,或者企业、组织、机构或单位的名称、统一社会信用代码、地址、税号等集体身份信息)进行Hash加密后,产生私钥和公钥,私钥如果丢失,可以向区块链运营方找回。
S2、用户的公钥和用户身份信息保存在区块链中;
用户的身份信息需要和第三方认证机构认证签名后保存到区块链,身份信息的分类不同可能有不同的第三方认证机构,比如身份证信息需要政府公安局认证,学历信息需要高校认证,银行卡资产信息可能要银行认证,汽车信息由车辆管理所认证,按照分类保存在区块链上,由于只是签名信息,是一串数字,这串证书签名信息包括认证机构,被认证用户的区块链账户ID,和对真实信息的加密签名信息,可以通过第三方认证机构网站鉴定真实性,同时又***露具体信息,比如身份证号,面部信息等,同时也证明了身份信息的真实可信性,将用户的隐私信息隐藏起来,保护了用户隐私,使得用户隐私信息无法被盗用或滥用。同时在必要时候也可以通过第三方认证机构在征得用户同意情况下获取真实信息。
用户的公钥和用户身份信息也可以保存在区块链运营方的私有数据库中,如图3所示,用户信息更加集中,而不是开放和扩散,不需要每个商业应用都认证。
S3、区块链对同一用户产生多个不同的账户ID;
如果一个用户只有一个账户ID,那么通过追溯该账户ID在区块链上的交易行为或活动行为,会增大该用户的账户ID被攻击的风险,从而容易导致用户隐私信息被盗取;一个用户对应拥有多个账户ID,无法追溯该用户的行为,进而起到保护用户隐私信息的作用,使得攻击者无法通过某个账户ID的行为确定到用户。账户ID的数量可以设定成区块链随机产生,也可以设定成由用户请求产生,而账户ID的产生方式可以是对用户的公钥做不同次数的hash,即可产生多个不同的账户ID。
S4、用户通过账户ID在应用上进行注册。
用户不需要提供用户身份证等敏感信息给应用,账户ID代表用户的隐私信息已经被区块链备份和认证,用户的隐私信息保存在区块链上,区块链提供代表用户隐私信息已经被备份和认证的账户ID在应用上注册,这些应用不一定是在区块链上搭建的,可以是运营方自主开发的软件应用,也可以是基于区块搭建的应用,但每个应用均与区块链有连接接口,对区块链存在一定的信任基础,以便用户在对应的应用上注册时,方便获取代表用户隐私信息的账户ID,从而将用户的隐私信息与应用隔离开来。
一个应用的运营方仅知道用户的一个账户ID,且确定该账户ID是经过区块链备份和认证过的,可以用于自己的经营使用,但却不能够获得该用户的隐私信息,所以无法将用户隐私信息用在其他地方,无法泄露用户的隐私信息,解决了用户在使用不同的应用时,存在隐私泄露的问题。
实施例2
一种隔离用户身份信息的方法,在实施例1的基础上进一步改进,包括以下步骤:
S1、用户通过区块链随机产生公钥和私钥,如图7所示;
S2、用户的公钥和用户身份信息保存在区块链中;区块链中如私有链、联盟链均为许可链,参与到区块链***中的每个节点都是经过许可的,未经许可的节点不可接入***中。但是如果许可链内数量有限的多个认证节点联合起来也是会对用户的身份信息泄露造成一定威胁的,所以如果区块链为许可链,用户的公钥和用户身份信息进行Hash加密后,再上传至区块链;如果区块链为公有链,则可以对用户身份信息选择性的进行Hash加密。如图8所示。
S3、区块链对同一用户产生多个不同的账户ID;
S4、用户通过账户ID在应用上进行注册。
实施例3
一种隔离用户身份信息的方法,在实施例1、2的基础上进一步改进,包括以下步骤:
S1、用户通过区块链运营方根据用户身份信息产生私钥和公钥,如图9所示。
如果区块链为许可链,用户的公钥和用户身份信息进行Hash加密后,再产生私钥和公钥;如果区块链为公有链,则可以对用户身份信息选择性的进行Hash加密。其中,所述的用户身份信息包括身份证号、手机号、邮箱、声音、面部图像,指纹,家庭住址,户口所在地等用户身份信息,私钥如果丢失,可以向区块链运营方找回。
S2、用户的公钥和用户身份信息保存在区块链中;区块链中如私有链、联盟链均为许可链,参与到区块链***中的每个节点都是经过许可的,未经许可的节点不可接入***中。但是如果许可链内数量有限的多个认证节点联合起来也是会对用户的身份信息泄露造成一定威胁的,所以如果区块链为许可链,用户的公钥和用户身份信息进行Hash加密后,再上传至区块链;如果区块链为公有链,则可以对用户身份信息选择性的进行Hash加密。如图8所示。
S3、区块链对同一用户产生多个不同的账户ID;
S4、用户通过账户ID在应用上进行注册。
实施例4
一种隔离用户身份信息的方法,在实施例1、2、3的基础上进一步改进,包括以下步骤:
S1、用户通过区块链产生公钥和私钥;
S2、用户的公钥和用户身份信息保存在区块链中;
S3、区块链对同一用户产生多个不同的账户ID;
S4、用户通过账户ID在应用上进行注册。
如图1、3和4所示,S4中的注册包括以下步骤:
S401、用户向区块链发送一笔验证交易,选择一个账户ID和私钥签名信息发送给区块链;
S402、区块链节点会对账户ID和用户签名信息进行验证,验证通过,证明此账户ID属于该用户,且未被使用,在应用上继续注册使用;验证不通过,证明该账户ID不是该用户所有或该账户ID已被使用,不能在应用上注册使用;
S403、验证通过,并注册成功后,区块链记录该账户ID状态为已经被使用。
以免下次注册新应用时重复使用该账户ID,以免同一个账户ID被多个应用使用,给攻击者制造追踪账户ID行踪,进而攻击用户的机会,以免成为被攻击的对象,能够进一步保护用户的隐私不被泄露。
本实施例将用户的隐私信息完全隐藏起来,利用区块链的信息密文存储,去中心化,分布式存储,不可篡改的优点,用户通过区块链产生的账户ID与第三方的应用对接,而第三方的应用机构却无法获知用户的隐私信息,完全防止了第三方应用运营方对用户隐私信息的泄露,与此同时,用户可以正常享受第三方应用机构所带来的便利。
实施例5
如图1和5所示,一种隔离用户身份信息的***,根据实施例1-4任一项技术方案中所述的一种隔离用户身份信息的方法,包括:公私钥产生模块,用于用户通过区块链产生公钥和私钥;隐私信息保存模块,用于保存公私钥产生模块中生成的公钥和用户身份信息;账户ID产生模块,对在区块链上保存公钥和用户身份信息的用户产生多个不同的账户ID;应用模块,用户使用账户ID产生模块生成的账户ID注册应用账户。
实施例6
如图1和5所示,一种隔离用户身份信息的***,在实施例5的基础上进一步改进,包括:公私钥产生模块,用于用户通过区块链产生公钥和私钥;隐私信息保存模块,用于保存公私钥产生模块中生成的公钥和用户身份信息;账户ID产生模块,对在区块链上保存公钥和用户身份信息的用户产生多个不同的账户ID;应用模块,用户使用账户ID产生模块生成的账户ID注册应用账户。进一步地,公私钥产生模块在区块链上根据用户的请求,随机产生公钥和私钥,或者,根据用户身份信息产生私钥和公钥。如果区块链为许可链,用户的公钥和用户身份信息进行Hash加密后,再产生私钥和公钥;如果区块链为公有链,则可以对用户身份信息选择性的进行Hash加密。其中,所述的用户身份信息包括身份证号、手机号、邮箱、声音、面部图像,指纹,家庭住址,户口所在地等用户身份信息,私钥如果丢失,可以向区块链运营方找回。
实施例7
一种隔离用户身份信息的***,在实施例5、6的基础上进一步改进,包括:公私钥产生模块,用于用户通过区块链产生公钥和私钥;隐私信息保存模块,用于保存公私钥产生模块中生成的公钥和用户身份信息;账户ID产生模块,对在区块链上保存公钥和用户身份信息的用户产生多个不同的账户ID;应用模块,用户使用账户ID产生模块生成的账户ID注册应用账户。进一步地,如图10所示,所述的隐私信息保存模块包括区块链的分布式存储数据库和区块链运营方的私有数据库。如果存储在私有数据库中,用户身份信息需要进行Hash加密,以确保用户身份信息泄露所带来的风险。
实施例8
一种隔离用户身份信息的***,在实施例5、6、7的基础上进一步改进,包括:公私钥产生模块,用于用户通过区块链产生公钥和私钥;隐私信息保存模块,用于保存公私钥产生模块中生成的公钥和用户身份信息;账户ID产生模块,对在区块链上保存公钥和用户身份信息的用户产生多个不同的账户ID;应用模块,用户使用账户ID产生模块生成的账户ID注册应用账户。进一步地,如图11、12所示,所述的应用模块包括账户ID验证模块和注册模块,账户ID验证模块,用于验证账户ID是否属于对应的用户,验证账户ID是否已经被使用;注册模块,根据账户ID产生用户在该应用上的账户信息。
实施例9
如图6所示,一种设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器互相连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如实施例1-5任一项技术方案所述方法。
实施例10
一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行如实施例1-5任一项技术方案所述方法。
实施例11
本实施例基于区块链技术,提供了一种隔离真实身份信息的方法,同实施例1-5中任一个技术方案所述的方法,通过向第三方应用只提供一个可信可认证的区块链用户的账户ID,而不需要其他任何信息,从而代替身份证拍照和其他信息面向应用APP的采集,从而很大程度上保护了个人用户隐私。
用户(包括个人、企业、事业单位、团体组织等形式);用户信息,对于个人而言,包括但不限于个人照片、出生证明、身份证号码、邮箱、手机号码、某网站的登录账号、QQ号码、联系地址等数据;用户信息,对于企业、事业单位或团体组织等机构而言,包括但不限于社会统一信用代码、组织机构代码、经营内容、对外邮箱、办公电话等数据。
某网络应用为了证明某账户ID是某特定用户所有,用户可以向区块链发送一笔验证交易,把此账户ID用自己私钥签名发送给区块链,区块链节点会对账户ID和用户签名信息进行验证,通过就可以证明此账户ID属于这个用户。不通过,说明这个账户ID非此用户所有。通过后网络应用就可以信任这个账户ID为此用户所有。这样用户就不需要提供个人身份证等敏感信息给网络应用。
个人用户基于区块链随机产生一个自己的私钥,同时得到相应的公钥;也可以由区块链公司根据用户身份证ID产生一个唯一私钥,这样用户私钥丢失时,可以向区块链运营方找回。
用户通过第三方认证机构获取认证了的身份证信息,面部采集等真实信息,同时提供公钥信息,比如身份证信息,面部信息等,这样一个用户具备哪些数据都可从侧面看到,满足不同APP的公司对信息的需求。
为了适应不同的网络应用,区块链为同一用户产生不同的账户ID,最大程度保护个人隐私,比如网约车类的账户ID,淘宝商家的账户ID等。
用户通过为网络应用产生的账户ID向应用注册自己身份信息。为了证明这个账户ID是用户所有,用户可以向区块链发送一笔验证交易,把此账户ID用自己私钥签名发送给区块链,区块链节点会对账户ID和用户签名信息进行验证,通过就可以证明此账户ID属于这个用户。不通过,说明这个账户ID非此用户所有。
通过后网络应用就可以信任这个账户ID为此用户所有。这样用户就不需要提供个人身份证等敏感信息给网络应用。通过以上方案,用户就可以只向网络应用公司提供自己在区块链上的账户ID,而不需要提供真实身份证信息,从而最大程度保护用户个人隐私。而且基于不同应用的区块链账户ID,也能有效隔离不同应用之间对用户信息的收集,避免用户信息被追踪,泄露。另外,如果将来有需要,也可以以此区块链账户ID信息代替护照信息,全球通用。
以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。