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

Capítulo 9 — Criptografia e serviços de confiança: ferramentas e métodos

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 9 — Criptografia e serviços de confiança: ferramentas e métodos

Mapa da aula

Aula 09 publicada. Mapa, exemplo, EX033.

flowchart TD
  N0["9.1 O kit básico"]
  N1["9.2 Ler um teste de handshake"]
  N2["9.3 Ferramentas que vazam"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX033"]

Desenho lógico

flowchart LR
  N0["9.1 O kit básico"]
  N1["9.2 Ler um teste de handshake"]
  N2["9.3 Ferramentas que vazam"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3 --> Q["EX033"]
[9.1 O kit básico]
    |
    v
[9.2 Ler um teste de handshake]
    |
    v
[9.3 Ferramentas que vazam]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX033]

Objetivos de aprendizagem

Você vai (1) usar o openssl, o ssh-keygen e o módulo ssl do Python com segurança para inspeção; (2) ler um teste de handshake; (3) evitar ferramentas que vazam dados para terceiros.

9.1 O kit básico

O kit de ferramentas de Tomás é pequeno. O openssl s_client se conecta a um servidor e imprime o protocolo negociado, a suíte de cifras e a cadeia de certificados. O openssl x509 -noout -text lê um arquivo de certificado. O ssh-keygen -l -f imprime a impressão digital de uma chave pública SSH para que possa ser comparada com um valor registrado. O módulo ssl do Python pode abrir uma conexão verificada e informar a versão do protocolo em poucas linhas. Cada ferramenta lê informações públicas ou arquivos locais; nenhuma precisa de chaves privadas. Priya insiste em que ele entenda cada opção que usa, porque comandos copiados de fóruns muitas vezes incluem opções que desativam a verificação.

9.2 Ler um teste de handshake

Tomás executa o s_client contra o portal de homologação no laboratório e lê a saída de cima para baixo. Ele confere a linha do protocolo, que deve dizer TLSv1.3 ou TLSv1.2; o resultado da verificação, que deve ser 0 (ok); o titular e os nomes alternativos do certificado; e a data notAfter. Um resultado como unable to get local issuer certificate significa que o servidor não enviou seu intermediário. Ele registra o comando e a saída como evidência. Ele aprende que um erro de verificação num teste é um achado a relatar, e nunca algo a silenciar com uma opção que pula as verificações.

9.3 Ferramentas que vazam

Decodificadores de certificados online, sites de colagem de texto e scanners públicos são convenientes, mas enviam os dados a um terceiro. Colar um certificado é de baixo risco, porque ele é público; colar uma chave privada, uma configuração com segredos ou uma lista de nomes de hosts internos não é. Os serviços públicos de varredura também registram resultados que outros podem pesquisar. A regra de Tomás é usar ferramentas locais para tudo o que é interno e usar serviços públicos apenas para endpoints públicos, com aprovação. Ele também confere que seus próprios scripts nunca imprimam segredos no terminal, porque o histórico do terminal e o compartilhamento de tela vazam.

Exemplo resolvido

Tomás testa o portal de homologação com o s_client, encontra um intermediário ausente, registra a evidência localmente e recusa a sugestão de um colega de colar a chave do servidor num decodificador web.

Caso sintético. Os hosts e as saídas descritos são sintéticos.

Erros e limites

A saída das ferramentas varia entre versões; registre as versões junto com as evidências. Um teste bem-sucedido a partir de uma rede não diz nada sobre clientes em outros lugares.

Exercícios

Síntese

As ferramentas de inspeção são seguras quando leem apenas dados públicos, mantêm a verificação ligada e ficam locais para o material interno.

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

← Capítulo 08 · Índice das aulas · Capítulo 10 →

Continue para a próxima aula já escrita.