Introduction

This document has described how to configure and maintain a secure nameserver which supplies signed zones and delegations. All the signed zones and delegations within the scope of the server form an island of security from which nameserver data can be retrieved in a authenticated and verifiable way by a security aware resolver.

But there are times operationally when a recursing secure name server may need to refer to, and retrieve, data from servers outside this island of security. If the referral is to a non-secure name server there is no secure recourse and the chain of authentication is broken and this data can not then be trusted.

To extend the scope of security, a secure nameserver may be configured with public key data from other remote secure zones so that the chain of trust is expanded. The trusted-keys directive in the named.conf configuration file provides this capability.

The mechanism described below for extending the chain of trust should be used judiciously and comes with the added operational burden of verifying and maintaining key validity and timeliness.

The following is an example of a trusted-keys directive in a named.conf which provides verification of data retrieved from the se. and dnssec-tools.org. zones.

Note: Key data may be different from that shown and should be obtained as described below.

trusted-keys {

se. 257 3 5 "AwEAAaxPMcR2x0HbQV4WeZB6oEDX+r0QM65KbhTjrW1ZaARmPhEZZe3Y 9ifgEuq7vZ/zGZUdEGNWy+JZzus0lUptwgjGwhUS1558Hb4JKUbbOTcM 8pwXlj0EiX3oDFVmjHO444gLkBOUKUf/mC7HvfwYH/Be22GnClrinKJp 1Og4ywzO9WglMk7jbfW33gUKvirTHr25GL7STQUzBb5Usxt8lgnyTUHs 1t3JwCY5hKZ6CqFxmAVZP20igTixin/1LcrgX/KMEGd/buvF4qJCydui eHukuY3H4XMAcR+xia2nIUPvm/oyWR8BW/hWdzOvnSCThlHf3xiYleDb t/o1OTQ09A0=";

dnssec-tools.org. 257 3 5 "AQOoEFn3VnV1qDwnNX9GlukAsbL7buCk6Wmt3VG9BOVae84VVc/yWghg tFM/WKw/5243XoBEeNyaahRIrlAJEnErLUWlKO/YuWkasRN4jkS2dDjS MWgjdGxzux+e0UV2UZfpjyygYvaD9U8xTwwzLYLDkamr1SCaHWCWUOO+ QMa/WY//r3ObbOFOYCvyqvsLRwofSFnQnsbihKbcP9HQSDQ4iRqbCTMV B+yq5NXiFoZT05Sqm/ijOrjLznZkUqIal9EXqyhNT0dTa9Gdn8+tfn+l YApwK91NA2YG/3t8ZKTYjDLe1YlwKg8OBTTN4ARap+265EtE87BhE6ZK fp+DUx4N";

};

The format of the directive is:

trusted-keys { <zone> <flags> <protocol> <algorithm> <quoted-key-string>; };

The flags, protocol, algorithm and quoted-key-string data may be obtained using the following dig command, but the content of the string should be verified in a secure out-of-band way to ensure its validity.

# dig se. DNSKEY

;; Truncated, retrying in TCP mode. ; <<>> DiG 9.3.1 <<>> se. DNSKEY ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31166 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 8, ADDITIONAL: 0 ;; QUESTION SECTION: ;se. IN DNSKEY ;; ANSWER SECTION: se. 3600 IN DNSKEY 257 3 5 AwEAAaxPMcR2x0HbQV4WeZB6oEDX+r0QM65KbhTjrW1ZaARmPhEZZe3Y 9ifgEuq7vZ/zGZUdEGNWy+JZzus0lUptwgjGwhUS1558Hb4JKUbbOTcM 8pwXlj0EiX3oDFVmjHO444gLkBOUKUf/mC7HvfwYH/Be22GnClrinKJp 1Og4ywzO9WglMk7jbfW33gUKvirTHr25GL7STQUzBb5Usxt8lgnyTUHs 1t3JwCY5hKZ6CqFxmAVZP20igTixin/1LcrgX/KMEGd/buvF4qJCydui eHukuY3H4XMAcR+xia2nIUPvm/oyWR8BW/hWdzOvnSCThlHf3xiYleDb t/o1OTQ09A0= ...

Note: from the output select the DNSKEY whose flags have the zone signing key bit set (257).

Once the 'named.conf' is edited as above, the configuration can be reloaded with:

# rndc reload

It may also be necessary to flush the cache data before retrieving authenticated results:

# rndc flush

To verify that the trusted-keys directive is working properly perform a secure dig at the configured server for the remote signed zone data and observe that the ad flag is set in the response. For example:

# dig @localhost se. ANY +dnssec

;; Truncated, retrying in TCP mode. ;; Connection to ::1#53(::1) for se. failed: connection refused. ; <<>> DiG 9.3.1 <<>> @localhost ANY se. +dnssec ; (2 servers found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56473 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 23, AUTHORITY: 9, ADDITIONAL: 1 ...