gnupg/dirmngr
Werner Koch 88dc3af3d4
dirmngr: Implement experimental SRV record lookup for WKD.
* dirmngr/server.c (cmd_wkd_get): Support SRV records.
--

This patch changes the way a WKD query is done.  Now we first look for
a SRV record for service "openpgpkey" and port "tcp" under the
to-be-queried domain.  If such a record was found and the target host
matches the to-be-queried domain or is a suffix to that domain, that
target host is used instead of the domain name.  The SRV record also
allows to change the port and obviously can be used for
load-balancing.

For example a query for the submission address of example.org with the
SRV record specification

_openpgpkey._tcp        IN     SRV   0 0  0    wkd.foo.org.
                        IN     SRV   0 0  0    wkd.example.net.
                        IN     SRV   0 0  4711 wkd.example.org.

(queried using the name "_openpgpkey._tcp.example.org") would fetch
from this URL:

 https://wkd.example.org:4711/.well-known/openpgpkey/submission-address

Note that the first two SRV records won't be used because foo.org and
example.net do not match example.org.  We require that the target host
is identical to the domain or be a subdomain of it.  This is so that
an attacker modifying the SRV records needs to setup a server in a
sub-domain of the actual domain and can't use an arbitrary domain.
Whether this is a sufficient requirement is not clear and needs
further discussion.

Signed-off-by: Werner Koch <wk@gnupg.org>
2017-01-08 18:42:50 +01:00
..
ChangeLog-2011 Remove the obsolete keyserver directory from the repo. 2015-04-20 18:20:45 +02:00
ChangeLog-2011-ks Remove the obsolete keyserver directory from the repo. 2015-04-20 18:20:45 +02:00
Makefile.am dirmngr: New configure option --disable-libdns. 2016-12-14 15:57:17 +01:00
OAUTHORS Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
ONEWS Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
cdb.h Tweaks for gpgconf. 2010-12-14 19:17:58 +00:00
cdblib.c move some file encodings to UTF-8 2016-09-17 15:57:31 +09:00
certcache.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
certcache.h Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
crlcache.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
crlcache.h move some file encodings to UTF-8 2016-09-17 15:57:31 +09:00
crlfetch.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
crlfetch.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
dirmngr-client.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
dirmngr-err.h Some work on porting dirmngr (unfinished) 2010-07-16 13:19:45 +00:00
dirmngr.c dirmngr: Make sure Tor mode is also set for DNS on SIGHUP. 2017-01-03 12:43:33 +01:00
dirmngr.h Remove unused debug flags and add "dns" and "network". 2016-12-19 09:41:15 +01:00
dirmngr_ldap.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
dns-stuff.c dirmngr: Change internal SRV lookup API. 2017-01-08 18:04:59 +01:00
dns-stuff.h dirmngr: Change internal SRV lookup API. 2017-01-08 18:04:59 +01:00
dns.c dirmngr,w32: Hack around a select problem. 2016-12-19 16:39:17 +01:00
dns.h dirmngr: New libdns snapshot 2016-12-14 15:56:58 +01:00
http.c dirmngr: Change internal SRV lookup API. 2017-01-08 18:04:59 +01:00
http.h dirmngr: Prepare to trigger jobs by network activity. 2016-11-11 17:30:23 +01:00
ks-action.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ks-action.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ks-engine-finger.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ks-engine-hkp.c dirmngr: Change internal SRV lookup API. 2017-01-08 18:04:59 +01:00
ks-engine-http.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ks-engine-kdns.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ks-engine-ldap.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ks-engine.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ldap-parse-uri.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ldap-parse-uri.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ldap-url.c dirmngr: Simplify strtok macro. 2014-03-07 19:00:31 +01:00
ldap-url.h Merged Dirmngr with GnuPG. 2010-06-09 16:53:51 +00:00
ldap-wrapper-ce.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ldap-wrapper.c dirmngr: Lazily launch ldap reaper thread. 2016-11-29 14:32:31 +01:00
ldap-wrapper.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ldap.c dirmngr: Avoid casting away a const from an char**. 2015-11-27 17:10:59 +01:00
ldapserver.c Improve spelling and grammar of some comments. 2015-03-23 19:58:30 +01:00
ldapserver.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
loadswdb.c Fix 2 compiler warnings. 2016-12-08 19:02:56 +01:00
misc.c dirmngr: Improve debug output for TLS. 2017-01-08 18:07:18 +01:00
misc.h dirmngr: Indicate that serial numbers are hexadecimal. 2016-01-22 12:54:02 +01:00
ocsp.c dirmngr: Remove all system daemon features. 2016-08-18 11:23:40 +02:00
ocsp.h Merged Dirmngr with GnuPG. 2010-06-09 16:53:51 +00:00
server.c dirmngr: Implement experimental SRV record lookup for WKD. 2017-01-08 18:42:50 +01:00
sks-keyservers.netCA.pem dirmngr: Add support for hkps keyservers. 2014-05-05 16:23:37 +02:00
t-dns-stuff.c dirmngr: Change internal SRV lookup API. 2017-01-08 18:04:59 +01:00
t-http.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-ldap-parse-uri.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-support.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
tls-ca.pem Move http module from common/ to dirmngr/. 2015-10-18 20:08:26 +02:00
validate.c dirmngr: Remove all system daemon features. 2016-08-18 11:23:40 +02:00
validate.h Merged Dirmngr with GnuPG. 2010-06-09 16:53:51 +00:00
w32-ldap-help.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00