Uno de los principales retos con los que nos encontramos a la hora de configurar WSO2 es la información privilegiada que añadimos a los propios archivos de configuración, como un usuario que queremos que nadie conozca, o una contraseña a la que solo una persona tenga acceso. Además, al configurar un servicio, definimos información que no queremos que sea detectable. Entonces, ¿qué soluciones proporciona WSO2?
¿Qué es el Secure Vault?
El Secure Vault de WSO2, es una herramienta que permite:
- Cifrar valores en los ficheros de configuración.
- Y, crear un alias, con unos valores encriptados, que sustituyen a valores no encriptados, como contraseñas de base de datos o del usuario admin, en los ficheros de configuración.
Esta herramienta de WSO2 se crea con el objetivo de dar una capa extra para la protección de ciertas credenciales que no queremos que cualquiera, que tenga acceso a los ficheros de configuración, conozca su valor. Secure Vault se puede emplear para diferentes valores, bien sean usuarios, contraseñas, conexiones a base de datos, etc. Cualquier valor que nosotros deseemos. Por tanto, es una herramienta muy necesaria para la seguridad de los datos de las empresas.
Elementos del Secure Vault
Cipher Tool
El Secure Vault está formado por diferentes elementos, en su mayoría, ficheros de configuración. El más importante de todos ellos es, sin lugar a duda, el Cipher Tool. El Cipher Tool es un script, que dependiendo del sistema operativo en el que se ejecute, tenemos el ciphertool. sh para Linux o el ciphertool.bat para Windows. Este script emplea un almacén claves (KeyStore), wso2carbon. jks, con este almacén de claves, la herramienta encriptará los valores que vayamos definiendo y podremos emplearlo mediante alias.
El resto de los elementos que componen el Secure Vault son:
Secret Respository
Se utiliza para almacenar los valores secretos cifrados. Por defecto, estos valores antes de ser activado el Cipher Tool, vienen en claro, pero pasan a estar cifrados después de activarlo. El fichero de configuración donde se almacenan estos valores, es el “cipher text.properties”, ubicado en “${carbon.home}/conf/security/”. En este fichero definiremos unos alias y su respectiva contraseña, tal y como se ve en la imagen siguiente:
En esta imagen observamos cómo están definidos unos alias (letras en azul) y unos valores entre corchetes, estos valores pasan a estar cifrados, después de activar el Cipher Tool.
Además de este fichero de configuración, se nos proporciona otro fichero de configuración “cipher-tool. properties”, ubicado en “${carbon.home}/conf/security”. Este fichero de configuración es donde definimos los alias que hemos nombrado anteriormente, y mediante xpath, la ruta donde se encuentra dicha contraseña o valor que posteriormente cifraremos.
Secret Manager
Nos especifica la configuración de la herramienta Cipher Tool, para cifrar los valores que hemos definidos en el Secret Repository. Tales configuraciones como el tipo de fichero, la ruta donde se encuentra ese fichero, la contraseña, su alias, el almacén de claves (KeyStore), etc. Es decir, toda la información que ha empleado la herramienta del Cipher Tool para encriptar los valores. Este fichero es el “secret-conf.properties” que lo podemos encontrar en “${carbon.home}/conf/security”. Este fichero existe por defecto, pero vienen todas sus líneas comentadas, pero cuando iniciamos el Cipher Tool, es cuando este fichero cobra importancia, ya que se definen ciertas configuraciones.
Secret Callback
Nos proporciona la contraseña real para un alias determinado. Hay un SecretManagerSecretCallbackHandler, que se combina con Secret Manager para resolver el secreto. Cualquier devolución de llamada se puede escribir implementando la clase SecretCallbackHandler.
-Este artículo te puede interesar-
Secret Resolver
Cualquier creador de configuración que use información secreta dentro de su propio archivo de configuración, debe inicializar el Secret Resolver al construir su propia configuración. Secret Resolver mantiene una lista de elementos seguros que deben definirse en el archivo de configuración con alias secretos. Secret Resolver inicializa la clase de controlador Secret Callback, que se define en el archivo de configuración.
Si quieres saber cómo Chakray puede ayudarte a adoptar esta solución ¡contáctanos!