Agregar una columna encriptada a una tabla en Jitterbit App Builder
La encriptación a nivel de aplicación se puede utilizar para proteger datos sensibles almacenados en columnas de tabla. La encriptación y desencriptación se realizan dentro del motor de negocios de App Builder. En consecuencia, la encriptación a nivel de aplicación es neutral ante proveedores: App Builder admite la encriptación de columnas a nivel de aplicación en todos los proveedores de RDBMS.
Para agregar una columna encriptada a una tabla, comience iniciando sesión en App Builder como administrador.
- Navegue a App Workbench
- Haga clic en el mosaico Tables
- Identifique la tabla a la que desea agregar la columna y haga clic en el ícono correspondiente de Open Record
- En el panel de Columns, haga clic en el botón + Column
- Proporcione el Name de la columna y seleccione las siguientes opciones:
- Logical Data Type: String
- Physical Data Type: Encrypted Text
- Haga clic en el botón Save
- Haga clic en el ícono de Close (X) para cerrar el popup
Cualquier valor escrito en la columna será automáticamente encriptado. Los valores leídos de la columna serán automáticamente desencriptados.
Si tiene acceso directo a la base de datos, puede confirmar que los datos están encriptados. Comience encriptando un valor:
- En el panel de Table, localice la tabla y haga clic en el ícono de Results para ver los datos de la tabla
- Haga clic en el ícono de Edit para modificar una fila existente
- Proporcione un valor para la columna encriptada
- Haga clic en el ícono de Save
Conéctese a la base de datos utilizando una herramienta como SQL Server Management Studio. Seleccione los datos de la tabla. Los datos encriptados estarán precedidos por la secuencia de bytes 0x09F0.
Usar una columna de tabla encriptada
Las columnas encriptadas se pueden utilizar de varias maneras. Típicamente, un desarrollador creará un objeto de datos que selecciona la columna encriptada de la tabla de destino. Usando seguridad basada en roles, el desarrollador puede limitar el acceso al objeto de datos. Luego, el desarrollador puede vincular un panel al objeto de datos y un control de Texto o Contraseña a la columna encriptada. En ese momento, los usuarios con permiso para el objeto de datos podrán ver y modificar el valor en texto plano.
Además de vincular controles a columnas encriptadas, también es posible crear reglas de negocio CRUD que copien datos hacia y desde columnas encriptadas. Las reglas de negocio CRUD se pueden utilizar para:
- Migrar datos de columnas no encriptadas a columnas encriptadas (o viceversa).
- Copiar datos sensibles dentro o fuera de un sistema de terceros.
- Pasar datos sensibles a un punto final de servicio web REST u OData.
- Finalmente, las columnas encriptadas pueden ser utilizadas por plugins. Sin embargo, el soporte para columnas encriptadas varía de un plugin a otro. Consulte la documentación del Plugin para obtener información adicional.
Claves de cifrado de datos
Los datos de las columnas se cifran con una Clave de Cifrado de Datos (DEK). Cada fuente de datos tiene su propio conjunto de claves rotativas. Aunque cualquier clave puede utilizarse para descifrar datos, solo se utiliza una clave para cifrar en un momento dado. Se crea una nueva DEK cada 90 días.
Las DEK están vinculadas a los siguientes atributos en el modelo lógico del App Builder:
- DataSourceId - El identificador de la fuente de datos aísla las claves.
- TableId - El identificador de la tabla se utiliza para crear una clave derivada para la tabla.
- ColumnId - El identificador de la columna se utiliza para crear una clave derivada para la columna.
Advertencia
Si cambian el DataSourceId, TableId o ColumnId, los valores encriptados existentes no pueden ser descifrados.
Además, cada valor de columna tiene un vector de inicialización único. Como resultado, el mismo valor de texto plano tendrá un texto cifrado binario diferente en diferentes filas.
Visualizando claves de cifrado de datos
Debido a que las DEK se utilizan para cifrar datos dentro de la base de datos, el material de clave criptográfica no puede almacenarse en la base de datos. Por esta razón, las DEK se almacenan en una de varias ubicaciones configurables. Consulte la Configuración de Cifrado de Datos para obtener más información.
A pesar de que el material de clave en sí no se almacena en la base de datos, los atributos de clave son visibles desde el App Builder. Para ver los detalles de la clave de cifrado de una fuente de datos, comience iniciando sesión en el App Builder como administrador.
- Navegue a App Workbench
- Haga clic en el mosaico Data Sources
- Seleccione la base de datos relacional del panel de Fuentes de Datos
- Haga clic en el botón Encryption Keys
La página de Claves de Cifrado de Datos enumerará las propiedades de las claves existentes:
- Fecha de Creación - La fecha y hora en que se generó la clave.
- Fecha de Activación - La fecha y hora en que se utilizó la clave para cifrar datos de columna.
- Fecha de Expiración - La fecha y hora en que la clave ya no se utilizó para cifrar datos.
Nota
Dado que las claves de cifrado de datos se crean bajo demanda, una fuente de datos no tendrá ninguna clave de cifrado de datos hasta que los datos sean cifrados por primera vez.
Algoritmos de cifrado y validación
El cifrado proporciona confidencialidad; la validación, autenticidad (también conocida como protección contra manipulaciones).
App Builder cifra datos utilizando AES-256 en el modo de cifrado de bloque CBC con relleno PKCS #7.
App Builder asegura la integridad de los datos cifrados utilizando HMAC-SHA256.
Problemas y limitaciones conocidas
La siguiente lista describe problemas y limitaciones conocidas con la implementación de cifrado a nivel de columna de App Builder.
- Solo el tipo de dato lógico String admite cifrado.
- Solo los proveedores de datos RDBMS admiten cifrado.
- No se puede convertir una columna al tipo de dato de almacenamiento Encriptado.
- No se puede convertir una columna del tipo de dato de almacenamiento Encriptado a otro tipo de dato.
- Las columnas encriptadas no admiten Filtro, Búsqueda o Clasificación.
- Controles como páginas, paneles y listas no se pueden vincular a una columna encriptada.
- Las columnas encriptadas no admiten traducción.
- App Builder no migra automáticamente los valores cifrados con claves antiguas: se deja al desarrollador re-cifrar los datos periódicamente.
- Los datos no se pueden migrar hacia/desde columnas encriptadas utilizando una regla de migración. Los desarrolladores deben usar reglas de negocio CRUD para mover datos hacia/desde columnas encriptadas.
- Los datos no se pueden copiar hacia/desde columnas encriptadas utilizando reglas de base de datos CRUD. Los desarrolladores deben usar reglas de negocio CRUD para mover datos hacia/desde columnas encriptadas.
- Las expresiones mvSQL solo pueden hacer referencia al texto cifrado binario, no al valor de texto plano de una columna encriptada.
- Si un valor encriptado no puede ser descifrado, no se muestra ningún error: el valor parece ser NULL.
Solución de problemas
Para problemas relacionados, consulte lo siguiente en la guía de solución de problemas del App Builder: