wiki:linux:comandos_grupos:cmd_criptografia
Table of Contents
Nível Básico
1. Criptografia Simples de Arquivos com `gpg`
- gpg -c - Criptografa um arquivo com uma chave simétrica.
- Exemplo de uso:
gpg -c arquivo.txt - Descrição: Criptografa o arquivo
arquivo.txtusando uma senha. O arquivo criptografado será salvo comoarquivo.txt.gpg.
2. Descriptografia de Arquivos com `gpg`
- gpg - Descriptografa um arquivo criptografado.
- Exemplo de uso:
gpg arquivo.txt.gpg
- Descrição: Descriptografa o arquivo
arquivo.txt.gpge o restaura ao seu estado original, pedindo a senha de criptografia.
3. Geração de Checksums com `sha256sum`
- sha256sum - Gera um hash SHA-256 de um arquivo.
- Exemplo de uso:
sha256sum arquivo.txt
- Descrição: Calcula o hash SHA-256 do arquivo
arquivo.txt, útil para verificar a integridade do arquivo mais tarde.
4. Verificação de Checksums com `sha256sum`
- sha256sum -c - Verifica a integridade de um arquivo comparando o hash.
- Exemplo de uso:
sha256sum -c checksum.txt - Descrição: Verifica se o arquivo listado no
checksum.txtestá intacto comparando o hash calculado com o valor armazenado no arquivo.
Nível Intermediário
1. Geração de Chaves Assimétricas com `gpg`
- gpg –gen-key - Gera um par de chaves pública e privada.
- Exemplo de uso:
gpg --gen-key - Descrição: Cria um par de chaves (pública e privada) para criptografia e assinaturas digitais. O processo inclui a configuração do nome, e-mail e validade da chave.
2. Exportação de Chave Pública com `gpg`
- gpg –export -a - Exporta a chave pública em formato ASCII.
- Exemplo de uso:
gpg --export -a "usuario" > chave_publica.asc
- Descrição: Exporta a chave pública do usuário
usuarioe salva no arquivochave_publica.asc, que pode ser compartilhado com outras pessoas para criptografar mensagens enviadas a você.
3. Importação de Chave Pública com `gpg`
- gpg –import - Importa uma chave pública.
- Exemplo de uso:
gpg --import chave_publica.asc - Descrição: Importa a chave pública contida no arquivo
chave_publica.ascpara seu keyring, permitindo criptografar mensagens ou verificar assinaturas feitas pelo proprietário da chave.
4. Assinatura Digital de Arquivos com `gpg`
- gpg –sign - Assina digitalmente um arquivo.
- Exemplo de uso:
gpg --sign arquivo.txt - Descrição: Cria uma assinatura digital para o arquivo
arquivo.txt, garantindo sua autenticidade e integridade. O arquivo assinado será salvo comoarquivo.txt.gpg.
5. Verificação de Assinatura Digital com `gpg`
- gpg –verify - Verifica uma assinatura digital.
- Exemplo de uso:
gpg --verify arquivo.txt.gpg - Descrição: Verifica a autenticidade do arquivo assinado digitalmente e informa se a assinatura é válida, garantindo que o arquivo não foi alterado desde que foi assinado.
Nível Avançado
1. Criptografia de Arquivos Usando Chave Pública com `gpg`
- gpg -e - Criptografa um arquivo usando a chave pública de outro usuário.
- Exemplo de uso:
gpg -e -r "usuario" arquivo.txt
- Descrição: Criptografa o arquivo
arquivo.txtusando a chave pública do usuário especificado (usuario). Apenas o dono da chave privada correspondente poderá descriptografar o arquivo.
2. Descriptografia de Arquivos Criptografados com Chave Pública com `gpg`
- gpg -d - Descriptografa um arquivo criptografado com chave pública.
- Exemplo de uso:
gpg -d arquivo.txt.gpg - Descrição: Descriptografa o arquivo
arquivo.txt.gpgque foi criptografado usando sua chave pública. Será necessário fornecer sua chave privada para acessar o conteúdo.
3. Revogação de Chaves com `gpg`
- gpg –gen-revoke - Gera um certificado de revogação para uma chave.
- Exemplo de uso:
gpg --gen-revoke usuario > revogacao.asc
- Descrição: Cria um certificado de revogação para o par de chaves de
usuario. Isso permite desativar a chave em caso de comprometimento. O certificado pode ser usado posteriormente para revogar a chave.
4. Gerenciamento de Chaves com `gpg --edit-key`
- gpg –edit-key - Edita atributos de uma chave existente.
- Exemplo de uso:
gpg --edit-key usuario - Descrição: Permite editar atributos de uma chave, como adicionar subchaves, alterar a validade ou definir um novo endereço de e-mail associado. O comando também permite assinar chaves de outros usuários.
5. Criação e Gerenciamento de Subchaves com `gpg`
- gpg –quick-add-key - Cria uma subchave para assinaturas ou criptografia.
- Exemplo de uso:
gpg --quick-add-key usuario rsa4096 sign - Descrição: Cria uma subchave adicional para o usuário, usando criptografia RSA de 4096 bits. Isso permite usar chaves diferentes para assinatura e criptografia, aumentando a segurança.
6. Publicação de Chaves em Servidores de Chaves Públicas com `gpg`
- gpg –send-keys - Envia uma chave pública para um servidor de chaves.
- Exemplo de uso:
gpg --send-keys "usuario" --keyserver hkp://keyserver.ubuntu.com
- Descrição: Publica a chave pública de
usuarioem um servidor de chaves públicas, como okeyserver.ubuntu.com, facilitando a troca de chaves com outros usuários.
7. Atualização de Chaves de um Servidor de Chaves com `gpg`
- gpg –recv-keys - Atualiza ou baixa chaves públicas de um servidor de chaves.
- Exemplo de uso:
gpg --recv-keys chave_id --keyserver hkp://keyserver.ubuntu.com
- Descrição: Baixa ou atualiza a chave pública identificada por
chave_idde um servidor de chaves públicas, garantindo que você tenha a versão mais recente da chave.
Nível Especializado
1. Criptografia de Disco Completo com `LUKS`
- cryptsetup luksFormat - Inicializa um disco para criptografia com LUKS.
- Exemplo de uso:
sudo cryptsetup luksFormat /dev/sda1
- Descrição: Criptografa a partição
/dev/sda1usando o padrão de criptografia LUKS. Isso requer uma senha para acessar os dados, protegendo o disco contra acessos não autorizados.
- cryptsetup luksOpen - Monta e desbloqueia um disco criptografado com LUKS.
- Exemplo de uso:
sudo cryptsetup luksOpen /dev/sda1 meu_disco
- Descrição: Desbloqueia e monta a partição criptografada
/dev/sda1, tornando-a acessível pelo nomemeu_disco. Isso permite trabalhar com o disco como se fosse uma partição comum.
2. Gerenciamento de Múltiplas Chaves em Volumes LUKS
- cryptsetup luksAddKey - Adiciona uma chave adicional a um disco LUKS.
- Exemplo de uso:
sudo cryptsetup luksAddKey /dev/sda1 /caminho/chave_adicional
- Descrição: Adiciona uma nova chave ao disco criptografado, permitindo que o volume seja desbloqueado com mais de uma senha ou chave.
- cryptsetup luksRemoveKey - Remove uma chave de um volume LUKS.
- Exemplo de uso:
sudo cryptsetup luksRemoveKey /dev/sda1
- Descrição: Remove uma das chaves ou senhas de um volume criptografado, garantindo que apenas as chaves restantes possam ser usadas para desbloqueá-lo.
3. Integração com HSM (Hardware Security Module)
- pkcs11-tool - Interage com módulos de segurança PKCS#11.
- Exemplo de uso:
pkcs11-tool --module /usr/lib/opensc-pkcs11.so --list-objects
- Descrição: Lista as chaves e certificados armazenados em um módulo de segurança HSM compatível com o padrão PKCS#11, permitindo a integração segura de hardware para o gerenciamento de chaves.
4. Certificados SSL com `openssl` para Servidores
- openssl req -x509 - Gera um certificado autoassinado para servidores.
- Exemplo de uso:
openssl req -x509 -newkey rsa:4096 -keyout chave_privada.pem -out certificado.pem -days 365
- Descrição: Gera um certificado SSL autoassinado e uma chave privada de 4096 bits para uso em um servidor, com validade de 365 dias. Esse certificado pode ser usado para criptografar conexões seguras em servidores web.
- openssl verify - Verifica a validade de um certificado SSL.
- Exemplo de uso:
openssl verify -CAfile ca_cert.pem servidor_cert.pem - Descrição: Verifica a cadeia de confiança de um certificado SSL, garantindo que ele foi assinado por uma autoridade certificadora válida.
5. Gerenciamento de Certificados com `certbot` (Let's Encrypt)
- certbot - Emite certificados SSL gratuitos.
- Exemplo de uso:
sudo certbot certonly --webroot -w /var/www/html -d exemplo.com
- Descrição: Obtém um certificado SSL gratuito da Let's Encrypt para o domínio
exemplo.com, validando a propriedade do domínio via arquivos hospedados no diretório web especificado.
- certbot renew - Renova automaticamente certificados SSL.
- Exemplo de uso:
sudo certbot renew - Descrição: Renova automaticamente todos os certificados emitidos via Let's Encrypt que estão próximos de expirar, garantindo que as conexões seguras permaneçam válidas.
6. Integração com OpenSSH para Autenticação com Chaves
- ssh-keygen - Gera um par de chaves para autenticação SSH.
- Exemplo de uso:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
- Descrição: Cria um par de chaves SSH RSA de 4096 bits para autenticação sem senha em servidores SSH. A chave pública pode ser colocada no arquivo
~/.ssh/authorized_keysdo servidor.
- ssh-copy-id - Copia a chave pública para o servidor remoto.
- Exemplo de uso:
ssh-copy-id usuario@servidor - Descrição: Copia a chave pública para o servidor remoto, permitindo login SSH sem senha. A chave será adicionada ao arquivo
authorized_keysdo servidor.
7. Gerenciamento de Chaves com `gpg-agent` e `SSH`
- gpg-agent - Usa o agente GPG para autenticação SSH.
- Exemplo de uso:
echo "enable-ssh-support" >> ~/.gnupg/gpg-agent.conf gpg-connect-agent reloadagent /bye
- Descrição: Habilita o suporte a SSH no
gpg-agent, permitindo usar chaves GPG para autenticação em servidores SSH, integrando criptografia e autenticação de forma segura.
8. Autenticação de Dois Fatores com `pam_google_authenticator`
- google-authenticator - Configura a autenticação de dois fatores (2FA).
- Exemplo de uso:
google-authenticator
- Descrição: Configura a autenticação de dois fatores para o usuário, gerando um código QR que pode ser escaneado com o aplicativo Google Authenticator. Isso adiciona uma camada extra de segurança para logins de sistemas críticos.
Network Security Services (NSS)
Nível Básico
1. Listar Certificados com `certutil`
- certutil -L - Lista todos os certificados em um banco de dados NSS.
- Exemplo de uso:
certutil -L -d /etc/pki/nssdb/
- Descrição: Lista todos os certificados armazenados no banco de dados NSS localizado em
/etc/pki/nssdb/, exibindo suas informações básicas.
2. Exibir Detalhes de um Certificado com `certutil`
- certutil -L -n “NomeCertificado” - Exibe detalhes de um certificado específico.
- Exemplo de uso:
certutil -L -n "MyCert" -d /etc/pki/nssdb/
- Descrição: Mostra detalhes do certificado chamado
MyCertno banco de dados NSS especificado, útil para verificar a validade e o emissor do certificado.
Nível Intermediário
1. Gerar um Par de Chaves com `certutil`
- certutil -G - Gera um par de chaves pública e privada.
- Exemplo de uso:
certutil -G -d /etc/pki/nssdb/ -n "ChaveServidor" -g 2048 -Z SHA256
- Descrição: Gera um par de chaves RSA de 2048 bits e armazena no banco de dados NSS, atribuindo o nome
ChaveServidore usando o algoritmo SHA-256 para o hash.
2. Verificação de Cadeia de Certificados com `certutil`
- certutil -V -u C - Verifica a cadeia de confiança de um certificado.
- Exemplo de uso:
certutil -V -n "MyCert" -u C -d /etc/pki/nssdb/
- Descrição: Verifica se o certificado
MyCertestá corretamente assinado por uma autoridade confiável e se a cadeia de confiança é válida.
Nível Avançado
1. Emissão de Certificados com `certutil`
- certutil -S - Assina e emite um certificado.
- Exemplo de uso:
certutil -S -n "CA" -s "CN=Servidor, O=Exemplo" -c "CA" -t "CT,," -d /etc/pki/nssdb/
- Descrição: Usa a autoridade certificadora (CA) interna
CApara assinar e emitir um novo certificado com o nome comumServidore a organizaçãoExemplo, atribuindo-o ao banco de dados NSS.
2. Exportação de Certificados com `certutil`
- certutil -d -L - Exporta um certificado em formato PEM.
- Exemplo de uso:
certutil -L -d /etc/pki/nssdb/ -n "MyCert" -a > meu_certificado.pem
- Descrição: Exporta o certificado chamado
MyCertdo banco de dados NSS para o formato PEM, salvando-o no arquivomeu_certificado.pem, que pode ser distribuído para outros sistemas.
Nível Especializado
1. Geração de Certificados de Autoridade (CA) com `certutil`
- certutil -S -x - Cria um certificado de autoridade (CA).
- Exemplo de uso:
certutil -S -x -n "CA_Raiz" -s "CN=CA_Raiz, O=Exemplo" -t "CT,," -d /etc/pki/nssdb/
- Descrição: Gera um certificado de autoridade raiz chamado
CA_Raizque pode ser usado para assinar outros certificados.
2. Revogação de Certificados com `certutil`
- certutil -D - Revoga e remove um certificado do banco de dados NSS.
- Exemplo de uso:
certutil -D -n "MyCert" -d /etc/pki/nssdb/
- Descrição: Revoga o certificado
MyCerte o remove do banco de dados NSS, garantindo que ele não possa mais ser usado para autenticação ou criptografia.
wiki/linux/comandos_grupos/cmd_criptografia.txt · Last modified: by Wiki Administrator
