掌桥专利:专业的专利平台
掌桥专利
首页

基于环境因子的可信执行

文献发布时间:2023-06-19 11:55:48


基于环境因子的可信执行

背景技术

计算设备采用加密、可信执行环境和其他安全性机制来保护私有数据免受不当访问。通过数据访问或设备操作来开发和利用附加形式的保护可以使个人设备用户和企业能够维护系统完整性。

发明内容

可信执行环境是通过公钥/私钥对(public/private key pair)支持的,该公钥/私钥对使用一个或多个可信环境因子(诸如位置、时间、气压、加速度、温度、湿度等)而被生成。可信环境因子还可以与常规的非环境因子(诸如设备特定因子(例如机器ID、状态、配置等)和认证因子(例如用户ID、生物特征信息等))组合,以在一些使用场景中生成密钥对(key pair)。所生成的密钥对可以被用于加密/解密数据、认证和授权用户、以及启用其他常规安全性特征。密钥对随后可以根据需要使用与原始密钥对生成相同的一个或多个可信环境因子来再生(regenerate),从而避免在该密钥对中存储一个或两个密钥的需求,并且在一些实施例中,避免使用指定信息将任何密钥对存储在一系列密钥生成上的需求。

通过将附加密码验证包括到密钥对生成过程,密钥对的按需动态再生可以为数据、用户和基础设施的安全性保护添加鲁棒性。环境因子还通过减少密钥盗用和否认的机会来增强可信执行的完整性。环境因子源可以包括可信的远程环境传感器(诸如安全GPS(全球定位系统)和地磁场感测)以及可信的本地传感器(诸如温度计、加速计和生物特征读取器)。

根据给定的使用场景,不同的环境因子和因子组合可以被用于公钥/私钥对生成。例如,计算设备位置可以使用来自安全GPS的信号来确定,该信号被密码验证为可信的。位置信息被用于创建密钥对,以使用加密机制来限制访问或操作。例如,数据或认证令牌可以被加密,其中认证令牌可以被用于访问数据或执行设备操作。在该实现中,密钥对可以不被存储在设备上,因为它可以被再生。备选地,环境因子可以由计算设备验证,并且密钥对可以被存储在可信执行环境(诸如可信的平台模块)内,该可信执行环境在对环境因子进行验证时是可访问的。

为了随后访问加密的(即,“秘密”)数据或执行受限操作,密钥对是使用与原始密钥对生成相同的位置信息(以及任何附加的可适用因子)来再生的。然后,再生的密钥可以被用于解密和访问受限的数据或操作。该密钥对生成/再生过程有效地在可信执行环境周围放置地理围栏,因为仅当计算设备位于可以使用来自例如可信的全球导航卫星系统(GNSS)的信号进行密码验证的某个有界限的地理位置内时,秘密数据才可以被访问。密钥对生成/再生本身可以证明环境因子在一些情况下被满足。在密钥对被存储在计算设备处的实施例中,计算设备将环境因子已被验证的声明传递给可信执行环境。计算设备可以备选地向存储数据或执行操作的远程服务器提出声明。

可信执行环境可以使用其他环境因子或因子组合以其他方式被约束。例如,对秘密数据或受限操作的访问可以在时间间隔到期(时间戳被密码验证)之后被拒绝,并且工业机器可以被启用以仅在特定温度范围内操作(使用来自可信传感器的温度数据)。

使用环境因子作为安全性机制增强了对访问私有数据并执行操作的保护,同时为用户提供了对访问能力的控制。由于环境因子可以通过密码手段从可信源导出,因此不良行为者可以被防止欺骗环境因子,如位置。对文档、媒体和其他数据的访问控制可以使用环境因子而被个性化和可定制。例如,当公司内的某些个人在他们各自的家中和/或一天中的特定时间时,他们可以被提供对文档的访问。此外,一个校园中的个人可以被提供对某些数据或操作的访问,并且另一校园中的个人可以被提供对其他数据或操作的访问。因此,在认证过程中利用环境因子来同意或拒绝对数据或设备操作的访问可以提高安全性,并为设备用户或公司提供增强的控制。

该发明内容被提供来以简化的形式介绍对于下面在详细描述中进一步被描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于辅助确定所要求保护的主题的范围。此外,所要求保护的主题并不被限于解决在本公开的任何部分中提到的任何或所有缺点的实现。要了解的是,上述主题可以被实现为计算机控制装置、计算机过程、计算系统或者诸如一个或多个计算机可读存储介质等制品。通过阅读以下详细说明和回顾关联附图,这些和各种其他特征将是明显的。

附图说明

图1示出了公钥/私钥对使用各种因子而被生成的说明图;

图2示出了计算设备的说明性架构;

图3示出了可以被用于生成公钥/私钥对的设备特定因子的说明性分类法;

图4示出了可以被用于生成公钥/私钥对的认证特定因子的说明性分类法;

图5示出了可以被用于生成公钥/私钥对的环境因子的说明性分类法;

图6A示出了哈希算法被用于密钥对生成的说明性环境;

图6B示出了在提供访问以使用所存储的私钥之前环境因子被验证的说明性环境;

图7示出了可以被执行以允许或拒绝对数据或服务的访问的说明性方法的流程图;

图8示出了计算设备在生成公钥/私钥对时利用预设的环境因子的说明性环境;

图9示出了图形用户界面使用户能够选择环境因子以用于公钥/私钥对生成的说明性环境;

图10示出了用户基于环境因子被提供不同的访问能力的说明性环境;

图11示出了环境因子集合的说明图;

图12至图14示出了由给定的计算设备、服务器等执行的说明性方法的流程图;

图15是可以部分地被用于基于环境因子来实现当前的可信执行的说明性计算系统或IoT设备的简化框图;以及

图16是可以部分地被用于基于环境因子来实现当前的可信执行的说明性计算机系统的简化框图。

相同的附图标记指示附图中的相同元件。除非另有指示,否则元件未按比例绘制。

具体实施方式

图1示出了计算设备105使用各种因子110生成公钥/私钥对145的环境100,如通过数字130说明性地示出的。可以有计算设备用于生成密钥对的各种因子,包括设备特定因子115、认证特定因子120和环境因子125。密钥对的动态和按需生成可以提高来自未授权用户的秘密数据或受限操作的安全性。例如,基于环境因子的初始生成的密钥对可以被用于加密数据或授权令牌,并且再生的密钥对可以被用于解密数据或授权令牌。再生的密钥对可以基于与初始密钥对相同的环境因子来创建,从而导致生成用于成功解密的相同密钥对。生成并再生私钥对还使计算设备能够不存储公钥/私钥对、过程中的任何中间密钥或基于不同环境因子和参数的任何变型密钥,从而防止不良行为者潜在地获得该私钥部分。

使用环境因子生成公钥/私钥对145可以具有用途的分类法,如通过数字150说明性地示出的。例如,所生成的密钥对可以被用于在测量的或安全引导160中加密或解密数据(本地或在远程设备处)155以用于数据中心安全性(例如验证服务器在所指派的地理围栏内)165,用于选择性地访问数据或操作以及个性化的内容发布(内容、语言、广告等可以基于例如位置来定制)170,用于用户认证和授权175以执行操作(例如运行应用,运行虚拟机,访问数据)180,并用于选择性的机器配置(例如设备基于环境因子以不同的速度操作,或者调整被进行以与关联于当前位置的规定一致,诸如射频)185。

图2示出了计算设备105的说明性通用架构200。该架构被分层布置,并且包括硬件层215、操作系统(OS)层210和应用层205。硬件层215提供了由计算设备105使用的各种硬件到其上方各层的抽象。在该说明性示例中,硬件层支持一个或多个处理器220、存储器225、可信平台模块(TPM)230、用于收集数据的各种传感器235、以及诸如全球定位系统(GPS)240等位置组件。

TPM可以在计算设备内提供可信的执行环境245,以启用安全处理以及例如使用其中存储或生成的唯一密钥对的计算设备的认证。可信执行环境可以启用对应用和OS层功能的安全处理。例如,各种硬件组件可以被分区,使得硬件的一些部分仅专用于公共操作,而硬件的一些部分仅专用于可信操作。组件和系统的这种分区提供了由可信执行环境提供的安全隔离。

GPS 240可以定期地或周期性地操作以验证计算设备的位置。取决于特定计算设备及其应用,一个或多个传感器235的不同集合可以与计算设备一起实现,诸如温度传感器、压力传感器、气压计、接近传感器等。GPS和传感器可以被用于导出环境因子的数据,如针对图1讨论的。

在该说明性示例中,应用层205支持各种应用265。任何数量的应用可以由计算设备105利用,无论是专有应用还是第三方应用。应用可以使用本地执行的代码来实现。然而,在一些情况下,应用可以依赖于由远程服务器或其他计算平台提供的服务和/或远程代码执行。

OS层210在其他操作中支持管理操作系统250和操作应用255。OS层可以与应用层和硬件层互操作,以支持程序的执行并执行各种功能和特征。

计算设备105可以被配置有可信外部源270的可扩展性,该外部源可以例如利用密码术来保障所传输的内容。外部源可以被用于提供用于生成公钥/私钥对的各种环境因子的数据。如在图2中说明性地示出的,可信环境源可以包括在一个或多个服务器上操作的时钟以及全球导航卫星系统(GNSS)。GNSS可以在与计算设备进行通信时使用密码签名(其证实计算设备的检测位置),从而防止欺骗和其他攻击。卫星和计算设备之间的通信的定时测量值也可以被用于验证正确的位置被获得。附加地,时间可以是环境因子,其中当前时间可以在某个预设时间段或时间范围内。当前时间可以来自多个外部源以进行验证。例如,来自不同的第一方或第三方服务器的多个时间源可以被共同用于验证当前时间在某个预定阈值差内(例如在10秒、一分钟等内)。GNSS在将可信的位置数据和时间数据传输给计算设备时可以用于双重目的。此外,计算设备可以被配置有中央处理单元(CPU)的安全部分,诸如使用来自

图3至图5示出了各种非详尽因子,其可以被单独使用或以各种组合使用以生成公钥/私钥对。图3示出了设备特定因子115的说明性分类法,可以包括设备标识(ID)信息310、BIOS(基本输入/输出系统)315、开机时的引导序列320以及存储器状态(例如二进制代码)325。这些因子中的一个或多个可以被用于生成并重生公钥/私钥对。

图4示出了可以被用于生成公钥/私钥对的认证特定因子120的说明性分类法。认证特定因子可以是认证计算设备的用户的功能。认证特定因子可以包括用户名和密码410、个人标识号(PIN)415、字母数字代码420、生物特征(例如虹膜、指纹、面部识别、语音识别)425、用户的安全性许可级别430、用户组织结构或命令链435以及报告管理器440。

图5示出了可以被用于生成公钥/私钥对的环境因子125的说明性分类法。一个或多个环境因子可以被用于认证计算设备,并且可以或可以不与一个或多个设备特定因子115或认证特定因子120组合。环境因子可以包括位置(例如使用预定的地理围栏)510、时间(例如当前时间在预定参数内)515、温度520、气压525、物理压力530、加速度535和湿度545。尽管环境因子的特定数据值可以被利用,但每个环境因子的范围也可以被用于在某个可接受的阈值差内容纳差异。环境因子可以被单独使用或以各种组合使用,以满足特定实现或使用场景的需求。例如,当计算设备在交通工具中移动时,加速度环境因子可以被认为限制了操作。温度和位置环境因子可以被组合使用,以仅在计算设备位于室内时才提供对计算设备的选择性数据访问。在一些实现中,位置环境因子可以被认为使数据不可读或被认为提供对不同数据集的访问。

图6A示出了环境因子125在哈希算法中被用于生成公钥/私钥对145的说明性环境,如通过数字605说明性地示出的。在哈希算法中利用的示例性环境因子包括位置坐标610和其他因子615。哈希算法可以利用环境因子的数据来生成公钥/私钥对。数据的测量值可以被截断或舍入,如通过数字620说明性地示出的。例如,温度可以被向上舍入为10的最近的面值(denomination)(例如30°、40°等),并且纬度/经度坐标可以被舍入为某个公分母。在其他实现中,数字可以被向下舍入为最接近的面值。使用舍入或截断方案可以调和环境因子的微小测量差异。例如,如果所生成的初始公钥/私钥对的纬度为40.6798,那么该数字可以被截断为40.67。随后的纬度位置40.6755可以被截断为40.67。当用户在可接受的地理围栏内时,使用各种舍入或截断机制实现了一致的密钥对生成,使得地理围栏内的每个位置在生成公钥/私钥对时都可以利用相同的位置值。

在其他实施例中,典型的地理围栏或图块化技术可以与哈希算法一起使用以生成公钥/私钥对145。例如,在一些实施例中,地理围栏可以与组织特定位置相关联。将地理围栏用于这些组织区域或其他已知区域可以被用于密钥对生成过程。

图6B示出了用于认证计算设备105的替代机制被利用的说明性环境。在该实现中,如通过数字655和660说明性地示出的,环境因子的数据被验证,并且所存储的公钥/私钥在认证过程期间被利用。位置坐标665和其他因子670被验证为处于预设范围675内。例如,位置坐标可以被验证为在地理围栏内,并且所感测的温度可以被验证为在范围内。在验证了环境因子在预设参数内时,计算设备可以向可信执行环境或远程服务器提出声明以使用所存储的公钥/私钥对145。在这种场景中,公钥/私钥对未被生成而是被存储,并且对密钥对的访问取决于满足与环境因子相关联的预设参数。

图7示出了用于允许或拒绝访问秘密数据或受限操作的方法的说明性流程图。在步骤705中,环境因子被用于生成公钥/私钥对。环境因子可以由用户选择或可以被预设。例如,图8示出了位置和时间被预设的说明性环境,如通过数字805说明性地示出的。在该示例中,地理围栏815是围绕包括家庭、工作和校园的各种目的地建立的。在替代实现中,地理围栏可以在生成公钥/私钥对时基于用户的当前位置来预设。如通过数字820和825所图示的,一天中的时间以及到期日期和时间也是预设的。在其他实现中,一个或多个环境因子可以针对用户被预设,但是用户被使得能够针对给定的环境因子选择参数(例如边界、范围等),诸如设置地理围栏或时间范围。

图9示出了图形用户界面905是在用户的计算设备105上提供的以供用户设置各种环境因子的说明性环境。用户可以为预设的环境因子设置参数,或者用户可以被赋予对采用哪种环境因子的控制。在该示例中,位置、时间和温度的参数被暴露于用户以进行定制。虽然下拉菜单910被描绘,但其他输入机制也是可用的,诸如文本框、使用麦克风的语音输入等。用户可以添加图5所列出的附加环境因子,如通过数字915说明性地表示的。

参照回图7中描绘的流程图,在步骤710中,计算设备使用预设或所选的环境因子来生成公钥/私钥对。例如,位置坐标或时间(例如到期日期和时间或时间段)可以在哈希算法中被用于生成公钥/私钥对。位置坐标可以使用跨越地理围栏的面值,使得该地理围栏内的每个位置都可以生成相同的公钥/私钥对。所设置的到期日期和时间可以被用作环境因子,其中当前日期和时间被验证为在所设置的到期日期和时间在密钥生成过程中被使用之前。如果所设置的时间段被用作环境因子,那么在验证当前时间在该时间段内时,该时间的值(例如所设置的时间段的最早或最晚时间)可以在密钥生成过程中被使用。其他截断和舍入方法可以被用于每种利用的环境因子(例如向上或向下舍入到一个面值)。

在步骤715中,所生成的公钥可以被用于限制访问或操作。例如,数据或认证令牌可以使用公钥来加密,其可以使用所生成的私钥来解密。限制对数据的访问可以被用于保护私有或机密信息,诸如医疗记录、专有秘密等。使用所生成的密钥对限制操作可以限制对在远程服务器上操作或执行应用的虚拟机的利用。

在步骤720中,响应于触发事件,计算设备使用实时环境因子(即,在再生时当前适用于计算设备的那些因子)来再生公钥/私钥对。示例性触发事件可以包括用户请求,设备启动,时间段到期,在执行一个或多个操作之后或在一个或多个环境因子发生阈值改变时(例如当计算设备进入或离开地理围栏时,当温度升高或降低到阈值程度以上时等)尝试执行至少一个受限的操作功能(例如访问数据,运行应用或运行虚拟机)。环境因子的数据可以从可信源(例如外部服务器、GNSS等)或本地执行的传感器(如温度计、压力传感器等)获得。

使用再生的公钥/私钥对,对计算设备的访问是在步骤725中被同意或拒绝的。一个或多个密钥(例如两个、三个、四个等)可以取决于实现来生成和使用,诸如密钥被生成的次数、所使用的环境因子的数量以及因子被包括在给定实现中的方式。一个或多个再生的私钥可以被用于解密使用先前或初始生成的公钥加密的授权令牌或数据(步骤710)。步骤720和725可以在计算设备尝试访问数据或者设备或远程服务器提供的操作的每个实例中被执行。

