Subject: Re: [openpgp] saltpack on OpenPGP message format problems

From: Phillip Hallam-Baker <[email-masked]>
Date: Tue, 1 Mar 2016 14:12:36 -0500

Reconsidering this issue in the wake of the Apple/FBI set to...

I think one point that has been massively overlooked by traditional
crypto applications is the need to store private keys securely. In
particular, it should be possible to fix private keys to a device such
that the key can be used on that device but it is not possible to
remove the key from the device and install it on another device
without 'heroic' efforts (e.g. uncapping the CPU and reading it with a
scanning electron microscope).

In particular, this has tended to be something that it is 'assumed' is
merely a platform issue. But having tried to implement such, I am very
sure that it is not and that you really need to consider the use of
trustworthy security features such as the iOS Secure Enclave or
Microsoft's TPM. when designing the protocol.

And I have no doubt that the NSA BULLRUN shills have been assiduously
stroking anti-DRM ideology as a way of discouraging implementation of
strong hardware security measures. Now that we are seeing machine
compromise as a vector for poisoning open source projects with
malware, we need to change our approach.

What would help perhaps is some better info as to what features are
out there and widely supported. The NSA has been very successful in
discouraging people from pushing for these features. But they are very
much needed.

---

From: Rick van Rein <[email-masked]>
Date: Wed, 02 Mar 2016 08:29:40 +0100

Hello,

> scanning electron microscope).

You seem to be talking of PKCS #11.  It's possible to use that under
OpenPGP but I've found the GnuPG implementation made it difficult.
Unlike the PGP card, which is more specific to the OpenPGP purpose,
this is a general standard for which many implementations exist in
USB sticks, ranging up to HSMs and even software low-end solutions.

FWIW, I had no problem implementing PKCS #11 for OpenPGP,

https://github.com/arpa2/tlspool/blob/master/tool/pgp11_genkey.c

This is only key generation (including self-signing) which is what I
needed for this project (which moves TLS to a daemon that uses PKCS #11)
but other things can also easily be moved to OpenPGP implementations.

Cheers,
 -Rick