Segurança de Redes e Sistemas de Computadores

Objectivos

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

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, L. Brown,  Computer Security: Principles and Practice, Pearson 8/E, 2020
  • W. Stallings,  Network Security Essentials - Applications and Services, Pearson, 6/E, 2017

Ref. complementares

  • W. Stallings,  Cryptography and Network Security - Principles and Practice, Pearson 8/E, 2020
  • P. C. van Oorschot, Computer Security and the Internet, Springer, 2020
  • D. 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. 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.

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

  • 2 testes presenciais de frequência cobrindo a matéria do programa: T1, T2 
    • Testes de frequência com realização presencial, cobrindo o estudo da bibliografia e materiais das aulas teóricas e práticas
    • Os testes possuem duas partes:
      • Parte sem consulta 
      • Parte com consulta de elementos individuais de cada aluno
    • Realização da parte sem consulta: não é permitido usar dispositivos eletrónicos, computadores, telemóveis/smart phones,  tablets ou qualquer equipamento com capacidade de computação ou comunicação)
  • 2 trabalhos práticos: TP1,  TP2 (mini projetos)
    • Trabalhos podem ser desenvolvidos individualmente ou em grupo (máximo 2 alunos) 
    • 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 e que podem ser realizadas nas datas de realização dos testes de frequência ou outras.
    • A avaliação final dos trabalhos envolve ainda Informação de participação nas aulas (exercícios, atividades práticas) que pode ser usada como fator complementar de ajustamento da avaliação prática, individualizada.

 Regras de aprovação

- 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 9,5/20 e TP2 >= 9,5/20
  • Alunos com frequência anterior obtida no ano letivo de 2020/2021 poderão manter a frequência.

Aprovação com frequência (AC)

  • Obtenção de condição de frequência (AF)
  • Avaliação Contínua AC  = 40% AF +  25% T1 + 35% T2 (final weights will be def
  • 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
  • O exame de recurso cobre toda a matéria, tendo uma organização semelhante à dos testes de frequência
  • Condições de Aprovação com Exame de Recurso (AER): AER maior ou igual a 9,5/20

Nota: todos os componentes de avaliação terão avaliação na escala de 0 a 20 valores (uma casa decimal). No cálculo da not final usam-se as regras corretas de arredondamento para obter a nota num valor inteiro.

Conteúdo

Programa

  • Introdução
    • Conceitos, Terminologia e Fundamentos de Segurança de Sistemas e Redes de Computadores
  • Ferramentas Criptográficas
    • Ferramentas, métodos, algoritmos
    • Construções de métodos criptográficos e sua normalização
    • Protocolos de distribuição de chaves criptográficas e estabelecimento seguro de associações de segurança
    • PKI / Certificação e gestão de chaves públicas e autenticação X509
  • Autenticação e controlo de acesso
    • Autenticação de utilizadores; fatores e serviços de autenticação
    • Modelos, mecanismos e sistemas de controlo de acesso
  • Protocolos de segurança e proteção de comunicações
    • Segurança na Internet e proteção extremo-a-extremo
    • Protocolos, normas e serviços de segurança na pilha TCP/IP
  • Segurança de sistemas
    • Segurança do sistema de operação
    • Sistemas de defesa de perímetro
    • Prevenção e deteção de intrusões
    • Computação confiável e confidencial

Tópicos do programa com mais detalhe

  • Introdução
    • Conceitos, terminologia e fundamentos de segurança em sistemas e redes de computadores
    • Definições e aspetos de terminologia
      • Vulnerabilidades, ameaças, ataques, contramedidas
      • Propriedades, mecanismos e serviços de segurança
      • Mecanismos permeados e mecanismos específicos
      • Superfície de ataque
      • Modelo de adversário e princípios de segurança por conceção 
    • Modelo de segurança para sistemas distribuídos e critérios de segurança extremo-a-extremo
    • Segurança da Internet e segurança na pilha TCP/IP
    • Frameworks de segurança: ANSI, ISO X.800, IETF RFC 4949
    • Critérios de cibersegurança e padrões de segurança em organizações: ISO 27000 e outras regulações relevantes
    • Fundamentos e critérios de segurança por concepção
  • Ferramentas criptográficas
    • Criptografia aplicada: métodos, algoritmos e ferramentas
      • Criptografia simétrica e modos de operação segura
      • Criptografia assimétrica
      • Funções para sínteses de segurança
      • Autenticação e integridade de dados e mensagens
      • Assinaturas digitais
      • Outros métodos criptográficos e sua relevância: criptografia homomórfica e criptografia pesquisável 
      • Métodos de criptografia post-quântica
    • Normalização de construções criptográficas e padrões
    • Segurança de canais de comunicação
    • Autenticação e estabelecimento de chaves criptográficas
    • Autenticação e certificação de chaves públicas
    • Autenticação X509, Infraestrutura de Chaves Públicas (PKI) e framework PKIX
    • Gestão segura de chaves criptográficas e de associações de segurança
  • Autenticação e controlo de acesso
    • Autenticação de utilizadores
    • Mecanismos e fatores de autenticação
    • Autenticação com múltiplos fatores
    • Gestão e federação de identidades digitais
    • Modelos, métodos e mecanismos de controlo de acesso
    • Modelos MAC, DAC, RBAC e ABAC
  • Segurança em ambiente Internet e protocolos de segurança na pilha TCP/IP
    • Segurança em ambiente Internet e segurança da pilha TCP/IP
    • Segurança na WEB
    • HTTPS e segurança no nível transporte: pilha TLS and SSH
    • IPSec e redes privadas virtuais
    • Segurança em redes locais: WPA, filtragem MAC  e WLAN 802.11i (controlo de acesso, EAP, TKIP e CCMP)
    • Segurança e acesso de dispositivos móveis
    • Segurança do DNS: DNSSEC e soluções alternativas: DoT e DoH
    • Segurança de EMail:  PGP, S/MIME, DKIM, DMARC e SPF
  • Segurança de sistemas
    • Segurança de sistemas de operação 
    • Sistemas de defesa de perímetro
    • Prevenção e deteção de intrusões
    • Segurança para suporte de aplicações: segurança e proteção da execução de software
    • Protocolos e sistemas de atestação de software
    • Segurança com isolamento: níveis de virtualização e confinamento
    • Mecanismos normalizados para computação confidencial e com preservação de privacidade
    • Confiabilidade de sistemas: critérios de confiabilidade de sistemas e mecanismos de tolerância a intrusões

Cursos

Cursos onde a unidade curricular é leccionada: