TEMA 3.

CRIPTOGRAFÍA EN LAS REDES

1.- CIFRADO EXTREMO A EXTREMO:

        - SSL, TLS; comunicación con sesión abierta,  ejemplo chat ...

        - SMIME; comunicación sin sesión 

        - PGP; comunicación  sin sesión.

Cifrado realizado por las aplicaciones de comunicación.

Ejemplo:   SMIME, de usuario a usuario. De Aplicación a Aplicación va todo el rato (transcurso) cifrado. Solo se descifra para el instante de visualizar   el contenido. Lo descifran las aplicaciones.

 

2.- CIFRADO DE ENLACE :

        -  IPSEC; cifrado a nivel de IP.

 Cifrado realizado a nivel de capas.

- Lo descifra el software de red.

- No se cifra el mail, se cifra la transmisión.

 -Beneficia a todas las aplicaciones.

 - Un problema es que hay que confiar en la seguridad del sistema.

- Difícil de extender a  una red grande.

 

    IPSEC:   Permite extender el cifrado de enlace a toda la red. El Sistema Operativo no se sabe su garantía, es más difícil de montar. Se trata de criptografía de clave privada, es más complicada.

El cifrado de extremo a extremo y el cifrado de enlace no son incompatibles, sino complementarios. Sirve para cualquier comunicación con sesión, SSLFTP ... y el más usado y extendido es el SSLWEB.

SLL  pertenece al Nestscape.

TLS es una oficialización, generalización de SSL, el estandard no pertenece al Nestcape, es de otra autoridad.

Ejemplos:

        -Redes Inalámbricas, repetidores, antenitas...

        -Portátil, tarjeta PCMCIA para transmitir.

Pero cuidado,  son muy esnifables, las ondas pueden ser captadas por cualquiera. Pero existe un cifrado de estas ondas. Las ondas electromagnéticas son muy inseguras (ejemplo: móviles).

 

Ideas Genéricas para SSL   (SSL1, SSL2, TLS, ... )

La idea  es comunicar el servidor y  los clientes de forma confidencial, diseñado para proteger al cliente.

Ejemplo: un cliente que se conecta a un banco, se trata de dar confianza al cliente, ¿el banco es quien dice ser?

Deben ponerse de acuerdo Servidor y Cliente en cuanto a nivel de seguridad (algoritmo de cifrado).

El Cliente con la clave pública de la Autoridad Certificadora, comprobará que corresponde con la clave privada y descifrará la firma. Solo entonces sabrá que el certificado es cierto. Entonces dentro del "buen" certificado obtendré la clave pública.

            https://   (conexion Segura)

            https:// www.nisu.org  (Netscape avisa de que su certificado es de la Autoridad Certificadora NISU.ORG

- Comprobamos que el certificado es bueno.

- Comprobamos que common name equivale con el nombre servidor.

- Hay que verificar que el servidor tiene la clave privada del certificado.

 

LANZAR UN RETO   ( solo lo podrá descifrar quien tenga la clave privada )

El  cliente genera una llave de sesión aleatoria, la cifra con la clave pública del servidor y se la manda al servidor.

El servidor usando su clave privada, obtendrá la clave de sesión. A partir de esta llave de sesión todo será confidencial.

Los certificados caducan cada cierto tiempo, porque su tamaño se dice que siempre tiende a ser pequeño. Cada uno o dos años, la tecnología evoluciona y un Pentium puede convertirse en cualquier otra máquina mucho más avanzada.

Intento autentificar al Servidor

   Servidor                                    Cliente

      (certificado)--------------------->

       S=Dks<-------------------------Eps(s)

Intento autentificar al Cliente

El servidor crea un número aleatorio, lo manda cifrado con la clave pública del cliente, si el cliente logra descifrar el número con su clave privada, significa que todo ha estado correcto, si que se ha autentificado el cliente.

  Servidor                                    Cliente

      (autentificate)--------------------->

       <-------------------------(certificado)

       (Reto)----------------------------->

El reto es la secuencia de llaves de sesión, es aleatoria.

 

Deny / allow  

deny   IP    IP    nombres  //   máquina  IP

Existen dos tipos de política : 

- Cerrada,   (negar a todos, excepto) deny ...allow

- Abierta ( normalmente) (autorizar a todos excepto) allow...deny.

Autentificación

http: // es el protocolo de web, la autentificación

- Al acceder a esa pagina el servidor decide si autoriza o no al usuario.

- Por sw se pide una autentificación, pantalla con usuario y password, luego se vuelve a mandar la petición al servidor pero junto con el usuario y el password.

- Si hay un fichero situado en el directorio que quiero proteger .htacces 

SSL Require SSL (directiva  que provoca un error de acceso prohibido al directorio si no ha sido accedido con https).

SSL  Require [expresión]  (la directiva es la que controla lo que se requiere una vez estas dentro)

 

AMENAZAS EN LA RED

SNIFFING ( escuchar )

Pinchar una red y obtener la información que transporta. Si la información va cifrada, no nos importa que alguien "esnife".

Se establece un circuito virtual entre A y B (dos terminales contíguos) también podrían hacerlo al mismo tiempo C y D otros dos terminales contíguos entre sí)

SPOOFING ( suplantación de identidad )

SPAN  ( abusar de la red ) 

HIJACKING  ( suplantación de una conexión ) 

A contacta con B, una vez establecido, C suplementa a  A, cuando A se ha autentificado. Así, C no necesita autentificarse.

DOS  (denied of service)

Consiste en atacar un lugar de la red ( servidores ) de forma que los servicios de esta dejen de funcionar. Es un ataque de lo más corriente es relativamente fácil. Es similar (hermano pequeño) de la intrusión,  (variante del spoofing)  es entrar en una máquina sin autentificación.Va relacionado con los fallos del sw , o con un mal diseño de la arquitectura del servidor.

Nuque:  atacar un sw (aplicación , sistema) y que deje de funcionar.

DNS  ( ataque al DNS, 100% de éxito).

Aplicación que se encarga (entre otras cosas) de resolución de nombres. A través del nombre, obtener la IP.

DNS (base de datos distribuida) Lo que tiene en su base de datos lo sabe, lo que no lo pregunta a otra y se lo cree ( puede no ser cierto), "contaminación de caché del DNS".

VULNERABILIDAD INTRÍNSECA DEL SW MAL HECHO.

Ejemplo: Mediante la pila se introduce un programa en código máquina que ejecuta la llamada al Shell.

password----> si alguien hiciera un stack overflow en este programa lograría acceder al sistema como root.Ya que al ejecutar esto, se está actuando como root, ( bit suid ). La medida básica para evitar esto: tener un sw en condiciones y actualizado.

CORTAFUEGOS == FIREWALL

Protección de una red corporativa. Se usa la técnica de filtrado de paquetes y delegación de servicios (proxy).

FILTRADO DE PAQUETES

Decidir que paquetes vamos a permitir que entren o no en nuestra red. Los paquetes se distinguen unos de otros, exite un IP origen y un IP destino (paquete TCP /IP).

Existen criterios de IP y puertos.

Si las IP de la red interna son válidas para internet, 150.128.X.X , puede existir el reenvío de paquetes ( FORWARDING) de una interfaz a otra, de IP origen a IP destino.

Un FIREWALL  es un filtro de información, podemos distinguir tres cosas diferentes:

- INPUT, es lo que más se usa, es el más importante, se trata de las entradas a la red interna.

- OUTPUT, se trata de las salidas a la red externa.

- FORWARDING, se trata de permitir el paso de una inferfaz a la otra.

Ejemplo: si hago un ping  y no contesta la máquina  en cuestión no es porque la máquina destino no esté encendida, sino porque no se permite el OUTPUT.

Para administrar un FIREWALL se puede utilizar una política de seguridad abierta (permitir todo, denegar algo), o una política de seguridad cerrada (denegar todo, permitir algo).

La política de FIREWALL que utiliza la UJI es abierta. Todas las máquinas de la UJI son del tipo de IP:   150.128.X.X

El FIREWALL en Linux viene de serie, depende de la versión que tengamos:

Ejemplo: para no dejar pasar paquetes de telnet, ipfwadm.

- F  - a  accept  - s  %  - d  %  23  - P TCP

- I  - p  accept 

- I  - p  deny

- I  - a  accept  - s  %  - d  L/32

F (regla de forwarding); s (origen); d (destino); a (añade al final de la regla); i (añade al principio de la regla); l (lista las reglas tal cual se han puesto); k (bit ackactivo significa que es un paquete de respuesta a algo que sale de la máquina); L ( IP de mi máquina local)