Download Autentif-SegSW

Document related concepts
no text concepts found
Transcript
Seguridad en Sistemas: Autentificación y Seguridad en SW
Autentificación con sistemas asimétricos
Al existir una clave pública y otra privada que
son inversas, se autentica el mensaje y al emisor.
Permite la firma digital, única para cada mensaje
Problema:
Los sistemas de cifrado asimétricos son muy lentos y el mensaje
podría tener miles o millones de bytes...
Solución:
Se genera un hash del mensaje, representativo del mismo, con una
función hash imposible de invertir. La función hash comprime un
mensaje de longitud variable a uno de longitud fija y pequeña.
2
Seguridad en Sistemas: Autentificación y Seguridad en SW
Características de una firma digital
Requisitos de la Firma Digital:
a)
b)
c)
d)
Debe ser fácil de generar.
Será irrevocable, no rechazable por su propietario.
Será única, sólo posible de generar por su propietario.
Será fácil de autentificar o reconocer por su
propietario y los usuarios receptores.
e) Debe depender del mensaje y del autor.
Son condiciones más fuertes
que la de una firma manuscrita.
3
Seguridad en Sistemas: Autentificación y Seguridad en SW
Firma digital RSA de A hacia B
Clave Pública (nA, eA) Clave Privada (dA)
Algoritmo:
Rúbrica: rAH(M) = H(M)dA mod nA
LaSole
A envía el mensaje M plano (o cifrado) al destinatario B
junto a la rúbrica: {M, rAH(M)}
El destinatario B tiene la clave pública eA,nA de A
y descifra rAH(M)  {(H(M)dA)eA mod nA}
obteniendo así H(M). Como recibe el mensaje
M’, calcula la función hash H(M’) y compara:
Mateico
Si H(M’) = H(M) se acepta la firma.

4
Seguridad en Sistemas: Autentificación y Seguridad en SW
Ejemplo de firma digital RSA (B  A)
Hola. Te envío el documento. Saludos.
Sea H(M) = F3A9 (16 bits)
Mateico
Claves Mateico
nB = 65.669
eB = 35, dB = 53.771
216  65.669  217
luego, firmará con
bloques de 16 bits
Firma H (M) = F3A916 = 62.37710
rH(M) = H(M)dB mod nB
rH(M) = 62.37753.771 mod 65.669 = 24.622
Mateico envía el par (M, r) = (M, 24.622)
LaSole
Claves LaSole
nA = 66.331
eA = 25, dA = 18.377
Los primos
elegidos por
Mateico y LaSole
son (97, 677) y
(113, 587)
5
Seguridad en Sistemas: Autentificación y Seguridad en SW
Comprobación de firma RSA por A
Mateico
Claves Mateico
Claves LaSole
nB = 65.669
eB = 35, dB = 53.771
nA = 66.331
eA = 25, dA = 18.377
LaSole
Teníamos que: H (M) = F3A916 = 62.37710
rH(M) = H(M)dB mod nB rH(M) = 62.37753.771 mod 65.669 = 24.622
Mateico había enviado el par (M, r) = (M, 24.622)
LaSole recibe un mensaje M’ junto con una rúbrica r = 24.622:
• Calcula reB mod nB = 24.62235 mod 65.669 = 62.377.
• Calcula el hash de M’ es decir H(M’) y lo compara con H(M).
• Si los mensajes M y M’ son iguales, entonces H(M) = H(M’) y se
acepta la firma como válida.
• NOTA: No obstante, H(M) = H(M’) no implica que M = M’.
6
Seguridad en Sistemas: Autentificación y Seguridad en SW
Firma digital ElGamal de A hacia B
LaSole
ElGamal: El usuario A generaba un número
aleatorio a (clave privada) del cuerpo p. La
clave pública es a mod p, con  generador.
Firma: (r, s)
Algoritmo de firma:
1º El usuario A genera un número aleatorio h, que será primo
relativo con (p): h / mcd {h, (p)} = 1
2º Calcula h-1 = inv {h, (p)} M = ar + hs mod (p) 
s = (M - ar)inv[h,(p) mod (p)
3º Calcula r = h mod p
4º Resuelve la siguiente congruencia:
7
Seguridad en Sistemas: Autentificación y Seguridad en SW
Comprobación de firma ElGamal por B
Algoritmo comprobación de firma:
1º El usuario B recibe el par (r, s) y calcula:
Mateico
rs mod p y (a)r mod p
Conoce: p y (a) mod p
2º Calcula k = [(a)r  rs] mod p
Como r era igual a h mod p entonces: Se acepta la firma
k = [(arhs] mod p = (ar + hs) mod p =  mod p
3º Como M = (ar + hs) mod (p) y  es una raíz
primitiva de p se cumple que:
 =  ssi  =  mod (p-1)
Si k = [(a)r  rs] mod p
4º Comprueba que k = M mod p
es igual a M mod p ...
8
Seguridad en Sistemas: Autentificación y Seguridad en SW
Ejemplo firma digital ElGamal (B  A)
¡Hola otra vez! Soy Mateico de nuevo...
Salu2.
Mateico
Firma
1)
2)
3)
4)
5)
Sea H(M) = A69B (16 bits)
Claves Mateico
pB = 79.903  = 10
b mod p = 3.631
b = 20, h = 31
LaSole
216  79.903  217
luego, firmará con
bloques de 16 bits
h-1 = inv[h, (p)] = inv (31, 79.902) = 5.155
r = h mod p = 1031 mod 79.903 = 11.755
s = [H(M) - br][inv(h,(p)] mod (p)
H(M) = A69B16 = 42.65110
s = [42.651-2011.755]5.155 mod 79.902
s = 68.539 Luego, la firma será
(r, s) = (11.755, 68.539)
9
Seguridad en Sistemas: Autentificación y Seguridad en SW
Comprobación de firma ElGamal por A
Claves Mateico
Mateico
pB = 79.903  = 10
b mod p = 3.631
b = 20, h = 31
H(M) = A69B = 42.651
LaSole
LaSole recibe el par (r, s) = (11.755, 68.539)
Comprobación de la firma:
1)
2)
3)
4)
Como hay igualdad
se acepta la firma
rs mod p = 11.75568.539 mod 79.903 = 66.404
(b)r mod p = 3.63111.755 mod 79.903 = 12.023
(b)r  rs mod p = (12.023  66.404) mod 79.903 = 64.419 = k
H(M) mod p = 1042.651 mod 79.903 = 64.419
10
Seguridad en Sistemas: Autentificación y Seguridad en SW
El generador  en la firma de ElGamal
Claves Mateico
Mateico
pB = 79.903  = 10
b mod p = 3.631
b = 20, h = 31
p-1 = 79.902 = 23223193
q1 = 2; q2 = 3; q3 = 23; q4 = 193
y se cumple 10(p-1)qi mod p  1
 = 10 es un generador
del cuerpo p = 79.903
puesto que:
1039.951 mod 79.903 = 79.902
1026.634 mod 79.903 = 71.324
103.474 mod 79.903 = 2.631
10414 mod 79.903 = 41.829
Por ejemplo, si se elige  = 11, para el exponente 39.951 se
obtiene el valor 1 y entonces no sirve para la firma. Será
imposible comprobarla mediante la ecuación k = M mod p.
11
Seguridad en Sistemas: Autentificación y Seguridad en SW
Estándares de firma digital
1991: National Institute of Standards and Technology (NIST)
propone el DSA, Digital Signature Algorithm, una
variante de los algoritmos de ElGamal y Schnoor.
1994: Se establece como estándar el DSA y se conoce como
DSS, Digital Signature Standard.
1996: La administración de los Estados Unidos permite la
exportación de Clipper 3.11 en donde viene inmerso el
DSS, que usa una función hash de tipo SHS, Secure
Hash Standard.
El peor inconveniente de la firma propuesta por ElGamal es que
duplica el tamaño del mensaje M al enviar un par (r, s) en Zp y (p).
No obstante, se solucionará con el algoritmo denominado DSS.
12
Seguridad en Sistemas: Autentificación y Seguridad en SW
Digital Signature Standard DSS
Parámetros públicos de la firma:
• Un número primo grande p (512 bits)
• Un número primo q (160 bits) divisor de p-1
• Un generador  “de orden q” del grupo p
¿y eso qué es?
Generador de orden q es aquella raíz  en el cuerpo Zp de
forma que q es el entero más pequeño que verifica:
q mod p = 1
En este caso se cumple para todo t que:
t = t (mod q) mod p
13
Seguridad en Sistemas: Autentificación y Seguridad en SW
Generación de firma DSS de A  B
GENERACIÓN DE LA FIRMA POR PARTE DE A
• Claves públicas de A: primos p, q y el generador 
• Clave secreta de la firma: a
(1 < a < q) aleatorio
• Clave pública de la firma: y = a mod p
• Para firmar un mensaje 1 < M < p, el firmante elige un
valor aleatorio 1 < h < q y calcula:
• r = (h mod p) mod q
• s = [(M + ar)  inv (h,q)] mod q
• La firma digital de M será el par (r, s)
14
Seguridad en Sistemas: Autentificación y Seguridad en SW
Comprobación de firma DSS por B
COMPROBACIÓN DE LA FIRMA DE A POR B
• B recibe el par (r, s)
• Luego calcula:
• w = inv (s, q)
• u = M  w mod q
• v = r  w mod q
La firma tendrá en este caso
un tamaño menor que q, es
decir, menos bits que los del
módulo de firma p ya que se
elige por diseño p >> q
• Comprueba que se cumple la relación:
• r = (u yv mod p) mod q
• Si se cumple, se acepta la firma como válida.
15
Seguridad en Sistemas: Autentificación y Seguridad en SW
Ejemplo de firma DSS de B  A
Hola LaSole, soy Mateico y firmo con DSS.
Sea H(M) = 1101000 = 104 (un elemento de pB)
Mateico
Firma
1)
2)
3)
4)
5)
Claves Mateico
pB = 223 qB = 37  = 17
y = b mod p = 30
b = 25, h = 12
LaSole
28  pB = 223  27
Luego firmará
bloques de 7 bits
inv (h,q) = inv (12, 37) = 34
r = (h mod p) mod q = (1712 mod 223) mod 37 = 171 mod 37 = 23
s = [H(M)+br][inv (h,q)] mod q = [104+2523]34 mod 37 = 35
La firma digital de H(M) = 104 será: (r, s) = (23, 35)
Mateico transmite a LaSole el bloque (M, r, s) = (M, 23, 35)
16
Seguridad en Sistemas: Autentificación y Seguridad en SW
Comprobación de firma DSS por A
Claves Mateico
Mateico
pB = 223 qB = 37  = 17
y = b mod p = 30
b = 25, h = 12
Comprobación de firma
LaSole recibe:
(M, r, s) = (M, 23, 35)
LaSole
¿igualdad?
Se acepta la firma
Y el tamaño será
1) w = inv (s, q) = inv (35, 37) = 18
menor que qB = 37
2) u = Mw mod q = 10418 mod 37 = 22
es decir << PB = 223 que
3) v = rw mod q = 2318 mod 37 = 7
era el punto débil de ElGamal
4) ¿(u yv mod p) mod q = r ?
5) [(1722307) mod 223] mod 37 = 23
17
Seguridad en Sistemas: Autentificación y Seguridad en SW
18
Seguridad en Sistemas: Autentificación y Seguridad en SW
Protección de Programas
La Protección del Software es
Fundamental en Seguridad en Sistemas.
Los problemas en el software van desde errores de
programación hasta código escrito intencionalmente para
causar daños.
Todos pueden traer malas consecuencias.
19
Seguridad en Sistemas: Autentificación y Seguridad en SW
Seguridad en el Mundo Real
Qué se busca?
• Presencia en Internet.
• Uso de SW.
• Estabilidad en clientes y servers.
Problemas
• El SW tiene errores.
• Amenazas desde Internet.
• Hay código que atraviesa firewalls.
20
Seguridad en Sistemas: Autentificación y Seguridad en SW
Podemos evitar todos los problemas?
NO
• Es imposible poder asegurar que todo programa (sin
pensar todavía en código malicioso) se va a comportar
exactamente según su diseño (ni +, ni -).
• Las técnicas de ingeniería de SW evolucionan mucho
más rápido que las de técnicas de seguridad. Los
expertos en seguridad todavía estan asegurando
software de ayer.
21
Seguridad en Sistemas: Autentificación y Seguridad en SW
Por qué preocuparse?
El código malicioso puede comportarse de forma
inesperada. Puede ser un programa o parte de él.
Un programa tiene millones de bytes… qué sorpresa nos
depara el destino cuando ejecutamos INSTALL?
Paranoic Flag
22
Seguridad en Sistemas: Autentificación y Seguridad en SW
Código Malicioso
Puede causar (mucho) daño
• Puede hacer cualquier cosa: es SW.
• Puede estar “dormido” hasta que se de algo.
• Corre con la autoridad del usuario.
Hace tiempo que está entre nosotros
• Cohen 84.
• Hay referencias anteriores… Anderson 72.
23
Seguridad en Sistemas: Autentificación y Seguridad en SW
Tipos de Código Malicioso
Código Malicioso o Rogue Program se denomina en
general a programas que intencionalmente causan daño.
Errores de programación no entran entonces en esta
categoría.
Virus: es un programa que “contagia” código malicioso a
programas no infectados previamente. La infección se
propaga geométricamente por el sistema actual y por otros
sistemas conectados. Suena a Sci-Fi pero es real.
Caballo de Troya: código malicioso que además de su
efecto primario, tiene un segundo efecto: sorpresita. Ej:
login script.
24
Seguridad en Sistemas: Autentificación y Seguridad en SW
Tipos de Código Malicioso
Bomba Lógica: este código malicioso “detona” cuando se
da cierta condición. Caso especial: Bomba de Tiempo.
Trapdoor o Backdoor: feature especial “escondida” en un
programa, generalmente brinda algún privilegio especial.
Puede ser intencional, para mantenimiento o para “borrar”
registros (acción criminal).
Worm: es un programa que se disemina a través de una
red. Pregunta: cuáles son las diferencias entre worm y
virus?
Conejo: es un virus o worm que se duplica sin control. Su
intención es la de agotar recursos computacionales.
25
Seguridad en Sistemas: Autentificación y Seguridad en SW
Tipos de Código Malicioso
Los tipos definidos anteriormente son similares pero no
iguales!!!! En general para la prensa son todos virus…
Dada la popularidad de los virus nos enfocaremos
principalmente en ellos en la clase de hoy.
26
Seguridad en Sistemas: Autentificación y Seguridad en SW
Virus
Como se anexan a un archivo?
• Una copia impresa de un virus NO HACE
NADA!!!! Para que se disemine necesita ser
ejecutado.
Ayudenme a diseminar este concepto!!!!!
• Append.
• Surround.
• Reemplazo.
27
Seguridad en Sistemas: Autentificación y Seguridad en SW
Virus
Como gana control un virus?
El virus (V) tiene que ser invocado en vez de
el target (T).
El virus puede asumir el nombre de T
reemplazando el código de T o cambiando
links en la file table.
28
Seguridad en Sistemas: Autentificación y Seguridad en SW
Características de un “buen” virus
• Difícil de detectar.
• Difícil de destruir/desactivar.
• Que se disemine mundialmente.
• Fácil de crear.
• Independiente de la arquitectura/S.O.
Según los objetivos buscados será la ubicación del virus.
29
Seguridad en Sistemas: Autentificación y Seguridad en SW
Virus: Ubicación
• Boot Sector.
• virus residentes.
• Programas de aplicación. Macros…
• Librerías. Buena diseminación.
• Otros buenos “hogares”: compiladores, loaders, linkers,
monitores (t.e.), debuggers (t.e.).
30
Seguridad en Sistemas: Autentificación y Seguridad en SW
Virus: Firmas
• Un virus no puede ser completamente invisible. Se
almacena en algún lado, se ejecuta de alguna forma, se
disemina de cierto modo: Firma.
• Gracias a esta firma funcionan los Anti-Virus.
Patrones
• Patrones de Almacenamiento.
• Patrones de Ejecución. Tabla 5.2 (187), Pfleeger.
Si el virus tiene control de la máquina puede “mostrar”
lo que el usuario quiere ver.
31
Seguridad en Sistemas: Autentificación y Seguridad en SW
Virus: Firmas
Patrones (Sigue)
• Patrones de Transmisión.
• virus Polimórficos. Ver algunos ejemplos en pizarrón.
32
Seguridad en Sistemas: Autentificación y Seguridad en SW
Prevención
•
Uso de software legal.
•
Testear todo software nuevo en una máquina aislada.
•
Diskette booteable.
•
Backup de archivos de sistema.
•
Virus scanners frecuentemente actualizados.
•
Cuidado con los e-mails/www!!!!
33
Seguridad en Sistemas: Autentificación y Seguridad en SW
Verdades/Creencias acerca de virus
•
Afectan solamente sistemas PC’s/Windows.
•
Protección de archivos mediante sus “permisos”.
•
Infecciones en archivos de “datos”.
•
Diseminación por diskette.
•
No pueden permanecer en memoria después de un
reboot.
•
No pueden infectar hardware.
•
virus “benignos”.
34
Seguridad en Sistemas: Autentificación y Seguridad en SW
Ejemplos de virus
•
Brain. Página 191, Pfleeger.
•
Miles de páginas web.
•
La mayoría de los programas Anti-Virus tienen
información de virus en sus páginas.
•
Buscadores WWW: www.google.com, etc.
35
Seguridad en Sistemas: Autentificación y Seguridad en SW
Código Malicioso con Destino
Hasta ahora solo vimos código anónimo que afecta
sistemas indiscriminadamente. Este no siempre es el caso.
Puede afectar:
• Ciertos sistemas.
• Ciertas aplicaciones.
• Cierta persona.
• Propósito particular.
• etc.
36
Seguridad en Sistemas: Autentificación y Seguridad en SW
Código Malicioso con Destino
Trapdoors.
Se puede solucionar el problema?
Es decidible?
Salami Attack
Trocitos de ingredientes que se “agrupan” para
hacer un salamín. Ej: sistema de bancos.
Redondeos, truncados… Puede detenerse este tipo
de ataques?
37
Seguridad en Sistemas: Autentificación y Seguridad en SW
Código Malicioso con Destino
Covert Channels.
Son programas que “pasan” información sin que el usuario
sea conciente de esto a personas que no deberían recibirla.
Más detalles en la sección 5.2 de Pfleeger.
38
Seguridad en Sistemas: Autentificación y Seguridad en SW
Controles contra Amenazas de SW
Hasta ahora vimos que muchas son las amenazas y
problemas que puede causar el SW. Veremos aquí
brevemente que se puede hacer al respecto.
Controles de Programación
• Buenas “técnicas” de diseño y programación. Ingeniería
del Software (out of the scope).
• Revisión de Pares.
• Modularidad, encapsulamiento y ocultamiento de la
información.
• Pruebas de correctitud.
39
Seguridad en Sistemas: Autentificación y Seguridad en SW
Controles contra Amenazas de SW
Controles del S.O. sobre el uso de programas
Dado que no todos los programas siguen los lineamientos
anteriores es útil la ayuda que pueda brindarnos el S.O.
Aquí veremos solo algunas nociones.
Próxima Clase
Código Confiable
Código rigurosamente desarrollado y analizado
(correctitud, integridad, privilegio limitado, nivel de
seguridad apropiado).
40
Seguridad en Sistemas: Autentificación y Seguridad en SW
Controles contra Amenazas de SW
Controles del S.O. sobre el uso de programas (Sigue)
Sospecha Mútua
Usuario
Programa
Confinamiento
Logs de Acceso
41