Encripción de atributos en la base de datos

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Definición de Seguridad >

Encripción de atributos en la base de datos

Introducción

En algunos escenarios de negocio, se puede requerir incluir medidas adicionales de seguridad para proteger la información.

Para esto, Bizagi ofrece la posibilidad de encriptar (cifrar) la información en la base de datos.

 

Algunos ejemplos de estos escenarios son:

Cuando existe información muy sensible que deba estar oculta para usuarios no deseados, especialmente, si muchos usuarios tienen acceso autorizado a la base de datos y su información.

Cuando se están integrando fuentes de datos externas al proyecto (a través de Virtualización y Replicación) y requiere otorgar una seguridad adicional para la información local almacenada en Bizagi.

 

El cifrado de información en la Base de Datos, es llevado a cabo por Bizagi a través de algoritmos de cifrado configurados para el proyecto.

Esta sección describe cómo usar esta característica llamada Encripción en la Base de Datos.

 

note_pin

Esta funcionalidad no es aplicable a Automation Service.

La posibilidad de encriptar ciertos atributos de tablas en la base de datos no es dirigida a ambientes de la nube debido a que estos ambientes ya implementan una encripción completa de la base de datos en reposo.

 

¿Cómo funciona?

Para habilitar Encripción en la Base de Datos, necesitará especificar una llave (por ejemplo, un GUID de 32 caracteres) para el algoritmo de cifrado.

Esta llave es almacenada en un archivo en una ruta física con acceso restringido; sólo usted conocerá la ubicación del archivo.

Bizagi usará el algoritmo de Hashing de su elección para preparar la llave como un arreglo de bits para el algoritmo de cifrado.

También necesitará el algoritmo de cifrado que va a usar.

 

 

La siguiente imagen ilustra el concepto de esta funcionalidad:

 

Encrypt_Overview

 

 

Algoritmos soportados de Hashing y Cifrado

La Encripción en la base de datos de Bizagi, soporta los siguientes algoritmos:

 

Algoritmos de Hashing

SHA1

SHA-256

 

note_pin

Seleccione SHA2 256 para una mayor conversión de seguridad.

Seleccione SHA1 para que el rendimiento no se vea afectado por un procedimiento de conversión más sofisticado.

 

Algoritmos de Cifrado simétrico

DES

Triple DES 1

Triple DES 2

AES (recomendado), ya sea de 128, 192 o 256 bits.

 

 

Importante

Bizagi Ltd no es responsable de la llave definida para este propósito (Bizagi no almacena la llave y usted escoge dónde almacenarla).

La llave definida está solamente bajo su control, custodia y su debida protección. En consecuencia, usted es el único responsable de almacenar, custodiar, proteger y restringir el acceso a la llave.

Debido a lo anterior, usted debe tener un plan de contingencia o un backup en caso de perder la llave, considerando que la información cifrada no puede ser recuperada en ningún momento por Bizagi sin la llave.

 

 

Qué necesita hacer

Para usar la Encripción en la Base de Datos, usted necesita ejecutar los siguientes pasos:

 

1.Autorizar los usuarios que pueden configurar la Encripción en la base de datos

2.Establecer el algoritmo de cifrado y su llave

3.Configurar cuál información debe ser cifrada

 

 

Procedimiento

Siga los siguientes pasos para configurar una Encripción en la base de datos.

 

1. Autorizar los usuarios que pueden configurar la Encripción en la base de datos

Por defecto, los usuarios no están autorizados para configurar la Encripción en la base de Datos

Con el objetivo de utilizar esta funcionalidad, necesitará asegurarse de que el Usuario Administrador de Negocio esté explícitamente autorizado para configurar los parámetros necesarios para el cifrado (como los algoritmos y lo más importante, la llave usada en el cifrado).

 

Para autorizar usuarios, primero abra su proyecto a través de Bizagi Studio.

Una vez abierto, existen dos maneras diferentes para otorgar permisos a un usuario para esta funcionalidad: Estableciendo el usuario como un administrador o autorizando a un usuario para usar la Encripción en la base de datos.

 

 

Primera opción: Estableciendo un usuario como un Administrador.

Esta opción permitirá al usuario usar la Encripción en la Base de Datos, así como delegar este permiso a otros usuarios.

Para hacer esto, lleve a cabo los siguientes pasos:

 

1.Navegue al módulo Seguridad de Bizagi Studio, ubicado en la pestaña Archivo y luego, dé clic en Seguridad de Bizagi Studio.

2.Haga Clic en la opción Configurar.

 

BizagiStudioSecurity

 

3.Añada el usuario al grupo Administrators, haciendo clic en en el botón Añadir usuario.

 

 

AddingUser

 

4.Asegúrese de marcar específicamente la casilla Incluir para especificar que este usuario tendrá privilegios de administrador.

 

IncludeUser

5.Haga Clic en Cerrar para aplicar los cambios.

 

note_pin

