Balizas - AWS SDK de cifrado de bases de datos

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Balizas

Se cambió el nombre de nuestra biblioteca de cifrado del lado del cliente por el de SDK de cifrado de AWS bases de datos. En esta guía para desarrolladores, se sigue proporcionando información sobre el cliente de cifrado de DynamoDB.

Una baliza es una etiqueta de código de autenticación de mensajes basado en hash (HMAC) truncada que crea un mapa entre el valor de texto no cifrado escrito en un campo y el valor cifrado que está realmente almacenado en la base de datos. La baliza no altera el estado cifrado del campo. La baliza calcula un HMAC sobre el valor de texto no cifrado del campo y lo almacena junto con el valor cifrado. Esta salida del HMAC coincide uno a uno (1:1) con el valor de texto no cifrado de ese campo. La salida del HMAC se trunca para que varios valores de texto no cifrado distintos se asignen a la misma etiqueta HMAC truncada. Estos falsos positivos limitan la capacidad de un usuario no autorizado para identificar información distintiva sobre el valor del texto no cifrado.

Las balizas solo se pueden crear a partir de campos marcados ENCRYPT_AND_SIGN o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT en tus SIGN_ONLY acciones criptográficas. La baliza en sí no está firmada ni cifrada. No se puede construir una baliza con campos marcados DO_NOTHING.

El tipo de baliza que configure determinará el tipo de consultas que podrá realizar. Existen dos tipos de balizas que admiten el cifrado para búsquedas. Las balizas estándar realizan búsquedas de igualdad. Las balizas compuestas combinan cadenas literales de texto no cifrado y balizas estándar para realizar operaciones complejas de bases de datos. Después de configurar las balizas, debe configurar un índice secundario para cada baliza antes de poder buscar en los campos cifrados. Para obtener más información, consulte Configurar índices secundarios con balizas.

Balizas estándar

Las balizas estándar son la forma más sencilla de implementar el cifrado para búsquedas en su base de datos. Solo pueden realizar búsquedas de igualdad para un único campo virtual o cifrado. Para obtener información sobre cómo configurar balizas estándar, consulte Configuración de balizas estándar.

El campo a partir del cual se construye una baliza estándar se denomina la fuente de baliza. Identifica la ubicación de los datos que la baliza necesita mapear. La fuente de la baliza puede ser un campo cifrado o un campo virtual. La fuente de baliza de cada baliza estándar debe ser única. No puede configurar dos balizas con la misma fuente de baliza.

Las balizas estándar se pueden utilizar para realizar búsquedas de igualdad en un campo cifrado o virtual. O bien, se pueden usar para construir balizas compuestas para realizar operaciones de bases de datos más complejas. Para ayudarlo a organizar y administrar las balizas estándar, el SDK de cifrado de AWS bases de datos proporciona los siguientes estilos de balizas opcionales que definen el uso previsto de una baliza estándar. Para obtener más información, consulte Definición de estilos de baliza.

Puede crear una baliza estándar que realice búsquedas de igualdad para un único campo cifrado, o puede crear una baliza estándar que realice búsquedas de igualdad en la concatenación de varios SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT campos y ENCRYPT_AND_SIGNSIGN_ONLY, creando un campo virtual.

Campos virtuales

Un campo virtual es un campo conceptual creado a partir de uno o más campos de origen. Al crear un campo virtual no se graba un campo nuevo en el registro. El campo virtual no se almacena de forma explícita en la base de datos. Se utiliza en la configuración de baliza estándar para dar instrucciones a la baliza sobre cómo identificar un segmento específico de un campo o concatenar varios campos de un registro para realizar una consulta específica. Un campo virtual requiere al menos un campo cifrado.

nota

El siguiente ejemplo muestra los tipos de transformaciones y consultas que se pueden realizar con un campo virtual. En la aplicación, es posible que los campos de ejemplo utilizados en este ejemplo no cumplan con las recomendaciones de unicidad de distribución y correlación para las balizas.

Por ejemplo, si desea realizar búsquedas de igualdad en la concatenación de los campos FirstName y LastName, puede crear uno de los siguientes campos virtuales.

  • Un campo virtual NameTag, construido a partir de la primera letra del campo FirstName, seguida del campo LastName, todo en minúsculas. Este campo virtual le permite realizar consultas NameTag=mjones.

  • Un campo virtual LastFirst, que se construye a partir del campo LastName, seguido del campo FirstName. Este campo virtual le permite realizar consultas LastFirst=JonesMary.

O bien, si desea realizar búsquedas de igualdad en un segmento específico de un campo cifrado, cree un campo virtual que identifique el segmento que desea consultar.

Por ejemplo, si desea consultar un campo IPAddress cifrado con los tres primeros segmentos de la dirección IP, cree el siguiente campo virtual.

  • Un campo virtual IPSegment, construido a partir de Segments(‘.’, 0, 3). Este campo virtual le permite realizar consultas IPSegment=192.0.2. La consulta devuelve todos los registros con un valor IPAddress que comienza por “192.0.2”.

Los campos virtuales deben ser únicos. No se pueden construir dos campos virtuales a partir exactamente de los mismos campos de origen.

Para obtener ayuda para configurar los campos virtuales y las balizas que los utilizan, consulte Creación de un campo virtual.

Balizas compuestas

Las balizas compuestas crean índices que mejoran el rendimiento de las consultas y permiten realizar operaciones de base de datos más complejas. Puede utilizar balizas compuestas para combinar cadenas literales de texto no cifrado y balizas estándar para realizar consultas complejas en registros cifrados, como consultar dos tipos de registros diferentes desde un único índice o consultar una combinación de campos con una clave de clasificación. Para ver más ejemplos de soluciones de baliza compuesta, consulte Elegir un tipo de baliza.

Las balizas compuestas se pueden construir a partir de balizas estándar o de una combinación de balizas estándar y campos señalizados. Se construyen a partir de una lista de piezas. Todas las balizas compuestas deben incluir una lista de partes cifradas que identifique los ENCRYPT_AND_SIGN campos incluidos en la baliza. Cada ENCRYPT_AND_SIGN campo debe identificarse mediante una baliza estándar. Las balizas compuestas más complejas también pueden incluir una lista de partes firmadas que identifique el texto sin formato SIGN_ONLY o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT los campos incluidos en la baliza, y una lista de partes constructivas que identifique todas las formas posibles en que la baliza compuesta puede ensamblar los campos.

nota

El SDK AWS de cifrado de bases de datos también admite balizas firmadas que se pueden configurar completamente a partir de texto sin formato SIGN_ONLY y campos. SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Las balizas firmadas son un tipo de baliza compuesta que indexan y realizan consultas complejas en campos firmados, pero no cifrados. Para obtener más información, consulte Crear balizas firmadas.

Para obtener ayuda para configurar balizas compuestas, consulte Configuración de balizas compuestas.

La forma en que configure su baliza compuesta determina los tipos de consultas que puede realizar. Por ejemplo, puede hacer que algunas partes cifradas y firmadas sean opcionales para permitir una mayor flexibilidad en sus consultas. Para obtener más información sobre los tipos de consultas que pueden realizar las balizas compuestas, consulte Balizas de consulta.