Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

Versão 1 Atual »

Contenido


Revisiones

Fecha

Versión

Descripción

01/03/2024

1.0Creación del documento


1.    Introducción

1.1. Objetivo y audiencia

La aplicación RS-VTOL Crédito Débito utiliza fuertes algoritmos de encriptación para el manejo de datos sensibles de las tarjetas. Estos datos son almacenados en el sistema utilizando claves administrables por el usuario. Por norma PCI, estas claves, o material criptográfico, deben ser eliminados o cambiados entre cambios de versión de VTOL.

Desde la versión 3.8.0.1 de VTOL el algoritmo utilizado para manejar los datos sensibles fue 3DES, el cual después de 2023 fue deprecado. Por este motivo, se implementó el manejo de datos sensibles por medio del algoritmo AES-256.

Este documento tiene el objetivo de explicar el uso y configuración de la aplicación que se encarga de llevar a cabo la tarea de cambiar las claves de encriptación utilizadas por el sistema. El documento está dirigido al equipo de producto VTOL.

Nota:

Los puntos detallados en este documento son absolutamente necesarios para el cumplimiento de PCI S3 y cualquier incumplimiento de uno de ellos hará que la aplicación sea vulnerable a cualquier ataque. 

Importante:

Para usar correctamente la implementación de AES con VTOL se debe tener instalada al menos la versión de JDK 8u151

1.2. Alcance

RS-VTOL Crédito Débito.

1.3. Cliente/ Proyecto

Cliente: Napse

Proyecto: Implementación de PCI-S3 v1.1

1.4.  Vocabulario común y acrónimos

AES-256: 

PCI S3: 

1.5.  Referencias

2.   Requerimientos

Los siguientes son los requerimientos necesarios:

  • Tener instalado correctamente la aplicación RS-VTOL Crédito Débito
  • Poseer y leer de forma completa este documento
  • Acceso a la herramienta 3DEStoAES-Cryptool
  • Tener completa la siguiente lista de datos que se pedirán durante la fase de ejecución de la herramienta

2.1 Lista de requerimientos

Dato

Descripción

Motor de DB

Tipo de motor de base de datos soportados:

  • MS SQL
  • ORACLE

DB IP

Dirección IP o nombre de red de la base de datos que utiliza VTOL

DB Name

Nombre de instancia de la base datos que utiliza VTOL

DB User

Usuario de base de datos con los suficientes privilegios para truncar información de las tablas que utiliza VTOL

DB Password

Contraseña para que el usuario de base de datos pueda autenticarse satisfactoriamente

RS-VTOL Login User

Usuario habilitado de la consola Web de VTOL. Debe tener permiso de administrador (custodio) de clave para las versiones PADSS v1 y v2, o ser administrador de la consola para versiones previas

Login Password

Contraseña del usuario de la consola Web de VTOL

Master Directory

Si la versión de VTOL sobre la que se ejecuta la herramienta es la PADSS v1, este dato indica el directorio donde se almacena al archivo que contiene la clave de encriptación maestra. Por defecto es el siguiente:

{JBOSS_HOME}\server\rsvtol\dist\config\modules\cd-ar\util\

Recovery period

Tiempo de Recuperación, expresado en horas. Por defecto su valor es 2, y puede ser editado entre 1 y 24. Representa el tiempo luego de su creación, en que las claves maestras y operativas no van a ser actualizadas por la herramienta. Es decir, si el tiempo transcurrido desde la creación de la clave maestra no supera el tiempo de recuperación, la herramienta no cambia las claves maestra y operativa, las toma como vigentes.

Es de utilidad cuando la ejecución de la herramienta se ve interrumpida. Al volverse a ejecutar dentro del periodo de recuperación, retoma la encriptación de datos sensibles desde el punto donde quedo al momento de la caída. . Si la clave fue actualizada dentro del periodo de tiempo configurado, pero no está encriptada con algoritmo AES también se actualiza.

Nota:

Los valores listados con anterioridad deben ser almacenados de forma segura, lejos del conocimiento público. Por lo tanto, se aconseja no grabarlos en este documento ni mucho menos, imprimir el mismo con dichos datos ya que podrían caer en manos no deseadas. Se aconseja discreción de la información.

3. Procedimiento

3.1 Mecanismos criptográficos

