Notes - MCS
Secure Execution Environments
Notes - MCS
Secure Execution Environments
  • Secure Execution Environments
  • Introduction
    • Trusted Computing Base (TCB)
    • TEE (Trusted Execution Environment)
    • Can you trust the operating system?
  • Security in Operating Systems
    • Operating system
    • Virtual machines and hypervisors
    • Computational model
    • Access control
    • Protection with capabilities
    • Unix file protection ACLs
    • Windows NTFS file protection
    • Unix file protection ACLs
    • Privilege elevation
    • Privilege reduction
    • Linux login
  • Virtualization on Intel Processors
    • Modes of Operation
    • Virtual memory
    • How to put assembly instructions inside C code
    • A more elaborate example
    • Useful assembly instructions
  • Intel Software Guard Extensions
    • What is SGX (Software Guard eXtensions)?
    • SGX Enclave Memory
    • Guidelines for designing applications using SGX
    • Performance Overhead
    • SDK compilation modes
    • Writing Enclave Functions
  • ARM TrustZone
    • SoC and IP
    • ARM TrustZone
    • Worlds
    • Architecture
    • TrustZone bootstrap
  • Linux Kernel Namespaces
    • Namespaces
    • Advantages
    • Process Namespace
    • Network namespace
    • Mount namespace
    • UTS namespace
    • User namespace
  • LXC Linux Containers
    • Container
    • LXC containers
  • AppArmor
    • Purpose
    • Enforcement
    • Benefits
    • Attack prevention
    • Enforcement policies
    • Enforcement modes
    • Logging and auditing
    • Profiles
  • TPM (Trusted Platform Module)
    • Trusted Platform Module (TPM)
    • History
    • Cryptographic Concepts
    • Use cases
    • TPM Software Stack (TSS)
    • TPM concepts
    • Entities
    • Key management
    • Restrict signatures
    • Sessions
    • Authorization roles
  • Bootstrap security
    • AEGIS
    • Trusted computing
    • Root of Trust Measurements
    • Trusted Computing Platform Alliance (TCPA)
    • TPM-based attestation
    • Trusted Platform identity credentials
    • UEFI (Unified Extensible Firmware Interface)
    • NSA Boot Security
    • UEFI secure boot & TPM measurements
    • Intel Trusted Execution Technology (TXT)
    • Smartcards
      • Java Cards
      • OpenCard Framework (OCF)
      • Cryptographic services
Powered by GitBook
On this page
  • TPM as a key cache
  • Key trees (aka key hierarchies)
  • Storage keys
  • Changing seeds
  • Endorsement primary keys
  • Key duplication
  • Key attributes
  • Type
  • Usage
  • User restrictions
  • Duplication restrictions
  1. TPM (Trusted Platform Module)

Key management

Can generate keys internally, and export them.

  • Public keys can be exported unprotected.

  • Private keys can be exported protected. Wrapped.

Can import keys, previously exported by itself, produced by others.

TPM as a key cache

Many times keys must be used within the TPM-confined environment, but the TPM resources should not limit their number.

Solution:

  • Off-load keys to external repositories (wrapped)

  • Import keys of interest

  • Use cached keys

  • Clear cached keys from TPM

Key trees (aka key hierarchies)

Sequence of keys.

  • Starting from a top-most, primary key

  • Hierarchies can have several key trees

Primary keys are generated from hierarchy seeds and a public template:

  • Algorithm, key size, policy, usage.

  • Arbitrary data (kind of label).

The key derivation is idempotent.

  • Same seed, same template -> same key.

Storage keys

Keys that encrypt keys.

  • A storage key is a parent of a child's key.

  • It can be used to wrap the child key.

    • For exporting it.

They cannot be used for arbitrary decryption.

  • It could compromise wrapped child keys.

Changing seeds

Different seed -> different key tree, the previous one is naturally flushed.

This should not happen to the endorsement seed.

  • Because endorsement keys are pre-certified by the TPM manufacturer.

  • Getting the certification again is complex.

  • Can only be changed by the platform builder (OEM).

    • This is not an issue for the platform owner.

    • New keys can always be created with different templates.

Endorsement primary keys

Need to be certified by the TPM manufacturer.

  • The TPM manufacturer uses it to generate candidate primary keys.

    • Using well-defined templates.

  • The public keys are exported and certified.

    • The manufacturer keeps the certificates.

  • The keys are removed from the TPM.

    • The TPM keeps the seed that allows the recreation of keys with the same templates used by the manufacturer.

Key duplication

Copy of a key into a different hierarchy. It continues to exist in its original place.

Primary keys cannot be duplicated

  • Because they cannot be wrapped.

  • They are generated from a seed.

    • And a template.

Duplication of parent keys can duplicate their children.

  • Duplication group.

Key attributes

Type

  • Symmetric

  • Asymmetric

Usage

  • Signing

  • Encryption

  • Decryption

User restrictions

  • Restrict signing

    • Attestation

  • Restrict decryption

    • Storage

Duplication restrictions

  • Fixed TPM

    • Cannot be duplicated

  • Fixed parent

    • Can only be duplicated under a duplicated parent

Last updated 1 year ago