TEMA 3: SEGURIDAD EN REDES (INTERNET)

 

 

            Una red es un conjunto de ordenadores interconectados, pero totalmente independientes. La gran ventaja de las redes es la posibilidad de compartir recursos entre los componentes de esta red, pero también tiene un gran inconveniente respecto a la seguridad, al aumentar el número de usuarios, aumenta las amenazas que puede sufrir esa red, ya que cabe suponer que a mayor numero de usuarios con controles de acceso diferentes, dichos controles seran validos para unos usuarios, pero para todos no.

                Asi pues, a todos esos usuarios hay que garantizarles:

 
 · Confidencialidad:
se cumple cuando solo las personas autorizadas pueden conocer los datos o la informacion correspondiente.

  · Integridad: consiste en que solo las personas autorizadas puedan variar (modificar o borrar) los datos.

  · Disponibilidad: se cumple si las personas autorizadas pueden acceder a tiempo a la informacion.

  · Autenticidad: se refiere a que se pueda confirmar que el mensaje recibido haya sido mandado por quien dice que lo mando o que el mensaje recibido es el que se esperaba.

  · El no rechazo: se refiere a que no se pueda negar la autoria de un mensaje enviado.

            Una vez introducida, brevemente, la problematica de seguridad de la red, empezaremos a ver algunos de los metodos que se utilizan para intentar eliminar estos problemas de seguridad, o por lo menos reducirlos al maximo.

1.- Criptografía en las redes


· Cifrado de enlace: El cifrado de enlace se ubica en la capa fisica. Cada bit que sale de la maquina sufre un proceso de cifrado y cada bit que entra en la maquina sufre un proceso de descifrado. El encargado de cifrar es el software de red, que es el que se comunica con las aplicaciones y el sistema operativo.
            La ventaja del cifrado de enlace es que se cifra todo tanto los datos como las cabeceras añadidas por los demas niveles y asi todas las aplicaciones se benefician de él.


· Cifrado extremo a extremo: Se cifra a nivel de aplicación. En este caso es la misma aplicación la que se encarga de cifrar los datos antes de mandarlos al sistema operativo, el sistema operativo los envia a la capa de red que los descrifra una vez recibidos.


2.- SMIME

            El SMIME es la extensión del MIME aplicada a la criptografía. Es un protocolo de cifrado de extremo a extremo para comunicaciones sin sesion. Sirve para enviar un mail codificado. El SMIME utiliza los objetos PKCS#7 para transportar la información.

           

            La forma de un mail MIME es:

 

            · Cabecera del mail: que indica la version MIME.

                        · Cabeceras habituales de los mail.

                        · Cabecera MIME.

                                   · MIME-Version: este campo es imprescindible, en el se indica la versión del mime que se esta usando. Ej. 1.0

                                   · Content-Type: indicara cual es el tipo de mime del mensaje, es decir, el tipo de archivo que lleva el mensaje, para que asi el receptor tenga una idea de lo que ha recibido y sepa como interpretarlo. Sino existe content-type se supone que el mensaje contiene texto plano sin formato. Los tipos mime más habituales son:

                                                    - text/htmlo
                                                    - image/gif
                                                    - video/quicktime
                                                    - application/pdf
                                                    - message/news

                                    Si queremos enviar algun subtipo que no este definido tendremos que añadir delante del nombre una x. Ej. appliction/x-pkcs7-mime

                                      · Content-transfer-enconding : este campo tambien es imprescindible e indicara como ha sido codificada la información. Tipos de codificacion: 7 bit (codificación por defecto), 8 bit, base64, binary, quoted-printable.

            · Content-description: cuerpo del mensaje donde ira la descripción del texto plano. El cuerpo contiene lo que se quiere enviar. Dentro del cuerpo podemos encontrar mas mensajes MIME ya que esta permitida la recursividad.

            Cuando se quiere enviar distinto tipos de documentos en un mismo email se recurre a unos tipos especiales del mime que permite hacerlo, son los denominados multipart. Tipos de multipart/: signed, mixed, related, alternative.

    - multipart/signed: es el formato llamado SMIME, que es una expansión del mime.

    - multipart/mixed: es la manera de indicar que el mail contiene varias entidades mime. En la cabecera de este tipo de mail se solo se incluye:

multipart/mixed; boundary=----lo que sirve de delimitador----

            Lo que se pone en boundary es lo que sirve de delimitador de cada parte del mensaje mime y debe ser algo que no aparezca en ninguna de las partes del mensaje.

            Cada parte del mime tendra su propia cabecera y cuerpo separados por una linea en blanco.


MENSAJES CIFRADOS

            Los mensajes cifrados son todo un bloque, no contienen partes. El pkcs#7 permite transportar datos y certificados pero no llaves. Tipos:

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

 
            Ejemplo de la estructura de un mensaje cifrado:

    MIMEversion: (1.0)
    content-type: Application/x-pcks7-mime
    conten-transfer encoding: (base64)
    --linea en blanco--
    Aqui estara todo el mensaje cifrado

MENSAJES FIRMADOS

            Los mail firmados deben de poder ser leidos por el receptor aunque este no tenga la clave publica del emisor. Un mensaje firmado consta de dos partes (mail y firma).

            Ejemplo de la estructura de un mensaje firmado:

    MIMEversion
    content-type:multipart/signed;protocol="application/x-pkcs7-signature";micalg=sha1;boundary="churrito"
    churrito
    Mail con su cabecera y cuerpo
    churrito
    content-type:application/x-pkcs7-signature
    content-transfer-encoding: base64
    Firma
    churrito

 

