Versal デバイスでは、デバイスにロードされるファームウェアとソフトウェアの機密性、完全性、および真正性をセキュア ブートによって確保しています。信頼のルートは BootROM から始まり、選択したセキュア ブート モードに基づいて BootROM が PLM を認証/復号化します。Versal デバイスには、非対称型のハードウェアによる信頼のルート (A-HWRoT) と対称型のハードウェアによる信頼のルート (S-HWRoT) の 2 つのセキュア ブート モードがあります。また、これら 2 つのモードを同時に使用することも可能です。
A-HWRoT ブート モードでは、RSA または ECDSA を使用して認証されたイメージのみをブートできます。S-HWRoT ブート モードでは、PLM とメタヘッダーがブラック (暗号化済み) eFUSE キーを使用して暗号化されたイメージしかブートできません。
PLM とメタヘッダー以外のパーティションを暗号化するかどうかは、AES-GCM を使用して認証されるメタヘッダーによって定義されます。セキュア ブートが重要である理由は 2 つあります。
- デバイスにロードされるソフトウェアが、ロードしてよいものであることを確認する。これにより、悪意のあるコードがデバイス上で実行されるのを防ぎます。
- ソフトウェアは暗号化された状態で格納されるため、OEM IP が保護される。これにより、OEM の知的財産が盗まれるのを防ぎます。
さらに、セキュア ブートを使用しない場合、簡易 SHA-3 完全性チェックでソフトウェアを検証できます。ただし、セキュア ブートを使用しない場合は上記の保護機能が適用されないことに注意してください。次の表に、セキュア ブートの可能な構成を示します。
ブート タイプ | 動作 | ハードウェア暗号化エンジン | ||
---|---|---|---|---|
認証 | 復号化 | 完全性 (チェックサム検証) | ||
非セキュア | なし | なし | なし | N/A |
非対称型のハードウェアによる信頼のルート (A-HWRoT) | あり。eFUSE を使用して適用 | オプション | 非対称認証による完全性 | RSA/ECDSA および SHA-3 |
対称型のハードウェアによる信頼のルート (S-HWRoT) | あり (GCM と eFUSE 使用) |
あり PUF KEK の使用が必要 |
対称認証による完全性 | AES-GCM/PUF |
A-HWRoT + S-HWRoT | あり |
あり PUF KEK の使用が必要 |
非対称および対称認証による完全性 | RSA/ECDSA、SHA-3、AES-GCM、PUF |
セキュア ブート プロセスでは、Versal デバイスは次のハードウェア暗号化ブロックを使用します。
- SHA ハードウェア アクセラレータ
- イメージに対する SHA3/384 ハッシュを計算します。認証用の RSA または ECC (楕円曲線暗号) エンジンと共に使用されます。
- ECDSA-RSA ハードウェア アクセラレータ
- 公開非対称キーを使用してイメージを認証します。RSA-4096 または ECDSA (NIST P-384 曲線) を使用できます。
ほかのイメージに対しては、PLM は NIST-P384 以外に NIST-P521 曲線も使用できます。MetaHeader、PMC CDO、および PLM には P-384 が必要です。その他すべてのパーティションには、P-521 を使用できます。
- AES-GCM ハード暗号化ブロック
- 256 ビット キーを使用してイメージを復号化し、復号化したイメージの完全性を GCM タグを使用して検証します。
ほかのイメージに対しては、PLM は AES-GCM 256 ビット以外に AES-GCM 128 ビットも使用できます。MetaHeader、PMC CDO、および PLM には AES-GCM 256 が必要です。その他すべてのパーティションには、AES-GCM 128 ビットを使用します。