PRGZ-3630 : Active master key ID not found in TDE wallet for database

David SanzDavid Sanz
2 min read

Este error que arroja el ZDM, puede ser por dos motivos:

  • A la hora de activar el TDE en origen se hizo de manera incompleta dejando sin informar la V$ENCRYPTION_KEYS.

  • Se perdió la wallet que había original y con ello las diferentes claves.

En este caso fue la segunda opción, el TDE se hizo correctamente pero se genero una nueva wallet y con ello se perdieron las claves de origen.

En este caso tuvimos suerte y había copia, con lo que solamente me toco mergear la wallet actual con la antigua y así tenemos una única wallet con todas las claves. Así que vamos al lío.

Lo primero que tenemos que hacer para mergear wallet es lo siguientes pasos:

  • Definimos una carpeta con el nombre XXXX donde tendremos una copia de la wallet actual.

  • Eliminamos el archivo ewallet.p12

  • Mergeamos

Primero vamos a ver que contiene la wallet original y la antigua mediante el comando mkstore, al igual que la v$encryption_keys

SQL> select key_id, keystore_type, origin from v$encryption_keys;

KEY_ID                                                                         KEYSTORE_TYPE     ORIGIN
------------------------------------------------------------------------------ ----------------- -----------------------------------------
ASRecEWh/k8yv8yEjmYY1cwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA                           SOFTWARE KEYSTORE LOCAL

Información de la wallet original

SQL> ! pwd
/oracle/product/admin/XXXXX/wallet/tde
SQL> ! mkstore -wrl . -list
Oracle PKI Tool Release 19.0.0.0.0 - Production
Version 19.4.0.0.0
Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.

Requested Certificates:
Subject: CN=oracle
User Certificates:
Oracle Secret Store entries:
ORACLE.SECURITY.DB.ENCRYPTION.ASRecEWh/k8yv8yEjmYY1cwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY
ORACLE.SECURITY.ID.ENCRYPTION.
ORACLE.SECURITY.KB.ENCRYPTION.
ORACLE.SECURITY.KM.ENCRYPTION.ASRecEWh/k8yv8yEjmYY1cwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Trusted Certificates:

Información de la wallet anterior

SQL> ! mkstore -wrl old/ -list
Oracle Secret Store Tool Release 19.0.0.0.0 - Production
Version 19.4.0.0.0
Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.

Enter wallet password:
Oracle Secret Store entries:
ORACLE.SECURITY.DB.ENCRYPTION.AcHeEplCEU/8v0rzp23jgQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.DB.ENCRYPTION.AQp4sqH4T08Ov8O9qS+tMiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.DB.ENCRYPTION.AWLLoFvQq0/Cv5zuPFF5CcMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY
ORACLE.SECURITY.ID.ENCRYPTION.
ORACLE.SECURITY.KB.ENCRYPTION.
ORACLE.SECURITY.KM.ENCRYPTION.AcHeEplCEU/8v0rzp23jgQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.KM.ENCRYPTION.AQp4sqH4T08Ov8O9qS+tMiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.KM.ENCRYPTION.AWLLoFvQq0/Cv5zuPFF5CcMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

La nueva wallet tendrá que tener las claves anteriores. Mergeamos las claves desde sqlplus

SQL> ADMINISTER KEY MANAGEMENT MERGE
     KEYSTORE '/oracle/product/admin/XXXXX/wallet/tde/original' IDENTIFIED BY "XXXXXXX" AND
     KEYSTORE '/oracle/product/admin/XXXXX/wallet/tde/tde/old' IDENTIFIED BY "XXXXXXX" 
    INTO NEW KEYSTORE '/oracle/product/admin/XXXXX/wallet/tde' IDENTIFIED BY "XXXXXXX";

Listo, consultamos la nueva wallet para verificar que tiene las claves de ambas wallet

SQL> !mkstore -wrl . -list
Oracle Secret Store Tool Release 19.0.0.0.0 - Production
Version 19.4.0.0.0
Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.

Enter wallet password:
Oracle Secret Store entries:
ORACLE.SECURITY.DB.ENCRYPTION.AcHeEplCEU/8v0rzp23jgQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.DB.ENCRYPTION.AQp4sqH4T08Ov8O9qS+tMiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.DB.ENCRYPTION.ASRecEWh/k8yv8yEjmYY1cwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.DB.ENCRYPTION.AWLLoFvQq0/Cv5zuPFF5CcMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY
ORACLE.SECURITY.ID.ENCRYPTION.
ORACLE.SECURITY.KB.ENCRYPTION.
ORACLE.SECURITY.KM.ENCRYPTION.AcHeEplCEU/8v0rzp23jgQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.KM.ENCRYPTION.AQp4sqH4T08Ov8O9qS+tMiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.KM.ENCRYPTION.ASRecEWh/k8yv8yEjmYY1cwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ORACLE.SECURITY.KM.ENCRYPTION.AWLLoFvQq0/Cv5zuPFF5CcMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Consultamos de nuevo la vista v$encryption_keys

SQL> select key_id, keystore_type, origin from v$encryption_keys;

KEY_ID                                                                         KEYSTORE_TYPE     ORIGIN
------------------------------------------------------------------------------ ----------------- -----------------------------------------
AQp4sqH4T08Ov8O9qS+tMiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA                           SOFTWARE KEYSTORE LOCAL
AcHeEplCEU/8v0rzp23jgQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA                           SOFTWARE KEYSTORE LOCAL
AWLLoFvQq0/Cv5zuPFF5CcMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA                           SOFTWARE KEYSTORE LOCAL
ASRecEWh/k8yv8yEjmYY1cwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA                           SOFTWARE KEYSTORE LOCAL

Listo, ya podemos continuar usando ZDM. ¡Espero que os sirva!

0
Subscribe to my newsletter

Read articles from David Sanz directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

David Sanz
David Sanz

Soy desarrollador, Analista, DBA Oracle y Arquitecto OCI, certificado en OCI Migration and Integration Certified Professional y Certified Architect Associate con más de 15 años de experiencia en plataformas Oracle además de especialista en temas de rendimiento.