Résolution des problèmes de rotation de la clé de chiffrement : CVE-2024-34102

Cet article est destiné à aider les marchands à résoudre les problèmes de rotation de clé de chiffrement après qu’ils ont déjà suivi les étapes décrites dans cet article sur CVE-2024-34102.

Si vous avez déjà suivi les étapes de l’article ci-dessus et que vous rencontrez des problèmes lors de la rotation de vos clés de chiffrement, nous disposons d’un correctif isolé pour résoudre les problèmes potentiels.

Pour illustrer les étapes qui ont été précédemment communiquées et résumées ci-dessus, afin de protéger contre CVE-2024-34102, ainsi que la résolution de problèmes supplémentaire trouvée ci-dessous, vous pouvez également utiliser ce graphique de flux :

Graphique de flux de protection CVE-2024-34102.jpg {modal="regular"}

Comment appliquer le patch isolé pour exécuter la nouvelle commande

Décompressez le fichier et reportez-vous à la section Comment appliquer un correctif de compositeur fourni par Adobe dans notre base de connaissances de support pour obtenir des instructions.

Ajout d’une nouvelle clé de chiffrement sans utiliser de variables d’environnement

Le comportement par défaut de l’application consiste à stocker la clé de chiffrement dans le fichier app/etc/env.php.

Les étapes décrites dans la documentation décrivent comment modifier cette clé dans ce fichier à l’aide de l’interface Admin.

Les étapes et le correctif isolé fournis dans cette section vous permettent de modifier facilement la valeur de ce fichier et de contourner les problèmes que vous pouvez rencontrer via l’interface Admin.

Cependant, la méthode la plus simple et la plus sûre pour gérer la clé de chiffrement consiste à utiliser des variables d’environnement. Si vous utilisez déjà des variables d’environnement ou si vous souhaitez les utiliser pour gérer cette clé à la place, une section distincte décrit ces étapes.

Produits et versions concernés

Adobe Commerce on Cloud, Adobe Commerce on-premise et Magento Open Source :

  • 2.4.7-p1 et versions antérieures
  • 2.4.6-p6 et versions antérieures
  • 2.4.5-p8 et versions antérieures
  • 2.4.4-p9 et versions antérieures

Correctif isolé pour le dépannage des détails de rotation de la clé de chiffrement

Utilisez les correctifs ci-joint suivants, en fonction de votre version d’Adobe Commerce/de Magento Open Source :

Pour la version 2.4.7, 2.4.7-p1 :

Pour les versions 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-p5, 2.4.6-p6 :

Pour les versions 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 :

Pour les versions 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 :

Pour les versions 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 :

Après avoir installé le correctif isolé, modifiez la clé de chiffrement active à l’aide de la nouvelle commande CLI.

NOTE
Cette nouvelle commande CLI déclenchera un nettoyage du cache lors de l'exécution.
  1. Cette nouvelle commande doit être exécutée sur l’environnement qui contient votre fichier app/etc/env.php pour la clé que vous souhaitez mettre à jour.

  2. Vérifiez que la nouvelle commande existe :

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

    Vous devriez voir la sortie suivante :

    code language-none
    encryption:key:change Change the encryption key inside the env.php file.
    
  3. Modifiez la clé de chiffrement :

    code language-none
    bin/magento encryption:key:change
    
  4. Si vous avez exécuté cette commande sur votre système de production, aucune autre action ne doit être requise.
    Si vous l’avez exécuté sur un système de développement, vous devez intégrer cette modification dans votre système de production, car vous déployez normalement des paramètres de configuration sensibles.

Mettez à jour la clé de chiffrement à l’aide de variables environnementales au lieu d’utiliser le correctif isolé.

Au lieu de la section ci-dessus, ces étapes vous permettront d’ajouter une nouvelle clé de chiffrement tout en préservant vos données cryptées existantes, même si vous utilisez actuellement le app/etc/env.php par défaut.
Cette section s’applique à Adobe Commerce on Cloud et Cloud Starter, mais s’applique également à Adobe Commerce sur site, bien que les étapes et emplacements exacts des variables dépendent de votre infrastructure.

Collecter la valeur actuelle

  • Si vous gérez déjà vos clés avec des variables d’environnement, elles se trouvent peut-être à plusieurs emplacements possibles, mais probablement dans la variable CRYPT_KEY comme décrit dans la documentation.
  • Si vous n’utilisez pas de variables, la clé de chiffrement se trouve dans app/etc/env.php dans la clé de données crypt/key.

Dans les deux cas, il peut s’agir d’une valeur multiligne qui contient plusieurs lignes aléatoires de données.

Générer une nouvelle valeur pour les versions 2.4.7x

Les clés de chiffrement sont constituées de 32 octets de données aléatoires, codées avec base64 et affectées du préfixe base64.
Pour générer une nouvelle clé :

  1. À l’aide de l’outil de votre choix, générez 32 octets aléatoires de données codées avec base64. Par exemple, en utilisant le OpenSSL CLI, vous pouvez exécuter openssl rand -base64 32, mais tout outil de génération aléatoire sur le plan cryptographique fiable peut être utilisé.

  2. Ajoutez un préfixe à cette valeur base64. Par exemple, si la commande openssl sortait ABC123, la valeur deviendrait : base64ABC123

  3. Ajoutez la valeur générée à la valeur existante que vous avez collectée ci-dessus. Par exemple, si votre valeur existante est base64HelloWorld, votre nouvelle valeur deviendra :

    code language-none
    base64HelloWorld
    base64ABC123
    

Générer une nouvelle valeur pour les versions 2.4.6x et antérieures

Les clés de chiffrement des versions 2.4.6x et antérieures sont de 16 octets de données aléatoires dans un format codé en hex.
Pour générer une nouvelle clé :

  1. À l’aide de l’outil de votre choix, générez 16 octets de données aléatoires. Par exemple, en utilisant le OpenSSL CLI, vous pouvez exécuter openssl rand -hex 16, mais tout outil de génération aléatoire sur le plan cryptographique fiable peut être utilisé.

  2. Ajoutez la valeur générée à la valeur existante que vous avez collectée ci-dessus. Par exemple, si votre valeur existante est abc123 et que votre valeur aléatoire de l’étape précédente est 456def, votre nouvelle valeur deviendra :

    code language-none
    abc123
    456def
    

Ajouter une nouvelle variable d’environnement

Utilisez Cloud Console ou magento-cloud CLI pour définir la env:MAGENTO_DC_CRYPT__KEY variable d'environnement sur cette nouvelle valeur.

NOTE
Notez que si vous choisissez de marquer la variable comme sensible, vous pouvez enregistrer une sauvegarde externe de cette valeur, car elle sera masquée de toutes les interfaces et visible uniquement par l’application.

Lors de l’enregistrement de la variable, un redéploiement est déclenché automatiquement, ce qui entraîne l’application de la valeur.

Mises à jour de sécurité

Mises à jour de sécurité connexes disponibles pour Adobe Commerce :

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