gnupg 'signing server'? Looking for advice on key management/security
Jacob Bachmeyer
jcb62281 at gmail.com
Wed Nov 15 03:52:07 CET 2023
Henning Follmann wrote:
> On Mon, Nov 13, 2023 at 10:23:16PM -0600, Jacob Bachmeyer via Gnupg-users wrote:
>
>> Daniel Cerqueira wrote:
>>
>>> Jacob Bachmeyer <jcb62281 at gmail.com> writes:
>>>
> [...]
>
>
> Yes it does. The key can't be copied and taken away from the device. This
> is an advantage.
>
It is an advantage that is not relevant to network-connected
general-purpose computing devices.
In both cases, the key is secure when not in use. An encrypted private
key is useless without the passphrase and a card is useless without the
PIN. In both cases the key can be further secured by physical
isolation, storing the encrypted key on removable media or keeping the
card out of the reader when not in use. In both cases a "smash and
grab" attack yields nothing of value, either an encrypted key or nothing
at all (smartcard or removable media). That means an intelligent
attacker will attempt to place persistent malware to backdoor the
device. While the theft of both encrypted key and passphrase enables
Mallory to forge signatures at his leisure, persistent malware could
just as easily submit Mallory's messages to the smartcard for signing
after locally stealing the PIN and simply waiting for the unsuspecting
user to insert the card (or bring the token into NFC range... how many
people would put phone and token into the same pocket without a second
thought?).
Once the conditions necessary for an attacker to break GPG's built in
private key security are met, the use of a smartcard is merely an
inconvenience to an attacker. In both cases, the attacker must wait for
the key to be unlocked to produce a legitimate signature and can then,
having stolen the authentication token (passphrase or PIN) used to
unlock the key, produce additional (illegitimate) signatures. The
smartcard adds the minor inconvenience of having to wait for the user to
insert the card, but this does not actually raise the bar for a
successful attack, which is the forging of at least one signature, after
which the key must be revoked.
Note that assuring the integrity of the device at all times that the
card is connected generalizes to "at all times the key is used" for the
GPG built in security case. (If the integrity of the device is assured,
then there can be no malware waiting to steal the passphrase and store
it for later.) If this condition is met, no attack can succeed in
either case. If this condition is not met, Mallory will eventually be
able to forge a signature. Therefore, smartcards do not actually
provide additional security in the typical PGP usage.
Where smartcards are useful is protocols that require an untrusted or
marginally trusted device that does not belong to the user to be able to
produce a signature with the user's key for a short period of time but
not afterwards. Modern payment card systems supposedly are an example
of this, but the EMV protocol has several less-secure legacy modes that
may or may not still be in use. (I do not know if the magstripe
emulation mode has actually been phased out, for example.)
>> [...]
>>
>> That is ignoring the additional risk that few if any smartcards use Free
>> firmware, and are, by design, nearly impossible to verify. A secret
>> backdoor on the smartcard cannot be categorically ruled out, although such a
>> violation of trust would be expected to effectively remove the card's
>> manufacturer from the market should it come to light.
>>
>
> nitrokey publishes its card firmware and it can be updated and
> independently audited.
> There is also the OpenPGP card. IIRC the firmware is also available.
>
> Yubikey does not publish the key firmware but they have an independent
> auditing process in place IIRC.
>
Those are improvements in the field since I had last checked, although
those are still two suppliers out of an entire industry. Thank you for
that information.
-- Jacob
More information about the Gnupg-users
mailing list