Skip to content

Security Requirements Document (SRD)

Document ID: SRD-HSEC-2026-V1
Target Platform: NVIDIA Jetson Humanoid Platform (QEMU aarch64 virt verification & L4T 6.x)
Status: Approved / Baseline


1. Overview

  • Document Purpose: System Security Requirements Document (SRD) defining comprehensive security controls for humanoid robot controllers.
  • Scope: Lifecycle coverage from hardware Root of Trust (RoT) to OS hardening, runtime verification, key management, and cloud mTLS.

Requirement Identifier (ID) Conventions

  • SRD-BOOT-xxx: Boot chain and Chain of Trust requirements
  • SRD-KERN-xxx: Kernel hardening and isolation requirements
  • SRD-TEE-xxx: ARM TrustZone, OP-TEE, and fTPM requirements
  • SRD-STOR-xxx: Storage integrity and immutable filesystem requirements
  • SRD-MEAS-xxx: Runtime measurement (IMA) and Remote Attestation requirements
  • SRD-HSM-xxx: Key hierarchy, HSM (SoftHSMv2), and Zero-Plaintext requirements
  • SRD-COMM-xxx: Secure World client mTLS communication requirements
  • SRD-ENV-xxx: DevContainer and CI/CD reproducible environment requirements

2. Detailed Security Requirements

2.1. Boot Chain & Secure Boot (SRD-BOOT)

IDTitlePrioritySpecificationAcceptance CriteriaTest Target
SRD-BOOT-001Root of Trust Verification ChainMUSTSequential cryptographic signature validation from immutable BootROM to TF-A, OP-TEE, and Linux kernel.Boot instantly halts upon unverified or tampered binary load.tests/test_boot_optee.py, tests/test_secureboot_chain.py
SRD-BOOT-002Secure World / Normal World IsolationMUSTHardware memory and register isolation via ARM TrustZone (EL3, S-EL1 vs NS-EL1).Direct access from Normal World into TrustZone DRAM triggers SError/Abort.tests/test_boot_optee.py
SRD-BOOT-003Anti-Rollback ProtectionSHOULDMonotonic counters or security versions verify firmware to prevent downgrade attacks.Flashing lower security version is rejected at loader stage.Simulation test
SRD-BOOT-004NVIDIA Tegra PKC Secure Boot Container VerificationMUSTValidates SoC on-chip fuses (PKC_HASH) and 512-byte NVD1 authenticated container header. Verifies SoftHSM RSA-3072 signature and fuse hash match.1-byte payload modification or mismatched fuse immediately terminates boot (SECURE_BOOT_VIOLATION).tests/test_secureboot_chain.py
SRD-BOOT-005TrustZone Cold Boot Integrated SequenceMUSTSequential cold boot coordination: PFLASH0 (flash0.bin) -> TF-A BL1/BL2/BL31 -> OP-TEE OS (Early fTPM TA) -> Linux Kernel (PSCI v1.1).Confirmed UART1 OP-TEE fTPM initialization and UART0 Linux /dev/tee0, /dev/tpmrm0 device bindings.tests/test_secureboot_chain.py

2.2. Kernel Hardening (SRD-KERN)

IDTitlePrioritySpecificationAcceptance CriteriaTest Target
SRD-KERN-001KSPP Defense BaselineMUSTEnforces KASLR, stack protection (CONFIG_STACKPROTECTOR_STRONG), and strict W^X executable memory.Kernel .config validated and runtime /sys/kernel/security checked.tests/test_boot_optee.py
SRD-KERN-002Mandatory Kernel Module SigningMUSTAll dynamically loaded .ko modules must be cryptographically signed (CONFIG_MODULE_SIG_FORCE=y).Loading unsigned module fails with -EKEYREJECTED.tests/test_boot_optee.py
SRD-KERN-003Dual-Target CompatibilityMUSTShared base security baseline (security_hardening.config) between physical Jetson and QEMU.merge_config.sh produces identical security policy for board and emulator.Build check

2.3. ARM TrustZone & OP-TEE / fTPM (SRD-TEE)

IDTitlePrioritySpecificationAcceptance CriteriaTest Target
SRD-TEE-001OP-TEE OS IntegrationMUSTExecutes OP-TEE in S-EL1, exposing standard TEE SMC interfaces to Linux./dev/tee0 recognized and tee-supplicant daemon runs cleanly.tests/test_boot_optee.py
SRD-TEE-002fTPM 2.0 TA ImplementationMUSTOperates Microsoft Reference (ms-tpm-20-ref) fTPM TA, exposing /dev/tpmrm0 to Linux./dev/tpmrm0 created and tpm2_getcap query succeeds.tests/test_ftpm_ima.py
SRD-TEE-003Virtual RPMB Persistent StorageMUSTEncrypted NVRAM and secure storage states persist across reboots via virtual eMMC RPMB partition.fTPM NV indices and PCR values preserved across QEMU reboots.tests/test_ftpm_ima.py
SRD-TEE-004OP-TEE PKCS#11 TA SupportMUSTIntegrates CFG_PKCS11_TA=y for hardware-isolated cryptographic operations and libckteec.so client.pkcs11-tool --module /usr/lib/libckteec.so -L lists token slots.tests/test_boot_optee.py

2.4. Storage Integrity & Immutable Filesystem (SRD-STOR)

IDTitlePrioritySpecificationAcceptance CriteriaTest Target
SRD-STOR-001Read-Only EROFS RootfsMUSTRead-only compressed EROFS root filesystem prevents runtime file tampering.Root partition mounted read-only; arbitrary write attempts denied.tests/test_ftpm_ima.py
SRD-STOR-002dm-verity Block IntegrityMUSTCryptographic hash tree verifies 4KB block integrity on demand upon each read access.Modifying single disk byte causes immediate kernel I/O error and block denial.tests/test_ftpm_ima.py
SRD-STOR-003Root Hash Cryptographic SigningMUSTMerkle tree Root Hash signed offline; Initramfs verifies signature against built-in X.509 cert.Invalid root hash or signature causes immediate kernel panic / boot halt.tests/test_ftpm_ima.py

2.5. Runtime Measurement & Remote Attestation (SRD-MEAS)

IDTitlePrioritySpecificationAcceptance CriteriaTest Target
SRD-MEAS-001Kernel IMA SubsystemMUSTMeasures executable binaries and dynamic libraries into fTPM PCR 10 upon execution.Execution logs recorded in /sys/kernel/security/ima/ and PCR 10 extends.tests/test_ftpm_ima.py
SRD-MEAS-002Remote Attestation PackagingMUSTCollects fTPM AK quotes and IMA logs into signed reports for remote verifier validation.Quote generated by apps/attestation_agent validates on remote verifier.tests/test_secure_mtls.py

2.6. Key Management & HSM (SRD-HSM)

IDTitlePrioritySpecificationAcceptance CriteriaTest Target
SRD-HSM-001Zero-Plaintext Key PolicyMUSTStrict prohibition of plaintext private keys (.pem, .key) in repository commits.Git history checks and CI security audit passes.CI pipeline
SRD-HSM-002SoftHSMv2 PKCS#11 Build PipelineMUSTBuild and release signing keys generated in SoftHSMv2 and accessed via RFC 7512 URIs.Token key creation and pkcs11: URI signing verified.keys_hsm/setup_softhsm.sh
SRD-HSM-003Transparent Hardware HSM MigrationSHOULDFollows PKCS#11 standard, enabling physical HSM migration via environment variables.Replacing module path and URI preserves full signing toolchain compatibility.Unit test

2.7. Secure World Communication (SRD-COMM)

IDTitlePrioritySpecificationAcceptance CriteriaTest Target
SRD-COMM-001Isolated Client Private KeyMUSTRobot mTLS client private key never stored on Normal World disk; sealed in OP-TEE TA.No client private key file present in Linux filesystem.tests/test_secure_mtls.py
SRD-COMM-002OpenSSL 3.x Provider IntegrationMUSTmTLS client utilizes pkcs11-provider to delegate TLS handshake signatures to Secure World.TLS 1.3 mTLS connection succeeds with Secure SRAM signing delegation.tests/test_secure_mtls.py

2.8. Build & Verification Environment (SRD-ENV)

IDTitlePrioritySpecificationAcceptance CriteriaTest Target
SRD-ENV-001Unified DevContainer & CIMUSTShared Dockerfile and Compose setup between local development and CI pipelines.100% reproducible build results between local container and GitHub Actions.DevContainer & CI
SRD-ENV-002Persistent Volume CachingMUSTSources, downloads, ccache, and SoftHSM tokens preserved on host volumes.Host volume mounts verified; 2nd-run builds show immediate cache hits.Build check