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).
genmkfile
creates all the archives and files required for the creation of a Debian.deb
package from the local git repository only.genmkfile
runscowbuilder
which results in runningdpkg-source
to extract theDebian source package
inside a cleanchroot
. At that pointdpkg-source
notices that theDebian source package
lacks 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.