Konfigurieren von OpenSSL zum Umbrechen von Schlüsselmaterial

Erfahren Sie, wie Sie OpenSSL patchen, damit Sie Schlüsselmaterial mit RSA_OAEP_AES_SHA256 umbrechen können.

Die mit RSA_AES_KEY_WRAP kompatible OpenSSL -id-aes256-wrap-pad-Cipher ist in der OCI-CLI standardmäßig nicht aktiviert. Patchen Sie OpenSSL, um das Envelope-Wrapping zu aktivieren, das für das CKM_RSA_AES_KEY_WRAP-Verfahren erforderlich ist.

Hinweis

Für das Szenario "Bring your own key (BYOK)" müssen Sie OpenSSL für RSA_OAEP_AES_SHA256-Wrapping patchen.

Führen Sie die folgenden Schritte aus, um eine neue lokale Kopie von OpenSSL v1.1.1d mit der CLI herunterzuladen, zu kompilieren und auszuführen, ohne die Standardinstallation von OpenSSL im System zu ändern:

  1. Erstellen Sie Verzeichnisse, um die neuesten OpenSSL-Binärdateien in /root/build zu speichern.
    mkdir $HOME/build
    mkdir -p $HOME/local/ssl
    cd $HOME/build
  2. Führen Sie den folgenden Befehl aus, und notieren Sie sich die OpenSSL-Version:
    openssl version
  3. Beachten Sie die aktuelle OpenSSL-Version unter https://www.openssl.org/source/.
  4. Laden Sie die Bibliotheken herunter, und dekomprimieren Sie sie.
    Ersetzen Sie openssl-1.1.1d.tar.gz durch die neueste Version aus Schritt 3.
    curl -O https://www.openssl.org/source/openssl-1.1.1d.tar.gz
    tar -zxf openssl-1.1.1d.tar.gz
  5. Installieren Sie den Patch, erstellen Sie gcc-Tools zum Patchen, und kompilieren Sie dann die Binärdateien.
    sudo yum install patch make gcc -y
  6. Führen Sie die folgenden Befehle aus:
    Hinweis

    Möglicherweise müssen Sie diese Befehle für neuere Versionen von OpenSSL aktualisieren.
    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
    Bestätigen Sie das erfolgreiche Patching, wenn die Antwort etwa wie folgt lautet:
    [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. Kompilieren Sie die Datei enc.c.
    Hinweis

    Die Kompilierung kann einige Minuten für jeden Befehl dauern.
    cd $HOME/build/openssl-1.1.1d/
    ./config --prefix=$HOME/local --openssldir=$HOME/local/ssl
    make -j$(grep -c ^processor /proc/cpuinfo)
    make install
    Sie haben die neueste Version von OpenSSL erfolgreich installiert. Diese Version ist dynamisch mit Bibliotheken im Verzeichnis $HOME/local/ssl/lib/ verknüpft und kann nicht direkt ausgeführt werden. Legen Sie die Umgebungsvariable LD_LIBRARY_PATH fest, um sicherzustellen, dass die zugehörigen Librarys für OpenSSL verfügbar sind.
  8. Erstellen Sie ein Skript mit dem Namen openssl.sh, das den Pfad $HOME/local/ssl/lib/ lädt, bevor die Binärdatei ausgeführt wird. Dies erleichtert die mehrfache Ausführung von OpenSSL.
    cd $HOME/local/bin/
    
    echo -e '#!/bin/bash \nenv LD_LIBRARY_PATH=$HOME/local/lib/ $HOME/local/bin/openssl "$@"' > ./openssl.sh
  9. Legen Sie das Ausführungsbit für das Skript fest.
    chmod 755 ./openssl.sh
  10. Starten Sie OpenSSL mit dem folgenden Befehl:
    $HOME/local/bin/openssl.sh