[prev in list] [next in list] [prev in thread] [next in thread] 

List:       qubes-devel
Subject:    Re: [qubes-devel] split-gpg2
From:       Joanna Rutkowska <joanna () invisiblethingslab ! com>
Date:       2015-03-07 9:44:22
Message-ID: 20150307094421.GB8227 () work-mutt
[Download RAW message or body]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sat, Mar 07, 2015 at 04:10:10AM +0000, Axon wrote:
> HW42 wrote:
> > Axon:
> > > HW42 wrote:
> > > > Hi,
> > 
> > > > I developed (a prototype of) split-gpg for GnuPG 2.1 (simply 
> > > > called split-gpg2).
> > 
> > > > Since the newly released (see [0]) GnuPG version 2.1.0 the 
> > > > private keys are manged by the gpg-agent.
> > 
> > > > For split-gpg this enables some nice new features:
> > 
> > > > - you import public keys in the client domain. So no untrusted
> > > > data in the server domain.
> > 
> > > So, does this finally allow for signing other people's keys 
> > > without having to import untrusted public key data into the 
> > > trusted backend domain?[4]
> > 
> > Yes.
> > 
> > > If so, how does that work, given that gpg-agent can never have 
> > > access to the public key data?
> > 
> > The key get imported in the frontend domain. I.e. the PGP-packet 
> > parsing etc. is done there. Only the cryptographic operation that 
> > requires the secret key is done in the backend domain. This is 
> > similar like Smartcards/HSMs are working.
> > 
> > The communication looks like this (frontend >>> backend):
> > 
> > Select key which should be used to sign the hash.
> > > > > SIGKEY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> > <<< OK
> > 
> > Set the hash which should be signed.
> > > > > SETHASH 8 
> > > > > YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
> > 
> > > > > 
> > > > > 
> > <<< OK
> > 
> > Sign the hash.
> > > > > PKSIGN -- ZZZZZZZZZZZZZZZZZZZZZZZZ
> > <<< D (7:sig-val(3:rsa(1:s256:....
> > 
> > For more details see the documentation of the gnupg-agent
> > protocol. It might also be helpful to look at the log option of
> > split-gpg2 and the test.rb in the source repo.
> > 
> 
> Great! Thank you for doing this!
> 

[Resending using inline PGP signature, so Google Groups don't break it]

There is, however, one advantage of sticking to the current Split GPG
architecture (which requires import of all the untrusted keys into GPG
backend VM) over this GPG v2.1 fully split model --

Namely in the current Split GPG architecture the backend VM sees the actual
document before it gets signed (as well as it sees the document once it got
decrypted). This allows this backend VM to display it to the user, or
generate a somehow meaningful log of events (for audit) of what documents
have been signed and/or decrypted. The backend VM might use Disposable VMs to
present documents-to-be-signed to the user (via qvm-open-in-dvm) to given
even better control over what the keys are used for to the user. (This
obviously would not work for git tags signing though).

This is currently not implemented, but I've been thinking of adding this at
some point, i.e. when-have-more-time (TM). And we can't have this when using
the new, fully split model, because than the backend VM only sees the hash,
which is really meaningless.

joanna.


-----BEGIN PGP SIGNATURE-----

iQIcBAEBAgAGBQJU+sh1AAoJEDOT2L8N3GcY1DwP/iLQAM9FcTkYdooxQhk4I/9N
+xSwFgXRx2JdxFHKdqb6+lMUYpimO5tJ+6LKa0jGmtCrwQZQCCSrMfBwTiE2xCWh
GCpK2lUA8eGN6FnlCkb8Fdpq3HXW8zt/O3kYfleMcNdtRw9ld9e+b81OJ7VKK4RH
Ot+KIpCzbO4RfqdHDUJgM3xXSpuVtuc8K3cvZle504bx7Do6NKG1Iqy1rjPbtvmx
L21LLHDiYUB2KdCn8kA5DUSAebZpoLXz/rxaR9TLnHyporEYTgxXL2coZW+spZi6
345Fb2e5dVi7YuxBaaoI7496/iHmGeLaQGi8N6ddqEkudtCk9XgVY6V0q5Qb2Ioe
9zUMP03Uypst96cMN2D/Nelm/jcBa5E6hJOttIpO0a4MBJ5E3dTfUx1bWhLFGqcT
grw1ows27MD3n5QNZqR+7wGRF1Nou+sx1m078k4zpIbpH1wyNLmCbDd0keP1/Aw8
92UTxau4IX7x3kKdVihgD5cm7k+PhT5hPHwuMgoVUd6HEQLGxbK+gJnnghpPnShS
rbvb0PpYD0cGc56Fy+AzLCI5BOqmh+hqibxYQ0BnpFyZ8/c3lvkvKTw+0o7xlAin
sm8CA3vt3mJ7ZlNc79+hTtqJPfuFrs0jVzGX3SoT3NySHfnP9LytfpzMUqAurGr5
ZDp/CeU//DJI2/Oey6LF
=EbEj
-----END PGP SIGNATURE-----

-- 
You received this message because you are subscribed to the Google Groups \
"qubes-devel" group. To unsubscribe from this group and stop receiving emails from \
it, send an email to qubes-devel+unsubscribe@googlegroups.com. To post to this group, \
send email to qubes-devel@googlegroups.com. To view this discussion on the web visit \
https://groups.google.com/d/msgid/qubes-devel/20150307094421.GB8227%40work-mutt. For \
more options, visit https://groups.google.com/d/optout.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic