Comandos do Linux e Unix: Sistema; Processos; Sistema de Arquivos; Rede; SSH SCP; VPN com SSH; RSYNC; SUDO; Arquivos Encriptados; Partições Encriptadas; Certificados SSL; CVS; SVN; Comando Úteis; Instalar Software; Converter Mídia; Impressão; Banco de Dados; Quota de Disco; Shells; Scripting; Programação

Arquivos criptografados

OpenSSL

Um único arquivo

Criptograr e descriptografar:

# openssl aes-128-cbc -salt -in file -out file.aes
    # openssl aes-128-cbc -d -salt -in file.aes -out file

Note que o arquivo pode é claro ser um arquivo tar (tar archive).

tar e criptografar um diretório completo

# tar -cf - directory | openssl aes-128-cbc -salt -out directory.tar.aes      # Criptografado
    # openssl aes-128-cbc -d -salt -in directory.tar.aes | tar -x -f -            # Descriptografado

tar zip e criptografar um diretório completo

# tar -zcf - directory | openssl aes-128-cbc -salt -out directory.tar.gz.aes  # Criptografado
    # openssl aes-128-cbc -d -salt -in directory.tar.gz.aes | tar -xz -f -        # Descriptografado
  • Utilize -k mysecretpassword depois de aes-128-cbc para evitar solicitação de senha interativa. No entanto note que isso é altamente inseguro.
  • Utilize aes-256-cbc ao inves de aes-128-cbc para obter criptografia ainda mais forte. Isso utiliza também mais CPU.

GPG

GnuPG é bem conhecido para criptografar e assinalar e-mails ou qualquer dado. Além do mais gpg também provê um sistema avançado de gerenciamento chaves. Essa seçã cobre somente criptografia de arquivos, não uso de e-mail, assinalar ou o Web-Of-Trust.
A criptografia mais simples é com uma symmetric cipher. Nesse cado o arquivo é criptografado com uma senha e qualquer um que saiba a senha pode descriptografá-lo, assim as chaves não são necessárias. Gpg adiciona uma extensão “.gpg” para os nomes do arquivos criptografados.

# gpg -c file                        # Criptografa arquivo com senha
    # gpg file.gpg                       # Desciptografa arquivo (opcionalmente -o otherfile)

Utizando chaves (keys)

Para mais detalhess veja GPG Quick Starthttp://www.madboa.com/geek/gpg-quickstart e GPG/PGP Basicshttp://aplawrence.com/Basics/gpg.html e o gnupg documentationhttp://gnupg.org/documentation entre outros.
As chaves privadas e públicas são o coração da criptografia assimétrica. O que é importante lembrar:

  • Sua chave pública é usada por outros para criptografar arquivos que somente você como o receptor pode descriptografar (não somente aquele que criptografou o arquivo que pode descriptografá-lo). A chave pública tem assim que distribuída.
  • Sua chave privada é criptografada com a sua passphrase e é utilizada para descriptografar arquivos que foram criptografadas com a your chave pública. A chave privada deve ser guardada segura. Se a chave ou passphrase for perdida, todos os arquivos criptografados e chaves públicas também são.
  • Os arquivos chaves são chamados keyrings (chaveiros) já que eles podem conter mais que uma chave.

Primeiro gere o par de chaves. As padrões são boas, no entanto você terá que inserir ao menos seu nome completo e e-mail e opcionalmente um comentário. O comentário é útil para criar mais do que uma chave com o mesmo e-mail. Você deve também utilizar uma “passphrase”, não uma senha simples.

# gpg --gen-key                      # Isso pode levar um tempo

As chaves são armazenadas em ~/.gnupg/ no Unix, no Windows elas são tipicamente armazenadas em
C:/Documents and Settings/%USERNAME%/Application Data/gnupg/.

~/.gnupg/pubring.gpg                 # Contem suas chaves públicas e todas as outras importadas
    ~/.gnupg/secring.gpg                 # Pode conter mais de uma chave privada

Curto lembrete nas opções mais utilizadas:

  • -e criptografa dado
  • -d descriptografa dado
  • -r NAME criptografa para o recipiente NAME (ou ‘Full Name’ ou ‘email@domain’)
  • -a cria saída blindada ASCII de uma chave
  • -o utiliza com arquivo de saída

O exemplo utiliza ‘Your Name’ e ‘Alice’ já que as chaves são referidas pelo e-mail ou nome completo ou nome parcial. Por exemplo eu posso utilizar ‘Colin’ ou ‘c@cb.vu’ para a minha have [Colin Barschel (cb.vu) <c@cb.vu>].

Criptografa somente para uso pessoal

Não necesita exportar/importar qualquer chave para isso. Você já possui ambas.

# gpg -e -r 'Your Name' file                  # Criptografa com a sua chave pública
    # gpg -o file -d file.gpg                     # Descriptografa. Utiliza -o ou vai para a saída

Criptografar – Descriptografar com chaves

Primeiro você precisa exportar sua chave pública para que mais alguém a utilize. E você precisa importar a pública, digamos a partir da Alice para criptografar um arquivo para ela. Você pode tanto manusear as chaves em simples arquivos ASCII ou utilizar um servidor de chave pública.
Por exemplo, Alice exportou sua chave pública e você a importou, você pode criptografar um arquivo para ela. Isso é, somente Alice será capaz de descriptogrfá-lo.

# gpg -a -o alicekey.asc --export 'Alice'     # Alice exportou sua chave em arquivo ASCII.
    # gpg --send-keys --keyserver subkeys.pgp.net KEYID   # Alice colocou sua chave em um servidor.
    # gpg --import alicekey.asc                   # Você importa a chave da Alice para dentro do seu pubring.
    # gpg --search-keys --keyserver subkeys.pgp.net 'Alice' # ou obtenha a chave a Alice a partir do servidor.

Uma vez as chaves importadas, é muito fácil criptografar ou descriptografar um arquivo:

# gpg -e -r 'Alice' file                      # Criptografa o arquivo para a Alice.
    # gpg -d file.gpg -o file                     # Descriptografa um arquivo (criptografado pela Alice) para você.

Administração de chave

# gpg --list-keys                             # lista chaves públicas e vê o KEYIDS
        The KEYID follows the '/' e.g. for: pub   1024D/D12B77CE the KEYID is D12B77CE
    # gpg --gen-revoke 'Your Name'                # gera certificado de revocação
    # gpg --list-secret-keys                      # lista chaves privadas
    # gpg --delete-keys NAME                      # exclui uma chave pública a partir do chaveiro local (key ring)
    # gpg --delete-secret-key NAME                # exclui uma chave secreta a partir do chaveiro local
    # gpg --fingerprint KEYID                     # Exibe a impressão digital (fingerprint) da chave
    # gpg --edit-key KEYID                        # Edita a chave (ex. assina ou adiciona/exclui email)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *