Capítulo 8: seguridad en redes Flashcards
¿Cuáles son las 4 propiedades de una comunicación segura?
Propiedades de una comunicación segura:
- [C] Confidencialidad: únicamente el sender y el receiver deberían poder entender el contenido del mensaje transmitido. Esto requiere que el mensaje sea encriptado tal que si alguien interviene, no lo entienda.
- [I] Integridad del mensaje: que el contenido no sea alterado en el camino, ni por accidente ni intencionalmente.
- [A] Autenticación: tanto el sender como el receiver tendrían que poder confirmar la identidad del otro, poder asegurar que la otra entidad es quien dice ser.
- [S] Seguridad operacional: casi todas las organizaciones están ligadas a la internet pública, por lo tanto pueden ser comprometidas. Se necesitaría algún detector de intrusos o firewalls.
Explicar las técnicas criptográficas de clave simétrica. ¿Qué problemas presenta esta familia de técnicas?
En la criptografía de clave simétrica se usa una única clave compartida para cifrar y descifrar mensajes entre el emisor y el receptor. El problema principal de esta familia de técnicas es que ambas partes necesitan ponerse de acuerdo en la clave a utilizar y comunicársela entre sí, pudiendo esta comunicación ser interceptada.
-
Cifrados de bloque
: el mensaje a encriptar se procesa en bloques de k bits y cada bloque se encripta independientemente. Hay 2^k! posibles mapeos. Es difícil de implementar, porque para un k medianamente bueno (>= 64) se necesitaría guardar muchos valores (2^64!). Lo habitual es usar funciones que simulan tablas permutadas aleatoriamente. -
Encadenamiento de bloques cifrados (CBC)
: un problema de los block ciphers es que puede que dos o más bloques sean idénticos, o sea que habría idénticos ciphertext y a partir de ahí el atacante podría adivinar o desencriptar el resto. Para resolverlo, se envía una secuencia de bits aleatoria con el primer mensaje, se aplica un XOR entre el mensaje y esta secuencia de bits para cifrar, y luego el emisor y receptor usan los bloques codificados calculados como clave para el siguiente bloque.
Expliquela idea general de las técnicas criptográficas de clave pública
Técnicas Criptográficas de clave pública
En lugar de que emisor y receptor compartan una clave privada, el receptor tiene dos claves: una pública y una privada, tales que K-(K+(m)) = m
. El emisor primero obtiene la clave pública del receptor y la utiliza para encriptar el mensaje. El receptor lo desencripta utilizando la clave privada.
-
RSA
: se utilizan la aritmética modular y la factorización de números primos muy grandes para generar las claves pública y privada, y encriptar los mensajes.
¿Qué técnicas se utilizan para proporcionar integridad a los mensajes?
Para autenticar un mensaje, el receptor debe poder verificar que el origen del mensaje es efectivamente el emisor, y que el mensaje no ha sido alterado mientras viajaba hacia el receptor.
Se tienen 3 técnicas para esto:
- [HASH] Funciones de hash: una función de hash toma una entrada m y calcula una cadena de tamaño fijo H(m) conocida como hash. Para que sea criptográfico tiene que cumplirse que sea inviable computacionalmente encontrar dos mensajes distintos x e y tales que tengan el mismo hash. Es decir, que sea inviable para un atacante reemplazar el mensaje por otro que tenga aplicado el mismo hash.
- [Autenticación] Código de autenticación del mensaje: ambas partes comparten una clave s conocida como authetication key.
a. El sender crea el mensaje m, le concatena s tal que crea m+s y calcula el hash H(m+s). Este último se llama message authentication code (MAC).
b. El sender concatena el MAC al mensaje original, creando un mensaje extendido (m, H(m+s)) y se lo envía al receiver.
c. El receiver recibe (m,h) y conociendo s, calcula el MAC H(m+s). Si H(m+s)=h se da al mensaje por válido. - [FIRMA] Firmas digitales: La idea es que se pueda firmar/autenticar algo de manera verificable e infalsificable.
Lo que se puede hacer es que quien firma lo haga con su clave privada. Esta clave se encripta, y quien lo recibe debe desencriptarlo usando la clave pública, y tiene que verificarse que K+(K-(m))=m. Si eso no se cumple, el mensaje no es válido.
Un problema es que es costoso computacionalmente. Para esto se utilizan las funciones hash, haciendo que el emisor firme el mensaje hasheado en vez del mensaje original, o sea, K-(H(m)); esto es mejor porque en general H(m) es mucho más chico que m.
Explicar el proceso de autenticación de puntos terminales (end-points)
El proceso de autenticación de puntos terminales (end-points) es el proceso en el que una entidad le prueba a otra su identidad mediante una red de computadoras. Por ejemplo, un usuario probándole su identidad a un servidor de email. Para las autenticaciones dentro de la red se necesitan protocolos que se ejecuten previo a la comunicación entre las partes.
Se tienen 4 protocolos:
-
Authentication Protocol ap1.0
: la forma más simple es en la que el sender le envía un mensaje diciéndole quién es. Pero no hay manera de que el receiver compruebe la identidad. -
Authentication Protocol ap2.0
: podría verificarse a partir de la dirección IP, el receiver lo puede chequear en el datagrama. Pero podría caer en IP spoofing, cuando se crea un datagrama con cualquier dirección IP que se quiera, haciéndose pasar por otra entidad. -
Authentication Protocol ap3.0
: utilizando una contraseña secreta. El riesgo está si el atacante espía las comunicaciones del sender y logra averiguar su contraseña. Se podría encriptar la contraseña (ap3.1), pero igualmente el atacante podría obtener la contraseña encriptada y con ella hacerse pasar por otra entidad. -
Authentication Protocol ap4.0
: el problema del anterior era que el receiver no puede saber que el sender está en “tiempo real” del otro lado de la comunicación o si el mensaje que está recibiendo es un playback de la autenticación previa. Se resuelve enviando algo similar a un sequence number, llamado nonce. Un nonce es un número que el protocolo utiliza una única vez.
a. El sender envía un mensaje al receiver
b. El receiver elige un nonce, R y se lo envía al sender
c. El sender encripta el nonce usando una clave secreta simétrica y lo envía de vuelta al receiver. El hecho de que el sender conoce la clave y la usa para encriptar un valor es lo que hace que el receiver sepa que el sender es quien dice ser. El nonce asegura que está ocurriendo todo en vivo.
d. El receiver desencripta el mensaje. Si el nonce desencriptado coincide con el que había enviado originalmente, queda probada la autenticidad del sender.
¿Para qué se utiliza SSL y cómo funciona?
SSL (Secure Sockets Layer) es un protocolo criptográfico de la capa de aplicación que se utiliza para asegurar conexiones TCP, por ejemplo para pagos online. Provee confidencialidad, integridad de los datos, autenticación de cliente y servidor.
SSL se compone de tres fases: handshake, key derivation y data transfer.
-
Handshake
: Se establece la conexión TCP, se verifica que el servidor sea realmente el servidor y se le envía al servidor una clave secreta maestra que van a usar ambos para generar las claves simétricas que necesiten para la sesión SSL. También se pueden acordar los algoritmos criptográficos para la creación de claves. -
Key Derivation
: En el paso de key derivation, el cliente y el servidor usan la clave maestra para generar cuatro claves (dos para cada uno, distintas entre sí):
- E: clave de cifrado de sesión para los datos que se envían entre sí.
- M: clave MAC de sesión para los datos que se envían entre sí. -
Data Transfer
: Para la transferencia de datos, SSL divide el flujo de datos en registros, agrega un código MAC a cada registro para comprobar la integridad y luego cifra el registro junto con el código MAC. Para crear el valor MAC, se introducen los datos del registro, la clave M del cliente y el número de secuencia actual en una función de hash. El número de secuencia se utilizará en el servidor para verificar la integridad de los datos. Para cifrar el paquete con el registro y el valor MAC, se usa la clave E del cliente. Este paquete cifrado se pasa a TCP para transportarlo a través de internet.
Para terminar la sesión SSL y cerrar la conexión, el registro tiene un campo de tipo que sirve para indicar que ese registro sirve para cerrar la conexión (evitando así que un atacante inyecte mensajes TCP FIN y los datos en el servidor sean truncados).
¿Qué es IPSec? ¿Cómo se lo utiliza para implementar VPNs?
IPsec es un conjunto de protocolos cuya función es asegurar datagramas entre dos entidades cualquiera de capa de red, incluyendo hosts y routers. Muchas instituciones lo usan para crear VPNs (virtual private networks).
Confidencialidad en la capa de red implica que los payloads de todos los datagramas sean encriptados, esto puede ser un segmento TCP/UDP, un mensaje ICMP, etc. Además de confidencialidad, IPsec provee mecanismos para la integridad y la autenticación.
Una VPN encripta todo el tráfico antes de enviarlo a la internet pública.
Los hosts envían datagramas IPv4 simples y el router lo convierte en un datagrama IPsec (o viceversa, según el sentido del mensaje). Este datagrama IPsec tiene los mismos headers que un datagrama normal para que sea tratado como tal, pero el payload encriptado guarda los headers del IPsec para que después se pueda procesar. Cuando el datagrama llega al host, el SO lo desencripta y lo pasa desencriptado a la capa superior (por ej. a TCP/UDP).
Explicar el protocolo WEP
WEP (Wired Equivalent Privacy) es un protocolo de la capa de enlace que pretende proporcionar un nivel de seguridad similar al de las redes cableadas. Se diseñó para proveer autenticación y encriptación de datos entre un host y un punto de acceso inalámbrico utilizando el enfoque de clave simétrica compartida.
Se asume que el algoritmo para el manejo de la clave ya fue acordado entre el host y punto de acceso por otra vía. La autenticación se lleva a cabo de la siguiente manera:
- Un host inalámbrico solicita autenticación por un punto de acceso.
- El punto de acceso responde con un nonce de 128 bytes.
- El host encripta el nonce utilizando la clave compartida.
- El punto de acceso desencripta el nonce encriptado por el host.
Si el nonce descifrado se corresponde con el nonce originalmente enviado al host, se da al host por autenticado.
El principal problema de WEP es que no tiene técnicas de integridad de mensajes para detectar la alteración del contenido. Además, el algoritmo RC4 que se utiliza para el cifrado del payload tiene ataques conocidos.
¿Qué mejoras presenta IEEE 802.11i con respecto a WEP? Explicar sus fases
- WEP provee una encriptación relativamente débil, una única manera de autenticación y ningún mecanismo de distribución de claves.
- 802.11i define un servidor de autenticación con el que se puede comunicar el punto de acceso.
802.11i opera en cuatro fases:
-
Discovery
: el AP anuncia su presencia y las formas de autenticación y encriptación que puede proveerle al nodo cliente. El cliente solicita la manera específica de autenticación y encriptación que desea. -
Mutual authentication and Master Key (MK) generation
: En esta fase, el AP hace de “posta” reenviando mensajes entre el cliente y el servidor de autenticación. EAP-TLS utiliza claves públicas para la autenticación de ambas partes (cliente y serv. auth) y para la generación de la MK. -
Pairwise Master Key (PMK) generation
: La MK es una clave secreta que solo conocen el cliente y el servidor de autenticación. Se utiliza para generar una segunda clave que es la PMK. Entonces, el servidor de auth le envía la PMK al AP y ahí recién el AP y el cliente van a estar compartiendo una clave y ya se dan por autenticados. -
Temporal Key (TK) generation
: Con la PMK, el cliente y el AP pueden generar claves temporales que van a utilizar durante la comunicación. La TK se utiliza para realizar el cifrado a nivel de enlace de los datos enviados a través del enlace inalámbrico y a un host remoto arbitrario.
¿Qué es un firewall y para qué sirve? ¿Qué tipos de firewall existen?
Un firewall es una combinación de hardware y software que aísla la red interna de una organización de Internet, permitiendo pasar algunos paquetes y bloqueando otros.
Un firewall permite que un administrador de red controle el acceso.
Tiene tres objetivos:
1. Todo el tráfico de afuera hacia adentro y viceversa, pasa por el firewall.
2. Solo el tráfico autorizado tiene permitido el paso.
3. El firewall no puede ser traspasado.
Se los clasifica en tres categorías:
1. Traditional packet filters
: se filtran paquetes en el gateway router. En general el filtro se hace en base a IP origen o dirección destino, el tipo de protocolo en el datagrama IP: TCP, UDP, OSPF, ICMP; puerto origen o destino TCP, etc.
2. Stateful packet filters
: las decisiones de filtrado se toman para cada paquete de forma aislada. Se trackean las conexiones TCP y con ese conocimiento se aplican filtros. Se chequea contra la tabla de conexiones si un paquete nuevo es parte de una conexión ya establecida, por ejemplo.
3. Application gateway
: toman decisiones a partir de la información de los paquetes y los datos de aplicación, permitiendo mayor granularidad para, por ejemplo, garantizar el acceso a un conjunto restringido de usuarios internos. El application gateway propiamente dicho es un servidor por el que tiene que pasar toda la data de aplicaciones. Una desventaja es que se necesita un application gateway por cada aplicación. Otra es que no tiene buena performance si toda la data tiene que retransmitirse al gateway.
¿Qué son los Intrusion Detection Systems y los Intrusion Prevention Systems?
Para detectar varios ataques se necesita hacer un deep packet inspection, es decir mirar la data que carga el paquete más allá de los headers.
Un dispositivo que genera alertas cuando observa tráfico potencialmente malicioso, se llama Intrusion Detection System (IDS).
Se clasifican en:
1. Signature-based systems
: mantienen una base de datos de firmas de ataques. Cada firma es un set de reglas pertenecientes a una actividad de intrusión.
2. Anomaly-based systems
: se crea un perfil del tráfico a partir de la observación del tráfico en operaciones normales. Busca paquetes estadísticamente inusuales.
Un dispositivo que filtra tráfico sospechoso, se llama Intrusion Prevention System (IPS).