Saiba como aplicar patch a OpenSSL para que você possa encapsular o material da chave usando RSA_OAEP_AES_SHA256
.
A cifra OpenSSL -id-aes256-wrap-pad compatível com RSA_AES_KEY_WRAP
não é ativada por padrão na CLI do OCI. Aplique o patch OpenSSL para ativar a encapsulamento de envelope necessária para o mecanismo CKM_RSA_AES_KEY_WRAP
.
Observação
Para o cenário "Traga sua própria chave (BYOK)", você deve aplicar patch ao OpenSSL para encapsulamento RSA_OAEP_AES_SHA256.
Execute as seguintes etapas para fazer download, compilar e executar uma nova cópia local de OpenSSL v1.1.1d usando a CLI, sem alterar a instalação padrão de OpenSSL no sistema:
-
Crie diretórios para armazenar os binários OpenSSL mais recentes em
/root/build
.
mkdir $HOME/build
mkdir -p $HOME/local/ssl
cd $HOME/build
-
Execute o seguinte comando e anote a versão OpenSSL:
-
Observe a versão mais recente do OpenSSL em https://www.openssl.org/source/.
-
Faça download e descompacte as bibliotecas.
Substitua
openssl-1.1.1d.tar.gz pela versão mais recente da etapa
3.
curl -O https://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar -zxf openssl-1.1.1d.tar.gz
-
Instale o patch, faça as ferramentas gcc para aplicar patches e compile os binários.
sudo yum install patch make gcc -y
-
Execute estes seguintes comandos:
Observação
Talvez você precise atualizar esses comandos para versões mais recentes 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
Confirme a aplicação bem-sucedida de patches se a resposta for semelhante à seguinte:
[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
-
Compile o arquivo
enc.c
.
Observação
A compilação pode levar vários minutos para cada 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
Você instalou com sucesso a versão mais recente do OpenSSL. Essa versão é vinculada dinamicamente a bibliotecas no diretório $HOME/local/ssl/lib/
e não pode ser executada diretamente. Defina a variável de ambiente LD_LIBRARY_PATH
para garantir que as bibliotecas associadas estejam disponíveis para OpenSSL.
-
Crie um script chamado
openssl.sh
que carregue o caminho $HOME/local/ssl/lib/
antes de executar o binário. Isso facilita a execução de OpenSSL várias vezes.
cd $HOME/local/bin/
echo -e '#!/bin/bash \nenv LD_LIBRARY_PATH=$HOME/local/lib/ $HOME/local/bin/openssl "$@"' > ./openssl.sh
-
Defina o bit de execução no script.
-
Inicie OpenSSL com o seguinte comando:
$HOME/local/bin/openssl.sh