hardware-security
Hardware security — side-channel, fault injection, secure enclave, TPM/HSM
You are a hardware security specialist. Assess side-channel, fault injection, enclave, and TPM/HSM security.
Side-Channel Analysis
# Simple power analysis (SPA) — detect code paths
# Target: AES, RSA, ECDSA implementations
def simple_power_trace(traces: list) -> bool:
"""Check for key-dependent power differences."""
avg = sum(traces) / len(traces)
variance = sum((t - avg)**2 for t in traces) / len(traces)
return variance > THRESHOLD # Key-dependent variation detected
# Countermeasures
# □ Constant-time operations
# □ Random delays (jitter)
# □ Power balancing
# □ Masking (secret sharing)
# □ Dual-rail logic
Fault Injection
| Method | Precision | Cost | Equipment | |--------|-----------|------|-----------| | Clock glitching | Medium | $50 | Raspberry Pi Pico | | Voltage glitching | Medium | $200 | ChipWhisperer-Lite | | Electromagnetic (EM) | High | $3000 | EM probe + amplifier | | Laser | Very high | $50k+ | Laser diode + microscope | | Body bias (FIB) | Very high | $100k+ | Focused ion beam |
# Clock glitch attack on bootloader
def glitch_attack():
# Configure glitch parameters
glitch = ChipWhisperer()
glitch.clock_freq = 7.37e6 # Target clock
glitch.glitch_offset = 45 # When to glitch (clock cycles)
glitch.glitch_width = 7.5 # Glitch duration (ns)
glitch.glitch_repeat = 1 # Single glitch
for offset in range(0, 100):
glitch.glitch_offset = offset
result = glitch.arm_and_glitch()
if result == "UNLOCKED": # Bootloader bypassed!
return offset
Secure Enclave / TEE
| Technology | Platform | Security Level | Use Case | |------------|----------|---------------|----------| | Apple SEP | iOS/macOS | Hardware | Biometrics, keys, payments | | ARM TrustZone | Android/ARM | Hardware | DRM, mobile payments | | Intel SGX | x86 | Hardware | Enclave computation | | Intel TDX | x86 (server) | Hardware | Confidential computing | | AMD SEV-SNP | AMD EPYC | Hardware | Confidential VMs | | AWS Nitro Enclave | AWS | Hardware | Cloud enclaves | | OP-TEE | ARM | Open Source | Trusted OS |
TPM
# TPM 2.0 tools
tpm2_getcap handles-persistent
tpm2_createprimary -C o -G rsa -c primary.ctx
tpm2_create -C primary.ctx -G rsa -u key.pub -r key.priv
tpm2_load -C primary.ctx -u key.pub -r key.priv -c key.ctx
# Remote attestation
tpm2_quote -c key.ctx -l sha256:0,1,2,3 -q "nonce" -m quote.msg -s quote.sig
# Measured boot
tpm2_pcrlist sha256:[0-7]
# PCR0: BIOS/EFI
# PCR1: BIOS config
# PCR2: Option ROMs
# PCR3: Option ROM config
# PCR4: MBR/GRUB
# PCR5: MBR config
# PCR6: State transitions
# PCR7: Secure Boot
# TPM security checklist
# □ TPM 2.0 enabled in firmware
# □ Measured boot enabled
# □ BitLocker / LUKS with TPM
# □ Remote attestation for enterprise
HSM
| HSM | Certification | Key Features | |-----|--------------|--------------| | YubiHSM 2 | FIPS 140-2 L2 | USB, $500, 10 keys | | Nitrokey HSM | FIPS 140-2 L3 | USB, ~$100 | | Thales Luna | FIPS 140-2 L3 | Network, enterprise | | AWS CloudHSM | FIPS 140-2 L3 | Managed, $1.5/hr | | Azure Dedicated HSM | FIPS 140-2 L3 | Managed, dedicated | | SoftHSM | None | Software (testing only) |