Découvrez comment appliquer des patches à OpenSSL afin de pouvoir encapsuler des éléments de clé à l'aide de RSA_OAEP_AES_SHA256
.
Le cryptage 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. Appliquez un patch à OpenSSL pour activer l'encapsulation d'enveloppe requise pour le mécanisme CKM_RSA_AES_KEY_WRAP
.
Remarque
Pour le scénario "Bring your own key (BYOK)" (Apportez votre propre clé (BYOK))", vous devez appliquer un patch à OpenSSL pour le renvoi à la ligne RSA_OAEP_AES_SHA256.
Pour télécharger, compiler et exécuter une nouvelle copie locale de OpenSSL v1.1.1d à l'aide de la CLI, procédez comme suit sans modifier l'installation par défaut de OpenSSL dans le système :
-
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
-
Exécutez la commande suivante et notez la version OpenSSL :
-
Notez la dernière version de OpenSSL à l'adresse https://www.openssl.org/source/.
-
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
-
Installez le patch, appliquez les outils gcc pour appliquer des patches, puis compilez les fichiers binaires.
sudo yum install patch make gcc -y
-
Exécutez les commandes suivantes :
Remarque
Vous devrez peut-être mettre à jour ces commandes pour les versions plus récentes 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
Vérifiez que l'application de patches a réussi 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
-
Compilez le fichier
enc.c
.
Remarque
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 dans le 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.
-
Créez un script nommé
openssl.sh
qui charge le chemin $HOME/local/ssl/lib/
avant d'exécuter le fichier binaire. Il est ainsi plus facile d'exécuter OpenSSL plusieurs fois.
cd $HOME/local/bin/
echo -e '#!/bin/bash \nenv LD_LIBRARY_PATH=$HOME/local/lib/ $HOME/local/bin/openssl "$@"' > ./openssl.sh
-
Définissez le bit d'exécution sur le script.
-
Démarrez OpenSSL avec la commande suivante :
$HOME/local/bin/openssl.sh