安全装置及在其内提供安全服务至主机的方法、安全设备与流程

文档序号:11831274阅读:272来源:国知局
安全装置及在其内提供安全服务至主机的方法、安全设备与流程

本申请主张于2014年7月24日提出申请的美国临时申请No.62/028,345的权益,其公开内容作为参考并入至本文。

技术领域

本发明是一般关于一种安全计算环境,且特别是有关于一种安全装置及在其内提供安全服务至主机的方法、安全设备以及计算机软件产品。



背景技术:

在计算系统中,可信赖计算(Trusted Computing)是为例如由可信赖计算组织(Trusted Computing Group,TCG)所研发及提倡的安全技术。借助可信赖计算,通过采用加密以及其他安全技术实现计算机行为。举例来说,其揭露于此作为参考并入的美国专利公开号2005/0021968阐述了一种提供安全固件更新的方法。第一验证凭据是利用安全凭证(secure token)所产生的金钥(key)以加密形式安全地储存在平台,例如可信赖平台模块(Trusted Platform Module,TPM)。平台的配置是“压印(imprinted)”,使得相同配置需通过解封对平台配置的金钥,以存取使用于解密第一验证凭据的金钥。在随后的固件更新过程期间,包含第二验证凭据的固件更新影像在平台上接收。若平台配置为相同的,当金钥被加封时,可解封金钥并将其使用于解密第一验证凭据。在第一验证凭据中的公钥(public key)可接着使用于通过第二验证凭据以验证固件更新影像。

作为另一示例,其揭露于此作为参考并入的美国专利公开号2003/0061494阐述一种保护计算机数据的方法及系统。计算机提供具有预载入作业系统(pre-operating system,pre-OS)空间以及现载入作业系统(operating system-present,OS-present)空间。保护储存器(protected storage)是通过可信赖平台模块(TPM)从pre-OS空间存取。相似地,保护储存器是通过TPM从OS-present空间被存取。因此,计算机可避免未经授 权的使用者自pre-OS空间以及OS-present空间中存取保护储存器内所储存的数据。



技术实现要素:

本文所述的本发明的实施例是提供一种在安全装置内提供安全服务至主机的方法,其包含接收来自在主机上执行的应用程序的安全指令。安全指令通过存取安全装置外的非易失性存储器(Non-Volatile Memory,NVM)装置而被执行,其中非易失性存储器通过专用装置驱动器通透(transparently)至应用程序,专用装置驱动器在主机上执行并在NVM装置以及安全装置之间调解。

在一些实施例中,安全装置、专用装置驱动器以及NVM装置皆符合可信赖计算组织(Trusting Computing Group,TCG)的各自安全标准。在其他实施例中,安全装置与专用装置驱动器以及至少一部分的NVM装置储存空间是根据TCG的规范执行可信赖平台模块(TPM)。

在实施例中,执行安全指令包含在应用程序以及专用装置驱动器之间进行通信,且安全装置是位于主机作为主控(master)而安全装置作为从属(slave)的接口上。在另一实施例中,执行安全指令包含通过接口于专用装置驱动器以及NVM装置之间进行通信。在又另一实施例中,执行安全指令包含通过安全装置要求装置驱动器将数据写入NVM装置或从NVM装置读取数据。

在一些实施例中,要求装置驱动器包含在安全装置内部预备要求,并通过接口发送信号至装置驱动器以取得要求。在其他实施例中,要求装置驱动器包含在安全装置的暂存器内预备要求,并等待装置驱动器通过以装置驱动器来轮询暂存器而取得要求。在又一些其他实施例中,执行安全指令包含在安全装置内预备在完成安全指令的执行时的指令回应,并指示应用程序其中指令回应已准备好被应用程序所读取。

此外,根据本发明的实施例提供一种安全装置,其包含主机接口以及电路。主机接口是配置以接收来自在主机上执行的应用程序的安全指令。电路是配置以通过存取非易失性存储器(NVM)装置以执行安全指令,其中非易失性存储器装置于安全装置外通过专用装置驱动器以通透至应用程序,而专用装置驱动器在主机上执行并在NVM装置以及安全装置之间调解。

此外,根据本发明的实施例提供一种安全设备,其包含提供安全服务至主机的安全装置以及在主机上执行的专用装置驱动器。装置驱动器是配置以在安全装置以及安 全装置外的非易失性存储器(NVM)装置之间调解。安全装置是配置以接收来自在主机上执行的应用程序的安全指令,并通过专用装置驱动器存取NVM装置以通透至应用程序而执行安全指令。

此外,根据本发明的实施例提供一种计算机软件产品,其包含其中储存程序指令的有形非暂时性计算机可读取媒体(tangible non-transitory computer-readable medium),在通过主机的处理器读取时指示,致使处理器运行专用装置驱动器,以通过专用装置驱动器在安全装置以及非易失性存储器装置之间进行调解,其中安全装置针对在主机上执行的应用程序提供安全服务而安全装置外的非易失性存储器(NVM)装置通透至应用程序。

附图说明

本发明将搭配图式自下列本发明实施例的详细说明中更充分地了解:

图1示意性绘示根据本文所述的实施例的计算系统的方块图;以及

图2示意性绘示根据本文所述的实施例在计算系统内提供安全服务的方法的流程图。

附图标记

20:系统

24:主机

28:安全装置

32、40:接口

36:非易失性存储器装置

44:CPU

48:安全应用程序

52:装置驱动器

60:微控制器

62:内部汇流排

64:主机接口

66:系统管理模块

68:随机存取存储器

72:只读存储器

76:一次性可程序存储器

80:加密引擎

100、104、106、108、112、114、116、120、124、126、128、132:步骤

具体实施方式

本文所述的本发明的实施例提供一种改善计算系统的安全性的方法及系统。在本文所揭露的实施例中,安全装置作为用于主机的加密协同处理器(cryptographic co-processor)。主机利用安全装置的辅助来执行提供安全服务的安全应用程序,其在本文中亦称为“应用程序”。安全应用程序传送安全指令至安全装置,并从安全装置接收各自指令回应。

当提供安全应用程序的服务时,安全装置有时需存取外部非易失性存储器(NVM)装置。在本公开内容的上下文以及权利要求中,用词“NVM装置”是指即使没有功率时亦保留储存信息的多次可程序化储存装置(multi-time programmable storage device)。例示性NVM装置包含快闪装置(Flash device)以及电子可抹除可程序化只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)装置。

在公开技术中,主机运行在通透(transparently)至安全应用程序的安全装置以及外部NVM装置之间进行调解的专用装置驱动器,其在本文中亦称为“装置驱动器”。装置驱动器允许安全装置通过装置驱动器以间接存取外部NVM。

专用装置驱动器通过接口通信连接安全装置,其中主机用作为主控而安全装置用作为从属。作为从属,安全装置无法直接在接口上启动交换(transaction),例如存取外部NVM。如本文所述,数个机制是用于克服此难处,亦即尽管为从属状态下,仍可通过安全装置启动交换。

在例示性实施例中,安全装置接收来自主机的安全应用程序的安全指令。当执行指令需要被写入外部NVM装置或从外部NVM装置读取存取时,安全装置相应地要求装置驱动器存取外部NVM装置。在一些实施例中,安全装置内部预备要求,并通过产生中断信号以通知装置驱动器已准备好要求。在其他实施例中,装置驱动器通过轮询在安全装置中的暂存器或存储器位置以取得要求。装置驱动器通过第一接口从安全装置读取要求,并根据要求将数据写入外部NVM或从外部NVM读取数据。装置 驱动器提供从外部NVM撷取的数据至安全装置。

安全装置可通过装置驱动器对外部NVM装置要求多个存取周期以执行安全指令。例如,安全装置可请求用以执行单一安全指令的一个或多个读取作业及/或一个或多个写入作业。接续指令执行,安全装置将指令回应回传至安全应用程序。指令回应可包含加密作业的结果、错误报告以及其类似物。

在一些实施例中,外部NVM可包含使用于计算系统的额外用途的已知NVM装置。通过利用适用于安全储存的至少一部分的现有(通常成本低的)NVM装置,安全装置可设计成不具有内部NVM或仅具有微型NVM装置,藉以降低成本。

由于主机通过接口与安全装置进行通信连接,其中主机用作为主控而安全装置用作为从属,接口不再需要汇流排主控(bus mastering)以及仲裁(arbitration)功能,从而降低了接口的复杂度。除此之外,没有汇流排主控支持的接口也可被使用。

系统描述

图1示意性绘示根据本文所述的实施例的计算系统20的方块图。系统20包含主机24,其通过第一接口32通信连接安全装置28,并通过第二接口40通信连接非易失性存储器(NVM)装置36。安全装置28作为用于主机的加密协同处理器。

主机24包含执行安全应用程序48以及专用装置驱动器52的CPU44,其是与安全装置28一起提供主机24所需要执行可信赖计算及其他安全策略的功能。安全应用程序48对安全装置28提供用于在主机上执行的作业系统(OS)及其他应用程序的共同应用程序设计接口(common application programming interface,API)。

在一些实施例中,系统20是根据通过可信赖计算组织(TCG)所发展的标准来执行可信赖计算系统。在此实施例中,安全装置28可与专用装置驱动器52以及至少一部分的NVM装置36的储存空间共同包含可信赖平台模块(TPM)。此外,安全应用程序48可包含TCG软件堆迭(TCG Software Stack,TSS)。举例而言,在此并入作为参考的三部分TPM主规范是规范了TPM,版本1.2、第二级、修订编号116,2011年3月1日。TPM主规范的三个部分包含:“TPM第一主要部分:设计原则”、“TPM第二主要部分:TPM结构”以及“TPM第三主要部分:指令”。举例来说,TSS被描述于2007年3月7日发行的“TCG软件堆迭(TCG Software Stack,TSS)规范版本1.2、第一级、勘误表A、第一部分:指令以及结构”中,其作为参考引述至本文。

在一些实施例中,可信赖计算是执行在个人计算机(PC)系统上。适用于PC用户 的TCG标准被描述在例如2012年2月24日、版本1.21、勘误表修订编号1.00(针对TPM家族1.2;第二级)的“适用于已知BIOS的TCG PC用户专用实施规范”中,以及2013年3月21日、版本1.3的“TCG PC用户专用TPM接口规范(TPM Interface Specification,TIS)”中,其作为参考引述至本文。

举例来说,安全应用程序48提供安全储存服务,例如控制系统资源用以储存信息的存取。在一些实施例中,安全性储存是通过定义一个或多个安全储存区在某些预定条件下可存取而实现。举例来说,这些条件可包含地址空间、系统状态、存取权限、实体权限以及读/写保护。

在下述叙述中,假定安全应用程序48被设计成直接至接口安全装置28,如上述引用的TCG规范的规定。

在一些实施例中,安全应用程序48是通过接口32传送各自安全指令至安全装置28,以提供安全服务(例如用于主机的OS)。当接收到安全指令时,安全装置28解码指令并从而执行指令。

至少一些安全指令的执行涉及存取NVM装置,例如储存及撷取机密信息。在一些实施例中,安全装置包含内部(通常为小型的)NVM。在其他实施例中,取代或除了内部NVM以外,安全装置存取可使用于系统用于额外用途的外部NVM,例如NVM装置36。如上所述,除了安全应用程序48外,CPU44执行专用装置驱动器52在安全装置28以及NVM装置36之间作调解。通透至安全应用程序48,装置驱动器52提供安全装置28间接存取外部NVM装置36。

安全装置28可以各种方式要求从装置驱动器52存取NVM装置36。在一实施例中,安全装置28内部,例如在预先定义暂存器内,预备要求,并产生中断信号以通知装置驱动器通过接口32读取要求。在另一实施例中,装置驱动器轮询在安全装置内的暂存器,以辨识是否有待决要求。在又另一实施例中,装置驱动器52是有条件地检查在安全装置内的暂存器数值,例如响应于传送安全指令至安全装置的安全应用程序。

当装置驱动器52接收来自安全装置的写入要求时,装置驱动器通过接口40储存在外部NVM内的各自的数据。在一些实施例中,在发布写入要求之前,安全装置加密及/或标记数据。当装置驱动器52接收来自安全装置的读取要求时,装置驱动器通过接口40从外部NVM读取要求数据并通过接口32传送撷取数据至安全装置。当撷 取数据被加密及标记时,安全装置可验证及解密数据。

接口32及40可包含任意适合的接口。举例来说,接口32可包含低脚位数汇流排(Low Pin Count bus,LPC)、序列周边接口(Serial peripheral Interface,SPI)或内部集成电路(Inter-Integrated Circuit,I2C)汇流排。举例来说,接口40可包含序列周边接口(SPI)。在一些实施例中,接口32及40包含各自的(相同或不同的)接口。在其他实施例中,接口32及40可包含相同接口,或共用一个或多个接口信号。

