-
Notifications
You must be signed in to change notification settings - Fork 245
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
Need certificate for signing binaries: Windows #1672
Comments
The code signing is (usually) done using SignTool.exe. AFAIK the certificate used for code signing should be available in Personal Information Exchange (PFX) format. AFAIK http://timestamp.digicert.com/ is a commonly used timestamp server. More: https://knowledge.digicert.com/generalinformation/INFO4231.html |
This requires a few things:
I suggest that we come up with answers for 2 and 3 before we start working on 1. |
Can you say more about this? My understanding is that using a github org-level secret would work here, but it's possible i'm missing some context. |
I may be wrong, but I think it is trivial to update the github action to print the secret, which will be then publicly visible in the github output. |
I hope this isn't possible. Would this not mean that today we run the risk to any and all secrets being available to leak and use maliciously? Can you point to some proof of concept? If exposing GH secrets through actions is trivial, should we avoid using them altogether and remove their use today? |
I haven't actually tried, but here is an example: https://stackoverflow.com/a/74731496 |
@tigrannajaryan this does seem trivial. According to the github docs only users w/ write permissions would have read access to the secrets. https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-secrets
I wonder would requiring reviews for accessing secrets be enough to secure those secrets? To follow up to my previous comments, we should definitely reconsider the use of secrets altogether if they're at risk of being leaked. |
If I am understanding Github behavior correctly the only way for credentials to leak is for an approver (someone with Write access) is to modify the Github action and print the credential to console or ssh to the machine. So, a random PR from a random person can't result in a leak. (Someone please confirm my understanding is correct). I think this is a good enough protection for most of our secrets we use but I am open to rethinking this if we want stronger protection. The code signing certificate seems a bit more critical to me since if it leaks the process of fixing the problem is more complicated: need to revoke the existing cert - not sure how exactly, then need to obtain a new cert, then need to use that new cert. For other secrets it is a simpler process - you just update a password (or whatever is leaked). This was the primary reason I am more reluctant about using the same approach for code signing. Again, I may be missing something, I haven't looked in-depth into this issue, so feel free to correct me. |
this is correct, here is the important part from https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#accessing-secrets
|
@tigrannajaryan it would be good to get a consensus on what's secure enough. Credentials used to publish packages would may have a similar if not larger blast radius if they were leaked. So far we've worked with the assumption that github secrets were good enough, but again, i would like to make sure that's the case moving forward. I agree that the remediation of signing certs is pretty terrible in general, so I get the reluctance. |
I think this is a good topic for SIG security to figure out. |
The issue was created because of the discussion we had during the SIG security meeting. I think that this is something that could be driven by .NET SIGs. @reyang are you able to help as a TC member, OTel .NET approver and Microsoft employee? |
I want to, and I'm interested in this topic as well. The problem is that I have recurring conflicts so we need to find a time that we can collaborate. |
Bump, any updates? Progress? |
Something to consider as an option: https://azure.microsoft.com/en-us/products/trusted-signing?msockid=2d0894ca7a9d65c4016c80bc7bba64d2 |
A discussion in the security SIG about open-telemetry/opentelemetry-collector-releases#207 led us to realizing that if we want to sign binaries for Windows, we would need an OpenTelemetry certificate. The discussion then led us to realize that this should likely be owned by the TC.
Related spec issue: open-telemetry/opentelemetry-specification#2560
The text was updated successfully, but these errors were encountered: