CN107306184A - 以安全代码验证进行的消息认证 - Google Patents
以安全代码验证进行的消息认证 Download PDFInfo
- Publication number
- CN107306184A CN107306184A CN201710248860.0A CN201710248860A CN107306184A CN 107306184 A CN107306184 A CN 107306184A CN 201710248860 A CN201710248860 A CN 201710248860A CN 107306184 A CN107306184 A CN 107306184A
- Authority
- CN
- China
- Prior art keywords
- code
- client terminal
- terminal device
- safety device
- message
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本申请案涉及以安全代码验证进行消息认证。提供了用于以安全代码验证进行消息认证的系统、方法、电路及计算机可读媒体。一方面,一种系统包含存储代码的客户端装置及耦合到所述客户端装置的安全装置。所述安全装置经配置以接收由所述客户端装置产生的所述代码的性质、基于与所述代码相关联的信息验证所述代码的所述性质的正确性以确定所述代码是经授权代码,所述信息存储在所述安全装置内。响应于确定所述代码是所述经授权代码,所述安全装置能够存取存储在所述安全装置内的数据且基于所述数据产生消息的性质。
Description
技术领域
本发明大体上涉及安全技术,特定来说,涉及以安全代码验证进行的消息认证。
背景技术
在实例案例中,实施一种用于装置之间的消息认证的方法。客户端装置通过以存储在客户端装置中的共享私密密钥将消息哈希化来产生消息认证代码(MAC)且将所述消息连同MAC一起发射到主机装置。共享私密密钥也存储在主机装置中。主机装置通过使用经接收消息及所存储的共享机密产生MAC来验证消息。如果经接收MAC与经产生MAC相等,那么消息得到认证。然而,攻击者可伪造客户端装置的安全启动且仍然利用消息认证方法来使伪造系统正确工作,例如,与主机装置通信,这可导致欺诈操作。
发明内容
本说明书描述用于以安全代码验证进行消息认证的系统、方法、电路及计算机可读媒体。一方面,一种系统包含存储代码的客户端装置及耦合到客户端装置的安全装置。所述安全装置经配置以接收由客户端装置产生的代码的性质、基于与代码相关联的信息验证代码的性质的正确性以确定代码是经授权代码,所述信息存储在安全装置内。响应于确定代码是经授权代码,所述安全装置能够存取存储在安全装置内的数据且基于所述数据产生消息的性质。
在附图及下文描述中陈述一或多个所揭示实施方案的细节。其它特征、方面及优点从描述、附图及权利要求书中将变得显而易见。
附图说明
图1是根据实例实施例的实例环境的图。
图2是根据实例实施例的包含实例安全装置及实例客户端装置的实例系统的图。
图3是根据实例实施例的实例过程的流程图,安全装置通过所述实例过程使用安全代码验证对客户端装置执行消息认证。
图4是根据另一实例实施例的实例过程的流程图,安全装置通过所述实例过程使用安全代码验证对客户端装置执行消息认证。
图5是根据另一实例实施例的实例过程的流程图,安全装置通过所述实例过程使用安全代码验证对客户端装置执行消息认证。
图6是根据另一实例实施例的实例过程的流程图,安全装置通过所述实例过程使用安全代码验证对客户端装置执行消息认证。
图7A是根据实例实施例的实例过程的流程图,安全装置通过所述实例过程验证固件的真实性。
图7B是根据实例实施例的另一实例过程的流程图,安全装置通过所述另一实例过程存储固件的部分的信息。
图8是根据实例实施例的实例过程的流程图,安全装置通过所述实例过程使用安全部分验证对存储在客户端装置内的代码执行消息认证。
图9是根据另一实例实施例的实例过程的流程图,安全装置通过所述实例过程使用安全部分验证对存储在客户端装置内的代码执行消息认证。
具体实施方式
系统概述
图1是根据实施方案的实例环境100的图。为了说明目的,环境100包含系统116(例如,客户端系统),其包含安全装置118及客户端装置120。安全装置118经配置以验证(或证实)存储在客户端装置120内的代码是否已被授权(认证)。在一些实例中,代码包含用于使客户端装置120启动(或起动)的启动代码、用于使客户端装置120运行应用程序的应用程序固件,或用于使客户端装置120执行对应操作的操作代码。
当进行代码验证时,安全装置118执行动作。在一个实施例中,当进行代码验证时,安全装置118能够对客户端装置120执行消息认证。安全装置118能够存取及使用存储在安全装置中的私密(或专用)数据(例如,信息或值)进行消息认证。在一个实施例中,当进行代码验证时,安全装置118能够改变安全装置118上的引脚的状态。引脚可启用(或指示或促进)系统116中的组件。在一个实施例中,当进行代码验证时,安全装置118使得后续操作能够在安全装置118上运行,所述后续操作在不进行代码验证时无法启用。在一个实施例中,当进行代码验证时,安全装置118能够存取或使用安全装置118上的私密/专用信息以(例如)读取(或写入)值。在一个实施例中,当进行代码验证时,计算引擎是由(例如)安全装置118启用以变得可用。在一个实施例中,当进行代码验证时,激活系统116上的I/O通道以供使用,例如无关使用。在一个实施例中,当进行代码验证时,将计时器复位以允许系统116在下一次检验之前运行比所安排或正常情况更多的时间。
安全装置118通过连接119耦合到客户端装置120。在一些实施方案中,安全装置118及客户端装置120放置得最接近,且连接119是由数据电缆(例如,光纤电缆或导电电缆)布线或是无线的。在一些其它实施方案中,安全装置118及客户端装置120物理耦合,且连接119是硬件接口,例如母板上的PCI接口。在又其它实施方案中,当安全装置118及客户端装置120集成在相同电路板上时,连接119是导体。安全装置118及客户端装置120可为单独芯片且集成在相同电路板上。
此外,在实施例中,如下文进一步详细地讨论,系统116经配置以通过网络102与一或多个远程装置或系统(主机装置112、计算装置106a、106b及/或服务器计算系统108)通信。实际上,一个实施例规定:系统116是网络102的客户端,且安全装置118及客户端装置120因此在客户端上“本地”耦合在一起。主机装置112、计算装置106a、106b或服务器计算系统108是网络102的主机,其远程地耦合到主机端上的系统116。网络102可为用于系统116的外部网络,例如公共通信网络(例如,因特网、蜂窝数据网络、电话拨号调制解调器网络)、广域网(WAN)、局域网(LAN)、受控区域网(CAN)、专用通信网络(例如,专用LAN、租用线路)或其任何适当组合。
在一些实施方案中,客户端装置120通过安全装置118与远程装置通信。安全装置118可以私密数据(密钥)将从客户端装置12发射的消息加密且向远程装置发送经加密消息。远程装置以对应的私密数据或密钥证实经加密消息且基于证实结果确定来自客户端装置120的消息是否已被认证。在一些其它实施方案中,客户端装置120通过网络102直接与远程装置通信。安全装置118确保客户端装置120执行安全启动、应用程序或操作。
在一些情况中,客户端装置120(例如)归因于成本约束而不安全或缺乏安全性。攻击者可攻击客户端装置120以(例如)出于欺诈目的修改存储在客户端装置120内的代码、冒充客户端装置120与主机端装置通信、确定代码证实的方法及创建欺诈代码,或公开攻击客户端装置120的简单方法。在一些实施方案中,安全装置118是受信任或安全装置,如参考图2所讨论。为了解决客户端装置120的这些安全问题,安全装置118耦合到客户端装置120且经配置以首先验证存储在客户端装置内的代码(例如,应用程序固件)是否为经授权代码。代码验证可如标题均为“受控安全代码认证(CONTROLLED SECURE CODE AUTHENTICATION)”且于2016年2月16日申请的美国专利申请案15/044,693及15/044,770中所述那样执行,所述申请案的全部内容特此以引用方式并入本文中。
如果代码由安全装置118确定为未经授权代码,那么安全装置118确定正在客户端装置120上运行的启动或应用程序(或操作)是不安全的。安全装置118进入受保护模式,例如禁止或约束安全装置118自身存取重要信息,例如存储在安全存储装置中的私密数据或加密密钥。安全存储装置可包含在安全装置118中或从外部耦合到安全装置118。以此方式,可最小化或消除欺诈操作,且可提高客户端装置120的安全性。
在一些实施方案中,响应于确定代码被授权,安全装置118能够存取重要信息,例如私密数据。安全装置118可接着使用私密数据以保护与客户端装置120相关联的消息。在一些实例中,安全装置118从客户端装置接收消息,所述消息被引导到远程装置,例如主机装置112、计算装置106a、106b或服务器计算系统108。安全装置118与远程装置执行消息认证。举例来说,安全装置118可使用所述消息及私密数据产生MAC,且将所述消息连同MAC一起发射到远程装置。远程装置还包含对应于存储在安全装置118中的私密数据的私密数据。远程装置通过使用经接收消息及经存储共享私密数据产生MAC来验证消息。如果经接收MAC与经产生MAC相等或彼此匹配,那么远程装置确定所述消息已被认证,且信任来自客户端装置的消息。否则,远程装置确定所述消息未经认证,且不信任来自客户端装置的消息。
在一些实例中,安全装置118与客户端装置120执行消息认证,这可用于控制客户端装置以启动或运行应用程序。在一个实施例中,安全装置118使用对称方案或算法与客户端装置120执行消息认证。安全装置118可接收存储在客户端装置120中的代码的摘要。在验证代码之后,安全装置118使用代码的摘要(及/或随机值)作为消息、使用消息及私密数据产生MAC,且将MAC发射到客户端装置120。客户端装置120使用代码的摘要及/或随机值及存储在客户端装置120中的相同私密数据来产生MAC。如果两个MAC匹配,那么客户端装置120使用代码运行应用程序或继续启动。否则,客户端装置120约束其自身运行应用程序或启动。以此方式,客户端装置120的性能受消息认证的结果控制,所述消息认证的结果进一步受代码验证的结果控制。其它对称方案(或算法)也可用于消息认证。
在另一实施例中,安全装置118使用非对称方案或算法与客户端装置120执行消息认证。举例来说,客户端装置120计算签名产生且安全装置118运行签名验证操作。其它非对称(或差分)方案(或算法)也可用于消息认证。
在一个实例中,安全装置118包含安全存储装置。安全装置118将与用于客户端装置120的经授权代码相关联的信息存储在安全存储装置中。在一些实施方案中,所述信息包含经授权代码的整个图像、经授权代码的签名、经授权代码的摘要、经授权代码的消息认证代码(MAC)或经授权代码的其它性质。在一些实施方案中,所述信息包含经授权代码的多个选项的性质,例如,每一部分的摘要或签名或MAC,或用于每一部分的地址范围。在一些实例中,所述信息不包含经授权代码的整个图像,而仅包含经授权代码的部分的摘要或签名或MAC及对应的地址范围。在一些实例中,安全装置118存储用于验证存储在客户端装置120中的代码的真实性的加密密钥。
安全装置118及客户端装置120可从来源下载及/或更新相应经授权代码的图像。所述来源可为安全来源(例如,安全硬件或安全服务器)或不安全来源。安全装置118可在下载或更新代码图像的经存储信息之前验证整个代码图像的签名或MAC。
在一些实施方案中,主机装置112是与系统116及一或多个其它子系统通信的控制器。每一子系统包含客户端装置及耦合到所述客户端装置的安全装置。安全装置经配置以对客户端装置执行安全代码认证及/或消息认证。
在一些实施方案中,用户104a、104b使用计算装置106a、106b以通过网络102与系统116通信。计算装置106a、106b可各自为计算装置,例如移动装置、膝上型计算机、台式计算机、智能电话、个人数字助理、便携式媒体播放器、平板计算机或可用于与系统116通信的任何其它计算装置。处于说明目的,在图1中,计算装置106a被描绘为移动装置,且计算装置106b被描绘为台式计算机。用户104a或104b可为与系统116相关联的实体。用户104a或104b可使用计算装置106a或106b以检验系统116的状态或通过网络102远程地控制系统116的操作。举例来说,用户104a或104b可使用计算装置106a或106b检验存储在客户端装置120内的代码是否为用于客户端装置120的经授权代码且与客户端装置120传递消息。
在一些实施方案中,服务器计算装置108通过网络102与系统116通信。服务器计算装置108包含一或多个计算装置及一或多个机器可读存储库或数据库。服务器计算装置108经配置以与包含系统116的许多系统通信。对于每一系统,服务器计算装置108可将用于相应客户端装置及安全装置的相应经授权代码安全地存储在系统中。客户端装置及安全装置可通过网络102从服务器计算装置108下载相应的经授权代码。服务器计算装置108的用户109(例如,管理员或操作者)可使用服务器计算装置108与例如系统116的个别系统通信。
所揭示实施方案可在不同环境中使用。在一些实施方案中,环境100是汽车环境。系统116可为用于汽车中的组件的控制器(例如,ECU),例如,窗户控制器、制动控制器或车轮控制器。主机装置112可为汽车的中央计算系统,例如,电子控制单元(ECU)或用于将来自客户端装置的消息引导到远程计算装置(例如,服务器计算系统108,或计算装置106a或106b)的网关。用户104a或104b可为汽车的所有者且使用移动电话106a或计算机106b通过网络102与汽车通信。服务器计算系统108可为经配置以控制许多汽车且与实体(例如,汽车制造商、汽车经销商或企业)相关联的服务器。应当明白的是,所揭示实施方案不限于汽车环境且可适用于其它背景。举例来说,系统116可包含在家庭网络的电器(例如,灯具、报警器、车库开启器或传感器)中。
在一些实例中,摘要与加密哈希函数相关联。装置(例如,安全装置118或客户端装置120)获取数据块(例如,代码或程序或固件)且使用加密哈希函数来计算字符串,其中字符串是(加密)哈希值。待编码数据可称为“消息”,且哈希值可称为“消息摘要”或简称为“摘要”。加密哈希函数可包含(例如)安全哈希算法(SHA),例如SHA1、SHA2、SHA3、SHA-256或MD5消息摘要算法。经产生摘要可具有固定长度或变化长度。然而,应当注意的是,本技术不限于此实例算法的实施方案,且可实施其它类型的哈希函数。
在一些实例中,签名是用于表明数字消息(例如,代码的摘要)的真实性的数学方案。签名可通过数字签名算法(DSA)(例如,椭圆曲线数字签名算法(ECDSA))产生。装置可使用DSA以使用摘要及密钥(例如,私密密钥或公开密钥)来计算或产生摘要的签名。然而,应当注意的是,本技术不限于此实例算法的实施方案,且可实施其它类型的签名算法。
在一些实例中,消息安全装置(MAC)是用于认证消息的一条信息。算法接受私密密钥及待认证消息作为输入且输出MAC。算法可为(例如)密钥哈希消息认证代码(HMAC)或高级加密标准(AES)基于密文的消息认证代码(CMAC)(AES-CMAC)算法或许多其它算法。
在一些实例中,校验和(或哈希和)是来自数字数据块(例如,代码)的用于检测可能在所述数字数据块的传输或存储期间被引入的错误的小型数据。校验和可用于验证数据完整性。校验和可由校验和算法或校验和函数产生。
在一些实例中,用于装置的经授权代码表示无变化或无修改的原始代码,例如如由装置的原始设备制造商(OEM)或与装置相关联的实体所期望。代码在未变化或未修改时是经授权代码且在已变化或修改时是未经授权代码。经授权代码的OEM签名是由制造商使用经授权代码及OEM专用密钥产生的签名。
在一些实例中,私密密钥或数据是为特定装置或系统所知,但是不为其它装置或系统所知的信息。其它实例类型的机密是I/O保护机密,其在制造PC板时产生于一或多个其它装置上且写入到两种装置(例如,安全装置及客户端装置)上的永久存储器中。I/O保护机密可由RNG产生、在装置制造期间融合设置或编码在芯片的金属层中,或由其它选项执行。I/O保护机密的基本性质可包含:1)每个板具有在客户端装置与安全装置之间共享的唯一的I/O保护机密;2)任何实体难以确定此板的I/O保护机密的值,即,机密性。
实例安全装置及客户端装置
图2是根据实施例的实例系统200的框图。实例安全装置202对实例客户端装置204执行安全代码认证及消息认证。系统200可类似于图1的系统116。安全装置202可类似于图1的安全装置118。客户端装置204可类似于图1的客户端装置120。安全装置202使用连接208耦合到客户端装置204。
连接208可类似于图1的连接119。举例来说,连接208是与安全装置202及客户端装置204的组件物理地或通信地耦合的物理传输总线或电缆(或其它通信媒体)。在一个实施例中,安全装置202及客户端装置204放置得最接近,且连接208是由数据电缆(例如,光纤电缆或导电电缆)布线或是无线的。在一些其它实施例中,安全装置202及客户端装置204在物理上耦合,且连接208是硬件接口,例如母板上的PCI接口。在又其它实施例中,当安全装置202及客户端装置204集成在相同电路板上时,连接208是导体。安全装置202及客户端装置204可为单独芯片且集成在相同电路板上。
客户端装置204可能是不安全的或缺乏一定的安全度。举例来说,客户端装置204中的存储器222不安全,且存储在存储器222中的代码及/或相关联信息可被攻击者修改。安全装置202经配置以首先验证存储在客户端装置204内的代码是否为经授权代码。当进行验证时,安全装置202对客户端装置204执行消息认证。
在一些实施方案中,安全装置202除其它组件外还包含加密(crypto)模块212、随机数发生模块214、安全存储装置216及认证模块218。在一个实施例中,加密模块212、随机数发生模块214、安全存储装置216及认证模块218是存储在安全装置202内的一或多个存储装置内的不同程序、子例程或代码部分。即,此类模块不需要是单独的物理组件,其反而可为软件模块。在一些实施方案中,安全存储装置216是在安全装置202外部且通过安全或受保护信道耦合到安全装置202。举例来说,安全存储装置216可在受信任第三方实体中。安全装置202可从安全存储装置216检索信息。
加密模块212经配置以产生代码或消息的加密性质且执行加密功能。加密模块212可产生用于代码或消息的摘要、签名、消息认证代码(MAC)或校验和。在一些实施方案中,加密模块212执行加扰及/或解扰(unscrambling)(或解扰(descrambling))功能。举例来说,客户端装置204将存储在客户端装置204内的代码进行加扰。加密模块212可将经加扰代码解扰以得到原始代码。
在一些实施方案中,加密模块212产生对客户端装置204的询问,例如,不同时间的不同询问。询问包含对客户端装置204的查询,其用于请求存储在客户端装置204上的代码(或此代码的部分)的性质。性质可为加密性质,例如,摘要、签名、校验和或MAC。询问还可包含对经授权代码的特定部分的性质的请求。在一些实例中,特定部分对应于存储器地址范围(物理或虚拟),例如,包含起始地址及终止地址的地址对、具有一定宽度的中间地址、具有一定宽度的起始地址,或具有一定宽度的终止地址。询问可包含地址范围以表示特定部分。在一些实施方案中,询问包含与用于安全授权及/或认证的加密或认证密钥相关联的信息。
随机数发生(RandGen)模块214经配置以产生随机数,例如,用作用于由安全装置202执行的加密操作的种子。举例来说,随机数发生模块214包含随机数发生器(RNG),其将某个数目的随机字节(例如,32个随机字节)返回到加密模块212。在一个实施例中,随机数发生模块214从RNG产生用于直接使用的随机值。在一个实施例中,加密模块212组合此经产生随机数与单独输入数以形成加密“随机值”,其存储在安全装置202内且可由后续命令使用。在一个实施例中,协议随机值是来自客户端的随机值与来自安全装置的随机值的组合。协议随机值可用于加密操作。
在一些实例中,随机值是在装置之间的加密通信中仅使用一次的任意数。随机值可为在认证协议中发出的用以确保旧通信无法在重放攻击中被再用的随机或伪随机数。随机值还可用于确保密文流的安全。为了确保随机值仅使用一次,其可为时变的(其值中包含经的适当细粒度时间戳记)或以足够多随机位产生以确保重复先前产生的值的可能性在概率上极小。
安全存储装置216经配置以存储包含用于客户端装置204的经授权代码的信息、私密数据215及/或密钥217的安全信息。举例来说,私密数据215包含安全装置202可使用来保护消息的I/O保护机密。密钥217可包含用于认证或加密功能的对称加密密钥或非对称加密密钥。举例来说,密钥217包含对应于用于产生经授权代码的OEM签名的私密密钥的OEM公开密钥,所述经授权代码对应于存储在客户端装置中的代码。安全装置202可使用OEM公开密钥以产生存储在客户端装置204内的代码的摘要的签名。在安全装置202的阶段(诸如制造、出厂初始化、个性化或配送)期间,私密数据215及/或密钥217可存储在安全装置202中。
在一些实施方案中,存储在安全存储装置216中的经授权代码的信息包含经授权代码的整个图像或副本、经授权代码的摘要、经授权代码的签名、经授权代码的MAC,或经授权代码的任何其它性质。在安全装置202的生产阶段期间,经授权代码的整个图像可存储在安全存储装置216中。经授权代码的整个图像还可从安全来源(例如,安全硬件或安全服务器,例如图1的服务器计算系统108)复制或下载。安全装置202还可从安全来源更新经授权代码的经存储信息。在一些实施方案中,存储在安全存储装置216中的经授权代码的信息不包含经授权代码的整个图像或副本,但包含经授权代码的摘要、经授权代码的签名及/或经授权代码的MAC。
在一些实施方案中,经授权代码的签名是用于客户端装置204的原始设备制造商(OEM)签名,其在安全装置202的生产阶段期间可存储在安全装置202中,或在生产阶段之后复制、下载或更新到安全装置202。在一些实例中,安全装置202基于经授权代码的摘要使用OEM公开密钥217产生经授权代码的签名。安全装置202可通过比较经产生签名与OEM签名来验证经授权代码的整个图像的真实性。
在一些实施方案中,存储在安全存储装置216中的经授权代码的信息包含经授权代码的多个个别部分的信息,例如个别部分的副本、个别部分的摘要或签名或MAC,及/或个别部分的地址范围。在一些实例中,安全存储装置216存储所述部分的信息,而不存储与经授权代码的整个图像相关联的信息。在一些实例中,安全存储装置216将经授权代码的整个图像的签名或摘要(例如,OEM签名)连同所述部分的信息存储在安全存储装置216中。
在一些实施方案中,安全装置202(例如)在从安全来源下载整个图像期间选择对应于经授权代码的许多部分的许多存储器地址范围。安全装置202确定每一存储器地址范围的相应部分。安全装置202接着可使用加密哈希函数或算法计算每一部分的相应摘要,且将所述部分的摘要存储在安全存储装置216中。安全装置202还可使用相应摘要计算每一部分的相应签名且将签名存储在安全存储装置216中。在一些实施方案中,安全装置202将指示经授权代码的部分的相应性质(例如,摘要或签名)的第一信息及指示相应存储器地址范围的第二信息存储在安全装置202中,且分别使许多存储器地址范围当中的存储器地址范围与部分的性质当中的性质在安全存储装置216中相关联。每当新代码验证开始时,加密模块212可从许多地址范围中随机选择地址范围且基于选定地址范围产生询问。加密模块212还可随机地选择两个或两个以上地址范围且基于两个或两个以上地址范围的组合而产生询问。
安全存储装置216可为安全装置202的部分,所述部分实施强安全机制使得包含在安全存储装置216中的数据不被轻易地复制、克隆或修改,且对安全存储装置216内的数据的任何未授权改变均是可检测的(例如,可由验证装置检测)。在一个实施例中,验证装置远程地耦合到安全装置202。安全装置可将所存储的关于客户端装置204的代码的信息集合加密及签名,且向验证装置发送经加密二进制大对象及/或签名,所述验证装置接着评估经加密二进制大对象及/或签名。在一个实施例中,安全装置202在内部受保护非易失性存储器(例如,安全存储装置216)上具有内部完整性检验。安全装置202可在执行操作之前验证完整性检验。
在一些实施方案中,安全存储装置216包含永久存储器,例如电可擦除只读存储器(EEPROM)阵列、快闪存储器、硬盘驱动器或经配置用于以永久方式存储数据的任何其它合适的存储机构。如先前指示,安全存储装置216可用于存储与客户端装置204的经授权代码、私密数据215、密钥217、杂类读/写、只读或私密数据、消耗记录及安全配置相关联的信息。对安全存储装置216的各个区段的存取可以多种方式进行约束且接着可锁定配置以防止改变。
在一些实施方案中,安全存储装置216包含用于数据的临时存储的短暂存储器。举例来说,短暂存储器可为静态随机存取存储器(SRAM),其中经授权代码的下载或更新图像在与安全来源的安全通信期间缓冲,或加密或认证操作的结果在与客户端装置204的安全通信期间缓冲。在一个实施例中,安全存储装置包含以电源(例如,电池或电容器)进行支持的SRAM。在一些实施方案中,短暂存储器用于存储输入命令或输出结果及中间计算值。无论安全存储装置216何时进入休眠模式或何时去除电力,短暂存储器的整个内容均可无效。
认证模块218经配置以确定存储在客户端装置204内的代码是否为经授权代码。认证模块218经配置以与安全存储装置216、加密模块212及/或随机数发生模块214通信且从其中获得信息。举例来说,加密模块212发送用于请求客户端装置204的代码的加密性质的询问。客户端装置204可发回包含存储在客户端装置204内的代码的加密性质的响应。认证模块218可(例如)从与存储在安全存储装置216中的经授权代码相关联的信息获得对应于客户端装置204的代码的经授权代码的加密性质,且确定响应中接收的代码的加密性质是否匹配经授权代码的经获得加密性质。如果代码的加密性质匹配经授权代码的经获得加密性质,那么认证模块218可确定存储在客户端装置204内的代码是经授权代码。如果代码的加密性质不匹配经授权代码的经获得加密性质,那么认证模块218确定代码并非经授权代码或未经授权。
在一些实施方案中,客户端装置204除其它组件外还包含处理器220及存储器222。存储器222可为处理器220的内部或外部存储器。存储器222经配置以存储客户端装置204的一或多个代码(例如,应用程序固件)223及机密225。举例来说,机密225包含对应于存储在安全装置202中的I/O保护机密215的共享I/O保护机密。客户端装置204可使用共享I/O保护机密产生MAC。机密225在存储器222或客户端装置204的生产阶段期间可存储在存储器222中。机密225可为只读的且难以修改。
代码及/或与代码相关联的信息(例如,代码的OEM签名)在客户端装置204的生产阶段(例如,制造、出厂初始化、个性化或配送)期间可存储在存储器222中。代码及/或相关联的信息也可从例如安全硬件或安全服务器的安全来源复制或下载。客户端装置204还可从安全来源更新代码及/或相关联的信息。
处理器220经配置以使用存储在存储器222中的代码执行操作。举例来说,处理器220使用启动代码启动、使用应用程序固件运行应用程序,或使用操作代码执行操作。处理器220可执行加密功能以产生代码的加密性质,例如将代码哈希化以产生摘要、将消息哈希化以产生MAC、将代码加扰或产生签名。在一些实施例中,处理器220包含类似于可产生随机数或随机值的随机数发生模块214的随机数发生模块。
在一些实施方案中,处理器220经配置以对来自安全装置202的询问或查询做出响应。在一些情况中,客户端装置204从安全装置202接收请求,其包含对代码的加密性质(例如,代码的摘要或签名或MAC)的询问。处理器220可基于来自存储器222的信息(包含经存储代码及/或相关联的信息)获得或产生代码的加密性质,且发回包含代码的经获得加密性质的响应。在一些实例中,询问请求代码的特定部分的加密性质。举例来说,询问包含对应于特定部分的特定地址范围。处理器220可识别对应于特定地址范围的代码的部分且产生代码的对应部分的加密性质。
实例流程图及实施例
图3是实例过程300的流程图,安全装置通过所述实例过程使用安全代码验证对客户端装置执行安全消息认证。举例来说,框301中的操作是由客户端装置执行,其中框303中的操作是由安全装置执行。安全装置可类似于图1的安全装置118或图2的安全装置202。客户端装置可类似于图1的客户端装置120或图2的客户端装置204。
客户端装置产生存储在客户端装置内的代码的性质(302)。代码可为启动代码、应用程序固件或操作代码。代码的性质可为代码的摘要或代码的加扰数据。客户端装置可经触发以例如按预定时间表(例如,每隔1秒钟)或在距离先前代码认证一段时间之后、每当客户端装置启动时、或从安全装置或远程装置(例如,图1的主机装置112、计算装置106a、106b或服务器计算系统108)接收请求后执行步骤302。举例来说,如关于图8及9进一步详细地讨论,客户端装置从安全装置接收请求,所述请求包含对应于代码的部分的存储器地址范围。客户端装置可基于存储器地址范围确定代码的部分且产生代码的部分的性质。
客户端装置向安全装置发送代码的经产生性质(304)。在一些实例中,客户端装置向安全装置发送代码的经产生摘要连同代码的经证实签名(例如,OEM签名)。
安全装置从客户端装置接收代码的性质(306)且验证代码的性质的正确性(308)。如果安全装置验证代码的性质的不正确性,那么安全装置确定代码未经授权或并非经授权代码(310)。响应于确定代码未授权,安全装置进入受保护模式(312)。举例来说,安全装置禁止或约束其自身存取存储在安全存储装置(例如,图2的安全存储装置216)中的重要信息,例如,私密数据或密钥。在一些情况中,响应于确定代码未经授权,安全装置阻止客户端装置经由网络(例如,图1的网络102)与远程装置通信。
如果安全装置验证代码的性质的正确性,那么安全装置确定代码已授权或是经授权代码(314)。响应于确定代码已经授权,安全装置能够存取重要信息,例如,存储在安全存储装置中的私密数据或密钥(316)。
在一些实例中,代码的性质是由客户端装置产生的代码的摘要。安全装置基于代码的经接收摘要及存储在安全装置内(例如,安全存储装置中)的公开密钥(例如,OEM公开密钥)产生代码的签名。安全装置接着确定代码的经产生签名是否匹配对应于代码的经授权代码的签名(例如,代码的OEM签名)。在一些情况中,经授权代码的签名存储在安全装置内(例如,安全存储装置中)。在一些情况中,客户端装置存储经授权代码的签名且将其发送到安全装置进行代码验证。如果代码的经产生签名匹配经授权代码的签名,那么安全装置确定代码是经授权代码(314)。否则,安全装置确定代码并非经授权代码(310)。
在一些实例中,代码的性质是代码的摘要。安全装置存储经授权代码的摘要。举例来说,当安全装置接收经授权代码的整个图像时,安全装置计算经授权代码的摘要且产生摘要的签名以与经授权代码的OEM签名进行验证。如果经产生签名匹配OEM签名,那么安全装置将经授权代码的摘要存储在安全存储装置中,例如,不存储经授权代码的整个图像。当执行步骤308时,安全装置可比较代码的经接收摘要与经授权代码的经存储摘要以确定其是否匹配。在一些情况中,安全装置存储经授权代码的整个图像,且产生经授权代码的摘要以与来自客户端装置的代码的经接收摘要进行比较。
在一些实例中,代码的性质包含代码的加扰数据。客户端装置将代码加扰以产生加扰数据。安全装置将代码的经接收加扰数据解扰(或解扰(descramble))以(例如)得到存储在客户端装置内的原始代码。安全装置接着可产生代码的解扰数据的摘要。如上所示,为了验证代码的性质的正确性,安全装置可基于经产生摘要及经存储的公开密钥产生代码的签名,且确定代码的经产生签名是否匹配经授权代码的签名。
存储在客户端装置中的代码的成功验证(314)使得安全装置能够存取存储在安全存储装置中的私密数据或密钥(316)。在一些实施方案中,经存储私密数据或密钥可仅由安全装置基于代码的成功验证而存取。安全装置可接着使用私密数据或密钥以认证与客户端装置相关联的消息。
在一些实施方案中,安全装置使用私密数据与和客户端装置通信的远程装置(例如,图1的主机装置112、计算装置106a、106b或服务器计算系统108)进行消息认证。客户端装置发送引导到远程装置的消息。安全装置从客户端装置接收消息且基于经存储数据或密钥产生消息的性质。举例来说,安全装置使用与远程装置共享的经存储私密数据产生消息的MAC。安全装置可将经产生MAC增补到消息且向远程装置发送具有经增补MAC的消息。远程装置可使用存储在远程装置中的共享私密数据以产生消息的MAC且以经产生MAC证实来自安全装置的经接收MAC。如果经接收MAC匹配经产生MAC,那么远程装置确定来自客户端装置的消息是真实的或可被信任。否则,远程装置确定消息是不真实的或不能被信任。
在一些实施方案中,安全装置使用私密数据以对客户端装置进行消息认证。在一些实例中,响应于确定代码被授权(314),安全装置产生指示代码的成功验证的值。安全装置还可产生随机值。安全装置使用值及/或随机值作为待认证消息。在一些实例中,客户端装置产生随机值且向安全装置发送所述随机值。安全装置使用随机值及/或代码的经接收性质作为待认证消息。
返回参考图3,安全装置产生消息的性质(318)且向客户端装置发送消息的性质(320)。消息的性质可为基于消息及私密数据的消息的MAC。在一些实例中,安全装置向客户端装置发送消息,例如指示值及/或经产生随机值。
客户端装置接收消息的性质(322)且基于存储在客户端装置内的第二私密数据产生第二消息的性质(324)。第二私密数据可与存储在安全装置内的私密数据(例如,共享I/O保护机密)相同。第二消息可与所述消息包含相同信息。在一些实例中,所述消息包含由安全装置产生的指示值及随机值,且第二消息也包含接收自安全装置的指示值及随机值。在一些实例中,所述消息包含代码的性质及/或由客户端装置产生的随机值,且第二消息包含代码的性质及/或随机值。
客户端装置比较消息的经接收性质与第二消息的经产生性质(326)且确定这两个性质是否彼此匹配(328)。如果客户端装置确定这两个性质匹配,那么客户端装置使用代码运行应用程序(332)。举例来说,如果代码是启动代码,那么客户端装置继续启动。如果代码是应用程序固件,那么客户端装置运行对应的应用程序。如果代码是操作代码,那么客户端装置执行对应的操作。否则,如果客户端装置确定这两个性质不匹配,那么客户端装置禁止其自身使用代码运行应用程序(334)。
图4是根据另一实例实施例的实例过程400的流程图,安全装置通过所述实例过程使用安全代码验证对客户端装置执行消息认证。举例来说,框401中的操作是由客户端装置执行,其中框403中的操作是由安全装置执行。安全装置可类似于图1的安全装置118或图2的安全装置202。客户端装置可类似于图1的客户端装置120或图2的客户端装置204。为了说明,此处的代码是存储在客户端装置内的应用程序固件。
客户端装置产生应用程序固件的摘要(402)且向安全装置发送应用程序固件的摘要(404)。客户端装置还向安全装置发送存储在客户端装置内的固件签名(例如,应用程序固件的OEM签名)(406)。
安全装置接收应用程序固件的摘要(408)且接收固件签名(410)。安全装置接着使用经接收摘要、固件签名及存储在安全装置内的公开密钥(412)验证应用程序固件的摘要的正确性(414)。公开密钥可为OEM公开密钥。安全装置基于公开密钥产生应用程序固件的摘要的签名且接着比较经产生签名与固件签名。
如果经产生签名不匹配固件签名,那么安全装置确定验证不成功(416),即,固件未经授权,安全装置进入保护模式(418),类似于图3的步骤312。如果经产生签名匹配固件签名,那么安全装置确定验证成功(420),即,固件已被授权。响应于固件的成功验证,安全装置能够存取存储在安全装置(例如,安全装置中的安全存储装置)中的I/O保护机密(422)。安全装置产生指示固件的成功验证的值(424)。所述值可为数字、序列或图案。仅为了说明,布尔“1”用作图4中的值。安全装置还可从客户端装置接收随机值(例如,随机数)且将随机值存储在寄存器中(426)。安全装置使用布尔“1”及随机值作为消息且基于I/O保护机密产生消息的MAC(428)。安全装置接着向客户端装置发送经产生MAC。
客户端装置从安全装置接收所述值(例如,布尔“1”)(430)、使用随机数发生器(RNG)产生随机值(432),且使用布尔及随机值作为消息。客户端装置接着基于存储在客户端装置内的I/O保护机密(434)产生消息的MAC(436)。客户端装置接着比较来自安全装置的经接收MAC与经产生MAC以确定其是否匹配(438)。如果经产生MAC匹配经接收MAC,那么客户端装置进行到使用已经验证的固件来运行对应的应用程序(440)。如果经产生MAC不匹配经接收MAC,那么禁止客户端装置运行应用程序(442)。
图5是根据另一实例实施例的实例过程500的流程图,安全装置通过所述实例过程使用安全代码验证对客户端装置执行消息认证。举例来说,框501中的操作是由客户端装置执行,其中框503中的操作是由安全装置执行。安全装置可类似于图1的安全装置118或图2的安全装置202。客户端装置可类似于图1的客户端装置120或图2的客户端装置204。为了说明,此处的代码是存储在客户端装置内的应用程序固件。客户端装置将应用程序固件及I/O保护机密存储在客户端装置的存储器中。I/O保护机密可存储在存储器的安全部分中。安全装置将出厂公开密钥及固件签名(例如,应用程序固件的OEM签名)存储在(例如)安全存储装置中。
客户端装置例如通过执行加密哈希函数产生应用程序固件的摘要(502)。加密哈希函数可包含(例如)安全哈希算法(SHA),例如SHA1、SHA2、SHA3、SHA-256或MD5消息摘要算法。在优选实施例中,SHA 256用作加密哈希函数。然而,应当注意的是,本技术不限于此实例算法的实施方案,且可实施其它类型的哈希函数。
客户端装置向安全装置发送应用程序固件的经产生摘要(504)。在接收到固件摘要之后(506),安全装置通过使用经接收固件摘要、经存储固件签名(506)及经存储公开密钥(510)验证固件的认证(512)。安全装置基于经接收固件摘要及经存储公开密钥产生签名且比较经产生签名与经存储固件签名以确定其是否匹配。如果经产生签名不匹配经存储固件签名,那么安全装置确定固件的验证不成功(514),即,存储在客户端装置内的固件未经授权,安全装置进入受保护模式(516),类似于图3的受保护模式312。
如果经产生签名匹配经存储固件签名,那么安全装置确定固件的验证成功(518)。响应于固件的成功验证,安全装置能够存取存储在安全装置内的I/O保护机密(520)。I/O保护机密是与客户端装置共享的私密数据,所述客户端装置存储对应的I/O保护机密(528)。
客户端装置使用RNG产生随机值(522),例如,计数值、随机数及/或时间,且向安全装置发送随机值。安全装置接收随机值且将其存储在寄存器中(524)且使用随机值及应用程序固件的摘要作为消息。安全装置使用I/O保护机密(例如)通过算法产生消息的MAC(526)。算法可为(例如)密钥哈希消息认证代码(HMAC)或高级加密标准(AES)基于密文的消息认证代码(CMAC)(AES-CMAC)算法或许多其它算法。在优选实施例中,安全装置使用加密MAC算法(例如,AES-CMAC)产生消息的MAC。
客户端装置使用经产生固件摘要(504)及随机值(522)作为消息且使用经存储共享I/O保护机密(528)产生消息的MAC(530)。客户端装置接收由安全装置产生的MAC且在步骤530中比较经接收MAC与经产生MAC以确定这两个MAC是否彼此匹配(532)。如果这两个MAC匹配,那么客户端装置确定消息认证成功且进行到使用经存储固件运行应用程序(534)。否则,如果这两个MAC不匹配,那么客户端装置确定消息认证失败且禁止运行应用程序(536)。
图6是根据第四实例实施例的实例过程600的流程图,安全装置通过所述实例过程使用安全代码验证对客户端装置执行消息认证。举例来说,框601中的操作是由客户端装置执行,其中框603中的操作是由安全装置执行。安全装置可类似于图1的安全装置118或图2的安全装置202。客户端装置可类似于图1的客户端装置120或图2的客户端装置204。为了说明,此处的代码是存储在客户端装置内的应用程序固件。客户端装置将应用程序固件及I/O保护机密存储在客户端装置的存储器中。I/O保护机密可存储在存储器的安全部分中。安全装置将出厂公开密钥及固件签名(例如,应用程序固件的OEM签名)存储在(例如)安全存储装置中。
客户端装置将存储在客户端装置内的应用程序固件加扰(602)。客户端装置可使用加扰函数(例如,AES、TEA(微型加密算法)、XTEA(扩展TEA)、SEAL(软件优化加密算法)、WAKE或许多其它函数)。客户端装置向安全装置发送经加扰固件(604)。安全装置将经接收加扰固件解扰以得到存储在客户端装置内的原始固件(606)。接着,安全装置产生经解扰固件的摘要(608)。安全装置可包含可快速产生哈希的硬件哈希引擎,例如图2的加密模块212。客户端装置使用的加扰功能及安全装置使用的解扰功能可实现较快的速度及/或较高的安全性。
安全装置通过使用经产生摘要、经存储固件签名(610)及经存储公开密钥(612)验证固件的认证(614)。安全装置使用经存储公开密钥产生摘要的签名且接着比较经产生签名与经存储固件签名。如果经产生签名不匹配经存储固件签名,那么安全装置确定验证不成功(616),且进入保护模式(618)。如果经产生签名匹配经存储固件签名,那么安全装置确定验证成功(620),且使得能够存取经存储I/O保护机密(622)。
客户端装置使用RNG以产生随机值(624),且向安全装置发送随机值。安全装置接收随机值且将其存储在寄存器中(626)且使用随机值作为消息。安全装置接着使用I/O保护机密产生消息的MAC(628)且向客户端装置发送经产生MAC。安全装置可在进行I/O活动的同时产生MAC。
客户端装置还使用经产生随机值(624)作为消息且使用存储在客户端装置中的I/O保护机密产生消息的MAC(632),所述I/O保护机密与存储在安全装置内的I/O保护机密相同。客户端装置比较经产生MAC与来自安全装置的经接收MAC且确定这两个MAC是否匹配(634)。如果这两个MAC匹配,那么客户端装置确定消息认证成功且进行到使用经存储固件运行应用程序(636)。否则,如果这两个MAC不匹配,那么客户端装置确定消息认证失败且禁止运行应用程序(638)。
为了提高安全性及/或增大速度,安全装置可执行存储在客户端装置中的代码的部分验证,例如,代码的部分的验证。图7A是根据实例实施例的实例过程700的流程图,安全装置通过所述实例过程验证客户端装置的应用程序固件的真实性。图7B是根据实例实施例的另一实例过程750的流程图,安全装置通过所述另一实例过程存储用于客户端装置的固件的部分的信息。图8及9展示实例过程,安全装置通过所述实例过程使用固件的安全部分验证对客户端装置执行消息认证。
安全装置可类似于图1的安全装置118或图2的安全装置202。客户端装置可类似于图1的客户端装置120或图2的客户端装置204。为了说明,此处的代码是存储在客户端装置内的应用程序固件。客户端装置将应用程序固件及I/O保护机密存储在客户端装置的存储器中。I/O保护机密可存储在存储器的安全部分中。安全装置将出厂公开密钥(例如,OEM公开密钥)及经认证固件签名(例如,OEM签名)存储在(例如)安全存储装置中。
参考图7A,安全装置例如从来源接收应用程序固件的图像(702)。所述来源可为原始制造商或受信任或安全来源,例如图1的主机装置112、计算装置106a、106b或服务器计算系统108。安全装置可通过从来源下载应用程序固件的新图像来更新与应用程序固件相关联的信息。
安全装置计算应用程序固件的摘要(704),且接着使用公开密钥(例如,存储在安全装置内的OEM公开密钥)产生应用程序固件的摘要的签名(706)。安全装置比较经产生签名与经存储固件签名(708)且基于所述比较验证应用程序固件的真实性(710)。如果经产生签名不匹配经存储固件签名,那么安全装置确定应用程序固件的经接收图像未经授权或不真实。安全装置可舍弃经接收图像。如果经产生签名匹配经存储固件签名,那么安全装置确定应用程序固件的经接收图像已被授权或是真实的。安全装置可将应用程序固件的新图像的摘要存储在安全存储装置中,或进行到过程750,例如而不存储应用程序固件的整个图像。
参考图7B,过程750可在验证应用程序固件的经接收图像的真实性之后执行。安全装置对应用程序固件的多个部分选择多个地址范围(752)。安全装置可从由应用程序固件的起始地址及终止地址限定的范围中随机地选择多个地址范围。选定地址范围可彼此不同且可具有相同或不同大小。选定地址范围可包含对应于应用程序固件的重要部分的地址范围。与其它非重要部分相比,安全装置可更频繁地检验重要部分。每当安全装置更新应用程序固件的新图像时,安全装置可从先前的多个地址范围中选择不同的多个地址范围。
安全装置确定每一地址范围的对应部分(754)且计算每一部分的相应摘要(756)。安全装置将指示应用程序固件的部分的相应性质的第一信息及指示相应存储器地址范围的第二信息存储在安全存储装置中(758),且分别使多个存储器地址范围当中的存储器地址范围与部分的性质当中的性质在安全存储装置中相关联(760)。注意,安全装置可仅存储具有相关联存储器地址范围的摘要,而不存储应用程序固件的图像或应用程序固件的部分。
参考图8,过程800展示安全装置使用固件的安全部分验证对客户端装置执行消息认证。举例来说,框801中的操作是由客户端装置执行,其中框803中的操作是由安全装置执行。安全装置从存储在安全存储装置中的存储器地址范围中选择地址范围(802)。安全装置可从许多存储器地址范围中随机地选择地址范围。安全装置还可选择地址范围作为对应于应用程序固件的重要部分的地址范围。安全装置还可基于存储器地址范围的对应部分的大小选择地址范围。举例来说,为了满足特定启动时间约束,安全装置可选择对应于具有更小大小或更大大小的部分的地址范围。
在一些实施方案中,需要客户端装置以预定时间表(例如,每隔1秒钟)或每当客户端装置重启时执行新的证实。安全装置可每次选择对应于应用程序固件的不同部分的不同存储器范围,使得存储在客户端装置内的应用程序固件的许多部分可随时间验证。安全装置还可改变不同部分的选择的统计资料以使得难以记录经存储的存储器范围。
在一些实施方案中,系统包含各自包含相应客户端装置及相应安全装置的许多子系统。子系统可彼此相同。客户端装置使用相同代码执行相同操作,例如,启动操作。安全装置中的每一者可选择代码的部分集合且使用所述部分集合与对应的客户端装置进行安全代码认证。不同的安全装置可选择代码的不同部分集合及/或具有用于客户端装置的不同的地址范围集合。在一些情况中,安全装置更新代码的新图像且选择代码的新的部分集合。代码的新的部分集合可不同于由相同的安全装置选择的先前部分集合。
在一些实施方案中,子系统彼此不同。每一子系统中的客户端装置可使用对应的代码执行对应的操作。每一安全装置可选择对应代码的部分集合且使用所述部分集合与对应的客户端装置进行安全代码认证。不同的客户端装置的代码可彼此不同。不同的安全装置可选择不同代码的不同部分集合用于与客户端装置进行安全代码认证。
返回参考图8,客户端装置从安全装置接收选定地址范围(804)。客户端装置基于地址范围确定存储在客户端装置内的应用程序固件的对应部分。客户端装置接着产生应用程序固件的部分的摘要(806)。
客户端装置向安全装置发送应用程序固件的部分的经产生摘要(808)。安全装置从客户端装置接收摘要(810)且以与安全存储装置中的选定地址范围(814)相关联的经存储摘要(812)验证经接收摘要。如果经接收摘要不匹配经存储摘要,那么安全装置确定验证不成功(816),即,存储在客户端装置内的应用程序固件的部分未被授权。安全装置可确定存储在客户端装置内的固件未被授权或不被信任。响应于确定验证不成功,安全装置进入保护模式(818),其类似于图3的保护模式(312)。
如果经接收摘要匹配经存储摘要,那么安全装置确定验证成功(820),即,存储在客户端装置内的应用程序固件的部分已被授权。安全装置可确定存储在客户端装置内的固件也已被授权。在一些情况中,安全装置可选择一或多个不同地址范围用于与客户端装置进行后续验证。如果所有验证成功,那么安全装置确定存储在客户端装置内的固件已被授权。
响应于确定验证成功,安全装置能够存取存储在安全存储装置中的与客户端装置共享的I/O保护机密(822)。在一些实施方案中,客户端装置使用RNG以产生随机值(824),且向安全装置发送随机值。安全装置接收随机值且将其存储在寄存器中(826)且使用经接收随机值及应用程序固件的部分的经接收摘要作为消息。安全装置使用经存储I/O保护机密产生消息的MAC(828)且向客户端装置发送经产生MAC。
客户端装置存储共享I/O保护机密(830)。安全装置使用应用程序固件的部分的经产生摘要及经产生随机值作为消息且基于共享I/O保护机密产生消息的MAC(832)。客户端装置确定经产生MAC是否匹配来自安全装置的经接收MAC(834)。如果这两个MAC匹配,那么客户端装置进行到使用经存储应用程序固件运行对应的应用程序,例如,继续启动(836)。否则,如果这两个MAC不匹配,那么客户端装置禁止其自身运行应用程序(838)。
参考图9,过程900展示另一实施方案,其中安全装置使用固件的安全部分验证对客户端装置执行消息认证。举例来说,框901中的操作是由客户端装置执行,其中框903中的操作是由安全装置执行。
安全装置从存储在安全存储装置中的多个存储器地址范围中选择地址范围(902)。选定地址范围对应于应用程序固件的部分且与存储在安全装置的安全存储装置中的应用程序固件的部分的摘要(912)相关联。步骤902可类似于图8的步骤802。
客户端装置从安全装置接收选定地址范围(904)。基于地址范围,客户端装置确定存储在客户端装置内的固件应用程序的部分。客户端装置接着将应用程序固件的经确定部分加扰(906)且向安全装置发送应用程序固件的加扰部分。
安全装置将经接收加扰部分解扰(908)以得到固件应用程序的原始部分。安全装置接着产生固件应用程序的部分的摘要(910)且通过比较经产生摘要与关联于安全存储装置中的地址范围的经存储摘要(912)来验证固件应用程序的部分的正确性(914)。如果经产生摘要不匹配经存储摘要,那么安全装置确定验证不成功(916),且进入保护模式(918)。如果经产生摘要匹配经存储摘要,那么安全装置确定验证成功(920)。基于固件应用程序的部分的成功验证,安全装置可进一步确定存储在客户端装置内的固件已被授权(或被信任)。
响应于固件的部分的成功验证,安全装置能够存取存储在安全存储装置中的I/O保护机密(922)。I/O保护机密与客户端装置共享。客户端装置使用RNG以产生随机值(924),且向安全装置发送随机值。安全装置接收随机值且将其存储在寄存器中(926)且使用随机值作为消息。安全装置使用经存储I/O保护机密产生消息的MAC(928)且向客户端装置发送经产生MAC。
客户端装置存储共享I/O保护机密(930)。安全装置使用经产生随机值作为消息且基于共享I/O保护机密产生消息的MAC(932)。客户端装置确定经产生MAC是否匹配来自安全装置的经接收MAC(934)。如果这两个MAC匹配,那么客户端装置进行到使用经存储应用程序固件运行对应的应用程序,例如,继续启动(936)。否则,如果这两个MAC不匹配,那么客户端装置禁止其自身运行应用程序(938)。
本说明书中所描述的标的物的特定实施例可经实施以实现下列优点中的一或多者。本技术提供用于将安全代码认证(例如安全启动)与消息保护连接的解决方案。其仅在已经验证安全启动时才允许使用私密数据作为验证MAC的部分。如果没有验证安全启动,那么其禁止使用机密作为验证MAC的部分,这可使得难以进行硬件中间人攻击。本技术使得能够使用具有低性能及安全能力的微控制器作为例如用于安全应用中的汽车或其它行业领域中的受控区域网(CAN)的部分。举例来说,客户端处理器可不具有必要的计算能力或存储器容量来执行安全启动操作,且此可被脱机加载到安全装置。本技术可用于分层安全启动,其可用于更大的基于丰富的OS的系统。举例来说,预启动ROM使用安全装置来验证存储在客户端装置内的启动代码的真实性,例如,安全装置可使用启动代码的部分验证。启动代码可含有软件(例如,装入程序)以验证下一级代码。装入程序可在加载到存储器中之前验证代码,这对于证实任何受信任代码来说是重要的。本技术可在信息娱乐、远程信息处理及/或运行Linux、Android、Unix等的其它系统中应用。
本说明书中描述的标的物及功能操作的实施例可以数字电子电路或有形体现的计算机软件、固件、计算机硬件(包含本说明书中揭示的结构及其结构等效物)或其中的一或多者的组合实施。本说明书中描述的标的物的实施例可实施为在有形非暂时性程序载体上编码以由数据处理设备执行或控制数据处理设备的操作的一或多个计算机程序(即,计算机程序指令的一或多个模块)。替代地或此外,程序指令可在人工产生的传播信号(例如,机器产生的电信号、光学信号或电磁信号)上编码,所述传播信号经产生以编码信息以传输到合适的接收器设备以供数据处理设备执行。计算机存储媒体可为机器可读存储装置、机器可读存储衬底、随机或串行存取存储器装置或其中的一或多者的组合。
本说明书中描述的过程及逻辑流可由一或多个可编程计算机执行,所述可编程计算机执行一或多个计算机程序以通过对输入数据进行操作且产生输出来执行功能。过程及逻辑流还可由专用逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,且设备也可被实施为所述专用逻辑电路。
适用于执行计算机程序的计算机包含,例如,可基于通用或专用微处理器或其两者,或任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令及数据。计算机的基本元件是用于执行指令的中央处理单元及用于存储指令及数据的一或多个存储器装置。通常,计算机还将包含用于存储数据的一或多个大容量存储装置(例如,磁盘、磁光盘或光盘),或操作性地耦合以从一或多个大容量存储装置接收数据或将数据传送到一或多个大容量存储装置,或两者。然而,计算机无需具有此类装置。另外,计算机可嵌入在另一装置(例如,仅举几例,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置(例如,通用串行总线(USB)快闪驱动器))中。
适用于存储计算机程序指令及数据的计算机可读媒体包含所有形式的非易失性存储器、媒体及存储器装置,包含(例如)半导体存储器装置,例如,EPROM、EEPROM及快闪存储器装置;磁盘,例如,内置硬盘或可抽换式磁盘;磁光盘;及CD-ROM及DVD-ROM光盘。处理器及存储器可由专用逻辑电路增补或并入在专用逻辑电路中。
虽然本说明书含有许多特定实施方案细节,但是这些特定实施方案细节不应被解释为限制任何发明的范围或权利要求书的范围,反而应描述为特定发明的特定实施例可特有的特征。本说明书中在独立实施例的背景中描述的某些特征还可组合地在单个实施例中实施。相反地,单个实施例的背景中描述的各种特征还可在多个实施例中单独地或以任何适当子组合实施。此外,虽然上文可将特征描述为以特定组合起作用且甚至最初如此主张,但在一些情况中,来自所主张的组合的一或多个特征可从组合中删去,且所主张的组合可针对子组合或子组合的变体。
类似地,虽然在图式中以特定顺序描绘操作,但是这不应理解为需要以所展示的特定顺序或循序顺序执行此类操作,或执行所有经说明的操作以实现所需结果。在某些境况中,多任务处理及并行处理可为有利的。此外,上文描述实施例中的各种系统模块及组件的分离不应被理解为要求在所有实施例中都进行此分离,而应理解为所描述的程序组件及系统通常可一起集成在单个软件产品中或封装到多个软件产品中。
因此,已经描述了所述标的物的特定实施例。其它实施例在所附权利要求书的范围内。在一些情况中,权利要求书中叙述的动作可以不同顺序执行且仍实现所需结果。此外,附图中所描绘的过程不一定要求所展示特定次序或连续次序来实现所期望结果。在某些实施方案中,多任务处理及并行处理可为有利的。
Claims (25)
1.一种系统,其包括:
客户端装置,其存储代码;及
安全装置,其耦合到所述客户端装置且经配置以:
接收由所述客户端装置产生的所述代码的第一性质;
基于与所述代码相关联的信息验证所述代码的所述第一性质的正确性以确定所述代码是经授权代码,所述信息存储在所述安全装置内;
响应于确定所述代码是所述经授权代码,使得所述安全装置能够存取存储在所述安全装置内的第一数据;及
基于所述第一数据产生第一消息的第二性质。
2.根据权利要求1所述的系统,其中所述客户端装置经配置以:
从所述安全装置接收所述第一消息的所述经产生第二性质;
基于存储在所述客户端装置内的第二数据产生第二消息的所述第二性质,所述第二数据对应于存储在所述安全装置内的所述第一数据;
基于所述第一消息的所述接收的经产生第二性质确定所述第二消息的所述经产生第二性质是否有效;
响应于确定所述第二消息的所述经产生第二性质有效,在所述客户端装置处使用所述代码运行所述客户端装置上的应用程序;及
否则响应于确定所述第二消息的所述经产生性质无效,约束所述客户端装置使用所述代码运行所述客户端装置上的所述应用程序。
3.根据权利要求2所述的系统,其中所述客户端装置经配置以向所述安全装置发送随机值,及
其中所述第一消息包括所述随机值,且所述第二消息包括所述随机值。
4.根据权利要求3所述的系统,其中所述第一消息包括所述代码的所述经接收第一性质,且其中所述第二消息包括所述代码的所述第一性质。
5.根据权利要求2所述的系统,其中所述安全装置经配置以:
响应于确定所述代码是所述经授权代码,向所述客户端装置发送指示所述代码的成功验证的值;及
从所述客户端装置接收随机值,
其中所述第一消息包括所述值及所述随机值,且所述第二消息包括所述经接收值及随机值。
6.根据权利要求1所述的系统,其中所述安全装置经配置以:
从所述客户端装置接收所述第一消息,所述第一消息被引导到远程装置;
向所述第一消息增补所述第一消息的所述经产生第二性质;及
致使向所述远程装置发送所述第一消息连同所述第一消息的所述经增补第二性质。
7.根据权利要求1所述的系统,其中所述代码包括存储在所述客户端装置内的启动代码。
8.根据权利要求1所述的系统,其中所述第一消息的所述第二性质包括所述第一消息的消息认证代码MAC。
9.一种其上存储有指令的非暂时性计算机可读存储媒体,所述指令在由一或多个处理器执行时使所述一或多个处理器执行包括以下项的操作:
存取代码的性质,所述代码存储在客户端装置内;
基于与所述代码相关联且存储在安全装置内的信息验证所述代码的所述性质的正确性以确定所述代码是经授权代码;
响应于确定所述代码是所述经授权代码,存取存储在所述安全装置内的数据;及
基于所述数据产生消息的性质。
10.根据权利要求9所述的计算机可读存储媒体,其中所述操作包括:
响应于确定所述代码是所述经授权代码,致使向所述客户端装置发送指示所述代码的成功验证的值;及
从所述客户端装置存取随机值,
其中所述消息包括所述值及所述随机值。
11.根据权利要求9所述的计算机可读存储媒体,其中所述操作包括:
在所述安全装置处从所述客户端装置存取随机值,及
其中所述消息包括所述随机值。
12.根据权利要求9所述的计算机可读存储媒体,其中所述消息包括所述代码的所述性质。
13.根据权利要求9所述的计算机可读存储媒体,其中所述代码的所述性质包括由所述客户端装置产生的所述代码的摘要,
其中与所述代码相关联的信息包括存储在所述安全装置内的所述经授权代码的签名,及
其中所述验证所述代码的所述性质的正确性包括:
基于所述代码的所述摘要及存储在所述安全装置内的公开密钥产生所述代码的签名;及
确定所述代码的所述经产生签名匹配所述经授权代码的所述经存储签名。
14.根据权利要求9所述的计算机可读存储媒体,其中所述代码的所述性质包括所述代码的加扰数据,
其中所述操作包括:
在所述安全装置处对所述代码的所述加扰数据解扰;及
产生所述代码的所述经解扰数据的摘要,及
其中所述验证所述代码的所述性质的正确性包括:
基于所述经产生摘要及存储在所述安全装置内的公开密钥产生所述代码的签名;及
确定所述代码的所述经产生签名匹配所述经授权代码的所述签名。
15.根据权利要求9所述的计算机可读存储媒体,其中所述操作包括:
选择所述经授权代码的多个存储器地址范围;
针对所述多个存储器地址范围中的每一者确定所述经授权代码的相应部分;
计算所述经授权代码的每一经确定部分的相应性质;
将指示所述经授权代码的所述部分的所述相应性质的第一信息及指示所述相应存储器地址范围的第二信息存储在所述安全装置中;及
分别使所述多个存储器地址范围当中的存储器地址范围与所述部分的所述性质当中的性质相关联。
16.根据权利要求15所述的计算机可读存储媒体,其中所述操作包括:
从所述多个存储器地址范围当中选择特定存储器地址范围;及
致使向所述客户端装置发送指示所述特定存储器地址范围的数据,所述特定存储器地址范围对应于所述经授权代码的特定部分。
17.根据权利要求16所述的计算机可读存储媒体,其中所述代码的所述性质包括所述代码的部分的摘要,及
其中所述验证所述代码的所述性质的正确性包括:
确定所述代码的所述部分的所述摘要匹配存储在所述安全装置中的所述经授权代码的所述特定部分的摘要。
18.根据权利要求16所述的计算机可读存储媒体,其中所述代码的所述性质包括所述代码的部分的加扰数据,
其中所述操作包括:
在所述安全装置处对所述代码的所述部分的所述加扰数据解扰以得到所述代码的经解扰部分;及
产生所述代码的所述经解扰部分的摘要,及
其中所述验证所述代码的所述性质的正确性包括:
确定所述代码的所述经解扰部分的所述经产生摘要匹配所述经授权代码的所述特定部分的所述经存储摘要。
19.根据权利要求9所述的计算机可读存储媒体,其中所述操作包括:
存取所述经授权代码的整个图像;
存取所述经授权代码的签名;
计算所述经授权代码的所述整个图像的摘要;
基于存储在所述安全装置内的公开密钥产生所述摘要的签名;及
基于所述经存取签名及所述经产生签名验证所述经授权代码的所述整个图像的真实性。
20.根据权利要求9所述的计算机可读存储媒体,其中所述代码的所述性质包括由所述客户端装置产生的所述代码的摘要,其中与所述代码相关联的信息包括存储在所述安全装置内的公开密钥,及
其中所述操作包括:
在所述安全装置处从所述客户端装置存取所述经授权代码的签名,所述经授权代码的所述签名存储在所述客户端装置内;及
基于所述经存储公开密钥产生所述代码的所述经接收摘要的签名,及
其中所述验证所述代码的所述性质的正确性包括:
确定所述代码的所述摘要的所述经产生签名匹配所述经授权代码的所述经接收签名。
21.根据权利要求9所述的计算机可读存储媒体,其中所述操作包括:
从所述客户端装置存取消息,所述消息被引导到远程装置;
向所述消息增补所述消息的所述经产生性质;及
致使向所述远程装置发送所述消息连同所述消息的所述经增补性质。
22.根据权利要求9所述的计算机可读存储媒体,其中所述消息的所述性质包括所述消息的消息认证代码MAC。
23.根据权利要求9所述的计算机可读存储媒体,其中所述操作包括:
存取第二代码的性质;
基于与所述第二代码相关联且存储在所述安全装置内的信息验证所述第二代码的所述性质的不正确性;及
基于所述验证所述第二代码的所述性质的不正确性,禁止所述安全装置存取存储在所述安全装置中的所述数据。
24.根据权利要求23所述的计算机可读存储媒体,其中所述操作包括:
基于所述验证所述第二代码的所述性质的不正确性,阻止所述客户端装置通过网络与远程装置通信。
25.一种方法,其包括:
在安全装置处从客户端装置接收代码的性质,所述代码存储在所述客户端装置内;
由所述安全装置基于与所述代码相关联且存储在所述安全装置内的信息验证所述代码的所述性质的正确性以确定所述代码是经授权代码;及
响应于确定所述代码是所述经授权代码,使得所述安全装置能够存取存储在所述安全装置内的数据;及
由所述安全装置基于所述数据产生消息的性质。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/131,919 US10616197B2 (en) | 2016-04-18 | 2016-04-18 | Message authentication with secure code verification |
US15/131,919 | 2016-04-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107306184A true CN107306184A (zh) | 2017-10-31 |
Family
ID=59980770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710248860.0A Pending CN107306184A (zh) | 2016-04-18 | 2017-04-17 | 以安全代码验证进行的消息认证 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10616197B2 (zh) |
CN (1) | CN107306184A (zh) |
DE (1) | DE102017205948A1 (zh) |
TW (1) | TW201802719A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124398A (zh) * | 2020-08-28 | 2022-03-01 | 美光科技公司 | 具有信任链的装置 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10474823B2 (en) * | 2016-02-16 | 2019-11-12 | Atmel Corporation | Controlled secure code authentication |
US10482255B2 (en) * | 2016-02-16 | 2019-11-19 | Atmel Corporation | Controlled secure code authentication |
US10303883B2 (en) * | 2016-10-25 | 2019-05-28 | Hewlett Packard Enterprise Development Lp | Firmware verification through data ports |
US10944566B2 (en) * | 2017-11-15 | 2021-03-09 | International Business Machines Corporation | Methods and systems for supporting fairness in secure computations |
US10009325B1 (en) | 2017-12-07 | 2018-06-26 | Karamba Security | End-to-end communication security |
US11829478B2 (en) * | 2019-01-08 | 2023-11-28 | Oracle International Corporation | Full server recovery architecture for cloud bare metal instances |
US11128474B2 (en) * | 2019-03-25 | 2021-09-21 | Micron Technology, Inc. | Secure device communication |
CN112422595B (zh) * | 2019-08-20 | 2022-10-11 | 华为技术有限公司 | 车载系统安全保护方法及设备 |
US11165588B1 (en) * | 2020-04-09 | 2021-11-02 | International Business Machines Corporation | Key attribute verification |
US20210334380A1 (en) * | 2020-04-24 | 2021-10-28 | Vmware, Inc. | Trusted firmware verification |
US11651077B2 (en) * | 2021-01-22 | 2023-05-16 | Dell Products L.P. | Systems and methods for providing secured boot and scan for devices with limited access |
US11698971B2 (en) | 2021-04-15 | 2023-07-11 | Honeywell International Inc. | Secure boot device |
US11818574B2 (en) * | 2021-05-27 | 2023-11-14 | Citrix Systems, Inc. | Provisioning devices securely using zero touch deployments |
US20230087521A1 (en) * | 2021-09-20 | 2023-03-23 | Ford Global Technologies, Llc | Computing device verification |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1516836A (zh) * | 2000-09-08 | 2004-07-28 | 国际商业机器公司 | 软件安全认证信道 |
CN101042720A (zh) * | 2006-03-22 | 2007-09-26 | 富士通株式会社 | 具有启动验证功能的信息处理装置 |
CN101218588A (zh) * | 2005-05-05 | 2008-07-09 | 塞尔蒂卡姆公司 | 在固件上的更新认证 |
CN104462965A (zh) * | 2014-11-14 | 2015-03-25 | 华为技术有限公司 | 应用程序完整性验证方法及网络设备 |
CN104537302A (zh) * | 2015-01-16 | 2015-04-22 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端的安全启动方法、装置及终端 |
Family Cites Families (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5422632A (en) | 1992-10-28 | 1995-06-06 | Intellitouch 2000, Inc. | Electronic security system |
US6212635B1 (en) | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
US6708273B1 (en) | 1997-09-16 | 2004-03-16 | Safenet, Inc. | Apparatus and method for implementing IPSEC transforms within an integrated circuit |
US6704871B1 (en) | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
US6601172B1 (en) | 1997-12-31 | 2003-07-29 | Philips Electronics North America Corp. | Transmitting revisions with digital signatures |
US6141756A (en) * | 1998-04-27 | 2000-10-31 | Motorola, Inc. | Apparatus and method of reading a program into a processor |
EP1018821A1 (en) | 1999-01-08 | 2000-07-12 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Communication device and method |
US7430668B1 (en) | 1999-02-15 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | Protection of the configuration of modules in computing apparatus |
EP1076279A1 (en) | 1999-08-13 | 2001-02-14 | Hewlett-Packard Company | Computer platforms and their methods of operation |
US6708049B1 (en) | 1999-09-28 | 2004-03-16 | Nellcor Puritan Bennett Incorporated | Sensor with signature of data relating to sensor |
US6826690B1 (en) | 1999-11-08 | 2004-11-30 | International Business Machines Corporation | Using device certificates for automated authentication of communicating devices |
DE69941335D1 (de) | 1999-12-02 | 2009-10-08 | Sony Deutschland Gmbh | Nachrichtenauthentisierung |
FR2802693B1 (fr) | 1999-12-15 | 2002-08-02 | Store Electronic Systems Techn | Systeme perfectionne d'etiquettes electroniques notamment pour l'affichage de prix sur lieux de vente |
US6996710B1 (en) | 2000-03-31 | 2006-02-07 | Intel Corporation | Platform and method for issuing and certifying a hardware-protected attestation key |
US6961858B2 (en) | 2000-06-16 | 2005-11-01 | Entriq, Inc. | Method and system to secure content for distribution via a network |
US20020026578A1 (en) | 2000-08-22 | 2002-02-28 | International Business Machines Corporation | Secure usage of digital certificates and related keys on a security token |
DE10065684A1 (de) * | 2000-12-29 | 2002-07-18 | Aladdin Knowledge Systems Gmbh | System und Verfahren zum Erteilen der Laufberechtigung für ein auf einem Rechner installiertes Programm |
US7779267B2 (en) | 2001-09-04 | 2010-08-17 | Hewlett-Packard Development Company, L.P. | Method and apparatus for using a secret in a distributed computing system |
US20030093663A1 (en) | 2001-11-09 | 2003-05-15 | Walker Jesse R. | Technique to bootstrap cryptographic keys between devices |
US20030138105A1 (en) | 2002-01-18 | 2003-07-24 | International Business Machines Corporation | Storing keys in a cryptology device |
US7313705B2 (en) | 2002-01-22 | 2007-12-25 | Texas Instrument Incorporated | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory |
US7142674B2 (en) | 2002-06-18 | 2006-11-28 | Intel Corporation | Method of confirming a secure key exchange |
ES2611408T3 (es) | 2002-10-31 | 2017-05-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Implementación y utilización segura de datos de seguridad específicos de dispositivo |
US7565533B2 (en) * | 2002-11-05 | 2009-07-21 | Sun Microsystems, Inc. | Systems and methods for providing object integrity and dynamic permission grants |
US20040101141A1 (en) | 2002-11-27 | 2004-05-27 | Jukka Alve | System and method for securely installing a cryptographic system on a secure device |
US7165181B2 (en) | 2002-11-27 | 2007-01-16 | Intel Corporation | System and method for establishing trust without revealing identity |
US7593530B2 (en) | 2002-12-11 | 2009-09-22 | Broadcom Corporation | Secure legacy media peripheral association with authentication in a media exchange network |
US7802087B2 (en) | 2003-03-10 | 2010-09-21 | Igt | Universal method for submitting gaming machine source code software to a game certification laboratory |
JP3928589B2 (ja) | 2003-06-12 | 2007-06-13 | コニカミノルタビジネステクノロジーズ株式会社 | 通信システムおよび方法 |
US9106479B1 (en) | 2003-07-10 | 2015-08-11 | F5 Networks, Inc. | System and method for managing network communications |
EP2228988B1 (en) | 2003-08-15 | 2012-02-08 | STMicroelectronics (Research & Development) Limited | Circuit for restricting data access |
JP4625000B2 (ja) | 2003-10-16 | 2011-02-02 | パナソニック株式会社 | データ保護システム及び記録担体 |
WO2005109360A1 (en) * | 2004-05-10 | 2005-11-17 | Hani Girgis | Secure pin entry using personal computer |
CA2922172A1 (en) | 2004-10-25 | 2006-05-04 | Security First Corp. | Secure data parser method and system |
GB2419787B (en) | 2004-10-28 | 2007-07-04 | Hewlett Packard Development Co | Method and apparatus for providing short-term private keys in public-key cryptographic systems |
US7369856B2 (en) | 2004-11-24 | 2008-05-06 | Intel Corporation | Method and system to support fast hand-over of mobile subscriber stations in broadband wireless networks |
US7577848B2 (en) | 2005-01-18 | 2009-08-18 | Microsoft Corporation | Systems and methods for validating executable file integrity using partial image hashes |
US20060218649A1 (en) | 2005-03-22 | 2006-09-28 | Brickell Ernie F | Method for conditional disclosure of identity information |
US20060236098A1 (en) | 2005-03-31 | 2006-10-19 | Alexander Gantman | Multisigning - a protocol for robust multiple party digital signatures |
US7716497B1 (en) | 2005-06-14 | 2010-05-11 | Xilinx, Inc. | Bitstream protection without key storage |
US7596812B2 (en) | 2005-06-14 | 2009-09-29 | Motorola, Inc. | System and method for protected data transfer |
WO2007011786A2 (en) | 2005-07-15 | 2007-01-25 | Revolution Money, Inc. | System and method for establishment of rules governing child accounts |
US20100203960A1 (en) | 2005-07-20 | 2010-08-12 | Wms Gaming Inc. | Wagering game with encryption and authentication |
JP4912772B2 (ja) | 2005-09-22 | 2012-04-11 | 富士通株式会社 | 暗号化方法,暗号復号化方法,暗号化装置,暗号復号化装置,送受信システムおよび通信システム |
DE602006018408D1 (de) | 2005-10-14 | 2011-01-05 | Research In Motion Ltd | Mobiles Kommunikationsgerät mit einem intelligenten Batteriesystem |
US20070237366A1 (en) | 2006-03-24 | 2007-10-11 | Atmel Corporation | Secure biometric processing system and method of use |
US8165301B1 (en) | 2006-04-04 | 2012-04-24 | Bitmicro Networks, Inc. | Input-output device and storage controller handshake protocol using key exchange for data security |
CN101512535B (zh) | 2006-08-31 | 2011-05-18 | 国际商业机器公司 | 计算平台的证明 |
WO2008066671A2 (en) | 2006-11-08 | 2008-06-05 | Voltage Security, Inc. | Indentity-based-encryption extensions formed using multiple instances of an identity based encryption scheme |
US7685263B2 (en) | 2006-12-19 | 2010-03-23 | Blue Coat Systems, Inc. | Method and system for configuring a device with a wireless mobile configurator |
CN101272240B (zh) * | 2007-03-21 | 2013-01-23 | 华为技术有限公司 | 一种会话密钥的生成方法、系统和通信设备 |
US8347374B2 (en) | 2007-11-15 | 2013-01-01 | Red Hat, Inc. | Adding client authentication to networked communications |
US8356181B2 (en) | 2007-11-15 | 2013-01-15 | Intel Corporation | Apparatus and method for a direct anonymous attestation scheme from short-group signatures |
KR100925329B1 (ko) | 2007-12-03 | 2009-11-04 | 한국전자통신연구원 | 디지털케이블 방송망에서 다운로더블 제한수신시스템을위한 상호인증 및 키 공유 방법과 장치 |
JP4508234B2 (ja) * | 2007-12-13 | 2010-07-21 | コニカミノルタビジネステクノロジーズ株式会社 | 画像形成装置、および、画像形成プログラム |
JP5508752B2 (ja) | 2008-04-09 | 2014-06-04 | パナソニック株式会社 | 電池認証システム、および電子機器 |
US8522354B2 (en) | 2008-05-24 | 2013-08-27 | Via Technologies, Inc. | Microprocessor apparatus for secure on-die real-time clock |
US20110099362A1 (en) | 2008-06-23 | 2011-04-28 | Tomoyuki Haga | Information processing device, encryption key management method, computer program and integrated circuit |
CN101616136B (zh) | 2008-06-26 | 2013-05-01 | 阿里巴巴集团控股有限公司 | 一种提供互联网服务的方法及服务集成平台系统 |
US20100005318A1 (en) | 2008-07-02 | 2010-01-07 | Akram Hosain | Process for securing data in a storage unit |
US8736225B2 (en) * | 2008-08-20 | 2014-05-27 | San Diego Gas & Electronic Company | Modularized interface and related method for connecting plug-in electric vehicles to the energy grid |
US8161285B2 (en) | 2008-09-26 | 2012-04-17 | Microsoft Corporation | Protocol-Independent remote attestation and sealing |
US8127146B2 (en) | 2008-09-30 | 2012-02-28 | Microsoft Corporation | Transparent trust validation of an unknown platform |
US9230109B2 (en) | 2008-10-07 | 2016-01-05 | Microsoft Technology Licensing, Llc | Trusted platform module security |
US20100130166A1 (en) | 2008-11-24 | 2010-05-27 | Yossef Tsuria | Slim authentication tag |
US8649509B2 (en) | 2008-12-18 | 2014-02-11 | At&T Intellectual Property I, L.P. | Systems and computer program products for generating and verifying randomized hash values |
US8468355B2 (en) | 2008-12-19 | 2013-06-18 | University Of South Carolina | Multi-dimensional credentialing using veiled certificates |
CN105072088A (zh) | 2010-01-22 | 2015-11-18 | 交互数字专利控股公司 | 一种在具有用户的无线设备处执行的方法 |
US20110219427A1 (en) | 2010-03-04 | 2011-09-08 | RSSBus, Inc. | Smart Device User Authentication |
US9418205B2 (en) | 2010-03-15 | 2016-08-16 | Proxense, Llc | Proximity-based system for automatic application or data access and item tracking |
WO2011119169A1 (en) * | 2010-03-26 | 2011-09-29 | Hewlett-Packard Development Company, L.P. | Storage device access authentication upon resuming from a standby mode of a computing device |
US8898453B2 (en) | 2010-04-29 | 2014-11-25 | Blackberry Limited | Authentication server and method for granting tokens |
US9118469B2 (en) | 2010-05-28 | 2015-08-25 | Aquantia Corp. | Reducing electromagnetic interference in a received signal |
US8892855B2 (en) | 2010-08-10 | 2014-11-18 | Maxlinear, Inc. | Encryption keys distribution for conditional access software in TV receiver SOC |
US8997239B2 (en) | 2011-03-31 | 2015-03-31 | Infosys Limited | Detecting code injections through cryptographic methods |
US9104985B2 (en) | 2011-08-17 | 2015-08-11 | International Business Machines Corporation | Processing system using metadata for administering a business transaction |
US8843740B2 (en) | 2011-12-02 | 2014-09-23 | Blackberry Limited | Derived certificate based on changing identity |
US9544075B2 (en) * | 2012-02-22 | 2017-01-10 | Qualcomm Incorporated | Platform for wireless identity transmitter and system using short range wireless broadcast |
US9323950B2 (en) | 2012-07-19 | 2016-04-26 | Atmel Corporation | Generating signatures using a secure device |
US9088891B2 (en) | 2012-08-13 | 2015-07-21 | Wells Fargo Bank, N.A. | Wireless multi-factor authentication with captive portals |
US9129536B2 (en) | 2012-08-31 | 2015-09-08 | Freescale Semiconductor, Inc. | Circuit for secure provisioning in an untrusted environment |
US20140089670A1 (en) | 2012-09-27 | 2014-03-27 | Atmel Corporation | Unique code in message for signature generation in asymmetric cryptographic device |
US20140188949A1 (en) | 2013-01-03 | 2014-07-03 | Dell Products L.P. | Methods and systems for supply chain assurance of information handling system code |
US9118467B2 (en) | 2013-03-13 | 2015-08-25 | Atmel Corporation | Generating keys using secure hardware |
WO2014200496A1 (en) | 2013-06-13 | 2014-12-18 | Intel Corporation | Secure pairing for communication across devices |
US9178881B2 (en) | 2013-10-09 | 2015-11-03 | Microsoft Technology Licensing, Llc | Proof of device genuineness |
US9762395B2 (en) | 2014-04-30 | 2017-09-12 | International Business Machines Corporation | Adjusting a number of dispersed storage units |
US20150339195A1 (en) | 2014-05-23 | 2015-11-26 | Sandisk Technologies Inc. | Method and system for secure system recovery |
KR102383157B1 (ko) | 2014-09-19 | 2022-04-06 | 삼성전자주식회사 | 디바이스 대 디바이스 통신을 지원하는 무선 통신 시스템에서 통신 방법 및 장치 |
WO2016061395A2 (en) | 2014-10-16 | 2016-04-21 | Revolution Technologies, Inc. | Tagged proximity training and timning |
US9742762B2 (en) | 2014-12-01 | 2017-08-22 | Microsoft Technology Licensing, Llc | Utilizing a trusted platform module (TPM) of a host device |
US9984310B2 (en) | 2015-01-23 | 2018-05-29 | Highspot, Inc. | Systems and methods for identifying semantically and visually related content |
KR101736100B1 (ko) | 2015-11-10 | 2017-05-16 | 현대자동차주식회사 | 차량 및 차량의 제어방법 |
US10482255B2 (en) | 2016-02-16 | 2019-11-19 | Atmel Corporation | Controlled secure code authentication |
US10474823B2 (en) | 2016-02-16 | 2019-11-12 | Atmel Corporation | Controlled secure code authentication |
-
2016
- 2016-04-18 US US15/131,919 patent/US10616197B2/en active Active
-
2017
- 2017-04-07 DE DE102017205948.6A patent/DE102017205948A1/de active Pending
- 2017-04-17 TW TW106112710A patent/TW201802719A/zh unknown
- 2017-04-17 CN CN201710248860.0A patent/CN107306184A/zh active Pending
-
2020
- 2020-03-30 US US16/835,173 patent/US11876791B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1516836A (zh) * | 2000-09-08 | 2004-07-28 | 国际商业机器公司 | 软件安全认证信道 |
CN101218588A (zh) * | 2005-05-05 | 2008-07-09 | 塞尔蒂卡姆公司 | 在固件上的更新认证 |
CN101042720A (zh) * | 2006-03-22 | 2007-09-26 | 富士通株式会社 | 具有启动验证功能的信息处理装置 |
CN104462965A (zh) * | 2014-11-14 | 2015-03-25 | 华为技术有限公司 | 应用程序完整性验证方法及网络设备 |
CN104537302A (zh) * | 2015-01-16 | 2015-04-22 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端的安全启动方法、装置及终端 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124398A (zh) * | 2020-08-28 | 2022-03-01 | 美光科技公司 | 具有信任链的装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200236097A1 (en) | 2020-07-23 |
TW201802719A (zh) | 2018-01-16 |
US20170302640A1 (en) | 2017-10-19 |
DE102017205948A1 (de) | 2017-10-19 |
US11876791B2 (en) | 2024-01-16 |
US10616197B2 (en) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107306184A (zh) | 以安全代码验证进行的消息认证 | |
CN107085675B (zh) | 受控安全代码验证 | |
KR100670005B1 (ko) | 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법 | |
US9325496B2 (en) | Encryption key providing method, semiconductor integrated circuit, and encryption key management device | |
CN102546155B (zh) | 立即响应式安全密钥生成方法和系统 | |
CN110990827A (zh) | 一种身份信息验证方法、服务器及存储介质 | |
CN107395581B (zh) | 二维码生成及读取方法、装置、系统、设备和存储介质 | |
CN107086981A (zh) | 受控安全代码认证 | |
US10477402B2 (en) | One-way key fob and vehicle pairing | |
WO2009141936A1 (ja) | Icカード、icカードシステムおよびその方法 | |
US10931458B2 (en) | Authentication system | |
CN112398894B (zh) | 车用的安全验证方法及装置 | |
CN108323230B (zh) | 一种传输密钥的方法、接收终端和分发终端 | |
CN110855616B (zh) | 一种数字钥匙生成系统 | |
CN111565182B (zh) | 一种车辆诊断方法、装置及存储介质 | |
CN115314253B (zh) | 数据处理方法、装置、系统、设备及作业机械 | |
CN111740995A (zh) | 一种授权认证方法及相关装置 | |
CN113612852A (zh) | 一种基于车载终端的通信方法、装置、设备及存储介质 | |
CN103281188A (zh) | 一种备份电子签名令牌中私钥的方法和系统 | |
CN112702304A (zh) | 一种车辆信息的校验方法、装置及汽车 | |
CN103248490A (zh) | 一种备份电子签名令牌中信息的方法和系统 | |
CN108235807B (zh) | 软件加密终端、支付终端、软件包加密及解密方法及系统 | |
CN107682147B (zh) | 用于智能卡芯片操作系统文件的安全管理方法及系统 | |
CN116248280B (zh) | 免密钥发行的安全模组防盗用方法、安全模组及装置 | |
CN111188538A (zh) | 一种智能门锁安全远程升级方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171031 |
|
WD01 | Invention patent application deemed withdrawn after publication |