Intel® Stratix® 10 Device Security User Guide

ID 683642
Date 7/14/2023
Public
Document Table of Contents

5.5. Using Design Security Features with Remote System Update

Remote System Update (RSU) is an Intel Stratix 10 FPGAs feature that assists in updating configuration files in a robust way. RSU is compatible with design security features such as authentication, firmware co-signing, and bitstream encryption as RSU does not depend on the design contents of configuration bitstreams.

Building RSU Images with .sof Files

If you are storing private keys on your local filesystem, you may generate RSU images with design security features using a simplified flow with .sof files as inputs. To generate RSU images with the .sof file, you may follow the instructions in Section Generating Remote System Update Image Files Using the Programming File Generator of the Intel Stratix 10 Configuration User Guide. For every .sof file specified on the Input Files tab, click the Properties... button and specify the appropriate settings and keys for the signing and encryption tools. The programming file generator tool automatically signs and encrypts factory and application images while creating the RSU programming files.

Alternatively, if you are storing private keys in an HSM, you must use the quartus_sign tool and therefore use .rbf files. The rest of this section details the changes in the flow to generate RSU images with .rbf files as inputs. You must encrypt and sign .rbf format files prior to selecting them as input files for RSU images; however, the RSU boot info file must not be encrypted and instead only be signed. The Programming File Generator does not support modifying properties of .rbf format files.

The following examples demonstrate the necessary modifications to the commands in Section Generating Remote System Update Image Files Using the Programming File Generator of the Intel Stratix 10 Configuration User Guide.

Generating the Initial RSU Image Using .rbf Files: Command Modification

From Generating the Initial RSU Image Using .rbf Files section, modify the commands in Step 1. to enable the design security features as desired using instructions from earlier sections of this document.

For example, you would specify a signed firmware file if you were using firmware co-signing, then use the Quartus encryption tool to encrypt each .rbf file, and finally use the quartus_sign tool to sign each file.

In step 2, if you have enabled firmware co-signing, you must use an additional option in the creation of the boot .rbf from the factory image file:
quartus_pfg -c factory.sof boot.rbf -o rsu_boot=ON \
-o fw_source=signed_stratix10.zip

After you create the boot info .rbf file, use the quartus_sign tool to sign the .rbf file. You must not encrypt the boot info .rbf file.

Generating an Application Image: Command Modification

To generate an application image with design security features, you modify the command in Generating an Application Image to use a .rbf with design security features enabled, including co-signed firmware if required, instead of the original application .sof file:
quartus_pfg -c cosigned_fw_signed_encrypted_application.rbf \   
secured_rsu_application.rpd -o mode=ASX4 -o bitswap=ON

Generating a Factory Update Image: Command Modification

To generate an RSU factory update image, you modify the command from Generating a Factory Update Image to use a .rbf file with design security features enabled and add the option to indicate the co-signed firmware usage:
quartus_pfg -c cosigned_fw_signed_encrypted_factory.rbf \
secured_rsu_factory_update.rpd \
-o mode=ASX4 -o bitswap=ON -o rsu_upgrade=ON \
-o fw_source=signed_stratix10.zip