Encriptación del Repositorio

Nuxeo, el ECM open source en el que se basa Athento ECM, permite encriptar los documentos almacenados. Esto se permite tanto en la implantación on-premise como en la versión cloud.

Cifrado AES del Sistema de Archivos

Los archivos o ficheros almacenados por el gestor documental, también conocidas como binarios, se almacenan utilizando la abstracción BinaryManager. Hay varias maneras de configurar el cifrado en función del BinaryManager.

Es posible utilizar un BinaryManager que cifra los archivos usando un algoritmo AES. Existen dos modos posibles:

 

  • Una clave fija AES que se recupera desde un almacén de claves de Java (Java KeyStore)
  • Una clave AES derivada de una contraseña legible por humanos utilizando el mecanismo de PBKDF2 (en cuyo caso cada archivo cifrado contiene un salt diferente por razones de seguridad).

 

El desarrollador podrá elegir pues el método a usar y sus parámetros, proporcionando las opciones de congirugación de la variable key=  en  <binaryManager class="" key =""...> de la configuración del repositorio.

 

La configuración tiene la forma key1 = value1,key2 = value2, ... donde las claves posibles, para el uso de KeyStore Java, son:

 

  •     keyStoreType: el tipo de almacén de claves, por ejemplo JCEKS
  •     keyStoreFile: la ruta de acceso al almacén de claves, en su caso
  •     keyStorePassword: la contraseña del almacén de claves
  •     keyAlias: el alias (nombre) de la llave en el almacén de claves
  •     keyPassword: la contraseña de clave

 

Y para su uso con PBKDF2:

  • password: contraseña

 

El BinaryManager y sus opciones se establecen en nuxeo.conf:

nuxeo.core.binarymanager=org.nuxeo.ecm.core.blob.binary.AESBinaryManager
nuxeo.core.binarymanager_key=keyStoreType=JCEKS,keyStoreFile=/etc/keystore.jceks,keyStorePassword=changeit,keyAlias=mykey,keyPassword=changeittoo
#or
nuxeo.core.binarymanager_key=password=mypassword

Por defecto Java viene con un módulo Java Cryptographic Extension (JCE) configurado para 128 bits de longitud de clave máxima, mientras que la Athento necesita, al menos, claves de 256 bits para conseguir una adecuada seguridad AES. El código de la plataforma intenta evitar estas restricciones de forma automática para forzar la JCE a permitir una longitud de clave ilimitada.

Si consigue forzarla, se obtendrá una excepción  java.security.InvalidKeyException. En ese caso, debe descargar Java Cryptography Extension (JCE) Ilimitado desde Oracle Java SE.