O Que É uma Chave Privada? Explicado
Uma chave privada é a metade secreta de um par de chaves criptográficas, usada para assinar dados ou descriptografar mensagens, e nunca deve ser compartilhada.
Uma chave privada é a coisa mais sensível na criptografia de chave pública. É o segredo que prova sua identidade: pode assinar dados que o mundo verifica com sua chave pública, e pode descriptografar mensagens criptografadas para você. Se uma chave privada vaza, a segurança que ela fornece desmorona - por isso lidar corretamente com chaves privadas é uma preocupação central de segurança no CI.
O que é uma chave privada
Uma chave privada é uma metade de um par de chaves, matematicamente vinculada a uma chave pública. Ela é mantida em segredo por seu dono. O que a chave privada assina, a chave pública verifica; o que a chave pública criptografa, apenas a chave privada pode descriptografar. Sua segurança depende inteiramente de permanecer secreta.
O que uma chave privada faz
Duas tarefas principais: assinatura e descriptografia. Assinar com uma chave privada produz uma assinatura digital que qualquer um pode verificar, provando a autoria. Descriptografar com uma chave privada abre mensagens criptografadas para a chave pública correspondente. Ambas dependem de a chave permanecer exclusivamente nas mãos do dono.
Por que nunca deve vazar
Uma chave privada vazada permite que qualquer um se passe por seu dono - assinando artifacts fraudulentos, autenticando-se como você ou descriptografando seu tráfego. Chaves vazadas estão entre os incidentes de segurança mais danosos no CI, por isso chaves são armazenadas como secrets e, idealmente, nunca escritas em disco por mais tempo do que o necessário.
Chaves privadas no CI
Quando um pipeline precisa usar uma chave privada - para assinar um release ou autenticar como um GitHub App - ela vive como um secret mascarado e é materializada apenas para o passo que a necessita. A melhor prática moderna é evitar chaves privadas de longa duração por completo, usando credenciais OIDC de curta duração ou assinatura sem chave no lugar.
# Use a private key only for the step that needs it
steps:
- run: |
printf "%s" "${{ secrets.SIGNING_KEY }}" > k.pem
cosign sign-blob --key k.pem artifact.tar.gz
rm -f k.pemNota Latchkey
Chaves privadas usadas nos runners Latchkey são secrets mascarados, e o isolamento de runner significa que cada job roda em um ambiente novo que é destruído depois - então uma chave escrita em disco não persiste em jobs posteriores e não relacionados.
Principais conclusões
- Uma chave privada é a metade secreta de um par de chaves usada para assinar dados e descriptografar mensagens.
- Ela nunca deve ser compartilhada; uma chave privada vazada permite que atacantes se passem por seu dono.
- O CI armazena chaves privadas como secrets mascarados, as materializa apenas quando necessário e prefere OIDC de curta duração quando possível.