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
-
EX027 — Propósito da cifração dos notebooks. Contra o que a cifração de disco dos notebooks protege? Rubrica: 3 = um notebook roubado expondo seus arquivos;; 2 = roubo;; 1 = ataques de rede;; 0 = nenhuma.
-
EX028 — Limite do Wi-Fi compartilhado. O que a senha compartilhada do Wi-Fi não faz? Rubrica: 3 = proteger os usuários da rede uns dos outros;; 2 = limite;; 1 = protege tudo;; 0 = nenhuma.
-
EX029 — Assinatura do boletim. Por que a plataforma do boletim assina os e-mails? Rubrica: 3 = para que os destinatários possam saber que o e-mail vem mesmo da biblioteca;; 2 = autenticidade;; 1 = sigilo;; 0 = nenhuma.
-
EX030 — Nunca armazenada. O que um bom sistema de login nunca deve armazenar? Rubrica: 3 = a própria senha;; 2 = senha;; 1 = o hash;; 0 = nenhuma.
-
EX031 — Significado de salt. O que é um salt no armazenamento de senhas? Rubrica: 3 = um valor aleatório por usuário para que senhas iguais deem resultados diferentes;; 2 = valor aleatório;; 1 = chave secreta;; 0 = nenhuma.
-
EX032 — Resultado do laboratório. No laboratório com salt, dois associados com a mesma senha receberam o mesmo valor armazenado? Rubrica: 3 = não, diferiram; os dois foram verificados com a senha certa;; 2 = não;; 1 = sim;; 0 = nenhuma.
-
EX033 — Valor do hashing lento. Por que o hashing lento é útil se um banco de dados for roubado? Rubrica: 3 = torna cada palpite caro para os ladrões;; 2 = caro;; 1 = mais rápido;; 0 = nenhuma.
-
EX034 — Chave do fornecedor. Quem guarda a chave de assinatura dos e-mails? Rubrica: 3 = a plataforma do boletim;; 2 = plataforma;; 1 = biblioteca;; 0 = nenhuma.
-
EX035 — Conferindo um fornecedor. Onde a biblioteca pode conferir as promessas de um fornecedor? Rubrica: 3 = na sua página de segurança ou no contrato;; 2 = um lugar;; 1 = em lugar nenhum;; 0 = nenhuma.
-
EX036 — Causa da indisponibilidade passada. Por que o site da biblioteca mostrou avisos no ano passado? Rubrica: 3 = a renovação automática do provedor falhou silenciosamente e o certificado expirou;; 2 = expirou;; 1 = invadido;; 0 = nenhuma.
-
EX037 — Propósito da expiração. Dê um motivo pelo qual os certificados expiram. Rubrica: 3 = limita o uso de uma chave roubada ou força a atualização das configurações;; 2 = um;; 1 = vago;; 0 = nenhuma.
-
EX038 — Lembretes do calendário. Com quanta antecedência Inês configura os lembretes de expiração? Rubrica: 3 = um mês;; 2 = mês;; 1 = vago;; 0 = nenhuma.
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.