CN107086981B - 受控安全代码认证 - Google Patents

受控安全代码认证 Download PDF

Info

Publication number
CN107086981B
CN107086981B CN201710084663.XA CN201710084663A CN107086981B CN 107086981 B CN107086981 B CN 107086981B CN 201710084663 A CN201710084663 A CN 201710084663A CN 107086981 B CN107086981 B CN 107086981B
Authority
CN
China
Prior art keywords
code
client device
response
authorization code
digest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710084663.XA
Other languages
English (en)
Other versions
CN107086981A (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 CN107086981A publication Critical patent/CN107086981A/zh
Application granted granted Critical
Publication of CN107086981B publication Critical patent/CN107086981B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/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)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供用于受控安全代码认证的系统、方法、电路和计算机可读媒体。在一个方面,一种通过主机装置执行的方法包含:发射请求到客户端装置,所述请求包含对存储在所述客户端装置内的代码的性质的质询;接收对所述请求的响应,所述响应包括与所述代码的所述性质相关联的信息;基于所述接收到的信息验证所述响应的正确性;和基于所述响应的所述正确性的所述验证,确定所述代码是授权代码。

Description

受控安全代码认证
技术领域
本发明大体上涉及代码认证,特定来说涉及受控安全代码认证。
背景技术
在实例情境中,方法经实施来针对欺骗性操作的修改或攻击而保护在装置上执行的代码或程序。为了说明,在实例安全引导方法中,装置中的处理器产生引导代码的摘要且使用引导代码的所存储认证签名来确认引导代码的摘要。然而,此引导实施方案通过装置的处理器在本地执行,且因此受此本地处理器的性能、存储装置和安全性约束。因此,主机/客户端网络的安全性变得依赖于客户端侧的处理器系统的安全性。归因于成本约束,本地安全引导的安全性可归因于有限的计算能力或缺少对引导过程、操作存储器和/或确认密钥的保护而受到限制。
发明内容
本说明书描述用于受控安全代码认证的系统、方法、电路和计算机可读媒体。在一个方面,一种方法包含:发射请求到客户端装置,请求包含对客户端装置的代码的性质的质询;接收对请求的响应,响应包括和代码的性质相关联的信息;基于接收到的信息验证响应的正确性;和基于响应的正确性的验证,确定存储在客户端装置内的代码是授权代码。
一或多个所揭示实施方案的细节在以下附图和描述中阐述。其它特征、方面和优点将从描述、附图和权利要求书变得显而易见。
附图说明
图1是根据实例实施例的实例环境的框图。
图2A是根据实例实施例的包含执行实例客户端装置的受控安全代码认证的实例主机装置的实例系统的框图。
图2B是根据实例实施例的包含执行实例客户端装置的受控安全代码认证的实例主机装置的另一实例系统的框图。
图3是根据实例实施例的实例过程的流程图,主机装置通过所述过程可执行客户端装置的安全代码认证。
图4是根据实例实施例的实例过程的流程图,主机装置通过所述过程可执行多个客户端装置的安全代码认证。
具体实施方式
系统概述
图1是根据实施方案的实例环境100的框图。出于说明的目的,环境100包含具有主机装置112和“n”个客户端装置116a到116n的系统110。主机装置112通过网络114和客户端装置116a到116n通信,所述网络114可为(例如)系统110的局域网络。然而,应注意,本技术不限于局域网络的实施方案;事实上,网络可不同于局域网络,例如,可为广域网络或受控区域网路(CAN)。另外,网络114可为有线网络、无线网络或其任何组合。主机装置112经配置以确认存储在客户端装置中的代码或程序是否为授权(或认证)代码以供客户端装置116a到116n执行。客户端装置的代码包含引导代码或操作代码中的至少一者。引导代码经配置以在被执行时使客户端装置执行引导操作。操作代码经配置以在被执行时使客户端装置执行对应于操作代码的操作。
在一些情况下,归因于(例如)受约束成本,客户端装置116a到116n是不安全的或缺乏安全性。攻击者可攻击客户端装置(例如)以出于欺骗性目的修改客户端装置116a到116n上的代码。在一个实例中,攻击者修改存储在不安全客户端装置内的引导代码来在无认证的情况下重新引导户端装置。在另一实例中,攻击者修改存储在不安全客户端装置内的操作代码来改变通过客户端装置执行的操作。为了解决这些安全性问题,主机装置112经配置以执行客户端装置116a到116n的受控安全代码认证,如本文中参考图3和4所论述。
在一些实施方案中,主机装置112将包含对存储在客户端装置内的代码的性质(例如,代码的摘要、代码的签名或代码的消息认证代码(MAC))的质询的请求发送到客户端装置。在一些实例中,主机装置112请求代码的摘要。客户端装置产生存储在客户端装置内的代码的摘要。在一项实施例中,客户端装置发送所产生的摘要到主机装置。主机装置112使用对应于存储在客户端装置内的代码的授权代码的信息(例如,代码的认证签名,如原始设备制造商(OEM)签名)来验证所产生的摘要。在另一实施例中,客户端装置中的安全性模块基于所产生的摘要和存储在安全性模块中的私有密钥计算签名,且将签名发送到主机装置112。主机装置112接着基于授权代码和/或对应于私有密钥的公共密钥的信息验证签名。
基于验证结果,主机装置112确定存储在客户端装置内的代码是否为客户端装置的授权(或认证)代码。在一些实施方案中,主机装置112和客户端装置之间存在安全性策略。例如,如果客户端装置116a上的代码经授权,那么主机装置112允许客户端装置116a使用代码或使用授权密钥执行操作。或者,主机装置112允许客户端装置116a存取网络102。如果操作代码通过主机装置112被确定为未授权,那么主机装置112禁止客户端装置116a存取网络102(即,将客户端装置116a和外侧环境隔离)和/或发送警告或通知到和系统110相关联的实体。主机装置112还可通知实体或客户端装置116a更新存储在客户端装置116a内的代码。以此方式,欺骗性操作被最小化或消除,且对客户端装置116a的操作的安全性得以改善。
在一些实施方案中,主机装置112发送代码的质询和签名到客户端装置。质询请求存储在客户端装置内的代码的摘要。在一些实例中,签名是代码的认证签名,例如,OEM签名。在一些实例中,基于代码和私有密钥通过主机装置112产生签名。客户端装置基于存储在客户端装置内的代码计算摘要。客户端装置的安全性模块可产生摘要的签名且用自主机装置112接收的认证签名确认所产生的签名。安全性模块可使用对应于主机装置112中的私有密钥的公共密钥产生摘要的签名。如果所产生的签名得以确认,那么在一个实例中,安全性模块例如经由耦合到客户端装置的引脚启用客户端装置;在另一实例中,安全性模块允许客户端装置使用认证密钥以和主机装置112通信。如果所产生的签名是无效的,那么安全性模块禁止客户端装置引导或执行对应于代码的操作。安全性模块还可隔离客户端装置而不能存取网络114。
在一些实施方案中,主机装置112是相较于客户端装置116a到116n具有较大安全能力的可信或安全装置,如参考图2所论述。例如,主机装置112包含对客户端装置116a到116n不可用的安全存储器和/或随机数产生器。在一项实施例中,客户端装置116a到116n不具有包含安全存储器和/或随机数产生器的能力。在另一实施例中,客户端装置116a到116n无法存取远程安全存储器和/或随机数产生器。主机装置112针对各客户端装置接收(例如,从远程服务器)且存储和一或多个授权代码(例如,OEM引导代码和/或操作代码)相关联的安全存储信息。信息包含整个授权代码的代码图像、授权代码的签名、授权代码的摘要、授权代码的MAC或授权代码的其它性质中的一或多者。在一些实施例中,主机装置112存储授权代码的经选择部分的性质以用于安全代码认证。在一些实施例中,主机装置112存储加密或安全密钥以供使用客户端装置认证(和/或授权)的。
在一些实施方案中,用户104a、104b使用计算装置106a、106b来经由网络102与包含主机装置112和/或客户端装置116a到116n的系统110通信。计算装置106a、106b各自为例如以下各者的计算装置:移动装置、膝上计算机、台式计算机、智能手机、个人数字助理、便携式媒体播放器、平板计算机或可用来与系统110通信的任何其它计算装置。出于说明目的,在图1中,计算装置106a描绘为移动装置,且计算装置106b描绘为台式计算机。网络102是系统110的外部网络,例如,公共通信网络(例如,因特网、蜂窝数据网络、电话网络上的拨号调制解调器)、广域网(WAN)、局域网(LAN)、受控区域网络(CAN)、私有通信网络(例如,私有LAN、租用线路)或其任何适当组合。网络102经通信耦合到内部网络114或与所述内部网络114集成。
在一些实例中,用户104a或104b是和系统110相关联的实体。用户104a或104b使用计算装置106a或106b来经由网络102和/或网络114检查系统110的状态或远程控制系统110的操作。例如,用户104a或104b使用计算装置106a或106b来检查确认存储在系统110中的客户端装置内的代码(操作代码或引导代码)是否为客户端装置的授权代码。
在一些实施方案中,用户104a或104b使用计算装置106a或106b来将对客户端装置执行安全代码认证且将认证结果传回到计算装置106a或106b的请求发送到主机装置112。基于接收到的认证结果,用户104a或104b可确定是否接受来自客户端装置的消息或信息。
在一些实施方案中,用户104a或104b使用计算装置106a或106b来执行客户端装置的安全代码认证。计算装置106a或106b包含类似于主机装置112的存储客户端装置的授权代码的信息的安全或可信装置。计算装置106查询客户端装置以确认客户端装置上的代码是否使用存储的信息进行授权。
在一些实施方案中,服务器计算系统108经由网络102与系统110通信。服务器计算系统108包含一或多个计算装置和一或多个机器可读存储库或数据库。服务器计算系统108经配置以与包含系统110的若干系统通信。对于各系统,服务器计算系统108存储系统中的相应客户端装置和/或主机装置的相应代码。
服务器计算系统108的用户109(例如,管理员或操作者)使用服务器计算系统108来与个别系统(例如系统110)通信(例如)以检查系统的状态或控制系统的操作。类似于用户104a或104b,用户109可使用服务器计算系统108来直接控制系统110中的客户端装置的一者(例如,经由网络102和114)或使用服务器计算系统108来通过使系统110中的主机装置112控制客户端装置而间接控制客户端装置。例如,服务器计算系统108经由网络102与主机装置112通信,且主机装置112经由网络114与客户端装置通信。
所揭示的实施方案可在不同环境中使用。例如,在一些实施方案中,环境100为汽车环境。系统110是汽车。主机装置112可为汽车的中央计算系统,例如,电子控制单元(ECU)。客户端装置116a到116n可各为汽车中的组件的控制器(例如,ECU),例如,窗户控制器、制动控制器或车轮控制器。网络114可为将主机装置112和客户端装置116a到116b中的各者连接的有线或无线网络。用户104a或104b可为车主,且经由网络102和/或网络114使用移动电话106a或计算机106b与汽车通信。服务器计算系统108可为经配置以控制若干汽车且和实体(例如,汽车制造商、汽车经销商或企业)相关联的服务器。
应了解,所揭示的实施方案不限于汽车环境且可适用于其它背景。例如,系统110可为包含用于控制若干器具(例如,灯具、警报器、车库开门器或感测器)的中央控制器的家庭网络。
在一些实例中,摘要和加密散列函数相关联。装置(例如,主机装置112或客户端装置116a、116b或116n)采用任意数据块(例如,代码或程序)且使用加密散列函数来计算字串,即(加密)散列值。待编码的数据可称为“消息”,且散列值可称为“消息摘要”或简称为“摘要”。例如,加密散列函数可包含例如SHA-256的安全散列算法(SHA)或MD5消息摘要算法。所产生的摘要可具有固定长度或不同长度。然而,应注意,本技术不限于此实施算法的实施方案,且可实施其它类型的散列函数。
在一些实例中,签名是用于证明数字消息(例如,代码的摘要)的真实性的数学方案。签名可和数字签名算法(DSA)相关联,例如,与椭圆曲线数字签名算法(ECDSA)。装置可使用DSA来使用摘要和密钥(例如,私有密钥)计算或产生摘要的签名。然而,应注意,本技术不限于此实例算法的实施方案,且可实施其它类型的签名算法。
在一些实例中,装置的授权代码表示无改变或修改的原始代码,例如,如由装置或和装置相关联的实体的原始设备制造商(OEM)所想要。代码在不变或未经修改时是授权代码且在被改变或修改时为未授权代码。术语“授权代码”和“认证代码”可互换地使用。
实例主机和客户端装置
图2A是根据实施方案的实例系统200的框图。在这实例实施方案中,实例主机装置202对客户端装置204执行受控安全代码认证。主机装置202可类似于图1的主机装置112,或可包含在图1的计算装置106a或106b或图1的服务器计算系统108中。客户端装置204可类似于图1的客户端装置116a、116b或116n。主机装置202经配置以验证存储在客户端装置204内的代码是否为授权代码以执行对应操作。在一些情况下,对客户端装置执行操作,例如,引导操作。在一些情况下,对耦合到客户端装置204的装置或系统执行操作。
主机装置202使用连接208耦合到客户端装置204。连接208可类似于图1的网络102、图1的网络114或其组合。在客户端装置204和主机装置202对于彼此是远程的一些实施方案中,连接208可为网络连接(例如,网络102和/或网络114)。例如,连接208可经由电路交换数据网络、包交换数据网络、局域网(LAN)、受控区域网络(CAN)或能够载送数据的任何其它网络,例如,基于因特网协议(IP)或基于异步传输模式(ATM)的网络(包含有线或无线网络)。在客户端装置204和主机装置202靠近在一起地定位的一些其它实施方案中,连接208可为数据缆线。在客户端装置204和主机装置202经物理耦合(有线)的其它实施方案中,连接208可为硬件接口,例如到主板的PCI接口。
在一些实施方案中,主机装置202包含主机接口206、质询产生模块212、随机产生模块214、安全存储装置216和认证模块218外加其它组件。在一些实施方案中,安全存储装置216在主机装置202的外部且牢固地耦合到主机装置202。例如,安全存储装置216可在可信的第三方实体中。主机装置202可从安全存储装置216检索信息。
主机接口206经配置以使主机装置202能够与客户端装置204通信。在一些实施方案中,主机接口206可为经由网络将主机装置202和远程客户端装置连接的网络接口。例如,主机接口206可包含以太网端口、IEEE 802.11芯片、蓝牙(BluetoothTM)硬件或一段软件(例如软件无线电)。在一些其它实施方案中,主机接口206可为经配置以在主机装置202和客户端装置204之间提供物理耦合的电接口。例如,主机接口206可为通用串行总线(USB)接口、外部串行AT附接(eSATA)接口、IEEE 1394(火线)接口、雷电(Thunderbolt)接口或闪电(Lightning)接口。
质询产生模块212经配置以产生对客户端装置204的质询。质询产生模块212可在不同时间产生对客户端装置204的不同质询。质询可包含对客户端装置204的用于请求客户端装置204的代码的性质的查询。性质可为加密性质,例如,摘要、签名、校验和或消息认证代码(MAC)。质询还可包含对代码的特定部分的性质的请求。在一些实例中,特定部分对应于存储器地址范围(物理或虚拟),例如,包含起始地址和终结地址的地址对、具有宽度的中间地址、具有宽度的起始地址或具有宽度的终结地址。质询可包含指示存储器地址范围的数据来表示特定部分。在一些实施方案中,质询包含和用于安全认证和/或授权的加密或认证密钥相关联的信息。
随机产生(RandGen)模块214经配置以产生用作通过主机装置202执行的加密操作的种子的随机数。例如,随机产生模块214可包含随机数产生器,其将某一数目的随机字节(例如,32个随机字节)传回到质询产生模块212。在一些实施方案中,质询产生模块212将这产生的随机数和单独输入数组合以形成加密“临时数”,其存储在主机装置212内且可由后续命令使用。主机装置202可将临时数(例如,以及质询)发送到客户端装置204,且验证来自客户端装置204的响应是否包含和临时数相关联的信息。这样,主机装置202可确保对质询的响应尚未被攻击者复制且在随后时间被重放。随机产生模块214可包含在质询产生模块212中。
在一些实例中,临时数是在装置之间的加密通信中仅使用一次的任意数。临时数可为在认证协议中发布来确保老的通信无法在重放攻击中再使用的随机数或伪随机数。临时数还可用来确保流密码的安全性。为了确保临时数仅被使用一次,所述临时数可为时变的(在其值中包含适当细粒度的时间戳),或用足够随机位产生以确保重复之前产生的值的概率上不明显的可能性。
安全存储装置216经配置以存储安全信息,所述安全信息包含客户端装置204的授权代码和/或认证密钥(AuthKey)215的信息。授权代码对应于客户端装置204的代码。认证密钥215可包含用于认证或加密功能的对称加密密钥或非对称加密密钥。授权代码的信息可包含授权代码的整个副本(或图像)、授权代码的摘要、授权代码的签名、授权代码的MAC或授权代码的任何其它性质。授权代码的整个图像可在主机装置202的生产阶段(例如,制造、工厂初始化、个性化或分配)期间存储在安全存储装置216中。授权代码的整个图像也可从例如(安全)硬件或(安全)服务器的来源复制或下载。主机装置202可建立与来源的安全信道来例如在不接收图像的签名情况下接收整个图像。主机装置202还可从来源更新授权代码的所存储信息。
在一些实施方案中,授权代码的签名是客户端装置的原始设备制造商(OEM)签名,其可在主机装置202的生产阶段期间存储在主机装置202中或在生产阶段后复制、下载或更新到主机装置202。在一些实例中,主机装置202使用数字签名算法与安全密钥基于授权代码的摘要产生授权代码的签名。安全密钥可作为认证密钥215连同授权代码的信息存储在安全存储装置216中。在一些实例中,主机装置202基于授权代码的整个图像使用产生的签名来验证OEM签名。
在一些实施方案中,授权代码的信息包含授权代码的一或多个个别部分的信息,例如,个别部分的副本、个别部分的摘要或签名,或个别部分的地址范围。在一些实施方案中,主机装置202从授权代码的整个图像(例如,随机地)选择若干部分,使用加密散列函数或散列算法计算各部分的相应摘要,且将所述部分的摘要存储在安全存储装置216中。主机装置202还可使用相应摘要计算各部分的相应签名且将签名存储在安全存储装置216中。在一些实施方案中,主机装置202确定各部分的相应地址范围或各部分的摘要,将所述部分的地址范围存储在安全存储装置216中,且将相应地址范围和安全存储装置216中的所述部分的相应摘要或签名相关联。
安全存储装置216可为主机装置202的部分,所述部分实施强大的安全性机制,使得包含在安全存储装置216中的数据无法被轻易复制、克隆或修改,且对其内的数据的任何未授权改变可通过验证装置检测到。在一些实施方案中,安全存储装置216包含永久或非易失性存储器,例如,只读存储器(ROM)、电子可擦只读存储器(EEPROM)阵列、快闪存储器、硬盘驱动器或经配置用于以永久的方式存储数据的任何其它合适的存储机制。如之前所指示,安全存储装置216可用于存储和客户端装置204的授权代码、认证密钥215、杂项读/写、只读或机密数据、消费记录和安全性配置相关联的信息。对安全存储装置216的各个区段的存取可以多个方式进行约束,且经配置锁定以防止改变。
在一些实施方案中,安全存储装置216包含用于暂时存储数据的临时存储器。例如,临时存储器可为静态随机存取存储器(SRAM),其中授权代码的下载或更新的图像在与安全来源的安全通信期间被缓冲或者加密或认证操作的结果在与客户端装置204的安全通信期间被缓冲。在一项实施例中,安全存储装置包含用电源(例如,电池或电容器)备份的SRAM。在一些实施方案中,临时存储器用来存储输入命令或输出结果以及中间计算值。每当安全存储装置216进入睡眠模式或移除了电源,临时存储器的整个内容可为无效的。
认证模块218经配置以验证对来自客户端装置204的质询的响应以确定存储在客户端装置204内的代码是否为授权代码。认证模块218经配置以与安全存储装置216、质询产生模块212和/或随机产生模块214通信且从安全存储装置216、质询产生模块212和/或随机产生模块214获得信息。例如,质询产生模块212将用于请求代码的加密性质的质询发送到客户端装置204。客户端装置204可发送回包含代码的加密性质的响应。认证模块218可从和存储在安全存储装置216中的授权代码相关联的信息获得对应于客户端装置204的代码的授权代码的加密性质,且确定在响应中接收到的代码的加密性质是否与获得的授权代码的加密性质匹配。如果代码的加密性质与获得的授权代码的加密性质匹配,那么认证模块218可确定存储在客户端装置204内的代码是授权代码。如果代码的加密性质与获得的授权代码的加密性质不匹配,那么认证模块218可确定代码并非授权代码或未经授权。
在一些实施方案中,客户端装置204包含客户端接口210、处理器220和存储器222外加其它组件。客户端接口210经配置以使客户端装置204能够与主机装置202通信。在一些实施方案中,客户端接口210为经由网络将客户端装置204和远程主机装置连接的网络接口。例如,客户端接口210可包含以太网端口、IEEE 802.11芯片、蓝牙(BluetoothTM)硬件或一段软件(例如软件无线电)。在一些其它实施方案中,客户端接口210为经配置以在客户端装置204和主机装置202之间提供物理耦合的电接口。例如,客户端接口210可为通用串行总线(USB)接口、外部串行AT附接(eSATA)接口、IEEE 1394(火线)接口、雷电接口或闪电接口。
存储器222经配置以存储包含引导代码和/或操作代码的一或多个代码。处理器220经配置以使用对应代码执行引导和/或操作。存储器222可为处理器220的内部存储器。代码和/或与代码相关联的信息(例如,代码的OEM签名)可在客户端装置204的生产阶段(例如,制造、工厂初始化、个性化或分配)期间存储在存储器222中。代码和/或相关联信息也可从安全来源(例如安全硬件或安全服务器)复制或下载。安全来源可包含主机装置202。客户端装置204也可从安全来源更新代码和/或相关联信息。
客户端装置204可为不安全的或缺乏安全性。例如,存储器222可为不安全的,且存储在存储器222中的代码和/或相关联信息可被攻击者修改。主机装置202可用于认证存储在客户端装置204内的代码是否为授权代码。
在一些实施方案中,客户端装置204包含经配置以对来自主机装置202的质询或查询作出响应的响应模块224。响应模块224可包含在处理器220中。在一些情况下,客户端装置204从主机装置202接收包含对客户端装置204的代码的加密性质(例如,代码的摘要或签名或MAC)的请求的质询。响应模块224可处理质询以确定请求。响应模块224可基于包含存储代码和/或相关联信息的来自存储器222的信息获得代码的加密性质,且发送回包含获得的代码的加密性质的响应。例如,如果质询请求代码的签名,那么响应模块224可计算代码的摘要且用私有密钥生成摘要的签名。如果质询请求授权代码的特定部分的加密性质,那么响应模块224可识别代码的对应部分且获得代码的对应部分的加密性质。
在一些实施方案中,客户端装置204包含用于存储安全信息(例如,机密或认证密钥(AuthKey)225)的安全存储装置226。安全存储装置226可具有类似于安全存储装置216的安全能力。认证密钥225可包含对称加密密钥或非对称加密密钥。认证密钥225可包含公共密钥或私有密钥。客户端装置204可使用认证密钥225以用于安全认证和/或与主机装置202进行通信。在一些情况下,响应模块224使用存储的认证密钥225产生响应的MAC(例如,代码的摘要或签名)。主机装置202可使用存储在安全存储装置216中且对应于认证密钥225的认证密钥来认证响应以确保响应在发射期间未被修改。在一些情况下,响应模块224使用加密算法(例如,对称加密算法)与认证密钥225产生代码或经选择代码部分的密钥加密MAC(例如,HMAC或CMAC或其它)。响应模块224将密钥加密MAC发送到主机装置202,且主机装置202使用对应于认证密钥225的存储认证密钥确认密钥加密MAC。
在一些实施方案中,安全存储装置226包含在处理器220中、相较于处理器220的其它组件具有较高安全能力。在一些实施方案中,安全存储装置226和处理器220分离且耦合到处理器220。客户端装置204可包含处理器220、存储代码的副本的存储器222和用于对来自主机装置202的质询作出响应的响应模块224。
在一些实施方案中,安全存储装置226和响应模块224都包含在和处理器220分离的安全装置230中。安全装置230可经由适当接口耦合到客户端装置204。此配置可允许客户端装置和主机装置202通信,使得主机装置202可执行客户端装置204的受控安全代码认证,所述客户端装置并未经预配置有适当安全性特征。
在第一实例中,主机装置202发送对客户端装置204的代码的性质的质询。处理器220或响应模块224基于存储在存储器222中的信息计算响应(例如,代码的摘要)且将响应发送回到主机装置202。响应模块224可具有高于处理器220的计算能力以加速响应计算或运算。主机装置202使用存储在安全存储装置216内的授权代码的签名或摘要确认响应。如果主机装置202确定响应无效(即,存储在客户端装置204内的代码未经授权),那么主机装置202可隔离客户端装置204且防止外部环境(例如,图1的网络102、计算装置106a、106b或服务器计算系统108)存取或利用客户端装置204。相反,如果主机装置202确定响应是有效的(即,存储在客户端装置204内的代码经授权),那么主机装置202可允许外部环境存取或利用客户端装置204。
在第二实例中,主机装置202发送对客户端装置204的代码的摘要的质询。处理器220或响应模块224基于存储在存储器222中的信息计算代码的摘要。安全装置230基于代码的经计算摘要和存储在安全存储装置226中的私有密钥计算签名,且将签名发送回到主机装置202。主机装置基于对应于客户端装置204的私有密钥的加密密钥或已用于签名的私有密钥的证书确认签名且信任客户端装置204。
在第三实例中,主机装置202发送客户端装置204的代码的质询和签名。签名可为代码的OEM签名。处理器220或响应模块224基于存储在存储器222中的信息计算代码的摘要。接着,安全装置230针对接收到的签名确认所计算摘要。安全装置230可响应于主机装置202发送确认的结果。在一些实施方案中,安全装置230存储和授权代码相关联的信息,执行客户端装置的代码的代码认证,且将认证结果传回至主机装置202。
如果安全装置230确定所计算摘要无效(即,存储在客户端装置204内的代码并非授权代码),那么安全装置230可防止外部环境(例如,图1的网络102、计算装置106a、106b或服务器计算系统108)存取或利用客户端装置204。在一些实施例中,主机装置202充当客户端装置204的启用器。防止客户端进行除了等待质询外的任何事情,直至主机装置202发送质询到客户端。如果安全装置230确定所计算摘要为有效的,那么安全装置230启用客户端装置204。在一些情况下,客户端装置204包含经耦合到安全装置230的输出的引脚。在认证存储在客户端装置204中的代码后,安全装置230便发送控制信号到引脚以启用客户端装置204。在一些实例中,引脚是硬件引脚,且控制信号是通电或启用客户端装置204中的特定硬件块的电信号。在一些实施方案中,客户端装置204包含耦合到连接208的引脚。在通过主机装置202认证客户端装置上的代码后,便可(例如)通过主机装置202将控制信号经由连接208发送到引脚以进一步启用客户端装置204。在一些情况下,安全装置230通过允许客户端装置204使用用于(例如)与主机装置202或外部环境通信的认证密钥225而启用客户端装置204。
虽然系统200展示单个客户端装置204对单个主机装置202的主机客户端配置,但其它配置也有可能。在一些实施方案中,系统200类似于图1的系统110,且包含连接到单个主机装置的多个客户端装置。主机装置针对客户端装置的各者执行受控安全代码授权,如参考图4所描述。连接(例如,连接208)可在多个客户端装置间共享,或可针对连接到主机装置的各客户端装置进行重复连接。
图2B是根据实施方案的另一实例系统250的框图。系统250包含主机装置252和客户端装置254。主机装置252可类似于图2A的主机装置202。客户端装置254可类似于图2A的客户端装置204。
主机装置252具有主机装置控制器262,其包含处理器264和耦合到处理器264的一或多个存储媒体266。存储媒体266进一步存储经配置以当被处理器264执行时使处理器264执行动作(例如,客户端装置204的安全代码认证)的逻辑268。在一项实施例中,主机装置控制器262包含图2A的随机产生模块214、质询产生模块212和认证模块218。在另一实施例中,主机装置控制器262也包含图2A的安全存储装置216。
客户端装置254具有客户端装置控制器272,其包含处理器274和耦合到处理器274的一或多个存储媒体276。存储媒体276进一步存储经配置以当被处理器274执行时使处理器274执行动作(例如,对来自主机装置252的质询和/或客户端装置254的安全代码认证作出响应)的逻辑278。客户端装置控制器272可包含安全模块280,其类似于图2A的安全装置230。在一项实施例中,客户端装置控制器272包含图2A的处理器220和存储器222。在另一实施例中,客户端装置控制器272包含图2A的响应模块224和/或存储器222。在另一实施例中,客户端装置控制器272包含具有图2A的响应模块224和安全存储装置226的安全装置230。
实例流程图
图3是通过例如图1的主机装置112或图2A的主机装置202或图2B的主机装置252的主机装置执行的实例过程300的流程图。主机装置对例如图1的客户端装置116a、116b或116n或图2A的客户端装置204或图2B的客户端装置254的客户端装置执行受控安全代码认证。
主机装置发送包含对客户端装置的代码的性质的质询的请求到客户端装置(302)。代码可为客户端装置起动的引导代码或客户端装置执行操作的操作代码。性质可为代码的摘要、签名或MAC。主机装置可包含安全存储装置(例如,图2A的安全存储装置216)来存储和对应于客户端装置的代码的授权代码相关联的信息。如上文所提及,主机装置可存储授权代码的整个副本(或图像)、授权代码的摘要、授权代码的签名(例如,OEM签名)、授权代码的MAC或授权代码的其它性质。主机装置也可存储和授权代码的一或多个个别部分相关联的信息。
在一些实施方案中,主机装置接收通知主机装置客户端装置将执行操作的消息。例如,当客户端装置复位时或每当从客户端装置移除电源时,客户端装置重复进行引导过程,这可触发客户端装置发送客户端装置上已发生重新引导的消息到主机装置。响应于接收到所述消息,主机装置可发送对对应于操作的授权代码的性质的质询到客户端装置。
在一些实例中,主机装置定期地例如以预定日程用客户端装置起始代码认证过程。如果代码认证过程根据预定日程不发生,那么主机装置可将客户端装置标记为不可信的或起始质询来请求客户端装置验证其可信度。例如,客户端装置的电力循环使客户端装置按预定日程重复进行引导操作,这触发客户端装置按预定日程发送消息到主机装置。然而,当电力循环根据预定日程不发生(例如,电力循环被修改或改变)时,主机装置可(例如)使用加密密钥将授权请求发送到客户端装置。响应于从客户端装置接收到正确授权信息,主机装置发送质询到客户端装置。否则,如果授权失败,那么主机装置可禁止客户端装置存取网络(例如,图1的网络102)和/或发送警告或通知到与主机装置或客户端装置相关联的实体(例如,可信实体)。
主机装置接收来自客户端装置的对请求的响应(304)。响应可包含基于存储在客户端装置内的代码通过客户端装置产生的代码的加密性质。在一些实例中,质询包含对代码的摘要的请求。客户端装置可计算代码的摘要且在响应中发送代码的摘要到主机装置。在一些实例中,质询包含对授权代码的签名的请求。客户端装置可基于代码的摘要和存储在客户端装置中的私有密钥生成签名。主机装置可存储对应于存储在客户端装置中的私有密钥的机密或认证密钥。主机装置也可存储已用于签名的私有密钥的证书。
在一些实施方案中,主机装置与质询一起或包含在质询中地发送查询(例如,临时数查询)到客户端装置。如上文所提及,查询可通过随机数产生器(例如,图2的随机产生模块214)产生。主机装置可从客户端装置接收响应且确定接收到的响应是否包含与查询相关联的信息。在一些实例中,客户端装置产生代码的摘要,接着用临时数散列摘要且将散列摘要包含在到主机装置的响应中。如果主机装置确定响应不包含和查询相关联的信息,那么主机装置可停止代码认证过程和/或发送警报或通知到与主机装置或客户端装置相关联的实体。如果主机装置确定响应包含与查询相关联的信息,那么过程300行进到步骤306。
主机装置基于授权代码的存储信息验证响应是否为正确的(306)。主机装置可基于存储在安全存储装置中的授权代码的信息获得授权代码的加密性质,且确定响应中的代码的加密性质是否与获得的授权代码的加密性质匹配。
如上文所提及,客户端装置可包含安全模块。安全模块可基于代码的摘要和存储在安全模块中的私有密钥计算代码的签名且将签名包含在响应中。如果响应包含代码的签名,那么主机装置可基于授权代码的摘要和存储在安全存储装置中的加密密钥生成签名。加密密钥可为对应于存储在与客户端装置相关联的安全装置中的私有密钥的公共密钥。代码的签名可使用私有密钥产生。主机装置也可使用已被客户端装置用来签名的私有密钥的证书生成签名。主机装置可确定授权代码的所生成的签名是否与响应中的代码的签名匹配。如果主机装置确定授权代码的所生成的签名与响应中的代码的签名匹配,那么主机装置确定响应是正确的。如果主机装置确定授权代码的所生成的签名与响应中的代码的签名不匹配,那么主机装置确定响应是不正确的。
如果主机装置验证响应的不正确性,那么主机装置确定代码未经授权(308),即,存储在客户端装置内的代码并非授权代码。因此,主机装置可将客户端装置和网络隔离或防止外部环境存取或利用客户端装置。主机装置可发送警告或通知到与主机装置或客户端装置相关联的实体。主机装置也可通知实体或客户端装置以(例如)通过从安全来源将授权代码的新的副本下载到客户端装置来更新存储在客户端装置内的代码。
如果主机装置验证响应的正确性,那么主机装置确定代码经授权(310),即,存储在客户端装置内的代码是授权代码。因此,主机装置可启用客户端装置。在一些实例中,响应于确定代码经授权,主机装置启动耦合到客户端装置的引脚以使客户端装置能够执行操作。
响应于确定代码经授权,主机装置可应用安全性策略用于与客户端装置的顺序通信。策略可包含对称密钥授权或非对称密钥授权。代码可为引导代码。在一些实例中,在安全引导期间启用存储在客户端装置中的对称密钥,且主机装置和客户端装置之间的运行时连接可使用存储的对称密钥来认证或加密。在一些实例中,每次在客户端装置成功完成安全引导之后,主机装置使用非对称密钥交换或协议或其它加密方法将新的非对称密钥(例如,私有密钥)传送到客户端装置。主机装置可将对应非对称密钥(例如,公共密钥)存储在安全存储装置中。
在一些实施方案中,主机装置将授权代码的整个图像存储在安全存储装置中。主机装置可从授权代码选择多个部分且计算各部分的一或多个加密性质。例如,针对各部分,主机装置可(例如)使用加密散列函数来计算所述部分的摘要和/或使用经计算摘要和机密或认证密钥来生成所述部分的签名。主机装置也可确定经计算摘要的地址范围且将地址范围和安全存储装置中的摘要和/或签名相关联。在一些实施方案中,主机装置存储和授权代码的多个部分相关联的信息(例如,摘要、签名和/或地址范围)而非存储授权代码的整个图像。
在一些实施方案中,主机装置选择针对授权代码的多个部分的多个存储器地址范围。例如,授权代码包含起始地址和终结地址。主机装置可随机地选择多对起始地址和终结地址以用作多个存储器地址范围。各存储器地址范围对应于授权代码的特定部分。主机装置基于授权代码的地址范围确定各地址范围的对应部分,且计算各部分的相应摘要。接着,主机装置将经计算摘要和相应地址范围存储在安全存储装置中且针对安全存储装置中的各部分使相应地址范围与相应摘要相关联。
主机装置可(例如)随机选择授权代码的特定部分且产生用于请求特定部分的加密性质的质询。质询可包含与特定部分相关联的地址范围。客户端装置可处理质询以确定地址范围。客户端装置可选择具有地址范围的存储在客户端装置内的代码的部分,产生代码的所述部分的性质且将代码的所述部分的所产生性质包含在响应中。主机装置可通过确定响应包含对应于授权代码的特定部分的信息而验证对质询的响应的正确性。对于所述质询,主机装置每次可从多个部分选择不同部分。
主机装置可(例如)通过从安全来源下载来更新客户端装置的认证代码的副本,且将经更新的副本存储在与主机装置相关联的安全存储装置中。客户端装置还可(例如)从相同安全来源或从主机装置更新授权代码。主机装置可(例如)基于特定部分的关键性和/或主机装置的存储可用性存储新的授权代码的特定部分。主机装置每次可使新的授权代码的范围发生变化以包含在特定部分中。在一些实施方案中,主机装置产生用于请求特定部分的加密性质和/或授权代码的整个图像的加密性质的质询。例如,质询可包含对特定部分的摘要和授权代码的整个图像的请求。
在一些实施方案中,质询包含对消息认证代码(MAC)的请求。质询也可包含临时数。客户端装置基于存储在客户端装置内的代码和机密密钥(例如,存储在图2的安全存储装置226中)和/或临时数而产生客户端侧MAC,且将所产生的客户端侧MAC发送到主机装置。主机装置基于存储在主机装置内的认证代码和机密密钥和/或临时数而产生主机侧MAC。机密密钥可为与客户端装置共享的确认密钥。主机装置将响应中的客户端侧MAC与所产生的主机侧MAC比较以确定存储在客户端装置中的代码是否经授权。
在一些实施方案中,主机装置发送具有对应于客户端装置的代码的授权代码的签名的质询。客户端装置的安全模块可基于存储在安全模块中的私有密钥计算代码的签名且使用授权代码的签名确认经计算签名。客户端装置可将确认结果包含在响应中。主机装置可基于接收到的确认结果确定代码是否存储在客户端装置内。
图4是通过主机装置执行以对多个客户端装置执行受控安全代码认证的实例过程400的流程图。主机装置可类似于图1的主机装置112或图2A的主机装置202或图2B的主机装置252,且各客户端装置可类似于图1的客户端装置116a、116b或116n或图2A的客户端装置204或图2B的客户端装置254。
主机装置发送用于请求客户端装置的相应代码的性质的相应质询到多个客户端装置中的各者(402)。主机装置可包含安全存储装置(例如,图2的安全存储装置216)用于存储对应于客户端装置的代码的相应授权代码和客户端装置的相关联标识符的信息。各客户端装置可经由网络(例如,图1的网络114)耦合到主机装置。针对各客户端装置,安全存储装置可存储关于相应授权代码的若干部分的信息。对不同客户端装置的相应质询可为不同的。例如,不同质询可请求不同客户端装置的相应授权代码的不同部分。
主机装置接收对特定质询的特定响应(404)。特定响应包含关于特定客户端装置的特定标识符和存储在特定客户端装置内的特定代码的加密性质的信息。例如,特定客户端装置可接收对相应授权代码的摘要的质询。特定客户端装置可产生特定操作代码的摘要且使用所述摘要和特定客户端装置的特定标识符生成签名。特定客户端装置接着将所生成的签名在特定响应中发送到主机装置。特定客户端装置也可使用摘要产生签名且将签名和特定标识符包含在特定响应中。
主机装置识别安全存储装置中与特定标识符相关联的特定授权代码的信息(406)。主机装置可分析特定响应以获得特定标识符。基于特定标识符,主机装置可识别与存储在安全存储装置中的特定标识符相关联的特定授权代码的信息。
主机装置获得特定授权代码的加密性质(408)。例如,主机装置可基于安全存储装置中的特定授权代码的经识别信息产生特定授权代码的加密性质。
主机装置验证响应是否为正确的(410)。主机装置可确定特定授权代码的所获得的加密性质是否与特定响应中的特定代码的加密性质匹配。
如果特定授权代码的所获得的加密性质与特定响应中的特定代码的加密性质不匹配,那么主机装置验证特定响应的不正确性且确定存储在特定客户端装置内的代码未经授权(412)。主机装置可隔离外部环境而不存取或利用特定客户端装置和/或发送消息或通知到与主机装置或特定客户端装置相关联的实体。主机装置还可发送通知到客户端装置或实体以更新存储在客户端装置内的代码。
如果特定授权代码的所获得的加密性质与特定响应中的特定代码的加密性质匹配,那么主机装置验证特定响应的正确性且确定特定客户端装置的代码经授权(414)。主机装置可如上文提及启用特定客户端装置。
实例概念
鉴于前述内容,请注意,本技术可(例如)根据以下实例概念实施:
1.一种装置包含处理器和耦合到所述处理器并存储逻辑的一或多个存储媒体,所述逻辑经配置以在被所述处理器执行时使所述处理器:发射请求到客户端装置,所述请求包含对存储在所述客户端装置内的代码的性质的质询;接收对所述请求的响应,所述响应包括与所述代码的所述性质相关联的信息,所述信息基于所述代码通过所述客户端装置产生;基于接收到的信息验证所述响应的正确性;和基于所述响应的正确性的所述验证,确定所述代码是授权代码。
2.根据概念1所述的装置,其中所述质询是针对所述代码的摘要且所述响应包含所述代码的所述摘要,所述代码的所述摘要通过所述客户端装置产生,且所述响应的所述正确性的所述验证包含:基于存储在安全存储装置中的所述授权代码的信息获得所述授权代码的性质,所述授权代码的所述性质包含所述授权代码的摘要和所述授权代码的签名中的一者;和基于所述授权代码的所述获得的性质验证所述接收到的响应中的所述摘要。
3.根据概念1所述的装置,其中所述质询是针对所述代码的摘要和所述代码的签名中的一者,所述响应包含所述代码的所述签名,所述代码的所述签名通过所述客户端装置产生,且所述响应的所述正确性的所述验证包含:基于存储在安全存储装置中的所述授权代码的信息获得所述授权代码的签名;和基于所述授权代码的所述获得的签名验证包含在所述响应中的所述签名。
4.根据概念1所述的装置,其中所述请求包含所述授权代码的签名,且所述响应的所述正确性的所述验证包含:基于所述接收到的信息确定所述客户端装置使用所述请求中的所述签名确认所述代码的所述产生的摘要。
5.根据概念1所述的装置,其中所述质询是针对所述代码的消息认证代码(MAC),所述响应包含基于存储在所述客户端装置内的所述代码和存储在所述客户端装置内的共享机密密钥通过所述客户端装置产生的所述代码的所述MAC,且所述响应的所述正确性的所述验证包含:基于存储在安全存储装置中的所述授权代码和存储在所述安全存储装置中的所述共享机密密钥计算所述授权代码的MAC;和基于所述授权代码的所述经计算MAC确认所述响应中的所述代码的所述MAC。
6.根据概念1所述的装置,其中所述逻辑经配置以使所述处理器产生临时数,所述请求包含所述临时数和所述质询,且所述响应的所述正确性的所述验证包含:确定所述接收到的信息包含与所述临时数相关联的信息。
7.根据概念1所述的装置,其中所述逻辑经配置以使所述处理器选择所述授权代码的多个存储器地址范围;对所述多个存储器地址范围的各者确定所述授权代码的相应部分;计算各确定部分的相应摘要;将所述授权代码的所述部分的所述相应摘要和所述相应存储器地址范围存储在安全存储装置中;和使所述相应存储器地址范围与所述安全存储装置中的所述部分的所述相应摘要相关联。
8.根据概念7所述的装置,其中所述质询包含所述存储器地址范围的特定存储器地址范围,所述响应包含基于包含在所述质询中的所述特定存储器地址范围通过所述客户端装置产生的所述代码的特定部分的摘要,且所述响应的所述正确性的所述验证包含:确定通过所述客户端装置产生的所述代码的所述特定部分的所述摘要与具有所述特定存储器地址范围的所述授权代码的所述部分的所述摘要匹配。
9.根据概念1所述的装置,其进一步包含经配置以存储所述授权代码的信息的安全存储装置,且存储在所述安全存储装置中的所述授权代码的信息包括所述授权代码的副本、所述授权代码的摘要、所述授权代码的签名和所述授权代码的消息认证代码(MAC)中的至少一者。
10.根据概念1所述的装置,其中所述逻辑经配置以使所述处理器分别将多个请求发射到多个客户端装置,各请求包括对相应客户端装置的相应代码的性质的相应质询;接收对特定请求的特定响应,所述特定响应包含特定客户端装置的标识符和与所述特定客户端装置的特定代码的性质相关联的信息,所述信息基于存储在所述特定客户端装置内的所述特定代码通过所述客户端装置产生;基于与存储在安全存储装置中的所述标识符相关联的特定授权代码的信息来验证所述特定响应的正确性;和基于验证所述响应的正确性,确定存储在所述特定客户端装置内的所述特定代码为所述特定授权代码。
11.一种装置包含耦合到处理器且存储逻辑的一或多个存储媒体,所述逻辑经配置以在被所述处理器执行时使所述处理器:从主机装置接收请求,所述请求包含对存储在所述客户端装置内的代码的性质的质询;基于所述代码产生所述代码的所述性质;及将包含与所述代码的所述产生的性质相关联的信息的响应发射到所述主机装置。
12.根据概念11所述的装置,其进一步包含安全模块。
13.根据概念12所述的装置,其中所述代码的所述性质包含所述代码的摘要,所述安全模块经配置以基于所述代码的所述产生的摘要和存储在所述安全模块中的加密密钥计算所述代码的签名,且所述响应包含所述代码的所述经计算签名。
14.根据概念12所述的装置,其中所述请求包含对应于所述代码的授权代码的签名,所述安全模块经配置以:基于所述代码的所述产生的摘要和存储在所述安全模块中的加密密钥计算所述签名;及使用在所述接收到的请求中的所述授权代码的所述签名来确认所述代码的所述经计算签名,且所述响应包含所述确认的结果。
15.根据概念14所述的装置,其中所述安全模块经配置以响应于所述确认启用所述客户端装置。
16.根据概念12所述的装置,其中所述代码的所述性质为所述代码的消息认证代码(MAC),且所述安全模块经配置以基于存储在所述客户端装置内的所述代码和存储在所述安全模块中的共享机密密钥产生所述代码的所述MAC。
17.根据概念12所述的装置,其中所述安全模块经配置以使用存储在所述安全模块中的共享机密密钥产生所述代码的摘要的MAC。
18.根据概念11所述的装置,其中所述逻辑经配置以使所述处理器确定所述接收到的请求包含临时数;且用所述临时数散列所述代码的所述产生的性质,且所述响应包含所述代码的所述经散列性质。
19.根据概念11所述的装置,其中所述逻辑经配置以使所述处理器:确定所述接收到的质询包含存储器地址范围;选择具有所述存储器地址范围的存储在所述客户端装置内的所述代码的部分;且产生所述代码的所述被选择部分的所述性质,且所述响应包含所述代码的所述被选择部分的所述产生的性质。
20.根据概念11所述的装置,其中所述逻辑经配置以使所述处理器将所述客户端装置的标识符包含在所述响应中。
21.一种非暂时性计算机可读存储媒体,其耦合到一或多个处理器且上面存储有指令,所述指令在被所述一或多个处理器执行时使所述一或多个处理器执行操作,所述操作包含:通过主机装置发射请求到客户端装置,所述请求包含对存储在所述客户端装置内的代码的性质的质询;通过所述主机装置接收对所述请求的响应,所述响应包含与所述代码的所述性质相关联的信息,所述信息基于所述代码通过所述客户端装置产生;通过所述主机装置基于接收到的信息验证所述响应的正确性;和基于所述响应的正确性的所述验证,通过所述主机装置确定所述代码是授权代码。
22.根据概念21所述的计算机可读存储媒体,其中所述质询是针对所述代码的摘要,所述响应包含所述代码的所述摘要,所述代码的所述摘要通过所述客户端装置产生,且所述响应的所述正确性的所述验证包含:基于存储在安全存储装置中的所述授权代码的信息获得所述授权代码的性质,所述授权代码的所述性质包含所述授权代码的摘要和所述授权代码的签名中的一者;和基于所述授权代码的所述获得的性质验证所述接收到的响应中的所述摘要。
23.根据概念21所述的计算机可读存储媒体,其中所述质询是针对所述代码的摘要和所述代码的签名中的一者,所述响应包含所述代码的所述签名,所述代码的所述签名通过所述客户端装置产生,且所述响应的所述正确性的所述验证包含:基于存储在安全存储装置中的所述授权代码的信息获得所述授权代码的签名;和基于所述授权代码的所述获得的签名来确认包含在所述响应中的所述签名。
24.根据概念23所述的计算机可读存储媒体,其中所述客户端装置基于存储在所述客户端装置内的所述代码的所述摘要和存储在所述客户端装置内的私有密钥产生所述代码的所述签名,且其中获得所述授权代码的所述签名包含使用所述授权代码的摘要和存储在所述安全存储装置中且对应于所述私有密钥的加密密钥来计算所述授权代码的所述签名。
25.根据概念21所述的计算机可读存储媒体,其中所述请求包含所述授权代码的签名,且验证所述响应的正确性包含:基于所述接收到的信息确定所述客户端装置使用所述请求中的所述签名确认所述代码的所述产生的摘要。
26.根据概念21所述的计算机可读存储媒体,其中所述质询是针对所述代码的消息认证代码(MAC),所述响应包含所述代码的所述MAC,所述代码的所述MAC基于存储在所述客户端装置内的所述代码和存储在所述客户端装置内的共享机密密钥通过所述客户端装置产生,且验证所述响应的正确性包含:基于存储在安全存储装置中的所述授权代码和存储在所述安全存储装置中的所述共享机密密钥计算所述授权代码的MAC;和基于所述授权代码的所述经计算MAC确认所述响应中的所述代码的所述MAC。
27.根据概念21所述的计算机可读存储媒体,其中所述操作进一步包含产生临时数,所述请求包含所述临时数和所述质询,且验证所述响应的正确性包含:确定所述接收到的信息包含与所述临时数相关联的信息。
28.根据概念21所述的计算机可读存储媒体,其中所述操作进一步包含选择所述授权代码的多个存储器地址范围;针对所述多个存储器地址范围中的各者确定所述授权代码的相应部分;计算各确定部分的相应摘要;将所述授权代码的所述部分的所述相应摘要和所述相应存储器地址范围存储在安全存储装置中;和使所述相应存储器地址范围与所述安全存储装置中所述部分的所述相应摘要相关联。
29.根据概念28所述的计算机可读存储媒体,其中所述质询包含所述存储器地址范围中的特定存储器地址范围,其中所述响应包含基于包含在所述质询中的所述特定存储器地址范围通过所述客户端装置产生的所述代码的特定部分的摘要,且其中所述响应的所述正确性的所述验证包含确定通过所述客户端装置产生的所述代码的所述特定部分的所述摘要与对应于所述特定存储器地址范围的所述授权代码的所述部分的所述摘要匹配。
30.根据概念21所述的计算机可读存储媒体,其中所述客户端装置的所述代码包含以下各者中的一者:引导代码,其经配置以在被执行时使所述客户端装置执行引导操作;及操作代码,其经配置以在被执行时使所述客户端装置执行对应于所述操作代码的操作。
31.根据概念21所述的计算机可读存储媒体,其中所述主机装置包含经配置以存储所述授权代码的信息的安全存储装置,且存储在所述安全存储装置中的所述授权代码的所述信息包括所述授权代码的副本、所述授权代码的摘要、所述授权代码的签名和所述授权代码的消息认证代码(MAC)中的至少一者。
32.根据概念21所述的计算机可读存储媒体,其中所述响应包含基于通过所述客户端装置产生的所述摘要和存储在所述客户端装置内的共享机密密钥通过所述客户端装置产生所述代码的摘要的MAC,且验证所述响应的正确性包含:基于存储在安全存储装置中的所述授权代码和存储在所述安全存储装置中的所述共享机密密钥计算所述授权代码的摘要的MAC;和基于所述授权代码的所述摘要的所述经计算MAC确认所述响应中的所述代码的所述摘要的所述MAC。
应注意,以上实例概念为了说明的目的而呈现,且本技术不限于这些实例概念。
本说明书中描述的本发明主题的特定实施例可经实施以实现下列优点中的一或多者。通过使用可信或安全主机装置来对客户端装置执行受控安全代码认证,主机/客户端网络的安全性可通过主机装置的安全性得以改善。由于主机装置可具有大于客户端装置的安全能力,例如,主机装置可具有在客户端装置上不可用的安全存储装置、高计算能力和随机数产生器,所以客户端装置上的操作的安全性可得以增大且欺骗性操作可被避免或最小化。主机控制安全代码认证可确保,存储在客户端装置中的客户端代码是(例如)如OEM所想要的认证代码,且恶意软件无法在客户端装置上运行。而且,由于主机装置执行认证,所以和自身执行本地认证的客户端装置比较,主机装置可具有更快速处理器来改善认证速度。可使得客户端装置具有低安全能力(例如,不具有抵抗攻击的安全存储装置和/或不具有高性能逻辑),因此可具有低成本。主机装置可存储客户端装置的整个代码图像,其可通过浓缩主机装置中的联网且消除对客户端装置中的额外存储器的需要而简化对客户端装置的代码更新,这是因为如果更新失败,那么代码可被恢复。凭借主机控制安全代码认证,即使客户端装置提供弱的保护,用户也可信任客户端装置。例如,即使整个存储器已知或能够被攻击者修改,仍可确保代码的完整性。在另一实例中,即使无法适当地保护客户端装置的引导代码,仍可实施客户端装置的安全引导。主机装置可用来对若干客户端装置执行安全代码认证,这可为非常有效的。如果客户端装置是经复制装置,那么主机装置可仅用代码的单个图像来管理或认证其代码。受控安全代码认证可应用在不同环境中,例如,应用在汽车系统、家庭网络或医疗装置系统中。
本说明书中描述的本发明主题的实施例和功能操作可以以下各者实施:数字电子电路、有形体现的计算机软件或固件、计算机硬件(包含本说明书中揭示的结构和其结构等同物),或其一或多者的组合。本说明书中描述的本发明主题的实施例可实施为一或多个计算机程序,即,在有形非暂时性程序载体上编码以供数据处理设备执行或控制所述设备的操作的计算机程序指令的一或多个模块。或者或另外,程序指令可在人造传播信号(例如,机器产生电、光或电磁信号)上编码,产生所述信号以编码信息以供发射到适当接收器设备从而供数据处理设备执行。计算机存储媒体可为机器可读存储装置、机器可读存储衬底、随机或串行存取存储器装置或其一或多者的组合。
本说明书中描述的过程和逻辑流程可通过执行一或多个计算机程序的一或多个可编程计算机执行以通过对输入数据进行运算及产生输出来执行功能。过程和逻辑流程也可通过专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,且设备也可实施为专用逻辑电路。
例如,适用于执行计算机程序的计算机包含、可基于通用或专用微处理器或两者,或任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行(perform、execute)指令的中央处理单元和用于存储指令和数据的一或多个存储器装置。通常,计算机也可包含用于存储数据的一或多个大容量存储器(例如,磁盘、磁光盘或光盘),或以操作方式耦合以从所述大容量存储器接收数据或传送数据到所述大容量存储器,或既从所述大容量存储器接收数据也传送数据到所述大容量存储器。然而,计算机不需要具有此类装置。而且,计算机可嵌入另一装置中,例如,嵌入于移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置(例如,通用串行总线(USB)闪存驱动器)(这里仅列举一些)中。
适用于存储计算机程序指令和数据的计算机可读媒体包含所有形式的非易失性存储器、媒体或存储器装置,例如包含半导体存储器装置,例如,EPROM、EEPROM和闪存存储器装置;磁盘,例如,内部硬盘或可抽换式磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可通过专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书含有许多特定实施方案细节,但是这些不应被解译为对本发明的范围或者可主张的保护内容的限制,而应当解译为对于本发明的特定实施例可为特定的特征的描述。在本说明书中的在分离的实施例情形下描述的某些特征也可以在单个实施例中组合地实施。相反地,在单个实施例的情形下描述的各种特征也可以单独地或者以任何合适的子组合在多个实施例中实施。而且,虽然上文中特征可被描述成以某些组合起作用并且甚至最初如此主张,但是来自所主张的组合的一或多个特征在一些情况下可以从组合中删除,并且所主张组合可针对子组合或子组合的变形。
类似地,虽然在附图中以特定的次序描绘操作,但这不应当被理解为要求此类操作以所示出的特定次序或以连续次序来执行,或者所有所说明的操作被执行,以实现所要结果。在某些情形下,多任务和并行处理可为有利的。而且,上文描述的实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要此分离,且应理解,所描述的程序组件和系统通常可一起集成在单个软件产品中或封装到多个软件产品中。
因此,已经描述了本发明主题的特定实施例。其它实施例在以下权利要求书的范围内。在一些情况下,在权利要求中叙述的动作可以不同顺序执行但仍然实现所要结果。另外,在附图中描绘的过程不必要求所示的特定次序或连续次序来获得所要结果。在某些实施方案中,多任务和并行处理可为有利的。

Claims (23)

1.一种上面存储有指令的非暂时性计算机可读存储媒体,所述指令在被一或多个处理器执行时使所述一或多个处理器执行操作,所述操作包括:
从主机装置发射请求到客户端装置,所述请求包含对存储在所述客户端装置内的代码的性质的质询,其中所述主机装置经配置以控制存储在所述客户端装置内的所述代码的安全认证;
在所述主机装置处接收对所述请求的响应,所述响应包括与所述代码的所述性质相关联的信息但并不包括存储在所述客户端装置内的所述代码的副本;
通过所述主机装置基于所述接收到的信息以及存储在与所述主机装置相关联的安全存储装置中的授权代码的信息验证所述响应的正确性;及
通过所述主机装置并基于所述响应的所述正确性的所述验证,确定存储在所述客户端装置内的所述代码是所述授权代码。
2.根据权利要求1所述的计算机可读存储媒体,其中所述质询是针对所述代码的摘要,
其中所述响应包含所述代码的所述摘要,所述代码的所述摘要通过所述客户端装置产生,且
其中所述响应的所述正确性的所述验证包括:
基于存储在安全存储装置中的所述授权代码的信息获得所述授权代码的性质,所述授权代码的所述性质包含所述授权代码的摘要和所述授权代码的签名中的一者;及
基于所述授权代码的所述获得的性质确认所述接收到的响应中的所述摘要。
3.根据权利要求1所述的计算机可读存储媒体,其中所述质询是针对所述代码的摘要和所述代码的签名中的一者,
其中所述响应包含所述代码的所述签名,所述代码的所述签名通过所述客户端装置产生,且
其中所述响应的所述正确性的所述验证包括:
基于存储在安全存储装置中的所述授权代码的信息获得所述授权代码的签名;及
基于所述授权代码的所述获得的签名确认包含在所述响应中的所述签名。
4.根据权利要求3所述的计算机可读存储媒体,其中所述客户端装置基于存储在所述客户端装置内的所述代码的所述摘要和存储在所述客户端装置内的私有密钥产生所述代码的所述签名,且
其中所述获得所述授权代码的所述签名包括:
使用所述授权代码的摘要和存储在所述安全存储装置中且对应于所述私有密钥的加密密钥来计算所述授权代码的所述签名。
5.根据权利要求1所述的计算机可读存储媒体,其中所述请求包含所述授权代码的签名,且其中所述验证所述响应的正确性包括:
基于所述接收到的信息确定所述客户端装置使用所述请求中的所述签名确认所述代码的产生的摘要。
6.根据权利要求1所述的计算机可读存储媒体,其中所述质询是针对所述代码的消息认证代码MAC,
其中所述响应包含所述代码的所述MAC,所述代码的所述MAC基于存储在所述客户端装置内的所述代码和存储在所述客户端装置内的共享机密密钥通过所述客户端装置产生,且
其中所述验证所述响应的正确性包括:
基于存储在安全存储装置中的所述授权代码和存储在所述安全存储装置中的所述共享机密密钥计算所述授权代码的MAC;及
基于所述授权代码的所述经计算MAC确认所述响应中的所述代码的所述MAC。
7.根据权利要求1所述的计算机可读存储媒体,其中所述操作进一步包括产生临时数,
其中所述请求包含所述临时数和所述质询,且
其中所述验证所述响应的正确性包括:
确定所述接收到的信息包含与所述临时数相关联的信息。
8.根据权利要求1所述的计算机可读存储媒体,其中所述操作进一步包括
选择所述授权代码的多个存储器地址范围;
针对所述多个存储器地址范围中的各者确定所述授权代码的相应部分;
计算各确定部分的相应摘要;
将所述授权代码的所述部分的所述相应摘要和所述相应存储器地址范围存储在安全存储装置中;及
使所述相应存储器地址范围与所述安全存储装置中的所述部分的所述相应摘要相关联。
9.根据权利要求8所述的计算机可读存储媒体,其中所述质询包含指示所述存储器地址范围中的特定存储器地址范围的数据,
其中所述响应包含基于包含在所述质询中的所述特定存储器地址范围通过所述客户端装置产生的所述代码的特定部分的摘要,且
其中所述响应的所述正确性的所述验证包括:
确定通过所述客户端装置产生的所述代码的所述特定部分的所述摘要与对应于所述特定存储器地址范围的所述授权代码的所述部分的所述摘要匹配。
10.根据权利要求1所述的计算机可读存储媒体,其中所述客户端装置的所述代码包含以下各者中的一者:
引导代码,其经配置以在被执行时使所述客户端装置执行引导操作,及
操作代码,其经配置以在被执行时使所述客户端装置执行对应于所述操作代码的操作。
11.根据权利要求1所述的计算机可读存储媒体,其中所述主机装置包括经配置以存储所述授权代码的所述信息的所述安全存储装置,且
其中存储在所述安全存储装置中的所述授权代码的所述信息包括所述授权代码的副本、所述授权代码的摘要、所述授权代码的签名和所述授权代码的消息认证代码MAC中的至少一者。
12.根据权利要求1所述的计算机可读存储媒体,其中所述响应包含基于通过所述客户端装置产生的摘要和存储在所述客户端装置内的共享机密密钥通过所述客户端装置产生的所述代码的摘要的MAC,且
其中所述验证所述响应的正确性包括:
基于存储在安全存储装置中的所述授权代码和存储在所述安全存储装置中的所述共享机密密钥计算所述授权代码的摘要的MAC;及
基于所述授权代码的所述摘要的所述经计算MAC确认所述响应中的所述代码的所述摘要的所述MAC。
13.一种主机装置控制器,其包括:
处理器;和
一或多个存储媒体,其耦合到所述处理器且存储逻辑,所述逻辑经配置以在通过所述处理器执行时使所述处理器:
发射请求到客户端装置,所述请求包含对存储在所述客户端装置内的代码的性质的质询,其中所述主机装置经配置以控制存储在所述客户端装置内的所述代码的安全认证;
接收对所述请求的响应,所述响应包括与所述代码的所述性质相关联的信息但并不包括存储在所述客户端装置内的所述代码的副本;
基于所述接收到的信息以及存储在与所述主机装置控制器相关联的安全存储装置中的授权代码的信息验证所述响应的正确性;及
基于所述响应的所述正确性的所述验证,确定存储在所述客户端装置内的所述代码是所述授权代码。
14.根据权利要求13所述的主机装置控制器,其中所述质询是针对所述代码的摘要,
其中所述响应包含所述代码的所述摘要,所述代码的所述摘要通过所述客户端装置产生,且
其中所述响应的所述正确性的所述验证包括:
基于存储在安全存储装置中的所述授权代码的信息获得所述授权代码的性质,所述授权代码的所述性质包含所述授权代码的摘要和所述授权代码的签名中的一者;及
基于所述授权代码的所述获得的性质确认所述接收到的响应中的所述摘要。
15.根据权利要求13所述的主机装置控制器,其中所述质询是针对所述代码的摘要和所述代码的签名中的一者,
其中所述响应包含所述代码的所述签名,所述代码的所述签名通过所述客户端装置产生,且
其中所述响应的所述正确性的所述验证包括:
基于存储在安全存储装置中的所述授权代码的信息获得所述授权代码的签名;及
基于所述授权代码的所述获得的签名确认包含在所述响应中的所述签名。
16.根据权利要求13所述的主机装置控制器,其中所述请求包含所述授权代码的签名,且其中所述响应的所述正确性的所述验证包括:
基于所述接收到的信息确定所述客户端装置使用所述请求中的所述签名确认所述代码的产生的摘要。
17.根据权利要求13所述的主机装置控制器,其中所述质询是针对所述代码的消息认证代码MAC,
其中所述响应包含基于存储在所述客户端装置内的所述代码和存储在所述客户端装置内的共享机密密钥通过所述客户端装置产生的所述代码的所述MAC,且其中所述响应的所述正确性的所述验证包括:
基于存储在安全存储装置中的所述授权代码和存储在所述安全存储装置中的所述共享机密密钥计算所述授权代码的MAC;及
基于所述授权代码的所述经计算MAC确认所述响应中的所述代码的所述MAC。
18.根据权利要求13所述的主机装置控制器,其中所述逻辑经配置以使所述处理器产生临时数,
其中所述请求包含所述临时数和所述质询,且
其中所述响应的所述正确性的所述验证包括:
确定所述接收到的信息包含与所述临时数相关联的信息。
19.根据权利要求13所述的主机装置控制器,其中所述逻辑经配置以使所述处理器:选择所述授权代码的多个存储器地址范围;
针对所述多个存储器地址范围中的各者确定所述授权代码的相应部分;
计算各确定部分的相应摘要;
将所述授权代码的所述部分的所述相应摘要和所述相应存储器地址范围存储在安全存储装置中;及
使所述相应存储器地址范围与所述安全存储装置中的所述部分的所述相应摘要相关联。
20.根据权利要求19所述的主机装置控制器,其中所述质询包含指示所述存储器地址范围中的特定存储器地址范围的数据,
其中所述响应包含基于包含在所述质询中的所述特定存储器地址范围通过所述客户端装置产生的所述代码的特定部分的摘要,且
其中所述响应的所述正确性的所述验证包括:
确定通过所述客户端装置产生的所述代码的所述特定部分的所述摘要与具有所述特定存储器地址范围的所述授权代码的所述部分的所述摘要匹配。
21.根据权利要求13所述的主机装置控制器,其进一步包括经配置以存储所述授权代码的所述信息的所述安全存储装置,
其中存储在所述安全存储装置中的所述授权代码的所述信息包括所述授权代码的副本、所述授权代码的摘要、所述授权代码的签名和所述授权代码的消息认证代码MAC中的至少一者。
22.根据权利要求13所述的主机装置控制器,其中所述逻辑经配置以使所述处理器:
分别发射多个请求到多个客户端装置,各请求包括对相应客户端装置的相应代码的性质的相应质询;
接收对特定请求的特定响应,所述特定响应包括特定客户端装置的标识符和与所述特定客户端装置的特定代码的性质相关联的信息,所述信息基于存储在所述特定客户端装置内的所述特定代码通过所述客户端装置产生;
基于与存储在安全存储装置中的所述标识符相关联的特定授权代码的信息验证所述特定响应的正确性;及
基于验证所述响应的正确性,确定存储在所述特定客户端装置内的所述特定代码是所述特定授权代码。
23.一种验证代码的方法,其包括:
通过主机装置发射请求到客户端装置,所述请求包含对存储在所述客户端装置内的代码的性质的质询,其中所述主机装置经配置以控制存储在所述客户端装置内的所述代码的安全认证;
通过所述主机装置接收对所述请求的响应,所述响应包括与所述代码的所述性质相关联的信息但并不包括存储在所述客户端装置内的所述代码的副本;
通过所述主机装置基于所述接收到的信息以及存储在与所述主机装置相关联的安全存储装置中的授权代码的信息验证所述响应的正确性;及
基于所述响应的所述正确性的所述验证,通过所述主机装置确定存储在所述客户端装置内的所述代码是所述授权代码。
CN201710084663.XA 2016-02-16 2017-02-16 受控安全代码认证 Active CN107086981B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN107086981A CN107086981A (zh) 2017-08-22
CN107086981B true CN107086981B (zh) 2021-07-09

Family

ID=59410610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710084663.XA Active CN107086981B (zh) 2016-02-16 2017-02-16 受控安全代码认证

Country Status (4)

Country Link
US (1) US10482255B2 (zh)
CN (1) CN107086981B (zh)
DE (1) DE102017202424A1 (zh)
TW (1) TW201735578A (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10558586B1 (en) * 2016-06-27 2020-02-11 Amazon Technologies, Inc. Shippable storage device for executing applications and securely storing data
EP3750272A4 (en) * 2018-02-06 2021-12-15 Nb Research Llc SYSTEM AND PROCEDURE FOR SECURING A RESOURCE
US10409585B2 (en) * 2018-02-14 2019-09-10 Micron Technology, Inc. Over-the-air (OTA) update for firmware of a vehicle component
US11018871B2 (en) * 2018-03-30 2021-05-25 Intel Corporation Key protection for computing platform
US11003537B2 (en) 2018-05-29 2021-05-11 Micron Technology, Inc. Determining validity of data read from memory by a controller
US10841284B2 (en) * 2018-05-30 2020-11-17 Lear Corporation Vehicle communication network and method
US11068598B2 (en) * 2018-11-01 2021-07-20 Dell Products L.P. Chassis internal device security
CN112347481B (zh) * 2019-08-06 2024-04-23 华为技术有限公司 安全启动方法、控制器和控制系统
JP2022549671A (ja) * 2019-09-25 2022-11-28 コモンウェルス サイエンティフィック アンド インダストリアル リサーチ オーガナイゼーション ブラウザアプリケーション用の暗号化サービス
US11956369B2 (en) 2020-08-13 2024-04-09 Robert Bosch Gmbh Accelerated verification of automotive software in vehicles

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072105A (zh) * 2007-05-21 2007-11-14 腾讯科技(深圳)有限公司 一种网络身份认证的方法和系统
CN101227481A (zh) * 2008-02-02 2008-07-23 中兴通讯股份有限公司 一种基于dhcp协议的ip接入的方法及其装置
CN101350719A (zh) * 2007-07-18 2009-01-21 康佳集团股份有限公司 新型的身份认证方法
CN101455053A (zh) * 2006-03-28 2009-06-10 诺基亚公司 对应用进行认证
CN101616137A (zh) * 2008-06-26 2009-12-30 中兴通讯股份有限公司 主机安全接入方法、隔离方法及安全接入和隔离的系统
CN102105920A (zh) * 2008-07-29 2011-06-22 摩托罗拉移动公司 用于确保通信会话的方法和系统
US8739148B2 (en) * 2007-02-09 2014-05-27 Elster Electricity, Llc Automated meter reading system

Family Cites Families (85)

* 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
EP1104960B1 (en) 1999-12-02 2009-08-26 Sony Deutschland GmbH Message authentication
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
US7142674B2 (en) 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
KR20050084877A (ko) 2002-10-31 2005-08-29 텔레폰악티에볼라겟엘엠에릭슨(펍) 장치 특정 보안 데이터의 안전한 실시 및 이용
US7565533B2 (en) * 2002-11-05 2009-07-21 Sun Microsystems, Inc. Systems and methods for providing object integrity and dynamic permission grants
US7165181B2 (en) 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US20040101141A1 (en) 2002-11-27 2004-05-27 Jukka Alve System and method for securely installing a cryptographic system on a secure device
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
DE60320649D1 (de) * 2003-08-15 2008-06-12 Sgs Thomson Microelectronics Datenspeicher mit beschränktem Zugang
CN1868229B (zh) 2003-10-16 2010-10-06 松下电器产业株式会社 用于对存储在记录载体上的数据进行条件存取的记录载体、系统、方法和程序
CN101375284B (zh) 2004-10-25 2012-02-22 安全第一公司 安全数据分析方法和系统
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
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
CA2615413A1 (en) 2005-07-15 2007-01-25 Revolution Money Inc. System and method for new execution and management of financial and data transactions
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 富士通株式会社 暗号化方法,暗号復号化方法,暗号化装置,暗号復号化装置,送受信システムおよび通信システム
EP2287993B1 (en) 2005-10-14 2018-03-28 BlackBerry Limited Communicating method for smart battery system
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 国际商业机器公司 计算平台的证明
US8023646B2 (en) 2006-11-08 2011-09-20 Voltage Security, Inc. Identity-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 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、および、画像形成プログラム
US8633801B2 (en) 2008-04-09 2014-01-21 Panasonic Corporation Battery authentication system, electronic device, battery, and battery charger
US8607034B2 (en) * 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode
CN102057618A (zh) 2008-06-23 2011-05-11 松下电器产业株式会社 信息处理装置、加密密钥的管理方法、计算机程序及集成电路
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
EP2526504A1 (en) 2010-01-22 2012-11-28 InterDigital Patent Holdings, Inc. Method and apparatus for trusted federated identity management and data access authorization
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
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
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
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
US9735967B2 (en) * 2014-04-30 2017-08-15 International Business Machines Corporation Self-validating request message structure and operation
US20150339195A1 (en) * 2014-05-23 2015-11-26 Sandisk Technologies Inc. Method and system for secure system recovery
EP3195663B1 (en) 2014-09-19 2021-05-05 Samsung Electronics Co., Ltd. Communication method and apparatus in wireless communication system supporting d2d communication
US9742762B2 (en) * 2014-12-01 2017-08-22 Microsoft Technology Licensing, Llc Utilizing a trusted platform module (TPM) of a host device
US10084873B2 (en) * 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101455053A (zh) * 2006-03-28 2009-06-10 诺基亚公司 对应用进行认证
US8739148B2 (en) * 2007-02-09 2014-05-27 Elster Electricity, Llc Automated meter reading system
CN101072105A (zh) * 2007-05-21 2007-11-14 腾讯科技(深圳)有限公司 一种网络身份认证的方法和系统
CN101350719A (zh) * 2007-07-18 2009-01-21 康佳集团股份有限公司 新型的身份认证方法
CN101227481A (zh) * 2008-02-02 2008-07-23 中兴通讯股份有限公司 一种基于dhcp协议的ip接入的方法及其装置
CN101616137A (zh) * 2008-06-26 2009-12-30 中兴通讯股份有限公司 主机安全接入方法、隔离方法及安全接入和隔离的系统
CN102105920A (zh) * 2008-07-29 2011-06-22 摩托罗拉移动公司 用于确保通信会话的方法和系统

Also Published As

Publication number Publication date
CN107086981A (zh) 2017-08-22
TW201735578A (zh) 2017-10-01
US10482255B2 (en) 2019-11-19
DE102017202424A1 (de) 2017-08-17
US20170235956A1 (en) 2017-08-17

Similar Documents

Publication Publication Date Title
CN107086981B (zh) 受控安全代码认证
CN107085675B (zh) 受控安全代码验证
US11876791B2 (en) Message authentication with secure code verification
CN109714168B (zh) 可信远程证明方法、装置和系统
JP5703391B2 (ja) 耐タンパー性ブート処理のためのシステム及び方法
KR100843081B1 (ko) 보안 제공 시스템 및 방법
US10348706B2 (en) Assuring external accessibility for devices on a network
US20080077592A1 (en) method and apparatus for device authentication
JP6371919B2 (ja) セキュアなソフトウェアの認証と検証
US11601268B2 (en) Device attestation including attestation-key modification following boot event
WO2014026518A1 (zh) 软件密钥更新方法和装置
CN109981562B (zh) 一种软件开发工具包授权方法及装置
US11184336B2 (en) Public key pinning for private networks
CN110650478B (zh) Ota方法、系统、设备、se模块、程序服务器和介质
CN110838919B (zh) 通信方法、存储方法、运算方法及装置
CN109361681A (zh) 国密证书认证方法、装置及设备
JP2022534677A (ja) ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護
CN110771087B (zh) 私钥更新
WO2023236720A1 (zh) 设备认证和校验的方法、装置、设备和存储介质
AU2017412654B2 (en) Assuring external accessibility for devices on a network
EP4089955A1 (en) Quantum safe method for authentication of a service provider device to a user device
CN116232716A (zh) 一种基于puf的物联网ota升级方法及存储介质
CN117728976A (zh) 数据传输方法、装置、设备及存储介质
Kou et al. An efficient Authentication Scheme Using Token Distribution for Cloud-based Smart Home

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