3.- SSL

 

            El protocolo SSL es un protocolo de cifrado extremo a extremo, para comunicaciones con sesion. Da una capa de seguridad a las comunicaciones a través de Internet. Se suele utilizar, normalmente, para la web. Sirven para comunicarse de manera confidencial utilizando el cifrado y para la autentificación del servidor y opcionalmente del cliente.

 

 



Propositos del SSL son:

    · La confidencialidad

        · La autentificación del servidor.

-   · La autentificación del cliente, pero esta es opcional.

 

            Para funcionamiento del SSL se crean dos llaves, una privada y una pública en un X509, al conectarse negocian el método criptográfico a utilizar. El servidor envía el certificado, el cliente utiliza la clave pública de la Autoridad Certificadora para descifrar la firma de este. Además hay que comprobar si quien nos da el certificado es el dueño realmente, para lo que el cliente le lanza un reto, que consiste en enviarle un número aleatorio cifrado con la clave pública y si es este es el dueño de dicho certificado, podrá descifrarlo con su clave privada. Ese número aleatorio será la llave de sesión y si todo sale bien se establecerá una comunicación segura.

 

            Opcionalmente el servidor puede querer autenticar al cliente, esto puede hacerlo, una vez establecida una conexión segura, pidiendo una password o lanzándole un reto al cliente. Esto se hará de igual forma que lo comentado anteriormente pero con el certificado del cliente.

 

4.- Amenazas

 

     Hay varios tipos de amenazas:

 

-               Sniffing: Escuchar las comunicaciones de una red, pinchandola y asi poder extraer cualquier tipo de informacion que circule por esta. Se puede evitar mediante hardware, o bien mediante un switch, o bien mediante un hub, así de este modo las comunicaciones en la red se hacen directamente entre los equipos, sin tener que pasar por tercero que puedan escuchar lo que circula por la red.

-      Spoofing: Se trata de suplantar la identidad de otro para disfrutar de sus derechos. Hay muchas formas de suplantación, como por ejemplo, mediante el login y password de otra persona, suplantando la ip de otro equipo, suplantación del correo electrónico, etc. Para poder evitar esto se pueden utilizar llaves de sesión o mediante autentificación CHAP del servidor, que consiste en lanzar un reto al usuario cada x tiempo y asi poder comprobar que el ususario que se conecto es el mismo en todo momento.

-            DoS (Deneged of Service): Consiste en atacar un punto de la red para que este deje de prestar sus servicios.

-            Intrusión: tener acceso a un sistema de forma indebida, para poder tener acceso a la información que contiene dicho sistema.

-       Stack Overflow: se trata de atacar un sistema de forma que este genere un nuevo shell que tenga todos los privilegios de otros usuarios (root).

        Hijacking: es un tipo de suplantacion cuando el ususario ya se ha autentificado, para evitarlo se usan protocolos que comprueben la identidad periodicamente.

          Spam: se trata de un abuso indiscriminado de la red.


5.- Firewalls (Cortafuegos)

 

            Los cortafuegos son un conjunto de políticas y técnicas que pretende alejar al máximo una red del resto de la red (Internet). Podemos decir que un cortafuegos es basicamente un router programado de forma especial, que se debe colocar en el sitio que se debe proteger. En cuanto a dicha programación especial, se trata de filtros que se aplican a los paquetes tanto recibidos como emitidos.

            Los cortafuegos son mecanismos bastante sencillos y faciles de usar, ademas de permitir al administador establecer políticas de seguridad de forma centralizada, aunque no porporcionan total seguridad. 

            El uso básico de los cortafuegos es la protección de una red corporativa. Generalmente se crea un bloqueo entre la red corporativa e Internet.

 

              Hay dos tipos de políticas para los cortafuegos:

 

-             Política abierta (permitir por defecto): Se dejan pasar todos los paquetes, excepto aquellos que se especifiquen en el cortafuegos.

-           Política cerrada (denegar por defecto): Se bloquean todos los paquetes, excepto aquellos que se especifiquen en el cortafuegos. Esta política es mucho más costosa de realizar, pero por el contrario, es mucho más segura.

                El filtrado de paquetes es una tecnica que se basa en decidir que paquetes entran y cuales no, en  nuestra red corporativa se puede decidir según la direccion de origen o de destino (IP), o según el puerto de origen o de destino (TCP). Con estas cuatro distinciones podremos generar reglas de aceptar o rechazar el envió o recepción de paquetes según sea el origen o el destino de este.

             El funcionamiento de un cortafuegos con este tipo de distinciones hace que éste analice la cabecera de todos los paquetes que se envían o reciben, de forma que el cortafuegos hace una búsqueda de la regla que le indique que tipo de política debe aplicar, para así poder bloquear o permitir la entrada, o bloquear o permitir el envió de dichos paquetes.

            El proceso mediante el cual el cortafuegos filtra los paquetes se denomina forwarding. También puede ser que algunos paquetes vengan dirigidos directamente por el Sistema Operativo y por eso se definen tambien los siguientes procesos:

    - Input: es cuando llega un paquete al cortafuegos procedente de la rede externa. Logicamente el forwarding no tiene sentido si para ese paquete no esta activado el input, porque al entrar en la red corporativa tiene que pasar primero por el cortafuegos.

     - Output: que viene a ser el proceso totalmente contrario al anterior.



        Cuando un paquete es rechazado por el cortafuegos tiene dos alternativas:

        - Reject: notifica al usuario que ha solicitado un paquete de que no se ha podido mandar.

        - Discard: no avisa al usuario, con lo cual este se queda esperando respuesta.