[Pkg-privacy-maintainers] Bug#836266: parcimonie should not modify the user's dirmngr.conf

intrigeri intrigeri at debian.org
Tue Apr 21 12:52:43 BST 2020


Hi,

intrigeri (2016-12-06):
> Dear users and fellow maintainers,
>
> I am very much in doubt about what to do with this bug report.
>
> Ideally, I think that parcimonie would start its own dirmngr instance,
> fork the configuration of the default instance, and enable use-tor in
> its own copy. I guess that's doable, but I am not convinced it's worth
> the effort.

I've researched this avenue a bit today and the best design I could
think of is this:

 - Introduce dirmngr-with-tor.{socket,service} user units,
   that only differ from the existing dirmngr.{socket,service} units
   like this:

    - ListenStream=%t/gnupg/S.dirmngr-with-tor
    - ExecStart=/usr/bin/dirmngr --supervised --use-tor

   Additionally, one would need to figure out how what to do with
   "ExecReload=/usr/bin/gpgconf --reload dirmngr".

 - Give gpg(1) a command-line argument to specify which dirmngr socket
   shall be used.

   If there's already a way to do this, that does not require patching
   GnuPG, I'm all ears.

Then, parcimonie-like programs could use that new option to ask gpg(1)
to use the extra, torified dirmngr instance. And parcimonie could stop
modifying the user's dirmngr.conf.

FWIW, while looking for a hopefully simpler fix, I've also thought
about:

 - Use "gpg --dirmngr-program"

   As long as there's already an instance listening on S.dirmngr,
   gpg seems to ignore this. I guess that makes sense.

 - Run "gpg --recv-keys" in an environment where S.dirmngr
   has been replaced by a torified dirmngr's socket.

   I understand that creating such an environment requires one of:

    - a setuid-root helper, such as bwrap

    - root privileges (e.g. to bind-mount stuff) → probably not
      OK in this context

    - user namespaces enabled, which I doubt we can assume in this
      context

    - symlink'ing dance + custom $GPGHOME → sounds fragile and racy

    - kill dirmngr and run our own temporarily → sounds fragile and
      racy

And of course, one should not forget about:

 - anarcat's idea of replacing the "download + validate/filter +
   import" part of gpg --recv-keys's functionality with something
   that does not use dirmngr.

 - Some day, someone will teach dirmngr to do parcimonie's job :)



More information about the Pkg-privacy-maintainers mailing list