专利名称:通过管理性引擎进行企业网单点登录的方法和系统的制作方法
技术领域:
本发明总体上涉及用户认证。更具体地,本发明涉及使用管理性引擎进行企业网
单点登录的方法和系统。
背景技术:
用于数据保护的Inte1⑧Anti-Theft 技术(AT_d)是一种向芯片组及其外围部 件添加全盘加密(FDE)的平台能力。由AT-d保护的驱动器上的所有数据都是加密的,包括 0S(操作系统)和用户数据。保持未加密的区域包括管理性引擎(manageability engine, ME)元数据和预引导(pre-boot)认证元数据区域。将驱动器完全加密保护了包含在分页和 配置文件中的敏感数据,并且它防止了离线攻击者通过工具箱(tool kit)对系统文件的操 纵。 将驱动器完全加密也存在着挑战。例如,在用户被认证之前,对该用户来说磁盘驱 动器是禁止访问的。当前的实践依赖操作系统(OS)来执行初始认证,但是采用FDE时,该 OS是加密的,这使得通过OS来认证用户是困难的。因此,用户认证必须在需要驱动器访问 的任何预引导服务之前进行。
纳入本文并形成说明书的一部分的
了本发明的实施例,并与说明书一起 进一步解释了本发明的原理,使得相关领域的技术人员能够制造和使用本发明。在附图中,
类似的附图标记通常指示同样的、功能类似的、和/或结构类似的元素。由对应的附图标记 中的最左边的数字指示元素第一次在其中出现的附图。 图1是说明了可以在其中应用所描述实施例的各个方面的示例性计算机平台的 框图; 图2是说明了根据本发明实施例的、用于使用管理性引擎进行企业网单点登录的 系统的框图; 图3是描述了根据本发明实施例的、用于使用管理性引擎进行企业网单点登录的 示例性方法的流程图; 图4是描述了根据本发明实施例的、使得能够访问来自一个或多个企业服务器的 资源或服务的示例性方法的流程图。
具体实施例方式
虽然本文参照用于特定应用的示例性实施例描述了本发明,但是应当理解,本发 明不限于这些示例性实施例。使用本文提供的教导的相关领域技术人员将会意识到在本发 明范围内和在本发明的实施例具有明显应用价值的其它领域内的其它修改、应用和实施方 式。 说明书中所提及的本发明的" 一个实施例"、" 一实施例"或"另一实施例"意味着结合该实施例所描述的特定特征、结构或特性包含在本发明的至少一个实施例中。因此,在 整个说明书中不同地方出现的短语"在一个实施例中"或"在一实施例中"并不是必然指代 同一实施例。 本发明实施例提供了由管理性引擎(ME)在预引导操作期间接收来自用户的认证 响应,并使用Kerberos协议将该用户已经成功地向PC (个人计算机)认证注册到Kerberos 密钥分配中心(KDC)。所述KDC向所述ME提供密钥加密密钥(KEK)形式的单点登录证书, 该单点登录证书以后可由所述PC使用以获得对企业服务器的安全访问。
本发明实施例提供了早期在预引导环境中使用企业身份管理服务来执行用户认 证的能力。通过使用管理性引擎来提供这种能力,该管理性引擎使得能够直接带外访问企 业网以使用正由该企业网所管理的用户证书。本发明实施例还使得操作系统(OS)能够识 别出用户已经在OS引导期间被认证。这是通过允许证书管理器拦截OS用户登录以便通过 从所述ME请求所述KEK来确定该用户是否已经经过企业认证来实现的。如果所述KEK安全 地保存在所述ME中,那么所述KEK被检索并返回给所述证书管理器。 一旦接收到所述KEK, 证书管理器就确定该用户已经向该企业认证了 ,并且阻止OS用户登录提示,从而让该过程 仅可请求单点登录。 本发明实施例摆脱了平台对操作系统(OS)及其配置的依赖,从而允许基于用户 (和机器)的身份来动态地选择和配置要在所述平台上使用的虚拟机监视器(V匪)、虚拟机 (VM) 、 OS和应用。保护用户认证不受泄密的OS和/或VMM的影响。向所述KDC的认证以 及后续将用户证书/授权向所述平台的发放不受恶意软件或者其他对OS或者VMM的攻击 的影响。 虽然使用Kerberos作为身份管理基础结构进行描述了本发明的实施例,但是本 发明并不限于Kerberos基础结构。相关领域技术人员将知道,也可以使用其它的身份管 理基础结构,例如SAML(安全断言标记语言)、卡空间(Card Space)、自由联盟(Liberty Alliance)、公共密钥等。 图1是说明了可以在其中应用所描述的实施例的各个方面的示例性计算机平台 的框图。计算机平台100包括处理器102(也被称为带内处理器)。处理器102可以耦合 到系统存储器,在一个实施例中,所述系统存储器可以是动态随机存取存储器104。处理器 102可以是能够执行软件的任何类型的处理器,例如微处理器、数字信号处理器、微控制器 等。虽然图1仅示出了一种这样的处理器102,但是在平台IOO中可以有一个或多个处理 器,并且所述处理器中的一个或多个可以包括多个线程、多个核等。 处理器102还可以经由匿I(直接媒体接口 )接口 108连接到芯片组106。芯片组 106包括管理性引擎(ME)110、加密服务块(CSB)112和虚拟引擎(VE)114等。CSB 112是 高级加密标准的一种硬件应用,它支持128和256比特的密钥长度。VE 114耦合到串行高 级技术附件(SATA)控制器116,所述SATA控制器116执行SATA命令解码和其他用于任何 连接的SATA存储设备的加速操作,所述SATA存储设备例如SATA设备118。 VE 114还耦合 到非易失性存储器(NVM)控制器120,以高速缓存诸如NAND闪存122这样的NVM设备上的 数据。ME IIO通过配置策略和密钥来控制VE 114和CSB 112的行为。ME 110收集审核事 件、管理用户认证以及与企业服务126连接。ME 110使用带外微控制器(未示出)和网络 控制器124经由网络125与企业服务126连接。在一个实施例中,网络125可以是广域网,例如但不限于因特网。 在一个实施例中,芯片组106经由串行外围接口 (SPI)总线128耦合到非易失性 存储器130。非易失性存储器130可以是闪存或静态随机存取存储器(SRAM)等。在许多现 有的平台中,NVM 130是闪存。闪存130包括用于芯片组106的芯片组固件132和用于网 络控制器124的网络控制器固件134。 在一些实施例中,处理器102具有位于NVM 130中的基本输入/输出系统(BIOS) 固件136。在其它实施例中,处理器102可以从远程设备(未示出)引导,其中引导向量(指 针)驻留在NVM 130的BIOS固件136中。芯片组106可以访问NVM 130的所有内容,包括 用于控制芯片组106的芯片组固件132、用于控制网络控制器124的网络控制器固件134、 以及BIOS固件136。 图2是说明了根据本发明实施例的用于使用管理性引擎进行企业网单点登录的 系统的框图。系统200包括具有预引导(pre-boot)部分和引导后(post-boot)部分的CPU 202。所述预引导部分包括基本输入/输出系统(BIOS) 204和预引导认证模块(PBAM) 206 等。所述引导后部分包括操作系统(0S)208和GINA(图像识别与认证)210等。系统200 还包括管理性引擎(ME) 110。 ME IIO耦合到CPU 202。 当首次加电时,BIOS 204部分地引用个人计算机(PC)所运行的固件代码。BIOS 204的主要功能是识别并初始化诸如视频显卡、硬盘等这样的系统部件硬件和其它的硬件 设备。BIOS 204可以是,例如,EFI(可扩展固件接口 )BIOS或传统BIOS。在本发明的各个 实施例中,可以使用PBAM 206通过BIOS 204来认证用户(未示出)。
PBAM 206实现用于预引导交互式登录的认证策略。PBAM 206是BIOS 204的扩 展,以确保OS 208外部的安全、防篡改环境是可信的认证层。PBAM 206向用户提供认证挑 战来对该用户进行认证。例如,PBAM 206可以向用户请求用户标识和口令。可以将所述用 户标识和口令与所存储的数据进行比较,以确定是否认证该用户。在用户已经证实他们具 有前进的正确口令之前,PBAM 206阻止OS 208加载。 OS 208负责活动的管理和协调以及计算机平台的资源共享。OS 208可以是,例 如,微软Windows OS或Linux OS。 GINA(图像识别与认证)210是一种实现用于OS交互式登录模型的认证策略的动 态链接库(DLL)。 GINA也被称为证书管理器,它执行用于OS处的用户认证的所有识别与认 证用户交互。 ME 110包括ME公共服务模块212等。ME公共服务(CS)模块212代表了在管理 性引擎IIO上运行的固件层。CS 212提供了通信栈,该通信栈允许ME IIO连接到企业网, 例如,企业220。 CS 212还提供了插入接口,通过该插入接口能够添加/移除固件模块以分 别增加/减小芯片组106的功能。在本发明的一个实施例中,DT2模块214和公共认证模 块(CAM)216是向芯片组106提供附加功能的固件插入。其它FW 218示出了用于另一固件 模块的示例性放置处。加密密钥DWK (设备包裹密钥)215和KEK (密钥加密密钥)217分别 是用于DT2模块214和CAM 216的相应证书,并被示出为安全地存储在所述平台上。其它 219是用于其它FW 218的加密密钥的放置处。 DT2模块214是用于控制对加密的存储设备的访问的固件插入。DWK215是用于使 用固件插入DT2 214来解锁加密的磁盘的加密密钥/证书。访问加密密钥DWK 215是有条件的,其基于用户或管理员的成功认证。 公共认证模块(CAM) 216是主要负责与预引导BIOS代码、可选的ROM或执行用户 认证挑战的其它主机固件模块进行接口的固件插入。这些挑战的响应被提供给CAM 216,在 CAM 216处验证所声明的身份。在一个实施例中,CAM 216也被称为Kerberos客户端。KEK 217,也被称为Kerberos票证授权票证(ticket granting ticket)或TGT,是被用于通过企 业服务器226获得访问企业服务126的票证的加密密钥/证书。访问加密密钥KEK 217是 有条件的,其基于用户或管理员的成功认证。 系统200通过网络(如图1所示)连接到企业220。企业220包括密钥分配中心 (KDC)222、目录(224)、和通过企业服务器226的企业服务126。 KDC 222是用于帮助认证用户和服务的认证服务器。KDC 222分发票证以使得能 够访问诸如企业服务之类的服务。KDC 222响应于来自客户端的初始认证请求而颁发称为 密钥加密密钥(KEK)的专用密钥,所述KEK在Kerberos挑战响应协议中也被定义为票证授 权票证(TGT)。如果用户实际上是他们所声称的用户,那么他们能够在无需重新输入他们的 口令的情况下,用所述KEK/TGT获得企业服务126的其它服务票证。KDC 222通过后端接口 (未示出)连接到目录224以获得关于用户、主机或服务的信息。 目录224存储与用户、主机和服务相关联的数据。存储在目录224中的数据可以 包括但不限于用户名、口令和口令到期日期、以及该用户所持有的关于服务的任何票证的 属性。 图3是描述了根据本发明实施例的、用于使用管理性引擎进行企业网单点登录的 示例性方法的流程图300。本发明不限于本文参照流程图300所描述的实施例。而是,在阅 读了本文提供的这些教导之后,对本领域技术人员而言显而易见,其它功能流程图是属于 本发明保护范围的。该过程从框302开始,并立即进行到框304。 在框304中,所述ME公共认证模块从所述PBAM接收用户认证证书(即,用户标识 和口令)。用户通过BIOS向PBAM认证。PBAM向用户提供认证挑战来认证该用户。例如, PBAM可以向用户请求用户标识和口令。响应于所述挑战,该用户向PBAM提供用户认证证书 并向ME发送所述用户认证证书。该过程进行到框306。 在框306中,ME开启到企业KDC的连接,以请求密钥加密密钥(KEK),该密钥加密 密钥(KEK)也被称为票证授权票证(TGT)。所述KEK可被用于获取用于针对服务126访问 企业服务器226的服务票证。企业KDC执行企业挑战响应协议,以通过查询包含关于用户 的信息的目录服务来验证/认证所述用户是企业的已知实体。所述目录服务可以是微软活 动目录、LDAP(轻便目录访问协议)或某个其他的目录服务。如果所述用户是已知的实体 (即,所述用户标识和口令是可信的),那么企业KDC将返回KEK。企业KDC还将返回与用户 特权、组成员身份或者该用户的任何其它限制相关的任何其它授权信息。所述KEK具有请 求企业服务器的服务器特定票证的权限。然后,该过程进行到框308。 在框308中,所述ME公共认证模块接收所述KEK和与所述用户相关的任何其它授 权信息,并在平台闪存或某个其它安全存储区中安全地存储所述KEK。一旦KEK被安全地存 储在所述闪存中,它就受所述ME的控制,从而,ME现在具有准许获取企业服务器的服务特 定票证的权限。然后,该过程进行到框310。 在一个实施例中,所述ME能够基于所述用户的成功认证而执行某个动作,它能够获取服务特定票证,或者它能够执行ME公共服务下的某个服务。 在框310中,可以使用所述目录提供的令牌或通过从认证参数获得设备包裹密钥 (DWK)来解锁平台资源,例如加密的磁盘。然后,该过程进行到框312。 在该过程的这一点,所述用户实质上已经使用企业用户证书(单点登录证书)登 录到所述ME。现在,BIOS需要加载OS,并且所述用户需要向0S认证。在框312中,ME指示 该过程回到BIOS(即,BI0S 206)以引导0S。然后,该过程进行到框314。
当OS被引导时,在它到达准备向OS认证所述用户之前,它进行它的常规过程。这 是通过调用诸如微软GINA这样的证书管理器执行的。在GINA处理期间,必须决定是提示 用户输入用户认证证书还是自动地从ME获取证书。在框314中,软件补片(shim),例如, GINA包裹器,被用于在用户登录屏幕将要呈现给用户时拦截常规的OS登录过程。所述软件 补片查询所述ME以验证所述用户已经通过请求KEK来向企业220认证。然后,该过程进行 到判定框316。 在判定框316中,确定所述KEK是否是可用的。如果所述KEK是可用的,则该过程 进行到框318。 在框318中,所述KEK请求被引导到所述ME,在ME处,从所述安全存储器中检索所 述KEK并返回给所述补片,在所述补片处,所述补片确定所述用户已经向所述企业认证,并 且阻止所述用户登录提示,从而让该过程仅可请求单点登录。 返回判定框316,如果确定所述KEK不是可用的,那么所述用户登录提示不会被阻 止,并且OS用户认证过程将按照常规继续进行(框320)。 当需要访问企业服务器上的资源或服务时,OS现在能够使用本地KEK来获得适当 企业服务器的特定票证。所述票证可被用于构建在OS和企业服务器之间的安全通信信道。 在一个实施例中,TLS协议可以被用于协商TLS会话。 图4是描述了根据本发明实施例的、用于使能对来自于一个或多个企业服务器的 资源或服务的访问的示例性方法的流程图400。本发明不限于本文参照流程图400所描述 的实施例。而是,在阅读了本文提供的这些教导之后,对相关领域技术人员而言显而易见, 其它功能流程图是属于本发明保护范围的。该过程从框402开始,并立即进行到框404。
在框404中,当用户请求对企业服务或资源的授权时,该请求被引导到所述ME。然 后,该过程进行到框406。 在框406中,ME使用所述KEK从所述企业KDC获得提供服务的企业服务器的特定 票证。然后,该过程进行到框408。 在框408中,一旦接收到用于所述服务的票证,所述ME向所述OS (或所述OS空间 中的应用)提供所述票证。在一个实施例中,所述票证可以包括嵌入在所述票证中的密钥。 然后,该过程进行到框410。 在框410中,所述OS可以使用所述票证来构建在企业服务器和PC之间的安全通 信信道。在一个实施例中,TLS协议可以被用于协商所述PC和服务器之间的TLS会话。
本发明实施例的某些方面可以用硬件、软件、或它们的组合来实现,并且这些方面 可以在一个或多个计算机平台或其它处理系统中实现。实际上,在一个实施例中,所述方法 可以在可编程机上执行的程序中实现,该可编程机例如移动或静态计算机、个人数字助理 (PDA)、机顶盒、蜂窝电话和寻呼机、和其它电子设备,其中,上述其它电子设备中的每个设
8备包括至少一个处理器、可由所述至少一个处理器读取的存储介质(包括易失性和非易失
性存储器和/或存储元件)、至少一个输入设备、和一个或多个输出设备。程序代码应用于
用所述输入设备输入的数据,以执行所描述的功能并产生输出信息。所述输出信息可以应
用于一个或多个输出设备。本领域普通技术人员可以意识到,可以用包括多处理器系统、微
型计算机、大型计算机等的各种计算机平台配置来实施本发明的实施例。 每个程序可以在高级过程语言或面向对象编程语言中实现,以与处理系统进行通
信。然而,如果期望的话,程序可以在汇编语言或机器语言中实现。在任何情况中,所述语
言可以被编译或解释。 可以用程序指令来使得用这些指令编程的通用或专用处理系统执行本文所描述 的方法。可替换地,这些方法可以由包含执行这些方法的硬布线逻辑的专用硬件部件执行, 或者由编程的计算机部件和定制硬件部件的任意组合来执行。可以将本文描述的这些方法 作为计算机程序产品进行提供,所述计算机程序产品可以包括在其上存储有可被用于编程 处理系统或其它电子设备以执行这些方法的指令的机器可读介质。本文使用的术语"机器 可读介质"或者"机器可访问介质"将包括能够存储或编码由所述机器执行并使得所述机器 执行本文描述的任何一种方法的指令序列的任何介质。因此,术语"机器可读介质"和"机 器可访问介质"将包括但不限于固态存储器、光盘和磁盘等。此外,本领域中常说一种或另 一种形式的软件(例如,程序、过程、进程、应用、模块、逻辑等)采取动作或导致结果。这种 表达方式仅是用来陈述通过处理系统执行所述软件而使所述处理器执行动作或产生结果 的一种简略方式。 虽然上面已经描述了本发明的各个实施例,但是应当理解,它们只是以示例的方 式进行介绍,而非限制的方式。本领域技术人员将理解,在不背离所附权利要求定义的本发 明精神和范围的情况下,可以进行各种形式和细节上的改变。因此,本发明的广度和范围不 应受限于上述任一示例性实施例,而是应当根据所附的权利要求及其等效形式进行定义。
权利要求
一种使用管理性引擎的安全访问方法,包括在预引导操作期间,接收来自用户的认证响应;采用协议向密钥分配中心(KDC)注册;以及接收密钥加密密钥(KEK)形式的单点登录证书,其中,所述KEK随后被用于获取用于建立对企业服务器的安全访问的证书。
2. 根据权利要求1所述的方法,其中,所述协议包括Kerberos协议,并且所述KDC包括 Kerberos KDC。
3. 根据权利要求l所述的方法,其中,向所述KDC注册表明所述用户已经成功地向个人 计算机认证。
4. 根据权利要求1所述的方法,其中,所述协议包括Kerberos、 SAML、卡空间、自由联 盟、公共密钥、或任何其它身份管理基础结构。
5. —种管理性引擎(ME)安全访问方法,包括 从预引导认证模块(PBAM)接收用户认证证书; 从企业请求密钥加密密钥(KEK);如果所述用户被所述企业认证,则接收所述KEK并安全地存储所述KEK ; 使BIOS能够继续引导操作系统(OS); 从用于拦截OS登录过程的补片处接收对所述KEK的请求; 从安全存储器中检索所述KEK ;以及向所述OS发送所述KEK,其中,所述补片在接收到所述KEK时阻止所述OS登录提示并 完成所述OS的引导;其中,当所述OS需要访问所述企业服务器时,所述OS从所述ME检索所述KEK以获取 特定于所述企业服务器的票证。
6. 根据权利要求5所述的方法,其中,用户通过BI0S向所述PBAM认证。
7. 根据权利要求5所述的方法,其中,所述PBAM向用户提供认证挑战以认证所述用户, 所述认证挑战需要所述用户输入所述用户认证证书。
8. 根据权利要求5所述的方法,其中,所述用户认证包括用户标识和用户口令。
9. 根据权利要求5所述的方法,其中,从企业请求密钥加密密钥(KEK)包括开启到企 业网的连接并从企业密钥分配中心(KDC)请求所述KEK。
10. 根据权利要求9所述的方法,其中,所述KDC通过使用所述用户认证证书查询目录, 来验证所述用户是所述企业网的已知实体,从而验证所述用户的可信性。
11. 根据权利要求5所述的方法,其中,当所述KEK被安全地存储时,所述KEK受所述管 理性引擎的控制,并且具有准许获取企业服务器的服务特定票证的权限。
12. 根据权利要求5所述的方法,其中,当所述KEK被安全地存储时,所述用户使用企业 单点登录证书登录到所述ME。
13. 根据权利要求5所述的方法,其中,加载所述OS调用用户认证模块以向所述OS认 证所述用户。
14. 根据权利要求5所述的方法,其中,阻止所述用户登录提示使得所述用户认证能够 仅请求单点登录。
15. —种安全访问系统,包括用于在预引导操作期间接收来自用户的认证响应的模块; 用于采用协议向密钥分配中心(KDC)注册的模块;以及用于接收密钥加密密钥(KEK)形式的单点登录证书的模块,其中,所述KEK随后被用于 获取用于建立对企业服务器的安全访问的证书。
16. 根据权利要求15所述的系统,其中,所述协议包括Kerberos协议,并且所述KDC包 括Kerberos KDC。
17. 根据权利要求15所述的系统,其中,向所述KDC注册表明所述用户已经成功地向个 人计算机认证。
18. 根据权利要求15所述的系统,其中,所述协议包括Kerberos、SAML、卡空间、自由联 盟、公共密钥、或任何其它身份管理基础结构。
19. 一种安全访问系统,包括用于从预引导认证模块(PBAM)接收用户认证证书的单元; 用于从企业请求密钥加密密钥(KEK)的单元;用于如果所述用户被所述企业认证,则接收所述KEK并安全地存储所述KEK的单元; 用于使BIOS能够继续引导操作系统(0S)的单元; 用于从用于拦截OS登录过程的补片处接收对所述KEK的请求的单元; 用于从安全存储器中检索所述KEK的单元;以及用于向所述OS发送所述KEK的单元,其中,所述补片在接收到所述KEK时阻止所述OS 登录提示并完成所述OS的引导;其中,当所述OS需要访问所述企业服务器时,所述OS从所述ME检索所述KEK以获取 特定于所述企业服务器的票证。
20. 根据权利要求19所述的系统,其中,用户通过BI0S向所述PBAM认证。
21. 根据权利要求19所述的系统,其中,所述PBAM向用户提供认证挑战以认证所述用 户,所述认证挑战需要所述用户输入所述用户认证证书。
22. 根据权利要求19所述的系统,其中,所述用户认证包括用户标识和用户口令。
23. 根据权利要求19所述的系统,其中,用于从企业请求密钥加密密钥(KEK)的单元包 括用于开启到企业网的连接并从企业密钥分配中心(KDC)请求所述KEK的单元。
24. 根据权利要求23所述的系统,其中,所述KDC通过使用所述用户认证证书查询目 录,来验证所述用户是所述企业网的已知实体,从而验证所述用户的可信性。
25. 根据权利要求19所述的系统,其中,当所述KEK被安全地存储时,所述KEK受所述 管理性引擎的控制,并且具有准许获取企业服务器的服务特定票证的权限。
26. 根据权利要求19所述的系统,其中,当所述KEK被安全地存储时,所述用户使用企 业单点登录证书登录到所述ME。
27. 根据权利要求19所述的系统,其中,加载所述0S调用用户认证模块以向所述OS认 证所述用户。
28. 根据权利要求19所述的系统,其中,阻止所述用户登录提示使得所述用户认证能 够仅请求单点登录。
全文摘要
一种通过管理性引擎进行企业网单点登录的方法和系统。管理性引擎(ME)在预引导认证期间接收来自用户的认证响应并将所述用户向密钥分配中心(KDC)注册,表明所述用户已经成功地向PC认证。所述KDC向所述ME提供密钥加密密钥(KEK)形式的单点登录证书。所述KEK可以随后被所述PC使用以获取用于建立对企业服务器的安全访问的证书。
文档编号H04L9/32GK101771689SQ200910262640
公开日2010年7月7日 申请日期2009年12月25日 优先权日2008年12月30日
发明者N·史密斯, P·戈埃尔 申请人:英特尔公司