Funcionalidad de encriptado/desencriptado

ES | EN

Tecnología de encriptado

La plataforma ofrece una implementación base de Encryptor, que es la pieza encargada de las acciones de encriptar/desencriptar, que utiliza lo siguiente:

    • Cifrado AES de 128 bits, más concretamente AES/CBC/PKCS5PADDING
    • La clave de cifrado (KEY) y el vector de inicialización (IV) se cargan de un fichero de configuración interno de plataforma, y se usan los mismos valores para todas las ontologías

La pieza Encryptor, puede ser sustituida con el mecanismo de plugin que ofrece la plataforma (¿Cómo crear Plugins para Módulos de Plataforma?), pudiendo desarrollar una pieza que conecte con un HSM como Key Vault para obtener las claves de cifrado e IV de forma externa.

Configurar la Ontología para encriptado

Cuando creamos una ontología en la plataforma permite indicar qué atributos queremos encriptar, para ello en el Control Panel indicaré true en la columna ENCRYPTED:


Los atributos que se marquen como encriptados se almacenarán así en el repositorio (base de datos) subyacente.

A partir de las versión 1.5.1-rc2 la plataforma encriptará y desencriptará los atributos. Esto significa que en las diferentes herramientas de la plataforma (Query Tool, CRUD de ontologías, Digital Broker, API Manager,...) se manejará de forma transparente.

A la hora de hacer consultas, si quiero consultar por un campo encriptado entonces debo usar la expresión $ENCRYPT().


Abajo vemos como aunque los atributos nombre y color están encriptados:

al manejarlos desde plataforma se ven de forma normal:


$ENCRYPT

Se permiten las queries sobre campos encriptados como por ejemplo: select * from MyOntology as c WHERE c.MyOntology.propiedad = "$ENCRYPT(texto)"

Consideraciones adicionales

El encriptado funciona también con campos de tipo array, objeto y similares.


Ejemplos

Vemos como si creamos un API sobre una ontología con atributos encriptados la plataforma de forma transparente los desencriptará:

Mediante el Digital Broker, también se permite consultar e insertar datos y que la encriptación sea transparente al usuario.