New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addon: Split GPG using GPG v2.1 architecture #474

Open
marmarek opened this Issue Mar 8, 2015 · 22 comments

Comments

Projects
None yet
4 participants
@marmarek
Member

marmarek commented Mar 8, 2015

Reported by joanna on 8 Mar 2012 16:01 UTC
None

Migrated-From: https://wiki.qubes-os.org/ticket/474

@marmarek

This comment has been minimized.

Show comment
Hide comment
Member

marmarek commented Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by joanna on 8 Oct 2012 09:22 UTC

Member

marmarek commented Mar 8, 2015

Modified by joanna on 8 Oct 2012 09:22 UTC

@marmarek marmarek modified the milestones: Release 2 Beta 2, Release 2 Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by joanna on 2 Nov 2012 14:23 UTC

Member

marmarek commented Mar 8, 2015

Modified by joanna on 2 Nov 2012 14:23 UTC

@marmarek marmarek added enhancement and removed bug labels Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by joanna on 8 Feb 2013 12:57 UTC

Member

marmarek commented Mar 8, 2015

Modified by joanna on 8 Feb 2013 12:57 UTC

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by joanna on 24 Feb 2013 15:29 UTC

Member

marmarek commented Mar 8, 2015

Modified by joanna on 24 Feb 2013 15:29 UTC

@marmarek marmarek added P: minor and removed P: major labels Mar 8, 2015

@marmarek marmarek changed the title from Split GPG using GPG v2.1 arhictecture to Addon: Split GPG using GPG v2.1 arhictecture Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Comment by abel on 12 Mar 2013 09:51 UTC
I've investigated this a bit more and here are my findings.

  1. This is blocking on a release of Gnupg 2.1, and possibly subsequent distro packaging

    I've been using the gnupg 2.1 git branch for some time as part of my Android porting work, and it is quite stable. It is up to the Qubes devs if this issue is important enough to consider compiling a gnupg 2.1 package from source.

  2. Version 2.1 is necessary due to fundamental changes in the way gpg2 and gpg-agent work

    In the 2.1 series, gpg-agent will be the sole holder of all public+private key material, and the gpg2 client will merely interface with gpg-agent over a UNIX domain socket.

  3. The socat utility will let us bridge gpg-agent and gpg2 over the Qubes rpc system

    At Marek's suggestion I investigated socat as a way to proxy the gpg2<->gpg-agent domain socket connection through Qubes' RPC. If I have more time I'll setup a working example between two VMs running hot'n'fresh 2.1.

Member

marmarek commented Mar 8, 2015

Comment by abel on 12 Mar 2013 09:51 UTC
I've investigated this a bit more and here are my findings.

  1. This is blocking on a release of Gnupg 2.1, and possibly subsequent distro packaging

    I've been using the gnupg 2.1 git branch for some time as part of my Android porting work, and it is quite stable. It is up to the Qubes devs if this issue is important enough to consider compiling a gnupg 2.1 package from source.

  2. Version 2.1 is necessary due to fundamental changes in the way gpg2 and gpg-agent work

    In the 2.1 series, gpg-agent will be the sole holder of all public+private key material, and the gpg2 client will merely interface with gpg-agent over a UNIX domain socket.

  3. The socat utility will let us bridge gpg-agent and gpg2 over the Qubes rpc system

    At Marek's suggestion I investigated socat as a way to proxy the gpg2<->gpg-agent domain socket connection through Qubes' RPC. If I have more time I'll setup a working example between two VMs running hot'n'fresh 2.1.

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by joanna on 12 Mar 2013 10:29 UTC

Member

marmarek commented Mar 8, 2015

Modified by joanna on 12 Mar 2013 10:29 UTC

@marmarek marmarek added P: major and removed P: minor labels Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Comment by joanna on 12 Mar 2013 10:35 UTC
I don't think it would be a problem to keep GPGv2.1 e.g. as a subrepo of gpg-split.git.

However, what I don't like in your description above is that you wrote: "gpg-agent will be the sole holder of all public+private key material". The fundamental problem with current implementation is that one needs to import public keys (untrusted files!) into the secure vault where gpg backend is running. And this is what we want to get rid of, and my mail to gunpg-devel, referenced above, was exactly about how to achieve that. Now, when you say that gpg-agent is maintaing both secret and public keys, I don't see how we can gain anything from v2.1? And this seems contradictory to Werner Koch wrote in this thread: "GnuPG-2 has been designed to separate private key and public key operations.". Also note that he mentiones v2, not v2.1...

Member

marmarek commented Mar 8, 2015

Comment by joanna on 12 Mar 2013 10:35 UTC
I don't think it would be a problem to keep GPGv2.1 e.g. as a subrepo of gpg-split.git.

However, what I don't like in your description above is that you wrote: "gpg-agent will be the sole holder of all public+private key material". The fundamental problem with current implementation is that one needs to import public keys (untrusted files!) into the secure vault where gpg backend is running. And this is what we want to get rid of, and my mail to gunpg-devel, referenced above, was exactly about how to achieve that. Now, when you say that gpg-agent is maintaing both secret and public keys, I don't see how we can gain anything from v2.1? And this seems contradictory to Werner Koch wrote in this thread: "GnuPG-2 has been designed to separate private key and public key operations.". Also note that he mentiones v2, not v2.1...

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by Nukama on 4 May 2013 16:06 UTC

Member

marmarek commented Mar 8, 2015

Modified by Nukama on 4 May 2013 16:06 UTC

@marmarek marmarek changed the title from Addon: Split GPG using GPG v2.1 arhictecture to Addon: Split GPG using GPG v2.1 architecture Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by joanna on 1 Aug 2013 11:56 UTC

Member

marmarek commented Mar 8, 2015

Modified by joanna on 1 Aug 2013 11:56 UTC

@marmarek marmarek modified the milestones: Release 3, Release 2 Beta 3 Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by joanna on 20 Apr 2014 17:02 UTC

Member

marmarek commented Mar 8, 2015

Modified by joanna on 20 Apr 2014 17:02 UTC

@marmarek marmarek modified the milestones: Release 2.1 (post R2), Release 3 Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by joanna on 20 Apr 2014 17:05 UTC

Member

marmarek commented Mar 8, 2015

Modified by joanna on 20 Apr 2014 17:05 UTC

@marmarek marmarek added C: other and removed C: core labels Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Comment by anonymous on 9 Nov 2014 19:10 UTC
GnuPG v2.1.0 has been released as 'modern' (stable).

Overview: https://www.gnupg.org/faq/whats-new-in-2.1.html
Announcement Email: http://lists.gnupg.org/pipermail/gnupg-announce/2014q4/000358.html

Member

marmarek commented Mar 8, 2015

Comment by anonymous on 9 Nov 2014 19:10 UTC
GnuPG v2.1.0 has been released as 'modern' (stable).

Overview: https://www.gnupg.org/faq/whats-new-in-2.1.html
Announcement Email: http://lists.gnupg.org/pipermail/gnupg-announce/2014q4/000358.html

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Nov 16, 2015

Member

Fedora 22+ have gpg 2.1 packaged.
Related discussion: https://groups.google.com/d/msgid/qubes-devel/20150309013432.GA2361%40mail-itl
A prototype implementation done by HW42: https://git.ipsumj.de/hw42/qubes/split-gpg2.git (git only, no gitweb)

Member

marmarek commented Nov 16, 2015

Fedora 22+ have gpg 2.1 packaged.
Related discussion: https://groups.google.com/d/msgid/qubes-devel/20150309013432.GA2361%40mail-itl
A prototype implementation done by HW42: https://git.ipsumj.de/hw42/qubes/split-gpg2.git (git only, no gitweb)

@andrewdavidwong

This comment has been minimized.

Show comment
Hide comment
@andrewdavidwong

andrewdavidwong Apr 21, 2016

Member

Just doing a routine check: Is it still correct that @rootkovska is assigned to this issue?

Member

andrewdavidwong commented Apr 21, 2016

Just doing a routine check: Is it still correct that @rootkovska is assigned to this issue?

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Apr 21, 2016

Member

I would assign HW42, but he don't have github account...

Member

marmarek commented Apr 21, 2016

I would assign HW42, but he don't have github account...

@andrewdavidwong

This comment has been minimized.

Show comment
Hide comment
@andrewdavidwong

andrewdavidwong Apr 21, 2016

Member

@marmarek: That's ok, I already have him assigned in the features tracker.

I'll update it to remove Joanna. (Should I remove you, as well, or are you working on this?)

Member

andrewdavidwong commented Apr 21, 2016

@marmarek: That's ok, I already have him assigned in the features tracker.

I'll update it to remove Joanna. (Should I remove you, as well, or are you working on this?)

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Apr 21, 2016

Member

are you working on this?

No, I'm not.

Member

marmarek commented Apr 21, 2016

are you working on this?

No, I'm not.

@Vfreeze31

This comment has been minimized.

Show comment
Hide comment
@Vfreeze31

Vfreeze31 Jun 8, 2016

Just curious, is this still an open issue or does the system now use GPG 2.1 branch?

Just curious, is this still an open issue or does the system now use GPG 2.1 branch?

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jun 8, 2016

Member

On Tue, Jun 07, 2016 at 09:57:35PM -0700, Iestyn Best wrote:

Just curious, is this still an open issue or does the system now use GPG 2.1 branch?

While we use GPG 2.1 (as it is in Fedora 23), split-gpg doesn't take
advantage of its new agent architecture. Take a look at linked PoC
above.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Member

marmarek commented Jun 8, 2016

On Tue, Jun 07, 2016 at 09:57:35PM -0700, Iestyn Best wrote:

Just curious, is this still an open issue or does the system now use GPG 2.1 branch?

While we use GPG 2.1 (as it is in Fedora 23), split-gpg doesn't take
advantage of its new agent architecture. Take a look at linked PoC
above.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

andrewdavidwong added a commit that referenced this issue Jun 9, 2016

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jun 9, 2016

Member

For ease of access, I've made a clone of HW42's repository on github: https://github.com/marmarek/split-gpg2

Member

marmarek commented Jun 9, 2016

For ease of access, I've made a clone of HW42's repository on github: https://github.com/marmarek/split-gpg2

@andrewdavidwong

This comment has been minimized.

Show comment
Hide comment
@andrewdavidwong

andrewdavidwong Jun 9, 2016

Member

HW42:

What's the current status of this?

It's currently nearly unchanged since I created it. I have been using it
since then.

and what more needs to be done?

I wan't to change the way how the gpg-agent replacement on the client
side is started and by the way fix the case when the user doesn't answer
the accept dialog.

Marek proposed to ask per key. Currently it asks only once for all
accesible keys.

A qubes-builder Makefile needs to be added (packaging it self should be
(mostly) done).

It might be useful to reimplement it in python so it better fits into the
Qubes environment (for example rubys regex behave a litlle bit different
then pythons).

Are you still working on it?

As mentioned above it has been untouched since a while (especially the
last months I didn't had much time in general). But I'm still planing to
work on it.

Member

andrewdavidwong commented Jun 9, 2016

HW42:

What's the current status of this?

It's currently nearly unchanged since I created it. I have been using it
since then.

and what more needs to be done?

I wan't to change the way how the gpg-agent replacement on the client
side is started and by the way fix the case when the user doesn't answer
the accept dialog.

Marek proposed to ask per key. Currently it asks only once for all
accesible keys.

A qubes-builder Makefile needs to be added (packaging it self should be
(mostly) done).

It might be useful to reimplement it in python so it better fits into the
Qubes environment (for example rubys regex behave a litlle bit different
then pythons).

Are you still working on it?

As mentioned above it has been untouched since a while (especially the
last months I didn't had much time in general). But I'm still planing to
work on it.

andrewdavidwong added a commit that referenced this issue Jun 9, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment