Menu

Intel fTPM and IBM TPM 2.0 TSS

2018-03-31
2018-05-16
  • Nigel Hathaway

    Nigel Hathaway - 2018-03-31

    Do we know if the TSS library works with Intel fTPM running under Linux (in our case, 64-bit Debian Stretch)?

    We are looking at using an Intel NUC5i3RYH or similar - primarily because we think it can't possibly be as slow as a discrete TPM, which we find can take up to a minute-an-a-half to do createprimary.

     
    • Ken Goldman

      Ken Goldman - 2018-03-31

      The intent is that it should work. The TSS connects over the standard interface to /dev/tpm0 or /dev/tpmrm0, and I haven't heard of any problems.

      If the Intel part uses a different, non-standard interface, I'm willing to add support if you have documentation and are willing to test it.

       
  • Nigel Hathaway

    Nigel Hathaway - 2018-04-04

    It sounds like we'll just have to take the plunge and buy one to try it out.

    Regarding /dev/tpmrm0, I don't see this. I just see /dev/tpm0. We are using Debian Stretch (i.e. current stable). Would this be because this kernel feature is too new to be included in that Debian version?

     
    • Ken Goldman

      Ken Goldman - 2018-04-05

      My notes say the resource manager was in the 4.12 kernel, released 2 July 2017. I don't have the mapping between kernels and Debian versions.

      The design is very nice in that the interface is identical. You can debug single user with /dev/tpm0, and it should work multiuser with /dev/tpmrm0 with no code change.

       
  • Nigel Hathaway

    Nigel Hathaway - 2018-04-18

    Debian Stretch says it's a 4.9 kernel

     
    • Ken Goldman

      Ken Goldman - 2018-04-18

      Then you don't get the kernel resource manager. /dev/tpm0 is one open() at a time. Can you use that for development and then hopefully upgrade?

       
  • Nigel Hathaway

    Nigel Hathaway - 2018-05-16

    The problem is the Linux device driver not the TSS library.

    The Linux driver (in all kernels known to me at the time of writing) works with physical TPMs - that is with TPMs that are a device separate to the CPU chip, e.g. soldered onto the motherboard.

    The problem comes with Intel's firmware TPM implementation, which does not use a separate physical TPM, but is a software implemention in a part of the CPU chip, isolated from what the OS can see, except via its "BIOS" interface.

    The problem seems to be that the interface breaks Intel's own rules for mapping I/O into the address space, and this is what breaks the driver. More than that, I don't know (or understand). That's what I gathered from reading that long thread. There is a driver patch avaliable, but I haven't tried it myself (yet).

     

Log in to post a comment.