-
Notifications
You must be signed in to change notification settings - Fork 133
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
Downloads should have a way to verify that they are official/authentic #3316
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
[Planning meeting notes]
|
@omajid Is the debian-recommended process something like what you're looking for? |
Yup, that's exactly it. Though that document refers to auto-generated tarballs. I think we are still trying to get auto-generated tarballs to work with the VMR? The current workaround is to generate the tarballs via release-automation and attach it to the release. Related, GitHub recently broken the bit-by-bit-reproducible guarantees with the auto-generated tarballs, so that makes custom tarballs more appealing for signing via GPG. |
FYI, We will be working on getting the auto-generated tarballs to work in preview 4. |
We have not started working on adding a signature file onto the release. We only did the work to make the auto-generated tarball work by requiring the user to supply the extra git information (or using the generated release manifest). We can prioritize this then but my understanding is that we'll need to figure out where to take the key (ESRP?) and where is its public part published so that people can verify the signature. |
There was a question offline about what the public key might look like. The guidance we have (which is targeted to a packager packaging up a project for Fedora) is described at https://docs.fedoraproject.org/en-US/packaging-guidelines/#_source_file_verification
(The "package SCM" is the Fedora-side source code repo that contains the package build recipe.)
(The package lookaside cache is the place where we upload the upstream source code archive)
|
Thanks @omajid |
@omajid Can you take a look at https://github.com/dotnet/dotnet/releases/tag/v8.0.0 for the current implementation of the PGP signed releases and let me know what you think? |
The current implementation looks good to me:
|
Adding clarity to the scope of this PR. This applies to the public GH release as well as the internal handoff to partners. Both versions of the tarballs should be signed. The same reasons why we sign the GH releases applies to the internal handoff artifacts. |
Understood, sounds good. We just got a green on the original PR. I need to go through it one more time though. |
@mmitche, @oleksandr-didyk, @mthalman - Can this be closed now? |
Still need to complete the work for the early handoff tarball. |
@oleksandr-didyk - Is this something you can pickup for the early handoff tarball? |
I could, but would be a bit lost as to what to do exactly. I could chat with @mmitche about it if he does not have something close to finishing and take it over from him |
@oleksandr-didyk, @mmitche - please work together on this. I would like to see this done for the March servicing release which means this should be completed this week. |
Describe the Problem
I can now download full sources from the VMR:
Unfortunately, if I pass along the tarball to someone, there's no way for them to verify that the download is authentic and I didn't tamper with it.
Describe the Solution
Source-build should publish checksums (sha512, or similar) for release assets, similar to dotnet/installer#15803
As a further enhancement, gpg signatures would be even better, since they would guarantee that the tarball is a blessed and official release without any tampering (even, say GitHub staff, Microsoft staff other than those authorized to handle releases).
Additional Context
This ties into https://learn.microsoft.com/en-us/nuget/concepts/security-best-practices and https://docs.fedoraproject.org/en-US/packaging-guidelines/#_source_file_verification
The text was updated successfully, but these errors were encountered: