aboutsummaryrefslogtreecommitdiffstats
path: root/g10/import.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2013-10-04 11:44:39 +0000
committerWerner Koch <[email protected]>2014-03-07 09:14:05 +0000
commitdb1f74ba5338f624f146a3cb41a346e46b15c8f9 (patch)
tree29852506d1074216fa8bf3c031a4053b8705c579 /g10/import.c
parentagent: Fix UPDATESTARTUPTTY for ssh. (diff)
downloadgnupg-db1f74ba5338f624f146a3cb41a346e46b15c8f9.tar.gz
gnupg-db1f74ba5338f624f146a3cb41a346e46b15c8f9.zip
gpg: Protect against rogue keyservers sending secret keys.
* g10/options.h (IMPORT_NO_SECKEY): New. * g10/keyserver.c (keyserver_spawn, keyserver_import_cert): Set new flag. * g10/import.c (import_secret_one): Deny import if flag is set. -- By modifying a keyserver or a DNS record to send a secret key, an attacker could trick a user into signing using a different key and user id. The trust model should protect against such rogue keys but we better make sure that secret keys are never received from remote sources. Suggested-by: Stefan Tomanek Signed-off-by: Werner Koch <[email protected]> (cherry picked from commit e7abed3448c1c1a4e756c12f95b665b517d22ebe) Resolved conflicts: g10/import.c g10/keyserver.c
Diffstat (limited to 'g10/import.c')
-rw-r--r--g10/import.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/g10/import.c b/g10/import.c
index 74443ef10..c3ad53632 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -1563,6 +1563,12 @@ import_secret_one (ctrl_t ctrl, const char *fname, KBNODE keyblock,
}
stats->secret_read++;
+ if ((options & IMPORT_NO_SECKEY))
+ {
+ log_error (_("importing secret keys not allowed\n"));
+ return 0;
+ }
+
if (!uidnode)
{
log_error( _("key %s: no user ID\n"), keystr_from_pk (pk));