Un acordo IKEv2 entre un cliente Windows e unha pasarela FortiGate segue fallando, e a busca dun número que non coincide produce unha lista de números aínda máis longa. A lista só se volve manexable cando se divide en tres filas que fallan de forma independente: o intercambio de claves que protexe IKE, a protección aplicada á CHILD SA e a autenticación que demostra quen é cada parte. Os números de grupo aparecen en dúas desas filas e significan cousas distintas.

Tres filas que fallan de forma independente

A primeira fila é o intercambio de claves dentro do propio IKE, que xera as claves que protexen a negociación. A segunda é a proposta para a CHILD SA, que protexe o tráfico que transporta o túnel. A terceira é a autenticación, que decide que presenta cada parte e como o valida a outra.

Os fallos prodúcense en lugares distintos. Un fallo de intercambio detén a negociación antes de que exista ningún túnel. Un fallo da CHILD SA ocorre despois de que a autenticación teña éxito, ás veces só nunha renovación de claves. Un fallo de autenticación pode parecer un fallo de intercambio nos rexistros se só se le o primeiro erro.

Separar as filas non é contabilidade. Cambia que axuste paga a pena cambiar e evita o movemento máis caro de todo este ámbito, que é rexenerar certificados que funcionan para arranxar unha discrepancia de proposta. Que unha fila cambie nunca debería obrigar ás outras dúas a cambiar con ela. Esa independencia é todo o sentido de escribilas por separado.

Que controlan os dous campos de Windows

Windows mantén dous campos separados: DHGroup configura o propio intercambio IKE, mentres que PfsGroup configura a política IPsec que protexe o tráfico do túnel. Pertencen a fases distintas. Comparar un campo IKE de Windows cun valor de fase 2 de FortiGate proba a parella equivocada, e os números poden coincidir mentres o intercambio subxacente segue fallando.

Get-VpnConnection -Name "Corp-IKEv2"
Get-NetIPsecMainModeSA
Get-NetIPsecQuickModeSA

O segundo e o terceiro comando informan das asociacións de seguridade que existen realmente, que é o máis parecido a unha resposta que un cliente pode darlle. Unha asociación de modo principal sen unha asociación de modo rápido é un problema da CHILD SA, e é a sinatura dunha discrepancia de fase 2 máis que dun problema de certificado.

Anote que se ofreceu e que se seleccionou nun intento. Unha lista ofrecida que contén unha proposta aceptable e unha proposta seleccionada que non coincide coa política da pasarela é un desacordo de configuración, non un misterio de interoperabilidade.

Agreement rowWhere it is configured in WindowsWhat it does not decide
IKE key exchangeDHGroup on the VPN connection IPsec settingsThe protection used for tunneled traffic
CHILD SA protectionPfsGroup in the same policy objectWhich certificate the peer presents
Peer authenticationMachine or user certificate, or a supported EAP methodAny group number used for key exchange
Certificate validationTrusted CA store on the validating sideThe private key of the certificate being presented

Un grupo de curva elíptica non escolle a súa clave de sinatura

A inferencia errónea máis persistente neste ámbito é que escoller un grupo DH de curva elíptica require un certificado de curva elíptica. Un grupo DH proporciona material para o intercambio de claves; o algoritmo de sinatura négócao o marco de autenticación, e son dúas decisións separadas en IKEv2.

RFC 7427 existe precisamente porque esas decisións antes estaban entrelazadas, e define como se anuncian e se escollen os algoritmos de sinatura con independencia do intercambio de claves. Unha pasarela pode admitir á vez un grupo de curva e unha selección de esquemas de sinatura.

Así que cando unha negociación falla tras un cambio de grupo, mire o método de autenticación antes de mirar o tipo de clave do certificado. Cambiar un certificado é unha operación lenta e arriscada que raramente é a resposta, e facelo primeiro destrúe a súa capacidade de saber que cambio axudou de verdade. Lea a fila de autenticación antes de tocar o almacén de certificados.

Manteña os dous en filas separadas da folla de acordo e o erro deixará de ser tentador. Unha fila enumera grupos, a outra enumera esquemas de sinatura e identidades, e ningunha é evidencia sobre a outra.

Pon cada clave privada co seu propietario real

Unha pasarela que presenta o seu propio certificado necesita a clave privada que lle corresponde. Un par que valida unha cadea necesita o certificado da CA e, en concreto, non necesita a clave de sinatura da CA. Confundir eses tres artefactos é como a xente acaba importando unha clave privada de CA nun dispositivo VPN para facer que un certificado apareza noutra categoría.

En FortiOS os papeis son distintos: un certificado local coa súa clave, un certificado remoto usado para identificar un par e unha entrada de CA remota que establece confianza nos certificados que esa CA asinou. Unha entrada de CA remota sen clave privada non está incompleta; é correcta para o seu propósito.

As claves de sinatura de CA importadas amplían a autoridade de calquera que poida ler ese dispositivo. Tampouco resolven a validación ordinaria do par, porque a validación necesita o certificado público e a decisión de confianza, non a capacidade de emitir certificados novos.

Manteña a clave de sinatura da CA co proceso do propio emisor e anote que dispositivo ten que clave. Unha táboa curta de propietarios vale máis que unha táboa máis longa de algoritmos cando unha auditoría pregunta quen podería suplantar a quen. Ninguén importa unha clave que sabe que é só de inventario. Escriba o inventario antes do incidente, non despois.

Artigos relacionados