Abstract:
A method is provided to generate a protected program from an original program such that the protected program is less vulnerable than the original program to unauthorised use when installed on a device. The method includes: receiving, at a processor, an original program, wherein the original program takes an input data flow and generates an output data flow. The processor then transforms the original program into a white-box implementation of the original program including encoded functional blocks, and then transforms the white-box implementation of the original program into a node-locked program by further encoding the encoded functional blocks of the program with device specific parameters to provide node- encoded functional blocks, wherein the node-locked program is for use on and is node-locked to the device.
Abstract:
Variables utilized in device firmware that provides various boot and runtime services are repaved in a fault-tolerant manner within a secure store in a durable, non-volatile device memory during an FOTA update process. A spare region in the secure store is utilized to temporarily hold a back-up of a primary region in which the firmware variables are written. Using a transaction-based fault- tolerant write (FTW) process, the variables in the primary region can be repaved with variables contained in a firmware update payload that is delivered from a remote service. In the event of a fault in the variable region repaving process, either the primary or spare region will remain valid so that firmware in a known good state can be utilized to enable the device to boot successfully and the variable region repaving in the FOTA update process may be restarted.
Abstract:
A method of programming a device comprising acquiring configuration data, loading the configuration data onto a programmable device, processing at least a portion of the configuration data through a one way function to form processed configuration data, and configuring at least one configurable module of the programmable device using the processed configuration data from the processing step.
Abstract:
The invention relates to a system comprising a non-volatile memory device configured to contain executable code; and a logic device comprising an internal memory and a processor configured to execute the code contained in the non-volatile memory device, the internal memory being located in a first always-on power domain of the logic device, wherein the system is configured to check whether the internal memory contains a code digest Hc, obtain the executable code from the non-volatile memory device, compute a code digest Hc"of the executable code, and, if the code digest Hc and the code digest Hc"are identical, execute the executable code. The invention also relates to a corresponding method.
Abstract:
Verfahren zum Programmieren eines Steuergeräts eines Fahrzeugs, das Verfahren umfassend: Schreiben eines ersten Softwaremoduls (110) über eine erste Schnittstelle (108) in das Steuergerät (106); sperren der ersten Schnittstelle (108) des Steuergeräts (106); Schreiben eines Schlüssels (122) über eine zweite Schnittstelle in einen gesicherten Speicherbereich (132) des Steuergeräts (106); Schreiben einer verschlüsselten Fahrzeugsoftware (112) über die zweite Schnittstelle in das Steuergerät (106); entschlüsseln der verschlüsselten Fahrzeugsoftware (112) durch das erste Softwaremodul (110) unter Verwendung des geschrieben Schlüssels; Speichern der entschlüsselten Fahrzeugsoftware in einen Speicherbereich (134) des Steuergeräts (106); und Installieren eines Leseschutzes für den Speicherbereich (134) der entschlüsselten Fahrzeugsoftware.
Abstract:
A first time software is loaded for execution by a device, the software stored in non-secure storage is authenticated. Authenticating the software may involve a cryptographic operation over the software and a digital signature of the software. A verification tag may be generated for the software if authentication of the software is successful, the verification tag based on the software and at least a device-specific secret data. The verification tag may be stored within the device. Each subsequent time the software is loaded for execution it may be verified (not authenticated) by using the verification tag to confirm that the software being loaded is the same as the one used to generate the verification tag while avoiding authentication of the software.
Abstract:
A device boots in a secure manner that allows measurements reflecting which components are loaded during booting to be generated (302). Measurements of such components, as well as of a device management agent (304) and the security state of the device, are also obtained (302). The device management agent accesses an attestation service for an enterprise, which is a collection of resources managed by a management service (306). The device management agent provides the obtained measurements to the attestation service, which evaluates the measurements and based on the evaluation determines whether the device is verified for use in the enterprise (308). The management service uses this verification to ensure that the device management agent is running in a secure manner, is accurately providing indications of the state of the device to the management service, and is implementing policy received from the management service (310 and 312).
Abstract:
L'invention concerne un procédé d'authentification d'un élément consommable ou détachable (20) d'une imprimante à jet d'encre continu (CIJ), comportant: la génération, par le contrôleur (3) de l'imprimante, d'une 1 ère information aléatoire, et son envoi à un circuit d'authentification de l'élément, le cryptage de cette 1 ère information aléatoire, par ce circuit d'authentification de l'élément, par un 1 er algorithme de cryptage, et une 1 ère clé secrète, formant ainsi une 1 ère information aléatoire cryptée, et son envoi au contrôleur de l'imprimante, le cryptage de cette 1 ère information aléatoire, par le contrôleur de l'imprimante, par un 2 ème algorithme de cryptage, et une 2 ème clé secrète, formant ainsi une 2 ème information aléatoire cryptée, la comparaison de la 1 ère information aléatoire cryptée et de la 2 ème information aléatoire cryptée, pour authentifier, ou pas, l'élément consommable; et, si l'élément consommable est authentifié, au moins une partie d'une 3 ème clé, dite clé partagée, est envoyé par l'élément élément consommable ou détachable (20) à l'imprimante à jet d'encre continu.
Abstract:
Embodiments of systems and methods disclosed herein include renewable secure boot systems for renewing and booting a target device. Systems and methods include techniques by which a secure boot may be implemented in a renewable fashion on a reprogrammable device. More specifically, in certain embodiments, systems and methods are described where target devices securely receive an encrypted boot image and one or more authorization codes from a third party. The one or more authorization codes are derivatives of a target device hardware secret, allowing the authorization codes to be changed at will, thus increasing flexibility and security of the system.
Abstract:
A backup power and load discovery system can include a shared backup power supply controlled by a backup power control module, and a node coupled to the shared backup power supply, wherein the node supports a plurality of loads and includes system firmware to determine a subset of the plurality of loads that are to be protected by the shared backup power supply; and the system firmware to communicate the subset between the node and the shared backup power control module.