Un Vistazo a la Seguridad en Plataforma
Intro
Entendiendo la plataforma como la herramienta centralizadora de toda la información, es crítico garantizar la privacidad y seguridad de los datos almacenados y/o gestionados en ella.
En un entorno compartido de recursos, se debe garantizar el envío y la recepción segura de datos mediante la autenticación de los elementos que generan los datos de los que se nutre la plataforma y de las aplicaciones que leerán de ella.
Los usuarios de la plataforma serán personas o aplicaciones, por lo que es necesario clasificar el tipo de acceso en función del rol que cada uno desempeña dentro del sistema, limitando la información que se mostrará a cada uno de los usuarios, los informes y cuadros de mando que pueden ver y las acciones que pueden realizar dentro de la plataforma.
La seguridad es una parte fundamental de la plataforma. La plataforma cumple plenamente con la normativa vigente en materia de seguridad y protección de datos, así como con el Esquema Nacional de Seguridad.
La plataforma puede proporcionar mecanismos de autenticación, autorización (por roles) y cifrado (información encriptada), tanto en la transferencia de información desde los sistemas y dispositivos a la plataforma, como en el consumo de la información almacenada. Esto garantiza la confidencialidad e integridad de la información almacenada.
Funcionalidades
La seguridad y la privacidad de la plataforma están garantizadas a varios niveles:
Perfiles de acceso: el acceso a la plataforma admite la diferenciación de roles. Así, se puede gestionar fácilmente qué usuarios tienen acceso a qué información.
Autenticación de los clientes de la plataforma: soporta varios protocolos.
Privacidad de los datos: permite configurar niveles de privacidad en la información. Por defecto, la información (ontologías) puede ser pública o privada, es decir, visible para todo el mundo o sólo para el "propietario" de esa ontología. La plataforma también permite que el propietario de cada ontología proporcione a determinados usuarios permisos de lectura, escritura o ambos sobre sus ontologías, o si lo prefiere, incluso puede decidir hacer públicas sus ontologías para que sean visibles para todos los usuarios de la plataforma, fomentando así la colaboración.
Comunicación segura y confidencial: la plataforma puede configurarse para soportar únicamente la comunicación SSL. La plataforma se configurará para soportar la comunicación con certificados a nivel de identificación y autenticación, y actuar. Estos certificados pueden ser emitidos por cualquier entidad certificadora autorizada.
Extensibilidad: para escenarios que requieran configuraciones específicas de seguridad, y como característica adicional, la plataforma permite el desarrollo de plugins para adaptar la seguridad de la plataforma (por ejemplo, para SSO).
Identity Manager
Todos los elementos de la plataforma están asegurados por un Gestor de Identidades que, por defecto, proporciona el modelo de seguridad nativo de la plataforma basado en OAuth2, pero es extensible mediante plugins para conectarse a los servicios de directorio o autenticación existentes que demande la organización.
Ofrecemos 2 sabores de este Gestor de Identidades:
Base: desarrollo a medida sobre Spring Cloud Security: Base IM
Avanzado: construido sobre Keycloak. Más información sobre: Advanced IM
Roles
La plataforma admite diferentes roles en función del uso que cada usuario hará de ella y de su información.
Los roles contemplados son:
Administrador: Corresponde a un administrador de la plataforma.
Analista: Perfil de científico de datos, que habilita herramientas específicas.
Visor de datos: Perfil de consulta de datos y visualización de cuadros de mando.
Desarrollador: Desarrollador de proyectos en la plataforma.
DevOps y Operaciones: Perfiles de soporte para el desarrollo y las operaciones del proyecto en la plataforma.
Socio: Socio de la plataforma, es el propietario de un producto de comercialización conjunta.
SysAdmin: Administrador del sistema. Puede realizar determinados cambios de configuración.
Usuario: Usuario sin privilegios, básicamente puede comprobar los elementos a los que otros usuarios le han autorizado.
Proyectos y Realms
La plataforma como elemento de soporte para el desarrollo de aplicaciones, proporciona los conceptos de Proyecto y Realm.
Un Proyecto proporciona a un grupo de usuarios implicados en un mismo proyecto de desarrollo un entorno colaborativo en la plataforma donde comparten los diferentes elementos asociados al proyecto (entidades de datos, modelos de dispositivos, Dashboards...). Asociados al proyecto, pueden crear lo que se denomina Realm. Un Realm proporciona una infraestructura de autenticación y perfilado al proyecto, que incluye
Definición de los roles específicos del proyecto (independientes de los de la plataforma).
Importación de los usuarios que pueden utilizar el proyecto (desde la plataforma o el directorio corporativo).
Asociación de usuarios a los roles del proyecto.
Servicio de login OAuth para integrarse con el login de la aplicación.
De esta forma, los proyectos desarrollados en la plataforma se liberan de la integración con los servicios de autenticación de la organización.
Encriptación de los atributos de las ontologías
La Plataforma permite encriptar los datos almacenados en los atributos de las ontologías.
Para utilizarlo:
En la ontología hay que marcar que contiene atributos encriptados, a través del Asistente.
Cada atributo a encriptar debe ser marcado como tal en el asistente de creación de ontologías.
Cuando un dato de una ontología encriptada llega al broker, éste se encarga de encriptar los atributos marcados como tales.
La Plataforma ofrece una implementación base de Encryptor on Platform, que es la parte responsable de las acciones de encriptación/desencriptación, que utiliza lo siguiente
Encriptación AES de 128 bits, más concretamente AES / CBC / PKCS5PADDING
La clave de cifrado (KEY) y el vector de inicialización (IV) se cargan desde un archivo de configuración interno de la plataforma, y se utilizan los mismos valores para todas las ontologías
La parte del encriptador puede ser sustituida por el mecanismo de plugins que ofrece la plataforma (Ver ¿Cómo crear Plugins para Módulos de Plataforma?), pudiendo desarrollar una parte que se conecte a un HSM como Key Vault para obtener las claves de cifrado e IV de forma externa y segura.