Cifrado de aplicación

La funcionalidad que se describe en esta sección permite a las implantaciones configurar campos para el cifrado durante el almacenamiento en la base de datos. Esta funcionalidad y la de máscara de interfaz de usuario descrita en la sección anterior son mutuamente excluyentes. Esta característica soporta el cifrado de elementos específicos almacenados dentro de una columna CLOB o XML.

Los puntos siguientes resaltan las características de la funcionalidad de cifrado:

  • La clave de cifrado se define utilizando un almacén de claves, que deberá configurarse para poder utilizar esta funcionalidad. Para obtener más detalles acerca de la configuración del almacén de claves en el sistema, consulte la guía de instalación.

  • Cuando se configura un campo para su cifrado, los datos cifrados se almacenan en un campo de cifrado especial que no es el campo de origen (el que se muestra al usuario en la interfaz). El campo de origen captura los datos con la máscara aplicada. Para soportar el cifrado será necesario un campo especial; por ello, el producto deberá soportar el cifrado de dicho campo.

  • Para aquellos datos cifrados que deben permitir la búsqueda, el sistema soporta la captura de un valor con hash en un campo especial. El producto debe soportar esta funcionalidad. Además de ofrecer un campo especial para capturar el valor con hash, la funcionalidad de búsqueda base para estos datos también deberá admitir esta configuración.

  • El sistema soporta el cifrado de datos que se capturan como un elemento dentro de un campo XML. Si el campo XML se incluye en un esquema propiedad del producto, este deberá ofrecer soporte específico para la captura de los datos cifrados.

En las secciones siguientes se incluye información adicional sobre el soporte para el cifrado que ofrece el marco. Para obtener más información, consulte el capítulo de seguridad de la guía de administración relativa a su producto particular.

Cifrado y máscara de datos

Cuando un producto permite el cifrado de un tipo de datos indicado, deberá crearse un campo de cifrado especial para capturar el valor cifrado. El cifrado es opcional, por lo que el campo de origen (el que se muestra al usuario) no deberá ser este campo cifrado especial. Si se configura el cifrado, el sistema rellenará de forma interna el campo cifrado. El campo de origen se rellenará por defecto con asteriscos. De esta forma, los datos con máscara son los que se muestran al usuario en la página, en lugar del valor cifrado.

En los puntos siguientes se resalta el comportamiento del sistema cuando se configura o no el cifrado. Supongamos, como ejemplo, que el campo corresponde a un número de tarjeta de crédito. El usuario ve y rellena un campo con nombre CC_​NBR. La tabla incluye también un segundo campo, ENCR_​CC_​NBR. Un usuario rellena el número de la tarjeta de crédito:

  • Si no se ha configurado el cifrado, CC_​NBR se actualizará con el número de tarjeta de crédito introducido; ENCR_​CC_​NBR estará vacío. Tenga en cuenta que, en este caso, una implantación podría elegir la configuración de una máscara de interfaz de usuario.

  • Si se configura el cifrado, CC_​NBR se actualizará con ‘*******************’ y ENCR_​CC_​NBR contendrá el valor cifrado. Los asteriscos del campo estándar ocuparán la totalidad del campo hasta un máximo de 50 caracteres.

Si, por algún motivo, no se desea enmascarar el campo completo con asteriscos, el sistema soporta un algoritmo de máscara explícito utilizando el mismo hueco de plug-in de Configuración de funciones - Máscara de datos que se utiliza para la máscara de interfaz de usuario.

Aviso: a diferencia de lo que ocurre con la máscara de interfaz de usuario, la máscara de los campos cifrados no está controlada por la seguridad. Deberá aplicarse la máscara a todos los datos almacenados en el campo de origen para los datos cifrados. Asegúrese de que no se configura la lógica de autorización de seguridad en los algoritmos que se utilizan para este tipo de máscara.

Configuración de opción de función

Cree una configuración de función con un tipo de función Cifrado. Para cada campo de origen que esté cifrando, introduzca una opción con tipo Cifrado de campo. El valor contendrá abreviaciones nemotécnicas que harán referencia al alias de clave de cifrado definido en el almacén de claves, junto con la configuración relacionada con el campo y su ubicación en la tabla. A diferencia de la máscara de datos de interfaz de usuario, la configuración para el cifrado de datos está relacionada con el modo en que se almacenan los datos, en lugar de cómo se presentan. Además, cada entrada puede definir un algoritmo de máscara explícito para sustituir el valor por defecto y, si se soporta, también se puede definir un campo con hash y un alias con hash.

Para los datos que se almacenan en una columna específica de una tabla, deberá existir un campo explícito para capturar el valor cifrado. Se indica el nombre de la tabla, el nombre del campo de origen y el nombre del campo cifrado junto con el alias: table='table_​name', field='fld_​name', encryptedField='encr_​fld_​name', alias='alias key'

También se puede especificar una cláusula "where" cuando los datos residan en una tabla secundaria y solo sea necesario cifrar datos de determinado tipo.

Ejemplo: table='CI_​PER_​ID', field='PER_​ID_​NBR', encryptedField='ENCR_​PER_​ID_​NBR', alias='key alias', where='ID_​TYPE_​CD='SSN''

Para aquellos datos que se almacenan en una columna XML de un registro, el campo de origen por cifrar deberá hacer referencia a un campo de nombre de metadatos, junto con el elemento que captura los datos cifrados y el alias: field='field_​name', encryptedField='encr_​field_​name', alias='key alias'

La sintaxis para añadir una referencia a un algoritmo de máscara es maskAlg='algorithm name' .

La sintaxis para añadir la configuración con el fin de capturar un valor con hash para búsquedas es hashAlias='hashAliasKey' hashField='HASH_​FLD_​NAME'.

A continuación, se incluye un ejemplo de la configuración que utiliza todas las opciones posibles (algoritmo de máscara específico, donde se soportan la cláusula y el campo con hash):

table='CI_​​PER_​​ID', field='PER_​​ID_​​NBR', alias='aliasKey', encryptedField='ENCR_​​PER_​​ID_​​NBR', hashAlias='hashAliasKey' hashField='HASH_​​PER_​​ID_​​NBR', where='ID_​​TYPE_​​CD=SSN', maskAlg='CM-PERIDMASK'

Búsqueda por valor cifrado

Si el producto soporta un valor con hash para un campo cifrado con fines de búsqueda, en los puntos siguientes podrá consultar la configuración de la zona del explorador para esta finalidad

  • El valor de filtro de usuario debe hacer referencia al campo de origen e incluir una abreviación nemotécnica encrypt= adicional. Por ejemplo

    type=STRING
    label=PER_ID_NBR 
    encrypt=[CI_PER_ID,PER_ID_NBR,ID_TYPE_CD,F1]

    Consulte Filtros de usuario para obtener más información.

  • El SQL debe incluir el valor con hash en la cláusula WHERE. Debe tenerse en cuenta que, al ser opcional el cifrado, una zona que incluya la búsqueda por un producto elegible para el cifrado, incluirá la búsqueda de coincidencias para el filtro en el campo de origen (como texto sin formato) o en el campo con hash. Por ejemplo:

    WHERE
       [(F2) (ID.PER_ID_NBR =:F2 OR ID.HASH_PER_ID_NBR = :F2)]

Personalización del algoritmo de cifrado

Aunque el algoritmo de cifrado que se utilizará con una clave indicada se puede obtener a partir de la clave del almacén de claves, en ocasiones hay información adicional asociada con un algoritmo que podría utilizarse para cifrar o descifrar los datos.

El sistema proporciona una opción de configuración de función para el tipo de función Cifrado, con un tipo de opciónInformación de algoritmo, que se puede utilizar para ajustar el comportamiento del cifrado.

  • El modo por defecto y el relleno del algoritmo de cifrado se pueden modificar.

  • Si se va a utilizar una clave para firmar de modo digital cualquier objeto, el algoritmo de firma también se podrá especificar para la clave.

Para obtener más detalles sobre la sintaxis, consulte la descripción detallada del tipo de opción de la función.