Confiabilidade de Sistemas Distribuídos (2019/2020) - Departamento de Informática
Descrição

Confiabilidade de Sistemas Distribuídos é uma unidade curricular de especialização que estuda os findamentos, métodos, técnicas e mecanismos para concepção e implementação de sistemas distribuídos de grande escala, com requisitos de segurança, privacidade, fiabilidade e alta disponibilidade, para suporte de aplicações de sistemas críticos. No programa da disciplina estudam-se mecanismos associados a técnicas avançadas e propostas da investigação recente para tolerância a falhas e tolerância a intrusões, técnicas da criptografia computacional aplicada a soluções de privacidade de dados e computações bem como soluções tecnológicas para computação e confiável, atestação de software e proteção ao nível do hardware.

A cadeira fornece competências para a ocncepçãom, construção e avaliação experimental de sistemas distribuídos para computação confiável em ambientes Internet, com particular destaque para requisitos de processamento e gestão confiável de dados em nuvens de cmputação e armazenamento de dados, segurança, confiabilidade e escalabilidade em plataformas Blockchain e ambientes de computação confiável para sistemas móveis e plataformas IoT (Internet of Things).

Objectivos

A unidade curricular visa desenvolver e especializar conhecimentos na área dos Sistemas Distribuídos Confiáveis, tendo em vista a compreensão aprofundada de técnicas avançadas usadas na concepção de sistemas críticos complexos, com propriedades de tolerância a falhas, processamento seguro e confiável, tolerância a intrusões e preservação de privacidade dos dados e computações.Objectiva-se o domínio dos fundamentos para construção e desenvolvimento de sistemas confiáveis e distribuídos em grande escala bem como das técnicas que permitem suportar a combinação daquelas propriedades.

A unidade curricular tem forte incidência no estudo de fundamentos teóricos e seus formalismos, como base consolidada para abordar a concretização e compreensão de sistemas práticos, avaliados com ensaio experimental e observação crítica das propriedades de confiabilidade suportadas.

Aquisição de competências:

Saber

Fazer

Programa
  1. Introdução
  2. Conceitos e noções sobre confiabilidade em sistemas distribuídos: modelos, propriedades, tipologias de suporte e técnicas de concepção e implementação
  3. Canais para comunicação segura e confiável
    • Comunicação segura e fiável ponto a ponto e fim-a-fim
    • Comunicação fiável em grupo e comunicação segura em grupo
    • Comunicação e garantias de ordenação de mensagens
  4. Prevenção, detecção, recuperação e tolerância a intrusões
    • Sistemas de prevenção de intrusões
    • Sistemas de detecção de intrusões (sistemas HIDS, NIDS e HIDS)
    • Recuperação de intrusões: técnicas reativas e pró-ativas
    • Mecanismos, técnicas e serviços para tolerância a falhas e tolerância a intrusões:
  5. Consenso em sistemas confiáveis:tolerância a falhas bizantinas tolerância a intrusões
    • Consensus, impossibilidade FLP e abordagem de protocolos probabilísticos
    • Estruturação de protocolos para consensus em sistemas assíncronos
    • Replicação com sistemas de quórum bizantinos
    • Consenso com tolerância a falhas bizantinas
  6. PlataformasBlockchain
    • Tipologias de plataformasBlockchain esuas aplciações
    • Planos de serviços e componentes numa plataformaBlockchain:mecanismos de suporte
    • Programação com contratos inteligentes
    • Modelos e provas deconsensuse modelos de incentivo
    • Suporte de requisitos de escala e aspetos de sustentabilidade
    • Estudo de casos
  7. Gestão confiável de dados com preservação de privacidade
    • Técnicas avançadas de criptografia aplicada para privacidade de dados e computações
    • Replicação e fragmentação de dados e fragmentação segura com códigos de apagamento
    • Disponibilidade e replicação com confidencialidade, autenticidade e integridade dos dados
    • Operações com dados cifrados: técnicassecurity-at-the-reste criptografia homomórfica
    • Sistemas e soluções com criptografia pesquisável
    • Casos de estudo com bases de dados SQL, repositórios NoSQL e nuvens de armazenamento
  8. Computação confiável
    • Técnicas, mecanismos e ambientes para computação confiável
    • Confiabilidade com atestação de software
    • Tecnologias e ambientes de execução confiável
    • Programação com ambientes de computação confiável com plataformas HW
    • Estudo de casos: IntelSGX, TrustZone e suporte para virtualização
Bibliografia Principal

Bibliografia

Ref. Complementares

Obs) Nas aulas teóricas são sugeridos, enquadrados e discutidos artigos publicados pela comunidade de investigação. Materias complementares para atividades em laboratório e para suporte de trabalhos práticos de avaliação serão disponibilizados como materiais de laboratório.

Requisitos Prévios

Não existindo requisitos prévios para além dos que resultam da estrutura curricular do curso de Mestrado Integrado em Engenharia Informática, os seguintes aspectos devem no entanto ser considerados pelos alunos que pretendam frequentar a unidade curricular.

Esforço do Aluno
  Horas por crédito 28
  Horas p/ semana Semanas Horas
Aulas práticas e laboratoriais   26.0
Aulas teóricas   26.0
Avaliação   10.0
Estudo   52.0
Projectos e trabalhos   48.0
Total de Horas 162
ECTS 6.0