Configuration de OpenSSL pour encapsuler les matières clés

Voyez comment appliquer des correctifs à OpenSSL afin de pouvoir encapsuler du matériel de clé à l'aide de RSA_OAEP_AES_SHA256.

Le chiffrement OpenSSL -id-aes256-wrap-pad compatible avec RSA_AES_KEY_WRAP n'est pas activé par défaut dans l'interface de ligne de commande OCI. Correctif OpenSSL pour activer l'encapsulation d'enveloppe requise pour le mécanisme CKM_RSA_AES_KEY_WRAP.

Note

Pour le scénario "Utiliser sa propre clé (BYOK)" vous devez appliquer un correctif à OpenSSL pour l'encapsulation RSA_OAEP_AES_SHA256.

Effectuez les étapes suivantes pour télécharger, compiler et exécuter une nouvelle copie locale de OpenSSL v1.1.1d à l'aide de l'interface de ligne de commande, sans modifier l'installation par défaut de OpenSSL dans le système :

  1. Créez des répertoires pour stocker les derniers binaires OpenSSL dans /root/build.
    mkdir $HOME/build
    mkdir -p $HOME/local/ssl
    cd $HOME/build
  2. Exécutez la commande suivante et notez la version OpenSSL :
    openssl version
  3. Notez la dernière version de OpenSSL à l'adresse https://www.openssl.org/source/.
  4. Téléchargez et décompressez les bibliothèques.
    Remplacez openssl-1.1.1d.tar.gz par la dernière version de l'étape 3.
    curl -O https://www.openssl.org/source/openssl-1.1.1d.tar.gz
    tar -zxf openssl-1.1.1d.tar.gz
  5. Installez le correctif, créez des outils gcc pour appliquer des correctifs, puis compilez les fichiers binaires.
    sudo yum install patch make gcc -y
  6. Exécutez les commandes suivantes :
    Note

    Vous devrez peut-être mettre à jour ces commandes pour les nouvelles versions de OpenSSL.
    cat <<-EOF | patch -d $HOME/build/ -p0
    diff -ur orig/openssl-1.1.1d/apps/enc.c openssl-1.1.1d/apps/enc.c
    --- orig/openssl-1.1.1d/apps/enc.c      
    +++ openssl-1.1.1d/apps/enc.c   
    @@ -533,6 +533,7 @@
              */
    
             BIO_get_cipher_ctx(benc, &ctx);
    +        EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPHER_CTX_FLAG_WRAP_ALLOW);
    
             if (!EVP_CipherInit_ex(ctx, cipher, NULL, NULL, NULL, enc)) {
                 BIO_printf(bio_err, "Error setting cipher %s\n",
    EOF
    Confirmez l'application de correctifs réussie si la réponse est similaire à la suivante :
    [root@ip-172-31-20-119 ~]# cat «-EOF | patch -d $HOME/build/ -p0 
    diff -ur orig/openssl-1.1.1d/apps/enc.c openssl-1.1.1d/apps/enc.c 
    --- orig/openssl-1.1.1d/apps/enc.c 
    +++ openssl-l.1.1d/apps/enc.c 
    @@ -533,6 +533,7 @@
            */
    
        BIO_get_cipher_ctx (benc, &ctx) ; 
    +        EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPHER_CTX_FLAG_WRAP_ALLOW) ; 
    
        if (!EVP_CipherInit_ex (ctx, cipher, NULL, NULL, NULL, enc) )  {
             BIO_printf (bio_err, "Error setting cipher %s\n" , 
    EOF 
    
    patching file openssl-1.1.1d/apps/enc.c
  7. Compilez le fichier enc.c.
    Note

    La compilation peut prendre plusieurs minutes pour chaque commande.
    cd $HOME/build/openssl-1.1.1d/
    ./config --prefix=$HOME/local --openssldir=$HOME/local/ssl
    make -j$(grep -c ^processor /proc/cpuinfo)
    make install
    Vous avez installé la dernière version de OpenSSL. Cette version est liée dynamiquement aux bibliothèques du répertoire $HOME/local/ssl/lib/ et ne peut pas être exécutée directement. Définissez la variable d'environnement LD_LIBRARY_PATH pour vous assurer que les bibliothèques associées sont disponibles pour OpenSSL.
  8. Créez un script nommé openssl.sh qui charge le chemin $HOME/local/ssl/lib/ avant d'exécuter le fichier binaire. Cela facilite l'exécution de OpenSSL plusieurs fois.
    cd $HOME/local/bin/
    
    echo -e '#!/bin/bash \nenv LD_LIBRARY_PATH=$HOME/local/lib/ $HOME/local/bin/openssl "$@"' > ./openssl.sh
  9. Définissez le bit d'exécution sur le script.
    chmod 755 ./openssl.sh
  10. Démarrez OpenSSL avec la commande suivante :
    $HOME/local/bin/openssl.sh