CN107085675A - 受控安全代码验证 - Google Patents

受控安全代码验证 Download PDF

Info

Publication number
CN107085675A
CN107085675A CN201710084661.0A CN201710084661A CN107085675A CN 107085675 A CN107085675 A CN 107085675A CN 201710084661 A CN201710084661 A CN 201710084661A CN 107085675 A CN107085675 A CN 107085675A
Authority
CN
China
Prior art keywords
code
client terminal
terminal device
authorized
response
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.)
Granted
Application number
CN201710084661.0A
Other languages
English (en)
Other versions
CN107085675B (zh
Inventor
K·D·马莱特斯凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Atmel Corp
Original Assignee
Atmel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of CN107085675A publication Critical patent/CN107085675A/zh
Application granted granted Critical
Publication of CN107085675B publication Critical patent/CN107085675B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3242Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3271Cryptographic 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 challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供用于受控安全代码验证的系统、方法、电路及计算机可读媒体。在一个方面,一种非暂时性计算机可读存储媒体在其上存储有在由一或多个处理器执行时致使所述一或多个处理器执行包含以下操作的方法的指令:将请求发送到客户端装置,所述请求包含对来自存储于所述客户端装置内的代码的多个部分当中的特定部分的性质的质询,所述质询包含指示对应于所述代码的所述特定部分的特定存储器地址范围的数据;从所述客户端装置接收对所述请求的响应,所述响应包含与所述代码的所述性质相关联的信息;基于所述所接收信息而检验所述响应的正确性;及基于检验了所述响应的正确性,确定所述代码为经授权代码。

Description

受控安全代码验证
技术领域
本发明一般来说涉及代码验证,特定来说涉及受控安全代码验证。
背景技术
在实例性情境中,实施用以保护在装置上执行的代码或程序免受欺骗性操作的修改或攻击的方法。举例说明,在实例性安全启动方法中,装置中的处理器产生启动代码的摘要且使用所述启动代码的所存储验证签名来证实所述启动代码的所述摘要。然而,此启动实施方案由所述装置的所述处理器本地执行,且因此受此本地处理器的性能、存储及安全性限制。由于成本约束,本地安全启动的安全性可由于有限计算能力或缺乏对启动过程、操作存储器及/或证实密钥的保护而受限制。在一些情形中,外部装置用于证实真实性且将证实结果报告给处理器。然而,可存在将准许攻击者破坏安全启动操作且允许欺骗性操作的多个攻击途径,例如,使用中间人装置修改启动代码,或者修改证实的根公开密钥或签名。
发明内容
本说明书描述用于受控安全代码验证的系统、方法、电路及计算机可读媒体。在一个方面,一种非暂时性计算机可读存储媒体其上存储有在由一或多个处理器执行时致使所述一或多个处理器执行包括以下各项的操作的指令:将请求从验证装置发送到本地耦合到所述验证装置的客户端装置,所述请求包含对来自存储于所述客户端装置内的代码的多个部分当中的特定部分的性质的质询,所述质询包含指示对应于所述代码的所述特定部分的特定存储器地址范围的数据;在所述验证装置处从所述客户端装置接收对所述请求的响应,所述响应包含与所述代码的所述性质相关联的信息;基于所述所接收信息而检验所述响应的正确性;及基于检验了所述响应的正确性,确定所述代码为经授权代码。
在随附图式及下文说明中陈述一或多个所揭示实施方案的细节。其它特征、方面及优点将依据说明、图式及权利要求书而变得显而易见。
附图说明
图1A是根据实例性实施例的实例性环境的框图。
图1B是根据实例性实施例的另一实例性环境的框图。
图2是根据实例性实施例的实例性系统的框图,所述实例性系统包含对实例性客户端装置执行受控安全代码验证的实例性验证装置。
图3A是根据实例性实施例的实例性过程的流程图,验证装置通过所述实例性过程来存储客户端装置的经授权代码的信息。
图3B是根据实例性实施例的另一实例性过程的流程图,验证装置通过所述实例性过程来存储客户端装置的经授权代码的信息。
图3C是根据实例性实施例的实例性过程的流程图,验证装置可通过所述实例性过程来对客户端装置执行安全代码验证。
具体实施方式
系统概述
图1A是根据实施方案的实例性环境100的框图。出于图解说明的目的,环境100包含系统116(例如,客户端侧系统),系统116包含客户端装置120及验证(Auth)装置118。验证装置118经配置以证实存储于客户端装置120内的代码或程序是否为经授权(或经验证)代码。客户端装置120的代码包含用于使客户端装置120启动(或起动)的启动代码或用于使客户端装置120执行对应操作的操作代码中的至少一者。
验证装置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。
在一些情形中,客户端装置120是不安全的或缺乏安全,例如,归因于受约束成本。攻击者可攻击客户端装置120(例如)以出于欺骗性目的而修改存储于客户端装置120内的代码。在一个实例中,所述攻击者可修改存储于不安全客户端装置内的启动代码以在无需验证的情况下重新启动所述客户端装置。在另一实例中,所述攻击者修改存储于不安全客户端装置内的操作代码以改变由所述客户端装置执行的操作。为解决这些安全问题,耦合到客户端装置120的验证装置118经配置以证实存储于所述客户端装置内的代码或程序是否为经授权代码。举例来说,验证装置118将包含对客户端装置120的代码的性质的质询的请求发送到客户端装置120。客户端装置120产生存储于客户端装置120内的所述代码的所述性质且发回响应。验证装置118检验所述响应。基于检验结果,验证装置118确定存储于所述客户端装置内的所述代码是否为客户端装置120的经授权(或经验证)代码。
在一些实施方案中,存在验证装置118与客户端装置120之间的安全策略。举例来说,如果存储于客户端装置120内的代码为经授权代码,那么验证装置118可允许客户端装置120存取存储于安全存储装置中的关键信息,例如,机密或加密密钥。针对客户端装置120的恰当执行可需要所述关键信息。安全存储装置可包含于验证装置118中或在外部耦合到验证装置118。验证装置118还可(例如)通过引脚启用客户端装置120以通电或者启用客户端装置120中的特定硬件块。如果代码由验证装置118确定为未授权代码,那么验证装置118可禁止或限制客户端装置120存取所述关键信息。验证装置118还可发送(例如)对安全源的请求以更新存储于客户端装置120内的代码。以此方式,可最小化或消除欺骗性操作,且可改进客户端装置120上的操作的安全性。
在一些实施方案中,验证装置118为具有大于客户端装置120的安全能力的可信或安全装置,如参考图2所论述。在一个实例中,验证装置118包含在客户端装置120上不可用的安全存储装置及/或随机数产生器。在一个实施例中,客户端装置120不具有包含安全存储装置及/或随机数产生器的能力。验证装置118将与客户端装置120的经授权代码相关联的信息存储于安全存储装置中。在一些实施方案中,所述信息包含所述经授权代码的整个映像、所述经授权代码的签名、所述经授权代码的摘要、所述经授权代码的消息验证码(MAC)或所述经授权代码的其它性质。在一些实施方案中,所述信息包含经授权代码的多个部分的性质,例如,每一部分的摘要或签名或MAC,或者每一部分的地址范围。在一些实例中,所述信息不包含经授权代码的整个映像,但包含经授权代码的部分的摘要或签名或MAC以及对应地址范围。在一些实例中,验证装置118存储使客户端装置120(例如)与外部装置通信的加密密钥或安全密钥。
在一个实施例中,环境100包含通过网络102耦合到系统116及/或其它系统的主机装置112。网络102可为系统116的外部网络,例如,公共通信网络(例如,互联网、蜂窝数据网络、电话网络上的拨号调制解调器)、广域网络(WAN)、局域网络(LAN)、受控局域网(CAN)、专用通信网络(例如,专用LAN、租用线路)或其任一适当组合。
验证装置118及客户端装置120可从源下载及/或更新相应经授权代码的映像。所述源可为安全源(例如,安全硬件或安全服务器)或不安全源。验证装置118可在进行整个代码映像的所存储信息的下载或更新之前检验所述代码映像的签名或MAC。主机装置112可存储用于与客户端装置120安全通信的机密数据或加密密钥。
在一些实施方案中,用户104a、104b可使用计算装置106a、106b经由网络102与系统116通信。计算装置106a、106b可各自为例如如下各项的计算装置:移动装置、膝上型计算机、桌上型计算机、智能手机、个人数字助理、便携式媒体播放器、平板计算机或可用于与系统116通信的任一其它计算装置。为了图解说明目的,在图1A中,计算装置106a经描绘为移动装置,且计算装置106b经描绘为桌上型计算机。
用户104a或104b可为与系统116相关联的实体。用户104a或104b可使用计算装置106a或106b来检查系统116的状态或通过网络102及/或网络114远程地控制系统116的操作。举例来说,用户104a或104b可使用计算装置106a或106b来检查存储于客户端装置120内的代码是否为客户端装置120的经授权代码。
在一些实施方案中,服务器计算系统108通过网络102与系统116通信。服务器计算系统108包含一或多个计算装置及一或多个机器可读存储库或数据库。服务器计算系统108经配置以与包含系统116的若干个系统通信。针对每一系统,服务器计算系统108可针对系统中的相应客户端装置及验证装置安全地存储相应经授权代码。所述客户端装置及所述验证装置可通过网络102从服务器计算系统108下载所述相应经授权代码。服务器计算系统108的用户109(例如,管理员或操作者)可使用服务器计算系统108来与例如系统116的个别系统通信(例如)以检查系统的状态。
图1B是根据实施方案的另一实例性环境150的框图。环境150可类似于图1A的环境100。环境150包含具有主机装置152及“n”个子系统116a到116n的系统110。子系统116a到116n可彼此完全相同或彼此不同。每一子系统可类似于图1A的系统116。主机装置152通过网络114与子系统116a到116n通信。网络114可为系统110的局域网络,例如,系统总线。网络114可为有线网路、无线网络或其任一组合。
每一子系统116a、116b或116n可包含相应客户端装置120a、120b或120n及相应验证(Auth)装置118a、118b或118n。验证装置118a、118b或118n可通过连接119a、119b或119n在外部且本地耦合到相应客户端装置120a、120b或120n。每一验证装置可类似于图1A的验证装置118。每一客户端装置可类似于图1A的客户端装置120。在一些实施方案中,所述验证装置及所述客户端装置最靠近地放置,且所述连接可通过数据电缆接线或为无线的。在一些其它实施方案中,所述验证装置及所述客户端装置物理地耦合,且所述连接可为硬件接口,例如母板上的PCI接口。在其中所述验证装置及所述客户端装置集成于同一电路上的又其它实施方案中,所述连接可为导体。
在一些实施方案中,主机装置152经配置以检查每一子系统中的每一客户端装置的状态。举例来说,主机装置152可发送对子系统116a的查询以用于检查存储于客户端装置120a内的代码是否为经授权代码。耦合到客户端装置120a的验证装置118a可接收所述查询,执行关于客户端装置120a的安全代码验证,且将验证结果发回到主机装置152。
如果验证装置118a确定存储于客户端装置120a内的代码为经授权代码,那么验证装置118a可将指示存储于客户端装置120a内的代码为经授权代码的消息发送到主机装置152。在一些情形中,主机装置152通知验证装置118a允许客户端装置使用所述代码执行对应操作。在一些情形中,主机装置152通过网络114直接与客户端装置120a通信。
如果验证装置118a确定存储于客户端装置120a内的代码并非为经授权代码,那么验证装置118a可将指示存储于客户端装置120a内的代码未经授权的消息发送到主机装置152。在一些情形中,主机装置152通知验证装置118a禁止客户端装置120a使用所述代码执行操作。在一些情形中,主机装置152可通知验证装置118a及客户端装置120a更新经授权代码的新映像。
验证装置118a到118n及客户端装置120a到120n可从源(例如,安全硬件或安全服务器)下载及/或更新相应经授权代码的映像。在一些实施方案中,主机装置152包含用于安全地存储每一子系统中的每一客户端装置的经授权代码的整个映像的安全存储装置。主机装置152还可更新特定子系统中的特定客户端装置的特定经授权代码的整个映像且通知所述特定子系统中的所述特定客户端装置及对应验证装置下载经更新映像。主机装置152还可存储用于与子系统中的客户端装置及/或验证装置安全通信的机密数据或加密密钥。
在一些实施方案中,子系统116a到116n彼此完全相同。客户端装置120a到120n使用相同经授权代码(例如,启动代码)执行相同操作(例如,启动操作)。验证装置118a到118n可(例如)从主机装置152下载经授权代码的相同映像。验证装置118a到118n中的每一者可选择经授权代码的部分集合且使用所述部分集合来进行关于对应客户端装置120a、120b或120n的安全代码验证。举例来说,验证装置118a、118b或118n可计算所述部分集合的相应摘要且针对所述部分集合的所述摘要确定相应存储器地址范围(物理的或虚拟的)。验证装置118a、118b或118n可将质询中的随机地址范围发送到客户端装置120a、120b或120n,所述质询请求对应于所述地址范围的经授权代码的特定部分的摘要。所述验证装置可针对客户端装置120a、120b或120n产生不同质询,每一质询包含对应于经授权代码的不同部分的不同地址范围。
不同验证装置可针对客户端装置选择经授权代码的不同部分集合,及/或具有不同地址范围集合。在一些情形中,验证装置118a、118b或118n更新经授权代码的新映像且选择经授权代码的新部分集合。经授权代码的所述新部分集合可不同于由同一验证装置选择的先前部分集合。
在一些实施方案中,子系统116a到116n彼此不同。每一子系统116a、116b或116n中的客户端装置120a到120n可使用对应经授权代码执行对应操作。相同子系统中的验证装置118a、118b或118n可(例如)从主机装置152下载客户端装置120a、120b或120n的对应经授权代码的副本。验证装置118a、118b或118n可选择对应经授权代码的部分集合且使用所述部分集合来进行关于对应客户端装置120a、120b或120n的安全代码验证。不同客户端装置120a到120n的经授权代码可彼此不同。不同验证装置118a到118n可选择不同经授权代码的不同部分集合来进行关于客户端装置120a到120n的安全代码验证。
所揭示实施方案可用于不同环境中。在一些实施方案中,环境100(或环境150)为汽车环境。系统116(或系统110)可为用于汽车中的组件的控制器(例如,ECU),例如,窗控制器、刹车控制器或车轮控制器。主机装置112(或主机装置152)可为汽车的中央计算系统(例如,电子控制单元(ECU))或用于将消息从客户端装置引导到远程计算装置(例如,服务器计算系统108,或计算装置106a或106b)的网关。用户104a或104b可为汽车的所有者且使用移动电话106a或计算机106b通过网络102及/或网络114与汽车通信。服务器计算系统108可为经配置以控制与实体(例如,汽车制造商、汽车经销商或企业)相关联的汽车的数目的服务器。应了解,所揭示实施方案不限于汽车环境且可在其它场境中适用。举例来说,系统116(或系统110)可包含于家庭网络的器具(例如,灯、闹钟、车库开启器或传感器)中。
在一些实例中,摘要与加密散列函数相关联。装置(例如,验证装置118或客户端装置120)获得任意数据块,例如,代码或程序,且使用加密散列函数来计算字符串,其中所述字符串为(加密)散列值。将编码的数据可称为“消息”,且散列值可称为“消息摘要”,或简称为“摘要”。加密散列函数可包含(举例来说)例如SHA-256或MD5消息-摘要算法的安全散列算法(SHA)。所产生摘要可具有固定长度或变化长度。然而应注意,本发明技术不限于此实例性算法的实施,且可实施其它类型的散列函数。
在一些实例中,签名为用于证明数字消息(例如,代码的摘要)的真实性的数学方案。所述签名可通过数字签名算法(DSA)(例如,椭圆曲线数字签名算法(ECDSA))来产生。装置可使用DSA以使用摘要及密钥(例如,私人密钥)来计算或产生所述摘要的签名。然而应注意,本发明技术不限于此实例性算法的实施,且可实施其它类型的签名算法。
在一些实例中,消息验证码(MAC)为用于验证消息的一条信息。算法接受机密密钥及将被验证的消息作为输入,且输出MAC。举例来说,所述算法可为密钥散列消息验证码(HMAC)或高级加密标准(AES)基于密码的消息验证码(CMAC)(AES-CMAC)算法或许多其它算法。
在一些实例中,校验和(或散列和)为来自数字数据块(例如,代码)的用于检测可已在其发射或存储期间引入的错误的小大小数据。所述校验和可用于检验数据完整性。校验和可由校验和算法或校验和函数产生。
在一些实例中,装置的经授权代码表示未进行改变或修改的原始代码,例如,如装置的原始设备制造商(OEM)或与装置相关联的实体所意指。代码在未被改变或未被修改时为经授权代码且在被改变或被修改时为未授权代码。术语“经授权代码”及“经验证代码”可互换地使用。
实例性主机及客户端装置
图2是根据实施例的实例性系统200的框图。实例性验证装置202执行针对实例性客户端装置204的受控安全代码验证。系统200可类似于图1A的系统116。验证装置202可类似于图1A的验证装置118。客户端装置204可类似于图1A的客户端装置120。验证装置202经配置以检验存储于客户端装置204内的代码是否为经授权代码。验证装置202使用连接208耦合到客户端装置204。连接208可类似于图1A的连接119。
在一些实施方案中,验证装置202包含质询产生模块212、随机产生模块214、安全存储装置216及验证模块218以及其它组件。在一个实施例中,质询产生模块212、随机产生模块214、安全存储装置216及验证模块218为验证装置202内的存储于一或多个存储装置内的不同程序、子例程或代码部分。也就是说,这些模块不需要为单独物理组件,替代地其可为软件模块。在一些实施方案中,安全存储装置216在验证装置202外部且通过安全或受保护通道耦合到验证装置202。举例来说,安全存储装置216可在可信第三方实体中。验证装置202可从安全存储装置216检索信息。
质询产生模块212经配置以针对客户端装置204产生质询。质询产生模块212可针对客户端装置204在不同时间产生不同质询。质询包含用于请求存储于客户端装置204上的代码(或此代码的一部分)的性质的对客户端装置204的查询。所述性质可为加密性质,例如,摘要、签名、校验和或消息验证码(MAC)。质询还可包含对经授权代码的特定部分的性质的请求。在一些实例中,所述特定部分对应于存储器地址范围(物理的或虚拟的),例如,包含起始地址及结束地址的地址对、具有一宽度的中间地址、具有一宽度的起始地址或具有一宽度的结束地址。所述质询可包含用以表示特定部分的地址范围。在一些实施方案中,质询包含与用于安全验证及/或验证的加密或验证密钥相关联的信息。
随机产生(RandGen)模块214经配置以产生用作由验证装置202执行的加密操作的种子的随机数。举例来说,随机产生模块214包含将某一数目个随机字节(例如,32个随机字节)传回到质询产生模块212的随机数产生器。在一些实施方案中,质询产生模块212组合此所产生随机数与单独输入数以形成存储于验证装置202内且可由随后命令使用的加密“临时值”。验证装置202可给客户端装置204发送临时值以及对客户端装置204的代码的性质的质询。客户端装置204可产生所述代码的所述性质且通过所述临时值对所述代码的所述所产生性质进行散列。验证装置202然后可检验来自客户端装置204的响应是否包含与临时值相关联的信息。以此方式,验证装置202可确保对质询的响应未被攻击者复制并在随后时间重放。随机产生模块214可包含于质询产生模块212中。
在一些实例中,临时值为在装置之间的加密通信中仅使用一次的任意数。所述临时值可为在验证协议中发出以确保旧的通信无法在重放攻击中重新使用的随机或伪随机数。临时值还可用于确保流密码的安全性。为确保临时值仅使用一次,其可为时变的(在其值中包含适合地细粒度时间戳),或用足够随机位产生以确保重复先前所产生值的概率上无关紧要的机会。
安全存储装置216经配置以存储安全信息,所述安全信息包含客户端装置204的经授权代码的信息及/或验证密钥(AuthKey)215。验证密钥215可包含用于验证或加密函数的对称加密密钥或不对称加密密钥。安全存储装置216还可存储客户端装置204的机密或者验证或加密密钥,(例如)以用于与例如图1A的计算装置106a或106b、服务器计算系统108或主机装置112的其它装置通信。
在一些实施方案中,存储于安全存储装置216中的经授权代码的信息包含经授权代码的整个映像或副本、经授权代码的摘要、经授权代码的签名、经授权代码的MAC或经授权代码的任何其它性质。经授权代码的整个映像可在验证装置202的生产阶段(例如制造、工厂初始化、个性化或分配)期间存储于安全存储装置216中。经授权代码的整个映像还可从安全源(例如,安全硬件或例如图1A的服务器计算系统108的安全服务器)复制或下载。验证装置202还可从所述安全源更新经授权代码的所存储信息。
在一些实施方案中,经授权代码的签名为客户端装置204的原始设备制造商(OEM)签名,所述签名可在验证装置202的生产阶段期间存储于验证装置202中,或在生产阶段之后复制、下载或更新到验证装置202。在一些实例中,验证装置202与安全密钥一起使用数字签名算法基于经授权代码的摘要而产生经授权代码的签名。所述安全密钥可作为验证密钥215而与经授权代码的信息一起存储于安全存储装置216中。
在一些实施方案中,存储于安全存储装置216中的经授权代码的信息包含经授权代码的多个个别部分的信息,例如个别部分的副本、个别部分的摘要或签名或MAC及/或个别部分的地址范围。在一些实例中,安全存储装置216存储所述部分的信息,而不具有与经授权代码的整个映像相关联的信息。在一些实例中,安全存储装置216将经授权代码的整个映像的签名或摘要(例如,OEM签名)与所述部分的信息一起存储于安全存储装置216中。
在一些实施方案中,验证装置202(例如)在从安全源下载经授权代码的整个映像期间从所述整个映像选择若干个部分。验证装置202然后可使用加密散列函数或散列算法来计算每一部分的相应摘要,且将部分的摘要存储于安全存储装置216中。验证装置202还可使用相应摘要来计算每一部分的相应签名且将签名存储于安全存储装置216中。在一些实施方案中,验证装置202确定每一部分的相应地址范围或每一部分的摘要,将部分的地址范围存储于安全存储装置216中,且在安全存储装置216中使相应地址范围与部分的相应摘要或签名相关联。每当呈现新映像,质询产生模块212可从所述多个地址范围随机选择地址范围且基于所述所选择地址范围而产生质询。质询产生模块212还可随机选择两个或两个以上地址范围且基于所述两个或两个以上地址范围的组合而产生质询。
安全存储装置216可为验证装置202的一部分,所述部分实施强大安全机制使得包含于安全存储装置216中的数据不容易地被复制、克隆或修改,且对数据的任何未授权改变可被检验装置检测到。在一些实施方案中,安全存储装置216包含持久性存储器,例如以电子方式可擦除的只读存储器(EEPROM)阵列、快闪存储器、硬盘驱动器或经配置以用于以持久方式存储数据的任一其它适合存储机构。如先前所指示,安全存储装置216可用于存储与客户端装置204的经授权代码相关联的信息、验证密钥215、杂项读取/写入、只读或机密数据、消耗记录及安全配置。对安全存储装置216的各个区段的存取可以各种方式受限制且然后配置经锁定以阻止改变。
在一些实施方案中,安全存储装置216包含用于数据的暂时存储的临时存储器。举例来说,所述临时存储器可为静态随机存取存储器(SRAM),其中在与安全源的安全通信期间缓冲经授权代码的经下载或经更新映像或者在与客户端装置204的安全通信期间缓冲加密或验证操作的结果。在一个实施例中,所述安全存储装置包含用电源(例如,电池或电容器)支持的SRAM。在一些实施方案中,所述临时存储器用于存储输入命令或输出结果及中间计算值。每当安全存储装置216进入睡眠模式或电力被移除时,所述临时存储器的全部内容可为无效的。
验证模块218经配置以检验来自客户端装置204的对质询的响应以确定客户端装置204上的代码是否为经授权代码。验证模块218经配置以与安全存储装置216、质询产生模块212及/或随机产生模块214通信且获得来自安全存储装置216、质询产生模块212及/或随机产生模块214的信息。举例来说,质询产生模块212发送用于请求客户端装置204的代码的加密性质的质询。客户端装置204可发回包含存储于客户端装置204内的代码的加密性质的响应。验证模块218可(例如)从存储于安全存储装置216中的与经授权代码相关联的信息获得对应于客户端装置204的代码的经授权代码的加密性质,且确定在所述响应中接收的代码的加密性质是否与经授权代码的所获得加密性质匹配。如果代码的加密性质与经授权代码的所获得加密性质匹配,那么验证模块218可确定存储于客户端装置204内的代码为经授权代码。如果代码的加密性质与经授权代码的所获得加密性质不匹配,那么验证模块218确定代码并非为经授权代码或未经授权。
在一些实施方案中,客户端装置204包含处理器220及存储器222以及其它组件。存储器222经配置以存储客户端装置204的一或多个代码。处理器220经配置以使用对应代码执行动作或操作。存储器222可为处理器220的内部或外部存储器。代码及/或与所述代码相关联的信息(例如,代码的OEM签名)可在客户端装置204的生产阶段(例如制造、工厂初始化、个性化或分配)期间存储于存储器222中。所述代码及/或相关联信息还可从例如安全硬件或安全服务器的安全源复制或下载。客户端装置204还可从安全源更新代码及/或相关联信息。客户端装置204可为不安全的或缺乏安全。举例来说,存储器222可为不安全的,且存储于存储器222中的代码及/或相关联信息可被攻击者修改。
在一些实施方案中,处理器220经配置以对来自验证装置202的质询或查询做出响应。在一些情形中,客户端装置204从验证装置202接收包含对代码的加密性质(例如,代码的摘要或签名或MAC)的质询的请求。处理器220可基于来自存储器222的包含所存储代码及/或相关联信息的信息而获得或产生代码的加密性质且发回包含代码的所获得加密性质的响应。
在一些实例中,质询请求代码的签名,处理器220用存储于存储器220内的私人密钥计算代码的摘要且创建摘要的签名。在一些实例中,质询请求代码的MAC,处理器220用存储于存储器220内的机密密钥计算代码的MAC。可与验证装置202共享机密密钥。验证装置202可使用所述共享机密密钥检验MAC。
在一些实例中,质询请求代码的特定部分的加密性质。举例来说,质询包含对应于所述特定部分的特定地址范围。处理器220可识别对应于所述特定地址范围的代码的一部分且获得代码的对应部分的加密性质。
在一些实施方案中,客户端装置204包含耦合到连接208的引脚。在验证存储于客户端装置204中的代码后,验证装置202即刻将控制信号发送到引脚以启用客户端装置204。在一些实例中,所述引脚为硬件引脚,且所述控制信号为使客户端装置204中的特定硬件块通电或启用所述特定硬件块的电信号。
实例性流程图
图3A是实例性过程300的流程图,验证装置通过实例性过程300来存储客户端装置的经授权代码的信息。图3B是另一实例性过程330的流程图,验证装置通过实例性过程330来存储客户端装置的经授权代码的信息。图3C是实例性过程350的流程图,验证装置可通过实例性过程350来执行针对客户端装置的安全代码验证。所述验证装置可类似于图1A的验证装置118或图2的验证装置202。所述客户端装置可类似于图1A的客户端装置120或图2的客户端装置204。
现在参考图3A,验证装置接收经授权代码的整个映像(302)。经授权代码对应于客户端装置的代码。举例来说,经授权代码为用于使客户端装置执行操作的经验证操作代码。在一些情形中,经授权代码为可下载启动代码的一部分。验证装置可从源接收经授权代码的整个映像。客户端装置可(例如)与验证装置同时从所述源接收经授权代码的整个映像。
验证装置还可接收经授权代码的整个映像的总体签名,例如,OEM签名。在一些实施方案中,验证装置计算经授权代码的整个映像的摘要,且基于所接收总体签名及所计算摘要而检验整个映像的真实性或完整性。举例来说,验证装置可基于所计算摘要及机密或验证密钥而创建所接收整个映像的签名且用所接收总体签名检验所创建签名。验证装置可在整个映像的传送期间检验总体签名。验证装置可包含用于经授权代码的整个映像的暂时存储的临时存储器。
验证装置从经授权代码的整个映像选择多个部分(304)。验证装置可(例如)使用随机算法随机选择所述多个部分。可基于成本、安全性及/或性能而选择部分的数目N。在一些实例中,数目N在8到32的范围中,且可任意地为更高或更低。所述部分的性质(例如,总大小)可在整个映像的初始部分中被规定及/或涵盖有映像签名或者提前为固定的或随机的。所述部分可具有固定大小,或比所述固定大小大或小的大小。所述部分可具有不同大小。所述部分可重叠,涵盖所有字节一次,或涵盖整个映像的子集。
验证装置计算每一部分的相应摘要(306)。验证装置可(例如)使用加密散列函数或散列算法计算部分的摘要。在一些实例中,验证装置使用所计算摘要及机密或验证密钥创建部分的签名。
验证装置确定每一部分的相应地址范围(308)。验证装置可基于部分的对应摘要或部分自身而确定地址范围。地址范围可由包含起始地址及结束地址的地址对、具有范围宽度的中间地址或具有范围宽度的起始地址界定。不同部分可具有不同地址范围。
验证装置将地址范围及相应摘要存储于安全存储装置中(310),且在安全存储装置中针对每一部分使相应地址范围与相应摘要相关联(312)。验证装置还可存储部分的其它加密性质(例如,部分的签名)且使所述其它加密性质与地址范围及/或摘要相关联。验证装置可存储所述多个部分的信息,例如,经授权代码的部分的地址范围、摘要及/或签名,而不存储经授权代码的整个映像及/或经授权代码的部分自身。安全存储装置可类似于图2的安全存储装置216。安全存储装置还可存储验证装置及/或客户端装置的机密、验证及/或加密密钥。
可在验证装置的生产阶段(例如制造、工厂初始化、个性化或分配)期间执行过程300。验证装置还可执行过程300以从安全源更新经授权代码的信息。在某一实施方案中,验证装置接收客户端装置的第二经授权代码的第二整个映像。所述第二经授权代码可与经授权代码完全相同或不同于经授权代码。验证装置可(例如)使用随机算法从第二整个映像选择多个第二部分,且确定每一部分的信息,包含摘要、签名及/或地址范围。所述第二部分的地址范围可不同于先前部分的地址范围。验证装置可用第二经授权代码的第二部分的新信息替换经授权代码的部分的先前所存储信息。
参考图3B,实例性过程330展示验证装置存储客户端装置的经授权代码的信息的另一方式。验证装置接收客户端装置的代码的整个映像(332)。验证装置针对整个映像的多个部分选择多个地址范围(334)。举例来说,整个映像包含代码的起始地址及结束地址。验证装置可随机选择多个起始地址与结束地址对来用作所述多个地址范围。每一地址范围对应于代码的特定部分。验证装置基于代码的地址范围而确定每一地址范围的对应部分(336),且计算每一部分的相应摘要(338)。然后,验证装置将所计算摘要及相应地址范围存储于安全存储装置中(340)且在安全存储装置中针对每一部分使相应地址范围与相应摘要相关联(342)。
现在参考图3C,验证装置可使用经授权代码的一或多个部分的信息来进行针对客户端装置的安全代码验证。验证装置将包含对存储于客户端装置内的代码的特定部分的性质的质询的请求发送到客户端装置(352)。所述性质可为摘要、签名或MAC。
质询可包含与代码的特定部分相关联的地址范围。验证装置可使用质询产生模块(例如,图2的质询产生模块212)产生质询。验证装置可(例如)使用随机算法从存储于安全存储装置中的多个地址范围选择地址范围。
在一些实例中,质询包含查询(例如,临时值查询)以及地址范围。可请求客户端装置产生包含与查询相关联的信息的响应。举例来说,验证装置及客户端装置可具有安全策略。根据所述安全策略,响应于接收到质询,客户端装置可计算存储于客户端装置内的代码的加密性质(例如,与代码相关联的摘要),且通过查询对所述加密性质进行散列。所述查询可每次变化,且客户端装置的响应可对应地改变,使得攻击者无法重放先前所发射的响应。
在一些实例中,质询或请求由机密密钥加密以创建质询或请求的MAC以确保其完整性。机密密钥可为对称加密密钥且由验证装置及客户端装置共享。
在一些实例中,质询包含使客户端装置使用机密密钥创建响应的MAC的请求。MAC可通过HMAC或AES-CMAC算法来创建。机密密钥可为对称加密密钥且由验证装置及客户端装置共享。验证装置可使用机密密钥检验来自客户端装置的响应的MAC。此可阻止攻击者尝试复制及存储对质询的正确响应或对来自验证装置的若干个质询的若干个响应。
在一些实例中,质询包含对代码的整个映像的加密性质(例如,整个映像的摘要或签名或MAC)的请求以及对经授权代码的特定部分的请求。
在一些实例中,质询包含对代码的合并部分的加密性质的请求。所述合并部分可包含代码的所述多个部分中的两个或两个以上不同部分。质询可包含组合对应于两个或两个以上不同部分的相应地址范围的地址范围。所述两个或两个以上不同部分可彼此邻近,或彼此分开。以此方式,验证装置可存储与部分的数目相关联的信息且产生比部分数目多的质询数目,此可使分析攻击更复杂。
在一些实施方案中,验证装置接收告知验证装置客户端装置将执行动作的消息。在一些实例中,当将客户端装置复位时或每当从客户端装置移除电力,客户端装置重复启动过程,此可触发客户端装置将重新启动已发生在客户端装置上的消息发送到验证装置。响应于接收所述消息,验证装置可与客户端装置同时执行复位序列,(例如)以阻止其中在验证步骤之后修改客户端装置中的存储器的攻击。在一些实施方案中,客户端装置及验证装置可使用同一电力供应器,连接到同一复位信号,或具有其它同步方法。
在一些实例中,验证装置基于预定调度而确定客户端装置是不可信的。举例来说,客户端装置的电力循环在预定调度中致使客户端装置重复启动操作,此触发客户端装置在所述预定调度中将消息发送到验证装置。然而,当电力循环不根据预定调度而发生(举例来说,电力循环被修改或改变)时,验证装置可确定客户端装置是不可信的。在一些情形中,验证装置可(例如)使用加密密钥将验证请求发送到客户端装置。响应于从客户端装置接收正确验证信息,验证装置将质询发送到客户端装置。否则,如果验证失败,那么验证装置可限制或禁止客户端装置重新启动。
验证装置从客户端装置接收对请求的响应(354)。所述响应可包含存储于客户端装置内的代码的加密性质。在一些实例中,质询包含对代码的特定部分的摘要的请求。客户端装置可确定对应于特定部分的代码的一部分。举例来说,质询包含对应于特定部分的地址范围。客户端装置可基于质询中的地址范围而找出代码的对应部分。客户端装置可计算代码的对应部分的摘要且在响应中将摘要发送到验证装置。在一些实例中,质询包含对经授权代码的特定部分的签名的请求。客户端装置可基于代码的对应部分的摘要及存储于客户端装置内的机密或验证密钥而创建签名。
在一些实施方案中,验证装置请求客户端装置在预定时间周期内(例如,在复位引脚断言之后或在验证装置发送质询之后)做出响应。所述预定时间周期可(例如)在验证装置的生产阶段(例如制造)经编程到验证装置中。所述预定时间周期还可与经签名映像一起发送到验证装置。
验证装置可确定发送质询或复位引脚断言与接收对质询的响应之间的时间周期是否小于预定时间周期。如果所确定时间周期完全相同于或大于预定时间周期,那么验证装置可终止过程350。验证装置可返回到步骤352以将新质询发送到客户端装置以用于验证。如果所确定时间周期小于预定时间周期,那么过程350继续进行到步骤356。
验证装置基于经授权代码的特定部分的所存储信息而检验响应是否正确(356)。验证装置可基于存储于安全存储装置中的经授权代码的特定部分的信息而获得经授权代码的特定部分的加密性质,且确定响应中的代码的加密性质是否与经授权代码的特定部分的所获得加密性质匹配。
如上文提及,响应可包含代码的一部分的签名。如果验证装置存储经授权代码的特定部分的签名,那么验证装置可检索特定部分的所存储签名且将所检索签名与响应中的代码的部分的签名进行比较。
如果验证装置不存储特定部分的签名,那么验证装置可基于经授权代码的特定部分的摘要及存储于安全存储装置中的加密密钥而创建签名。加密密钥可为存储于与客户端装置相关联的安全装置中的对应于私人密钥的公开密钥。可由客户端装置使用私人密钥产生代码的签名。验证装置可确定经授权代码的特定部分的所创建签名是否与响应中的代码的签名匹配。如果验证装置确定经授权代码的所创建签名与响应中的代码的签名匹配,那么验证装置确定响应是正确的。如果验证装置确定经授权代码的特定部分的所创建签名与响应中的代码的签名不匹配,那么验证装置确定响应是不正确的。
如果验证装置检验了响应的不正确性,那么验证装置确定代码未经授权(358),也就是说,代码并非经授权代码。相应地,验证装置可禁止客户端装置存取储存于安全存储装置中且用于恰当执行的关键信息(例如,机密或密钥)。举例来说,客户端装置使用关键信息来与外部装置(例如,图1A的计算装置106a或106b、服务器计算系统108或主机装置112)通信。如果验证装置检验响应的正确性,那么验证装置确定代码经授权(360),也就是说,代码为经授权代码。相应地,验证装置可允许客户端装置存取关键信息或通过引脚启用客户端装置。
响应于确定代码经授权,验证装置可应用针对客户端装置的顺序通信的策略。所述策略可包含对称密钥验证或不对称密钥验证。代码可为启动代码。在一些实例中,在安全启动及客户端装置与验证装置之间的运行时间连接期间启用存储于客户端装置中的对称密钥。在一些实例中,每当客户端装置成功地完成安全启动之后,验证装置经由不对称密钥交换或协定或其它加密方法将新不对称密钥(例如,私人密钥)传送到客户端装置。验证装置可将对应不对称密钥(例如,公开密钥)存储于安全存储装置中。
在一些实施方案中,验证装置针对客户端装置产生多个质询。所述多个质询可包含与经授权代码的第一部分相关联的第一数目个第一质询及与经授权代码的第二部分相关联的第二数目个第二质询。验证装置可使第一数目与第二数目的比率或第一质询与第二质询的顺序中的至少一者变化。在一些实例中,验证装置存储所述多个质询且每一质询可具有发送到客户端装置的可变概率。假设质询的数目为8。可以以下概率发出八个质询,例如,前三个质询各自具有25%的概率,第四质询具有13%的概率,第五质询具有7%的概率,第六质询具有3%的概率,且第七及第八质询各自具有1%的概率。以此方式,攻击者收集所有可能质询可为更困难的。
在一些实例中,验证装置暂停经授权代码的部分的所存储存储器地址范围。举例来说,验证装置确定发送到客户端装置的多个质询包括对经授权代码的部分的所述多个所存储消息范围中的每一者的加密性质的请求。响应于所述确定,验证装置可需要重新下载客户端装置的代码的新映像以改进安全性。
在一些实例中,验证装置需要根据时间的额外检验。举例来说,验证装置可根据时间重新质询客户端装置以增加代码的选定部分或不同质询的大小等。
实例性概念
鉴于前文,应注意,可(举例来说)根据以下实例性概念实施本发明技术:
1.一种非暂时性计算机可读存储媒体,其上存储有在由一或多个处理器执行时致使所述一或多个处理器执行包含以下操作的方法的指令:将请求从验证装置发送到耦合到所述验证装置的客户端装置,所述请求包含对来自存储于所述客户端装置内的代码的多个部分当中的特定部分的性质的质询,所述质询包含指示对应于所述代码的所述特定部分的特定存储器地址范围的数据;在所述验证装置处从所述客户端装置接收对所述请求的响应,所述响应包含与所述代码的所述性质相关联的信息;基于所述所接收信息而检验所述响应的正确性;及基于检验了所述响应的正确性,确定所述代码为经授权代码。
2.根据概念1所述的计算机可读存储媒体,其中所述方法进一步包含:选择所述经授权代码的多个存储器地址范围;针对所述多个存储器地址范围中的每一者确定所述经授权代码的相应部分;及计算每一所确定部分的相应性质。
3.根据概念2所述的计算机可读存储媒体,其中所述方法进一步包含:将指示所述经授权代码的所述部分的所述相应性质的第一信息及指示相应存储器地址范围的第二信息存储于安全存储装置中;及在所述安全存储装置中分别使来自所述多个存储器地址范围当中的存储器地址范围与来自所述部分的所述性质当中的性质相关联。
4.根据概念3所述的计算机可读存储媒体,其中所述选择所述经授权代码的所述多个存储器地址范围包含:从由所述经授权代码的起始地址及所述经授权代码的结束地址界定的范围随机选择所述多个存储器地址范围。
5.根据概念3所述的计算机可读存储媒体,其中所述方法进一步包含:从所述多个存储器地址范围当中随机选择所述特定存储器地址范围,在所述安全存储装置中所述特定存储器地址范围与所述经授权代码的所述特定部分的特定性质相关联。
6.根据概念5所述的计算机可读存储媒体,其中所述响应中的所述信息包含所述代码的一部分的性质,且其中所述检验所述响应的正确性包含确定所述响应中的所述代码的所述部分的所述性质匹配存储于所述安全存储装置中的所述经授权代码的所述特定部分的所述特定性质。
7.根据概念2所述的计算机可读存储媒体,其中所述方法进一步包含:接收所述经授权代码的整个映像;接收与所述经授权代码相关联的签名;计算所述经授权代码的所述所接收整个映像的摘要;及基于所述所接收签名及所述所接收整个映像的所述所计算摘要而检验所述所接收整个映像的真实性。
8.根据概念2所述的计算机可读存储媒体,其中所述方法进一步包含:接收所述经授权代码的整个映像;随机选择所述经授权代码的第二整个映像的多个第二地址范围;针对每一第二地址范围确定所述经授权代码的相应第二部分;计算所述经授权代码的每一所确定第二部分的相应第二性质;及在安全存储装置中用所述经授权代码的所述第二部分的所述相应第二性质替换所述经授权代码的所述部分的所述相应性质。
9.根据概念1所述的计算机可读存储媒体,其中所述方法进一步包含:响应于确定所述代码为所述经授权代码,使所述客户端装置能够使用存储于安全存储装置中的机密数据或加密密钥。
10.根据概念1所述的计算机可读存储媒体,其中所述方法进一步包含:响应于确定所述代码为所述经授权代码,使所述客户端装置能够通过耦合到所述客户端装置的引脚通电或启用所述客户端装置中的一或多个硬件块。
11.根据概念1所述的计算机可读存储媒体,其中所述请求包含对存储于所述客户端装置内的所述代码的整个映像的性质的第二质询。
12.根据概念1所述的计算机可读存储媒体,其中所述请求包含临时值,且其中所述检验所述响应的正确性包含确定所述响应包含与所述临时值相关联的信息。
13.根据概念1所述的计算机可读存储媒体,其中所述方法进一步包含:将第二请求发送到所述客户端装置,所述第二请求跟随所述请求且包含对所述客户端装置的所述代码的第二不同部分的性质的第二质询,所述第二质询具有对应于所述代码的所述第二部分的第二存储器地址范围。
14.根据概念13所述的计算机可读存储媒体,其中所述发送所述第二请求是响应于确定在确定所述代码为所述经授权代码之后经过了预定时间周期。
15.根据概念1所述的计算机可读存储媒体,其中所述方法进一步包含:将第二请求发送到所述客户端装置,所述第二请求跟随所述请求且包含对所述经授权代码的包含所述代码的至少两个不同部分的经合并部分的性质的第二质询,所述第二质询具有分别对应于所述代码的所述至少两个不同部分的至少两个存储器地址范围。
16.根据概念1所述的计算机可读存储媒体,其中所述方法进一步包含:将多个质询中的个别质询发送到所述客户端装置以用于个别验证,其中所述多个质询包含与所述代码的第一部分相关联的第一数目个第一质询及与所述代码的第二部分相关联的第二数目个第二质询;及使所述第一数目与所述第二数目的比率以及所述第一质询与所述第二质询的顺序中的至少一者变化。
17.根据概念1所述的计算机可读存储媒体,其中所述方法进一步包含:在发送所述请求之前,用存储于安全存储装置中的对称加密密钥产生所述请求的消息验证码(MAC);及将所述请求的所述MAC发射到所述客户端装置。
18.根据概念1所述的计算机可读存储媒体,其中所述检验所述响应的正确性响应于确定发送所述质询与接收对所述请求的所述响应之间的时间周期小于预定阈值。
19.根据概念1所述的计算机可读存储媒体,其中所述方法进一步包含:确定发送到所述客户端装置的多个请求包含针对存储于安全存储装置中的所述代码的多个部分中的每一者的质询,及作为响应,发送对更新存储于所述客户端装置内的所述代码的请求。
20.根据概念1所述的计算机可读存储媒体,其中所述客户端装置的所述代码包含用于使所述客户端装置起动的启动代码,且所述方法进一步包含与将所述客户端装置复位同步地将所述验证装置复位。
21.根据概念1所述的计算机可读存储媒体,其中所述性质包含摘要、签名或消息验证码(MAC)中的至少一者。
22.根据概念1所述的计算机可读存储媒体,其中所述验证装置包含经配置以存储与所述经授权代码相关联的信息的安全存储装置,且其中存储于所述安全存储装置中的与所述经授权代码相关联的所述信息包含所述经授权代码的副本、所述经授权代码的摘要、所述经授权代码的签名或所述经授权代码的消息验证码(MAC)中的至少一者。
23.根据概念1所述的计算机可读存储媒体,其中所述响应包含由所述客户端装置基于所述代码的摘要及对称加密密钥而产生的所述代码的所述摘要的MAC,且其中所述方法进一步包含用存储于安全存储装置中的所述对称加密密钥验证所述响应。
24.一种系统,其包含:客户端装置;及验证装置,其耦合到所述客户端装置且经配置以:将请求发送到所述客户端装置,所述请求包含对来自存储于所述客户端装置内的代码的多个部分当中的特定部分的性质的质询,所述质询包含指示对应于所述代码的所述特定部分的特定存储器地址范围的数据;从所述客户端装置接收对所述请求的响应,所述响应包含与所述代码的所述性质相关联的信息,所述信息是由所述客户端装置基于所述代码而产生;基于所述所接收信息而检验所述响应的正确性;及基于检验了所述响应的正确性,确定所述代码为经授权代码。
25.根据概念24所述的系统,其中所述方法进一步包含:针对所述经授权代码的多个部分选择多个存储器地址范围;针对每一所选择存储器地址范围确定相应部分;针对所述多个部分中的每一部分使用加密散列函数计算相应摘要;及在安全存储装置中使所述相应摘要与所述相应存储器地址范围相关联,其中在所述安全存储装置中所述特定存储器地址范围与所述特定部分的特定摘要相关联。
26.根据概念25所述的系统,其中所述响应中的所述信息包含所述代码的一部分的摘要,且其中所述响应的所述正确性的所述检验包含确定所述响应中的所述代码的所述部分的所述摘要与存储于所述安全存储装置中的所述经授权代码的所述特定部分的所述特定摘要匹配。
27.根据概念24所述的系统,其中所述方法进一步包含:响应于确定所述代码为所述经授权代码,使所述客户端装置能够利用存储于安全存储装置中的机密数据或加密密钥。
28.根据概念24所述的系统,其中所述方法进一步包含:响应于确定所述代码为所述经授权代码,使所述客户端装置能够通过耦合到所述客户端装置的引脚通电或启用所述客户端装置中的一或多个硬件块。
29.根据概念24所述的系统,其中所述方法进一步包含:将第二请求发送到所述客户端装置,所述第二请求跟随所述请求且包含对所述代码的第二不同部分的性质的第二质询,所述第二质询具有对应于所述代码的所述第二部分的第二存储器地址范围。
30.根据概念24所述的系统,其中所述方法进一步包含:将多个质询中的个别质询发送到所述客户端装置以用于个别验证,其中所述多个质询包含与所述代码的第一部分相关联的第一数目个第一质询及与所述代码的第二部分相关联的第二数目个第二质询;及使所述第一数目与所述第二数目的比率以及所述第一质询与所述第二质询的顺序中的至少一者变化。
31.根据概念24所述的系统,其包含经配置以存储所述经授权代码的信息的安全存储装置,其中所述性质包含摘要、签名或消息验证码(MAC)中的至少一者,且其中存储于所述安全存储装置中的所述经授权代码的所述信息包含所述经授权代码的副本、所述经授权代码的摘要、所述经授权代码的签名或所述经授权代码的消息验证码(MAC)中的至少一者。
32.根据概念24所述的系统,其中所述验证装置通过网络耦合到远程主机装置,且其中所述主机装置经配置以将所述经授权代码的整个映像提供到所述验证装置及所述客户端装置。
33.一种方法,其包含:由验证装置将请求发送到耦合到所述验证装置的客户端装置,所述请求包含对来自存储于所述客户端装置内的代码的多个部分当中的特定部分的性质的质询,所述质询包含指示对应于所述代码的所述特定部分的特定存储器地址范围的数据;由所述验证装置从所述客户端装置接收对所述请求的响应,所述响应包含与所述代码的所述性质相关联的信息;由所述验证装置基于所述所接收信息而检验所述响应的正确性;及基于检验了所述响应的正确性,由所述验证装置确定所述代码为经授权代码。
应注意,出于图解说明的目的而呈现前述实例性概念,且本发明技术不限于这些实例性概念。
本说明书中所描述的标的物的特定实施例可经实施以便实现以下优点中的一或多者。通过使用可信或安全验证装置来执行针对例如处理器的客户端装置的受控安全代码验证,客户端装置的安全(例如,客户端装置的安全启动)成为验证装置的安全。由于验证装置可具有大于客户端装置的安全能力,因此可增加客户端装置上的操作的安全性且可最小化或消除欺骗性操作。受控安全代码验证可确保在客户端装置上运行的代码为(例如)如OEM所意指的经授权代码,且恶意软件不在客户端装置上运行。客户端装置可以低安全能力制成,例如,不具有对抗攻击的安全存储装置,因此可以低成本制成。验证装置可使用经授权代码的一部分来执行针对客户端装置的安全代码验证,因此其起作用而不管客户端装置的代码的大小如何同时允许验证装置中的固定小量的存储器。外部验证装置可用作询问器且提供使系统总线上的消息多样化以使任何攻击复杂化的方法。此外,需要客户端装置计算整个映像的仅一部分的散列,可使(例如)用于安全启动操作的安全代码验证加速。验证装置可具有表示经下载代码的子集的质询集合。针对客户端装置包含验证装置的每一独特系统可具有地址范围的不同集合,因为这些地址范围将在验证装置内随机形成。因此通过存储正确部分摘要而执行的单个系统上的成功攻击将不适用于随后系统。客户端装置可将对消息的各种操作卸载到验证装置。当验证装置确定客户端装置值得信任时,验证装置可将可信分量添加到消息。受控安全代码验证可在不同环境中(例如,在汽车系统、家庭网络或医学装置系统中)应用。
本说明书中所描述的标的物及功能性操作的实施例可实施于包含本说明书中所揭示的结构及其结构等效物的数字电子电路、有形地体现的计算机软件或固件、计算机硬件或者其中的一或多者的组合中。本说明书中所描述的标的物的实施例可实施为一或多个计算机程序,即,编码于有形非暂时性程序载体上以用于由数据处理设备执行或控制数据处理设备的操作的计算机程序指令的一或多个模块。替代地或另外,所述程序指令可编码于人工产生的所传播信号(例如,机器产生的电、光学或电磁信号)上,所述人工产生的所传播信号经产生以编码用于发射到适合接收器设备以用于由数据处理设备执行的信息。所述计算机存储媒体可为机器可读存储装置、机器可读存储衬底、随机或串行存取存储器装置或者其中的一或多者的组合。
本说明书中所描述的过程及逻辑流程可由一或多个可编程计算机执行,所述可编程计算机执行一或多个计算机程序以通过对输入数据进行操作且产生输出来执行功能。过程及逻辑流程还可由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行且设备还可实施为专用逻辑电路。
适合用于执行计算机程序的计算机以实例方式包含可基于专用或通用微处理器或两者,或者任一其它种类的中央处理单元。一般来说,中央处理单元将从只读存储器或随机存取存储器或两者接收指令及数据。计算机的基本元件是用于执行指令的中央处理单元及用于存储指令及数据的一或多个存储器装置。一般来说,计算机还将包含用于存储数据的一或多个大容量存储装置(例如,磁盘、磁光盘或光盘)或以操作方式耦合以从所述大容量存储装置接收数据或向其传送数据或既接收又传送数据。然而,计算机不需要具有此些装置。此外,计算机可嵌入于另一装置中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置(例如,通用串行总线(USB)闪盘驱动器)(仅举几例)。
适合用于存储计算机程序指令及数据的计算机可读媒体包含所有形式的非易失性存储器、媒体及存储器装置,以实例方式包含:半导体存储器装置,例如EPROM、EEPROM及快闪存储器装置;磁盘,例如内部硬盘或可装卸磁盘;磁光盘;及CD-ROM及DVD-ROM磁盘。处理器及存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书含有许多特定实施方案细节,但这些细节不应解释为对任何发明的范围的限制或对可主张的内容的范围的限制,而是应解释为特定发明的特定实施例可特有的特征的说明。在单独实施例的上下文中于本说明书中所描述的某些特征还可以组合方式实施于单个实施例中。相反地,在单个实施例的上下文中描述的各种特征还可单独地或以任何适合子组合实施于多个实施例中。此外,虽然上文可将特征描述为以某些组合起作用且甚至最初主张如此,但来自所主张组合的一或多个特征在一些情形中可从所述组合去除,且所述所主张组合可针对于子组合或子组合的变化形式。
类似地,尽管在图式中以特定次序描绘操作,但不应将此理解为需要以所展示的特定次序或以顺序次序执行此类操作,或执行所有所图解说明的操作以实现合意结果。在某些情况中,多任务及并行处理可为有利的。此外,不应将在上文所描述的实施例中的各种系统模块及组件的分离理解为在所有实施例中需要此分离,且应理解,一般可将所描述的程序组件及系统一起集成于单个软件产品中或封装到多个软件产品中。
因此,已描述标的物的特定实施例。其它实施例在所附权利要求书的范围内。在一些情形中,权利要求书中所引用的动作可以不同次序来执行且仍实现合意结果。另外,随附图式中所描绘的过程未必需要所展示的特定次序或顺序次序来实现合意结果。在某些实施方案中,多任务及并行处理可为有利的。

Claims (26)

1.一种系统,其包括:
客户端装置;及
验证装置,其耦合到所述客户端装置且经配置以:
将请求发送到所述客户端装置,所述请求包含对来自存储于所述客户端装置内的代码的多个部分当中的特定部分的性质的质询,所述质询包括指示对应于所述代码的所述特定部分的特定存储器地址范围的数据;
从所述客户端装置接收对所述请求的响应,所述响应包含与所述代码的所述性质相关联的信息,所述信息是由所述客户端装置基于所述代码而产生;
基于所述所接收信息而检验所述响应的正确性;及
基于检验了所述响应的正确性,确定所述代码为经授权代码。
2.根据权利要求1所述的系统,其中所述验证装置通过网络耦合到远程主机装置,且
其中所述远程主机装置经配置以将所述经授权代码的整个映像提供到所述验证装置及所述客户端装置。
3.一种非暂时性计算机可读存储媒体,其上存储有在由一或多个处理器执行时致使所述一或多个处理器执行包括以下操作的方法的指令:
将请求从验证装置发送到耦合到所述验证装置的客户端装置,所述请求包含对来自存储于所述客户端装置内的代码的多个部分当中的特定部分的性质的质询,所述质询包括指示对应于所述代码的所述特定部分的特定存储器地址范围的数据;
在所述验证装置处从所述客户端装置接收对所述请求的响应,所述响应包含与所述代码的所述性质相关联的信息;
基于所述所接收信息而检验所述响应的正确性;及
基于检验了所述响应的正确性,确定所述代码为经授权代码。
4.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述方法进一步包含:
选择所述经授权代码的多个存储器地址范围;
针对所述多个存储器地址范围中的每一者确定所述经授权代码的相应部分;及
计算每一所确定部分的相应性质。
5.根据权利要求4所述的非暂时性计算机可读存储媒体,其中所述方法进一步包含:
将指示所述经授权代码的所述部分的所述相应性质的第一信息及指示所述相应存储器地址范围的第二信息存储于安全存储装置中;及
在所述安全存储装置中分别使来自所述多个存储器地址范围当中的存储器地址范围与来自所述部分的所述性质当中的性质相关联。
6.根据权利要求5所述的非暂时性计算机可读存储媒体,其中所述选择所述经授权代码的所述多个存储器地址范围包括:
从由所述经授权代码的起始地址及所述经授权代码的结束地址界定的范围随机选择所述多个存储器地址范围。
7.根据权利要求5所述的非暂时性计算机可读存储媒体,其中所述方法进一步包括:
从所述多个存储器地址范围当中随机选择所述特定存储器地址范围,在所述安全存储装置中所述特定存储器地址范围与所述经授权代码的所述特定部分的特定性质相关联。
8.根据权利要求7所述的非暂时性计算机可读存储媒体,其中所述响应中的所述信息包括所述代码的一部分的性质,且
其中所述检验所述响应的正确性包括:确定所述响应中的所述代码的所述部分的所述性质匹配存储于所述安全存储装置中的所述经授权代码的所述特定部分的所述特定性质。
9.根据权利要求4所述的非暂时性计算机可读存储媒体,其中所述方法进一步包含:
接收所述经授权代码的整个映像;
接收与所述经授权代码相关联的签名;
计算所述经授权代码的所述所接收整个映像的摘要;及
基于所述所接收签名及所述所接收整个映像的所述所计算摘要而检验所述所接收整个映像的真实性。
10.根据权利要求4所述的非暂时性计算机可读存储媒体,其中所述方法进一步包含:
接收所述经授权代码的整个映像;
随机选择所述经授权代码的第二整个映像的多个第二地址范围;
针对每一第二地址范围确定所述经授权代码的相应第二部分;
计算所述经授权代码的每一所确定第二部分的相应第二性质;及
在安全存储装置中用所述经授权代码的所述第二部分的所述相应第二性质替换所述经授权代码的所述部分的所述相应性质。
11.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述方法进一步包含:
响应于确定所述代码为所述经授权代码,启用所述客户端装置以使用存储于安全存储装置中的机密数据或加密密钥。
12.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述方法进一步包括:
响应于确定所述代码为所述经授权代码,通过耦合到所述客户端装置的引脚启用所述客户端装置以将所述客户端装置中的一或多个硬件块通电或启用。
13.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述请求包含对存储于所述客户端装置内的所述代码的整个映像的性质的第二质询。
14.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述请求包含临时值,且
其中所述检验所述响应的正确性包括:确定所述响应包含与所述临时值相关联的信息。
15.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述方法进一步包括:
将第二请求发送到所述客户端装置,所述第二请求跟随所述请求且包含对所述客户端装置的所述代码的第二不同部分的性质的第二质询,所述第二质询包括指示对应于所述代码的所述第二部分的第二存储器地址范围的数据。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述发送所述第二请求是响应于确定在确定所述代码为所述经授权代码之后经过了预定时间周期。
17.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述方法进一步包括:
将第二请求发送到所述客户端装置,所述第二请求跟随所述请求且包括对所述经授权代码的包含所述代码的至少两个不同部分的经合并部分的性质的第二质询,所述第二质询包括指示分别对应于所述代码的所述至少两个不同部分的至少两个存储器地址范围的数据。
18.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述方法进一步包括:
将多个质询中的个别质询发送到所述客户端装置以用于个别验证,其中所述多个质询包含与所述代码的第一部分相关联的第一数目个第一质询及与所述代码的第二部分相关联的第二数目个第二质询;及
使所述第一数目与所述第二数目的比率以及所述第一质询与所述第二质询的顺序中的至少一者变化。
19.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述方法进一步包括:
在发送所述请求之前,用存储于安全存储装置中的对称加密密钥产生所述请求的消息验证码MAC;及
将所述请求的所述MAC发射到所述客户端装置。
20.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述检验所述响应的正确性是响应于
确定发送所述质询与接收对所述请求的所述响应之间的时间周期小于预定阈值。
21.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述方法进一步包括:
确定发送到所述客户端装置的多个请求包含对存储于安全存储装置中的所述代码的多个部分中的每一者的质询,及作为响应,
发送对更新存储于所述客户端装置内的所述代码的请求。
22.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述客户端装置的所述代码包含用于使所述客户端装置起动的启动代码,且
所述方法进一步包括与将所述客户端装置复位同步地将所述验证装置复位。
23.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述性质包含摘要、签名或消息验证码MAC中的至少一者。
24.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述验证装置包括经配置以存储与所述经授权代码相关联的信息的安全存储装置,且
其中存储于所述安全存储装置中的与所述经授权代码相关联的所述信息包括所述经授权代码的副本、所述经授权代码的摘要、所述经授权代码的签名或所述经授权代码的消息验证码MAC中的至少一者。
25.根据权利要求3所述的非暂时性计算机可读存储媒体,其中所述响应包含由所述客户端装置基于所述代码的摘要及对称加密密钥而产生的所述代码的所述摘要的MAC,且
其中所述方法进一步包括用存储于安全存储装置中的所述对称加密密钥验证所述响应。
26.一种方法,其包括:
由验证装置将请求发送到耦合到所述验证装置的客户端装置,所述请求包含对来自存储于所述客户端装置内的代码的多个部分当中的特定部分的性质的质询,所述质询包括指示对应于所述代码的所述特定部分的特定存储器地址范围的数据;
由所述验证装置从所述客户端装置接收对所述请求的响应,所述响应包含与所述代码的所述性质相关联的信息;
由所述验证装置基于所述所接收信息而检验所述响应的正确性;及
基于检验了所述响应的正确性,由所述验证装置确定所述代码为经授权代码。
CN201710084661.0A 2016-02-16 2017-02-16 受控安全代码验证 Active CN107085675B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/044,770 US10474823B2 (en) 2016-02-16 2016-02-16 Controlled secure code authentication
US15/044,770 2016-02-16

Publications (2)

Publication Number Publication Date
CN107085675A true CN107085675A (zh) 2017-08-22
CN107085675B CN107085675B (zh) 2022-05-17

Family

ID=59410341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710084661.0A Active CN107085675B (zh) 2016-02-16 2017-02-16 受控安全代码验证

Country Status (4)

Country Link
US (1) US10474823B2 (zh)
CN (1) CN107085675B (zh)
DE (1) DE102017202423A1 (zh)
TW (1) TW201732669A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105799620A (zh) * 2014-12-29 2016-07-27 上海通用汽车有限公司 车辆电子控制模块的安全代码计算
CN111630513A (zh) * 2018-01-25 2020-09-04 美光科技公司 认证所存储代码和代码更新的真实性
CN113632084A (zh) * 2019-03-25 2021-11-09 美光科技公司 运行时代码执行验证
CN113826071A (zh) * 2019-03-25 2021-12-21 美光科技公司 空中更新确认
CN114584320A (zh) * 2022-03-17 2022-06-03 深圳市乐凡信息科技有限公司 加密传输方法、装置、设备及存储介质

Families Citing this family (22)

* Cited by examiner, † Cited by third party
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
US10616197B2 (en) 2016-04-18 2020-04-07 Atmel Corporation Message authentication with secure code verification
JP6588518B2 (ja) * 2017-10-10 2019-10-09 株式会社東海理化電機製作所 カーシェアリングシステム
US10904230B2 (en) * 2017-11-29 2021-01-26 Vmware, Inc. Distributed encryption
US11677730B2 (en) 2018-01-24 2023-06-13 Intel Corporation Device authentication
EP3748528A4 (en) * 2018-02-02 2020-12-09 NEC Corporation INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND RECORDING MEDIUM
US10841284B2 (en) * 2018-05-30 2020-11-17 Lear Corporation Vehicle communication network and method
US10785028B2 (en) * 2018-06-29 2020-09-22 Intel Corporation Protection of keys and sensitive data from attack within microprocessor architecture
US10728230B2 (en) * 2018-07-05 2020-07-28 Dell Products L.P. Proximity-based authorization for encryption and decryption services
FR3086416B1 (fr) * 2018-09-20 2020-09-04 Continental Automotive France Procede de preservation d'une integrite d'une unite de controle electronique de vehicule automobile
US11068598B2 (en) * 2018-11-01 2021-07-20 Dell Products L.P. Chassis internal device security
US20220277089A1 (en) 2019-09-02 2022-09-01 Grabtaxi Holdings Pte. Ltd. Communications server apparatus and method for determination of an abstention attack
US11216366B2 (en) 2020-02-13 2022-01-04 Intel Corporation Security check systems and methods for memory allocations
US11314867B2 (en) * 2020-03-26 2022-04-26 Hewlett Packard Enterprise Development Lp Determinations of compromise of controller code images
DE102020120656A1 (de) 2020-08-05 2022-02-10 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Vorrichtung und Verfahren zur Authentifizierung in einem Steuergerät
JP7500400B2 (ja) * 2020-11-18 2024-06-17 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2022139850A1 (en) 2020-12-26 2022-06-30 Intel Corporation Cryptographic computing including enhanced cryptographic addresses
US11972126B2 (en) 2021-03-26 2024-04-30 Intel Corporation Data relocation for inline metadata
US20220318420A1 (en) * 2021-03-30 2022-10-06 Adobe Inc. Platform for unsupervised machine learning training on unseeable user generated assets
US20230087521A1 (en) * 2021-09-20 2023-03-23 Ford Global Technologies, Llc Computing device verification
US11954045B2 (en) 2021-09-24 2024-04-09 Intel Corporation Object and cacheline granularity cryptographic memory integrity

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066354A1 (en) * 2003-08-15 2005-03-24 Stmicroelectronics Limited Circuit for restricting data access
US20110093701A1 (en) * 2009-10-19 2011-04-21 Etchegoyen Craig S Software Signature Tracking
CN102265283A (zh) * 2008-10-24 2011-11-30 爱立信电话股份有限公司 用于安全软件平台访问的方法和设备
CN102385671A (zh) * 2010-09-02 2012-03-21 研祥智能科技股份有限公司 软件加密方法及系统
US20120255027A1 (en) * 2011-03-31 2012-10-04 Infosys Technologies Ltd. Detecting code injections through cryptographic methods
US20130198526A1 (en) * 2006-02-22 2013-08-01 Fujitsu Semiconductor Limited Secure processor
CN103765427A (zh) * 2011-09-07 2014-04-30 英特尔公司 检验设备的固件完整性
DE102013224578A1 (de) * 2012-11-30 2014-06-05 Nvidia Corporation Codeschutz unter verwendung von online-authentifizierung und verschlüsselter ausführung von code
CA2919106A1 (en) * 2013-07-23 2015-01-29 Ericsson Ab Media client device authentication using hardware root of trust
CN104573493A (zh) * 2014-12-25 2015-04-29 北京深思数盾科技有限公司 一种软件保护方法和系统
WO2015131324A1 (zh) * 2014-03-04 2015-09-11 华为技术有限公司 软件安全性检测方法、装置及设备

Family Cites Families (88)

* Cited by examiner, † Cited by third party
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
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
US6708273B1 (en) 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
US6601172B1 (en) 1997-12-31 2003-07-29 Philips Electronics North America Corp. Transmitting revisions with digital signatures
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
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
JP4625000B2 (ja) 2003-10-16 2011-02-02 パナソニック株式会社 データ保護システム及び記録担体
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
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
JP5563241B2 (ja) * 2009-05-15 2014-07-30 スリーエム イノベイティブ プロパティズ カンパニー 電気コネクタ
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
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
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
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
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
US10616197B2 (en) * 2016-04-18 2020-04-07 Atmel Corporation Message authentication with secure code verification

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066354A1 (en) * 2003-08-15 2005-03-24 Stmicroelectronics Limited Circuit for restricting data access
US20130198526A1 (en) * 2006-02-22 2013-08-01 Fujitsu Semiconductor Limited Secure processor
CN102265283A (zh) * 2008-10-24 2011-11-30 爱立信电话股份有限公司 用于安全软件平台访问的方法和设备
US20110093701A1 (en) * 2009-10-19 2011-04-21 Etchegoyen Craig S Software Signature Tracking
CN102385671A (zh) * 2010-09-02 2012-03-21 研祥智能科技股份有限公司 软件加密方法及系统
US20120255027A1 (en) * 2011-03-31 2012-10-04 Infosys Technologies Ltd. Detecting code injections through cryptographic methods
CN103765427A (zh) * 2011-09-07 2014-04-30 英特尔公司 检验设备的固件完整性
DE102013224578A1 (de) * 2012-11-30 2014-06-05 Nvidia Corporation Codeschutz unter verwendung von online-authentifizierung und verschlüsselter ausführung von code
CA2919106A1 (en) * 2013-07-23 2015-01-29 Ericsson Ab Media client device authentication using hardware root of trust
WO2015131324A1 (zh) * 2014-03-04 2015-09-11 华为技术有限公司 软件安全性检测方法、装置及设备
CN104573493A (zh) * 2014-12-25 2015-04-29 北京深思数盾科技有限公司 一种软件保护方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐剑: "《面向Android应用程序的代码保护方法研究》", 《信息网络安全》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105799620A (zh) * 2014-12-29 2016-07-27 上海通用汽车有限公司 车辆电子控制模块的安全代码计算
CN111630513A (zh) * 2018-01-25 2020-09-04 美光科技公司 认证所存储代码和代码更新的真实性
CN111630513B (zh) * 2018-01-25 2023-10-17 美光科技公司 认证所存储代码和代码更新的真实性
CN113632084A (zh) * 2019-03-25 2021-11-09 美光科技公司 运行时代码执行验证
CN113826071A (zh) * 2019-03-25 2021-12-21 美光科技公司 空中更新确认
CN113632084B (zh) * 2019-03-25 2023-01-03 美光科技公司 运行时代码执行验证方法、设备及系统
US11816202B2 (en) 2019-03-25 2023-11-14 Micron Technology, Inc. Run-time code execution validation
CN114584320A (zh) * 2022-03-17 2022-06-03 深圳市乐凡信息科技有限公司 加密传输方法、装置、设备及存储介质

Also Published As

Publication number Publication date
DE102017202423A1 (de) 2017-08-17
US10474823B2 (en) 2019-11-12
CN107085675B (zh) 2022-05-17
US20170235957A1 (en) 2017-08-17
TW201732669A (zh) 2017-09-16

Similar Documents

Publication Publication Date Title
CN107085675A (zh) 受控安全代码验证
US11876791B2 (en) Message authentication with secure code verification
JP4638912B2 (ja) ディストリビューションcdを使用した、署名されたグループにおけるダイレクトプルーフの秘密鍵を装置に伝達する方法
KR100670005B1 (ko) 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
CN102438013B (zh) 基于硬件的证书分发
CN107086981B (zh) 受控安全代码认证
JP2022527757A (ja) 物理複製困難関数を使用したコンピューティングデバイスのidの生成
JP6371919B2 (ja) セキュアなソフトウェアの認証と検証
CN113572715B (zh) 基于区块链的数据传输方法和系统
CN109858265A (zh) 一种加密方法、装置及相关设备
CN113014539B (zh) 一种物联网设备安全保护系统及方法
CN103051451A (zh) 安全托管执行环境的加密认证
CN111030822A (zh) 用于保护固件的方法和系统,以及计算机可读介质
CN112257086B (zh) 一种用户隐私数据保护方法及电子设备
JP2005341552A (ja) 証明書失効リストの分配管理方法
CN110795126A (zh) 一种固件安全升级系统
CN103269271A (zh) 一种备份电子签名令牌中私钥的方法和系统
JP2017011491A (ja) 認証システム
CN115514492A (zh) Bios固件验证方法、装置、服务器、存储介质和程序产品
CN116866333A (zh) 一种加密文件传输方法、装置、电子设备及存储介质
CN103248490B (zh) 一种备份电子签名令牌中信息的方法和系统
CN103281188A (zh) 一种备份电子签名令牌中私钥的方法和系统
CN112150151B (zh) 安全支付方法、装置、电子设备及存储介质
CN108449753B (zh) 一种手机设备读取可信计算环境中的数据的方法
WO2019244855A1 (ja) 確認システム及び確認方法

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
GR01 Patent grant
GR01 Patent grant