También puede escoger añadir un grupo al grupo de Administradores, siguiendo los mismos pasos anteriores pero usando el botón Añadir Grupo.

 

Segunda opción: Autorizando a un usuario para usar la Encripción de la Base de Datos.

Esta opción permitirá al usuario configurar la Encripción de la Base de Datos.

Para hacer esto, lleve a cabo lo siguiente:

 

1.En la vista de Experto, seleccione el módulo Entidades.

2.Haga clic derecho en el nodo raíz Entidades y seleccione la opción Seguridad:

 

SelectEntities

 

3.Agregue el usuario haciendo clic en el botón Adicionar Usuario.

Una vez incluido, asegúrese de seleccionar Permitir al privilegio llamado Encriptar Datos:

 

SelectUserAndEncrypt

 

4.Haga clic en Cerrar para aplicar los cambios.

 

note_pin

También puede escoger añadir un grupo al grupo de Administradores, siguiendo los mismos pasos anteriores pero usando el botón Añadir Grupo.

 

2. Establezca el algoritmo de cifrado y su llave

Siga los siguientes pasos para configurar el algoritmo de cifrado, el algoritmo de Hashing y la llave de cifrado.

 

2.1 Defina una llave para el algoritmo de cifrado a usar y guárdela en un archivo de texto plano.

Asegúrese que este archivo esté guardado en una ubicación de red disponible con acceso restringido.

 

En nuestro ejemplo, la llave tiene 32 caracteres y fue tomada de un GUID auto-generado:

 

KeyFileSample

 

2.2 Habilite la Encripción en la base de datos en Bizagi

Abra Bizagi Studio y seleccione la opción Entorno, localizada en la pestaña Configuración.

 

ConfEnvironment

 

2.3 Seleccione la opción Avanzado ubicada en el panel izquierdo y desplácese hasta Cryptography Options.

Recuerde que estas opciones se mostrarán para usuarios explícitamente autorizados para configurar esta funcionalidad (Como se describió en el primer paso).

 

CryptographyOptions

 

PROPIEDAD DE CONFIGURACIÓN

DESCRIPCIÓN

Algoritmo Hashing

Seleccione el algoritmo de Hashing usado para convertir la llave en un arreglo de bits. los algoritmos disponibles son: SHA1, SHA2.

Tenga en cuenta que SHA2 usará 256 bits (opuesto a SHA1 que usa 160) y por lo tanto, creará una definición más dispersa de la llave (más segura).

Algoritmo de encriptación

Seleccione el algoritmo que será usado por la llave establecida para cifrar la información.

Las opciones disponibles son:

DES

Triple DES 1

Triple DES 2

AES (recomendado), ya sea de 128, 192 o 256 bits.

Ubicación archivo llave

Especifique la localización del archivo Llave.

Recuerde que este campo debe ser una URL accesible desde el Servidor Bizagi. Puede especificar la URL como una de las opciones o ejemplos a continuación:

Una ruta local del Servidor Bizagi.