图10示出了用户基于环境因子和当前环境条件被提供不同的访问权限的说明性环境,如通过数字1005说明性地表示的。计算设备及其用户可以基于例如他在家里、校园1或校园2中的位置被提供某些访问权限。例如,Doc 3可以在每个位置访问,Doc 4可以在校园2中访问,并且Doc 2可以在校园1中访问。媒体1(例如视频、录音等)可以在两个校园中访问,但无法在家里访问。在另一示例性实现中,对设备操作的控制可以被调节,诸如禁止对发电厂的控制,除非计算设备在该发电厂的地理围栏内。在另一示例性实现中,地理围栏被应用于数据中心中的硬盘,使得当硬盘位于地理围栏之外的那个数据中心外时,数据无法被读取。

图11示出了环境因子集合1105可以被用于访问给定文件夹,使用虚拟机或执行操作的说明图。可能有多个环境因子集合,每个集合都具有特定的参数,这些参数在被满足时能够访问数据或执行操作。

尽管某些访问和操作性能特征在图10和图11中被示出,但是一个或多个环境因子集合可以被用于图1所示的任何用途。例如,用户可能能够基于他的验证位置访问某些内容,使得语言、广告材料等针对用户被适当地定制。某些文档可以使用时间作为环境因子来调节,使得某些文档可以基于一天中的时间、时间段或文档可以被查看的到期日期来查看。例如,一个文档可以在上午9:00到下午12:00之间访问,而另一文档可以在下午1:00到下午3:00访问。

图12至图14示出了可以由计算设备实现的说明性方法的流程图。除非特别规定,否则流程图中示出的以及所附文本中描述的方法或步骤不被限于特定的顺序或序列。另外,取决于这种实现的要求,一些方法或其步骤可以同时发生或被同时执行,并且并非所有方法或步骤都必须在给定的实现中被执行,并且一些方法或步骤可以可选地被利用。

图12是由计算设备执行的说明性方法1200的流程图。在步骤1205中,计算设备使用与包括位置或时间中的至少一个的一个或多个环境因子相关联的数据来初始生成第一公钥/私钥对。在步骤1210中,计算设备在加密过程中使用所生成的第一公钥/私钥对以限制对信息的访问。在步骤1215中,计算设备随后使用被用于生成第一公钥/私钥对的环境因子来生成第二公钥/私钥对。在步骤1220中,计算设备在解密过程中使用第二公钥/私钥对来访问信息。

图13是由诸如服务器等计算设备执行的说明性方法1300的流程图。在步骤1305中,地理围栏是围绕地理区域设置的。在步骤1310中,服务器通过使用初始公钥/私钥对对认证令牌进行加密来限制对操作功能的访问。在步骤1315中,当服务器尝试执行至少一个操作功能时,服务器使用服务器的当前位置来生成新的公钥/私钥对。在步骤1320中,取决于新的公钥/私钥对是成功还是未成功解密了所加密的认证令牌,服务器使得能够执行操作功能或拒绝执行操作功能。

图14是由计算设备执行的说明性方法1400的流程图。在步骤1405中,计算设备将环境因子集合与利用一个或多个密钥锁定的计算设备操作相关联。每个设备操作可以与一个或多个环境因子集合相关联。在步骤1410中,当尝试执行计算设备操作时,计算设备取回环境因子的实时数据。在步骤1415中,通过访问一个或多个密钥解锁计算设备操作,操作的执行在所取回的实时数据与允许的参数一致时被同意。在步骤1420中,计算设备在被同意时执行操作。

图15示出了用于基于环境因子的当前可信执行的诸如膝上型计算机或个人计算机等计算设备的说明性架构1500。图15中图示的架构1500包括一个或多个处理器1502(例如中央处理单元、专用人工智能芯片、图形处理单元等)、系统存储器1504(包括RAM(随机存取存储器)1506和ROM(只读存储器)1508)以及可操作地并在功能上耦合架构1500中的组件的系统总线1510。包含基本例程的基本输入/输出系统通常被存储在ROM 1508中,该基本例程有助于诸如在开机期间在架构1500内的元件之间传送信息。架构1500还包括用于存储被用于实现应用、文件系统和操作系统的软件代码或其他计算机执行代码的海量存储设备1512。海量存储设备1512通过连接至总线1510的海量存储控制器(未示出)被连接至处理器1502。海量存储设备1512及其关联的计算机可读存储介质为架构1500提供非易失性存储装置。尽管本文包含的计算机可读介质的描述是指海量存储设备,诸如硬盘或CD-ROM驱动器,但本领域技术人员可以了解的是,计算机可读存储介质可以是可以由架构1500访问的任何可用的存储介质。

通过示例而非限制,计算机可读存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。例如,计算机可读介质包括但不限于RAM、ROM、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、闪存或其他固态存储器技术、CD-ROM、DVD、HD-DVD(高清晰度DVD)、蓝光或其他光学存储装置、磁带盒、磁带、磁带存储装置或其他磁性存储设备或者可以被用于存储期望信息并且可以由架构1500访问的任何其他介质。

根据各种实施例,架构1500可以使用通过网络到远程计算机的逻辑连接在联网环境中操作。架构1500可以通过连接到总线1510的网络接口单元1516连接至网络。可以了解的是,网络接口单元1516也可以被用于连接至其他类型的网络和远程计算机系统。架构1500还可以包括输入/输出控制器1518,以接收和处理来自许多其他设备的输入,包括键盘、鼠标、触摸板、触摸屏、诸如按钮和开关或电子手写笔等控制设备(图15中未示出)。类似地,输入/输出控制器1518可以将输出提供给显示屏、用户界面、打印机或其他类型的输出设备(在图15中也未示出)。

可以了解的是,本文描述的软件组件在被加载到处理器1502中并被执行时可以将处理器1502和整个架构1500从通用计算系统变换为定制为支持本文提出的功能性的专用计算系统。处理器1502可以由任何数量的晶体管或其他分立电路元件构成,其可以单独或共同地假设任何数量的状态。更具体地,响应于本文公开的软件模块内所包含的可执行指令,处理器1502可以作为有限状态机来操作。这些计算机可执行指令可以通过指定处理器1502如何在状态之间进行过渡来变换处理器1502,从而变换构成处理器1502的晶体管或其他离散硬件元件。

对本文提出的软件模块进行编码也可以变换本文提出的计算机可读存储介质的物理结构。在本描述的不同实现中,物理结构的特定变换可以取决于各种因子。这种因子的示例可以包括但不限于用于实现计算机可读存储介质的技术,无论计算机可读存储介质的特征是主要存储装置还是辅助存储装置等。例如,如果计算机可读存储介质被实现为基于半导体的存储器,则本文公开的软件可以通过变换半导体存储器的物理状态来被编码在计算机可读存储介质上。例如,该软件可以变换构成半导体存储器的晶体管、电容器或其他离散电路元件的状态。该软件还可以变换这种组件的物理状态,以便在其上存储数据。

作为另一示例,本文公开的计算机可读存储介质可以使用磁性或光学技术来实现。在这种实现中,当软件被编码在其中时,本文提出的软件可以变换磁性或光学介质的物理状态。这些变换可以包括更改给定磁性介质内的特定位置的磁性特性。这些变换还可以包括更改给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。在不脱离本描述的范围和精神的情况下,物理介质的其他变换是可能的,前述示例被提供仅是为了支持该讨论。

架构1500还可以包括一个或多个传感器1514或电池或电源1520。传感器可以被耦合至架构以拾取关于环境或组件的数据,包括温度、压力等。示例性传感器可以包括温度计、加速度计、烟雾或气体传感器、压力传感器(气压或物理传感器)、光传感器、超声波传感器、陀螺仪等。电源可以与AC电源线或电池(诸如可充电电池)适配,以实现便携性。

鉴于上述内容,可以了解的是,在架构1500中发生了许多类型的物理变换,以便存储和执行本文提出的软件组件。还可以了解的是,架构1500可以包括其他类型的计算设备,包括可穿戴设备、手持式计算机、嵌入式计算机系统、智能电话、PDA以及本领域技术人员已知的其他类型的计算设备。还设想了架构1500可以不包括图15所示的所有组件,可以包括未在图15中明确示出的其他组件,或者可以利用与图15所示的架构完全不同的架构。

图16是基于环境因子的当前可信执行可以被实现的诸如PC、客户端机器或服务器等说明性计算机系统1600的简化框图。计算机系统1600包括处理器1605、系统存储器1611和将包括系统存储器1611的各种系统组件耦合至处理器1605的系统总线1614。系统总线1614可以是包括存储器总线或存储器控制器、外围总线或使用各种总线架构中的任何一种的本地总线的多种类型的总线结构中的任何一种。系统存储器1611包括只读存储器(ROM)1617和随机存取存储器(RAM)1621。包含有助于诸如在开机期间在计算机系统1600内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)1625被存储在ROM 1617中。计算机系统1600还可以包括:硬盘驱动器1628,用于读取和写入内部设置的硬盘(未示出);磁盘驱动器1630,用于读取或写入可移除磁盘1633(例如软盘);以及光盘驱动器1638,用于读取或写入可移除光盘1643,诸如CD(压缩盘)、DVD(数字通用盘)或其他光学介质。硬盘驱动器1628、磁盘驱动器1630和光盘驱动器1638分别通过硬盘驱动器接口1646、磁盘驱动器接口1649和光盘驱动器接口1652被连接至系统总线1614。驱动器及其关联的计算机可读存储介质为计算机系统1600提供了计算机可读指令、数据结构、程序模块和其他数据的非易失性存储装置。尽管该说明性示例包括硬盘、可移除磁盘1633和可移除光盘1643,但是可以存储计算机可访问的数据的其他类型的计算机可读存储介质(诸如磁带盒、闪存卡、数字视频盘、数据盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等)也可以在基于环境因子的本可信执行的一些应用中被使用。另外,如本文所使用的,术语计算机可读存储介质包括一种或多种介质类型的实例(例如一个或多个磁盘、一个或多个CD等)。为了本说明书和权利要求的目的,短语“计算机可读存储介质”及其变型旨在覆盖非瞬态实施例,并且不包括波、信号和/或其他瞬态和/或无形通信介质。

许多程序模块可以被存储在硬盘、磁盘1633、光盘1643、ROM1617或RAM 1621上,包括操作系统1655、一个或多个应用程序1657、其他程序模块1660和程序数据1663。用户可以通过诸如键盘1666等输入设备和诸如鼠标等指向设备1668将命令和信息键入到计算机系统1600中。其他输入设备(未示出)可以包括麦克风、控制杆、游戏板、卫星碟、扫描仪、轨迹球、触摸板、触摸屏、触敏型设备、语音命令模块或设备、用户运动或用户手势捕获设备等。这些和其他输入设备通常通过被耦合至系统总线1614的串行端口接口1671被连接至处理器1605,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)等其他接口被连接。监测器1673或其他类型的显示设备也经由诸如视频适配器1675等接口被连接至系统总线1614。除了监测器1673之外,个人计算机通常包括其他外围输出设备(未示出),诸如扬声器和打印机。图16所示的说明性示例还包括主机适配器1678、小型计算机系统接口(SCSI)总线1683和连接至SCSI总线1683的外部存储设备1676。

计算机系统1600可以使用到一个或多个远程计算机(诸如远程计算机1688)的逻辑连接在联网环境中操作。远程计算机1688可以被选择为另一个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括上面相对于计算机系统1600描述的许多或所有元件,尽管仅单个代表性远程存储器存储器/存储设备1690在图16中被示出。图16所描绘的逻辑连接包括局域网(LAN)1693和广域网(WAN)1695。这种联网环境通常被部署在例如办公室、企业范围的计算机网络、内联网和互联网中。

当在LAN联网环境中使用时,计算机系统1600通过网络接口或适配器1693被连接至局域网1693。当在WAN联网环境中使用时,计算机系统1600通常包括宽带调制解调器1698、网络网关或用于通过诸如互联网等广域网1695建立通信的其他部件。可以在内部或外部的宽带调制解调器1698经由串行端口接口1671被连接到系统总线1614。在联网环境中,与计算机系统1600相关的程序模块或其部分可以被存储在远程存储器存储设备1690中。要注意的是,图16所示的网络连接是说明性的,并且在计算机之间建立通信链路的其他部件可以取决于基于环境因子的当前可信执行的应用的特定要求来使用。

用于构建能够在不同网络介质类型之间进行智能故障转移的预测模型的机器学习的本申请的各种示例性实施例现在通过说明的方式而不是作为所有实施例的详尽列表来呈现。示例包括一种由计算设备执行以动态地生成用于增强计算设备安全性的公钥/私钥对的方法,包括:使用与一个或多个环境因子相关联的数据来初始生成第一公钥/私钥对,其中环境因子至少包括位置或时间中的一个;在加密过程中使用所生成的第一公钥/私钥对以限制对信息的访问;在尝试访问信息时,取回与一个或多个环境因子相关联的、被用于生成第一公钥/私钥对的当前数据,该取回是被实时地与该尝试同时执行的;随后使用所取回的当前数据来生成第二公钥/私钥对;以及在解密过程中至少使用第二公钥/私钥对来访问信息。

在另一示例中,位置基于地理围栏,并且地理围栏内的每个位置将相同的位置数据用于公钥/私钥对生成。作为另一示例,该方法还包括设置地理围栏,并且其中地理围栏响应于来自用户的输入而被设置,或者根据基于第一公钥/私钥对的初始生成的某个预设参数而被设置。在另一示例中,计算设备按需、在计算设备的启动时、或者在针对环境因子中的至少一个环境因子的阈值改变时生成公钥/私钥对。在另一示例中,按需生成响应于来自用户的、访问信息的请求。在另一示例中,针对环境因子的至少一些数据从计算设备外部的一个或多个可信源被接收。在另一示例中,环境因子还包括以下一项或多项:温度、气压、加速度、湿度或者物理压力。作为另一示例,第一公钥/私钥对和第二公钥/私钥对的生成附加地基于包括计算设备的配置的计算设备特定因子。在另一示例中,计算设备的配置包括以下任何一项或多项:设备ID、存储器状态、BIOS(基本输入/输出系统)或者开机时的引导序列。作为另一示例,第一公钥/私钥对和第二公钥/私钥对的生成附加地基于被用于认证计算设备的用户的认证因子,其中认证因子包括以下任何一项或多项:用户名和密码、PIN(个人标识号)、字母数字代码、安全性许可级别、组织结构或命令链、或者包括对指纹、虹膜、面部或语音之一的识别的生物特征验证。

又一示例包括一种服务器,包括:一个或多个处理器;以及一个或多个基于硬件的存储器设备,其存储计算机可读指令,该计算机可读指令在由一个或多个处理器执行时使服务器:在地理区域周围设置地理围栏;保障与服务器相关联的操作功能,其中对操作功能的访问是通过使用初始公钥/私钥对加密认证令牌而被限制的,该初始公钥/私钥对是使用与所设置的地理围栏相关联的位置数据而被生成的;当一个或多个触发事件发生时,使用服务器的当前位置来生成新的公钥/私钥对;当新的公钥/私钥对成功解密所加密的认证令牌时,启用至少一个操作功能的执行;以及当新的公钥/私钥对未成功解密所加密的认证令牌时,拒绝至少一个操作功能的执行。

在另一示例中,操作功能包括访问数据、运行应用、或者运行虚拟机。作为另一示例,触发新的公钥/私钥对的生成的一个或多个事件包括:服务器在时间段到期或者在一个或多个操作的执行时尝试执行至少一个受限的操作功能。在另一示例中,新的公钥/私钥对:当服务器的当前位置在地理围栏内时,成功解密认证令牌;以及当服务器的当前位置在地理围栏外时,未成功解密认证令牌。作为另一示例,当前位置是从全球导航卫星系统(GNSS)被接收的。

又一示例包括一种或多种基于硬件的非瞬态计算机可读存储器设备,其存储指令,该指令在由设置在计算设备中的一个或多个处理器执行时使计算设备:将环境因子集合与利用一个或多个密钥锁定的相应计算设备操作相关联,每个计算设备操作与一个或多个环境因子集合相关联,每个环境因子与允许参数相关联,以及其中与每个集合相关联的环境因子的允许参数被用作同意或拒绝执行相应计算设备操作的基础;当尝试执行计算设备操作时,取回与所尝试的计算设备操作相关联的一个或多个集合中所包括的环境因子的实时数据;当所取回的实时数据与每个环境因子的允许参数一致时,通过能够访问一个或多个密钥以解锁计算设备操作来同意执行;以及当被同意时,执行计算设备操作。

在另一示例中,环境因子的实时数据的改变启用了对设备操作的不同访问权限。在另一示例中,所启用的对一个或多个密钥的访问包括访问存储在计算设备的可信执行环境内的公钥/私钥对或者能够生成新的公钥/私钥对。作为另一示例,环境因子的允许参数包括执行操作的时间段或者到期日期和时间。在另一示例中,环境因子的允许参数包括预定地理围栏,并且所取回的实时数据是来自全球导航卫星系统(GNSS)的位置数据,该全球导航卫星系统在将消息传输给计算设备时利用密码术。

尽管主题已经用特定于结构特征和/或方法动作的语言被描述,但是要理解的是,在所附权利要求中限定的主题并不一定被限于上述特定特征或动作。相反,上述特定特征和动作被公开为实现权利要求的示例形式。

相关技术
  • 基于环境因子的可信执行
  • 基于可信平台模块实现软件可信执行的方法
技术分类

06120113106499