Seguridad de Datos (Introducción a la Seguridad Computacional) CC51D (2007/02)

Profesor: Alejandro Hevia

Propósito: El propósito del curso es dotar al estudiante de los conocimientos para evaluar la seguridad computacional de sistemas así como de las herramientas y técnicas para diseñar, implementar y evaluar soluciones de seguridad.

Aspectos administrativos:

Cátedra: Lunes, Miércoles 10:15am-11:45am, B206
Auxiliar: Viernes 10:15am-11:45am, B206
Horario Consulta: Lunes 12pm-1pm, Of. 309 DCC
Sitio web oficial (especialmente el Foro de Discusión): ucursos
Carga académica: 10 UD,
Requisitos: (CC42A, CC41B) o Autorización
Carácter del curso: electivo Cs. de la Computación

Novedades

  • Todos los alumnos deben firmar el documento de ética del estudiante.
  • Importante: Escoger un proyecto y comunicárselo al profesor antes del Lunes 30 de Julio. Ver listado de proyectos posibles.
  • Fechas Importantes:
    1. Presentación del proyecto: Lunes 6 de Agosto 2007
    2. Presentación de Avance proyecto: Miércoles 12 de Septiembre 2007
    3. Presentación Final proyecto: Lunes 12 de Noviembre 2007

Tareas

  • Calendario de Tareas
    • Tarea 1: disponible en (PDF). Fecha inicio: Lunes 1 de Agosto 2007
      Fecha término: Lunes 13 de Agosto 2007
    • Tarea 2:
      Fecha inicio: Lunes 13 de Agosto 2007
      Fecha término: Lunes 27 de Agosto 2007
    • Tarea 3:
      Fecha inicio: Lunes 27 de Agosto 2007
      Fecha término: Lunes 24 de Septiembe 2007
    • Tarea 4:
      Fecha inicio: Lunes 24 de Septiembre 2007
      Fecha término: Lunes 15 de Octubre 2007

Temario

  1. Introducciónn a la Seguridad Computacional:
    1. Introducción, propiedades de seguridad, confianza.
    2. Ataques, vulnerabilidades.
    3. Por que seguridad es más difícil de lo que parece.
  2. Criptografía:
    1. Simétrica vs. Asimétrica
    2. Encriptación (simétrica), funciones de hash
    3. Encriptación (asimétrica), firmas digitales
    4. Autentificación de mensajes
    5. Confianza: PKI y autoridades certificadoras
    6. Aplicaciones, otros temas
  3. Seguridad de Sistemas:
    1. Control de Acceso: teoría y práctica
    2. Mecanismos vs. políticas
    3. Autentificación: contraseñas, biometría, de una vez, multifactor, mecanismos avanzados
    4. Estudio de casos y aplicaciones
  4. Amenazas Actuales:
    1. Vulnerabilidades y ataques
    2. Ataques de buffer overflow, Inyección de código
    3. Malware: virus, gusanos, spyware, bots, phishing, Spam. Ataques y defensas
    4. Ingeniera social
  5. Seguridad de Redes I:
    1. Protocolos de autentificaciónn, negociaciónn de claves
    2. Casos (Kerberos, Single-sign-on, autentificación web) y aplicaciones
    3. Infraestructura: TCP, DNS, SMTP, ruteo
  6. Introducción al Diseño de Software Seguro:
    1. Atacar y parchar vs. estrategias de largo plazo: principios
    2. Anánlisis de riesgos
    3. Programación Segura, metodologías y herramientas
    4. Confinamiento
  7. Seguridad de Redes II:
    1. Ataques de denegación de servicios (DoS)
    2. Cortafuegos (o firewalls)
    3. Sistemas de detección/prevenció de intrusos (IDS/IPS)
    4. Sistemas del mundo real: IPSec, IKE, SSL.
    5. Seguridad Web
  8. Temas Misceláneos (opcionales):
    1. Votación Electrónica
    2. Sistemas de Anonimato
    3. Sistemas anti-copia (o Digital Right Management, DRM)
    4. Aspectos eacutelticos, Sociales
Nota: La sección temas misceláneos del temario del curso es potencialmente variable dependiendo de disponibilidad de tiempo.

Evaluación:

La evaluación se basa en un control, un proyecto y un exámen (sin apuntes, no reemplaza el control) má 4 tareas. El proyecto es desarrollado durante el semestre. Posibles alternativas para el proyecto incluyen

  1. Desarrollo de un software de seguridad y/o criptográfico,
  2. Escritura y presentación de un artículo corto tipo estado del arte en el área de seguridad, discusión de artículo reciente, o investigación en algún tema relativo al curso.
La nota de control NC se calcula como el promedio simple entre el control 1 y el examen. El examen NO reemplaza al control. La nota de tareas NT se calcula como (PT+NP)/2 donde PT es el promedio de las 4 tareas y NP es la nota del proyecto. Para aprobar el curso se requiere tanto que NC sea mayor o igual que 4.0 como que NT mayor o igual que 4.0.

Posibles Proyectos

  • Nuevo! Implementar un sistema de monitoreo (escucha) de audio sobre IP (por ej. Skype).
  • Implementar sistemas de autentificación basados en puzzles. (Asignado: Francisco Mendez y Diego Aguirre)
  • Implementar un detector de ataques contra navegadores (por ej. para IE o Firefox). Esto es, el detector debe identificar si el sitio web visitado está intentando enviar malware al navegador. (Asignado: Francisco Rodriguez)
  • Nuevo! Implementar un monitoreador de bot (bots son también llamados zombies).
  • Implementar protocolo de broadcast simultáneo (para detalles, hablar con el profesor).
  • Estado del arte o implementación de un sistema para detectar e identificar usuarios "traidores" que comparten sus claves con piratas con la finalidad de darles acceso a contenido protegido (encriptado) recibido vía broadcast.
  • Implementación de protocolos de acuerdo de claves para múltiples participantes (tipo conferencia). (Asignado: Pedro Vargas)
  • Implementación de algoritmos avanzados para watermarking de tipo criptográfico; un watermark es un sello detectables en contenido digital como música o películas. (Asignado: Jaime Veliz)
  • Implementación de un protocolo criptográficos para comunicación anónima basado en mix-networks.
  • Implementación de algoritmos distribuído de generación de bits pseudo-aleatorios.
  • Implementación de algoritmo eficiente (Shank's) para resolver el problema del 'logaritmo discreto'.
  • Implementar un esquema de generación de claves distribuídas usando un esquema de compartición de secretos verificable.
  • Implementar algún esquema de firmas grupales (multifirmas, firmas anillo, firmas de grupo, etc.)
  • Implementación de un sistema de consultas seguras a base de datos (private information retrieval). (Asignado: Francisco Toledo)
  • Implementar un ataque "Man-in-the-middle" para algún sistema de chat (MSN Messenger). (Asignado: Miguel Romero)
  • Implementar protocolo de backup distríbuido resistente a catástrofes en internet.
Solicitar directamente al profesor el tema, quien le clarificará el alcance del proyecto. Cualquier otro tema o posible forma del proyecto queda a criterio del profesor y debe ser consultado con él.

Tareas

Las tareas consistirán tanto de programación como de resolución de problemas conceptuales y aplicados. No se elimina ninguna tarea (habrá una tarea recuperativa de ser necesario, pero posiblemente de dificultad mayor a la de una tarea normal).

Bibliografía:

  1. "Cryptography and Network Security, William Stallings, Editorial Prentice Hall; 4ta edicin (2005)
  2. "Building Secure Software: How to Avoid Security Problems the Right Way, John Viega, Gary McGraw, Editorial Addison-Wesley; 1ra edicin (2001)
  3. "A Classical Introduction to Cryptography: Applications for Communications Security, Serge Vaudenay, Editorial Springer; 1ra edicin (2005)
  4. "Firewalls and Internet Security: Repelling the Wily Hacker, William R. Cheswick, Steven M. Bellovin, Ariel D. Rubin, Editorial Addison-Wesley Professional; 2da edicin (2003)
  5. "Inside Network Perimeter Security, Stephen Northcutt, Lenny Zeltser, Scott Winters, Karen Kent, Ronald W. Ritchey, Editorial Sams; 2da edicin (2005)
  6. Josef Pieprzyk, Thomas Hardjono, Jennifer Seberry, “Foundamentals of Computer Security”, Springer, 2003
  7. Douglas Stinson, “Cryptography, Theory and Practice”, Second edition, Editorial Cgapman and Hall/CRC, 2002
  8. Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, “Handbook of Applied Cryptography”, CRC press, 1997

Última modificación: 25 de Julio 2007.