CsvHelper icon indicating copy to clipboard operation
CsvHelper copied to clipboard

Digital signing of DLL in GitHub Actions

Open claudy opened this issue 2 years ago • 4 comments

Is your feature request related to a problem? Please describe. Currently, the CsvHelper.dll in the NuGet package does not have a digital signature. A digital signature would aid in verifying its authenticity and integrity.

Describe the solution you'd like The DLLs can be digitally signed after compilation as a part of the GitHub Actions. Nate McMaster's instructions are detailed and helpful. Documentation of SignTool.exe might be useful. NetNerds has an article about digitally signing PowerShell scripts in GitHub Actions. Some of that information would be relevant to signing CsvHelper.

Additional context This came about because a security audit of 3rd party dependencies found missing digital signatures. CsvHelper was one of the dependencies missing a digital signature. The assertion is that a DLL should be digitally signed to ensure integrity of the DLL's contents, i.e. it was not tampered with by a malicious actor.

claudy avatar Apr 10 '23 19:04 claudy

After consideration of options, my company decided to grant an exception for CsvHelper in the security audit. Maybe someday there will be a service similar to Let's Encrypt for code-signing purposes. For most open-source projects, code-signing certificates are too expensive and provide maintainers little to no benefit.

claudy avatar May 02 '23 20:05 claudy

I'm going to keep this open so I can look into in the future. I plan on using GitHub Actions to build and deploy in the future.

JoshClose avatar May 03 '23 14:05 JoshClose

While researching options, I did find keyfactor/signserver-ce which may be relevant to you.

claudy avatar May 03 '23 15:05 claudy