-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for TPM 1.x #84
Comments
@petasis I don't know of anyone working on this in the short, but if someone is interested patches are welcomed! The pin is called Something that would make TPM 1.2 support more complicated is the fact that the TPM 1.2 software stack (trousers) requires a user-space daemon (tcsd) which would have to run in the initramfs. That's not the case for TPM 2.0 since clevis is using the kernel-space resource manager ( |
Not trying to plug my own work but @petasis, consider this project if it fits your needs. It's not clevis, but I did use clevis as the basis for the dracut hooks. @martinezjavier |
Can confirm, I used some tooling during my PhD that just talked to /dev/tpm0 without needing any of the usual TPM 1.2 TSS. No idea what happened to that tooling now, but I don't think it ships in Debian anymore. I think the core library those tools were based on was called "libtpm", but I can't find it now. |
I have a working Clevis support for TPM 1.2 (currently modified directly in file system), so I plan to create a Pull Request this week. I am using |
You can follow (work in progress) my development branch https://github.com/oldium/clevis/commits/feature/tpm1/. The script uses What works:
Status:
|
As this is work-in-progress, I plan to change the encryption algorithm tomorrow - currently the password is sealed directly with EDIT: it seems I do not get it fully yet, so investigating... EDIT2: tpm2 really seals the encryption key (JWK) used to encrypt the password and unseals the JWK afterwards. This can be done with |
Done. The code is now sealing JWK (which is used to encrypt the password) into TPM similar to what the tpm2 pin does. |
TPM1 pin work is done, so now the Dracut and Systemd parts... |
Updated systemd dependencies (so that |
Is there any progress on this? Is there any way we could help? |
I have basic setup of VM already (dracut with simulated TPM1.2) for testing, so I just need to find some time to finish this. |
Just wanted to give a small heads-up. Dracut with SystemD is locally working for me. Work is not yet committed; I need to test Dracut without SystemD and retest initramfs-tools with the latest changes. I would like to finish it this week. |
Most of the work is done. I also plan to fix how the non-SystemD Dracut unlocker introduced in v20 works before finishing the pull request. The unlocker currently ignores This is like in the initramfs-tools unlocking flow, which uses analogous approach - it supplies the password instead of trying to unlock the disk directly. |
This comment was marked as outdated.
This comment was marked as outdated.
Done. Enjoy 😁 |
Release package for the latest v20 version with TPM 1.2 updates compiled for Debian 12 (bookworm) on amd64 arch can be found here. I just took Trixie v20 sources, updated them and compiled on Debian 12. Edit: rebuilt packages with |
@oldium, confirmed working on a ThinkPad T420, with Debian 12. Coreboot/edk2 and self signed EFI unified kernel image booting with Secure Boot. FYI, the only way I could make Clevis authenticate was by taking tpm ownership with the «well know secret», which requires this flag:
it does not work if omitting the flag and pressing «Enter» to set an empty SRK password. Might be worth mentioning in Readme. EDIT: I see now you mentioned that in an earlier comment already. Great work! |
Done, enjoy 😁 |
The latest v21 release with TPM 1.2 support for Debian 12 (bookworm) on amd64 arch can be found here. It additionally contains untested pkcs11 pin package. Enjoy 😁 |
Latest Debian 11 (bullseye), 12 (bookworm) and Fedora v39, v40 and v41 packages are available here https://github.com/oldium/clevis/releases/tag/v21_tpm1u2. |
Latest Debian 11 (bullseye), 12 (bookworm) and Fedora v39, v40 and v41 packages are available here https://github.com/oldium/clevis/releases/tag/v21_tpm1u3. Latest version fixes Dracut issue on RedHat systems with missing generic trousers data file ( |
Hi all,
Is there any change of adding support for TPM 1.x, for those stacked with an old mainboard/bios that does not support TPM 2.0?
The text was updated successfully, but these errors were encountered: