Ficha 02 · Autenticação, secrets, dependências
- Hashear senhas correctamente
- Configurar MFA
- Gerir secrets
- Auditar dependências
Parte I · Autenticação
Exercício 1 · Hashing (15 pts)
Para cada algoritmo, indica se é adequado para senhas em 2026 e porquê:
a) MD5 ___
b) SHA-256 ___
c) bcrypt ___
d) Argon2 ___
e) SHA-1 com salt ___
Exercício 2 · Implementar (15 pts)
Escreve as funções Python para:
a) Hashear senha com bcrypt no registo.
b) Verificar senha no login.
Exercício 3 · Sessão segura (15 pts)
Configura cookies de sessão Flask com flags adequadas e explica cada uma:
Parte II · MFA
Exercício 4 · TOTP (15 pts)
Escreve código Python que:
a) Gera novo secret para utilizador.
b) Devolve URL/QR para Google Authenticator.
c) Verifica código introduzido.
Parte III · Secrets
Exercício 5 · .env (10 pts)
A Joana comitou por engano o ficheiro .env com DATABASE_PASSWORD=Secreta123! para o repositório público.
a) Que acções imediatas tomar? (5 pts)
b) Como prevenir no futuro? (5 pts)
Exercício 6 · Variáveis de ambiente (10 pts)
Escreve código que lê configuração de variáveis de ambiente com defaults seguros:
Parte IV · Dependências
Exercício 7 · Auditar (20 pts)
A escola tem várias apps Python e quer estabelecer rotina de auditoria de dependências.
a) Que ferramentas usar? (5 pts)
b) Com que frequência rever? (5 pts)
c) Como integrar no fluxo de CI/CD? (5 pts)
d) Que fazer ao descobrir CVE crítico numa dependência? (5 pts)