Aggiornamento a più algoritmi IKE e IPsec

VPN for VPC consente di configurare più algoritmi per le politiche IKE e IPsec. L'uso di più algoritmi può migliorare la compatibilità, la flessibilità e la sicurezza.

Seguire le istruzioni riportate di seguito per passare dalle proprietà degli algoritmi singole, ormai obsolete, a proprietà multiple degli algoritmi.

Prima di iniziare

Prima di aggiornare le politiche relative alla VPN, si prega di prendere visione delle seguenti informazioni.

Proprietà dell'algoritmo singolare deprecate

A partire dal 29 maggio 2026, le proprietà degli algoritmi singolari VPN IKE e IPsec sono deprecate. Le connessioni VPN esistenti configurate con proprietà specifiche continuano a funzionare senza modifiche. Si raccomanda tuttavia di passare alle proprietà dell'algoritmo basate su array il prima possibile.

Proprietà degli algoritmi singolari e basati su array per le politiche IKE
Proprietà singolare IKE (deprecata) IKE con più proprietà (consigliato)
authentication_algorithm authentication_algorithms
encryption_algorithm encryption_algorithms
dh_group dh_groups
Proprietà degli algoritmi singolari e basati su array per i criteri IPsec
Proprietà singolare IPsec (deprecata) Proprietà multipla IPsec (consigliata)
authentication_algorithm authentication_algorithms
encryption_algorithm encryption_algorithms
pfs pfs_groups

Utilizza più algoritmi quando il tuo ambiente VPN richiede la compatibilità con peer che supportano algoritmi crittografici diversi oppure quando desideri dare priorità a una crittografia più forte, pur mantenendo la retrocompatibilità.

Considerazioni importanti

  • Le connessioni VPN che utilizzano criteri IKE o IPsec personalizzati con proprietà algoritmiche singolari obsolete potrebbero presentare errori di negoziazione o problemi di interoperabilità.
  • È possibile creare nuove politiche IKE e IPsec solo utilizzando proprietà algoritmiche basate su array.
  • Quando si aggiorna un criterio IKE o IPsec esistente, è possibile che il tunnel VPN venga temporaneamente disconnesso mentre la connessione viene ristabilita.
  • Se le procedure di disaster recovery, l'automazione, gli script, le integrazioni API o i flussi di lavoro CLI fanno riferimento a proprietà singolari deprecate, aggiornarli di conseguenza.
  • Rivedere le politiche IKE e IPsec correnti per identificare gli algoritmi in uso.
  • Verificare che il gateway VPN peer supporti gli algoritmi che si intende configurare su IBM Cloud.
  • Configurare gli algoritmi di corrispondenza sul gateway VPN peer per la negoziazione IKE e IPsec prima di aggiornare il gateway IBM Cloud VPN.
  • Pianificate gli aggiornamenti dei criteri durante una finestra di manutenzione per ridurre al minimo le interruzioni del servizio.

Comprendere il comportamento degli aggiornamenti nell'API

L'API sincronizza automaticamente le proprietà degli algoritmi singolari e basati su array. Prima di aggiornare le vostre politiche, esaminate i comportamenti e le restrizioni seguenti.

Compatibilità della versione IKE
Le proprietà degli algoritmi basati su array sono supportate solo con IKEv2. Se si utilizza IKEv1, è necessario configurare un unico algoritmo per ciascuna categoria utilizzando proprietà singolari.
  • Utilizzare IKEv2 con le proprietà basate su array:
{
   "ike_version": 2,
   "authentication_algorithms": ["sha512", "sha256"],
   "encryption_algorithms": ["aes256", "aes128"]
}
  • Utilizza " IKEv1 " con le proprietà al singolare:
{
   "ike_version": 1,
   "authentication_algorithm": "sha256",
   "encryption_algorithm": "aes128"
}

IKEv1 supporta solo un algoritmo per categoria. Le connessioni VPN che utilizzano IKEv1 non supportano le proprietà degli algoritmi IKE o IPsec basati su array. Utilizzate IKEv2 quando possibile.

Sincronizzazione automatica
Quando si aggiornano le proprietà basate su array (authentication_algorithms, encryption_algorithms, dh_groups, pfs_groups), le proprietà singolari corrispondenti (authentication_algorithm, encryption_algorithm, dh_group, pfs) vengono aggiornate automaticamente. Allo stesso modo, l'aggiornamento delle proprietà singolari aggiorna automaticamente le relative proprietà basate su array. Per esempi, si veda:
Indicatori di sola lettura
Quando sono configurati più algoritmi, le proprietà singolari (authentication_algorithm, encryption_algorithm) restituiscono valori indicatori di sola lettura nelle risposte dell'API. Ad esempio:
  • authentication_algorithm Restituisce "multiple"
  • encryption_algorithm Restituisce "multiple"
  • dh_group Restituisce 65535

Questi valori vengono restituiti solo nelle risposte e non possono essere inviati in una richiesta a PATCH.

{
   "authentication_algorithms": ["sha256", "sha384", "sha512"],
   "authentication_algorithm": "multiple",
   "dh_groups": [14, 15, 16],
   "dh_group": 65535,
   "encryption_algorithms": ["aes128", "aes256"],
   "encryption_algorithm": "multiple"
}

Se in una proprietà basata su array è configurato un solo algoritmo, la proprietà singolare restituisce il valore configurato anziché "multiple".

{
   "authentication_algorithms": ["sha256"],
   "authentication_algorithm": "sha256",
   "dh_groups": [14],
   "dh_group": 14,
   "encryption_algorithms": ["aes128"],
   "encryption_algorithm": "aes128"
}
Restrizione alla miscelazione di proprietà
Non mischiare proprietà singolari e basate su array per la stessa categoria di algoritmi in una singola richiesta. Scegliete un approccio per ogni richiesta.
  • Esempio corretto: Questo esempio include le proprietà dell'algoritmo per IKE, dove vengono utilizzate solo proprietà basate su array per tutte le categorie:
curl -X PATCH "$vpc_api_endpoint/v1/ike_policies/$ike_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["sha256", "sha384", "sha512"],
     "dh_groups": [14, 15, 16],
     "encryption_algorithms": ["aes128", "aes256"]
   }'
  • Esempio errato: Questo esempio include le proprietà dell'algoritmo per IKE, in cui sia le proprietà singolari che quelle basate su array sono mescolate per la stessa categoria:
curl -X PATCH "$vpc_api_endpoint/v1/ike_policies/$ike_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithm": "sha512",
     "authentication_algorithms": ["sha256", "sha384", "sha512"],
     "dh_groups": [14, 15, 16],
     "encryption_algorithms": ["aes128", "aes256"]
   }'
GCM requisiti e restrizioni dell'algoritmo
Se la proprietà encryption_algorithms contiene algoritmi basati su GCM (aes128gcm16, aes192gcm16, o aes256gcm16), la proprietà authentication_algorithms deve essere impostata su ["disabled"].
  • Esempio corretto: mostra le proprietà dell'algoritmo IPsec quando l'array encryption_algorithms include algoritmi basati su GCM:
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["disabled"],
     "encryption_algorithms": ["aes256gcm16", "aes192gcm16"],
     "pfs_groups": ["group_14", "group_15", "group_16"]
   }'
  • Esempio errato: mostra le proprietà dell'algoritmo per IPsec in cui l'array encryption_algorithms include algoritmi basati su GCM:
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["sha256"],
     "encryption_algorithms": ["aes256gcm16", "aes192gcm16"],
     "pfs_groups": ["group_14", "group_15", "group_16"]
   }'

GCM Gli algoritmi di crittografia e autenticazione incorporati fanno parte di un'unica operazione. Non configurare algoritmi di autenticazione separati come sha256 o sha512 con algoritmi di crittografia GCM.

Non mescolare algoritmi di crittografia GCM e non GCM nella stessa politica. La loro combinazione può causare conflitti di configurazione e errori di negoziazione.

: Quando l'opzione " authentication_algorithms " è impostata su " ["disabled"]", è necessario aggiornare anche l'opzione " authentication_algorithms " quando si passa da algoritmi di crittografia " GCM " a algoritmi non " GCM ".

  • Esempio corretto: Aggiorna entrambe le proprietà encryption_algorithms e authentication_algorithms:
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["sha512", "sha256"],
     "encryption_algorithms": ["aes256", "aes128"],
     "pfs_groups": ["group_14", "group_15", "group_16"]
   }'
  • Esempio errato: Mostra un caso in cui solo la proprietà encryption_algorithms viene aggiornata con algoritmi non GCM (aes128, aes192, aes256):
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["disabled"],
     "encryption_algorithms": ["aes256", "aes128"],
     "pfs_groups": ["group_14", "group_15", "group_16"]
   }'
