Giter Site home page Giter Site logo

tpm2-tbs's Introduction

Introduction

Access OPTIGA™ TPM 2.0 [1] on your Windows machine using TPM Base Services (TBS). The TBS feature is a system service that allows transparent sharing of the Trusted Platform Module (TPM) resources.

Disclaimer

The project will interact with your Windows' TPM. Be cautious or risk losing your precious data!

Table of Contents

Prerequisites

  • Tested on a Windows 10 machine with the following specifications:
  • Using the Windows TPM utility (tpm.msc) to check if your machine has an Infineon (IFX) TPM 2.0:
  • Install IntelliJ IDEA [2], community version will do

Setup on Windows 10

Download Microsoft TSS project (forked from [3]):

$ git clone https://github.com/wxleong/TSS.MSR
$ git checkout develop-tbs-optiga-tpm-release-1.0

Start IntelliJ IDEA with "Run as Administrator" and open the Maven project TSS.MSR/TSS.Java. The IDEA will resolve Maven dependencies, wait for it to complete.

Operation

Start IntelliJ IDEA with "Run as Administrator", build and run the JUnit tests in TSS.MSR/TSS.Java/src/test/TSSMainTests.java:

  • main(): The main test campaign
  • clean(): To clean up any persistent keys, transient keys, and open sessions from running main()

Addressed failures:

Test case Error Info Workaround
DrsClient.runProvisioningSequence() AES encryption/decryption Not supported by TPM Switched to software AES, check commit 4667abb
DrsClient.runProvisioningSequence() ActivateCredential Need administrator permission Run as Administrator
hash() Hashing algorithm SHA384 Not supported by TPM Excluded from test
pcr1() TPM2_PCR_Extend/TPM2_PCR_Event Need administrator permission Run as Administrator
primaryKeys() rsaPrimary.outPublic.validateSignature(dataToSign, rsaSigPss) Expected to fail, check the note Fixed in commit f413909
primaryKeys() eccPrimary.outPublic.validateSignature() Expected to fail, check the note Fixed in commit 4337653
softwareKeys() tpm.LoadExternal() Encountered intermittent error TPM ERROR: {BINDING}, due to the quality of software generated RSA keys Fixed in commit 7eca140
softwareKeys() tpm.Sign() Encountered error TPM ERROR: {HANDLE} Fixed in commit 3575aed

References

[1] https://www.infineon.com/cms/en/product/security-smart-card-solutions/optiga-embedded-security-solutions/optiga-tpm/
[2] https://www.jetbrains.com/idea/
[3] https://github.com/microsoft/TSS.MSR

License

This project is licensed under the MIT License - see the LICENSE file for details.

tpm2-tbs's People

Contributors

wxleong avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.