图1的下半部是绘示安全装置28的方块图。在本示例中,安全装置28包含通过内部汇流排62与安全装置的多个元件互连的微控制器60。微控制器60是用以作为安全装置的主控单元。安全装置28包含通过接口32通信连接主机的主机接口64的模块。

微控制器60接收通过主机接口64所接收的安全指令,并可能在适当时使用在安全装置内的其他元件执行这些指令。系统管理模块66提供装置元件运作所需的各种信号,例如像是功率分配、时脉信号以及中断信号。在一些实施例中,系统管理模块66包含一个或多个计时器,其可例如使用于时戳(time-stamping)数据。

安全装置28包含随机存取存储器(Random Access Memory,RAM)68,其储存暂时数据以及可能的微控制器60的编码指令。只读存储器(Read Only Memory,ROM)72的模块储存用于微控制器60的编码指令。此外,ROM72可储存各种常数值。一次性可程序(One Time Programmable,OTP)存储器76储存安全装置配置以及取决于生成(at production)且针对每个安全装置独特的密钥。在一些实施例中,替代或除了OTP存储器76以外,安全装置包含也可使用于储存内部机密的EEPROM及/或实体不可复制函数(Physical Unclonable Function,PUF)。

安全装置28更包含支持各种加密函数及演算法的加密引擎(cryptographic engine)80。在一些实施例中,加密引擎80支持加密基元(crypto primitive)以及演算法,例如乱数产生方法(Random Number Generation,RNG)、加密/解密演算法,例如先进加密标准(Advanced Encryption Standard,AES))、用于公钥加密的不对称密码演算法(Rivest-Shamir-Adleman,RSA)加密系统、错误修正编码/解码(Error Correction Coding/Decoding)以及密码杂凑函数法(cryptographic hash function),例如安全散列演算法(Secure Hash Algorithm)(SHA-256)。加密引擎80提供核心加密函数,例如加密/解密以及标记及验证。

PC用户的可信赖计算

在一些实施例中,图1的系统20包含PC系统。下表1是根据上方引用的TCG规范,汇整系统20的各种元件与对应的PC用户的元件之间的关系。

表1

图1所示的系统20以及安全装置28的配置是为纯粹为了清楚显示概念而绘示的例示性配置。此外,也可使用其他任意适合的计算系统以及安全装置配置。用以了解本发明的原则所不需要的元件,可为了清晰起见而自图式删除,诸如各种接口、控制电路、定址电路、时序电路以及除错电路。

在图1所示的例示性系统配置中,CPU44、安全装置28以及NVM装置36作为各自的集成电路(ICs)执行。然而,在替代实施例中,至少两个的CPU、安全装置以及NVM装置可被整合至在单一多芯片封装(Multi-Chip Package,MCP)或嵌入式系统芯片(System on Chip,SoC)内的各自的半导体晶粒上,并可通过内部汇流排互连。

安全装置28的不同元件可使用任意适合的硬件执行,例如特殊应用集成电路(Application-Specific Integrated Circuit,ASIC)或场效可规划栅极阵列(Field-Programmable Gate Array,FPGA)。在一些实施例中,安全装置的一些元件可使用软件或使用硬件以及软件元件的组合执行。举例来说,在本实施例中,加密引擎80以及系统管理模块66可作为专用硬件模块执行。作为另一示例,签章计算(signature calculation)以及加密/解密函数可在位于加密引擎80内的硬件上、在通过微控制器60执行的软件上或依硬件及软件的组合上执行。

在下方的描述和权利要求中,没有包含主机接口64的安全装置的各种元件被通称为电路。

典型地,在主机24内的CPU44包含通用处理器(general-purpose processor),其在软件上被编程执行本文所述的函数。软件可通过网络以电子形式下载至处理器内,例如或可被替代或附加地提供及/或储存至非暂时性有形媒体(non-transitory tangible media),例如磁性存储器、光学存储器或电子存储器。

由安全装置所执行的例示性方法

图2示意性绘示根据本文所述的实施例在计算系统中提供安全服务的方法的流程图。举例来说,方法可通过图1的安全装置28来执行。在描述的方法中,假定安全装置为部分的计算系统,例如(或相似于)图1的系统20。

方法于接收步骤100中通过安全装置28通过主机接口64的模块接收安全指令(通过接口32连接主机)开始。安全指令源自安全应用程序48,并辨识由安全装置提供的一个或多个加密服务。在解码步骤104中,安全装置解码安全指令作为欲执行阶段。解码结果通常包含要求服务以及可能的一个或多个参数的型态,例如像是辨识各自的加密基元、定址的参数以及与应用服务及其类似物的数据相关的尺寸信息。

为了执行指令,安全装置必须可存取外部NVM。安全装置可基于指令参数决定存取外部NVM。替代地或附加地,此决定可取决于保存在外部NVM的内部旗标(flags)、变数及其他数据,若有需要,亦可由安全装置所还原(restored)。

在写入检查步骤106中,安全装置检查执行指令是否要求存取外部NVM。当安全装置需要将数据写入外部NVM时,方法着手于加密及标记步骤108。在本示例中,指令参数包含原始明文数据(plaintext data),并且安全装置例如使用加密引擎80以加密及/或标记原始明文数据,如安全指令所规范。下列步骤108,准备好待储存至外部NVM的加密及标记数据。

在写入要求步骤112,安全装置要求从装置驱动器52储存步骤108的数据结果在外部NVM。如上所述,安全装置操作为接口32的从属,并可以各种方法要求储存作业,如前所述,例如通过产生中断信号至主机。响应于要求,装置驱动器通过接口32从安全装置读取在步骤108被加密及标记的数据,并通过接口40储存数据在外部NVM内。

当在步骤106,安全装置不需要写入外部NVM时,方法着手读取检查步骤114,其中安全装置检查执行指令是否要求读取存取外部NVM。若是,方法着手读取要求步骤116,其中安全装置要求从装置驱动器52读取来自外部NVM的数据。响应于读取要求,装置驱动器52通过接口40读取来自外部NVM装置36所要求的数据,并通过接口32传送撷取数据至安全装置。在解密及验证步骤120,安全装置验证及解密读取数据,例如使用加密引擎80。

在后续步骤112或120,或当在步骤114的检查结果为否定时,方法着手于接续的指令执行步骤124。在步骤124,安全装置执行安全指令或其一部分,其可能使用从外部NVM所撷取的数据。在回路终止步骤126,安全装置检查是否额外存取外部NVM是必要的以完成执行指令。当需要额外存取时,方法循环回步骤106。反之,方法着手于回应预备步骤128。

在步骤128,安全装置预备指令回应,例如其可包含加密函数的结果、错误报表及其类似物。在回应通知步骤132,安全装置通知安全应用程序已准备好指令回应。相似于上述用于要求装置驱动器的方法,安全装置可例如通过产生中断信号,或是安全应用程序可轮询在安全装置内的预先定义暂存器,以通知安全应用程序。安全应用程序接着通过接口32读取来自安全装置的指令回应,并结束方法。

图2的方法是通过举例方式给定,且也可使用其他适合的方法。举例来说,在一些实施例中,安全指令可指示将原始明文写入外部NVM或从外部NVM读取原始明文。在这样的实施例中,可略过步骤108及120。

虽然上述实施例主要参照例如PC等计算系统,但相似实施例亦可执行在其他计算系统中,例如移动装置、物联网、智能电表(smart metering)、车用和工业系统/环境。

所公开的技术可使用于各种安全储存应用,例如像是安全启动(secured booting)或可信赖启动(trusted booting)。举例来说,可信赖计算组织(TCG)详细规定包含于Windows 8作业系统的支持安全启动功能的统一可延伸固件接口(Unified Extensible Firmware Interface,UEFI)。作为另一示例,Chromium作业系统包含作为可信赖启动方案的验证启动功能。这些功能可利用本文所述的方法及系统执行。

将理解的是,上述实施例仅为举例性阐述,且本发明并不受限于本文的具体显示及说明。而是,本发明的范畴包含本文所述的各种特征的组合与子组合、以及所属技术领域技术人员在阅读上述内容可进行且未揭露于现有技术中的变化及修改。作为参考文献引述至本发明申请的文件应认定为本申请案的整合部分,除非在这些整并文件中所定义的任意用词范围与本说明书中明确或隐含的定义有冲突时,则应仅考虑本申请中的定义。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1