Intel® Stratix® 10器件安全用户指南

ID 683642
日期 12/15/2021
Public
文档目录

2.1. 创建一个签名链

您可以使用quartus_sign工具或者stratix10_sign.py 参考实现来执行签名链操作。此文档提供了使用quartus_sign的示例。
要使用参考实现,您要对Python interpreter(包含在 Intel® Quartus® Prime软件中)的一个调用进行替换,并忽略--family=Stratix10 选项;所有其他选项都是等效的。例如,本节后面的quartus_sign
quartus_sign --family=stratix10 --operation=make_root root_public.pem root.qky
可以转换为对参考实现的如下等效调用
pgm_py stratix10_sign.py --operation=make_root root_public.pem root.qky

Intel® Quartus® Prime Pro Edition软件包括quartus_signpgm_pystratix10_sign.py 工具。您可以使用 Nios® II命令壳工具(自动设置相应的环境变量)来访问这些工具。

按照以下方法调出 Nios® II命令壳。

调出 Nios® II命令壳。
选项 描述
Windows 在Start菜单上,指向Programs > Intel FPGA > Nios II EDS > <version> ,然后点击Nios II <version> Command Shell
Linux 在命令壳中更改成 <install_dir>/nios2eds,然后运行以下命令:
./nios2_command_shell.sh

本节中的示例假设签名链和配置比特流文件位于当前工作目录中。如果您选择遵循将密钥文件保存在文件系统上的示例,那么这些示例假定密钥文件位于当前工作目录中。您可以选择要使用的目录,并且这些工具支持相对文件路径。如果您选择在文件系统上保留秘钥文件,那么必须谨慎管理对这些文件的访问权限。

Intel建议使用商用Hardware Security Module (HSM)来存储加密密钥并执行加密操作。quartus_sign工具和参考实现包括一个Public Key Cryptography Standard #11 (PKCS #11) Application Programming Interface (API),用于在执行签名链操作时与HSM进行交互。stratix10_sign.py 参考实现包括一个接口抽象以及SoftHSM的示例接口。

您可以使用这些示例接口来实现HSM的接口。有关实现HSM接口和操作HSM的详细信息,请参考HSM供应商提供的文档。

SoftHSM是一个通用加密器件的软件实现,此通用加密器件具有OpenDNSSEC®工程提供的PKCS #11接口。您可以在OpenDNSSEC工程中找到更多信息,包括如何下载,构建和安装OpenHSM的指导说明。本节中的示例使用SoftHSM版本2.6.1。本节中的示例还使用OpenSC 的pkcs11-tool实用程序来执行其他的PKCS #11操作(通过一个SoftHSM token)。您可以从OpenSC找到更多信息,包括如何下载,构建和安装pkcs11-tool的指导说明。