CN103870302B - 可网络更新的用户信任装置 - Google Patents
可网络更新的用户信任装置 Download PDFInfo
- Publication number
- CN103870302B CN103870302B CN201310629639.1A CN201310629639A CN103870302B CN 103870302 B CN103870302 B CN 103870302B CN 201310629639 A CN201310629639 A CN 201310629639A CN 103870302 B CN103870302 B CN 103870302B
- Authority
- CN
- China
- Prior art keywords
- network
- host computer
- renovator
- users
- firmware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了可网络更新的用户信任装置。一种用户信任装置(10)包括:连接接口;和永久存储器(14),其中,网络更新器(15)被配置为在主机计算机(101)处执行的情况下与主机计算机的固件(122)进行交互以启动通信,并且,引导使能数据结构(16)能够在用户信任装置(10)与所述主机计算机(10)连接的情况下被固件(122)检测;使得主机计算机(101)能够从用户信任装置(10)引导;并且包含用于固件(122)的如下指令,该指令在主机计算机从用户信任装置引导的情况下启动所述网络更新器(15)到主机计算机(10)上的传送以供随后在主机计算机(101)处执行。
Description
技术领域
本发明总体上涉及配备有用于与主机计算机连接的连接接口的用户信任装置的领域,特别是涉及用于通过网络更新这种装置的软件更新方法。
背景技术
用户信任装置(包含安全、防窜改装置)通常是已知的。例如,对于在线交易,一种已开发的方案是所谓的区域可信信息信道(或简称为ZTIC)。ZTIC是用于交易数据认证的安全、不可编程的装置。由于ZTIC保持与服务器的安全的端对端网络连接,因此ZTIC自身针对恶意软件攻击是防窜改的,并且,由于它具有自身的与和它连接的主机无关的输入和输出部件,因此,在ZTIC显示器上示出的数据是真实的。关于更多的细节,可参见例如TheZurich Trusted Information Channel–An Efficient Defence against Man-in-the-Middle and Malicious Software Attacks,by Thomas Weigold,Thorsten Kramp,RetoHermann,FrankPeter Buhler,Michael Baentsch.In P.Lipp,A.-R.Sadeghi,and K.-M.Koch(Eds.):TRUST2008,LNCS4968,pp.75–91,2008.Springer-Verlag BerlinHeidelberg2008.
一些具有内置的网卡的安全装置(例如,路由器、附接存储器的网络装置)提供了可网络更新的功能。但是,这些装置需要其自身的网络连接。
其它的装置使用通过PC的安全信道以可更新(诸如Migros银行存储棒,参见例如http://www.kobil.com/nc/press-news/newssingleview/article/migros-bank-launches-new-system-for-safer-e-banking.html?tx_ttnews%5BbackPid%5D=596 &cHash=4480355b72)。但是,这些装置需要给定的在PC上可用的操作***,以使得更新成功。
发明内容
根据第一方面,本发明体现为用户信任装置,该用户信任装置包括:
能够实现与主机计算机的连接的连接接口;和
存储引导使能数据结构和网络更新器的永久存储器,
其中,网络更新器被配置为在主机计算机处执行的情况下与主机计算机的固件进行交互,以启动通过可与主机计算机连接的网络的通信,并且,
引导使能数据结构可在用户信任装置与所述主机计算机连接的情况下被所述固件检测到;
引导使能数据结构使得主机计算机可优选地按照引导使能数据结构的数据结构,从用户信任装置引导;和
引导使能数据结构包含用于固件的如下指令,该指令在主机计算机从用户信任装置引导的情况下启动所述网络更新器到主机计算机上的传送以供随后在主机计算机处执行。
在实施例中,所述网络更新器被配置为在所述主机计算机处执行的情况下与主机计算机的所述固件进行交互,以随后与主机计算机的网卡进行交互,以便启动由所述网卡使能的通过网络的所述通信。
优选地,网络更新器包含对于在启动通过所述网络的所述通信的情况下要联系的服务器的参照。
在优选的实施例中,所述用户信任装置不包含网卡(或者,更一般地,缺少联网功能)。
优选地,所述永久存储器包含:
安全存储器,在安全存储器上存储网络更新器的第一部分;和
非安全存储器,在非安全存储器上存储网络更新器的第二部分。
在实施例中,网络更新器的第二部分以加密的方式驻留于非安全 存储器上,相应的加密密钥存储于安全存储器上。
优选地,网络更新器的第二部分占据安全存储器的小于一半的大小,所述存储器大小优选小于等于256ko、更优选小于等于128ko。
在优选的实施例中,所述网络更新器被配置为在主机计算机处执行的情况下与主机计算机的固件进行交互以启动所述通信,所述固件是以下中的一个:
BIOS,优选具有PXE BIOS;
可扩展固件接口EFIBIOS;或
统一可扩展固件接口BIOS。
优选地,所述连接接口是以下类型中的一种:
通用串行总线或USB;
外部小计算机***接口或SCSI;
外部串行高级技术附件或SATA;
火线;或
Thunderbolt(雷电接口)。
本发明还可自然地体现为一种***,该***包括:根据前面的权利要求中的任一项的用户信任装置;在启动通过网络的通信的情况下要联系的服务器,用户信任装置的网络更新器包含对于所述服务器以及优选的所述主机计算机的参照。
根据另一方面,本发明可体现为一种用于启动根据以上的实施例中的任一个的用户信任装置与网络之间的通信的方法,用户信任装置可与主机计算机连接,所述主机计算机可与所述网络连接,该方法包括:
使用户信任装置的引导使能数据结构被主机计算机的固件检测到,以便使得主机计算机从用户信任装置引导,随后在主机计算机处传送网络更新器,诸如使得网络更新器在主机计算机处执行并与固件进行交互以启动通过所述网络的所述通信。
优选地,所述方法还包括:使得所述网络更新器与主机计算机的所述固件进行交互,以随后与主机计算机的网卡进行交互,以便启动 由所述网卡使能的通过所述网络的所述通信。
还优选地,所述方法还包括:在启动通过所述网络的所述通信的情况下,联系由网络更新器参照的服务器。
在实施例中,方法还包括:
从服务器向用户信任装置传送数据(优选地,用户信任装置固件更新);
在用户信任装置的存储器(优选地,永久存储器)上存储所述被传送的数据;和
优选地,根据在用户信任装置的存储器上存储的被传送的数据更新用户信任装置的软件。
根据最后的方面,本发明体现为一种用于启动用户信任装置与网络之间的通信的计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质承载有引导使能数据结构和网络更新器,其中,
网络更新器被配置为在主机计算机处执行的情况下与主机计算机的固件进行交互,以启动通过可与主机计算机连接的网络的通信,并且,
引导使能数据结构可在用户信任装置与所述主机计算机连接的情况下被所述固件检测到;
引导使能数据结构使得主机计算机可优选地按照引导使能数据结构的数据结构,从用户信任装置引导;和
引导使能数据结构包含用于固件的如下指令,该指令在主机计算机从用户信任装置引导的情况下启动主机计算机上的所述网络更新器的传送以供随后在主机计算机处执行。
现在,现在作为非限制性的例子并且参照附图,将描述体现本发明的装置、***和方法。
附图说明
图1表示适于实现包含于本发明的实施例中的方法步骤的一般的 计算***;
图2示出根据实施例的图1的计算机化***的被选择的部件连同示出方法的步骤的流程图;
图3是根据实施例的安全装置的所选择部件的简化表示以及这些部件如何在功能上相互关联;
图4是示出根据实施例的用于启动安全装置与网络之间的通信的高级步骤的流程图。
具体实施方式
下文的描述构成如下。首先,描述一般的实施例和高级变型(第1节)。下一节针对更具体的实施例和技术实现细节(第2节)
1.一般实施例和高级变型
图1表示适于实现包含于本发明的实施例中的方法步骤的一般的计算机化***。
将理解,这里描述的方法在很大程度上是非交互的,并且通过诸如服务器或嵌入式***的计算机化***而被自动化。在示例性实施例中,可在(部分)交互或非交互***中实现这里描述的方法。可进一步通过软件(例如,固件)、硬件或它们的组合实现这些方法。在示例性实施例中,这里描述的方法通过软件实现为可执行的程序,并且通过诸如个人计算机、工作站、微计算机或主机计算机的特殊用途或通用数字计算机被执行。因此,最一般的***100包含通用计算机101。
在示例性实施例中,关于如图1所示的硬件架构,计算机101包括处理器105、与存储器控制器115耦合的存储器110、和通过本地输入/输出控制器135通信耦合的一个或更多个输入和/或输出(I/O)装置(或外设)10、145。输入/输出控制器135可以是但不限于一个或更多个总线或其它的有线或无线连接,这在本领域中是已知的。输入/输出控制器135可以具有能够实现通信的诸如控制器、缓冲器(高速缓存)、驱动器、重复器和接收器的附加的元件,这些附加的元件出于简化的目的被省略。此外,本地接口可包含地址、控件和/或数据连接,以能够实现上述的部件之间的适当的通信。如这里描述的那样,I/O装置10、145可一般地包含在本领域中已知的任何一般化的密码卡或智能卡。
这些装置中的一个是在后面详细讨论的用户信任装置10。
处理器105是用于执行软件、特别是存储于存储器110中的软件的硬件装置。处理器105可以是任何定制或者商业可用的处理器、中央处理单元(CPU)、与计算机101相关联的数个处理器之中的辅助处理器、基于半导体的微处理器(微芯片或芯片集的形式)、宏处理器或用于执行软件指令的通常的任何装置。
存储器110可包括易失性存储元件(例如,随机存取存储器(RAM,诸如DRAM、SRAM、SDRAM等))和非易失性(永久)存储元件(例如,ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、带、光盘只读存储器(CD-ROM)、盘、磁盘、盒子或盒带等)中的任一个或组合。并且,存储器110可结合电子、磁、光学和/或其它类型的存储介质。注意,存储器110可具有分布式架构,这里,各种部件的位置相互远离,但可被处理器105访问。特别地,存储器110应包含存储部121,网络更新器15可整体或部分地传送至该存储部121,以供随后执行。
存储器110中的软件可包含一个或更多个单独的程序,这些程序中的每一个包含用于实现逻辑功能、特别是包含于本发明的实施例中的功能的可执行指令的列表。在图1的例子中,存储器110可被装载软件,该软件包含用于实现用于启动用户信任装置10与网络165之间的通信的方法的指令。
即使这里讨论的新颖的方法忽略主机101的OS(它们在更接近硬件的另一层级操作,由此,计算机101的正常行为受到影响),存储器110中的软件还可典型地包含适当的操作***(OS)111。一旦(并且如果)被加载,OS111基本上控制其它计算机程序的执行,并且,提供调度、输入/输出控制、文件和数据管理、存储器管理和通信 控制以及相关的服务。
这里描述的方法的至少一部分可采取源程序、可执行程序(对象代码)、脚本或包含要被执行的指令集的任何其它实体的形式。当为源程序时,该程序需要通过可包含于或者可不包含于装置10和/或主机101的存储器内的编译程序、汇编程序或解释程序等被翻译。此外,方法可被写为具有数据和方法的类的面向对象的编程语言或具有例程、子例程和/或函数的过程编程语言。在所有的情况下,这里讨论的新颖的方法被设计为适当地结合固件122(以及如果需要的话,装置的CPU111)操作。
在示例性实施例中,常规的键盘150和鼠标155可与输入/输出控制器135耦合。诸如I/O装置145的其它输出装置可包含例如为但不限于打印机、扫描仪和麦克风等的输入装置。最后,I/O装置10、145还可包含传送输入和输出两者的装置,例如为但不限于网络接口卡(NIC)或调制器/解调器(用于访问其它的文件、装置、***或网络)、射频(RF)或其它的收发器、电话接口、桥接器和路由器等。如这里描述的那样,I/O装置10、145可以是在本领域中已知的任何一般的密码卡或智能卡。***100还可包含耦合到显示器130的显示器控制器125。在示例性实施例中,***100还可包含用于耦合到网络165的网络接口160。网络165可以是用于通过宽带连接的计算机101与任何外部服务器和客户机等之间通信的基于IP的网络。网络165在计算机101与例如为服务器30的外部***之间传送和接收数据。在示例性实施例中,网络165可以是由服务提供商操纵的被管理的IP网络。可例如通过使用诸如WiFi、WiMax等的无线协议和技术以无线的方式实现网络165。网络165还可以是诸如局域网络、广域网络、市区网络、因特网或其它类似类型的网络环境的分组交换网络。网络165可以是固定无线网络、无线局域网络(LAN)、无线广域网络(WAN)、个人区域网络(PAN)、虚拟私人网络(VPN)、内联网或其它适当的网络***,并且包含用于接收和发射信号的设备。
如果计算机101是PC、工作站或智能装置等,那么存储器110 中的软件还可包含基本输入输出***(BIOS)122。BIOS是在起动时初始化并且测试硬件、起动OS111并且支持硬件装置之间的数据传送的必要软件例程集合。BIOS典型地存储于ROM中,使得当激活计算机101时可执行BIOS。
出于实现这里描述的方法的目的,BIOS122可被用于启动通过可与主机计算机101连接的网络165的通信。但是,更一般地,可以使用任何适当的固件122或与固件的接口(即,永久存储器和存储于其中的程序代码及数据的组合,该组合在软件栈中的操作***111“下面”操作)以实现该目的。它典型地是BIOS。但是,适当的固件122或与其的接口的例子包含Preboot eXecution Environment(PXE)BIOS、所谓的可扩展固件接口(EFi)BIOS或统一可扩展固件接口(UEFI)。后者是限定操作***与平台固件之间的软件界面的规范。UEFI要替代当前存在于所有IBM PC兼容计算机中的BIOS固件接口。实际上,大多数的UEFI图像对于BIOS服务具有遗留支持。更一般地,出于实现这里描述的方法的目的,可设想对于BIOS服务或相当的服务具有遗留支持的任何固件。但是,更一般地,出于实现本发明的目的,能够例如通过与主机计算机的网卡的交互启动通过网络的通信(例如,启动网卡)并且在软件栈中的操作***下面操作的任何固件(例如,初始化固件)聚集。
当计算机101处于操作时,处理器105被配置为执行存储于计算机110中的软件,以向存储器110以及从存储器110传送数据,并且一般地根据软件控制计算机101的操作。这里描述的方法总体或部分地、但典型地部分地被处理器105读取,可能被缓冲在处理器105内,并然后被执行。
可通过软件实现的这里描述的方法的多个部分可存储于供任何计算机相关***或方法使用或者与其相结合地使用的任何计算机可读介质上。
所属技术领域的技术人员知道,本发明的各个方面可以实现为***、方法或计算机程序产品。因此,本发明的各个方面可以具体实现 为以下形式,即:完全的硬件实施方式、完全的固件和/或软件实施方式(包括固件、驻留软件、微代码等),或硬件和固件/软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
用于实行本发明的各方面的操作的计算机程序代码可被以一种或多种编程语言(包含面向对象的编程语言,诸如Java、Smalltalk、 C++等)和常规过程编程语言(诸如,“C”编程语言或类似编程语言)的任何组合书写。程序代码可全部在用户的计算机上执行,或者部分地在用户的计算机上(作为孤立软件包)执行,或仍部分地在以下中的两个或更多个上执行:用户计算机、用户信任装置和远程计算机。主机计算机和服务器可通过任何类型的网络(包括局域网(LAN);广域网(WAN);与外部计算机的连接(因特网,使用因特网服务提供商))连接。
下面将参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。计算机程序指令也可被加载到计算机上、其它可编程数据处理设备或其它装置上,使得在计算机、其它可编程设备或其它装置上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供了用于实现流程图和/或框图的一个(或多个)块中指定的功能/动作的处理。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现 中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
首先,一般参照图1~4描述本发明的涉及安全装置10(或者,更一般地,用户信任装置)的方面。该装置是公司装置或个人装置,即,公司或用户拥有或控制的装置,诸如USB装置,优选的USB闪速驱动(除了集成的通用串行总线(USB)接口以外还包含闪存的数据存储装置)、只有该用户使用或者由该用户为其工作的公司拥有和控制的移动电话或个人数字助理(PDA)。典型地,该装置的重量一般小于100g,优选小于60g、更优选小于40g。应在后面讨论该装置10的可有助于使其“安全”的附加方面。
该装置至少包括:
-连接接口12,实现与主机计算机101的连接S2;和
-永久存储器14,特别地存储被设计为如下地进行交互的两个部件:引导使能数据结构16和网络更新器15。
首先,网络更新器15是在主机计算机101上执行的软件。更准确地说,它被配置为在主机101处执行的情况下与主机计算机的例如为BIOS的固件122进行交互,以启动通过可与主机计算机连接的网络165的通信。因此,网络更新器15应在引导时、即在操作***被加载之前在主机计算机101上执行。换句话说,操作***被绕过:网络更新器应执行并能够执行其自然功能,即更新,而不包含操作。实际上,更新器15是可例如存储于装置固件内的小的软件更新程序。
第二,引导使能数据结构16(以下,也称为引导加载器)可在安全装置10与所述主机计算机101连接的情况下被固件122检测。引导加载器进一步被设计为使得在重启时主机计算机101可从安全装置10引导。该功能可例如按照引导加载器自身的数据结构被提供,这本身 是已知的。最后,引导加载器16包含用于固件122的如下指令,该指令用于在主机计算机从安全装置10引导的情况下启动所述网络更新器15到主机计算机101上的传送以供随后在主机计算机101处执行。
本上下文中的传送指的是固件启动在适当的主机计算机的存储部121上存储网络更新器的作用,例如,这优选在网络更新器的一个或更多个(例如,数个)第一块被主机101读取时发生。
因此,作为概括,引导加载器16可在装置10与主机101连接的情况下被固件(BIOS)122检测到,由此,主机可从安全装置10引导。引导加载器16包含用于固件122的如下指令,该指令在引导时启动所述网络更新器15到主机101上的传送以供随后在主机计算机101处执行。当在主机101处执行时,网络更新器15与固件(BIOS)122进行交互以启动通过网络165的通信。
这种方案使得即使装置10没有配备网卡或者更一般地没有直接网络接入,装置10仍可容易地从网络更新。事实上,装置10优选没有配备这种直接网络接入手段,这使得该装置10能够实现更简单和更便宜的设计。除了固件122以外,在主机10上不进一步需要用于执行更新的特定软件/OS。事实上,主机101可以是空的,甚至没有任何硬驱动。
主机101从装置10引导,该装置继而可利用与计算机的BIOS组合的计算机内置网卡(或者,更一般地,网络接入手段)或任何类似的固件(例如,用于当前的计算机的PXEBIOS、用于将来的计算机的EFI或UEFI BIOS)。
在主机计算机上没有留下印迹。另外,任何用户可容易地更新装置10以在装置10执行不同/新的功能。该方案使得能够实现极其简单的更新过程,例如,将装置10***计算机101中、重启、选择新功能。不需要特定的硬件/软件/知识以重新配置装置。硬件可总是保持相同。
该装置10可进一步被调整到不同的应用方案,而不仅仅是软件更新。不是装置10上的所有软件都必须存储于安全存储器中。应用更新器的多个部分以及软件更新可存储于简单的SD卡中。但是,即使功 能的变化或更新可部分依赖于其它不安全的通信SD卡,功能的变化或更新但仍可安全地执行(如参照以下的一些实施例讨论的)。
例如,可通过以下的方式将更新安全地引入装置中:
-通过计算机101的从服务器到装置10的HTTP连接
-端到端认证;
-签名和其它的加密数据13可存储于装置上的安全存储器中;
-有效载荷可存储于SD卡上;以及
-可在下一访问期间执行验证。
相反,迄今为止,任何可比较的现有技术的装置需要:
(i)用于更新装置的PC101上的特定软件,该特定软件需要针对各种OS被编写并且需要从OS内部运行,导致兼容性问题。并且,关于安全问题出现的一个问题是是否可信任OS;或者
(ii)将软件更新置于SD卡上并将卡***SD卡槽中,这种类型的方案是根本不现实的并且太昂贵,原因在于:
a.需要额外的SD卡槽等;
b.十分麻烦,需要手动准备;以及
c.使得不容易从中心服务器控制更新。
现在参照图1和图2:优选地,在过程中依赖于主机计算机101的网卡124。即,网络更新器15优选被配置为在主机101处执行的情况下与固件122进行交互,以随后与主机101的网卡124进行交互(例如,用于启动网络适配器),并且,为了启动通过网络的通信,这另外由网卡124使能。还可使用其它的I/O装置以实现这一点。
网络更新器15可包含对于在启动通过网络的通信的情况下要联系的服务器的参照(reference)。该参照可例如被硬编码在更新器15。更一般地,更新器15可包含用于确定服务器的任何适当的手段(算法等)。
当然,本发明扩展到诸如图1或图2示出的一般的计算机化***,即,包含:安全装置10、服务器30,并优选包含主机计算机101。
关于方法步骤,本发明可体现如下,即体现为用于启动安全装置 10与网络165之间的通信的方法。现在参照图4描述这种方法:
-首先(步骤S1),提供诸如以上描述的***,该***广义地包含安全装置10、主机101、可与主机连接的网络165;
-其次(步骤S2),安全装置10与主机101连接,主机101被(重新)启动。计算机需要在与装置10连接之后被(重新)启动,或者另外处于允许其从外部装置启动的状态,例如,以下的选项因此是可能的:
■计算机101被关断;***装置10;启动计算机;或
■计算机101已运行;***装置;重新启动计算机
-步骤S3:通过主机计算机101的固件122检测安全装置10的引导使能数据结构S3;
-步骤S3a:主机计算机101从安全装置10引导;
-随后(步骤S4),网络更新器15被传送到主机101,例如,传送到存储部121,由此,
○步骤S5,网络更新器15在主机计算机101处执行;和
○与固件122进行交互(步骤S6),
○启动(步骤S7、S7a、S7b)通过网络165的通信。
优选地,在包含网卡的情况下,网络更新器15应与所述固件122进行交互(在步骤S6)以随后与主机101的网卡124进行交互(步骤S7a)(例如,启动网络适配器),以便启动(步骤S7b)由所述网卡使能的通过所述网络的所述通信。
例如,由更新器15用于启动PXE BIOS的指令的例子包含但不限于:
算法:通过更新器启动PXE BIOS
Load UNDI ROM
PXENV_START_UNDI
PXENV_UNDI_STARTUP
PXENV_UNDI_INITIALIZE
PXENV_UNDI_OPEN
附加的指令(例如,PXENV_UNDI_TRANSMIT)可被附接以通过网卡向服务器发送数据包。通过这种指令,网络适配器在主机处执行的情况下与PXE BIOS 122进行交互以启动网卡124,由此,可通过网络启动通信。
类似的指令由EFI_SIMPLE_NETWORK API中的FEI和UEFI BIOS提供(初始化、启动、停止、接收、传送)。BIOS也可提供TCP/IP栈的更高层级的协议实现以及也可被良好地使用的其它的联网协议。
如上所述,在启动通过网络的通信的情况下,所述通信优选地被启动以便联系(步骤S7c)服务器30,这可由于网络更新器15而被确定。
在可通过本发明设想的各种应用中,随后的步骤应优选包含:
-从服务器30向安全装置10传送数据(步骤S8、S8a~S8d),优选传送安全固件更新;
-在安全装置10的(永久或者非永久)存储器上存储(步骤S8d)所传送的数据,
-根据存储于安全装置10的存储器上的被传送的数据更新(步骤S9)安全装置(例如,固件)的软件。
这里可以设想不同类型的软件(可以是固件、控制软件或者仅仅它们的一部分);这种软件可存储于装置上,并且应优选作为更新单元被更新。
因此,典型的情形如下:装置10首先与计算机101连接,并且,计算机被重启。当重启时,在已从装置传送网络更新器之后,计算机从装置引导并且启动网络更新器。然后,更新器与BIOS进行交互以使用计算机的网卡,以便建立与服务器的安全网络连接并检索更新。更新被传送回装置,以使其更新存储于装置上的一个或更多个更新单元。在最简单的情形中,更新被下载,这允许在装置10实现新/更新后的功能。在更新之后,装置可例如包含新的银行业功能或安全企业桌面功能。更一般地,装置10可被更新以通过使用网络更新执行不同的操作。
然而,在仅仅现有功能的更新以外,可以设想其它的应用,这里, 引导加载器提示主机传送和执行网络更新器,该网络更新器被配置为与固件进行交互以启动通信。在这一方面,应注意,“网络更新器”是被赋予一些软件段的名称,这些软件最初位于装置10上,并且在本发明的上下文中其功能最一般地是在主机处执行的情况下与其固件进行交互以启动通过可另外与主机连接的网络的通信。因此,即使装置10缺少网络容量,该功能仍允许通过网络执行一些“更新”。
另外,注意,尽管有图2的示图,但由从服务器30下载的更新数据采取的路径(步骤S8)可与启动与服务器30的通信所采取的路径(步骤S3~S7)恰恰相反,或者不相反。特别地,可在存储器的除部分121以外的部分中缓冲更新数据。
下面,重新参照图3,并且,前面已提到,永久存储器14应优选包含:
-安全存储器141,在安全存储器141上存储网络更新器15的第一部分151(或给定部分);和
-非安全存储器142(例如,SD卡),在非安全存储器142上存储网络更新器15的第二部分152(或其它部分)。
安全存储器的存在有助于使得用户信任装置为安全装置。例如,网络更新器15的一部分可在被加密的情况下驻留于非安全存储器142上,而相应的加密密钥存储于安全存储器141上。出于成本的原因,安全存储器典型地局限于128ko或256ko。因此,它优选被用于仅存储加密数据,例如,散列/签名。更新器的部分151可因此驻留于安全存储器141中,而更新器15的其它部分152应在被加密的情况下驻留于非安全存储器上。类似地,引导加载器16也可驻留于SD卡上,而通过驻留于安全存储器141上的签名被加密。当主机计算机101要求引导使能结构的给定的块或任何数据块时,装置的CPU11应由驻留于存储器14中的软件提示以将请求的块解密(例如,通过使用存储于安全存储器141中的加密数据)。
优选地,由于存储器限制,网络更新器15的驻留于安全存储器上的部分应仅占据安全存储器的小于一半的大小。然而,在理想情况下, 网络更新器15的两个部分均应占据尽可能少的存储器。例如,对于各部分使用小于64ko的网络更新器15的一些实现已被成功测试。
装置10的连接接口12可例如为以下的类型:
通用串行总线或USB;
外部小计算机***接口或SCSI;
外部串行高级技术附件或SATA;
火线;或
Thunderbolt。
然而,更一般地,它可以是允许计算机从外部装置10引导的任何当前或将来的连接器。另外,相同的接口12可进一步允许用户信任装置与诸如卷轴机、打印机或任何其它输出装置的任何外部装置通信。
通常,用户信任装置10可具有与存储器耦合的处理手段(或计算手段,即CPU)11,诸如密码处理器,该存储器更一般地包含永久存储器14和非永久存储器(未示出)。
在本文中,永久存储器特别是存储要由处理手段11执行的计算机化方法,例如,以上提及的组成15、16。
如果必要的话,安全装置具有用于读取存储于存储卡(例如,非安全存储器142)或任何智能卡上的用户证书的读卡器。可通过这种数据,例如,存储于卡上的用户证书,安全地进行适当的使用。特别地,可通过终端并使用这种数据在用户(或者严格地说,装置10)与第三方(例如,服务器)之间建立值得信任的连接。在变型中,用户证书可直接存储于安全装置上。也可提供其它的接口(类似于控制按钮和显示器)以允许与用户进行交互。
已经参照附图简要描述了以上的实施例,并且实施例可存在大量的变型。可以设想以上的特征的组合。在下一节中给出例子。
2.特定实施例/技术实现细节
现在讨论组合数个在前一节中讨论的可选特征的特定实施例。参照图4重新描述本实施例:
-步骤S1,设置安全装置10、PC101和网络165;
-步骤S2,安全装置10与PC101连接,PC被重启;
-步骤S3:通过PC101的BIOS122检测装置10的引导加载器16;
-步骤S3a:PC101从安全装置10引导;
-步骤S4,网络更新器15被传送到PC101的存储器,由此,
○步骤S5,更新器15在PC101处执行;和
○步骤S6,与BIOS122进行交互,以
○步骤S7a,初始化PC()的网络适配器124,以便
○步骤S7b,启动通过网络165的通信,由此,通过PC
的网络适配器,服务器30被联系。要联系的服务器由更新器15确定。
-步骤S8a~8d,从连接数据开始,数据被传送回装置10,使得建立服务器30与装置10之间的端对端连接。同时,更新器仍然是活动的,代表装置10将数据转送到服务器和代表服务器将数据转送到安全装置。可例如实现以下的认证方案:
○例如,通过执行握手,认证服务器并且可能认证客户机;
○确定新的装置固件或软件更新,其可由服务器管理员确定,或者通过使用户决定通过更新器在PC上或者通过安全装置的一些I/O机构在安全装置上而被确定;
-步骤S8d,完成从服务器到客户机的更新的传送,并且,在装置10的存储器(永久或非永久)上存储更新;
-此时,另一更新可被启动(意味着返回步骤S7,或者,如果要从不同的服务器执行更新,则甚至返回S6),否则连接关闭。
-然后,在步骤S9,安全装置将它接收的数据解封,并且,根据它如何被传送(SSL、clear等),它执行完整性检查。装置将解封的数据复制到可由安全装置10(例如,其固件)的装置软件安全地控制的(非易失性)存储器中,由此在装置10处执行更新;
○注意,假设适当的卷回机构在适当位置,步骤S9实际 上可与启动另一更新并行地实施,或者在此另一更新正被传送到装置中的同时实施。虽然当前的用户信任装置典型地确实不具有足够的计算能力来并行地完成这一点,但允许这种功能的方案当前正在测试;
○另外,装置可在更新已被下载之后在各种阶段重新引导。如果装置重新引导,那么,下载的数据如果存储于非安全存储器上则可能必须被重新验证。
注意,可以在接收到更新之后的任何时间执行步骤S9。如果没有完成传送,那么固件更新可能不能完成并且必须重启。装置可在各种步骤、即(在装置处)更新期间的任何点重新引导,以确保干净状态(例如,在新的固件已被接收到之后,并且,如果缓冲器-存储器跨越重新引导是非易失性的)。一旦更新已被接收到,计算机就仍然可能是需要的,即,向安全装置提供电力(如果安全装置不自供电),或者,如果安全装置具有其自身的电池,则不需要向安全装置提供电力。
另外,作为使用PC101的网络功能的替代,也可使用计算机101的其它部件(提供存储),以提供固件更新(虽然较不实际)。
并且,注意,原则上,如果装置能够承载其自身的网络装置驱动器(这不是根据本发明的),则可省略与BIOS的交互。而在这种情况下,只有配备网卡(对于该网卡,在安全装置上存在装置驱动器)的那些计算机才可用于更新该装置,这会是更不实际的。
装置通过允许从所述装置引导PC的任何连接设施与PC连接。根据所选择的连接器,更窄或更宽的范围的计算机可能是有用的(例如,USB、火线、eSATA、等)。
如上面提到的那样,可以设想不同的应用:主要关注的是诸如银行装置、安全引导或安全存储装置等的安全装置。尤其关注是如下这样的装置,即该装置中的哪一个要成为主机计算机、或者主机计算机可能无论如何都要从该装置中的哪一个被引导以例如创建安全计算环境。但是,可通过相同的机制更新更宽类型的装置,在这种情况下,可能能够省略诸如握手、完整性验证等的安全机制。
虽然已参照有限数量的实施例、变型和附图描述了本发明,但本领域技术人员可以理解,在不背离本发明的范围的情况下,可提出各种变化,并且可以替代等同物。特别地,在不背离本发明的范围的情况下,在给出的实施例、变型中陈述的或者在附图中示出的特征(装置类或方法类)可与另一实施例、变型或附图中的另一特征组合或者替代它。因此,可以设想关于以上的实施例或变型中的任一个描述的特征的各种组合,这些组合仍处于所附的权利要求的范围内。另外,在不背离本发明的范围的情况下,可进行许多小的修改以使特定的情况适于本发明的教导。因此,本发明不限于公开的特定的实施例,而本发明将包含落入所附的权利要求的范围内的所有实施例。另外,可以设想以上没有明确提到的许多变型。例如,安全装置可通过太阳电池或者任何其它适当的电池等被供电。并且,这里描述的计算机化方法可根据它们的主要功能被分类:使得计算机101能够从外部装置10开始引导;并启动通过网络的通信。出于简化描述的原因,这些主要功能被描述为被分配给各模块15、16。但是,可通过分布于一个或更多个模块上的相同的功能等同地描述本发明的实施例,每个模块具有这些功能中的不同功能。例如,引导使能数据结构16和网络更新器15可被视为单个模块,该模块可能被称为“引导加载器”,而仍执行与这里另外描述的功能相同的功能。
附图标记列表
10 安全装置
11 安全装置的CPU
12 连接接口
13 加密数据
14 永久存储器
15 网络更新器
151 网络更新器的第一部分
152 网络更新器的第二部分
16 引导使能数据结构(引导加载器)
30 服务器
100 一般计算机化***
101 主机计算机(PC)
105 处理器
110 存储器
111 操作***(Os)
115 存储器控制器
122 主机计算机的固件(BIOS)
124 网卡
125 显示器控制器
130 显示器
141 安全存储器
142 非安全存储器
145 I/O装置(或外设)
150 键盘
155 鼠标
165 网络
Claims (13)
1.一种用户信任装置(10),包括:
连接接口(12),能够实现与主机计算机(101)的连接(S2);和
永久存储器(14),存储引导使能数据结构(16)和网络更新器(15),所述永久存储器(14)包括:
安全存储器(141),在安全存储器(141)上存储网络更新器(15)的第一部分(151);和
非安全存储器(142),在非安全存储器(142)上存储网络更新器(15)的第二部分(152);
其中,网络更新器(15)的第二部分以加密的方式驻留于非安全存储器上,相应的加密密钥(13)存储于安全存储器上;
其中,网络更新器(15)被配置为在主机计算机(101)处执行的情况下与主机计算机的固件(122)进行交互以启动通过能够与主机计算机连接的网络(165)的通信,并且,
引导使能数据结构(16)能够在用户信任装置(10)与所述主机计算机(101)连接的情况下被固件(122)检测;
引导使能数据结构(16)使得主机计算机(101)能够从用户信任装置(10)引导,所述引导优选地按照引导使能数据结构的数据结构进行;和
引导使能数据结构(16)包含用于固件(122)的如下指令,该指令在主机计算机从用户信任装置引导的情况下启动所述网络更新器(15)到主机计算机(101)上的传送以供随后在主机计算机(101)处执行。
2.根据权利要求1的用户信任装置(10),其中,所述网络更新器被配置为在所述主机计算机处执行的情况下与主机计算机的所述固件(122)进行交互,以随后与主机计算机(101)的网卡(124)进行交互,以便启动由所述网卡(124)使能的通过所述网络的所述通信。
3.根据权利要求1或2的用户信任装置(10),其中,网络更新器(15)包含对于在启动所述通过网络的通信的情况下要联系的服务器(30)的参照。
4.根据权利要求1或2的用户信任装置(10),其中,所述用户信任装置不包含网卡。
5.根据权利要求1或2的用户信任装置(10),其中,网络更新器(15)的第二部分占据安全存储器的小于一半的大小。
6.根据权利要求1或2的用户信任装置(10),其中,所述网络更新器被配置为在主机计算机处执行的情况下与主机计算机的固件(122)进行交互,以启动所述通信,所述固件(122)是以下中的一个:
BIOS,优选具有PXE BIOS;
可扩展固件接口(EFI)BIOS;或
统一可扩展固件接口(UEFI)BIOS。
7.根据权利要求1或2的用户信任装置(10),其中,所述连接接口(12)是以下类型中的一种:
通用串行总线或USB;
外部小计算机***接口或SCSI;
外部串行高级技术附件或SATA;
火线;或
Thunderbolt。
8.一种用于启动用户信任装置与网络之间的通信的***(1),包括:
根据前面的权利要求中1或2的用户信任装置(10);
在启动通过网络的通信的情况下要被联系的服务器(30),用户信任装置(10)的网络更新器(15)包含对于所述服务器(30)的参照;和
主机计算机(101)。
9.一种用于启动用户信任装置(10)与网络之间的通信的方法,用户信任装置(10)能够与主机计算机(101)连接,所述主机计算机能够与所述网络连接,该方法包括:
使用户信任装置(10)的引导使能数据结构被主机计算机(101)的固件(122)检测(S3),以便使得主机计算机(101)从用户信任装置(10)引导(S3a),从而,
随后传送(S4)网络更新器(15)到主机计算机(101)处,诸如使网络更新器(15)在主机计算机(101)处执行(S5)并与固件进行交互(S6),以启动(S7、S7a、S7b)通过所述网络的所述通信;
在安全存储器上存储网络更新器的第一部分;
在非安全存储器上以加密的方式存储网络更新器的第二部分;
将相应的加密密钥存储于安全存储器上。
10.根据权利要求9的方法,还包括:
导致所述网络更新器(15)与主机计算机的所述固件进行交互(S6),以随后与主机计算机(101)的网卡进行交互(S7a),以便启动(S7b)由所述网卡使能的通过所述网络的所述通信。
11.根据权利要求9或10的方法,还包括:
在启动通过所述网络的所述通信的情况下,联系(S7c)由网络更新器(15)参照的服务器(30)。
12.根据权利要求11的方法,还包括:
从服务器(30)向用户信任装置(10)传送(S8、S8a~S8d)数据,所述数据优选为用户信任装置(10)固件更新;
在用户信任装置(10)的优选为永久存储器的存储器(14)上存储(S8d)所述被传送的数据;和
优选根据在用户信任装置(10)的存储器上存储的被传送的数据更新(S9)用户信任装置(10)的软件。
13.一种用于启动用户信任装置(10)与网络(165)之间的通信的设备,该设备包括承载有引导使能数据结构(16)和网络更新器(15)的计算机可读存储介质,其中,
网络更新器(15)被配置为在主机计算机(101)处执行的情况下与主机计算机的固件(122)进行交互,以启动通过能够与主机计算机连接的网络(165)的通信,并且,
引导使能数据结构(16)能够在用户信任装置(10)与所述主机计算机(101)连接的情况下被固件(122)检测;
引导使能数据结构(16)使得主机计算机(101)能够从用户信任装置(10)引导,所述引导优选地按照引导使能数据结构的数据结构进行;和
引导使能数据结构(16)包含用于固件(122)的如下指令,该指令在主机计算机从用户信任装置引导的情况下启动到主机计算机(10)上的所述网络更新器(15)的传送以供随后在主机计算机(101)处执行;
引导使能数据结构(16)在安全存储器上存储网络更新器的第一部分;
引导使能数据结构(16)在非安全存储器上以加密的方式存储网络更新器的第二部分;
引导使能数据结构(16)将相应的加密密钥存储于安全存储器上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1222581.9A GB2508892A (en) | 2012-12-14 | 2012-12-14 | Updating a trusted device by booting update software and downloading the update over a network |
GB1222581.9 | 2012-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103870302A CN103870302A (zh) | 2014-06-18 |
CN103870302B true CN103870302B (zh) | 2017-07-28 |
Family
ID=47630744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310629639.1A Active CN103870302B (zh) | 2012-12-14 | 2013-11-29 | 可网络更新的用户信任装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103870302B (zh) |
GB (1) | GB2508892A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9805199B2 (en) * | 2015-03-12 | 2017-10-31 | International Business Machines Corporation | Securely booting a computer from a user trusted device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773455A (zh) * | 2004-11-11 | 2006-05-17 | 乐金电子(中国)研究开发中心有限公司 | 利用智能手机的电子产品固件升级***及方法 |
CN102237905A (zh) * | 2010-04-27 | 2011-11-09 | 巴比禄股份有限公司 | 无线通信装置和无线通信装置的控制方法 |
CN102571823A (zh) * | 2012-02-27 | 2012-07-11 | 深圳趋势数码科技有限公司 | 一种对优盘数据进行远程安全保护的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6742025B2 (en) * | 1999-09-30 | 2004-05-25 | International Business Machines Corp. | System and method for server managed modification of operating system data stored within a network device |
US20030221094A1 (en) * | 2002-04-17 | 2003-11-27 | Avery Pennarun | Method and system for configuring a computer |
JP2011145947A (ja) * | 2010-01-15 | 2011-07-28 | Kyocera Mita Corp | ファームウェア更新制御プログラム、電子機器、及び可搬型記憶媒体 |
-
2012
- 2012-12-14 GB GB1222581.9A patent/GB2508892A/en not_active Withdrawn
-
2013
- 2013-11-29 CN CN201310629639.1A patent/CN103870302B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773455A (zh) * | 2004-11-11 | 2006-05-17 | 乐金电子(中国)研究开发中心有限公司 | 利用智能手机的电子产品固件升级***及方法 |
CN102237905A (zh) * | 2010-04-27 | 2011-11-09 | 巴比禄股份有限公司 | 无线通信装置和无线通信装置的控制方法 |
CN102571823A (zh) * | 2012-02-27 | 2012-07-11 | 深圳趋势数码科技有限公司 | 一种对优盘数据进行远程安全保护的方法 |
Also Published As
Publication number | Publication date |
---|---|
GB201222581D0 (en) | 2013-01-30 |
GB2508892A (en) | 2014-06-18 |
CN103870302A (zh) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5940159B2 (ja) | 非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置 | |
CN106127043B (zh) | 从远程服务器对数据存储设备进行安全扫描的方法和装置 | |
EP3805968B1 (en) | Technologies for secure hardware and software attestation for trusted i/o | |
US9256442B2 (en) | Network updatable user trusted device | |
US8522018B2 (en) | Method and system for implementing a mobile trusted platform module | |
JP5970141B2 (ja) | コンピュータでソフトウェア・モジュールを実行するための方法、ブートローダ、ユーザ信頼デバイス、およびシステム | |
US10229261B2 (en) | User trusted device for detecting a virtualized environment | |
CN103748594B (zh) | 针对arm*trustzonetm实现的基于固件的可信平台模块 | |
RU2542930C2 (ru) | Защищенная загрузка и конфигурирование подсистемы с нелокального запоминающего устройства | |
US9916574B2 (en) | Secure computing device and method | |
CN107408172B (zh) | 从用户信任的设备安全地引导计算机 | |
US9721102B2 (en) | Boot mechanisms for bring your own management | |
US9639690B2 (en) | User trusted device to attest trustworthiness of initialization firmware | |
CN107464109A (zh) | 可信移动支付装置、***和方法 | |
WO2016192453A1 (zh) | 一种安全控制方法、装置和终端 | |
Butler et al. | Kells: a protection framework for portable data | |
CN103870302B (zh) | 可网络更新的用户信任装置 | |
US11409541B2 (en) | Systems and methods for binding secondary operating system to platform basic input/output system | |
US20090187898A1 (en) | Method for securely updating an autorun program and portable electronic entity executing it | |
Feng et al. | Using mobile phones to enhance computing platform trust | |
Holoubková | Rešerše a ukázka zabezpečení platformy (TPM) | |
Pastor | White Paper: Pentesting Android Apps on Mac |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |