Пример создания пары ключей
Любое ПО name-сервера поддерживающего DNSSECдолжно предоставлять программную утилиту для создания пары асимметричных ключей. Проиллюстрируем использование одной из таких программ, dnssec-keygen (имеющейся в BIND 9.3.x):
dnssec-keygen –a algorithm –b bits –n type [options] name
где algorithm может быть один из следующих:
- RSAMD5
- DSA
bits (длина ключа) имеет следующие диапазоны:
- 512 … 4096 для RSA-MD5
- 512 … 1024 для DSA
type может быть одним из ZONE или HOST. В принципе, могут быть добавлены и любые другие типы ключей.
name есть имя собственника ключа (обычно имя домена).
Данная команда создает два файла: один содержит открытый ключ, а другой файл — соответствующий ему закрытый ключ. Имена этих файлов следующие:
K<domain_name>+algorithm_id+Key_id.key K<domain_name>+algorithm_id+Key_id.private
domain_name является значением параметра name, указанного в командной строке. Algorithm_id может быть следующим:
3 – DSA
5 – RSAMD5
key_id есть уникальный идентификатор созданного ключа, созданного программой.
Например, для создания ZSK-ключа длиной 1024 бит, который использует набор алгоритмов RSAMD5 для подписывания зоны example.ru, должна быть выполнена следующая команда:
dnssec-keygen –a RSAMD5 –b 1024 –n ZONE example.ru
Будут созданы следующие файлы, содержащие закрытый и открытый ключи:
Kexample.ru.+005+28345.private Kexample.ru.+005+28345.key
В этих именах файлов 005 определяет algorithm_id и 28345 есть уникальный идентификатор ключа.
В *.key файле информация открытого ключа имеет тот же самый синтаксис, что и ресурсной записи в зонном файле. Содержимое файла Kexample.ru.+005+28345.key следующее:
example.ru IN DNSSEC 256 3 5 BQFG...... (строка ключа в Base64)
Следовательно, содержимое файла с открытым ключом может быть добавлено к содержимому зонного файла с помощью следующей команды:
cat *.key >> /var/named/zonedb.example.ru
После того как ресурсная запись DNSKEY, содержащая открытый ключ, добавлена в зонный файл, Serial Number зоны должен быть увеличен до того, как будет выполнено подписывание зоны.