Skip to content

Latest commit

 

History

History
1394 lines (742 loc) · 53.6 KB

User Guide.md

File metadata and controls

1394 lines (742 loc) · 53.6 KB

OPTIGA™ Trust M Explorer User Guide

About this document

Scope and purpose

This document serves as a guide for the users to explore OPTIGA™ Trust M features. It describes commonly used functionalities of the OPTIGA™ Trust M with graphical examples and a simple to follow step by step instructions.

Intended audience

This document is intended for the users who wish to explore the functionalities of the OPTIGA™ Trust M.

Table of contents

1. Overview

1.1 Installation and Setup

2. General Features

3. Cryptographic Functions

4. OpenSSL Provider

5. Protected Update

6. Secure Storage

Overview

The OPTIGA™ Trust M GUI-based software is for users to evaluate Infineon OPTIGA™ Trust M with Infineon OPTIGA™ Trust M board connected to the Raspberry Pi running on Raspbian Linux.  

Using this software customers can start evaluating the new benefits that the OPTIGA™ Trust M will bring to IoT applications such as smart home devices and network equipment.

Installation and Setup

For Installation and Setup, refer to the OPTIGA™ Trust M Setup Guide

To start the Trust M Explorer Application

Go to directory "optiga-trust-m-explorer/Python_TrustM_GUI" and type

./start_gui.sh

General Features

Displays Basic Information of the OPTIGA™ Trust M. To read out/write in data, metadata in data objects and certificates stored in the OPTIGA™ Trust M.

General tab

Displays Basic Information of the OPTIGA™ Trust M. Displays the Chip information, metadata and data of the data objects of the Trust M.

Functions

Function Descriptions of the General Tab

[^Figure 1]: OPTIGA™ Trust M General functions described

Chip info

Displays the OPTIGA™ Trust M chip information.

To read out the OPTIGA™ Trust M chip info, select "OPTIGA™ Trust M chip info".

[^Figure 2]: OPTIGA™ Trust M chip info displayed

Read Metadata For All Data Objects

Displays the metadata for all data objects : 0xE0E0-0xE0E3, 0xE0E8-0xE0E9, 0xE0EF, 0xE120-0xE123, 0xE200, 0xE140, 0xF1D0-0xF1DB, 0xF1E0-0xF1E1

To read out metadata, select "Read Metadata For All Data Objects".

[^Figure 3]: Metadata for all data objects displayed

Read All Objects Data

To Display the data for all data objects : 0xE0E0-0xE0E3, 0xE0E8-0xE0E9, 0xE0EF, 0xE120-0xE123, 0xE200, 0xE140, 0xF1D0-0xF1DB, 0xF1E0-0xF1E1

To read data, select "Read All Objects Data"

[^Figure 4]:Data of all data objects displayed

Read Metadata For Private Key Objects

To Display the metadata for all private data objects : 0xE0F0-0xE0F3, 0xF1FC-0xE0FD

To read metadata for private key slot, select "Read Metadata For Private Key Objects"

[^Figure 5]:Metadata for private key data objects displayed

Read Metadata For Common Data Objects

Displays the metadata status of common data objects : 0xE0C0-0xE0C6, 0xF1C0-0xF1C2

To read metadata status, select "Read Metadata For Common Data Objects".

[^Figure 6]:Metadata status for common data objects displayed

Read Data For Common Data Objects

Displays the status of common data objects : 0xE0C0-0xE0C6, 0xF1C0-0xF1C2

To read data status, select "Read Data For Common Data Objects".

[^Figure 7]:Data Status of common data objects displayed

Generate OPTIGA Trust Configurator Files

Generates configurations files to be imported to OPTIGA Trust Configurator tool from Infineon.

Note: OPTIGA Trust Configurator(OTC) is a tool which can be used to generate customer specific configurations for Infineon Secure Elements. The OTC files generated here can be imported into Infineon OPTIGA Trust Configurator to create custom security chip configurations. Please go to Infineon website to download OPTIGA Trust Configurator for final configuration.

To generate OTC Files, select "Generate OPTIGA Trust Configurator Files"

[^Figure 8]: Generate OPTIGA Trust Configurator Files Option

Select directory to save the generated OTC Files in the save file dialog. By default, the generated OTC files are compiled under OPTIGA_Trust_M_V3_SLS32AIA010ML_K_Infineon_Technologies/ directory

[^Figure 9]: OTC File save dialog

Note: OTC Files generation could take up to a minute

After finished, the screen will also show the directory of the generated OTC file

[^Figure 10]: OTC generation completed

Private Key and Cert OID

This section shows you the Private Key and Certificate OID management of the OPTIGA™ Trust M. It is used to read metadata of the Private keys , read out Certificate metadata, Certificate Data and write Certificate's into data objects.

Functions

Private Key and Cert OID functions Description

[^Figure 11]:Private Key and Cert OID functions described

Read Key Slot Metadata

Reads out the Metadata of the selected Key Slot Data Object. Key Slot data objects :0xE0F0 - 0xE0F3, 0xE0FC-0xE0FD, 0xE200

Key Slot Data Objects are data objects used by the Cryptographic Application.

To read metadata of the key slot, select the Key Slot. Then select "Read Key Slot Metadata". In this example Key Slot data object : 0xE0F0

[^Figure 12]:Key slot metadata displayed

Read Certificate Metadata

The Public Key Certificate data objects are used to store Certificates.

To read out metadata of a selected Public key Certificate data object, select "Read Certificate Metadata". In this example, 0xE0E0 is selected

[^Figure 13]:Certificate Metadata displayed

Read Certificate

Read the Certificate Data stored inside the selected data objects : 0xE0E0 - 0XE0E3, 0XE0F8 - 0XE0F9

To read out the certificate data stored inside, select the Public Key Certificate data object , from the options, then select "Read Certificate".

[^Figure 14]:Readout Certificate displayed

Write Certificate

Write a Certificate into the selected data object : 0xE0E1 - 0xE0E3, 0xE0E8 - 0XE0E9

0xE0E0 is used to store the pre-provisioned certificate from Infineon. 0xE0E8 - 0xE0E9 is used to store the trust anchor.

To Write Certificate, Select the Certificate filename. In this example, the testE0E0.crt Certificate file is selected.

[^Figure 15]:Certificate file selection

Select the Destination OID to write the certificate data. The Destination OID data objects list: 0xE0E1 - 0xE0E3, 0xE0E8 - 0XE0E9 . In this example 0xE0E3 is selected.

[^Figure 16]:Write Certificate into destination OID

Select "Write Certificate" to write in certificate data into Destination OID.

[^Figure 17]:Certificate successfully written into destination OID

Write Platform Binding Secret

Write the Platform Binding Secret into the Platform Binding Secret Data Object : 0xE140

To Write Platform Binding Secret, Select the Secret file. In this example, platform_secret.dat is selected as the default one.

[^Figure 18]: Secret File Selection

Select "Write Secret" to write in the Platform Binding Secret into 0xE140.

[^Figure 19]: Secret Data successfully written into Platform binding secret data object

Application Data OID

This section shows you the Application Data Objects management of the OPTIGA™ Trust M. It is used to read metadata, data of the Application Data Objects and write data into Application Data Objects

Application data objects are the data objects used by the Protected Update and Secure Storage Applications.

Functions

Application Data OID functions description

[^Figure 20]:Application Data OID functions described

Read Metadata Of Data Objects ID

Reads the Metadata of the selected Application Data Object. Data Objects ID : 0xF1D0 - 0xF1DB

To Read Metadata, select Data Objects ID . Then select "Read Metadata of Data Objects ID". In this Example Data Objects ID: 0xF1D0 is used.

[^Figure 21]:Metadata of data objects ID: 0xF1D0 displayed

Read Data of Data Objects ID

Reads the Data stored inside the selected Application Data Object ID.

To Read Data, select Data Objects ID . Then select "Read Metadata of Data Objects ID". In this Example Data Objects ID: 0xF1D0 is used.

[^Figure 22]:Data inside data objects ID: 0xF1D0 is Read out

Write Data Into Data Objects ID

Write Data into the selected Data Object ID.

To Write Data, enter the Data input and select the Data Object ID to write to. Then click " Write Data into Data Objects ID". For this example 0xF1D0 is selected and the data input is "1234".

[^Figure 23]:Write Input Data into data object ID: 0xF1D0 successfully

Write Metadata

This section shows you the Metadata management of the OPTIGA™ Trust M. It is used to read and write metadata to all Data Objects.

Data Objects available for Metadata write include Public and Private Keys, Certificates, System Data Objects, Counter Objects, Platform Binding Secrets and Application Data Objects.

Functions

Write metadata functions description

[^Figure 24]: Write Metadata functions described

Read Metadata

Read Metadata from specified Object ID

To read metadata from an Object ID, select one Object ID from the six types of the Data Objects to read from, then click "Read Metdata". For this example 0xF1D0 is selected

[^Figure 25]: Read Metadata from Object ID 0xF1D0

Write Metadata

Write Metadata to specified Object ID

To write metadata to an Object ID, select target OID from one of the lists, configure metadata tags then click Write Metadata button. In the example,

  • Target OID 0xF1D5 is selected
  • Lcs0 is Creation (0x01)
  • Change is Lcs0<0x07
  • Read is Lcs0<0x0F
  • Exe is Lcs0<0x07
  • data type is Bytestring (BTSR)

[^Figure 26]: Metadata update for OID 0xF1D5 successful

Note: To prevent Lcs0 values being irreversible, MUD Provision checkbox will be enabled by default when Lcs0 mode is Operational or Termination

To revert changes to Lcs0 tag, please see section 5.1 Metadata Protected Update

Reset MUD

Reset Metadata Update Description (MUD) tag

To reset MUD, select target OID from one of the list, then click Reset MUD
In the example, OID 0xF1D5 has MUD tag MUD:Int-0xE0E8&&Conf-0xF1D4. After Reset MUD, the tag field is MUD:NEV

[^Figure 27]: MUD Reset Successful

Write Custom Metadata

Write metadata to target OID based on user's text file

To load custom metadata into target OID

  • Select target OID from one of the lists
  • Click the Custom Metadata text box to choose custom metadata file
  • Double check the metadata contents to be written
  • Click Write Custom Metadata

[^Figure 28]: custom metadata loaded and contents shown

[^Figure 29]: custom metadata write success

Matter Test DAC Provisioning

This section shows you the Test DAC Provisioning for Matter devices using the OPTIGA™ Trust M for Device Attestation. It involves reading a pre-provisioned certificate from the chip, extracting the public key, generating a new DAC certificate signed by a trusted Matter CA and writing the Test DAC certificate, Matter Test PAI and Test CD into the Object IDs.

[^Figure 30]: Matter DAC Provisioning functions described

Read Pre-Provisioned Cert

Reads IFX pre-provisioned certificate from OID 0xE0E0

To read the IFX pre-provisioned certificate, select "Read IFX Pre-Provisioned Cert". [^Figure 31]: Displays information about the pre-provisioned certificate

Extract Public Key From Cert

Extracts the public key from the certificate and saves it to a file named pubkey_e0e0.pem.

To extract the public key from the certificate, select "Extract Public Key From Cert". [^Figure 32]: Displays the public key extracted from the certificate

Generate DAC CSR

Generates a Certificate Signing Request(CSR) using the public key.

To generate the CSR, select "Generate DAC CSR Using Public Key". [^Figure 33]: CSR generated from the public key

Generate DAC Cert

Generates a new DAC certificate by signing the CSR with the Matter Test PAI certificate.

To generate the certificate, select "Generate DAC Cert Using Public Key". [^Figure 34]: DAC certificate generated from the public key

Write DAC Cert

Writes the new DAC certificate to OID 0xE0E0. To write the new DAC certificate into 0xE0E0, select "Write Test DAC".

[^Figure 35]: Displays information of the new DAC certificate

Write Matter Test PAI

Writes the Matter Test PAI certificate to OID 0xE0E8. To write the Matter Test PAI into 0xE0E8, select "Write Matter Test PAI". [^Figure 36]: Matter Test PAI written to 0xE0E8.

Write Test CD

Writes the Test CD to OID 0xF1E0. To write Test CD into 0xF1E0, select "Write Test CD". [^Figure 37]: Test CD written to 0xF1E0.

Cryptographic Functions

This section shows you the Cryptographic Functions of the OPTIGA™ Trust M. It can be used to generate keys , encrypt/decrypt and sign/verify using Trust M library.

ECC Cryptographic Function

This section shows the use of the OPTIGA™ Trust M ECC Cryptographic functions such as ECC key generation, ECC sign and verify.

Select "ECC"

[^Figure 38]: Cryptographic Functions ECC menu screen

ECC Functions

ECC function Description

[^Figure 39]: ECC cryptographic functions described

ECC Key Generation

Generates OPTIGA™ Trust M ECC key pair.

ECC type is the ECC Key type to be generated. Key slot is the OID that will be used to store the private key . Once key slot is selected, the public key OID will be displayed. The public key OID will be used to store the public key of the ECC keypair after it is generated.

ECC Types : ECC 256, ECC 384, ECC 521, Brainpool 256, Brainpool 384 ,Brainpool 512 , Key Slot : 0xE0F0 - 0xE0F3

To generate ECC key pair, select the ECC type, Key slot and Key_usage. Then select "Generate Key" In this Example, "ECC type: 256" ,"Key slot: E0F1" and "key_usage:Auth/Sign" are used. The public Key will be stored into corresponding OID which has been displayed in the GUI.

[^Figure 40]: ECC256 key inside 0xE0F1 generated successfully

ECC Sign

Hashes and signs the input using the OPTIGA™ Trust M ECC keypair

To Sign the data using ECC , select ECC type and key slot then click "ECC Sign" . In this Example, "ECC type: 256" and "Key slot: E0F1" are used.

[^Figure 41]: ECC 256 key signed successfully

ECC Verify

To verify the signature using the public key generated, select the ECC type and key slot to verify. In this Example, "ECC type: 256" and "Key slot: E0F1" are used.

[^Figure 42]: ECC verification done successfully

ECC Errors

The following error messages will be displayed if the verification failed.

[^Figure 43]: ECC verification failure

RSA Cryptographic Functions

This section shows RSA1024/2048 Key Generation, Data Encryption and Decryption using RSA key generated by OPTIGA™ Trust M.

Open the "Cryptographic Functions" Tab

Select 'RSA'

[^Figure 44]: RSA cryptographic function menu screen

RSA Functions

RSA Functions Description

[^Figure 45]: RSA cryptographic functions described

RSA Key Generation

Generates OPTIGA™ Trust M RSA key pair

RSA Algo is the RSA Key algorithm to be used to generate the keypair. Key slot is the OID that will be used to store the private key after key generation.

RSA Algo : RSA 1024, RSA 2048 . Key Slot : 0xE0FC, 0xE0FD

To generate RSA keypair, select the RSA Algo, Key slot and Key_usage. Then select "Generate RSA keypair" . In this example RSA Algo: RSA 1024, key slot: 0xE0FC and key_usage:Auth/Enc/Sign are used.The public Key will be stored into corresponding OID which has been displayed in the GUI.

[^Figure 46]:RSA key generated successfully in key slot:0xE0FC (RSA 1024)

RSA Encryption

Encryption using OPTIGA™ Trust M RSA Public key

To Encrypt the input data using RSA, enter the data in "Data Input". Then select "RSA Encrypt " to encrypt the message.

[^Figure 47]: Encrypted using RSA public key

RSA Decryption

Decryption using OPTIGA™ Trust M RSA Private key

To Decrypt the message, Select "RSA Decrypt" to decrypt and display the decrypted message.

[^Figure 48]: Decrypted using private key

RSA Sign

Hashes and signs the input using the OPTIGA™ Trust M RSA keypair

To Sign the input data using RSA , select RSA Algo and key slot to sign. In this Example, "RSA Algo: 1024" and "Key slot: E0FC" are used.

[^Figure 49]:Data input signed using RSA key

RSA Verify

Verifies the signature using the public key generated.

To verify using RSA, select the RSA Algo and key slot to verify. In this Example, "RSA Algo: 1024" and "Key slot: E0FC" are used.

[^Figure 50]:Signature verified

AES Cryptographic Function

This section shows the use OPTIGA Trust M Symmetric Key Gen Functions as well the AES Encryption and Decryption for the Symmetric key.

Open the "Cryptographic Functions" Tab

Select 'AES'

Functions

AES Functions Description

[^Figure 51]: AES cryptographic functions described

AES Key Generation

Generates OPTIGA™ Trust M AES symmetric key.

AES Key is to select the AES key type to be generated. Supported AES Key: AES 128, AES 192, AES 256 Key_usage is to select the usage for the generated AES key.

To generate AES symmetric key, Select the AES Key and Key_usage. then select "Generate AES key".

[^Figure 52]: AES 128 symmetric key generated

AES Encryption

Encryption of the input data using AES Key generated by OPTIGA™ Trust M

To Encrypt the input text data using AES key, first de-select the "Use Data File Input" checkbox, then enter the data in "Data Input". Click "IV File" text box to select desired Initialization file. Then select "AES Encrypt " to encrypt the message. The AES CBC mode is using here for AES Encryption and Decryption.

[^Figure 53]: Text data input encrypted using AES key

To Encrypt the input custom data using AES key, first select the "Use Data File Input" checkbox, then click "Custom Data File" textbox to select data file to encrypt. Click "IV File" text box to select desired Initialization file. Then select "AES Encrypt " to encrypt the data file.

[^Figure 54]: Custom data input encrypted using AES CBC Mode

AES Decryption

Decryption of the input data using AES key generated by OPTIGA™ Trust M

To Decrypt the message, Select "AES Decrypt" to decrypt and display the decrypted message. The decrypted message is also available at working_space/mydata.txt.dec

[^Figure 55]: Data Input decrypted using AES CBC Mode

OpenSSL Provider

This section shows you the OpenSSL-Provider functions of the OPTIGA™ Trust M . The OpenSSL-Provider can be used to create RSA(Client/Server) and can also be used for random number generation.

ECC (Client/Server)

The ECC(CLient/ Server) is a demonstration to show the use of the Trust M Provider for secure communications between client and server

Select "ECC (Client/Server)"

[^Figure 56]: OpenSSL-Provider ECC (Client/Server) Menu Screen

ECC (Client/Server) Function Description

ECC (Client/Server) Functions described

[^Figure 57]: OpenSSL-Provider ECC (Client/Server) Function Description part 1

[^Figure 58]: OpenSSL-Provider ECC (Client/Server) Function Description part 2

ECC Create Server Certificate

Generate private key and CSR for server.

Select "Create Server Private Key and CSR"

[^Figure 59]: OpenSSL-Provider ECC (Client/Server) Create Private Key (For Server)

[^Figure 60]: OpenSSL-Provider ECC (Client/Server) Create Certificate Signing Request (For Server)

Generate Server Certificate using Certificate Authority

Select "Create Server Cert"

[^Figure 61]: OpenSSL-Provider ECC (Client/Server) Create Server Cert (For Server)

ECC Create Client Certificate

Generate ECC Key and CSR for client.

Select "Create Client ECC Key and CSR"

[^Figure 62]: OpenSSL-Provider ECC (Client/Server) Create Certificate Signing Request (For Client)

[^Figure 63]: OpenSSL-Provider ECC (Client/Server) Extract Public Key (For Client)

Generate Client Certificate using Certificate Authority

Select "Create Client Cert"

[^Figure 64]: OpenSSL-Provider ECC (Client/Server) Create Client Certificate (For Client)

ECC Start an OpenSSL Server

Starting an OpenSSL server

Start an OpenSSL S_Server instance by selecting "Start/Stop Server"

[^Figure 65]: OpenSSL-Provider ECC (Client/Server) Start/Stop Server

ECC Start an OpenSSL Client

Start an OpenSSL Client

Start an OpenSSL Client and connect with OpenSSL Server by selecting "Start/Stop Client"

[^Figure 66]: OpenSSL-Provider ECC (Client/Server) Start/Stop Client

ECC Secure data exchange between Server and Client

Messages can be sent from Server to Client as well as Client to Server by entering input in the boxes below and selecting "Write to Client" or "Write to Server". The message "Hello from Server" and "Hello from Client" has been successfully sent

[^Figure 67]: OpenSSL-Provider ECC (Client/Server) Data Exchange

RSA (Client/Server)

The RSA(Client/Server) is a demonstration to show the use of the Trust M for secure communications between client and server.

Select "RSA (Client/Server)"

[^Figure 68]: OpenSSL-Provider RSA (Client/Server) Menu Screen

RSA (Client/Server) Function Description

RSA (Client/Server) Functions described

[^Figure 69]: OpenSSL-Provider RSA (Client/Server) Function Description part 1

[^Figure 70]: OpenSSL-Provider RSA (Client/Server) Function Description part 2

RSA Create Server Certificate

Generate private key and CSR for server.

Select "Create Server Private Key and CSR"

[^Figure 71]: OpenSSL-Provider RSA (Client/Server) Create Private Key and Certificate Signing Request (For Server)

Generate Server Certificate using Certificate Authority

Select "Create Server Cert"

[^Figure 72]: OpenSSL-Provider RSA (Client/Server) Create Server Cert (For Server)

RSA Create Client Certificate

Generate RSA Key and CSR for client.

Select "Create Client RSA Key and CSR"

[^Figure 73]: OpenSSL-Provider RSA (Client/Server) Create Client RSA key and CSR (For Client)

Generate Client Certificate using Certificate Authority

Select "Create Client Cert"

[^Figure 74]: OpenSSL-Provider RSA (Client/Server) Create Client Certificate (For Client)

RSA Start an OpenSSL Server

Starting an OpenSSL server

Start an OpenSSL S_Server instance by selecting "Start/Stop Server"

[^Figure 75]: OpenSSL-Provider RSA (Client/Server) Start Server

RSA Start an OpenSSL Client

Start an OpenSSL Client

Start an OpenSSL Client and connect with OpenSSL Server by selecting "Start/Stop Client"

[^Figure 76]: OpenSSL-Provider RSA (Client/Server) Start Client

RSA Secure data exchange between Server and Client

Messages can be sent from Server to Client as well as Client to Server by entering input in the boxes below and selecting "Write to Client" or "Write to Server". The message "Hello from Server" and "Hello from Client" has been successfully sent as shown in Figure 71

[^ Figure 77]: OpenSSL-Provider RSA (Client/Server) Data Exchange

Random Number Generator

This section shows to use OpenSSL libraries to generate random number based on Encoding type hex or base64 with indicated number of bytes to be generated.

Open the OpenSSL-Provider In Main

Select "RNG".

[^Figure 78]: OpenSSL RNG Menu Screen

To change the bytes generated, enter the input in "No. of bytes to be generated".

To generate random number, enter the "No. of bytes to be generated" and select the encoding type. Then select "Generate RNG" to generate random number.

[^Figure 79]: Generate RNG

In this example, the numbers generated are 1024 bytes in base64 encoding.

[^Figure 80]: RNG generated

Protected Update

This section shows the use of the OPTIGA™ Trust M Integrity and Confidentially Protected Update for metadata of target OID and ECC/AES/RSA Key of target key OID by using the Trust Anchor and Secret installed in the OPTIGA™ Trust M

[^Figure 81]: OPTIGA Trust M Explorer Application: Protected Update Selection

Metadata Protected Update

This section shows the use of the OPTIGA™ Trust M Integrity and Confidentially Protected Update for metadata of target OID by using the Trust Anchor and Secret installed in the OPTIGA™ Trust M.

  1. Select "Protected Update"
  2. Overview of the "Metadata Update" tab.

[^Figure 82]: Overview of "Metadata Update" Screen

Metadata Protected Update Functions

Description of the Steps to do a successful Protected Update of Trust M objects

Step 1 (Provisioning for All OIDs)

For Step 1, There are two options, Wipe target data and Keep Target data. For Wipe target data, the target OID Lcs0 will be set to Initialization mode (0x03) and the reset type will be set to 0x11 (SETCRE/FLUSH). For Keep target data, the target OID Lcs0 will be set to Initialization mode (0x03) and the reset type will be set to 0x01 (SETCRE).

For both options, the "Trust anchor OID" is used to store the trust anchor and the data object type is set to Trust Anchor. The Protected Update Secret is written to the data object of "Secret OID " and the Data type will be set to UPDATESEC . The metadata of target OID will be set according during Provisioning.

Trust Anchor OID options: 0xE0E8 - 0xE0E9, 0xE0EF , Target OID options: 0xE0E1 - 0xE0E3, 0xF1D0 - 0xF1DB,0xE0F1 - 0xE0F3,0xE0FC - 0xE0FD, 0xF1E0-0xF1E1

Secret OID options: 0xF1D0, 0xF1D4 - 0xF1DB

In this example we will Provision for all OIDs (Wipe TargetData). Select "Step1: Set Lcso=0x03(Init) ResetType=0x01(Keep TargetData)" and also the OIDs for "Trust anchor OID", "Target OID" and "Secret OID".

Choose the trust_anchor_cert which will be stored inside the "Trust anchor OID" and also the secret file which will be stored inside the "Secret OID"

To Provision, Select "Step1: Provisioning for All OIDs".

[^Figure 83]: Provision Data Objects (for Keep TargetData)

After provisioning, we can press "Read Objects Metadata" button to read out the the metadata for all the OIDs involved.

[^ Figure 84]: Read objects Metadata after provisioning

In this example, the MUD for target OID should be int-0xE0E8&&Conf-0xF1D4 after provisioning.

Step 2 (Generate the Manifest and Fragment)

Generate the manifest and fragment for the metadata Protected Update.

To generate the Manifest and fragment, Enter the "payload version"

Note: the number for payload version must be larger than the current version number.

Choose the trust_anchor_privkey (Corresponding to trust_anchor_cert)and also the secret file (same with the secret stored inside "Secret OID")

Select the "Step2 : Generate Manifest" button. In this example the "payload version" is set to 1 and metadata used is the metadata.txt file.

The Manifest and Fragment Generation are based on all the input inside the red box. For more information for this part, refer to protected update data set .

[^Figure 85]: Manifest and Fragment generated

Step 3 Protected Update for the metadata of Target OID

Protected Updates for the metadata of the target OID

To Update the metadata of the target OID, Select "Step3: Update Trust M Objects".

[^Figure 86]: Metadata protected update

Read Objects Metadata

Displays the metadata of the "Trust Anchor OID", "Target OID" and "Secret OID".

To read out metadata , select "Read Objects Metadata".

[^Figure 87]: Objects metadata displayed

After successful metadata protected update, the Lcs0 will be brought back to 0x01, and version will be increased to 0001 from 0000.

Reset Access Condition

Reset the Access Condition of the Target OID to MUD:NEV so that the Target OID is able to be back to initial MUD state for use in other features after a successful Protected Update and not locked.

[^Figure 88]: Target OID access condition reset successfully

ECC Key Protected Update

This section shows the use of the OPTIGA™ Trust M Integrity and Confidentially Protected Update for ECC Key OIDs by using the Trust Anchor and Secret installed in the OPTIGA™ Trust M.

  1. Select "ECC Key Update"
  2. Overview of the "ECC Key Update" tab.

[^Figure 89]: ECC key Protected Update Screen

ECC Key Protected Update Functions

Description of the Steps to do a successful Protected Update of OPTIGA™ Trust M ECC Key Data Objects.

ECC: Step 1 (Provisioning for All OIDs)

For Step 1, the "Trust anchor OID" is used to store the trust anchor and the data object type is set to Trust Anchor. The Protected Update Secret is written to the data object of "Secret OID " and the Data type will be set to UPDATESEC . The metadata of target OID will be set according during Provisioning.

Trust Anchor OID options: 0xE0E8 - 0XE0E9 , Target OID options: 0xE0F1 - 0xE0F3,

Secret OID options: 0xF1D0, 0xF1D4 - 0xF1DB

In this example we will Provision for all OIDs. Select the "Trust anchor OID", "Target OID", "Secret OID". Then select the secret file to be used to store into the Secret OID and the Trust anchor Cert file to be used to store into trust anchor OID by clicking the respective textboxes.

[^Figure 90]:Selection of Trust Anchor Certificate and Input Secret file

To Provision, Select "Step1: Provisioning for All OIDs".

[^Figure 91]:Provisioning for ECC key Protected Update

In this example, after provisioning, the access condition change of target OID should be set to Int-0xE0E8&&Conf-0xF1D4

ECC: Step 2 (Generate Manifest and Fragment)

Generate the manifest and fragment for the ECC key Protected Update.

To generate the Manifest and fragment, Enter the "payload version" and select the "privkey_data" and "pubkey_data" file you want to store into OPTIGA™ Trust M.

Choose the trust_anchor_privkey (Corresponding to trust_anchor_cert)and also the secret file (same with the secret stored inside "Secret OID")

Select the "Step2 : Generate Manifest" button.

In this example the "payload version" is set to 1 and the payload_type is key. The private key data used is the ecc256test_priv.pem file and the corresponding public key data is stored in the ecc256test_pub.der file. The private key used is sample_ec_256_priv.pem file and the secret used is secret.txt file.

The Manifest and Fragment Generation are based on all the input inside the box. For more information for this part, refer to protected update data set

[^Figure 92]: ECC Key Manifest and Fragment generated

ECC: Step 3 Protected Update for the ECC Key

Protected Updates the ECC key data into the target OID

To Update the ECC key into target OID, Select "Step3: Update Trust M Objects".

[^Figure 93]:ECC Key Protected Update successfully

Read ECC key Objects Metadata

Displays the metadata of the "Trust Anchor OID", "Target OID" and "Secret OID".

To read out metadata , select "Read Objects Metadata".

[^Figure 94]:Read out object metadata

Reset ECC Key Access Condition

Resets the Access Condition of the Target OID Change to LCS <0x07 so that the Target OID will be accessible for use in other features after a successful Protected Update and not locked.

[^Figure 95]:ECC Key OID access condition reset successfully

AES Key Protected Update

This section shows the use of the OPTIGA™ Trust M Integrity and Confidentially Protected Update for AES Key OIDs by using the Trust Anchor and Secret installed in the OPTIGA™ Trust M.

  1. Select "AES Key Update"

  2. Overview of the "AES Key Update" tab.

[^Figure 96]:AES Key Protected Update Screen

AES Key Protected Update Functions

Description of the Steps to do a successful Protected Update of OPTIGA™ Trust M AES Key Objects.

AES: Step 1 (Provisioning for All OIDs)

For Step 1, the "Trust anchor OID" is used to store the trust anchor and the data object type is set to Trust Anchor. The Protected Update Secret is written to the data object of "Secret OID " and the Data type will be set to UPDATESEC . The metadata of target OID will be set according during Provisioning.

Trust Anchor OID options: 0xE0E8 - 0XE0E9 , Target OID options: 0xE200

Secret OID options: 0xF1D0, 0xF1D4 - 0xF1DB

In this example we will Provision for all OIDs. Select the "Trust anchor OID", "Target OID", "Secret OID". Then select the secret file to be used to store into the Secret OID and the Trust anchor Cert file to be used to store into Trust anchor OID by clicking the respective textboxes.

[^Figure 97]:Selection of Trust Anchor Certificate and Input Secret file

To Provision, Select "Step1: Provisioning for All OIDs".

[^Figure 98]:Provisioning for AES key Protected Update

In this example, after provisioning, the access condition change of target OID should be set to Int-0xE0E8&&Conf-0xF1D4

AES: Step 2 (Generate Manifest and Fragment)

Generate the manifest and fragment for the AES key Protected Update.

To generate the Manifest and fragment, Enter the "payload version" and select the "key_data" you want to update into AES key slot.

Choose the trust_anchor_privkey (Corresponding to trust_anchor_cert)and also the secret file (same with the secret stored inside "Secret OID")

Select the "Step2 : Generate Manifest" button. In this example the "payload version" is set to 1 and the payload_type is key and key data used is the aes_128_test.txt file and the secret used is secret.txt file.

The Manifest and Fragment Generation are based on all the input inside the red box. For more information for this part, refer to protected update data set

[^Figure 99]: AES Manifest and Fragment generated

AES: Step 3 Protected Update for AES Key

Updates the AES key for the AES Key OID

To Update the AES key for the target OID, Select "Step3: Update Trust M Objects".

[^Figure 100]:AES Key Protected Update successfully

Read AES Key Objects Metadata

Displays the metadata of the "Trust Anchor OID", "Target OID" and "Secret OID".

To read out metadata , select "Read Objects Metadata".

[^Figure 101]:Read out objects metadata

Reset AES Key Access Condition

Resets the Access Condition Change of the Target OID to LCS <0x07 so that the Target OID will be accessible for use in other features after a successful Protected Update and not locked.

[^Figure 102]:AES Target OID access condition reset successfully

RSA Key Protected Update

This section shows the use of the OPTIGA™ Trust M Integrity and Confidential Protected Update for RSA Key OIDs by using the Trust Anchor and Secret installed in the OPTIGA™ Trust M.

  1. Select "RSA Key Update"
  2. Overview of the "RSA Key Update" tab.

[^Figure 103]:RSA Key Protected Update screen

RSA Key Protected Update Functions

Description of the Steps to do a successful Protected Update of OPTIGA™ Trust M RSA Key Objects.

RSA: Step 1 (Provisioning for All OIDs)

For Step 1, the "Trust anchor OID" is used to store the trust anchor and the data object type is set to Trust Anchor. The Protected Update Secret is written to the data object of "Secret OID " and the Data type will be set to UPDATESEC . The metadata of target OID will be set according during Provisioning.

Trust Anchor OID options: 0xE0E8 - 0XE0E9 , Target OID options: 0xE0FC - 0xE0FD,

Secret OID options: 0xF1D0, 0xF1D4 - 0xF1DB

In this example we will Provision for all OIDs. Select the "Trust anchor OID", "Target OID", "Secret OID". Then select the secret file to be used to provision the Secret OID and the Trust anchor Cert file to be used by clicking the respective textboxes.

[^Figure 104]:Selection of Trust Anchor Certificate and Input Secret file

To Provision, Select "Step1: Provisioning for All OIDs".

[^Figure 105]:Provisioning for RSA Key Protected Update

In this example, after provisioning, the access condition change of target OID should be set to Int-0xE0E8&&Conf-0xF1D4

RSA: Step 2 (Generate Manifest and Fragment)

Generate the manifest and fragment for the RSA key Protected Update.

To generate the Manifest and fragment, Enter the "payload version" and select the "privkey_data" and "pubkey_data" you want to import into OPTIGA™ Trust M

Choose the trust_anchor_privkey (Corresponding to trust_anchor_cert)and also the secret file (same with the secret stored inside "Secret OID")

Select the "Step2 : Generate Manifest" button. In this example the "payload version" is set to 1 and the payload_type is set to key. The private key data used is the rsa2048test_priv.pem file and the corresponding public key data is stored in the rsa2048test_pub.der file.The secret used is secret.txt file.

The Manifest and Fragment Generation are based on all the input inside the red box. For more information for this part, refer to protected update data set

[^Figure 106]: RSA Manifest generated

RSA: Step 3 Protected Update for the RSA Key

Updates the RSA key for the target OID

To Update the metadata of the target OID, Select "Step3: Update Trust M Objects".

[^Figure 107]:RSA Key Protected Update successful

Read RSA Key Objects Metadata

Displays the metadata of the "Trust Anchor OID", "Target OID" and "Secret OID".

To read out metadata , select "Read Objects Metadata".

[^Figure 108]:Read Out object metadata

Reset RSA Key Access Condition

Resets the Access Condition of the Target OID Change to LCS <0x07 so that the Target OID will be accessible for use in other features after a successful Protected Update and not locked.

[^Figure 109]:RSA key Target OID access condition is reset successfully

Data Protected Update

This section shows the use of the OPTIGA™ Trust M Integrity and Confidential Protected Update for data of OIDs by using the Trust Anchor and Secret installed in the OPTIGA™ Trust M.

  1. Select "Data Update"
  2. Overview of the "Data Update" tab.

[^Figure 110]:Data Protected Update screen

Data Protected Update Functions

Description of the Steps to do a successful Protected Update of OPTIGA™ Trust M Data Objects.

Data Update: Step 1 (Provisioning for All OIDs)

For Step 1, the "Trust anchor OID" is used to store the trust anchor and the data object type is set to Trust Anchor. The Protected Update Secret is written to the data object of "Secret OID " and the Data type will be set to UPDATESEC . The metadata of target OID will be set accordingly during Provisioning.

Trust Anchor OID options: 0xE0E8 - 0xE0E9, 0xE0EF, Target OID options: 0xF1D0 - 0xF1DB, 0xF1E0 - 0xF1E1, 0xE0E1 - 0xE0E3

Secret OID options: 0xF1D0, 0xF1D4 - 0xF1DB

In this example we will Provision for all OIDs. Select the "Trust anchor OID", "Target OID", "Secret OID". Then select the secret file to be used to provision the Secret OID and the Trust anchor Cert file to be used by clicking the respective textboxes.

[^Figure 111]:Selection of Trust Anchor Certificate and Input Secret file

To Provision, Select "Step1: Provisioning for All OIDs".

[^Figure 112]:Provisioning for Data Protected Update

In this example, after provisioning, the access condition change of target OID should be set to Int-0xE0E8&&Conf-0xF1D4

Data Update: Step 2 (Generate Manifest and Fragment)

Generate the manifest and fragment for the Data Protected Update.

To generate the Manifest and fragment, Enter the "payload version" and select the "data" file you want to import into OPTIGA™ Trust M

Choose the trust_anchor_key (Corresponding to trust_anchor_cert) and also the secret file (same with the secret stored inside "Secret OID")

Choose the correct data type representation in data type box

For data file containing hex value strings, choose data type to be hex, and for data file containing ASCII strings, choose data type to be ascii

Select the "Step2 : Generate Manifest" button. In this example the "payload version" is set to 1 and the payload_type is set to data and data used is the type3_data,txt file and the secret used is secret.txt file.

The Manifest and Fragment Generation are based on all the input inside the red box. For more information for this part, refer to protected update data set

[^Figure 113]: Data and Manifest generated

Data Update: Step 3 Protected Update for the target OID

Updates the Data for the target OID

To Update the data of the target OID, Select "Step3: Update Trust M Objects".

[^Figure 114]:Data Protected Update successful

Read Data Objects Metadata

Displays the metadata of the "Trust Anchor OID", "Target OID" and "Secret OID".

To read out metadata , select "Read Objects Metadata".

[^Figure 115]:Read Out object metadata

Reset Target OID Access Condition

Resets the Access Condition of the Target OID Change to LCS <0x07 so that the Target OID will be accessible for use in other features after a successful Protected Update and not locked.

[^Figure 116]:Target OID access condition is reset successfully

Secure Storage

Secure Storage Functions

Secure Storage Functions Description

[^Figure 117]: Secure Storage functions described

Provision For HMAC Authentication

To do provision for the initial data, metadata and shared secret for HMAC authenticated secure storage.

The Secret Input will be provisioned into the "Secret OID", and the Data Type of "Secret OID"will be set to AUTHREF.

The data only can be read out/write in when HMAC Authentication successful since the access condition has been set to Change: Auto-0xSecret OID, Read: Auto-Secret OID.

Target OID options: 0xF1D7 - 0xF1DB, 0xF1E0 - 0xF1E1 , Secret OID options: 0xF1D7 - 0xF1D9

To Provision , Select the "Target OID" and "Secret OID". Then select "Provision HMAC Auth Storage".

[^Figure 118]: Provisioning HMAC authentication storage

HMAC Verify and Write

To write data into Target OID after HMAC verify successfully

The secret entered will be verified against the secret provisioned into the "Secret OID". HMAC verification will be successful if they match.

To write the data into the "Target OID" , Select the "Target OID" and "Secret OID", then select "Verify and Write to Target OID". In this example the Target OID is "0xF1D9" and the Secret OID is "0xF1D7".

[^Figure 119]: Verify and Write to Target OID

HMAC Verify and Read

To read out data stored in Target OID after HMAC verify successfully

The secret entered will be verified against the secret provisioned into the "Secret OID". HMAC verification will be successful if they match.

To readout the data in the Target OID, Select the "Target OID" and "Secret OID", then select "Verify and Read Target OID" . In this example the Target OID is "F1D9" and the Secret OID is "F1D7".

[^Figure 120]: Verify and read Target OID

Read Objects Metadata

Displays the metadata of the "Target OID" and "Secret OID".

To read out metadata , select "Read Object Metadata".

[^Figure 121]: Read Objects metadata displayed