User Tools

Site Tools


wiki:linux:comandos_grupos:cmd_criptografia

Nível Básico

1. Criptografia Simples de Arquivos com `gpg`

  • gpg -c - Criptografa um arquivo com uma chave simétrica.
    1. Exemplo de uso:
      gpg -c arquivo.txt
    2. Descrição: Criptografa o arquivo arquivo.txt usando uma senha. O arquivo criptografado será salvo como arquivo.txt.gpg.

2. Descriptografia de Arquivos com `gpg`

  • gpg - Descriptografa um arquivo criptografado.
    1. Exemplo de uso:
      gpg arquivo.txt.gpg
    2. Descrição: Descriptografa o arquivo arquivo.txt.gpg e 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.
    1. Exemplo de uso:
      sha256sum arquivo.txt
    2. 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.
    1. Exemplo de uso:
      sha256sum -c checksum.txt
    2. Descrição: Verifica se o arquivo listado no checksum.txt está 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.
    1. Exemplo de uso:
      gpg --gen-key
    2. 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.
    1. Exemplo de uso:
      gpg --export -a "usuario" > chave_publica.asc
    2. Descrição: Exporta a chave pública do usuário usuario e salva no arquivo chave_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.
    1. Exemplo de uso:
      gpg --import chave_publica.asc
    2. Descrição: Importa a chave pública contida no arquivo chave_publica.asc para 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.
    1. Exemplo de uso:
      gpg --sign arquivo.txt
    2. Descrição: Cria uma assinatura digital para o arquivo arquivo.txt, garantindo sua autenticidade e integridade. O arquivo assinado será salvo como arquivo.txt.gpg.

5. Verificação de Assinatura Digital com `gpg`

  • gpg –verify - Verifica uma assinatura digital.
    1. Exemplo de uso:
      gpg --verify arquivo.txt.gpg
    2. 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.
    1. Exemplo de uso:
      gpg -e -r "usuario" arquivo.txt
    2. Descrição: Criptografa o arquivo arquivo.txt usando 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.
    1. Exemplo de uso:
      gpg -d arquivo.txt.gpg
    2. Descrição: Descriptografa o arquivo arquivo.txt.gpg que 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.
    1. Exemplo de uso:
      gpg --gen-revoke usuario > revogacao.asc
    2. 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.
    1. Exemplo de uso:
      gpg --edit-key usuario
    2. 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.
    1. Exemplo de uso:
      gpg --quick-add-key usuario rsa4096 sign
    2. 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.
    1. Exemplo de uso:
      gpg --send-keys "usuario" --keyserver hkp://keyserver.ubuntu.com
    2. Descrição: Publica a chave pública de usuario em um servidor de chaves públicas, como o keyserver.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.
    1. Exemplo de uso:
      gpg --recv-keys chave_id --keyserver hkp://keyserver.ubuntu.com
    2. Descrição: Baixa ou atualiza a chave pública identificada por chave_id de 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.
    1. Exemplo de uso:
      sudo cryptsetup luksFormat /dev/sda1
    2. Descrição: Criptografa a partição /dev/sda1 usando 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.
    1. Exemplo de uso:
      sudo cryptsetup luksOpen /dev/sda1 meu_disco
    2. Descrição: Desbloqueia e monta a partição criptografada /dev/sda1, tornando-a acessível pelo nome meu_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.
    1. Exemplo de uso:
      sudo cryptsetup luksAddKey /dev/sda1 /caminho/chave_adicional
    2. 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.
    1. Exemplo de uso:
      sudo cryptsetup luksRemoveKey /dev/sda1
    2. 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.
    1. Exemplo de uso:
      pkcs11-tool --module /usr/lib/opensc-pkcs11.so --list-objects
    2. 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.
    1. Exemplo de uso:
      openssl req -x509 -newkey rsa:4096 -keyout chave_privada.pem -out certificado.pem -days 365
    2. 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.
    1. Exemplo de uso:
      openssl verify -CAfile ca_cert.pem servidor_cert.pem
    2. 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.
    1. Exemplo de uso:
      sudo certbot certonly --webroot -w /var/www/html -d exemplo.com
    2. 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.
    1. Exemplo de uso:
      sudo certbot renew
    2. 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.
    1. Exemplo de uso:
      ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
    2. 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_keys do servidor.
  • ssh-copy-id - Copia a chave pública para o servidor remoto.
    1. Exemplo de uso:
      ssh-copy-id usuario@servidor
    2. Descrição: Copia a chave pública para o servidor remoto, permitindo login SSH sem senha. A chave será adicionada ao arquivo authorized_keys do servidor.

7. Gerenciamento de Chaves com `gpg-agent` e `SSH`

  • gpg-agent - Usa o agente GPG para autenticação SSH.
    1. Exemplo de uso:
    echo "enable-ssh-support" >> ~/.gnupg/gpg-agent.conf
    gpg-connect-agent reloadagent /bye
 
  1. 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).
    1. Exemplo de uso:
      google-authenticator
    2. 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.
    1. Exemplo de uso:
      certutil -L -d /etc/pki/nssdb/
    2. 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.
    1. Exemplo de uso:
      certutil -L -n "MyCert" -d /etc/pki/nssdb/
    2. Descrição: Mostra detalhes do certificado chamado MyCert no 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.
    1. Exemplo de uso:
      certutil -G -d /etc/pki/nssdb/ -n "ChaveServidor" -g 2048 -Z SHA256
    2. Descrição: Gera um par de chaves RSA de 2048 bits e armazena no banco de dados NSS, atribuindo o nome ChaveServidor e 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.
    1. Exemplo de uso:
      certutil -V -n "MyCert" -u C -d /etc/pki/nssdb/
    2. Descrição: Verifica se o certificado MyCert está 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.
    1. Exemplo de uso:
      certutil -S -n "CA" -s "CN=Servidor, O=Exemplo" -c "CA" -t "CT,," -d /etc/pki/nssdb/
    2. Descrição: Usa a autoridade certificadora (CA) interna CA para assinar e emitir um novo certificado com o nome comum Servidor e a organização Exemplo, atribuindo-o ao banco de dados NSS.

2. Exportação de Certificados com `certutil`

  • certutil -d -L - Exporta um certificado em formato PEM.
    1. Exemplo de uso:
      certutil -L -d /etc/pki/nssdb/ -n "MyCert" -a > meu_certificado.pem
    2. Descrição: Exporta o certificado chamado MyCert do banco de dados NSS para o formato PEM, salvando-o no arquivo meu_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).
    1. Exemplo de uso:
      certutil -S -x -n "CA_Raiz" -s "CN=CA_Raiz, O=Exemplo" -t "CT,," -d /etc/pki/nssdb/
    2. Descrição: Gera um certificado de autoridade raiz chamado CA_Raiz que 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.
    1. Exemplo de uso:
      certutil -D -n "MyCert" -d /etc/pki/nssdb/
    2. Descrição: Revoga o certificado MyCert e 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