具体实施方式
现在将在下文中参照附图对本发明进行更充分的描述,在附图中,显示了本发明的优选实施例。然而,可以以许多不同的形式来实现本发明,不应该将本发明理解为仅限于本文所阐述的实施例。确切地,提供这些实施例是为了使本公开内容详尽和完整以及将本发明的范围充分地传达给本领域技术人员。相似的编号始终表示相同的元件。
现在参照图1,首先对根据本发明的一个或多个方面的具有提高安全性的特征的计算机10进行描述。示例性地显示计算机10为膝上型计算机,但是本发明也可应用于其它计算机(比如,台式计算机)。此外,本发明的特征可应用于可从生物特征访问控制受益的其它电子装置,诸如无线通信装置、个人数字助理(PDA)装置或任何其它电子装置。
计算机10包括连接至基座12或壳体的显示器11。在例如基座12的顶侧上可包括键盘13和生物特征安全传感器14。当然,可将生物特征安全传感器14安装在计算机10上的其它合适的位置处。生物特征安全传感器14可以是手指传感器。
A.第一实施例
现在另外参照图2,将对安全电子装置100(例如图1的计算机10)的第一实施例的进一步的细节进行描述。计算机10示例性地包括主机平台102,如本领域技术人员所认识到的,主机平台102具有处理器104和其它相关外围设备106,例如,存储器、盘驱动器等。例如,合适的存储器可具有存储于其中的基本输入/输出系统(BIOS)指令,并且/或者磁盘(比如,硬盘)可具有存储于其中的操作系统(OS)指令。操作系统可以是例如Windows,但是本发明也可用于其它操作系统。
手指感测设备110包括集成电路(IC)基片112、(IC)基片上的手指感测元件阵列114和IC基片上的图像水印电路116,图像水印电路116与手指感测元件阵列合作生成其中嵌入有图像水印的手指图像数据。手指图像数据可包括基于例如表面上或皮肤内的脊、谷、毛孔和/或毛细血管的数据。手指感测设备110示例性地还包括IC基片112上的匹配电路118,匹配电路118用于至少基于图像水印执行手指匹配。在Boshra的已公布的美国专利申请No.2005/0129291中更深入地公开了手指匹配,该专利申请已转让给本发明的受让人。
手指感测元件阵列114可包括手指感测像素阵列。图像水印电路116可使来自手指感测像素阵列114的值扭曲(distort),以生成其中嵌入有图像水印的手指图像数据。更具体地讲,水印电路116可使来自手指感测像素阵列114的位置值扭曲。
图像水印电路116示例性地还包括用于生成图像水印密钥的图像水印密钥生成电路120,该图像水印密钥用于生成其中嵌入有图像水印的手指图像数据。例如,图像水印电路120还可包括用于将图像水印密钥存储在其中的密钥缓存122。而且,在一些有利的变型中,密钥缓存122不从IC基片颁发图像水印密钥。密钥生成电路120还包括随机数生成器(RNG)124和相关的散列引擎126,散列引擎126与RNG 124合作生成图像水印密钥。因此,进一步提高了安全性。
根据另一优点,手指感测设备110还可包括IC基片112上的证书颁发电路128,证书颁发电路128与匹配电路118合作,以基于手指匹配颁发至少一个用户证书。从而,这可使得另一个装置(例如主机平台102)执行至少一个受保护的操作。图像水印电路116可在例如匹配期间而不在注册期间生成其中嵌入有图像水印的手指图像数据。
感测设备110示例性地还包括IC基片112外部的执行至少一种预匹配功能的主机平台102。所述至少一种预匹配功能可包括生成例如供匹配电路118使用的至少一个匹配分数(score)。设备110还可包括承载IC基片112和主机平台102的共用壳体130。换句话讲,手指感测设备110可以是电子装置(例如膝上型计算机、PDA、蜂窝电话等)的形式。例如,共用壳体130可以是膝上型计算机的硬外罩,或者它可以是与膝上型计算机连接的分离的壳(pod)。
与本第一实施例相关的方法方面是用于手指感测。该方法可包括以下步骤:使用IC基片112上的与也在IC基片上的手指感测元件阵列114合作的图像水印电路116来生成其中嵌入有图像水印的手指图像数据;和使用IC基片上的匹配电路118至少基于图像水印来执行手指匹配。
可使用水印验证技术(比如,参见C.Rey and J.Dugelay,ASurvey of Watermarking Algorithms for Image Authentication,EURASIP Journal on Applied Signal Processing,pp.613-621,2002)通过与至少一个匹配分数的相关性来对水印进行验证。
B.第二实施例
现在另外参照图3,将对安全电子装置200(例如图1的计算机10)的另一个实施例的进一步的细节进行描述。装置200示例性地包括具有处理器204和其它相关外围设备206的主机平台202。
手指感测设备210包括集成电路(IC)基片212、IC基片上的手指感测元件阵列214、IC基片上的匹配电路218和IC基片外部的主机平台202,主机平台202与手指感测元件阵列合作生成其中嵌入有模板水印的手指模板数据。另外,主机平台202还可基于其中嵌入有模板水印的手指模板数据来生成匹配分数以供匹配电路212使用。因此,手指感测设备的安全性得以提高,可提供成本相对低的传感器210与主机平台202一起使用,例如与膝上型计算机、PDA、蜂窝电话等中的处理器和相关电路一起使用。
主机平台202可以生成作为表示区别手指特征的数值的手指模板数据。因此,主机平台202可使数值扭曲以生成其中嵌入有模板水印的手指模板数据。主机平台可生成作为手指脊流数据的模板数据,并使手指脊流数据扭曲以生成其中嵌入有模板水印的手指模板数据。
手指感测设备210还可包括IC基片212上的具有密钥生成电路220的水印电路216,密钥生成电路220用于生成供主机平台202用来生成其中嵌入有模板水印的手指模板数据的模板水印密钥。手指感测设备210还可包括IC基片212上的模板密钥缓存222,模板密钥缓存222用于将模板水印密钥存储在其中。模板密钥生成电路222还可包括随机数生成器(RNG)224和与其合作生成模板水印密钥的相关散列引擎226。
手指感测设备210还可包括IC基片212上的证书颁发电路228,证书颁发电路228与匹配电路218合作,以基于手指匹配颁发至少一个用户证书,从而使得主机平台202执行至少一个受保护的操作。另外,主机平台202可在例如注册期间而不在匹配期间生成其中嵌入有模板水印的手指模板数据。当然,在几种有利的变型中,共用壳体230可承载IC基片212和主机平台202,也就是说,手指感测设备210可包括在电子装置(例如,膝上型计算机、PDA、蜂窝电话等)中,或者手指感测设备210可以是电子装置的形式。
本第二实施例的相关方法用于手指感测。所述方法可包括以下步骤:生成其中嵌入有模板水印的手指模板数据;以及使用集成电路(IC)基片212外部的与IC基片上的手指感测元件阵列214合作的主机平台202,基于其中嵌入有模板水印的手指模板数据来生成匹配分数。所述方法还可包括使用IC基片212上的匹配电路218上的匹配分数来执行匹配的步骤。
可使用水印验证技术(比如,C.Rey and J.Dugelay,A Surveyof Watermarking Algorithms for Image Authentication,EURASIPJournal on Applied Signal Processing,pp.613-621,2002)通过与至少一个匹配分数的相关性来对水印进行验证。
C.第三实施例
现在另外参照图4,将对安全电子装置300(例如图1的计算机10)的第三实施例的进一步的细节进行描述。装置300示例性地包括具有处理器304和其它相关外围设备306的主机平台302。
手指感测设备310示例性地包括集成电路(IC)基片312、IC基片上的手指感测元件阵列314和IC基片312上的加密电路316,加密电路316与手指感测元件阵列314合作对包括手指模板数据和至少一个用户证书的用户模板进行加密。例如,所述至少一个用户证书可使得另一个装置(例如主机平台302)能够执行至少一个受保护的操作,从而提高安全性。
加密电路316可基于模板加密密钥对用户模板进行加密。加密电路316还可基于有效载荷加密密钥对至少一个用户证书进行加密。密钥生成电路320可设在IC基片312上,用于生成模板加密密钥和有效载荷加密密钥。
密钥缓存322可设在IC基片312上,用于将模板加密密钥和有效载荷加密密钥存储在其中。密钥生成电路320示例性地还包括随机数生成器324和与其合作生成模板加密密钥和有效载荷加密密钥的相关散列引擎326。
手指感测设备310的加密电路316还包括IC基片312上的解密电路,该解密电路与密钥缓存322合作,以基于模板加密密钥和有效载荷加密密钥对用户模板进行解密。手指感测设备310还可包括IC基片312上的匹配电路318和IC基片312上的证书颁发电路328,匹配电路318用于至少基于用户模板执行手指匹配,证书颁发电路328与匹配电路318合作基于手指匹配颁发至少一个用户证书。
主机平台302在IC基片312外部,可执行至少一种预匹配功能。例如,所述至少一种预匹配功能可包括生成供匹配电路318使用的至少一个匹配分数。共用壳体330可承载IC基片312和主机平台302。
本第三实施例的方法方面也用于手指感测。所述方法可包括以下步骤:使用IC基片312上的与也在IC基片上的手指感测元件阵列314合作的加密电路316对包括手指模板数据和至少一个用户证书的用户模板进行加密。
D.第四实施例
现在另外参照图5,将对安全电子装置400(例如图1的计算机10)的第四实施例的进一步的细节进行描述。装置400示例性地包括具有处理器404和其它相关外围设备406的主机平台402。
所述装置可限定包括手指传感器410的手指感测设备,手指传感器410具有集成电路(IC)基片412、IC基片上的手指感测元件阵列414和IC基片上的用于执行最终手指匹配的匹配电路418。主机平台402可与手指感测元件阵列414合作执行至少一种手指预匹配功能。另外,手指传感器410和主机平台402在它们之间可执行至少一种安全功能408。因此,手指感测的安全性得以提高。
例如,所述至少一种安全功能408可包括至少一种加水印功能。所述至少一种加水印功能又可包括如在其它实施例中所述的手指图像数据加水印和手指模板数据加水印中的至少一种。另外或者可替换地,所述至少一种安全功能可包括也如在其它实施例中所述的至少一种加密/解密功能。例如,所述至少一种加密/解密功能可包括用户证书、用户模板、以及手指传感器和主机平台之间的通信的加密中的至少一个。
手指传感器410示例性地还包括IC基片412上的安全模决416,安全模块416包括密钥生成电路420,密钥生成电路420具有随机数生成器(RNG)424、与RNG合作生成至少一个安全密钥的散列引擎426、以及用于存储所述至少一个安全密钥的密钥缓存422。手指传感器410的密钥缓存422还可由IC基片上的非易失性存储器的至少一部分限定。
所述至少一种安全功能可包括至少一种定时功能。由主机平台402执行的所述至少一种预匹配功能可包括生成供手指传感器410的匹配电路418使用的至少一个匹配分数。共用壳体430可承载手指传感器410和主机平台402。
本第四实施例的方法方面也用于手指感测。所述方法可包括以下步骤:使用手指传感器410执行最终手指匹配,手指传感器410包括集成电路(IC)基片412上的匹配电路418和IC基片上的手指感测元件阵列414;使用与手指感测元件阵列合作的主机平台402执行至少一种手指预匹配功能;和在手指传感器和主机平台之间执行至少一种安全功能408。
E.第五实施例
现在另外参照图6,将对安全电子装置500(例如,图1的计算机10)的另一个实施例的进一步的细节进行描述。装置500示例性地包括具有处理器504和其它相关外围设备506的主机平台502。
装置500可限定包括手指传感器510的手指感测设备,手指传感器510包括集成电路(IC)基片512、IC基片上的手指感测元件阵列514和IC基片上的会话密钥协商电路530。主机平台502在手指传感器510的外部,与会话密钥协商电路530合作对用于在与手指传感器的各个通信会话期间与手指传感器的安全通信508的唯一会话密钥进行协商。因此,手指传感器510和主机平台502之间的通信的安全性得以提高。
会话密钥协商电路530可执行例如Diffie-Hellman密钥协商。另外,主机平台502可启动会话密钥协商。
例如,手指传感器510示例性地还包括通用串行总线(USB)通信电路532,USB通信电路532用于与主机平台502通信并使用唯一会话密钥。手指传感器510和主机平台502可在多个注册步骤期间使用特定的唯一会话密钥。此外,手指传感器510和主机平台可在特定的匹配步骤期间使用特定的唯一会话密钥。
手指传感器510还可包括IC基片512上的包括密钥生成电路520的安全模块516,密钥生成电路520具有随机数生成器(RNG)524、与RNG合作生成至少一个安全密钥的散列引擎526、以及用于存储所述至少一个安全密钥的密钥缓存522。
手指传感器510还可包括示出的IC基片512上的匹配电路518和IC基片上的证书颁发电路528,匹配电路518执行手指匹配,证书颁发电路528与匹配电路合作,以基于手指匹配颁发至少一个用户证书。
主机平台502可执行至少一种预匹配功能。例如,所述至少一种预匹配功能可包括生成供手指传感器510的匹配电路518使用的至少一个匹配分数。以电子装置(例如膝上型计算机、蜂窝电话或PDA)形式的设备还可包括承载手指传感器510和主机平台502的共用壳体530。
本第五实施例的方法方面用于手指感测。所述方法可包括以下步骤:对用于在手指传感器510和主机平台502之间的各个通信会话期间手指传感器510和主机平台502之间的安全通信508的唯一会话密钥进行协商。另外,手指传感器510可包括集成电路(IC)基片512、IC基片上的手指感测元件阵列514和IC基片上的与主机平台合作的会话密钥协商电路530。
F.第六实施例
现在另外参照图7,将对安全电子装置600(例如图1的计算机10)的另一个实施例的进一步的细节进行描述。装置600示例性地包括具有处理器604和其它相关外围设备606的主机平台602。
手指感测设备610示例性地包括集成电路(IC)基片612、IC基片上的手指感测元件阵列614、IC基片上的用于执行手指匹配的匹配电路618和IC基片上的证书颁发电路628。证书颁发电路628可与匹配电路618合作以基于手指匹配颁发至少一个用户证书,从而使得另一个装置(例如主机平台602)能够执行至少一种受保护的操作。因此,用户可使用单个手指匹配来安全地执行一个或多个受保护的操作。
手指传感器610还可包括IC基片612上的包括密钥生成电路620的安全模块616,密钥生成电路620具有随机数生成器(RNG)624、与RNG合作生成至少一个密钥的散列引擎626和用于存储供匹配电路618使用的至少一个密钥的密钥缓存622。例如,所述至少一个用户证书可包括用户密码、密钥短语、用户名、证件和密钥数据中的至少一个。
在一些变型中,所述另一个装置可包括IC基片612外部的主机平台602。主机平台602可基于所述至少一个用户证书的颁发来执行BIOS预引导认证和操作系统认证这两种认证。在其它实施例中,主机平台602可基于所述至少一个用户证书的颁发来执行BIOS预引导认证、操作系统认证和主机平台存储解密中的至少一个。
另外,主机平台602可执行至少一种预匹配功能。例如,所述至少一种预匹配功能可包括生成供匹配电路618使用的至少一个匹配分数。在一些变型中,手指感测设备610可被包括在还包括承载IC基片612和主机平台602的共用壳体630的电子装置(例如膝上型计算机、蜂窝电话或PDA)中,或者可以是电子装置的形式。
本第六实施例的方法方面用于使得另一个装置能够执行至少一种受保护的操作。所述方法可包括使用手指传感器610来确定匹配的步骤,手指传感器610包括集成电路(IC)基片612、IC基片上的多个手指感测元件614和IC基片上的匹配电路618。所述方法还可包括基于颁发至少一个用户证书来执行至少一个受保护的操作的步骤,所述颁发至少一个用户证书是基于匹配并通过使用也在IC基片612上的与匹配电路618合作的证书颁发电路628来实现的。
G.第七实施例
现在另外参照图8,对安全电子装置700(例如图1的计算机10)的第七实施例的进一步的细节进行描述。装置700示例性地包括具有处理器704和其它相关外围设备706的主机平台702。
装置700可限定包括手指传感器710的手指感测设备,手指传感器710包括集成电路(IC)基片712、IC基片上的手指感测元件阵列714和IC基片上的安全软件更新电路740。另外,主机平台702在手指传感器710的外部,可主机(host)与手指传感器相关的软件。主机平台702可与安全软件更新电路740合作对试图安装的软件更新708进行授权。如果更新未被授权,则由于安全理由而可不将这样的指示提供给试图安装该更新的用户。因此,传感器710有利地抵制安装流氓软件的企图,并且总的安全性得到提高。
例如,安全软件更新电路740可包括至少一个寄存器742,例如系统管理寄存器(SMR)。手指传感器710和主机平台702还可合作对至少一个寄存器740进行清空(clear)。手指传感器710和主机平台702还可合作,以基于试图安装的软件更新708将软件测量值扩展到至少一个清空的寄存器740中。因此,安全软件更新电路740可将扩展的软件测量值与其预测值进行比较。另外,预测值可在试图安装的软件更新708中。
所述至少一个寄存器742可包括至少一个非易失性寄存器。另外,试图安装的软件更新可包括至少一个手指传感器驱动程序软件更新。在一些变型中,手指感测设备700可以是还包括承载手指传感器和主机平台的壳体的电子装置(例如,膝上型计算机、蜂窝电话或PDA)的形式。
方法方面是用于更新主机与手指传感器710相关的软件的主机平台702的软件。所述方法可包括使用手指传感器710的IC基片712上的安全更新电路742的步骤,手指传感器710还包括IC基片上的手指感测元件阵列714,手指感测元件阵列714与主机平台702合作对试图安装的软件更新进行授权。所述方法还可包括基于试图安装的软件更新的成功授权来更新主机平台702的软件的步骤。
H.另外的示例
以下将参照图9至图17对包括本发明特征的示例性实施例的进一步的细节进行描述。首先,将对这样的描述中所用的一些术语进行论述。全局攻击是指对安全系统的这样的任何攻击,该攻击可在一台机器上完成,然后可用在使用相同系统的每台机器上。有时,它还被称为BORE攻击(一旦突破即可到处使用)。闪存是可被电擦除和重新编程的非易失性计算机存储器。非易失性存储器(NVM)是一种当装置断电时仍幸存的存储器。传感器测量寄存器(SMR)提供使用传感器硬件对几个系统组件进行测量的能力。预匹配处理器(PMP)包括在主机上运行的执行匹配操作的大部分CPU集中部分的代码。
“单次敲击进入桌面”(Single Swipe to Desktop,SSD)在功能上允许用户在预引导期间认证一次并将他们的证书传递到引导序列中的后续步骤,例如操作系统引导。密钥是控制译码处理的操作的一条信息(或一个参数)。在加密时,密钥指定明码文本到密码文本的特定变换,或者在解密期间反之。密钥加密密钥(KEK)用于对AKEY的改变进行授权。每次引导时,KEK通常都改变,除非将信任平台模块(TPM)用于保护KEK(这是用户策略决定)。传感器可使用应用程序密钥(AKEY)对主机和传感器之间交换的所有安全数据进行加密和解密。每次安全会话时,AKEY都改变。
Diffie-Hellman(DH)是一种公知的允许两个装置对共享密钥进行协商的安全密钥交换处理。它的主要好处是,协商可公开进行,但是窃听所有通信的窃听者不能确定共享密钥。临时成对密钥(EPK)包括被称为KENCRYPT和KCHANGE的两个密钥。KENCRYPT用于译码操作,例如对消息进行签名或者对信息进行加密。KCHANGE仅用于改变KENCRYPT。安全散列算法(SHA),比如,SHA-1由美国国家安全署(NSA)设计,并由NIST公布为美国联邦信息处理标准。
一些高级别的安全性特征可通过本文所述的各种实施例来实现。以下对这些特征进行描述。总目标可以是,在用户选择不使用他们的TPM时提供良好的安全性,在用户选择使用(opt-in)他们的TPM时提供同类最佳的安全性(best-in-class security)。良好的安全性在本上下文的意思是,系统至少将对全局攻击具有很强的抵抗力。同类最佳的安全性的意思是,系统所提供的安全性必须比得上由传感器匹配情况提供的安全性,但是没有这种情况所需要的匹配器和用户限制。
一些无TPM的期望特征可包括:应该保护匹配器在存储和执行期间不受干预;应该保护模板在存储期间不受干预,这种保护包括对现有的各个模板的修改和整个模板到模板存储器中的替代或添加这二者;应该保护模板不被窥探以保护隐私和阻止欺骗;应该对从传感器模块到主机的图像信息进行加密以保护隐私和防止电子窥探;当认证成功时,系统应该返回安全有效载荷(注册时提供),而不是指示哪个模板匹配,可使用已经在客户端-服务器架构中使用的多记录能力将所述有效载荷安全地合并到模板中;架构应该保护局域网不被已受到损害的客户端PC(服务器侧的特定的适当的软件)危害;应该保护Windows指纹服务和Windows应用程序之间的接口;上述保护中所使用的加密、密钥管理和密钥交换方案应该对全局攻击有一定的抵抗力(达到可能的程度)。
当TPM被启用(enable)并处于适当状态时,可提供高级别的安全性。通过这种提高的安全性能力,架构可满足以下另外的安全性要求:安全架构可保护长期密钥不受远程攻击和基于软件的攻击;在长期密钥被获取(使用硬件攻击)的情况下,密钥将仅在单个机器上有用。
参照图9,将对在满足上述期望的特征时可使用的一些功能进行描述。这种功能可嵌入在硬件组件和软件组件这二者中。这是各种安全组件和它们各自的位置的顶级描述。传感器组件可包括微硬件安全模块(μHSM),μHSM可被直接嵌入到传感器硅中,并可执行几种重要的译码功能,μHSM包括:通过μHSM在传感器最终测试期间生成的唯一私钥来表示的唯一装置ID,所述私钥被存储而且决不在μHSM模块外颁发;用于创建密钥、现时(nonce)和种子值(seedvalue)的随机数生成器;用于数字签名创建和代码测量的SHA-1引擎;用于加密图像、模板等的AES-CCM引擎;和用于加速的Diffie-Hellman和DSA操作的PKE引擎。传感器中的所有译码操作可由受传感器逻辑控制的μHSM来执行。
安全传感器可包含允许它执行匹配操作的最终阶段的逻辑。主机上的预匹配处理器(PMP)软件执行最复杂的CPU集中的工作,并将中间结果提供给传感器。传感器的内部匹配器然后例如使用图像水印信息对来自主机的数据进行验证,并计算最终的匹配分数。
传感器可包含四个传感器测量寄存器。传感器逻辑使用μHSM的SHA1引擎及其私钥来将测量链接到这些寄存器中。这个过程以这样的方式工作,即,一旦将新的测量链接到这些寄存器之一中,就不可能从计算上确定将使SMR取回到与先前状态匹配的值的新测量。另外,链接过程确保,当从初始化状态开始时,按精确的相同顺序链接相同的精确测量将总是导致特定传感器上的SMR中的精确相同的值。
主机软件提供将被链接到SMR中的测量,并且在初始化和注册操作期间,指示传感器逻辑将特定的SMR值保存到非易失性存储器中。在随后的操作期间,传感器逻辑可将当前的SMR值与存储的值进行比较。如果这些值相同,则传感器逻辑授权颁发译码信息的特定条目。
一旦主机获得所需的译码信息,它就可将随机测量提供给传感器用于(一个或多个)SMR。这具有防止任何将来的实体获得对秘密信息的访问的效果。在安全传感器中可存在四个SMR,每个SMR具有不同的目的。SMROS被装置驱动程序用来测量自身、平台和匹配器。一旦这些测量被传感器验证,主机就将被授权请求当前的主机根密钥(HRK)的副本。SMRPBA被BIOS Option ROM用来测量自身、平台和匹配器。一旦这些测量被传感器验证,主机就将被授权请求当前的主机根密钥(HRK)的副本。SMR0可被预留以供其它实体(例如第三方匹配器)使用。SMRMV被匹配器和传感器用来确保模板内容的安全并将它连接到特定传感器、机器和匹配器。与其它寄存器不一样,可不将这个寄存器的值保存在NVM中,而是相反可使用传感器的有效载荷密钥在注册时将这个寄存器的值加密到每个模板中。传感器可在匹配时对它进行解密和检验,以确保模板及其安全有效载荷没有被篡改,并且是使用当前传感器在当前机器上生成的模板及其有效有效载荷。
安全传感器可包括非易失性存储器(NVM),例如包含128字节的可重写闪存。这个存储器可用于存储用于传感器和主机二者的长期密钥、保存的SMR值和状态标志。只有传感器逻辑可看见这个存储器的内容。安全传感器还可包含看门狗定时器,该看门狗定时器用于通过跟踪主机花费多长时间执行特定操作来防止对指纹安全系统的调试器(degugger)或电路内仿真器攻击。
与基于指纹的安全相关的几个组件可设置在主机上,也将参照图9对这几个组件进行描述。这些组件中的一些组件可在主OS引导事件之前操作,其它组件可仅在OS环境内运行。以下提供这些组件的高级描述。
BIOS Option ROM是链接到BIOS图像中并提供资源保护和数据保护这两种保护的可选组件。由于在所有者不知道的情况下难以改变基本输入输出系统(bios)的内容,所以这是安全的预引导认证方法。这提供了增强的根本的测量保证。这个组件允许或者要求用户在允许OS开始引导过程之前执行指纹认证。例如,这使得计算机(比如,膝上型计算机)对可能盗取它的任何人无用。根据数据存储方法,在执行这个认证之前不必对硬盘进行解锁。这为驱动器上的数据提供了另外的保护。Option ROM提供可选的用于单次敲击进入桌面(SSD)的能力。这个特征可受所有者策略控制。
在能够实现统一可扩展固件接口(UEFI)的系统中,UEFI驱动程序和应用程序替代在传统的BIOS系统中使用的Option ROM。如果用另外的安全特征更新UEFI规范,则所提供的安全级别可与由Option ROM方法提供的安全级别匹配。UEFI组件可存储在主硬盘驱动器的特殊分区上。驱动程序使用UEFI框架功能来建立与传感器的USB通信。
全容积加密(FVE)库可以是将被链接到提供全硬盘驱动器加密的应用程序中的x86库。例如,这可以是Safeboot的FDE产品或者微软的Bitlocker。通常,这些加密系统在PBA之后但是在OS引导之前运行。该库可提供与安全传感器一起适当地操作所需的所有功能。
OS传感器装置驱动程序可执行应该在高安全性的环境下执行的所有功能。由于驱动程序在第0环处开始运行,所以更加难以干涉它的操作,从而它可更加安全地操作。驱动程序功能可包括:对在主机和安全传感器之间移动的数据进行加密和解密;对在ID交易的一对多部分期间联合全匹配器操作的安全匹配进行预匹配处理;主机和安全传感器之间的Diffie-Hellman密钥协商;和与服务的交叉认证。
OS服务提供应用程序和指纹系统之间的安全接口。预期的功能可包括:提供允许信任的应用程序请求指纹系统操作的API函数;提供下述方法,该方法确定什么应用程序是“受信任的”,包括不同级别的认证的可能性,即,操作子集仅可由特定应用程序执行,而不能由其它应用程序执行;提供建立堆栈中在其之上和之下的软件组件之间的安全通信信道的方法,这意味着在应用程序和服务之间以及在服务和驱动程序之间传送的所有数据应该可抵制窥探和篡改;提供执行指纹系统初始化的逻辑,指纹系统初始化的大部分受服务的控制而发生;阻止所有其它指纹操作,直到初始化完成;和提供用于装置驱动程序和应用程序之间的用户提示和反馈的信道。
OS登录应用程序(GINA/VCP)软件组件负责在登录期间将用户证书提供给OS。这种现有方法可假设,登录应用程序将使用存储在应用程序有效载荷(AP)中的信息或者从包含在AP中的数据得到的信息,以对登录进行授权。为了实现这个任务,应用程序可向服务请求AP。这将使得指纹系统返回在先前成功的指纹认证(例如,预引导或全容积加密)中颁发的AP或者启动新的指纹认证序列。
如果要求新的认证序列,则登录应用程序必须基于来自指纹系统的消息将提示和反馈提供给用户。
OS初始化应用程序软件组件通常将在特定用户对PC的所有权期间仅运行一次。它应该在任何其它指纹系统操作变为可利用之前运行。在初始化过程中,应用程序将必须从用户获得信息。该信息可包括所有者密码短语和指纹系统策略信息。初始化组件可能必须在整个系统重新引导期间操作以完成所有操作。
可能需要其它客户端应用程序来在网页和对话框、授权文件夹和文件加密和解密中提供密码替换能力,并根据需要执行其它基于指纹的授权操作。
用于本指纹安全架构的数据存储系统不限于任何一种存储介质,但是从安全性观点来讲,可以优选传感器闪存方法。传感器闪存数据方法可能是可防止全局拒绝服务攻击的唯一方法。由于除了当用户被认证时之外传感器均可阻止闪存的写入和擦除,所以这是可行的。数据存储器应该提供这样的一个位置或多个位置,在这些位置中,模板、预匹配处理器、主机密钥blob和可加载PBA的二进制码可被存储在其中,并变得可被OS和预引导软件组件二者访问。如果需要的话,OS和预引导数据存储器可分离,但是复制存储。在传感器闪存的情况下,不要求OS和预引导数据存储器分离,这是相比于其它数据存储方式优选传感器闪存的另一个原因。
指纹安全系统的早期版本简单地返回指示哪个模板与现场采样匹配的索引。应用程序然后将基于这个答复从其自己的存储器检索安全材料。这种方法的问题是,黑客可能用简单的动态链接库(DLL)代替我们整个软件和硬件堆栈,即,无论出示哪个手指,都仅仅总是返回有效的索引号。事实上,根本不需要出示手指。即使应用程序和软件交叉认证,仍存在单个的可定位的攻击点,在该攻击点处,恶意软件可将返回的答复变成所期望的任何东西。
在各种实施例中,本方法可试图通过从根本上改变应用程序和指纹系统交互的方式来消除这些类型的攻击。在本方法中,应用程序可在注册期间将包含安全材料的有效载荷提供给指纹系统。指纹系统可保持有效载荷安全,直到匹配手指被验证为止;此刻,它将有效载荷返回给应用程序。通过这种方法,由于在没有有效载荷中所包含的安全材料的情况中,应用程序不能继续操作,所以替换指纹系统或者改变其答复是徒劳的。
假设应用程序将允许用户使用手指敲击登录到OS。下表显示在传统方法和本方法中可发生的事件。
传统方法 |
本方法 |
应用程序请求指纹认证 |
应用程序请求指纹认证 |
指纹系统获得现场采样 |
指纹系统获得现场采样 |
将模板与现场采样匹配 |
将模板与现场采样匹配 |
确定匹配模板(若有的话) |
确定匹配模板(若有的话) |
通知应用程序哪个模板匹配(若有的话)(这是单个攻击点) |
从模板检索安全有效载荷,并在传感器内部对安全有效载荷进行解密 |
应用程序使用返回信息从其自己的存储器查询用户证书 |
将来自有效载荷的用户证书返回给应用程序 |
从示例可看出,由于答复必须是用户证书的有效集合,所以黑客改变按照本方法返回的答复得不到任何好处。如果黑客已经知道证书,则没有理由攻击指纹系统。他们已经知道他们登录到OS所需的所有信息。
以下是关于各种实施例中可能存在的各种通信安全特征的论述。可提供传感器到主机(驱动程序)的安全会话。由于传感器可执行安全有效载荷的解密,所以可保护在传感器和主机之间传送的数据不被窥探。这可通过安全会话的建立来实现。一旦安全会话已建立,就可使用例如AES128-CCM加密方案对传感器发送的所有图像和安全材料进行加密。可使用可在安全会话的初始化期间创建的共享密钥来对加密使用密钥。可根据操作的当前状态以几种不同的方式获得共享加密密钥,无论使用什么方法建立密钥,它都应该是用于每个安全会话的新密钥。安全会话通常在单个交易期间持续。这将确保用新密钥对每幅图像进行加密。以下提供关于建立安全会话的进一步的细节。
可提供客户端应用程序到服务的安全通信。服务和任何客户端应用程序之间的通信信道可实现两个目标:保护两个实体之间的所有数据和命令流不被窥探和篡改;第二,建立应用程序和服务之间的信任。可使用两种不同的安全方法来实现这两个目标。可使用客户端和服务之间的安全套接层协议来防止窥探和篡改。安全套接层(SSL)协议是一种工业标准协议,该协议允许任何两个实体在预先不知道关于彼此的任何信息的情况下进行协商和创建安全的通信信道。本领域技术人员已知该协议的细节。
可使用与唯一的客户端ID结合的成对滚动(rolled)密钥来在实体之间建立信任。这些密钥可用于对在服务和客户端之间传送的所有消息进行签名或者(还进行)加密。请注意,成对滚动密钥的使用和管理可发生在SSL会话内部,所以实际存在两个层次涉及到操作安全性。可在以下找到关于成对滚动密钥的实现的细节。
可在静态库中实现SSL和循环(revolving)密钥这二者的功能。该库可由应用程序提供者链接到客户端应用程序中,该库还可提供安全API。此外,请注意,还可将成对滚动密钥和客户端ID的初始值放入该库中。可能需要客户端程序和服务安全地存储密钥对的当前值。服务可将用于每个应用程序的密钥对与它们所属的客户端ID一起存储。
可提供服务到驱动程序的安全通信。服务和装置驱动程序之间的通信信道可保护所有数据和命令流不被窥探和篡改。另外,两个实体能够交叉认证。为了实现这个任务,每次驱动程序和服务连接时,服务和驱动程序可使用SSL的元素来创建新的安全接口。一旦连接上,两个实体还可使用成对滚动密钥进行交叉认证。这些密钥的起始值可被硬编码,但是这些初始值在第一次连接之后可随机改变。
通常的事件序列可包括:服务检测驱动程序,并开始连接处理,驱动程序启动SSL协商,驱动程序和服务完成SSL密钥协商,这些密钥将保持有效,直到驱动程序和服务下一次连接,这可以是即插即用事件或重新引导;如果在这台机器上是第一次,则驱动程序使用成对滚动密钥启动与服务的交叉认证;驱动程序和服务再次对由驱动程序执行的每次服务存在检验进行认证。
可选择以下方式,即,直接将安全图像从传感器提供给基于服务器的应用程序,而不再在处理过程期间对安全图像进行解密。通常,这可使用与和任何其它客户端的安全通信信道相同的安全通信信道来实现。此外,客户端可在它获取图像期间提供供传感器使用的唯一密钥。可将这个密钥作为当前AKey安装在传感器中,并且这个密钥可被用于当图像切片被传递给驱动程序时对这些图像切片进行加密。驱动程序和服务可简单地将这些切片沿着链向上直接传送到基于服务器的应用程序,在该应用程序中,静态链接的客户端库将执行解密和图像处理。
以下描述提供关于所述系统可执行的每个主要功能的示例性的逐个步骤的处理的描述。
创建安全传感器通信会话:当已在主机上创建了新数据加密密钥并将其安装在传感器的μHSM中时,安全会话存在。主机使用终止会话命令来终止会话。用于数据加密的密钥称为应用程序密钥(AKEY)。主机使用密钥加密密钥(KEK)将这个密钥设置到传感器μHSM中。因此,必须在能够安装新的AKEY之前将KEK设置到μHSM中。
在这种方法中,通常在特定引导中始终使用KEK,而在每次安全会话时改变AKEY。更久地保持KEK以缩短建立新的安全会话所需的时间。根据系统的当前状态,建立新的KEK可以花费半秒。存在用于建立KEK的多种方法。特定情况下使用的方法取决于传感器和主机的当前状态。下表列出了多种状态,并描述了它们的特性。
没有KEK 每当主机被重新引导并且不存在密钥加密密钥 (KEK)的TPM密封副本时,这种状态发 生。请注意,在正常引导序列期间,这种状态 可在预引导时发生,当装置驱动程序加载时又 再次发生。
KEK密封 这种状态表示所有者已选择使用TPM来保护 KEK。在这种情况下,每次引导不需要新的 DH协商。相反,在初始化期间(或者在策略 改变期间),将KEK和封包的KEK密封到 TPM,并将它们放入数据存储器中。
KEK封包 在这种状态下,主机具有KEK的基于存储器 的副本和“封包的”KEK,并准备将KEK加 载到μHSM中。如果传感器断电而主机没有断 电,则这种状态发生。
KEK加载 在这种状态下,KEK已被成功地安装到传感器 的μHSM中。这种状态应该在可建立安全会话 之前存在。
假设还没有将KEK密封到TPM(基于传感器标志),并且主机正引导到PBA或OS(状态==没有KEK),则主机可执行以下操作来移到KEK加载状态:
1、在可在主机和传感器之间启动DH会话之前,改变授权命令应该在μHSM上运行。该命令使用包含公钥和被打乱到驱动程序中的私钥的消息。用制造者的私钥(KMPRIV)对公钥消息进行签名。μHSM使用制造者的公钥(KMPUB)的副本对签名进行检验。这种方法避免使用密钥服务器。
2、一旦改变授权成功地完成,就在μHSM和主机之间执行Diffie-Hellman(DH)协商。这种操作的结果是临时会话保护密钥(KSP)。指出:作为DH协商准备的一部分,主机应该创建临时数字签名算法(DSA)密钥,
3、主机生成将用作KEK的新的随机密钥。
4、主机使用KSP对KEK进行加密,然后使用DH消息将新的KEK安装到μHSM KEK本地寄存器中。
5、主机然后指示μHSM对KEK进行“封包”。μHSM使用内部私钥对KEK进行加密和签名,并将它提供给主机。仅可通过这个特定的传感器对这个封包的KEK进行解密。
6、一旦主机具有封包的KEK,状态就转变为“KEK加载”。现在可设置AKEY,并建立安全会话。
假设已将KEK密封到TPM(基于传感器标志)并且主机正引导到PBA或OS中(状态=“KEK密封”),则主机执行以下操作来移到KEK加载状态:
1、主机从数据存储器读取KEK blob(大二进制对象),并指示TPM对其进行解密封。如果允许进行解密封的操作的条件正确,则TPM将使用内部密钥对KEK blob进行解密。KEK blob包含封包的KEK和KEK的清空副本。
2、主机将封包的KEK传递给传感器μHSM,并指示它将KEK拆包到本地KEK寄存器中。
3、一旦μHSM已对KEK进行拆包,状态就转变为“KEK加载”。现在可设置AKEY,并建立安全会话。
假设主机具有KEK和封包的KEK这二者的基于存储器的副本(状态==“KEK封包”),则主机执行以下操作来移到KEK加载状态:
1、主机将封包的KEK传递给传感器μHSM,并指示它将KEK拆包到本地KEK寄存器中。
2、一旦μHSM已对KEK进行拆包,状态就转变为“KEK加载”。现在可设置AKEY,并建立安全会话。
一旦系统已处于“KEK加载”状态,就可随意打开和关闭安全会话。这使用以下步骤来实现。
1、主机生成新的随机密钥以用作这个会话的AKEY。在会话期间,将使用这个密钥对所有敏感数据进行加密。
2、主机创建包含AKEY且受KEK保护的新的μHSM_DH_MSG。然后将该消息发送给传感器μHSM。
3、传感器对消息进行解密和验证。如果消息有效,则μHSM将其内部AKEY寄存器设置为消息中的AKEY。
4、传感器逻辑对这种行为进行监视,并且如果μHSM指示AKEY改变成功,则它将传感器状态设置为SecureModeOn。
5、此刻,已在传感器和主机之间建立安全会话。会话保持打开,直到主机使用“Terminate Secure Session”传感器命令终止该会话为止。
可在安全架构内的几个组件间的链接中使用成对滚动密钥(PRK)。这个部分描述这些密钥以及如何使用、创建和管理它们。成对滚动密钥包括两个密钥,这两个密钥称为KENCRYPT(KE)和KCHANGE(KC)。KENCRYPT用于译码操作,例如对消息进行签名或者对信息进行加密。KCHANGE仅用于改变KENCRYPT。在将使用这些密钥的地方,通常将它们的初始值设置为二进制的默认值。由于在将执行使用它们的任何其它操作之前将改变这些密钥,所以这可以是公知常识。
密钥管理可涉及以下步骤:
1、启动软件创建新的随机密钥(KE’),该随机密钥最终将变为新的KENCRYPT。
2、它然后使用它的KCHANGE的副本对新的密钥进行加密(KC[KE’]=>KEPC)。
3、然后将加密的密钥(KEPC)发送给命令中的接收软件组件。(将根据实际的使用情况使用当前的KE对该命令进行加密或者签名。)
4、接收组件对消息进行验证,然后使用当前的KC对新的KE进行解密和存储。
5、一旦这个交易完成,启动软件存储新的KE。
6、下一个命令将是设置新的KCHANGE密钥。除了使用新建立的KE对KC’进行加密之外(KE[KC’]=>KCPE),这以与改变KENCRYPT相同的方式实现。
在这种方法中,启动组件可能被认为是安全性更高的实体。这意味着在服务和客户端之间,服务将启动密钥更新,而在服务和驱动程序之间,驱动程序启动。预期密钥更新随机发生。
可在应用程序的控制下与Windows服务(服务)、装置-驱动程序(驱动程序)、预引导代码和传感器合作来执行初始化。另外,预引导代码和驱动程序可在初始化之前执行特定操作,以使传感器测量寄存器(SMR)处于用于初始化操作的合适状态。以下是当系统处于未初始化状态时各个指纹系统组件可执行的动作的列表。后续初始化步骤可依赖于这些动作。
1、Option ROM或其它PBA软件将自身测量到传感器上的SMRPBA寄存器中,所以初始化可利用测量。如果由BIOS提供者实现这个测量,则内核BIOS可执行这个测量。
2、装置驱动程序将自身的多个部分加载和测量到传感器上的SMROS中。
3、驱动程序从传感器检索状态标志以确定初始化是否完成。(在这种情况下,INIT_COMPLETEE标志没有被设置。)
4、服务从驱动程序加载和请求指纹系统状态。(在这种情况下,驱动程序报告系统还没有被初始化。)
5、客户端应用程序软件运行,并确定指纹安全系统没有被初始化。可提醒用户对指纹系统进行初始化。
以下是一旦用户已启用初始化,指纹系统组件就可执行的动作的列表。
1、初始化应用程序将从进行初始化的用户获得所有者的密码短语。
2、应用程序请求服务初始化,并将所有者的密码短语传递给服务。
3、服务将工厂预匹配处理器(PMP)解压到主存储器中。
4、如果预引导用户接口(PBUI)二进制码存在,则服务还可将该二进制码复制到存储器中(由于该二进制码不被作为种子,所以不需要解压。)
5、服务通过传递作为参数的所有者的密码短语以及PMP和PBUI的位置来请求驱动程序执行初始化。
6、驱动程序使用传感器标志进行检验以确保还没有对系统进行初始化。
7、驱动程序建立与传感器的安全通信会话。
8、驱动程序验证OS SMR已被扩展至少一次。
a.对于SMROS,应该报告TRUE;
b.如果不是TRUE,则进行测量。
9、驱动程序指示传感器生成内部密钥。
10、驱动程序设置所有者的密钥。
a.驱动程序根据所有者的密码短语(SHA-1散列)计算所有者的密钥;
b.驱动程序将Set Owner Key命令与作为参数的新的所有者密钥和工厂默认所有者密钥一起发送给传感器;
c.传感器对照存储的所有者密钥检验旧的所有者密钥;
d.传感器将新的所有者密钥存储在NVM(20B)中。
11、如果传感器中的Preserve Templates标志没有被设置,则将闪存完全擦除。如果该标志被设置,则除了具有模板的页面之外,对闪存进行擦除。(如果一些类型的软件更新正在进行中,则设置该标志)。
12、驱动程序通过发送Save SMRs命令和合适的标志来指示传感器将当前的SMROS内容保存到(传感器NVM中的)SMR_OS_VAL。
a.传感器自动将SMR_OS_VAL_SET标志设置为True;
b.注释:如果在保存之前相应的VAL_SET标志为TRUE,则应该忽略该命令,并返回错误代码;
c.注释:仅可通过使用所有者密码短语将整个系统重新设置回工厂默认来执行对这些标志的重置。
13、如果SMRPBA被扩展,则驱动程序通过发送Save SMRs命令和合适的标志来指示传感器将当前的SMRPBA保存到(传感器NVM中的)SMR_PBA_VAL。
a.传感器自动将SMR_PBA_VAL_SET标志设置为True;
b.注释:如果在保存之前相应的VAL_SET标志为TRUE,则应该忽略该命令,并返回错误代码;
c.注释:仅可通过使用所有者密码短语将整个系统重置回工厂默认来执行对这些标志的重置。
14、驱动程序将PBA二进制码存储在闪存中。
a.注释:仅在Enable Flash Update命令之后且在当前安全会话结束之前允许SPI闪存写入和擦除。
15、用随机数扩展所有SMR以使SMR变为无效状态。
16、当存储完成时,驱动程序使用Update Policy命令指示传感器设置InitComplete标志。
a.注释:设置InitComplete标志需要Owner_Key;
17、驱动程序抹去Owner_Key存储器位置。
18、驱动程序将NVRAM备份、散列值和封包的密钥保存到spy闪存中。
19、驱动程序使安全会话无效。
20、初始化完成。
21、服务将控制返回给应用程序。
a.推荐立即进行所有者的注册,然后进行策略设置操作。策略设置操作需要所有者密码短语,所以如果立即执行策略设置操作,则应用程序将不必再次从所有者获得它。
以下将另外参照图10对注册过程的实施例进行描述。所述过程将继续进行,并且包括应用程序有效载荷封装。在以下列表中提供步骤的高级描述。
1、应用程序创建应用程序有效载荷AP。这可以是密钥材料、证件或者总安全结构授予用户特权所需的任何其它信息。
a.这个有效载荷的内容对于软件是不透明的,推荐应用程序在这个步骤之前对这个有效载荷的内容进行加密。
b.应用程序有效载荷的大小可限于3k字节。
2、应用程序然后调用把应用程序有效载荷作为参数传递的Windows服务手指注册函数。
a.在所有操作之前,安全通信信道必须存在于应用程序和服务之间以及服务和驱动程序之间。
3、服务然后调用传递应用程序有效载荷的装置驱动程序的手指注册函数。
4、驱动程序建立与传感器的安全会话。
a.传感器还对SMRMV寄存器进行初始化以为模板测量做准备。(每当安全会话开始时,执行这个步骤。)
5、驱动程序将执行从传感器获得没有加水印的图像所需的函数。
a.用户提示和反馈应该反向穿越链直到用于显示的应用程序。
6、驱动程序对图像进行解密,并使用该图像构建部分模板。
7、重复步骤5和步骤6,直到模板质量达到注册可接受的程度。
8、现在驱动程序将创建用于创建模板数据水印的均匀分布的随机扭曲模式。
a.将扭曲模式编码为20字节的模板水印密钥。
9、驱动程序修改模板脊流节点以与扭曲模式一致。这创建了将在认证操作期间被检验的模板水印。
a.模板水印在认证期间对匹配器进行验证,并以防止替换攻击的方式将SP连接到这个特定模板。
10、然后使用Extend SMR sensor命令将基于SHA1的模板数据的测量扩展到SMRMV中。
a.注释:任何模板压缩必须在这个测量之前进行。
11、驱动程序执行应用程序有效载荷(AP)的SHA-1测量,该测量将被用作模板中的AP签名。
a.注释:AP签名用于在其它操作中标识来自相同用户的模板,所述其它操作例如是证书更新和模板备份。由于这个原因,应该将它放在模板的加密部分的外部。
12、驱动程序从AP和模板水印密钥创建AP流。示例性的格式如下:
a.SMRMV的预留空间-20字节
模板水印密钥一20字节
AP长度-16个单位(2字节)
AP
13、驱动程序开始使用Encrypt AP Block命令将AP流以992字节为一块发送给传感器。在最后块上,将用零填充任何未使用的字节。
14、如果这是第一块,则传感器将把B0块和SMRMV的当前内容作为前缀加到该块,并使用μHSM和其内部有效载荷密钥对其进行加密。如果这不是第一块,则传感器将作为在由根据SMRMV的一部分而修改的B0构成的现时的前缀,并使用μHSM对它进行加密。
a.对于每个发送的块,传感器将1024字节的加密数据返回到安全有效载荷(SP)中。
15、驱动程序将返回的加密块连接到全SP blob中。
16、驱动程序然后将SP和AP签名放入到模板中,并通过将填充数据附加到模板末尾来准备用于加密的模板,所以模板结束时的大小为模板块大小(1008字节)的倍数。
17、驱动程序使用Create Encrypted Template Block命令将模板以块为单位发送给传感器。
18、传感器使用它的内部模板加密密钥(TEK)对模板块进行加密,并将每个块返回给主机。
19、驱动程序将加密的模板块连接起来,在前面加上头(包括以上计算的AP签名),并将最终模板写入到数据存储器(比如,SPI闪存)中。
a.注释:驱动程序提供主机根密钥(HRK)以授权对SPI闪存部分的擦除和写入操作。
20、驱动程序终止安全会话,并其将控制返回到调用堆栈上。
现在将对安全指纹认证过程的示例进行描述,该示例被设计为使得极其难以修改匹配器或模板从而获得对有效载荷中的安全信息的访问。所提供的安全性是多层次的,利用了由传感器提供的安全环境。
第一保护层包括在最后可能的时刻对预匹配处理器(PMP)进行加载和解密并作为驱动程序处理的一部分运行它。这将攻击窗口限制到在第0环中运行的处理和匹配操作的时间框架(timeframe)(在预引导期间,Option ROM代码将加载和运行PMP)。如本领域技术人员所认识的,第0环是具有最大特权的计算机架构级别,最直接地与例如CPU和存储器的物理硬件交互。
传感器提供下一个保护层。作为具有解密有效载荷的能力的唯一实体,传感器将迫使匹配器在匹配操作期间对匹配器自身、模板和机器进行测量。传感器还可测量各个通信事件之间的时间,并且如果调试器使主机停止,则取消该操作。传感器还对模板水印、图像水印进行检验,并执行最终的匹配操作。以下列表提供认证中可涉及到的步骤的高级描述。
1、应用程序向服务请求认证,服务然后指示驱动程序启动认证操作。
2、驱动程序建立与传感器的安全通信会话,该安全通信会话使得传感器对SCRMV进行初始化。
3、驱动程序运行传感器以捕捉加水印的图像(提示和用户反馈被传递到服务以用于显示或者应用程序回调)。
4、一旦获得可使用的图像,驱动程序就执行一对几个的不安全的匹配以找到感兴趣的模板。
b.注释:将使用传感器的Get Decrypted Template Block命令对模板进行解密。
5、如果模板中的任何一个被确定为匹配,则驱动程序启动安全匹配。
6、在安全匹配开始时,驱动程序将PMP加载和解密到存储器中,并将安全有效载荷发送到传感器。
7、传感器将安全有效载荷解密到内部RAM,并提取模板水印密钥。还将开始运行通信看门狗定时器,每次从主机接收到有效数据时,该通信看门狗定时器就重置。或者,该定时器可在整个预匹配操作期间运行,并且如果整个动作占据很长时间,则设定超时。
8、驱动程序将执行安全预匹配操作,该操作除了执行匹配之外还包括以下动作:将(按合适的顺序)重复注册期间进行的机器、模板数据和匹配器代码的测量,并将这些测量发送到传感器以扩展到SCRMV寄存器中。块级别的中间匹配器结果将被流传输到传感器进行验证和最终匹配计算。
9、必须计算两种类型的块分数,一个集合是以图像为中心,用于对图像水印进行验证,另一个集合是以节点为中心,用于对模板水印进行验证。
10、当块分数到达每个节点时,传感器将执行两个动作:以正确的方式累积块分数以得到用于该节点的最终匹配分数,并且,将对照块分数对水印密钥进行评估。如果在块分数中没有检测到水印,则以下之一是真实的:实时修改模板,实时修改匹配器,实时篡改图像,或者实时修改各个块分数。在这些情况中的任何一种情况下,匹配将失败。这防止了几种类型的攻击。
11、如果在安全匹配期间的任何时间,通信看门狗定时器到期,则假定调试器使主机停止。在这种情况下,传感器将使匹配失败,使安全会话无效,并恢复到非安全模式。这将迫使安全匹配操作从开头重新开始。
12、当主机匹配操作结束时,将最终数据与现场相关信息和最终测量一起发送到传感器。
13、传感器将结束中间结果的评估,并确定这是否导致足够高的导致匹配的分数。
14、此时,传感器还将SCRMV的内容与在注册期间加密到安全有效载荷blob中的测量进行比较。
15、如果测量相同、匹配分数足够高并且水印正确,则传感器将解密的应用程序有效载荷和最终匹配分数返回给主机以用于进一步的动作。否则,不返回有效载荷。
16、传感器还返回在可能的模板更新操作中使用的图像水印密钥。
17、如果匹配成功,则驱动程序将AP返回给调用操作。
18、驱动程序终止安全会话。
19、如果匹配分数高得足以允许模板更新并且PMP确定节点替换是可取的,则PMP将使用图像水印密钥来从图像移除水印,然后通过接着执行注册过程的后半部分来执行模板更新。
a.如果要求模板更新,则将打开新的安全会话(这使得传感器重新对SMRMV进行初始化)。
b.成功的模板更新可导致对模板更新已发生的应用程序的回调或消息。至少,应该在调试跟踪中注意它。
在示例中,可鼓励用户选择初始策略设置,比如,通过紧接着初始化和用户注册之后的初始化应用程序。由于改变策略设置需要所有者密码短语,而初始化应用程序已经从所有者获取了所有者密码短语,所以这是便利的方法。以下列表提供用于设置用于指纹安全系统的策略信息的示例性实现。
1、应用程序向所有者请求策略选择。这些选择可包括:启用/禁用PBA;启用/禁用单次敲击进入桌面(SSD);启用/禁用全容积加密;启用/禁用将TPM用于提高安全性。
a.注释:应用程序可能想在提示用户之前检索当前的策略设置。服务应该提供用于这个步骤的API。(驱动程序可使用传感器命令:Get Security Flags来检索这个信息。)
2、应用程序通过传递作为参数的所有者密码短语和策略选择来调用服务执行策略更新。服务将这个请求和参数下发到驱动程序以结束操作。
3、驱动程序然后使用SHA-1从所有者密码短语创建所有者密钥,然后将新的策略选择转换为合适的安全标志。
4、在驱动程序和传感器之间建立新的安全会话,然后将UpdatePolicy命令和作为参数的所有者密钥和安全标志一起发给传感器。
5、然后关闭安全会话,并将操作的结果返回到调用堆栈上。
通常用户必须改变用于PC和网络的证书。如果这些证书被直接存储到应用程序有效载荷(AP)中,则应用程序将必须具有这样的方法,该方法更新这些证书,但是不要求用户重新注册他们所有的手指,也不需要所有者密码短语。为了保持操作安全,作为这个操作的一部分,要求用户向指纹系统进行认证。只要相同的AP用于这个用户的所有手指,就只需要一个手指敲击。如果外部系统对每个手指使用不同的AP,则将必须对所有手指重复所述处理。
以下步骤示出用于改变用于用户的AP的处理。如所写,所述处理假设相同的AP用于用户的所有手指。
1、应用程序创建新的AP,并通过传递作为参数的新AP来调用服务请求AP改变。
2、服务将这个请求传递给驱动程序进行动作。
3、驱动程序执行安全的指纹认证操作,如果成功的话,则该指纹认证操作将以下信息留给驱动程序:
a.清空的原始模板节点信息
b.在注册期间创建并存储在模板中的AP签名;
c.模板水印密钥;
d.新的AP(还有旧的AP,但是这不是必需的)。
4、驱动程序使用HRK对主机密钥blob进行解密以获得PEK(有效载荷加密密钥),然后用PEK驱动程序将PMPCE加载、解密和解压到存储器中。
5、此刻,驱动程序具有围绕新AP创建新的安全模板所需的所有材料。
6、现在可将AP签名用于识别存储器中具有相同AP的其它模板,因此,也必须对AP签名进行更新。为准备更新的数据存储器中检索具有匹配AP签名的模板。
7、对PMP和平台特定信息(PSI)进行测量以用在稍后需要的SMRMV扩展中。还计算新的AP签名。
8、对于需要更新的每个模板,可执行以下循环步骤:
a.驱动程序建立与传感器的新的安全会话(这使得SMRMV被初始化)。
b.驱动程序然后使用传感器对模板进行解密(除了已经解密的第一模板之外)。
c.从模板中丢弃现有的安全有效载荷(SP),并使用合适的传感器Extend SMR命令将PMP和PSI测量扩展到SMRMV寄存器中。
d.然后对原始模板节点信息进行测量,并将其扩展到SMRMV中。
e.将新的AP发送到传感器,并将其转换为SP;关于这个操作的细节,参见注册处理部分。
f.驱动程序然后将新的SP嵌入到模板中,并使用注册处理中使用的相同步骤将新的模板发送到传感器进行加密。
g.一旦已把头(具有新的AP签名)加到加密的模板的前面,就可存储模板。
h.现在必须终止安全会话。
i.驱动程序现在返回到以上步骤a,直到用于这个用户的所有模板均被更新为止。
现在将对用户级别的备份的示例进行描述,该示例可由任何注册的用户来执行,并可导致仅备份该用户的模板。这种类型的备份也限于这样的情况,即,仅可将模板恢复到创建备份的相同机器(具有相同的传感器)上。这种类型的备份仅提供对从指纹系统偶然删除一个或多个模板的保护。通过指纹验证对用户级别的备份和恢复操作进行授权。以下列出的操作提供示例性的实现顺序。
1、应用程序向服务请求用户级别的备份。
2、服务将请求下发到驱动程序。
3、驱动程序执行指纹认证以识别用户模板之一。
4、驱动程序使用颁发的AP计算AP签名,并使用该值识别存储器中具有相同AP的其它模板。
5、驱动程序将合适的模板返回给备份数据库中的服务。
6、服务将模板备份数据库返回给应用程序以用于存储在备份介质上。
将对用户级别的恢复的示例进行描述,该示例可由任何用户执行,但是仅可用于恢复该用户的模板,并且仅恢复到从其原始备份这些模板的计算机。用户级别的恢复需要指纹认证以进行授权。执行以下列表步骤恢复模板。
1、应用程序通过传递作为参数的备份模板blob来向服务请求用户级别的恢复。
2、服务将请求和模板备份数据库传递给驱动程序以用于进行进一步的动作。
3、驱动程序使用传递进来的备份模板执行指纹认证。
a.注释:如果模板不属于这个机器,则它们将不能适当地解密。这防止了模板替换。
4、成功的匹配验证这些模板的所有者存在于机器上。
5、如果模板已经不存在,则驱动程序现在将每个模板从备份放入到数据存储器中。(进行逐字节比较以防止复制模板。)
将对系统级别的备份的示例进行描述,这个处理允许系统所有者以下述方式备份所有模板,即,允许在另一个机器上或者在替换传感器之后在这个机器上恢复所有模板。为了使得这个方案可行,提供这样的传感器命令,该命令允许对AP进行解密,但不进行指纹匹配,只要提供正确的所有者密钥即可。这种能力对安全性可能是一种威胁,但是OEM可期望这样的便利方法,即,无论是否牵连到安全性,都将模板从一个机器移到另一个机器和从一个传感器移到另一个传感器。
本质上,这个命令通过对所有模板进行解密、从安全有效载荷移除AP和重新对新blob中的AP和原始模板数据进行加密来创建可移动的模板数据。保持模板和AP之间的关系,并用用户提供的密钥对新blob进行加密。以下列表提供关于这个处理的操作的另外的细节。
1、应用程序应该从用户获得所有者密码短语和备份密码短语,然后通过传递作为参数的这两个密码短语来调用服务。
2、服务将参数传递给驱动程序,驱动程序使用密码短语创建所有者密钥和备份加密密钥(BEK)。
3、对于数据存储器中的每个模板,驱动程序将执行以下操作:
a.驱动程序将使用传感器对模板进行解密;
b.驱动程序然后将从模板提取SP,并将它传递给传感器进行解密。这涉及三个传感器命令:Send SP Block、Check OwnerKey和GetAPBlock;
c.接着,驱动程序将以保持清空的模板数据和清空的AP之间的链接这样的方式将合适的清空的模板数据和清空的AP重新加密到备份数据库中。
4、一旦已对所有模板进行处理,就将使用以上生成的BEK对整个数据库进行加密。
5、然后将作为结果而获得的加密的备份数据沿着调用堆栈向上返回传递给应用程序以便存储在备份介质上。
将对系统级别的恢复的示例(可从任何机器进行备份)进行描述。仅可用系统级别的备份数据库执行这个级别的恢复。执行这个恢复的个体必须知道当进行这个备份时所使用的备份密码短语和用于这个计算机上的传感器的当前的所有者密码短语。这种类型的恢复对于从以下情况恢复特别有用:在替换有故障的传感器之后;在偶然删除所有系统模板之后;当将用户模板和证书移到新的PC时;或者在替换被测量到PSI中的任何系统组件之后。与这个类似的功能可用于将模板和证书复制到允许双重安全传感器操作的外部传感器。
在替换有故障的传感器、PSI组件替换或者迁移到新的机器的情况下,应该在执行恢复之前完成指纹系统初始化。
以下步骤将实现系统级别的模板和证书的恢复。
1、应用程序从介质加载备份blob。
2、应用程序向用户请求所有者密码短语和备份密码短语。
3、应用程序将所有者密码短语、备份密码短语和指向blob的指针传递给服务。
4、服务将所有应用程序提供的信息传送给驱动程序。
5、驱动程序从数据存储区检索PMPce。
6、驱动程序对PMP进行解密和解压。
7、驱动程序测量PMP。
8、驱动程序测量PSI。
9、驱动程序从备份密码短语生成BEK。
10、对于每个模板:
a.驱动程序建立与传感器的安全会话;
b.使用BEK对模板和AP进行解密;
c.将PMP测量扩展到SMR_MV中;
d.将PSI扩展到SMR_MV中;
e.测量模板数据;
f.将模板测量扩展到SMR_MV中;
g.将AP发送给传感器,并请求SP;
h.驱动程序将SP嵌入到模板中;
i.驱动程序将模板发送给传感器进行加密;
j.传感器返回加密的模板;
k.使安全会话无效;
l.将模板存储到数据存储区。
11、下一个模板。
12、恢复完成。
将对安全软件升级处理的示例进行描述。由于软件被测量到传感器中以对一些动作授权,因此更新软件(在AFSS被初始化和置于提高安全模式之后)需要存储新的保存的测量和丢弃旧的保存的测量。
可以以两种方式对改变NVRAM中的测量进行授权:提供有效的所有者密钥或者提供特殊的授权消息。由于软件升级通常作为自动操作执行,因此当执行软件安装和升级时推荐使用授权消息进行软件升级。
对于基于授权消息的软件升级,在这种升级方法中可涉及以下实体:SW开发;安全密钥存储器;签名计算机;安全更新应用程序;安装程序或客户端应用程序;OS装置驱动程序;安全传感器;在OS、PBA和FDE时间运行的测量软件。注释,在一些情况下授权消息可通过服务进行传递;但是服务不负任何安全职责,因此,不包括在以下论述中。
图11和图12的分隔线图表(swim-lane chart)显示以上列表中的各个实体的动作。在以下图表中显示了动作的详细描述。对于创建阶段:
1、软件开发(SW)创建、测试和颁发新的软件。
2、一旦软件准备完毕,SW就计算最后将被扩展到用于这个软件的传感器SMR中的测量之一。例如,如果新软件是PBA软件的可加载驱动程序部分,则SW知道这个软件的哪些部分将被PBA加载程序测量。因此,SW可计算在目标机器上最终测量将是什么。
3、将这个SMR扩展值嵌入在SMR_NV清空的授权消息内。该消息包括授权将三个非易失性地保存的SMR寄存器之一清空的特殊传感器固件补丁。
4、然后使用与用于对其它补丁进行认证的共享密钥相同的共享密钥对整个授权消息进行加密。将这个密钥嵌入在传感器中,还将这个密钥存储在可用于加密消息的访问受限的PC上。
5、一旦已对消息进行加密,就将硬件安全模块用于使用制造者的密钥对的私有部分对消息进行签名。这个密钥的私有部分决不离开HSM。OS装置驱动程序将具有这个密钥的公共部分的副本,OS装置驱动程序可使用这个副本证明消息是由制造者生成。注释,在这种情况下,实际上是对消息的摘要签名,而不是对整个消息签名。
6、然后将加密且签名的消息嵌入在安全更新应用程序中,目标机器上的安装程序或其它更新应用程序将调用该安全更新应用程序。
7、然后将安全更新应用程序添加到安装程序包,或者以其它方式提供给将升级软件的实体。
对于执行阶段:
1、安装程序或应用程序将更新的软件放入合适的位置,并对文件副本进行验证(这是所有安装实体的正常行为)。
2、如果这是基于安装程序的更新,则安装程序将已经知道它必须运行安全更新应用程序。单机应用程序,例如BIOS闪存实体,将不具有该信息,所以它必须对在它从其开始运行的相同目录下的应用程序的副本进行检验,并且如果它发现安全更新应用程序,则它应该运行该安全更新应用程序。
3、安全更新应用程序通过传递制造者将其嵌入在安全更新驱动程序中的授权消息来向OS驱动程序请求安全软件更新。该消息授权传感器对特殊的非易失性地保存的SMR值进行清空。
4、OS驱动程序使用它的制造者的公钥的副本对消息进行验证。如果验证失败,则驱动程序将错误返回给安全更新应用程序,并拒绝将授权消息传递给传感器。
5、如果消息有效,则驱动程序将消息传递给传感器。
6、传感器将使用传感器内部的秘密密钥对消息进行解密。如果这个解密失败,表示可能有攻击,则传感器将失败指示返回给驱动程序,并拒绝对任何保存的SMR进行清空。
7、传感器使用消息中的信息来确定清空保存的SMR值。传感器将NVRAM包含该信息的部分清空,并对指示值已被保存的标志进行重置。这允许当更新的软件最终运行时进行新的测量并保存该测量。
8、除了关于哪个保存的SMR值要清空的信息之外,所述消息还可包括当新软件运行时最终将被扩展到SMR中的测量之一的预测。这个预测存储在NVRAM中以用于将来验证。
9、当更新的软件第一次加载和运行时,所述处理中的下一个步骤发生。
10、作为对所有嵌入的测量代码的操作的正常部分,进行软件的关键部分的测量,然后将其扩展到合适的传感器测量寄存器(SMR)中。
11、当将每个测量扩展到SMR中时,传感器逻辑将扩展值与预测进行比较(如果预测存在)。如果扩展值之一与预测匹配,则将易失的标志设置在传感器中。
12、在测量处理结束时,测量软件将检测到不存在保存的值,并请求SMR保存操作。
13、如果预测值存在,并且指示预测匹配的标志没有被设置,则将拒绝SMR保存。
14、预测值的检验确保特定的软件更新应用程序将仅与其被AuthenTec加密钥的软件一起工作,而不能被用于安装流氓软件。
以下描述当系统引导时的事件序列的示例。另外参照图13,包含了预引导、全容积加密和OS加载所有这些内容。在这个部分中,下面通过参考Option ROM和用户接口二进制码组合来讨论所有的预引导操作。在一些系统中,这些操作可由UEFI驱动程序执行。Option ROM建立与传感器的安全会话。Option ROM将自己测量到SMR_PBA中(或者BIOS可执行用于提高安全性的测量)。OptionROM从传感器读取状态标志:检验Init_Complete=True;检验PBA_Enabled=True。如果标志不一致,则要求所有者密码短语继续引导:从密码短语生成提交的Owner_Key;传感器确定Owner_Key与提交的Owner_Key匹配(注释:对于要求检验所有者密钥的所有函数,可执行抗捶打(anti-hammering))。退出PBA OptionROM。
Option ROM测量PSI数据,并扩展到SMRPBA中。OptionROM加载和测量PMPce,并扩展SMRPBA。Option ROM加载和测量PBUIe(如果它存在),并扩展SMRPBA。Option ROM向传感器请求HRK:传感器将SMR_PBA中的值与NVM中的SMR_PBA_VAL进行比较;如果相等,则将HRK发送给OptionROM。Option ROM通过使用HRK将PEK提取到存储器中来对Host_Key_Blob进行加载和解密。抹去HRK存储器位置。OptionROM使用PEK将PMPce解密和解压到存储器中。如果PBUI存在,则Option ROM使用PEK将PBUI加载、解密和解压到存储器中。Option ROM抹去PEK存储器位置。Option ROM执行安全指纹认证。
如果认证成功,则:如果FDE_ACTIVE ORSSD_ENABLED=TRUE,则传感器将AP存储到传感器RAM中以传递给FDE和/或OS装置驱动程序;如果FDE_ACTIVE=FALSE,则Option ROM扩展SMRPBA w/随机数据(Cap);使安全会话无效;预引导认证完成;Option ROM将控制返回给BIOS。否则,如果匹配不成功,则重试(直到限度),或者继续进行引导或者每个策略的可替换的认证方法(密码短语等)。
全容积加密或全盘加密(FDE)软件在它将解密驱动器之前需要证书。这些证书可以是AP中的证书的一部分或者可从AP中的那些证书生成。如果可从PBA获得指纹认证,则FDE软件从传感器得到AP,而不执行指纹认证。否则,它必须执行自己的指纹认证。假设系统具有全容积加密组件,则引导序列继续。FDE运行,并请求库提供AP(注释:FDE应用程序内的静态链接库(ATLib))。ATLib向传感器请求状态标志。如果Init_Complete==FALSE,则将失败代码返回给FDE(注释:FDE可能必须执行一些其它认证方法(应该仅在软件更新期间发生))。ATLib建立与传感器的安全会话。ATLib向传感器请求存储的AP。如果AP不存在,则传感器将错误代码返回给ATLib,当使用密码短语或者不存在Option ROM时,这个步骤发生。
如果AP存在,则仅当(FDE_Active AND SMRPBA Valid)时,传感器将AP传递给ATLIB(注释:如果(FDE_Active AND SMRPBAValid)OR(SSD_Enabled AND SMROS Valid)-由于传感器不知道哪种类型(FDE或OS)的软件正在请求,则传感器实际上可返回AP);否则,将错误代码返回给ATLib。如果ATLib已从传感器接收到AP(PBA保存AP),则ATLIB将AP提供给FDE,并返回。否则,如果0ption ROM不运行,则ATILB执行安全指纹认证(注释:由于SMRPBA没有被使用,而是可被FDE使用,所以ATILB工作)。否则,如果Option ROM在系统上,但是用户输入密码短语:ATLib将错误代码返回给FDE(用户必须提供交替认证);ATLIB必须将随机数扩展到SMR_PBA中使其无效(注释:无论先前是否将其cap在BIOS中,均执行这个步骤)。使安全会话无效。FDE认证完成。ATLIB将控制返回给FDE。
在具有启用的单次敲击进入桌面(SSD)的系统中,驱动程序可以能够从传感器接收应用程序有效载荷(AP),而不执行新的安全指纹认证。如果系统禁用这种能力或者如果进行密码短语绕过PBA,则系统必须得到用于登录的敲击。
在任一情况下,引导序列继续。装置驱动程序加载。驱动程序建立与传感器的安全会话。驱动程序对自身进行测量,并将测量扩展到SMROS中。驱动程序测量PSI数据,并扩展到SMROS中。驱动程序加载和测量PMPce,并扩展SMROS。驱动程序向传感器请求主机根密钥(HRK):传感器将SMROS中的值与NVM中的SMR_OS_VAL进行比较;如果相等,则将HRK发送给驱动程序。驱动程序使用HRK对主机密钥blob进行解密。驱动程序使用传感器μHSM生成新的HRK。驱动程序通过发送旧的HRK和新的HRK命令传感器重置HRK:传感器在重置HRK之前应该对有效的SMROS进行验证(注释:这个步骤限制每次引导时改变HRK一次,这个步骤在任何人登录进来之前发生)。
驱动程序向传感器请求存储的AP。传感器将AP传递给驱动程序:仅当(SSD_Enalbed AND SMROS Valid);否则(已使用密码短语或者禁用交替或SSD,等等);返回错误代码。驱动程序将随机数扩展到SMROS中以使SMR无效。驱动程序使用新的HRK重新对主机密钥blob进行加密,并写入到数据存储器中(注释:如果HRK_RESET失败,则驱动程序必须恢复到旧的HRK,并抹去密钥数据,如果即插即用(PNP)事件而不是OS引导发生,则这个步骤将发生)。传感器服务加载;检验传感器状态。INIT_Complete标志被设置(这里的答复为“是”)?应用程序(GINA/VCP)向服务请求AP。服务向驱动程序请求AP。如果不可获得AP,则驱动程序执行安全指纹认证。使安全会话无效。OS认证完成。驱动程序将控制和AP返回给服务。服务将控制和AP返回给应用程序。正常引导序列结束。
将对漫游模板的示例进行描述。仅在策略授权漫游模板的系统上可以接受漫游模板。传感器在NVRAM中将具有识别这个策略是否有效的标志。将可基于模板头的未加密部分中的信息来识别漫游模板。漫游模板和非漫游模板之间的主要区别是,将使用相同的密钥对工作组内的所有漫游模板进行加密。将使用HRK存储位置将这个密钥存储在传感器NVRAM中。将通过从工作组或域服务器上的应用程序广播来设置HRK。当传感器中的漫游模板允许标志被设置为true时,如它正常所做的那样,将基于有效的SMR条件不向驱动程序颁发HRK。请注意,这种架构不阻止在特定机器上混合漫游模板和固定客户端模板。
为了使得多个安全传感器在单个计算机上操作(不要求多次注册),可能需要将一个传感器的NVRAM内容复制到另一个传感器上。这种操作将要求用户将所有者密码短语提供给传感器进行复制。还将要求接收传感器处于未被初始化的状态。已被初始化的传感器将不接受NVRAM复制数据。以下伪代码描述从一个安全传感器复制另一个安全传感器的事件序列的示例。
对新的传感器进行检验以确定它是否被初始化。如果它没有被初始化:允许用户复制传感器;从用户获得用于当前传感器的所有者密码短语,并转换为所有者密钥;通过传递所有者密钥来命令传感器导出NVRAM副本;传感器将对照NVRAM中的副本对所有者密钥进行验证;如果密钥匹配,则传感器从所有者密钥得到对称的加密密钥,传感器使用得到的密钥对NVRAM的内容进行加密和发送;通过传递所有者密钥和副本blob来命令新的传感器导入NVRAM副本;传感器检验查看它是否已经被初始化;如果它没有被初始化,则传感器从所有者密钥得到解密密钥,传感器对副本blob进行解密,传感器对照解密的副本blob中的所有者密钥对传递的所有者密钥进行检验,如果所有者密钥匹配,则将解密的副本blob复制到NVRAM中,否则失败命令;否则失败命令。否则,不需要动作。
以下是本发明的各个实施例各自或组合可提供的各种安全特征的描述。硬件安全的用户证书(比如,用户ID和密码):传感器对用户证书进行封包,并且仅当执行安全4-步骤的基于硬件的最终匹配时,传感器才对封包的用户证书进行解包和颁发。传感器上的4步骤匹配:从传感器颁发证书所需的传感器上的4步骤最终匹配,包括:1、图像处理数据元素大于对比匹配阈值;2、对数字化水印数据进行验证;3、使SMRMV等于注册SMRval;以及4、看门狗定时器不终止。硬件加密模板:传感器使用决不离开传感器的密钥对模板进行加密。USB接口上的加密图像和数据:使用在每次安全会话上所生成的会话加密密钥对在传感器和软件之间传送的所有数据(包括图像数据)进行加密。被测系统的特殊加密模板:认证期间测量的模板确保防止模板分站(substation)。仅可在创建模板的系统上对这些模板进行加密和解密,可在所有模板上使用AES128加密。硬件生成且被存储的密钥:在传感器内随机生成所有密钥。密钥决不离开传感器。
数字化加水印的图像和模板:通过对每一图像和模板“加水印”来确保主机端的图像处理的防篡改操作。被测组件:预引导、opt。将FDE和OS安全组件测量到传感器测量寄存器(SMR)中以确保在传感器操作之前平台构造的信任。信任的软件组件:数字签名和查问/应答机制确保所有软件组件,包括应用程序之间的信任。基于Diffie Hellman的安全会话确保传感器和驱动程序之间的信任。软件组件之间的安全数据传送:使用SSL对软件组件之间传送(包括传送到应用程序和从应用程序传送)的所有数据进行加密。TPM增强操作:TPM opt-in提高了传感器和装置驱动程序之间的软件安全会话。
可防止全局攻击。安全用户证书:在安全有效载荷(SP)内加密的应用程序定义的有效载荷(AP),仅可在传感器内部对AP进行解密,仅可在有效指纹认证之后从传感器颁发AP。确保个人数据隐私。不需要TPM。灵活的应用程序有效载荷:网络登录证书-用户名、密码、域等。用户定义的加密密钥;正确的网站登录数据-即,防网络仿冒;子AP可被合并-允许不同的系统组件(PBA、FVE、OS)将它们自己的证书包括到单个总AP中。
参照图14至图16,将对这样的系统的示例的进一步的细节进行描述,所述系统包括主机平台、具有硬件安全模块的传感器和可选的外部存储器,比如,SPI闪存或硬盘驱动器。安全传感器可以是滑动式传感器,比如,具有大于30cm/sec滑动速度的滑动式传感器。传感器可包括片上硬件安全模块(μHSM),以下将参照图16对μHSM进行描述。NVRAM安全地存储所有加密密钥,密钥决不离开传感器。包括片上匹配引擎,128比特AES加密/解密可涉及所有指纹图像和模板以及安全应用程序有效载荷。可提供加密的USB 2.0全速系统I/F,具有安全代码的私有串行闪存I/F和模板存储器。传感器可包括具有3.3V USB I/O的1.8V内核。此外,传感器可包括45BGA封装:13.8×5×1.68mm、高级耐用表面涂层和集成手指驱动器。可包括静电放电能力(+/-15KV)以及用于拒绝伪造手指的高级防欺骗能力。
硬件安全模块可定义微处理器控制的安全引擎。它可包括生成所有密钥的真随机数生成器。加密钥的SHA-1散列引擎用于SMR计算,128比特AES引擎对模板等进行加密。用于DH的公钥引擎使得可进行安全的USB通信。包括非易失性存储器和如图16所示的其它篡改保证特征。
参照图17,示出了包括传感器和可选的外部存储器的系统的示例的硬件安全元件。如所述,传感器或系统测量寄存器(SMR)保存代码测量。传感器的NVM包括软件状态散列、持久的密钥存储器和传感器状态标志。可选的外部存储器,比如,512KB SPI闪存,可包括图像处理代码、传感器加密的用户模板和外部封包的SW密钥。
本领域技术人员得益于前面的描述和相关附图中展现的教导将会想起本发明的许多修改和其它实施例。因此,应该理解,本发明不限于所公开的特定实施例,这些修改和实施例旨在被包含在在所附权利要求的范围内。