Mapa da aula
Aula 03 publicada. Mapa, exemplo, EX007.
flowchart TD
N0["3.1 Bibliotecas e versões"]
N1["3.2 Certificados e repositórios de confiança"]
N2["3.3 Manuseando chaves"]
N3["3.4 Caso resolvido"]
N4["3.5 Atividade prática"]
N5["3.7 Contas de serviço e permissões"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX007"]
Desenho lógico
flowchart LR
N0["3.1 Bibliotecas e versões"]
N1["3.2 Certificados e repositórios de confiança"]
N2["3.3 Manuseando chaves"]
N3["3.4 Caso resolvido"]
N4["3.5 Atividade prática"]
N5["3.7 Contas de serviço e permissões"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX007"]
[3.1 Bibliotecas e versões]
|
v
[3.2 Certificados e repositórios de confiança]
|
v
[3.3 Manuseando chaves]
|
v
[3.4 Caso resolvido]
|
v
[3.5 Atividade prática]
|
v
[3.7 Contas de serviço e permissões]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX007]
Objetivos de aprendizagem
Você vai (1) descobrir quais bibliotecas criptográficas um sistema usa; (2) verificar as versões que importam para o suporte pós-quântico; (3) explicar como funcionam os certificados e os repositórios de confiança num servidor; e (4) manusear chaves com segurança.
3.1 Bibliotecas e versões
A maioria dos serviços Linux usa o OpenSSL; o OpenSSL 3.5 acrescentou ML-KEM, ML-DSA e SLH-DSA e oferece X25519MLKEM768 por padrão no TLS (OpenSSL 3.5 NEWS). Verifique com openssl version. Os contêineres carregam as suas próprias bibliotecas, então verifique dentro deles também. Aplicações escritas em Go ou Java usam as suas próprias pilhas TLS; registre a versão do runtime. A versão do OpenSSH é mostrada por ssh -V.
Registre cada versão encontrada com a data e o comando usado. Anote os contêineres separadamente.
3.2 Certificados e repositórios de confiança
Um certificado de servidor é assinado por uma autoridade certificadora (AC). Os clientes confiam em certificados que se encadeiam até uma raiz no seu repositório de confiança. O sistema operacional tem um repositório de confiança; o Java e algumas aplicações têm o seu próprio. Os certificados pós-quânticos vão exigir que novas raízes sejam acrescentadas a todos os repositórios de confiança relevantes antes que os servidores os usem.
No HHG, o runtime Java do servidor do PMS tem o seu próprio repositório de confiança, então uma nova raiz precisaria ser acrescentada ali, além do sistema operacional. Liste todos os repositórios de confiança de um servidor antes de qualquer mudança de certificado e registre quem pode atualizar cada um.
3.3 Manuseando chaves
As chaves privadas devem ficar em arquivos protegidos, legíveis apenas pela conta de serviço, ou, melhor ainda, em módulos de hardware ou serviços de gerenciamento de chaves. Nunca cole chaves em tickets, chats ou logs. Se você encontrar uma chave privada exposta, pare e comunique pelo processo da sua organização; não a copie nem a teste.
Ao diagnosticar problemas, verifique permissões e caminhos em vez de ler o conteúdo das chaves. Se uma tarefa parecer exigir a própria chave, pare e pergunte ao seu supervisor, já que isso costuma ser sinal de que a tarefa foi mal formulada. Registre na sua evidência que as chaves não foram copiadas.
3.4 Caso resolvido
O operador verifica o servidor de troca de arquivos do HHG: openssl version mostra 3.0.x (sem ML-KEM); ssh -V mostra uma versão do OpenSSH anterior à que introduziu mlkem768x25519-sha256. Conclusão: são necessárias atualizações tanto do TLS quanto do SSH antes que a troca de chaves híbrida seja possível. O servidor do PMS roda uma aplicação Java com a sua própria pilha TLS; a versão do runtime entra no inventário para que o fornecedor confirme o suporte.
Anote a evidência por trás de cada conclusão: a saída dos comandos no servidor de troca de arquivos e a versão do runtime no servidor do PMS. O item do Java não pode ser resolvido apenas pelas operações do HHG, então vira uma pergunta ao fornecedor, com data.
3.5 Atividade prática
Numa VM de laboratório, registre as versões do OpenSSL e do OpenSSH, liste os repositórios de confiança presentes e verifique as permissões de um arquivo de chave privada de teste.
Escreva cada resultado com o comando e a sua saída, e anote quais versões suportam algoritmos pós-quânticos. Verifique as permissões com ls -l e confirme que apenas a conta de serviço consegue ler o arquivo da chave. Se houver um contêiner em execução, verifique dentro dele também. Não abra nem copie o arquivo da chave. Compare as suas constatações com o servidor de troca de arquivos do caso resolvido e diga quais atualizações a sua VM precisaria.
3.6 Erros comuns e limites
- Verificar o host e esquecer os contêineres.
- Acrescentar raízes apenas ao repositório do sistema operacional.
- Copiar chaves durante o diagnóstico.
Cada erro deixa uma lacuna. Os contêineres carregam as suas próprias bibliotecas, então uma atualização do host pode deixar o próprio serviço inalterado. Acrescentar uma nova raiz apenas ao repositório do sistema operacional quebra aplicações como o PMS do HHG, baseado em Java, que usam o seu próprio repositório. Copiar chaves durante o diagnóstico cria cópias que precisam ser encontradas e destruídas, e pode contar como incidente de segurança. Confira as suas anotações em relação a cada um antes de encerrar uma tarefa.
3.7 Contas de serviço e permissões
Os serviços devem rodar sob as suas próprias contas, com acesso apenas às suas próprias chaves e configuração. Quando você atualizar uma biblioteca para obter suporte pós-quântico, verifique se a atualização não redefiniu o dono ou as permissões dos arquivos de chave — os scripts dos pacotes às vezes fazem isso. Um ls -l rápido no diretório das chaves antes e depois da mudança, salvo com a sua evidência, mostra que nada foi afrouxado.
Guarde as listagens de antes e depois com o ticket de mudança. Se as permissões mudaram, restaure-as antes de fechar o ticket.
Exercícios
- EX007 — Verificação de versões. Liste três comandos para estabelecer a prontidão pós-quântica do TLS e do SSH de um servidor Linux. Rubrica: 3 =
openssl version,ssh -V, verificação de contêiner/runtime. - EX008 — Repositórios de confiança. Nomeie três repositórios de confiança que podem precisar de uma nova raiz. Rubrica: 3 = sistema operacional, Java, pacote da aplicação/contêiner.
- EX009 — Chave encontrada. O que você faz se encontrar uma chave privada numa pasta compartilhada? Rubrica: 3 = parar, não copiar, comunicar pelo processo, documentar.
Síntese
As versões das bibliotecas e dos runtimes determinam se os serviços podem usar algoritmos pós-quânticos; os certificados dependem de repositórios de confiança que precisam ser atualizados primeiro; as chaves são manuseadas com cuidado rigoroso.