Skip to content

SVault

The SVault module APIs provide tokenization functionalities for anonymizing and pseudonymizing databases containing Personally Identifiable Information (PII). The tokenization process is based on the generation of random numbers by a FIPS SP800-90A DRBG ( NIST CAVP approval).

Architecture

The SVault module Dinamo tokenizes personally identifiable information (also called secret) by generating a random token and a token blob(secret and encrypted metadata).

The token blob can be stored and used for later retrieval of the secret, for pseudonymization operations. For anonymization operations, the token blob must be discarded and the secret cannot be recovered later.

The token generated replaces the secret in the original database and may have the blob token associated with it in cases of pseudonymization. The token can have its format (decimal, base62, etc.) and the ability to generate check digits (in the case of CPF, CNPJ, PAN, etc.) specified at the time of generation.

Sensitive data is protected using a symmetric key protected within the HSM.

Retrieving the secret using the token blob allows it to be retrieved in clear text or masked. Masking is done internally to the HSM, preventing the secret from being manipulated in clear text by the application.

---
title: Fluxo de codificação de segredos
---

sequenceDiagram
    autonumber
    participant base as Base de dados
    participant app as Aplicação
    participant hsm as HSM

    Note over hsm: chave
    app ->> hsm: segredo
    hsm ->> hsm: codifica
    hsm ->> app: token (dado pseudomizado)<br>token blob (segredo encriptado)
    app ->> base: token<br>token blob
    Note over base: token<br>token blob
---
title: Fluxo de decodificação de tokens blobs
---

sequenceDiagram
    autonumber
    participant base as Base de dados
    participant app as Aplicação
    participant hsm as HSM

    Note over base: token (dado pseudomizado)<br>token blob (segredo encriptado)
    Note over hsm: chave
    app ->> base: busca token blob
    base ->> app: token blob
    app ->> hsm: token blob
    hsm ->> hsm: decodifica
    hsm ->> app: segredo

Attention

The tokens are generated randomly and, naturally, there is the possibility of conflicting tokens being generated. Therefore, the application will have to deal with the collisions by requesting the generation of the token again in order to guarantee the storage of unique tokens.