===== 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.txt'' usando uma senha. O arquivo criptografado será salvo como ''arquivo.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.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. - 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.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. - 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 ''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. - Exemplo de uso: gpg --import chave_publica.asc - 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. - 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 como ''arquivo.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.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. - Exemplo de uso: gpg -d arquivo.txt.gpg - 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. - 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 ''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. - 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_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. - Exemplo de uso: sudo cryptsetup luksFormat /dev/sda1 - 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. - 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 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. - 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_keys'' do 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_keys'' do 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 ''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. - 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 ''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. - Exemplo de uso: certutil -V -n "MyCert" -u C -d /etc/pki/nssdb/ - 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. - 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 ''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. - Exemplo de uso: certutil -L -d /etc/pki/nssdb/ -n "MyCert" -a > meu_certificado.pem - 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). - 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_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. - Exemplo de uso: certutil -D -n "MyCert" -d /etc/pki/nssdb/ - 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.