Security User Guide: Intel® FPGA Programmable Acceleration Card N3000 Variants

ID 683519
Date 9/08/2020
Public
Document Table of Contents

3.3. Creating Unsigned Images

The BMC secure firmware does not accept an FPGA SR user image without the prepended authentication blocks generated by PACSign, even if an FPGA SR user image root entry hash bitstream has not been programmed. If you want to operate an Intel® FPGA PAC without a root entry hash bitstream programmed, such as in a development environment, you must still use PACSign to prepend the authentication blocks but you may do so with an empty signature chain. An image with prepended authentication blocks containing an empty signature chain is called an unsigned image. PACSign supports the creation of an unsigned image by using the UPDATE operation without specifying keys. Intel recommends using signed images in production deployments.

  1. Create unsigned bitstream.
    Using OpenSSL:
    [PACSign_Demo]$ PACSign SR -t UPDATE -H openssl_manager -i pac-n3000-secure-update-raw.bin -o unsigned_N3000_RSU.bin
    Using HSM:
    [PACSign_Demo]$ PACSign SR -t UPDATE -H pkcs11_manager -C softhsm.json -i \
    pac-n3000-secure-update-raw.bin -o pac-n3000-secure-update-raw.bin
    
    The output prompts you to enter Y or N to continue generating an unsigned bitstream.
    No root key specified. Generate unsigned bitstream? Y = yes, N = no: Y
    No CSK specified. Generate unsigned bitstream? Y = yes, N = no: Y
  2. Program the unsigned bitstream.
    [PACSign_Demo]$ sudo fpgasupdate pac-n3000-secure-update-raw.bin b2:00.0
  3. Perform remote system update to power cycle the Intel® FPGA PAC N3000 and load the updated image into the FPGA.
    [PACSign_Demo]$ sudo rsu bmcimg b2:00.0