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
  • Bases de computação confiável e ambientes seguros de execução e segurança de código executável

Aptidões e competências

  • 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
  • Desenho e implementação de soluções de segurança para bases de dados e sistemas de armazenamento remoto de dados críticos ou com suporte a privacidade de dados
  • Desenho e implementação de soluções de segurança de software com recurso a bases de computação confiável ao nível de serviçso middleware de sistemas distribuídos, sistema de operação bem como de ambientes de execução segura ao nível de soluções firmware e 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 - 48

Idioma de ensino

Português

Pré-requisitos

Os alunos devem possuir conhecimentos anteriores sobre:

  • Fundamentos de redes de computadores e conhecimento anterior spbre protocolos da pilha TCP/IP e programação de aplicações suportadas em redes TCP/IP-
  • Fundamentos, paradigmas e prática de programação em Sistemas Distribuídos, com domínio e autonomia de ambientes de programação, programação distribuída e debugging em Java 
  • Fundamentos de Sistemas Operativos

É importante que os alunos possuam autonomia e conhecimento prático no uso de ferramentas de desenvolvimento  de software (ex., Eclipse IDE ou outro e desenvolvimentos de projetos Java e Maven), prática de utilização de sistemas de operação (ex., Linux ou Mac OS X ou Windows), conhecimentos, instalação e utilização de ambientes de virtualização envolvendo o uso de máquinas virtuais (ex., VBox ou VMWare) ou ambientes de  isolamento de aplicações e componentes (ex., Docker, Docker-Composing). A prática de utilização e programação em ambiente Shell/Linux ou OS X é também recomendada. Os alunos devem possuir experiência anterior de programação e autonomia no uso de linguagens de programação (ex., Java, C# ou C++). O desenvolvimento de trabalhos práticos irá requerer prática de programação para redes TCP/IP e Internet e aplicações distribuídas, como por exemplo: programação com Sockets TCP/IP, RMI, programação REST e desenvolvimento de serviços WEB.

Bibliografia

- W. Stallings,  Cryptography and Network Security - Principles and Practice, Pearson 8/E, 2020

- W. Stallings, L. Brown,  Computer Security: Principles and Practice, Pearson 4/E, 2018

- Katz, Lendell, Introduction to oder Cryptography,  2/E., CRC, 2015

Ref. Complementares:

- W. Stallings,  Network Security Essentials - Applications and Services, Pearson, 6/E, 2016

- Gollmann, Computer Security, 3rd Ed, Wiley, 2011

- B. Schneier, Applied Cryptography, 1996, Wiley

- A. Zúquete, Segurança em Redes Informáticas, 5ª Ed., 2018, 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.

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 podem ser desenvolvidos individualmente ou em grupo (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 65% das aulas 
    • A avaliação dos trabalhos (por ter uma componenet individual) será individualizada
  • A submissão de trabalhos para avaliação desenvolvimento, prova de implementação, autoavaliação e reporte

Regras de aprovação1

Obs) As regras abaixo são iniciais e de referência. Estas regras podem ser alteradas pontualmente em função de orientações ou alterações decorrentes da situação pandémica (Covid-19)

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

  • Avaliação de frequência AF = 40% (TP1) + 60% (TP2)
  • Obtenção de frequência (AF): AF maior ou igual a 9,5/20 e média das frequências maior ou igual a 9,5/20

- Aprovação com frequência (AC)

  • Obtenção de Frequência
  • Avaliação Contínua AC  = 35% AF +  30% (T1) + 35% (T2)
  • Aprovação com avaliação contínua (AC): AC maior ou igual a 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): AER maior ou igual a 9,5/20

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

Método de avaliação

Métodos e regras de avaliação

Obs) As regras abaixo são indicativas como referência inciial, podendo ser alteradas pontualmente em dependência da situação pandémica (Covid-19) ou de orientações específicas emanadas na FCT/UNL.

  • 2 testes de frequência cobrindo a matéria do programa: T1, T2 
    • Testes inicialmente previstos para realização presencial
    • Realização sem consulta (não podendo usar dispositivos eletrónicos, computadores, telemóveis/smart phones,  tablets ou qualquer equipamento com capacidade de comunicação)
  • 2 trabalhos práticos: TP1,  TP2 (mini projetos)
    • Trabalhos podem ser desenvolvidos individualmente ou em grupo (máximo 2 alunos) mas serão submetidos individualmente e por via electrónica
    • Submissão nas datas requeridas envolve o preenchimento com um formulário de questões com anexos que podem cobrir código desenvolvido/ e relatório em formato pré-definido bem como prova em arquivo de código (em projeto GitHub)
    • A avaliação prática dos trabalhos é complementada por testes práticos (inicialmente previstos para realização presencial) que pode abranger até 20% da avaliação dos trabalhos
    • Informação de participação nas aulas (exercícios, atividades práticas) pode ser usada como fator complementar de ajustamento da avaliação prática individual

 Regras de aprovação1

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

  • Nota de frequência AF = 40% (TP1) + 60% (TP2)
  • Condição de frequência (AF): AF maior ou igual a 8/20 e TP2 com avaliação positiva ( >=9,5/20 )
  • Alunos com frequência anterior poderão manter a frequência, com a avaliação final calculada de acordo com as regras em 2020/2021.

- Aprovação com frequência (AC)

  • Obtenção de Frequência
  • Avaliação Contínua AC  = 40% AF +  25% (T1) + 35% (T2)
  • Aprovação com frequência: AC maior ou igual a 9.5/20 e média dos testes superior a 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): AER maior ou igual a 9,5/20


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
  • Outras frameworks: segurança organizacional e normalização
  • Segurança de sistemas distribuídos: Segurança das Comunicações, Defesas de Perímetros e Segurança em Profundidade
  • Serviços e protocolos de segurança na pilha TCP/IP
  • Sistemas de defesa de perímetro
  • Mecansmos de isolamento, proteção e segurança das computações

3. Criptografia computacional aplicada e ferramentas criptográficas

  • Criptografia simétrica; métodos, algoritmos e normalização.
    • Programação, parametrização e utilização de construções criptográficas simétricas seguras
    • Padrões com parametrização de modo e padding: padrões PKCS
    • Utilização de modos ECB, CBB, PCBC, OFB, CFB, CTR
    • Modos com autenticidade implícita: GCM e CCM
  • Criptografia assimétrica: algoritmos e normalização 
    • Programação, parametrização e utilização de construções criptográficas assimétricas seguras
    • Envelopes de chave pública: RSA e Padrões PKCS e OAEP.  Uso e programação com algoritmos de curva elíptica
  • Assinaturas digitais; assinaturas normalizadas, parametrização e programação: padrões RSA PKCS#1, DSA e ECDSA
    • Assinaturas de limiar
  • Método de Diffie-Hellman (DH) e generalizações: acordo DH orientado para grupos.
  • Sínteses de segurança e códigos de autenticação e integridade
    • Algoritmos para sínteses de segurança
    • Códigos de autenticação: MACs: HMACs e CMACs
  • Distribuição e estabelecimento de chaves e associações de segurança
  • Concepção e implementação de canais para comunicação segura
  • Métodos criptográficos emergentes
    • Criptografia baseada em identidades
    • Criptografia homomórfica
    • Criptografia post-quântica

4. Autenticação e controlo de acesso

  • Autenticação e distribuição de segredos e chaves criptográficas
  • Protocolos e serviços básicos 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
  • Sistemas e tecnologias de autenticação de utilizadores
    • Sistemas e tecnologias para autenticação de utilizadores
    • Fatores de autenticação e autenticação com múltiplos fatores
  • Modelos, métodos e sistemas de controlo de acesso
    • Modelos MAC, DAC, RBAC, ABAC e CBAC
    • Métodos e mecanismos de definição e controlo de permissões
  • Sistemas de gestão e federação de identidades digitais (FIM)

5. Segurança na pilha TCP/IP

  • Segurança WEB e HTTPS
  • Pilha TLS 
  • SSH
  • Protocolos e serviços de segurança de sistemas e serviços E-Mail
    • POP3S, IMAPS, SMTPS, S/MIME, PGP, DKIM, DMARC
    • Segurança do DNS: DNSSEC
  • Segurança, normalização e auditoria em sistemas na Internet
  • Segurança ao nível do protocolo IP: 
    • Protocolos da pilha IPSec: ESP, AH, IKE e ISAKMP
  • Segurança de redes privadas virtuais
  • Segurança do encaminhamento IP: ataques e contramedidas; Segurança do protocolo BGP
  • Segurança de canais e redes de acesso: EAP,  802.1x e 802.11i

6. Segurança de sistemas

  • Segurança ao nível do istema de operação 
  • Segurança e papel da virtualização
  • Atestação e sistemas e tecnologias HW para computação confiável: TPMs
  • Isolamento e confiabiliade de computações
  • Técnicas e sistemas de defesa de perímetro
  • Prevenção e detecção de intrusões
  • Segurança operacional, sistemas IDS (NIDS, HIDS and DIDS), IPSs and Firewalls
  • Plataformas SIEM  e SOCs
  • Honeypots e Honeynets
  • Auditoria e análise de vulnerabilidades

Cursos

Cursos onde a unidade curricular é leccionada: