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.
Verificación de datos en Amazon QLDB
importante
Aviso de fin del soporte: los clientes actuales podrán utilizar Amazon QLDB hasta que finalice el soporte, el 31 de julio de 2025. Para obtener más información, consulte Migración de un Amazon QLDB Ledger a Amazon Aurora SQL Postgre
Con AmazonQLDB, puede confiar en que el historial de cambios en los datos de su aplicación es preciso. QLDButiliza un registro transaccional inmutable, conocido como diario, para almacenar los datos. El diario realiza un seguimiento de cada cambio en los datos confirmados y mantiene un historial de cambios completo y que se pueda verificar con el paso del tiempo.
QLDButiliza la función hash SHA -256 con un modelo basado en el árbol de Merkle para generar una representación criptográfica del diario, conocida como resumen. El resumen actúa como una firma única de todo el historial de cambios de sus datos en un momento dado. El resumen se utiliza para comprobar la integridad de las revisiones de los documentos en relación con esa firma.
Temas
- ¿Qué tipo de datos puede verificar? QLDB
- ¿Qué significa integridad de los datos?
- ¿Cómo funciona la verificación?
- Ejemplo de verificación
- ¿Cómo afecta la redacción de los datos a la verificación?
- Introducción a las verificaciones
- Paso 1: Solicitar un resumen en QLDB
- Paso 2: Verificar los datos en QLDB
- Resultados de verificación
- Tutorial: Verificar datos mediante un AWS SDK
- Errores comunes de verificación
¿Qué tipo de datos puede verificar? QLDB
EnQLDB, cada libro mayor tiene exactamente un diario. Un diario puede tener varias cadenas, que son particiones del diario.
nota
QLDBactualmente admite diarios con una sola cadena.
Un bloque es un objeto que se asigna a la cadena del diario durante una transacción. Este bloque contiene objetos de entrada, que representan las revisiones de documentos resultantes de la transacción. Puede verificar una revisión individual o un bloque completo de diariosQLDB.
El siguiente diagrama ilustra la estructura de este diario.
![Diagrama de estructura de Amazon QLDB Journal que muestra un conjunto de bloques encadenados que forman una cadena, y el número de secuencia y el hash de cada bloque.](images/verification/journal-structure.png)
El diagrama muestra que las transacciones se registran en el diario como bloques que contienen entradas de revisión de documentos. También muestra que cada bloque está encadenado a los bloques subsiguientes y tiene un número de secuencia para especificar su dirección dentro de la cadena.
Para obtener información sobre el contenido de los datos en un bloque, consulte Contenido de revistas en Amazon QLDB.
¿Qué significa integridad de los datos?
La integridad de los datos QLDB significa que el diario de tu libro mayor es, de hecho, inmutable. En otras palabras, sus datos (específicamente, cada revisión de un documento) se encuentran en un estado en el que se cumple lo siguiente:
-
Se encuentran en el mismo lugar de su diario en el que se escribieron por primera vez.
-
No se han modificado de ninguna manera desde que se escribieron.
¿Cómo funciona la verificación?
Para entender cómo funciona la verificación en AmazonQLDB, puedes dividir el concepto en cuatro componentes básicos.
Hashing
QLDBusa la función hash criptográfica SHA -256 para crear valores hash de 256 bits. Un hash actúa como una firma única de longitud fija de cualquier cantidad arbitraria de datos de entrada. Si cambia cualquier parte de la entrada (incluso un solo carácter o un bit), el hash de salida cambia por completo.
El siguiente diagrama muestra que la función hash SHA -256 crea valores hash completamente únicos para dos QLDB documentos que difieren solo en un dígito.
![Diagrama que muestra que la función hash criptográfica SHA -256 crea valores hash completamente únicos para dos QLDB documentos que difieren solo en un dígito.](images/sha256.png)
La función hash SHA -256 es unidireccional, lo que significa que no es matemáticamente factible calcular la entrada cuando se da una salida. El siguiente diagrama muestra que no es posible calcular el QLDB documento de entrada cuando se le da un valor hash de salida.
![Diagrama que muestra que no es posible calcular el QLDB documento de entrada cuando se le da un valor hash de salida.](images/sha256-one-way.png)
Las siguientes entradas de datos se codifican con un hash QLDB para fines de verificación:
-
Revisiones del documento
-
Instrucciones PartiQL
-
Entradas de revisión
-
Bloques de diario
Resumir
Un resumen es una representación criptográfica de todo el diario de su libro mayor en un momento dado. Un diario es solo apéndice, y los bloques del diario están secuenciados y encadenados de forma similar a las cadenas de bloques.
Puede solicitar un resumen de un libro mayor en cualquier momento. QLDBgenera el resumen y se lo devuelve como un archivo de salida seguro. Luego, use ese resumen para verificar la integridad de las revisiones de los documentos que se realizaron en un momento anterior. Si se vuelven a calcular las divisiones empezando por una revisión y finalizando por el resumen, se demuestra que los datos no se han modificado en el transcurso.
Árbol de Merkle
A medida que aumenta el tamaño del libro mayor, resulta cada vez más ineficiente volver a calcular toda la cadena de hash del diario para su verificación. QLDButiliza un modelo de árbol de Merkle para abordar esta ineficiencia.
Un árbol de Merkle es una estructura de datos de árbol en la que cada nodo de hoja representa un hash de un bloque de datos. Cada nodo que no es hoja es un hash de sus nodos secundarios. Comúnmente utilizado en las cadenas de bloques, un árbol de Merkle ayuda a verificar de manera eficiente grandes conjuntos de datos con un mecanismo a prueba de auditorías. Para obtener más información sobre los árboles de Merkle, consulte la página de Wikipedia sobre los árboles de Merkle
La QLDB implementación del árbol de Merkle se construye a partir de la cadena de hash completa de una revista. En este modelo, los nodos de hoja son el conjunto de todos los hashes de revisión de los documentos individuales. El nodo raíz representa el resumen de todo el diario en un momento dado.
Con una prueba de auditoría de Merkle, puede verificar una revisión consultando solo un pequeño subconjunto del historial de revisiones de su libro mayor. Para ello, recorra el árbol desde un nodo de hoja determinado (revisión) hasta su raíz (resumen). A lo largo de esta ruta transversal, se comprimen de forma recursiva pares de nodos hermanos para calcular su hash principal hasta terminar con el resumen. Este recorrido tiene una complejidad temporal de nodos log(n)
del árbol.
Prueba
Una prueba es la lista ordenada de hashes de nodos que QLDB se obtiene para un resumen y una revisión de un documento determinados. Consiste en los hashes que requiere un modelo de árbol de Merkle para encadenar el hash del nodo de hoja dado (una revisión) al hash raíz (el resumen).
Al cambiar los datos confirmados entre una revisión y un resumen, se rompe la cadena de hash del diario y no se puede generar una prueba.
Ejemplo de verificación
El siguiente diagrama ilustra el modelo de árbol QLDB hash de Amazon. Muestra un conjunto de hashes de bloques que se acumulan hasta el nodo raíz superior, que representa el resumen de una cadena del diario. En un libro mayor con un diario de cadena única, este nodo raíz también es el resumen de todo el libro mayor.
![Diagrama del árbol de QLDB hash de Amazon para un conjunto de hashes de bloques en una cadena de diario.](images/verification/hash-tree.png)
Supongamos que el nodo A es el bloque que contiene la revisión del documento cuyo hash desea verificar. Los siguientes nodos representan la lista ordenada de hashes que aparece QLDB en la prueba: B, E, G. Estos hashes son necesarios para volver a calcular el resumen a partir del hash A.
Para volver a calcular el resumen, haga lo siguiente:
-
Comience con el hash A y concaténelo con el hash B. Luego, transforme en hash el resultado para calcular D.
-
Use D y E para calcular F.
-
Use F y G para calcular el resumen.
La verificación se realiza correctamente si el resumen recalculado coincide con el valor esperado. Con un hash de revisión y un resumen, no es posible aplicar ingeniería inversa a los códigos hash de una prueba. Por lo tanto, este ejercicio demuestra que su revisión se escribió realmente en la ubicación de este diario en relación con el resumen.
¿Cómo afecta la redacción de los datos a la verificación?
En AmazonQLDB, una DELETE
declaración solo elimina un documento de forma lógica al crear una nueva revisión que lo marca como eliminado. QLDBtambién admite una operación de redacción de datos que permite eliminar permanentemente las revisiones de documentos inactivas del historial de una tabla.
La operación de redacción elimina solo los datos de usuario de la revisión especificada, sin alterar el diario ni los metadatos del documento. Una vez redactada una revisión, los datos de usuario de la revisión (representados por la estructura data
) se sustituyen por un campo dataHash
nuevo. El valor de este campo es el hash de Amazon Ion de la estructura data
eliminada. Para obtener más información y ver un ejemplo de operación de redacción, consulte Editar revisiones de documentos.
Como resultado, el libro mayor mantiene la integridad general de sus datos y sigue siendo verificable criptográficamente mediante las operaciones de verificación existentes. API Puede seguir utilizando estas API operaciones según lo previsto para solicitar un resumen (GetDigest), solicitar una prueba (GetBlocko GetRevision) y, a continuación, ejecutar el algoritmo de verificación con los objetos devueltos.
Recalcular un hash de revisión
Si planea verificar una revisión de un documento individual recalculando su hash, debe comprobar condicionalmente si la revisión se ha redactado. Si la revisión se redactó, puede usar el valor hash que se proporciona en el campo dataHash
. Si no estaba redactada, puede volver a calcular el hash utilizando el campo data
.
Al realizar esta comprobación condicional, puede identificar las revisiones redactadas y tomar las medidas adecuadas. Por ejemplo, puede registrar los eventos de manipulación de datos con fines de supervisión.
Introducción a las verificaciones
Antes de poder verificar los datos, debe solicitar un resumen a su libro mayor y guardarlo para más adelante. Cualquier revisión de un documento que se efectúe antes del último bloque incluido en el resumen podrá ser cotejada con ese resumen.
A continuación, solicitas a Amazon una prueba QLDB de una revisión apta que deseas verificar. Con esta prueba, llamas a un cliente para que vuelva API a calcular el resumen, empezando por el hash de la revisión. Siempre que se conozca el resumen guardado anteriormente y se confíe en élQLDB, la integridad del documento queda demostrada si el hash del resumen recalculado coincide con el hash del resumen guardado.
importante
-
Lo que está demostrando específicamente es que la revisión del documento no se modificó entre el momento en que guardó este resumen y el momento en que realizó la verificación. Puede solicitar y guardar un resumen tan pronto como se publique en el diario una revisión que desee verificar más adelante.
-
Como práctica recomendada, sugerimos que solicite resúmenes de forma regular y los guarde aparte del libro mayor. Determine la frecuencia con la que solicita resúmenes en función de la frecuencia con la que realiza las revisiones en su libro mayor.
Para ver una entrada de AWS blog detallada en la que se analiza el valor de la verificación criptográfica en el contexto de un caso de uso realista, consulta Verificación criptográfica en el mundo real con Amazon
. QLDB
Para obtener step-by-step guías sobre cómo solicitar un resumen de tu libro mayor y luego verificar tus datos, consulta lo siguiente: