Sessions

Maintain state between sequences of commands.

These are the vehicles for authorizations, as they configure per-command attributes.

  • Encryption/decryption of command/response parameters.

Session variations

Bound/unbound

  • The session is bound to an authorization value.

  • The session key is computed with it.

  • Calculations depending on the session key are affected.

Salted/unsalted

  • Extra entropy for the session key.

Session use modifiers

Per-command modifiers.

  • Continue - Keep the session after a successful command.

  • Decrypt - Part of the request goes encrypted.

  • Encrypt - Part of the response should come encrypted.

  • Audit - The command is to be audited.

Types

Password

Single-command session. A permanent entity.

Operation depends on the password

  • The password is provided in cleartext.

  • It is meant to be used locally.

HMAC

A password is uploaded to the TPM.

  • authValue

  • A one-time operation

Each session interaction has an HMAC computed with the shared authValue.

  • Both request and response.

  • Each also used a nonce.

    • The TPM nonce changes on each response.

Policy (Enhanced Authorization)

Are built on top of HMAC session.

Use policies to compute a shared secret.

  • Logical expressions

  • Sequences of commands

  • Internal and external state

Last updated