===== 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.