Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Cifrado de campos, contexto y búsqueda

4 tareas · 40 min · Principiante

Cifrar un campo en la aplicación resuelve el problema de la persona administradora de la base, pero abre otros dos. El primero, que un texto cifrado válido se puede copiar de una fila a otra y la aplicación lo descifra sin protestar. El segundo, que una columna cifrada ya no se puede buscar como una columna normal, y la prisa por buscar lleva a atajos que devuelven la información que el cifrado quería ocultar. Carreto Pagos te entrega el esquema de sus ocho columnas cifradas y el diseño de sus tres búsquedas.

0 de 4 · 0%

Objetivo de la sala

Cifrar un campo en la aplicación resuelve el problema de la persona administradora de la base, pero abre otros dos. El primero, que un texto cifrado válido se puede copiar de una fila a otra y la aplicación lo descifra sin protestar. El segundo, que una columna cifrada ya no se puede buscar como una columna normal, y la prisa por buscar lleva a atajos que devuelven la información que el cifrado quería ocultar. Carreto Pagos te entrega el esquema de sus ocho columnas cifradas y el diseño de sus tres búsquedas.

Un modo autenticado como GCM comprueba que el texto cifrado no se alteró, pero no sabe de dónde salió. Si la cuenta bancaria de un comercio y la del comercio de al lado están cifradas con la misma clave, intercambiar los dos textos cifrados produce dos textos válidos: la aplicación los descifra y muestra la cuenta equivocada, sin ningún error. El modo autenticado admite un dato asociado, que no se cifra pero sí se autentica. Si ahí se escribe la tabla y el identificador de fila, un texto cifrado movido a otra fila falla al descifrar.

Abre el laboratorio y mira la columna que dice a qué se liga cada texto cifrado.

Responde para continuar

¿Para qué sirve ligar el texto cifrado a la tabla y a la fila mediante el dato asociado?

Ver pista de ayuda

Piensa en qué ocurre hoy si alguien con acceso de escritura a la base intercambia dos valores cifrados.

Para encontrar «los pagos de esta cédula» sin descifrar toda la tabla, la aplicación guarda junto a la fila un valor derivado del dato, que se calcula igual al buscar. Si ese valor es un hash simple, sin clave, cualquiera con la tabla puede calcular el hash de cada valor posible y compararlo: cuando el espacio de valores es pequeño o previsible, como los correos de una lista filtrada, el hash equivale a dejar el dato a la vista. El diseño correcto usa un HMAC con una clave que solo conoce la aplicación, distinta de la que cifra el campo.

La tabla de búsquedas dice cómo se resuelve cada consulta. Encuentra la columna cuyo índice se podría reconstruir sin ninguna clave.

Responde para continuar

¿Qué columna busca por un hash sin clave guardado junto a la fila? Escribe su id de la tabla de columnas cifradas.

Formato esperado: CLM-__

Ver pista de ayuda

Cruza la tabla de búsquedas con la de columnas cifradas; la columna se llama igual en ambas.

Hay tres maneras habituales de permitir la búsqueda. La primera, el hash simple, ya vimos que expone el dato cuando el espacio es pequeño. La segunda, el cifrado determinista, produce siempre el mismo texto cifrado para el mismo valor: permite buscar por igualdad directamente, pero revela qué filas comparten el mismo valor y cuántas veces se repite. La tercera, el índice ciego con HMAC y clave aparte, permite buscar por igualdad exacta y no revela nada a quien no tenga esa clave, a costa de no admitir búsquedas por prefijo ni por rango.

La decisión es siempre un intercambio, y se justifica con lo que la columna necesita: igualdad exacta o algo más.

Responde para continuar

Una columna solo se consulta por igualdad exacta y su espacio de valores es pequeño. ¿Qué diseño de búsqueda es el más prudente?

Ver pista de ayuda

Descarta primero lo que se puede reconstruir sin clave y lo que revela repeticiones; queda lo que depende de un secreto.

Un esquema sin autenticación, como el modo CBC a secas, cifra pero no detecta cambios, algo que ya estudiaste en el módulo de cifrado simétrico. Aquí no se trata de explicarlo otra vez, sino de medirlo: en un esquema real conviven columnas viejas con columnas nuevas, y el informe necesita el número de columnas que aún no comprueban integridad.

Cuenta con la consulta que filtra por autenticación y escribe el número.

Responde para continuar

¿Cuántas de las ocho columnas cifradas no comprueban integridad al descifrar? Escribe el número.

Formato esperado: _

Ver pista de ayuda

Filtra la tabla de columnas cifradas por la columna «autenticado» con valor «no» y cuenta las filas.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad