Propiedades:
1.- Confidencialidad de datos, procedimientos, etc (distintos niveles). Se utilizan dos técnicas:Otras propiedades:1.1.- T. de control de acceso al S.I.
1.2.- T. de cifrado (alteración de datos).
2.- Integridad de los datos: los datos a los que accedemos no han sido modificados excepto por las personas autorizadas para ello.
3.- Autenticidad: nos asegura que el origen de los datos es correcto.
4.- Disponibilidad: esta propiedad es la que más veces falla, aunque normalmente es la propiedad menos importante y puede que la más difícil de alcanzar en algunos S.I. Puede ser causada por un ataque externo que hace que el sistema deje de funcionar.
* No repudio: un emisor de información no puede negar el echo de que la ha emitido. Es un tema muy difícil, se consigue firmando un contrato.Política de Seguridad: Es una declaración de intenciones organizativas de alto nivel, que son aquellas que están orientadas a mantener la seguridad de un S.I. Establecer las bases para delimitar y mantener la seguridad. Se refleja en un documento escrito que ha de cumplir todos los aspectos de la seguridad. Debe de ir guiada por una regla fundamental: SENTIDO COMÚN, para establecer la política de seguridad y los mecanismos.
* Auditoria: revisa todos los procesos de seguridad que se han realizado en una determinada actividad informática. La parte más importante suele ser la confidencialidad.
- ¿Qué se va a proteger?
- ¿De quien se va a proteger?
- ¿Cómo se va a proteger?
a) Determinar los recursos que hay que proteger no solo el ordenador,
si no los datos que contiene, el valor económico de ambos.
b) Amenazas y vulnerabilidad del sistema
c) Determinar las medidas que vamos a hacer para la protección
del sistema
d) Monitorizar el comportamiento de la política (auditoria)
Hay una propiedad importante: El coste de los medios necesarios para romper la seguridad ha de ser mayor que el coste de los datos y esto mayor que las medidas de seguridad.
Cuando hablamos de la seguridad de un S.I. hay que tener en cuenta:
* Vulnerabilidad: Aquel punto en el que el sistema puede ser atacado
* Amenazas: Cualquier peligro exterior que amenace al sistema (terremoto,
persona, programa...)
* Contramedidas: Aquellas técnicas de protección específica
contra las amenazas. Entonces hay que identificar las vulnerabilidades
y las amenazas para tomar las correspondientes contramedidas.
Se pueden establecer tipos de vulnerabilidades,
clasificadas por su naturaleza:
a) Física: posibilidad de que el sistema puede ser atacado físicamente
b) Natural: grado en el que el sistema puede verse atacado por desastres
naturales o medioambientales
c) De Hardware y de Software: debilidades que hagan poco fiable al
sistema, que causan errores que pueden afectar al acceso a los datos
d) En las comunicaciones: entrada de virus o de personas que intentan
entrar a través de la red
e) Humana: mayor vulnerabilidad, se refiere a las personas que manejan
y administran el S.I., personas autorizadas al manejo del sistema (administrado)
Tipos de amenazas desde el punto de vista
del efecto que causan:
a) Intercepción: cuando se consigue acceso a una parte del sistema
sin autorización
b) Modificación: cuando alguien accede a una parte del sistema
y tiene capacidad de canviar el contenido
c) Interrupción: interrumpir (indefinida / momentánea)
del funcionamiento del sistema, puede ser accidental. Son las amenazas
más frecuentes y menos dañinas
d) Por generación: cuando existe la posibilidad de añadir
información o programas en el sistema (por ejemplo: un virus)
En función del origen de las amenazas, se puede distinguir:
a) Naturales o físicas
b) Involuntarias: se producen por falta de cuidado físico en
el sistema, falta de mantenimiento
c) Intencionadas: proceden de personas decididas a fastidiar, pueden
causar daños de los vistos anteriormente
Medidas de seguridad: Han de limitarse en
el coste de las medidas en función del coste de los datos a proteger.
Pueden ser tan extremas que el sistema sea muy difícil de utilizar.
* Medidas físicas: mecanismos que no permitan el acceso físico
al sistema, y proteger el sistema de desastres (medidas no informáticas)
* Medidas lógicas: todas las que están relacionadas con
el Software, y además también medidas organizativas, por
ejemplo: definición de una política de seguridad (definición
de una política de auditoria, definición de la política
de las copias de seguridad, de la instalación de software, implantación
de medidas criptográficas...)
* Medidas administrativas: medidas que toman las personas responsables
de la seguridad, determina quienes son los responsables de la seguridad,
informarán a los usuarios de dichas medidas...
* Medidas legales: medidas a a, medidas que van en función de
las leyes vigentes en ese momento.
* Principio del menor privilegio: cualquier objeto de un sistema debe
tener solamente aquellos privilegios que sean necesarios para desarrollar
sus tareas y ninguno más.
* Principio de la vulnerabilidad: no se puede obtener la seguridad
a base de esconder las vulnerabilidades.
* Principio del eslabón más débil: la seguridad
es una cadena de medidas, el eslabón que es más débil
marca la seguridad del sistema
* Principio del punto de control centralizado: cualquier acceso al
sistema pasa por un único punto de control. Hay que tener todos
los sistemas de seguridad alineados.
* Principio de la participación universal: en la seguridad requiere
la participación de todos los usuarios del sistema
* Principio de defensa en profundidad: para proteger el sistema hay
que colocar una serie de barreras.
* Principio de simplicidad: Las cosas cuanto más simples mejor.
TEMA II:FUNDAMENTOS DE CRIPTOGRAFÍA
Método criptográfico:
Criptosistema: Es una quíntupla donde:
M: Conjunto de todos los posibles mensajes sin cifrar: TEXTO PLANO
/ TEXTO CLARO
C: Conjunto de todos los criptogramas (mensajes de cifrado)
K: Conjunto de las llaves que se pueden usar en ese criptosistema
E: Conjunto de las transformaciones de cifrado que se aplican sobre
M y dan como resultado C
D: Conjunto de todas las transformaciones de descifrado
Clases de criptosistemas:
- De llave privada o criptosistemas simétricos: La misma llave
se utiliza para cifrar y para descifrar. La llave ha de ser secreta
- De llave pública o criptosistemas asimétricos: Se utilizan
dos llaves (k,p)
K: llave privada
P: llave pública
Se utiliza para cifrar por ejemplo, la llave k y para descifrar la llave
p:
RSA:
Método que cumple las dos propiedades. Requiere una propiedad
fundamental: si utilizo una llave pública distinta a la correspondiente
llave privada, o viceversa, no consigo descifrar el mensaje. Dada una llave
pública , no hay manera de obtener k. Esta propiedad es la que permite
que p sea pública.
El algoritmo es mejor que sea público, el método es público,
lo que es privado es la llave. Se conoce el método general, pero
no se puede obtener Dk
Dada una k hay una p, y dada una p, hay una k, y solo una.
CONCEPTOS DE TEORIA DE INFORMACIÓN
Cantidad de información: La información se puede
cuantificar asociándola a la probabilidad.
A mayor probabilidad --> menor información
A menor probabilidad --> mayor información
Entropía:
Entropía condicionada de un suceso sobre otro:
Criptosistema seguro de Shanon (criptosistema ideal): I(c,m)= 0
El conocimiento del conjunto C no nos aporta ninguna información
sobre el conjunto D. En la práctica son imposibles de alcanzar.
Se denomina el índice de un lenguaje, como la cantidad de bits
que se obtienen al calcular la entropía.
( k ==> longitud de los mensajes en caracteres)
Si rk = 1.3, quiere decir que necesitaría 1.3 bits para codificar cada letra.
Índice absoluto:
Redundancia: R - r
Índice de redundancia:
Desinformación de un criptosistema:
Entropía del conjunto de los mensajes condicionada al conjunto de los mensajes cifrados.
H ( M / C )
H ( M )= H ( M / C )
Esto quiere decirnos que el conocimiento de C no debe darnos ningún tipo de información de M
H ( K / C )
Se define la distancia de unicidad como la longitud mínima de un sistema criptografiado que aproxima esa cantidad a 0. Otra forma, cantidad de mensaje cifrado que necesita para descubrir esa llave.
Técnica de confusión: Oculta
la relación que hay entre el texto claro y el cifrado, para ello
se sustituye.
Técnica de difusión: Diluye
la redundancia del lenguaje, repartiéndolo a lo largo del texto
cifrado, para ello se realiza una transposición.
Aritmética modular
[x mod y]
a) Congruencia modulo n
a y b son congruentes
cuando:
b) Algoritmo de Euclides (básico)
Permite calcular el máximo común divisor de dos números.
Se basa en la propiedad de que si:
m | a y m | b
m | a mod b
Si esto se repite al final queda el 0, el número anterior a
este es el mínimo común divisor.
Llamamos , al número
de elementos del conjunto reducido de restos.
Teorema:
* Si mcd ( a, n) = 1 ==>
* Si n = p * q
si mcd ( a, n) = 1 ? ==>
*
Algoritmo extendido de Euler: se utiliza para calcular la inversa
Algoritmo de exponenciación rápida: cualquier número se puede representar de forma binariaeuler (n ,a)
g0 = n
g1 = a
n0 = 1
n1 = 0
v0 = 0
v1 = 1
i = 1
while (gi ! 0) {
c = gi-1 / gi
gi+1 = gi-1 % gi
ui+1 = ui-1 - c * ui
vi+1 = vi-1 - c * vi
i++
}
El bucle se ejecutará como máximo el log2 del número.
Esto es porque queremos trabajar en aritmética modular, ab modulo
n, para poder acotar el proceso y que no nos desborde el lenguaje de programación
que utilicemos.
Para saber si un número es primo o no se utiliza la factorización,
si no se puede factorizar es primo y si no, si que lo es.
Tenemos problemas en números muy grandes, es difícil
de factorizar. En esto se basa la seguridad RSA, en no poder factorizar
un número.
Tenemos un test probabilístico para poder averiguar si un número
es primo o no, aplicando el test varias veces.
Existen dos algoritmos:
* Algoritmo de Leman: nos da unicamente una probabilidad del 50%, pero
lo aplicaremos unas 20 ó 30 veces para asegurarnos si es primo o
no.
a aleatorio < p
si b <> 1 y b <> p - 1
mod p
mod p
p no es primo
* Para generar un número primo, se genera un número aleatorio
del número de bits que queramos. Ponemos a 1 los bits más
y menos signigicativos (para que realmente sea de m bits (a la izquierda)
y para asegurarnos de que sea impar (a la derecha)). Luego cogemos una
tabla con números primos menores de 2000, y probamos a dividir nuestro
número por los números de esa tabla. Si pasa esta prueba,
aplicamos varias veces el test de Leman.
Existen otros números, llamados "primos fuertes", que
son primos relacionados de la siguiente forma:
p y q son primos fuertes si:
1. mcd (p-1, q-1) --> es un número pequeño
2. p - 1, q - 1 --> tienen un factor primo grande (ambos)
3. p' - 1, q' - 1 --> tienen un factor primo grande (ambos)
4. p' + 1, q' + 1 --> tienen un factor primo grande (ambos)
Para utilizar el método de RSA necesitamos números primos de este tipo.
Generación de números aleatorios:
Pueden haber diversos tipos de fuentes de aleatoriedad, pero no todas
pueden ser criptográficamente válidas.
TEMA III: CRIPTOGRAFÍA
Métodos de cifrado básicos:
Métodos de sustitución (generar
confusión)
1. Monoalfabéticos: Organismos criptográfico
que no desordena los símbolos, si no que no desordena los símbolos,
si no que establece una correspondencia con otro alfabeto, que será
la clave del cifrado.
El cifrado más sencillo es el alfabeto del CESAR
A B C D E ... Z
D E F G H ... C
c = m + k
Es un desplazamiento rotatorio.
El caso más general del CESAR es: ,
se obtiene un desplazamiento más complicado. No es necesario que
sea un desplazamiento determinado, podemos utilizar una tabla que hayamos
prefabricado previamente.
El problema de estos métodos es que dado un número siempre
se obtiene el mismo código de salida, entonces si hacemos un análisis
probabilístico la probabilidad de entrada será siempre la
misma que la de salida.
Para eliminar este problema, se pueden utilizar tablas diferentes,
por ejemplo en función del orden de posición del carácter
en el mensaje.
2. El carácter i-ésimo
se obtiene desplazando la clave i-ésima.
El carácter de frecuencias no va a dar lo mismo.
Dispersión = Se obtiene utilizando sistemas de cifrado
en el que se provocan permutaciones más o menos sofisticadas dentro
del texto.
Podemos hacer una transposición por columnas
Un algoritmo criptográfico solo puede hacer una pasada, y los
datos son strings, entonces no hay manera de implementarlo en un programa.
Algoritmos simétricos:
Bloque
Secuencia
El algoritmo des, es un algoritmo que trabaja
con bloques de 8 bytes y las llaves son de 8 bytes. Se utiliza el bit de
paridad que nos sirve para la corrección de errores, tiene un bit
de paridad cada 8, y la capa efectiva tiene 56 bits realmente.
El des cumple la propiedad de que el conocimiento del texto cifrado
no nos aporta ninguna información sobre el texto original. También
cumple una propiedad implementativa, se puede implementar a través
de puertas lógicas, para poder introducirlo en sistemas des exclusivos.
ECB: Método que no se tiene que utilizar
CBC: Modo de cifrado encadenado.
Cada mensaje solo depende del bloque cifrado actual y del anterior,
no del resto. Es el método por defecto de funcionar todos los algoritmos
por bloques de cifrado.
Problema de todos los algoritmos por bloques: la información
la sacan de 8 bits en 8 bits, así una persona con un terminal seguro
no envía carácter a carácter, sino bloques de 8 bits.
Para poder enviar esto se utiliza el siguiente método de transmisión
que sacará los caracteres de 1 en 1, aunque cifremos de 8 en 8.
Se aplica el DES para cada carácter. Lo que nosotros metemos,
mi, no se cifra, lo que hacemos es un XOR con algo que ya está cifrado
(ci).
Este método se puede utilizar por ejemplo para hacer un telnet.
No es un método adecuado para grandes cantidades de datos.
DES:
Métodos que se basan en unas operaciones de redes. Cada bloque se divide en dos, luego se hacen operaciones y se cambian de lado, la izquierda a la derecha y viceversa. Uno de los métodos es hacer esto 16 veces, con 16 llaves distintas para cada 8 bits.
Para descifrarlo, se realiza la misma operación que al cifrarlo, pero se invierten los papeles de la R y la L.
La función f, se compone básicamente de dos partes, que
tratan de dar la confusión a través de sustituciones y la
dispersión a través de permutaciones.
Las sustituciones se realizan mediante S-BOX, que es una tabla de sustitucióna
a la que le entran n bits y salen m bits.
El DES utiliza 8 cajas de 6 por 4.
Dado Ri le aplicamos un proceso de expansión.
CIFRADO SIMÉTRICO
V ==> Algorítmos rápidos
Fáciles de implementar
D ==> Es difícil de trabajar en un entorno abierto con un algoritmo
de cifrado simétrico. Esto se resolvió con los algorítmos
de descifrado de llave pública, son los algoritmos ASIMÉTRICOS.
- Lo que se cifra con una llave del algoritmo asimétrico se descifra
con la otra y solo con la privada, o viceversa. Se pueden tener algoritmos
con llaves reversibles RSA.
Utilización de la llave pública y la llave privada.
Lo que se cifra con la llave pública, se descifra con la llave privada, y solo así, de una no se puede obtener la otra ( propiedad fundamental ).
Como conseguir secreto y autenticidad:
RSA:
Cogemos p y q, primos fuertes y secretos.
n=p*q ==> lo hacemos público
Estos no son primos, son pares:
(p-1)*(q-1) Primos relativos con este producto, no tienen ningún
factor en común.
Cuando dos números no comparten ningún factor, existe
la inversa. Entonces:
Si m < p y m < q, m y son primos entre si: =
1 ? he obtenido m
Llave secreta = (d,n)
Llave pública = (e,n)
Cifrar ==> c=me (modulo n)
Descifrar ==> m=cd (modulo n)
Inconveniente: Los algoritmos de cifrado de llave pública son
mucho más lentos que los de llave privada ==> es inviable.
Solución: Se genera un número aleatorio S (que hará
de llave) será muy grande (muchos bits) y se mantiene en secreto,
entonces se cifran con DES con la llave S el mensaje, y se envía
el mensaje junto con la llave S cifrada con el algoritmo simétrico.
Comprobación: el que lo recibe descifra la caja2 y con ello
descifra la caja1.
Problema: Si se manda el mensaje a una persona que no tiene ningún
método de criptografía no lo podrá descifrar.
Resolución: Se introduce una "función resumen" (funcion
hash) función no inyectiva que dado un mensaje cualquiera el
resultado es siempre una cadena de longitud fija (no muy grande).
Objetivo ==> Evitar la falsificación
* La más mínima alteración en la entrada produce
un resultado de la función muy distinto.
* Dado un resultado de función es imposible construir un texto
de entrada que de cómo resultado ese hash, porque la función
no tiene inversa.
En la práctica hay dos modelos de función hash:
md5: message digest 5
sha1: signature hash algoritm 1
md5 es mucho más rápido que el sha1
Hay una variante de las funciones resumen:
MAC: depende de un resumen y de una password
Ventajas:
1.- Rápido
2.- La persona que la recibe lee el mensaje sin ningún problema,
viene el mensaje
y al final la firma.
Para comprobar el mensaje, comprobar que no ha sufrido alteraciones:
x=H(m)
y puede ser distinto de H(m) porque puede haber sufrido alteraciones.
Pero seguimos teniendo un problema de fondo, ¿cómo sabemos
que la llave pública es de A? ¿La llave pública corresponde
a la persona que dice?
Tenemos dos soluciones:
Solución horizontal: Utilizada por el PGP. Consiste en
que se de la llave en mano, comunicación directa o comunicación
entre personas conocidas. Para asegurarnos que la llave es de otro es válida,
firmamos con su llave privada la llave pública del tercero, entonces
nos la envía.
Solución vertical: Se incluye en el proceso de una tercera
persona de confianza, está en un plano superior (notario), aceptamos
todo lo que venga garantizado por el notario, si no viene garantizado por
él nos lo creemos o no, esto sería ya PGP.
notario = Autoridad certificadora
Certificado: Objeto que relaciona una llave pública con una descripción. Es un paquete donde hay unos datos (una descripción) y una llave pública.
En la práctica se ha acogido al estándar x509, estándar de certificación de la llave pública.
Todo lo relacionado con la implementación del x509 van muy relacionados
con el RSA. La empresa RSA laboratories ha creado unos documentos para
utilizar correctamente el RSA:
PKCS 1
PKCS 7
PKCS 10
PKCS 12
¿Cómo es un certificado x509?
Se describen mediante un lenguaje de una estructura de datos, el lenguaje
utilizado es ASN.1 (es un mensaje muy genérico).
Firma
El subject se refiere a los datos a los que hace referencia ese certificado, el issuer hace referencia a quien lo está certificando, por ello, cuando el subject i el issuer coinciden, se llama certificado autofirmado. Si firmo mi certificado, la llave privada corresponde a la llave pública del certificado.
¿Cómo se obtiene un certificado?
PKCS12: Se nos envía por un paquete que es delicado porque contiene
la llave pública y la privada. Este paquete se protege con una password.
Problema: la autoridad certificadora conocería la llave privada.
Solución: nosotros mismos podemos generar un certificado. Contiene:
- datos personales
- llave pública
- firma (por la llave privada)
PKCS10 ==> contenedor de petición unicamente.
¿Qué formato tiene el certificado?
Tiene un formato binario que está descrito por el ISO, y se
llama VER, que tiene un subconjunto denominado DER.
El formato PEM es una forma de representar los formatos DER para poder
visualizarlo, es imprimible.
--------------------- BEGIN CERTIFICATE REQUEST--------------------
------------------------- END CERTIFICATE REQUEST---------------------
Lo que hay antes del begin y después del end no podremos visualizarlo.
DER
PEM
¿Qué ocurre si un certificado que está
en vigor deja de ser válido por el echo de que, por ejemplo, la
persona que lo tiene pierde la llave privada?
El certificado deja de ser válido.
clave comprometida: varias personas conocen la llave privada.
Solución: - la llave privada no debe perderse ni comprometerse
- en el x509: CRL (certificate revocation list): Periódicamente
las autoridades certificadoras
emiten un CRL total, CRL incremental, contiene los números de
serie de los certificados
que están en validez pero han sido revocados, se desea que dejen
de ser válidos en la práctica. Esa lista va firmada por la
autoridad certificadora.
CRL total: cubre todos los certificados
CRL incremental: cubre, por ejemplo, los certificados revocados el
último mes.
Para actualizar los CRL, la autoridad certificadora en una extensión
tiene la URL de donde debe bajarse los CRL.
Problema: Es periódico
OCSP: Resuelve el problema de la periodicidad. Es un protocolo on-line,
se comprueba en tiempo real.
Problema: Requiere trabajo on-line, aunque hoy en día todos
pueden estar conectados a la red, cuando se creó era más
difícil.
En la práctica las autoridades certificadoras no lo utilizan
todavía, porque hay que conectarse a un servidor concreto, y es
difícil saber cual es.
APLICACIONES DIRECTAS
1) SSL (sequre socket layer): Protocolo disponible en dos versiones:
SSL v.2, SSL v.3
TLS: Estándar teórico que asume internet
El SSL tiene como objetivo dar una capa de seguridad a las comunicaciones
on-line a través de internet. Se utiliza mayoritariamente para dar
seguridad en la web. Puede utilizarse también con otros protocolos,
ftp, telnet...
El objetivo principal pues, es la autentificación del servidor
y el cifrado de datos, y como objetivo secundario la autentificación
del cliente.
HTTPS: Se basa en un certificado el cual en el comun name se
pone el nombre del servidor.
A partir de la llave de sesión se comienza la comunicación
cifrada. Cuando se acaba la sesión, la llave se puede desecharse.
Ocurre lo mismo en caso contrario, es el servidor el que pide un certificado
al cliente.
MAIL SEGURO
SMIME: Mime seguro
MIME: Es una forma de resolver el problema de poder enviar por
correo información binaria. El texto se envía de una forma
que evite la codificación de caracteres de control.
1.- quoted-printable
2.- base 64
1.- Objetivo: El texto es más o menos normal, pero hay caracteres
que hay que recodificar, estos caracteres se escriben como =XY que corresponde
a cada carácter, para textos cortos.
2.- Recodificación completa de la información, se incrementa
el tamaño, se utiliza cuando la información es binaria.
El problema es cuando queremos enviar un mail con distintos tipos de
codificación, por ejemplo un mail con texto y con fotos. Se busca
un estándar para lograr esto, es una expansión del correo
que es MIME.
Para mandar un mail firmado multipart / signed se utiliza SMIME.
La firma del mensaje contiene el resumen del mensaje cifrado con la
llave privada del que lo envía. El hash se calcula de todo lo que
va dentro del mensaje, incluidas cabeceras.
Tipos de datos del pkcs7:
Está pensado para el transporte de información. Pueden
contener:
- datos (4 tipos anteriores)
- cifrado de datos
- firmas de datos
En signed data los datos que se firman digitalmente van incluidos en
el pkcs7
Enveloped data se utiliza para mails cifrados, no suelen llevar ni
certificados ni firma.
Además de la firma se adjunta el certificado, para poder validar
la firma del usuario que manda el mensaje.
Pueden adjuntarse varias firmas en un mismo mensaje, para verificar
las firmas se hace un hash del mensaje y para cada firma se descifra y
se extrae el resumen del mensaje, luego todos los resúmenes han
de ser iguales entre si, e iguales al resumen real. Si hay algún
error de que no se puede descifrar o no es igual el resumen, entonces no
podemos verificar la firma.
Un certificado según el x509 se caracteriza por el número
de serie y por quien lo firma.
Un mail cifrado siempre se envía a dos destinatarios, a quien
va dirigido el mail y a uno mismo, para que lo podamos leer de nuevo, Por
cada destinatario solo se aumenta en una cantidad pequeña de bytes
el mail, que es el cifrado de la llave de sesión con la llave pública
del destinatario y el nombre de la FAE.
TEMA IV: SEGURIDAD EN REDES
La red es un sistema por el cual distintos ordenadores pueden comunicarse
con facilidad de manera directa.
Las redes más extendidas son las TCP/IP, funcionan con un modelo
de capas, son trozos de software el cual realiza una serie de funciones
sobre la capa que tiene inmediatamente debajo.
Las aplicaciones basándose en un socker, transmiten los datos
y se comunican.
DNS: Aplicación especial, es algo que está entre las
aplicaciones y el TCP. Es una aplicación que es encarga de traducir
los nombres a números IP, para que la aplicación en concreto
pueda abrir un socker.
La red en seguridad tiene muchos inconvenientes:
- El perímetro de la zona a asegurar ha crecido enormemente,
esto somete a problemas de seguridad no solo de dentro si no también
de fuera.
- El TCP/IP es vulnerable, también el nivel físico e
incluso el cable puede llegar a serlo.
- Posibles deficiencias de la capa de enlace.
- Errores en el TPC/IP
- Cada aplicación escuchando es un problema de vulnerabilidad.
En las capas más bajas se pueden resolver tomando precauciones.
Problemas en la red:
1.- Sniffing: Alguien puede pinchar la red y escuchar la transmisión
de datos. La solución básica es el cifrado.
El sniffing se puede hacer pinchando directamente sobre el cable. En
redes locales la forma de sniffar es más sencilla, en ethernet utilizan
cables BNC, el inconveniente es al desconectar una T se desconecta toda
la res, la ventaja es que el cableado es muy fácil. Esta red se
sniffa muy fácilmente porque es un bus compartido, entonces un ordenador
transmite y todos los demás "escuchan". Estas redes se sustituyen
por otras redes que van a través de un apartado que se llama hub.
Si uno se desconecta, no afecta a los demás, pero tiene un inconveniente
al cablearlo a través de las paredes. Es un protocolo más
avanzado, aunque seguimos teniendo el problema que uno transmite y los
demás "escuchan". Son mejores a nivel de velocidad, prestaciones,
etc.
La solución básica al sniffing es un sistema criptográfico.
Hay tres grandes formas de hacerlo:
- Cifrado de enlace: El cifrado se realiza a nivel más bajo
de la red. Lo que tiene de bueno es que todas la aplicaciones tiene ventajas.
El cifrado se establece por tramas.
- Cifrado de extremo a extremo: los datos viajan cifrados, es independiente
del camino que pase, son las aplicaciones las que se cifran / descifran
(SSL, SMIME).
- IPSec: Cifrado a nivel de IP, el usuario no puede elegir si se cifra
o no. El problema es que la red IPSec acaba en un punto, a partir de ahí
ya no hay cifrado.
2.- Suplantación de identidad dentro de la red: puede ser aplicada a muchos niveles, a nivel de enlace, de IP, ... La suplantación del correo electrónico (SMTP) no tiene ninguna medida de seguridad aceptable.
3.- DOS (denegación de servicio): Consiste en atacar a un servidor de manera que el servidor ya no puede funcionar.
4.- Intrusión directa a un sistema: como un usuario o
como administrador. Esto se produce normalmente por errores en las aplicaciones.
Estos ataques hacen uso de lo que se llama buffer overun (overflow).
En general, la técnica para protegerse en un entorno de red en
un sistema abierto:
1.- Mantener el software completamente actualizado. Existen unos organismos,
CERT, que se encargan de hacer advertencias de seguridad generales. Normalmente
se distribuyen geográficamente. Son también una lista de
correo.
2.- Hay que intentar seguir al máximo todas las normas de seguridad
vistas en el primer tema de la asignatura. Hay que procurar que los puntos
de entrada al sistema son los que queremos y ninguno más.
Firewall:
Conjunto de políticas y técnicas cuya misión es
aislar al máximo un trozo de la red del resto de la red mundial.
Se ha de aislar en la justa medida:
Hay que ajustar las políticas: - Política abierta
- Política cerrada
Una política es abierta si permitimos acceso a todo el mundo
y de forma selectiva cerramos el acceso a ciertos individuos. Una política
cerrada por defecto no permite el paso a nadie, excepto a personas determinadas.
Para implementar estas políticas de entrada / salida dentro
de un sistema, se utiliza una TÉCNICA DE FILTRADO DE PAQUETES. Se
coloca en un punto que comunica la red cerrada a la red general que solo
deje pasar unos determinados IPs, en base a la política que se ha
elegido, y se rigen por una serie de reglas:
1) entrada
2) salida
3) tránsito
TEMA V: AMENAZAS PROGRAMADAS, VIRUS
Tipos de virus:
* Caballo de troya: Consiste en que en un programa que estaba
destinado para algún fin, realmente o no hace lo que se esperaba
o aparte de eso lo que hace es algo que no se esperaba, y que es perjudicial
para el sistema.
* Virus: Realmente sería un código cuya misión
principal no es destruir sino sobrevivir. Normalmente es un código
corto que nunca aparece como programa independiente, sino que es un código
que parasita a otros programas, su misión es reproducirse para sobrevivir
No es necesario que sea dañino.
* Gusanos: Código ejecutable que intentaba sobrevivir
dentro de la red, no se le llamó virus porque no se añadía
a ningún programa. El mecanismo para la replicación que utilizaba
era la red, iba replicándose de sistema en sistema.
Seguridad: Defenderse de los virus
* Estrategia antitroyano: Política de seguridad.
* Estrategia antivirus: Técnicas par defenderse de estos.
Los primeros virus aparecen con el MSDOS, con la aparición de Windows95 (que deja de depender básicamente de MSDOS) no sobrevivieron estos virus anteriores, el propio Windows impedía la existencia de estos. Muy posteriormente aparecieron los virus de las aplicaciones, para las siguiente versiones de Windows.