CN117195276B - 一种数据保护方法及电子设备 - Google Patents
一种数据保护方法及电子设备 Download PDFInfo
- Publication number
- CN117195276B CN117195276B CN202311478192.2A CN202311478192A CN117195276B CN 117195276 B CN117195276 B CN 117195276B CN 202311478192 A CN202311478192 A CN 202311478192A CN 117195276 B CN117195276 B CN 117195276B
- Authority
- CN
- China
- Prior art keywords
- account
- key
- server
- cloud
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000012795 verification Methods 0.000 claims description 93
- 238000004422 calculation algorithm Methods 0.000 claims description 32
- 238000013507 mapping Methods 0.000 claims description 14
- 150000003839 salts Chemical class 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 abstract description 14
- 230000008569 process Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 20
- 239000010410 layer Substances 0.000 description 18
- 230000004044 response Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000010295 mobile communication Methods 0.000 description 12
- 238000009795 derivation Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000011084 recovery Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本申请提供一种数据保护方法及电子设备,涉及终端技术领域。在启动第一设备的荣耀云应用时,第一设备可以向荣耀云发送第一请求,以获取第一设备登录的第一账号对应的用户密钥。之后,荣耀云可以响应于第一请求,利用第一账号对应的信任环中的设备的公钥,对第一账号对应的用户密钥进行加密,得到加密后的用户密钥。之后,荣耀云可以通过信任环云,将该加密后的用户密钥同步至第一账号对应的信任环中的设备(包括该第一设备),实现用户密钥的分发,使得信任环中的设备均能够得到用户密钥,从而信任环中的设备能够利用该用户密钥解密从荣耀云下载的加密的第一账号对应的数据,和/或,加密需上传至荣耀云的数据,保证数据传输安全性。
Description
技术领域
本申请实施例涉及终端技术领域,尤其涉及一种数据保护方法及电子设备。
背景技术
目前,电子设备可以将用户的数据(如照片、文件等)保存在云端,云端相当于电子设备的远程数据仓库。用户数据通常对应着用户账号,电子设备可以根据用户的使用需求,从云端下载、上传该用户的用户账号所对应的数据。可见,用户数据的安全依赖于账号安全,当用户账号被攻击时,其它设备可以使用该用户账号从云端获取对应数据,导致用户数据泄露,安全性较低。
发明内容
本申请实施例提供一种数据保护方法及电子设备,用于提高用户数据安全性,降低用户数据泄露的风险。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请实施例提供一种数据保护方法,应用于第一服务器(或称为荣耀云),第一服务器在接收第一设备发送的携带有第一账号已登录的第一请求后,响应于第一请求,对于第一账号对应的信任环中的各个设备,基于该设备的公钥,对第一账号对应的用户密钥进行加密,得到该设备对应的加密后的用户密钥;第一账号对应的信任环中的设备包括第一设备。
第一服务器向第二服务器(或称为信任环云)发送各个设备对应的加密后的用户密钥,以通过第二服务器将各个设备对应的加密后的用户密钥发送至对应设备。
第一服务器可以基于第一账号对应的用户密钥,对信任环中的设备发送的第一账号对应的加密后的第一目标数据进行解密;和/或,第一服务器可以在向信任环中的设备发送第一账号对应的第二目标数据之前,对第二目标数据进行加密。
本申请中,同一账号对应的用户密钥相同,当第一设备请求第一账号对应的用户密钥时,由于第一账号对应的信任环中的不同设备均有数据传输的可能性,因此,对于第一账号对应的信任环中的各个设备,第一服务器可以利用该设备的公钥,对第一账号对应的用户密钥进行加密,以得到该设备对应的加密后的用户密钥。之后,第一服务器可以通过第二服务器将各个设备对应的加密后的用户密钥发送至对应设备,实现用户密钥的分发同步,使得各个设备可以通过解密对应的加密后的用户密钥得到第一账号对应的用户密钥,从而可以对与第一服务器传输的第一账号对应的数据进行加解密,保证第一账号对应的数据在传输过程中是加密,保证用户数据安全性,降低用户数据泄露的风险。并且通过限制信任环中的设备得到用户密钥,即使存在风险的设备得到加密后的数据,也无法使用用户密钥进行解密,保证用户数据的安全性。
其中,可选地,第一服务器在接收到第一账号对应的数据后,如果该第一账号对应的数据不是经过用户密钥加密的数据,第一服务器可以不保存该第一账号对应的数据,从而避免将非第一账号对应的用户的数据添加至第一账号对应的云空间中。
在一种可能的实施方式中,上述基于设备的公钥,对第一账号对应的用户密钥进行加密,得到设备对应的加密后的用户密钥的过程包括:第一服务器基于设备的公钥和第一服务器的私钥,生成设备的第一共享密钥。之后,第一服务器基于设备的第一共享密钥,对第一账号对应的用户密钥进行加密,得到设备对应的加密后的用户密钥,实现用户密钥的加密,并且能够使得设备能够使用对应密钥,对加密后的用户密钥进行解密。
在一种可能的实施方式中,上述用户密钥的生成过程可以包括:
第一服务器基于第一服务器的根密钥,生成用户级根密钥。之后,第一服务器基于用户级根密钥和盐值,派生得到第一账号对应的用户密钥;其中,用户密钥具有唯一性,同一账号对应的用户密钥是一个,盐值是随机生成的字符串,实现用户密钥的生成。
在一种可能的实施方式中,上述第一服务器可以基于根密钥,结合密码分发算法,生成用户级根密钥。之后,第一服务器可以基于用户级根密钥、盐值和第一账号,派生得到第一账号对应的用户密钥,保证用户密钥的唯一性。
在一种可能的实施方式中,上述第一账号对应的信任环中的各个设备的公钥可以是从第二服务器获取的。第一服务器向第二服务器发送携带有第一账号的第二请求。之后,第一服务器可以接收第二服务器发送的第一账号对应的映射关系,第一账号对应的映射关系包括第一账号对应的信任环中的每个设备的标识及每个设备的公钥。基于此,第一服务器无需维护账号对应的映射关系,可以减少对第一服务器的存储空间的占用。
其中,可选地,上述第一账号对应的映射关系可以是信任环列表。
在一种可能的实施方式中,上述第一请求还包括第一账号对应的登录令牌。第一服务区可以先向第三服务器(或称为荣耀账号云,账号云)发送第一账号对应的登录令牌,以使第三服务器验证第一账号的合法性,得到相应的身份验证结果。
在上述身份验证结果指示第一账号处于登录态的情况下,表明第一账号是合法的,相应的,第一请求是合法,第一服务器可以响应于该第一请求,对于信任环中的各个设备,基于该设备的公钥,对第一账号对应的用户密钥进行加密,保证用户密钥的安全性。
第二方面,本申请实施例提供一种数据保护方法,应用于第一设备,
第一设备接收对第一设备的第一应用(或称为荣耀云应用)的启动操作;
响应于启动操作,在第一设备不存在第一设备已登录的第一账号所对应的用户密钥的情况下,第一设备发送第一请求;其中,第一请求包括第一账号,第一设备是第一账号对应的信任环中的设备;
第一设备接收第一设备对应的加密后的用户密钥;
第一设备基于第一设备的私钥,对第一设备对应的加密后的用户密钥进行解密,得到第一账号对应的用户密钥;
其中,用户密钥用于在将第一设备的第一账号对应的第一目标数据上传至第一服务器之前,加密第一目标数据,和/或,解密第一服务器发送的第一账号对应的加密后的第二目标数据;第一目标数据和第二目标数据是基于用户对第一应用的操作确定的第一设备的其它应用的数据,如图库应用的图片、视频等,社交应用的聊天记录等。
本申请实施例中,第一设备登录第一账号后,响应于用户输入的对第一应用启动操作,在第一设备不存在第一设备已登录的第一账号所对应的用户密钥的情况下,表明第一应用需要获取第一账号对应的用户密钥。第一设备可以发送第一请求以获取第一账号对应的用户密钥。在接收到第一设备对应的加密后的用户密钥,即第一设备对应的第一账号所对应的加密后的用户密钥后,基于第一设备的私钥,对第一设备对应的加密后的用户密钥进行解密,得到第一账号对应的用户密钥,实现用户密钥的确定,以供第一设备可以利用用户密钥对第一账号对应的数据进行加解密,保证数据安全性。
其中,可选地,上述第一设备可以向第一服务器发送第一请求。上述第一设备可以接收第二服务器发送的第一设备对应的加密后的用户密钥。
在一种可能的实施方式中,响应于启动操作,在第一设备是第一账号对应的信任环中的设备的情况下,第一设备可以显示第一应用的第一界面(如首界面),实现第一应用的正常启动。
在第一设备不是第一账号对应的信任环中的设备的情况下,第一设备显示第一提示消息,第一提示信息用于提示不能使用第一应用。基于此,限制非可信设备对第一设备的第一账号对应的数据进行高敏操作,保护数据安全性。
在一种可能的实施方式中,第一设备不存在第一设备已登录的第一账号所对应的用户密钥的情况包括在第一设备是第一账号对应的信任环中的设备后,第一设备首次接收到第一应用的启动操作情况。
在一种可能的实施方式中,第一设备可以在使用第一账号,登录第二应用时,请求作为第一账号对应的信任环中的设备。具体的,第一设备接收针对第二应用(或称为荣耀账号应用)的登录信息,该登录信息包括第一账号,密码和验证码。之后,第一设备对第二应用的登录信息进行双因子认证。在认证成功后,第一设备登录第一账号。之后,第一设备生成第一设备的公钥和第一设备的私钥。之后,第一设备向第二服务器发送第一设备的公钥。第一设备接收第二服务器发送的第一数字签名,该第一数字签名是第二服务器基于第二服务器的私钥,对第一账号对应的信任环列表中的设备的公钥进行签名后得到的。
第一设备基于第二服务器的公钥,对第一数字签名进行验签。在验签成功后,第一设备确定第一设备为第一账号对应的信任环中的设备,实现可信设备的添加。
在一种可能的实施方式中,上述第一设备基于第一设备的私钥,对第一设备对应的加密后的用户密钥进行解密的过程,包括:
第一设备基于第一设备的私钥和第一服务器的公钥,得到第一设备对应的第二共享密钥。
第一设备基于第一设备对应的第二共享密钥,对第一设备对应的加密后的用户密钥进行解密,实现用户密钥的解密。
第三方面,本申请实施例提供一种数据保护方法,应用于第二服务器,第二服务器接收第一服务器发送的第一账号对应的信任环中的各个设备所对应的加密后的用户密钥;
对于第一账号对应的信任环中的各个设备,第二服务器向设备发送设备对应的加密后的用户密钥;第一账号对应的信任环中的设备包括第一设备;
用户密钥用于第一设备在将第一设备的第一账号对应的第一目标数据上传至第一服务器之前,加密第一目标数据,和/或,用于第一设备解密第一服务器发送的第一账号对应的加密后的第二目标数据。
本申请中,对于第一账号对应的信任环中的各个设备,第二服务器可以将该设备对应的加密后的用户密钥发送至该设备,实现用户密钥的快速分发同步,使得信任环中的设备都能够使用统一的用户密钥对第一账号对应的数据进行加解密,保证数据的安全性,并且方便对数据进行加解密。
在一种可能的实施方式中,上述第二服务器接收第一设备发送的第一设备的公钥;
第二服务器将第一设备的公钥添加至第一账号对应的映射关系中,第一账号对应的映射关系包括第一账号对应的信任环中的每个设备的标识及每个设备的公钥,实现第一账号对应的映射关系的更新。
第四方面,本申请实施例提供一种数据保护方法,第一设备接收对所述第一设备的第一应用的启动操作;
响应于所述启动操作,在所述第一设备不存在所述第一设备已登录的第一账号所对应的用户密钥的情况下,所述第一设备向所述第一应用对应的第一服务器发送第一请求;所述第一请求包括所述第一账号;
所述第一服务器响应于所述第一请求,对于所述第一账号对应的信任环中的各个设备,基于所述设备的公钥,对所述第一账号对应的用户密钥进行加密,得到所述设备对应的加密后的用户密钥;
所述第一服务器向第二服务器发送各个设备对应的加密后的用户密钥;
对于所述各个设备,所述第二服务器将所述设备对应的加密后的用户密钥发送至所述设备;
所述第一设备接收所述第一设备对应的加密后的用户密钥;
所述第一设备基于所述第一设备的私钥,对所述第一设备对应的加密后的用户密钥进行解密,得到所述用户密钥;
其中,所述用户密钥用于在将所述第一设备的所述第一账号对应的第一目标数据上传至第一服务器之前,加密所述第一目标数据,和/或,解密所述第一服务器发送的所述第一账号对应的加密后的第二目标数据;所述第一目标数据和所述第二目标数据是基于用户对所述第一应用的操作确定的。
其中,上述第一服务器和第二服务器可以是同一个服务器,相应的,第一服务器也可以执行第二服务器所执行的操作。或者,第一服务器和第二服务器也可以是不同服务器。
第五方面,本申请实施例提供一种电子设备,所述电子设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述显示屏用于显示所述处理器生成的图像,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行如上第一方面、第二方面或第三方面所述的方法。
第六方面,本申请实施例提供一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如上第一方面、第二方面或第三方面所述的方法。
第七方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上第一方面、第二方面或第三方面所述的方法。
第八方面,本申请实施例提供了一种数据保护装置,所述装置可以按照功能划分为不同的逻辑单元或模块,各单元或模块执行不同的功能,以使得所述装置执行如上第一方面、第二方面或第三方面所述的方法。
第九方面,本申请提供一种数据保护系统,包括第一设备、第一服务器和第二服务器,其中,第一服务器可以执行如第一方面所述的方法,第一设备可以执行如第二方面所述的方法,第二服务器可以执行如第三方面所述的方法。
可以理解地,上述提供的第四方面所述的数据保护方法、第五方面所述的电子设备、第六方面所述的计算机可读存储介质,第七方面所述的计算机程序产品,第八方面所述的数据保护装置、第九方面所述的数据保护系统所能达到的有益效果,可参考如第一方面、第二方面或第三方面中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种数据传输示意图一;
图2为本申请实施例提供的一种数据传输示意图二;
图3为本申请实施例提供的一种数据传输示意图三;
图4为本申请实施例提供的一种电子设备的结构示意图;
图5为本申请实施例提供的一种电子设备交互示意图;
图6为本申请实施例提供的一种数据保护方法的流程示意图一;
图7为本申请实施例提供的一种账号登录示意图;
图8为本申请实施例提供的一种数据保护方法的流程示意图二;
图9为本申请实施例提供的一种应用启动示意图一;
图10为本申请实施例提供的一种应用启动示意图二;
图11为本申请实施例提供的一种密钥生成示意图;
图12为本申请实施例提供的一种密钥示意图;
图13为本申请实施例提供的一种数据传输示意图四;
图14为本申请实施例提供的一种数据传输示意图五。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了更清楚地描述本申请的方案,下面先介绍一些与本申请实施例相关的知识。
信任环:同一个用户账号可以在不同的电子设备上进行登录。当同一个用户账号下的两个或两个以上电子设备之间相互信任,那么该两个或两个以上电子设备构成一个信任环。对于信任环中的一个电子设备(如电子设备1)来说,信任环中的其他电子设备(如电子设备2)均可以理解为该电子设备1的可信设备。
密钥管理系统(key management system,KMS):是一款安全管理类服务,可以让用户在该系统中创建和管理密钥,并且,该系统能够保护密钥的保密性、完整性和可用性,满足用户多应用多业务的密钥管理需求。
密钥派生函数(key derivation function,KDF):是指从一个密钥产生一个或多个密钥。
通用运行环境(rich execution environment,REE):也可以称为富执行环境或普通执行环境或不可信执行环境,是指移动端的系统运行环境,其中可以运行Android、IOS和Linux等操作系统。REE的开放和扩展性好但安全性不高。
可信执行环境(trusted execution environment,TEE):也可以称安全侧或安全区,是需要授权才能访问的区域。TEE与REE共存于电子设备中的运行环境,其通过硬件的支撑,实现与REE的隔离,具有安全能力并且能够抵御常规REE侧易遭受的软件攻击。TEE有自身的运行空间,定义了严格的保护措施,因此,比REE的安全级别更高,能够保护TEE中的资产(assets),如数据,软件等,免受软件攻击,抵抗特定类型的安全威胁。
在一些实施例中,电子设备可以将用户数据(或简述为数据)保存在云端(如荣耀云)以便用户实时上传和下载该用户数据。用户数据一般对应着用户账号(或简述为账号),信任环中的电子设备可以将登录的账号对应的数据上传至云端,也就是将账号对应的数据上传至该账号对应的云空间。上传的账号对应的用户数据与用户账号关联存储。例如,设备A在登录账号1后,如图1所示,设备A可以响应于用户输入的数据备份操作,将设备A上的数据作为账号1对应的数据,并将该账号1对应的数据,如电子设备A上的相册、通讯录、音乐、聊天信息等,上传至荣耀云。同理,设备B在登录账号1后,如该图1所示,设备B也可以响应于用户输入的数据备份操作,将设备B上的数据作为账号1对应的数据,并将该账号1对应的数据上传至荣耀云,实现数据的备份。
电子设备可以根据用户需求(如数据恢复需求、数据同步需求等),从云端(或描述为从该电子设备登录的账号所对应的云空间)下载该用户的账号所对应的数据。该账号对应的数据可以是信任环中的任一电子设备上传的。例如,设备B在登录账号1后,如图2所示,设备B可以响应于用户输入的数据恢复操作,向云端发送携带请求,该请求可以包括账号1。云端在接收到该请求后,响应于该请求,向设备B返回该账号1对应的目标数据,以供设备B利用该账号1对应的目标数据进行数据恢复。该账号1对应的目标数据可以是最新日期备份的数据,或者是其它数据,如是设备A备份的数据。
然而,其它用户(如攻击者)攻击得到账号1的信息(如账号1及其对应的密钥)后,其它用户便可以在设备上登录账号1,该设备可以从云端下载账号1对应的数据,导致账号1对应的数据被泄露,或者,该设备可以将该设备的数据上传该账号1对应的云空间,导致账号1对应的云空间存在其它用户的数据,影响用户使用。可见,利用账号的信息无法有效保证账号对应的数据的安全性。
因此,针对上述问题,本申请提出一种基于信任环的数据保护方法。一方面,通过账号对应的信任环限制只有信任环中的电子设备能够在登录账号后,使用云空间进行高敏操作,如将该账号对应的用户数据上传至荣耀云,或者从荣耀云下载该账号的数据等,保证对荣耀云中的该账号对应的数据进行操作的设备的安全性,从而在一定程度保证数据的安全性,以及能够避免账号对应的云空间存在其它用户的数据。例如,如图3所示,账号1对应的信任环,也即登录了账号1的可信设备中包括设备A和设备B,因此,设备A和设备B可以将账号1对应的数据上传至荣耀云,从荣耀云下载账号1对应的数据。但由于设备C不是账号1对应的信任环中的可信设备,即使设备C登录账号1后,也无法与荣耀云进行账号1对应的数据的传输,如无法将账号1对应的数据上传至荣耀云,从荣耀云下载账号1对应的数据。另一方面,荣耀云可以生成账号对应的用户密钥,并利用信任环云提供该账号对应的信任环中的电子设备的公钥对该用户密钥进行加密,得到账号对应的加密后的用户密钥。之后,荣耀云可以通过信任环云,将账号对应的加密后的用户密钥同步至该账号对应的信任环中的各个电子设备。之后,电子设备可以利用电子设备的私钥,对该账号对应的加密后的用户密钥进行解密,得到该账号对应的用户密钥,使得信任环中的电子设备具备该账号对应的用户密钥,实现用户密钥的同步。之后,信任环中的电子设备可以利用用户密钥加密需要上传的该账号对应的数据,或者解密从荣耀云下载的加密后的该账号对应的数据,而对于非信任环中的电子设备,由于该电子设备不具备能够解密加密后的用户密钥,因此,该电子设备无法得到用户密钥,即使该电子设备攻击得到加密后的账号对应的数据,也无法利用用户密钥进行解密,从而保证数据的安全性,避免用户隐私遭到泄露,提高用户使用满意度。
示例性的,本申请实施例中的电子设备可以是手机、平板电脑、可穿戴设备(如智能手表)、个人数字助理(personal digital assistant,PDA)、笔记本电脑、车载设备、物联网设备等能够从云端下载数据或上传数据至云端的设备,本申请实施例对该电子设备的具体形态不作特殊限制。
图4示出了电子设备100的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。电源管理模块141接收电池142和/或充电管理模块140的输入,为电子设备100中的器件供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi(wireless fidelity)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC ,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system ,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP 用于处理摄像头193反馈的数据。
摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
按键190包括开机键,音量键等。马达191可以产生振动提示。指示器192可以是指示灯。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图5是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图5所示,应用程序包可以包括图库、设置、荣耀云应用、账号应用(或称为荣耀账号应用)、信任环应用等应用程序。
其中,账号应用可以与账号云(或称为荣耀账号云)通信,如账号应用可以将用户输入的登录信息(如账号信息)发送给账号云,以供账号云验证账号是否准确,从而确定用户是否能够登录。
信任环应用可以与信任环云通信。例如,信任环应用可以在设备首次登录账号时,生成电子设备的公钥。之后,信任环应用可以将该电子设备的公钥发送给信任环云,以请求信任环云将该电子设备添加至该账号对应的信任环中,也就是作为该账号对应的可信设备。又例如,信任环云可以将荣耀云发送的该账号对应的加密后的用户密钥同步至信任环中的可信设备的信任环应用。之后,信任环应用可以对该加密后的用户密钥进行解密,得到该账号对应的用户密钥,将该用户密钥发送给荣耀云应用。
上述荣耀云应用可以与荣耀云进行通信。例如,荣耀云应用可以利用登录的账号对应的用户密钥,对该账号对应的数据1进行加密,并将加密后的该账号对应的数据1上传至荣耀云。又例如,荣耀云应用可以从荣耀云下载加密后的该账号对应的数据2,利用该账号对应的用户密钥对该账号对应的数据2进行解密,得到该账号对应的数据2。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图5所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
本申请实施例中,电子设备在首次登录荣耀账号(或简述为账号)时,电子设备可以请求信任环云将该电子设备添加至该荣耀账号对应的信任环中,也就是将该电子设备作为该荣耀账号对应的可信设备,使得该电子设备具备对该荣耀账号对应的数据进行高敏操作的能力,以保证数据的安全性。
下面将以上述电子设备包括设备1(或称为第一设备),荣耀账号是账号1(或称为第一账号)为例,结合图6,介绍将该电子设备添加至信任环的过程。
S201、设备1中的荣耀账号应用首次接收用户输入的登录信息。
其中,上述登录信息包括账号1、账号1对应的密码以及验证码。
示例性的,账号1可以包括手机号、账号名和邮箱中的一个。验证码可以包括短信验证码、邮箱验证码和可信设备验证码中的一个。其中,可信设备验证码表示账号1对应的信任环中的可信设备所收到的验证码。
S202、荣耀账号应用向荣耀账号云发送登录信息。
S203、荣耀账号云对登录信息进行双因子验证,得到账号1的账号验证结果。
本申请实施例中,设备1中的荣耀账号应用接收用户输入的登录信息。在该设备1不是账号1对应的可信设备的情况下,表明该设备1不在账号1对应的信任环中,如荣耀账号应用首次接收用户输入的登录信息,设备1可以对该登录信息进行双因子验证(或称为双因子认证),即通过密码因子和验证码因子校验用户身份,得到账号1的账号验证结果。示例性的,荣耀账号应用可以向荣耀账号云发送账号1、密码以及验证码。荣耀账号云判断用户输入的账号1、密码以及验证码是否正确,以实现登录校验。如果账号、密码以及验证码均正确,表明登录校验成功,荣耀账号云可以返回指示账号验证成功的账号验证结果至设备1。
如果账号、密码以及验证码中存在至少一个信息是错误的,表明登录校验失败,荣耀账号云可以返回指示账号验证失败的账号验证结果至设备1。
S204、荣耀账号云向荣耀账号应用发送账号1的账号验证结果。
本申请实施例中,荣耀账号云与设备1中的荣耀账号应用通信,荣耀账号应用可以接收荣耀账号云发送的账号1的账号验证结果。该账号验证结果指示账号1的账号验证是否成功,也即指示账号1是否是安全的。
在账号1的账号验证结果指示账号验证失败的情况下,表明用户输入的登录信息是有误,也即账号1的双因子认证失败,账号1可能是存在风险的,因此,设备1(如设备1中的荣耀账号应用)可以提示用户重新输入正确的登录信息。
其中,可选地,在账号1的账号验证结果指示账号验证失败的情况下,账号验证结果还可以携带错误的登录信息,设备1可以提示用户输入的哪种登录信息是有误的。比如,用户输入的密码有误,账号验证结果还可以指示密码错误,相应的,设备1可以提示用户输入的密码有误,从而清楚直观地告知用户输入的登录信息的具体错误原因。
账号验证结果不仅存在指示账号验证失败的情况,也存在指示账号验证成功的情况,下面将继续介绍指示账号验证成功的情况。
S205、在账号验证结果指示账号验证成功的情况下,荣耀账号应用登录账号1。
S206、荣耀账号应用向信任环应用发送通知消息1。其中,通知消息1指示账号1登录成功。
本申请实施例中,在账号验证结果指示账号验证成功的情况下,表明账号1的身份验证成功,也即表明双因子认证完成,荣耀账号应用可以进行登录操作,以登录账号1。举例来说,首先,用户可以点击图7中(a)所示的设备1中的设置应用10。之后,设备1响应于该设置应用10的点击操作,显示如图7中(b)所示的界面20。参见该界面20所示的内容可知,设备1还未登录荣耀账号。之后,用户可以点击界面20上的控件21,该控件21用于触发设备1登录荣耀账号。响应于用户对该控件21的点击操作,设备1可以显示如图7中(c)所示的登录界面30。该登录界面30可以用于用户输入荣耀账号和密码。当用户输入荣耀账号和密码后,用户可以点击登录控件31。设备1(如设备1中的荣耀账号应用)响应于对该登录控件31的点击操作,可以继续显示验证码输入界面(如图7中(d)所示的短信验证码界面),以供用户输入短信验证码。
荣耀账号云在验证用户输入的账号、密码和验证码均正确后,向设备1发送指示账号验证成功的账号验证结果。设备1响应于该账号验证结果,可以登录账号1,显示如图7中(e)所示的界面。其中,图7中(e)所示的界面中的“1XXXXX”是指用户输入的荣耀账号,如上述账号1。
其中,可选地,设备1接收到用户对上述图7中(c)所示的登录控件31后,设备1可以响应于对登录控件31的点击操作,将用户输入的账号和密码发送至荣耀账号云。之后,荣耀账号云在验证该账号和密码正确的情况下,可以继续进行验证码校验,触发设备1显示上述图7中(d)所示的界面。否则,该荣耀账号云可以直接向设备1发指示账号验证失败的送账号验证结果。
另外,上述图7中(a)-(e)所示的仅是登录过程一种示例界面,本申请不限制该登录过程中的具体显示界面。
在一些实施例中,上述荣耀账号云在账号验证成功后,可以生成账号1对应的令牌token(或称为登录token),并将该账号1对应的token返回至设备1。其中,账号1对应的token具备有效期。之后,设备1在与云端(如荣耀账号云、信任环云、荣耀云)通信时,设备1向云端发送的的请求可以携带该账号1对应的token,以供云端利用该账号1对应的token,验证设备1的身份,也即验证设备1上的账号1是否处于登录态。
S207、信任环应用响应于通知消息1,生成设备1的公钥1和私钥1。
本申请实施例中,信任环应用在接收到荣耀账号应用发送的通知消息1后,表明双因子认证成功,设备1和账号1是安全的,可以请求将设备1添加至账号1对应的信任环中,信任环应用可以响应于该通知消息1,随机生成一对公私钥1,并将该公私钥1作为设备1的公私钥,以完成设备注册。其中,设备1的公钥1可以作为设备1的身份凭证。
S208、信任环应用向信任环云发送请求1。其中,请求1包括设备1的公钥1和账号1对应的登录令牌。
上述设备1的公钥1用于触发信任环云将设备1添加至账号1对应的信任环中。
上述登录令牌用于触发信任环云进行token验证,以确定设备1上的账号1是否处于登录状态。由于账号是荣耀账号云负责校验的,因此,信任环云需要通过荣耀账号云进行登录状态的校验。
S209、信任环云响应于上述请求1,向荣耀账号云发送身份验证请求。其中,身份验证请求包括账号1对应的登录令牌。
S210、信任环云接收荣耀账号云发送的身份验证结果。其中,身份验证结果是基于账号1对应的登录令牌确定的。
S211、在身份验证结果指示账号1处于登录态的情况下,信任环云将设备1的标识及设备1的公钥1添加至账号1的信任环列表中。
本申请实施例中,信任环云向荣耀账号云发送携带有账号1对应的登录token以验证账号1是否处于登录态。荣耀账号云接收到账号1对应的登录token后,判断该登录token是否正确,以及判断该登录token是否处于有效期内。
在确定登录token正确,且处于有效期内的情况下,表明设备1上的账号1处于登录态,身份验证成功,荣耀账号云可以向信任环云返回指示账号1处于登录态的身份验证结果。信任环云接收到指示账号1处于登录态的身份验证结果后,将设备1添加至账号对应的信任环中,即信任环云可以建立设备1的标识与设备1的公钥1之间的映射关系,如将设备1的标识以及设备1的公钥1添加至账号1的信任环列表(如表1所示),实现将设备1作为账号1对应的信任环中的设备(或称为可信设备),从而实现信任环中的设备的添加。
表1
需要说明的是,如果上述设备1是账号1对应的第一个可信设备,也即还不存在账号1对应的信任环,信任环云可以先创建账号1的信任环列表,即建立账号1对应的信任环。之后,信任环云可以将设备1的标识及设备1的公钥1添加至账号1的信任环列表中。
另外,如果设备1是第一次登录账号1的设备,表明之前不存在登录账号1的设备,上述账号1的登录过程实际是注册过程。
在一些实施例中,上述通过登录token进行身份验证的过程是可选的,上述请求1可以不包括账号1的登录令牌。信任环云在接收到该请求1后,可以直接将设备1的标识与设备1的公钥添置至账号1的信任环列表中,实现快速将设备1作为设备1对应的信任环中的设备。
其中,上述信任环列表(或称为可信设备列表)仅是保存信任环中的设备的标识及设备的公钥1的一种方式,还可以通过其它方式,如文件、数据库保存信任环中的设备的标识及设备的公钥1。换句话来说,第一账号对应的映射关系可以通过信任环列表、文件、数据库等方式进行保存,该第一账号对应的映射关系可以包括信任环中的设备的标识及该设备的公钥1。
S212、信任环云利用信任环云的私钥2,对信任环列表中的设备的公钥1进行签名,得到数字签名1。
本申请实施例,信任环云可以先对信任环中的设备的公钥1进行哈希运算,得到消息摘要1。之后,信任环云可以使用信任环云的私钥2对该消息摘要1进行加密,得到数字签名1(或称为第一数字签名)。具体的,设备1可以通过Sign(server.sk,device1_ID|账号1|设备的公钥1|version),得到数字签名1。其中,server.sk表示信任环云的私钥2,device1_ID表示设备1的标识,version表示设备1上的信任环应用的当前版本。
可选地,为了提高安全性,信任环可以对信任环中的设备的公钥1和字段1进行哈希运算,得到消息摘要1。该字段1可以是预设的,也可以是随机确定的。
在一些实施例中,在上述S212中,信任环云可以利用信任环云的私钥2,对信任环列表中的所有设备的公钥1进行签名,也即对账号1对应的信任环中的设备中的公钥1进行签名。例如,账号1的信任环列表包括设备1的公钥1和设备A的公钥1,因此,信任环云利用信任环云的私钥2,对设备1的公钥1和设备A的公钥1进行签名。
或者,信任环云可以利用信任环云的私钥2,对信任环中的部分设备的公钥1,如发送上述请求1的设备1的公钥1进行签名。
应理解,上述信任环云的公钥2和信任环云的私钥2是一对密钥,信任环云的公钥2可以预置在设备1中,使得设备1能够利用信任环云的公钥2验签。
S213、信任环云向信任环应用发送数字签名1和账号1的信任环列表。
S214、信任环应用利用预置的信任环云的公钥2和账号1的信任环列表,对数字签名1进行校验,得到签名校验结果。
S215、在签名校验结果指示签名校验成功后,信任环应用将设备1确定为可信设备。
本申请实施例中,信任环应用在接收信任环应用发送的数字签名1后,通过预置在设备1的信任环云的公钥2对数字签名1进行解密,得到解密后的数字签名,该解密后的数字签名是指消息摘要。之后,信任环应用可以对接收到的账号1的信任环列表中的设备的公钥1进行哈希运算,得到消息摘要1。之后,信任环应用可以比较该消息摘要1和解密后的数字签名是否一致,以实现验签。
在上述消息摘要1和解密后的数字签名一致的情况下,验签成功,确定签名校验结果指示签名校验成功。
在上消息摘要1和解密后的数字签名不一致的情况下,验签失败,确定签名校验结果指示签名校验失败。
一般来说,数字签名1的签名验证结果是指示签名校验成功的,数字签名1实际相当于通知消息,以通知设备1,已经将设备1添加至账号1对应的信任环中。当然,还存在数字签名1的签名验证结果指示签名校验失败的可能性,只不过可能性较小。在签名验证结果指示签名校验失败的情况下,设备1可以重新请求添加至账号1对应的信任环中。
在一些实施例中,信任环云不仅可以将账号1的信任环列表发送给上述设备1,还可以将账号1的信任环列表发送给账号1对应的信任环中的其它设备。换言之,账号1对应的信任环中的设备均可以接收到账号1的信任环列表,实现信任环列表的同步,使得信任环中的设备能够及时获得最新的信任环列表,从而使得信任环中的设备本地能够维护账号1的信任环列表,以供设备中的信任环应用使用。
在一些实施例中,设备1在确定设备1是账号1对应的可信设备后,可以在界面1上显示标识1,该标识1用于提示设备1是可信设备,如该标识1是可信设备,该界面1可以包括登录了账号1的设备的标识。
在设备1是账号1对应的可信设备的情况下,可以无需使用双因子验证,用户可以使用账号和密码登录。
在一些实施例中,上述S213可以替换描述成,信任环云向信任环应用发送数字签名1和数字签名1。相应的,S214可以替换描述信任环应用利用预置的信任环云的公钥2和数字签名1,对数字签名1进行校验,得到签名校验结果,也就是说,在通过预置在设备1的信任环云的公钥2对数字签名1解密得到解密后的数字签名后,可以直接比较解密后的数字签名与该数字签名1是否一致,以得到签名校验结果。
需要说明的是,一方面,上述设备1首次登录账号1可以是在设备1首次开机后的第一次登录。在该方面下,设备1之前并未登录账号1,设备1之前并不是账号1对应的信任环中的设备。另一方面,该首次登录可以是在设备1停止作为信任环中的设备的情况下,第一次登录,如设备1在接收用户输入的相关操作,设备1响应于该操作,停止将该设备1作为信任环中的设备。之后,设备1中的荣耀账号应用又接收到用户输入的登录信息,可以对该登录信息进行双因子认证。在认证成功后,设备1可以再次将其作为信任环中的设备。换句话说,设备1在不是账号1对应的信任环中的设备的情况下,接收到用户输入的登录信息后,可以请求信任环云将该电子设备添加至该荣耀账号对应的信任环。
在一些实施例中,当设备2首次登录账号1的情况下,设备2也可以向信任环云请求将设备2添加至账号1对应的信任环中,具体添加过程可以参考上面介绍的将设备1添加至账号1对应的信任环的过程。其中,应理解,信任环云在将设备2的标识及设备2的公钥1添加至账号1的信任环列表后,账号1的信任环列表发生改变,信任环云可以将账号1的最新信任环列表同步至信任环中的各个设备,使得各个设备能够及时获知最新的可信设备,以及可信设备的公钥1。
在一些实施例中,在确定设备1是账号1对应的可信设备的情况下,设备1将允许用户触发设备1对账号1对应的数据进行高敏操作,如从荣耀云下载账号1对应的数据,或者将账号1对应的数据上传至荣耀云,保证进行高敏操作的设备是安全设备,从而在一定程度上,能够保证数据的安全性。
上面介绍了将设备1作为账号1对应的可信设备的过程。考虑到设备1与荣耀云传输账号1对应的数据过程中,可能会被攻击,从而导致账号1对应的数据泄露,因此,可以确定同一账号对应的用户密钥,以供利用该账号对应的用户密钥,对该账号对应的数据进行加密,使得账号对应的数据不是以明文形式传输的,而是以密文形式传输的,即使该账号对应的数据在传输过程中被攻击,也避免了该账号对应的数据发生泄露,保证数据的安全性。下面将结合图8,继续介绍确定账号对应的用户密钥的过程。
S301、在设备1登录账号1后,设备1中的荣耀云应用响应于用户输入的荣耀云应用的启动操作,进行启动。
S302、在设备1是账号1对应的信任环中首次启动荣耀云应用的设备的情况下,荣耀云应用向荣耀云发送请求2。其中,请求2包括账号1信息。
其中,上述请求2用于获取登录的账号1对应的用户密钥。
本申请实施例中,在设备1登录账号1后,设备1接收到荣耀云应用的启动操作,启动荣耀云应用,显示荣耀云应用的首界面。例如,用户点击如图9中(a)所示的云空间控件50。荣耀云应用响应于对云空间控件50的点击操作,显示如图9中(b)所示的界面51,该界面51表示荣耀云应用的首界面,实现荣耀云应用的启动。这里用户点击云空间控件50的操作可以是用户输入的荣耀云应用的启动操作。
在设备1是账号1对应的信任环中首次启动荣耀云应用的设备的情况下,表明账号1对应的其它可信设备之前并未在登录账号1后启动荣耀云应用,简单来说,账号1对应的用户之前还未使用荣耀云应用,本次使用是首次使用,换句话来说,当前还不存在账号1对应的用户密钥,荣耀云应用可以向荣耀云发送请求2,以请求账号1对应的用户密钥。
在一些实施例中,在设备1接收到荣耀云应用的启动操作后,设备1(如设备1中的荣耀APP或信任环应用)判断该设备1的标识是否在账号1的信任环列表中。如果设备1的标识在信任环列表中,表明设备1是可信设备(或称为受信任设备),那么设备1可以向荣耀云发送上述请求2。
如果设备1的标识未在信任环列表中,表明设备1不是可信设备,为了保护数据安全性,设备1不向荣耀云发送请求2以及可以不显示上述荣耀云应用的首界面,设备1可以显示提示消息1,该提示消息1用于提示无法使用荣耀云应用,保证用户密钥的安全性。例如,用户点击如图10中(a)所示的云空间控件。设备1响应于云空间控件的点击操作,确定设备1的标识未在账号1的信任环列表中,表明设备1虽然登录了账号1,但由于未进行双因子登录验证等原因,设备1仍不是账号1对应的可信设备,设备1显示如图10中(b)所示的提示消息1,如提示消息1是“您当前无法使用荣耀云,请先使用验证码校验安全性”。应理解,部分设备可能在首次登录账号1时,不会主动进行双因子登录验证,如仅对用户输入的账号和密码进行校验,而不使用验证码因子进行校验。
需要说明的是,上述设备1是账号1对应的信任环中首次启动荣耀云应用的设备的情况仅是触发设备1请求账号1对应的用户密钥的一种可能的情况,设备1在登录账号1后,需要启动荣耀云应用时,确定设备1不存在账号1对应的用户密钥的情况下,均可以请求账号1对应的用户密钥。
S303、荣耀云响应于请求2,向荣耀账号云发送账号1信息。
示例性的,上述账号1信息可以包括账号1和账号1对应的登录token。荣耀账号云通过该登录token确定账号1是否处于登录态,得到相应的身份验证结果。
本申请实施例中,荣耀云在接收设备1发送的请求2(或称为第一请求)后,表明需要生成账号1对应的用户密钥。为了保证用户密钥的安全性,荣耀云可以先验证账号身份,荣耀云可以响应于该请求2,向荣耀账号云发送账号1信息,以供荣耀账号云验证账号1的身份,保证用户密钥的安全性。
S304、荣耀云接收荣耀账号云发送的身份验证结果。
其中,账号验证结果是荣耀云对账号1信息进行验证后得到的。
S305、在身份验证结果指示账号1处于登录态的情况下,荣耀云基于密码分发算法,生成账号1对应的用户密钥。
本申请实施例中,在账号验证结果指示设备1处于登录态时,表明账号1的身份验证成功,账号1是合法的,相应的,设备1的请求是合法的,荣耀云可以利用密码分发算法,生成账号1对应的用户密钥。示例性的,账号1对应的用户密钥生成过程可以是:如图11所示,荣耀云可以随机生成根密钥(RootKey)。其中,根密钥是一次性生成,生成后不会发生变化。之后,荣耀云可以基于该根密钥,结合密码分发算法,生成用户级根密钥(UserRootWorkKey),该UserRootWorkKey也是随机密钥。之后,荣耀云可以随机生成盐值(UserRootSalt),该盐值是字符串。之后,荣耀云可以利用盐值和用户级根密钥,结合密钥派生算法,派生得到账号1对应的用户密钥,账号1对应的用户密钥具有唯一性。
在一些实施例中,上述RootKey和UserRootWorkKey可以是荣耀云中的KMS生成的,KMS在得到RootKey和UserRootWorkKey后,将其保存在加密机中,加密机1对RootKey和UserRootWorkKey加密存储,也就是说,荣耀云中的RootKey和UserRootWorkKey是以密文形式存储的。
上述盐值可以是明文存储在荣耀云。
其中,可选地,RootKey和UserRootWorkKey的字节(byte)数可以是32bytes。上述UserRootSalt的字节数也可以是32bytes。当然32bytes仅是一种示例,RootKey、UserRootWorkKey和UserRootSalt的字节数也可以是其它数值,本申请不对其限制。
在一些实施例中,上述密钥派生算法(或称为密钥派生函数)可以是基于hamc的密钥派生函数(hmac-based extract-and-expand key derivation function,HKDF)。HKDF的派生过程可以分为两个步骤,分别是提取(Extract)和扩展(EXpand)(如上述图11所示)。在提取过程中,荣耀云可以将UserRootWorkKey、UserRootSalt和账号1输入至HKDF-Extract函数中,得到一个伪随机密钥(PRK)。具体的,PRK=HKDF-Extract(UserRootWorkKey,UserRootSalt||userid)。其中,userid表示账号1,UserRootSalt||userid可以表示UserRootSalt和userid的组合字符串。例如,UserRootSalt是“abc”,userid是“AA”,则UserRootSalt||userid可以表示“abcAA”。
在扩展过程中,荣耀云可以利用提取过程中得到伪随机密钥扩展得到指定长度的密钥,也即得到账号1对应的用户密钥。具体的,OKM(32bytes) = HKDF-Expand(PRK,length(32)),荣耀云可以将OKM作为账号1对应的perUserKey。其中,HKDF-Expand(PRK,length(32))表示从PRK扩展得到字节数是32bytes的密钥。应理解,OKM的字节数也可以是其它数量,通过改变length()中的参数的具体值即可,例如length中的参数的具体值是64时,也就是HKDF-Expand(PRK,length(64))时,OKM的字节数也是64。
其中,可选地,在得到账号1对应的perUserKey后,荣耀云(如荣耀云的KMS)可以将账号1对应的perUserKey加密在加密机中,加密机1对账号1对应的perUserKey加密存储,也就是说,荣耀云中的各个账号对应的perUserKey是以密文形式存储的。
应理解。上述介绍的HKDF是密钥派生函数的一种示例,荣耀云还可以利用其它密钥派生函数生成用户密钥,例如,其它密钥派生函数是PBKDF(password-base keyderivation function)2、Scrypt等。
在一些实施例中,上述用户级根密钥是指与云空间相关的业务的密钥。由于荣耀云不仅运行与云空间相关的业务,还可能运行有其它业务,其它业务也可能利用密钥。因此,荣耀云不仅可以基于根密钥生成用户级根密钥,还可以生成其它业务对应的密钥。如图12所示,荣耀云可以基于根密钥生成上述用户级根密钥和非用户级根密钥(NonUserRootWorkKey)。之后,荣耀云可以基于用户级根密钥生成用户密钥(如账号1对应的用户密钥、账号2对应的用户密钥和账号3对应的用户密钥)。其中,账号1对应的perUserKey可以用于加解密账号1对应的数据。账号2对应的perUserKey可以用于加解密账号2对应的数据。账号3对应的perUserKey可以用于加解密账号3对应的数据。
并且,荣耀云还可以基于非用户级根密钥,生成配置密钥(ConfigKey)和公共资源密钥(PublicResourceKey)。
在一些实施例中,上述S303-S304的步骤是可选的,也即通过登录token进行身份验证的过程是可选的,相应的,上述S305可以替换描述为,荣耀云响应于上述请求2,基于密码分发算法,生成账号1对应的用户密钥。
上面S305介绍了账号1的身份验证成功的情况,还存在账号1的身份验证失败的可能性。在账号1的身份验证失败的情况下,也即账号验证结果指示账号验证失败的情况下,荣耀云不生成账号1对应的用户密钥。荣耀云可以向荣耀云应用发送失败消息。荣耀云应用响应于该失败消息,可以显示提示信息2,该提示信息2提示用户重新登录。
在一些实施例中,上面介绍的通过荣耀账号云进行身份验证的过程是可选的,也就是说,上面S303和S304是可选的,相应的,上面S305可以替换为响应于请求2,荣耀云基于密码分发算法,生成账号1对应的用户密钥。
上文介绍了荣耀云得到账号1对应的用户密钥的过程,下面将继续介绍荣耀云对账号1对应的用户密钥进行加密,然后,将加密后的用户密钥同步至账号1对应的信任环中的设备的过程。其中,荣耀云对账号1对应的用户密钥加密的过程可以参考下文S306-S309。将加密后的用户密钥分发至账号1对应的信任环中的设备的过程可以参考下文S310-S315。
S306、荣耀云向信任环云发送请求3。其中,请求3包括账号1。
其中,请求3用于获取账号1的信任环列表,也即用于请求获取账号1对应的信任环中的设备的公钥1。
S307、荣耀云接收信任环云发送的账号1的信任环列表。
S308、对于信任环列表中的每个设备的标识,荣耀云基于该设备的公钥1和荣耀云的私钥3,生成该设备对应的共享密钥1。
其中,共享密钥1(或称为第一共享密钥)用于加密用户密钥。
本申请实施例中,为了保证用户密钥传输的安全性,荣耀云可以利用密钥对账号1对应的用户密钥进行加密。考虑到账号1对应的设备也能够得到该密钥,因此,对于账号1对应的信任环中的每个设备,荣耀云可以利用该设备的公钥1和荣耀云的私钥3确定用来加密发送给该设备的账号1对应的用户密钥所使用的密钥。示例性的,由于信任环云维护了荣耀账号的信任环列表,因此,荣耀云可以向信任环云发送请求3(或称为第二请求)。信任环云响应于请求3,将账号1的信任环列表返回至荣耀云。
之后,荣耀云接收到账号1的信任环列表后,可以基于非对称加密算法,对可信设备列表中的该设备的公钥和荣耀云的私钥(CloudSK)进行加密,生成共享密钥1(KEK1),以供利用该共享密钥1加密账号1对应的用户密钥,得到该设备对应的账号1所对应的加密后的用户密钥。可选地,非对称加密算法可以是椭圆曲线迪菲-赫尔曼密钥交换(ellipticcurve diffie-hellman,ECDH)算法。
可选地,由于同一账号对应的用户密钥是相同的,为了提高用户密钥分发的效率,荣耀云可以将用户密钥同步至该账号对应的信任环中的各个设备(如荣耀云通过信任环云,将用户密钥同步至该账号对应的信任环中的各个设备)。为了使得该各个设备均能够解密账号1对应的加密后的用户密钥,可以约定基于ECDH算法,对于账号对应的信任环中的每个设备,对该设备的公钥1和荣耀云的私钥3进行加密,得到该设备对应的共享密钥1。举例来说,账号1对应的信任环中的设备包括设备1和设备2。设备1的公钥1是pkA,设备2的公钥2是pkB。对于设备1,荣耀云通过ECDH算法,利用pkA和CloudSK计算得到设备1对应的共享密钥1,即KEK1=ECDH(pkA,CloudSK)。同理,对于设备2,荣耀云通过ECDH算法,利用pkA和CloudSK计算得到设备2对应的共享密钥1,即KEK2=ECDH(pkB,CloudSK)。
S309、对于信任环列表中的每个设备的标识,荣耀云基于对称加密算法,利用该设备对应的共享密钥1对账号1对应的用户密钥进行加密,得到该设备对应的账号1所对应的加密后的用户密钥。
示例性的,上述对称加密算法可以是AES-GCM-256算法。对于设备1来说,设备1对应的加密后的用户密钥EncryptedPerUerKey = AES-GCM-256(cryptoKey = KEK1,IV =Bytes12(SHA256(userID)),AAD=”Honor Cloud”,perUserKey),其中,cryptoKey、IV和AAD是对称加密算法中的参数,cryptoKey是指密钥,KEK1是cryptoKey的参数值,cryptoKey表示设备对应的共享密钥,IV表示初始向量,Bytes12(SHA256(userID))是IV的参数值,其表示使用SHA256算法对userID(这里是指账号1)进行哈希处理,得到12字节的字符串,该字符串可以作为IV的参数值。AAD表示附加认证数据,Honor Cloud是AAD的参数值。”HonorCloud”是自定义的字段,AAD的参数值也可以是其它字段。换言之,荣耀云可以利用密钥、初始向量和附加特征数据,对用户密钥进行加密,得到信任环中的各个设备对应的加密后的用户密钥,使得各个设备能够通过解密对应设备所对应的加密后的用户密钥,得到用户密钥。应理解,信任环中的各个设备解密得到的用户密钥是相同的,只不过是各个设备对应的加密后的用户密钥是不同的。
本申请实施例中,本申请是采用椭圆加密算法(elliptic curves cryptography,ECC)加密逻辑,也即采用公钥加密逻辑,因此,本申请可以采用ECDH算法确定共享密钥1,以及利用对称加密算法,结合该共享密钥1对用户密钥进行加密。相较于采用RSA(rivest-shamir-adleman)算法,基于ECDH算法和对称加密算法可以保证荣耀云的性能。
S310、荣耀云向信任环云发送信任环中的各个设备对应的账号1所对应的加密后的用户密钥。
示例性的,账号1对应的信任环中的设备包括设备1和设备2,荣耀云利用设备1对应的共享密钥(如上述KEK1)对账号1对应的用户密钥加密,得到设备1对应的账号1所对应的加密后的用户密钥。同理,荣耀云利用设备2对应的共享密钥(如上述KEK2)对账号1对应的用户密钥加密,得到设备2对应的账号1所对应的加密后的用户密钥。之后,荣耀云可以将设备1对应的账号1所对应的加密后的用户密钥和设备2对应的账号1所对应的加密后的用户密钥发送给信任环云。
S311、对于信任环列表中的每个设备的标识,信任环云向该设备发送该设备对应的账号1所对应的加密后的用户密钥。
其中,信任环列表中的每个设备的标识包括上述设备1的标识。
本申请实施例中,由于账号1的信任环列表中的设备的标识所对应的设备是登录了账号1的可信设备,该可信设备均有可能将数据存储至荣耀云。为了提高数据传输安全性,该设备都需要持有账号1对应的用户密钥。因此,信任环云可以将账号1对应的加密后的用户密钥分发给账号1对应的信任环中的各个设备,即对于信任环中的每个设备,信任环云将该设备对应的账号1所对应的加密后的用户密钥发送给该设备,使得信任环中的每个设备都能够持有对应的加密后的用户密钥,实现用户密钥的快速同步,并且保证账号1对应的数据(或称为私有数据)的安全性。
在一些实施例中,上述信任环云也可以仅将账号1对应的加密后的用户密钥发送给设备1,而无需同步用户密钥至账号1对应的其它可信设备,相应的,荣耀云也可以仅向信任环云请求设备1的公钥1,而无需请求信任环中的各个设备的公钥1。当其它可信设备第一次启动荣耀云应用时,表明其它可信设备存在使用荣耀云的需求,其它可信设备可以向荣耀云请求账号1对应的用户密钥,荣耀云可以通过信任环云,向其它可信设备发送账号1对应的加密后的用户密钥,避免将用户密钥同步至没有使用荣耀云需求的可信设备。
S312、设备1中的荣耀云应用将荣耀云的公钥3发送给设备1中的信任环应用。
本申请实施例中,荣耀云应用可以通过调用接口1,向信任环应用提供荣耀云的公钥3,以供信任环应用利用荣耀云的公钥3对加密后的用户密钥进行解密。示例性的,荣耀云应用可以监听信任环应用,在监听到信任环应用接收到信任环云同步的账号1对应的加密后的用户密钥的情况下,荣耀云应用可以调用接口1,向信任环应用提供荣耀云的公钥3。
其中,可选地,上述荣耀云的公钥可以是预置在设备1(如设备1的荣耀云应用)中的,或者,设备1可以向荣耀云请求荣耀云的公钥3,例如,上述请求2还可以用于请求荣耀云的公钥3,荣耀云可以通过信任环云,将荣耀云的公钥3同步至账号1对应的各个可信设备,使得各个可信设备均持有荣耀云的公钥3。
S313、信任环应用利用设备1本地存储的设备1的私钥1和荣耀云的公钥3,生成设备1对应的共享密钥2。
其中,设备1对应的共享密钥2(或称为第二共享密钥)用于解密设备1对应的账号1所对应的加密后的用户密钥。
S314、信任环应用基于对称加密算法,利用共享密钥2对设备1对应的账号1所对应的加密后的用户密钥进行解密,得到账号1对应的用户密钥。
本申请实施例中,由于上述设备1对应的加密后的用户密钥是基于设备1的公钥1和荣耀云的私钥3得到,因此,信任环应用基于上述得到共享密钥1的算法,利用设备的私钥1和荣耀云的公钥3确定用来解密设备1对应的账号1所对应的加密后的用户密钥所使用的密钥,也即得到设备1对应的共享密钥2。示例性的,上述得到共享密钥1的算法是ECDH算法,那么信任环应用利用ECDH算法,确定共享密钥2,以供利用共享密钥2对加密后的用户密钥进行解密,得到账号1对应的用户密钥,实现用户密钥的确定。
在一些实施例中,上述设备1对应的共享密钥1还可以直接是设备1对应的公钥1,相应的,设备1对应的共享密钥2可以直接是设备1对应的私钥1,实现用户密钥的快速加密和解密。
S315、信任环应用将账号1对应的用户密钥发送给荣耀云应用。
本申请实施例中,信任环云负责维护账号对应的用户密钥,如实现用户密钥的分发,无需荣耀云维护账号对应的用户密钥,荣耀云只需加密存储相关密钥(如用户密钥、根密钥、用户级根密钥等),无需存储不同设备对应的加密后的用户密钥,由于荣耀云是存储用户数据,这样可以减少其它数据对荣耀云的占有,提升荣耀云的存储空间,并且能够提高访问效率。
在一些实施例中,账号1对应的信任环中新增设备(如设备2),设备2在登录账号1后,接收用户输入的对荣耀云应用的启动操作。在设备2不存在账号1对应的用户密钥的情况下,该设备2可以向荣耀云发送请求2,以请求账号1对应的用户密钥。由于荣耀云之前已经生成账号1对应的用户密钥,荣耀云无需再次生成该用户密钥。但由于账号1对应的信任环已经发生改变,因此,荣耀云可以从信任环云获取最新信任环列表。之后,对于最新信任环列表中的每个设备的标识,荣耀云基于该设备的公钥1和荣耀云的私钥3,结合ECDH算法,生成该设备对应的共享密钥1,以供利用该设备对应的共享密钥1对该账号1对应的用户密钥进行加密,得到该设备对应的账号1所对应的加密后的用户密钥(简述为该设备对应的加密后的用户密钥)。
之后,荣耀云可以通过信任环云将账号1对应的信任环中的各个设备对应的加密后的用户密钥同步至对应设备(包括上述设备1和设备2)。对于信任环中的各个设备,该设备仍可以利用该设备的私钥1和荣耀云的公钥3生成该设备对应的共享密钥2,进而利用该共享密钥2对该设备对应的加密后的用户密钥进行解密,得到用户密钥,实现用户密钥的同步。简单来说,荣耀云生成共享密钥1,即加密密钥的过程是ECDH(设备的公钥,荣耀云的私钥),设备生成共享密钥2,即解密密钥的过程是ECDH(设备的私钥,荣耀云的公钥)。
需要说明的是,由于设备的私钥1是存储在TEE的,设备中的信任环应用可以从TEE中读取数据(如设备的私钥1),而设备的荣耀云应用是位于REE的,荣耀云应用无法直接从TEE中读取数据。因此,荣耀云可以通过信任环云,将荣耀账号对应的用户密钥发送给可信设备中的信任环应用,以供信任环应用将荣耀账号对应的用户密钥发送给荣耀云应用。其中,信任环应用中的部分服务运行在TEE中,部分服务运行在REE中,使得信任环应用能够从TEE中读取数据,也能够与REE中的应用进行通信。
在一些实施例中,设备1可以将账号1对应的用户密钥保存至端侧的KeyStore。KeyStore 是一个安全的存储容器,用于存储和保护应用程序所使用的机密信息。它可以确保敏感数据在存储和传输过程中的保密性和完整性,并提供对这些数据的安全访问控制。
上面介绍了账号1对应的可信设备(如设备1)得到账号1对应的用户密钥的过程。下面将继续介绍设备1利用账号1对应的用户密钥,对账号1对应的私有数据进行加解密的过程。
加密过程:如图13所示,账号1对应的信任环包括设备1和设备2。设备1(如设备1中的荣耀云应用)响应于用户输入的数据备份操作,基于设备1存储的账号1对应的用户密钥,对设备1的目标数据1进行加密,得到账号1对应的加密后的目标数据1。之后,设备1可以将该账号1对应的加密后的目标数据1发送至荣耀云。其中,目标数据1可以是设备1的目标应用的数据,如是图库、社交应用、通讯录、音乐应用等,该目标应用可以是默认的,也可以是用户选择的。
可选地,荣耀云在接收到账号1对应的加密后的目标数据1后,可以利用账号1对应的用户密钥对该账号1对应的加密后的目标数据1进行解密,得到目标数据1。之后,荣耀云可以将该目标数据1保存至账号1对应的云空间,由于目标数据1在设备1与荣耀云之间的传输过程中是加密的,即使其它设备攻击得到目标数据1,也无法获取目标数据1的具体内容,保证目标数据1的安全性,从而保护用户的隐私性。
应理解,上述数据备份操作仅是触发设备1上传账号1对应的数据至荣耀云的操作1的一种示例,该操作1还可以是其它操作,如图库同步操作等,该图库同步操作用于触发设备1将设备1上的图片或视频上传至荣耀云,以通过荣耀云同步至账号1对应的可信设备中。
解密过程:如图14所示,账号1对应的信任环中的设备2(如设备2中的荣耀云应用)响应于用户输入的数据恢复操作,向荣耀云发送请求4,该请求4用于获取账号1对应的目标数据2。例如,目标数据2是最新日期备份的数据。之后,荣耀云在接收到请求4后,响应于该请求4,可以利用账号1对应的用户密钥,对目标数据2进行加密,得到账号1对应的加密后的目标数据2。之后,荣耀云可以向设备1发送该加密后的目标数据2。之后,设备1在接收到加密后的目标数据2后,可以基于账号1对应的用户密钥,对该加密后的目标数据2进行解密,得到目标数据2。由于目标数据2在设备2与荣耀云之间的传输过程中是加密的,即使其它设备攻击得到目标数据2,也无法获取目标数据2的具体内容,保证目标数据2的安全性,从而保护用户的隐私性。
应理解,上述数据恢复操作仅是触发设备1从荣耀云下载账号1对应的数据的操作2的一种示例,该操作2还可以是其它操作,如图库同步操作等。
其中,账号1对应的目标数据2可以包括账号1对应的可信设备上传的数据,而不限制必须是设备1上传的。
需要说明的是,上述设备1中的应用(如上述荣耀云应用、信任环应用、荣耀账号应用)执行的操作也可以其它应用或者模型执行的,本申请不对其限制。但实际来说,上述设备1中的应用执行的操作是设备1执行的,也就是说,上述设备1中的应用执行的操作可以理解为设备1执行的。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备(如上述设备1、荣耀云、荣耀账号云、信任环云)上运行时,使得电子设备执行如上所述的方法。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上所述的方法。
本申请实施例还提供了一种数据保护装置,所述数据保护装置可以按照功能划分为不同的逻辑单元或模块,各单元或模块执行不同的功能,以使得所述数据保护装置执行如上所述方法。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种数据保护方法,其特征在于,应用第一服务器,所述方法包括:
所述第一服务器接收第一设备发送的第一请求;所述第一请求包括第一账号;其中,所述第一请求是在所述第一设备是所述第一账号对应的信任环中首次接收到对所述第一设备的第一应用的启动操作的设备的情况下,所述第一设备发送的;所述第一账号对应的信任环中的设备包括所述第一设备;所述信任环中的设备是可信设备;
所述第一服务器响应于所述第一请求,对于所述第一账号对应的信任环中的各个设备,基于所述设备的公钥,对所述第一账号对应的用户密钥进行加密,得到所述设备对应的加密后的用户密钥;
所述第一服务器向第二服务器发送各个设备对应的加密后的用户密钥,以将所述各个设备对应的加密后的用户密钥发送至对应设备;所述设备对应的加密后的用户密钥能够经所述设备的私钥解密;
其中,所述用户密钥用于所述第一服务器对所述信任环中的设备发送的所述第一账号对应的加密后的第一目标数据进行解密;和/或,在向所述信任环中的设备发送所述第一账号对应的第二目标数据之前,对所述第二目标数据进行加密。
2.根据权利要求1所述的方法,其特征在于,所述基于所述设备的公钥,对所述第一账号对应的用户密钥进行加密,得到所述设备对应的加密后的用户密钥,包括:
所述第一服务器基于所述设备的公钥和所述第一服务器的私钥,生成所述设备的第一共享密钥;
所述第一服务器基于所述设备的第一共享密钥,对所述第一账号对应的用户密钥进行加密,得到所述设备对应的加密后的用户密钥。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一服务器基于所述第一服务器的根密钥,生成用户级根密钥;
所述第一服务器基于所述用户级根密钥和盐值,派生得到所述第一账号对应的用户密钥。
4.根据权利要求3所述的方法,其特征在于,所述第一服务器基于所述第一服务器的根密钥,生成用户级根密钥,包括:
所述第一服务器基于所述根密钥,结合密码分发算法,生成所述用户级根密钥;
所述第一服务器基于所述用户级根密钥和盐值,派生得到所述第一账号对应的用户密钥,包括:
所述第一服务器基于所述用户级根密钥、盐值和所述第一账号,派生得到所述第一账号对应的用户密钥。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一服务器向所述第二服务器发送第二请求;所述第二请求包括所述第一账号;
所述第一服务器接收所述第二服务器发送的所述第一账号对应的映射关系,所述第一账号对应的映射关系包括所述第一账号对应的信任环中的每个设备的标识及所述每个设备的公钥。
6.根据权利要求1或2所述的方法,其特征在于,所述第一请求还包括所述第一账号对应的登录令牌;
所述基于所述设备的公钥,对所述第一账号对应的用户密钥进行加密,包括:
所述第一服务器向第三服务器发送所述第一账号对应的登录令牌;
所述第一服务器接收所述第三服务器发送的所述登录令牌对应的身份验证结果;
在所述身份验证结果指示所述第一账号处于登录态的情况下,第一服务器基于所述设备的公钥,对所述第一账号对应的用户密钥进行加密。
7.一种数据保护方法,其特征在于,应用于第一设备,所述方法包括:
所述第一设备接收对所述第一设备的第一应用的启动操作;
响应于所述启动操作,在所述第一设备是第一账号对应的信任环中首次接收到对所述第一应用的启动操作的设备的情况下,所述第一设备发送第一请求,以使接收所述第一请求的设备将所述信任环中的各个设备所对应的加密后的用户密钥同步至对应设备;其中,所述第一请求包括所述第一账号;所述第一设备是所述第一账号对应的信任环中的设备;所述信任环中的设备是可信设备;所述用户密钥是所述第一账号对应的用户密钥;
所述第一设备接收所述第一设备对应的加密后的用户密钥;
所述第一设备基于所述第一设备的私钥,对所述第一设备对应的加密后的用户密钥进行解密,得到所述第一账号对应的用户密钥;
其中,所述用户密钥用于在将所述第一设备的所述第一账号对应的第一目标数据上传至第一服务器之前,加密所述第一目标数据,和/或,解密所述第一服务器发送的所述第一账号对应的加密后的第二目标数据;所述第一目标数据和所述第二目标数据是基于用户对所述第一应用的操作确定的。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述第一设备不是所述第一账号对应的信任环中的设备的情况下,所述第一设备显示第一提示消息,所述第一提示消息用于提示不能使用第一应用。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一设备接收针对第二应用的登录信息;
所述第一设备对所述第二应用的登录信息进行双因子认证;
在认证成功后,所述第一设备登录所述第一账号;
所述第一设备生成所述第一设备的公钥和所述第一设备的私钥;
所述第一设备向第二服务器发送所述第一设备的公钥;
所述第一设备接收所述第二服务器发送的第一数字签名;
所述第一设备基于所述第二服务器的公钥,对所述第一数字签名进行验签;
在验签成功后,所述第一设备确定所述第一设备为所述第一账号对应的信任环中的设备。
10.根据权利要求7或8所述的方法,其特征在于,所述第一设备基于所述第一设备的私钥,对所述第一设备对应的加密后的用户密钥进行解密,包括:
所述第一设备基于所述第一设备的私钥和所述第一服务器的公钥,得到所述第一设备对应的第二共享密钥;
所述第一设备基于所述第一设备对应的第二共享密钥,对所述第一设备对应的加密后的用户密钥进行解密。
11.一种数据保护方法,其特征在于,应用于第二服务器,所述方法还包括:
所述第二服务器接收第一服务器发送的第一账号对应的信任环中的各个设备所对应的加密后的用户密钥;所述用户密钥是所述第一账号对应的用户密钥;
对于所述第一账号对应的信任环中的各个设备,所述第二服务器向所述设备发送所述设备对应的加密后的用户密钥;所述第一账号对应的信任环中的设备包括第一设备;所述信任环中的设备是可信设备;所述设备对应的加密后的用户密钥能够经所述设备的私钥解密;
所述用户密钥用于所述第一设备在将所述第一设备的所述第一账号对应的第一目标数据上传至所述第一服务器之前,加密所述第一目标数据,和/或,用于所述第一设备解密所述第一服务器发送的所述第一账号对应的加密后的第二目标数据。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述第二服务器接收所述第一设备发送的所述第一设备的公钥;
所述第二服务器将所述第一设备的公钥添加至所述第一账号对应的映射关系中,所述第一账号对应的映射关系包括所述第一账号对应的信任环中的每个设备的标识及所述每个设备的公钥。
13.一种数据保护方法,其特征在于,包括:
第一设备接收对所述第一设备的第一应用的启动操作;
响应于所述启动操作,在所述第一设备是第一账号对应的信任环中首次接收到对所述第一应用的启动操作的设备的情况下,所述第一设备向所述第一应用对应的第一服务器发送第一请求;所述第一请求包括所述第一账号;
所述第一服务器响应于所述第一请求,对于所述第一账号对应的信任环中的各个设备,基于所述设备的公钥,对所述第一账号对应的用户密钥进行加密,得到所述设备对应的加密后的用户密钥;所述信任环中的设备是可信设备;
所述第一服务器向第二服务器发送各个设备对应的加密后的用户密钥;
对于所述各个设备,所述第二服务器将所述设备对应的加密后的用户密钥发送至所述设备;
所述第一设备接收所述第一设备对应的加密后的用户密钥;
所述第一设备基于所述第一设备的私钥,对所述第一设备对应的加密后的用户密钥进行解密,得到所述用户密钥;
其中,所述用户密钥用于在将所述第一设备的所述第一账号对应的第一目标数据上传至第一服务器之前,加密所述第一目标数据,和/或,解密所述第一服务器发送的所述第一账号对应的加密后的第二目标数据;所述第一目标数据和所述第二目标数据是基于用户对所述第一应用的操作确定的。
14.一种电子设备,其特征在于,所述电子设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述显示屏用于显示所述处理器生成的图像,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1至12中任一项所述的方法。
15.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311478192.2A CN117195276B (zh) | 2023-11-08 | 2023-11-08 | 一种数据保护方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311478192.2A CN117195276B (zh) | 2023-11-08 | 2023-11-08 | 一种数据保护方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117195276A CN117195276A (zh) | 2023-12-08 |
CN117195276B true CN117195276B (zh) | 2024-04-16 |
Family
ID=88983678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311478192.2A Active CN117195276B (zh) | 2023-11-08 | 2023-11-08 | 一种数据保护方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117195276B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475463A (zh) * | 2013-08-19 | 2013-12-25 | 华为技术有限公司 | 加密实现方法及装置 |
CN110362984A (zh) * | 2019-06-28 | 2019-10-22 | 北京思源互联科技有限公司 | 多设备运行业务系统的方法及装置 |
CN110399717A (zh) * | 2018-11-21 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 密钥获取方法和装置、存储介质及电子装置 |
CN111538977A (zh) * | 2020-06-23 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 云api密钥的管理、云平台的访问方法、装置及服务器 |
CN113609498A (zh) * | 2021-07-15 | 2021-11-05 | 荣耀终端有限公司 | 数据保护方法及电子设备 |
CN114297686A (zh) * | 2021-12-29 | 2022-04-08 | 深圳通康创智技术有限公司 | 系统安全加解密方法、装置、计算机设备及存储介质 |
CN116346339A (zh) * | 2021-11-19 | 2023-06-27 | 荣耀终端有限公司 | 数据保护方法、系统及电子设备 |
CN116527246A (zh) * | 2021-11-19 | 2023-08-01 | 荣耀终端有限公司 | 数据保护方法及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2578864B (en) * | 2018-09-24 | 2022-09-21 | Metrarc Ltd | Trusted ring |
-
2023
- 2023-11-08 CN CN202311478192.2A patent/CN117195276B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475463A (zh) * | 2013-08-19 | 2013-12-25 | 华为技术有限公司 | 加密实现方法及装置 |
CN110399717A (zh) * | 2018-11-21 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 密钥获取方法和装置、存储介质及电子装置 |
CN110362984A (zh) * | 2019-06-28 | 2019-10-22 | 北京思源互联科技有限公司 | 多设备运行业务系统的方法及装置 |
CN111538977A (zh) * | 2020-06-23 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 云api密钥的管理、云平台的访问方法、装置及服务器 |
CN113609498A (zh) * | 2021-07-15 | 2021-11-05 | 荣耀终端有限公司 | 数据保护方法及电子设备 |
CN116346339A (zh) * | 2021-11-19 | 2023-06-27 | 荣耀终端有限公司 | 数据保护方法、系统及电子设备 |
CN116527246A (zh) * | 2021-11-19 | 2023-08-01 | 荣耀终端有限公司 | 数据保护方法及电子设备 |
CN114297686A (zh) * | 2021-12-29 | 2022-04-08 | 深圳通康创智技术有限公司 | 系统安全加解密方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117195276A (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109600223B (zh) | 验证方法、激活方法、装置、设备及存储介质 | |
US20210218725A1 (en) | Login Method, Token Sending Method, and Device | |
CN110059499A (zh) | 一种文件访问权限认证方法及电子设备 | |
CN112765684B (zh) | 区块链节点终端管理方法、装置、设备及存储介质 | |
CN113259301B (zh) | 一种账号数据共享方法及电子设备 | |
CN113132091B (zh) | 一种分享设备的方法及电子设备 | |
CN113821835B (zh) | 密钥管理方法、密钥管理装置和计算设备 | |
CN111506884A (zh) | 用户邀请方法、装置、计算机设备及计算机可读存储介质 | |
CN111935166B (zh) | 通信认证方法、系统、电子设备、服务器及存储介质 | |
CN110365501B (zh) | 基于图形码进行群组加入处理的方法及装置 | |
CN113821821B (zh) | 安全架构系统、安全架构系统的密码运算方法和计算设备 | |
CN113852459B (zh) | 密钥协商方法、设备及计算机可读存储介质 | |
CN115686542A (zh) | 应用安装方法、装置、设备及存储介质 | |
CN117195276B (zh) | 一种数据保护方法及电子设备 | |
CN113468606A (zh) | 一种应用程序的访问方法及电子设备 | |
CN116346341A (zh) | 私钥保护和服务端访问方法、系统、设备及存储介质 | |
CN116050537A (zh) | 联邦学习方法、装置、可读存储介质及电子设备 | |
CN108154037B (zh) | 进程间的数据传输方法和装置 | |
US20220209940A1 (en) | Method for providing encrypted object and electronic device for supporting the same | |
CN108924136B (zh) | 授权认证方法、装置及存储介质 | |
CN115510458A (zh) | 检测方法及相关装置 | |
CN115146253A (zh) | 一种移动App登录方法、移动设备及系统 | |
CN114430343B (zh) | 一种数据同步的方法、装置、电子设备及可读存储介质 | |
CN116049839B (zh) | 一种数据传输方法和电子设备 | |
CN115001667B (zh) | 密钥协商方法、系统、电子设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |