Teórica: Apresentação da UC.
Teórica:
- Parte I: Criptografia – conceitos básicos
- Parte II: Exemplos de Cifras Clássicas
Prática:
- Exercícios sobre a componente teórica.
- Projeto de análise de um tema (PA)
Reuniões:
Reunião com os vários grupos de trabalho.
Teórica:
- Parte III: Segurança da Informação
- Parte IV: Cifras simétricas
Prática:
- Exercícios sobre a componente teórica.
- Projeto de análise de um tema (PA)
Reuniões:
Reunião com os vários grupos de trabalho.
Teórica:
- Parte V: Funções de sentido único
- Parte VI: Acordo de chaves
Prática:
- Exercícios sobre a componente teórica.
- Projeto de análise de um tema (PA)
Reuniões:
Reunião com os vários grupos de trabalho.
Teórica:
- Parte VII: Criptografia de chave pública
- Cifra assimétrica
- Assinatura Digital
- Algoritmo RSA
- Algoritmo EL-Gamal
- Criptografia de curvas elípticas
- Utilização
Prática:
- Exercícios sobre a componente teórica.
- Projeto de desenvolvimento 1 (PD1)
Reuniões:
Reunião com os vários grupos de trabalho.
Teórica:
- Parte VIII: Infraestrutura de chave pública
- Arquitetura e aspetos operacionais
- Certificados X.509
- Cadeias de certificação / confiança
- Perfis e políticas de certificados
- Lista de revogação de certificados e OCSP
- Serviço de Timestamp
- Legislação relevante (eIDAS, DL 12/2021, ...)
- Utilização
Prática:
- Exercícios sobre a componente teórica.
- Projeto de desenvolvimento 1 (PD1)
Reuniões:
Reunião com os vários grupos de trabalho. (excepcionalmente efetuadas no dia 30/Mar/2022)
Teórica:
- Parte IX: Criptografia aplicada
- Gerador de número aleatórios / pseudo-aleatórios
- Partilha/Divisão de segredo (Secret Sharing/Splitting)
- Authenticated encryption
- Algoritmos e tamanho de chaves - Legacy, Futuro
- Assinaturas cegas (blind signatures)
- Criptografia homomórfica
Prática:
- Exercícios sobre a componente teórica.
- Projeto de desenvolvimento 1 (PD1)
Reuniões:
Reunião com os vários grupos de trabalho. (excepcionalmente efetuadas no dia 30/Mar/2022)
Teórica:
- Parte X: Aplicações e protocolos
- TLS
- SSH
- TOR
- Blockchain/DLT
Prática:
- Exercícios sobre a componente teórica.
- Projeto de desenvolvimento 1 (PD1)
Reuniões:
Reunião com os vários grupos de trabalho.
Teórica:
Segurança de software:
- Revisão de conceitos relativos ao Software Development Lifecycle (SDLC)
- Secure Software Development Lifecycle (S-SDLC)
- Introdução de segurança nos modelos convencionais de desenvolvimento de software
- Utilização de modelo de desenvolvimento de software seguro - caso do Microsoft Security Development Lifecycle
- Adição de segurança utilizando um Modelo de Maturidade - caso do Software Assurance Maturity Model (SAMM)
Prática:
- Exercícios sobre a componente teórica.
- Projeto de desenvolvimento 1 (PD1)
Reuniões:
Reunião com os vários grupos de trabalho.
Teórica:
Segurança de software:
- Conceitos
- Vulnerabilidades
- Desenvolvimento de software seguro
- Boas práticas de desenvolvimento de software
- Style Guides, nomeadamente o Java Style Guide da Google
- Melhores práticas para comentar código fonte
- Javadoc
Prática:
- Exercícios sobre a componente teórica.
- Projeto de desenvolvimento 1 (PD1)
- Projeto de desenvolvimento 2 (PD2)
Reuniões:
Reunião com os vários grupos de trabalho.
Teórica:
- RGPD (Regulamento Geral de Proteção de Dados) - visão técnica, e suas consequências para a Engenharia de Segurança e Desenvolvimento de Software.
Prática:
- Exercícios sobre a componente teórica.
- Projeto de desenvolvimento 2 (PD2)
Teórica:
Segurança de software:
- Vulnerabilidade de Buffer overflow
- Vulnerabilidade de inteiros
Prática:
- Exercícios sobre a componente teórica.
- Projeto de desenvolvimento 2 (PD2)
Reuniões:
Reunião com os vários grupos de trabalho.
Teórica:
Segurança de software:
- Validação de input
Prática:
- Exercícios sobre a componente teórica.
- Projeto de desenvolvimento 2 (PD2)
Reuniões:
Reunião com os vários grupos de trabalho.
Teórica:
Segurança de software:
- Ferramentas e documentação OWASP
Prática:
- Projeto de desenvolvimento 2 (PD2)
Reuniões:
Reunião com os vários grupos de trabalho.