Иногда при работе с разными партнерами аутентификация осуществляется с использованием разных локальных сертификатов, подписанных разными УЦ, соответственно и СА сертификаты разные.
В cisco-like конфигурации
Средствами команды crypto pki certificate map необходимо создать два профиля с описанием сертификатов выпущенных на разных УЦ:
crypto pki certificate map ROOT_CA 1
issuer-name co CN=W2019ROOTCA
и
crypto pki certificate map SUB_CA 1
issuer-name co CN=W2019SUBCA
По данным профилям в рамках построения ISAKMP SA будет осуществляться поиск нужного сертификата в базе продукта, поэтому добавляемые параметры должны быть индивидуальны для сертификатов разных УЦ. В данном случае из базы продукта будут выбираться сертификаты, у которых в поле Issuer Name(Издатель) содержится строка, заданная командой issuer-name. Для задания значения поля Subject Name(Субъект) сертификата используется команда subject-name. Например, для задания точного значения поля сертификата:
crypto pki certificate map LOCAL 1
issuer-name eq C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD NEW,CN=Hub1
Для того что бы задать ограничения на использование различной ключевой информации в рамках IKE обмена используется команда crypto isakmp profile, которая создает ISAKMP-профиль, в настройках которого возможно обозначить:
• средствами команды ca trust-point описать какой из CA сертификатов будет использоваться для проверки подлинности сертификата партнера;
• средствами команды self-certificate какой локальный сертификат будет использован для идентификации при построении ISAKMP SA;
• командой match certificate требования к допустимым локальным сертификатам партнера по защищенному соединению. Дополнительно можно использовать команду set identity mapping для разрешения поиска сертификата партнера по присланному партнером идентификатору. По умолчанию в качестве идентификатора используется отличительное имя сертификата Distinguished Name (DN), для задания этого идентификатора используется поле Subject Name(Субъект) сертификата.
Например, для партнеров, использующих сертификаты разных УЦ, для каждого из соединений необходим отдельный ISAKMP-профиль:
crypto isakmp profile PROFILE_WITH_ROOT_CA
match certificate ROOT_CA
ca trust-point ROOT_CA
self-certificate ROOT_CA
set identity mapping
и
crypto isakmp profile PROFILE_WITH_SUB_CA
match certificate SUB_CA
ca trust-point SUB_CA
self-certificate SUB_CA
set identity mapping
Выбор подходящего локального сертификата будет осуществляться на основе содержимого атрибута Subject Name(Субъект) поля Issuer Name(Издатель) в присланном локальном сертификате партнера.
Далее создаются криптокарты для разных партнеров по защищенному соединению, в которых командой set isakmp-profile осуществляется привязка ISAKMP‑профиля для каждого партнера:
crypto map VPN 1 ipsec-isakmp
set peer 172.16.1.2
set isakmp-profile PROFILE_WITH_ROOT_CA
и
crypto map VPN 2 ipsec-isakmp
set peer 172.16.1.3
set isakmp-profile PROFILE_WITH_SUB_CA
После набор криптокарт VPN привязывается к интерфейсу:
interface GigabitEthernet0/1
ip address 172.16.1.1 255.255.0.0
crypto map VPN
Более подробное описание, перечисленных в разделе команд cisco-like консоли, можно найти в документе «Cisco-like команды».
В LSP-конфигурации:
В LSP конфигурации возможно задание параметров аутентификации параметров как для ISAKMP SA, так и для IKEv2 SA.
Средствами структуры CertDescription необходимо создать два профиля с описанием сертификатов выпущенных на разных УЦ:
CertDescription ROOT_CA:1 (
Issuer = TEMPLATE, "CN=W2019ROOTCA"
)
и
CertDescription SUB_CA:1 (
Issuer = TEMPLATE, "CN=W2019SUBCA"
)
По данным профилям в рамках построения ISAKMP SA будет осуществляться поиск нужного сертификата в базе продукта, поэтому добавляемые параметры должны быть индивидуальны для сертификатов разных УЦ. В данном случае из базы продукта будут выбираться сертификаты, у которых в поле Issuer Name(Издатель) содержится строка, заданная атрибутом Issuer. Для задания значения поля Subject Name(Субъект) сертификата используется атрибут Subject. Например, для задания точного значения поля сертификата:
CertDescription LOCAL:1 (
Issuer = "C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD NEW,CN=Hub1"
)
Для протокола IKEv1:
Для того что бы задать ограничения на использование различной ключевой информации в рамках IKE используется структура AuthMethodGOSTSign, в атрибутах которой возможно обозначить:
• средствами атрибута AcceptCredentialFrom описать какой из CA сертификатов будет использоваться для проверки подлинности сертификата партнера;
• средствами атрибута LocalCredential какой локальный сертификат будет использован для идентификации при построении ISAKMP SA;
• средствами атрибута RemoteCredential требования к допустимым локальным сертификатам партнера по защищенному соединению. Дополнительно по умолчанию используется атрибут DoNotMapRemoteIDToCert со значением FALSE для разрешения поиска сертификата партнера по присланному партнером идентификатору. По умолчанию в качестве идентификатора используется отличительное имя сертификата Distinguished Name (DN), для задания этого идентификатора используется поле Subject Name(Субъект) сертификата.
Например, для партнеров, использующих сертификаты разных УЦ, для каждого из соединений необходим отдельные структуры AuthMethodGOSTSign:
AuthMethodGOSTSign GOST:Sign:PROFILE_WITH_ROOT_CA (
LocalID = Local:Cert:PROFILE_WITH_ROOT_CA
LocalCredential = ROOT_CA:1
RemoteCredential = ROOT_CA:1
AcceptCredentialFrom = ROOT_CA:1
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
и
AuthMethodGOSTSign GOST:Sign:PROFILE_WITH_SUB_CA (
LocalID = Local:Cert:PROFILE_WITH_SUB_CA
LocalCredential = SUB_CA:1
RemoteCredential = SUB_CA:1
AcceptCredentialFrom = SUB_CA:1
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
Далее в структурах, описывающих параметры создания соединения по протоколу IKE для разных партнеров по защищенному соединению, с помощью специальных атрибутов осуществляется привязка структур с описанием параметров аутентификации для каждого партнера.
Например, для протокола IKEv1 в структуре IKERule параметры аутентификации задаются атрибутами AggrModeAuthMethod и MainModeAuthMethod:
IKERule IKERule:VPN:1 (
IKEPeerIPFilter = 172.16.1.2
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign:PROFILE_WITH_ROOT_CA
MainModeAuthMethod = GOST:Sign:PROFILE_WITH_ROOT_CA
Priority = 10
)
и
IKERule IKERule:VPN:2 (
IKEPeerIPFilter = 172.16.1.3
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign:PROFILE_WITH_SUB_CA
MainModeAuthMethod = GOST:Sign:PROFILE_WITH_SUB_CA
Priority = 20
)
Для протокола IKEv2:
Для того что бы задать ограничения на использование различной ключевой информации в рамках IKEv2 используется структура IKEAuth2, в атрибутах которой возможно обозначить:
• средствами атрибута AcceptCredentialFrom задаются критерии какой из CA сертификатов будет использоваться для проверки подлинности сертификата партнера;
• средствами атрибута Credential задаются критерии выбора локального сертификата, либо сертификата партнёра для подписи, в зависимости от назначения структуры.
IKEAuth2 GOST:Sign:PROFILE_WITH_ROOT_CA (
Credential = ROOT_CA:1
AcceptCredentialFrom = ROOT_CA:1
SendRequestMode = ALWAYS
)
и
IKEAuth2 GOST:Sign:PROFILE_WITH_SUB_CA (
Credential = SUB_CA:1
AcceptCredentialFrom = SUB_CA:1
SendRequestMode = ALWAYS
)
Далее в структурах, описывающих параметры создания соединения по протоколу IKE для разных партнеров по защищенному соединению, с помощью специальных атрибутов осуществляется привязка структур с описанием параметров аутентификации для каждого партнера.
Например, для протокола IKEv2 в структуре IKERule2 параметры аутентификации задаются атрибутами LocalAuth (собственные) и RemoteAuth (используемые для проверки партнёра):
IKERule2 IKERule:VPN:1 (
Proposals = ike-gkm
LocalAuth = GOST:Sign:PROFILE_WITH_ROOT_CA
RemoteAuth = GOST:Sign:PROFILE_WITH_ROOT_CA
Limits = Limits_ike
)
и
IKERule2 IKERule:VPN:2 (
Proposals = ike-gkm
LocalAuth = GOST:Sign:PROFILE_WITH_SUB_CA
RemoteAuth = GOST:Sign:PROFILE_WITH_SUB_CA
Limits = Limits_ike
)
Более подробное описание, перечисленных в разделе структур и атрибутов LSP‑конфигурации, можно найти в документе «Создание локальной политики в текстовом представлении».