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:
-
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
-
Führen Sie den folgenden Befehl aus, und notieren Sie sich die OpenSSL-Version:
-
Beachten Sie die aktuelle OpenSSL-Version unter https://www.openssl.org/source/.
-
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
-
Installieren Sie den Patch, erstellen Sie gcc-Tools zum Patchen, und kompilieren Sie dann die Binärdateien.
sudo yum install patch make gcc -y
-
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
-
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.
-
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
-
Legen Sie das Ausführungsbit für das Skript fest.
-
Starten Sie OpenSSL mit dem folgenden Befehl:
$HOME/local/bin/openssl.sh