SEGURIDAD EN LAS BASES DE DATOS Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Seguridad se refiere a la protección de los datos contra una revelación, alteración o destrucción no autorizada. La seguridad implica asegurar que los usuarios están autorizados para llevar a cabo lo que tratan de hacer. (Date C. J., Introducción a los sistemas de bases de datos Volumen 1) SEGURIDAD EN LAS BASES DE DATOS Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas Consideraciones generales: •Aspectos legales, sociales y éticos •Controles físicos •Cuestiones de política interna •Problemas de operación •Controles del equipo •Seguridad del sistema operativo - Subsistema de autorización Seguridad de usuarios SEGURIDAD EN LAS BASES DE DATOS Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Medidas de seguridad • Físicas: Controlar el acceso al equipo. Tarjetas de acceso, etc. • Personal: Acceso sólo del personal autorizado. Evitar sobornos, etc. • SO: Seguridad a nivel de SO • SGBD: Uso de herramientas de seguridad que proporcione el SGBD. Perfiles de usuario, vistas, restricciones de uso de vistas, etc. MECANISMOS DE SEGURIDAD Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios • Discrecionales: Se usan para otorgar privilegios a los usuarios, incluida la capacidad de tener acceso a archivos, registros o campos de datos específicos en un determinado modo. • Obligatorios: Sirven para imponer igualdad de múltiples niveles clasificando los datos y los usuarios en varias clases (o niveles) de seguridad e implementando después la política de seguridad apropiada de la organización. ADMINISTRADOR DE LA BASE DE DATOS Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Otorgar privilegios a los usuarios y clasificar los usuarios y los datos de acuerdo con la política de la organización. Tipos de acciones: 1. Creación de cuentas 2. Concesión de privilegios. 3. Revocación de privilegios. 4. Asignación de niveles de seguridad. El DBA es el responsable de la seguridad global del sistema de base de datos. SEGURIDAD EN LOS DATOS Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas • Mecanismo de vistas: Se puede utilizar para ocultar datos confidenciales a usuarios no autorizados. • Subsistema de autorización: Permite a los usuarios con derechos específicos conceder de manera selectiva y dinámica esos derechos a otros usuarios, y si lo desean revocarlos. - Subsistema de autorización Seguridad de usuarios MECANISMO DE VISTAS Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios En éste mecanismo los usuarios pueden consultar y modificar los datos que ven, quedando el resto de la base de datos invisible o inaccesible. Provee una forma segura y simple de controlar el acceso a los datos. MECANISMO DE VISTAS Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos La “VISTA_1” está formada con todos los campos de las tablas “TABLA_1” y “TABLA_2”; Esto permite - Subsistema de restringir el acceso de los usuarios a la “VISTA_1” en autorización lugar de autorizarlos a acceder a las tablas Seguridad de usuarios “TABLA_1”, “TABLA_2” - Mecanismo de vistas MECANISMO DE VISTAS Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Las vistas como objeto de la base de datos materializan conceptos de seguridad tales como: • Dependencia e independencia del valor. • Subconjunto de filas y columnas. DEPENDENCIA DEL VALOR Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización El acceso está restringido a solo un subconjunto de filas de una tabla base. (Conjunto horizontal) Por ejemplo ¿Cual es el conjunto de proveedores localizados en la ciudad de Mendoza? CREATE VIEW PROVEEDORES _ MENDOZA AS SELECT P_ID, P_NOMBRE, P_SITUACION, P_CIUDAD FROM PROVEEDORES WHERE P_CIUDAD = “Mendoza”; Seguridad de usuarios INDEPENDENCIA DEL VALOR Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios El acceso está restringido a solo un subconjunto de columnas de una tabla base. (Conjunto vertical) Por ejemplo, definir una vista que solo muestre el identificador, nombre y ciudad de todos los proveedores: CREATE VIEW ID_NOMBRE_CIUDAD AS SELECT P_ID, P_NOMBRE, P_CIUDAD FROM PROVEEDORES; Se muestran a todos los proveedores incluidos en la tabla proveedores. SUBCONJUNTO DE FILAS Y COLUMNAS Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Equivale a restringir el acceso a solo un grupo de filas y columnas. Por ejemplo permitir el acceso a la tabla PROVEEDORES para mostrar solo las columnas identificador, nombre y ciudad de todos los proveedores localizados en la ciudad de Mendoza. CREATE VIEW MENDOZA_ID_NOMBRE_CIUDAD AS SELECT P_ID, P_NOMBRE, P_CIUDAD FROM PROVEEDORES WHERE P_CIUDAD = “Mendoza”; EL SUBSISTEMA DE AUTORIZACIÓN Este mecanismo permite especificar las operaciones que los usuarios autorizados pueden ejecutar sobre los Consideraciones Generales objetos de la base de datos. Esta función se Medidas de seguridad materializa a través de las proposiciones GRANT (conceder) y REVOKE (revocar) de SQL. Seguridad en BD Mecanismos de Seguridad Para realizar cualquier operación con SQL sobre un objeto de base de datos, el usuario debe; en primer Seguridad en los datos lugar; contar con la autorización apropiada para - Mecanismo de vistas realizar dicha operación, caso contrario, la operación es rechazada con un código de excepción o mensaje de - Subsistema de error. autorización Administrador de la BD Seguridad de usuarios EL SUBSISTEMA DE AUTORIZACIÓN Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Ejemplo: Para ejecutar la siguiente proposición... SELECT * FROM TABLA_1; ....el usuario necesita la autorización de selección (SELECT) sobre la tabla TABLA_1. Las proposiciones GRANT y REVOKE “conceden” y “revocan” respectivamente derechos sobre objetos tales como tablas, vistas y procedimientos almacenados. Seguridad de usuarios EL SUBSISTEMA DE AUTORIZACIÓN Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Esto hace posible, desde el punto de vista de seguridad, mantener un control permanente de quien o quienes pueden realizar operaciones (crear, ejecutar, seleccionar, modificar, borrar, insertar, alterar, etc.) sobre objetos, permitiendo implementar una estructura de seguridad racional y esquematizada. CLAUSULAS GRANT Y REVOKE Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Conceder permisos en Tablas: GRANT privilegios ON nombre de la relación o vista. TO lista de usuarios [public] GRANT ALL ON TABLE POZOS TO ingeniería; Concede al grupo “ingeniería” (este puede ser el grupo previamente creado al cual se asocien los empleados pertenecientes al departamento de ingeniería), todos los derechos o autorizaciones que existan (SELECT, DELETE, INSERT, UPDATE) sobre la tabla “POZOS”. CLAUSULAS GRANT Y REVOKE Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Conceder permisos en Tablas: GRANT SELECT ON TABLE POZOS TO javierA; Concede al usuario “javierA” solo permiso de lectura o selección sobre la tabla “POZOS”. GRANT INSERT, DELETE ON TABLE POZOS TO leomar, geologia; Concede al usuario “leomar” y al grupo “geologia” (suponemos que es un grupo creado previamente), los permisos de inserción y eliminación de registros sobre la tabla “POZOS”. CLAUSULAS GRANT Y REVOKE Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas Revocar permisos en Tablas: REVOKE privilegios ON nombre de la relación o vista. TO lista de usuarios [public] REVOKE SELECT ON TABLE POZOS TO javierA; Revoca al usuario “javierA” el permiso de lectura o selección sobre la tabla “POZOS”. - Subsistema de autorización Seguridad de usuarios CLAUSULAS GRANT Y REVOKE Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Revocar permisos en Tablas: REVOKE DELETE ON TABLE POZOS TO leomar; Revoca al usuario “leomar” el permiso de eliminación de registros sobre la tabla “POZOS”. Obviamente el permiso revocado debió ser concedido previamente con la proposición GRANT. MÉTODOS ADICIONALES Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas Entre ellos se puede considerar al “cifrado de los datos” y seguimiento de “registros de auditoría”. Esta última alternativa no previene ni evita los posibles ataques a los que puedan ser sometidos los datos y objetos de las bases de datos, pero sí permite identificar procesos y personas que de algún modo u otro hayan intentado o logrado realizar procesos indebidos o no autorizados. - Subsistema de autorización Seguridad de usuarios Mecanismo para control y seguridad de usuarios Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Las actividades de creación y mantenimiento de logins y usuarios de las bases de datos se reparten entre: • System Security Officer (SSO) • System Administrator (SA) • DataBase Owner (DBO). Mecanismo para control y seguridad de usuarios Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios La síntesis del proceso de agregar nuevos usuarios consta de los siguientes pasos: 1. El SSO crea una cuenta para el login al DBMS. 2. Un SA o DBO agrega un usuario; para el login creado; a una base de datos. Se puede dar al usuario un alias o asignarlo a un grupo de usuarios. 3. Un SA, DBO o propietario del objeto concede al/os usuario/s o grupo específico los permisos sobre comandos u objetos de la/s base/s de datos. Mecanismo para control y seguridad de usuarios Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios • Crear logins para el DBMS SA o SSO. Procedimiento addlogin. Se agrega una fila a la tabla de sistema syslogins. (uid) identificador de usuario. • Crear usuario de la base de datos Procedimiento adduser. El usuario debe existir como login del DBMS. Se agrega una fila en la tabla sysusers que pertenece a la base de datos corriente. Procedimientos estándar para administración de usuarios Procedimientos estándar para administración de usuarios REVOKE Ejemplo Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios CLAUSULAS GRANT Y REVOKE Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Seguridad de usuarios Regla de Revocación: Se revoca un privilegio acordado a un desautorizado si este privilegio se dio antes de cualquier otro privilegio que aun posea el desautorizado Si el DBA revoca el privilegio para U1: -Se debe revocar la concesión de U4 dado que U1 ya no tiene autorización -No se debe revocar la autorización de U5 dado que U5 tiene otro camino de autorización desde DBA a través de U2 CLAUSULAS GRANT Y REVOKE Seguridad en BD Consideraciones Generales Medidas de seguridad Mecanismos de Seguridad Administrador de la BD Seguridad en los datos - Mecanismo de vistas - Subsistema de autorización Se deben prevenir ciclos de concesiones sin camino desde la raíz: -DBA concede autorización a U7 -U7 concede autorización a U8 -U8 concede autorización a U7 -DBA revoca la autorización a U7 -Se debe revocar la concesión de U7 a U8 y de U8 a U7 dado que no queda ningún camino desde DBA a U7 o a U8. Seguridad de usuarios Seguridad Multinivel Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Un SGBD multinivel soporta datos con diferentes niveles o clases de confidencialidad y usuarios con diferentes clases de autoridad. El problema de control de flujos se ilustra en la figura siguiente: Juan Cecilia R C(R) Criptografía Tipos de llaves Principales elementos Componentes Seguridad Multinivel Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves En general, se puede decir que un flujo existe entre un objeto X y un objeto Y cuando un programa lee X y hace escrituras sobre Y. El protocolo mas sencillo de control de flujos comprende dos niveles: libre y confidencial. Principales elementos Componentes Niveles de Control de Flujo Seguridad Multinivel Niveles y Categorias Ejemplo En este caso se permite cualquier flujo de datos excepto aquellos que van del nivel confidencial al nivel libre: Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes Libre Confidencial Seguridad Multiniveles Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes Se puede establecer al menos 4 niveles de autorización con el siguiente orden: No Clasificado <Confidencial < Secreto < Muy Secreto Las categorías de objetos están formadas considerando combinaciones de características elementales sobre objetos, por lo general se pueden considerar cuatro grandes categorías: Libre – Restringido – Sensitivo – Codificado Seguridad Multinivel Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes En el caso de SGBD no solo se impide que los usuarios no autorizados accedan a la información sensible, sino que ni siquiera se deja que conozcan la existencia de dicha información. Esto afecta a la propia definición del modelo relacional, en cuanto a la Integridad de Entidad e Integridad referencial. Control de Inferencia Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Otra de las técnicas utilizadas para mantener la seguridad de una BD es por medio del control de la inferencia, es decir, evitando que una persona pueda, sin tener autorización, conocer e inferir información, a partir de los datos a cuales si tiene acceso. Principales elementos Componentes Control de inferencia (Ejemplos) Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes Pregunta: ¿Cuántos enfermos hay con las siguientes características? Sexo Masculino, edad 45-50, casado, dos niños, graduado del ITCR, gerente de la empresa AREX. Respuesta: Suponer que la persona que hace referencia esta pregunta sabe que es Arguedas quien posee estas características, Ahora, desea descubrir informaciones confidenciales sobre Arguedas. Control de Inferencia (Ejemplos) Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Pregunta: ¿Cuántos enfermos hay con las siguientes características? Sexo masculino, edad 45-50, casado, dos niños, graduado del ITCR, gerente de la empresa AREX, toma calmantes debido a depresiones. Respuesta: será 1 si Arguedas toma Calmantes o 0 en caso contrario. Así, la persona no autorizada encuentra una condición C en donde el conjunto resultante tiene un elemento. Componentes Control de Inferencia (Ejemplos) Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes Por lo tanto ¿Cuántos individuos satisfacen C y X? si la respuesta es 1 el individuo posee la característica X, 0 en caso contrario. Así la regla que debe respetarse es: “No responder a las consultas en donde hay menos de k o mas de n-k tuplas en la respuesta” Control de Inferencia Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos En este caso n es el numero total de tuplas de la base de datos y k es un entero positivo que especifica el tamaño mínimo permitido de la consulta. Cuando k es aproximadamente igual a n/2, las fugas son posibles usando la técnica del perseguidor. Componentes Control de Inferencia Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes La idea de base es suponer que a un indiscreto se le informo que una persona P esta caracterizada por la condición: C = A AND B Además se supone que el DBMS puede responder a las preguntas caracterizadas por la condición A y las caracterizadas por la condición A AND NOT B. La condición: T = A AND NOT B Control de Inferencia (Ejemplos) Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Sea la contribución de varias personalidades a un cierto partido político y que se representa en la relación. Por otra parte, suponer que se pueden hacer consultas cuyas respuestas involucran solo sumas y/o cardinalidades de conjuntos. Componentes Control de Inferencia (Ejemplo) Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes Contribución Nombre Alonso Bernardo Carlos Sara Sonia Tomas Uriel Verónica Sexo M M M F F M M F Profesión Periodista Periodista Empresario Periodista Profesora Profesor Medico Abogada Monto 30000 5000 1000 50000 1000 20000 200000 100000 Control de Inferencia (Ejemplo) Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes Suponer que C= (periodista AND femenino) identifica en forma unica a Sara. Con el perseguidor T = (periodista AND NOT femenino) = (periodista AND masculino), se conocera la contribucion de Sara: P: ¿Cuantas personas son periodista? R: 3 P: ¿Cuantas personas son periodista hombres? R: 2 Control de Inferencia (Ejemplo) Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes Asi se identifica a Sara: P: ¿Cual es la contribucion total de los periodistas? R:85000 P: ¿Cual es la constribucion total de los periodistas, varones? R: 35000 Por lo tanto Sara contribuyo con 50000u.m Criptografia Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes Otro sistema de seguridad es la Criptografia o Criptado, este procedimiento permite asegurar la transmisión de informaciones privadas por las redes públicas desordenándola matemáticamente (encriptándola) de manera que sea ilisible para cualquiera excepto para la persona que posea la "llave" que puede ordenar (desencriptar) la información. Los dos tipos más comunes de criptografía son los de "misma llave" y "llave pública". Criptografia Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes Los datos se codifican mediante algún algoritmo de codificación. Un usuario no autorizado tendrá problemas para descifrar los datos codificados, pero un usuario autorizado contará con algoritmos para descifrarlos. Tipos de Llaves Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos En la criptografía con la misma llave, un mensaje es encriptado y desencriptado utilizando la misma llave, que se manda en un envío separado. El método de llave pública es más seguro, el cual utiliza un par de llaves diferentes (una pública y una privada) que pueden tener una relación particular entre sí, de manera que un mensaje encriptado con una llave, sólo puede ser desencriptado con la otra y viceversa. Componentes Principales Elementos Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes •En primer lugar, se tiene lo que se llama el código que es un método secreto de escritura, en donde el mensaje que se desea almacenar o transportar en una red es codificado y se llama criptograma. •El proceso de transformar un mensaje en uno codificado se denomina encriptamiento. •Por otra parte, el proceso inverso de transformar un criptograma en un mensaje se denomina desencriptamiento. Componentes Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Componentes De una manera mas formal, se puede decir que un sistema criptografico consta de 5 componentes: •Un mensaje M que debe almacenarse o transportarse. •Un criptograma C •Un conjunto de claves I •Un conjunto de reglas de encriptamiento •Un conjunto de reglas de desencriptamiento Ejemplo Grafico Seguridad Multinivel Niveles y Categorias Mensaje Buenos Días Ejemplo Control de Inferencia Encriptamiento Criptograma “#$%& Ejemplos Criptografía Desencriptamiento Tipos de llaves Principales elementos Ejemplos y ejercicios Mensaje Buenos Días Ejercicio Seguridad Multinivel Algoritmo de transposición columnar: Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Considerar el mensaje: Ser o no ser; he ahí la cuestión y se desea utilizar una matriz de n x 5. En ese caso, dicha oración queda ubicada de la siguiente forma. Criptografía Tipos de llaves Principales elementos Ejemplos y ejercicios Ejercicio Seguridad Multinivel S E R O N O S Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía E R , E H A H Í L A C U E S T I Ó N Tipos de llaves Principales elementos Ejemplos y ejercicios Asi el criptograma seria el siguiente: see uó enr len ro, aas h t oshíci Clave Publica Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Ejemplos y ejercicios En este caso el código de encriptamiento no puede invertirse fácilmente para hallar el código de desencriptamiento. El método se basa en dos suposiciones: •Es relativamente fácil determinar 2 números primos grandes p y q y multiplicarlos para obtener n=p.q que sirve de base para un código de encriptamiento. •El proceso inverso, es decir, determinar los números p y q a partir del numero n es difícil realizarlo en un tiempo aceptable cuando n es un numero muy grande. Ejemplo Clave publica Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Ejemplos y ejercicios Maria desea enviar un mensaje a Carlos, quien escoge dos números primos p y q cuya división por 3 tenga a 2 como resto. Así, calcula n=p.q y se lo envía a Maria. Por su parte, Maria transforma el mensaje en una sucesión de dígitos lo cual resulta muy fácil y la divide en segmentos de longitud n. Ejemplo Clave publica Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Ejemplos y ejercicios Sea uno de esos segmentos representados por el numero x. María procede a calcular el resto y al dividir. X3 por n y el segmento codificado es el numero y. Cuando Carlos recibe el mensaje utiliza un numero ultrasecreto e= (2(p-1)(q-1)+1)/3 el cual es entero por las escogencia de los números p y q. Ejemplo Clave publica Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Ejemplos y ejercicios El fragmento original por su parte es decir el numero x, es igual al resto de dividir y por n. En este caso a una persona le será imposible descifrar en un tiempo oportuno el criptograma, aunque conozca el numero n. Ejemplo Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Instrucciones: SET ENCRYPTION PASSWORD = ‘SECRETO’ INSERT INTO cliente VALUES('JOSE', ENCRYPT('1111222233334444')) SET ENCRYPTION PASSWORD = 'SECRETO' SELECT nombre, DECRYPT_CHAR(num_tarj) FROM cliente Principales elementos Ejemplos y ejercicios Ejemplo Seguridad Multinivel Niveles y Categorias Ejemplo Control de Inferencia Ejemplos Criptografía Tipos de llaves Principales elementos Ejemplos y ejercicios •En el código anterior, la sentencia Set Encryption Password proporciona a DB2 la clave que se utilizará para cifrar (y descifrar) los datos. •En la sentencia siguiente se muestra cómo se utiliza la función de cifrado de DB2 para codificar el número de la tarjeta de crédito antes de grabarlo en la tabla de DB2. La última sentencia muestra los pasos necesarios para ver el valor original del número de la tarjeta de crédito, ‘1111222233334444’. INTEGRIDAD Integridad Restr. de dominios Reglas de integridad Asertos Triggers Existen dos tipos de operaciones que pueden atentar contra la integridad de los datos, que son las operaciones semánticamente inconsistentes y las interferencias debidas a accesos concurrentes. •Integridad semántica. •Integridad operacional. INTEGRIDAD OPERACIONAL Integridad Restr. de dominios Reglas de integridad Asertos Triggers Integridad operacional: • Técnicas de control de concurrencia: • Bloqueo. • Marcas de tiempo. • Marcas de tiempo multiversión. • Técnicas optimistas. RESTRICCIONES DE LOS DOMINIOS Integridad Restr. de dominios Reglas de integridad Asertos Triggers • La declaración de que un atributo pertenezca a un determinado dominio actúa como una restricción sobre los valores que puede tomar. • El dominio de cada atributo es el conjunto desde donde los datos provienen: o nombre: strings, cadenas de símbolos. o sueldo: enteros positivos. o fecha creac: fechas válidas. RESTRICCIONES DE LOS DOMINIOS Integridad Restr. de dominios Reglas de integridad Asertos Triggers • Las restricciones de los dominios son la forma más simple de restricción de integridad. • Además de los dominios usados como tipos de datos, el administrador del sistema puede generar sus propios dominios definiendo el conjunto de valores permitidos. RESTRICCIONES DE LOS DOMINIOS Integridad Restr. de dominios Reglas de integridad Asertos Triggers • La cláusula create domain se puede usar para definir nuevos dominios. • • • create domain nombre_pers char(30) create domain direccion char(35) create domain Dolar numeric(10,2) • create domain tipo-cuenta char(10) constraint comprobación-tipo-cuenta check(value in (‘Corriente’,‘Ahorro’)) REGLAS DE INTEGRIDAD Integridad Restr. de dominios Reglas de integridad Asertos Triggers Al definir cada atributo sobre un dominio se imponen unas Restricciones de dominios. Además existen 2 reglas de integridad que se deben cumplir en todas las base de datos relacionales, estas son Regla de Integridad de entidades y la Regla de Integridad referencial REGLAS DE INTEGRIDAD Integridad Restr. de dominios Reglas de integridad Asertos Triggers • Nulos Cuando en una tupla un atributo es desconocido, se dice que es nulo. • En la teoría de bases de datos, se llama clave primaria a un campo, o a una combinación de campos, que identifica en forma única a cada registro, y una clave foránea es una referencia, en una tabla, a la clave primaria de otra tabla. REGLAS DE INTEGRIDAD Integridad • Restricción de integridad de entidades: Reglas de integridad Esta establece que ningún valor de clave primaria puede ser nulo. Asertos • Restricción de integridad referencial: Restr. de dominios Triggers Es un sistema de reglas usado para asegurarse que los registros de tablas relacionadas son válidos y que no se borren o cambien datos relacionados de forma accidental. REGLAS DE INTEGRIDAD REFERENCIAL Integridad Restr. de dominios Reglas de integridad Asertos Triggers • La integridad referencial consiste en que los datos que referencian otros deben ser correctos. • La integridad referencial se activa en cuanto creamos una clave foránea y a partir de ese momento se comprueba cada vez que se modifiquen datos que puedan alterarla. REGLAS DE INTEGRIDAD REFERENCIAL Integridad Restr. de dominios Reglas de integridad Asertos Triggers ¿Cuándo se pueden producir errores en los datos? • Cuando insertamos una nueva fila en la tabla secundaria y el valor de la clave foránea no existe en la tabla principal. • Cuando modificamos el valor de la clave principal de un registro que tiene ‘hijos’. REGLAS DE INTEGRIDAD REFERENCIAL Integridad Restr. de dominios Reglas de integridad Asertos Triggers • Cuando queremos borrar una fila de la tabla principal y ese registro tiene ‘hijos’. • Cuando modificamos el valor de la clave foránea, el nuevo valor debe existir en la tabla principal. REGLAS DE INTEGRIDAD REFERENCIAL Integridad Restr. de dominios Reglas de integridad Asertos Triggers • Actualizar registros en cascada: Esta opción le indica al SGBD que cuando se cambie un valor del campo clave de la tabla principal, automáticamente cambiará el valor de la clave foránea de los registros relacionados en la tabla secundaria. REGLAS DE INTEGRIDAD REFERENCIAL Integridad Restr. de dominios Reglas de integridad Asertos Triggers • Eliminar registros en cascada: Esta opción le indica al SGBD que cuando se elimina un registro de la tabla principal automáticamente se borran también los registros relacionados en la tabla secundaria. REGLAS DE INTEGRIDAD REFERENCIAL Integridad Restr. de dominios Reglas de integridad Asertos Triggers create table cuenta (… primary key (número-cuenta) foreign key (nombre-sucursal) references sucursal on delete cascade On update cascade; …) ASERTOS Integridad Restr. de dominios Reglas de integridad Asertos Triggers • Un Aserto es un predicado que expresa una condición que se desea que la base de datos satisfaga siempre. • Cuando se crea un aserto el sistema comprueba su validez. • Si el aserto es válido, sólo se permiten las modificaciones posteriores de la base de datos que no hagan que se viole el aserto. ASERTOS Integridad Restr. de dominios Reglas de integridad Asertos Triggers El salario de un empleado no debe ser mayor que el salario del jefe del departamento al que pertenece el empleado: Empleado(Nombre,Apellido,NSS,Direccion,Sexo, Salario,NSS_Superv,ND) Departamento(NombreD,NumeroD,NSS_Jefe) CREATE ASSERTION RESTRICC_SALARIO CHECK(NOT EXIST(SELECT * FROM Empleado E, Empleado M,Departamento D WHERE E.Salario > M.Salario AND E.ND = D.NumeroD AND D.NSS_Jefe = M.NSS)); TRIGGERS Integridad Restr. de dominios Reglas de integridad Asertos Triggers Un trigger o un disparador en una Base de datos es un evento que se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE). TRIGGERS Integridad Restr. de dominios Reglas de integridad Asertos Triggers Para diseñar un mecanismo disparador hay que cumplir dos requisitos: 1. Especificar las condiciones en las que se va a ejecutar el disparador. 2. Especificar las acciones que se van a realizar cuando se ejecute el disparador. TRIGGERS Integridad Restr. de dominios Reglas de integridad Asertos Triggers Disparadores en SQL Los sistemas de bases de datos SQL usan ampliamente los disparadores, aunque antes de SQL:1999 no fueron parte de la norma. Por desgracia, cada sistema de bases de datos implementó su propia sintaxis para los disparadores, conduciendo a incompatibilidades. TRIGGERS Integridad Restr. de dominios Reglas de integridad Asertos Triggers Tipos Existen dos tipos de triggers, que se clasifican según la cantidad de ejecuciones a realizar: • Row Triggers: se disparan una vez por cada fila afectada. • Statement Triggers: son aquellos que sin importar la cantidad de veces que se cumpla con la condición, su ejecución es única. TRIGGERS Integridad Restr. de dominios Reglas de integridad Asertos Triggers Componentes: La estructura básica de un trigger es: • Llamada de activación: es la sentencia que permite "disparar" el código a ejecutar. • Restricción: es la condición necesaria para realizar el código. • Acción a ejecutar: es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones iniciales. TRIGGERS Integridad Restr. de dominios Reglas de integridad Asertos Triggers La sintaxis para la creación de triggers es la siguiente: CREATE TRIGGER <nombre trigger> <BEFORE|AFTER> <INSERT|DELETE|UPDATE> ON <nombre relacion> FOR EACH <ROW|STATEMENT> EXECUTE PROCEDURE <nombre proc.> (<function args>); TRIGGERS Integridad Restr. de dominios Reglas de integridad Asertos Triggers CREATE TRIGGER contar AFTER INSERT ON Estudiantes WHEN (new.edad < 18) FOR EACH ROW BEGIN cont := cont + 1; END TRIGGERS Integridad Restr. de dominios Reglas de integridad Asertos Triggers Usos: • Son usados para mejorar la administración de la Base de datos, sin necesidad de contar con el usuario que ejecute la sentencia de SQL. • Los disparadores se crean con la finalidad de mantener la integridad del sistema. TRIGGERS Integridad Restr. de dominios Reglas de integridad Asertos Triggers • La activación de un disparador puede activar otro disparador y crear así una cadena de activación de disparadores. REFERENCIAS • Date, C. J. 1993. Introducción a los sistemas de bases de datos VOLUMEN 1 (Ed. Addison-Wesley Iberoamericana). • Fernandez, E. B., Summers, R. C. y Wood, C. 1981. Database Security and Integrity (AddisonWesley). • http://www.monografias.com/trabajos26/segurid ad-base-datos/seguridad-base-datos3.shtml • http://www.itba.edu.ar/capis/rtis/articulosdelosc uadernosetapaprevia/VASCONI-SEGURIDAD.pdf • http://webdia.cem.itesm.mx/ac/rogomez/Tesis/a bsRocio.html