Configurazione di OpenSSL per il materiale chiave a capo

Informazioni su come applicare la patch a OpenSSL in modo da poter eseguire il wrapping del materiale chiave utilizzando RSA_OAEP_AES_SHA256 .

La cifra OpenSSL -id-aes256-wrap-pad compatibile con RSA_AES_KEY_WRAP non è abilitata per impostazione predefinita nell'interfaccia CLI OCI. Applicare la patch OpenSSL per abilitare il wrapping dell'envelope necessario per il meccanismo CKM_RSA_AES_KEY_WRAP.

Nota

Per lo scenario "Bring your own key (BYOK)" è necessario applicare le patch a OpenSSL per il wrapping RSA_OAEP_AES_SHA256.

Eseguire i passi riportati di seguito per scaricare, compilare ed eseguire una nuova copia locale di OpenSSL v1.1.1d utilizzando l'interfaccia CLI, senza modificare l'installazione predefinita di OpenSSL nel sistema.

  1. Creare directory in cui memorizzare i file binari OpenSSL più recenti in /root/build.
    mkdir $HOME/build
    mkdir -p $HOME/local/ssl
    cd $HOME/build
  2. Eseguire il comando seguente e prendere nota della versione OpenSSL:
    openssl version
  3. Prendere nota della versione più recente di OpenSSL all'indirizzo https://www.openssl.org/source/.
  4. Scaricare e decomprimere le librerie.
    Sostituire openssl-1.1.1d.tar.gz con la versione più recente del passo 3.
    curl -O https://www.openssl.org/source/openssl-1.1.1d.tar.gz
    tar -zxf openssl-1.1.1d.tar.gz
  5. Installare la patch, creare gli strumenti gcc di cui applicare le patch, quindi compilare i file binari.
    sudo yum install patch make gcc -y
  6. Eseguire i comandi seguenti:
    Nota

    Potrebbe essere necessario aggiornare questi comandi per le versioni più recenti di 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
    Confermare la corretta applicazione delle patch se la risposta è simile alla seguente:
    [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. Compilare il file enc.c.
    Nota

    La compilazione può richiedere alcuni minuti per ciascun comando.
    cd $HOME/build/openssl-1.1.1d/
    ./config --prefix=$HOME/local --openssldir=$HOME/local/ssl
    make -j$(grep -c ^processor /proc/cpuinfo)
    make install
    Installazione della versione più recente di OpenSSL riuscita. Questa versione è collegata dinamicamente alle librerie nella directory $HOME/local/ssl/lib/ e non può essere eseguita direttamente. Impostare la variabile di ambiente LD_LIBRARY_PATH per accertarsi che le librerie associate siano disponibili per OpenSSL.
  8. Creare uno script denominato openssl.sh che carichi il percorso $HOME/local/ssl/lib/ prima di eseguire il file binario. Ciò semplifica l'esecuzione di OpenSSL più volte.
    cd $HOME/local/bin/
    
    echo -e '#!/bin/bash \nenv LD_LIBRARY_PATH=$HOME/local/lib/ $HOME/local/bin/openssl "$@"' > ./openssl.sh
  9. Impostare il bit di esecuzione sullo script.
    chmod 755 ./openssl.sh
  10. Avviare OpenSSL con il comando seguente:
    $HOME/local/bin/openssl.sh