Segurança de Redes e Sistemas de Computadores

Objetivos

Conhecimentos

  • Frameworks de segurança, normalização de serviços de segurança e modelos de segurança para sistemas e redes de computadores
  • Métodos, ferramentas  e algoritmos criptográficos e sua utilização na concepção de serviços e protocolos de segurança para redes, sistemas de computadores e sistemas de software
  • Protocolos e serviços de segurança na pilha TCP/IP e segurança de aplicações na Internet 
  • Segurança do sistema de operação e proteção com técnicas de virtualização
  • Segurança de sistemas: prevenção e detecção de intrusões e soluções de defesa de perímetro.
  • Bases de computação confiável e ambientes seguros de execução segura de código e mecanismos de computação confiável ao nível do hardware.

Aptidões e competências

  • Programação com algoritmos criptográficos e bibliotecas com construção e composição normalizadas de algoritmos criptográficos
  • Desenho, implementação e ensaio experimental de protocolos e serviços de segurança para redes de computadores e sistemas distribuídos.
  • Implementação de propriedades de segurança para sistemas distribuídos e aplicações Internet
  • Proteção de recursos ao nível do sistema de operação e virtualização com isolamento de serviços de software
  • Desenho e implementação de soluções de segurança para proteção e privacidade de dados
  • Programação de mecanismos de segurança com ambientes de atestação e execução confiável e com bases de confiança em hardware

Caracterização geral

Código

11619

Créditos

6.0

Professor responsável

Henrique João Lopes Domingos, José Augusto Legatheaux Martins

Horas

Semanais - 4

Totais - 52

Idioma de ensino

Inglês

Pré-requisitos

Os alunos devem possuir conhecimentos anteriores sobre:

  • Fundamentos de redes de computadores e conhecimento dos protocolos da pilha TCP/IP
  • Fundamentos, paradigmas e prática de programação em Sistemas Distribuídos
  • Fundamentos de Sistemas Operativos

É aconselhável que os alunos possuam autonomia e conhecimento prático no uso de ferramentas de desenvolvimento  de software (ex., Eclipse IDE ou outro), prática de utilização de sistemas de operação (ex., Linux ou Mac OS X ou Windows), conhecimentos de utilização de ambientes de virtualização ou instalação e uso de máquinas virtuais (ex., VBox ou VMWare) ou ambientes de virtualização e isolamento de aplicações e componentes (ex., Docker). É indicado que os alunos possuam prática anterior de programação e linguagens de programação (ex., Java ou C# ou C++). O desenvolvimento de trabalhos práticos pode ainda requerer prática de programação para redes TCP/IP e Internet e aplicações distribuídas, nomeadamente: programação com Sockets TCP/IP, programação REST e com Serviços WEB.

Bibliografia

Bibliografia principal

  • W. Stallings,  Network Security Essentials - Applications and Services, Pearson, 6/E, 2017
  • W. Stallings, L. Brown,  Computer Security: Principles and Practice, Pearson 4/E, 2014

Bibliografia complementar

  • W. Stallings,  Cryptography and Network Security - Principles and Practice, Pearson 7/E, 2017
  • D. Gollmann, Computer Security, 3rd Ed, Wiley, 2011

Outras referências

  • B. Schneier, Applied Cryptography, 1996, Wiley
  • A. Zúquete, Segurança em Redes Informáticas, 5ª Ed., 2018, Ed. FCA
  • M. Correia, P. Sousa, Segurança no Softwarem 2ª Ed. , 2017 Ed. FCA

Método de ensino

O funcionamento da unidade curricular envolve aulas teóricas, onde são transmitidos e discutidos os conceitos fundamentais e são discutidos os tópicos do programa e aulas práticas, desenvolvidas em ambiente laboratorial e onde os alunos realizam trabalhos práticos que incluem os trabalhos de avaliação obrigatória.

Nas aulas práticas são feitas apresentações de técnicas de segurança, podendo envolver demonstrações dessas técnicas (de acordo com o programa das aulas práticas) e realizados exercícios básicos relacionados com essas técnicas. Algumas aulas práticas serão dedicadas aos trabalhos práticos de avaliação a realizar pelos alunos, incluindo o esclarecimento de dúvidas, apresentação ou demonstração de resultados bem como discussão de possíveis soluções.

Método de avaliação

Componentes de avaliação

  • 2 testes de frequência cobrindo a matéria do programa: T1, T2 
    • Duração de referência (2h30): 
      • 1h-1h30m: questões sem consulta
      • 1h-1h30m: questões com consulta (informação individual impressa), poendo incluir questões práticas decorrentes de exercícios em laboratório ou relativas à realização de trabalhos práticos de avaliação
  • 2 trabalhos práticos: TP1,  TP2 desenvolvidos como mini projetos
  • Trabalhos desenvolvidos em grupos de no máximo 2 alunos
    • Para a avaliação ser feita em grupo, será necessária presença regular dos membros do grupo em pelo menos 60% das aulas práticas
    • Podem ser realizados individualmente (grupo com um único aluno)
  • A submissão de trabalhos para avaliação desenvolvimento, prova de implementação, autoavaliação e reporte

Regras de aprovação1

- Obtenção de frequência (AF)

  • Avaliação de frequência AF = 40% (TP1) + 60% (TP2)
  • Obtenção de frequência (AF):

         AF >=9,5/20 e TP2 >= 7,5/20

- Aprovação com avaliação contínua (AC)

  • Obtenção de Frequência
  • Avaliação Contínua AC  = 40% AF +  25% (T1) + 35% (T2)
  • Aprovação com avaliação contínua (AC):

         AC >=  9,5/20 e

         média (T1, T2) >= 9,5/20

- Aprovação com exame de recurso (ER)

  • Obtenção de frequência
  • Avaliação com Exame de Recurso AER = 40% AF + 60% ER
  • Condições de Aprovação com Exame de Recurso (AER): 

             AC>=9,5/20 e  ER>=9,5/20

1) Alunos com frequência e acesso ao exame obtidos em 2016/2017 ou 2017/2018, poderão usar a avaliação de frequência já obtida para efeitos de acesso ao exame.

Conteúdo

1. Introdução

2. Fundamentos da segurança em sistemas e redes de computadores

  • Frameworks de segurança: OSI X.800, ANSI, NIST/FIPS PUB
  • Modelos de segurança para sistemas distribuídos
  • Serviços de segurança na pilha TCP/IP
  • Mecanismos de defesa de perímetro
  • Segurança das computações

3.Criptografia computacional e ferramentas criptográficas

  • Criptografia simétrica; algoritmos e normalização de construções criptográficas simétricas seguras
  • Criptografia assimétrica: algoritmos e normalização de construções com métodos assimétricos
  • Assinaturas digitais; normalização e utilização de assinaturas seguras
  • Sínteses de segurança e códigos de autenticação e integridade
  • Métodos criptográficos assimétricos para distribuição e estabelecimento de chaves ou parâmetros de associações de segurança
  • Novos métodos criptográficos emergentes
  • Concepção e implementação de canais para comunicação segura

4. Autenticação e controlo de acesso

  • Protocolos e serviços de Autenticação: PAP, CHAP e RADIUS
  • Sistema Kerberos
  • Autenticação X509 e framework PKI/PKIX
  • Sistemas de autenticação, sistemas SSO e sistemas AAA
  • Gestão de identidades digitais
  • Sistemas e tecnologias de autenticação de utilizadores
    • Fatores de autenticação e autenticação com múltiplos fatores
    • Modelos, métodos e serviços de controlo de acesso
      • Modelos MAC, DAC, RBAC, ABAC e CBAC
      • Métodos e mecanismos de definição e controlo de permissões

5. Segurança na pilha TCP/IP

  • Segurança WEB e HTTPS
  • Pilha TLS 
  • SSH
  • Protocolos da pilha IPSec: ESP, AH, IKE e ISAKMP
  • Segurança de redes privadas virtuais
  • Segurança do encaminhamento IP: SBGP
  • Protocolos e serviços de segurança de sistemas e serviços E-Mail
    • POP3S, IMAPS, SMTPS, S/MIME, PGP, DKIM e DMARC
    • Segurança do DNS: DNSSEC
    • Segurança de canais e redes de acesso: EAP,  802.1x e 802.11i

6. Segurança de sistemas

  • Segurança no sistema de operação 
  • Segurança de ambientes com virtualização
  • Atestação e sistemas e tecnologias HW para computação confiável
  • Prevenção e detecção de intrusões
  • Técnicas e sistemas de defesa de perímetro

Cursos

Cursos onde a unidade curricular é leccionada: