51
Seguridad en Bases de Datos Diseño de Bases de Datos y Seguridad de la Información Curso 2010-2011 1

Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Embed Size (px)

Citation preview

Page 1: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Seguridad en Bases de Datos

Diseño de Bases de Datos y Seguridad de la Información

Curso 2010-2011

1

Page 2: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Índice

1. Introducción y Motivación 2. Confidencialidad

2.1. Autorización en BD 2.2. BD Multinivel

3. Disponibilidad 3.1. Concepto de transacción 3.2. El fichero diario (log) 3.3. Técnicas de recuperación

4. Integridad 4.1. Integridad semántica 4.2. Integridad operacional

2

Page 3: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Protección de los datos contra: Fallos físicos Fallos lógicos Fallos humanos

1. Introducción y Motivación

3

Page 4: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

La seguridad comprende aspectos de: Confidencialidad: no desvelar datos a usuarios

no autorizados; comprende también la privacidad(protección de datos personales).

Accesibilidad: la información se debe encontrardisponible.

Integridad: permite asegurar que los datos no sehan falseado.

1. Introducción y Motivación

4

Page 5: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Medidas de seguridad en un entorno de bases de datos:

1. Introducción y Motivación

5

Page 6: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Índice

1. Introducción y Motivación 2. Confidencialidad

2.1. Autorización en BD 2.2. BD Multinivel

3. Disponibilidad 3.1. Concepto de transacción 3.2. El fichero diario (log) 3.3. Técnicas de recuperación

4. Integridad 4.1. Integridad semántica 4.2. Integridad operacional

6

Page 7: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

El sistema debe identificar y autenticar al usuario:− código y contraseña (password)− identificación por hardware (tarjeta magnética)− características bioantropométricas (huellas dactilares, voz, retina)− conocimientos, aptitudes y hábitos del usuario (estilo de pulsación delteclado)

− información predefinida (aficiones, datos culturales, personales)

El administrador o propietario de los datos, deberáespecificar los privilegios de un usuario autorizado sobre losobjetos de la BD:

− utilizar una base de datos− consultar ciertos datos− actualizar (modificar, insertar o borrar) datos− ejecutar procedimientos almacenados− referenciar objetos− indexar objetos− conceder privilegios . . .

2.1.Autorización2. Confidencialidad

Page 8: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Para facilitar la administración de la confidencialidad, losSGBD suelen incorporar los conceptos de perfil, rol ogrupo de usuarios. Un perfil agrupa un conjunto de recursos. Un rol agrupa una serie de privilegios que se asigna deforma global a un usuario o un grupo. Por lo que, el usuario que se asigna a un grupo,hereda todos los roles o privilegios del grupo.

2.1.Autorización2. Confidencialidad

8

Creación Perfil (Oracle):CREATE PROFILE USUARIOSLIMIT SESSIONS_PER_USER 2CPU_PER_SESSION 10000CONNECT_TIME UNLIMITED;

Creación Role (Oracle):CREATE ROLE APPUSUARIO;GRANT CREATE ANY TABLE,DROP ANY TABLE, TO APPUSUARIO;

Page 9: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

9

Con esta información, el mecanismo de control de acceso se encargade denegar o conceder el acceso a los usuarios, ayudando también amantener la integridad de los datos, en caso de tratarse de operacionesde actualización.

2. Confidencialidad

Creación Usuario (Oracle):

CREATE USER USUARIO IDENTIFIED BY USUARIODEFAULT TABLESPACE TBLUSUARIOS TEMPORARY TABLESPACE TEMPQUOTA 10M ON TBLUSUARIOSPROFILE USUARIOS;

GRANT SELECT ON SYS.V_$PARAMETER TO USUARIO;GRANT SELECT ON V_$SESSION TO USUARIO;GRANT SELECT ON V_$SESSTAT TO USUARIO;GRANT SELECT ON V_$SQL TO USUARIO;GRANT CREATE ROLE TO USUARIO;GRANT CREATE SESSION TO USUARIO;GRANT CREATE VIEW TO USUARIO;GRANT APPUSUARIO TO USUARIO;

Page 10: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Tipos de autorización:

Autorización explícita, utilizada normalmente en los sistemastradicionales, consiste en almacenar qué sujetos puedenacceder a ciertos objetos con determinados privilegios; sesuele utilizar una matriz de control de accesos.

Autorización implícita, que consiste en que una autorizacióndefinida sobre un objeto puede deducirse a partir de otras; porejemplo, si se puede acceder a una clase en un SGBDOtambién se puede acceder a todos los ejemplares (objetos) dela clase. Con este tipo de autorización se puede ahorrarespacio de almacenamiento, a costa de consumir tiempo deproceso.

2.1.Autorización

NOTAS ALUMNOS PROFESORESUSU001 L L LUSU002 LE L LUSU003 L LE LE

2. Confidencialidad

10

Page 11: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Tipos de autorización:Autorización fuerte, en caso de que las autorizacionesimplícitas no puedan ser invalidadas.

Autorización débil, en este caso se permitenexcepciones sobre las autorizaciones implícitas.

Tipos de autorización:Autorización positiva, su presencia indica la existenciade autorización.

Autorización negativa, es la denegación explícita deuna autorización.

2.1.Autorización2. Confidencialidad

11

Page 12: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

El tipo de autorización que se adopte dependerá de:

La política de control elegida; pudiendo el SGBD operar como:* Sistema abierto; un usuario puede acceder a todos los

objetos, excepto a aquellos que se prohiben explícitamente.* Sistema cerrado; el usuario accede sólo a aquellos objetos

para los que tiene autorización previa (ORACLE).

El modelo de datos, ya que utilizar, por ejemplo, autorizaciónexplícita en los SGBDO consume mucho espacio dealmacenamiento, debido a la existencia de un gran número deelementos a controlar (clases, subclases, servicios, objetoscomplejos, etc.).

2.1.Autorización2. Confidencialidad

12

Page 13: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

• Los SGBD que siguen la arquitectura a tres niveles ANSI/SPARC, soportan los esquemas externos (prevención).

• Otra técnica de protección de la confidencialidad (y también de la integridad) es la criptografía.

• Las facilidades de auditoría que ofrecen los SGBD permiten recoger en un fichero de pistas de auditoría (audit trail) ciertas operaciones realizadas por los usuarios, pudiendo, de esta manera, detectar accesos no permitidos.

2.1.Autorización

Otras formas de tratar la Seguridad en Bases de Datos:

2. Confidencialidad

13

Page 14: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Auditar conexionesPueden auditarse todos los intentos de conexión a la base de datos. (si finalmente la conexión ha tenido éxito o si el intento de conexión ha fracasado)

Auditar accionesSe puede auditar cualquier acción que afecte a cualquier objeto de la BD.

Auditar ObjetosAdemás de la auditoría de acciones sobre los objetos, se puede seguir el rastro a las operaciones de manipulación de tablas: SELECT, INSERT, UPDATE y DELETE. Estas auditorías se pueden hacer por sesión o por acceso.

Proteger los registros de auditoríaLos registros de auditoría pueden ser objeto de intentos de acceso para ser eliminados ya que pueden reflejar acciones no autorizadas en la BD.

2.1.Autorización

Otras formas de tratar la Seguridad en Bases de Datos:

2. Confidencialidad

14

Page 15: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

• Los SGBD actuales proporcionan control deacceso discrecional: son los usuarios losencargados de establecer el control, principalmente,a través de privilegios (un usuario tiene ciertopermiso o no lo tiene).

• Algunas aplicaciones y determinados organismosrequieren una política de seguridad adicional, queclasifique los datos y los usuarios de acuerdo conciertas clases de seguridad. Esta estrategia sedenomina control de acceso obligatorio, y laofrecen los denominados SGBD multinivel.

2.2.BD multinivel2. Confidencialidad

15

Page 16: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

SGBD Multinivel Soporta datos con diferentes niveles o clases de confidencialidad(clases de seguridad) y usuarios con diferentes clases de autoridad.

Una clase de confidencialidad consta de dos componentes:* Uno jerárquico: ALTO SECRETO (TS), SECRETO (S),

CONFIDENCIAL (C), NO CLASIFICADO (U)TS ≥ S ≥ C ≥ U

* Un conjunto de categorías no jerárquicas (Finanzas, Ventas, Investigación, etc.).

La diferencia con respecto a la seguridad discrecional radica en que los datos tienen un nivel de seguridad por sí mismos, con independencia de los permisos que se atribuyan a los usuarios.

Los SGBD Multinivel utilizan las clases de seguridad para implantar el control de acceso obligatorio.

2.2.BD multinivel2. Confidencialidad

16

Page 17: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

El modelo que suele usarse para la seguridad multinivel es elmodelo de Bell-LaPadula:

Se manejan dos tipos de actores los sujetos y losobjetos.

o Los sujetos, entidades que pueden acceder a la información(usuario, cuenta, programa, ...).o Los objetos, información a la que el sujeto está intentando acceder(relación, tupla, columna, vista, operación, ...).

Asigna a cada sujeto y objeto una de las clases deseguridad (TS, S, C o U).

Nos referiremos a la clasificación de un sujeto S comoclase(S).

Nos referiremos a la clasificación de un objeto O comoclase(O).

2.2.BD multinivel2. Confidencialidad

17

Page 18: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Este modelo solo permite a los sujetos acceder a los objetos de dosformas: Lectura y Escritura.

El modelo Bell-LaPadula asegura el cumplimiento de dos restricciones:

• Regla de lectura-no-ascendente (no-read-up), o propiedad deseguridad simple:”Un sujeto S no puede tener acceso de lectura a unobjeto O a menos que clase(S) ≥ clase(O).” Es la encargada de proteger los datos contra accesos no autorizados, ya que ningún sujeto podrá leer un objeto cuya clasificación de seguridad sea más alta que la clasificación del propio sujeto.

• Reglas de escritura-no-descendente (no-write-down), o propiedad"*" (estrella): ”Un sujeto S no puede tener acceso de escritura a unobjeto O a menos que clase(S) ≤ clase(O).” Es la encargada de proteger los datos contra su contaminación, ya que prohíbe a un sujeto escribir a un objeto que tenga la clasificación de seguridad menor que la clasificación del sujeto.

2.2.BD multinivel2. Confidencialidad

18

Page 19: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

SGBD Relacional Multinivel

•Un SGBD Multinivel clasifica los datos a nivel de elementos de datos. Encaso de un SGBD relacional puede ser a nivel de atributo, tupla (fila) orelación. Así, cada atributo A está asociado a un atributo de clasificación C en el esquema, y cada valor de atributo de una tupla está asociado a una clasificación de seguridad correspondiente. Además, en algunos modelos se añade un atributo de clasificación de tupla CT a los atributos de la relación (clasificación más alta de los atributos).

Una relación multinivel R con n atributos con protección a nivel atributo se representa: R (A1, C1, ... , An, Cn, CT,),

donde Ci representa el atributo de clasificación asociado al atributo Ai.

2.2.BD multinivel

Empleado (DNI, C, Nombre, U, Productividad, S, S)

2. Confidencialidad

19

Page 20: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

SGBD Relacional Multinivel

• El nombre de la relación también tiene una clasificación(que debe ser tan baja como la clasificación más baja de losdatos contenidos en la relación).

• Una relación R puede ser accedida por cualquier sujeto Sque cumpla: clase (S)≥clase (R), caso contrario habrá queestudiar clase por clase cada una de las de los atributos.

2.2.BD multinivel2. Confidencialidad

20

Page 21: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

SGBD Relacional Multinivel

En los SGBD multinivel los usuarios no autorizados no conocen la existencia de dicha información (evitando así que puedan realizar inferencias sobre esta información). Por ejemplo:

Integridad de entidad: todos los valores de la clave primaria deben tener la misma clasificación; si no fuera así un usuario de menor autoridad vería valores nulos en la clave primaria. Ésta debe tener una clasificación inferior respecto al resto de los atributos de la tupla.

Integridad referencial: una tupla con cierta clase de seguridad no puede referenciar a una tupla de clase de seguridad superior.

2.2.BD multinivel2. Confidencialidad

21

Page 22: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

SGBD Relacional Multinivel

Efecto de poliejemplarización o polinstauración (instanciación múltiple): permitir que una clave primaria se repita en varias tuplas, con diferentes niveles de confidencialidad.

Modificar las dependencias funcionales, ya que en los atributos no vendrán implicados sólo por el valor de la clave primaria, sino que también dependerán de la clase de ésta y de la clase de los atributos. En general podemos decir que:

AK, CAK, Ci → Ai

2.2.BD multinivel2. Confidencialidad

22

Page 23: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Índice

1. Introducción y Motivación 2. Confidencialidad

2.1. Autorización en BD 2.2. BD Multinivel

3. Disponibilidad 3.1. Concepto de transacción 3.2. El fichero diario (log) 3.3. Técnicas de recuperación

4. Integridad 4.1. Integridad semántica 4.2. Integridad operacional

23

Page 24: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

En lo que afecta al SGBD existen dos tipos importantes de fallos:

−Los que provocan la pérdida de memoria volátil, usualmente debidos a la interrupción del suministro eléctrico o por funcionamiento anormal del hardware.

−Los que provocan la pérdida de contenido de memoria secundaria, por ejemplo, el producido al patinar las cabezas de un disco.

El principio básico en el que se apoya la recuperación de la base de datos ante cualquier fallo es la redundancia física.

3. Disponibilidad

24

Page 25: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Transacción: "secuencia de operaciones que han de ejecutarse de forma atómica”.

3.1. Transacción

Propiedades de una transacción

Atomicidad: se ejecutan todas las sentencias o ninguna.

Preservación de la consistencia, la ejecución de una transacción debe dejar a la BD en un estado consistente.

Aislamiento, una transacción no muestra los cambios que produce hasta que finaliza.

Persistencia, puesto que una vez la transacción finaliza con éxito, sus efectos perduran en la BD.

3. Disponibilidad

25

Page 26: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Una transacción puede finalizar de dos maneras distintas:

Con éxito, en cuyo caso las actualizaciones de que consta la transacción se graban (commit), es decir, se hacen persistentes.

Con fracaso, en cuyo caso debe ser restaurado el estado inicial en el que se encontraba la BD antes de que empezara a ejecutarse la transacción. Las actualizaciones de que consta la transacción deberán deshacerse (rollback).

Los SGBD suelen gestionar las transacciones de forma implícita, ofreciendo además al usuario sentencias para la gestión explícita.

3.1. Transacción3. Disponibilidad

26

Page 27: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Arquitectura de un SGBD en la gestión de transacciones y recuperación

GESTORDE “MEMORIAINTERMEDIA”

estable volátil

3.1. Transacción3. Disponibilidad

27

Page 28: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Un registro del fichero diario (log) suele constar de:

Identificador de la transacción Hora de la modificación Identificador del registro afectado Tipo de acción Valor anterior del registro Nuevo valor del registro Información adicional (por ejemplo, un puntero

al registro previo del diario que concierne a la misma transacción)

3.2. El fichero diario3. Disponibilidad

28

Page 29: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Log write-ahead protocol: cambios en la BD y no enel fichero diario producen problemas; se obliga a quelos registros que se modifican se escriban antes en elfichero diario que en la base de datos.

El fichero diario :•Puede ser un fichero circular.•Puede constar de dos partes:

•la primera, en-línea (en disco), que almacena lasactualizaciones hasta que se llena.•momento en el que se pasa el contenido a lasegunda parte (por ejemplo, en cinta).

3.2. El fichero diario3. Disponibilidad

29

Page 30: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Para evitar recorrer todo el fichero diario, se introduce el concepto de punto de verificación o punto de recuperación (checkpoint), que se ejecuta periódicamente y que implica:

Pasar el contenido de las memorias de área intermedia al fichero diario (para el fichero de diario también existen áreas intermedias).

Escribir un registro de punto de recuperación en el diario.

Pasar el contenido de las memorias de área intermedia de la BD a soporte secundario.

Escribir la dirección del registro de recuperación en un fichero de rearranque.

En el registro de punto de recuperación se reflejan todas las transacciones que se encuentran activas en el momento de producirse el punto de recuperación.

3.2. El fichero diario3. Disponibilidad

30

Page 31: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Otras técnicas:

Fichero diario efímero (ephemeral logging), no requiere puntos de verificación, ni aborta transacciones muy largas (como sucede con el fichero diario clásico). cadena de colas

Técnica de páginas ocultas (shadow paging) consiste en mantener dos tablas o directorios de páginas durante la vida de una transacción, reflejándose todos los cambios en una sola de ellas (primaria) y manteniendo la otra (secundaria) sin cambios.

3.2. El fichero diario3. Disponibilidad

31

Page 32: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Recuperación en calienteAl ocurrir un fallo de memoria volátil.

El sistema consulta el fichero diario para determinar las transacciones que hay que deshacer porque no han sido completadas y las que hay que rehacer porque, si bien se han completado, no habían sido grabadas en la BD cuando se produjo el fallo.

3.3. Técnicas de recuperación3. Disponibilidad

32

Page 33: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Recuperación en fríoAl ocurrir un fallo de memoria principal.

Consiste en utilizar una copia de seguridad de la BD, tambiénllamada de respaldo (backup), que permitirá, junto con los ficherosdiarios, reconstruir la BD.

Error fatalSe produce cuando se pierde el fichero diario grabado en un soporte.

En este caso resulta imposible recuperar la BD a su estado actual. La mejor solución para evitar este problema es permitir la gestión de copias del fichero diario en dispositivos independientes. También se puede duplicar la base de datos (técnicas de duplicación como espejo-mirroring- o duplexación -duplexing-).

3.3. Técnicas de recuperación3. Disponibilidad

33

Page 34: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Índice

1. Introducción y Motivación 2. Confidencialidad

2.1. Autorización en BD 2.2. BD Multinivel

3. Disponibilidad 3.1. Concepto de transacción 3.2. El fichero diario (log) 3.3. Técnicas de recuperación

4. Integridad 4.1. Integridad semántica 4.2. Integridad operacional

34

Page 35: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

ObjetivoProteger la BD contra operaciones que introduzcan inconsistencias en los datos: corrección, validez o

precisión de los datos.

• El subsistema de integridad de un SGBD debe detectar y corregir las operaciones incorrectas.

• Hay operaciones cuya falta de corrección no es detectable.

• Existen dos tipos de operaciones que pueden atentar contra la integridad de los datos:

a) Operaciones semánticamente inconsistentesb) Interferencias debidas a accesos concurrentes

4. Integridad

35

Page 36: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

4.1. Integridad Semántica

•Existen operaciones que pueden violar restricciones definidas aldiseñar la BD (sobre dominios o sobre atributos).

•Los SGBD tienen que ofrecer facilidades que permitan describir lasrestricciones, con una sintaxis adecuada y gran flexibilidad.

•Las reglas de integridad se almacenan en el diccionario (controlcentralizado de la semántica); ya no han de incluirse en losprogramas, con lo que se consiguen las siguientes ventajas:

Las reglas de integridad son más sencillas de entender y decambiar, facilitando su mantenimiento.Se detectan mejor las inconsistencias.Se protege mejor la integridad, ya que ningún usuario podrá

escribir un programa que las viole.

4. Integridad

36

Page 37: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

El subsistema de integridad del SGBD debe realizarlas siguientes funciones:

Comprobar la coherencia de las reglas que sedefinen.Controlar las distintas transacciones y detectar las

violaciones de integridad.Cuando se produce una violación, ejecutar las

acciones pertinentes.

4.1. Integridad Semántica

4. Integridad

37

Page 38: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

4.2. Integridad Operacional

4. Integridad

38

Page 39: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

4.2. Integridad Operacional

4. Integridad

39

Page 40: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

4.2. Integridad Operacional

4. Integridad

40

Page 41: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

4.2. Integridad Operacional

4. Integridad

41

Page 42: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Para asegurar la consistencia las transacciones deben ser seriables.

Técnicas de control de concurrencia:

Basadas en bloqueosBasadas en marcas de tiempoTécnicas avanzadas

4.2. Integridad Operacional

4. Integridad

42

Page 43: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

• El propio SGBD gestiona ciertos bloqueos.

• También los usuarios pueden bloquear, de forma explícita, losobjetos deseados.

• Los bloqueos pueden ser :

Bloqueos exclusivos (o de escritura)Bloqueos compartidos (o de lectura)

Bloqueo o cerrojo

Variable asociada a cada elemento de datos, que describe el estado de dicho elemento respecto a las posibles operaciones (recuperación o actualización) que se pueden realizar sobre ellos en cada momento.

4.2. Integridad Operacional

4. Integridad

43

Page 44: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

• Problema: interbloqueo (deadlock)• Soluciones:

− prevenir el interbloqueo (Todo o nada)

− detectar el interbloqueo (Grafo de espera)

Algoritmo de bloqueo en dos fases (two phase locking):•Para garantizar que la ejecución de las transacciones es seriable.•Se basa en transacciones que no vuelven a bloquear elementos que ya hayan sido bloqueados anteriormente;•Se pueden distinguir dos fases:

