CN116158051A - 对可编程装置进行远程编程的方法 - Google Patents

对可编程装置进行远程编程的方法 Download PDF

Info

Publication number
CN116158051A
CN116158051A CN202180057344.4A CN202180057344A CN116158051A CN 116158051 A CN116158051 A CN 116158051A CN 202180057344 A CN202180057344 A CN 202180057344A CN 116158051 A CN116158051 A CN 116158051A
Authority
CN
China
Prior art keywords
program code
programmable device
unique
unique data
function
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
Application number
CN202180057344.4A
Other languages
English (en)
Inventor
J·珀赖因
K·维莱加斯
D·哈纳赛克
A·尼科林
R·鲁洛
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.)
Nagra Imaging Co ltd
Original Assignee
Nagra Imaging Co ltd
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 Nagra Imaging Co ltd filed Critical Nagra Imaging Co ltd
Publication of CN116158051A publication Critical patent/CN116158051A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • 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
    • G06F21/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • 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
    • G06F21/76Protecting 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 in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation 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
    • 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
    • H04L9/3278Cryptographic 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

一种用于对被设计成提供预期敏感结果(45)的可编程装置(35)进行远程编程的方法,所述方法包括:‑将第一程序代码(41)传输到所述可编程装置(35),所述第一程序代码(41)被配置成获得对于所述可编程装置(35)是唯一和物理上固有的至少一个独特数据(35d),‑检索所述独特数据(35e)以生成第二程序代码(42),所述第二程序代码被配置成在所述第二程序代码(42)在已产生所述独特数据(35d)的所述可编程装置(35)上执行的情况下提供所述预期敏感结果(45),以及10‑将所述第二程序代码(42)传输到所述可编程装置(35),以便将所述第二程序代码(42)加载到所述可编程装置(35)中。

Description

