You are on page 1of 18

Control de Concurrencia

y
Seguridad Multinivel

MAESTRIA EN SEGURIDAD INFORMATICA - SEGURIDAD EN BASE DE


DATOS

CONTROL DE CONCURRENCIA

La concurrencia en las bases de datos :


Se refiere al hecho de que los Sistemas Administradores de Base de
Datos permiten que muchas transacciones accedan a una misma Base
de Datos a la vez.
Cuando existen varios usuarios intentando modificar los datos al mismo
tiempo, se necesita establecer algn tipo de control para que dichas
modificaciones de un usuario no interfieran en las de los otros, a este
sistema se le denomina control de concurrencia
Se requieren planificaciones secuenciales en cuanto a conflictos y sin
cascada para garantizar el aislamiento.
Esquemas de control de concurrencia - Mecanismos para conseguir
aislamiento
Basados en bloqueo
Basados en marcas temporales
Basados en validacin

TRANSACCIONES
El control de concurrencia permite que sus usuarios asuman que cada
una de sus aplicaciones se ejecuta atmicamente, como si no
existieran otras aplicaciones ejecutndose concurrentemente. Esta
abstraccin de una ejecucin atmica y confiable de una aplicacin se
conoce como una transaccin
Informalmente, una transaccin es la ejecucin de ciertas instrucciones
que acceden a una base de datos compartida.
Cada transaccin accede a informacin compartida sin interferir con
otras, si una transaccin termina normalmente, todos sus efectos son
permanentes, en caso contrario no tiene afecto alguno.
Durante una transaccin la base de datos pierde su consistencia, la
que debe restituirse al momento de finalizar la transaccin.

PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIN

Atomicidad: Se refiere al hecho de que una transaccin se trata como una unidad de
operacin. Consistencia: La consistencia de una transaccin es simplemente su correctitud.
las transacciones no violan las restricciones de integridad de una base de datos.

Aislamiento: Una transaccin en ejecucin no puede revelar sus resultados a otras


transacciones concurrentes antes de finalizar.

Permanencia: Es la propiedad de las transacciones que asegura que una vez que una
transaccin finaliza exitosamente, sus resultados son permanentes y no pueden ser
borrados de la base de datos por alguna falla posterior.

Confiabilidad: Puesto que los sistemas de base de datos en lnea no pueden fallar.

Disponibilidad: Debido a que los sistemas de base de datos en lnea deben estar
actualizados correctamente todo el tiempo.

Tiempos de Respuesta: el tiempo de respuesta de las transacciones no debe ser mayor


a doce segundos

Throughput: Los sistemas de base de datos en lnea requieren procesar miles de


transacciones por segundo.

PROBLEMAS DE CONCURRENCIA

Existen tres formas en las que una transaccin, aunque


sea correcta por s misma, puede producir una respuesta
incorrecta si alguna otra transaccin interfiere con ella en
alguna forma.
El problema de la Actualizacin Perdida
El problema de la Dependencia No Confirmada
El problema del Anlisis Inconsistente

Algunos casos Problemas de concurrencia


Lectura sucia (dirty read): T1 puede leer una actualizacin
de T2 an no confirmada y si T2 falla y se aborta, T1 ley un
valor que no existe.
Lectura no repetible (nonrepeatable read): T1 puede leer un
valor D que posteriormente actualiza T2. Si T1 vuelve a leer el
valor de D lo encuentra cambiado.
Fantasmas (phantoms) - T1 puede leer una tabla en la que
posteriormente T2 inserta una fila. Si T1 vuelve a leer la tabla
aparece una fila nueva: un fantasma.

SEGURIDAD MULTINIVEL

Las tcnicas de control de acceso discrecional para conceder y


revocar privilegios en relaciones han sido, desde siempre, el
principal mecanismo de seguridad en los sistemas de base de
datos relacionales. Este es un mtodo de todo o nada: usuario
tiene un cierto privilegio o bien no lo tiene. En muchas aplicaciones
se necesita una poltica de seguridad adicional que clasifique los
datos y los usuarios de acuerdo con ciertas clases de seguridad.
Esta estrategia, llamada control de acceso obligatorio, se suele
combinar con los mecanismos de control de acceso discrecional.
Es importante sealar que la mayor parte de los SGBD comerciales
ofrecen actualmente solo mecanismos para el control de acceso
discrecional. Sin embargo la necesidad de una seguridad multinivel
existe en aplicaciones gubernamentales, militares y de espionaje,
as como en muchas aplicaciones industriales y corporativas

Las clases de seguridad usuales son:

Maximo secreto (TS: top secret)

Secreto (S: secret)

Confidencial (C: confidential)

No confidencial (U: unclassified)

El modelo Bell-LaPadula:.La regla fundamental de este modelo


es la que ninguna entidad debe tener acceso delecturaa un objeto
clasificado por encima de su propio nivel de seguridad. Es decir, el
nivel de seguridad de una entidad debe ser igual o superior al del
objeto al que se va a acceder.
Nos referiremos a la acreditacin (clasificacin) de un sujeto S como
clase (S) y a la clasificacin de un objeto O como clase (O). Se
asegura el cumplimiento de dos restricciones de acceso a los datos
segn las clasificaciones sujeto/objeto:
1. Un sujeto S no puede tener acceso de lectura a un objeto O a
menos que la clase (S) >= clase (O). Esto se conoce como
propiedad de seguridad simple.
2. Un sujeto S no puede tener acceso de escritura a un objeto O a
menos que la clase (S) <= clase (O). Esto se conoce como
propiedad * (o propiedad estrella)

El modelo Lattice: Es el que utilizan elgobiernoy el ejrcito de


losEstados Unidos. Se basa en unapolticade control de acceso
imperativa. Estemtodoutiliza una jerarqua de niveles de
seguridad (llamados compartimentos) asociada a una clasificacin
de seguridad para los objetos . Cada objeto tiene asignada una
clasificacin de seguridad que est en uno o ms compartimentos,
y ambos son comprobados por el control de acceso del sistema
imperativo. Para acceder a un objeto, una entidad debe pertenecer
a todas los compartimentos a los que pertenece ese objeto, y debe
tener asignado un nivel de seguridad igual o superior al del objeto.

En el ejemplo solo una entidad clasificada como secreta o muy


secreta, y que pertenezca al menos a los compartimentos F, G y
H podr acceder al objeto 2.

CASO PRACTICO

EN MYSQL
En el motor de almacenamiento: InnoDB
InnoDBimplementaunbloqueoaniveldefilaestndar,dondehaydostiposde
bloqueos:
Compartido(Shared)(S)lepermiteaunatransaccinleerunafila.
Exclusivo(Exclusive)(X)lepermiteaunatransaccinactualizaroeliminarunafila.
SELECT ... FROM ... LOCK IN SHARE MODE
establecebloqueoscompartidosdeprximaclaveentodoslosregistrosde
ndicehalladosporlalectura
SELECT ... FROM ... FOR UPDATE
establecebloqueosexclusivosdeprximaclaveentodoslosregistrosde ndice
halladosporlalectura
IsolationLevel

DirtyRead

NonrepeatableRead

PhantomRead

Read uncommitted

Possible

Possible

Possible

Read committed

Not possible

Possible

Possible

Repeatable read

Not possible

Not possible

Possible

Serializable

Not possible

Not possible

Not possible

EN ORACLE
Oracle utiliza la informacin existente en el segmento de anulacin (datos
antiguos).
Cuando una consulta comienza se le asigna un nmero (SCN=System Change
Number).
DatosledosporunaconsultatienenunSCNmspequeo.
Bloques con SCN ms alto (ms reciente) son reconstruidos con la informacin
contenidaenelsegmentodeanulacin.
Oracleproporcionaconsistenciadelecturaadosniveles:
Niveldesentencia
Niveldetransaccin
ORACLEutilizaelnivelmenosrestrictivoguindoseporlassiguientesreglas:
Operacionesdelecturanoesperanalasdeescriturasobrelosmismosdatos.
Operacionesdeescrituranoesperanalasdelecturasobrelosmismosdatos.
Operaciones de escritura solamente esperan a otras operaciones de escritura que intentan
modificarlamismatupla.
Interbloqueos: ocurren cuando dos o ms usuarios estn esperando datos bloqueados por los
otros.Oracleautomticamentedetectasituacionesdeinterbloqueoylosresuelveabortandouna
delastransacciones.Sedetectanmediantegrafosdeesperas.

EN SQL SERVER
MVCC (Multi version concurrency
control)es una tcnica de concurrencia
optimista en donde ninguna tarea o hilo
es bloqueado mientras se realiza una
operacinenlatabla,porqueelotrohilo
usa su propia copia (versin) del objeto
dentrodeunatransaccin.
Todaslasbasesdedatosmodernasimplementan
actualmente este algoritmo de concurrencia
optimista.EnSQLServersellamaSNAPSHOT
ISOLATION, en MySql se llamaInnoDBMulti
Version, en Firebird MGA y en Oracle y
PostgreSQL,simplementeMVCC.

You might also like