* Crecimiento en la que sólo se adquieren bloqueos* Decrecimiento en la que se liberan

•Si una transacción trata de obtener un bloqueo que ya ha sido adquirido por otra, la transacción debe esperar.

4.2. Integridad Operacional

4. Integridad

44

Page 45: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Granularidad del bloqueo

• Los bloqueos afectan fuertemente al rendimiento del sistema.

• Los SGBD difieren en los niveles del bloqueo:−un campo −un registro/una tupla−un fichero/una relación−la base de datos en su totalidad

4.2. Integridad Operacional

4. Integridad

45

Page 46: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Marcas de tiempo (timestamping)

Identificadores únicos que se asignan a las transacciones y que pueden considerarse como el tiempo de inicio de la transacción.

Con esta técnica no existen interbloqueos. Todas las actualizaciones físicas se retrasan hasta la grabación

de las transacciones. Si una transacción quiere acceder a algún dato que ha sido

actualizado por una más reciente, se deshace y se vuelve a empezar.

Esta técnica permite ordenar las transacciones y controlar un acceso en secuencia de las mismas a los datos

4.2. Integridad Operacional

4. Integridad

46

Page 47: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Existen varios protocolos basados en marcas de tiempo:

WAIT-DIE que fuerza a una transacción a:Esperar en caso de que entre en conflicto con otratransacción cuya marca de tiempo sea más reciente,oMorir (abortar y reiniciar) si la transacción que seestá ejecutando es más antigua

WOUND-WAIT:Permite a una transacción matar a otra que poseauna marca de tiempo más reciente, o

Fuerza a la transacción peticionaria a esperar

4.2. Integridad Operacional

4. Integridad

47

Page 48: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Marcas de tiempo multiversión

• El mecanismo de marcas de tiempo supone que existe unaúnica versión de los datos.

• Permitir que varias transacciones lean y escriban diferentesversiones del mismo dato.

• Cada transacción debe ver un conjunto consistente deversiones de todos los datos a los que accede.

• La existencia de múltiples versiones elimina la necesidad desincronización entre distintas operaciones de escritura, yaque cada escritura produce una nueva versión y no entra enconflicto con otra.

4.2. Integridad Operacional

4. Integridad

48

Page 49: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Técnicas optimistas

• Permiten que las transacciones accedan libremente a los objetos.• Se determina, antes de su finalización, si ha habido o no

interferencias.• Cada transacción consta de dos o más fases:

* Una fase de lectura* Una fase de validación* Y, posiblemente, una fase de escritura.

• Durante la fase de lectura todas las escrituras tienen lugar encopias locales (versiones transitorias). Durante la fase devalidación se establece si se viola la serialidad, y las copiaslocales se hacen globales.

4.2. Integridad Operacional

4. Integridad

49

Page 50: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Técnicas avanzadas

Las aplicaciones avanzadas de BD (CAD/CAM, CASE, OIS, GIS)requieren nuevos mecanismos de control de concurrencia:

• Transacciones anidadas (definiendo árboles de transacciones,de diferentes niveles de imbricación)

• Transacciones de larga duración (días, semanas)

• Transacciones de cooperativas (orientadas a grupos,conversacionales, de diseño, etc. que pretenden facilitar lacoordinación del acceso a los recursos gestionados por la BD)

4.2. Integridad Operacional

4. Integridad

50

Page 51: Seguridad en Bases de Datos - Grupo de Investigación · Medidas de seguridad en un entorno de bases de datos: 1. Introducción y Motivación. 5. ... una tupla con cierta clase de

Tecnología y Diseño de Bases de DatosM.Piattini, E. Marcos, C.Calero y B. VelaEd.: RA-MA, 2006 Octubre

• MORANT, J.L., RIBAGORDA, A. y SANCHO, J. (1994)"Seguridad y protección de la información". Ed. FundaciónRamón Areces, Madrid.

• CASTANO, S., FUGINI, M., MARTELLA, G. y SAMARATI, P.(1995)

"Database Security". Addison-Wesley, Wokingham,Inglaterra.

• BERNSTEIN, P.A, HADZILACOS, V. y GOODMAN, N. (1987)"Concurrency Control and Recovery in Database Systems".Addison-Wesley, Reading, Massachusetts.

Bibliografía

51