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 = ar + hs mod (p) s = (M - ar)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 = [(arhs] mod p = (ar + hs) mod p = mod p 3º Como M = (ar + hs) 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) - br][inv(h,(p)] mod (p) H(M) = A69B16 = 42.65110 s = [42.651-2011.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 = 23223193 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 + ar) 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)+br][inv (h,q)] mod q = [104+2523]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 = Mw mod q = 10418 mod 37 = 22 es decir << PB = 223 que 3) v = rw mod q = 2318 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