对可编程装置进行远程编程的方法
技术领域
本公开涉及远程可编程装置的领域,诸如被设计成在远程不可信平台上提供敏感服务或执行待保护的功能的硬件。为此,本公开涉及一种用于对被设计成提供预期敏感结果的可编程装置进行远程编程的方法。还涉及此类可编程装置,以及用于向此类可编程装置远程提供程序代码的提供者。
背景技术
不可信环境中的平台易于被窃取、克隆或受黑客攻击以检索和利用敏感或有价值的信息。在基于远程信息源的环境中,黑客有可能转移与远程源的通信并且假装成为可信系统的一部分以便获得对此类信息或服务的访问。
在其他操作期间,例如当在此类可编程装置上远程升级软件时,也可能存在必须处理欺诈行为的风险。软件可能遭受由外部方出于若干目的而进行的恶意攻击,诸如反向工程攻击。一些攻击可能试图修改软件,例如绕过某些特征或在其中添加恶意代码段、复制软件或读取软件以便理解其如何工作。
在克服此类担忧的尝试中,一些装置被配置为使用所谓的真随机数发生器(TRNG)(也称为硬件随机数发生器(HRNG))来生成标识符。此类发生器是根据物理过程而不是仅仅基于算法来生成随机数的装置。由此类发生器使用的物理过程被定义为是不可预测的,因为它是基于产生低电平信号的微观现象。然而,使用TRNG生成编号以提供唯一编号不足够有效,因为一旦所生成的值已知,任何黑客都可以克隆该解决方案以用于复制目的。
文献US 2019/305927 A1公开了基于节点锁定的比特流安全性。更具体地,该文献公开了FPGA(现场可编程门阵列)安全性的方法,其提供针对现场比特流重编程以及知识产权(IP)盗版的保护,同时允许无线重新配置而不加密。
文献US 2014/258736 A1公开了用于维持不可信计算平台中的完整性和安全性的系统和方法。更具体地,该文献公开了一种方法,其用于基于可信处理器的至少一个硬件部件中的物理不可克隆函数(PUF)来生成秘密密码密钥,然后使用前述秘密密码密钥来生成第一公钥和第一私钥,并且执行对应于第一软件程序的指令代码。
文献US 8 918 647 B1公开了一种认证系统,并且更具体地涉及硬件验证和绑定认证,以防止篡改和通过替换来重写。
因此,需要一种有效且可靠的解决方案来防止此类威胁并且至少部分地克服上述问题和缺点。更具体地,此类解决方案应当能够至少保护有价值的服务或信息的完整性和机密性,为此设计远程平台上的此类可编程装置。这种解决方案还应当能够有效地防止有价值的相关产品或服务的复制,并且如果有的话,提供远程平台的安全升级。
发明内容
为了解决这一问题,作为第一方面,本公开提出了一种用于对被设计成提供预期敏感结果的可编程装置进行远程编程的方法,所述方法包括:
-将第一程序代码传输到可编程装置,所述第一程序代码被配置为获得对于该可编程装置是唯一且物理上固有的至少一个独特数据,
-检索所述独特数据以生成第二程序代码,该第二程序代码被配置为在已经产生了该独特数据的可编程装置上执行该第二程序代码时提供预期敏感结果,以及
-将所述第二程序代码传输到可编程装置,以便将第二程序代码加载到可编程装置中。
由于本发明解决方案,可改变第二程序代码的功能状态,使得第二程序代码可仅在该第二程序代码在单个且特定的可编程装置,即唯一的可编程装置,更具体地已在执行第一程序代码之后产生独特数据的装置上运行时,提供预期敏感结果。这意指,即使使得第二程序代码可用于第三方以使其在类似于已产生独特数据的装置的第三方的可编程装置上运行,由该装置提供的结果也将不同于预期敏感结果。因此,第二程序代码有利地绑定到唯一的可编程装置,使得尽管该装置在物理上位于可能遭受许多恶意攻击的远程不可信平台上,但是由该第二程序代码提供的结果仍然被有效地免于受到此类攻击,因为第二程序代码将仅在其由该唯一的可编程装置执行时才提供预期敏感结果。此外,第二程序代码可以以使得反向工程将更加困难并且仅在该第二程序代码在特定可编程装置上执行时其实际设计才会被重构的方式改变。
优选地,第一程序代码和第二程序代码由经由通信信道远程链接到可编程装置的提供者设计。
根据一个实施方案,该独特数据由应用于可编程装置的至少一个部件的物理不可克隆函数(PUF)产生或导出。
在一个实施方案中,第二程序代码由根据独特数据的可逆函数来变换。优选地,可逆函数是数学函数或逻辑函数。
在另一个实施方案中,第二程序代码通过由改变的部分替换可从所述独特数据检索的至少一个程序代码部分来变换。
根据一个实施方案,第二程序代码是一组可区分的可编程装置所共有的全局程序代码,其被配置为通过用于所述组中的至少一个可编程装置的个人设置消息来个性化,所述个人设置消息基于相关可编程装置的独特数据。
优选地,相关可编程装置包括唯一函数,该唯一函数被配置为由用作所述唯一函数中的输入数据的个人设置消息提供第一密钥,所述第一密钥还被用作全局程序代码的输入,以用于由此提供预期敏感结果。
在一个实施方案中,全局程序代码是密码算法。
优选地,预期敏感结果是第二密钥,优选地是激活密钥或密码密钥。
在一个实施方案中,传输步骤和检索步骤中的至少一者通过认证过程和加密过程中的至少一者来保护。
在另一实施方案中,第一程序代码和第二程序代码中的至少一者是网表、源代码或机器代码。
优选地,在通信信道至少部分地由全球网络或由不可信通信信道提供的情况下,第一程序代码以安全的方式被传输到可编程装置,以便确保第一程序代码的真实性和完整性。
根据第二方面,本公开还涉及一种可编程装置,其被设计成根据上述方法远程编程,该方法可根据其实施方案中的任一个或者根据这些实施方案的任何可能组合来执行,以便提供预期敏感结果。该可编程装置包括:
-至少一个独特数据,其对于可编程装置是唯一且物理上固有的,
-通信接口,其用于接收第一程序代码和第二程序代码,该第一程序代码被配置为获得所述独特数据,该第二程序代码被配置为基于所述独特数据提供预期敏感结果,
-至少一个存储器,其用于存储所述第一程序代码和第二程序代码,以及
-处理器或硬件状态机,其用于执行所述第一程序代码和第二程序代码。
在第三方面,本公开涉及一种提供者,其用于根据上述方法向至少一个可编程装置远程提供程序代码,该方法可根据其实施方案中的任一个或根据这些实施方案的任何可能组合来执行。该提供者包括:
-程序代码生成器,其用于生成第一程序代码和第二程序代码,所述第一程序代码被配置为获得对于该可编程装置是唯一且物理上固有的至少一个独特数据,该第二程序代码被配置为基于所述独特数据提供预期敏感结果,以及
-通信接口,其被配置为连接到通信信道,以用于将所述第一程序代码和所述第二程序代码传输到可编程装置并且用于由此接收所述独特数据。
将在详细描述中公开其他实施方案和优点。
附图说明
本公开中提出的解决方案和实施方案应被视为非限制性示例,并且参考附图将被更好地理解,其中:
图1是其中可以实现本方法的典型环境的示例,
图2描述了本解决方案的方法的流程图连同该方法中所涉及的主要实体,并且
图3描述了图2中所示方法的变型形式。
详细说明
图1示出了环境的示意性概述图,该环境包括三个主要实体,即提供者10、用户单元20和包括至少可编程装置35的平台30。这些实体可以通过网络(通常是不可信网络,诸如因特网)彼此连接。然而,代替广域网(WAN)或除了WAN之外,也可使用局域网(LAN)诸如专用网络。优选地,提供者10和用户单元20两者均远程连接到平台30,使得平台30可被视为位于云端。应当注意,为了理解本发明解决方案的原理,不必要将用户单元20连接到提供者10,例如用于交换数据或消息。因此,在提供者10和用户20之间没有图1中所示的直接连接或链接,尽管这可能是实际情况。
提供者10优选地位于安全区域内。提供者通常被设计为提供程序代码40,特别是旨在用于物理上位于平台30中的可编程装置35的程序代码。此类程序代码40也被本领域技术人员称为“网表”。所谓的网表可被认为是以用于编程装置的代码形式存在的一组源数据,所述编程装置一旦被编程就将具有至少一种期望的函数或应用程序。该代码可以为高级软件语言,并且程序代码40可存储在所谓的源文件中。程序代码通常可涉及计算机程序或对应于软件程序的指令代码,该软件程序包括将由处理器以不同序列执行以运行程序的指令。
用户单元20可被认为是需要平台30的服务,特别是可编程装置35的服务的任何种类的装置。因此,如果可编程装置35例如被编程有被配置为执行任务和/或提供某些服务或结果的应用程序,则用户单元20可被认为是可能需要接收此类服务或结果的装置,诸如客户端单元。为此,优选地存在可在用户单元20和平台30之间建立的双向连接,如图1中示意性示出的。尽管单个用户单元20是图1中所示的环境的一部分,但是应当理解,若干用户单元20可连接到平台30以有利于可编程装置35的服务。
如图1中示意性示出的,可编程装置35因此远离提供者10定位并且优选地远离用户单元20定位。托管可编程装置35的平台30可以是不可信平台。可编程装置35是例如建立在印刷电路板上的电子装置,诸如电子电路,至少一个程序代码40可被加载到该电子装置上,以便为可编程装置提供至少一个特定特征或功能。此类功能可被设计成处理输入44,以便作为回报提供预期结果作为输出45。输入44可以为待解码的输入信号、待处理的输入数据或消息或者仅仅是请求。输出45可用作传输回用户单元20的响应。仍然优选地并且如图1和图2所示,可编程装置35是可重新编程的硬件元件,诸如所谓的现场可编程门阵列(FPGA)。
每个实体10、20、30包括用于通过至少一个通信信道1交换数据的通信接口11、21、31,所述通信信道可以为网络诸如因特网的一部分。图1典型地表示常规架构,其中提供者10负责生成待被加载到可编程装置35中的程序代码40。程序代码40经由通信信道1发送到远程平台30。一旦被平台30接收,程序代码40就通常被存储在存储装置32中,然后由转换工具33诸如编译器转换为可编程装置35可理解的格式。一旦以此类格式转换,转换的程序代码40’就经由其通信接口35a被传输到可编程装置35,以便被加载到其中。一旦被加载,可编程装置35就获得用于处理由用户单元20作为输入44发送的数据并且作为可编程装置的输出45发回响应或结果的特定功能。
然而,此类方案具有若干弱点。实际上,程序代码40可能在提供者10和可编程装置35之间的不同位置被黑客攻击,特别是由于可编程装置位于其上的平台30可能是不安全或不可信的实体,或者甚至是例如云端中的共享平台的事实。第一攻击点位于提供者10和平台30之间,即在通信信道1内或在广域网内。在该传输期间,恶意者可在无人注意的情况下拦截、复制、修改或窃取程序代码40。第二攻击点和第三攻击点位于存储装置32内和转换工具33内,其可以为黑客的其他进入点。第四攻击点可位于将转换工具33链接到可编程装置35的连接中。最后的攻击点可位于可编程装置35中,例如位于被设计成在可编程装置35内存储转换的程序代码40'的存储器中。
为了克服此类缺点,本发明解决方案公开了主要在图2中所示的方法。该方法被配置为对可编程装置35进行远程编程,该可编程装置被设计成提供预期敏感结果45。此类结果被定义为是敏感的,因为它可能受到攻击,如上所述。敏感结果45可以为由可编程装置35提供的任何类型的数据。例如,敏感结果可以为商业价值或密码密钥。
该方法的第一步骤S1旨在向可编程装置35传输第一程序代码41。该第一程序代码41可被认为是特征化网表或设置网表。因此,第一程序代码41不应与图1所示的程序代码40混淆。实际上,程序代码40是一旦被加载到装置诸如可编程装置35上就可直接用于提供敏感的预期结果45的功能程序代码。另一方面,第一程序代码41不能提供此类预期结果45,因为它不是为该目的而设计的。实际上,第一程序代码41被配置为获得对于可编程装置35是唯一的且物理上固有的至少一个独特数据35d。在图2中,该独特数据35d由可编程装置的DNA部分示意性地示出,并且第一程序代码41示意性地用小瓶压印以收集此类DNA部分。
此类独特数据可来源于振荡器,例如具有特定频率的环形振荡器35e,该特定频率与相同类型的另一环形振荡器的频率不完全相同。即使两个振荡器都是根据相同的制造工艺由单个生产线生产的,情况也是如此。实际上,每个振荡器均具有本质上由其在制造期间所经受的小变化所导致的固有频率。这些微小的变化由制造工艺公差引起,并且由于它们的固有特性而使振荡器成为唯一。对于其他电子部件或电路同样适用,从而不需要仅从振荡器提取特征数据35d;也可使用其他电子部件。从电子部件获得独特数据35可通过在其上测量一个或若干物理量来进行。为此,可应用敏锐的测量装置和/或方法。此外,应当注意,可使用其他技术来产生物理不可克隆函数,诸如基于磁阻随机存取存储器(MRAM)或静态随机存取存储器(SRAM)的技术,两者均依赖于存储器行为。
该方法的第二步骤(S2'和S2")旨在首先检索独特数据35d以便生成第二程序代码42。在图2中,该操作S2’通过对含有可编程装置35的DNA部分的小瓶进行取样来示意性地示出。检索此类数据可通过从平台30,例如从可编程装置35或者从被配置为获得可编程装置的独特数据35d的平台的任何其他装置接收独特数据35d来实现。为此,后者可以例如由于第一程序代码41而被配置为将其独特数据35d传输到提供者10。优选地,一旦已经获得可编程装置35的独特数据35d,就可执行此类传输。该传输可以是安全的,例如在独特数据35d传输到提供者10之前,对该独特数据应用密码处理,并且优选地以及认证处理。密码处理可指任何种类的加密算法,并且认证处理通常可基于数字签名方案。
一旦例如由提供者10检索,后者就能够在操作期间生成第二程序代码42,表示为S2”,这在图2中通过使用由小瓶收集的DNA生成第二程序代码42示意性地示出。该操作可被认为是第二步骤的第二部分。
第二程序代码42是被配置为在已经产生独特数据35d的可编程装置35上执行该第二程序代码的情况下提供预期敏感结果45的程序代码。换句话讲,如果第二程序代码42在不同于已从其获得独特数据35d的可编程装置35的装置上运行,则由第二程序代码42提供的结果将不同于预期敏感结果45。这是由于第二程序代码42根据可编程装置35的“DNA”的一部分,更具体地讲是根据对于特定可编程装置35是唯一且物理上固有的独特数据35d进行配置的事实。因此,如果第二程序代码42加载到可编程装置35中,则只有已经从其中提取了独特数据35d的单个且唯一的可编程装置35将能够提供预期敏感结果45。还应当注意,如果敏感结果是正确的,则将其定义为预期敏感结果45。如果在第三装置上,即在不同于已产生独特数据35d的可编程装置35的装置上加载并运行第二程序代码42,则由该第三装置提供的敏感结果将是不正确的。这意指第二程序代码42可在第三装置上工作,即不一定引起系统错误,但是由该第三装置提供的结果将不同于预期敏感结果45。
该方法的第三步骤S3旨在将第二程序代码42传输到可编程装置35,以便将第二程序代码42加载到可编程装置中。
由于本发明方法,鉴于第一程序代码41不能提供预期敏感结果45,因为该第一程序代码不是为此类目的而设计的,并且第二程序42仅当其在已产生独特数据35d的可编程装置35上执行时才能够提供预期敏感结果45,通常在提供者10与可编程装置35之间不再存在有效的攻击点。此外,应当注意,预期敏感结果45通常是由可编程装置35向输入44提供的响应。这意指预期敏感结果45可不仅依赖于独特数据35d,而且依赖于输入44。鉴于独特数据35d被物理地绑定到用于计算预期敏感结果45的可编程装置35,所以黑客不可能远程地获得此类独特数据35d,该独特数据可以被认为比软件更接近硬件。因此,获得可编程装置的独特数据35d将需要硬件攻击而不是软件攻击。然而,任何硬件攻击都被认为是被排除的,因为它将要求黑客物理地到达可编程装置35所在的位点。
根据一个实施方案,第一程序代码41和第二程序代码42由经由通信信道1远程链接到可编程装置35的提供者10设计。提供者10优选地是安全提供者,即位于安全区域内的提供者。因此,生成第一程序代码41和第二程序代码42可以在可信环境中安全地实现,优选地通过可位于提供者10内的程序代码生成器14实现。提供者10与可编程装置35或平台30之间的通信信道1不需要是安全信道,并且可以是任何网络(诸如因特网)内的信道。一般而言,通信信道1至少部分地由全球网络(例如,因特网)或由不可信通信信道提供。然而,如果通信信道1是不可信信道,则优选地以安全的方式将第一程序代码传输到可编程装置,以便确保其真实性和完整性。为此,第一程序代码41可以以加密形式连同数字签名一起传输,以确保在第一程序代码在提供者10和可编程装置35之间传输期间不对该第一程序代码进行改变。
在一个优选的实施方案中,独特数据35d由应用于可编程装置35的至少一个部件35e的物理不可克隆函数(PUF)产生或导出。PUF函数旨在利用电子部件如部件35e的制造工艺变化,这由于这些电子部件的固有特性而使得可编程装置35的电子电路是唯一的。尽管在图2的图示中使用环形振荡器35e作为示例,但是应当注意,不存在将PUF函数限于环形振荡器的要求。PUF函数可以为作为第一程序代码41的一部分的函数或作为可编程装置35或另一合适装置的一部分的函数,并且其例如可由第一程序代码41触发。
在一个实施方案中,第二程序代码42根据独特数据35d被参数化和/或改变。例如,第二程序代码42可以为已由根据独特数据35d的可逆函数变换的程序代码。换句话讲,第二程序代码42可能已经经历了由根据独特数据35d的可逆函数进行的变换。优选地,可逆函数是数学函数或逻辑函数,例如XOR函数。
在一个实施方案中,第二程序代码42通过由改变的部分替换至少一个程序代码部分来变换。在这种情况下,已被替换的上述程序代码部分将保持可使用独特数据35d来检索。例如,程序代码部分可通过可逆函数来变换,更具体地讲通过由独特数据35d参数化的双射可逆函数(例如,加密函数)来变换。
根据图3中示意性示出的另一实施方案,第二程序代码42是一组可区分的可编程装置35所共有的全局程序代码42'。换句话讲,单个全局程序代码42'旨在或被配置为由多个可编程装置35使用。因此,该实施方案可被认为是更加成本有效的。此外,鉴于在要考虑多个此类装置的情况下不需要针对每个可编程装置35生成第二程序代码42,该实施方案更容易实施。因此,全局程序代码42'可被认为是通用的第二程序代码42,其然后可以被个性化,例如通过将个人设置消息43发送到可编程装置35,即在要考虑多个此类装置的情况下发送到每个可编程装置,或者发送到多个可编程装置35中的至少一个可编程装置35。
个人设置消息43应当基于相关可编程装置35的独特数据35d。例如,个人设置消息43可以是与PUF值(即,由应用于可编程装置的PUF函数所提供的值)结合采用的值,该值可提供全局程序代码中所包括的变量的内容。因此,即使第二程序代码是全局的并且因此对于多个可编程装置35是共有的,作为输出提供的预期敏感结果45对于每个可编程装置35也可以是特定的和唯一的。
有利地,与生成对于每个可编程装置35的第二程序代码42相比,生成个人设置消息需要更少的计算机资源。此外,此类实施方案也更灵活,因为该实施方案允许在稍后阶段容易地添加另外的可编程装置35,而不需要改编或修改第二程序代码。实际上,任何新添加的可编程装置35的独特数据35d仍然可通过使用第一程序代码41来收集。然后,可将例如由提供者10生成的个人设置消息43发送到可编程装置35,以便在可编程装置35处远程个性化全局程序代码42',优选地远程个性化由全局程序代码42’提供的预期敏感结果45。
例如,在可编程装置35能够提供特定数据(诸如唯一密钥K2)作为预期敏感结果45的情况下,因此该可编程装置应当接收个人设置消息43,即专用于可编程装置35并且被配置用于设置目的的唯一消息。更具体地,个人设置消息43将被配置为参数化或设置全局程序代码42',使得可编程装置35提供适当数据(例如,前述唯一密钥K2)作为预期敏感结果45。设置全局程序代码42'可例如通过向全局程序代码的至少一个函数或至少一个变量提供特定数据来实现。
根据另一实施方案,已经对其发送了全局程序代码42'和相关个人设置消息43的可编程装置35包括唯一函数35f。该唯一函数35f可被配置成由用作该唯一函数中的输入数据的个人设置消息43提供第一密钥K1,如图3所示。该第一密钥K1还可以用作全局程序代码42'的输入,以用于由此提供预期敏感结果45。
根据一个实施方案,全局程序代码42'是密码算法,例如标准化密码算法,诸如AES或类似算法。在该实施方案中,第一密钥K1可用作此类标准化算法的输入。鉴于在该算法中注入的密钥(即,第一密钥K1)保持秘密并且唯一地绑定到相关的可编程装置35,即使算法如AES的一般操作是黑客众所周知的,这也不是问题。
根据另一实施方案,预期敏感结果45是第二密钥K2,优选地激活密钥或密码密钥。此类第二密钥然后可例如由用户单元20用于任何目的。
在一个实施方案中,传输步骤和接收步骤中的至少一者由认证过程和加密过程中的至少一者来保护。例如,预期敏感结果45可由可编程装置35或由平台30的任何其他合适的装置加密,然后发送到用户单元20。作为另一示例,由第一程序代码41提供的独特数据35d可以在该方法的第二步骤的操作S2'期间以加密形式传输到提供者10。类似地,由可编程装置35中的至少一个接收的个人设置消息43也可以由加密机制来保护。此外,如果例如在第二程序代码42中使用的算法是数字资产,通常为具有特定特性的算法,诸如应当保密的专有算法(与标准化算法相反),则第二程序代码42可以以加密形式传输到可编程装置35。因此,平台30,优选地可编程装置35或相关联的装置,可包括密码模块35k(图2),其被配置用于进行密码处理,例如加密和/或解密操作,以及认证处理(如果有的话)。
在一个实施方案中,第一程序代码41和第二程序代码42中的至少一者是网表、源代码或机器代码。
根据第二方面,本发明解决方案还涉及一种可编程装置35,该可编程装置被设计成根据上述方法,更具体地根据该方法的任何实施方案或者根据该方法的实施方案的任何可能组合来远程编程。可编程装置因此被编程以便提供预期结果45。如图2所示,可编程装置35包括:
-至少一个独特数据35d,其对于可编程装置是唯一且物理上固有的,
-通信接口35a,其用于接收:
-第一程序代码41,其被配置为获得上述独特数据35d,以及
-第二程序代码42,其被配置为基于所述独特数据35d提供预期敏感结果45,
-至少一个存储器35b,其用于存储所述第一程序代码41和所述第二程序代码42,以及
-处理器35c或硬件状态机,其用于执行第一程序代码41和所述第二程序代码42。
可编程装置35优选地包括唯一函数35f,例如PUF函数。独特数据35d可来源于可编程装置35的至少一个部件,诸如振荡器35e,更具体地环形振荡器。唯一函数35f可由处理器35c处理,并且如果有的话,可存储在处理器自身中或存储器35b中。另选地,唯一函数35f可例如通过一些定制逻辑在可编程装置35的构造内被处理,并且被存储在可编程装置结构内。根据前述方法的实施方案,可编程装置35还可包括密码模块35以及被配置用于执行其他特定任务的其他模块或单元。优选地,可编程装置35是所谓的FPGA。
在第三方面中,本发明解决方案涉及一种提供者10,其用于根据上述方法,更具体地根据该方法的任何实施方案或者根据该方法的实施方案的任何可能组合向可编程装置35,具体地讲至少一个可编程装置35远程提供程序代码41、42。该提供者10包括:
-程序代码生成器14,其用于生成:
-第一程序代码41,其被配置为获得对于可编程装置35是唯一且物理上固有的至少一个独特数据35d,以及
-第二程序代码42,其被配置为基于所述独特数据35d提供预期敏感结果45,以及
-通信接口11,其被配置为连接到通信信道1,以用于将所述第一程序代码41和所述第二程序代码42发送到可编程装置35并且用于由此接收所述独特数据35d。根据上述方法的实施方案,提供器10还可包括密码模块(未示出),以便执行与可编程装置35的密码模块35k可能旨在执行的任务类似的任务。
应当注意,如果适用的话,结合该方法公开的任何特征或特征的组合也可以是可编程装置35和提供者10中的至少一者的一部分。
最终考虑因素
尽管已经参考特定示例性实施方案描述了本发明主题的概述,但是在不脱离本发明实施方案的更广泛实质和范围的情况下,可以对这些实施方案进行各种修改和改变。例如,可以通过本领域普通技术人员将其特征的各种实施方案混合和匹配或使其成为可选的。因此,具体实施方式不应被视为进行限制,并且各种实施方案的范围仅由所附权利要求书以及被授予此权利要求书权利的等效物的全部范围限定。

Claims (15)

1.一种用于对被设计成提供预期敏感结果(45)的可编程装置(35)进行远程编程的方法,所述方法包括:
-将第一程序代码(41)传输到所述可编程装置(35),所述第一程序代码(41)被配置为获得对于所述可编程装置(35)是唯一且物理上固有的至少一个独特数据(35d),
-检索所述独特数据(35e)以生成第二程序代码(42),所述第二程序代码被配置为在已经产生所述独特数据(35d)的所述可编程装置(35)上执行所述第二程序代码(42)的情况下提供所述预期敏感结果(45),以及
-将所述第二程序代码(42)传输到所述可编程装置(35),以便将所述第二程序代码(42)加载到所述可编程装置(35)中。
2.根据权利要求1所述的方法,其中所述第一程序代码(41)和所述第二程序代码(42)由经由通信信道(1)远程链接到所述可编程装置(35)的提供者(10)设计。
3.根据权利要求1或2所述的方法,其中所述独特数据(35d)由应用于所述可编程装置(35)的至少一个部件(35e)的物理不可克隆函数(35f)产生或导出。
4.根据前述权利要求中任一项所述的方法,其中所述第二程序代码(42)由根据所述独特数据(35d)的可逆函数来变换。
5.根据权利要求4所述的方法,其中所述可逆函数是数学函数或逻辑函数。
6.根据权利要求4至5中任一项所述的方法,其中所述第二程序代码(42)通过由改变的部分替换能够从所述独特数据(35d)检索的至少一个程序代码部分来变换。
7.根据前述权利要求中任一项所述的方法,其中所述第二程序代码(42)是一组可区分的可编程装置(35)所共有的全局程序代码(42'),所述全局程序代码被配置为通过用于所述组中的至少一个可编程装置(35)的个人设置消息(43)来个性化,所述个人设置消息(43)基于相关可编程装置(35)的所述独特数据(35d)。
8.根据权利要求7所述的方法,其中所述相关可编程装置(35)包括唯一函数(35f),所述唯一函数被配置为由用作所述唯一函数(35f)中的输入数据的所述个人设置消息(43)提供第一密钥(K1),所述第一密钥(K1)还被用作所述全局程序代码(42')的输入,以用于由此提供所述预期敏感结果(45)。
9.根据权利要求7至8中任一项所述的方法,其中所述全局程序代码(42')是密码算法。
10.根据前述权利要求中任一项所述的方法,其中所述预期敏感结果(45)是第二密钥(K2),优选地是激活密钥或密码密钥。
11.根据前述权利要求中任一项所述的方法,其中所述传输步骤和检索步骤中的至少一者通过认证过程和加密过程中的至少一者来保护。
12.根据前述权利要求中任一项所述的方法,其中所述第一程序代码(41)和所述第二程序代码(42)中的至少一者是网表、源代码或机器代码。
13.根据权利要求2至12中任一项所述的方法,其中在所述通信信道(1)至少部分地由不可信通信信道提供的情况下,所述第一程序代码(41)以安全方式传输到所述可编程装置(35),以便确保所述第一程序代码(41)的真实性和完整性。
14.一种可编程装置(35),所述可编程装置被设计成根据前述权利要求中任一项所述的方法远程编程,以便提供预期敏感结果(45),所述可编程装置(35)包括:
-至少一个独特数据(35d),所述至少一个独特数据对于所述可编程装置(35)是唯一且物理上固有的,
通信接口(35a),所述通信接口用于接收第一程序代码(41)和第二程序代码(42),所述第一程序代码被配置为获得所述独特数据(35d),所述第二程序代码被配置为基于所述独特数据(35d)提供所述预期敏感结果(45),
-至少一个存储器(35b),所述至少一个存储器用于存储所述第一程序代码(41)和第二程序代码(42),以及
-处理器(35c)或硬件状态机,所述处理器或硬件状态机用于执行所述第一程序代码(41)和第二程序代码(42)。
15.一种用于根据权利要求1至13中任一项所述的方法向至少一个可编程装置(35)远程提供程序代码(41,42)的提供者,所述提供者包括:
-程序代码生成器(14),所述程序代码生成器用于生成第一程序代码(41)和第二程序代码(42),所述第一程序代码被配置为获得对于所述可编程装置(35)是唯一且物理上固有的至少一个独特数据(35d),所述第二程序代码被配置为基于所述独特数据(35d)提供预期敏感结果(45),以及
-通信接口(11),所述通信接口被配置为连接到通信信道(1),以用于将所述第一程序代码(41)和第二程序代码(42)传输到所述可编程装置(35)并且用于由此接收所述独特数据(35d)。
CN202180057344.4A 2020-07-06 2021-07-06 对可编程装置进行远程编程的方法 Pending CN116158051A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20184290.3 2020-07-06
EP20184290.3A EP3937449A1 (en) 2020-07-06 2020-07-06 Method for remotely programming a programmable device
PCT/EP2021/068605 WO2022008487A1 (en) 2020-07-06 2021-07-06 Method for remotely programming a programmable device

Publications (1)

Publication Number Publication Date
CN116158051A true CN116158051A (zh) 2023-05-23

Family

ID=71522966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180057344.4A Pending CN116158051A (zh) 2020-07-06 2021-07-06 对可编程装置进行远程编程的方法

Country Status (6)

Country Link
US (1) US20230224173A1 (zh)
EP (2) EP3937449A1 (zh)
JP (1) JP2023533734A (zh)
KR (1) KR20230037588A (zh)
CN (1) CN116158051A (zh)
WO (1) WO2022008487A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2965254B1 (en) * 2013-03-08 2020-05-13 Robert Bosch GmbH Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
US20150134966A1 (en) * 2013-11-10 2015-05-14 Sypris Electronics, Llc Authentication System
US20190305927A1 (en) * 2016-03-18 2019-10-03 University Of Florida Research Foundation Incorporated Bitstream security based on node locking

Also Published As

Publication number Publication date
WO2022008487A1 (en) 2022-01-13
JP2023533734A (ja) 2023-08-04
KR20230037588A (ko) 2023-03-16
EP3937449A1 (en) 2022-01-12
EP4176567A1 (en) 2023-05-10
US20230224173A1 (en) 2023-07-13

Similar Documents

Publication Publication Date Title
US10848317B2 (en) Systems and methods for trusted path secure communication
US10395012B2 (en) Media client device authentication using hardware root of trust
CN101573936B (zh) 使用可信处理技术的数字版权管理
JP4668619B2 (ja) 装置鍵
CN109937419B (zh) 安全功能强化的设备的初始化方法及设备的固件更新方法
EP2506174B1 (en) Enabling a software application to be executed on a hardware device
US20040101142A1 (en) Method and system for an integrated protection system of data distributed processing in computer networks and system for carrying out said method
US20090249492A1 (en) Fabrication of computer executable program files from source code
CN101114326A (zh) 用于计算机装置验证的系统和方法
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
WO2022072625A1 (en) Cryptographic secret generation and provisioning
US9003197B2 (en) Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
EP3214567B1 (en) Secure external update of memory content for a certain system on chip
CN111512593B (zh) 半导体设备、提供更新数据的方法、接收更新数据的方法以及介质
US20230224173A1 (en) Method for remotely programming a programmable device
Badrignans et al. Sarfum: security architecture for remote FPGA update and monitoring
Gedeon et al. Secure boot and firmware update on a microcontroller-based embedded board
US20220050605A1 (en) Remote enforcement of device memory
KR20020083551A (ko) 멀티에이전트 기반 다단계 사용자 인증 시스템 개발과운용 방법
CN112165396A (zh) 一种安全固件更新的方法
US10970407B2 (en) Processes and related apparatus for secure access control
Marchand et al. Firmware Integrity Protection: A Survey
Moon et al. Towards Protected Firmware Verification in Low-power Devices
CN116055105A (zh) 云存储数据的处理方法、装置和服务器
JP5180264B2 (ja) 装置鍵

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination