SoftFever / OrcaSlicer

G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.)
https://discord.gg/P4VE9UY9gJ
GNU Affero General Public License v3.0
7.45k stars 893 forks source link

Feature Request: Include hashed checksums for releases #7005

Open nero-dv opened 1 month ago

nero-dv commented 1 month ago

Is there an existing issue for this feature request?

Is your feature request related to a problem?

Firstly, thank you for your continuous efforts in developing and improving OrcaSlicer. Your work is greatly appreciated by the community.

I am writing to propose two security enhancements for the OrcaSlicer software:

**1. Include Hashed Checksums with Releases

  1. Digitally Sign Executables**

Related Open Issues:

Benefits:

Implementing these measures will enhance the security and integrity of OrcaSlicer distributions. It will protect both the maintainers and the users from potential security threats.

Thank you for considering this feature request. Your dedication to improving OrcaSlicer is highly valued.

Which printers will be beneficial to this feature?

All

Describe the solution you'd like

Include Hashed Checksums with Releases

Providing hashed checksums (e.g., SHA-256) alongside release files allows users to verify the integrity of the downloads, ensuring that the files have not been tampered with.

Creating Checksums:

Windows:

In PowerShell, navigate to the directory containing the only the released installer binaries, then generate the SHA-256 checksums for all files, then include the checksums.txt file with your release.

  Get-ChildItem * | Get-FileHash -Algorithm SHA256 | Format-Table -AutoSize | Out-File checksums.txt

Linux:

  sha256sum * > checksums.txt

macOS:

  shasum -a 256 * > checksums.txt

Digitally Sign Executables

Digitally signing executables assures users of the software's authenticity and integrity, reducing security warnings during installation.

Digitally Signing Executables:

Windows:

If not already done, purchase a certificate from a trusted Certificate Authority (CA) like DigiCert, Comodo, or GlobalSign. You would then need to complete the validation process as per the CA's instructions.

signtool sign /f "path\to\certificate.pfx" /p "certificate_password" /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 /v "path\to\executable.exe"
signtool verify /pa /v "path\to\executable.exe"

Linux:

gpg --full-generate-key
gpg --detach-sign --armor yourpackage.tar.gz

macOS:

codesign --deep --force --verify --verbose --sign "Developer ID Application: Your Developer Name (Team ID)" /path/to/YourApp.app
xcrun altool --notarize-app --primary-bundle-id "com.yourcompany.yourapp" --username "your@appleid.com" --password "app-specific-password" --file /path/to/YourApp.app
xcrun stapler staple /path/to/YourApp.app

Describe alternatives you've considered

No response

Additional context

No response

ShaneDelmore commented 1 month ago

This feels like a timely suggestion given Orcaslicer.net confusing people.