Antes de comenzar a describir el funcionamiento de esta herramienta es clave indicar como VTOL administra o maneja la encriptación de datos sensibles. VTOL encripta todos los datos sensibles de las tarjetas utilizando un mecanismo de encriptación el cual está basado en la utilización de varias claves de encriptación. A continuación, se muestra un diagrama de la secuencia o cadena que se implementa para realizar tal fin:

Gráfico ilustrativo de la jerarquía de las claves

Como se observa en la figura anterior, existe una jerarquía o secuencia de encriptación de claves. La clave generada automáticamente se denomina “llave operativa o administrable”, es almacenada en la base de datos y encriptada con otra llave de encripción denominada “llave maestra” y al mismo tiempo encriptada por una llave en código de aplicación denominada “llave fija”.

Las “Claves Administrables” son utilizadas para encriptar los datos sensibles de las tarjetas que se guardarán en la base de datos. En el gráfico estos datos se llaman “Datos Encriptados”. Los datos encriptados serán los siguientes:

Tabla

Campos

Temporal

CreditDebitOperationRequest

cardNumber

NO

expirationDate

NO

cvc

SI

track1

SI

track2

SI

chipTockens

SI

FinancialTransaction

expirationDate

NO

cardNumber

NO

ClosedFinancialTransaction

expirationDate

NO

cardNumber

NO

EMVAdviceEntry

chipTockens

SI

Importante:

Si un dato es temporal significa que será eliminado automáticamente por VTOL al finalizar la transacción. En caso de no serlo, permanecerá en la base de datos hasta tanto el proceso de depuración automático no lo depure (máximo de 90 días).

La “Clave Administrable” es la clave que requiere ser cambiada cada una cierta cantidad de tiempo. Esta cadena de encriptación se hace para poder administrar las claves y para poder brindar mayor seguridad al sistema. El algoritmo de encriptación utilizado en todos estos pasos es 3DES.

La clave criptográfica cambia en el caso de las claves que han llegado al final de su período de cifrado, con el objetivo de mantener la seguridad de los datos, es importante remarcar que las claves serán eliminadas pasado un determinado período de tiempo (por defecto son 90 días).

Nota:

Ver el capítulo “11.3 Configuración para la depuración de datos” del manual “VTOLCR-DB-Guía de implementación”.

3.2 Descripción

3DEStoAES-Cryptool es una herramienta que se encarga de cambiar el material criptográfico de la aplicación VTOL. La misma debe ser utilizada exclusivamente para hacer una migración de una versión 3.8.X a la versión 3.8.1.0.

Se genera de manera automática una nueva clave maestra en base de datos en donde es utilizada para encriptar la nueva clave operativa, también creada de manera automática. Con esta última, se re-encriptan los datos sensibles almacenados en las tablas transaccionales. Además, como la clave de persistencia (PersistenceKey) también esta encriptada con el algoritmo 3DES, se actualiza la misma con AES-256. Por otro lado, por pedido de PCI, se encriptan con este algoritmo varias columnas de la tabla RS_AUDIT.

Al finalizar la operación, se eliminan las claves viejas que puedan existir, quedando únicamente las claves recientemente creadas y los datos sensibles encriptados quedan con la nueva clave operativa. Cada nueva clave creada o eliminada de la base de datos genera el correspondiente registro de auditoría, indicando la acción, el usuario responsable y el host desde el cual se realizó.

Importante:

Debe tenerse en cuenta que si la clave maestra creada está dentro del periodo de recuperación no se crea una clave nueva, a excepción de que esa clave aún no se encuentre encriptada con algoritmo 3DES.

Esta aplicación nunca mostrará por pantalla ninguna clave de encripción ni información sensible de tarjetas. Además, la aplicación no genera archivos de log. Una vez iniciada la aplicación preguntará por datos o información que se deben haber recolectado previamente tal como se indica en la lista de requerimientos de este manual. Los mismos serán solicitados por pantalla y de forma manual ni bien se inicie la aplicación. Ninguno de los datos ingresados como parámetros serán mostrados ni almacenados en disco.

Para esta parte del procedimiento se debe definir un usuario de custodia quien se encargará de ejecutar este procedimiento, hay que tener en cuenta que no se necesitará que el custodia se encargue de las claves ya que este proceso ha sido automatizado.

3.2.1 Actualización de claves

En una sola transacción se procesan las siguientes operaciones:

  • Encripción de los datos de la tabla RS_AUDIT.
  • Generación automática y aleatoria de una nueva clave maestra
  • Generación automática y aleatoria de una nueva clave operativa
  • Persistencia en base de datos la nueva clave operativa encriptada mediante la utilización de la nueva clave maestra
  • De existir claves operativas previas, se debe hacer una re - encriptación de las mismas utilizando la nueva clave maestra
  • Por último, registración de la clave maestra en el sistema de archivos
  • Generación automática y aleatoria de una nueva clave de persistencia

3.2.2 Actualización de datos sensibles

Luego de la actualización de las claves operativas, se toma cada una de ellas una por una y se procesan sus datos transaccionales en intervalos. El procesamiento consiste en desencriptar los datos sensibles utilizando la clave operativa vieja encriptada con 3DES, y volverlos a encriptar utilizando la clave operativa nueva, encriptada con AES-256. Cuando se termina de procesar el intervalo, se refleja completo en base de datos.

3.2.3 Eliminación de material criptográfico

En este procedimiento se eliminan todos los datos transaccionales, por ende, también se eliminan los datos sensibles que se encuentran encriptados. Al final del procedimiento también se elimina todo el material criptográfico (clave operativa y clave maestra) y se dan de alta las nuevas claves. Estas claves también estarán encriptadas en forma de cadena tal como se indicó en el capítulo 6.1 Mecanismos criptográficos.

Es importante mencionar que esta opción o procedimiento es absolutamente necesaria para pasar de un ambiente de laboratorio a un ambiente de producción y así cumplir con lo establecido en PCI-DSS.

3.3 Instalación y ejecución

A continuación, se especifican los pasos:

  1. Posicionarse en la carpeta dentro de la instalación de VTOL en la ruta /Bin/Util.
  2. Detener VTOL Server para poder ejecutar la herramienta
  3. Crear índices faltantes (ver apartado 3.4 Crear índices faltantes)
  4. Actualizar estadísticas de las tablas involucradas en el proceso (ver apartado 3.5 Actualización de estadísticas en la BD)
  5. Ejecutar el archivo 3DEStoAES-Cryptool (con extensión bat para Windows, o sh para Linux)
  6. Volver a actualizarlas estadísticas de las tablas una vez finalizada la ejecución de la herramienta
  7. Recomendar al DBA, como una buena práctica, el agregar tareas planificadas que actualicen las estadísticas de las tablas involucradas en el proceso

3.4 Crear índices faltantes

Para poder ejecutar la herramienta es necesario verificar la existencia de todos los índices requeridos en las tablas que se procesan. Los índices son:

  • Índice 1: Campo EncryptedPassId.
  • Índice 2: Campo clientdate (en tablas FinancialTransaction y ClosedFinancialTransaccion) o datetime (en tabla CreditDebitOperationRequest).
  • Índice 3: Campo clientdate (en tablas FinancialTransaction y ClosedFinancialTransaccion) o datetime (en tabla CreditDebitOperationRequest), y el campo encryptedPassId.

Si es necesario crear algún índice se pueden utilizar las siguientes sentencias según el motor de base de datos:

  • SQL Server
SQL Server
CREATE INDEX CLOSEDFINANCIALTRX_IDX1 ON CLOSEDFINANCIALTRANSACTION
(
       ENCRYPTEDPASSID 
)
GO
CREATE INDEX CLOSEDFINANCIALTRX_IDX2 ON CLOSEDFINANCIALTRANSACTION
(
       CLIENTDATE      
)
GO
CREATE INDEX CLOSEDFINANCIALTRX_IDX3 ON CLOSEDFINANCIALTRANSACTION
(
       ENCRYPTEDPASSID,
       CLIENTDATE                           
)
GO
CREATE INDEX FINANCIALTRX_IDX1 ON FINANCIALTRANSACTION
(
       ENCRYPTEDPASSID 
)
GO
CREATE INDEX FINANCIALTRX_IDX2 ON FINANCIALTRANSACTION
(
       CLIENTDATE      
)
GO
CREATE INDEX FINANCIALTRX_IDX3 ON FINANCIALTRANSACTION
(
       ENCRYPTEDPASSID,
       CLIENTDATE                           
)
GO
CREATE INDEX CDOPERATIONREQUEST_IDX1 ON CREDITDEBITOPERATIONREQUEST
(
       ENCRYPTEDPASSID 
)
GO
CREATE INDEX CDOPERATIONREQUEST_IDX2 ON CREDITDEBITOPERATIONREQUEST
(
       DATETIME        
)
GO
CREATE INDEX CDOPERATIONREQUEST_IDX3 ON CREDITDEBITOPERATIONREQUEST
(
       ENCRYPTEDPASSID,
       DATETIME                             
)
GO
  • ORACLE:
ORACLE
CREATE INDEX CLOSEDFINANCIALTRX_IDX1 ON CLOSEDFINANCIALTRANSACTION
(
       ENCRYPTEDPASSID  ASC
);
CREATE INDEX CLOSEDFINANCIALTRX_IDX2 ON CLOSEDFINANCIALTRANSACTION
(
       CLIENTDATE       ASC
);
CREATE INDEX CLOSEDFINANCIALTRX_IDX3 ON CLOSEDFINANCIALTRANSACTION
(
       ENCRYPTEDPASSID  ASC,
       CLIENTDATE       ASC                    
);
CREATE INDEX FINANCIALTRX_IDX1 ON FINANCIALTRANSACTION
(
       ENCRYPTEDPASSID  ASC
);
CREATE INDEX FINANCIALTRX_IDX2 ON FINANCIALTRANSACTION
(
       CLIENTDATE       ASC
);
CREATE INDEX FINANCIALTRX_IDX3 ON FINANCIALTRANSACTION
(
       ENCRYPTEDPASSID  ASC,
       CLIENTDATE       ASC                    
);
CREATE INDEX CDOPERATIONREQUEST_IDX1 ON CREDITDEBITOPERATIONREQUEST
(
       ENCRYPTEDPASSID  ASC
);
CREATE INDEX CDOPERATIONREQUEST_IDX2 ON CREDITDEBITOPERATIONREQUEST
(
       DATETIME         ASC
);
CREATE INDEX CDOPERATIONREQUEST_IDX3 ON CREDITDEBITOPERATIONREQUEST
(
       ENCRYPTEDPASSID  ASC,
       DATETIME         ASC                    
);

3.5 Actualización de estadísticas en la BD

Antes de ejecutar la herramienta y luego de que la misma haya finalizado, es necesario actualizar las estadísticas de las tablas involucradas en el proceso. Para ello se deben ejecutar las siguientes sentencias, según el motor de base de datos:

  • SQL Server
SQL Server
UPDATE STATISTICS FINANCIALTRANSACTION
GO
UPDATE STATISTICS CLOSEDFINANCIALTRANSACTION
GO
UPDATE STATISTICS CREDITDEBITOPERATIONREQUEST
GO


  • Oracle
ORACLE
ANALYZE TABLE FINANCIALTRANSACTION COMPUTE STATISTICS;
ANALYZE TABLE CLOSEDFINANCIALTRANSACTION COMPUTE STATISTICS;
ANALYZE TABLE CREDITDEBITOPERATIONREQUEST COMPUTE STATISTICS;

Es normal que la actualización lleve varios minutos, más aún cuando la tabla tiene muchos registros, debido a que deben actualizar los índices.

3.6 Utilización

Importante:

Antes de ejecutar la herramienta y luego de que la misma haya finalizado, es necesario actualizar las estadísticas de las tablas involucradas en el proceso.

Para iniciar la aplicación hay que ejecutar el siguiente comando dependiente el sistema operativo:

  • Para SO basados en Windows:

{JBOSS_HOME}/rsvtol/bin/util/3DEStoAES-Cryptool.bat

  • Para SO basados en Linux:

{JBOSS_HOME}/rsvtol/bin/util/3DEStoAES-Cryptool.sh

Hay que tener en cuenta que existe una serie de parámetros de configuración definidos en estos archivos.

3.6.1 Parámetros de configuración

En los archivos 3DEStoAES-Cryptool.bat y 3DEStoAES-Cryptool.sh se pueden configurar los siguientes parámetros de configuración:

Parámetro

Descripción

Valor por defecto

regionExtension

Clase de extensión por región.

ar.com.retailsolutions.vtol.util.cryptool.DefaultRegionExtension

rangeInMinutes

Rango en minutos utilizado para tomar y procesar los datos en las distintas tablas.

Por defecto 60 minutos (1 hs).

maxThreads

Cantidad de Threads utilizados para el procesamiento.

Por defecto 10 threads.

processingRetries

Cantidad de reintentos al producirse un problema en el procesamiento de un bloque de datos.

Por defecto 5 reintentos.

timeBetweenRetries

Tiempo de espera entre reintentos expresado en milisegundos

Por defecto 10000 (10 segundos)

Importante:

Los parámetros que indican la cantidad de Threads y el rango de tiempo para tomar y procesar las transacciones, pueden variar según las características del entorno del cliente.

3.6.2 Ejecución

Una vez ejecutado el comando la aplicación iniciará y se mostrará la siguiente información en pantalla:

THIS APPLICATION WILL REMOVE OR CHANGE DATA ENCRYPTION KEYS

AS NEED BY PCI PA-DSS SECURITY STANDARD PROCESS.

ANY ENTERED VALUE WRONGLY WILL CAUSE DATA LOSS, SO TAKE IT

SERIOUSLY.

ALSO, IT IS IMPORTANT TO KNOW THAT THIS PROCESS MAY TAKE

A LONG TIME, SO ONCE IT HAS STARTED, DO NOT STOP IT.

THE NEXT STEP WILL ASK YOU FOR SOME INFORMATION. FOR BETTER

UNDERSTANDING REFER TO USER GUIDE.

APPLICATION PARAMETERS

REGION EXTENSION: ar.com.retailsolutions.vtol.util.cryptool.DefaultRegionExtension

RANGE IN MINUTES: 60

MAX THREADS: 10

PROCESSING RETRIES: 5

TIME BETWEEN RETRIES: 10000

 

Es simplemente una advertencia donde se avisa que se cambiarán o eliminarán datos, y se depurará el material criptográfico tal como indica el estándar PCI. Además, se muestran los parámetros de configuración definidos en el archivo de inicio de la herramienta. Es importante mencionar que es este proceso puede llevar un tiempo dependiendo la cantidad de información almacenada en la base de datos y el potencial del servidor donde esté instalado el motor de base datos.

Luego el sistema preguntará que motor de base de datos está utilizando la aplicación VTOL:

Enter DB Engine (default MSSQL):

      1-MS SQL

      2-ORACLE

El siguiente paso es ingresar la dirección IP de la base de datos donde se encuentra el motor de base datos que utiliza VTOL. Puede ser una dirección IP o un nombre lógico:

Enter DB IP:

Continuando con la base de datos, es necesario ingresar el nombre de la base de datos:

Enter DB Name:

Luego el usuario y contraseña para poder conectarse a la misma.

Enter DB User:

Enter DB Password:

Con esta información verifica la versión de RS-VTOL. Las cuales pueden ser:

  • Versión PADSS v2
  • Versión PADSS v1
  • Versión sin PADSS                              

Luego de chequear la versión de VTOL, solicita el ingreso de los datos de Login consola, para verificar si el usuario se encuentra habilitado para realizar la operación. Se requieren diferentes permisos según la versión de VTOL:                                     

  • Versión PADSS v1 - v2:

El usuario debe tener el permiso para Administración (Custodia) de Claves de Encriptación.

  • Versión sin PADSS:

El usuario debe ser Administrador de la aplicación.

Enter RS-VTOL Login User:

Enter Login Password:

Luego de verificar los permisos del usuario de aplicación, se chequea la versión de VTOL PADSS, si se actualiza una versión 3.8 es VTOL PADSSv3.2, en cuyo caso se debe ingresar la ruta donde se encuentra la clave maestra.

 Enter the Current Master Key directory:

El siguiente punto establece el tiempo de recuperación ante una posible falla en la ejecución de la herramienta. Si la herramienta falla dentro del tiempo establecido, la ejecución comienza desde el punto donde se detuvo. Caso contrario la herramienta comienza a procesar desde el principio. El valor por defecto es de 2 horas, se recomienda aumentar a la cantidad de registros a procesar (Esta propiedad no esta funcionando en esta versión de la herramienta).

 Recovery period in hours (2 hours by default). It must be less than 24...

Por último, la herramienta consulta si se deben eliminar los datos transaccionales. El valor por defecto es False. Si se elige la opción True, no se realiza la actualización de datos sensibles debido a que todos los datos transaccionales son eliminados. En caso de seleccionar False, los datos sensibles serán desencriptados con la clave antigua 3DES, y se re-encriptarán con la clave nueva AES-256    

Delete database transactional data?  (default FALSE)

      1-FALSE

      2-TRUE

Una vez finalizado el ingreso de datos, o configuración de la aplicación, se dará comienzo a la ejecución de la mismo. A continuación, se visualiza un ejemplo de log para la ejecución de la herramienta:

[INFO] - [LAUNCHER] - Starting app..
[2024-03-12 16:55:28,750] [INFO] THIS APPLICATION WILL REMOVE OR CHANGE DATA ENCRYPTION KEYS
[2024-03-12 16:55:28,752] [INFO] AS NEED BY PCI SOFTWARE SECURITY STANDARD PROCESS.
[2024-03-12 16:55:28,752] [INFO] ANY ENTERED VALUE WRONGLY WILL CAUSE DATA LOSS, SO TAKE IT
[2024-03-12 16:55:28,752] [INFO] SERIOUSLY.
[2024-03-12 16:55:28,753] [INFO] ALSO, IT IS IMPORTANT TO KNOW THAT THIS PROCESS MAY TAKE
[2024-03-12 16:55:28,753] [INFO] A LONG TIME, SO ONCE IT HAS STARTED, DO NOT STOP IT.
[2024-03-12 16:55:28,754] [INFO] THE NEXT STEP WILL ASK YOU FOR SOME INFORMATION. FOR BETTER
[2024-03-12 16:55:28,754] [INFO] UNDERSTANDING REFER TO USER GUIDE.

[2024-03-12 16:55:28,754] [INFO] APPLICATION PARAMETERS
[2024-03-12 16:55:28,755] [INFO] REGION EXTENSION: ar.com.retailsolutions.vtol.util.cryptool.DefaultRegionExtension
[2024-03-12 16:55:28,755] [INFO] RANGE IN MINUTES: 60
[2024-03-12 16:55:28,755] [INFO] MAX THREADS: 10
[2024-03-12 16:55:28,755] [INFO] PROCESSING RETRIES: 5
[2024-03-12 16:55:28,755] [INFO] TIME BETWEEN RETRIES: 10000
[2024-03-12 16:55:28,755] [INFO] Enter DB Engine (default MSSQL):
[2024-03-12 16:55:28,757] [INFO]   1-MS SQL
[2024-03-12 16:55:28,757] [INFO]   2-ORACLE
1
[2024-03-12 16:56:12,413] [INFO] Enter DB IP:
localhost
[2024-03-12 16:56:18,958] [INFO] Enter DB Name:
GoCuotas1901
[2024-03-12 16:56:39,384] [INFO] Enter DB User:
sa
[2024-03-12 16:56:43,817] [INFO] Enter DB Password:
nosotros
[2024-03-12 16:56:49,263] [INFO] RS-VTOL Version 3.8.1 PCI S3v1.1
[2024-03-12 16:56:49,263] [INFO] Enter RS-VTOL Login User (Note: User must be a 'Key Custodian'):
AdminV
[2024-03-12 16:56:55,233] [INFO] Enter Login Password:
Admin2
[2024-03-12 16:56:58,615] [INFO] User has 'Key Custodian' rights.
[2024-03-12 16:56:58,615] [INFO] Enter Current Master Key directory:
C:\key\VTOL_GoCuotas19012024
[2024-03-12 16:57:29,564] [INFO] Would you like to decrypt and encrypt all sensible card data in current data base? (default TRUE)
[2024-03-12 16:57:29,565] [INFO]   1-TRUE
[2024-03-12 16:57:29,566] [INFO]   2-FALSE
1
[2024-03-12 16:57:33,153] [INFO] Recovery period in hours (2 hours by default). It must be less than 24...
1
[2024-03-12 16:57:35,332] [INFO] The Recovery period is 1 hours!
[2024-03-12 16:57:37,032] [INFO] Processing is starting, check log for futher information.
2024-03-12 16:57:37,033 INFO  [UpdateKeysUtilityAes          ] [main] Starting Process.
2024-03-12 16:57:37,627 INFO  [UpdateKeysUtilityAes          ] [EncryptAuditKeysThread] Updating records between 12-03-2024 16:53:08,287 and 12-03-2024 22:53:08,287 in table rs_audit
2024-03-12 16:57:37,640 INFO  [UpdateKeysUtilityAes          ] [EncryptAuditKeysThread] Load records between 12-03-2024 16:53:08,287 and 12-03-2024 22:53:08,287 in table rs_audit in 4 Milliseconds.
2024-03-12 16:57:37,914 INFO  [UpdateKeysUtilityAes          ] [EncryptAuditKeysThread] Commiting 4 records between 12-03-2024 16:53:08,287 and 12-03-2024 22:53:08,287 in table rs_audit
2024-03-12 16:57:37,916 INFO  [UpdateKeysUtilityAes          ] [EncryptAuditKeysThread] Commit Done. 4 records were processed between 12-03-2024 16:53:08,287 and 12-03-2024 22:53:08,287 for the table rs_audit in 275 MilliSeconds.
2024-03-12 16:57:39,063 INFO  [UpdateKeysUtilityAes          ] [main] Creating new Master key with id=1710273459060 creationdate=Tue Mar 12 16:57:39 ART 2024
2024-03-12 16:57:39,066 INFO  [UpdateKeysUtilityAes          ] [main] Updating EncryptedPassword id=4 creationdate=Tue Mar 12 16:52:12 ART 2024
2024-03-12 16:57:39,245 INFO  [UpdateKeysUtilityAes          ] [main] Creating new Operative key with id=5 creationdate=Tue Mar 12 16:57:39 ART 2024
2024-03-12 16:57:39,250 INFO  [UpdateKeysUtilityAes          ] [main] Updating Master Key File: 'master.key'. Saving new master key with ID [1710273459060]
2024-03-12 16:57:39,250 INFO  [UpdateKeysUtilityAes          ] [main] Check if Master Key directory exists.'
2024-03-12 16:57:39,252 INFO  [UpdateKeysUtilityAes          ] [main] Master Key file was updated successfully.
2024-03-12 16:57:39,267 INFO  [UpdateKeysUtilityAes          ] [main] Updating persistence key with id=3 creationdate=Tue Mar 12 16:57:39 ART 2024
2024-03-12 16:57:39,271 INFO  [UpdateKeysUtilityAes          ] [main] Update Transactional Data. Checking the number of records to process.
2024-03-12 16:57:39,289 INFO  [UpdateKeysUtilityAes          ] [main] Missing process [2] records.!!!
2024-03-12 16:57:39,291 INFO  [UpdateKeysUtilityAes          ] [main] Processing EncryptedPassword id =4 creationdate=2024-03-12 16:52:12.327
2024-03-12 16:57:39,303 INFO  [UpdateKeysUtilityAes          ] [main] TOTAL PROCESSED RECORDS IS [4] IN TIME [0] SECONDS. MISSING PROCESS [-2] RECORDS IN AN ESTIMATED TIME OF [0] SECONDS.
2024-03-12 16:57:39,303 INFO  [UpdateKeysUtilityAes          ] [PersistBinThread] Updating records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table FinancialTransaction
2024-03-12 16:57:39,315 INFO  [UpdateKeysUtilityAes          ] [PersistBinThread] Load records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table FinancialTransaction in 4 Milliseconds.
2024-03-12 16:57:39,418 INFO  [UpdateKeysUtilityAes          ] [main] No Transaction in table [ClosedFinancialTransaction]
2024-03-12 16:57:39,421 WARN  [UpdateKeysUtilityAes          ] [main] MaskedCardNumber will not be populated because it does not exist in table CreditDebitOperationRequest
2024-03-12 16:57:39,428 INFO  [UpdateKeysUtilityAes          ] [PersistBinThread] Updating records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table CreditDebitOperationRequest
2024-03-12 16:57:39,437 INFO  [UpdateKeysUtilityAes          ] [PersistBinThread] Load records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table CreditDebitOperationRequest in 2 Milliseconds.
2024-03-12 16:57:39,442 INFO  [UpdateKeysUtilityAes          ] [PersistBinThread] Commiting 1 records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table CreditDebitOperationRequest
2024-03-12 16:57:39,444 INFO  [UpdateKeysUtilityAes          ] [PersistBinThread] Commit Done. 1 records were processed between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 for the table CreditDebitOperationRequest in 7 MilliSeconds.
2024-03-12 16:57:39,520 INFO  [UpdateKeysUtilityAes          ] [PersistBinThread] Commiting 1 records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table FinancialTransaction
2024-03-12 16:57:39,521 INFO  [UpdateKeysUtilityAes          ] [PersistBinThread] Commit Done. 1 records were processed between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 for the table FinancialTransaction in 206 MilliSeconds.
2024-03-12 16:57:39,537 INFO  [UpdateKeysUtilityAes          ] [main] All the records have been processed successfully.
2024-03-12 16:57:40,056 INFO  [UpdateKeysUtilityAes          ] [main] Deleting EncryptedPassword id= 4 creationdate=2024-03-12 16:52:12.327
2024-03-12 16:57:40,075 INFO  [UpdateKeysUtilityAes          ] [main] End. Total time: 3 segs
[2024-03-12 16:57:40,075] [INFO] Processing has finished.

C:\wildfly-18.0.1.Final\VTOL_AESV16V17\bin\util>pause
Presione una tecla para continuar . . . 

3.6.3 Explicación de log

  • Starting Process...

Inicia la aplicación


  • Creating new Master key with id=1710273459060

Crea una nueva master key


  • Updating EncryptedPassword id=4 creationdate=Tue Mar 12 16:52:12 ART 2024

Actualiza la encriptación de la clase operativa con identificador igual a 4


  • Creating new Operative key with id=5 creationdate=Tue Mar 12 16:57:39 ART 2024

Crea la nueva clave operativa con identificador igual a 5.


  • Updating Master Key File: 'master.key'. Saving new master key with ID [1710273459060]
  • Check if Master Key directory exists.'
  • Master Key file was updated successfully.

El archivo que contiene la clave maestra fue creado con éxito.


  • Update Transactional Data. Checking the number of records to process.

Comienza con el procesamiento de los datos sensibles en los registros de las tablas transaccionales.

Importante:

Si la herramienta falla luego de pasar este punto, y se inicia el procesamiento dentro del tiempo de recuperación, solamente se procesarán las transacciones que faltan. Es decir, la aplicación no volverá a iniciar desde el principio.


  • Missing process [2] records.!!!

Indica la cantidad de registros que restan procesar.


  • Processing EncryptedPassword id =4 creationdate=2024-03-12 16:52:12.327


Procesando los registros transaccionales para la clave operativa con id igual a 1.


  • Updating records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table FinancialTransaction

Actualizando los datos sensibles de la tabla FinancialTransaccion para los registros cuya fecha se encuentre entre el rango de horas que indica.


  • Load records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table CreditDebitOperationRequest in 2 Milliseconds.

Los registros del rango se cargaron en xx milisegundos.


  • Commiting 1 records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table CreditDebitOperationRequest
  • Commiting 1 records between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 in table FinancialTransaction

Comienza el Commit de los registros en el rango establecido. Realiza el commit por cada tabla que encuentra.


  • Commit Done. 1 records were processed between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 for the table CreditDebitOperationRequest in 7 MilliSeconds.
  • Commit Done. 1 records were processed between 12-03-2024 16:54:12,000 and 12-03-2024 17:54:12,000 for the table FinancialTransaction in 206 MilliSeconds.

Cantidad de registros confirmados en la tabla CreditDebitOperationRequest en x milisegundos para el rango establecido.

Cantidad de registros confirmados en la tabla FinancialTransaccion en xxx milisegundos para el rango establecido.


  • Total time: 3 segs

Finaliza el proceso.


3.6.5 Consideraciones Adicionales


Importante:

La herramienta sufrió cambios importantes en cuanto al procesamiento de las transacciones. Es necesario realizar pruebas en laboratorio con bases de datos pobladas similares al ambiente de producción para definir parámetros de configuración que mejor se ajusten al caso

Puntos a tener en cuenta:

  • La ejecución de la aplicación es manual
  • Es recomendable ejecutar la herramienta, siempre y cuando sea posible, en el mismo servidor físico, con el objetivo de reducir la latencia de red a su mínima expresión. Si esto no es posible, entonces se debe ejecutar desde lo más “cercano” posible. Es decir, que la red sea rápida y con pocos saltos de red (switch, router, etc)
  • La aplicación no genera archivos de log alguno
  • La aplicación registra auditoria de la creación y actualización de claves
  • La utilización de esta herramienta requiere del paso previo de armar un backup de la base de datos
  • Nunca se revelará el material criptográfico
  • Nunca se revelará un dato sensible de la tarjeta
  • Si la aplicación falla en uno de sus puntos ningún dato se perderá y el error se logeará en pantalla.
  • Es importante no detener la aplicación durante su ejecución, podría ocasionar:
  • La pérdida de datos
  • La corrupción de datos
  • La corrupción de la base de datos



  • Sem rótulos