Regole di validazione dell'algoritmo
Assicurarsi che tutti i valori dell'algoritmo nella richiesta siano validi, unici e non vuoti. Utilizzare solo nomi di algoritmi supportati, evitare i duplicati e fornire almeno un valore in ogni array. Le voci non valide, duplicate o vuote possono causare un errore di convalida.
  • Esempio corretto: Aggiorna i valori degli algoritmi, dove gli algoritmi e i valori supportati sono utilizzati per tutte le categorie:
{
   "authentication_algorithms": ["sha512", "sha256"],
   "dh_groups": [14, 15],
   "encryption_algorithms": ["aes256", "aes192", "aes128"]
}
  • Esempio errato: Aggiorna i valori dell'algoritmo, dove vengono utilizzati valori duplicati nella stessa categoria di algoritmo:
{
   "authentication_algorithms": ["sha512", "sha256"],
   "dh_groups": [14, 15],
   "encryption_algorithms": ["aes256", "aes256", "aes128"]
}

Aggiornamento dei criteri IKE con l'API

Segui questi passaggi per aggiornare le tue politiche IKE passando da un algoritmo singolo a uno multiplo.

Prima di iniziare, assicurarsi di configurare l 'ambiente API.

Per aggiornare un criterio IKE con l'API, procedere come segue:

  1. Memorizzare l'ID del criterio IKE in una variabile, ad esempio:

    export ike_policy_id=<your_ike_policy_id>
    

    Per trovare l'ID del criterio IKE, utilizzare il comando list IKE policies.

  2. Aggiornare il criterio IKE per utilizzare più algoritmi. Sostituire le proprietà singolari con le corrispondenti proprietà basate su array.

    authentication_algorithms- Gamma di algoritmi di autenticazione. Opzioni: sha256, sha384, sha512.

    dh_groups- Array di gruppi Diffie-Hellman. Opzioni: 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 31.

    encryption_algorithms- Gamma di algoritmi di crittografia. Opzioni: aes128, aes192, aes256.

    curl -X PATCH "$vpc_api_endpoint/v1/ike_policies/$ike_policy_id?version=$api_version&generation=2" \
      -H "Authorization: $iam_token" \
      -d '{
        "authentication_algorithms": ["sha256", "sha384", "sha512"],
        "dh_groups": [14, 15, 16],
        "encryption_algorithms": ["aes128", "aes256"]
      }'
    

Esempi di aggiornamento dei criteri IKE

Quando si aggiornano le proprietà basate su array encryption_algorithms, authentication_algorithms e dh_groups nel criterio IKE, le corrispondenti proprietà singolari encryption_algorithm, authentication_algorithm e dh_group vengono aggiornate automaticamente. Allo stesso modo, quando si aggiorna una qualsiasi proprietà singolare, vengono aggiornate automaticamente anche le proprietà associate basate su array.

L'esempio seguente mostra come le richieste di PATCH influenzino sia le proprietà singolari che quelle degli array:

Esempio 1: algoritmi da singoli a multipli

  • Questo esempio mostra il comportamento del patching da algoritmi singoli a multipli. Lo stato attuale mostra la proprietà a valore singolo encryption_algorithm impostata su aes128, e la proprietà basata su array encryption_algorithms contenente solo aes128.

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "created_at": "2025-03-09T01:40:25.782663Z",
       "dh_group": 14,
       "dh_groups": [
          14
       ],
       "encryption_algorithm": "aes128",
       "encryption_algorithms": [
          "aes128"
       ],
       "id": "r006-e98f46a3-1e4e-4195-b4e5-b8155192689d",
       "ike_version": 2,
       "key_lifetime": 28800,
       "name": "my-ike-policy",
       "negotiation_mode": "main",
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ike_policy"
       }
    
  • Nella richiesta PATCH, la proprietà encryption_algorithms basata su array viene aggiornata in modo da specificare sia aes128 che aes256.

       {
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ]
       }
    
  • Una risposta corretta è simile all'esempio riportato di seguito. In questa risposta, la proprietà singolare encryption_algorithm restituisce un valore di sola lettura "multiple", indicando che sono ora configurati più algoritmi. Questo campo non può essere modificato direttamente tramite una richiesta PATCH. La proprietà basata su array encryption_algorithms è stata aggiornata per includere sia aes128 che aes256.

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "created_at": "2025-03-09T01:40:25.782663Z",
       "dh_group": 14,
       "dh_groups": [
          14
       ],
       "encryption_algorithm": "multiple",
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ],
       "id": "r006-e98f46a3-1e4e-4195-b4e5-b8155192689d",
       "ike_version": 2,
       "key_lifetime": 28800,
       "name": "my-ike-policy",
       "negotiation_mode": "main",
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ike_policy"
       }
    

Esempio 2: Algoritmi multipli in un unico algoritmo

  • Questo esempio mostra il comportamento del patching da più algoritmi a un singolo algoritmo. Lo stato attuale mostra la proprietà a valore singolo encryption_algorithm impostata su "multiple", e la proprietà basata su array encryption_algorithms contenente aes128 e aes256.

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "created_at": "2025-03-09T01:40:25.782663Z",
       "dh_group": 14,
       "dh_groups": [
          14
       ],
       "encryption_algorithm": "multiple",
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ],
       "id": "r006-e98f46a3-1e4e-4195-b4e5-b8155192689d",
       "ike_version": 2,
       "key_lifetime": 28800,
       "name": "my-ike-policy",
       "negotiation_mode": "main",
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ike_policy"
       }
    
  • Nella richiesta PATCH, la proprietà encryption_algorithms basata su array viene aggiornata in modo da specificare solo aes256.

       {
       "encryption_algorithms": [
          "aes256"
       ]
       }
    
  • Una risposta corretta è simile all'esempio riportato di seguito. In questa risposta, la proprietà a valore singolo encryption_algorithm viene automaticamente impostata su aes256, indicando che è configurato un solo algoritmo. La proprietà basata su array encryption_algorithms è stata aggiornata per includere aes256.

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "created_at": "2025-03-09T01:40:25.782663Z",
       "dh_group": 14,
       "dh_groups": [
          14
       ],
       "encryption_algorithm": "aes256",
       "encryption_algorithms": [
          "aes256"
       ],
       "id": "r006-e98f46a3-1e4e-4195-b4e5-b8155192689d",
       "ike_version": 2,
       "key_lifetime": 28800,
       "name": "my-ike-policy",
       "negotiation_mode": "main",
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ike_policy"
       }
    

Aggiornamento dei criteri IPsec con l'API

Seguire questi passaggi per aggiornare i criteri IPsec da proprietà di algoritmi singolari a proprietà di algoritmi basati su array.

Prima di iniziare, assicurarsi di configurare l 'ambiente API.

Per aggiornare un criterio IPsec con l'API, procedere come segue:

  1. Memorizzare l'ID del criterio IPsec in una variabile, ad esempio:

    export ipsec_policy_id=<your_ipsec_policy_id>
    

    Per trovare l'ID del criterio IPsec, utilizzare il comando list IPsec policies.

  2. Aggiornare il criterio IPsec per utilizzare più algoritmi. Sostituire le proprietà singolari con le corrispondenti proprietà basate su array.

    authentication_algorithms- Gamma di algoritmi di autenticazione. Opzioni: sha256, sha384, sha512, disabled.

    encryption_algorithms- Gamma di algoritmi di crittografia. Opzioni: aes128, aes192, aes256, aes128gcm16, aes192gcm16, aes256gcm16.

    pfs_groups- Schiera di gruppi di Perfect Forward Secrecy. Opzioni: disabled, group_14, group_15, group_16, group_17, group_18, group_19, group_20, group_21, group_22, group_23, group_24, group_31.

    curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
      -H "Authorization: $iam_token" \
      -d '{
        "authentication_algorithms": ["sha256", "sha384", "sha512"],
        "encryption_algorithms": ["aes128", "aes256"],
        "pfs_groups": ["group_14", "group_15", "group_16"]
      }'
    

Esempi di aggiornamento dei criteri IPsec

Quando si aggiornano le proprietà basate su array encryption_algorithms, authentication_algorithms e pfs_groups in un criterio IPsec, le corrispondenti proprietà a valore singolo encryption_algorithm, authentication_algorithm e pfs vengono aggiornate automaticamente. Allo stesso modo, quando si aggiorna una qualsiasi proprietà a valore singolo, vengono aggiornate automaticamente anche le proprietà basate su array associate.

L'esempio seguente mostra come le richieste di PATCH influenzino sia le proprietà singolari che quelle degli array:

Esempio 1: algoritmi da singoli a multipli

  • Questo esempio mostra il comportamento del patching da algoritmi singoli a multipli. Lo stato attuale mostra la proprietà a valore singolo encryption_algorithm impostata su aes128, e la proprietà basata su array encryption_algorithms contenente solo aes128.

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "connections": [],
       "created_at": "2025-03-09T01:46:00.785105Z",
       "encapsulation_mode": "tunnel",
       "encryption_algorithm": "aes128",
       "encryption_algorithms": [
          "aes128"
       ],
       "id": "r006-51eae621-dbbc-4c47-b623-b57a43c19876",
       "key_lifetime": 3600,
       "name": "my-ipsec-policy",
       "pfs": "group_14",
       "pfs_groups": [
          "group_14"
       ],
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ipsec_policy",
       "transform_protocol": "esp"
       }
    
  • Nella richiesta PATCH, la proprietà encryption_algorithms basata su array viene aggiornata in modo da specificare sia aes128 che aes256.

       {
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ]
       }
    
  • Una risposta corretta è simile all'esempio riportato di seguito. In questa risposta, la proprietà a valore singolo encryption_algorithm viene automaticamente impostata sul valore di sola lettura "multiple", a indicare che ora sono configurati più algoritmi. Questo campo non può essere modificato direttamente tramite una richiesta PATCH. La proprietà basata su array encryption_algorithms ora include sia aes128 che aes256.

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "connections": [],
       "created_at": "2025-03-09T01:46:00.785105Z",
       "encapsulation_mode": "tunnel",
       "encryption_algorithm": "multiple",
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ],
       "id": "r006-51eae621-dbbc-4c47-b623-b57a43c19876",
       "key_lifetime": 3600,
       "name": "my-ipsec-policy",
       "pfs": "group_14",
       "pfs_groups": [
          "group_14"
       ],
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ipsec_policy",
       "transform_protocol": "esp"
       }
    

Esempio 2: Algoritmi multipli in un unico algoritmo

  • Questo esempio mostra il comportamento del patching da più algoritmi a un singolo algoritmo. Lo stato attuale mostra la proprietà a valore singolo encryption_algorithm impostata su "multiple", e la proprietà basata su array encryption_algorithms contenente aes128 e aes256.

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "connections": [],
       "created_at": "2025-03-09T01:46:00.785105Z",
       "encapsulation_mode": "tunnel",
       "encryption_algorithm": "multiple",
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ],
       "id": "r006-51eae621-dbbc-4c47-b623-b57a43c19876",
       "key_lifetime": 3600,
       "name": "my-ipsec-policy",
       "pfs": "group_14",
       "pfs_groups": [
          "group_14"
       ],
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ipsec_policy",
       "transform_protocol": "esp"
       }
    
  • Nella richiesta PATCH, la proprietà encryption_algorithms basata su array viene aggiornata in modo da specificare solo aes256.

       {
       "encryption_algorithms": [
          "aes256"
       ]
       }
    
  • Una risposta corretta è simile all'esempio riportato di seguito. In questa risposta, la proprietà a valore singolo encryption_algorithm viene automaticamente impostata su aes256, indicando che è configurato un solo algoritmo. La proprietà basata su array encryption_algorithms è stata aggiornata per includere aes256.

        {
        "authentication_algorithm": "sha256",
        "authentication_algorithms": [
           "sha256"
        ],
        "connections": [],
        "created_at": "2025-03-09T01:46:00.785105Z",
        "encapsulation_mode": "tunnel",
        "encryption_algorithm": "aes256",
        "encryption_algorithms": [
           "aes256"
        ],
        "id": "r006-51eae621-dbbc-4c47-b623-b57a43c19876",
        "key_lifetime": 3600,
        "name": "my-ipsec-policy",
        "pfs": "group_14",
        "pfs_groups": [
           "group_14"
        ],
        "resource_group": {
           "id": "fee82deba12e4c0fb69c3b09d1f12345",
           "name": "Default"
        },
        "resource_type": "ipsec_policy",
        "transform_protocol": "esp"
        }