Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Инфраструктура открытых ключей (она же - Public Key Infrastructure, PKI) - комплекс средств, мер и политик, обеспечивающих работу систем на базе алгоритмов шифрования с открытым ключом.

К участникам PKI обычно относятотносятся:

  • Удостоверяющий центр (УЦ),
  • Регистрационный центр (РЦ),
  • Клиент.

В процессе взаимодействия участников PKI появляются и используются следующие объекты:

  • Приватный ключ,
  • Публичный ключ,
  • Запрос на сертификацию,
  • Сертификат,
  • Список отозванных сертификатов.

Схематично основные процедуры в инфраструктуре открытых ключей можно описать следующим образом:

...

  1. Клиент генерирует у себя приватный ключ.
  2. Клиент формирует запрос на сертификацию, включающий в себя публичный ключ, парный к раннее сгенерированному приватному ключу, информацию о владельце приватного ключа и запрашиваемые опции, которые затем могут быть добавлены в выпускаемый сертификат.
  3. Клиент доставляет запрос на сертификацию в удостоверяющий центр. При наличии в структуре PKI регистрационного центра запрос от клиента будет приходить на него и после валидации будет уходить в удостоверяющий центр.
  4. Удостоверяющий центр на основании клиентского запроса на сертификацию выпишет сертификат, содержащий всю клиентскую информацию и информацию о самом УЦ. Сам сертификат будет подписан приватным ключом УЦ, тем самым данные в клиентском сертификате не смогут быть изменены третьей стороной. От УЦ сертификат передается клиенту.
  5. Теперь клиенты могут, используя свой приватный ключ, подписывать данные в рамках используемых процессов (в нашем случае - сетевых протоколов) при отправке и валидировать данные при помощи публичного сертификата на приёме.

...

Сервисные маршрутизаторы ESR могут принимать участие в структуре PKI в качестве корневого удостоверяющего центра и клиента PKI. Перед развертыванием инфраструктуры PKI крайне важно её спланировать для обеспечения её безопасности и стабильной работы.

Вот основные Основные рекомендации по планированию инфраструктуры открытых ключей:

...

Настройка PKI-сервера в роли корневого удостоверяющего центра

Самый базовый Базовый вариант настройки PKI-сервера - корневой удостоверяющий центр, работающий на самоподписанных сертификатах, который напрямую обслуживает запросы конечных клиентов.

Предупреждение

Изменение отличительного имени сертификата удостоверяющего центра приводит к перегенерации приватного ключа и сертификата PKI-сервера и очистке базы выписанных сертификатов. В связи с этим рекомендуется Требуется заранее, на этапе планирования структуры PKI, определиться с идентификацией владельца удостоверяющего центра и после ввода удостоверяющего центра в эксплуатацию не менять эти настройки!.

Алгоритм настройки

статьи ""
ШагОписаниеКомандаКлючи
1

Настроить NTP-клиент согласно

разделу Алгоритм настойки NTP

. Маршрутизатор должен получать точное время от NTP-сервера или NTP-пира, либо доверять локально настроенному времени с включенным режимом NTP Master.

 


2

Перейти в режим настройки PKI-сервера.

esr(config)# crypto pki server


3

Перейти в режим настройки отличительного имени сертификата - набора атрибутов, уникально описывающих удостоверяющий центр.

esr(config-pki-server)# subject-name


4

Указать код страны (необязательно).

esr(config-pki-server-subject-name)# country <COUNTRY>

<COUNTRY> – код страны, задаётся строкой длиной 2 символа. Рекомендуется использовать двухбуквенные обозначения стран "alpha-2" из стандарта ISO 3166-1.

5Указать название штата, области или провинции (необязательно).esr(config-pki-server-subject-name)# state <STATE><STATE> – название штата, области или провинции, задаётся строкой от 1 до 128 символов.
6Указать название населенного пункта или его территориальной единицы (необязательно).esr(config-pki-server-subject-name)# locality <LOCATION><LOCATION> – название населенного пункта или его территориальной единицы, задаётся строкой от 1 до 128 символов.
7Указать название организации (необязательно).esr(config-pki-server-subject-name)# organization <ORGANIZATION><ORGANIZATION> – название организации, задаётся строкой от 1 до 64 символов.
8Указать подразделение организации (необязательно).esr(config-pki-server-subject-name)# organization-unit <ORGANIZATION-UNIT>
<ORGANIZATION-UNIT> – название подразделения организации, задаётся строкой от 1 до 64 символов.
9Указать общее имя сертификата.esr(config-pki-server-subject-name)# common-name <COMMON-NAME>

<COMMON-NAME> – общее имя, задаётся строкой от 1 до 64 символов.

Чаще всего в качестве общего имени сертификата удостоверяющего ццентра используется имя домена, который обслуживает удостоверяющий центр или юридическое название удостоверяющего центра.

10

Указать IP-адрес или сетевой интерфейс, который будет будет прослушиваться PKI-сервером для обработки входящих запросов (необязательно).

