CN116055032B - 一种密钥生成方法及电子设备 - Google Patents
一种密钥生成方法及电子设备 Download PDFInfo
- Publication number
- CN116055032B CN116055032B CN202210514278.5A CN202210514278A CN116055032B CN 116055032 B CN116055032 B CN 116055032B CN 202210514278 A CN202210514278 A CN 202210514278A CN 116055032 B CN116055032 B CN 116055032B
- Authority
- CN
- China
- Prior art keywords
- key
- identity information
- application
- electronic device
- information
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例公开了一种密钥生成方法及电子设备,涉及电子技术领域,以提高笔记本电脑等电子设备对隐私信息进行加密时,隐私信息的安全性。具体方案为:电子设备接收用户对第一应用程序对应的第一数据的第一操作;电子设备调用第一应用程序请求第二应用程序对第一数据进行加密;电子设备调用第二应用程序获取第一用户身份信息、第一应用程序身份信息以及第一密钥,并根据述第一用户身份信息、第一应用程序身份信息以及第一密钥,生成第二密钥,第二密钥用于加密第一数据;第一用户身份信息为登录电子设备的操作系统的用户身份信息,第一应用程序身份信息为第一应用程序的身份信息,第一密钥为操作系统包括的根密钥。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种密钥生成方法及电子设备。
背景技术
目前,用户可以使用笔记本电脑上相应的应用程序对用户的隐私信息进行加密。在通过应用程序对用户的隐私信息进行加密时,是由该隐私信息对应的应用程序生成密钥,并通过该密钥对隐私信息进行加密。通常由隐私信息对应的应用程序生成的密钥,容易被窃取到明文,因此应用程序生成的密钥的安全性较低。这就导致笔记本电脑对隐私信息进行加密时,隐私信息的安全性较低。
发明内容
本申请实施例提供一种密钥生成方法及电子设备,以提高笔记本电脑等电子设备对隐私信息进行加密时,隐私信息的安全性。
第一方面,本申请实施例提供一种密钥生成方法,应用于电子设备,该电子设备可以包括第一应用程序程序和第二应用程序,该密钥生成方法可以包括:电子设备接收用户对第一应用程序对应的第一数据的第一操作;第一操作用于触发电子设备对第一数据进行加密;响应于第一操作,电子设备调用第一应用程序请求第二应用程序对第一数据进行加密;电子设备调用第二应用程序获取第一用户身份信息、第一应用程序身份信息以及第一密钥,并根据第一用户身份信息、第一应用程序身份信息以及第一密钥,生成第二密钥,第二密钥用于加密第一数据;第一用户身份信息为登录电子设备的操作系统的用户身份信息,第一应用程序身份信息为第一应用程序的身份信息,第一密钥为操作系统包括的根密钥。
基于第一方面所述的密钥生成方法,在电子设备需要对第一数据(即隐私信息)进行加密时,可以通过电子设备的操作系统中的根密钥,并通过该电子设备的操作系统获取第一用户身份信息(即操作系统生成的用户身份信息),以及第一应用程序身份信息(即操作系统保存的隐私信息对应的应用程序身份信息),并根据根密钥、第一用户身份信息以及第一应用程序身份信息生成密钥,从而可以利用该密钥对隐私信息进行加密。也就是说,本申请的方案是根据电子设备的操作系统中的根密钥、第一用户身份信息以及隐私信息对应的应用程序身份信息(即第一应用程序身份信息)生成密钥,生成的密钥受到了操作系统的根密钥的保护,无法被窃取到,因此,生成的密钥的安全性较高。且根密钥以及隐私信息对应的应用程序身份信息(以及第一应用程序身份信息)不容易被仿冒,安全性较高,进一步提高了生成的密钥的安全性。
结合第一方面,在一种可能的实现方式中,第一用户身份信息以及第一应用程序身份信息可以在电子设备的操作系统中,上述电子设备调用第二应用程序获取第一用户身份信息以及第一应用程序身份信息,可以包括:电子设备调用第二应用程序,从操作系统中获取第一用户身份信息以及第一应用程序身份信息。
基于该可能的实现方式,第一用户身份信息以及第一应用程序身份信息,均是通过电子设备的操作系统获取的,即第一用户身份信息以及第一应用程序身份信息是保存在电子设备的操作系统中,从而不需要通过网络来获取。因此,本申请的方案可以通过电子设备自身来完成,不需要依赖于网络。
结合第一方面,在一种可能的实现方式中,电子设备还可以包括硬件信任根,硬件信任根可以包括第一密钥,硬件信任根允许第二应用程序访问,硬件信任根不允许第三应用程序访问,第三应用程序为电子设备中除第二应用程序之外的应用程序;上述电子设备调用第二应用程序获取第一密钥,可以包括:电子设备调用第二应用程序,从硬件信任根中获取第一密钥。
基于该可能的实现方式,第一密钥(即根密钥)可以通过电子设备包括的硬件信任根来获取,而不需要通过网络来获取。因此,本申请的方案可以通过电子设备自身来完成,不需要依赖于网络。且根密钥对应的硬件信任根只能通过用于生成密钥的第二应用程序访问,即第二应用程序之外的其他应用程序不能获取到根密钥,从而能够进一步提高根据根密钥生成的第二密钥的安全性。
结合第一方面,在一种可能的实现方式中,上述密钥生成方法还可以包括:电子设备调用第二应用程序根据第一用户身份信息以及第一应用程序身份信息,存储第二密钥。
基于该可能的实现方式,在电子设备保存生成的第二密钥时,可以根据第一用户身份信息以及第一应用程序身份信息存储生成的第二密钥。也就是说,在需要使用该密钥时,根据该密钥对应的用户身份信息以及应用程序身份信息才可以获取到该密钥,而在用户身份信息或者应用程序身份信息不同时,不能获取到该密钥,从而进一步提高了生成的密钥的安全性。
结合第一方面,在一种可能的实现方式中,上述密钥生成方法还可以包括:电子设备调用第二应用程序根据第一用户身份信息、第一应用程序身份信息以及第二密钥,生成第二密钥对应的密钥文件;密钥文件包括第二密钥以及第二密钥对应的创建者信息以及授权者信息;创建者信息包括第一用户身份信息以及第一应用程序身份信息;授权者信息包括第二用户身份信息以及第二应用程序身份信息,第二用户身份信息为被授权使用第二密钥的用户身份信息,第二应用程序身份信息为被授权使用第二密钥的应用程序的身份信息;电子设备调用第二应用程序根据第一用户身份信息和第一应用程序身份信息,以及第二用户身份信息和第二应用程序身份信息,存储密钥文件。
基于该可能的实现方式,在电子设备保存生成的密钥文件时,可以根据创建者的用户身份信息以及应用程序身份信息存储生成的密钥文件,也可以根据授权者的用户身份信息以及应用程序身份信息存储生成的密钥文件。也就是说,在需要使用该密钥时,可以通过该密钥对应的创建者的用户身份信息以及应用程序身份信息获取到该密钥,也可以通过该密钥对应的授权者的用户身份信息以及应用程序身份信息获取到该密钥,通过将该密钥授权给授权者,可以提高密钥使用性。
结合第一方面,在一种可能的实现方式中,电子设备调用第二应用程序将密钥文件存储在电子设备的第一存储区域,第一存储区域为第一用户身份信息对应的私有存储区域。
基于该可能的实现方式,在电子设备保存生成的密钥文件时,可以将密钥文件存储在用户身份信息对应的私有存储区域,即通过该用户身份信息可以访问该密钥文件,而其他用户身份信息不能访问该密钥文件,从而可以进一步提高生成的密钥的安全性。
结合第一方面,在一种可能的实现方式中,上述密钥生成方法还可以包括:电子设备调用第一应用程序接收用户的第二操作;响应于第二操作,电子设备调用第一应用程序请求第二应用程序对第二密钥进行授权管理;电子设备调用第二应用程序获取被授权使用第二密钥的第三用户身份信息以及第三应用程序身份信息,并修改授权者信息,得到修改之后的密钥文件;修改之后的密钥文件包括修改之后的授权信息,修改之后的授权者信息包括第三用户身份信息以及第三应用程序身份信息;电子设备调用第二应用程序存储修改之后的密钥文件。
基于该可能的实现方式,可以修改密钥文件中密钥对应的授权者信息,从而可以将该密钥授权给其他用户或者应用程序使用,通过将该密钥授权给授权者,可以提高密钥使用性。
结合第一方面,在一种可能的实现方式中,上述电子设备调用第二应用程序修改授权者信息,可以包括:电子设备调用第二应用程序获取第四用户身份信息和第四应用程序身份信息;第四用户身份信息为电子设备的操作系统当前登录的用户身份信息,第四应用程序身份信息为电子设备当前运行的应用程序的身份信息;在第四用户身份信息与创建者信息中的第一用户身份信息相同,以及第四应用程序身份信息与创建者信息中的第一应用程序身份信息相同的情况下,电子设备调用第二应用程序修改授权者信息。
基于该可能的实现方式,可以使得密钥的创建者可以修改密钥文件中密钥对应的授权者信息,而其他用户或者应用程序不能将该密钥进行授权,可以进一步提高密钥的安全性。
结合第一方面,在一种可能的实现方式中,上述电子设备调用第二应用程序存储修改之后的密钥文件,可以包括:电子设备调用第二应用程序将修改之后的密钥文件存储在电子设备的第二存储区域,第二存储区域为电子设备上所有用户身份信息均可访问的公有存储区域。
基于该可能的实现方式,通过将修改之后的密钥文件存储在电子设备的公有存储区域,可以使得密钥的创建者以及授权者,均可以访问到该密钥,从而可以使用该密钥,进一步提高密钥的使用性。
结合第一方面,在一种可能的实现方式中,电子设备为可以电脑,操作系统可以为Windows系统。
基于该可能的实现方式,在电子设备为包括Windows系统的电脑时,可以通过该电子设备的操作系统中的根密钥、用户身份信息以及隐私信息对应的应用程序身份信息生成密钥,生成的密钥受到了操作系统的根密钥的保护,无法被窃取到,因此,生成的密钥的安全性较高。且根密钥以及隐私信息对应的应用程序身份信息不容易被仿冒,安全性较高,进一步提高了生成的密钥的安全性。
结合第一方面,在一种可能的实现方式中,上述第一用户身份信息可以为用户安全身份,第一应用程序身份信息为在电子设备的操作系统上发布第一应用程序时,第一应用程序的发布厂商对第一应用程序的签名。
基于该可能的实现方式,第一用户身份信息为用户安全身份,第一应用程序身份信息为在发布厂商对第一应用程序的签名,使得第一用户身份信息以及第一应用程序身份信息不容易被仿冒,安全性较高,进一步提高了生成的密钥的安全性。
第二方面,本申请实施例提供一种密钥生成装置,该密钥生成装置可以应用于电子设备,用于实现上述第一方面中的方法。该密钥生成装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,例如,接收模块、请求模块、获取模块和生成模块等。
其中,接收模块,可以用于接收用户对第一应用程序对应的第一数据的第一操作;第一操作用于触发电子设备对第一数据进行加密。
请求模块,可以用于响应于第一操作,请求第二应用程序对第一数据进行加密。
获取模块,可以用于调用第二应用程序获取第一用户身份信息、第一应用程序身份信息以及第一密钥。
生成模块,可以用于根据第一用户身份信息、第一应用程序身份信息以及第一密钥,生成第二密钥,第二密钥用于加密第一数据;第一用户身份信息为登录电子设备的操作系统的用户身份信息,第一应用程序身份信息为第一应用程序的身份信息,第一密钥为操作系统包括的根密钥。
结合第二方面,在一种可能的实现方式中,获取模块,还可以用于调用第二应用程序,从操作系统中获取第一用户身份信息以及第一应用程序身份信息。
结合第二方面,在一种可能的实现方式中,获取模块,还可以用于调用第二应用程序,从硬件信任根中获取第一密钥。
结合第二方面,在一种可能的实现方式中,上述密钥生成装置还可以包括存储模块。存储模块,可以用于根据第一用户身份信息以及第一应用程序身份信息,存储第二密钥。
结合第二方面,在一种可能的实现方式中,生成模块,还可以用于根据第一用户身份信息、第一应用程序身份信息以及第二密钥,生成第二密钥对应的密钥文件;密钥文件包括第二密钥以及第二密钥对应的创建者信息以及授权者信息;创建者信息包括第一用户身份信息以及第一应用程序身份信息;授权者信息包括第二用户身份信息以及第二应用程序身份信息,第二用户身份信息为被授权使用所述第二密钥的用户身份信息,第二应用程序身份信息为被授权使用第二密钥的应用程序的身份信息。
存储模块,还可以用于根据第一用户身份信息和第一应用程序身份信息,以及第二用户身份信息和第二应用程序身份信息,存储密钥文件。
结合第二方面,在一种可能的实现方式中,存储模块,还可以用于将密钥文件存储在电子设备的第一存储区域,第一存储区域为第一用户身份信息对应的私有存储区域。
结合第二方面,在一种可能的实现方式中,接收模块,还可以用于接收用户的第二操作。
请求模块,还可以用于响应于第二操作,请求向第二应用程序对第二密钥进行授权管理。
获取模块,还可以用于调用第二应用程序获取被授权使用第二密钥的第三用户身份信息以及第三应用程序身份信息。
上述密钥生成装置还可以包括修改模块。修改模块,可以用于修改授权者信息,得到修改之后的密钥文件;修改之后的密钥文件包括修改之后的授权信息,修改之后的授权者信息包括第三用户身份信息以及第三应用程序身份信息。
存储模块,还可以用于第二应用程序存储修改之后的密钥文件。
结合第二方面,在一种可能的实现方式中,获取模块,还可以用于获取第四用户身份信息和第四应用程序身份信息;第四用户身份信息为电子设备的操作系统当前登录的用户身份信息,第四应用程序身份信息为电子设备当前运行的应用程序的身份信息。
修改模块,还可以用于在第四用户身份信息与创建者信息中的第一用户身份信息相同,以及第四应用程序身份信息与创建者信息中的第一应用程序身份信息相同的情况下,修改授权者信息。
结合第二方面,在一种可能的实现方式中,存储模块,还可以用于将修改之后的密钥文件存储在电子设备的第二存储区域,第二存储区域为电子设备上所有用户身份信息均可访问的公有存储区域。
结合第二方面,在一种可能的实现方式中,上述电子设备可以为电脑,上述操作系统可以为Windows系统。
结合第二方面,在一种可能的实现方式中,上述第一用户身份信息可以为用户安全身份,上述第一应用程序身份信息可以为在电子设备的操作系统上发布第一应用程序时,第一应用程序的发布厂商对第一应用程序的签名。
第三方面,提供了一种密钥生成设备,该密钥生成设备具有实现上述第一方面所述的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,提供了一种密钥生成设备,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该密钥生成设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该密钥生成设备执行如上述第一方面中任一项所述的密钥生成方法。
第五方面,提供了一种密钥生成设备,包括:处理器;所述处理器用于与存储器耦合,并读取存储器中的指令之后,根据所述指令执行如上述第一方面中任一项所述的密钥生成方法。
第六方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备实现如第一方面或第一方面的可能的实现方式中任一项所述的密钥生成方法。
第七方面,本申请实施例提供一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在电子设备中运行时,使得电子设备实现如第一方面或第一方面的可能的实现方式中任一项所述的密钥生成方法。
第八方面,提供了一种装置(例如,该装置可以是芯片系统),该装置包括处理器,用于支持第一设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存第一设备必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
应当理解的是,上述第二方面至第八方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备的硬件结构示意图;
图2为本申请实施例提供的密钥生成示意图一;
图3为本申请实施例提供的一种密钥生成方法的流程示意图一;
图4为本申请实施例提供的密钥生成示意图二;
图5为本申请实施例提供的密钥生成示意图三;
图6为本申请实施例提供的密钥生成示意图四;
图7为本申请实施例提供的一种密钥使用方法的流程示意图;
图8为本申请实施例提供的一种密钥授权方法的流程示意图;
图9为本申请实施例提供的密钥授权示意图一;
图10为本申请实施例提供的电子设备的显示界面示意图一;
图11为本申请实施例提供的电子设备的显示界面示意图二;
图12为本申请实施例提供的密钥授权示意图二;
图13为本申请实施例提供的一种密钥生成方法的流程示意图二;
图14为本申请实施例提供的一种密钥生成装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前,个人手机、电脑(如笔记本电脑)、电视等电子设备的使用已经非常普及,各大电子设备的厂商纷纷构建智慧办公、智能家居等便捷的应用场景来吸引用户。例如,用户可以使用手机将手机上的数据(如通讯录)传输给笔记本电脑,从而笔记本电脑可以保存以及使用手机传输的数据(即通讯录)。又如,用户也可以使用笔记本电脑对笔记本电脑上存储的数据(如手机传输给笔记本电脑的通讯录)进行加密,从而提高数据的安全性。
用户在使用笔记本电脑对笔记本电脑上存储的数据(也可以为称为隐私信息)进行加密时,是通过笔记本电脑上相应的应用程序对用户的隐私信息进行加密。例如,用户在使用笔记本电脑对笔记本电脑上隐私信息,如通讯录进行加密时,是通过笔记本电脑上通讯录对应的应用程序对通讯录进行加密。
然而,由于笔记本电脑上缺乏手机上的密钥托管服务,因此,笔记本电脑在通过应用程序对用户的隐私信息进行加密时,是由该隐私信息对应的应用程序生成对应的密钥,并通过该密钥对隐私信息进行加密。通常隐私信息对应的应用程序生成的密钥容易被窃取到明文,例如,应用程序生成的密钥可以是用户输入的密码,通常容易被窃取到明文。因此,应用程序生成的密钥的安全性较低。这就导致用户对笔记本电脑上的隐私信息进行加密时,隐私信息的安全性较低。
且应用程序生成对应的密钥之后,是由应用程序保存该生成的密钥。在应用程序保存该密钥时,保存的是密钥的明文,且该密钥的存储位置容易被其他用户或者其他应用程序获取到,这就进一步导致了隐私信息的安全性较低。
手机上的密钥托管服务,即手机上用于生成密钥的应用程序,如手机上的密钥库KeyStore或者手机上的钥匙链KeyChain。通常,手机上的密钥托管服务,是基于手机上的安全可执行环境生成和使用密钥,因此,手机上密钥的生成和使用过程安全性较高。且基于手机上的操作系统的身份信息完整性保护机制,生成的密钥被仿冒的难度大,因此,通过手机上的密钥托管服务生成的密钥安全性较高。然而,通常手机的操作系统以及硬件结构,与笔记本电脑的操作系统以及硬件结构不同,因此,手机上的密钥托管服务无法迁移至笔记本电脑,即笔记本电脑无法使用手机上的密钥托管服务来生成对应的密钥。
相关技术中,笔记本电脑可以利用智能合约实现基于身份的密钥管理方案及装置,具体的方案为:在目标用户的密钥需要更新的情况下,若目标用户为非受监管用户,则生成属于目标用户的主公钥和主私钥;从区块链中获取目标用户的身份信息;基于属于目标用户的主公钥和主私钥及目标用户的身份信息,生成第一目标私钥;将目标用户的当前私钥替换为第一目标私钥。也就是说,该相关技术中是利用用户的区块链智能合约身份来生成密钥,提高密钥的复杂度,从而提高生成的密钥的安全性。
该相关技术需要利用用户的区块链智能合约身份来生成密钥,用户的区块链智能合约身份依赖于复杂的区块链系统,这就导致在笔记本电脑没有在区块链系统时,无法生成对应的密钥,也就是说,该相关技术的方案依赖于网络,无法仅在笔记本电脑内完成。
针对上述问题,本申请实施例提供一种密钥生成方法及电子设备,应用于电子设备,该方法在电子设备需要对隐私信息进行加密时,可以通过电子设备的操作系统中的硬件信任根获取根密钥,并通过该电子设备的操作系统获取操作系统生成的用户身份信息,以及操作系统保存的隐私信息对应的应用程序身份信息,并根据根密钥、用户身份信息以及应用程序身份信息生成密钥,从而可以利用该密钥对隐私信息进行加密。也就是说,本申请的方案是根据电子设备的操作系统中的根密钥、用户身份信息以及隐私信息对应的应用程序身份信息生成密钥,生成的密钥受到了操作系统的根密钥的保护,无法被窃取到,因此,生成的密钥的安全性较高。且根密钥以及隐私信息对应的应用程序身份信息不容易被仿冒,安全性较高,进一步提高了生成的密钥的安全性。
且本申请的方案,在电子设备保存生成的密钥时,可以根据用户身份信息以及应用程序身份信息存储生成的密钥。也就是说,在需要使用该密钥时,根据该密钥对应的用户身份信息以及应用程序身份信息才可以获取到该密钥,而在用户身份信息或者应用程序身份信息不同时,不能获取到该密钥,从而进一步提高了生成的密钥的安全性。
另外,本申请的方案在生成密钥时,根密钥、用户身份信息以及隐私信息对应的应用程序身份信息,均是通过电子设备的操作系统获取的,即根密钥、用户身份信息以及隐私信息对应的应用程序身份信息可以保存在电子设备的操作系统中,从而不需要通过网络来获取。因此,本申请的方案可以通过电子设备自身来完成,不需要依赖于网络。
下面对本申请实施例提供的密钥生成方法进行描述。
本申请实施例提供的密钥生成方法可以应用于电子设备。在一些示例中,该电子设备可以是笔记本电脑、平板电脑、手持计算机,PC,个人数字助理(personal digitalassistant,PDA),可穿戴式设备等具有硬件信任根的电子设备。本申请实施例在此对电子设备的具体形态不做限制。
在一些示例中,硬件信任根可以为电子设备的操作系统中用于保存根密钥的应用程序。根密钥可以用于生成密钥。也就是说,根密钥是硬件信任根为电子设备分配的基本密钥,电子设备在需要生成密钥时,可以基于该根密钥生成最终的密钥。硬件信任根可以为厂商定制,且硬件信任根有权限管控,如只有电子设备上的密钥托管服务可以读取硬件信任根中存储的根密钥。即电子设备上的密钥托管服务可以访问硬件信任根,电子设备上的密钥托管服务可以通过硬件信任根获取到根密钥。电子设备上的其他应用程序不能访问硬件信任根,即其他应用程序不能根获取到根密钥。
在另一些示例中,电子设备上的密钥托管服务可以为电子设备上用于生成密钥的应用程序。电子设备上的密钥托管服务也可以对生成的密钥进行管理,例如存储该密钥,对该密钥进行授权或者删除该密钥等。
在另一些示例中,该电子设备可以是操作系统为Windows系统的电子设备。电子设备的操作系统也可以是安卓操作系统,还可以是其他任意满足使用需求的操作系统,具体可以根据实际使用需求确定,本申请实施例不作限定。示例地,以电子设备为笔记本电脑为例,图1示出了本申请实施例提供的一种电子设备的结构示意图。
如图1所示,该笔记本电脑可以包括:处理器110,风扇111,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,显示屏150,天线,无线通信模块160,音频模块170,扬声器(即喇叭)170A,麦克风170C,耳机接口170B,触控板180,键盘190,以及摄像头191等。
其中,上述除显示屏150之外的其他器件(如处理器110,风扇111,外部存储器接口120,内部存储器121,USB接口130,充电管理模块140,电源管理模块141,电池142,天线,无线通信模块160,音频模块170,触控板180,扬声器170A,麦克风170C,耳机接口170B,键盘190和摄像头191等)均可以设置在笔记本电脑的底座。上述摄像头191还可设置于笔记本电脑的显示屏150的边框上。
可以理解的是,本实施例示意的结构并不构成对笔记本电脑的具体限定。在另一些实施例中,笔记本电脑可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是笔记本电脑的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器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)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对笔记本电脑的结构限定。在另一些实施例中,笔记本电脑也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器(如无线充电器或有线充电器)接收充电输入,为电池142充电。笔记本电脑的无线通信功能可以通过天线和无线通信模块160,调制解调处理器以及基带处理器等实现。
天线用于发射和接收电磁波信号。笔记本电脑中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
在一些实施例中,笔记本电脑的天线和无线通信模块160耦合,使得笔记本电脑可以通过无线通信技术与网络以及其他设备通信。无线通信模块160可以提供应用在笔记本电脑上的包括无线局域网(wireless local area networks,WLAN)(如Wi-Fi网络,蓝牙(blue tooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
笔记本电脑可以通过GPU,显示屏150,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏150和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。显示屏150用于显示图像,视频等。
笔记本电脑可以通过ISP,摄像头191,视频编解码器,GPU,显示屏150以及应用处理器等实现拍摄功能。ISP用于处理摄像头191反馈的数据。在一些实施例中,ISP可以设置在摄像头191中。摄像头191用于捕获静态图像或视频。在一些实施例中,笔记本电脑可以包括1个或N个摄像头191,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展笔记本电脑的存储能力。内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行笔记本电脑的各种功能应用以及数据处理。例如,在本申请实施例中,处理器110可以通过执行存储在内部存储器121中的指令,内部存储器121可以包括存储程序区和存储数据区。
笔记本电脑可以通过音频模块170,扬声器170A,麦克风170C,耳机接口170B,以及应用处理器等实现音频功能。例如音乐播放,录音等。
当然,可以理解的,上述图1所示仅仅为电子设备的形态为笔记本电脑时的示例性说明。若电子设备是手持计算机,PDA,个人计算机等其他设备形态时,电子设备的结构中可以包括比图1中所示更少的结构,也可以包括比图1中所示更多的结构,在此不作限制。
以下实施例中的方法均可以在具有上述硬件结构的电子设备中实现。本申请实施例中以电子设备为笔记本电脑为例进行示意说明。
可以理解的是,一般而言,电子设备功能的实现除了需要硬件的支持外,还需要软件的配合。例如,结合图2所示,为了实现电子设备根据电子设备的操作系统中的根密钥、用户身份信息以及隐私信息对应的应用程序身份信息(即隐私信息对应的应用程序的身份信息)生成密钥的功能,电子设备除了需要上述的硬件的支持外,还需要软件的配合,如隐私信息对应的应用程序01、密钥托管服务02以及操作系统03。
隐私信息对应的应用程序01,可以用于接收用户加密的操作。隐私信息对应的应用程序01,还可以用于向密钥托管服务02发送密钥请求,即在隐私信息对应的应用程序01接收到用户加密的操作时,作为响应,隐私信息对应的应用程序01可以向密钥托管服务02发送密钥请求,从而密钥托管服务02可以根据该密钥请求生成对应的密钥,并通过该生成的密钥对隐私信息进行加密。
密钥托管服务02,可以为电子设备上用于生成密钥的应用程序。密钥托管服务02,可以用于接收隐私信息对应的应用程序01发送的密钥请求。密钥托管服务02,还可以用于在接收到隐私信息对应的应用程序01发送的密钥请求时,通过操作系统03获取根密钥、用户身份信息以及隐私信息对应的应用程序01的应用程序身份信息。密钥托管服务02,还可以用于根据根密钥、用户身份信息以及隐私信息对应的应用程序01的应用程序身份信息生成密钥。
密钥托管服务02,还可以用于通过生成的密钥对隐私信息进行加密,并将加密之后的隐私信息发送给隐私信息对应的应用程序01。
操作系统03,可以用于保存根密钥、用户身份信息以及隐私信息对应的应用程序01的应用程序身份信息。操作系统03,还可以用于向密钥托管服务02发送保存的根密钥、用户身份信息以及隐私信息对应的应用程序01的应用程序身份信息。
在一些示例中,为了实现电子设备根据电子设备的操作系统中的根密钥、用户身份信息以及隐私信息对应的应用程序01的应用程序身份信息生成密钥的功能,隐私信息对应的应用程序01、密钥托管服务02以及操作系统03除了需要如上述图1所示的硬件的支持外,还需要不同的功能模块的配合。
例如,结合图2所示,隐私信息对应的应用程序01可以包括密钥凭据模块04。密钥托管服务02可以包括密钥访问控制模块05、密钥分级保护模块06以及密钥管理模块07。密钥管理模块07可以包括密钥使用模块08以及密钥隔离存储模块09。操作系统03可以包括身份信息模块10和硬件信任根11。身份信息模块10可以包括用户身份信息模块12和应用程序身份信息模块13。
结合图2所示,电子设备根据电子设备的操作系统中的根密钥、用户身份信息以及隐私信息对应的应用程序身份信息生成密钥的过程可以包括:
在用户需要对电子设备上的隐私信息进行加密时,用户可以操作电子设备上的该隐私信息对应的应用程序01对隐私信息进行加密。即隐私信息对应的应用程序01包括的密钥凭据模块04可以接收用户对隐私信息进行加密的操作。
在隐私信息对应的应用程序01包括的密钥凭据模块04接收到用户对隐私信息进行加密的操作之后,作为响应,密钥凭据模块04可以向密钥托管服务02包括的密钥访问控制模块05发送密钥请求。
密钥托管服务02包括的密钥访问控制模块05在接收到隐私信息对应的应用程序01包括的密钥凭据模块04发送的密钥请求之后,密钥访问控制模块05可以通过操作系统03中的身份信息模块10获取用户身份信息以及隐私信息对应的应用程序01对应的应用程序身份信息。例如,密钥访问控制模块05可以通过身份信息模块10中的用户身份信息模块12获取用户身份信息。密钥访问控制模块05还可以通过身份信息模块10中的应用程序身份信息模块13获取隐私信息对应的应用程序01对应的应用程序身份信息。
在密钥访问控制模块05获取到用户身份信息和隐私信息对应的应用程序01对应的应用程序身份信息之后,密钥访问控制模块05可以向密钥托管服务02包括的密钥分级保护模块06发送用户身份信息和隐私信息对应的应用程序01对应的应用程序身份信息。
在密钥分级保护模块06获取到密钥访问控制模块05发送的用户身份信息和隐私信息对应的应用程序01对应的应用程序身份信息之后,密钥分级保护模块06可以通过操作系统03中的硬件信任根11获取根密钥。
在密钥分级保护模块06获取到硬件信任根11发送的根密钥之后,密钥分级保护模块06可以根据根密钥、用户身份信息以及隐私信息对应的应用程序01的应用程序身份信息生成密钥。
在密钥分级保护模块06生成密钥之后,密钥分级保护模块06可以向密钥托管服务02包括的密钥管理模块07发送生成的密钥,从而密钥管理模块07可以对该生成的密钥进行管理,如使用密钥、存储密钥、删除密钥以及对密钥进行授权等。
例如,密钥分级保护模块06可以向密钥管理模块07包括的密钥使用模块08发送生成的密钥。在密钥使用模块08接收到密钥分级保护模块06发送的密钥之后,密钥使用模块08可以通过该密钥对隐私信息进行加密。密钥使用模块08,还可以向隐私信息对应的应用程序01包括的密钥凭据模块04发送返回请求结果,返回请求结果可以包括加密后的隐私信息。
又如,密钥分级保护模块06可以向密钥管理模块07包括的密钥隔离存储模块09发送生成的密钥。密钥隔离存储模块09接收到密钥分级保护模块06发送的密钥之后,可以存储该密钥。
以下结合附图2对本申请实施例提供的密钥生成方法进行详细说明。图3为本申请实施例提供的一种密钥生成方法的流程示意图。如图3所示,该密钥生成方法可以包括下述S301-S320。
S301、电子设备的第一应用程序的密钥凭据模块接收用户对隐私信息的加密操作。
通常用户可以在电子设备上存储用户的隐私信息(也可以称为隐私数据,本申请实施例中可以称为第一数据),如用户的文件、图像、通讯录、文档等信息。
在一些示例中,电子设备上存储的用户的隐私信息,可以为电子设备生成的隐私信息,如用户通过电子设备生成的文件或者文档等信息。电子设备上存储的用户的隐私信息,也可以为其他电子设备向该电子设备发送的隐私信息,如用户通过手机向笔记本电脑发送的手机上的通讯录信息或者手机上的图像信息。
为了提高电子设备上存储用户的隐私信息的安全性,用户可以使用电子设备对电子设备上存储用户的隐私信息进行加密处理。
在一些示例中,在用户使用电子设备对电子设备上存储用户的隐私信息进行加密时,用户可以对第一应用程序进行操作(本申请实施例中可以称为第一操作),从而使得电子设备可以对该隐私信息进行加密。该第一应用程序可以为隐私信息对应的应用程序,如在隐私信息为通讯录信息时,第一应用程序可以为电子设备上通讯录对应的应用程序,在隐私信息为图像时,第一应用程序可以为电子设备上图像对应的应用程序。也就是说,在用户需要对电子设备上存储的通讯录信息进行加密时,用户可以对电子设备上通讯录对应的应用程序进行操作,从而使得电子设备可以对该通讯录信息进行加密。又如,在用户需要对电子设备上存储的图像信息进行加密时,用户可以对电子设备上图像对应的应用程序进行操作,从而使得电子设备可以对该图像信息进行加密。
在另一些示例中,第一应用程序也可以为电子设备上能够对用户的隐私信息进行加密的应用程序,如电脑管家等。
电子设备的第一应用程序可以包括密钥凭据模块,密钥凭据模块可以用于接收用户对隐私信息的加密操作。
在一些示例中,电子设备的第一应用程序可以包括对应的显示界面,该界面中可以包括加密选项,用户可以通过该加密选项对第一应用程序对应的隐私信息进行加密。也就是说,用户对隐私信息的加密操作可以为用户对第一应用程序包括对应的显示界面中的加密选项进行操作。例如,用户对第一应用程序包括对应的显示界面中的加密选项进行操作时,第一应用程序的密钥凭据模块可以接收到用户对隐私信息的加密操作。
S302、响应于该操作,电子设备的密钥凭据模块向密钥托管服务包括的密钥访问控制模块发送密钥请求,以指示电子设备对隐私信息进行加密。
在一些示例中,在电子设备的第一应用程序的密钥凭据模块接收到用户对隐私信息的加密操作时,作为响应,电子设备的第一应用程序的密钥凭据模块可以向电子设备的密钥托管服务(本申请实施例中可以称为第二应用程序)发送密钥请求(本申请实施例中可以称为第一请求),从而电子设备的密钥托管服务可以生成密钥,并利用生成的密钥对隐私信息进行加密。即密钥请求用于指示电子设备对隐私信息进行加密。
例如,在第一应用程序为电子设备上通讯录对应的应用程序时,通讯录对应的应用程序可以包括密钥凭据模块,用于接收用户对隐私信息的加密操作。在通讯录对应的应用程序包括的密钥凭据模块接收到用户对隐私信息(即通讯录数据)的加密操作时,作为响应,密钥凭据模块可以向电子设备的密钥托管服务发送密钥请求,从而电子设备的密钥托管服务可以生成相应的密钥,并通过该密钥对通讯录数据进行加密。
密钥托管服务可以为电子设备中用于生成密钥的应用程序。即密钥托管服务可以用于接收应用程序发送的密钥请求,并根据密钥请求生成对应的密钥,利用生成的密钥对隐私信息进行加密。也就是说,本申请实施例中,在对隐私信息进行加密时,密钥的生成和使用均是由电子设备的密钥托管服务来进行,无需隐私信息对应的应用程序的参与,因此,隐私信息对应的应用程序不保存电子设备密钥托管服务生成的密钥。相比于现有技术中由应用程序生成并保存密钥时,保存的是密钥的明文,且密钥的存储位置容易被其他用户或者其他应用程序获取到,本申请实施例中隐私信息对应的应用程序不能保存电子设备密钥托管服务生成的密钥,能够提高密钥的安全性。
在一些示例中,密钥请求可以包括密钥凭据信息,密钥凭据信息用于查找对应的密钥。密钥凭据信息可以为非机密的信息,如电子设备的应用程序生成的密钥,以使得能够根据密钥凭据信息查找到对应的用户身份信息和应用程序身份信息。密钥凭据信息,可以是电子设备的应用程序存储的非机密的信息,也可以是电子设备的应用程序生成的非机密的信息(也可以称为非机密的密钥),还可以是电子设备的应用程序接收用户输入的信息。
例如,在电子设备的密钥托管服务接收到第一应用程序的密钥凭据模块发送的密钥凭据信息之后,电子设备的密钥托管服务可以生成该密钥凭据信息对应的密钥,电子设备可以保存该密钥,并利用该密钥对隐私信息进行加密。之后,在用户使用电子设备的第一应用程序查看加密之后的隐私信息(即对加密的隐私信息进行解密)时,第一应用程序的密钥凭据模块可以向电子设备的密钥托管服发送该密钥凭据信息,电子设备的密钥托管服可以根据密钥凭据信息确定出对应的密钥,从而能够利用确定出的密钥对隐私信息进行解密。
如,在用户需要对电子设备上存储的通讯录信息进行加密时,用户可以对电子设备上通讯录对应的应用程序进行操作,从而使得电子设备可以对该通讯录信息进行加密。也就是说,在电子设备上通讯录对应的应用程序包括的密钥凭据模块接收到用户对隐私信息(即通讯录数据)的加密操作时,作为响应,在电子设备上通讯录对应的应用程序包括的密钥凭据模块可以向电子设备上的密钥托管服务发送密钥请求,密钥请求可以包括密钥凭据信息。电子设备的密钥托管服务可以生成该密钥凭据信息对应的密钥。电子设备可以保存该密钥,并利用该密钥对隐私信息进行加密。之后,在用户使用电子设备的通讯录对应的应用程序进行解密(即查看加密后的通讯录数据)时,应用程序可以向电子设备的密钥托管服发送该密钥凭据信息,电子设备的密钥托管服可以根据密钥凭据信息确定出对应的密钥,从而能够利用确定出的密钥对隐私信息进行解密。
在另一些实例中,密钥请求还可以包括隐私信息,即需要加密的隐私数据。例如,在用户需要对电子设备上存储的通讯录信息进行加密时,用户可以对电子设备上通讯录对应的应用程序进行操作,从而使得电子设备可以对该通讯录信息进行加密。也就是说,在电子设备上通讯录对应的应用程序包括的密钥凭据模块接收到用户对隐私信息(即通讯录数据)的加密操作时,作为响应,在电子设备上通讯录对应的应用程序包括的密钥凭据模块可以向电子设备上的密钥托管服务发送密钥请求,密钥请求可以包括隐私信息(即通讯录数据)。电子设备的密钥托管服务可以生成对应的密钥,并利用该密钥对隐私信息(即通讯录数据)进行加密处理。
在一些示例中,密钥请求还可以包括第一应用程序的根证书。密钥托管服务可以预置应用程序发布商的根证书。也就是说,在密钥托管服务接收到第一应用程序的密钥凭据模块发送的第一应用程序的根证书之后,密钥托管服务可以对第一应用程序的根证书进行验证,即确定密钥托管服务是否包括第一应用程序的根证书,在密钥托管服务包括第一应用程序的根证书的情况下,密钥托管服务可以生成对应的密钥。即密钥托管服务可以通过预置应用程序发布商的根证书,可做应用程序的访问控制,即仅允许已经预置进密钥托管服务的发布商的应用程序使用密钥托管服务生成密钥。
在一些示例中,电子设备密钥托管服务可以包括密钥访问控制模块,密钥访问控制模块可以用于接收电子设备的密钥凭据模块发送的密钥请求。即电子设备的密钥托管服务接收第一应用程序发送的密钥请求,可以为密钥托管服务包括的密钥访问控制模块接收第一应用程序包括的密钥凭据模块发送的密钥请求。
S303、电子设备的密钥访问控制模块接收密钥请求。
S304、电子设备的密钥访问控制模块根据密钥请求,向操作系统包括的身份管理模块发送身份获取请求。
在一些示例中,在电子设备的密钥访问控制模块接收到第一应用程序包括的密钥凭据模块发送的密钥请求之后,电子设备的密钥访问控制模块可以根据密钥请求,向电子设备的操作系统发送身份获取请求(本申请实施例中可以称为第二请求)。身份获取请求用于获取用户身份信息和应用程序身份信息,用户身份信息即登录电子设备的操作系统的用户身份信息,如电子设备的操作系统当前登录的用户身份信息。应用程序身份信息即第一应用程序的应用程序身份信息。
用户身份信息,可以为操作系统分配或生成的用户身份信息。用户身份信息,可以为用户安全身份(Secure identity,SecureID),是由操作系统维护的用户、用户组或其他安全主体的唯一不可变的标识符。用户的Secure ID,可以为操作系统为用户分配或生成的身份信息,如用户在登录电子设备的操作系统时使用的身份信息。
用户身份信息,可以由操作系统进行保存。电子设备的操作系统可以包括多个用户身份信息,不同的用户身份信息可以对应不同的使用权限。例如,电子设备的操作系统的用户身份信息可以包括家长身份信息以及儿童身份信息,通过家长身份信息登录操作系统,可以使用电子设备上的全部应用程序,而通过儿童身份信息登录操作系统,可以使用电子设备上的部分应用程序。
应用程序身份信息,即应用程序的身份信息,如第一应用程序的身份信息。应用程序身份信息,可以为应用程序的发布厂商在电子设备的操作系统(如Windows系统)上发布应用程序时对应用程序的签名,该签名可以保护应用程序的完整性,保护应用程序不可被仿冒。应用程序身份信息,可以预先存储在操作系统中。电子设备的操作系统可以包括多个应用程序对应的应用程序身份信息。
在一些示例中,电子设备的操作系统可以包括身份管理模块,身份管理模块用于存储用户身份信息和应用程序身份信息。也就是说,电子设备的密钥访问控制模块向操作系统发送身份获取请求,可以为电子设备的密钥访问控制模块向操作系统包括的身份管理模块发送身份获取请求。
在另一些示例中,电子设备的身份管理模块可以包括用户身份信息模块以及应用程序身份信息模块。用户身份信息模块,可以用于存储操作系统当前登录的用户身份信息。用户身份信息模块,还可以用于存储操作系统分配或生成的其他用户身份信息。应用程序身份信息模块,可以用于存储第一应用程序对应的应用程序身份信息。应用程序身份信息模块,还可以用于存储其他应用程序对应的应用程序身份信息。
也就是说,电子设备的密钥访问控制模块向操作系统发送身份获取请求,可以包括电子设备的密钥访问控制模块向操作系统包括的用户身份信息模块发送身份获取请求,通过操作系统包括的用户身份信息模块获取操作系统当前登录的用户身份信息。电子设备的密钥访问控制模块向操作系统发送身份获取请求,还可以包括电子设备的密钥访问控制模块向操作系统包括的应用程序身份信息模块发送身份获取请求,通过操作系统包括的应用程序身份信息模块获取第一应用程序(即隐私信息对应的应用程序)对应的应用程序身份信息。
在一些示例中,在密钥请求可以包括第一应用程序的根证书的情况下,密钥托管服务包括的密钥访问控制模块可以对第一应用程序的根证书进行验证,即确定密钥托管服务是否包括第一应用程序的根证书,在密钥托管服务包括第一应用程序的根证书的情况下,密钥访问控制模块可以向操作系统包括的身份管理模块发送身份获取请求。
S305、电子设备操作系统包括的身份管理模块接收身份获取请求。
在一些示例中,电子设备操作系统包括的身份管理模块可以包括用户身份信息模块和应用程序身份信息模块。在身份管理模块在电子设备操作系统包括的身份管理模块包括用户身份信息模块以及应用程序身份信息模块时,电子设备的身份管理模块接收密钥访问控制模块发送的身份获取请求,可以包括用户身份信息模块接收密钥访问控制模块发送的身份获取请求,以及应用程序身份信息模块接收密钥访问控制模块发送的身份获取请求。
S306、电子设备操作系统包括的身份管理模块根据身份获取请求,向密钥访问控制模块发送用户身份信息和应用程序身份信息。
在一些示例中,电子设备操作系统包括的身份管理模块可以包括用户身份信息模块和应用程序身份信息模块。在电子设备的身份管理模块包括用户身份信息模块以及应用程序身份信息模块时,电子设备的身份管理模块根据身份获取请求,向密钥访问控制模块发送用户身份信息和应用程序身份信息,可以包括电子设备的用户身份信息模块根据身份获取请求,向密钥访问控制模块发送用户身份信息(即操作系统当前登录的用户身份信息),以及应用程序身份信息模块根据身份获取请求,向密钥访问控制模块发送应用程序身份信息(即第一应用程序的应用程序身份信息)。
S307、电子设备的密钥访问控制模块接收用户身份信息和应用程序身份信息。
S308、电子设备的密钥访问控制模块向密钥分级保护模块发送用户身份信息和应用程序身份信息。
在电子设备的密钥访问控制模块接收到操作系统的身份管理模块发送的用户身份信息和应用程序身份信息之后,电子设备的密钥访问控制模块可以向密钥分级保护模块发送用户身份信息和应用程序身份信息,从而电子设备的密钥分级保护模块可以通过用户身份信息(即操作系统当前登录的用户身份信息)和应用程序身份信息(即第一应用程序的应用程序身份信息)生成密钥。
S309、电子设备的密钥分级保护模块接收用户身份信息和应用程序身份信息。
S310、电子设备的密钥分级保护模块向操作系统中的硬件信任根发送根密钥获取请求。
在电子设备的密钥分级保护模块接收到密钥访问控制模块发送的用户身份信息和应用程序身份信息之后,电子设备的密钥分级保护模块可以向操作系统中的硬件信任根发送根密钥获取请求(本申请实施例中可以称为第三请求)。即根密钥获取请求可以用于请求获取硬件信任根存储的根密钥(本申请实施例中可以称为第一密钥)。
硬件信任根可以存储一个或多个根密钥。在硬件信任根包括多个根密钥时,硬件信任根可以向密钥分级保护模块发送多个根密钥中的任意一个根密钥。
硬件信任根可以为厂商定制,且硬件信任根有权限管控,如只有电子设备上的密钥托管服务可以获取硬件信任根中存储的根密钥。也就是说,电子设备中的密钥托管服务允许获取硬件信任根中存储的根密钥,而电子设备中的其他应用程序(如隐私信息对应的应用程序,即上述的第一应用程序)不允许取到硬件信任根中存储的根密钥,因此根密钥的安全性较高,通过根密钥生成的密钥安全性也就较高。
根密钥可以为硬件信任根保存的密钥,根密钥也可以为硬件信任根生成的密钥。根密钥可以用于生成隐私信息对应的密钥。由于根密钥存储在电子设备的硬件信任根中,硬件信任根有权限管控,如密钥托管服务可以获取硬件信任根中存储的根密钥,而电子设备中的其他应用程序不能获取到硬件信任根中存储的根密钥,从而能够提高根密钥的安全性,进而能够提高根据根密钥生成的密钥的安全性。
S311、电子设备的硬件信任根接收根密钥获取请求。
S312、电子设备的硬件信任根根据密钥获取请求,向密钥分级保护模块发送根密钥。
在电子设备的硬件信任根接收到密钥分级保护模块发送的根密钥获取请求之后,电子设备的硬件信任根可以根据密钥获取请求,向密钥分级保护模块发送的根密钥。
S313、电子设备的密钥分级保护模块接收根密钥。
S314、电子设备的密钥分级保护模块根据根密钥、用户身份信息以及应用程序身份信息生成密钥。
在电子设备的密钥分级保护模块接收到电子设备的硬件信任根发送的根密钥之后,电子设备的密钥分级保护模块可以根据根密钥、用户身份信息以及应用程序身份信息生成密钥(本申请实施例中可以称为第二密钥)。
由于根据电子设备的操作系统中的根密钥、用户身份信息以及隐私信息对应的应用程序身份信息生成密钥,生成的密钥受到了操作系统的根密钥的保护,无法被窃取到,因此,生成的密钥的安全性较高。且由于硬件信任根有权限管控,如只有电子设备上的密钥托管服务可以读取硬件信任根中存储的根密钥,根密钥不容易被仿冒。即硬件信任根允许电子设备上的第二应用程序访问(即密钥托管服务),硬件信任根不允许电子设备上的第三应用程序访问,第三应用程序为电子设备中除第二应用程序之外的应用程序。第三应用程序可以包括第一应用程序。
且应用程序身份信息为应用程序的发布厂商在电子设备的操作系统上发布应用程序时对应用程序的签名,因此应用程序身份信息不容易被仿冒。因此,根密钥、用户身份信息以及应用程序身份信息生成密钥,不容易被仿冒,安全性较高,进一步提高了生成的密钥的安全性。
此外,由于根密钥、用户身份信息以及应用程序身份信息,是通过操作系统获取的,即根密钥、用户身份信息以及应用程序身份信息保存在电子设备的操作系统中,从而在生成密钥时不需要通过网络来获取。
在一些示例中,电子设备的密钥分级保护模块根据根密钥、用户身份信息以及应用程序身份信息生成密钥,可以包括:电子设备的密钥分级保护模块根据根密钥以及用户身份信息,利用密钥生成算法(如密钥派生算法)生成用户主密钥,即用户身份信息对应的密钥,也就是说,不同的用户身份信息对应的用户主密钥不同。
在生成用户主密钥之后,电子设备的密钥分级保护模块可以根据用户主密钥以及应用程序身份信息生成工作密钥,也就是说,不同的应用程序身份信息对应的工作密钥不同。工作密钥即电子设备的密钥托管服务生成的,对隐私信息进行加密时使用的密钥。
例如,以用户身份信息包括用户A的身份信息和用户B的身份信息,应用程序身份信息包括应用程序1的身份信息和应用程序2的身份信息为例,结合图4对本申请实施例中生成密钥的过程进行示意说明。
电子设备的密钥分级保护模块在生成密钥时,可以先根据根密钥以及用户身份信息,利用密钥生成算法生成用户主密钥。在用户身份信息为用户A的身份信息时,密钥分级保护模块根据根密钥以及用户A的身份信息,可以生成用户主密钥A。用户主密钥A,即用户A的身份信息对应的用户主密钥。
在生成用户主密钥A之后,电子设备的密钥分级保护模块根据用户主密钥A以及应用程序身份信息生成工作密钥。在应用程序身份信息为应用程序1的身份信息时,密钥分级保护模块根据用户主密钥A以及应用程序1的身份信息,生成工作密钥1,工作密钥1即为用户A的身份信息以及应用程序1的身份信息对应的密钥。也就是说,在操作系统当前登录的用户为用户A,用户A需要对应用程序1对应的隐私信息进行加密时,电子设备的密钥托管服务生成的密钥。在应用程序身份信息为应用程序2的身份信息时,密钥分级保护模块根据用户主密钥A以及应用程序2的身份信息,生成工作密钥2,工作密钥2即为用户A的身份信息以及应用程序2的身份信息对应的密钥。也就是说,在操作系统当前登录的用户为用户A,用户A需要对应用程序2对应的隐私信息进行加密时,电子设备的密钥托管服务生成的密钥。
在用户身份信息为用户B的身份信息时,密钥分级保护模块根据根密钥以及用户B的身份信息,可以生成用户主密钥B。用户主密钥B,即用户B的身份信息对应的用户主密钥。
在生成用户主密钥B之后,电子设备的密钥分级保护模块根据用户主密钥B以及应用程序身份信息生成工作密钥。在应用程序身份信息为应用程序1的身份信息时,密钥分级保护模块根据用户主密钥B以及应用程序1的身份信息,生成工作密钥3,工作密钥1即为用户B的身份信息以及应用程序1的身份信息对应的密钥。也就是说,在操作系统当前登录的用户为用户B,用户B需要对应用程序1对应的隐私信息进行加密时,电子设备的密钥托管服务生成的密钥。在应用程序身份信息为应用程序2的身份信息时,密钥分级保护模块根据用户主密钥B以及应用程序2的身份信息,生成工作密钥4,工作密钥2即为用户B的身份信息以及应用程序2的身份信息对应的密钥。也就是说,在操作系统当前登录的用户为用户B,用户B需要对应用程序2对应的隐私信息进行加密时,电子设备的密钥托管服务生成的密钥。
在一些示例中,在电子设备的密钥分级保护模块根据根密钥、用户身份信息以及应用程序身份信息生成密钥之后,电子设备的密钥分级保护模块可以生成该密钥对应的密钥文件。密钥文件,可以用于存储该密钥。密钥文件,还可以用于对该密钥的使用权限进行管控。
密钥文件可以包括电子设备的密钥分级保护模块生成的密钥,还可以包括其他密钥信息,如加密密钥密文和工作密钥密文。
密钥文件还可以包括权限管控参数,权限管控参数可以用于对该密钥的使用权限进行管控。例如,权限管控参数可以包括创建者信息、授权者信息以及完整性保护参数。
创建者信息,可以包括创建者的身份信息,即生成该密钥时对应的用户身份信息以及应用程序身份信息。创建者信息,可以用于对密钥的生成、使用、删除以及授权等权限进行管理。也就是说,在当前的用户身份信息以及应用程序身份信息,与创建者信息中的用户身份信息以及应用程序身份信息相同时,用户可以使用电子设备的密钥托管服务对该密钥进行使用、删除以及授权等权限管理。
授权者信息,可以包括被创建者授权可以使用该密钥的授权者的身份信息,即被授权者的用户身份信息(本申请实施例中可以称为第二用户身份信息)以及应用程序身份信息(本申请实施例中可以称为第二应用程序身份信息)。授权者信息,可以用于对密钥的使用权限进行管理。也就是说,在当前的用户身份信息以及应用程序身份信息,与授权者信息中的用户身份信息以及应用程序身份信息相同时,用户可以使用电子设备的密钥托管服务使用该密钥。
完整性保护参数,用于保护密钥文件的完整性。完整性保护参数,可以在创建者信息对应的创建者密钥文件中的数据时重新生成,从而能够保证该密钥文件不允许除创建者之外的其余应用程序或者用户修改。
S315、电子设备的密钥分级保护模块向密钥使用模块发送生成的密钥。
在电子设备的密钥分级保护模块根据根密钥、用户身份信息以及应用程序身份信息生成密钥之后,电子设备的密钥分级保护模块可以将生成的密钥发送给电子设备的密钥使用模块,从而密钥使用模块可以利用该密钥对隐私信息进行加密。
S316、电子设备的密钥使用模块接收并根据生成的密钥对隐私信息进行加密。
S317、电子设备的密钥使用模块向第一应用程序包括的密钥凭据模块发送加密后的隐私信息。
在电子设备的密钥使用模块利用该密钥对隐私信息进行加密之后,电子设备的密钥使用模块可以向应用程序包括的密钥凭据模块发送加密后的隐私信息。
S318、电子设备的第一应用程序包括的密钥凭据模块接收加密后的隐私信息。
在电子设备的应用程序包括的密钥凭据模块接收加密后的隐私信息之后,电子设备的应用程序可以存储该加密后的隐私信息。
S319、电子设备的密钥分级保护模块向密钥隔离存储模块发送生成的密钥。
在电子设备的密钥分级保护模块根据根密钥、用户身份信息以及应用程序身份信息生成密钥之后,电子设备的密钥分级保护模块还可以将生成的密钥发送给电子设备的密钥隔离存储模块,从而密钥隔离存储模块可以存储该密钥。
在一些示例中,在电子设备的密钥分级保护模块根据根密钥、用户身份信息以及应用程序身份信息生成密钥之后,电子设备的密钥分级保护模块将生成的密钥发送给电子设备的密钥使用模块,以及电子设备的密钥分级保护模块将生成的密钥发送给电子设备的密钥隔离存储模块可以同时进行,即上述S315和S319可以同时进行。
S320、电子设备的密钥隔离存储模块接收并存储生成的密钥。
在电子设备的密钥隔离存储模块接收到密钥分级保护模块发送的密钥之后,电子设备的密钥隔离存储模块可以存储该密钥,从而在用户使用电子设备的第一应用程序查看加密之后的隐私信息(即对加密的隐私信息进行解密)时,电子设备可以利用密钥隔离存储模块存储的密钥对加密之后的隐私信息进行解密。
在一些示例中,电子设备的密钥隔离存储模块存储生成的密钥可以包括电子设备的密钥隔离存储模块根据用户身份信息(即第一用户身份信息)以及应用程序身份信息(即第一应用程序身份信息)存储对应的密钥。
例如,电子设备的密钥隔离存储模块可以根据用户身份信息建立用户身份信息对应的目录,从而将该用户身份信息对应的所有密钥存储在该目录中。在电子设备的密钥隔离存储模块将用户身份信息对应的所有密钥存储在该用户身份信息对应的目录中之后,电子设备的密钥隔离存储模块可以建立并存储用户身份信息、应用程序身份信息与对应的密钥的存储位置之间的对应关系,从而可以根据用户身份信息、应用程序身份信息以及该对应关系,确定出对应的密钥的存储位置,进而确定出对应的密钥。
如图5所示,在用户身份信息为用户A的身份信息时,电子设备的密钥隔离存储模块可以建立用户A对应的目录,即用户A对应的目录可以存储利用用户A的身份信息生成的密钥,如利用用户A的身份信息以及应用程序1的身份信息生成的密钥对应的密钥文件1,以及利用用户A的身份信息以及应用程序2的身份信息生成的密钥对应的密钥文件2。密钥文件2可以包括加密密钥密文、工作密钥密文以及权限管控参数,权限管控参数可以包括创建者信息、授权者信息以及完整性保护参数。
电子设备的密钥隔离存储模块可以建立并存储用户A的身份信息、应用程序1的身份信息与密钥文件1的存储位置之间的对应关系,从而可以根据用户A的身份信息、应用程序1的身份信息以及该对应关系,确定出对应的密钥文件1的存储位置,进而确定出密钥文件1对应的密钥。
在电子设备的密钥隔离存储模块根据用户身份信息建立用户身份信息对应的目录,从而将该用户身份信息对应的所有密钥存储在该目录中之后,电子设备的密钥隔离存储模块可以将该用户身份信息对应的目录存储在该用户身份信息对应的私有存储区域(本申请实施例中可以称为第一存储区域)。私有存储区域,即只有该用户可以访问,而别的用户不能访问的存储区域。
例如,在电子设备的密钥隔离存储模块建立用户A对应的目录,用户A对应的目录包括利用用户A的身份信息生成的所有密钥之后,电子设备的密钥隔离存储模块可以将用户A对应的目录存储在用户A对应的私有存储区域,即在电子设备的操作系统当前登录的用户为用户A时,电子设备可以访问用户A对应的私有存储区域,以及获取用户A对应的私有存储区域中存储的密钥。之后,电子设备的密钥隔离存储模块可以建立并存储用户A的身份信息于密钥文件1的存储位置之间的对应关系,以及用户A的身份信息于密钥文件2的存储位置之间的对应关系。而在电子设备的操作系统当前登录的用户为用户B时,电子设备可以不访问用户A对应的私有存储区域,也不能获取用户A对应的私有存储区域中存储的密钥。
电子设备根据用户身份信息以及应用程序身份信息存储对应的密钥时,电子设备的密钥隔离存储模块也可以建立用户公共目录,从而将用户身份信息对应的密钥存储在该用户公共目录中。如图6所示,电子设备的密钥隔离存储模块可以建立用户公共目录,用户公共目录可以包括密钥文件3和密钥文件4。密钥文件3可以为利用用户A的身份信息生成的密钥对应的密钥文件,密钥文件3可以为利用用户B的身份信息生成的密钥对应的密钥文件。
在电子设备的密钥隔离存储模块建立用户公共目录,将用户身份信息对应的密钥存储在该用户公共目录中之后,电子设备的密钥隔离存储模块可以将该用户公共目录存储在公有存储区域(本申请实施例中可以称为第二存储区域)。公有存储区域,即电子设备上所有的用户均能访问的存储区域。
在另一些示例中,在电子设备的密钥凭据模块向密钥访问控制模块发送的密钥请求包括密钥凭据信息时,电子设备的密钥隔离存储模块存储生成的密钥,还可以包括电子设备的密钥隔离存储模块根据密钥凭据信息、用户身份信息以及应用程序身份信息存储对应的密钥。
例如,在电子设备的密钥隔离存储模块接收到密钥分级保护模块生成的密钥之后,密钥隔离存储模块可以将该生成的密钥存储在该用户身份信息对应的目录中。之后,密钥隔离存储模块可以建立并存储密钥凭据信息、用户身份信息以及应用程序身份信息,与对应的密钥的存储位置之间的对应关系。之后,在用户使用电子设备的第一应用程序查看加密之后的隐私信息(即对加密的隐私信息进行解密)时,第一应用程序的密钥凭据模块可以向电子设备的密钥托管服发送该密钥凭据信息,从而密钥隔离存储模块可以根据该密钥凭据信息、用户身份信息以及应用程序身份信息确定出对应的密钥的存储位置,进而确定出对应的密钥,从而能够利用确定出的密钥对隐私信息进行解密。
本申请的方案是根据电子设备的操作系统中的根密钥、用户身份信息以及隐私信息对应的应用程序身份信息生成密钥,生成的密钥受到了操作系统的根密钥的保护,无法被窃取到,因此,生成的密钥的安全性较高。且根密钥以及隐私信息对应的应用程序身份信息不容易被仿冒,安全性较高,进一步提高了生成的密钥的安全性。
且本申请的方案,在电子设备保存生成的密钥时,可以根据用户身份信息以及应用程序身份信息存储生成的密钥。也就是说,在需要使用该密钥时,根据该密钥对应的用户身份信息才可以获取到该密钥,而在用户身份信息不同时,不能获取到该密钥,从而可以进一步提高了生成的密钥的安全性。
另外,本申请的方案在生成密钥时,根密钥、用户身份信息以及隐私信息对应的应用程序身份信息,均是通过电子设备的操作系统获取的,即根密钥、用户身份信息以及隐私信息对应的应用程序身份信息可以保存在电子设备的操作系统中,从而不需要通过网络来获取。因此,本申请的方案可以通过电子设备自身来完成,不需要依赖于网络。
在电子设备的密钥托管服务生成对应的密钥对隐私信息进行加密,且电子设备的密钥托管服务存储生成的密钥之后,电子设备的密钥托管服务也可以使用该存储的密钥。例如,在用户使用电子设备的第一应用程序查看加密之后的隐私信息时,电子设备的密钥托管服可以确定出对应的密钥,从而能够利用确定出的密钥对隐私信息进行解密。
具体的,图7为本申请实施例提供的一种密钥使用方法的流程示意图。如图7所示,该密钥使用方法可以包括下述S701-S723。
S701、电子设备的第一应用程序的密钥凭据模块接收用户解密的操作。
在用户通过电子设备上的第一应用程序对隐私信息进行加密之后,用户也可以通过电子设备上的第一应用程序查看加密之后的对隐私信息,即电子设备可以对加密之后的隐私信息的进行解密。
在一些示例中,第一应用程序可以为隐私信息对应的应用程序,如加密之后的对隐私信息为通讯录信息时,第一应用程序可以为电子设备上通讯录对应的应用程序,在加密之后的对隐私信息为图像时,第一应用程序可以为电子设备上图像对应的应用程序。
在一些示例中,在用户通过电子设备上的第一应用程序查看加密之后的对隐私信息时,用户可以通过电子设备上的第一应用程序打开加密之后的隐私信息,即在用户通过电子设备上的第一应用程序打开加密之后的隐私信息时,电子设备的第一应用程序接收到用户解密的操作。
在一些示例中,电子设备的第一应用程序可以包括密钥凭据模块,密钥凭据模块可以用于接收用户对加密之后的隐私信息进行解密的操作。例如,用户通过电子设备上的第一应用程序打开加密之后的隐私信息时,电子设备的第一应用程序的密钥凭据模块可以接收到用户解密的操作。
S702、响应于该操作,电子设备的密钥凭据模块向密钥托管服务包括的密钥访问控制模块发送解密请求,以指示电子设备对隐私信息进行解密。
在一些示例中,在电子设备的第一应用程序的密钥凭据模块接收到用户对加密之后的隐私信息的解密操作时,作为响应,电子设备的第一应用程序的密钥凭据模块可以向电子设备的密钥托管服务发送解密请求,从而电子设备的密钥托管服务可以确定出对应的密钥,并利用确定出的密钥对加密之后的隐私信息进行解密。即解密请求用于指示电子设备对加密之后的隐私信息进行解密。
例如,在第一应用程序为电子设备上通讯录对应的应用程序时,通讯录对应的应用程序可以包括密钥凭据模块,用于接收用户对加密之后的隐私信息进行解密的操作。在通讯录对应的应用程序包括的密钥凭据模块接收到用户对加密之后的隐私信息(即加密之后的通讯录信息)进行解密的操作时,作为响应,密钥凭据模块可以向电子设备的密钥托管服务发送解密请求,从而电子设备的密钥托管服务可以确定出对应的密钥(即对隐私信息进行加密时的密钥),并通过该密钥对加密之后的通讯录信息进行解密。
在一些示例中,解密请求可以包括密钥凭据信息,密钥凭据信息用于查找对应的密钥。例如,在电子设备的密钥托管服务接收到第一应用程序的密钥凭据模块发送的密钥凭据信息之后,电子设备的密钥托管服务可以根据该密钥凭据信息确定出对应的密钥,从而能够利用确定出的密钥对隐私信息进行解密。
在另一些实例中,解密请求还可以包括加密之后的隐私信息,即需要解密的隐私数据。例如,在用户需要对电子设备上存储的加密之后的通讯录信息进行解密时,用户可以对电子设备上通讯录对应的应用程序进行操作,从而使得电子设备可以对该加密之后的通讯录信息进行解密。也就是说,在电子设备上通讯录对应的应用程序包括的密钥凭据模块接收到用户对加密之后的隐私信息(即加密之后的通讯录信息)进行解密的操作时,作为响应,电子设备上通讯录对应的应用程序包括的密钥凭据模块可以向电子设备上的密钥托管服务发送解密请求,解密请求可以包括加密之后的隐私信息(即加密之后的通讯录信息)。电子设备的密钥托管服务可以确定出对应的密钥,并利用该密钥对加密之后的隐私信息(即加密之后的通讯录信息)进行解密处理。
在一些示例中,解密请求还可以包括第一应用程序的根证书。在密钥托管服务接收到第一应用程序的密钥凭据模块发送的第一应用程序的根证书之后,密钥托管服务可以对第一应用程序的根证书进行验证,即确定密钥托管服务是否包括第一应用程序的根证书,在密钥托管服务包括第一应用程序的根证书的情况下,密钥托管服务确定出对应的密钥,并利用确定出的密钥对加密之后的隐私信息进行解密。即密钥托管服务可以通过预置应用程序发布商的根证书,可做应用程序的访问控制,即仅允许已经预置进密钥托管服务的发布商的应用程序使用密钥托管服务确定出对应的密钥。
在一些示例中,电子设备密钥托管服务可以包括密钥访问控制模块,密钥访问控制模块可以用于接收电子设备的密钥凭据模块发送的解密请求。即电子设备的密钥托管服务接收第一应用程序发送的解密请求,可以为密钥托管服务包括的密钥访问控制模块接收第一应用程序包括的密钥凭据模块发送的解密请求。
S703、电子设备的密钥访问控制模块接收解密请求。
S704、电子设备的密钥访问控制模块根据解密请求,向操作系统包括的身份管理模块发送身份获取请求。
在一些示例中,在电子设备的密钥访问控制模块接收到第一应用程序包括的密钥凭据模块发送的解密请求之后,电子设备的密钥访问控制模块可以根据解密请求,向电子设备的操作系统发送身份获取请求。身份获取请求用于获取用户身份信息和应用程序身份信息,用户身份信息即操作系统当前登录的用户身份信息,应用程序身份信息即第一应用程序的应用程序身份信息。
在一些示例中,电子设备的密钥访问控制模块根据解密请求,向操作系统发送身份获取请求,可以为电子设备的密钥访问控制模块向操作系统包括的身份管理模块发送身份获取请求。
在一些示例中,电子设备的密钥访问控制模块根据解密请求,向操作系统发送身份获取请求,可以包括电子设备的密钥访问控制模块根据解密请求,向操作系统包括的用户身份信息模块发送身份获取请求,通过操作系统包括的用户身份信息模块获取操作系统当前登录的用户身份信息。电子设备的密钥访问控制模块根据解密请求,向操作系统发送身份获取请求,还可以包括电子设备的密钥访问控制模块向操作系统包括的应用程序身份信息模块发送身份获取请求,通过操作系统包括的应用程序身份信息模块获取第一应用程序(即隐私信息对应的应用程序)对应的应用程序身份信息。
在一些示例中,在解密请求可以包括第一应用程序的根证书的情况下,密钥托管服务包括的密钥访问控制模块可以对第一应用程序的根证书进行验证,即确定密钥托管服务是否包括第一应用程序的根证书,在密钥托管服务包括第一应用程序的根证书的情况下,密钥访问控制模块可以向操作系统包括的身份管理模块发送身份获取请求。
S705、电子设备的身份管理模块接收身份获取请求。
在一些示例中,在电子设备操作系统包括的身份管理模块包括用户身份信息模块以及应用程序身份信息模块时,电子设备的身份管理模块接收密钥访问控制模块发送的身份获取请求,可以包括用户身份信息模块接收密钥访问控制模块发送的身份获取请求,以及应用程序身份信息模块接收密钥访问控制模块发送的身份获取请求。
S706、电子设备的身份管理模块根据身份获取请求,向密钥访问控制模块发送用户身份信息和应用程序身份信息。
在一些示例中,在电子设备的身份管理模块包括用户身份信息模块以及应用程序身份信息模块时,电子设备的身份管理模块根据身份获取请求,向密钥访问控制模块发送用户身份信息和应用程序身份信息,可以包括电子设备的用户身份信息模块向密钥访问控制模块发送用户身份信息(即操作系统当前登录的用户身份信息),以及应用程序身份信息模块向密钥访问控制模块发送应用程序身份信息(即第一应用程序的应用程序身份信息)。
S707、电子设备的密钥访问控制模块接收用户身份信息和应用程序身份信息。
S708、电子设备的密钥访问控制模块向密钥分级保护模块发送用户身份信息和应用程序身份信息。
在电子设备的密钥访问控制模块接收到操作系统的身份管理模块发送的用户身份信息和应用程序身份信息之后,电子设备的密钥访问控制模块可以向密钥分级保护模块发送用户身份信息和应用程序身份信息,从而电子设备的密钥分级保护模块可以通过用户身份信息(即操作系统当前登录的用户身份信息)和应用程序身份信息(即第一应用程序的应用程序身份信息)解密对应的密钥。
在一些示例中,在解密请求包括密钥凭据信息的情况下,电子设备的密钥访问控制模块可以向密钥分级保护模块发送密钥凭据信息,从而电子设备可以根据密钥凭据信息确定出对应的密钥。
S709、电子设备的密钥分级保护模块接收用户身份信息和应用程序身份信息。
S710、电子设备的密钥分级保护模块向密钥隔离存储模块发送用户身份信息和应用程序身份信息。
在电子设备的密钥分级保护模块接收到密钥访问控制模块发送的用户身份信息和应用程序身份信息之后,密钥分级保护模块可以向密钥隔离存储模块发送用户身份信息和应用程序身份信息,从而密钥隔离存储模块可以根据用户身份信息和应用程序身份信息确定出对应的密钥。
在一些示例中,在解密请求包括密钥凭据信息的情况下,电子设备的密钥访问控制模块可以向密钥分级保护模块发送密钥凭据信息,从而电子设备的密钥隔离存储模块可以根据密钥凭据信息确定出对应的密钥。
S711、电子设备的密钥隔离存储模块接收用户身份信息和应用程序身份信息。
S712、电子设备的密钥隔离存储模块根据用户身份信息和应用程序身份信息,确定密钥。
在电子设备的密钥隔离存储模块接收到密钥分级保护模块发送的用户身份信息和应用程序身份信息之后,电子设备的密钥隔离存储模块可以根据用户身份信息和应用程序身份信息,确定对应的密钥。
在一些示例中,在电子设备的密钥隔离存储模块根据用户身份信息和应用程序身份信息存储生成的密钥时,电子设备的密钥隔离存储模块可以根据用户身份信息、应用程序身份信息存储生成的密钥以及对应关系,确定出对应的密钥。该对应关系可以为生成密钥时用户身份信息以及应用程序身份信息,与生成的密钥的存储位置之间的对应关系。即电子设备的密钥隔离存储模块可以根据用户身份信息、应用程序身份信息以及该对应关系,确定出对应的密钥存储的位置,进而确定出对应的密钥。
在另一些示例中,在电子设备的密钥隔离存储模块根据用户身份信息和应用程序身份信息,确定对应的密钥,密钥是通过密钥文件存储时,电子设备的密钥隔离存储模块可以根据密钥分级保护模块发送的用户身份信息和应用程序身份信息,与密钥文件中的身份信息确定密钥的使用权限。
例如,以密钥文件包括权限管控参数,权限管控参数包括创建者信息和授权者信息为例,创建者信息包括生成该密钥时对应的用户身份信息以及应用程序身份信息,授权者信息包括被授权者的用户身份信息以及应用程序身份信息。
在密钥分级保护模块发送的用户身份信息以及应用程序身份信息,与密钥文件中的创建者信息包括的用户身份信息以及应用程序身份信息相同时,电子设备可以对该密钥进行使用、删除以及授权等。在密钥分级保护模块发送的用户身份信息以及应用程序身份信息,与密钥文件中的授权者信息包括的用户身份信息以及应用程序身份信息相同时,电子设备可以对该密钥进行使用,而不能对该密钥进行授权和删除该密钥。在密钥分级保护模块发送的用户身份信息以及应用程序身份信息,与密钥文件中的身份信息(即创建者信息和授权者信息)均不同时,电子设备不可以使用该密钥,也不能对该密钥进行授权和删除该密钥,也就是说,电子设备不能使用该密钥对加密之后的隐私信息进行解密。
如,在电子设备的密钥分级保护模块利用用户A的身份信息以及应用程序1的身份信息生成的密钥对应的密钥文件1时,电子设备的密钥隔离存储模块存储密钥文件1。密钥文件1包括权限管控参数,权限管控参数包括创建者信息(即用户A的身份信息以及应用程序1的身份信息),以及授权者信息(如用户B的身份信息以及应用程序1的身份信息)。
在用户A使用应用程序1对加密之后的隐私信息进行解密时,电子设备的密钥隔离存储模块可以确定用户A为创建者,电子设备可以使用该密钥,也可以对该密钥进行授权和删除该密钥。在用户B使用应用程序1对加密之后的隐私信息进行解密时,电子设备的密钥隔离存储模块可以确定用户B为授权者,电子设备可以使用该密钥,不能对该密钥进行授权和删除该密钥。
而在用户C使用应用程序1对加密之后的隐私信息进行解密时,电子设备的密钥隔离存储模块可以确定用户C既不是创建者,也不是授权者,电子设备不能使用该密钥,也不能对该密钥进行授权和删除该密钥,即用户C使用应用程序1对不能对加密之后的隐私信息进行解密。
在一些示例中,在解密请求包括密钥凭据信息的情况下,电子设备的密钥隔离存储模块也可以根据密钥凭据信息、用户身份信息、应用程序身份信息以及对应关系,确定出对应的密钥。该对应关系可以为生成密钥时密钥请求包括的密钥凭据信息、生成密钥时用户身份信息以及应用程序身份信息,与生成的密钥的存储位置之间的对应关系。即电子设备的密钥隔离存储模块可以根据解密请求包括的密钥凭据信息、密钥分级保护模块发送的用户身份信息和应用程序身份信息以及该对应关系,确定出对应的密钥存储的位置,进而确定出对应的密钥。
S713、电子设备的密钥隔离存储模块向密钥分级保护模块发送密钥。
在电子设备的密钥隔离存储模块确定出对应的密钥之后,密钥隔离存储模块可以向密钥分级保护模块发送对应的密钥。
S714、电子设备的密钥分级保护模块接收密钥。
S715、电子设备的密钥分级保护模块向操作系统中的硬件信任根发送根密钥获取请求。
在电子设备的密钥分级保护模块接收到密钥隔离存储模块发送的对应的密钥之后,密钥分级保护模块可以向操作系统中的硬件信任根发送根密钥获取请求。即根密钥获取请求可以用于请求获取硬件信任根存储的根密钥。
S716、电子设备的硬件信任根接收根密钥获取请求。
S717、电子设备的硬件信任根根据根密钥获取请求,向密钥分级保护模块发送根密钥。
S718、电子设备的密钥分级保护模块接收根密钥。
S719、电子设备的密钥分级保护模块根据根密钥、用户身份信息以及应用程序身份信息对密钥进行解析。
在电子设备的密钥分级保护模块接收到硬件信任根发送的根密钥之后,密钥分级保护模块可以根据根密钥、用户身份信息以及应用程序身份信息对密钥隔离存储模块发送的密钥进行解析,如解析得到密钥的明文,从而电子设备可以利用解析后的密钥对加密之后的隐私信息进行解密。
S720、电子设备的密钥分级保护模块向密钥使用模块发送解析后的密钥。
在电子设备的密钥分级保护模块得到解析之后的密钥之后,密钥分级保护模块可以向密钥使用模块发送解析后的密钥,从而密钥解析模块可以根据解析后的密钥对加密之后的隐私信息进行解密。
S721、电子设备的密钥使用模块接收并根据解密后的密钥对隐私信息进行解密。
S722、电子设备的密钥使用模块向第一应用程序包括的密钥凭据模块发送解密后的隐私信息。
在电子设备的密钥使用模块得到解密之后的隐私信息之后,密钥使用模块可以向第一应用程序包括的密钥凭据模块发送解密后的隐私信息,从而第一应用程序可以显示解密后的隐私信息。
S723、电子设备的第一应用程序包括的密钥凭据模块接收解密后的隐私信息。
在电子设备的第一应用程序包括的密钥凭据模块接收到解密后的隐私信息之后,第一应用程序可以显示解密后的隐私信息。
本申请的方案可以根据电子设备的操作系统中的根密钥、用户身份信息以及隐私信息对应的应用程序身份信息,确定出对应的密钥,从而能够根据该密钥对加密之后的隐私信息进行解密。根密钥以及隐私信息对应的应用程序身份信息不容易被仿冒,安全性较高,能够提高了生成的密钥的安全性。
需要说明的是,在电子设备的密钥托管服务生成对应的密钥对隐私信息进行加密,且电子设备的密钥托管服务存储生成的密钥之后,电子设备的密钥托管服务也可以删除该存储的密钥。例如,在用户使用电子设备的第一应用程序删除存储的密钥时,电子设备的密钥托管服可以确定出对应的密钥,从而能够删除该密钥。电子设备的密钥托管服务删除密钥的过程,可以参照上述S701-S723。
即,在用户通过电子设备上的第一应用程序对隐私信息进行加密之后,用户也可以通过电子设备上的第一应用程序删除对隐私信息进行加密的密钥。电子设备的第一应用程序的密钥凭据模块可以接收用户删除密钥的操作。
在电子设备的第一应用程序的密钥凭据模块接收到用户删除密钥的操作时,作为响应,第一应用程序的密钥凭据模块可以向电子设备的密钥托管服务包括的密钥访问控制模块发送删除密钥请求,以指示电子设备删除对应的密钥。删除密钥请求可以包括密钥凭据信息。
电子设备的密钥访问控制模块接收到删除密钥请求之后,电子设备的密钥访问控制模块可以向操作系统包括的身份管理模块发送身份获取请求,以获取用户身份信息和应用程序身份信息。
电子设备的操作系统包括的身份管理模块接收到身份获取请求之后,电子设备的身份管理模块可以向密钥访问控制模块发送用户身份信息和应用程序身份信息。
电子设备的密钥访问控制模块接收到用户身份信息和应用程序身份信息之后,电子设备的密钥访问控制模块可以向密钥分级保护模块发送用户身份信息和应用程序身份信息。
电子设备的密钥分级保护模块接收到用户身份信息和应用程序身份信息之后,电子设备的密钥分级保护模块可以向密钥隔离存储模块发送用户身份信息和应用程序身份信息。
电子设备的密钥隔离存储模块接收到用户身份信息和应用程序身份信息之后,电子设备的密钥隔离存储模块可以根据用户身份信息和应用程序身份信息,确定密钥。在确定出密钥之后,电子设备的密钥隔离存储模块确定密钥的使用权限。即电子设备的密钥隔离存储模块可以确定密钥分级保护模块发送的用户身份信息以及应用程序身份信息,与确定出的密钥对应的创建者信息以及授权者信息包括的用户身份信息以及应用程序身份信息是否相同。在电子设备的密钥隔离存储模块确定密钥分级保护模块发送的用户身份信息以及应用程序身份信息与确定出的密钥对应的创建者信息包括的用户身份信息以及应用程序身份信息相同时,即密钥隔离存储模块确定可以确定请求删除密钥请求的用户是创建者,进而可以删除对应的密钥。
在电子设备的密钥隔离存储模块确定密钥分级保护模块发送的用户身份信息以及应用程序身份信息与确定出的密钥对应的授权者信息包括的用户身份信息以及应用程序身份信息相同时,即密钥隔离存储模块确定可以确定请求删除密钥请求的用户是授权者,不能删除对应的密钥。
在电子设备的密钥隔离存储模块确定密钥分级保护模块发送的用户身份信息以及应用程序身份信息与确定出的密钥对应的创建者信息以及授权者信息包括的用户身份信息以及应用程序身份信息均不相同时,即密钥隔离存储模块确定可以确定请求删除密钥请求的用户既不是创建者,也不是授权者,不能删除对应的密钥。
在一些示例中,在电子设备的密钥托管服务生成对应的密钥对隐私信息进行加密,且电子设备的密钥托管服务存储生成的密钥之后,电子设备的密钥托管服务也可以对该存储的密钥进行授权。例如,在用户使用电子设备的第一应用程序对加密之后的隐私信息进行授权时,电子设备的密钥托管服可以确定出对应的密钥,并对该密钥对应的权限管控参数进行修改,从而对该密钥进行授权,即其他用户可以使用该密钥对加密后的隐私信息进行解密。
具体的,图8为本申请实施例提供的一种密钥授权方法的流程示意图。如图8所示,该密钥使用方法可以包括下述S801-S815。
S801、电子设备的第一应用程序的密钥凭据模块接收用户对密钥授权的操作。
在用户通过电子设备上的第一应用程序对隐私信息进行加密之后,用户也可以通过电子设备上的第一应用程序对隐私信息进行加密的密钥进行授权操作(本申请实施例中可以称为第二操作),从而使授权后的用户可以使用该密钥对加密之后的隐私信息的进行解密。
在一些示例中,第一应用程序可以为隐私信息对应的应用程序,加密之后的对隐私信息为加密之后的通讯录信息时,用户可以通过电子设备上的第一应用程序对隐私信息进行加密的密钥进行授权,即为对加密之后的通讯录信息对应的密钥进行授权。
在一些示例中,电子设备的第一应用程序可以包括密钥凭据模块,密钥凭据模块可以用于接收用户对对隐私信息进行加密的密钥进行授权的操作。
S802、响应于该操作,电子设备的密钥凭据模块向密钥托管服务包括的密钥访问控制模块发送密钥授权请求。
在一些示例中,在电子设备的第一应用程序的密钥凭据模块接收到用户对隐私信息进行加密的密钥进行授权的操作时,作为响应,电子设备的第一应用程序的密钥凭据模块可以向电子设备的密钥托管服务发送密钥授权请求(本申请实施例中可以称为第四请求),从而电子设备的密钥托管服务可以确定出对应的密钥,并对该密钥进行授权管理。即密钥授权请求用于指示电子设备对隐私信息进行加密的密钥进行授权,从而其他用户可以使用该密钥对加密后的隐私信息进行解密。
在一些示例中,密钥授权请求可以包括被授权使用第二密钥的用户身份信息(本申请实施例中可以称为第三用户身份信息)以及被授权使用第二密钥的应用程序的身份信息(本申请实施例中可以称为第三应用程序身份信息)。
在一些示例中,密钥授权请求可以包括密钥凭据信息,密钥凭据信息用于查找对应的密钥。例如,在电子设备的密钥托管服务接收到第一应用程序的密钥凭据模块发送的密钥凭据信息之后,电子设备的密钥托管服务可以根据该密钥凭据信息确定出对应的密钥,从而能够对确定出的密钥进行授权管理。
在一些示例中,密钥授权请求还可以包括第一应用程序的根证书。在密钥托管服务接收到第一应用程序的密钥凭据模块发送的第一应用程序的根证书之后,密钥托管服务可以对第一应用程序的根证书进行验证,即确定密钥托管服务是否包括第一应用程序的根证书,在密钥托管服务包括第一应用程序的根证书的情况下,密钥托管服务可以确定出对应的密钥,并对确定出的密钥进行授权管理。
在一些示例中,电子设备密钥托管服务可以包括密钥访问控制模块,密钥访问控制模块可以用于接收电子设备的密钥凭据模块发送的密钥授权请求。即电子设备的密钥托管服务接收第一应用程序发送的密钥授权请求,可以为密钥托管服务包括的密钥访问控制模块接收第一应用程序包括的密钥凭据模块发送的密钥授权请求。
S803、电子设备的密钥访问控制模块接收密钥授权请求。
S804、电子设备的密钥访问控制模块向操作系统包括的身份管理模块发送身份获取请求。
本申请实施例中电子设备的密钥访问控制模块向操作系统包括的身份管理模块发送身份获取请求,可以参考上述S704,本申请实施例在此不再赘述。
S805、电子设备的身份管理模块接收身份获取请求。
本申请实施例中电子设备的身份管理模块接收身份获取请求,可以参考上述S705,本申请实施例在此不再赘述。
身份获取请求,用户获取电子设备的操作系统当前登录的用户身份信息(本申请实施例中可以称为第四用户身份信息),以及电子设备当前运行的应用程序的身份信息(本申请实施例中可以称为第四应用程序身份信息)。
S806、电子设备的身份管理模块向密钥访问控制模块发送用户身份信息和应用程序身份信息。
本申请实施例中电子设备的身份管理模块向密钥访问控制模块发送用户身份信息(即第四用户身份信息)和应用程序身份信息(即第四应用程序身份信息),可以参考上述S706,本申请实施例在此不再赘述。
S807、电子设备的密钥访问控制模块接收用户身份信息和应用程序身份信息。
S808、电子设备的密钥访问控制模块向密钥分级保护模块发送用户身份信息和应用程序身份信息。
在一些示例中,在密钥授权请求包括密钥凭据信息的情况下,电子设备的密钥访问控制模块可以向密钥分级保护模块发送密钥凭据信息,从而电子设备可以根据密钥凭据信息确定出对应的密钥。
本申请实施例中电子设备的密钥访问控制模块向密钥分级保护模块发送用户身份信息和应用程序身份信息,可以参考上述S708,本申请实施例在此不再赘述。
S809、电子设备的密钥分级保护模块接收用户身份信息和应用程序身份信息。
S810、电子设备的密钥分级保护模块向密钥隔离存储模块发送用户身份信息和应用程序身份信息。
在一些示例中,在密钥授权请求包括密钥凭据信息的情况下,电子设备的密钥访问控制模块可以向密钥分级保护模块发送密钥凭据信息,从而电子设备可以根据密钥凭据信息确定出对应的密钥。
本申请实施例中电子设备的密钥分级保护模块向密钥隔离存储模块发送用户身份信息和应用程序身份信息,可以参考上述S710,本申请实施例在此不再赘述。
S811、电子设备的密钥隔离存储模块接收用户身份信息和应用程序身份信息。
S812、电子设备的密钥隔离存储模块根据用户身份信息和应用程序身份信息,确定密钥对应的密钥文件,密钥文件包括密钥对应的权限管控参数。
电子设备的密钥隔离存储模块根据用户身份信息和应用程序身份信息,确定密钥对应的密钥文件,密钥文件可以包括密钥对应的权限管控参数。即电子设备的密钥隔离存储模块根据用户身份信息和应用程序身份信息,确定对应的密钥。在确定出对应的密钥之后,根据对应的密钥确定该密钥对应的密钥文件,密钥文件包括密钥对应的权限管控参数。
权限管控参数可以用于对该密钥的使用权限进行管控。权限管控参数可以包括创建者信息、授权者信息以及完整性保护参数。
创建者信息,可以包括创建者的身份信息,即生成该密钥时对应的用户身份信息以及应用程序身份信息。创建者信息,可以用于对密钥的生成、使用、删除以及授权等权限进行管理。授权者信息,可以包括被创建者授权可以使用该密钥的授权者的身份信息,即被授权者的用户身份信息以及应用程序身份信息。授权者信息,可以用于对密钥的使用权限进行管理。完整性保护参数,用于保护密钥文件的完整性。完整性保护参数,可以在创建者信息对应的创建者密钥文件中的数据时重新生成,从而能够保证该密钥文件不允许除创建者之外的其余应用程序或者用户修改。
本申请实施例中电子设备的密钥隔离存储模块根据用户身份信息和应用程序身份信息,确定密钥,可以参考上述S712,本申请实施例在此不再赘述。
S813、电子设备的密钥隔离存储模块接收用户对密钥对应的权限管控参数的修改操作。
在一些示例中,在电子设备的密钥隔离存储模块根据用户身份信息和应用程序身份信息,确定密钥以及密钥对应的权限管控参数之后,电子设备可以显示密钥对应的权限管控参数,从而用户可以对应的权限管控参数进行修改。即电子设备的密钥隔离存储模块可以接收用户对密钥对应的权限管控参数的修改操作。
在一些示例中,用户对密钥对应的权限管控参数的修改操作,可以为用户对权限管控参数包括的授权者信息进行修改,如,用户可以在授权者信息中添加被授权者的用户身份信息(即第三用户身份信息)以及应用程序身份信息(即第三应用程序身份信息)。
例如,电子设备的密钥隔离存储模块根据用户身份信息和应用程序身份信息,确定密钥对应的密钥文件为密钥文件1。密钥文件1可以包括创建者信息以及授权者信息。创建者信息可以包括用户A的身份信息以及应用程序1的身份信息,授权者信息可以包括用户B的身份信息以及应用程序1的身份信息。即用户A在使用应用程序1查看加密之后的隐私信息时,电子设备可以利用该密钥进行解密。用户B在使用应用程序1查看加密之后的隐私信息时,电子设备也可以利用该密钥进行解密。
在用户A需要对用户C进行授权时,用户可以在授权者信息中添加新的授权者信息,即用户C的身份信息以及应用程序1的身份信息,也可以为用户C的身份信息以及应用程序2的身份信息。在授权者信息中添加新的授权者信息之后,用户C在使用应用程序1查看加密之后的隐私信息时电子设备也可以利用该密钥进行解密,或者,用户C在使用应用程序2查看加密之后的隐私信息时电子设备也可以利用该密钥进行解密。
S814、响应于该操作,电子设备的密钥隔离存储模块对权限管控参数进行修改。
在一些示例中,在电子设备的密钥隔离存储模块对权限管控参数的进行修改之前,电子设备的密钥隔离存储模块可以确定密钥的使用权限,即确定密钥分级保护模块发送的用户身份信息(即第四用户身份信息)以及应用程序身份信息(即第四应用程序身份信息),是否能够具有对该密钥进行授权的权限。例如,电子设备的密钥隔离存储模块可以确定密钥分级保护模块发送的用户身份信息以应用程序身份信息,与确定出的密钥对应的权限管控参数包括的创建者信息以及授权者信息包括的用户身份信息以应用程序身份信息是否相同。
在电子设备的密钥隔离存储模块确定密钥分级保护模块发送的用户身份信息(即第四用户身份信息)以应用程序身份信息(即第四应用程序身份信息)与确定出的密钥对应的权限管控参数包括的创建者信息包括的用户身份信息(即第一应用程序身份信息)以应用程序身份信息(即第一应用程序身份信息)相同时,密钥隔离存储模块确定可以确定发送密钥授权请求的是创建者,创建者可以对对应的密钥进行授权,即在密钥隔离存储模块接收用户对密钥对应的权限管控参数的修改操作之后,密钥隔离存储模块可以对用户对密钥对应的权限管控参数的进行修改。
在电子设备的密钥隔离存储模块确定密钥分级保护模块发送的用户身份信息以应用程序身份信息,与确定出的密钥对应的权限管控参数包括的授权者信息包括的用户身份信息以应用程序身份信息相同时,即密钥隔离存储模块确定可以确定发送密钥授权请求的是授权者,授权者不能对对应的密钥进行授权,即在密钥隔离存储模块接收用户对密钥对应的权限管控参数的修改操作之后,密钥隔离存储模块不能对用户对密钥对应的权限管控参数的进行修改。
在电子设备的密钥隔离存储模块确定密钥分级保护模块发送的用户身份信息以应用程序身份信息,与确定出的密钥对应的权限管控参数包括的创建者信息以及授权者信息包括的用户身份信息以应用程序身份信息均不相同时,即密钥隔离存储模块确定可以确定发送删除密钥请求的既不是创建者,也不是授权者,不能对对应的密钥进行授权。
S815、电子设备的密钥隔离存储模块存储修改之后的密钥文件。
在电子设备的密钥隔离存储模块对权限管控参数进行修改(如添加授权者信息)之后,电子设备的密钥隔离存储模块可以存储修改之后的密钥文件,从而添加的授权者可以使用该密钥文件对应的密钥,如对加密之后的隐私信息进行解密。
在一些示例中,在电子设备的密钥隔离存储模块对权限管控参数进行修改(如添加授权者信息)之后,电子设备的密钥隔离存储模块可以将修改之后的密钥文件,存储在电子设备中的公有存储区域,即电子设备上所有的用户均能访问的存储区域,从而该密钥文件对应的创建者以及授权者均可以访问该密钥文件。
在另一些示例中,在电子设备的密钥隔离存储模块存储修改之后的密钥文件之后,电子设备的密钥隔离存储模块还可以建立并存储该密钥文件对应的授权者的用户身份信息以及应用程序身份信息,与该密钥文件的存储位置之间的对应关系,从而可以根据授权者的用户身份信息以及应用程序身份信息,确定出对应的密钥文件的存储位置,进而确定出对应的密钥。
本申请的方案,在电子设备的密钥托管服务生成对应的密钥对隐私信息进行加密,且电子设备的密钥托管服务存储生成的密钥之后,电子设备的密钥托管服务也可以对该存储的密钥进行授权,从而其他用户可以使用该密钥对加密后的隐私信息进行解密。
为了便于理解,下面结合示例对本申请实施例提供的密钥的生成过程以及密钥的授权过程进行示例性的说明。
例如,结合图9所示,以用户A使用电子设备上通讯录对应的应用程序,对电子设备上的通讯录信息进行加密为例,本申请实施例提供的密钥的生成过程可以包括:通讯录对应的应用程序接收用户A对通讯录信息进行加密的操作。响应于该操作,通讯录对应的应用程序向电子设备的密钥托管服务发送密钥请求,用于指示密钥托管服务对通讯录信息进行加密。
密钥托管服务接收到密钥请求之后,密钥托管服务可以通过电子设备的操作系统获取用户A的身份信息以及通讯录对应的应用程序的身份信息,并通过电子设备的操作系统获取硬件信任根中的根密钥。
密钥托管服务获取到用户A的身份信息、通讯录对应的应用程序的身份信息以及硬件信任根中的根密钥之后,密钥托管服务根据用户A的身份信息、通讯录对应的应用程序的身份信息以及硬件信任根中的根密钥生成对应的密钥,并生成该密钥对应的密钥文件。该密钥文件包括生成的密钥、密钥对应的权限管控参数。
密钥托管服务生成对应的密钥,并生成该密钥对应的密钥文件之后,密钥托管服务将该密钥文件存储在电子设备上用户A对应的私有存储区域,并通过该密钥对通讯录信息进行加密。即私有存储区域包括用户A对应的密钥,如密钥A密文。
之后,用户A使用电子设备上通讯录对应的应用程序查看加密之后的通讯录信息时,通讯录对应的应用程序接收用户A对通讯录信息进行解密的操作。响应于该操作,通讯录对应的应用程序向电子设备的密钥托管服务发送解密请求。
密钥托管服务接收到密钥请求之后,密钥托管服务可以通过电子设备的操作系统获取用户A的身份信息以及通讯录对应的应用程序的身份信息,确定出对应的密钥以及密钥文件。
密钥托管服务出对应的密钥之后,密钥托管服务可以对密钥文件中的密钥权限参数进行校验,即确定用户A的身份信息以及通讯录对应的应用程序的身份信息,是否为密钥权限参数中包括的创建者信息或者授权者信息。
密钥托管服务确定用户A的身份信息以及通讯录对应的应用程序的身份信息,为密钥权限参数中包括的创建者信息之后,可以使用该密钥加解密,即可以使用该密钥对加密之后的通讯录信息进行解密。如图10所示,用户A使用电子设备上通讯录对应的应用程序查看加密之后的通讯录信息,电子设备可以显示解密后的通讯录信息。
在用户B使用电子设备上通讯录对应的应用程序查看加密之后的通讯录信息时,密钥托管服务获取到用户B的身份信息以及通讯录对应的应用程序的身份信息。密钥托管服务根据到用户B的身份信息以及通讯录对应的应用程序的身份信息,不能确定出对应的密钥以及密钥文件,即用户B不可访问该密钥文件以及不能解密通讯录信息。如图11所示,用户B使用电子设备上通讯录对应的应用程序查看加密之后的通讯录信息,电子设备可以不能获取到加密之后的通讯录信息对应的密钥,进而不能显示解密之后的通讯录信息,而显示的是乱码。
在用户C使用电子设备上通讯录对应的应用程序查看加密之后的通讯录信息时,密钥托管服务获取到用户C的身份信息以及通讯录对应的应用程序的身份信息。密钥托管服务根据到用户C的身份信息以及通讯录对应的应用程序的身份信息,不能确定出对应的密钥以及密钥文件,即用户C不可访问该密钥文件以及不能解密通讯录信息。
例如,结合图12所示,以用户A使用电子设备上通讯录对应的应用程序,对电子设备上的通讯录信息进行加密为例,密钥托管服务生成对应的密钥,并将该密钥文件存储在电子设备上用户A对应的私有存储区域。
用户A可以授权给用户B,从而用户B可以使用电子设备上通讯录对应的应用程序查看加密之后的通讯录信息。
通讯录对应的应用程序接收用户A对通讯录信息进行密钥授权的操作。响应于该操作,通讯录对应的应用程序向电子设备的密钥托管服务发送密钥授权请求,用于指示密钥托管服务进行密钥授权。
密钥托管服务接收到密钥授权请求之后,密钥托管服务可以通过电子设备的操作系统获取用户A的身份信息以及通讯录对应的应用程序的身份信息,确定出对应的密钥以及密钥文件。
密钥托管服务出对应的密钥之后,密钥托管服务可以对密钥文件中的密钥权限参数进行校验,即确定用户A的身份信息以及通讯录对应的应用程序的身份信息,是否为密钥权限参数中包括的创建者信息或者授权者信息。
密钥托管服务确定用户A的身份信息以及通讯录对应的应用程序的身份信息,为密钥权限参数中包括的创建者信息之后,可以对该密钥进行密钥授权,即修改该密钥权限管控参数,从而授权之后的用户B可以使用该密钥对加密之后的通讯录信息进行解密。
密钥托管服务修改密钥权限管控参数之后,将该修改之后的密钥文件存储在电子设备上用户对应的公有存储区域。即公有存储区域包括该密钥文件对应的密钥,如密钥A密文。
在用户B使用电子设备上通讯录对应的应用程序查看加密之后的通讯录信息时,密钥托管服务获取到用户B的身份信息以及通讯录对应的应用程序的身份信息。密钥托管服务根据到用户B的身份信息以及通讯录对应的应用程序的身份信息,确定用户B为授权者,因此能够确定出对应的密钥以及密钥文件,即用户B可以对加密之后的通讯录信息进行正常解密。
在用户C使用电子设备上通讯录对应的应用程序查看加密之后的通讯录信息时,密钥托管服务获取到用户C的身份信息以及通讯录对应的应用程序的身份信息。密钥托管服务根据到用户C的身份信息以及通讯录对应的应用程序的身份信息,不能确定出对应的密钥以及密钥文件,即用户C不可访问该密钥文件以及不能解密通讯录信息。
为了便于理解,下面结合附图13对本申请实施例提供的密钥生成方法进行说明。如图13所示,该密钥生成方法可以包括以下S1301-S1308。
S1301、电子设备接收用户对第一应用程序对应的第一数据的第一操作。
第一数据可以为电子设备上用户的隐私信息,也可以称为隐私数据,如通讯录信息、图像等信息。
第一应用程序可以为电子设备上第一数据对应的应用程序。例如,在用户需要对电子设备上的隐私信息,如通讯录信息进行加密时,第一应用程序为电子设备上通讯录信息对应的应用程序,用户可以对第一应用程序进行操作(本申请实施例中可以称为第一操作),从而可以触发电子设备对通讯录信息进行加密。即第一操作可以用于触发电子设备对第一数据进行加密。
在一些示例中,电子设备可以为电脑,电子设备的操作系统可以为Windows系统。
本申请实施例中电子设备接收用户对第一应用程序对应的第一数据的第一操作,可以参考上述S301,本申请实施例在此不再赘述。
在电子设备接收用户对第一应用程序对应的第一数据的第一操作之后,电子设备可以调用第一应用程序请求第二应用程序对第一数据进行加密。
在一些示例中,电子设备调用第二应用程序获取第一用户身份信息、第一应用程序身份信息以及第一密钥,可以为电子设备第一请求用于请求第二应用程序对第一数据进行加密。
S1302、响应于第一操作,电子设备调用第一应用程序向第二应用程序发送第一请求。
在电子设备接收用户对第一应用程序对应的第一数据的第一操作,即电子设备的第一应用程序接收到用户对隐私信息进行加密的操作时,作为响应,电子设备可以调用第一应用程序向电子设备的第二应用程序发送第一请求。第一请求用于请求第二应用程序对第一数据进行加密。
第二应用程序可以为电子设备中用于生成密钥的应用程序,如密钥托管服务。
本申请实施例中响应于第一操作,电子设备调用第一应用程序向第二应用程序发送第一请求,可以参考上述S302,本申请实施例在此不再赘述。
S1303、电子设备调用第二应用程序接收第一请求,并向电子设备的操作系统发送第二请求。
在电子设备的第二应用程序接收到第一应用程序发送的第一请求之后,电子设备可以调用第二应用程序获取第一用户身份信息和第一应用程序身份信息。
在一些示例中,电子设备调用第二应用程序获取第一用户身份信息和第一应用程序身份信息,可以为第二应用程序向电子设备的操作系统发送第二请求。第二请求用于指示操作系统向第二应用程序发送第一用户身份信息以及第一应用程序身份信息。即第二请求用于获取第一用户身份信息以及第一应用程序身份信息。
第一用户身份信息可以为电子设备的操作系统当前登录的用户身份信息,如用户安全身份Secure ID。第一应用程序身份信息,可以为第一应用程序的发布厂商在电子设备的操作系统(如Windows系统)上发布第一应用程序时对第一应用程序的签名。
本申请实施例中电子设备调用第二应用程序接收第一请求,并向电子设备的操作系统发送第二请求,可以参考上述S304,本申请实施例在此不再赘述。
S1304、电子设备调用第二应用程序接收操作系统发送的第一用户身份信息以及第一应用程序身份信息。
本申请实施例中响应于第一操作,电子设备调用第二应用程序接收操作系统发送的第一用户身份信息以及第一应用程序身份信息,可以参考上述S305-S309,本申请实施例在此不再赘述。
S1305、电子设备调用第二应用程序向电子设备的操作系统中的硬件信任根发送第三请求。
在电子设备的第二应用程序接收到第一应用程序发送的第一请求之后,电子设备还可以调用第二应用程序获取第一密钥。
在一些示例中,电子设备调用第二应用程序获取第一密钥,可以为第二应用程序向电子设备的操作系统发送第三请求。第三请求用于指示操作系统向第二应用程序发送根密钥(本申请实施例中可以成为第一密钥)。即第四请求用于获取根密钥。根密钥可以用于生成隐私信息对应的密钥。即第一密钥可以为操作系统包括的密钥,电子设备可以根据第一密钥生成对第一数据进行加密时使用的密钥。
电子设备的操作系统可以包括硬件信任根,硬件信任根可以存储一个或多个根密钥。硬件信任根可以为厂商定制,且硬件信任根有权限管控,即硬件信任根允许电子设备的第二应用程序(如密钥托管服务)访问,硬件信任根不允许第三应用程序访问,第三应用程序为所述电子设备中除第二应用程序之外的应用程序(如上述的第一应用程序)。
在一些示例中,第二应用程序可以在向电子设备的操作系统发送第二请求的同时,可以向电子设备的操作系统发送第三请求。第二应用程序可以在向电子设备的操作系统发送第二请求,并接收到操作系统发送的第一用户身份信息以及第一应用程序身份信息之后,第二应用程序向电子设备的操作系统发送第三请求。
本申请实施例中电子设备的第二应用程序向电子设备的操作系统中的硬件信任根发送第三请求,可以参考上述S310,本申请实施例在此不再赘述。
S1306、电子设备调用第二应用程序接收硬件信任根发送的第一密钥。
S1307、电子设备调用第二应用程序根据第一用户身份信息、第一应用程序身份信息以及第一密钥,生成第二密钥。
本申请实施例中电子设备的第二应用程序根据第一用户身份信息、第一应用程序身份信息以及第一密钥,生成第二密钥,可以参考上述S310-S314,本申请实施例在此不再赘述。
S1308、电子设备调用第二应用程序通过第二密钥加密第一数据。
本申请实施例中第二应用程序通过第二密钥加密第一数据,可以参考上述S315,本申请实施例在此不再赘述。
在一些示例中,电子设备的第二应用程序通过第二密钥加密第一数据之后,电子设备的第二应用程序可以将加密之后的第一数据发送给第一应用程序。
在一些示例中,电子设备的第二应用程序生成第二密钥之后,电子设备的第二应用程序可以存储第二密钥。例如,电子设备的第二应用程序可以根据第一用户身份信息以及第一应用程序身份信息,存储第二密钥。
在一些示例中,电子设备的第二应用程序生成第二密钥之后,电子设备的第二应用程序还可以生成第二密钥对应的密钥文件,并存储密钥文件。例如,第二应用程序可以根据第一用户身份信息、第一应用程序身份信息以及第二密钥,生成第二密钥对应的密钥文件。生成密钥文件之后,第二应用程序可以根据第一用户身份信息和第一应用程序身份信息,以及第二用户身份信息和第二应用程序身份信息,存储密钥文件。
密钥文件可以包括第二密钥以及所述第二密钥对应的创建者信息以及授权者信息。创建者信息可以包括建立第二密钥时对应的用户身份信息以及应用程序身份信息,即第一用户身份信息以及第一应用程序身份信息。授权者信息可以包括被授权使用第二密钥的用户身份信息以及被授权使用第二密钥的应用程序的身份信息。第二用户身份信息可以为被授权使用第二密钥的用户身份信息,第二应用程序身份信息可以为被授权使用第二密钥的应用程序的身份信息。
在一些示例中,第二应用程序存储密钥文件时,第二应用程序可以将密钥文件存储在电子设备的第一存储区域,第一存储区域可以为第一用户身份信息对应的私有存储区域。
在一些示例中,电子设备的第二应用程序生成第二密钥对应的密钥文件之后,电子设备的第二应用程序还可以对生成第二密钥对应的密钥文件进行授权管理,即授权其他用户或应用程序可以使用第二密钥对加密之后的第一数据进行解密。
例如,第一应用程序可以接收用户的第二操作,第二操作用于触发电子设备对第二密钥进行授权管理。响应于第二操作,第一应用程序可以向第二应用程序发送第四请求,第四请求用于指示电子设备对第二密钥进行授权管理。第四请求可以包括被授权使用第二密钥的第三用户身份信息以及第三应用程序身份信息。第二应用程序接收第四请求,第二应用程序修改授权者信息,得到修改之后的密钥文件。修改之后的密钥文件可以包括修改之后的授权信息,修改之后的授权者信息可以包括第三用户身份信息以及所述第三应用程序身份信息。第二应用程序存储修改之后的密钥文件。
在一些示例中,第二应用程序修改授权者信息,可以包括第二应用程序获取第四用户身份信息和第四应用程序身份信息。第四用户身份信息为电子设备的操作系统当前登录的用户身份信息,第四应用程序身份信息为电子设备当前运行的应用程序的身份信息。在第四用户身份信息与创建者信息中的第一用户身份信息相同,以及第四应用程序身份信息与创建者信息中的第一应用程序身份信息相同的情况下,第二应用程序修改授权者信息。
在一些示例中,第二应用程序可以将修改之后的密钥文件存储在电子设备的第二存储区域。第二存储区域可以为电子设备上所有用户身份信息均可访问的公有存储区域。
本申请在电子设备需要对隐私信息进行加密时,可以通过电子设备的操作系统中的硬件信任根获取根密钥,并通过该电子设备的操作系统获取操作系统生成的用户身份信息,以及操作系统保存的隐私信息对应的应用程序身份信息,并根据根密钥、用户身份信息以及应用程序身份信息生成密钥,从而可以利用该密钥对隐私信息进行加密。也就是说,本申请的方案是根据电子设备的操作系统中的根密钥、用户身份信息以及隐私信息对应的应用程序身份信息生成密钥,生成的密钥受到了操作系统的根密钥的保护,无法被窃取到,因此,生成的密钥的安全性较高。且根密钥以及隐私信息对应的应用程序身份信息不容易被仿冒,安全性较高,进一步提高了生成的密钥的安全性。
且本申请的方案,在电子设备保存生成的密钥时,可以根据用户身份信息以及应用程序身份信息存储生成的密钥。也就是说,在需要使用该密钥时,根据该密钥对应的用户身份信息以及应用程序身份信息才可以获取到该密钥,而在用户身份信息或者应用程序身份信息不同时,不能获取到该密钥,从而进一步提高了生成的密钥的安全性。
另外,本申请的方案在生成密钥时,根密钥、用户身份信息以及隐私信息对应的应用程序身份信息,均是通过电子设备的操作系统获取的,即根密钥、用户身份信息以及隐私信息对应的应用程序身份信息可以保存在电子设备的操作系统中,从而不需要通过网络来获取。因此,本申请的方案可以通过电子设备自身来完成,不需要依赖于网络。
对应于前述实施例中的方法,本申请实施例还提供一种密钥生成装置。该密钥生成装置可以应用于电子设备,用于实现前述实施例中的方法。该密钥生成装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
例如,图14示出了一种密钥生成装置1400的结构示意图,如图14所示,该密钥生成装置1400可以包括:接收模块1401、请求模块1402、获取模块1403和生成模块1404等。
其中,接收模块1401,可以用于接收用户对第一应用程序对应的第一数据的第一操作;第一操作用于触发电子设备对第一数据进行加密。
请求模块1402,可以用于响应于第一操作,请求第二应用程序对第一数据进行加密。
获取模块1403,可以用于调用第二应用程序获取第一用户身份信息、第一应用程序身份信息以及第一密钥。
生成模块1404,可以用于根据第一用户身份信息、第一应用程序身份信息以及第一密钥,生成第二密钥,第二密钥用于加密第一数据;第一用户身份信息为登录电子设备的操作系统的用户身份信息,第一应用程序身份信息为第一应用程序的身份信息,第一密钥为操作系统包括的根密钥。
在一种可能的实现方式中,获取模块1403,还可以用于调用第二应用程序,从操作系统中获取第一用户身份信息以及第一应用程序身份信息。
在一种可能的实现方式中,获取模块1403,还可以用于调用第二应用程序,从硬件信任根中获取第一密钥。
在一种可能的实现方式中,上述密钥生成装置1400还可以包括存储模块1405。存储模块1405,可以用于根据第一用户身份信息以及第一应用程序身份信息,存储第二密钥。
在一种可能的实现方式中,生成模块1404,还可以用于根据第一用户身份信息、第一应用程序身份信息以及第二密钥,生成第二密钥对应的密钥文件;密钥文件包括第二密钥以及第二密钥对应的创建者信息以及授权者信息;创建者信息包括第一用户身份信息以及第一应用程序身份信息;授权者信息包括第二用户身份信息以及第二应用程序身份信息,第二用户身份信息为被授权使用第二密钥的用户的身份信息,第二应用程序身份信息为被授权使用第二密钥的应用程序的身份信息。
存储模块1405,还可以用于根据第一用户身份信息和第一应用程序身份信息,以及第二用户身份信息和第二应用程序身份信息,存储密钥文件。
在一种可能的实现方式中,存储模块1405,还可以用于将密钥文件存储在电子设备的第一存储区域,第一存储区域为第一用户身份信息对应的私有存储区域。
在一种可能的实现方式中,接收模块1401,还可以用于接收用户的第二操作。
请求模块1402,还可以用于响应于第二操作,请求第二应用程序对第二密钥进行授权管理。
获取模块1403,还可以用于调用第二应用程序获取被授权使用第二密钥的第三用户身份信息以及第三应用程序身份信息。
上述密钥生成装置1400还可以包括修改模块1406。修改模块1406,可以用于修改授权者信息,得到修改之后的密钥文件;修改之后的密钥文件包括修改之后的授权信息,修改之后的授权者信息包括第三用户身份信息以及第三应用程序身份信息。
存储模块1405,还可以用于第二应用程序存储修改之后的密钥文件。
在一种可能的实现方式中,获取模块1403,还可以用于获取第四用户身份信息和第四应用程序身份信息;第四用户身份信息为电子设备的操作系统当前登录的用户的身份信息,第四应用程序身份信息为电子设备当前运行的应用程序的身份信息。
修改模块1406,还可以用于在第四用户身份信息与创建者信息中的第一用户身份信息相同,以及第四应用程序身份信息与创建者信息中的第一应用程序身份信息相同的情况下,修改授权者信息。
在一种可能的实现方式中,存储模块1405,还可以用于将修改之后的密钥文件存储在电子设备的第二存储区域,第二存储区域为电子设备上所有用户身份信息均可访问的公有存储区域。
在一种可能的实现方式中,上述电子设备可以为电脑,上述操作系统可以为Windows系统。
在一种可能的实现方式中,上述第一用户身份信息可以为用户安全身份,上述第一应用程序身份信息可以为在电子设备的操作系统上发布第一应用程序时,第一应用程序的发布厂商对第一应用程序的签名。
应理解以上装置中单元或模块(以下均称为单元)的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。
例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以称为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
在一个例子中,以上装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或这些集成电路形式中至少两种的组合。
再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如CPU或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统SOC的形式实现。
在一种实现中,以上装置实现以上方法中各个对应步骤的单元可以通过处理元件调度程序的形式实现。例如,该装置可以包括处理元件和存储元件,处理元件调用存储元件存储的程序,以执行以上方法实施例所述的方法。存储元件可以为与处理元件处于同一芯片上的存储元件,即片内存储元件。
在另一种实现中,用于执行以上方法的程序可以在与处理元件处于不同芯片上的存储元件,即片外存储元件。此时,处理元件从片外存储元件调用或加载程序于片内存储元件上,以调用并执行以上方法实施例所述的方法。
例如,本申请实施例还可以提供一种装置,如:电子设备,可以包括:处理器,用于存储该处理器可执行指令的存储器。该处理器被配置为执行上述指令时,使得该电子设备实现如前述实施例所述的密钥生成方法。该存储器可以位于该电子设备之内,也可以位于该电子设备之外。且该处理器包括一个或多个。
在又一种实现中,该装置实现以上方法中各个步骤的单元可以是被配置成一个或多个处理元件,这些处理元件可以设置于对应上述的电子设备上,这里的处理元件可以为集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或者这些类集成电路的组合。这些集成电路可以集成在一起,构成芯片。
例如,本申请实施例还提供一种芯片,该芯片可以应用于上述电子设备。芯片包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;处理器通过接口电路从电子设备的存储器接收并执行计算机指令,以实现以上方法实施例中所述的方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备可以实现如上述的密钥生成方法。
本申请实施例还提供一种计算机程序产品,包括如上述电子设备运行的计算机指令,当计算机指令在电子设备中运行时,使得电子设备实可以现如上述的密钥生成方法。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,如:程序。该软件产品存储在一个程序产品,如计算机可读存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
例如,本申请实施例还可以提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备实现如前述方法实施例中所述的密钥生成方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种密钥生成方法,其特征在于,应用于电子设备,所述电子设备包括第一应用程序和第二应用程序,所述方法包括:
所述电子设备接收用户对所述第一应用程序对应的第一数据的第一操作;所述第一操作用于触发电子设备对所述第一数据进行加密;
响应于所述第一操作,所述电子设备调用所述第一应用程序请求所述第二应用程序对所述第一数据进行加密;
所述电子设备调用所述第二应用程序获取第一用户身份信息、第一应用程序身份信息以及第一密钥,并根据所述第一用户身份信息、所述第一应用程序身份信息以及所述第一密钥,生成第二密钥,所述第二密钥用于加密所述第一数据;所述第一用户身份信息为登录所述电子设备的操作系统的用户身份信息,所述第一应用程序身份信息为所述第一应用程序的身份信息,所述第一应用程序身份信息为在所述电子设备的操作系统上发布所述第一应用程序时,所述第一应用程序的发布厂商对所述第一应用程序的签名,所述第一密钥为所述操作系统包括的根密钥。
2.根据权利要求1所述的方法,其特征在于,所述第一用户身份信息以及所述第一应用程序身份信息在所述电子设备的操作系统中,所述电子设备调用所述第二应用程序获取第一用户身份信息以及第一应用程序身份信息,包括:
所述电子设备调用所述第二应用程序,从所述操作系统中获取所述第一用户身份信息以及所述第一应用程序身份信息。
3.根据权利要求1或2所述的方法,其特征在于,所述电子设备还包括硬件信任根,所述硬件信任根包括所述第一密钥,所述硬件信任根允许所述第二应用程序访问,所述硬件信任根不允许第三应用程序访问,所述第三应用程序为所述电子设备中除所述第二应用程序之外的应用程序;
所述电子设备调用所述第二应用程序获取所述第一密钥,包括:
所述电子设备调用所述第二应用程序,从所述硬件信任根中获取所述第一密钥。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述电子设备调用所述第二应用程序根据所述第一用户身份信息以及所述第一应用程序身份信息,存储所述第二密钥。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述电子设备调用所述第二应用程序根据所述第一用户身份信息、所述第一应用程序身份信息以及所述第二密钥,生成所述第二密钥对应的密钥文件;所述密钥文件包括所述第二密钥以及所述第二密钥对应的创建者信息以及授权者信息;所述创建者信息包括所述第一用户身份信息以及所述第一应用程序身份信息;所述授权者信息包括第二用户身份信息以及第二应用程序身份信息,所述第二用户身份信息为被授权使用所述第二密钥的用户身份信息,所述第二应用程序身份信息为被授权使用所述第二密钥的应用程序的身份信息;
所述电子设备调用所述第二应用程序根据所述第一用户身份信息和所述第一应用程序身份信息,以及所述第二用户身份信息和所述第二应用程序身份信息,存储所述密钥文件。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述电子设备调用所述第二应用程序将所述密钥文件存储在所述电子设备的第一存储区域,所述第一存储区域为所述第一用户身份信息对应的私有存储区域。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述电子设备调用所述第一应用程序接收用户的第二操作;
响应于所述第二操作,所述电子设备调用所述第一应用程序请求所述第二应用程序对所述第二密钥进行授权管理;
所述电子设备调用所述第二应用程序获取被授权使用所述第二密钥的第三用户身份信息以及第三应用程序身份信息,并修改所述授权者信息,得到修改之后的密钥文件;所述修改之后的密钥文件包括修改之后的授权信息,所述修改之后的所述授权者信息包括所述第三用户身份信息以及所述第三应用程序身份信息;
所述电子设备调用所述第二应用程序存储所述修改之后的密钥文件。
8.根据权利要求7所述的方法,其特征在于,所述电子设备调用所述第二应用程序修改所述授权者信息,包括:
所述电子设备调用所述第二应用程序获取第四用户身份信息和第四应用程序身份信息;所述第四用户身份信息为所述电子设备的操作系统当前登录的用户身份信息,所述第四应用程序身份信息为所述电子设备当前运行的应用程序的身份信息;
在所述第四用户身份信息与所述创建者信息中的所述第一用户身份信息相同,以及所述第四应用程序身份信息与所述创建者信息中的所述第一应用程序身份信息相同的情况下,所述电子设备调用所述第二应用程序修改所述授权者信息。
9.根据权利要求7或8所述的方法,其特征在于,所述电子设备调用所述第二应用程序存储所述修改之后的密钥文件,包括:
所述电子设备调用所述第二应用程序将所述修改之后的密钥文件存储在所述电子设备的第二存储区域,所述第二存储区域为所述电子设备上所有用户身份信息均可访问的公有存储区域。
10.根据权利要求1所述的方法,其特征在于,所述电子设备为电脑,所述操作系统为Windows系统。
11.根据权利要求1所述的方法,其特征在于,所述第一用户身份信息为用户安全身份。
12.一种电子设备,其特征在于,所述电子设备包括处理器,用于存储所述处理器可执行指令的存储器;所述处理器被配置为执行所述指令时,使得所述电子设备实现如权利要求1至11中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序指令;其特征在于,
当所述计算机程序指令被电子设备执行时,使得电子设备实现如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210514278.5A CN116055032B (zh) | 2022-05-11 | 2022-05-11 | 一种密钥生成方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210514278.5A CN116055032B (zh) | 2022-05-11 | 2022-05-11 | 一种密钥生成方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116055032A CN116055032A (zh) | 2023-05-02 |
CN116055032B true CN116055032B (zh) | 2023-09-22 |
Family
ID=86127844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210514278.5A Active CN116055032B (zh) | 2022-05-11 | 2022-05-11 | 一种密钥生成方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116055032B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020079349A (ko) * | 2001-04-09 | 2002-10-19 | 피닉스 테크놀로지 리미티드 | 컴퓨터 디바이스 인증을 위한 방법 및 시스템 |
CN107835075A (zh) * | 2017-12-06 | 2018-03-23 | 北京深思数盾科技股份有限公司 | 本地密码的处理方法及装置 |
WO2019023825A1 (zh) * | 2017-07-30 | 2019-02-07 | 华为技术有限公司 | 隐私保护的方法及设备 |
CN111079189A (zh) * | 2019-12-30 | 2020-04-28 | 联想(北京)有限公司 | 一种信息处理方法、电子设备及计算机可读存储介质 |
CN111090865A (zh) * | 2019-12-17 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 一种密钥授权方法和系统 |
CN112464268A (zh) * | 2020-12-08 | 2021-03-09 | 清远职业技术学院 | 一种计算机数据加密系统及方法 |
EP3882796A1 (de) * | 2020-03-20 | 2021-09-22 | Bundesdruckerei GmbH | Nutzerauthentifizierung unter verwendung zweier unabhängiger sicherheitselemente |
-
2022
- 2022-05-11 CN CN202210514278.5A patent/CN116055032B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020079349A (ko) * | 2001-04-09 | 2002-10-19 | 피닉스 테크놀로지 리미티드 | 컴퓨터 디바이스 인증을 위한 방법 및 시스템 |
WO2019023825A1 (zh) * | 2017-07-30 | 2019-02-07 | 华为技术有限公司 | 隐私保护的方法及设备 |
CN107835075A (zh) * | 2017-12-06 | 2018-03-23 | 北京深思数盾科技股份有限公司 | 本地密码的处理方法及装置 |
CN111090865A (zh) * | 2019-12-17 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 一种密钥授权方法和系统 |
CN111079189A (zh) * | 2019-12-30 | 2020-04-28 | 联想(北京)有限公司 | 一种信息处理方法、电子设备及计算机可读存储介质 |
EP3882796A1 (de) * | 2020-03-20 | 2021-09-22 | Bundesdruckerei GmbH | Nutzerauthentifizierung unter verwendung zweier unabhängiger sicherheitselemente |
CN112464268A (zh) * | 2020-12-08 | 2021-03-09 | 清远职业技术学院 | 一种计算机数据加密系统及方法 |
Non-Patent Citations (2)
Title |
---|
Pingjian Wang ; Jingqiang Lin ; Jiwu Jing ; Yongquan Xie.Mediated Hierarchical Identity-Based Combined Public Key Schemes.2010 Third International Symposium on Intelligent Information Technology and Security Informatics.2010, * |
邓光 ; 鲁士文 ; .一个安全的基于身份的密钥分发解决方案.计算机系统应用.2009,(04),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN116055032A (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3772700B1 (en) | Method and device for encrypting model of neural network, and storage medium | |
WO2020047710A1 (zh) | 一种登录方法、令牌发送方法及设备 | |
CN110290146B (zh) | 分享口令的生成方法、装置、服务器及存储介质 | |
CN113259301B (zh) | 一种账号数据共享方法及电子设备 | |
CN110826103B (zh) | 基于区块链的文档权限处理方法、装置、设备及存储介质 | |
CN113132091B (zh) | 一种分享设备的方法及电子设备 | |
CN111935166B (zh) | 通信认证方法、系统、电子设备、服务器及存储介质 | |
US9514321B2 (en) | Electro device for protecting user's privacy and method for controlling thereof | |
WO2020155812A1 (zh) | 一种数据存储方法、装置及设备 | |
CN114172544B (zh) | 一种复制智能卡的方法、电子设备及存储介质 | |
CN110365501B (zh) | 基于图形码进行群组加入处理的方法及装置 | |
US20210034763A1 (en) | Splitting Sensitive Data and Storing Split Sensitive Data in Different Application Environments | |
CN112182624A (zh) | 加密方法、加密装置、存储介质与电子设备 | |
CN112866981B (zh) | 一种签约数据的管理方法、装置 | |
CN109246110A (zh) | 数据共享方法及装置 | |
CN113852459B (zh) | 密钥协商方法、设备及计算机可读存储介质 | |
CN116055032B (zh) | 一种密钥生成方法及电子设备 | |
WO2023158193A1 (ko) | 동형 암호를 기반으로 하는 데이터 처리 방법 및 장치 | |
WO2023065772A1 (zh) | 日志数据处理方法及装置、存储介质和电子设备 | |
CN112989370B (zh) | 密钥灌装方法、系统、装置、设备以及存储介质 | |
CN116743357B (zh) | 密钥存储方法和装置 | |
CN112905986B (zh) | 权限认证方法、装置、系统及计算机可读存储介质 | |
CN117195276B (zh) | 一种数据保护方法及电子设备 | |
CN116049839B (zh) | 一种数据传输方法和电子设备 | |
CN116707850A (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 |