Una ruta a un servidor de archivos (p.ej, file://[your_file_server]/KeyFiles/KeyFile.txt)

Una URL HTTP o HTTPS (p.ej., https://[HTTP_Server]/SslText/KeyFile.txt)

Establecer las propiedades de autenticación

Marque esta opción para especificar las credenciales autorizadas para acceder al archivo Llave.

Si esta opción está desmarcada, Bizagi usará:

Para la configuración, las credenciales del usuario autenticado del Bizagi Studio.

Para la ejecución, las credenciales usadas por el Servidor Bizagi (p.ej, en IIS, la identidad definida por el pool de aplicaciones).

Usuario

Ingrese el nombre del usuario autorizado para acceder al archivo llave

(Aplica cuando está marcada la opción Establecer las propiedades de autenticación).

Contraseña

Ingrese la contraseña del usuario autorizado para acceder al archivo llave

(Aplica cuando está marcada la opción Establecer las propiedades de autenticación).

Dominio (opcional)

Ingrese el dominio del usuario autorizado para acceder al archivo llave

(Aplica cuando está marcada la opción Establecer las propiedades de autenticación).

 

2.4 Haga Clic en Aceptar para aplicar los cambios.

 

3. Configurar cuál información debe ser cifrada

Una vez haya configurado el algoritmo de cifrado y su llave, usted puede marcar cuáles atributos desea que sean establecidos como información cifrada.

 

Para hacer esto, defina cada atributo marcando la opción Cifrado:

 

 

AttributesEnc

 

 

note_pin

Tenga en cuenta que la encripción de atributos sólo puede realizarse en entidades paramétricas y maestras.

 

Ejemplo

Para explicar cómo establecer o agregar un Atributo Cifrado, el proceso previamente creado en Mi primer proceso (Vacation Request Process), será usado para ilustrar esto paso.

 

Vamos a asumir que el número de días disponibles va a ser un atributo que sólo puede ser consultado a través del Portal de Trabajo. Esta será la condición de negocio que hace necesario que Availabledays sea un atributo cifrado.

 

Cualquier usuario con el usuario y la contraseña de la Base de Datos puede ver la tabla donde se almacenan las solicitudes de vacaciones. (recuerde que las entidades creadas en el paso Modelo de datos, crearán una tabla en la Base de datos configurada para Bizagi Studio.)

 

DataBaseTransform

Sin establecer ningún atributo como cifrado, cualquier usuario, con las credenciales correctas, puede ver toda la información en claro:

 

QueryResult

 

Esta es una situación indeseada porque NumberOfDaysAvailable será un atributo que solo puede ser consultado a través del portal de trabajo y en este caso, el atributo puede ser consultado usando cualquier editor de SQL que tenga la conexión a la Base de Datos.

 

Para resolver esta situación, se definirá el atributo Availabledays como cifrado, para hacer esto:

 

1.Diríjase al paso 2 del Asistente de Procesos, llamado Modelo de Datos.

 

Wizard

 

2.Haga clic derecho en la entidad donde será agregado o establecido el atributo cifrado y seleccione la opción Editar Lista de Atributos.

 

RCVactationRequest

 

3.Se mostrará la lista de Atributos de la entidad. Seleccione el atributos que requiere ser establecido como cifrado.

 

Attributes

 

4.Marque la opción Cifrado, Esto ocultará los campos Valor por Defecto y Localizable si corresponde.

 

AttributesEnc

 

5.Haga clic en Finalizar para guardar y aplicar los cambios.

6.Guarde el Modelo de Datos.

 

note_pin

Cuando se agregan atributos a la lista, la opción para cifrarlos estará disponible cuando el tipo de datos seleccionado está disponible para ser cifrado.

 

En este punto, Bizagi habrá modificado la tabla correspondiente para establecer el campo seleccionado en los pasos anteriores como cifrado, si miramos en la Base de datos, la estructura de la tabla ahora se ve así:

 

EncryptedFields

 

El atributo Availabledays era de tipo int antes del proceso de cifrado y ahora es de tipo image. Y lo más importante, la información no es visible para el usuario que se autenticó en la Base de Datos.

 

EncryptedData

 

note_pin

El ejemplo anterior fue creado usando una Base de Datos SQL Server; el tipo de datos en una base de datos Oracle será BLOB.

Cuando se lanza el Portal de Trabajo, la información cifrada será descifrada antes de ser presentada al usuario, como se muestra en la siguiente imagen. De esta manera, hemos resuelto la situación potencialmente negativa que fue lanzada por la condición de negocio:

 

Portal

 

Consideraciones Importantes

Tenga en cuenta las siguientes consideraciones al planear utilizar esta funcionalidad.

 

1. Aplica para entidades de negocio.

Tenga en cuenta que la Encripción en la base de datos esta disponible para atributos en las entidades Maestras o Paramétricas.

Esto quiere decir que no se puede cifrar las propiedades de la entidad WFUser o cualquier otra del Sistema o de la Aplicación.

 

2. No todos los tipos de atributos se pueden encriptar.

Los tipos de datos soportados por la Encripción de la base de datos son:

Tiny integer (8 bits)

Small integer (16 bits)

Integer (32 bits)

Big integer (64 bits)

Real (4 bytes)

Float (8 bytes)

Currency (16 bytes)

String (hasta 2000 caracteres)

Long Text

Date Time

 

note_pin

Hay otros tipos de atributos como por ejemplo archivos o imágenes, los cuales por defecto ya están configurados para no ser legibles desde la base de datos.

 

3. Configuración soportada en formas con los atributos encriptados

Cuando se usa la Encripción en la base de datos para atributos de su modelo de datos, las siguientes acciones no son soportadas:

Usar el atributo como filtro para un control de búsqueda.

De manera similar, usar el atributo en búsquedas de reportes (queries).

Incluir el atributo como una columna personalizada mostrada en el resumen de la información del caso.

 

note_pin

La Encripción en la base de datos afecta el desempeño cuando se usa en listas desplegables que muestran información de fuentes de datos externas. Por lo tanto, considere y evalúe cuidadosamente su diseño de la interfaz gráfica y use esta funcionalidad cuando sea necesario.

 

 

4. Funcionalidad no reversible

Una vez  un atributo utiliza la encripción a nivel de base de datos y ha sido publicado a un ambiente de producción, no será posible reversar su funcionalidad de manera que sea cambiado para no usarse de manera encriptada.

Esto significa que no podrá activar la funcionalidad para un atributo que ya esté en producción sin la funcionalidad, o igualmente no podrá desactivarla para un atributo funcionando con la misma en producción.

 

En caso de que necesite empezar o dejar de usar esta funcionalidad, deberá crear una nueva versión de proceso donde se asegure que su modelo de datos utilice ahora un nuevo atributo donde se use o se deje de usar la funcionalidad.