Risoluzione dei problemi relativi alla rotazione delle chiavi di crittografia: CVE-2024-34102

Questo articolo ha lo scopo di aiutare gli esercenti a risolvere i problemi relativi alla rotazione delle chiavi di crittografia dopo aver già eseguito i passaggi descritti in questo articolo su CVE-2024-34102.

Se hai già seguito i passaggi descritti nell’articolo precedente e riscontri problemi durante la rotazione delle chiavi di crittografia, disponiamo di una patch isolata per risolvere potenziali problemi.

Per illustrare i passaggi precedentemente comunicati e riepilogati in precedenza, per la protezione da CVE-2024-34102, nonché le ulteriori procedure di risoluzione dei problemi riportate di seguito, è inoltre possibile utilizzare questo diagramma di flusso:

Grafico flusso di protezione CVE-2024-34102.jpg {modal="regular"}

Come applicare la patch isolata per eseguire il nuovo comando

Decomprimi il file e vedi Come applicare una patch del compositore fornita dall'Adobe nella Knowledge Base di supporto per le istruzioni.

Aggiunta di una nuova chiave di crittografia senza utilizzare le variabili di ambiente

Il comportamento predefinito dell'applicazione consiste nell'archiviare la chiave di crittografia nel file app/etc/env.php.

I passaggi descritti nella documentazione descrivono come modificare questa chiave all'interno di tale file utilizzando l'interfaccia Admin.

I passaggi e la patch isolata forniti in questa sezione consentono di modificare facilmente il valore del file e di risolvere i problemi che potrebbero verificarsi tramite l'interfaccia Admin.

Tuttavia, il modo più semplice e sicuro per gestire la chiave di crittografia consiste nell’utilizzare le variabili di ambiente. Se utilizzi già variabili di ambiente o sei interessato a utilizzarle per gestire questa chiave, è disponibile una sezione separata che descrive tali passaggi.

Prodotti e versioni interessati

Adobe Commerce su Cloud, Adobe Commerce on-premise e Magento Open Source:

  • 2.4.7-p1 e versioni precedenti
  • 2.4.6-p6 e versioni precedenti
  • 2.4.5-p8 e versioni precedenti
  • 2.4.4-p9 e versioni precedenti

Patch isolata per la risoluzione dei problemi relativi alla rotazione della chiave di crittografia

Utilizza le seguenti patch allegate, a seconda della versione di Adobe Commerce/Magento Open Source in uso:

Per le versioni 2.4.7, 2.4.7-p1:

Per le versioni 2.4.6, 2.4.6-p1, 2.4.6-p2, 2.4.6-p3, 2.4.6-p4, 2.4.6-p5, 2.4.6-p6:

Per le versioni 2.4.5, 2.4.5-p1, 2.4.5-p2, 2.4.5-p3, 2.4.5-p4, 2.4.5-p5, 2.4.5-p6, 2.4.5-p7, 2.4.5-p8:

Per le versioni 2.4.4, 2.4.4-p1, 2.4.4-p2, 2.4.4-p3, 2.4.4-p4, 2.4.4-p5, 2.4.4-p6, 2.4.4-p7, 2.4.4-p8, 2.4.4-p9:

Dopo aver installato la patch isolata, modificare la chiave di crittografia attiva con il nuovo comando CLI.

NOTE
Questo nuovo comando CLI attiverà una pulitura della cache al momento dell'esecuzione.
  1. Questo nuovo comando deve essere eseguito nell'ambiente che contiene il file app/etc/env.php per la chiave da aggiornare.

  2. Conferma l’esistenza del nuovo comando:

    code language-none
    bin/magento list | grep encryption:key:change
    

    Dovresti visualizzare il seguente output:

    code language-none
    encryption:key:change Change the encryption key inside the env.php file.
    
  3. Modificare la chiave di crittografia:

    code language-none
    bin/magento encryption:key:change
    
  4. Se hai eseguito questo comando sul sistema di produzione, non è necessario eseguire ulteriori azioni.
    Se hai eseguito questa operazione su un sistema di sviluppo, devi inserire la modifica nel sistema di produzione, come faresti normalmente con le impostazioni di configurazione riservate.

Aggiorna la chiave di crittografia utilizzando le variabili di ambiente anziché la patch isolata

In alternativa alla sezione precedente, questi passaggi consentiranno di aggiungere una nuova chiave di crittografia mantenendo i dati crittografati esistenti, anche se si sta utilizzando app/etc/env.php predefinito.
Questa sezione si applica ad Adobe Commerce su Cloud e Cloud Starter, ma anche ad Adobe Commerce on-premise, anche se i passaggi e le posizioni esatti delle variabili dipenderanno dall'infrastruttura.

Raccogli il valore corrente

  • Se si stanno già gestendo le chiavi con le variabili di ambiente, è possibile che si trovino in diverse posizioni possibili, ma è probabile che si trovino nella variabile CRYPT_KEY come descritto nella documentazione.
  • Se non si utilizzano le variabili, la chiave di crittografia sarà in app/etc/env.php all'interno della chiave dati crypt/key.

In entrambi i casi, può essere un valore su più righe e contenere più righe casuali di dati.

Genera un nuovo valore per le versioni 2.4.7x

Le chiavi di crittografia sono 32 byte di dati casuali codificati con base64 e con prefisso base64.
Per generare una nuova chiave:

  1. Con lo strumento desiderato, genera 32 byte casuali di dati codificati con base64. Ad esempio, utilizzando OpenSSL CLI, è possibile eseguire openssl rand -base64 32, ma è possibile utilizzare qualsiasi strumento di generazione casuale crittografato attendibile.

  2. Aggiungi al valore il prefisso base64. Ad esempio, se il comando openssl genera ABC123, il valore diventa: base64ABC123

  3. Aggiungi il valore generato al valore esistente raccolto in precedenza. Ad esempio, se il valore esistente è base64HelloWorld, il nuovo valore diventerà:

    code language-none
    base64HelloWorld
    base64ABC123
    

Genera un nuovo valore per 2.4.6x e versioni precedenti

Le chiavi di crittografia della versione 2.4.6x e delle versioni precedenti sono 16 byte di dati casuali in un formato con codifica hex.
Per generare una nuova chiave:

  1. Utilizzando lo strumento desiderato, genera 16 byte casuali di dati. Ad esempio, utilizzando OpenSSL CLI, è possibile eseguire openssl rand -hex 16, ma è possibile utilizzare qualsiasi strumento di generazione casuale crittografato attendibile.

  2. Aggiungi il valore generato al valore esistente raccolto in precedenza. Ad esempio, se il valore esistente è abc123 e il valore casuale del passaggio precedente è 456def, il nuovo valore diventerà:

    code language-none
    abc123
    456def
    

Aggiungi una nuova variabile di ambiente

Utilizzare Cloud Console o magento-cloud CLI per impostare la env:MAGENTO_DC_CRYPT__KEY variabile di ambiente su questo nuovo valore.

NOTE
Se scegli di contrassegnare la variabile come sensibile, puoi salvare un backup esterno di questo valore, poiché sarà nascosto da tutte le interfacce e visibile solo all'applicazione.

Al momento del salvataggio della variabile, viene attivata automaticamente una ridistribuzione che determinerà l’applicazione del valore.

Aggiornamenti di sicurezza

Aggiornamenti di sicurezza correlati disponibili per Adobe Commerce:

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a