◇ OpenCyber Academy
Curso rápido · Capítulo 3 · Português

Capítulo 3 — Criptografia e serviços de confiança: sistemas, dados e dependências

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 3 — Criptografia e serviços de confiança: sistemas, dados e dependências

Mapa da aula

Aula 03 publicada. Mapa, exemplo, EX027.

flowchart TD
  N0["3.1 Os sistemas e sua criptografia"]
  N1["3.2 Como as senhas devem ser armazenadas"]
  N2["Laboratório — Armazenamento de senhas com salt"]
  N3["3.3 Dependendo de fornecedores"]
  N4["3.4 Por que as coisas expiram"]
  N5["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5
  N5 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX027"]

Desenho lógico

flowchart LR
  N0["3.1 Os sistemas e sua criptografia"]
  N1["3.2 Como as senhas devem ser armazenadas"]
  N2["Laboratório — Armazenamento de senhas com salt"]
  N3["3.3 Dependendo de fornecedores"]
  N4["3.4 Por que as coisas expiram"]
  N5["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX027"]
[3.1 Os sistemas e sua criptografia]
    |
    v
[3.2 Como as senhas devem ser armazenadas]
    |
    v
[Laboratório — Armazenamento de senhas com salt]
    |
    v
[3.3 Dependendo de fornecedores]
    |
    v
[3.4 Por que as coisas expiram]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX027]

Objetivos de aprendizagem

Você vai (1) listar os sistemas da biblioteca e onde a criptografia é usada; (2) explicar como as senhas devem ser armazenadas; (3) reconhecer as dependências de fornecedores externos; (4) entender por que chaves e certificados expiram.

3.1 Os sistemas e sua criptografia

Com Inês, Leo lista os sistemas da biblioteca. O site usa TLS para que as conexões dos visitantes sejam privadas. O sistema de contas de e-books armazena as senhas dos associados e é operado por um fornecedor externo. Os notebooks da equipe usam a cifração de disco embutida, então um notebook roubado não expõe os arquivos. O Wi-Fi público usa uma senha compartilhada, que mantém afastados os vizinhos ocasionais, mas não protege os usuários uns dos outros. A plataforma do boletim assina os e-mails enviados para que os destinatários possam saber que eles vêm mesmo da biblioteca. Leo se surpreende com quantos lugares usam criptografia silenciosamente, sem que ninguém na biblioteca pense nisso.

3.2 Como as senhas devem ser armazenadas

Leo pergunta como um site se lembra da sua senha. Inês explica que um bom sistema nunca armazena a própria senha. Ele armazena o resultado de uma função de hashing de senhas lenta e com salt, como o scrypt, descrito na RFC 7914, ou o Argon2id, descrito na RFC 9106. O salt é um valor aleatório por usuário, então dois associados com a mesma senha recebem resultados armazenados diferentes. Quando você faz login, o sistema repete o cálculo e compara. Se ladrões roubarem o banco de dados, o hashing lento torna caro adivinhar. O laboratório abaixo mostra o armazenamento com salt sobre contas sintéticas usando a biblioteca padrão do Python.

Laboratório — Armazenamento de senhas com salt

# Salted scrypt storage for synthetic members. Teaching only; real systems use maintained libraries.
import hashlib, hmac, secrets
P = dict(n=2**14, r=8, p=1, dklen=32)
def store(pw):
    s = secrets.token_bytes(16); return s, hashlib.scrypt(pw, salt=s, **P)
def check(pw, rec): return hmac.compare_digest(hashlib.scrypt(pw, salt=rec[0], **P), rec[1])
m1, m2 = store(b"ReadMore2026"), store(b"ReadMore2026")
print("same password, same stored value?", m1[1] == m2[1])
print("member 1 right password:", check(b"ReadMore2026", m1))
print("member 2 right password:", check(b"ReadMore2026", m2))
print("member 1 wrong password:", check(b"ReadLess2026", m1))

Execute com python3 lab_salted.py. Saída verificada:

same password, same stored value? False
member 1 right password: True
member 2 right password: True
member 1 wrong password: False

3.3 Dependendo de fornecedores

Muitas das proteções da biblioteca são operadas por outros. O fornecedor de e-books armazena os hashes das senhas dos associados; a plataforma do boletim guarda a chave de assinatura dos e-mails; o provedor de hospedagem renova o certificado do site. A biblioteca não pode mudar essas configurações diretamente, mas depende delas. Inês mostra a Leo como conferir o que o fornecedor promete, por exemplo na sua página de segurança ou no contrato, e a quem contatar se algo der errado. Conhecer a lista de dependências significa que, quando um fornecedor anuncia um problema, a biblioteca sabe na hora se os associados foram afetados e o que dizer a eles.

3.4 Por que as coisas expiram

Os certificados e algumas chaves têm data de validade. Um certificado que expira faz os navegadores mostrarem avisos, o que aconteceu com o site da biblioteca no ano passado, quando a renovação automática do provedor de hospedagem falhou silenciosamente. A expiração existe para que uma chave não possa ser usada para sempre caso tenha sido roubada sem que ninguém percebesse, e para que as configurações sejam atualizadas. Inês agora mantém um calendário simples de datas de expiração com lembretes um mês antes, mesmo para itens que os fornecedores renovam automaticamente. Leo aprende que a criptografia não é algo que se configura e se esquece: alguém precisa vigiar datas, renovações e fornecedores, ou a própria proteção pode causar uma indisponibilidade.

Exemplo resolvido

Leo monta uma tabela de cinco linhas com os sistemas da biblioteca, seu uso de criptografia e quem os controla, executa o laboratório de armazenamento com salt e acrescenta o certificado do site ao calendário de expiração.

Caso sintético. Os sistemas, os fornecedores e a indisponibilidade passada são sintéticos; a RFC 7914 e a RFC 9106 são reais.

Erros e limites

Uma senha de Wi-Fi compartilhada dá proteção limitada entre os usuários. As promessas dos fornecedores ainda precisam ser conferidas ao longo do tempo.

Exercícios

Síntese

Pequenas organizações dependem da criptografia em muitos sistemas e fornecedores, então precisam saber onde ela é usada e vigiar senhas, chaves e datas de expiração.

Continue estudando — aula 03 (capítulo 03 de 04)

← Capítulo 02 · Índice das aulas · Capítulo 04 →

Continue para a próxima aula já escrita.