API C/C
HSM Dinamo
|
Operaciones de tokenización y anonimización de datos.
Las API del módulo SVault proporcionan funcionalidades de tokenización para anonimizar y seudonimizar bases de datos que contengan Información de Identificación Personal (IIP). El proceso de tokenización se basa en la generación de números aleatorios mediante un DRBG FIPS SP800-90A (aprobación NIST CAVP).
Dinamo El módulo SVault tokeniza la información personal identificable (también llamadasecreta) generando un token aleatorio y un token blob( metadatossecretos y cifrados).
El token blob puede almacenarse y utilizarse para recuperar posteriormente el secreto, para operaciones de seudonimización. Para las operaciones de anonimización, el token blob debe descartarse y el secreto no puede recuperarse posteriormente.
El token generado sustituye al secreto en la base de datos original y puede tener asociado el token blob en los casos de seudonimización. El token puede tener su formato (decimal, base62, etc.) y la generación de dígitos de verificación habilitada (en el caso de CPF, CNPJ, PAN, etc.) especificados en el momento de la generación.
Los datos sensibles se protegen mediante una clave simétrica protegida dentro del HSM.
La recuperación del secreto mediante el token blob permite recuperarlo en texto claro o enmascarado. El enmascaramiento se realiza internamente en el HSM, lo que impide que la aplicación manipule el secreto en texto claro.
Operaciones de tokenización y anonimización de datos. Más...
Funciones | |
int AAP_API | DSVaultGenToken(HSESSIONCTX hSession, DWORD dwOp, BYTE *pbInData, BYTE *pbTokenBlob, DWORD *pdwTokenBlobLen, char *szToken, DWORD dwReserved) |
int AAP_API | DSVaultGetData(HSESSIONCTX hSession, DWORD dwOp, const char *szMK, const char *szMask, BYTE *pbTokenBlob, DWORD dwTokenBlobLen, char *szData, DWORD *pdwDataLen, DWORD dwReserved) |
int AAP_API DSVaultGenToken | ( | HSESSIONCTX | hSesión, |
DWORD | dwOp, | ||
BYTE * | pbInData, | ||
BYTE * | pbTokenBlob, | ||
DWORD * | pdwTokenBlobLen, | ||
char * | szToken, | ||
DWORD | dwReservado ) |
#include <dinamo.h>
Tokeniza un dato, generando un token blob y su respectivo token.
[en] | hSesión | Contexto adquirido a través de la función DOpenSession(). |
[en] | dwOp | Tipo de operación. Debe ser 0. |
[en] | pbInData | Datos de entrada para la generación de tokens. Debe utilizarse la estructura SVAULT_GEN_TOKEN. |
[fuera] | pbTokenBlob | Buffer que contendrá el token blob. Pasar un tamaño de búfer D_SVAULT_TOKEN_BLOB_LEN en la entrada. pdwTokenBlobLen contendrá el tamaño del búfer de salida. O token blob protege la secreto y sus metadatos. Este búfer debe guardarse y utilizarse al llamar a DSVaultGetData() para la posterior recuperación del secreto o ficha. |
[in,out] | pdwTokenBlobLen | Tamaño de pbTokenBlob . La entrada contiene el tamaño total del búfer pbTokenBlob y la salida contendrá el tamaño de los datos copiados en pbTokenBlob . |
[fuera] | szToken | Cadena de longitud D_SVAULT_MAX_TL + 1 que contendrá el testigo generado. Se puede pasar NULL para no recuperar el token generado. El token puede recuperarse de nuevo usando la API DSVaultGetData(). |
[en] | dwReservado | Reservado para uso futuro (debe ser 0). |
int AAP_API DSVaultGetData | ( | HSESSIONCTX | hSesión, |
DWORD | dwOp, | ||
const char * | szMK, | ||
const char * | szMask, | ||
BYTE * | pbTokenBlob, | ||
DWORD | dwTokenBlobLen, | ||
char * | szData, | ||
DWORD * | pdwDataLen, | ||
DWORD | dwReservado ) |
#include <dinamo.h>
Recupera el secreto o token de datos tokenizados utilizando un blob de token. Esta API también permite recuperar el secreto o token enmascarado.
[en] | hSesión | Contexto adquirido a través de la función DOpenSession(). | ||||||
[en] | dwOp | Tipo de operación. Puede ser una de las opciones siguientes.
| ||||||
[en] | szMK | Nombre de la clave utilizada para la protección de datos. | ||||||
[en] | szMask | Patrón de máscara que se aplicará al secreto o token, según el definido al generar el token blob en DSVaultGenToken(). Buffer con un tamaño mínimo de D_SVAULT_MIN_TL y máximo de D_SVAULT_MAX_TL que contiene la máscara. Puede ser NULL para no utilizar la máscara. La máscara es una cadena UTF-8 que contiene los caracteres que se aplicarán a los datos para enmascararlos. Pase '\0' en las posiciones donde desee que se muestren los datos. Consulte los comentarios para ver ejemplos. | ||||||
[en] | pbTokenBlob | Buffer de tamaño D_SVAULT_TOKEN_BLOB_LEN, generado por la API DSVaultGenToken(), que contiene el token blob. | ||||||
[en] | dwTokenBlobLen | Búfer de tamaño máximo de D_SVAULT_TOKEN_BLOB_LEN, generado por la API DSVaultGenToken(), que contiene el token blob. | ||||||
[fuera] | szData | Cadena que contendrá el ficha o el secreto como se especifica en dwOp . Puede utilizar un tamaño de D_SVAULT_MAX_TL + 1 para cubrir todos los datos actuales. | ||||||
[in,out] | pdwDataLen | Tamaño de la cadena szData . Debe contener el tamaño de szData y el retorno de la API contendrá el tamaño total de los datos copiados. | ||||||
[en] | dwReservado | Reservado para uso futuro (debe ser 0). |
Utilizando la máscara "***" obtendremos el siguiente resultado.
Aplicando la máscara "9999" obtendremos el siguiente resultado.
Aplicando la máscara "***\0\0***" obtendremos el siguiente resultado.