CN112042151B - 使用单调计数器的机密密钥的安全分发 - Google Patents
使用单调计数器的机密密钥的安全分发 Download PDFInfo
- Publication number
- CN112042151B CN112042151B CN201980028751.5A CN201980028751A CN112042151B CN 112042151 B CN112042151 B CN 112042151B CN 201980028751 A CN201980028751 A CN 201980028751A CN 112042151 B CN112042151 B CN 112042151B
- Authority
- CN
- China
- Prior art keywords
- key
- value
- initial value
- counter
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000009826 distribution Methods 0.000 title description 6
- 230000015654 memory Effects 0.000 claims abstract description 71
- 238000004891 communication Methods 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims description 39
- 230000006870 function Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 14
- 239000004065 semiconductor Substances 0.000 claims description 3
- 238000013459 approach Methods 0.000 abstract description 4
- 238000003860 storage Methods 0.000 description 29
- 230000007246 mechanism Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000002347 injection Methods 0.000 description 10
- 239000007924 injection Substances 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 101000579425 Homo sapiens Proto-oncogene tyrosine-protein kinase receptor Ret Proteins 0.000 description 3
- 102100028286 Proto-oncogene tyrosine-protein kinase receptor Ret Human genes 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100108649 Schizosaccharomyces pombe (strain 972 / ATCC 24843) alp14 gene Proteins 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 1
- 101150102752 MTC2 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3278—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/38—Services specially adapted for particular environments, situations or purposes for collecting sensor information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
一种系统包含存储待被安全共享的密钥的非易失性存储器。所述系统的单调计数器提供计数器值输出,所述计数器值输出包含在初始化时的初始值及稍后从所述单调计数器读取的输出值。所述系统产生所述密钥,并将所述密钥存储在所述非易失性存储器中。所述系统初始化所述单调计数器以提供所述初始值,其中所述初始值与所述所存储密钥相关联;并将包含所述初始值的通信发送到另一计算装置。另一计算装置将稍后从所述单调计数器读取的所述输出值与所述初始值进行比较,以确定是否已发生对所述系统的篡改(例如,在所述初始化之后进行的不正确密钥存取尝试)。在一种方法中,可通过使用一或多个单调计数器来共享/使用一或多个机密密钥。
Description
相关申请案
本申请案主张2018年4月27日申请的序列号为15/965,731且标题为“使用单调计数器的机密密钥的安全分发(Secure Distribution of Secret Key Using a MonotonicCounter)”的美国专利申请案的申请日期的权益,所述申请案的全部揭示内容特此以引用的方式并入本文中。
技术领域
本文揭示的至少一些实施例大体上涉及安全性,并且更特定来说(但不限于)密钥的安全分发。
背景技术
在加密领域,对称密钥算法使用相同加密密钥进行加密及解密两者。通过两个密钥之间的转换,密钥可相同或相关。密钥是两个或更多个参与方之间的共享机密,其可用于安全通信。
对称密钥算法要求消息的发送者及接收者两者都具有相同机密密钥。早期加密系统要求参与方中的一者通过物理安全通道接收机密密钥的副本。
现代加密系统使用对称密钥算法来加密消息。对称密钥算法还用于提供例如认证服务、消息完整性服务、数据完整性服务,其全部基于与MAC(消息认证代码)算法结合使用机密密钥。MAC算法的实例包含HMAC-SHA256、PMAX、CMAC、MAA等)。在一些情况中,使用迪菲-赫尔曼(Diffie-Hellman)密钥交换或某种其它公共密钥协议来安全地对针对每一消息的崭新机密密钥达成一致。
当与用于密钥传送的非对称密码一起使用时,伪随机密钥产生器通常用以产生机密密钥的非对称传送所需的公钥及私钥。然而,所述产生器缺乏随机性可能导致问题(例如,安全漏洞)。通常,期望实施方案将高熵源用于其初始化。
附图说明
在附图的图式中通过实例而非限制的方式说明实施例,其中相似参考指示类似元件。
图1展示根据一个实施例的系统,其发送由所述系统的单调计数器提供的初始值用于确定是否已发生对系统的篡改。
图2展示根据一个实施例的使用PUF装置来产生密钥的计算装置。在其它情况中,可将密钥直接注入如工厂的安全环境中。
图3展示根据一个实施例的基于来自一或多个单调计数器的初始值及后续值的比较来确定篡改是否已发生的方法。
图4展示根据一个实施例的通过通信接口与服务器通信的存储一或多个密钥的系统。
图5展示根据一个实施例的存储用于与存储装置及/或系统存储器通信的机密密钥的控制器。
具体实施方式
期望降低具有加密能力的装置的生产成本。举例来说,期望简化生产流程,并同时维持装置的相同水平的安全性能。
对于装置/板制造商来说昂贵的生产步骤中的一者是密钥注入步骤。举例来说,密钥注入涉及为每一裸片或其它装置编程唯一且机密密钥。期望在安全环境(例如,安全生产设施)中完成密钥注入,以避免将一或多个密钥泄漏给未授权人或装置。
此外,接收其中注入密钥的系统的终端用户希望在密钥在生产期间已注入之后黑客无法进行读取存取以获得密钥(例如,终端用户希望防止密钥入侵)。有时,终端用户要求以上程序由第三方基础设施证实/执行。然而,使用第三方基础设施是昂贵的。
下面的各个实施例提供解决以上技术问题的途径。在许多情况中,所使用的电路系统已经存在于装置上(例如,如用于装置的其它处理那样)。此外,不需要第三方基础设施。另外,各个实施例可向终端用户提供额外特征,其对于实施现场机制以用于保护信息并在由终端用户接收之后监测装置或板的使用是有用的。
本文揭示的至少一些实施例涉及一种使用机密密钥与其它装置进行安全通信的系统。机密密钥经产生并存储在系统上(例如,通过在系统板的初始组装之后在工厂处的密钥注入)。系统的单调计数器用于提供初始值。
在一个实施例中,通过电子通信将初始值发送到物理系统的预期接收者(例如,接收者将在物理系统在物理上运输到接收者的位置之后接收物理系统)。在接收系统后,接收者从单调计数器读取输出值。接收者(例如,使用较早接收的初始值的接收者的计算装置或服务器)比较初始值及输出值,以确定是否已发生对系统的篡改。在一个实例中,篡改是入侵者在系统的物理运输期间存取系统的机密密钥的未授权尝试。
在一个实施例中,可例如使用真实RNG(随机数产生器)或PUF来产生机密密钥,或者预先在如工厂的安全环境中将其注入系统(存储器)中。
在一个实施例中,所产生密钥与单调计数器的初始值相关联。初始值由系统的接收者使用以确定是否已进行存取所存储密钥的未授权尝试。在一个实施例中,密钥注入过程可使用来自物理不可克隆功能(PUF)的输出来为存储密钥的计算装置的每一个上电循环产生密钥。
本实施例的一个方面包含众多类型的计算装置所希望的安全性的实现,所述计算装置包含在物联网(IoT)及自主交通工具实施方案中使用的系统板及其它装置。典型计算平台存储一或多个机密密钥。平台还可进一步包含配备有含有运行时代码及永久代码(例如,固件)的易失性及/或非易失性存储器的一或多个组件。
在一个实施例中,期望平台的所有装置或组件具有确保辨识及修复未授权篡改(例如,存取系统上的机密密钥及/或破坏或改变代码的尝试)的机制。无法检测未授权存取及/或代码改变可导致危险或破坏性的未授权功能或组件中的一或多者的操作。下面的各个实施例通过使用由系统的单调计数器提供的值来确定篡改是否已发生来解决此问题。
在一个实施例中,将来自制造系统的单调计数器的一或多个初始值从发送者(例如,系统板的制造商)传达(例如,通过使用服务器的电子通信)到接收器(例如,终端用户的计算装置)。所发送的初始值是接收器在接收系统之后期望从单调计数器读取的值(例如,在系统板已被运送并由接收者接收之后在接收器的物理位置处读取)。
在接收之后,在接收器已使系统/装置上电之后接收器从单调计数器读取输出值。接收器通过从自单调计数器读取的输出值减去接收器的已知上电及密钥存取操作来调整期望初始值。将经调整初始值与读取输出值进行比较。如果存在匹配,那么认为系统是安全的(并且无篡改发生)。如果经调整初始值与输出值(针对每一相应单调计数器)不匹配,那么确定已发生篡改(例如,接受器未找到与由发送者传达的期望值的匹配,并且接受器认为系统/装置受到损害)。
图1展示根据一个实施例的系统302,其发送由单调计数器320提供的初始值用于确定是否已发生对系统302的篡改。举例来说,可确定在系统302的物理运输期间系统302是否已被寻求对所存储密钥的未授权存取的黑客所篡改。在一个实例中,系统302是包含非易失性存储器306、处理器304、单调计数器320及电力供应器318的系统板。
在处理器304的控制下产生一或多个密钥314。非易失性存储器306用以存储所产生密钥。非易失性存储器306是例如非易失性存储器装置(例如,3D交叉点存储装置)。
单调计数器320经初始化以提供初始值。此初始值与所存储密钥314相关联。初始值由处理器304经由外部接口312发送到另一计算装置。举例来说,初始值可被发送到系统302在制造及密钥注入完成之后将被运送到的接收器的服务器。
当系统302由接收器接收时,接收器的计算装置确定初始值。举例来说,计算装置可将在如上文描述那样发送时接收的初始值存储在存储器中。计算装置从单调计数器320读取输出值。将此输出值与初始值进行比较,以确定是否存在对系统302的篡改。
在一个实施例中,接收器的计算装置确定已发生的致使单调计数器302递增的事件的数目。举例来说,来自单调计数器302的输出值可经配置以在系统302的每一上电操作时递增(例如,如通过监测电力供应器318所检测)。来自单调计数器302的输出值可额外地及/或替代地经配置以在每次尝试执行所存储密钥314的读取存取时递增。
通过跟踪例如致使单调计数器递增的已知事件的数目,可基于已知事件的此数目来调整从发送者接收的初始值。然后,将调整初始值与从单调计数器302读取的输出值进行比较。如果值匹配,那么无篡改发生。如果值不匹配,那么计算装置确定已检测到篡改。
响应于确定已检测到篡改,可停用系统302的一或多个功能。在一个实施例中,处理器304从接收器的计算装置接收包含指示已检测到篡改的通信。响应于接收到通信,处理器304停用系统302的至少一个功能。在一个实例中,被停用的功能是对所存储密钥314的读取存取。
在一个实施例中,系统302可经配置使得从单调计数器320输出的计数器值不能超过预定最大值。举例来说,当从单调计数器320读取每一计数器值时,确定计数器值是否超过预定最大值。如果计数器值超过预定最大值,那么可永久地停用对所存储密钥314的读取存取(例如,在处理器304的控制下)。
在一个实施例中,系统302体现在半导体裸片上。在另一个实施例中,系统302形成在系统板上。应用程序存储在系统存储器310中并由处理器304执行。应用程序的执行在系统302的上电之后发生。举例来说,系统302的接收器可在确定未发生对系统的篡改之后执行应用程序。
在一个实施例中,使用来自一或多个物理不可克隆功能(PUF)的输出值来产生密钥314。举例来说,针对系统302的每一上电循环产生密钥。
在一个实施例中,系统302是存储密钥314的控制器。外部接口312用以将来自单调计数器320的初始值发送到与控制器位于同一系统板上的外部非易失性存储器装置(未展示)。外部非易失性存储器装置通过从单调计数器320读取输出值并将所述输出值与从系统302接收的初始值进行比较来确定是否已发生篡改。
在一个实施例中,系统存储器310包含易失性存储器308及/或非易失性存储器306。加密模块316用以使用密钥314(例如,对称密钥)执行加密操作以用于通过外部接口312进行安全通信。
现在在各种另外实施例中描述机密密钥共享。通过参与通信的行动者之间的密钥共享来建立安全通信信道。在受信任平台模块板中使用的组件通常没有足够处理能力来实施例如(举例来说)公钥加密的方案。
在一个实施例中,在装置/板制造商与OEM/最终客户之间共享一或多个机密密钥。此外,可根据需要在现场在同一板中的不同装置之间共享密钥。如上文论述,在安全装置内部使用一或多个单调计数器。
在一个实例中,在装置离开工厂或制造商测试线之前,将一或多个机密密钥注入装置内部(例如,如下的一或多个机密密钥:Secret_Keyk,其中k=1、…、N),这取决于装置能力及用户需求。
初始化一或多个单调计数器(N(N≥1)个不同MTC→MTCk=0),这取决于装置能力及用户需求。单调计数器(MTC)经配置以每当系统/装置的上电发生时及每当存储机密密钥待(试图)被读取时使输出值递增。
每一MTCk的值可为公开的并与客户共享(例如,作为MTCk)。命令序列(例如,由系统设计者任意确定)用以从装置读取密钥,并且命令序列可为公开的(例如,所述方法的强度不基于读取协议的保密性)。
在一个实施例中,不需要针对每一机密密钥使用专用MTC。这可能会因所使用的安全服务的类型而异。举例来说,一些密钥可被一起读取,并且它们仅需要单个MTC。
在一个实施例中,在系统到达接收器(例如,客户/用户)位置之后,执行若干操作。接收器的计算装置首先确定单调计数器320的初始值。举例来说,检索MTCk=(MTC0)k的值(例如,在装置离开工厂的时刻写入及发送的初始值)。MTCk值可针对每一MTC或相关联密钥不同。
接着,接收器客户/用户使系统302上电。第一个寻址操作是读取MTCk值。如果每一MTCk值都与预期(所接收)初始值匹配[例如,MTCk=(MTC0+1)k],那么确定所述装置在物理运送或其它传送期间未上电,并且系统302由终端用户/客户视为是真实的(并且未被篡改)。
如果一或多个值不匹配,那么篡改已发生。举例来说,未授权人员对装置加电并尝试读取所存储密钥。如果篡改已发生,那么丢弃装置并且将篡改的指示传达到发送者(例如,转运公司)以避免进一步技术安全问题。
在另一个实施例中,多个读取操作由系统302的接收器执行。举例来说,装置离开工厂并到达客户/OEM。客户读取一或多个密钥,并且相关MTCk递增一。如果递增的MTCj超过由硅工厂(发送者)预设的值(MTCj MAX),那么将永久停用密钥(Secret_Keyj)的读取。
在此实例中,MTCj MAX是发送者及客户针对每一MTC商定的预定最大值。此方法允许在可检查或执行MTC值的读取之后/之前的一或多次密钥读取尝试。举例来说,这允许发现任何未授权存取,并且同时还确保OEM/客户在停用之前有少许时间执行密钥的读取。
如果在读取过程期间,一或多个MTC具有意外值(例如,在调整已知读取及上电操作数目之后,初始值及读取值不匹配),那么丢弃所述装置。在一个实施例中,一旦所有密钥被读取,相关MTCk就被清除并且可被重新用于其它目的(例如,加密处理功能等,如由系统设计者所配置及期望的那样)。
在另一实例中,监测装置/板使用。此实例使用已存在于安全装置上(例如,存在以供加密模块316使用)的单调计数器。在装置离开硅工厂之前,在测试线上执行以下操作:初始化M(M≥1)个不同的MTC→MTCk=0。在装置每次上电时使此MTC计数器递增。每一计数器可初始化为零(或如果需要,可初始化为另一初始值)。
接收器终端用户可使用所接收MTCk值来获得有关系统302的各种信息,例如(举例来说):检测组件/板的未授权使用,确定组件已被拆焊并在板外使用以对其进行入侵,进行电力循环计数以实施基于客户服务、装置板保修政策及功率损耗的收费机制。
在一个实施例中,实施收费机制涉及将值与特定用途相关联。可将应用程序提供给客户,并且客户必须支付费用来解锁特定使用。
在一个实施例中,机密密钥在同一系统板上的不同装置之间共享(例如,当由终端用户使用时在现场共享)。通过在同一板上的组件之间(例如,处理器之间)交换来共享密钥。
在一个实施例中,一或多个单调计数器(MTCk)中的每一者通过将其初始值设置为零来初始化。在一个实例中,当设置MTCk=0时,MTCk是与由编号k指示的特定密钥相关联的计数器。MTCk=0指示计数器的初始值为零。每一k指示计数器编号中的一者,其对应于装置中存储的内部密钥的数目。每一计数器的值存储在装置的非易失性存储区域中。
在一个实施例中,检测装置的上电(有时还称为加电)。装置包含内部电路系统以测量电力供应器的值。当电力供应器超过某一阈值时,电路系统触发内部信号以指示上电事件的存在(检测)。此信号可致使单调计数器的递增。
在一个实施例中,检测到读取机密密钥的尝试。每次检测到电力时(如上文提及),并且进一步每次由装置接口辨识用以读取密钥的命令序列时,都使计数器(MTCk)递增。当完成装置的运送时知道初始MTCk值允许装置的最终接收器(例如,终端用户/客户)知道装置(及计数器)的状态。因此,如果在输送期间尝试使装置上电及/或读取装置,那么此在存储在每一MTCk中的计数器值中产生变化。
在一个实施例中,命令序列用以从装置读取密钥。举例来说,装置具有外部接口,其从其它计算组件或装置接受命令。密钥可用于读取直到达到最大计数器值。在一个实例中,装置在接口处具有序列:命令(例如,0×9b)+自变量(0×34)+签名。装置理解将读取密钥并在输出处提供密钥。
在一个实施例中,在装置的测试之后(例如,在初始工厂中),针对每一密钥的MTCk将从初始化起具有初始值。因此,举例来说,如果k=3,那么:MTC0=20d,MTC1=25d,MTC2=10。值MTC0、MTC1、MTC2作为一组初始值被发送/传输到客户。当装置由客户接收时,客户使用命令序列来读取值。然后,客户(例如,使用计算装置)确定装置在运送期间是否受损。在一个实例中,使用上文描述的命令序列来读取单调计数器值。
在一个实施例中,预设预定最大计数器值。举例来说,可基于客户程序来选择预设的最大值。举例来说,假设客户想要读取密钥10次。并且,假设MTCk仅在电力开启时递增,并且假设存在两个计数器,MTC0(仅与上电相关联)及MTC1(仅与密钥读取命令程序相关联)。在工厂测试之后,基于监测MTC0及MTC1值,发现:MTC0=30,MTC1=25。在一个实例中,内部阈值针对MTC0设置为40,且针对MTC1设置为35。
在一个实施例中,与密钥相关联的MTC随着上电及尝试读取密钥而递增。每当两个事件中的一者发生时,MTC递增。
在一个实施例中,在最终读取存储密钥之后清理单调计数器(并且任选地可重用于装置上的其它处理)。系统设计者可根据需要对此进行配置。举例来说,当不再需要MTC计数作为恶意事件的检测器的用途时,可进行最终读取。这将计数器释放为资源,其可用于其它用途,或计数器可保持计数。
在一个实施例中,单调计数器可用以获取各种类型的信息,例如组件被拆焊、实施收费机制、实施保修等。计数器可用以监测不同类型的发生,这是因为可外部地触发计数器值的递增。
在一个实施例中,提供多密钥读取选项。在一个实例中,针对MTC值(用于与密钥相关联的MTCk)的初始化,最大阈值经设置以允许由组件的接收器及/或最终用户读取每一密钥。多读取选项允许根据读取特定密钥的最大尝试数目(其可针对每一密钥不同)来改变阈值。
在一个实施例中,各种类型的装置可使用以上方法。举例来说,CPU或MCU通常具有外部存取无法存取的内部硬件安全模块。在一个实例中,需要具有存储在装置或组件中的相同密钥(例如,当使用对称密钥方法时)以便正确地操作。在此情况下,CPU/MCU受益于将密钥分发/共享给经授权实体、装置或组件。此共享允许读取密钥(例如,此共享对应于MTCk阈值中的值的编程)。
在一个实施例中,以上方法用于客户固件注入。举例来说,以上方法允许将关键内容存储在装置(例如,应用程序固件)内部,并在不安全环境中实施装置的移动(而不破坏固件/装置的完整性)。在一个实例中,针对固件注入,将运输期间MTCk计数器值的意外改变用作指示已发生固件损坏的索引。
图2展示根据一个实施例的使用PUF装置121来产生密钥125的计算装置103。在其它情况中,可将密钥直接注入如工厂的安全环境中。可针对单调计数器320中的一者初始化初始值,并且初始值可与密钥125相关联,如上文论述。主机101可经由通信信道与计算装置103通信。单调计数器320的初始值可被发送到主机101,如上文论述。
主机101可为具有一或多个中央处理单元(CPU)的计算机,例如计算装置103的计算机外围装置可经由例如计算机总线(例如,外围组件互连件(PCI)、扩展的PCI(PCI-X)、PCI快速(PCIe))、通信部分及/或计算机网络的互连件附接到所述一或多个中央处理单元。
举例来说,计算装置103可用以将主机101的数据存储在非易失性存储媒体109中(例如,单调计数器值可被存储)。存储器装置的实例通常包含硬盘驱动器(HDD)、固态驱动器(SSD)、闪存、动态随机存取存储器、磁带、网络附接存储器装置等。计算装置103具有使用通信信道实施与主机101的通信的主机接口105。举例来说,在一个实施例中,主机101与计算装置103之间的通信信道是外围组件互连快速(PCI快速或PCIe)总线;主机101及计算装置103使用NVMe协议(非易失性存储器主机控制器接口规范(NVMHCI),也称为NVM快速(NVMe))彼此通信。
在一些实施方案中,主机101与计算装置103之间的通信信道包含计算机网络,例如局域网、无线局域网、无线个人区域网、蜂窝通信网络、宽带高速始终连接的无线通信连接(例如,当前代或下一代移动网络链路);且主机101及计算装置103可经配置以使用类似于NVMe协议中的数据存储管理及使用命令来彼此通信。
控制器107可运行固件104以响应于来自主机101的通信来执行操作及/或其它操作。固件通常是一种类型的计算机程序,其提供对经工程设计计算装置的控制、监测及数据操纵。在图2中,固件104在操作计算装置103时控制控制器107的操作。
计算装置103具有非易失性存储媒体109,例如涂覆在硬磁盘上的磁性材料及/或集成电路中的存储器单元。存储媒体109是非易失性的,因为不需要电力来维持存储在非易失性存储媒体109中的数据/信息,所述数据/信息可在非易失性存储媒体109断电且接着再次上电之后进行检索。可使用各种存储器/存储技术来实施存储器单元,例如基于NAND门的闪存、相变存储器(PCM)、磁存储器(MRAM)、电阻式随机存取存储器及3D XPoint,使得存储媒体109是非易失性的,并且可在没有电力的情况下将存储在其中的数据留存几天、几个月及/或几年。
计算装置103包含用于存储由控制器107使用的运行时数据及指令的易失性动态随机存取存储器(DRAM)106以改进控制器107的计算性能及/或为在主机101与非易失性存储媒体109之间传送的数据提供缓冲。DRAM 106是易失性的,因为其需要电力来维持存储在其中的数据/信息,所述数据/信息在电力中断时立即或迅速丢失。
易失性DRAM 106通常具有比非易失性存储媒体109更少的延时,但是在去除电力时会很快丢失其数据。因此,使用易失性DRAM 106临时存储在控制器107的当前计算任务中用于控制器107的指令及数据以改进性能是有利的。在一些情况中,易失性DRAM 106被在一些应用中用比DRAM使用更少电力的易失性静态随机存取存储器(SRAM)代替。当非易失性存储媒体109具有与易失性DRAM 106相当的数据存取性能(例如,在延时、读取/写入速度方面)时,可消除易失性DRAM 106;并且控制器107可通过针对指令及数据在非易失性存储媒体109上进行操作而不是在易失性DRAM 106上操作来执行计算。
在一些情况中,控制器107具有处理器中高速缓冲存储器,其数据存取性能优于易失性DRAM 106及/或非易失性存储媒体109。因此,优选的是在控制器107的计算操作期间在控制器107的处理器中高速缓冲存储器中高速缓存在当前计算任务中使用的指令及数据的部分。在一些情况中,控制器107具有多个处理器,其各自具有其自己的处理器中高速缓冲存储器。
任选地,控制器107使用在计算装置103中组织的数据及/或指令来执行数据密集型存储器中处理。举例来说,响应于来自主机101的请求,控制器107执行存储在计算装置103中的一组数据的实时分析,并将精简数据组作为响应传达给主机101。
在一些实施方案中,控制器107的处理器在计算机芯片制造中与存储器(例如,106或109)集成在一起以实现存储器中处理。处理及存储器的集成增加处理速度及存储器传送速率,并减少延时及电力使用。
可使用由控制器107执行的计算机指令(例如固件104)来实施本文揭示的至少一些实施例。在一些情况中,硬件电路可用以实施固件104的至少一些功能。固件104可最初存储在非易失性存储媒体109或另一非易失性装置中,并加载到易失性DRAM 106及/或处理器中高速缓冲存储器中以由控制器107执行。
图3展示根据一个实施例的基于来自一或多个单调计数器(例如,单调计数器320)的初始及后续值的比较来确定篡改是否已发生的方法。在框331中,存储密钥。举例来说,密钥可存储在系统302或计算装置103中。
在框333中,将单调计数器初始化以提供初始值。初始值与所存储密钥相关联。
框335中,发送包含初始值的通信(例如,到主机101)。初始值用于与单调计数器初始化后从单调计数器读取的输出值进行比较。此比较用以确定是否已发生对其中存储密钥的装置的篡改。
在一个实施例中,一种方法开始于将所产生密钥存储在系统板上。单调计数器值经初始化以提供初始值。初始值通过电子通信被发送到系统板的预期接收器的计算装置。举例来说,接受器是最终客户。接收器将初始值存储在计算装置的存储器中用于稍后在接收系统板时进行比较。
然后,将系统板物理运送或以其它方式传送到接收器。当系统板由最终客户接收时,如果在针对引起单调计数器的递增的已知操作进行调整之后所读取的单调计数器值等于从工厂传达的初始值,那么板被视为是真实的。
在另一实施例中,在所述方法中执行多次按密钥读取。首先,所产生密钥存储在系统板的存储器中。单调计数器值被初始化。界定读取内部密钥的尝试的预定最大数目。然后,将初始计数器值传达给最终客户。
接下来,将系统板递送(例如,运送)到最终客户。如果所读取的MTC值等于较早接收的初始值(从工厂传达),那么板被视为是真实的。客户读取存储密钥并且使内部相关联MTC递增。在一个实施例中,当内部MTC的值达到上文界定的最大尝试数目时,禁止读取操作。
在一些实例中,存储器或其它装置可在以下两者之间安全地共享机密密钥:硅工厂及客户;或在工厂与客户之间发生非安全移动的安全场所。并且,可在将安全信息注入装置(例如,密钥及/或客户固件)内部之后,在不同厂房之间进行晶片的安全移动。举例来说,此可经实施以通过物理运输(例如,其中在运输或其它处置期间将装置的实际拥有权交给未知的第三方)将晶片从工厂移动到组装位置。
在一个实施例中,一种方法包括:存储密钥;初始化单调计数器以提供初始值,其中所述初始值与所述所存储密钥相关联;以及发送包含所述初始值的通信,所述初始值用于在所述初始化后与从所述单调计数器读取的输出值进行比较,以便确定篡改是否已发生。
在一个实施例中,所述密钥存储在系统板的第一组件中,所述通信被发送到所述系统板的第二组件,并且所述输出值由所述第二组件读取以确定所述篡改是否已发生。在一个实施例中,所述第一组件是非易失性存储器装置,且所述第二组件是控制器。在一个实施例中,所述篡改是读取所述所存储密钥的未授权尝试。
在一个实施例中,所述方法进一步包括,在发送所述通信之后:从所述单调计数器读取所述输出值;将所述输出值与所述初始值进行比较;及基于将所述输出值与所述初始值进行比较,确定篡改已发生。
在一个实施例中,所述方法进一步包括对经执行以存取所述所存储密钥的读取操作的数目进行计数,其中将所述输出值与所述初始值进行比较包括基于所述读取操作的数目来调整所述初始值。
在一个实施例中,所述方法进一步包括对执行的上电操作的数目进行计数,其中将所述输出值与所述初始值进行比较进一步包括:进一步基于所述上电操作的数目来调整所述初始值。
在一个实施例中,所述方法进一步包括:基于将所述输出值与所述初始值进行比较,确定不存在篡改;及响应于确定所述不存在篡改,读取所述所存储密钥。
在一个实施例中,一种系统包括:非易失性存储器,其经配置以存储密钥;单调计数器,其经配置以提供计数器值输出,其中所述计数器值输出包含在所述单调计数器的初始化时确定的初始值,以及在所述初始化之后从所述单调计数器读取的输出值;至少一个处理器;及存储器,其含有经配置以指示所述至少一个处理器进行以下操作的指令:产生所述密钥;将所述密钥存储在所述非易失性存储器中;初始化所述单调计数器以提供所述初始值,其中所述初始值与所述所存储密钥相关联;向计算装置发送通信,所述通信包含用于与所述输出值进行比较以确定是否已发生对所述系统的篡改的所述初始值。
在一个实施例中,所述单调计数器经配置以在所述系统的每一上电操作时及/或读取所述所存储密钥的每一尝试时使所述计数器值输出递增。
在一个实施例中,所述指令进一步经配置以指示所述至少一个处理器:从所述单调计数器读取第一计数器值;确定所述第一计数器值超过预定最大值;及响应于确定所述第一计数器值超过所述预定最大值,永久停用对所述所存储密钥的读取存取。
在一个实施例中,所述计算装置经配置以:从所述单调计数器读取所述输出值;将所述输出值与所述初始值进行比较;及基于将所述输出值与所述初始值进行比较,确定对所述系统篡改的发生。
在一个实施例中,所述计算装置进一步经配置以确定致使所述单调计数器递增的事件的数目,且其中将所述输出值与所述初始值进行比较包括:基于所述所确定的事件的数目来调整所述初始值。
在一个实施例中,所述指令进一步经配置以指示所述至少一个处理器:从所述计算装置接收包含已检测到篡改的指示的通信;及响应于接收包含已检测到篡改的所述指示的所述通信,停用所述系统的至少一个功能。
在一个实施例中,所述系统进一步包括半导体裸片,所述半导体裸片包含所述非易失性存储器、所述单调计数器及所述至少一个处理器。
在一个实施例中,所述非易失性存储器是非易失性存储器装置,并且所述系统进一步包括系统板,所述系统板包含所述非易失性存储器装置及所述至少一个处理器。
在一个实施例中,产生所述密钥包括:使用来自至少一个物理不可克隆功能的输出来产生所述密钥。在一个实施例中,针对所述系统的每一上电循环产生所述密钥。
在一个实施例中,所述系统进一步包括系统板,所述系统板经配置以将由所述至少一个处理器执行的应用程序存储在存储器中,且其中所述应用程序的执行在所述系统的上电之后发生。
图4展示存储一或多个密钥314的系统703。根据一个实施例,系统703通过通信接口705与服务器701通信。举例来说,系统703包含通信接口705,其用以接收针对固件的OTA更新(例如,从客户/终端用户接收)。系统703及服务器701之间的通信可通过网络715(例如,无线网络)来执行。使用通信接口705执行此通信。
在一个实施例中,单调计数器320经初始化为分别与密钥314中的每一者相关联的初始值。密钥314存储在非易失性存储器720中。初始值被发送到服务器701,用于与后续计数器值比较,如上文描述。
在一个实施例中,服务器701产生针对系统703的使用的授权。系统703的存储器709存储用户数据714。在一个实施例中,服务器701控制将新用户(例如,新终端用户/客户)的用户数据加载到系统的存储器709中。
控制器707控制系统703的一或多个操作。举例来说,控制器707控制存储在存储器709中的用户数据714。控制器707还控制将用户数据加载到存储器709及/或系统703的其它存储器中。控制器707还控制信息在显示装置708上的显示。传感器706提供有关系统703的操作的数据。此操作数据的至少一部分可被传送到服务器701。
存储器709可进一步包含例如配置数据712及/或数据库710。配置数据712可为例如与由服务器701提供的系统703的操作相关联的数据。举例来说,配置数据712可为例如基于与系统相关联的条件约束系统703的操作的数据。
数据库710可存储例如由传感器706收集的数据。数据库710还可存储例如服务器701响应于新终端用户/客户打开关于系统703的使用的记录而提供的数据。
在一个实施例中,当系统正在被操作时,可将有关系统703的活动的数据传达到服务器701。此活动可包含系统703的操作方面。
在一个实施例中,服务器701将针对有关系统703的状态报告及/或其它数据的请求发送到系统703。响应于所述请求,服务器701接收状态报告,并且接着服务器701致使(例如,通过基于状态报告中的数据向系统703发送通信)系统703在存储器709中配置用户的用户数据714。
如图4中所说明,控制器707还可控制图像在一或多个显示装置708上的显示。显示装置708可为液晶显示器。控制器707可接收由一或多个传感器706收集的数据。传感器706可例如安装在系统703中。传感器706可包含例如照相机、麦克风、运动检测器及/或照相机。
传感器706可提供各种类型的数据以供控制器707收集。举例来说,所收集数据可包含来自照相机的图像数据及/或来自麦克风的音频数据。
在一个实施例中,控制器707分析来自传感器706的所收集数据。所收集数据的分析包含提供一些或全部所收集数据到服务器701。
在一个实施例中,存储器709存储数据库710,其可包含由传感器706收集的数据及/或由通信接口705从例如(举例来说)服务器701的计算装置接收的数据。举例来说,此通信可用以将所收集数据从传感器706无线传输到服务器701。由系统接收的数据可包含用以配置由控制器707对显示装置708的控制的配置或其它数据。
图5展示根据一个实施例的存储用于与包含存储装置150及/或系统存储器154的组件(例如,在系统板上)通信的机密密钥214的控制器152。在一个实施例中,控制器152在系统中使用用于基于比较来自单调计数器320的值来确定是接受还是拒绝数据(例如,存储在应用程序控制器152的缓冲器204中的固件或运行时代码的一部分)。
数据可经由互连件168、170、172在系统的组件之间传送,所述互连件中的每一者可为例如内部或外部数据或其它总线(例如,外围组件互连件(PCI)、扩展的PCI(PCI-X)、PCI快速(PCIe)、通信部分及/或计算机网络。
在一个实施例中,存储器装置150、应用程序控制器152及系统存储器154中的一或多者是芯片上系统(SOC)装置的部分(例如,所有这些组件都在同一SOC芯片上)。在一个实施例中,启动装置156可被包含为SOC芯片的部分。在其它实施例中,这些组件中的每一者可在单独芯片上实施(例如,安装在硬件卡或其它结构上并通过布线连接)。
在一个实例中,应用程序控制器152是运行系统的主MCU(例如,INTEL corei7是计算机的应用程序控制器)。周围系统中的各种控制器(例如,存储器控制器)服务于应用程序控制器152执行功能。
在一个实施例中,经由应用程序控制器152,由本地缓冲器从存储装置150或系统存储器154接收固件或运行时代码。
在一个实施例中,由缓冲器204将存储数据作为数据部分的流(例如,数据部分可为一个页面或一群组页面)接收。加密引擎202计算针对所接收的每一数据部分的加密测量。
在一个实施例中,在从启动装置156读取及/或使用数据之前,应用程序控制器152验证启动装置156的身份(例如,以避免需要替换启动装置组件)。在此实施例中,身份验证是基于使用来自单调计数器320的值。
在一个实施例中,应用程序控制器152请求新的安全的空中更新(例如,来自相同原始源或来自不同源)。在一个实施例中,从例如服务器(例如,主机101)的计算装置接收空中更新。
在一个实施例中,由缓冲器204接收的数据是从存储器装置150获得的代码。响应于确定接受数据,应用程序控制器152将数据从缓冲器204复制到系统存储器154。
在一个实施例中,在启动装置156、存储装置150及/或系统存储器154上使用的存储器可为非易失性存储媒体(例如,闪存)及/或易失性存储器。此存储器可例如存储启动代码164。
变化
现在在下面描述各种额外非限制性实施例。在一个实施例中,提供一种机制以将密钥从一个位置移动到另一位置,从而确保在具有密钥的装置的运输期间,恶意攻击者不会读取密钥。此机制使用密钥注入。举例来说,密钥注入通过对装置内部的密钥进行编程来执行。
在一个实施例中,对信任平台模块(TPM)的信任是基于使用上文MTC计数器值比较方法中的一者的机密密钥。举例来说,利用对称加密机制,在两个实体(例如主机1及主机2)之间共享机密密钥。举例来说,此可为存储器及管理存储器的拥有者。
在一个实施例中,在至少两个实体之间共享对称密钥。举例来说,主机1及主机2是管理存储器的内容的拥有者。使用上文描述的用于单调计数器值比较的方法,这些处理器中的两者都可共享同一机密密钥。
在一个实例中,对称密钥用以交换消息。在此对称密钥方法中,实体知道密码、代码等,其允许所述实体以加密方式进行通信。上文单调计数器值比较提供一种方法,其允许两个实体从不亲自见面,但允许主机1以安全方式将密钥传达给主机2。如果在中间存在尝试从装置泄漏密钥第三方,如运输公司,那么主机2将在接收到具有所存储密钥的装置时检测到所述第三方。
在一个实施例中,上文单调计数器方法被概括为与其它方一起使用(且不仅仅是共享机密密钥)。举例来说,使用几个单调计数器(例如,数目1、数目2、…数目N)允许共享一个以上机密密钥。此启用其它服务,例如支付。
在一个实施例中,用以实施服务的机制是基于对值进行计数。举例来说,装置的电力循环的数目。在此情况下,所述机制将检测到中间人以未授权的方式使用装置的任何尝试。这是因为,当装置离开第一生产厂房并到达第二生产厂房时,如果中间有人尝试使用所述装置,那么关于目的地的计数器值与已发送的计数器值不同(在针对已知存取进行调整之后)。此机制允许检测读取密钥的尝试。
在一个实例中,假设实体一及实体二同意装置中的两个机密密钥。每一机密密钥都具有与其相关联的单调计数器(例如,单调计数器1及单调计数器2)。当实体一测试装置时,其将所测量的单调计数器值存储在装置中(初始值)。实体一将把装置运送到实体二,并单独地发送相应单调计数器的初始值。如果中间人尝试使装置上电,或尝试发送命令序列以读取密钥,那么单调计数器将递增第二值,所述第二值与进行的尝试数目及所述装置已经历的电力循环的数目相关联。当装置到达实体二时,实体二将读回单调计数器值,并将其与装置由实体一拥有时递送的初始值进行比较。如果两个值相同(在适当已知事件调整之后),此指示装置没有被破坏。如果两个值不同,那么此指示装置在不具有授权及/或在不知情的情况下上电或尝试密钥读取,且因此装置内容可能被破坏。
在一个实施例中,初始值可如下使用。举例来说,当测试装置时,装置电力将开启及关闭数次(例如10次)。由于上电发生10次,单调计数器内部将最多计数到10。另外,假设客户额外读取密钥2次。针对此密钥的单调计数的最终值将为12。当发送装置时,与接收者接收的机密密钥相关联的单调计数器的值应为12。接收者将读取装置。通过去除接收者的上电及密钥读取操作进行调整意味着初始值与接收者的读取值相比应相同。这意味着中间的任何实体都无法知道所述装置或无法泄露机密。然而,在接收者读取的值与发送者已发送的值不同的情况下(在上述调整之后),这意味着中间的实体开启装置或尝试读取内部密钥。
在一个实施例中,当接收装置时,接收者将发出命令序列以读取单调计数器。如果只有一个机密密钥k,那么对于MTCk,k将为零。单调计数器零属于存储在装置内部的唯一密钥。当读取此值时,其将返回存储在制造设施中的值加一,这是因为读取装置将使MTC递增一。如果读回的任何数目大于初始值加上已知/接收者上电及密钥读取尝试的数目,那么认为所述装置已被破坏。
在一个实施例中,以上方法可更一般地在多个客户级别处实施,其中每一供应商及后来的客户能够验证装置完整性。
在一个实施例中,单调计数器既可用作确保密钥未由未授权实体读取的机制,也可用作确保对服务支付的机制。举例来说,在机顶盒应用程序中,可向终端用户开放一组频道仅三次。每当终端用户使盒上电时,MTC都将递增一。在第四次及后续上电时,盒将锁定。终端用户将需要支付额外的费用来解锁盒。这可用于允许客户在购买前试用服务,或确保其为期望的服务付费。
在一个实施例中,当传送实施上文方法的板时,首先用某一值初始化MTC。所述值可为任意的。板及初始值被传送到客户。客户读取MTC值,减去在客户现场进行的上电及密钥读取循环的数目,并确认MTC值与从卖方发送的初始值匹配。如果这些值匹配,那么所述板在运输期间没有被破坏。如果值不同,那么装置的内容可能已被破坏。
在一个实施例中,以上程序对于多个密钥是类似的,不同之处在于针对每一密钥将具有至少一个MTC。如果MTC值中的任一者与所传达的内容不相同,那么代码或其它数据将被视为被破坏并且不再可用。
在一个实施例中,以上方法可用于存储器装置。举例来说,未实施特殊安全性功能的CPU或控制器可利用单调计数器机制来确定实体是否能够读取板上的固件或可位于其它位置中的密钥。举例来说,假设复杂板具有不含有安装在附接到系统的模块中的安全性的装置。如果板含有以上MTC方法,那么可使用MTC来确定所述板是否已在不受所有者或最终用户的控制下被电力循环或经由其它活动进行操作。
在一个实施例中,以上MTC方法可用以保护定制固件。通过对上电循环的数目进行计数,装置中的控制器可确定装置上电的次数是否超过预期的次数,这指示定制固件潜在地被破坏。
结束语
在各个实施例中,非暂时性计算机存储媒体用以将固件的指令存储在以上的系统及/或其它组件的固件中。当指令由控制器(例如,应用程序控制器或启动或存储装置的控制器)或其它计算装置执行时,指令致使控制控制器执行本文论述的方法中的任何者。
在此描述中,各种功能及操作可被描述为由计算机指令执行或由计算机指令引起以简化描述。然而,所属领域的技术人员将认识到,此类表达的意思是功能是由一或多个控制器或处理器(例如微处理器)执行计算机指令而产生的。替代地或组合地,可使用具有或不具有软件指令的专用电路来实施功能及操作,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。可使用没有软件指令或结合软件指令的硬接线电路来实施实施例。因此,技术既不限于硬件电路及软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
尽管一些实施例可在功能齐全的计算机及计算机系统中实施,但是各个实施例能够以各种形式作为计算产品分布,并且能够被应用而与用以实际上实现分布的特定类型的机器或计算机可读媒体无关。
所揭示的至少一些方面可至少部分地以软件体现。也就是说,可响应于其处理器(例如微处理器或微控制器)执行包含在存储器(例如ROM、易失性RAM、非易失性存储器、高速缓存或远程存储装置)中的指令序列而在计算机系统或其它数据处理系统中实行技术。
经执行以实施实施例的例程可经实施为操作系统或称为“计算机程序”的特定应用程序、组件、程序、对象、模块或指令序列的部分。计算机程序通常包括在计算机中的各种存储器及存储装置中在不同时间设置的一或多个指令,并且所述指令当由计算机中的一或多个处理器读取及执行时致使计算机执行执行涉及各种方面的元素所必需的操作。
有形非暂时性计算机存储媒体可用以存储在由数据处理系统执行时致使系统执行各种方法的软件及数据。可执行软件及数据可存储在各种位置中,其包含例如ROM、易失性RAM、非易失性存储器及/或高速缓存。此软件及/或数据的部分可存储在这些存储装置中的任一者中。此外,可从集中式服务器或对等网络获得数据及指令。数据及指令的不同部分可在不同时间及在不同通信会话中或在同一通信会话中从不同集中式服务器及/或对等网络获得。可在执行应用程序之前整体获取数据及指令。替代地,可在执行需要时及时地动态获得数据及指令的部分。因此,不要求数据及指令在特定时间例子处全部位于机器可读媒体上。
计算机可读存储媒体的实例包含(但不限于)可记录及不可记录类型的媒体,例如易失性及非易失性存储器装置、只读存储器(ROM)、随机存取存储器(RAM)、闪存装置、软盘及其它可卸除磁盘、磁盘存储媒体及光学存储媒体(例如,光盘只读存储器(CD ROM)、数字多功能磁盘(DVD)等)等。指令可体现在暂时性媒体中,例如电、光学、声或其它形式的传播信号,例如载波、红外信号、数字信号等。暂时性媒体通常用以传输指令,但不被视为能够存储指令。
在各个实施例中,可将硬连线电路系统与软件指令结合使用以实施技术。因此,技术既不限于硬件电路系统及软件的任何特定组合,也不限于针对由数据处理系统执行的指令的任何特定源。
尽管一些图式以特定顺序说明数个操作,但是不依赖顺序的操作可被重新排序,并且其它操作可被组合或分解。尽管具体提及一些重新排序或其它分组,但是其它对于所属领域的一般技术人员将是显而易见的,因此并未呈现详尽的替代例列表。此外,应认识到,阶段可以硬件、固件、软件或其任一组合来实施。
上文描述及图式是说明性的,并且不应解释为限制性的。描述众多特定细节以提供透彻理解。然而,在某些情况下,为避免使描述不清楚,未描述众所周知或常规细节。在本发明中对一个或一实施例的参考不一定是对同一实施例的参考;并且,此类参考意指至少一个。
在前述说明书中,已经参考本发明的特定示范性实施例描述本发明。显而易见的是,在不脱离所附权利要求书所阐述的更广泛精神及范围的情况下,可对特定示范性实施例进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。
Claims (17)
1.一种系统,其包括:
非易失性存储器,其经配置以存储密钥;
单调计数器,其经配置以提供计数器值输出,其中所述计数器值输出包含在所述单调计数器的初始化时确定的初始值,以及在所述初始化之后从所述单调计数器读取的输出值;
至少一个处理器;及
存储器,其含有经配置以指示所述至少一个处理器进行以下操作的指令:
产生所述密钥;
将所述密钥存储在所述非易失性存储器中;
初始化所述单调计数器以提供所述初始值,其中所述初始值与所存储的所述密钥相关联;
在所述系统的物理运输之前向计算装置发送通信,所述通信包含用于与所述输出值进行比较以确定是否已发生对所述系统的篡改的所述初始值,
其中所述计算装置经配置以:
跟踪致使所述单调计数器递增的已知事件的数目;
基于已知事件的所述数目调整所述初始值以提供经调整初始值;以及
在所述物理运输之后将所述输出值与所述经调整初始值进行比较以确定所述篡改是否已发生。
2.根据权利要求1所述的系统,其中所述单调计数器经配置以在所述系统的每一上电操作时使所述计数器值输出递增。
3.根据权利要求1所述的系统,其中所述单调计数器经配置以在每次尝试读取所存储的所述密钥时使所述计数器值输出递增。
4.根据权利要求1所述的系统,其中所述指令进一步经配置以指示所述至少一个处理器:
从所述单调计数器读取第一计数器值;
确定所述第一计数器值超过预定最大值;及
响应于确定所述第一计数器值超过所述预定最大值,永久停用对所存储的所述密钥的读取存取。
5.根据权利要求1所述的系统,其中所述计算装置经配置以:
在所述物理运输之后从所述单调计数器读取所述输出值。
6.根据权利要求1所述的系统,其中所述指令进一步经配置以指示所述至少一个处理器:
从所述计算装置接收包含已检测到篡改的指示的通信;及
响应于接收包含已检测到篡改的所述指示的所述通信,停用所述系统的至少一个功能。
7.根据权利要求1所述的系统,其进一步包括半导体裸片,所述半导体裸片包含所述非易失性存储器、所述单调计数器及所述至少一个处理器。
8.根据权利要求1所述的系统,其中所述非易失性存储器是非易失性存储器装置,所述系统进一步包括系统板,所述系统板包含所述非易失性存储器装置及所述至少一个处理器。
9.根据权利要求1所述的系统,其中产生所述密钥包括:使用来自至少一个物理不可克隆功能的输出来产生所述密钥。
10.根据权利要求9所述的系统,其中针对所述系统的每一上电循环产生所述密钥。
11.根据权利要求1所述的系统,其进一步包括系统板,所述系统板经配置以将由所述至少一个处理器执行的应用程序存储在存储器中,且其中所述应用程序的执行在所述系统的上电之后发生。
12.一种方法,其包括:
在系统板的非易失性存储器装置中存储密钥;
初始化单调计数器以提供初始值,其中所述初始值与所存储的所述密钥相关联;及
在所述系统板的物理运输之前向计算装置发送包含所述初始值的通信,所述初始值用于在所述初始化后与从所述单调计数器读取的输出值进行比较以便确定篡改是否已发生,其中所述计算装置经配置以:
跟踪致使所述单调计数器递增的已知事件的数目;
基于已知事件的所述数目调整所述初始值以提供经调整初始值;以及
在所述物理运输之后将所述输出值与所述经调整初始值进行比较以确定所述篡改是否已发生。
13.根据权利要求12所述的方法,其中所述篡改是读取所存储的所述密钥的未授权尝试。
14.根据权利要求12所述的方法,其进一步包括,在发送所述通信之后:
在所述物理运输之后由所述计算装置从所述单调计数器读取所述输出值;
由所述计算装置将所述输出值与所述经调整初始值进行比较;及
基于将所述输出值与所述经调整初始值进行比较,由所述计算装置确定所述篡改已发生。
15.根据权利要求12所述的方法,其进一步包括由所述计算装置对经执行以存取所存储的所述密钥的读取操作的数目进行计数,其中所述已知事件包含读取操作的所述数目。
16.根据权利要求15所述的方法,其进一步包括由所述计算装置对所执行的上电操作的数目进行计数,其中所述已知事件进一步包含上电操作的所述数目。
17.根据权利要求12所述的方法,其进一步包括:
基于将所述输出值与所述经调整初始值进行比较,由所述计算装置确定不存在篡改;及
响应于确定所述不存在篡改,读取所存储的所述密钥。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/965,731 US10778661B2 (en) | 2018-04-27 | 2018-04-27 | Secure distribution of secret key using a monotonic counter |
US15/965,731 | 2018-04-27 | ||
PCT/US2019/028303 WO2019209652A1 (en) | 2018-04-27 | 2019-04-19 | Secure distribution of secret key using a monotonic counter |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112042151A CN112042151A (zh) | 2020-12-04 |
CN112042151B true CN112042151B (zh) | 2024-05-07 |
Family
ID=68291341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980028751.5A Active CN112042151B (zh) | 2018-04-27 | 2019-04-19 | 使用单调计数器的机密密钥的安全分发 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10778661B2 (zh) |
CN (1) | CN112042151B (zh) |
WO (1) | WO2019209652A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11196574B2 (en) * | 2017-08-17 | 2021-12-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | Physically unclonable function (PUF) generation |
US10715321B2 (en) | 2017-12-22 | 2020-07-14 | Micron Technology, Inc. | Physical unclonable function using message authentication code |
US10906506B2 (en) | 2017-12-28 | 2021-02-02 | Micron Technology, Inc. | Security of user data stored in shared vehicles |
US10924277B2 (en) | 2018-01-25 | 2021-02-16 | Micron Technology, Inc. | Certifying authenticity of stored code and code updates |
US11146540B2 (en) * | 2018-05-09 | 2021-10-12 | Datalogic Ip Tech S.R.L. | Systems and methods for public key exchange employing a peer-to-peer protocol |
US10965551B2 (en) * | 2018-11-21 | 2021-03-30 | Microsoft Technology Licensing, Llc | Secure count in cloud computing networks |
US11245680B2 (en) * | 2019-03-01 | 2022-02-08 | Analog Devices, Inc. | Garbled circuit for device authentication |
US11323275B2 (en) | 2019-03-25 | 2022-05-03 | Micron Technology, Inc. | Verification of identity using a secret key |
US11218330B2 (en) | 2019-03-25 | 2022-01-04 | Micron Technology, Inc. | Generating an identity for a computing device using a physical unclonable function |
CN112560121B (zh) * | 2020-12-08 | 2024-01-19 | 武汉新芯集成电路制造有限公司 | 单调计数器及其根密钥处理方法 |
FR3118504B1 (fr) | 2020-12-28 | 2024-05-17 | St Microelectronics Rousset | Système électronique comprenant plusieurs microprocesseurs |
US11784827B2 (en) * | 2021-03-09 | 2023-10-10 | Micron Technology, Inc. | In-memory signing of messages with a personal identifier |
FR3121564A1 (fr) * | 2021-03-31 | 2022-10-07 | STMicroelectronics (Alps) SAS | Stockage sécurisé de clefs de chiffrement |
FR3121530A1 (fr) | 2021-03-31 | 2022-10-07 | STMicroelectronics (Alps) SAS | Procédé et dispositif pour le déchiffrement sécurisé de données chiffrées |
US20230046788A1 (en) * | 2021-08-16 | 2023-02-16 | Capital One Services, Llc | Systems and methods for resetting an authentication counter |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794628A (zh) * | 2004-12-22 | 2006-06-28 | 西加特技术有限责任公司 | 生成密钥的装置和方法 |
WO2012126729A1 (en) * | 2011-03-23 | 2012-09-27 | St-Ericsson Sa | Electronic device with flash memory component |
WO2017144586A1 (en) * | 2016-02-25 | 2017-08-31 | Micro Systemation AB | System and method for forensic access control |
US9858208B2 (en) * | 2013-03-21 | 2018-01-02 | International Business Machines Corporation | System for securing contents of removable memory |
CN107624188A (zh) * | 2015-06-12 | 2018-01-23 | 高通股份有限公司 | 物理不可复制功能辅助的存储器加密装置技术 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003016577A (ja) | 2001-07-04 | 2003-01-17 | Honda Motor Co Ltd | 車両管理装置 |
US7840803B2 (en) | 2002-04-16 | 2010-11-23 | Massachusetts Institute Of Technology | Authentication of integrated circuits |
JP2004361723A (ja) | 2003-06-05 | 2004-12-24 | Nec Commun Syst Ltd | 楽曲データ配信システム、楽曲データ配信方法、および、楽曲データ配信プログラム |
US7734932B2 (en) | 2003-11-10 | 2010-06-08 | Broadcom Corporation | System and method for securing executable code |
US7934049B2 (en) | 2005-09-14 | 2011-04-26 | Sandisk Corporation | Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory |
US7424398B2 (en) | 2006-06-22 | 2008-09-09 | Lexmark International, Inc. | Boot validation system and method |
US7757098B2 (en) | 2006-06-27 | 2010-07-13 | Intel Corporation | Method and apparatus for verifying authenticity of initial boot code |
US9794247B2 (en) * | 2006-08-22 | 2017-10-17 | Stmicroelectronics, Inc. | Method to prevent cloning of electronic components using public key infrastructure secure hardware device |
US20080148061A1 (en) | 2006-12-19 | 2008-06-19 | Hongxia Jin | Method for effective tamper resistance |
JP4956292B2 (ja) * | 2007-06-25 | 2012-06-20 | パナソニック株式会社 | 情報セキュリティ装置およびカウンタ制御方法 |
US8068614B2 (en) | 2007-09-28 | 2011-11-29 | Intel Corporation | Methods and apparatus for batch bound authentication |
CN102165458B (zh) | 2008-09-26 | 2015-05-27 | 皇家飞利浦电子股份有限公司 | 认证装置和用户 |
US8184812B2 (en) * | 2009-06-03 | 2012-05-22 | Freescale Semiconductor, Inc. | Secure computing device with monotonic counter and method therefor |
US8812854B2 (en) | 2009-10-13 | 2014-08-19 | Google Inc. | Firmware verified boot |
WO2012122994A1 (en) | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
US8776040B2 (en) | 2011-08-19 | 2014-07-08 | International Business Machines Corporation | Protection for unauthorized firmware and software upgrades to consumer electronic devices |
US9183393B2 (en) | 2012-01-12 | 2015-11-10 | Facebook, Inc. | Multiple system images for over-the-air updates |
KR101869059B1 (ko) | 2012-02-28 | 2018-06-20 | 삼성전자주식회사 | 저장 장치 및 그것의 메모리 컨트롤러 |
US9591484B2 (en) | 2012-04-20 | 2017-03-07 | T-Mobile Usa, Inc. | Secure environment for subscriber device |
KR101975027B1 (ko) | 2012-05-04 | 2019-05-03 | 삼성전자주식회사 | 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들 |
US10079678B2 (en) | 2012-07-24 | 2018-09-18 | Intel Corporation | Providing access to encrypted data |
WO2014030233A1 (ja) | 2012-08-22 | 2014-02-27 | Kamisawa Teruhiko | レンタカー管理システム、レンタカー管理方法、及びレンタカー管理プログラム |
US8874653B2 (en) | 2012-11-12 | 2014-10-28 | Maximilian A. Chang | Vehicle security and customization |
WO2014175861A1 (en) | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Recovering from compromised system boot code |
US9953166B2 (en) | 2013-07-04 | 2018-04-24 | Microsemi SoC Corporation | Method for securely booting target processor in target system using a secure root of trust to verify a returned message authentication code recreated by the target processor |
TWI631462B (zh) * | 2013-09-10 | 2018-08-01 | 系微股份有限公司 | 確保機板上匯流排交易安全的計算系統和計算設備實現的方法以及非暫時性的電腦可讀取媒體 |
US9992031B2 (en) | 2013-09-27 | 2018-06-05 | Intel Corporation | Dark bits to reduce physically unclonable function error rates |
US9147075B1 (en) | 2014-03-20 | 2015-09-29 | Juniper Networks, Inc. | Apparatus and method for securely logging boot-tampering actions |
US20160125425A1 (en) | 2014-10-31 | 2016-05-05 | Aeris Communications, Inc. | Automatic connected vehicle enrollment |
US9740863B2 (en) | 2014-11-25 | 2017-08-22 | Intel Corporation | Protecting a secure boot process against side channel attacks |
US9934411B2 (en) | 2015-07-13 | 2018-04-03 | Texas Instruments Incorporated | Apparatus for physically unclonable function (PUF) for a memory array |
US20170126414A1 (en) | 2015-10-28 | 2017-05-04 | Texas Instruments Incorporated | Database-less authentication with physically unclonable functions |
WO2017207288A1 (en) | 2016-06-01 | 2017-12-07 | Intrinsic Id B.V. | Cryptographic device and memory based puf |
US10592435B2 (en) * | 2016-07-14 | 2020-03-17 | Intel Corporation | System, apparatus and method for secure monotonic counter operations in a processor |
US10296421B2 (en) | 2017-06-26 | 2019-05-21 | Micron Technology, Inc. | Memory devices and systems with security capabilities |
US10715321B2 (en) * | 2017-12-22 | 2020-07-14 | Micron Technology, Inc. | Physical unclonable function using message authentication code |
US10906506B2 (en) | 2017-12-28 | 2021-02-02 | Micron Technology, Inc. | Security of user data stored in shared vehicles |
US10924277B2 (en) * | 2018-01-25 | 2021-02-16 | Micron Technology, Inc. | Certifying authenticity of stored code and code updates |
-
2018
- 2018-04-27 US US15/965,731 patent/US10778661B2/en active Active
-
2019
- 2019-04-19 CN CN201980028751.5A patent/CN112042151B/zh active Active
- 2019-04-19 WO PCT/US2019/028303 patent/WO2019209652A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794628A (zh) * | 2004-12-22 | 2006-06-28 | 西加特技术有限责任公司 | 生成密钥的装置和方法 |
WO2012126729A1 (en) * | 2011-03-23 | 2012-09-27 | St-Ericsson Sa | Electronic device with flash memory component |
US9858208B2 (en) * | 2013-03-21 | 2018-01-02 | International Business Machines Corporation | System for securing contents of removable memory |
CN107624188A (zh) * | 2015-06-12 | 2018-01-23 | 高通股份有限公司 | 物理不可复制功能辅助的存储器加密装置技术 |
WO2017144586A1 (en) * | 2016-02-25 | 2017-08-31 | Micro Systemation AB | System and method for forensic access control |
Non-Patent Citations (2)
Title |
---|
Performance evaluation of TPM-based digital wallets;Stephen R. Tate等;《Proceedings of the 2010 International Symposium on Performance Evaluation of Computer and Telecommunication Systems》;20101007;全文 * |
云存储中基于可信平台模块的密钥使用次数管理方法;王丽娜等;《计算机研究与发展》;20130815;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20190334882A1 (en) | 2019-10-31 |
WO2019209652A1 (en) | 2019-10-31 |
US10778661B2 (en) | 2020-09-15 |
CN112042151A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112042151B (zh) | 使用单调计数器的机密密钥的安全分发 | |
US11962701B2 (en) | Verifying identity of a vehicle entering a trust zone | |
US11218330B2 (en) | Generating an identity for a computing device using a physical unclonable function | |
US20220277650A1 (en) | Verifying Identity of an Emergency Vehicle During Operation | |
CN112074836B (zh) | 通过可信执行环境保护数据的设备和方法 | |
US11323275B2 (en) | Verification of identity using a secret key | |
US9875368B1 (en) | Remote authorization of usage of protected data in trusted execution environments | |
US11036869B2 (en) | Data security with a security module | |
CN109937419B (zh) | 安全功能强化的设备的初始化方法及设备的固件更新方法 | |
US8356361B2 (en) | Secure co-processing memory controller integrated into an embedded memory subsystem | |
US10211977B1 (en) | Secure management of information using a security module | |
US8538890B2 (en) | Encrypting a unique cryptographic entity | |
CN116566613A (zh) | 使用平台密钥保护与安全处理器的通信 | |
US11438161B2 (en) | Implicit attestation for network access | |
CN110999205A (zh) | 用于简档证书私有密钥或其他数据的封装的装置和方法 | |
Maletsky | Designing in A Trusted Platform Module (TPM) |
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 |