CN107368744A - 用于更新固件组件的方法以及测量和控制技术的设备 - Google Patents
用于更新固件组件的方法以及测量和控制技术的设备 Download PDFInfo
- Publication number
- CN107368744A CN107368744A CN201710227906.0A CN201710227906A CN107368744A CN 107368744 A CN107368744 A CN 107368744A CN 201710227906 A CN201710227906 A CN 201710227906A CN 107368744 A CN107368744 A CN 107368744A
- Authority
- CN
- China
- Prior art keywords
- firmware
- data
- fastener components
- firmware image
- encryption method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61M—DEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
- A61M39/00—Tubes, tube connectors, tube couplings, valves, access sites or the like, specially adapted for medical use
- A61M39/02—Access sites
- A61M39/06—Haemostasis valves, i.e. gaskets sealing around a needle, catheter or the like, closing on removal thereof
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61M—DEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
- A61M39/00—Tubes, tube connectors, tube couplings, valves, access sites or the like, specially adapted for medical use
- A61M39/02—Access sites
- A61M39/06—Haemostasis valves, i.e. gaskets sealing around a needle, catheter or the like, closing on removal thereof
- A61M39/0606—Haemostasis valves, i.e. gaskets sealing around a needle, catheter or the like, closing on removal thereof without means for adjusting the seal opening or pressure
-
- 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/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/575—Secure boot
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/3236—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 cryptographic hash functions
- H04L9/3242—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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61M—DEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
- A61M39/00—Tubes, tube connectors, tube couplings, valves, access sites or the like, specially adapted for medical use
- A61M39/02—Access sites
- A61M39/06—Haemostasis valves, i.e. gaskets sealing around a needle, catheter or the like, closing on removal thereof
- A61M2039/062—Haemostasis valves, i.e. gaskets sealing around a needle, catheter or the like, closing on removal thereof used with a catheter
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61M—DEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
- A61M39/00—Tubes, tube connectors, tube couplings, valves, access sites or the like, specially adapted for medical use
- A61M39/02—Access sites
- A61M39/06—Haemostasis valves, i.e. gaskets sealing around a needle, catheter or the like, closing on removal thereof
- A61M2039/0633—Haemostasis valves, i.e. gaskets sealing around a needle, catheter or the like, closing on removal thereof the seal being a passive seal made of a resilient material with or without an opening
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Heart & Thoracic Surgery (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Animal Behavior & Ethology (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Pulmonology (AREA)
- Anesthesiology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Hematology (AREA)
- Biomedical Technology (AREA)
- Power Engineering (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及用于更新固件组件的方法以及测量和控制技术的设备。用于更新第一固件组件的方法包括:接收第一固件镜像,包括数据区域和签名字段,签名字段包括根据第一加密方法产生的第一认证数据;经由第一固件组件内的根据第一加密方法的认证算法,基于第一认证数据执行第一固件镜像的认证;经由第一固件组件中的与第一加密方法不同的第二加密方法,为数据区域中的数据创建第二认证数据;将数据作为第二固件镜像的组件重新传输;经由第二固件组件内的根据第二加密方法的认证算法,基于第二认证数据来执行在重传期间接收的第二固件镜像的认证;在成功认证时,启用并执行与第二固件镜像一起传输的固件程序代码作为新的第一固件组件。
Description
技术领域
本发明涉及一种用于更新提供测量和控制技术的设备的功能的固件组件的方法以及测量和控制技术的设备。
背景技术
工业部门的测量和控制任务通常对安全至关重要。客户应用需要保护相应自动化的测量和控制变量的准确性和可用性。数据的完整性和可用性在大多数情况下比同样重要的机密性更相关。测量和控制技术的设备(诸如测量设备、控制器、传感器、致动器、监控电路、警告显示器、现场总线网络技术等)的特殊安全相关性增加,这是因为这些设备的故障或篡改的后果可能是潜在的危险,诸如爆炸,有害材料/气体的排放等。
自动化解决方案由多个独立的子组件构成,诸如控制器、传感器、诸如路由器的网络基础设施组件等。这些子组件均可以被单独设计为测量和控制技术的独立设备,或者还至少部分地被整合到该设备中。如今,这些子组件中的每一个通常包含其自己的软件组件(所谓的固件)。此外,每个独立设备(诸如用于pH测量的现场设备)也可以由多个子模块组成,每个子模块包含其自己的固件,例如,具有用于每个现场总线接口的微控制器的子系统、用于测量值信号处理的子系统,以及用于模数转换的子系统。在每种情况下,固件都被嵌入在微控制器中。除了数据传递到设备或子组件的通信接口(现场总线,以太网,无线HART等)的完整性之外,子组件(发射器,传感器)中的测量值处理的完整性对于测量的精确性至关重要。
可能的攻击情形是攻击者将操纵的固件组件偷偷地给到自动化系统的操作者。因此,例如在温度传感器内,由传感器测量的温度测量值可以在固件内被有意地操纵,使得连接到传感器的控制系统报告非关键操作温度,而实际上,所监控的过程已经升高到了极高的温度,该温度可能导致例如罐的爆炸。
对于成功的攻击,通常足以操纵受攻击设备内或包含多个设备的受攻击系统内的任意子组件的固件。
使用pH测量点的具体实例:pH测量点通常包含通常组合成单个设备的pH和温度换能器。该设备进一步包括连接到换能器的设备电子器件。例如,这些可以包括用于换能器的输出的模数转换的一个或多个微控制器、用于处理测量信号的附加微控制器、用于经由现场总线传输测量信号的现场总线接口、以及处理现场总线接口的操作的系统。例如,如果攻击者想要操纵这样的pH测量点的传输温度测量值,则攻击者可以通过选择性地操纵用于温度换能器的输出信号的模数转换的微控制器内的固件或者该设备的其它子组件之一的固件来实现这个目标。
因此,使用被操纵的固件组件发起的攻击的可靠排斥需要校验所有涉及的子系统和子组件的固件。
在过去,通常的情况是对于这样的安全问题不需要考虑固件的完整性,这是因为在芯片生产期间使用所谓的金属掩模进行固件的编程,或者在所谓的闪存区域中,由于设计限制而只能在设备制造商的生产设施处进行重新编程。然而,现有技术的当前状态是可以在运行时间期间的任何时间(甚至在现场)将新固件输入到所有子组件,这是所谓的固件更新。
因此,所涉及的所有固件组件的完整性无一例外地对于确保系统的完整性是至关重要的。
因此,必须保证具有大量存储器的“大型”系统和计算能力很弱的微控制器系统。在加密的场境中,这里描述了固件的必要的所谓的“可靠性”,其中接收系统校验在更新过程中待接收的固件组件是可靠的,这意味着例如其实际上由设备制造商创建而不是由可能的攻击者创建。
关于可靠性的密码验证,可以区分为两大类:
-使用诸如为AES-CBC、HMAC-MD5、HMAC-SHA256、Chaskey、Chaskey-LTS、基于伽罗瓦域的MAC(诸如AES-GCM中的认证组件)的认证码(所谓的消息认证码,缩写:MAC)的对称校验和方法,以及基于主数字的方法,诸如Poly1305等。
-非对称签名方法,诸如基于RSA的签名、椭圆曲线上的ECDH签名、EdDSA签名、基于散列的签名方法、DSA签名等。
这两类方法可以经由密码方法(以下也称为加密方法)来使用以生成认证数据,例如校验和或数字签名,其可以与用于更新系统固件的固件组件一起被递送。使用认证数据和密钥信息,接收系统然后可以验证所递送的固件组件是否是可靠的。
上述两种方法类别是有区别的,一方面,对于对称方法,完全相同的密钥用于生成认证数据以及用于验证认证数据,而在非对称方法中使用不同的密钥。另一方面,两个方法类别在它们的复杂性和它们对计算时间和/或存储器的需要以及在软件中实现的方法的代码大小方面不同。
在对称方法中,可以进行认证测试的每个实体本身也可以生成正确的校验和作为认证数据,这是因为所使用的密钥必须“对称地”可用于所涉及的双方。在非对称方法中,在任一侧存在不同的密钥(生成和测试)。
如今的对称校验和方法在许多译解密码者的观点中是非常稳定和安全的,以至于如果使用大于80位的密钥长度,则实际上可以排除对基本算法的数学攻击。如今,通常推荐至少128或256位长的对称密钥。
然而,在具有小型微控制器的系统的场境下使用对称方法存在一个主要问题。为了验证新提供的固件组件的可靠性,有必要将对称密钥保存在系统的持久存储器中。然而,在传统的微控制器中,不能有效地保护该存储器免于未经授权的读取。确实存在来自所谓的智能卡IC类的电子构建块,其例如通过存储器区域的特殊金属覆盖物和复杂的保护机构来保护控制器的持久存储器免于未经授权的访问。然而,在传统的微控制器中未使用这样的措施。
因此,攻击者可能相对容易地例如通过打开壳体或绕过用于调试软件的接口(调试器接口)的访问限制来不当地获得对称密钥信息。攻击者然后可以容易地为其操纵的固件组件生成正确的校验和,并将它们植入子系统而不引起错误。
对称方法的主要优点在于它们可以在具有低处理能力的系统中有效地实现。特别地,这需要非常少的源代码和CPU功率。因此,例如,可以在具有仅512字节的近似编程长度的ARM Cortex M0 CPU中实现诸如Chaskey LTS的MAC算法。与非对称签名方法相反,例如通常需要更大的常数表和相对大量的程序代码的所谓的抗冲突散列算法不是强制性的作为子组件。
对称方法与非对称方法之间的主要区别在于,在用于生成签名作为认证数据的非对称方法中,另一个密钥用于签名的验证。在这种情况下,用于签名生成的密钥被称为“私有”密钥,并且用于验证签名的密钥被称为“公共”密钥。因此,用于固件组件的签名的私有密钥可以专门保存在安全环境中,例如,保存在设备制造商的开发部门内的访问控制区域内。因此,与存储在现场设备中的不受保护的存储器相比,可以更有效地保护该私有密钥免受潜在攻击者的攻击。当使用非对称签名时,只有不关键的公共密钥(攻击者不能使用他自己的公共密钥来签名所操纵的固件)位于包括微控制器的设备的系统的持久存储器内。
对于如今的非对称方法,考虑对数学方法可能的攻击,需要至少2048位的密钥长度(在使用基于根据大数的因子分解和素数域组的方法的DSA或RSA的方法中)或用于基于椭圆曲线的方法的>230位的密钥长度。替选方法(例如基于散列树的所谓的Merkle签名、基于编码的签名(McEliece)或所谓的基于点阵的签名方法(例如,LWE,错误学习))需要长得多的10KB或更长的密钥,并因此,在实践中不常使用。在诸如互联网上的web服务器的高性能计算系统的场境下,例如在所谓的证书中广泛使用基于诸如RSA,DSA或ECDSA的方法的签名,这是因为它们由诸如HTTP或TLS的密钥协议使用。
挑战在于这些方法由于复杂的算法和大密钥长度而比对称方法需要明显更多的计算资源。因此,即使在小型微控制器中的非对称加密的优化软件实施方式已经需要大约10KB的存储器(Des.Codes Cryptogr。(2015)77:493-514)。因此,与对称方法相比,期望对于相关联的程序代码的至少10到100倍的更大的存储器需求。
在工业控制设备内,通常存在为标准程序提供足够资源的独立组件。例如,在pH传感器内,负责现场总线通信的CPU可以提供足够的存储器和处理能力。然而,如上所述,这不足以保护独立的子系统。相反,即使在例如用于物理传感器附近的模数转换的较小的子系统中,所涉及的所有固件组件也必须受到保护。
仅将签名验证外包给组件的高性能CPU具有在一个组件内的协议中的错误可能影响其他组件的风险。也就是说,(例如,用于A/D转换的)固件组件的安全性进而是另一固件组件(例如,现场总线CPU)的正确性的函数,其在某些情况下可能在另一组织单位(甚至是外部公司)的控制下并且无法验证。这增加了概念和实现中可能的错误源的数目。
安全的特征在于总是期望较低复杂度的系统。在实践中,这通常仅在固件更新中的每个CPU自身完全负责固件认证的情况下实现,因此验证非中心地发生。实际上,通常只能以这种方式设计安全系统。
以下注意事项对于嵌入式系统中的固件更新过程很重要。计算系统通常由处理单元以及用于动态数据的RAM存储器和用于持久数据的(闪存)ROM存储器组成。处理单元(CPU)从ROM存储器获得机器指令,并且诸如加密密钥的持久数据也存储在那里。
现有技术的当前状态为微控制器配备有称为闪存技术的内置ROM存储器。闪存通常支配微控制器的硅表面,并因此是微控制器芯片生产中的关键成本组件。因此,为了成本的原因,通常使用仅精确地适合所需存储器的构建块。因此,典型的嵌入式系统通常只提供在固件更新期间能够临时存储先前的固件组件以及“新”固件组件所需的RAM和闪存ROM。
为此,通常在两个固件组件之间进行区分:所谓的引导加载器组件(下文简称为引导加载器)和应用组件(下文简称为应用)。例如,在具有总共64kB闪速存储器的典型微控制器中,总固件由例如具有例如4kB闪存的引导加载器以及具有59kB闪存和1kB数据存储器的应用组成。
因此,引导加载器的任务是实现应用固件的交换。为此,闪存的应用区域首先由引导加载器擦除。在许多情况下,微控制器中的闪存在此时由硬件分离成所谓的“引导加载器”区段和“应用”区段,其中引导加载器区段和应用区段可以被单独擦除。在这样的系统中,引导加载器的最大可能大小因此被硬件限制为通常4kB或8kB的长度。在擦除过程之后,应用不再可用。接下来,经由外部数据接口将新的应用固件发送到引导加载器,然后将其重新安装在闪存中。
在密码认证数据的生成和/或验证的场境中重要的是,在更新中传输的完整固件组件必须用于认证数据的生成和验证。由于明显的原因,在上述固件加载类型中需要从软件的引导加载器部分验证认证数据。
从上述典型示例可以容易地看出,在引导加载器的代码大小限制的约束下,可预见地不能实现安全的非对称加密方法(通常具有至少10kB的代码长度)。在正常的应用(在该示例中,59kB的代码)的场境下,这样的方法是非常容易实现的。
发明内容
总之,在上述场境中,本发明的目的是实现分散的、安全的、非对称的签名验证以及具有低计算能力的子组件,特别是在引导加载器固件的限制下。
该目的通过一种方法以及测量和控制技术的设备来实现。在下文中描述了有利的实施例。
根据本发明的用于更新提供测量和控制技术的设备的功能并且被嵌入在设备的微控制器中的第一固件组件的方法包括:
-经由微控制器的与外部设备连接的数据接口逐段接收第一固件镜像(firmwareimage),其中,第一固件镜像包括数据区域和签名字段,并且其中,用于更新第一固件组件的数据区域包括具有固件程序代码的数据,并且签名字段包括根据第一加密方法产生的第一认证数据;
-经由包含在第一固件组件内的根据第一加密方法的认证算法,基于第一认证数据执行第一固件镜像的认证;
-经由包含在第一固件组件中的用于根据与第一加密方法不同的第二加密方法创建第二认证数据的算法,为包含在第一固件镜像的数据区域中的数据创建第二认证数据;
-在成功认证第一固件镜像之后,将第二认证数据存储在设备的持久存储器中;
-擦除第一固件组件,其中,该擦除由嵌入在微控制器中的第二固件组件控制;
-在第二固定组件参与的情况下,经由数据接口将用于更新第一固件组件的数据作为第二固件镜像的组件重新传输到微控制器并将数据存储在微控制器的持久存储器中;
-经由包含在第二固件组件内的根据第二加密方法的认证算法,基于存储在微控制器中的第二认证数据来执行在重新传输期间接收的第二固件镜像的认证;以及
-在成功认证第二固件镜像的情况下,启用并执行与第二固件镜像一起传输并存储在存储器中的固件程序代码作为新的第一固件组件。
本发明基于这样的认识:与非对称加密方法相反,对于资源受限的固件组件(诸如最初描述的引导加载器),存在不太精密的加密方法,诸如用于校验和验证的对称校验和方法。这在使用所谓的“轻量”算法(如Chaskey、Chaskey LTS或基于诸如“Simon”或“Speck”的轻量块密码算法的所谓的密码块链接(CBC)认证码)时(也见“标准技术国家研究所NIST)或者在对应的微控制器包含加密加速器硬件(例如,用于AES)的情况下尤其适用。
由于第一固件组件根据基于第一加密方法的认证算法执行第一固件镜像的认证,同时在使用第一固件镜像的同时根据与第一加密方法不同的第二加密方法生成认证数据,并且在更新的传输期间第二固件镜像获得的数据可以由第二固件组件使用由第一固件组件生成的认证数据来认证,所以提供了使用比第一固件组件更加复杂并由此更加安全的加密方法的选项,并且提供了使用因此比第二加密方法需要更少资源的更简单的加密方法的选项。因此,使用第一固件组件的认证可以经由精密的例如非对称的加密方法确保防止攻击者在使用第一固件镜像的第一数据传输期间的操纵。使用第二固件组件的认证确保在用第二固件镜像的新传输期间所接收的数据与在第一传输期间所接收的第一固件镜像的数据相同。因此,不太精密的(例如对称的)加密方法对于此目的是足够的。
因此,如最初所描述的,该方法可以有利地用于固件更新中。在这种情况下,第一固件组件是应用,并且第二固件组件是引导加载器。如上所述,第二固件组件或引导加载器分别能够是资源受限的固件组件。例如,其最大大小能够是20k字节以下,或者甚至16k字节,或者其能够是小到4或8k字节。
术语固件镜像在这里描述了可以包含固件程序代码和常量数据的数据区域与可选的签名字段的适当组合。包含在数据区中的数据在下文中也被称为固件数据,或简称为固件。第一固件镜像包括包含第一认证数据的签名字段。第二固件镜像可以包含具有认证数据的签名字段,特别是包含第一认证数据的签名字段。特别地,它可以与第一固件镜像完全一致,这意味着在上述方法期间将相同的固件镜像传输两次,即,第一传输到用于根据第一加密方法的认证并用于生成第二认证数据的第一固件组件,以及第二传输到用于使用由第一固件组件生成的第二认证数据进行所述认证的第二固件组件。然而,第二固件镜像还可能仅包含具有固件数据的数据区域。
该方法可以进一步包括:
在未成功认证所述第二固件镜像的情况下,擦除与第二固件镜像一起传输和存储的数据,特别是擦除所保存的固件程序代码。
成功认证在这里意味着认证算法导致的结果为待认证的固件镜像或待认证的所接收数据是可靠的。
在有利的实施例中,根据第一加密方法的包含在第一固件组件中的认证算法需要大于5kB的ROM和512字节的RAM的存储器容量。
在附加的有利的实施例中,根据第二加密方法的包含在用于生成第二认证数据的第一固件组件中的算法和根据第二加密方法的包含在第二固件组件中的认证算法需要小于512字节的RAM和1kB的ROM的存储器容量。
例如,第一加密方法可以是非对称加密方法。例如,选项为基于椭圆曲线的方法、特别是基于用于椭圆曲线Curve25519的EdDSA算法,ECDSA标准族的方法,或者基于素数字段的方法、特别是RSA或DSA方法。
第二加密方法例如可以是对称加密方法。例如,基于块加密算法、特别是基于Chaskey或AES128-CBC算法族的MAC方法是适当的。
第一认证数据可以是使用包含在数据区域中的数据、特别是固件程序代码、利用私有密钥创建的数字签名,其中,执行第一固件镜像的认证包括经由存储在微控制器的持久存储器中的公共密钥来验证数字签名。
在一个实施例中,创建第二认证数据包括根据第二加密方法从通过包括在第一固件组件中的密钥生成器生成的密钥和包括在数据区域中的数据、特别是包括在第一固件镜像中的程序代码,创建用作第二认证数据的校验和。
经由密钥生成器生成的密钥可以被存储在微控制器的持久存储器中,其中基于第二认证数据执行第二固件镜像的认证包括以下步骤:
根据第二加密方法从经由密钥生成器生成的密钥和包括在第二固件镜像中的数据、特别是包括在第二固件镜像中的固件程序代码,生成校验和;以及
将校验和与第二认证数据进行比较,其中,如果所述校验和与第二认证数据相对应,则认证成功。
在少数情况下,可能期望还限定固件镜像内的在待传输时并非旨在被加密保护的部分,即,故意不用于计算认证数据的部分。例如,其可以包括在签名生成之后添加用于固件的说明指令文本的数据区域,诸如在递送软件之后添加的具有描述的已知错误问题列表和推荐测量。如果需要的话,这些数据段在某些情况下可以根据第一加密方法从签名验证中排除,或者根据第二加密方法从检验和生成及认证中排除。
例如,密钥生成器可以包括随机数生成器,其中,密钥是优选地至少80位的随机数序列。
可选地,第一固件镜像和第二固件镜像的固件程序代码可以被加密。在这种情况下,该方法另外包括经由第一固件组件和/或第二固件组件的附加解密算法对固件程序代码进行解密。为此将有利地使用对称加密方法,其密钥被存储在微控制器的持久存储器中。
本发明还包括一种测量和控制技术的设备,该设备包括
设备电子器件,所述设备电子器件具有至少一个微控制器
其中,至少一个微控制器包括具有至少一个第一固件组件以及具有第二固件组件的嵌入式固件,
并且其中,第一固件组件包括:
-用于提供该设备的功能的一个或多个算法;
-用于接收第一固件镜像的算法,该第一固件镜像包括数据区域和签名字段,其中,用于更新第一固件组件的数据区域包括包含固件程序代码的数据,并且其中,签名字段包含根据第一加密方法产生的第一认证数据;
-用于根据第一加密方法基于第一认证数据认证第一固件镜像的认证算法;
-用于根据与第一加密方法不同的第二加密方法从包括在数据区域中的数据、特别是固件程序代码,生成第二认证数据的算法;以及
-用于将第二认证信息存储在微控制器的持久存储器中的算法,
并且其中所述第二固件组件包括:
-用于接收第二固件镜像的算法,该第二固件镜像包括用于更新第一固件组件的数据,特别是用于更新第一固件组件的固件程序代码;
-用于擦除第一固件组件且用于将包括在第二固件镜像中的固件程序代码存储为新的第一固件组件的算法;
-用于从持久存储器读取第二认证数据的算法;
-根据第二加密方法的认证算法,所述认证算法用于基于第二认证数据和包括在第二固件镜像中的数据、特别是固件程序代码,来认证第二固件镜像;以及
-用于启用新的第一固件组件的算法。
因此,该设备可以被设计成执行前述方法。第二固件组件能够是资源受限的。例如,其可以是最大大小能够小于20或16k字节,诸如4或8k字节的引导加载器。
第一加密方法可以是非对称加密方法,并且第二加密方法可以是对称加密方法。第一固件组件还可以包括
包括随机数生成器的密钥生成器,以及用于将经由密钥生成器生成的用于第二加密方法的密钥存储在微控制器的持久存储器中的算法。根据第二加密方法的认证算法可以被设计成通过所保存的密钥和固件程序代码创建校验和,并将该校验和与第二认证数据进行比较。
第一固件组件和/或第二固件组件另外可以包括——特别是利用对称加密方法——用于解密固件镜像或包含在固件镜像中所包括的数据区域内的数据、特别是包括在固件镜像中的固件程序代码的进一步的算法。
当使用易于访问的数据传输信道时,特别是当使用远程维护或无线接口时,或者当使用诸如USB棒或SD卡的便携式数据存储介质时,发生第一固件镜像和/或第二固件镜像到该设备的传输。
特别地,该设备可以是测量设备,其具有生成根据测量变量的测量信号、特别是数字信号的换能器。在该实施例中,设备电子器件可以包括测量电子器件,该测量电子器件——特别是可拆卸地或不可拆卸地——连接到用于接收测量信号的测量变换器,该测量电子器件被设计成处理测量信号并将处理后的测量信号输出至上级单元。
附图说明
使用下图所示的示例详细描述了本发明。图1示出了测量和控制技术的设备的示意图。
具体实施方式
图1中示意性地表示的设备1是具有换能器2和传感器电子器件3的测量设备。传感器电子器件3包括:A/D转换器4,其对由换能器2生成的模拟信号进行数字化;微控制器5,其接收并进一步处理经数字化的测量信号;以及数据接口6,微控制器5可以经由该数据接口6输出处理后的测量信号,和/或无线地7或经由导体回路8将其他数据输出到更上级单元9、10。在该示例中,更上级单元10是便携式计算机,诸如智能电话。更上级单元9可以是用于工业过程的过程控制站。设备1还具有用于连接到存储器设备(例如,SD卡12)的接口11。设备1可以可选地连接到更上级单元9和/或更上级单元10。为了执行更新,包含用于新固件的程序代码的固件镜像可以从单元9经由导体回路8或从单元10无线地7传输到设备1,或从连接到设备1的SD卡12经由接口11传输到设备1,具体地经由数据接口6传输到微控制器5。
微控制器5具有带有固件13的闪存,其包含至少两个固件组件A、B。第一组件是应用组件,下文简称为应用A。第二组件是引导加载器组件,下文简称为引导加载器B。应用A提供了设备1的基本功能。引导加载器B用于根据在介绍中描述的方法以固件更新的形式更新应用A。设备1附加地具有持久存储器16,其在示例中被表示为微控制器5的一部分。非对称签名方法的公共密钥PK被存储在设备的持久存储器16中。
固件组件A具有以下组件:
-熵源17,例如,随机数生成器
-用于接收新固件镜像(具体地,以段(segment)为单位)的算法18
-用于非对称签名验证的算法19
-用于根据对称加密方法生成用作认证数据的MAC校验和的算法20(例如,MAC算法)。
-用于将对称密钥SK和所生成的校验和MAC存储在持久存储器16中的软件组件。
固件组件B包含以下组件:
-用于接收新固件镜像的算法21
-用于从存储器16读取对称密钥SK和MAC且用于计算和验证新固件的作为新固件镜像的一部分传输的对称校验和MAC的算法22
可选地,组件A和/或B还包含用于经由对称密钥解密固件镜像或固件镜像中所包含的固件程序代码的附加算法(图1中未示出)。然而,该加密组件仅用作对自动化组件的设备制造商的专有技术保护,而不是主要作为对于安装操作者免受数据安全攻击的保护。因此,它是可选的。
用于更新固件13(特别是应用A的固件)的方法在于,可靠的设备制造商选择非对称签名算法并创建公共/私有密钥对。其精确确保只有负责发布认证软件的授权人员才能获得对私有密钥的控制。然后使对应的公共密钥PK被知晓并存储,包括存储在所递送的设备1的存储器16中,使得该公共密钥PK在那里可用于固件更新过程。
在固件组件A中,随后实现用于固件更新的以下方法步骤:
1.首先,使用随机数生成器17生成优选地至少80位的不可预测的随机数序列SK,并且其可存留在存储器中。该随机数序列在进一步的方法步骤中用作用于对称MAC算法的对称密钥SK。
2.然后,经由作为固件镜像的一部分的外部接口6从外部设备(例如,上级单元9、10之一)或从SC卡12传输新固件。所接收的固件数据在这里按照段由算法18接收并仅转发到下面描述的两个加密算法,然后被丢弃且不进一步存储。因此,微控制器5不需要提供用于新固件的接收和认证的任何显着的存储器空间。
3.与传输并行,使用所接收的固件数据执行对称MAC校验和算法20。除了所接收的待验证的固件数据之外,它还从存储器16接收新生成的密钥SK作为输入。
同时,使用存储在存储器16中的公共密钥PK进行使用算法19的非对称签名验证。
4.在新固件镜像的完整传输之后,非对称签名验证的结果是可用的。基于其刚生成的密钥SK计算的简单验证对称MAC校验和也是可用的。
5.如果非对称签名验证成功,则相关联的对称MAC校验和留存在存储器16中。因此,在非对称方法的场境下为该密钥生成的新生成的对称密钥SK和对称校验和MAC因此位于那里作为所识别的“可靠”固件。这里特别有利的是,用于对称校验和计算的密钥SK不能由攻击者预测。
最后,在上述成功执行的步骤之后,对引导加载器B进行控制。然后,执行以下步骤:
1.准备(擦除)存储新固件的存储器区域。该存储器区域先前至少部分地由应用A保留。
2.接下来,经由数据接口6从外部设备第二次传输新固件作为附加固件镜像的一部分,并且现在在接收期间将其留存在所准备的存储器区域中。在该步骤中,进行固件程序代码的可选解密(以便保持固件代码秘密并保护例如设备制造商的专有信息)。
3.与该第二传输并行,基于持久密钥SK和对称MAC算法22来计算对称校验和,其可以使用很少的存储器来实现。
4.在接收到完整的固件镜像之后,接下来验证由引导加载器B计算的MAC校验和与由应用A计算并存储在存储器16中的对应的MAC校验和匹配。MAC校验和的一致性意味着在第二传输期间从引导加载器B接收的固件数据与在第一传输期间由应用A先前接收并且经由用于签名验证的算法19验证的固件数据的一致性。如果获得这种一致性,则同时确保在第二传递期间传送到引导加载器B的所传送的固件镜像或其中所包含的固件数据的可靠性。
5.如果来自固件组件A和B的对称校验和相同,则新接收到的(现在也留存在存储器中的)固件被主动连接和执行。否则,再次执行该过程中的步骤1,并且擦除明显不可靠的固件。
重要的是,在作为一选项描述的固件签名(可靠性)和固件加密(机密性)的组合的情况下,签名计算和加密的顺序是可互换的,并且顺序与这里描述的方法无关。建议优选地首先对固件进行加密,并且经由加密的固件计算签名。
在特定的示例性实施例中,包含在设备1中的新固件待传递到的系统包括具有64kB闪存的微控制器5。该存储器被分成59kB应用程序(组件A)、1kB数据段(例如用于密码密钥和MAC代码(存储器16))和4kB引导加载器(组件B)。在许多情况下,微控制器的存储器是直接集成的;在一些系统中,微控制器的存储器经由CPU的壳体外部的外部存储器芯片连接。
例如,该微控制器的候选是来自Atmel的8位AVR系列CPU或来自TexasInstruments、NXP或ST Microelectronics的基于ARM的微控制器,其具有类似的存储器配置。这些系统通常提供8到16kB的RAM存储器。
除了用于经由串行SPI或UART接口接收固件的例程之外,引导装载程序B还集成了用于部分擦除闪存的程序。
用于固件更新的数据经由适当的接口以使数据可以经由串行接口被传送到要接收固件更新的子系统的方式传送到设备1中。例如,该传递可以使用蓝牙或WLAN通过互联网经由远程访问或经由现场总线接口无线地发生。在这种情况下,获得对数据信道的至少部分控制的攻击者可以向现场设备传递不可靠的固件镜像。
重要的是,特别是在无线电或互联网连接的情况下,固件数据的传输可以被完全不可观察地操纵,并且在这种情况下,经由非对称固件签名对固件的认证验证在某些情况下是特别重要的。
替选地,可以经由诸如SD卡或USB棒的便携式存储介质来传送数据。即使这样,至少暂时访问测量设备的攻击者也有机会尝试传递不可靠的固件镜像。
在某些情况下,在经由串行接口将新固件的数据发送到小型微控制器之前,在相同测量设备的可能可用的“较大”微处理器系统中临时存储(缓存)新固件的数据是有益的。在这种情况下,从微控制器到“较大”伙伴控制器进行串行数据连接,该控制器转发可以被缓存的固件镜像。
引导加载器B实现用于校验和计算的对称MAC算法(算法22)。Chaskey LTS算法的实施方式被提出为具体的示例性实施例;一种替选方案是例如在微控制器中存在用于AES128的硬件加速器单元或者诸如来自Siphash族的另一校验和方法的情况下基于算法AES128-CBC的MAC方法的使用。这些算法可以在64字节位级的RAM要求和512字节位级的闪存要求下实现,并且因此与4kB的引导加载器B的总存储预算兼容。
应用A实现相同的对称MAC算法(算法20)以及用于签名验证的非对称方法(算法19)。对于在固件更新期间使用的附加非对称签名验证,采用基于例如椭圆曲线的方法。例如,椭圆曲线Curve25519上的EdDSA算法。这里使用的曲线Curve25519和EdDSA允许签名验证的特别的代码和资源高效的实施方式。
作为Edwards曲线上的EdDSA的替选方法,Galois域中的所谓Koblitz曲线或来自SECP组或所谓的Brainpool工作组的NIST标准的所谓“Short Weierstrass”曲线可以用于名称ECDSA标准化的非对称签名方法(例如,见标准ANS X9.62,http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf)。除了在椭圆曲线上的所谓的标量乘法之外,EdDSA算法还使用密码安全的防冲突的HASH算法,诸如SHA512或SHA-3。Curve25519(包括SHA512)上的签名验证算法EdDSA需要大约15kB的ROM和大约512字节的RAM的存储器容量,并且因此可以在应用固件A的存储预算内实现。
替选地,基于素数字段的非对称签名(诸如,基于RSA或基于DSA的签名)的实施方式也可用于应用A。与基于椭圆曲线(ECDSA、EdDSA)的签名算法相反,后者的优点在于签名字段基本上比使用RSA或DSA算法时更短,并且与基于RSA的签名相比,该签名字段可能仅稍微较慢并且具有较低的RAM存储器要求。
优选地,在所递送的每个固件镜像中编译用于签名验证所需的公共密钥PK。然而,它也可以与固件镜像独立地存储在微控制器的限定存储器区域中,例如在为数据保留的所述1kB区域(存储器16)上。
基于用于密码安全随机数生成的已知方法,生成用于创建对于每个固件更新而新生成的设备特定密钥SK的随机数生成。特别地,示例性实施例中的随机数生成器经由尤其是在设备生产期间传送一次的所谓的种子值(seed value)以及另外经由设备中可用的熵源(诸如噪声测量值、不可预测的时间戳,以及在某些情况下的硬件随机数生成器)来参数化。
例如,提出了通过使用诸如SHA512到数字RS=SHA512(FRS||BC||ADCNOISE)的所谓的加密散列算法首先将不同的熵源混合在一起来生成随机数,诸如初始的设备特定的工厂随机晶位FRS(其在设备生产中最初在制造商的检查站计算并且被存储在闪存中)、引导计数器BC、噪声ADC值ADCNOISE等。然后,结果RS本身可以用作随机数或用于所谓的流密码算法(诸如AES128-CTR、Salsa20或Chacha20)的密钥,其然后用于生成随机数。该方法确保潜在的攻击者不能预测在固件更新期间使用的密钥SK的确切值,并且因此没有办法生成具有在上述经由外部数据接口到引导加载器B的第二传输中被错误地识别为可靠的经操纵数据的固件镜像。
对于待传输的用于更新设备1中的系统固件的新固件,借助于私有密钥生成签名字段。这种密钥仅适用于由设备制造商选择的一群人。接下来,对固件的程序代码和任何相关联的常数数据区域,附加从其计算的EdDSA签名AS。术语固件镜像在这里指的是数据区域(固件程序代码+常数数据)和可选的签名字段的适当组合。包含在数据区域中的数据也被称为固件数据。在现有技术中,已知不同的所谓容器格式用于将签名字段附加到数据块,例如在ITU-T标准X.509下,因为其用于互联网证书。例如,存在用于验证签名字段的现有标准程序。在这里描述的情况下,例如,通过向数据区域预先附加一个长度规范并将签名字段附加到数据区域来生成固件镜像也是完全足够的。
对于固件更新,新的密钥SK由微控制器5中的应用A确定。然后,将固件镜像传送到非对称签名验证算法19,并且也并行地传送到对称MAC算法20(例如Chaskey LTS)。后者使用用于校验和计算的对称密钥SK,该对称密钥是使用随机数生成器新生成的并且留存在存储器16中。这里,重要的问题是签名验证以及对称校验和方法都不需要固件镜像作为整体在给定的时间点处在微控制器的RAM存储器中可用。相反,足以逐渐处理固件镜像的数据,例如,在16或128字节的块中处理。在这种情况下,这样的子段用于校验和方法,然后在可用的情况下在存储器中被下一个数据段覆盖。在技术术语中,经常说,两种加密方法可以经由存储器保存的“流”应用来实现,其中,数据以较小子段的顺序“流”的形式传输。
在传输完整固件镜像的过程中,应用A还经由串行接口接收附加到固件镜像的所生成的签名字段AS。使用可从设备制造商获得的公共密钥经由EdDSA算法19来验证这种外部接收的值AS的可靠性。
如果签名验证运行成功,则用于使用对称密钥SK计算的刚刚接收的固件镜像的数据的对称校验和值MAC被存储在闪存16中,并且将对CPU的控制提供给引导加载器固件B。
这接下来擦除先前由应用A占用的闪存区域。其找到待用于存储器16中的对称算法22(例如,Chaskey)的密钥SK以及固件组件A刚刚计算的校验和MAC的正确结果。该校验和MAC不能由任何人预测,甚至不能由设备制造商预测,这是因为在该值中包括不可预测的密钥SK。
接下来,引导加载器B再次请求完整固件数据的传递、接收随后传送的包含固件数据的第二固件镜像、使用接收到的固件数据进行对称校验和计算,并使用与旧应用A(现在闪存中不再可用)的适当结果的所需对应性来验证新传输的固件镜像的正确性。在该第二传输期间,由此进行对称校验和计算以及在准备的擦除后的闪存区域中的数据存储。
在新固件镜像的完全更新的传递之后,进行对称校验和的验证。如果结果与用旧应用A计算的校验和相对应,则识别出可靠性,并且新固件被认为有效并被有效连接。因此,它替换先前擦除的旧应用A。接下来,引导加载器将控制交给新应用并擦除存储器16的在上次更新期间存储有密钥SK和对称校验和的数据存储器区域。
该方法的优点在于,即使在引导加载器的有限存储预算的场境下,也可以成功地实现可靠且鲁棒的非对称签名验证。
除了不具有上述固件的加密的变型之外,本领域技术人员还将考虑不仅发生固件认证而且固件本身被加密的变型。为此,除了用于签名算法的设备制造商的公共密钥之外,还存储有用于固件解密(保密)的对称密钥。签名验证优选地针对加密固件发生,但也可以对于解密固件以不同的顺序执行。
重要的是,在执行方法步骤1之后,在引导加载器组件B中,固件更新只能使用与之前在应用中验证为正确的完全相同的固件。有利地,固件ID因此将密钥SK与由明确地识别待传输的固件数据的应用计算的对称MAC校验和(例如固件版本号)一起放置在闪存中。使用该固件版本号,例如传输伙伴的引导加载器软件由此可以经由数据接口6通信精确地预期的固件版本。例如如果固件更新被中断(例如,由于电源故障)并且应该在稍后的时刻恢复,这可能是相关的。
总之,本发明提供了即使在具有有限存储预算的最小型微控制器系统中进行用于保护固件更新的安全de非对称签名的可能性。
该优点基本上仅有的缺点在于,固件必须被传输不止一次,而是必须被传输两次,并且在第一步骤中进行签名验证,并且镜像的存储和先前存储器的覆盖仅在以下步骤中进行。
Claims (15)
1.一种用于更新第一固件组件的方法,所述第一固件组件提供测量和控制技术的设备的功能并且被嵌入在所述设备的微控制器中,所述方法包括:
-经由所述微控制器的与外部设备连接的数据接口逐段接收第一固件镜像,其中,所述第一固件镜像包括数据区域和签名字段,并且其中,用于更新所述第一固件组件的所述数据区域包括具有固件程序代码的数据,并且所述签名字段包括根据第一加密方法产生的第一认证数据;
-经由包含在所述第一固件组件内的根据所述第一加密方法的认证算法,基于所述第一认证数据执行所述第一固件镜像的认证;
-经由包含在所述第一固件组件中的用于根据与所述第一加密方法不同的第二加密方法创建第二认证数据的算法,为包含在所述第一固件镜像的所述数据区域中的所述数据创建所述第二认证数据;
-在成功认证所述第一固件镜像之后,将所述第二认证数据存储在所述设备的持久存储器中;
-擦除所述第一固件组件,其中,所述擦除由嵌入在所述微控制器中的第二固件组件控制;
-在所述第二固件组件参与的情况下,经由所述数据接口将用于更新所述第一固件组件的所述数据作为第二固件镜像的组件重新传输到所述微控制器,并将所述数据存储在所述微控制器的所述持久存储器中;
-经由包含在所述第二固件组件内的根据所述第二加密方法的认证算法,基于存储在所述微控制器中的所述第二认证数据来执行在所述重新传输期间接收的所述第二固件镜像的认证;以及
-在成功认证所述第二固件镜像的情况下,启用并执行与所述第二固件镜像一起传输并存储在所述存储器中的所述固件程序代码作为新的第一固件组件。
2.根据权利要求1所述的方法,
进一步包括:
在未成功认证所述第二固件镜像的情况下,擦除与所述第二固件镜像一起传输和存储的所述数据,特别是擦除所保存的固件程序代码。
3.根据权利要求1或2所述的方法,
其中,所述第一加密方法是非对称加密方法,
例如,基于椭圆曲线的方法、特别是基于用于椭圆曲线Curve25519的EdDSA算法,ECDSA标准族的方法,或者基于素数字段的方法、特别是RSA或DSA方法。
4.根据权利要求3所述的方法,
其中,所述第二加密方法是对称加密方法,
例如,基于块加密算法的MAC方法,特别是基于Chaskey或AES128-CBC算法族的MAC方法。
5.根据权利要求4所述的方法,
其中,所述对称加密方法不包括任何抗冲突散列算法作为部分组件。
6.根据权利要求3至5中任一项所述的方法,
其中,所述第一认证数据是使用包括在所述数据区域中的、特别是所述固件程序代码的所述数据利用私有密钥创建的数字签名;
并且其中,执行所述第一固件镜像的所述认证包括经由公共存储在所述微控制器的持久存储器中的密钥来校验所述数字签名。
7.根据权利要求4至6中任一项所述的方法,
其中,创建所述第二认证数据包括:
根据所述第二加密方法,从通过包括在第一固件组件中的密钥生成器生成的密钥和包括在所述数据区域中的所述数据,特别是包括在所述第一固件镜像中的所述程序代码,创建用作第二认证数据的校验和。
8.根据权利要求7所述的方法,
其中,经由所述密钥生成器生成的所述密钥被存储在所述微控制器的持久存储器中,
其中,基于所述第二认证数据执行所述第二固件镜像的认证包括:
根据所述第二加密方法从经由所述密钥生成器生成的所述密钥和包括在所述第二固件镜像中的所述数据、特别是包括在所述第二固件镜像中的所述固件程序代码,生成校验和;以及
将所述校验和与所述第二认证数据进行比较,其中,如果所述校验和与所述第二认证数据相对应,则认证成功。
9.根据权利要求7或8所述的方法,
其中,所述密钥生成器包括随机数生成器,并且其中,所述密钥是随机数序列,特别是至少80位的随机数序列。
10.根据权利要求1至9中任一项所述的方法,
其中,所述第一固件镜像和所述第二固件镜像的所述固件程序代码被加密,并且其中,所述方法进一步包括:
经由所述第一固件组件和/或所述第二固件组件的附加解密算法对所述固件程序代码进行解密。
11.一种测量和控制技术的设备,包括:
设备电子器件,所述设备电子器件具有至少一个微控制器;
其中,所述至少一个微控制器包括具有至少一个第一固件组件以及具有第二固件组件的嵌入式固件,
并且其中,所述第一固件组件包括:
-用于提供所述设备的功能的一个或多个算法;
-用于接收第一固件镜像的算法,所述第一固件镜像包括数据区域和签名字段,其中,用于更新所述第一固件组件的所述数据区域包括包含固件程序代码的数据,并且其中,所述签名字段包含根据第一加密方法产生的第一认证数据;
-用于根据所述第一加密方法基于所述第一认证数据认证所述第一固件镜像的认证算法;
-用于根据与所述第一加密方法不同的第二加密方法从包括在所述数据区域中的数据,特别是所述固件程序代码,生成第二认证数据的算法;以及
-用于将所述第二认证信息存储在所述微控制器的持久存储器中的算法,
并且其中,所述第二固件组件包括:
-用于接收第二固件镜像的算法,所述第二固件镜像包括用于更新所述第一固件组件的所述数据,特别是用于更新所述第一固件组件的固件程序代码;
-用于擦除所述第一固件组件且用于将包括在所述第二固件镜像中的所述固件程序代码存储为新的第一固件组件的算法;
-用于从所述持久存储器读取所述第二认证数据的算法;
-根据所述第二加密方法的认证算法,所述认证算法用于基于所述第二认证数据和包括在所述第二固件镜像中的所述数据、特别是所述固件程序代码,来认证所述第二固件镜像;以及
-用于启用所述新的第一固件组件的算法。
12.根据权利要求11所述的设备,
其中,所述第一加密方法是非对称加密方法,并且所述第二加密方法是对称加密方法,并且
其中,所述第一固件组件进一步包括:
包括随机数生成器的密钥生成器,以及用于将经由所述密钥生成器生成的用于所述第二加密方法的密钥存储在所述微控制器的持久存储器中的算法;
并且其中,根据所述第二加密方法的所述认证算法被设计成通过所保存的密钥和包括在所述第二固件镜像中的所述数据、特别是所述固件程序代码,创建校验和,并将所述校验和与所述第二认证数据进行比较。
13.根据权利要求11或12所述的设备,
其中,所述第一固件组件和/或所述第二固件组件包括用于——特别地利用对称加密方法——解密固件镜像或包含在所述固件镜像中所包括的所述数据区域内的所述数据、特别是包括在所述固件镜像中的固件程序代码的进一步的算法。
14.根据权利要求11至13中任一项所述的设备,
其中,当使用易于访问的数据传输信道时,特别是当使用远程维护或无线接口时,或者当使用诸如USB棒或SD卡的便携式数据存储介质时,发生所述第一固件镜像和/或所述第二固件镜像到所述设备的传输。
15.根据权利要求11至14中任一项所述的设备,
其中,所述设备具有生成根据测量变量的测量信号的换能器,所述测量信号特别是数字信号;并且
所述设备电子器件包括测量电子器件,所述测量电子器件——特别是可拆卸地或不可拆卸地——连接到用于接收所述测量信号的测量变换器,所述测量电子器件被设计成处理所述测量信号并将处理后的测量信号输出至上级单元。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016106625.7 | 2016-04-11 | ||
DE102016106625 | 2016-04-11 | ||
DE102016106819.5 | 2016-04-13 | ||
DE102016106819.5A DE102016106819A1 (de) | 2016-04-11 | 2016-04-13 | Verfahren zur Aktualisierung einer Firmware-Komponente und Gerät der Mess- und Regeltechnik |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107368744A true CN107368744A (zh) | 2017-11-21 |
CN107368744B CN107368744B (zh) | 2020-11-06 |
Family
ID=58464559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710227906.0A Active CN107368744B (zh) | 2016-04-11 | 2017-04-10 | 用于更新固件组件的方法以及测量和控制技术的设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107368744B (zh) |
DE (1) | DE102016106819A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595198A (zh) * | 2018-04-18 | 2018-09-28 | 南京方寸微电子科技有限公司 | 一种安全的固件更新方法 |
CN108933790A (zh) * | 2018-07-05 | 2018-12-04 | 山东省计算中心(国家超级计算济南中心) | 高安全等级的ota升级固件的加密方法 |
CN109033762A (zh) * | 2018-07-05 | 2018-12-18 | 南京云信达科技有限公司 | 一种用于解决复杂检验对象软件授权的方法 |
CN109671229A (zh) * | 2019-01-31 | 2019-04-23 | 环胜电子(深圳)有限公司 | 收款机及其安全验证的方法 |
CN110048845A (zh) * | 2017-12-13 | 2019-07-23 | 恩德莱斯和豪瑟尔分析仪表两合公司 | 操作过程自动化技术的测量变换器的扩展的方法和系统 |
CN110851183A (zh) * | 2018-08-20 | 2020-02-28 | 联想企业解决方案(新加坡)有限公司 | 在多处理器体系结构中快速启动处理器的方法 |
CN112639783A (zh) * | 2018-08-31 | 2021-04-09 | 美光科技公司 | 同时的镜像测量和执行 |
CN113127843A (zh) * | 2019-12-31 | 2021-07-16 | 美光科技公司 | 用于验证的双重包装 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018211932A1 (de) * | 2018-07-18 | 2020-01-23 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum sicheren Start eines Gerätes |
DE102021129430A1 (de) | 2021-11-11 | 2023-05-11 | Endress+Hauser Flowtec Ag | Verfahren zum Erkennen von Manipulation von Daten in einem Netzwerk |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6718374B1 (en) * | 1999-04-21 | 2004-04-06 | General Instrument Corporation | Method and system for identifying and downloading appropriate software or formware specific to a particular model of set-top box in a cable television system |
US20050216753A1 (en) * | 2004-03-23 | 2005-09-29 | Dell Products L.P. | System and method for providing a secure firmware update to a device in a computer system |
CN101073045A (zh) * | 2004-10-11 | 2007-11-14 | 艾利森电话股份有限公司 | 数据处理装置中的数据的安全加载和存储 |
CN101583849A (zh) * | 2006-11-16 | 2009-11-18 | 恩德莱斯和豪瑟尔两合公司 | 具有模块化构造的测量换能器电路的装置 |
CN103299276A (zh) * | 2010-11-08 | 2013-09-11 | 金雅拓股份有限公司 | 嵌入式装置的软件更新过程 |
CN103679004A (zh) * | 2012-09-19 | 2014-03-26 | Nxp股份有限公司 | 用于安全地更新计算设备中的固件的方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0946019A1 (en) * | 1998-03-25 | 1999-09-29 | CANAL+ Société Anonyme | Authentification of data in a digital transmission system |
EP1256042B1 (en) * | 2000-02-17 | 2005-07-20 | General Instrument Corporation | Method and system for secure downloading of software |
TWI234706B (en) * | 2002-07-26 | 2005-06-21 | Hon Hai Prec Ind Co Ltd | System and method for firmware authentication |
JP5669431B2 (ja) * | 2010-05-06 | 2015-02-12 | キヤノン株式会社 | 情報処理装置、ファームウェア適用方法、及びコンピュータプログラム |
-
2016
- 2016-04-13 DE DE102016106819.5A patent/DE102016106819A1/de active Pending
-
2017
- 2017-04-10 CN CN201710227906.0A patent/CN107368744B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6718374B1 (en) * | 1999-04-21 | 2004-04-06 | General Instrument Corporation | Method and system for identifying and downloading appropriate software or formware specific to a particular model of set-top box in a cable television system |
US20050216753A1 (en) * | 2004-03-23 | 2005-09-29 | Dell Products L.P. | System and method for providing a secure firmware update to a device in a computer system |
CN101073045A (zh) * | 2004-10-11 | 2007-11-14 | 艾利森电话股份有限公司 | 数据处理装置中的数据的安全加载和存储 |
CN101583849A (zh) * | 2006-11-16 | 2009-11-18 | 恩德莱斯和豪瑟尔两合公司 | 具有模块化构造的测量换能器电路的装置 |
CN103299276A (zh) * | 2010-11-08 | 2013-09-11 | 金雅拓股份有限公司 | 嵌入式装置的软件更新过程 |
CN103679004A (zh) * | 2012-09-19 | 2014-03-26 | Nxp股份有限公司 | 用于安全地更新计算设备中的固件的方法及系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110048845A (zh) * | 2017-12-13 | 2019-07-23 | 恩德莱斯和豪瑟尔分析仪表两合公司 | 操作过程自动化技术的测量变换器的扩展的方法和系统 |
CN108595198A (zh) * | 2018-04-18 | 2018-09-28 | 南京方寸微电子科技有限公司 | 一种安全的固件更新方法 |
CN108595198B (zh) * | 2018-04-18 | 2022-02-22 | 山东方寸微电子科技有限公司 | 一种安全的固件更新方法 |
CN108933790A (zh) * | 2018-07-05 | 2018-12-04 | 山东省计算中心(国家超级计算济南中心) | 高安全等级的ota升级固件的加密方法 |
CN109033762A (zh) * | 2018-07-05 | 2018-12-18 | 南京云信达科技有限公司 | 一种用于解决复杂检验对象软件授权的方法 |
CN108933790B (zh) * | 2018-07-05 | 2020-12-22 | 山东省计算中心(国家超级计算济南中心) | 高安全等级的ota升级固件的加密方法 |
CN110851183A (zh) * | 2018-08-20 | 2020-02-28 | 联想企业解决方案(新加坡)有限公司 | 在多处理器体系结构中快速启动处理器的方法 |
CN110851183B (zh) * | 2018-08-20 | 2024-04-12 | 联想企业解决方案(新加坡)有限公司 | 在多处理器体系结构中快速启动处理器的方法 |
CN112639783A (zh) * | 2018-08-31 | 2021-04-09 | 美光科技公司 | 同时的镜像测量和执行 |
CN109671229A (zh) * | 2019-01-31 | 2019-04-23 | 环胜电子(深圳)有限公司 | 收款机及其安全验证的方法 |
CN113127843A (zh) * | 2019-12-31 | 2021-07-16 | 美光科技公司 | 用于验证的双重包装 |
CN113127843B (zh) * | 2019-12-31 | 2024-03-26 | 美光科技公司 | 用于验证的双重包装 |
Also Published As
Publication number | Publication date |
---|---|
CN107368744B (zh) | 2020-11-06 |
DE102016106819A1 (de) | 2017-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10481900B2 (en) | Method for updating a firmware component and device of measurement and control technology | |
CN107368744A (zh) | 用于更新固件组件的方法以及测量和控制技术的设备 | |
CN110601853B (zh) | 一种区块链私钥生成方法以及设备 | |
CN106506440B (zh) | 用于验证数据完整性的方法 | |
US9584311B2 (en) | Decrypting data | |
CN106797317B (zh) | 安全共享密钥共享系统及方法 | |
CN106416124B (zh) | 半确定性数字签名生成 | |
KR101702545B1 (ko) | 데이터 인증방법 및 그 장치 | |
CN110460439A (zh) | 信息传输方法、装置、客户端、服务端及存储介质 | |
CN101682628A (zh) | 安全通信 | |
CN103714642A (zh) | 密钥下载方法、管理方法、下载管理方法及装置和系统 | |
TW202121868A (zh) | 資料的加解密方法、裝置、存儲介質及加密文件 | |
CN109428715A (zh) | 数据接收设备、数据传输系统和密钥生成设备 | |
KR20190045753A (ko) | 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버 | |
CN102523095A (zh) | 具有智能卡保护的用户数字证书远程更新方法 | |
US10726161B2 (en) | Information processing device and malicious message detection method | |
CN108306970A (zh) | 一种基于安全芯片的固件安全下载以及校验装置和方法 | |
CN103493430A (zh) | 信息处理设备以及信息处理方法 | |
CN107332833A (zh) | 校验方法及装置 | |
CN110838919A (zh) | 通信方法、存储方法、运算方法及装置 | |
CN112703500A (zh) | 在低功率模式期间保护存储在IoT装置的存储器中的数据 | |
CN107026729B (zh) | 用于传输软件的方法和装置 | |
EP2950229B1 (en) | Method for facilitating transactions, computer program product and mobile device | |
US12051061B2 (en) | Method for operating a distributed database system, distributed database system, and industrial automation system | |
US20200213095A1 (en) | Method and device for the computer aided processing of a random bit pattern |
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 |