В случае, если настройка не будет указана PKI-сервер будет принимать запросы на всех настроенных IP-интерфейсах маршрутизатора.

esr(config-pki-server)# source-address <ADDR><ADDR> – IP-адрес, назначенный на локальном сетевом интерфейсе маршрутизатора, на котором PKI-сервер будет слушать входящие подключения, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].
esr(config-pki-server)# source-interface <IF>

<IF> – интерфейс или туннель, на котором PKI-сервер будет слушать входящие подключения.

11Указать challenge-password, который будет использован для аутентификации PKI-клиентов, желающих выписать сертификат (необязательно).esr(config-pki-server)# challenge-password { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> }

<CLEAR-TEXT> – пароль, задаётся строкой от 8 до 32 символов;

<ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 32 байт (от 16 до 64 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...).

12Указать время жизни выписываемых клиентам сертификатов в днях.esr(config-pki-server)# lifetime <DAYS>

<DAYS> – количество дней, принимает значения в диапазоне [1..3650].

Значение по умолчанию: 365.

13Включить PKI-сервер.esr(config-pki-server)# enable

Пример настройки

Задача:

Настроить на маршрутизаторе PKI-сервер в роли корневого удостоверяющего центра. Клиентские сертификаты должны иметь срок жизни - две недели с момента выпуска.

...

Примечание

Изменение отличительного имени клиентского сертификата или URL подключения к PKI-серверу приводит к немедленному перезапросу нового сертификата у удостоверяющего центра.

Алгоритм настройки

ШагОписаниеКомандаКлючи
1

Перейти в режим настройки PKI-клиента.

esr(config)# crypto pki trustpoint <TRUSTPOINT>

<TRUSTPOINT> – имя PKI-клиента, задаётся строкой от 1 до 31 символа.

2

Перейти в режим настройки отличительного имени сертификата - набора атрибутов, уникально описывающих владельца сертификата.

esr(config-trustpoint)# subject-name


3

Указать код страны (необязательно).

esr(config-trustpoint-subject-name)# country <COUNTRY>

<COUNTRY> – код страны, задаётся строкой длиной 2 символа. Рекомендуется использовать двухбуквенные обозначения стран "alpha-2" из стандарта ISO 3166-1.

4Указать название штата, области или провинции (необязательно).esr(config-trustpoint-subject-name)# state <STATE><STATE> – название штата, области или провинции, задаётся строкой от 1 до 128 символов.
5Указать название населенного пункта или его территориальной единицы (необязательно).esr(config-trustpoint-subject-name)# locality <LOCATION><LOCATION> – название населенного пункта или его территориальной единицы, задаётся строкой от 1 до 128 символов.
6Указать название организации (необязательно).esr(config-server-subject-name)# organization <ORGANIZATION><ORGANIZATION> – название организации, задаётся строкой от 1 до 64 символов.
7Указать подразделение организации (необязательно).esr(config-trustpoint-subject-name)# organization-unit <ORGANIZATION-UNIT>
<ORGANIZATION-UNIT> – название подразделения организации, задаётся строкой от 1 до 64 символов.
8Указать общее имя сертификата.esr(config-trustpoint-subject-name)# common-name <COMMON-NAME>

<COMMON-NAME> – общее имя, задаётся строкой от 1 до 64 символов.

Чаще всего в качестве общего имени клиентского сертификата используется полное доменное имя хоста, который использует данный клиентский сертификат или ФИО пользователя, использующего клиентский сертификат.

9Перейти в режим настройки альтернативных имен сертификата (необязательно).esr(config-trustpoint)# subject-alt-name


10Указать IP-адрес в качестве альтернативного имени сертификата (необязательно).esr(config-trustpoint-san)# ipv4 <ADDR>

<ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].

esr(config-trustpoint-san)# ipv6 <IPV6-ADDR>

<IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF].

11Указать полное доменное имя хоста в качестве альтернативного имени сертификата (необязательно). esr(config-trustpoint-san)# dns <NAME>

<NAME> – полное доменное имя хоста (FQDN), задается строкой от 1 до 235 символов. Пример записи доменного имени – router.example.loc.

12Указать адрес электронной почты в качестве альтернативного имени сертификата (необязательно).esr(config-trustpoint-san)# email <EMAIL>

<EMAIL> – адрес электронной почты, задается строкой от 6 до 254 символов. Пример записи электронной почты – router@example.loc.

13Указать URL для подключения к PKI-серверу.esr(config-trustpoint)# url <URL>

<URL> – URL для подключения к PKI-серверу, задается в виде

"http:// <ADDR>[:<PORT>]/", где:

  • <ADDR> – IP-адрес или доменное имя PKI-сервера;
  • <PORT> – порт, на котором запущен PKI-сервер, в случае если используется 80 порт по умолчанию, то настройку можно пропустить.

В случае если PKI-сервер расположен на том же маршрутизаторе, на котором настраивается PKI-клиент необходимо указать в URL любой из IP-интерфейсов, которые слушает PKI-сервер.

14Указать цифровой отпечаток сертификата PKI-сервера, к которому выполняется подключение.esr(config-trustpoint)# fingerprint <FINGERPRINT>

<FINGERPRINT> – значение цифровой отпечаток сертификата, полученного при помощи алгоритма MD5. Имеет размер 16 байт и задается в виде HEX-строки длиной 32 символа без разделителей (YYYY...) или 47 символов с двоеточием в роли разделителя (YY:YY:YY...).

15Указать challenge-password, который будет использован для аутентификации на PKI-сервере (необязательно).esr(config-trustpoint)# challenge-password { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> }

<CLEAR-TEXT> – пароль, задаётся строкой от 8 до 32 символов;

<ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 32 байт (от 16 до 64 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...).

16Включить PKI-клиент.esr(config-trustpoint)# enable

Пример настройки PKI-клиента для подключения к корневому удостоверяющему центру

...

Алгоритм генерации ключей и запросов на сертификацию

ШагОписаниеКомандаКлючи
1

Сгенерировать приватный ключ RSA.

esr# crypto generate private-key rsa <KEY-SIZE> filename <NAME>

 

<KEY-SIZE> – размер ключа в битах. Значение может находится в диапазоне от 1024 до 4096;

<NAME> – имя файла приватного ключа, задаётся строкой до 31 символа.

2

Сформировать запрос на сертификацию.

esr# crypto generate csr private-key <PRIVATE-KEY> [[alternative-name <ALT-NAME>][common-name <COMMON-NAME>][country <COUNTRY>][email-address <E-MAIL>][locality <LOCATION>][organization <ORGANIZATION>][organizational-unit <ORGANIZATION-UNIT>][state <STATE>]] filename <NAME>

 

<PRIVATE-KEY> – имя файла приватного ключа, задаётся строкой до 31 символа;

<ALT-NAME> – альтернативное имя сертификата, задаётся строкой от 5 до 255 символов в формате <TYPE>:<VALUE>, где:

  • <TYPE> – спецификатор типа альтернативного имени, может принимать значения "IP" и "DNS".
  • <VALUE> – значение альтернативного имени сертификата, может принимать на сход корректно написанный IPv4 адрес или доменное имя.

 <COMMON-NAME> – общее имя, задаётся строкой от 1 до 64 символов. Чаще всего в качестве общего имени клиентского сертификата используется полное доменное имя хоста, который использует данный клиентский сертификат или ФИО пользователя, использующего клиентский сертификат;

<COUNTRY> – код страны, задаётся строкой длиной 2 символа. Рекомендуется использовать двухбуквенные обозначения стран "alpha-2" из стандарта ISO 3166-1;

<E-MAIL> – адрес электронной почты, задаётся строкой от 3 до 64 символов;

<LOCATION> – название населенного пункта или его территориальной единицы, задаётся строкой от 1 до 128 символов;

<ORGANIZATION> – название организации, задаётся строкой от 1 до 64 символов;

<ORGANIZATION-UNIT> – название подразделения организации, задаётся строкой от 1 до 64 символов;

<STATE> – название штата, области или провинции, задаётся строкой от 1 до 128 символов;

<NAME> – имя файла запроса на сертификацию, задаётся строкой до 31 символа.

3

Выгрузить запрос на сертификацию с устройства.

esr# copy crypto:csr/<CERT-REQ> <DESTINATION>

<CERT-REQ> – имя файла запроса на сертификацию, задаётся строкой до 31 символа;

<DESTINATION> – локальное или удаленное файловое хранилище, куда будет выгружен запрос на сертификацию. Полный список возможных вариантов и синтаксис их описания подробно указан в описании команды "copy" в справочнике команд CLI.

4

Загрузить на устройство клиентский сертификат, выписанный удостоверяющим центром.

esr# copy <SOURCE> crypto:cert/<CERT>

<SOURCE> – локальное или удаленное файловое хранилище, откуда будет загружен файл клиентского сертификата. Полный список возможных вариантов и синтаксис их описания подробно указан в описании команды "copy" в справочнике команд CLI;

<CERT> – имя файла клиентского сертификата, задаётся строкой до 31 символа.

5

Загрузить на устройство сертификат удостоверяющего центра.

esr# copy <SOURCE> crypto:cert/<CA-CERT>

<SOURCE> – локальное или удаленное файловое хранилище, откуда будет загружен файл сертификата удостоверяющего центра. Полный список возможных вариантов и синтаксис их описания подробно указан в описании команды "copy" в справочнике команд CLI;

<CA-CERT> – имя файла сертификата удостоверяющего центра, задаётся строкой до 31 символа.

6

Загрузить на устройство список отозванных сертификатов удостоверяющего центра.

esr# copy <SOURCE> crypto:crl/<CRL>

<SOURCE> – локальное или удаленное файловое хранилище, откуда будет загружен файл со списком отозванных сертификатов. Полный список возможных вариантов и синтаксис их описания подробно указан в описании команды "copy" в справочнике команд CLI;

<CRL> – имя файла со списком отозванных сертификатов, задаётся строкой до 31 символа.

Пример ручного выпуска сертификата через внешний удостоверяющий центр

...