Transcript Ch19

SEGURIDAD EN LOS SISTEMAS DISTRIBUIDOS
●
●
●
Los problemas de seguridad relacionados con los datos en tránsito.
¿cómo podemos evitar un espía de robar datos sensibles , como
nuestros números de tarjetas de crédito o números de seguridad
social que pueden estar en tránsito a través de una red pública?
¿Cómo podemos preservar el secreto de una conversación
confidencial entre dos agencias de más de un red pública?
Requisitos de seguridad
●
●
●
●
●
●
Confidencialidad. Los datos seguros no deben ser accesibles a personas no
autorizadas.
Integridad. Todas las modificaciones se deben hacer unicamentes a través de los
medios autorizados. La consistencia de los datos nunca se debe de ver
comprometida.
Autenticación. La identidad de la persona que realiza una transacción segura debe
ser establecida fuera de toda duda.
Autorización. Las acciones del usuario deben ser coherentes con lo que él o ella
está autorizado para hacer. Acciones no autorizadas no deben ser permitidas.
No repudio. Es la seguridad de que alguien no puede negar algo. Por lo general,
no repudio se refiere a la capacidad de garantizar que una parte en un contrato o
una comunicación no pueden negar la autenticidad de su firma en un documento o
el envío de un mensaje que se originó.
Disponibilidad. Los usuarios legítimos deben tener acceso a los datos cuando los
necesiten.
Mecanismo de seguridad
●
1.- Cifrado: Implementa un canal de datos seguro, asegurando que la
información no se pueda fugar o robar por extraños.
2.- Firma: Las firmas digitales proporcionan autenticación, no repudio, y
protegen la integridad.
3.- Hashing: Las sumas de comprobación o funciones hash sirven para mantener la integridad
de datos y autenticación de apoyo.
Ejemplos de servicios de seguridad, SSL (Secure Socket Layer) para transacciones
confidensiales, o SSH (Secure Shell) para login remoto.
Ataques de seguridad comunes
●
Eavesdropping (Espionaje): Las personas no autorizadas pueden interceptar
comunicaciones privadas y tener acceso a información confidencial. Los datos
que se propagan a través de cables pueden ser robados por los escuchas
telefónicos. La comunicación inalámbrica se puede interceptar utilizando un
receptor con una antena adecuada. El espionaje viola el requisito de
confidencialidad.
Denial of Service: Aumento excesivo en las peticiones al servidor, usando peticiones falsas.
Esto viola el requerimiento de disponibilidad.
Data tampering (Manipulación de los datos): Modificación no autorizada a los datos. Viola
el requisito de integridad.
Masquerading (Enmascararse): El atacante se disfraza como un usuario y obtiene
acceso a datos sensibles. Esto viola el requerimiento de autorización y autenticidad
(Pishing).
Man-in-the-middle : El atacante intercepta los mensajes mediante el intercambio
de claves publicas, enviando su propia clave a los usuarios atacados.
Malware : Se instala remotamente en las computadoras:
Virus : Programas autoreplicables con fines destructivos, pueden crear backdoors.
Worms : Programas autoreplicables, no necesitan un host, envian correo basura,
maquinas zombies.
Spyware : Programas diseñados para recolectar información confidencial o personal.
No se replican, no borran archivos, consumen ancho de banda.
Encripción
●
Son tecnicas para ocultar información.
SECRET-KEY CRYPTOSYSTEM
●
●
●
●
Es un sistema de cifrado simétrico.
Se trata de una función E de cifrado, una función D de descifrado (la inversa
de E) y una clave secreta k, que es compartida entre el emisor y el receptor.
Todo lo que se requiere es que las dos partes se pongan de acuerdo sobre
una clave secreta antes de que comience la comunicación.
Hay numerosos ejemplos de sistemas criptográficos de clave secreta. Nos
clasificamos en dos tipos diferentes:
–
Block Ciphers
–
Stream Ciphers
Confusión y Difusión
●
El propósito de confusión es hacer que la relación entre la llave y el
texto cifrado sea tan complejo como sea posible.
–
●
●
En una buena confusión cada bit del texto cifrado depende de
varias partes de la clave, tanto es así que parece que la
dependencia es casi al azar para el intruso.
Difusión: La influencia de cada bit del texto claro sobre varios bits de
texto cifrado.
Por lo tanto el cambio de una pequeña parte de la texto plano afecta a
un gran número de bits de texto cifrado. Un intruso necesitará mucho
más texto cifrado para lanzar un ataque estadístico significativo en la
cifra.
Data Encryption Standard (DES)
●
Es un esquema de cifrado desarrollado por IBM, nombre clave lucifer
–
El texto plano es dividido en bloques de 64 bits
–
Cada bloque es convertido a un texto cifrado usando una llave de 56 bits.
–
El texto plano después de la primera permutación se alimenta en una
cascada de 16 etapas.
–
Una llave maestra secreta de 56 bits se utiliza para generar 16 claves,
uno para cada etapa de la cascada.
–
La mitad derecha de la etapa (k - 1) (k> 0) se convierte en la mitad
izquierda de la etapa k (difusión), pero la mitad izquierda sufre una
transformación (confusión) antes de que sea utilizada como la mitad
derecha de la siguiente etapa.
–
Esta transformación utiliza una función f especial (que no es una función
secreta), y una clave de 48 bits derivada de la 56-bits
–
La salida de la etapa final (es decir, etapa 15) es permutada una vez más
para generar el texto cifrado.
3DES
●
●
3DES es un refinamiento del DES diseñado para reducir
su vulnerabilidad frente a los ataques de fuerza bruta.
Se aplica la transformación DES tres veces seguidas
(cifrar-descifrar-cifrar) utilizando dos claves secretas
separada k1, k2 para generar el texto cifrado C:
Advanced Encryption Standard (AES)
●
●
●
●
National Institute of Science and Technology (NIST), corrió un proceso
público para elegir al sucesor de DES y 3DES.
De las muchas presentaciones, eligieron el método Rijndael,
desarrollado por dos criptógrafos belgas Joan Daemen y Vincent
Rijmen.
Una versión restringida del algoritmo Rijndael, se conoce como el
Advanced Encryption Standard (AES).
AES es un cifrado de bloques con un tamaño de bloque fijo de 128
bits y un tamaño de clave de 128, 192, o 256 bits, mientras que
Rijndael se puede especificar con tamaños de clave y de bloque en
cualquier múltiplo de 32 bits, con un mínimo de 128 bits y un máximo
de 256 bits.
Stream Ciphers
●
●
●
●
Se utilizan principalmente para cifrar los datos en tiempo real que se generan
en tiempo real.
El cifrado se lleva a cabo en las unidades de datos de menor tamaño
(generalmente bits).
Datos de la secuencia se pueden cifrar mediante la generación de una
primera serie de claves de un tamaño muy grande utilizando un generador de
números pseudo-aleatorios.
El generador de números pseudo-aleatorios se siembra con una clave, y
emite una secuencia de bits conocidas como una cadena de claves. Para
generar keystreams idénticos en una manera aleatoria, los remitentes y los
receptores utilizan el mismo generador de números aleatorios, y semillas
idénticos.
STEGANOGRAPHY
●
●
●
En griego, la esteganografía significa escritura encubierta.
Es la técnica de ocultar la comunicación real en el cuerpo de una frase
poco visible o un párrafo.
A diferencia de la encriptación en el que el texto cifrado transmitido es
incomprensible y sin sentido para un extraño, el texto transmitido en
esteganografía tiene un significado válido, pero diferente.
PUBLIC-KEY CRYPTOSYSTEMS
●
En la criptografía de clave pública, cada usuario tiene dos claves: e y
d. La clave de cifrado se puede encontrar en el dominio público, por lo
que se llama clave pública. Sólo la clave de descifrado d se mantiene
en secreto.
THE RIVEST–SHAMIR–ADLEMAN (RSA) METHOD
●
El cifrado RSA comienza con la elección de un número entero N
apropiado que es el producto de dos números primos grandes s y t. El
texto plano se divide en bloques, y el valor númerico de P de cada
bloque es menor que N. Cada bloque tiene un tamaño de k-bits (k es
entre 512 y 1024). El entero N es de conocimiento público. El cifrado y
las claves de descifrado (E y D) se eligen mediante los siguientes
pasos:
ELGAMAL CRYPTOSYSTEM
Para generar un par de llaves, se escoge un número primo p, cualquiera tal que p - 1,
tenga un factor primo grande.
Además se eligen dos números aleatorios g, (el generador) y a, (que actuará como clave
privada) tal que
𝑎 ∈ 0, . . . , 𝑝 − 1
Se calcula entonces el valor de
𝐴 = 𝑔𝑎 𝑚𝑜𝑑𝑝
A, por lo tanto será la llave pública a utilizar.
En este caso
𝑚𝑜𝑑𝑝 se refiere al operador de módulo de p, y a, es la llave privada
mientras que los valores p, g, y A, son públicos.
Ejemplo Numérico :
Los Valores:
𝑝 = 17 𝑝𝑟𝑖𝑚𝑜𝑒𝑙𝑒𝑔𝑖𝑑𝑜𝑎𝑙𝑎𝑧𝑎𝑟
𝑔 = 3 𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟
𝑎 = 6 𝑙𝑙𝑎𝑣𝑒𝑝𝑟𝑖𝑚𝑎𝑟𝑖𝑎𝑒𝑙𝑒𝑔𝑖𝑑𝑎𝑎𝑙𝑎𝑧𝑎𝑟
𝐴 = 𝑔𝑎 𝑚𝑜𝑑𝑝 = 3⁶ 𝑚𝑜𝑑17 = 15 𝑙𝑙𝑎𝑣𝑒𝑝ú𝑏𝑙𝑖𝑐𝑎
Forman la llave pública (17, 3, 15) y la privada (6)
Criptosistemas de Llave Publica/Privada
●
●
●
Si el usuario A desea enviar un mensaje cifrado y codificado al usuario B,
deberá firmar el mensaje utilizando su clave secreta s=Sa(m), donde s es la
firma digital del mensaje.
Como de costumbre, una vez firmado, para enviar el mensaje codificado a B,
se usará la clave pública de este, obteniendo c=Pb(s). Cuando el usuario B
reciba c, utilizará su clave secreta para obtener s. Sin embargo, s es ilegible
para el receptor, puesto que se trata de la firma digital del emisor. Advertido el
receptor que el usuario A enviaba un mensaje, el contenido de s solo podrá
ser descifrado mediante la clave pública Pa, garantizando que el emisor del
mensaje es, sin lugar a dudas, el usuario A.
Para garantizar la autenticidad del emisor de usa una autoridad de
certificación. VerySign es la empresa certificadora más usada en el mundo.
HASH
●
●
Una función Hash es un método para generar claves o llaves que
representen de manera casi unívoca a un documento o conjunto de
datos.
Requisitos que deben cumplir las funciones hash:
–Imposibilidad
de obtener el texto original a partir de la huella digital.
–Imposibilidad
de encontrar un conjunto de datos diferentes que tengan la
misma huella digital (aunque como hemos visto anteriormente es posible
que este requisito no se cumpla).
–Poder
transformar un texto de longitud variable en una huella de tamaño
fijo (como el SHA-1 que es de 160bits).
–Facilidad
de empleo e implementación.
Elliptic Curve Cryptography
Las curvas elípticas son utilizadas para implementar criptosistemas basados en el
logaritmo discreto, con la ventaja de utilizar claves más pequeñas que repercuten
directamente en la utilización de menos memoria y hardware más pequeño, como
por ejemplo en sistemas de identificación mediante tarjetas.
●En la Criptografía de curvas elípticas, el punto R se utiliza como clave pública
que es la suma de los puntos P y Q, los cuales corresponden a la clave de tipo
privada.
●De este modo, al conocer un punto de una curva, en este caso R, la información
cifrada con este valor no se compromete, ya que la curva elíptica tiene infinidad
de puntos y para poder descifrar un mensaje se necesitan conocer los parámetros P
y Q para obtener su suma y así poder descifrar el mensaje.
●
●
●
●
El procedimiento para obtener las claves pública y privada es muy
similar en la multiplicación de un punto por un escalar.
De tal forma que se utiliza un punto de una curva elíptica que sea un
generador de todos los demás puntos de la misma para utilizarla como
clave pública junto con el campo de Galois sobre el que definimos
dicha curva y se utiliza un número entero aleatorio definido sobre el
mismo campo de Galois que será la clave privada del algoritmo.
Así, se tiene que serán públicos el punto de la curva elíptica, el campo
de Galois sobre el que se define dicha curva y finalmente el punto que
se encuentra de multiplicar el punto generador por la clave privada
elegida. La clave privada será el número entero aleatorio que
pertenezca al mismo campo. Se debe considerar que el campo de
Galois elegido debe ser un número primo lo suficientemente grande
como para evitar ataques por fuerza bruta que se puedan presentar.
Authehtication Server for Secret-Key
Cryptosystems
●
●
●
Un servidor de autenticación es un agente cuya responsabilidad
es distribuir llaves a los clientes antes y que estos puedan
entablar una conversación entre si.
El punto clave consiste en preservar la integridad de las claves
entre los clientes.
Sean A y B dos clientes conectados al Servidor de
Autenticación S, para cada usuario el servidor mantiene una
única clave ki, que es solo conocida entre el cliente y el
servidor, kij es la llave utilizada para la conversación entre el
cliente i, j y ki(M) el mensaje M encriptado por la clave ki
●
El siguiente esquema de petición de una clave kij y esta
atribuido a Needham y Schroeder [NS78].
●
A→S Petición de llave para comunicarce con B
●
S→A Envia kAB en la forma kA(B, kAB, kB(kAB , A))
●
●
●
A→B Envia la llave kAB en la forma kB(kAB,A) que fue
obtenida de S en el paso anterior.
B→A Envia un mensaje de confirmación de Decodificación
kAB (nB) pidiendo que A decremente el argumento
A→B Envia un mensaje decrementando el argumento
kAB (nB−1 )
Authentication Server for Public-Key
Cryptosystem
●
Se asume que todo mundo conoce la clave publica es del servidor s.
Para comunicarse el cliente A con B, el cliente A deberá primero
obtener la llave publica de B desde el servidor de Autenticación.
●
A→S Pide la llave pública eB de B
●
S→A Devuelve la llave dS(eB)
●
●
●
●
A puede desencriptar el mensaje anterior utilizando la llave pública del
servidor S y obtener la clave pública de B.
A→B eB(nB,A)
Mensaje que solo B puede entender
B→A eA(nB,nA) Solo A puede entender y significa que B entendió el
Mensaje
A→B eB(nB)
Mensaje
B sabe que A pudo decodificar y entender su
Digital Certificates
●
●
●
●
Un certificado digital que es fichero digital intransferible y no
modificable, emitido por una tercera parte de confianza (AC), que
asocia a una persona o entidad una clave pública.
Todos los datos están firmados por la AC usando la función hash MD5
y su clave privada RSA. El formato mas utilizado es X.509.
Un mensaje cifrado con este mecanismo es una transformación del
mensaje de forma que cualquier persona con conocimiento del
mensaje y de la clave pública del firmante pueda comprobar que dicha
transformación ha sido realizada realmente por el firmante.
Para verificar que el certificado es correcto se debe obtener el
certificado para dicha AC por una segunda AC. Para verificar la
veracidad de este segundo certificado deberíamos obtener el
certificado digital emitido para segunda AC por una tercera AC. Para
evitar ciclos interminables en el proceso de verificación, existen
autoridades raíz quienes firman sus propios certificados, un ejemplo
de autoridad raíz es Verisign.
Kerberos
●
●
●
●
Kerberos es un protocolo de autenticación de redes de ordenador
creado por el MIT que permite a dos computadores en una red
insegura demostrar su identidad mutuamente de manera segura. Los
mensajes de autenticación están protegidos para evitar eavesdropping
y ataques de Replay.
Kerberos se basa en criptografía de clave simétrica y requiere un
tercero de confianza.
Consiste de dos partes lógicas separadas: un "servidor de
autenticación" (AS o Authentication Server) y un "servidor emisor de
tiquets" (TGS o Ticket Granting Server).
Kerberos mantiene una base de datos de claves secretas; cada
entidad en la red comparte una clave secreta conocida únicamente
por él y Kerberos. El conocimiento de esta clave sirve para probar la
identidad de la entidad. Para una comunicación entre dos entidades,
Kerberos genera una clave de sesión, la cual pueden usar para
asegurar sus problemas
Secure Socket Layer
●
●
●
●
El estándar SSL fue desarrollado por Netscape.
Se basa en un proceso de cifrado de clave pública que garantiza la
seguridad de los datos que se envían a través de Internet.
Su principio consiste en el establecimiento de un canal de
comunicación seguro (cifrado) entre dos equipos después de una fase
de autenticación.
SSL implica una serie de fases básicas:
–Negociar
entre las partes el algoritmo que se usará en la comunicación.
–Intercambio
de claves públicas y autenticación basada en certificados
digitales.
–Cifrado
del tráfico basado en cifrado simétrico.
VPN
●
●
●
●
Una red VPN (red privada virtual) es una red privada (Túnel)
construida dentro de una infraestructura de red pública o no
controlada.
Proporciona el máximo nivel de seguridad posible a través de
Seguridad IP cifrada (IPsec) o túneles VPN Secure Sockets
Layer (SSL) y tecnologías de autenticación a nivel IP o enlace.
Tunneling es el proceso de encapsular un paquete completo
dentro de otro paquete y enviarlo a través de una red
Protegen los datos que se transmiten por VPN de un acceso no
autorizado.
Firewall
●
●
●
●
Un firewall es software o hardware que comprueba la información
procedente de una red y, bloquea o permite el paso de ésta al equipo,
en función de la configuración.
Impide que hackers o software malintencionado (como gusanos)
obtengan acceso al equipo.
Ayuda a impedir que el equipo envíe software malintencionado a otros
equipos.
Un sistema de firewall filtra paquetes de datos que se intercambian a
través de la red. Por lo tanto, se trata de una pasarela de filtrado que
comprende al menos las siguientes interfaces de red:
–Una
interfaz para la red protegida (red interna)
–Una
interfaz para la red externa.
Firewall