◇ OpenCyber Academy
Técnico · Capítulo 4 · Português

Capítulo 4 — Scripts e formatos de dados

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 4 — Scripts e formatos de dados

Mapa da aula

Aula 04 publicada. Mapa, exemplo, EX013.

flowchart TD
  N0["4.1 Codificação, hash, cifração"]
  N1["4.2 Manifestos de integridade"]
  N2["Laboratório — Verificação de manifesto SHA-256"]
  N3["4.3 Ler arquivos PEM"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX013"]

Desenho lógico

flowchart LR
  N0["4.1 Codificação, hash, cifração"]
  N1["4.2 Manifestos de integridade"]
  N2["Laboratório — Verificação de manifesto SHA-256"]
  N3["4.3 Ler arquivos PEM"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX013"]
[4.1 Codificação, hash, cifração]
    |
    v
[4.2 Manifestos de integridade]
    |
    v
[Laboratório — Verificação de manifesto SHA-256]
    |
    v
[4.3 Ler arquivos PEM]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX013]

Objetivos de aprendizagem

Você vai (1) distinguir codificação, hash e cifração nos dados que encontra no dia a dia; (2) construir um manifesto de integridade SHA-256 com Python; (3) ler PEM e Base64 com segurança.

4.1 Codificação, hash, cifração

Tomás vê com frequência cadeias longas nos arquivos de configuração e precisa distingui-las. Base64 e hexadecimal são codificações: mudam a representação, e qualquer um pode revertê-las sem chave. Um hash como o SHA-256, especificado no FIPS 180-4, mapeia qualquer entrada num resumo fixo de 32 bytes e não pode ser revertido, mas qualquer um pode calculá-lo, então ele só prova integridade quando o próprio resumo esperado é confiável. A cifração precisa de uma chave para ser revertida. Certa vez, um colega chamou de cifrada uma senha em Base64; Tomás hoje explica que decodificá-la leva um comando e nenhum segredo.

4.2 Manifestos de integridade

Os arquivos noturnos dos parceiros chegam por SFTP, e de vez em quando uma transferência truncada passa despercebida. Priya sugere um manifesto: o remetente lista cada nome de arquivo com seu resumo SHA-256, e o destinatário recalcula e compara. Tomás escreve um pequeno script que faz isso sobre dados sintéticos. Um manifesto detecta de forma confiável a corrupção acidental. Contra um atacante capaz de alterar tanto o arquivo quanto o manifesto, ele não prova nada, então em produção o próprio manifesto precisa ser assinado ou entregue por um canal autenticado. O laboratório abaixo mostra tanto o caso de sucesso quanto uma alteração detectada.

Laboratório — Verificação de manifesto SHA-256

# Synthetic SHA-256 manifest check (FIPS 180-4 via hashlib). Teaching only.
import hashlib
files = {"routes_mon.csv": b"depot,route\nN1,12\nN2,7\n",
         "routes_tue.csv": b"depot,route\nN1,13\nN2,7\n"}
manifest = {n: hashlib.sha256(d).hexdigest() for n, d in files.items()}
files["routes_tue.csv"] = b"depot,route\nN1,18\nN2,7\n"   # simulated change in transit
for name, data in files.items():
    ok = hashlib.sha256(data).hexdigest() == manifest[name]
    print(f"{name}: {'OK' if ok else 'CHANGED'} {manifest[name][:16]}...")

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

routes_mon.csv: OK 71e12cbcb1238386...
routes_tue.csv: CHANGED 03db2f9cd00a57f9...

4.3 Ler arquivos PEM

Certificados e chaves normalmente chegam em PEM: texto em Base64 entre linhas BEGIN e END. Tomás aprende a olhar o cabeçalho antes de qualquer outra coisa. BEGIN CERTIFICATE é público e pode ser compartilhado; BEGIN PRIVATE KEY ou BEGIN RSA PRIVATE KEY é secreto e nunca pode ser colado num chamado, num chat ou num decodificador online. Quando precisa inspecionar um certificado, ele usa ferramentas locais, e não sites. Decodificar o PEM mostra os bytes DER, que ferramentas como openssl x509 -text transformam em campos legíveis, como titular, emissor e datas de validade.

Exemplo resolvido

Tomás executa o laboratório do manifesto, vê um arquivo de parceiro sinalizado como alterado e explica a Priya por que seria necessário um manifesto assinado contra um atacante deliberado.

Caso sintético. Os nomes e os conteúdos dos arquivos no laboratório são sintéticos.

Erros e limites

Manifestos de hash não autenticam o remetente. Manifestos com SHA-1 e MD5 estão obsoletos para fins de segurança; use SHA-256 ou mais forte.

Exercícios

Síntese

Saber se os dados estão codificados, passaram por hash ou estão cifrados diz a um técnico o que eles podem provar e quem pode revertê-los.

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

← Capítulo 03 · Índice das aulas · Capítulo 05 →

Continue para a próxima aula já escrita.