Secure DNS: Difference between revisions
Line 19: | Line 19: | ||
dnssec-keygen -f KSK -a RSASHA1 -b 2048 -n ZONE <var>snug.local</var> |
dnssec-keygen -f KSK -a RSASHA1 -b 2048 -n ZONE <var>snug.local</var> |
||
for the key-signing key (where <var>snug.local</var> is the name of the zone). Of course you can choose keysize and algorithm to your heart's content (<tt>dnssec-keygen --help</tt> gives a list of possible combinations), but only DSA and RSASHA1 are required to be implemented. Note also that it would be wise to choose a stronger key for the KSK as it can't be changed easily. For the same reason it should be removed from the computer after use and brought to some safe storage. |
for the key-signing key (where <var>snug.local</var> is the name of the zone). Of course you can choose keysize and algorithm to your heart's content (<tt>dnssec-keygen --help</tt> gives a list of possible combinations), but only DSA and RSASHA1 are required to be implemented. Note also that it would be wise to choose a stronger key for the KSK as it can't be changed easily. For the same reason it should be removed from the computer after use and brought to some safe storage. |
||
After each key generation the base name of the key files is printed, e.g. |
|||
<var>Ksnug.local.+005+40668</var> |
|||
With this base name two files are generated: the private key file (<tt><var>Ksnug.local.+005+40668</var>.private</tt>) and the public key file (<tt><var>Ksnug.local.+005+40668</var>.key</tt>). For obvious reasons the private key should be kept secret. |
Revision as of 12:05, 12 September 2005
Introduction
The DNS Security Extensions, also known as DNSSEC, make it possible verify the authenticity and integrity of data obtained from the domain name system. To enable DNSSEC operation modified resolvers are needed that check data received from DNS servers. On the part of the authoritative name servers no modifications are necessary except for additional DNS records containing the signature data.
Quick How-To
There is an excellent howto available from RIPE at [1].
What You Need
- BIND 9.3
- For example available in Debian Testing or Unstable. To get it into Debian Stable put the testing-sources into /etc/apt/sources.list, e.g.
deb http://ftp.de.debian.org/debian etch main
deb http://security.debian.org/ etch/updates main and into /etc/apt/apt.conf:
APT::Default-Release "3.1*"
You can then install bind 9.3 with
apt-get install bind9/testing libisccc0/testing dnsutils/testing
Key-Management
It's best to generate two keypairs for each zone: a key-signing key (KSK) and a zone-signing key (ZSK).
- Key-signing key
- The key-signing key will only be used to sign the zone-signing key and will be the key that is transmitted to the parent zone as a designed signer or to the clients as a secure entry-point. If this key is rolled over all those parties will have to be informed.
- Zone-signing key
- This key is used to actually sign the zone data. If this key is rolled over it will only have to be resigned by the key-signing key with no external notification necessary.
The keys are generated with
dnssec-keygen -a RSASHA1 -b 1024 -n ZONE snug.local
for the zone-signing key and
dnssec-keygen -f KSK -a RSASHA1 -b 2048 -n ZONE snug.local
for the key-signing key (where snug.local is the name of the zone). Of course you can choose keysize and algorithm to your heart's content (dnssec-keygen --help gives a list of possible combinations), but only DSA and RSASHA1 are required to be implemented. Note also that it would be wise to choose a stronger key for the KSK as it can't be changed easily. For the same reason it should be removed from the computer after use and brought to some safe storage.
After each key generation the base name of the key files is printed, e.g.
Ksnug.local.+005+40668
With this base name two files are generated: the private key file (Ksnug.local.+005+40668.private) and the public key file (Ksnug.local.+005+40668.key). For obvious reasons the private key should be kept secret.