-
Notifications
You must be signed in to change notification settings - Fork 131
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
shim-15.8 for circle linux 8 x64/ia32/aarch64 #438
Comments
Question:
|
Contacts have previously been verified |
Yes, it is the lateste version of el8. |
I'll need to take a deeper dive into the application, although I've already managed to check, that the builds are reproducible. Hint: it's about CVE-2024-45678, that is about extracting private keys, given physical access to a hardware token and a specialized equipment:
What kind of mitigations have been applied to prevent unauthorized physical access? What access control methods are implemented and who are the people, who can access your HSM physically? Note: this may not be about the access to the signing machine, if your HSM is stored in a remote location, e.g. a server room guarded by the provider's security guards, and the signing machine can authorize itself remotely. |
The private key is stored in the pesign rpm package. The package is located in a |
@rouzer-zhou sorry I'm confused. How can your private key be in an HSM if it's part of your modified pesign RPM? The whole purpose of an HSM is that no one can extract the key throughout its lifetime. If it is in an RPM it means that a disgruntled employee or an attacker could leak it and sign anything with it. |
The private key is stored in a HSM, In addition it is also stored in a pesign package not released to the public. |
The key is kept clear in an RPM internal? why? what's the technical reason behind not using the HSM to sign the rest of your boot chain? |
If your private key is stored outside of the HSM too, then that negates the point of the HSM. Why are you doing this? |
Due to hardware resource restriction, our HSM environment has not been fully set up yet. So, we now temporarily use pesign package containing private key to compile grub and kernel. We will set up HSM environment in the future. |
@rouzer-zhou when you use the HSM properly (generate the key directly on the HSM with security mode turned on) it will prevent you in the first place from extracting the private key from it. So how can you have the key both in the HSM and in the pesign package? |
Yes, I generated the key from openssl and imported the key to the HSM. |
@rouzer-zhou this is unfortunately unacceptable. The key needs to be generated on the HSM in secure more: the key will forever be on the HSM and be un-exportable. This is to ensure that no-one ever steals the key. This committee will not approve your shim unless you fix that. For HSM you can either use a FIPS Yubykey or similar. Or you can use a cloud based HSM. Using PKCS11, pesign or sbsigntool will be able to instruct the HSM to sign on your behalf, never revealing the key. |
To clarify, the latest discussions were about clarifying what OP has claimed, i.e.:
So at this point it's not even about potential vulnerabilities like CVE-2024-45678 anymore. Right now, that statement contradicts what has been said in the ongoing discussions, i.e. that not only the HSM is not even fully set up, but also that the private part just casually resides somewhere easily accessible for a duplication by a malicious actor. Trying to mitigate this by limiting networking access may sound OK, but wouldn't prevent sophisticated malware, tailored even to bridge air-gaps, from exfiltrating the key, even if we assume that only that the 2 fully trusted individuals have access clearance to where the key is used directly. Remember: trust is hard to earn and easy to lose. As part of recovering the trust, and also as a learning process, I'd highly recommend contributing to the shim community as suggested in the "What contributions have you made to help us review the applications of other applicants?" question, by writing a guide/walkthrough on how to set up an HSM (the model you have, along with the vendor libraries and SDKs) as part of the signing infrastructure you're still about to set up:
That would come in handy for others, in particular for future applicants who own the exact same HSM as you do, but are struggling with setting it up to work with their tooling. |
Hi @rouzer-zhou are you still working on things here? You seem to have gone quiet... |
Confirm the following are included in your repo, checking each box:
What is the link to your tag in a repo cloned from rhboot/shim-review?
https://github.com/circle-linux/shim-review/tree/circlelinx-8-shim-15.8-ia32-x86_64-aarch64-20240823
What is the SHA256 hash of your final SHIM binary?
e09f2e4ed95a9ae13f049da759c12e9010a0237c8c60a95f380b2da3ed8daf88 shimia32.efi 1a7e22a6af755ae8e0ab7de8cad76b282359d58f5dbb435aa7736de60833e491 shimx64.efi c7859015269418167ac9aa3e431e6f4c7ac92c4e271444cfcda35bfa950b1362 shimaa64.efi
What is the link to your previous shim review request (if any, otherwise N/A)?
If no security contacts have changed since verification, what is the link to your request, where they've been verified (if any, otherwise N/A)?
The text was updated successfully, but these errors were encountered: