物理现场 Physical Presence

概念

Physical presence implies a level of control an authorization to perform basic administrative task and to bootstrap management and access control mechanisms.

个人理解:物理现场是当需要执行控制TPM状态等对系统有影响的指令时,不仅需要软件数据授权验证,还需要物理上或电气上的硬件验证(比如判断管教电平,波形什么的),同时验证通过后才能执行某些指令,用来保证平台所有者的身份证明或者非远程软件操作TPM。

硬件物理现场

通过硬件信号判断的物理现场状态,这里不清楚如何实现,文档中的物理现场状态变量physicalPresence不能用于指示硬件物理现场。

软件物理现场

通过软件指令设置判断物理现场状态,通过变量physicalPresence标识。

相关变量和指令

permanent.flag.physicalPresenceHWEnable

  • TRUE : 允许 硬件信号指示物理现场状态
  • FALSE : 禁止 硬件信号指示物理现场状态(默认值)

    permanent.flag.physicalPresenceCMDEnable

  • TRUE : 允许 通过软件指令设置物理现场状态

  • FALSE : 禁止 通过软件指令设置物理现场状态(默认值)

    permanent.flag.physicalPresenceLifetimeLock

  • TRUE : physicalPresenceHWEnable 和 physicalPresenceCMDEnable的值在TPM声明周期内不能被修改

  • FALSE : physicalPresenceHWEnable 和 physicalPresenceCMDEnable 的值可用被修改
  • 个变量出厂后只能由 FALSE 设置为 TRUE,只有在生产环境才能设置 FALSE

    stclear.flag.physicalPresence

  • 标识是否处于物理现场状态,默认 FALSE

  • 只能通过 TSC_PhysicalPresence 指令设置,不能通过硬件信号改变 (这里我理解的是不能用于指示硬件物理现场状态 ?)

    stclear.flag.physicalPresenceLock

  • 标识是否禁止修改 physicalPresence 值,默认 FALSE

  • 可通过 TSC_PhysicalPresence 指令设置,设置为 TRUE 后, physicalPresence 为 FALSE

    TCS_PhysicalPresence()

  • 设置 physicalPresenceLifetimeLock 为 FALSE

  • 设置 physicalPresenceHWEnable 为 TRUE
  • 设置 physicalPresenceHWEnable 为 FALSE
  • 设置 physicalPresenceCMDEnable 为 TRUE
  • 设置 physicalPresenceCMDEnable 为 FALSE
  • 设置 physicalPresence 为 TRUE
  • 设置 physicalPresence 为 FALSE
  • 设置 physicalPresenceLock 为 TRUE

    不清楚的地方

  1. 物理现场授权是需要硬件物理现场还是硬件/软件物理现场都可以 ?
  2. TPM 内部如何判断硬件物理现场状态 ?
  3. 硬件物理现场如何实现 ?