Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
pan:recbdddattack [2024/09/18 15:29] – thejuanvisu | pan:recbdddattack [2024/09/18 16:22] (actual) – thejuanvisu | ||
---|---|---|---|
Línea 10: | Línea 10: | ||
Un cuasi identificador es un conjunto de atributos que con información externa permiten identificar a una persona externa. | Un cuasi identificador es un conjunto de atributos que con información externa permiten identificar a una persona externa. | ||
Tomamos como ejemplo una tabla con n componentes que contiene varias columnas con nombre, id, codigo zip cumpleaños, | Tomamos como ejemplo una tabla con n componentes que contiene varias columnas con nombre, id, codigo zip cumpleaños, | ||
- | n: numero de filas de una base de datos | + | * n: numero de filas de una base de datos |
- | d∈{0, | + | |
- | di: secreto en la fila i | + | |
+ | * Vector de petición: s{0,1}^n tiene la misma estructura que el vector secreto, especifica un subset de filas que tienen cierto valor secreto. | ||
+ | * La respuesta a la petición s: a(s) | ||
+ | * Contador de preticiones: | ||
- | Vector | + | ===== Curando respuestas ===== |
+ | Responder a una petición s con la respuesta correcta a(s) viola la privacidad, si el adversario quiere encontrar el secreto para una fila en particular, solo debe construir el vector | ||
+ | |||
+ | {{drawio> | ||
+ | |||
+ | ===== Ataque de reconstrucción lineal ===== | ||
+ | |||
+ | Si el analista puede llegar a hacer $2^n$ preguntas y el curador añade ruido con un límite $E$, entonces el analista es capaz de reconstruir la base de datos con la excepción de $4E$ posiciones. | ||
+ | - Primero se envían todas las solicitudes posibles y se almacenan las respuestas de la base de datos (El adversario colecciona todas las posibles respuestas) | ||
+ | - Tras eso se encuentra una lista de candidatos válidos, esta lista suele ser bastante pequeña, | ||
+ | - Hay una propiedad tal que c^(k^(-1)) | ||
+ | |||
+ | Corolario: a menos que haya un limite en las peticiones de la base de datos, una reconstrucción casi perfecta es posible dentro de 4E posiciones. Por lo que es posible reconstruir la base de datos hasta el 99% de las posiciones. | ||
+ | |||
+ | A la hora de la verdad esto se puede hacer con un número | ||
+ | Aunque el ruido que se añada esté acotado como $E = √(a√n)$, | ||
+ | |||
+ | |||
+ | ==== Desafío Aircloak' | ||
+ | La compañía Aircloak, que vendía el producto Diffix, prometía privacidad en base a curar las respuestas. Puso un concurso de 5000$ para ver si su producto respondía a los ataques de reconstrucción como se esperaba. La cantidad de ruido que se añadía a cada respuesta era de la raiz cuadrada del número de condiciones. Estaban prohibidas operaciones de tipo OR en la base de datos y en caso de que la salida tuviera pocas entradas la base de datos no respondería. Se planteó una forma de interrogar la base de datos de forma que las peticiones cubrieran muchos elementos de la base de datos de una forma más o menos aleatoria y que tuvieran un número de condiciones muy pequeño. Como resultado se obtuvo la siguiente consulta SQL: | ||
+ | <code SQL> | ||
+ | SELECT count(clientId) | ||
+ | FROM loans | ||
+ | WHERE floor(100*((clientId*2)^0, | ||
+ | AND clientID BETWEEN 2000 and 3000 | ||
+ | AND loanStatus = ' | ||
+ | </ | ||
+ | Con esta consulta se pudo reconstruir la base de datos a pesar de las medidas tomadas por Aircloak. |