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
-
EX033 — Conferência da impressão digital. Que comando imprime a impressão digital de uma chave pública SSH para comparação? Rubrica: 3 = ssh-keygen -l -f arquivo_da_chave;; 2 = nomeia o ssh-keygen;; 1 = nomeia o openssl;; 0 = nenhuma.
-
EX034 — Intermediário ausente. O que unable to get local issuer certificate normalmente significa? Rubrica: 3 = o servidor não enviou seu certificado intermediário;; 2 = problema de cadeia;; 1 = expirado;; 0 = nenhuma.
-
EX035 — Silenciar erros. Um fórum sugere acrescentar uma opção que pula a verificação. Por que recusar? Rubrica: 3 = o erro é um achado; pulá-lo o esconde e permite a interceptação;; 2 = esconde o problema;; 1 = aceitar;; 0 = nenhuma.
-
EX036 — Política de colagem. Qual item pode ir para um decodificador público, um certificado ou uma chave privada? Rubrica: 3 = um certificado público de um endpoint público, nunca uma chave privada;; 2 = certificado;; 1 = chave privada;; 0 = nenhuma.
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.