CN111611587A - 安全数据处理设备 - Google Patents
安全数据处理设备 Download PDFInfo
- Publication number
- CN111611587A CN111611587A CN202010110429.1A CN202010110429A CN111611587A CN 111611587 A CN111611587 A CN 111611587A CN 202010110429 A CN202010110429 A CN 202010110429A CN 111611587 A CN111611587 A CN 111611587A
- Authority
- CN
- China
- Prior art keywords
- programming
- digital document
- processor
- data processing
- secure data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/71—Protecting 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
-
- 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/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Programmable Controllers (AREA)
Abstract
一种安全数据处理设备,包括处理器和耦合到该处理器的存储器,所述处理器被配置为:接收数字文档,所述数字文档包括由第一方指定的用于对至少一个可编程设备进行编程的至少一个主编程要求;确定在存储器中是否存储有与数字文档相对应的记录;从与所述处理器通信的编程机的编程模块接收编程请求,所述编程请求请求对至少一个可编程设备进行编程;确定编程请求是否符合数字文档中的至少一个主编程要求;和其中,如果所述编程请求符合数字文档中的至少一个主编程要求,并且如果在存储器中没有存储与数字文档相对应的记录,则处理器还被配置为:将编程信息输出到编程模块以对所述至少一个可编程设备进行编程;和在存储器中永久地存储又一记录,其中该又一记录对应于所述数字文档。
Description
技术领域
本申请涉及一种安全数据处理设备,该安全数据处理设备用于安全地对可编程设备进行安全编程。
背景技术
硬件安全模块(HSM)通常用于将软件代码和加密密钥安全地部署到可编程设备上(供消费类设备使用)。
硬件安全模块是一种可以安全地创建和保存私人密钥和秘密密钥使得它们可以不被提取的设备。HSM还提供了使用密钥执行某些选定的加密操作的功能。
一般而言,HSM用于保存和使用私人密钥,但没有将密钥操作局限于HSM的原始客户的特定要求这样的构思。实际上,FIPS 140-2(1级、2级、3级、4级)要求趋向于防止保留合同信息这样的构思。FIPS(联邦信息处理标准)的批准提供了以下政府认证:密钥和密码算法对于商业用途而言足够强大,可以确保他们不会轻易受到破坏。
发明内容
在这种可编程设备的生产链中通常涉及许多参与方。例如,硅芯片制造商、对该设备进行编程的工厂、可能已经委托该设备的原始设备制造商(OEM)形式的制造方、以及众多分销商。OEM在本文中可以称为第一方,这包括将OEM的分部等同于第一方的可能性。
一般来说,OEM是旨在创建产品的一方,例如,该产品可以是物联网(IoT)设备。物联网设备生产的一部分可能包括OEM分包的工厂控制者(例如合同制造商),其用以将数字信息编程到商定数量的可编程设备上,其中要编程的可编程设备的数量已经在OEM和工厂控制者之间商定。通常,协议将采用合同形式。在对可编程设备进行编程之后,它们可以形成物联网设备的一部分或全部。OEM可以与工厂控制者间接通信,例如通过中间机构方与工厂控制者间接通信。为了对可编程设备进行编程,工厂控制者可能需要来自OEM的秘密信息,通常,秘密信息将被编程到可编程设备上。秘密信息可以包括用于运行物联网设备的数字证书、加密密钥和源代码。通常,秘密信息是商业敏感信息,该商业敏感信息需要被编程到可编程设备上,以便生产物联网设备。因此,OEM需要确保工厂控制者可以以某种形式访问秘密信息,以便对协议数量的可编程设备进行编程。但是,如果OEM允许工厂控制者不受限制地访问秘密信息,则工厂控制者可能会对超出协议数量的可编程设备进行编程。通过超出协议数量地编程生产的额外设备称为克隆设备。因此,对于OEM而言,防止工厂控制者、中间商或任何其他闯入者生产克隆设备(在理想情况下,不生产任何克隆设备)是非常有利的。这是因为:由于多种原因,克隆设备可能会对OEM不利。例如,克隆设备可能需要来自OEM的支持或可能会使用网络资源。这可能会降低正版(即非克隆)设备的效果,因为指定为与正版物联网设备通信的服务器可能会因来自克隆(即非正版)设备的请求而负担过重。此外,错误生产的克隆设备可能会损害OEM的声誉。由于克隆设备可能无法与正版设备区分开,因此OEM可能会因为修复、更新或维修克隆设备而浪费资源。因此,这会降低生产和维护产品(例如物联网设备)的效率。由于OEM和工厂控制者之间可能存在中间机构,因此OEM可以有效地与多方签约,需要多重身份验证。
发明人已经意识到期望创建一种系统和/或方法,该系统和/或方法允许一方(例如OEM)向另一方提供要被编程到设备上的信息,而不会存在产生克隆设备的风险。
HSM是防篡改的,这意味着,如果尝试了对访问数据的未经授权尝试,HSM的设计将使存储在HSM上的数据损坏。发明人已经认识到,尽管HSM可以安全地存储和使用密码信息,但是现有技术没有教导HSM在对设备进行编程之前检查所接收的编程要求这样的构思。实际上,FIPS(联邦信息处理标准)通常会防止HSM保留编程要求,因此不鼓励此类行为。
根据本发明的第一方面,提供了一种安全数据处理设备,包括处理器和耦合到该处理器的存储器,该处理器被配置为接收数字文档,所述数字文档包括由第一方指定的至少一个主编程要求,以对至少一个可编程设备进行编程;确定在存储器中是否存储有与数字文档相对应的记录;从与所述处理器通信的编程机的编程模块接收编程请求,所述编程请求请求对至少一个可编程设备进行编程;确定编程请求是否符合数字文档中的至少一个主编程要求;和其中,如果所述编程请求符合数字文档中的至少一个主编程要求,并且如果在存储器中没有存储与数字文档相对应的记录,则处理器还被配置为:将编程信息输出到编程模块以对所述至少一个可编程设备进行编程;和在存储器中永久地存储又一记录,其中该又一记录对应于所述数字文档。安全数据处理设备可以是高安全模块(HSM)或任何其他处理设备。例如,安全数据处理设备可以是具有HSM功能的服务器。数字文档可以充当合同,因为数字文档包含必须满足的要求。因此,数字文档可以看作是第一方和第三方之间的合同。
有利地,本发明的实施例确保例如仅对所请求数量的设备进行编程,从而避免了第三方能够制造超出第一方(例如OEM)与另一方(例如中间机构或工厂控制者)之间的合同中所指定的数量。进一步有利地,本发明的实施例确保满足合同的其他条款,所述其他条款例如与对设备进行编程的时间限制有关,或在可编程设备内配置某些选项。
在实施例中,安全数据处理设备负责确保遵守数字文档的条款。
本发明的实施例为对可编程设备进行编程提供了增加的安全性,并降低了制造潜在的不安全和有故障的克隆设备的风险。克隆或克隆设备是未经OEM(或第一方)许可而编程的设备。克隆设备可以被视为伪造设备或非官方设备,但从物理上讲,它们可能与官方设备非常相似或相同。克隆设备可能不安全,因为它们通常未向OEM正式注册。此外,如果大量克隆设备被生产并使用支持系统,则OEM为制造的设备(其可以是物联网设备)提供的支持系统(例如云服务、软件更新)的计算资源可能会过载,直至到达故障点。这是因为OEM(或委托设备的任何人)已经提供的支持系统将是为已知数量的设备提供的。因此,如果大量克隆设备也正在访问支持系统,则支持系统可能会故障或变慢。本发明的实施例还通过简化在对多个器件进行编程之前进行的检查来在设备制造过程中提供提高的效率。
有利地,本发明的实施例为第一方提供了提高的制造安全性和效率。这是因为本发明的实施例防止了除第一方以外的其他方(例如工厂或中间方)编程(或创建)比第一方已经指示的数目更多的设备。另外,还防止除第一方以外的其他方出于除根据数字文档对设备进行编程之外的任何其他目的使用第一方所拥有的编程信息。
安全数据处理设备可以是硬件安全模块(HSM)。安全数据处理设备可以安全地创建和/或保存加密密钥(包括密钥对,公钥和私人密钥),使得不能从安全数据处理设备中提取所存储/创建的密钥。安全数据处理设备还可以具有执行一系列密码功能的能力,所述密码功能包括利用密钥的密码功能。在实施例中,安全数据处理设备将与安全数据处理设备正在处理或已经处理的数字文档有关的信息保留在存储器中。安全数据处理没备还可以基于数字文档的状态(即,与数字文档一致的编程是否已经开始或者数字文档中列出的编程的进行情况)提供签名的报告。这些报告可被与可编程设备有关的各方使用,以表明已兑现了数字文档。
已知的HSM不存储与编程历史有关的信息、与接收到的编程请求有关的信息、或与接收到的数字文档有关的信息。相反,在本发明的实施例中,安全数据处理设备保留关于每个被编程的设备或者关于被编程或被供应的设备的每个批次的信息(即,与由编程机和/或安全数据处理设备编程的设备有关的信息),以防止多于一次地重复执行相同的供应运行。
该数字文档可以包括一个或多个附件,其中一个或多个附件中的至少一个可以由至少一个其他方中的一方指定,并且可以包括用于对至少一个可编程设备进行编程的至少一个辅助编程要求。换句话说,附件可以由指定主编程要求的同一方指定。附加地或备选地,该附件可以由与指定主编程要求的一方不同的另一方指定。一般而言,在实施例中,术语“附件”用于指示一些数字信息,这些数字信息可以与主编程要求相独立地进行验证,并形成数字文档的特定条款。
一个或多个附件可以包含以下项中的一项或任意组合:由至少一个可编程设备的制造商指定的附件;由所述制造商使用的设备的提供者指定的附件;由安全数据处理设备指定的附件;由编程机所在工厂的工厂提供者指定的附件;由安全系统提供者指定的附件;由安全设备提供者指定的附件;由所述安全设备提供者提供的安全设备的操作者指定的附件;由输入到所述可编程设备上的软件的提供者指定的附件;由证书提供者指定的附件;和由政府组织指定的附件。此外,每个附件可由指定或编写附件的那方进行数字签名。
处理器可以被配置为:生成编程报告,该编程报告提供对由所述编程机承担的编程的指示;和输出所述编程报告。
编程报告可以输出到以下中的一个或多个:所述编程模块;所述第一方;和所述安全数据处理设备外部的数据库。编程报告可以存储在安全数据处理设备或外部数据库上。有利地,这意味着可以安全地存储编程历史的记录,使得参与可编程没备的制造的任何一方都可以验证或参考编程历史。可以经由安全数据处理设备的接口(无线地或通过有线连接)输出报告。
所述至少一个编程要求中的一个或多个可以指定在何处输出所述编程报告。
至少一个编程要求可以指定何时生成编程报告。
所述至少一个编程要求中的一个或多个可以指定在下述条件下生成编程报告:在指定的时间段内;在指定的时间处;在编程机已经对指定数量的可编程设备进行编程之前;在编程机对可编程设备进行了编程之后;每当已经对所定义的倍数的所述可编程设备进行了编程;在编程机已经对指定数量的可编程设备进行了编程时;如果所述处理器接收到用于生成编程报告的指示,优选地,其中响应于所述可编程设备的挂起而接收到所述指示;响应于所述处理器从所述第一方或所述第二方接收到报告请求,其中,所述报告请求请求编程报告。
编程报告可以由安全数据处理设备进行数字签名。有利的是,这意味着任何一方都很难或不可能篡改编程报告。类似地,这也意味着任何一方都很难或不可能进行否定,因为存在可以详细说明已编程的内容的有效的报告。
如果所述辅助编程要求和主编程要求中的至少一个不能符合所述编程请求,则处理器可以被配置为输出数字文档已被拒绝的指示。有利的是,这可以警告参与方:编程机已经尝试以违背协议的方式对设备进行编程。如果发生这样的事件,所涉及的一方可能想要采取行动。警报或指示是执行此操作的有效方法。
数字文档已被拒绝的指示可以输出到以下中的一个或多个:所述第一方;和不能符合编程请求中的所述编程要求的规定方。
如果在存储器中存储有与数字文档相对应的记录,则处理器可以被配置为将数字文档已被拒绝的指示发送给第一方。
处理器可以被配置为生成包括以下项中的一项或多项的所述编程报告:对自以下两个时间中的任意一个起由编程机已编程的可编程设备的数量的指示:先前生成的编程报告被生成时;或由编程要求指定的开始时间;编程报告时间,其指示生成所述编程报告的时间;和对所述数字文档的引用或对所述数字文档的指示。
处理器可以被配置为输出所述报告。
处理器可以被配置为:独立分析一个或多个附件中的每一个;和确定所述一个或多个附件中的每一个是否符合所述编程请求。
该数字文档可以由第一方进行数字签名。数字签名有利地提供对数字文档已经被第一方批准的验证。另外,这意味着很难或不可能篡改数字文档。这有利地意味着,一方很难修改有效的数字文档以产生(和/或编程)克隆设备。进一步有利地,这意味着:在未编辑的数字文档原本不能满足编程要求的情况下,一方难以改变该数字文档以使其满足编程请求。它进一步向控制编程机的一方提供优势,因为签名的数字文档提供了以下证据:要编程的数字文档已由第一方有效地编写和批准。由此,控制编程机的一方可以使第一方负责例如由于编程设备而导致的支付款项。有利地,通过使用本发明的实施例,这将意味着第一方将发现难以声称他们没有指示控制编程机的一方承担对设备进行编程的任务。
至少一个编程要求中的一个或多个可以包括以下项中的至少一项:存储在所述存储器中的加密密钥可以在加密操作中使用的阈值次数;所述编程机被授权对所述至少一个可编程设备进行编程的时间段;所述至少一个可编程设备必须被配置为禁用的特征;和授权所述编程模块编程的可编程设备的数量。
所述编程信息可以包括以下项中的至少一项:存储在所述存储器中的密码信息;由所述处理器生成的密码信息,可选地,其中所述密码信息是响应于所述处理器接收到所述编程请求而生成的;所述处理器从所述数字文档中取回的密码信息,优选地,从至少一个附件中的一个或多个中取回的信息;和用于所述编程机从与所述编程机通信的数据存储设备获得密码信息的指令。编程信息可以被编程到可编程设备上。有利地,编程信息被存储在安全数据处理设备上,该安全数据处理设备防止除第一方以外的参与方访问编程信息。编程信息可以是第一方持有的知识产权(IPR)。IPR具有高的价值,因此应该受到保护,但IPR中的一些通常还需要被编程到设备上(例如,软件,密钥等)。
处理器可以被配置为响应于接收到所述编程请求而生成所述密码信息。
处理器可以被配置为从所述数字文档取回密码信息。
所述密码信息可以包括以下项中的至少一项:密码;加密密钥;数字证书;和使可编程设备能够通过身份验证的密码信息。
编程信息可以包括非密码信息。
所述非密码信息可以包括以下项中的至少一项:应用映像和驱动程序映像数据库。
处理器可以被配置为使用优先级机制来解决多个要求之间的冲突。
从以下中的至少一个接收数字文档:所述第一方;和所述编程机。
主编程要求和/或辅助编程要求可以是对编程要求的引用;和/或用于获得编程要求的指令。
第一方可以是原始设备制造商(OEM),可选地可以是OEM的分部。
又一记录可以包括已经根据以下内容对可编程设备进行编程的指示:所述数字文件;和/或所述编程请求。
又一记录包括以下中的至少一项:所述数字文档的一个或多个特性;和对已经由所述编程机编程的可编程设备的引用。
所述辅助编程要求和主编程要求中的至少一个可以包括对允许输出所述编程信息的一个或多个安全数据处理设备的指示。
根据本发明的另一方面,提供了一种方法,包括:接收数字文档,所述数字文档包括由第一方指定的用于对至少一个可编程设备进行编程的至少一个主编程要求;确定在存储器中是否存储有与所述数字文档相对应的记录;从与所述处理器通信的编程机的编程模块接收编程请求,所述编程请求请求对所述至少一个可编程设备的编程;确定所述编程请求是否符合所述数字文档中的至少一个主编程要求;和其中,如果所述编程请求符合所述数字文档中的至少一个主编程要求,并且如果在所述存储器中没有存储与所述数字文档相对应的记录,则所述方法还包括:将编程信息输出到所述编程模块,以对所述至少一个可编程设备进行编程;和在所述存储器中永久地存储又一记录,其中所述又一记录对应于所述数字文档。
根据本发明的另一方面,提供了一种非暂时性计算机可读介质,该非暂时性计算机可读介质存储指令,该指令在由处理器执行时使处理器:接收数字文档,所述数字文档包括由第一方指定的用于对至少一个可编程设备进行编程的至少一个主编程要求;确定在存储器中是否存储有与数字文档相对应的记录;从与所述处理器通信的编程机的编程模块接收编程请求,所述编程请求请求对至少一个可编程设备的编程;和确定所述编程请求是否符合所述数字文档中的所述至少一个主编程要求;其中,如果所述编程请求符合数字文档中的至少一个主编程要求,并且如果在存储器中没有存储与数字文档相对应的记录,则处理器还被配置为:将编程信息输出到编程模块以对至少一个可编程设备进行编程;和在存储器中永久地存储又一记录,其中该又一记录对应于所述数字文档。
指令可以被设置在诸如磁盘、CD-或DVD-ROM之类的载体上、在诸如只读存储器(固件)之类的编程存储器上、或在诸如光或电信号载体之类的数据载体上。实现本发明的实施例的代码(和/或数据)可以包括诸如C语言之类的常规编程语言(解释或编译)的源代码、目标代码或可执行代码、或汇编代码、用于设立或控制ASIC(专用集成电路)或FPGA(现场可编程门阵列)的代码、或用于硬件描述语言的代码。
这些和其他方面将从下面描述的实施例中变得显然。本公开的范围意图既不限于该概述,也不限于必须解决所指出的任何或所有缺点的实现方式。
附图说明
为了更好地理解本公开并示出实施例如何生效,对附图进行参考,在附图中:
图1示出了编程系统100的框图。
图2示出了编程系统200的框图。
图3示出了进出安全数据处理设备的信息流的框图。
图4示出了验证对设备进行编程的请求的有效性的方法。
图5示出了数字文档的图形表示。
图6示出了系统600的框图。
图7示出了注册过程的流程图。
具体实施方式
图1示出了编程系统100的框图。
编程系统100包括安全数据处理设备104、编程机102、可编程设备126,以及可选地包括第一方设备140。
安全数据处理设备104可以具有防止未授权方篡改安全数据处理设备104或从其获取信息的物理限制。安全数据处理设备104包括处理器114、接口116、存储器112,所述存储器112包括工作存储器110和数字文档存储器108。安全数据处理设备104可选地包括与第一方设备140的接口142通信的接口106。通信可以是有线的或无线的。
处理器114耦合到接口116、接口106、工作存储器和数字文档存储器。处理器114被配置为运行存储在工作存储器110中的代码。处理器114还被配置为取回存储在数字文档存储器108中的文档,并且还被配置为将文档存储在数字文档存储器108中。工作存储器110包括代码,该代码在运行时使处理器执行本文所述的步骤。数字文档存储器108可以是工作存储器110的子部分,数字文档存储器108可以是处理器114可访问的单独的数据库,并且可以形成安全数据处理设备104的一部分或者可以远离安全数据处理设备104。数字文档存储器108被配置为存储数字文档。接口116被配置为与编程机102的接口118通信。接口116和118可以无线地或经由有线连接进行通信。一般而言,安全数据处理设备104可以包括处理能力,所述处理能力包括基于硬件的加密加速。
编程机102包括接口118、处理器122、编程模块124和接口120。编程机102被配置为对可编程没备进行编程。换句话说,编程机将软件和其他数字信息输入或“编程”到可编程设备126的存储器128上。编程机能够对许多设备(例如126)进行编程。处理器122耦合到接口118、编程模块124和接口120。处理器122运行存储在编程模块124上的代码,以便经由接口120和接口132对可编程设备进行编程。作为对可编程设备126进行编程的方法的一部分,(编程机的)处理器122可以取回存储在安全数据处理设备104的数字文档存储器108和/或工作存储器110中的信息。然后将从安全数据处理设备中取回到的信息(和/或从所取回到的信息中导出的信息,例如所取回到的信息的加密副本)通过接口120和132编程到可编程设备126的存储器128上。处理器122可以被配置为从安全数据处理设备104接收指令以获得信息。
可编程设备126包括接口132、存储器128和处理器130。可编程设备126经由与接口120通信的接口132与编程机102通信。可编程设备可以是例如硅芯片、微处理器或微控制器。处理器130耦合到接口132和存储器128。
第一方设备140可以是诸如在OEM控制下的通用计算设备之类的设备,或者是可编程设备的高级代表和/或包括可编程设备126的产品。第一方设备包括接口142、处理器146和存储器144。接口142可以被配置为与安全数据处理设备102的接口106通信,并且进一步与编程机102的接口118通信,并且进一步与(第一方的)用户通信。换句话说,第一方设备140可以被配置为直接经由接口142和106,或者间接经由编程机102(即,经由接口142和118,然后经由118和116)将数字文档发送给安全数据处理设备104。
接口106和142、116和118、120和132、142和118之间的通信可以是有线的或无线的。
图2示出了编程系统200的框图。
编程系统200包括安全数据处理设备104。
在图2中可以看出,安全数据处理设备104是编程机202的一部分和/或被封装在编程机202中。安全数据处理设备104可以耦合到编程机202。
编程机202包括接口218、处理器222、编程模块224和接口220。编程机202被配置为对可编程设备进行编程。
图3示出了框图300,其示出了进出安全数据处理设备104的信息流。框图包括第一方340(第一方340可包括第一方设备140)、可编程设备126、安全数据处理设备104、编程模块306和编程机304。编程模块306可以是编程模块124和/或224。编程机304可以是编程机102和/或202。
安全数据处理设备104接收数字文档310。稍后将参考图5讨论数字文档。可以直接从第一方接收数字文档,在某些情况下,第一方可以是图6的原始设备制造商602。在其他实施例中,数字文档310是间接从第一方接收的。
安全数据处理设备104从编程模块306接收编程请求(312)。编程请求是对一个或多个可编程设备进行编程的请求。编程请求从安全数据处理设备104请求编程信息,例如将由编程机编程到可编程设备126上的密码密钥和/或软件。所述编程信息可以允许所述可编程设备在互联网上被安全地身份验证,使得仅正版产品(即由第一方授权编程的设备)才会被允许连接(用于服务、管理和其他活动)。安全数据处理设备104进行检查以查看编程请求是否符合数字文档。如果符合,则安全数据处理设备104将编程信息(314)发送给编程模块306。编程信息至少包含在编程请求中请求的信息。
可选地,安全数据处理设备104输出编程报告(316)。可以将编程报告发送给第一方140。编程报告可以直接或间接地发送给第一方或另一方。
图4示出了验证编程请求的方法(400)。
方法400由安全数据处理设备104的处理器114执行。
在步骤404,处理器114接收数字文档。该数字文档包括至少一个主编程要求。至少一个主编程要求是必须满足的并由第一方指定的要求。第一方可以是图6的OEM 602。处理器114可以直接通过接口106从第一方接收数字文档,或者可以经由接口106通过中间方604接收数字文档。也可以经由接口116通过编程机从第一方接收数字文档。然而,接收到数字文档,在此示例中,该文档源自第一方。数字文档以电子方式接收。
该数字文档可以包括要求,该要求指定可以处理该数字文档和/或根据该数字文档的编程请求的一个或多个安全数据处理设备的身份。
在处理器114已经接收到数字文档之后,处理器114被配置为确定在存储器112中是否存储有与所接收的数字文档相对应的记录。例如,记录可以是先前接收的数字文档。记录可以是完整存储的数字文档,也可以只是先前接收的数字文档的一部分。例如,记录可以是先前数字文档的散列。该记录可以是数字文档的精简版本。例如,记录可以是一系列选项,所述一系列选项当与数字文档模板结合时可以创建数字文档。该记录仅可以代表先前接收的数字文档的信息的一部分。
步骤406的主要目的是确定是否尝试多次履行同一数字文档。有利地,这意味着在这种场景下,安全数据处理设备可以最终否决编程机102(和/或202)对克隆设备进行编程。如果处理器114确定在存储器中已经存储与所接收的数字文档相对应的记录,则处理器114可以可选地输出指示(步骤408)。然而,不管是否输出指示,如果处理器114确定在存储器中已经存储与所接收的数字文档相对应的记录,则处理器114将不会向编程机102(和/或202)输出编程信息。换句话说,安全数据处理设备将阻止数字文档的履行。该指示可以是发送给另一方的警报或消息,例如发送给图6的OEM 602或中间机构604的警报或消息。该指示可以发送给第一方。该指示可以是尝试多次履行数字文档的日志,这样的指示可以类似地发送给第一方,和/或可以发送给安全数据处理设备的存储器以进行存储。日志存储在安全数据处理设备的存储器中,以便授权方可以在以后的日子访问日志并确定已进行了多少指示,这将指示安全数据处理设备已接收到多少未授权数字文档。该过程可以在步骤408之后结束。该过程可以在步骤406之后直接结束。当处理器114接收到另一新的数字文档时,该过程可以再次开始。
在步骤412,安全数据处理设备的处理器114接收编程请求。经由接口118和116从编程机102(和/或202)接收编程请求。编程请求包括对编程机102(和/或202)对多个可编程设备126进行编程的请求。编程请求中可能还包含另外的信息,例如,要编程的设备类型的规范(例如,要激活的可编程设备的存储器、CPU、芯片制造、用于对每个设备进行编程的时间,等等)。编程请求可以请求将一些信息输出到编程机。该信息将用于对可编程设备126进行编程,并且在某些情况下,安全数据处理设备响应于编程请求而输出的信息将由编程机102(和/或202)直接编程到可编程设备126上。
在步骤414,处理器被配置为确定编程请求是否符合在步骤404中接收的数字文档中提出的要求。在步骤414期间,处理器确定是否满足主编程要求(第一方规定的要求),并且还确定是否满足辅助要求(辅助要求可能已经由包括第一方的任何一方规定)。
不满足编程要求的示例如下。编程要求可以声明只能对500个可编程设备进行编程。编程请求可能请求对1000个设备进行编程。在这种场景下,编程请求不符合数字文档的编程要求,因此,编程信息将不会输出到编程模块。
不满足编程要求的另一示例如下。编程要求可以声明只能在2018年1月1日至2018年6月1日之间对可编程设备进行编程。编程请求可能请求在2018年10月期间对多个设备进行编程。在这种场景下,编程请求不符合数字文档的编程要求,因此,编程信息将不会输出到编程模块。
满足编程要求的示例如下。编程要求可以声明只能对500个可编程设备进行编程。编程请求可能请求对500个设备进行编程。在这种情况下,编程请求符合数字文档的编程要求,因此,如果满足所有其他编程要求,则编程信息将输出到编程模块。
满足编程要求的另一示例如下。编程要求可以声明只能在2018年1月1日至2018年6月1日之间对可编程设备进行编程。编程请求可能请求在2018年3月期间对多个设备进行编程。在这种情况下,编程请求符合数字文档的编程要求,因此,如果满足所有其他编程要求,则编程信息将输出到编程模块。
如果安全数据处理设备114的处理器确定满足了必须满足的所有要求,则安全数据处理设备104将仅输出编程请求中所请求的信息。数字文档声明了必须满足的要求。在一些示例中,数字文档可以列出两个或两个以上都可接受的备选方案,在这种情况下,如果编程请求满足任何一个备选方案,则编程请求该要求。
可选地,如果处理器114确定编程请求不符合所接收的数字文档的所有编程要求,则处理器可以输出指示(步骤416)。处理器114可以将该指示输出到第一方。备选地,处理器可以将指示输出到存储器112以进行存储。处理器114可以将指示输出到第三方,其中第三方是与不满足的编程要求关联的一方。例如,如果编程请求包括了对要编程1000个设备的请求,但是编程要求(在数字文档中列出)声明了仅可以对500个设备进行编程,则处理器114被配置为确定该编程请求的一部分不符合至少一个编程要求。处理器114然后可以向第一方输出编程机尝试对数字文档中所同意的数目更多的设备进行编程的指示。在一个示例中,图6的可编程设备制造商610可能已经定义了辅助编程要求,即只能访问可编程设备的基本功能级别。如果编程请求请求将可编程设备编程为高功能级别,则编程请求不满足数字文档。在这种场景下,尽管处理器114可以向第一方输出指示,但是处理器114可以备选地或附加地向可编程设备制造商610输出指示,因为可编程设备制造商610的要求未被满足。在任何情况下,如果编程请求不满足编程要求,则安全数据处理设备不将所请求的信息(对设备进行编程所必需的)提供给编程机102(和/或202)。如果处理器114确定编程请求不符合所接收的数字文档的全部编程要求,则该过程结束(可选地在步骤416之后)。
如图所示,步骤412和406的顺序可以相反。当步骤412在步骤406之前执行时,步骤414可以在步骤406之前执行或可以不在步骤406之前执行。
可以在步骤404之前执行步骤412。一般而言,任何顺序都是可能的,但是,步骤406通常只能在执行了步骤404之后执行。类似地,步骤414通常只能在执行步骤412之后执行。
如果处理器114确定编程请求确实符合编程要求(并且处理器114还确定了在存储器中没有存储与数字文档相对应的记录,该数字文档可选地是从第一方接收的),则处理器将编程信息输出到编程机的编程模块124(和/或224)(步骤420)。输出的编程信息通常是在编程请求中请求的信息。可以经由接口116和118(和/或218)并且还可选地经由处理器122将输出的编程信息传送到编程模块124(和/或224)。编程机然后使用编程信息来对一个或多个可编程设备126进行编程。
在步骤422,处理器114被配置为将接收到的数字文档的记录存储在存储器112中(优选地在数字文档存储器108中)。步骤422可以仅在处理器114已经接收到编程请求已被履行或完成的指示时才发生。处理器114可以被配置为接收编程请求已被履行或完成的指示。附加地或备选地,处理器114可以接收数字文档的项目已被履行的指示。这些指示可以经由接口118和116(和/或218)从编程机102(和/或202)接收。这些指示可以从第一方接收。数字文档的记录被存储在安全数据处理设备的存储器中,使得当/如果未来再接收到另一数字文档时,处理器114能够通过与先前履行的数字文档比较(通过使用与先前履行的数字文档相对应的存储记录)来检查是否已经履行了该数字文档。这具有优于现有技术的安全数据处理设备的优点,因为本发明的实施例提供了一种安全数据处理设备,该安全数据处理设备可以确定之前是否已经履行了数字文档。有利地,将该记录存储在防篡改安全数据处理设备中。这优于在其他地方存储该记录,因为当存储在安全数据处理设备上时,该记录很难被篡改。
可选地,处理器可以被配置为输出编程报告424。这可以在步骤422之前或之后完成。通常,处理器可以被配置为在任何时间输出编程报告,例如在接收到输出编程报告的请求时。编程报告可以是与由编程机进行的当前编程的状态有关的信息。编程报告可以是与由编程机编程的可编程设备有关的信息。
图5示出了数字文档(500)的图形表示。在该实施例中,数字文档502包括主体504和四个附件(510、516、520、522)。
主体504包括一个或多个主编程要求。例如,506“只能对1000个设备进行编程”和508“只能在2019年1月1日格林尼治标准时间13:00和2020年1月1日格林尼治标准时间13:00之间对设备进行编程”。
附件A510包含两个辅助要求,即512“每个可编程设备只能访问10亿个晶体管”和514“必须存储每个可编程设备上使能的特征的记录”。
附件B516包括一个辅助要求518,“在编程了500个设备后,应将编程报告发送给OEM”。
附件C520包括一个辅助要求522“加密信息”。
附件D526包括两个辅助要求528“HSM标识”和530“公钥”。
附件E 534包括一个辅助要求532“每编程1000个设备后,将从OEM向中间机构发送编程报告”。
附件F 538包括一个辅助要求536“工厂必须每月对这个月期间编程的每个可编程设备收取报酬”。
数字文档502可以对应于图3中的数字文档310。主体504包括由第一方指定的主编程要求,该第一方可以是OEM、OEM的分部或另一方。主编程要求506和508示出了第一方在数字文档502中编写的要求的示例。换句话说,第一方也可以由单独的部门组成(例如,第一方安全管理、第一方采购),部门之一可以添加想要其他部门遵守的一些条款(附件)。这可以作为数字文档的一部分被包括在内。例如,这些条款(附件)可能是供所有部门使用的根证书的定义。
附件510指定了两个辅助编程要求(512和514)。附件510是由至少一个可编程设备的制造商指定的一组两个编程要求。附件516指定了一个要求(518)。附516由第一方指定。附件520仅包含第一方指定的加密信息(522)。例如,这可以是将由编程机取回(如果编程机被授权对可编程设备进行编程),然后输入到可编程设备上的加密密钥或加密软件。作为另一示例,附件520可以包括加密软件,安全数据处理设备可以使用该附件来对设备证书进行签名。附件520由第一方指定。524是签名。应该理解,这是图形表示。在实施例中,签名可以是数字签名,包括基于密钥的数字签名。该数字签名可以进一步涉及散列函数。签名可以使用以下中的任何一项:RSA算法、EC-DSA算法和GMR签名方案。另外,每个附件(即,每套辅助编程要求510、516、520、526)由编写该附件的一方进行数字签名。附件526包含安全数据处理设备标识526和公钥528。安全数据处理设备标识标识出需要用于对编程设备进行编程(与编程机结合)的安全数据处理设备(或一组安全数据处理设备)。附件526还包括用于签名和其他密码功能的公钥。
图6是系统600的示例,该系统600包括原始设备制造商(OEM)602、中间设备604、工厂608和可编程设备制造商610。原始设备制造商(OEM)602可以是前面提到的第一方。工厂608可以是对可编程设备进行编程的一方,其中可编程设备已经由可编程设备制造商610制造。
可编程设备制造商610可以制造在许多不同设备中使用的硅芯片。可编程设备制造商610可以生产能够在不同的处理水平上执行的通用硅芯片(或者通常是微处理器),这取决于已经使能了芯片的哪些部分(或特征)。可编程设备制造商610可能已经售出了仅使能了某些特征(例如,某种级别的存储器或CPU)的可编程设备,因此不希望工厂608以使能比同意(和/或付费)的特征更高规范特征的方式对可编程设备进行编程。
工厂608可以将软件和密码信息(在编程信息中接收到)输入到OEM 602的可编程设备上。工厂608可能希望向OEM 602证明仅对特定数量的设备进行了编程。在一些情况下,工厂608可能想要证明已根据与可编程设备制造商610达成的协议对可编程设备进行了编程,因为工厂608可以根据协议收到对可编程设备进行编程的报酬。工厂负责利用安全数据处理设备104来对所需数量的可编程设备(如数字文档中所列出的)进行编程。然后,可编程设备将被放入OEM的产品中(通过工厂608或其他制造工厂)。
图6示出了涉及可被称为包括可编程设备的产品的生产链的各方中的一些参与方的示例。该产品可以是物联网设备,例如智能手表、智能传感器、智能手机或智能扬声器。由图6的系统生产的产品通常由OEM 602委托。OEM 602通常与许多方合作将产品(例如物联网设备)推向市场。由于可能存在要与之通信的许多参与方,因此OEM 602可以与中间机构604合作以协调和整理来自许多参与方的信息。换句话说,中间机构604可以代表OEM 602监督产品的生产的一定比例。OEM 602可能不信任利用OEM知识产权(例如源代码和密钥)的生产链中的其他参与方。但是,例如,工厂608通常需要访问某种形式的OEM IPR(即使已加密),以便用OEM的IPR对可编程设备进行编程。在此示例中,IPR可以是操作软件、数字证书或加密密钥,但是还存在许多其他示例。一般而言,生产链中的每一方都会有想要参与生产过程的至少一个另一方满足的要求。然而,对于每一方而言,可能难以监督、确认和/或强制所述至少一个另一方满足其要求。另外,各方也很难向其他方证明或反驳他们的要求(他们所规定的要求或他们所要求的要求)被满足。本发明的实施例提供了一种确保满足要求并向其他人提供已经满足要求的证据的系统。
OEM 602可以准备关于可编程设备生产的数字文档。OEM 602编写主编程要求,所述主编程要求或者被称为数字文档的主体。合同的示例是图5中的数字文档502。在数字文档中设置的参数的示例可以是要编程的可编程设备的技术规范、编程到设备上的信息内容、要由设备编程器编程的可编程设备的单元数量等。主编程要求(也称为数字文档的主体)可以在图5中的项目504中看到。
可能还有其他各方(即,中间机构604、工厂608和可编程设备制造商610)提出的其他方希望附加到数字文档的要求。这些可以看作是数字文档的附件或附属部分。附件或附属部分包括辅助要求,这些辅助要求是由未编写数字文档主体的参与方提出的要求。OEM602的分部也可能有其自己的要求,因此可以将其自己的附件添加到数字文档。第一方(例如OEM 602)也可以编写附件,例如图5的520、526)。
在图6中,虚线630、632和636分别表示中间机构604、工厂608、可编程设备制造商610与附件E、F和A之间的链接。一旦各方604、608和610创建了它们的附件,各方中的每一方就将附件发送给OEM 602。附件发送给OEM 602可以参见箭头640、642和644。OEM 602整理主体和附件,并对完成的数字文档进行签名。优选地,第一方(例如OEM 602)对数字文档进行数字签名。在实施例中,创建附件的各方可以将附件发送给中间机构604,在这个示例中,中间机构将整理附件并准备数字文档,以便准备好由OEM 602(第一方)签名。在实施例中,可以将附件发送给OEM 602,然后传递到中间机构604以进行整理。通常,附件可以以电子或物理方式发送。
一旦OEM 602(或更广泛地说,第一方)已经对数字文档502进行签名,就将数字文档发送(650)给安全数据处理设备104。该步骤也对应于图3中的步骤310。
工厂608的组件可以被认为是分布在多个位置的实体,或者可以被包含在一个机器或一个位置(即工厂)中。安全数据处理设备104可以是一组安全数据处理设备,其可以位于相同位置或分布在多个位置上。
在一些实施例中,OEM 302可以仅向中间机构304提供受密码保护的信息(例如,密钥或证书)、加密的IPR(例如,软件)以及要编程的设备的数量。然后,中间机构可以准备数字文档的其余部分,例如,要对可编程设备进行编程的时间、可编程设备制造商318所需的可编程设备的确切规范(例如,存储器规范,CPU规范)等。
在实施例中,工厂608和/或中间机构604将图3中的316的编程报告传递回OEM602,以验证数字文档已经完成,或者在中间机构阶段验证到目前为止所供应的设备的状态。
图7示出了在第一方设备140和安全数据处理设备104之间的分包安全数据处理设备注册过程的流程图(700)。此过程可能在图3和4的方法之前发生。在步骤704中,第一方设备140将第一方设备的身份发送给安全数据处理设备104。在步骤702中,安全数据处理设备104将安全数据处理设备104的身份发送给第一方设备140。这可以被称为第一方设备和安全数据处理设备之间的握手。该过程的目的是允许两个设备确认对方设备存在。
为了确保第一方可接受与本文所述的安全数据处理设备进行交互,可以在开始将数字文档发送给安全数据处理设备之前向安全数据处理设备注册第一方。这可以看作是单独的事件,在该事件中,双方(即安全数据处理设备和第一方)交换签名信息。在实施例中,注册所需的信息是来自安全数据处理设备的数字文档的一部分(例如,在附件中)。
例如,为了确保OEM对应分包是可接受的,可以在合同流程之前向分包HSM注册OEM。这可以看作是双方交换签名信息的单独事件。或者,HSM身份信息可以稍后作为合同的一部分从HSM交付(例如,在附件中)。
尽管已经参考优选实施例具体示出和描述了本发明构思,但本领域普通技术人员将理解,在不脱离所附权利要求所限定的本公开的精神和范围的情况下,可以在形式和细节上做出各种改变。
Claims (26)
1.一种安全数据处理设备,包括处理器和耦合到所述处理器的存储器,所述处理器被配置为:
接收数字文档,所述数字文档包括由第一方指定的用于对至少一个可编程设备进行编程的至少一个主编程要求;
确定在所述存储器中是否存储有与所述数字文档相对应的记录;
从与所述处理器通信的编程机的编程模块接收编程请求,所述编程请求请求对所述至少一个可编程设备进行编程;
确定所述编程请求是否符合所述数字文档中的所述至少一个主编程要求;以及
其中,如果所述编程请求符合所述数字文档中的所述至少一个主编程要求,并且在所述存储器中没有存储与所述数字文档相对应的记录,则所述处理器还被配置为:
将编程信息输出到所述编程模块,以对所述至少一个可编程设备进行编程;以及
在所述存储器中永久地存储又一记录,其中所述又一记录对应于所述数字文档。
2.根据权利要求1所述的安全数据处理设备,其中,所述数字文档包括一个或多个附件,其中,所述一个或多个附件中的至少一个附件由至少一个其他方中的一方指定,并且包括用于对所述至少一个可编程设备进行编程的至少一个辅助编程要求。
3.根据任一前述权利要求所述的安全数据处理设备,其中,所述处理器被配置为:
生成编程报告,所述编程报告提供对所述编程机承担的编程的指示;以及
输出所述编程报告。
4.根据权利要求3所述的安全数据处理设备,其中,所述处理器被配置为将所述编程报告输出给以下中的一个或多个:
所述编程模块;
所述第一方;以及
所述安全数据处理设备外部的数据库。
5.根据任一前述权利要求所述的安全数据处理设备,其中,所述至少一个编程要求中的一个或多个指定在何处输出所述编程报告。
6.根据任一前述权利要求所述的安全数据处理设备,其中,至少一个编程要求指定何时生成编程报告。
7.根据权利要求3至6中任一项所述的安全数据处理设备,其中,所述处理器被配置为对所述编程报告进行数字签名。
8.根据任一前述权利要求所述的安全数据处理设备,其中,如果所述主编程要求中的至少一个未能符合所述编程请求,则所述处理器被配置为输出所述数字文档已被拒绝的指示。
9.根据权利要求2至8中任一项所述的安全数据处理设备,其中,如果所述辅助编程要求和所述主编程要求中的至少一个未能符合所述编程请求,则所述处理器被配置为输出所述数字文档已被拒绝的指示。
10.根据权利要求8至9中任一项所述的安全数据处理设备,其中,所述处理器被配置为将所述数字文档已被拒绝的所述指示输出给以下中的一个或多个:
所述第一方;
指定未能符合所述编程请求的所述编程要求的一方;以及
所述编程机。
11.根据任一前述权利要求所述的安全数据处理设备,其中,如果在所述存储器中存储有与所述数字文档相对应的记录,则所述处理器被配置为向所述第一方发送所述数字文档已被拒绝的指示。
12.根据权利要求3至11中任一项所述的安全数据处理设备,其中,所述处理器被配置为生成包括以下中的一项或多项的所述编程报告:
对自以下两个时间中的任一个起所述编程机已编程的可编程设备的数量的指示:先前生成的编程报告被生成时;或,由编程要求指定的开始时间;
编程报告时间,其指示生成所述编程报告的时间;以及
对所述数字文档的引用或对所述数字文档的指示。
13.根据权利要求3至12中任一项所述的安全数据处理设备,其中,所述处理器被配置为输出所述编程报告。
14.根据任一前述权利要求所述的安全数据处理设备,其中,所述处理器被配置为:
独立分析所述一个或多个附件中的每一个;以及
确定所述一个或多个附件中的每一个是否符合所述编程请求。
15.根据任一前述权利要求所述的安全数据处理设备,其中,所述数字文档由所述第一方进行数字签名。
16.根据任一前述权利要求所述的安全数据处理设备,其中,所述至少一个编程要求中的一个或多个包括以下项中的至少一项:
存储在所述存储器中的加密密钥能在加密操作中使用的阈值次数;
所述编程机被授权对所述至少一个可编程设备进行编程的时间段;
所述至少一个可编程设备的必须被配置为禁用的特征;以及
授权所述编程模块编程的可编程设备的数量。
17.根据任一前述权利要求所述的安全数据处理设备,其中,所述编程信息包括以下项中的至少一项:
存储在所述存储器中的密码信息;
由所述处理器生成的密码信息,可选地,其中所述密码信息是响应于所述处理器接收到所述编程请求而生成的;
由所述处理器从所述数字文档中取回的密码信息,优选地,从所述至少一个附件中的一个或多个中取回的信息;以及
用于所述编程机从与所述编程机通信的数据存储设备获取密码信息的指令。
18.根据任一前述权利要求所述的安全数据处理设备,其中,所述处理器被配置为响应于接收到所述编程请求而生成所述密码信息。
19.根据任一前述权利要求所述的安全数据处理设备,其中,所述处理器被配置为从所述数字文档取回密码信息。
20.根据任一前述权利要求所述的安全数据处理设备,其中,所述处理器被配置为使用优先级机制来解决多个要求之间的冲突。
21.根据任一前述权利要求所述的安全数据处理设备,其中,所述处理器被配置为从以下中的至少一个接收所述数字文档:
所述第一方;以及
所述编程机。
22.根据任一前述权利要求所述的安全数据处理设备,其中,所述又一记录包括以下项中的至少一项:
所述数字文档的一个或多个特性;以及
对所述编程机已经编程的可编程设备的引用。
23.根据任一前述权利要求所述的安全数据处理设备,其中,所述主编程要求中的至少一个包括对允许输出所述编程信息的一个或多个安全数据处理设备的指示。
24.根据权利要求2至23中任一项所述的安全数据处理设备,其中,所述辅助编程要求和所述主编程要求中的至少一个包括对允许输出所述编程信息的一个或多个安全数据处理设备的指示。
25.一种方法,包括:
接收数字文档,所述数字文档包括由第一方指定的用于对至少一个可编程没备进行编程的至少一个主编程要求;
确定在存储器中是否存储有与所述数字文档相对应的记录;
从与所述处理器通信的编程机的编程模块接收编程请求,所述编程请求请求对所述至少一个可编程设备进行编程;
确定所述编程请求是否符合所述数字文档中的所述至少一个主编程要求;以及
其中,如果所述编程请求符合所述数字文档中的所述至少一个主编程要求,并且在所述存储器中没有存储与所述数字文档相对应的记录,则所述方法还包括:
将编程信息输出到所述编程模块,以对所述至少一个可编程设备进行编程;以及
在所述存储器中永久地存储又一记录,其中所述又一记录对应于所述数字文档。
26.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令,所述指令在由处理器执行时使所述处理器:
接收数字文档,所述数字文档包括由第一方指定的用于对至少一个可编程设备进行编程的至少一个主编程要求;
确定在存储器中是否存储有与所述数字文档相对应的记录;
从与所述处理器通信的编程机的编程模块接收编程请求,所述编程请求请求对所述至少一个可编程设备进行编程;以及
确定所述编程请求是否符合所述数字文档中的所述至少一个主编程要求;
其中,如果所述编程请求符合所述数字文档中的所述至少一个主编程要求,并且在所述存储器中没有存储与所述数字文档相对应的记录,则所述处理器还被配置为:
将编程信息输出到所述编程模块,以对所述至少一个可编程设备进行编程;以及
在所述存储器中永久地存储又一记录,其中所述又一记录对应于所述数字文档。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1902469.4A GB2581527B (en) | 2019-02-22 | 2019-02-22 | Security data processing device |
GB1902469.4 | 2019-02-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111611587A true CN111611587A (zh) | 2020-09-01 |
Family
ID=65998820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010110429.1A Pending CN111611587A (zh) | 2019-02-22 | 2020-02-21 | 安全数据处理设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11362839B2 (zh) |
EP (2) | EP4113346B1 (zh) |
CN (1) | CN111611587A (zh) |
GB (1) | GB2581527B (zh) |
TW (1) | TWI833900B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023283460A1 (en) * | 2021-07-08 | 2023-01-12 | Data I/O Corporation | Secure device programming system with hardware security module and security interop layer |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9081963B1 (en) * | 2009-02-27 | 2015-07-14 | Marvell Israel (M.I.S.L) Ltd. | Protecting against use of unauthorized electronic hardware devices |
US9111098B2 (en) * | 2009-07-10 | 2015-08-18 | Certicom Corp. | System and method for managing electronic assets |
US8843764B2 (en) * | 2011-07-15 | 2014-09-23 | Cavium, Inc. | Secure software and hardware association technique |
US20130086385A1 (en) * | 2011-09-30 | 2013-04-04 | Yuri Poeluev | System and Method for Providing Hardware-Based Security |
US20150381368A1 (en) * | 2014-06-27 | 2015-12-31 | William A. Stevens, Jr. | Technologies for secure offline activation of hardware features |
US10129035B2 (en) * | 2015-08-10 | 2018-11-13 | Data I/O Corporation | Device birth certificate |
US10496811B2 (en) * | 2016-08-04 | 2019-12-03 | Data I/O Corporation | Counterfeit prevention |
WO2018046009A1 (zh) * | 2016-09-12 | 2018-03-15 | 上海鼎利信息科技有限公司 | 一种区块链身份系统 |
US10534581B2 (en) * | 2017-06-13 | 2020-01-14 | International Business Machines Corporation | Application deployment on a host platform based on text tags descriptive of application requirements |
-
2019
- 2019-02-22 GB GB1902469.4A patent/GB2581527B/en active Active
-
2020
- 2020-02-07 EP EP22190932.8A patent/EP4113346B1/en active Active
- 2020-02-07 US US16/784,468 patent/US11362839B2/en active Active
- 2020-02-07 EP EP20156237.8A patent/EP3699802B1/en active Active
- 2020-02-13 TW TW109104521A patent/TWI833900B/zh active
- 2020-02-21 CN CN202010110429.1A patent/CN111611587A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3699802A1 (en) | 2020-08-26 |
US20200274716A1 (en) | 2020-08-27 |
TWI833900B (zh) | 2024-03-01 |
GB2581527A (en) | 2020-08-26 |
EP4113346B1 (en) | 2024-03-20 |
GB201902469D0 (en) | 2019-04-10 |
TW202038121A (zh) | 2020-10-16 |
EP4113346A1 (en) | 2023-01-04 |
GB2581527B (en) | 2023-02-08 |
EP3699802B1 (en) | 2022-08-24 |
US11362839B2 (en) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11171782B2 (en) | Identity and electronic signature verification in blockchain | |
US6389534B1 (en) | Cryptographic policy filters and policy control method and apparatus | |
TW202002570A (zh) | 基於區塊鏈的電子簽名方法及裝置、電子設備 | |
CN109074449A (zh) | 在安全飞地中灵活地供应证明密钥 | |
KR20210041404A (ko) | 전자 장치 및 그 전자 장치를 이용한 블록체인 주소 관리 방법 | |
TW202109320A (zh) | 基於可信執行環境的應用程式啟動方法及裝置 | |
US20220083936A1 (en) | Access control method | |
CN110689295A (zh) | 区块链通用rfid翻译器 | |
CN111295655A (zh) | 用于一个或多个进程的分布式隐私保护共享执行的计算机系统和方法 | |
CN111628863B (zh) | 一种数据签名的方法、装置、电子设备及存储介质 | |
CN103186723A (zh) | 数字内容安全协作的方法和系统 | |
US7721100B2 (en) | Granting an access to a computer-based object | |
CN111611587A (zh) | 安全数据处理设备 | |
CN113868691B (zh) | 一种基于云原生的区块链的授权运行方法及装置 | |
CN115766064A (zh) | 一种密码应用方法、装置、设备及存储介质 | |
CN115270159A (zh) | 一种区块链的智能合约调用方法、装置设备及存储介质 | |
CN111492617B (zh) | 用于验证数字证书的方法和验证设备 | |
TWI840506B (zh) | 安全資料處理裝置(二) | |
US11526598B2 (en) | Microcontroller and semiconductor device | |
JP7211472B2 (ja) | データ書き込み方法 | |
CN110750808B (zh) | 一种票据处理方法、装置及存储介质装置 | |
EP3701414B1 (en) | Systems and methods for confirming a cryptographic key | |
WO2023232617A1 (en) | Encryption and decryption of transactions of a distributed ledger | |
CN118202356A (zh) | 工业控制装置连同人工智能模块的安全运行 | |
CN116028984A (zh) | 用于电子装置的客户标识值的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |