Seguridad en redes
 

    Definiciones previas

        Red: Sistema por el cual varios ordenadores pueden conectarse.
            Capas del TCP/IP

            Para comunicarse con otro ordenador se necesita lo siguiente:
                Ip origen Puerto origen <--> Ip destino Puerto destino,    ha esto se le llama socket.

        DNS: Aplicación que transforma los nombres web a direcciones IP. Se utiliza en la capa de aplicaciones.

    Problemas surgidos en las redes

        SNIFFING: Consiste en el pinchado de la red para escuchar toda la información que circula por esa red.
            La forma de evitar este problema es cifrar la información. Para hacer esto hay dos formas:
                Cifrar los datos en la capa físisca-enlace, el cifrado se produce por tramos, no es directo con el otro ordenador
                    y no sabemos si de tramo a tramo va la informaciíon cifrada. Es conveniente para redes pequeñas y se le llama
                    cifrado enlace-enlace.
                Cifrado extremo-extremo: Que se cifra en la aplicación origen y se descifra en la aplicación destino (SMIME).
                    La capa aplicación és la que se utiliza para cifrar.

        SPOOFING: Consiste en utilizar una máquina correspondiente a un usuario haciendote pasar por él.
            Suplantacion IP: Utilizar un ordenador con la IP de otro para hacerte pasar por él.
           Hijacking: Coger una conexión abierta y expulsar a uno para meterse.

        Denegacion por sevicio (DOS): Consiste en atacar un servidor para que deje de funcionar.

        HACKING: Consiste en tener acceso a un sistema de forma indebida y poder utilizar este a su gusto. Se produce
            por errores en las aplicaciones o sistemas (bugs).
 

    Aplicaciones

        SSL
            Protocolo cuyo objetivo es dar una capa de seguridad para cualquier comunicación a traves de internet on-line.

           Objetivos:
                El objetivo principal es la autentificación del servidor y el cifrado de datos.
                Un objetivo secundario és la autentificación del cliente.
           El funcionamiento del SSL:
                El servidor tiene un par de llaves (pública y privada, utilizando X509).
                Durante el establecimiento de la conexión cliente y servidor negocian qué protocolos criptográficos van a utilizar.
                Una vez puestos de acuerdo el servidor manda su certificado al cliente.
                El cliente comprueba la firma del certificado utilizando la clave pública de la autoridad certificadora. A continuación
                    comprueba que el certificado es válido y extrae la clave pública del certificado.
                A continuación hay que verificar que el servidor tiene la clave privada. Para ello el cliente cifra con la clave pública
                    del servidor una llave de sesión aleatoria. Y se la envía al servidor.
                Si el servidor es capaz de descifrar la llave de sesión y el cliente comprueba este hecho, entonces la sesión cifrada
                    ya estará establecida.
                Opcionalmente el servidor puede pedir la autentificación del cliente. El cliente entonces envía su certificado al
                    servidor y se comprueba que el cliente tenga la clave privada lanzando un reto.

        SMIME
           SMIME és la extensión de MIME aplicada a la criptograía. Todo mensaje MIME está formado por una cabecera
                que indica la versión MIME, el tipo de contenido y la codificación de dicho contenido. Se vale de los objetos
                pkcs#7 para el transporte de la información.
            Un mensaje cifrado y codificado en MIME tendrá la siguiente forma:
                Cabecera Email
                    Cabeceras habituales de un mensaje de correo electrónico
                    Cabecera MIME
                        MIMEVersion: 1.0
                        Content-Type: application/x-pkcs7-mime
                        Content-transfer-encoding: base64
                Cuerpo del mensaje : objeto pkcs#7 codificado en base64

            Cuando se mandan ficheros adjuntos lo que se hace es mandar un mensaje con multiple partes, la primera será
                texto y las siguientes pueden ser textos u otros mensajes, estos serán los adjuntos.
            La estructura de un mensaje con multiples partes será:
                Content-Type: multipart/[mixet, alternative, signed]

            A la hora de generar un mensaje firmado utilizando mime tenemos dos opciones: incluir mensaje y firma dentro de
            un objeto pkcs#7 o incluir por una parte el mensaje y por otra el objeto pkcs#7 con la firma.
            Recordando que el objeto de la firma es el de poder comprobar la integridad del mensaje elegiremos la segunda
            forma, ya que resulta imprescindible que el mensaje se pueda leer en cualquier agente de correo, y si el agente
            incorpora algún módulo criptográfico para comprobar la firma entonces ésta será comprobada.

            Tipos de objetos SMIME:
                data: objeto pkcs#7  con cualquier tipo de información.
                signed-data: objeto pkcs#7 con información firmada.
                enveloped-data: objeto pkcs#7 con información cifrada.
                signed-and-enveloped-data: objeto pkcs#7 con información firmada y cifrada.
 

    Formas de protección en redes

        Norma 1: Mantener el SW totalmente actualizado. Hay unos organismos llamados CERT que se encargan de encontrar
            agujeros de seguridad en sistemas y avisan a los afectados para que corrijan los errores.
        Norma 2: Seguir al máximo los principios de seguridad vistos en el tema 1.
        Firewall: Consiste en un conjunto de políticas y técnicas que intentan aislar al máximo un trozo de la red del resto.
           Como funciona:
                Primero se deben establecer las políticas, quien pasa y quien no.
                Política abierta: Permitimos acceso si no decimos lo contrario.
                Política cerrada: No entra nadie. Sólo una selección.
                Tipos de reglas:
                    Entrada, en caso que la máquina, aparte de ejercer de cortafuegos, preste servicios.
                    Salida
                    Transito, el cortafuego debe decidir que paquetes transitan por la red.
                Debemos especificar lo siguiente:
                    Ip origen - Ip destino.
                    Protocolo.
                    Acción: permitir o denegar.
                    Puerto.
                Un ejemplo sería el siguiente: