I have been refreshing my knowledge on debsign, debsig and dpkg-sig.
debsig and dpkg-sig make the package non-deterministic since they embed the signatures into the package. (And most of packages.debian.org packages don’t debsig or dpkg-sig either.) So not useful in context of Whonix.
- security - How is the authenticity of Debian packages guaranteed? - Unix & Linux Stack Exchange
- HOWTO: GPG sign and verify deb packages and APT repositories | Packagecloud Blog
- UntrustedDebs - Debian Wiki
debsign doesn’t bring more security in context of Whonix either. It’s useful to secure the communication between package maintainers and (Debian) build servers. Since Whonix uses no build servers, using debsign would only silence a dpkg-source warning.
Whonix already provides end-to-end package integrity by signing apt repository metadata.
Debian does not end-to-end verify packages from maintainer package signature to dpkg installation on user’s systems yet. ( UntrustedDebs - Debian Wiki )
Therefore when building Whonix from source code the warning during Whonix build process such as:
dpkg-source: warning: extracting unsigned source package
dpkg-source: warning: extracting unsigned source package (anon-gw-anonymizer-config_5.0-1.dsc)
can be safely ignored.
This is because the Debian source package (a technical term in Debian packaging) for packages by Whonix is created from the local git repository only. No files from remote locations are involved except the git repository itself which gets verified when using the usual build from Whonix source code instructions.
- The user downloads Whonix source code including all Whonix package source code from git.
- The user verifies all of Whonix source code from git.
- The Whonix build script builds all Whonix packages using
genmkfile. - Building a Debian package requires an upstream archive (also called upstream tarball) as well as a Debian archive (also called Debian tarball).
genmkfilecreates all the archives and files required for the creation of a Debian.debpackage from the local git repository only.genmkfilerunscowbuilderwhich results in runningdpkg-sourceto extract theDebian source packageinside a cleanchroot. At that pointdpkg-sourcenotices that theDebian source packagelacks a signature file.
While checking the signature makes sense for Debian upstream build servers it makes no sense when building packages locally with locally already verified files. Signing the file would require the user to needlessly (auto) generate a signing key which would not be used for anything but silencing a non-applicable warning.