TEMA I: INTRODUCCIÓN A LA SEGURIDAD INFORMÁTICA
Seguridad informática: Intentar preservar ciertas propiedades del Sistema Informático (S.I.)

Propiedades:

1.- Confidencialidad de datos, procedimientos, etc (distintos niveles). Se utilizan dos técnicas:
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.

Otras propiedades:
* 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.
* 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.
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.

- ¿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.

Principios fundamentales de la Seguridad Informática:

Objetivo: ideas básicas a tener en cuanta a la hora de diseñar un sistema de seguridad.

* 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 conjunto reducido de restos   al conjunto de números que son primos relativos con n (no comparten ningú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

euler (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++
  }
Algoritmo de exponenciación rápida: cualquier número se puede representar de forma binaria

lo que queremos calcular es

como b0 solo puede tomar valores en 0,1, si es 0 ese factor valdrá 1, y si es 1 será el valor correspondiente, entonces esto se puede resumir en calcular:

El algoritmo consiste en hacer los siguientes pasos:
        z = b;
        x = a;
        r = 1;
        while ( z > 0 ) {
            if (z % 1 == 1)
               r = r * x ;
              x = x * x;
              z = z / 2;
        }
 

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.