移动设备上的内容项加密的制作方法

文档序号:10628110阅读:230来源:国知局
移动设备上的内容项加密的制作方法
【专利摘要】应用以经加密的形式被存储在移动设备的可移除存储装置上,以提供隔离和非法复制保护。在一个实施方案中,每个应用使用其自身的关联的加密密钥进行加密,其中,基于所述应用的标识符和与所述移动设备的受信任平台模块相关联的主密钥生成所述加密密钥。在另一个实施方案中,每个应用使用两个关联的加密密钥进行加密。一个密钥用于对与所述应用相关联的二进制数据(诸如是源代码)进行加密,以及另一个密钥用于对诸如是图形和配置文件之类的应用数据进行加密。所述加密密钥每个都使用所述应用的所述标识符、所述主密钥和对应的数据类型在所述移动设备上被存储在其处的文件夹的标识符被生成。所述可移除存储装置包括被使用FAT或者exFAT文件系统进行格式化的SD卡。
【专利说明】
移动设备上的内容项加密
【背景技术】
[0001]诸如是电话和平板电脑之类的移动设备正变成用户对计算设备的选择。通常,这些移动设备存储诸如是音乐、电影和应用之类的多种内容项。用户能够从线上商店或者市场直接向他们的移动设备购买和下载内容项。因此,移动设备日益需要越来越大量的存储装置来容纳大量的可用的内容项。
[0002]作为对移动设备的渐增的存储装置需求的解决方案,移动设备的某些厂商已将可移除存储装置能力包括进他们的移动设备中。这些可移除存储装置能力包括从安全数字卡进行读和写的能力。然而,对于内容项的创建者来说,允许用户将他们的内容项存储在可移除存储装置上产生几个缺点。
[0003]—个这样的缺点是与其他用户共享内容项的能力。因为安全数字卡是可从移动设备移除的,并且是可被多数个人计算机读的,所以用户可以下载诸如是应用之类的内容项, 并且可以通过将安全数字卡的内容复制到他们的个人计算机上与他们的朋友共享应用。在另一个示例中,用户可以对应用的源代码做出某些不重要的变更,并且可以尝试将经修改的应用作为他们自身的创建进行出售或者分发。这样的出售或者分发可能侵犯内容项的创建者的知识产权。
[0004]可移除存储装置的另一个缺点是应用隔离。通常,移动设备使用由在移动设备的非可移除或者内部存储装置上被移动设备使用的文件系统提供的功能彼此隔离地执行应用。安全数字卡通常使用诸如是当前缺少被移动设备使用的文件系统的隔离功能的文件分配表(“FAT”)和扩展文件分配表(“exFAT”)文件系统之类的文件系统。因此,恶意用户可以使用被存储在可移除存储装置上的应用来干扰被存储在可移除存储装置上的另一个应用或者内容项的操作。
【发明内容】

[0005]应用被以经加密的形式存储在移动设备的可移除存储装置上。在一个实施方案中,每个应用被使用其自身的关联的加密密钥进行加密,其中,基于所述应用的标识符和与所述移动设备的受信任平台模块相关联的主密钥生成所述加密密钥。在另一个实施方案中,每个应用使用两个关联的加密密钥进行加密。一个密钥用于对与所述应用相关联的二进制数据(诸如是源代码)进行加密,以及另一个密钥用于对诸如是图形和配置文件之类的应用数据进行加密。所述加密密钥每个都使用所述应用的标识符、所述主密钥和对应的数据类型在所述移动设备上被存储在其处的文件夹的标识符被生成。所述可移除存储装置包括使用FAT或者exFAT文件系统进行格式化的安全数字卡。
[0006]在一个实施方案中,由移动设备接收对于读取与内容项相关联的数据的请求。所述数据被加密,并且被存储在与所述移动设备相关联的可移除存储装置中。由所述移动设备确定对于读取所述数据的所述请求被授权。响应于确定对于读取所述数据的所述请求被授权,由所述移动设备确定与所述内容项相关联的密钥。由所述移动设备使用所述密钥对与所述内容项相关联的数据进行解密。由所述移动设备提供所述经解密的数据。
[0007]在一个实施方案中,由移动设备接收对于向可移除存储装置的区域写入数据的请求。可移除存储装置的所述区域是与内容项相关联的。由所述移动设备确定对于写入所述数据的所述请求被授权。响应于确定对于写入所述数据的所述请求被授权,由所述移动设备确定与所述内容项相关联的密钥。由所述移动设备使用所述密钥对所述数据进行加密。 由所述移动设备将所述经加密的数据存储在与所述内容项相关联的可移除存储装置的所述区域中。
[0008]在一个实施方案中,在移动设备处接收对将应用安装在可移除存储装置中的请求。响应于所述请求,由所述移动设备在所述可移除存储装置中创建与所述应用相关联的第一文件夹和第二文件夹。由所述移动设备使用主密钥、所述应用的标识符和所述第一文件夹的标识符生成第一密钥。使用所述主密钥、所述应用的所述标识符和所述第二文件夹的标识符生成第二密钥。使用所述第一密钥对与所述应用相关联的数据的第一部分进行加密。使用所述第二密钥对与所述应用相关联的数据的第二部分进行加密。将所述经加密的第一部分存储在所述第一文件夹中。将所述经加密的第二部分存储在所述第二文件夹中。 对于每个文件夹使用不同的密钥可以防止应用能够读取由外部计算设备从一个文件夹复制到另一个文件夹的文件。
[0009]提供本摘要以便以简化形式介绍下面在详细描述中进一步描述的概念的选择。本摘要不旨在标识所要求保护的主题的关键特征或者实质特征,其也不旨在用于限制所要求保护的主题的范围。【附图说明】
[0010]当结合附图阅读时,前述摘要以及下面对图示性实施例的详细描述被更好地理解。出于图示出实施例的目的,附图中示出了实施例的示例构造;然而,实施例不限于所公开的具体方法和手段。在附图中:图1是用于在移动设备上存储内容项的不例环境的图不;图2是移动设备的实施方案的图示;图3是移动设备的实施方案的另一个图示;图4是移动设备的实施方案的另一个图示;图5是用于履行对执行读操作的请求的示例性方法的实施方案的图示;图6是用于履行对执行写操作的请求的示例性方法的实施方案的图示;图7是用于在可移除存储装置上安装应用的示例性方法的实施方案的图示;以及图8是示例实施例和方面可以在其中被实施的示例性计算环境的图示。【具体实施方式】
[0011]图1是用于在移动设备上存储内容项的示例环境100的图示。如所图示的,环境100 包括通过网络120与彼此通信的移动设备115和内容项服务器150。环境100可以进一步包括用于安全和可靠地备份和恢复来自移动设备115的内容的云存储装置160。网络120可以是包括公共交换电话网(PSTN)、蜂窝电话网和分组交换网(例如,互联网或者云网络)的多种网络类型。可以例如使用诸如是关于图8描述的计算设备800之类的一个或多个通用计算设备实施移动设备115和内容项服务器150。此外,尽管在图1中不出了一个移动设备115和一个内容项服务器150,但其仅是出于图示性目的;对可以被支持的移动设备和/或内容项服务器的数量不存在任何限制。
[0012]用户可以使用移动设备115来从内容项服务器150选择和下载一个或多个内容项 155。内容项155可以包括多种媒体文件,所述多种媒体文件包括但不限于视频文件、音乐文件和图像文件。另外,内容项155可以包括应用。内容项服务器150可以包括用户可以通过其选择要下载的内容项155的线上市场或者网页。移动设备115可以是诸如是蜂窝电话、平板型计算机或者任何其他类型的计算设备之类的计算设备。
[0013]如所图示的,移动设备115可以包括可移除存储装置116和非可移除存储装置117 两者。非可移除存储装置117可以是在移动设备115内部的存储装置和/或不能从移动设备 115被轻松移除的存储装置。例如,存储装置如果其不能在不损坏移动设备115、拆卸或者部分上拆卸移动设备115、或者不使用诸如是螺丝刀之类的工具的情况下被移除则可以被看作非可移除的。非可移除存储装置117通常被完全放置在移动设备115的外壳内,并且可以使用不被用户轻松断开的连接装置直接连接到电路板或者处理器。非可移除存储装置117 的示例包括闪存。可以使用其他类型的存储装置。
[0014]相反,可移除存储装置116可以是能够被轻松移除或者添加到移动设备115的存储装置。例如,诸如是能够在不损坏移动设备115、不拆卸或者部分上拆卸移动设备115或者不使用工具的情况下被轻松插入移动设备115的对应槽或者接口中和从移动设备115的对应槽或者接口移除的磁盘或者模块之类的存储装置可以被看作可移除存储装置116。可移除存储装置116的示例包括安全数字(“SD”)卡。可以使用其他类型的存储装置。[0〇15]如上面描述的,移动设备115的用户可以从内容项服务器150下载内容项155。诸如是视频和应用之类的某些内容项可能占用大量存储空间。因为非可移除存储装置117是非可移除的,在用户已耗尽非可移除存储装置117的可用空间的量之后,该用户不可以在不首先从非可移除存储装置117删除内容项中的一些内容项的情况下下载任何附加的内容项。 相反,使用可移除存储装置116,在用户已耗尽SD卡的可用空间的量之后,该用户可以移除满的SD卡并且插入新SD卡以用于附加的内容项155。被下载到满的SD卡的内容项155可以在稍后通过用该满的SD卡替换该新的SD卡而被访问。
[0016]尽管可移除存储装置116可以向用户提供几乎无限的存储空间,但因为可移除存储装置116通常可以被个人计算机读取,所以由内容项服务器150出售或者提供的内容项 155的生产者或者拥有者可以制作内容项155的未经授权的副本,或者可以将内容项115作为他们自身的进行重新分发。例如,SD卡通常使用诸如是文件分配表(“FAT”)和扩展文件分配表(“exFAT”)之类的流行文件系统,使得它们可被多数个人计算机轻松读取。
[0017]相应地,在某些实施方案中,在将所下载的内容项155存储在可移除存储装置116 上之前,移动设备115可以首先使用对该移动设备115来说唯一的主密钥对内容项115进行加密。主密钥可以被存储在非可移除存储装置117中。经加密的内容项155可以然后被存储在可移除存储装置116中。当移动设备115的用户稍后使用移动设备115访问可移除存储装置116的经加密的内容项155时,密钥被从非可移除存储装置117检索,并且被用于对经加密的内容项155进行解密。如果移动设备115的用户尝试使用他们的个人计算机访问被存储在可移除存储装置116上的经加密的内容项155,则他们将不能在没有主密钥的情况下对经加密的内容项155中的任何经加密的内容项进行解密。例如关于图2进一步描述了这样的实施方案。
[0018]尽管如上面描述那样使用单个密钥对所存储的内容项155进行加密可以提供某种级别的非法复制保护,但其不针对在其中用户使用被存储在可移除存储装置上的恶意应用来提供对经加密的内容项的访问的场景也进行保护。例如,被存储在可移除存储装置116上的恶意应用为访问其自身的所存储的应用数据,将能访问被用于对内容项155进行加密的主密钥。恶意应用可以然后潜在地对所存储的内容项155中的任何内容项进行解密,并且将它们提供给第三方。另外,这样的解决方案不提供应用之间的隔离,因为每个应用可以使用公共的主密钥访问与被存储在可移除存储装置116上的应用或者内容项155中的任一个应用或者内容项相关联的数据。
[0019]相应地,在某些实施方案中,并非使用单个主密钥来对被存储在可移除存储装置 116上的内容项155中的全部内容项进行加密,而是每个内容项155可以被使用其自身的密钥进行加密和存储。可以由移动设备115使用与内容项155相关联的标识符和主密钥确定用于对内容项155进行加密的密钥。
[0020]在这样的实施方案中,当移动设备115的用户稍后使用移动设备115访问可移除存储装置116的经加密的内容项155时,与经加密的内容项155相对应的密钥被用于对经加密的内容项155进行解密。取决于特定的实施方案,对应的密钥可以被存储在非可移除存储装置117中,或者可以不被存储并且作为代替可以由移动设备115根据需要从主密钥和与特定内容项155相关联的标识符确定。例如关于图3进一步描述了这样的实施方案。[〇〇21]尽管使用多个内容项专用的密钥可以提供应用之间的隔离,但其不可以提供为诸如是应用之类的内容项155提供完整的非法复制保护。例如,通常应用使用多个文件夹进行安装,所述多个文件夹诸如是包括控制应用的执行的源代码数据的二进制文件夹和包括在执行期间被应用使用的数据(诸如是图形和配置文件)的数据文件夹。在这样的场景中,恶意用户可以移动来自二进制文件夹的应用的源代码数据以覆写在可移除存储装置116上的数据文件夹中的已知数据文件。可以然后使用来自数据文件夹的应用访问未经加密的源代码数据,并且使未经加密的源代码数据对于其他用户是可用的。[〇〇22]相应地,为在其中内容项155是应用的情况下提供附加的保护,可以在与内容项相关联的每个文件夹或者目录被使用其自身的密钥进行加密的情况下存储内容项155。可以由移动设备115使用与内容项相关联的标识符、与文件夹相关联的标识符和主密钥确定被用于文件夹的密钥。例如关于图4进一步描述了这样的实施方案。
[0023]图2是移动设备115的实施方案的图不。如所不的,移动设备115包括多种构件,所述多种构件包括但不限于文件管理器205、安全性管理器210、可移除存储装置116、非可移除存储装置117和受信任平台模块220。更多或者更少的构件可以被移动设备115支持。移动设备115可以是蜂窝电话、膝上型计算机、平板型计算机、个人媒体播放器或者便携式视频游戏系统。可以使用其他类型的计算机。
[0024]在一个实施方案中,受信任平台模块220可以包括在许多计算系统中被找到的已知的安全协处理器。受信任平台模块220可以向移动设备115提供一个或多个密码服务,所述密码服务包括但不限于提供主密钥221。主密钥221可以是对于受信任平台模块220和/或移动设备115来说唯一的。主密钥221可以由受信任平台模块220存储在非可移除存储装置 117中。用于存储主密钥221的非可移除存储装置117中的位置可以是对于执行在移动设备115上的许多应用或者进程来说不可用的。此外,所述位置可以是如果移动设备115被拆除并且非可移除存储装置117被从移动设备115强制移除的话对于恶意用户来说难以定位的。
[0025]取决于实施方案,主密钥221可以被受信任平台模块220封装。当主密钥221被受信任平台模块220封装时,其被加密,并且仅可以被受信任平台模块220解密。通过以经封装的形式存储主密钥221,即使主密钥221被恶意用户恢复,其也将是采用经封装的形式而不可用的。[〇〇26] 在某些实施方案中,主密钥221可以是128位高级加密标准(“AES”)密钥。AES是对称密钥加密算法,这在于,相同的密钥可以被用于加密和解密两者。可以使用诸如是非对称加密算法之类的其他类型的加密算法。另外,可以使用大于(或者小于)128位的密钥。[〇〇27]文件管理器205可以接收文件操作201。文件操作201可以包括对在非可移除存储装置117或者可移除存储装置116上读、写、重命名或者创建一个或多个文件的请求。文件操作201可以由执行在移动设备115上的一个或多个应用或者由移动设备115的操作系统产生。[〇〇28]当文件管理器205接收文件操作201时,文件管理器205可以对文件操作201应用一个或多个过滤器215以确定如何继续进行。过滤器215可以每个都包括被相对于文件操作 201进行匹配的一个或多个特性和将关于与特性相匹配的文件操作201采取的一个或多个行动。例如,过滤器215中的一个过滤器可以与被定向到可移除存储装置116的文件操作201 相匹配,以及过滤器215中的另一个过滤器可以与被定向到非可移除存储装置117的文件操作201相匹配。可以使用其他类型的过滤器215。[〇〇29]当文件操作201与相关联于可移除存储装置116的过滤器相匹配时,被文件管理器 205采取的行动可以取决于文件操作201的类型。在其中文件操作包括对创建或者存储新内容项155(诸如是应用)的请求时,文件管理器205可以从安全性管理器210请求安全性描述符。取决于实施方案,安全性描述符可以指定应用可以访问的移动设备115的资源或者文件 (例如,照相机、GPS、用户联系人等)以及应用可以被存储的可移除存储装置116的位置或者区域。安全性描述符可以指定内容项155是否将以经加密的形式被存储在可移除存储装置 116上以及将用于对内容项155进行加密的密钥(例如,主密钥221)。
[0030]对于某些内容项155,以经加密的形式存储它们可能不是必要的。例如,内容项155 可以是由移动设备115的用户创建的照片,或者在内容项155是应用的情况下,该应用的创建者可能不想要或者要求该应用以经加密的形式被存储。可以基于与内容项155相关联的元数据和/或基于移动设备115的配置确定内容项155是否将被加密。[〇〇31]在某些实施方案中,安全性描述符可以包括内容项155的唯一标识符。安全性管理器210可以生成所述标识符,或者所述标识符可以已经例如作为元数据被与内容项155相关联。在内容项155是应用的情况下,应用的标识符也可以被称作腔标识符(chamber identifier)。安全性描述符可以由安全性管理器210存储在例如系统注册表中的非可移除存储装置117中。[〇〇32]文件管理器205可以接收安全性描述符,并且可以基于包括在安全性描述符中的信息确定如何存储内容项155。如果安全性描述符指示内容项155将不被加密,则文件管理器205可以允许创建文件操作201将内容项155写到可移除存储装置116。在某些实施方案中,内容项155可以被写到基于内容项155的标识符被命名的可移除存储装置的文件夹。另夕卜,文件夹可以被隐藏,或者可以是用于在可移除存储装置116上存储内容项155中的一些或全部内容项的被隐藏的文件夹的子文件夹。[〇〇33]如果安全性描述符指示内容项155将被加密,则文件管理器205可以检索由安全性描述符指示的主密钥221,并且可以使用主密钥221对内容项155进行加密。内容项155然后可以如上面描述的那样被存储在可移除存储装置116中。可替换地或者附加地,受信任平台模块220可以使用主密钥221对内容项155进行加密,和/或可以允许经签名的主密钥221被用于对内容项155进行加密。内容项155可以作为经加密的内容项数据225被存储在可移除存储装置116的区域中。[〇〇34]在文件操作201是对向可移除存储装置116写入的请求的情况下,文件管理器205 可以请求正在请求向可移除存储装置116写入的应用的安全性描述符。如果应用不具有许可或者未被授权,则文件管理器205可以拒绝所请求的文件操作201。[〇〇35]如果应用被授权,则文件管理器205可以确定内容项155是否被加密。如果内容项 155未被加密,则文件管理器205可以允许写操作在与内容项155相关联的可移除存储装置 116的位置处继续进行。否则,文件管理器205可以检索主密钥221,并且可以使用所接收的主密钥促进对将被文件操作201写入的数据进行的加密。在一个实施方案中,文件管理器 205可以使用主密钥和作为初始化向量缓冲器的与将被写入的数据相关联的逻辑偏移量对文件进行加密。
[0036]在某些实施方案中,写文件操作201可以是与用户缓冲器相关联的。用户缓冲器可以包括将被写到可移除存储装置116的数据。并非利用经加密的数据覆写用户缓冲器中的数据,而是,文件管理器205可以创建用于对数据进行加密的阴影缓冲器。例如,文件管理器 205可以将数据从用户缓冲器复制到阴影缓冲器,并且可以对阴影缓冲器中的数据进行加密。阴影缓冲器中的经加密的数据可以被复制到与经加密的内容项数据225相关联的可移除存储装置116的位置。
[0037]在诸如是FAT和exFAT文件系统之类的文件系统中,数据通常被写到诸如是512字节之类的满扇区中。在将被写入的数据少于满扇区的情况下,文件系统可以利用零对扇区的未被写的字节进行写入。然而,因为文件管理器205以经加密的形式向可移除存储装置写入数据,所以向已被加密的数据添加这样的零可能使所存储的经加密的数据不可读。因此, 在某些实施方案中,在将被文件管理器205写入的数据少于完整扇区的情况下,文件管理器 205可以通过在对数据进行加密之前添加零将数据扩充到满扇区。经加密的数据可以被提供给文件系统以被写入到可移除存储装置116的扇区。[〇〇38]在文件操作201是对从可移除存储装置116读取的请求的情况下,文件管理器205 可以请求正在请求从可移除存储装置116读取的应用的安全性描述符。如果应用不具有许可或者未被授权,则文件管理器205可以拒绝所请求的文件操作201。[〇〇39]如果应用被授权,则文件管理器205可以确定内容项155是否被加密。如果内容项 155未被加密,则文件管理器205可以允许读操作在与内容项155相关联的可移除存储装置 116的区域或者位置处继续进行。否则,文件管理器205可以检索主密钥221,并且可以使用所接收的主密钥促进对将被文件操作201读取的数据进行的解密。
[0040]与在上面针对写文件操作描述的相似,读文件操作可以是与缓冲器相关联的。缓冲器可以是空的,并且为接收经解密的数据准备就绪。文件管理器205可以将经解密的数据放置到缓冲器中以完成文件操作201。
[0041]在诸如是FAT和exFAT之类的文件系统中,通常,在执行读操作时,当越过文件结尾或者EOF的数据被请求时,文件系统返回零而非超越EOF的所请求的数据,因为超越EOF的数据可能属于不同的进程或者用户。然而,因为扇区里的数据被加密,所以超越EOF的数据可能是经加密的内容项数据的部分。相应地,为促进读取超过E0F,并且为防止返回零,文件管理器205可以对移动设备115的内核或者操作系统进行配置,以使得当超过EOF的数据被请求时FAT或者exFAT文件系统不返回零。作为代替,文件系统可以被配置为返回实际数据和文件系统将在此处开始写零的偏移量的指示符。可以例如通过设置与内核相关联的位对文件系统进行配置。
[0042]如上面指出的,在图2中描述的涉及基于单个主密钥进行的加密的实施方案可能不能向内容项155提供关于隔离和非法复制两者的足够保护。相应地,图3图示出了:取代如上面描述的那样使用相同的主密钥221对每个内容项155进行加密,每个内容项155可以被使用其自身的关联的加密密钥进行加密的移动设备115的实施方案。因为每个内容项155是与其自身的密钥相关联的,所以诸如是应用之类的内容项155不能使用主密钥221或者其自身的密钥对与被存储在可移除存储装置116上的不同内容项155相关联的数据进行解密和访问。因此,改进了内容项隔离,并且可以减少内容项非法复制。
[0043]与在上面针对图2描述的相似,当在图3中接收与相关联于可移除存储装置116的过滤器215相匹配的文件操作201时,被文件管理器205采取的行动可以取决于文件操作201 的类型。在文件操作201是对创建或者存储新内容项155(诸如是应用)的请求时,文件管理器205可以如上面描述的那样从安全性管理器210请求安全性描述符。如果安全性描述符指示内容项155将被加密,则文件管理器205可以在向文件系统提供内容项155以被存储在可移除存储装置116上之前生成用于对内容项155进行加密的内容项密钥321。可替换地,安全性管理器210可以促进针对内容项155的内容项密钥321的生成。
[0044]与主密钥221相似,内容项密钥321可以是对称的128位AES密钥。然而,与主密钥 221不同,内容项密钥321可以仅用于对它针对其被生成或者与其相关联的内容项155进行加密或者解密。在某些实施方案中,可以使用主密钥321和诸如是腔标识符之类的内容项 155的标识符生成内容项密钥321。
[0045]例如,可以通过组合内容项155的标识符的散列和主密钥221生成内容项密钥321。 可以使用包括SHA-256的多种散列函数生成所述散列。可以使用其他散列函数。可以通过取底部128位作为内容项密钥321从经组合的散列和主密钥221生成内容项密钥321。可以使用其他的用于生成密钥的方法和其他大小的密钥。
[0046]所生成的内容项密钥321可以用于对内容项155进行加密,并且经加密的内容项数据225可以然后被文件管理器205提供给文件系统以便存储在可移除存储装置116中。经加密的内容项数据225可以被存储在内容项文件夹320中。每个内容项155可以是与其自身的内容项文件夹320相关联的。可以例如基于诸如是腔标识符之类的内容项的标识符命名被用于存储与内容项155相关联的经加密的内容项数据225的内容项文件夹320。
[0047]在某些实施方案中,在内容项密钥321被用于对内容项155进行加密之后,可以丢弃内容项密钥321。对于任何随后的对经加密的内容项数据225进行读或者写的尝试,可以由文件管理器205如上面描述的那样基于主密钥221和内容项155的标识符重新生成内容项密钥321。
[0048]可替换地,在某些实施方案中,并非在将经加密的内容项225存储在内容项文件夹 320中之后丢弃内容项密钥321,而是,文件管理器205可以将所生成的内容项密钥321存储在非可移除存储装置117中。对于任何随后的对经加密的内容项数据225进行读或者写的尝试,可以从非可移除存储装置117检索所存储的内容项密钥321。
[0049]在某些实施方案中,内容项密钥321可以在非可移除存储装置117中被存储在内容项文件夹325中。被用于存储内容项密钥321的内容项文件夹325可以具有与被用于在可移除存储装置116中存储对应的经加密的内容项数据225的内容项文件夹320相同的名称或者标识符。另外,被用于在非可移除存储装置117上存储内容项密钥321的内容项文件夹325的文件结构可以取被用于在可移除存储装置116上存储经加密的内容项数据225的内容项文件夹320的文件结构的镜像。
[0050]尽管将内容项密钥321存储在非可移除存储装置117中可以减少与生成内容项密钥321相关联的计算开销,但密钥321在非可移除存储装置117上的出现可能允许恶意用户通过破坏或者拆卸移动设备115以得到非可移除存储装置117来访问密钥321。[0051 ]相应地,在某些实施方案中,取代将内容项密钥321存储在非可移除存储装置117 中,文件管理器205可以将内容项密钥321中的一个或多个内容项密钥存储在密钥高速缓存 330中。可以将密钥高速缓存330保持在移动设备115的安全易失性存储器中,以使得密钥高速缓存330的内容可以在每次移动设备115被关闭时被擦除。[〇〇52]在某些实施方案中,密钥高速缓存330中的每个条目可以包括内容项密钥321和内容项密钥321与之相关联的内容项155的标识符。另外,每个条目可以包括对应的经加密的内容项数据225被存储在其中的内容项文件夹320的标识符和/或与内容项155相关联的安全性描述符的副本。[〇〇53]当针对内容项155的写文件操作或者读文件操作被文件管理器205接收时,文件管理器205可以确定密钥高速缓存330中是否存在针对内容项155的条目。如果存在,则文件管理器205可以从密钥高速缓存330检索内容项密钥321,并且可以通过使用经加密的内容项数据225使用内容项密钥321履行文件操作201。[〇〇54] 如果密钥高速缓存330中不存在任何针对内容项155的条目,则文件管理器205可以检索主密钥221,并且如上面描述的那样从主密钥221和内容项155的标识符生成内容项密钥321。文件管理器205可以通过使用经加密的内容项数据225使用内容项密钥321履行文件操作201。可以将针对所生成的内容项密钥321的条目添加到密钥高速缓存330。[〇〇55]在某些实施方案中,密钥高速缓存330可以是诸如是500个条目之类的固定大小。 可以使用其他大小。当密钥高速缓存330满时,可以在密钥高速缓存330中替换针对至少最近使用的内容项密钥321的条目。可替换地,可以周期性地从密钥高速缓存330清除比预定年龄老的内容项密钥高速缓存330中的任何条目。
[0056]如上面指出的,在图3中描述的使用内容项专用的密钥对内容项155进行加密的实施方案可能不能向是应用的内容项155提供关于隔离和非法复制两者的足够保护。例如,应用通常被跨多个文件夹存储,其中,一个文件夹用于存储与应用自身相关的二进制文件,以及另一个文件夹用于存储在执行期间被应用使用的数据,诸如是用户设置文件和图形。相应地,如果仅一个内容项加密密钥321被用于对两者文件夹进行加密,则恶意用户可能使用内容项加密密钥321获得对与内容项155相关联的二进制文件的访问。二进制文件可以然后例如被用于对二进制文件进行反向工程以及获得对源代码的访问。
[0057]相应地,图4图示出了:取代使用单个内容项密钥321对内容项的全部内容进行加密,与内容项相关联的数据文件夹中的每个或者一些数据文件夹可以使用其自身的内容项加密密钥321进行加密的移动设备115的实施方案。因为内容项的每个文件夹是与其自身的内容项密钥321相关联的,所以使用内容项密钥321从与内容项相关联的数据文件夹读数据的应用不能也使用该内容项密钥321访问与内容项相关联的二进制文件夹。因此,可以进一步减少内容项非法复制。
[0058]与上面针对图2描述的相似,在图4中,当文件操作201与相关联于可移除存储装置 116的过滤器215相匹配时,被文件管理器205采取的行动可以取决于文件操作201的类型。 在文件操作201是对创建或者存储新内容项155(诸如是应用)的请求的情况下,文件管理器 205可以如上面描述的那样从安全性管理器210请求安全性描述符。[〇〇59]如果安全性描述符指示内容项155将被加密,则文件管理器205可以在可移除存储装置116上生成用于存储内容项155的内容项文件夹320。另外,文件管理器205可以在所生成的内容项文件夹320内生成多个文件夹。在某些实施方案中,文件管理器205可以针对被内容项155使用的文件结构的每个文件夹生成一个文件夹。例如,在内容项155是应用的情况下,文件管理器205可以创建可以用于存储与应用相关的二进制文件的文件夹410a和可以用于存储与应用相关的数据文件的文件夹410b。尽管仅示出了两个文件夹(S卩,文件夹 410a和410b),但其仅是用于图示的;对可以被创建的文件夹的数量不存在任何限制。
[0060] 在创建文件夹410a、410b之后,文件管理器205和/或安全性管理器210可以生成针对所生成的文件夹中的每个文件夹的内容项密钥321。与在上面描述的相似,所生成的内容项密钥321可以是对称的128位AES密钥。在某些实施方案中,针对一个文件夹的内容项密钥 321可以使用主密钥321、内容项155的标识符和该文件夹的标识符被生成。例如,针对文件夹410a的内容项密钥321可以通过组合内容项155的标识符和文件夹410a的标识符的散列以及主密钥221被生成。[〇〇611所生成的内容项密钥321可以用于对内容项155进行加密。针对文件夹410a所生成的内容项密钥321可以用于对内容项155的第一部分进行加密作为经加密的内容项数据 225a,并且针对文件夹410b所生成的内容项密钥321可以用于对内容项155的第二部分进行加密作为经加密的内容项数据225b。可以将经加密的内容项数据225a和经加密的内容项数据225b提供给文件系统以便分别存储在文件夹410a和410b中。在一个实施方案中,在其中内容项数据155是应用的情况下,内容项155的第一部分可以包括应用的二进制文件,并且内容项155的第二部分可以包括应用的应用文件。[〇〇62] 在存储经加密的内容项数据225a和225b之后,可以丢弃内容项密钥321中的两个内容项密钥。可替换地,可以将内容项密钥321中的一个或者两个内容项密钥添加到密钥高速缓存330。可以使用关联的内容项155的标识符和关联的文件夹的标识符对密钥高速缓存中的每个内容项密钥321建立索引。[〇〇63]当文件操作201(诸如是读或者写操作)被文件管理器205接收时,文件管理器205 可以确定与文件操作201相关联的内容项155和文件夹。文件管理器205可以使用内容项155 和文件夹的标识符来生成与内容项155和文件夹相关联的内容项密钥321,或是来从密钥高速缓存330检索内容项密钥321。内容项密钥321可以被文件管理器205用于促进文件操作 201的执行。
[0064]图5是用于履行对执行读操作的请求的示例性方法500的实施方案的图示。方法 500可以例如由移动设备115实施。
[0065]在501处接收对读数据的请求。该请求是与内容项155相关联的,并且可以包括读文件操作201。可以由移动设备115的文件管理器205从执行在移动设备115上的应用或者操作系统接收该请求。该请求可能将读取存储在可移除存储装置116上的经加密的内容项数据225。可移除存储装置116可以包括SD卡,并且可以使用诸如是FAT或者exFAT之类的文件系统进行格式化。可以支持其他文件系统。取决于实施方案,该请求可以与一个或多个与可移除存储装置116相关联的过滤器215相匹配。[〇〇66]在503处做出关于请求是否被授权的确定。可以由文件管理器205通过确定数据的请求者是否被授权读数据来确定请求是否被授权。在某些实施方案中,文件管理器205可以例如使用由安全性管理器210提供的安全性描述符做出确定。如果请求未被授权,则方法 500可以在505处继续,在该处,请求被文件管理器205拒绝。如果请求被授权。则方法500可以在507处继续。[〇〇67] 在507处例如由文件管理器205确定解密密钥。解密密钥可以是128位AES对称密钥。可以使用其他密钥。在其中单个主密钥221被用于对全部内容项155进行解密的实施方案中,可以从非可移除存储装置117检索和/或从受信任平台模块220或者安全性管理器210 检索主密钥221。可以例如由受信任平台模块220对主密钥221进行封装。[〇〇68]在某些实施方案中,可以将主密钥221备份和恢复到云存储装置190,以使得可移除存储装置116上的内容在如果存在其非可移除存储装置117上的硬件故障的情况下可以被访问。例如,如果移动设备115将经历硬件故障的话,可以将可移除存储装置116放置到新的替换移动设备115中,并且可以从云存储装置190中的备份恢复主密钥221。利用云存储装置190对主密钥221的备份/恢复可以依赖于用户名/密码或者某个其他的对于设备115的用户唯一的标识。可以使用加密与云存储装置190交换主密钥221,以防止某人能够在主密钥 221在替换移动设备115上被恢复之前发现主密钥221。[〇〇69]在其中不同的内容项密钥321被用于对每个内容项155进行解密的实施方案中,可以由文件管理器205确定与相关联于对读数据的请求的内容项155相对应的内容项密钥 321。取决于实施方案,内容项密钥321可以通过从非可移除存储装置117上的内容项文件夹 325检索内容项密钥321被确定,或者可以使用主密钥221和内容项155的标识符和/或内容项115在可移除存储装置116上被存储在其处的位置或者文件夹的标识符被生成。
[0070]可替换地,文件管理器205可以检查内容项密钥321是否被存储在密钥高速缓存 330中,并且如果是这样,则可以使用来自密钥高速缓存330的内容项密钥321。如果不是,则文件管理器205可以如上面描述的那样确定内容项密钥321。
[0071]在509处对与内容项相关联的数据进行解密。与内容项155相关联的经加密的内容项数据225被文件系统从可移除存储装置116进行检索,并且取决于实施方案使用主密钥 221或者内容项密钥321进行解密。在511处提供经解密的数据。可以由文件管理器205向产生请求的应用提供经解密的数据。如果经加密的数据在其被写到可移除存储装置116时被利用零进行了填充,则填充的零在其被递送给进行请求的应用之前被从内容中移除。
[0072]图6是用于履行对执行写操作的请求的示例性方法600的实施方案的图示。可以例如由移动设备115实施方法600。[〇〇73]在601处接收对于写入数据的请求。该请求是与内容项155相关联的,并且可以包括写文件操作201。可以由移动设备115的文件管理器205从执行在移动设备115上的应用或者操作系统接收该请求。该请求可以用于向被存储在可移除存储装置116上的经加密的内容项数据225进行写入。[〇〇74]在603处做出关于请求是否被授权的确定。可以由文件管理器205通过确定请求者是否被授权写数据而确定请求是否被授权。在某些实施方案中,文件管理器205可以例如使用由安全性管理器210提供的安全性描述符做出所述确定。如果请求未被授权,则方法600 可以在605处继续,在该处,请求被文件管理器205拒绝。如果请求被授权,则方法600可以在 607处继续。[〇〇75] 在607处确定加密密钥。由文件管理器205确定加密密钥。在其中单个主密钥221被用于对全部内容项155进行加密的实施方案中,可以从非可移除存储装置117检索和/或从受信任平台模块220或者安全性管理器210检索主密钥221。
[0076]在其中不同的内容项密钥321被用于对每个内容项155进行加密的实施方案中,可以由文件管理器205确定与相关联于对写数据的请求的内容项155相对应的内容项密钥。取决于实施方案,内容项密钥321可以通过从非可移除存储装置117上的内容项文件夹325检索内容项密钥321被确定,或者可以使用主密钥221和内容项155的标识符被生成。[〇〇77]可替换地,文件管理器205可以检查内容项密钥321是否被存储在密钥高速缓存 330中,并且如果是这样,则使用来自密钥高速缓存330的内容项密钥321。如果不是,则文件管理器205可以如上面描述的那样确定内容项密钥321。[〇〇78]在609处对与内容项相关联的数据进行加密。可以由文件管理器205对数据进行加密。对于写入数据的请求可以指定包括将被写入的数据的缓冲器。文件管理器205可以取决于实施方案使用主密钥221或者内容项密钥321对缓冲器中的数据进行加密。在某些实施方案中,文件管理器205可以将数据从所指定的缓冲器复制到阴影缓冲器,并且可以对阴影缓冲器中的数据进行加密。如果必要,数据在其被加密之前可以被利用零进行填充。
[0079]在611处存储经加密的数据。可以由文件系统作为经加密的内容项数据225在可移除存储装置116上存储经加密的数据。取决于实施方案,经加密的内容项数据225可以被存储在内容项文件夹320中。内容项文件夹320可以例如是隐藏的文件夹。取决于实施方案,所生成的内容项密钥321可以被添加到密钥高速缓存330。
[0080]图7是用于将应用安装在诸如是可移除存储装置116之类的可移除存储装置上的示例性方法700的实施方案的图示。可以例如由移动设备115实施方法700。
[0081]在701处接收对将应用安装在可移除存储装置中的请求。该请求可以包括文件操作201,并且可以被移动设备115的文件管理器205接收。应用可以是与应用标识符相关联的。应用标识符可以是与应用相关联的(例如,作为元数据),或者可以被文件管理器205指派给应用。
[0082]因为该请求用于将应用安装在可移除存储装置116上,所以该请求可以与相关联于可移除存储装置116的过滤器215相匹配。应用可以包括内容项155的一个示例。尽管方法 700关于是应用的内容项进行了描述,但其适用于全部内容项155,诸如是图像、音乐和视频内容项。
[0083]在703处创建第一文件夹和第二文件夹。可以由文件管理器205在可移除存储装置 116上创建第一文件夹410a和第二文件夹410b。文件管理器205可以如由应用安装程序所指导的那样创建文件夹。可以由文件管理器205创建更多或更少的文件夹。在某些实施方案中,文件夹可以与被应用用于组织与应用相关联的数据的文件夹相对应。例如,第一文件夹 410a可以用于保持与应用相关的二进制数据(诸如是源代码),并且可以与应用的二进制文件夹相对应。相似地,第二文件夹410b可以用于保持与应用相关的应用数据(诸如是图形或者配置文件),并且可以与应用的数据文件夹相对应。
[0084]可以在用于存储与应用相关联的数据中的全部数据的内容项文件夹320内创建文件夹410a和410b。内容项文件夹320以及文件夹410a和410b可以是与标识符相关联的。 [〇〇85]在705处生成第一密钥。可以针对对将存储在第一文件夹410a中的数据进行加密生成第一密钥。可以由文件管理器205使用与受信任平台模块220相关联的主密钥221生成第一密钥。在某些实施方案中,可以经由将主密钥221与应用的标识符和/或第一文件夹 410a的标识符的散列进行组合创建第一密钥。可以使用用于生成密钥的其他方法。[〇〇86]在707处生成第二密钥。可以针对对将存储在第二文件夹410b中的数据进行加密生成第二密钥。可以由文件管理器205使用与受信任平台模块220相关联的主密钥221生成第二密钥。与第一密钥相似地,可以经由将主密钥221与应用的标识符和/或第二文件夹 410b的标识符的散列进行组合创建第二密钥。第一和第二密钥可以是128位AES对称加密密钥。可以使用其他密钥大小和类型。[〇〇87]在709处对与应用相关联的数据的第一部分进行加密。可以由文件管理器205使用第一密钥对数据的第一部分进行加密。可以对数据的第一部分进行加密作为经加密的内容项数据225a。在711处对与应用相关联的数据的第二部分进行加密。可以由文件管理器205 使用第二密钥对数据的第二部分进行加密。可以对数据的第二部分进行加密作为经加密的内容项数据225b。[〇〇88]在713处将数据的经加密的第一部分存储在第一文件夹中。可以由文件管理器205 将经加密的第一部分存储在文件夹410a中。在715处将数据的经加密的第二部分存储在第二文件夹中。可以由文件管理器205将经加密的第二部分存储在文件夹410b中。取决于实施方案,第一和第二密钥可以被添加到密钥高速缓存330。
[0089]图8示出了示例实施例和方面可以在其中被实施的示例性计算环境。该计算系统环境仅是合适的计算环境的一个示例,并且不旨在关于用途或者功能的范围建议任何限制。
[0090]可以使用许多其他的通用或者专用计算系统环境或者配置。可能适于使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)、服务器计算机、手持型或者膝上型设备、多处理器系统、基于微处理器的系统、网络PC、微型计算机、大型计算机、 嵌入式系统、包括以上系统或者设备中的任何系统或者设备的分布式计算环境等。
[0091]可以使用被计算机执行的计算机可执行指令,诸如是程序模块。概括地说,程序模块包括执行特定任务或者实施特定抽象数据类型的例程、程序、对象、构件、数据结构等。可以使用分布式计算环境,在其中,任务被通过通信网络或者其他数据传输介质链接的远程处理设备执行。在分布式计算环境中,程序模块和其他数据可以被放置在本地和包括存储器存储设备的远程计算机存储介质两者处。
[0092]通过参考图8,用于实施本文中描述的方面的示例性系统包括诸如是计算设备800 之类的计算设备。计算设备800描绘了为根据各种实施例的特定的基于软件的功能提供执行平台的基本计算机系统的构件。计算设备800可以是来自各种实施例的客户端侧库、集群级服务和/或分布式执行引擎(或者它们的构件)在其上被实例化的环境。计算设备800可以例如包括台式计算机系统、膝上型计算机系统或者服务器计算机系统。相似地,计算设备 800可以被实施为手持型设备(例如,蜂窝电话、智能电话、平板电脑等)。计算设备800通常包括至少某种形式的计算机可读介质。计算机可读介质可以是许多不同类型的可用的介质,所述可用的介质可以被计算设备800访问,并且可以包括但不限于计算机存储介质。 [〇〇93] 在其最基本的配置中,计算设备800通常包括至少一个处理单元802和存储器804。 取决于计算设备的确切配置和类型,存储器804可以是易失性的(诸如是随机存取存储器 (RAM))、非易失性的(诸如是只读存储器(R0M)、闪存等)或者这两者的某种组合。在图8中由虚线806图不出了该最基本的配置。[〇〇94]计算设备800可以具有附加的特征/功能。例如,计算设备800可以包括附加的存储装置(可移除的和/或非可移除的),其包括但不限于硬盘和SD卡。在图8中由可移除存储装置808和非可移除存储装置810图示出了这样的附加的存储装置。
[0095]计算设备800通常包括多种计算机可读介质。计算机可读介质可以是任何可以被设备800访问的可用介质,并且包括易失性和非易失性介质、可移除和非可移除介质两者。
[0096]计算机存储介质包括采用用于存储诸如是计算机可读指令、数据结构、程序模块或者其他数据之类的信息的任何方法或者技术实施的易失性和非易失性以及可移除和非可移除的介质。存储器804、可移除存储装置808和非可移除存储装置810全部是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、R0M、电可擦除程序只读存储器(EEPR0M)、 闪存或者其他存储器技术、CD-ROM、数字多功能光盘(DVD)或者其他光学存储装置、盒式磁带、磁带、磁盘存储装置或者其他磁存储设备;或者任何其他可以用于存储期望的信息并且可以被计算设备800访问的介质。任何这样的计算机存储介质可以是计算设备800的部分。
[0097]计算设备800可以包含允许该设备与其他设备和/或网络通信的(一个或者多个) 通信连接812。通信连接812可以包括W1-F1、蜂窝、蓝牙、CDMA、GSM等。计算设备800可以还具有(一个或者多个)输入设备814,诸如是键盘、电容式显示器、笔、话音输入设备、触摸输入设备等。还可以包括诸如是电容式显示器、扬声器等的(一个或者多个)输出设备816。计算设备800还可以从一个或多个传感器817接收数据。(一个或者多个)传感器817诸如是加速度计、全球定位系统、接近度传感器、陀螺仪等。全部这些设备和传感器是本领域中公知的, 并且不需要在这里被详尽地讨论。
[0098]应当理解,可以酌情结合硬件或者软件或者两者的组合来实施本文中描述的各种技术。因此,当前所公开的主题的方法和装置或者其特定方面或者部分可以采用程序代码 (即,指令)的形式,所述程序代码被体现在诸如是软盘、CD-ROM、硬盘驱动或者任何其他机器可读存储介质之类的有形介质中,其中,当程序代码被诸如是计算机之类的机器加载和执行时,所述机器变成用于实践当前所公开的主题的装置。
[0099]尽管示例性实施方案可能提到在一个或多个独立计算机系统的上下文中使用当前所公开的主题的方面,但所述主题不是如此受限的,而相反可以结合诸如是网络或者分布式计算环境之类的任何计算环境被实施。仍然进一步地,当前所公开的主题的方面可以在多个处理芯片或者设备中或者跨多个处理芯片或者设备被实施,并且存储装置可以相似地跨多个设备地被实现。这样的设备可以例如包括个人计算机、网络服务器和手持型设备。
[0100]尽管已使用专用于结构化特征和/或方法动作的语言描述了所述主题,但应当理解,在所附权利要求中限定的主题不必限于上面描述的具体特征或者动作。相反,作为实施权利要求的示例形式公开了上面描述的具体特征和动作。
【主权项】
1.一种用于使用与每个内容项相关联的密钥防止对被存储在移动设备上的内容项的 未经授权的复制的方法,其包括:由移动设备接收对于读取与内容项相关联的数据的请求,其中,所述数据被加密,并且 被存储在与所述移动设备相关联的可移除存储装置中;确定对于读取所述数据的所述请求被所述移动设备授权;响应于确定对于读取所述数据的所述请求被授权,由所述移动设备确定与所述内容项 相关联的密钥;由所述移动设备使用所述密钥对与所述内容项相关联的所述数据进行解密;以及 由所述移动设备提供经解密的数据。2.根据权利要求1所述的方法,其中,所述可移除存储装置包括安全数字卡。3.根据权利要求1所述的方法,其中,所述数据在文件分配表系统或者扩展文件分配表 文件系统的至少一项中被存储在所述可移除存储装置上。4.根据权利要求1所述的方法,其中,所述内容项包括应用、视频内容项或者音频内容 项中的一项或多项。5.根据权利要求1所述的方法,其中,确定与所述内容项相关联的密钥包括:确定与所 述移动设备相关联的非可移除存储装置的区域,以及,从与所述移动设备相关联的非可移 除存储装置的所述区域检索所述密钥。6.—种用于防止对应用的未经授权的复制和用于提供应用隔离的系统,其是通过使用 从所述应用的标识符生成的至少两个密钥和由受信任平台模块生成的主密钥对所述应用 的部分进行加密以及将所述应用的经加密的部分存储在至少两个文件夹中实现的,所述系 统包括:受信任平台模块,其适于生成主密钥;可移除存储装置;文件管理器,其适于:接收对于将应用安装在所述可移除存储装置中的请求;以及响应于所述请求,在所述可移除存储装置中创建与所述应用相关联的第一文件夹和第 二文件夹;以及 过滤器,其适于:使用所述主密钥、所述应用的标识符和所述第一文件夹的标识符生成第一密钥;使用所述主密钥、所述应用的所述标识符和所述第二文件夹的标识符生成第二密钥; 使用所述第一密钥对与所述应用相关联的数据的第一部分进行加密;使用所述第二密钥对与所述应用相关联的数据的第二部分进行加密;将经加密的第一部分存储在所述第一文件夹中;以及 将经加密的第二部分存储在所述第二文件夹中。7.根据权利要求6所述的系统,其中,所述系统进一步包括非可移除存储装置,并且其 中所述文件管理器进一步适于将所述第一密钥和所述第二密钥存储在所述非可移除存储 装置中。8.根据权利要求6所述的系统,其中,所述过滤器进一步适于:检索所述主密钥;使用所述主密钥、所述应用的所述标识符和所述第一文件夹的所述标识符生成所述第 一密钥;以及使用所生成的第一密钥对来自所述第一文件夹的数据进行解密。9.根据权利要求6所述的系统,其中,所述非可移除存储装置包括安全数字卡。10.根据权利要求6所述的系统,进一步包括高速缓存,并且其中所述过滤器进一步适 于将所生成的第一和第二密钥存储在所述高速缓存中。
【文档编号】G06F21/10GK105993018SQ201580007818
【公开日】2016年10月5日
【申请日】2015年2月4日
【发明人】D.卡拉罕, R.普迪佩迪, G.奥尔森, S.佩特尔, 周剑明, D.德西尔瓦
【申请人】微软技术许可有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1