Mostrando postagens com marcador criptografia de dados. Mostrar todas as postagens
Mostrando postagens com marcador criptografia de dados. Mostrar todas as postagens

quinta-feira, 10 de setembro de 2015

A pouco tempo atrás, milhões de informações foram vazadas do site de relacionamentos Ashley Madison, acredito que todos ficaram sabendo disso.

Junto com esses dados, foram vazados cerca de 36 milhões de senhas criptografadas, o que muitos especialistas afirmaram levar séculos para quebrar.

A novidade é que um grupo de hackers descobriu algumas falhas do algoritmo, o que facilita a quebra da boa parte das senhas.

Para ver mais informações e detalhes sobre essa quebra, acesse o artigo do arstechnica.


quarta-feira, 8 de julho de 2015

Métodos de criptografia Linux

Existem dois métodos para criptografar seus dados:




1: Sistema de arquivos empilhados criptografia nível

eCryptfs -

É um sistema de arquivos Linux criptográfico empilhadas. eCryptfs armazena metadados de criptografia no cabeçalho de cada arquivo escrito, de modo que os arquivos criptografados podem ser copiados entre os hosts, o arquivo será descriptografado com a chave apropriada no chaveiro do kernel Linux. Esta solução é amplamente utilizado, como base para a criptografados Diretório do Ubuntu, nativamente dentro ChromeOS do Google, e de forma transparente incorporado em rede anexado vários dispositivos de armazenamento (NAS).

Encfs -

Ele fornece um sistema de arquivos criptografados em espaço do usuário. Ele roda sem permissões especiais e usa a biblioteca FUSE e módulo do kernel Linux para fornecer a interface do sistema de arquivos. Você pode encontrar links para fontes e versões binárias abaixo. Encfs é um software de código aberto, licenciado sob a GPL.



2: Bloco de criptografia no nível do dispositivo


Loop-AES -

Rápido e transparente do sistema de arquivos e um pacote de criptografia de swap para linux. No código fonte muda a kernel do Linux. Funciona com 3.x, 2.6, 2.4, 2.2 e 2.0 kernels.

TrueCrypt -

É livre de código aberto de software de criptografia de disco para Windows 7/Vista/XP, Mac OS X e Linux.

dm-crypt + LUKS - dm-crypt é um subsistema transparente de criptografia de disco no Linux kernel do v2.6 + e posterior e DragonFly BSD. Ele pode criptografar discos inteiros, mídia removível, partições, volumes RAID de software, os volumes lógicos e os arquivos.

Neste post, vou explicar como criptografar suas partições usando o Linux Unified formato Setup-on-disk (Key LUKS) no seu computador ou laptop baseado em Linux.



Instalar utilitário cryptsetup

Você precisa instalar o seguinte pacote. Ele contém cryptsetup, um utilitário para a criação de sistemas de arquivos criptografados usando Device Mapper eo alvo dm-crypt. Tipo de usuário Debian / Ubuntu Linux o seguinte comando apt-get :

apt-get install cryptsetup



Saidas de amostra:


Lendo listas de pacotes ... Feito

Árvore de dependências do edifício

Lendo informação de estado ... Feito

Os seguintes pacotes extra serão instalados:

libcryptsetup4 cryptsetup-bin

Pacotes sugeridos:

busybox

Os seguintes NOVOS pacotes serão instalados:

cryptsetup libcryptsetup4 cryptsetup-bin

0 pacotes atualizados, 3 novos instalados, 0 a serem removidos e 7 não atualizados.

É preciso obter 168 kB de arquivos.

Após esta operação, serão utilizados 669 KB de espaço em disco adicional.

Você quer continuar [Y / n]? y

Obter: 1 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ preciso principal amd64 / libcryptsetup4 2:1.4.1-2ubuntu4 [55,8 kB]

Obter: 2 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ / main cryptsetup-bin amd64 2:1.4.1-2ubuntu4 precisa [32,2 kB]

Obter: 3 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ preciso principal amd64 / cryptsetup 2:1.4.1-2ubuntu4 [80,0 kB]

Buscada 168 kB em 0s (268 kb / s)

Pré-configurando pacotes ...

Selecionar previamente não selecionado libcryptsetup4 pacote.

(Lendo banco de dados ... 25374 arquivos e diretórios atualmente instalados.)

Desempacotando libcryptsetup4 (a partir de ... / libcryptsetup4_2% 3a1.4.1-2ubuntu4_amd64.deb) ...

Selecionando pacote previamente não selecionado cryptsetup-bin.

Desempacotando cryptsetup-bin (de ... / cryptsetup-bin_2% 3a1.4.1-2ubuntu4_amd64.deb) ...

Selecionar previamente não selecionado cryptsetup pacote.

Desempacotando cryptsetup (a partir de ... / cryptsetup_2% 3a1.4.1-2ubuntu4_amd64.deb) ...

Processamento de gatilhos para man-db ...

Processamento de gatilhos para ureadahead ...

Configurando libcryptsetup4 (2:1.4.1-2ubuntu4) ...

Configurando cryptsetup-bin (2:1.4.1-2ubuntu4) ...

Configurando cryptsetup (2:1.4.1-2ubuntu4) ...

update-initramfs: update adiando (trigger ativado)

Processamento de gatilhos para libc-bin ...

ldconfig processamento diferido ocorrendo agora

Processamento de gatilhos para initramfs-tools ...



update-initramfs: Generating / boot/initrd.img-3.2.0-31-virtual

Usuário RHEL / CentOS / Fedora Linux digite o seguinte comando yum :

# yum install cryptsetup-luks

Configurar partição LUKS

Neste exemplo, eu vou encript /dev/xvdc. Digite o seguinte comando:

# cryptsetup-y-v luksFormat /dev/xvdc

Saídas de Amostra:


# cryptsetup-y-v luksFormat / dev / xvdc


ATENÇÃO!
========
Isto irá substituir dados no / dev / xvdc irrevogavelmente.


Tem certeza? ( Digite sim maiúsculas ) : SIM
Enter LUKS passphrase:
Verifique frase:


Comando de sucesso.


Este comando inicializa o volume, e define uma chave inicial ou senha. Por favor, note que a senha não é recuperável, então não esqueça it.Type o comando a seguir cria um mapeamento:

# cryptsetup luksOpen /dev/xvdc Backup2



Saídas de amostra:
Digite senha para /dev/xvdc:

Você pode ver um mapeamento de nome / dev/mapper/backup2 após verificação bem sucedida do material de chave fornecida, que foi criado com a extensão de comando luksFormat:



# ls-l / dev/mapper/backup2


Saidas de amostra

lrwxrwxrwx 1 root root 7 19 de outubro 19:37 /dev/mapper/backup2 -> .. /dm-0

Você pode usar o seguinte comando para ver o status do mapeamento:

# cryptsetup-v backup2 estado

Saidas de amostra
/Dev/mapper/backup2 está ativo.
Tipo: LUKS1
cifra: aes-cbc-essiv: sha256
keysize: 256 bits
device: / dev / xvdc
offset: 4096 setores
size: 419426304 setores
mode: leitura / gravação


Comando de sucesso.

Você pode despejar cabeçalhos LUKS usando o seguinte comando:

# cryptsetup luksDump /dev/xvdc

Formato partição LUKS

Em primeiro lugar, você precisa escrever zeros para /dev/mapper/backup2 dispositivo criptografado. Isto irá alocar dados em blocos com zeros. Isso garante que o mundo lá fora vai ver estes dados aleatórios, ou seja, que protegem contra a divulgação de padrões de uso:

# dd if=/dev/zero of=/dev/mapper/backup2

O comando dd pode levar várias horas para ser concluído. Eu sugiro que você use o comando pv para monitorar o progresso :

# pv-tpreb /dev/zero | dd of=/dev/mapper/backup2 bs=128M

Para criar um sistema de arquivos ou seja, formato de sistema de arquivos, digite:

# mkfs.ext4 /dev/mapper/backup2

Para montar o novo sistema de arquivos em / backup2 , digite:


# mkdir / Backup2

# mount / dev/mapper/backup2 / Backup2

# df-H

# cd / Backup2

# ls-l

Como faço para desmontar e dados seguros?

# umount /backup2
# cryptsetup luksClose backup2


Como faço para montar ou remontar partição criptografada?



Digite o seguinte comando:

# cryptsetup luksOpen /dev/xvdc backup2
# mount /dev/mapper/backup2 /Backup2
# df-h 
# mount

Veja shell script envoltório que abre partição LUKS e configura um mapeamento para dispositivos NAS.



Posso executar o fsck no volume partição / LVM com base LUKS?



Sim, você pode usar o comando fsck Em sistemas baseados LUKS:

# umount /backup2

# fsck-vy /dev/mapper/backup2

# mount /dev/mapper/backup2 /backup2

Veja como executar fsck Em LUKS (dm-crypt), com base volume físico LVM para mais detalhes.



Como posso alterar o LUKS passphrase (senha) para a partição criptografada?




Digite o seguinte comando:



# cryptsetup luksDump / dev / xvdc

# cryptsetup luksAddKey / dev / xvdc Digite qualquer senha:
Digite a nova senha para o slot-chave:


Verifique frase:

Remover ou excluir a senha antiga:

# cryptsetup luksRemoveKey /dev/xvdc

Por favor, note que você precisa para entrar no antigo senha / senha.



Conclusão

Agora você tem uma partição criptografada para todos os seus dados.



Prós:


LUKS criptografa dispositivos de blocos inteiros e é, portanto, bem adequado para proteger o conteúdo de dispositivos móveis, como mídia de armazenamento removíveis (pen USB) ou unidades de disco portáteis.

Você também pode usar com o seu servidor NAS para proteger backups.

Intel e AMD com AES-NI (Advanced Encryption Standard conjunto de instruções) pode acelerar a criptografia baseada dm-crypt para Linux Kernel v2.6.32 +. Isto irá acelerar a criptografia disco rígido.

Funciona com partição swap muito para que seu laptop pode usar o recurso de hibernação (suspend-to-disk) que escreve o conteúdo da RAM para a partição de swap antes de desligar a máquina.



Contras:

LUKS só suportam até 8 senhas, ou seja, apenas 8 usuários podem ter teclas de acesso distintas para o mesmo dispositivo.]

LUKS também não é recomendável para aplicações que exigem criptografia em nível de arquivo.


Créditos ao Natan, por publicar este artigo no antigo fórum da Brutal Security.
Créditos originais não encontrados.

sexta-feira, 3 de julho de 2015



Leitores, nesse post eu vou falar de uma ferramenta extremamente poderosa, o GPG. Ele possibilita um nível de criptografia bem alto e pode ser usado facilmente no dia a dia.

Antes de começar


O GnuPG é uma ferramenta extremamente poderosa e que pode ser complexa para alguns casos. Como o foco desse post é ser simples e para um possível uso diário, o que será passado aqui não é recomendado para guarda de informações altamente sigilosas como dados bancários, por exemplo.

Uso simples pelo terminal


No exemplo abaixo usaremos a área de trabalho (desktop) e um arquivo de texto plano (.txt) chamado mensagem.txt.

No terminal navegue até a pasta onde o arquivo a ser criptografado está localizado:

cd /home/ususario/desktop/

Já na pasta vamos confirmar se o arquivo está lá:

ls

A saída será algo assim:

Pasta Pessoal.desktop
Lixeira.desktop
mensagem.txt

Encontrado o arquivo podemos usar o gpg:

gpg -c mensagem.txt

Após apertar ENTER será solicitada uma senha para guardar o arquivo e logo após será solicitado que se digite-a novamente (note que não é possível ver a senha, sequer os asteriscos representando os caracteres).

Quando esse processo for concluido, um arquivo aparecerá na pasta junto ao original com a extensão do gpg (.gpg):

mensagem.txt.gpg

Seu arquivo estará pronto para ser arquivado. No entanto não recomendo que ele seja renomeado nem que altere sua extensão pois isso pode corromper o sistema de criptografia e ao tentar recuperar o conteúdo original o programa não reconhecerá o arquivo e não será possível recuperá-lo, logo, cuidado na manipulação do mesmo.

Com o comando passado acima, seu arquivo será criptografado com uma chave simétrica que será associada a sua chave (senha) digitada posteriormente.

O processo reverso


É muito simples recuperar o conteúdo do arquivo criptografado, no terminal, navegue até a pasta onde o arquivo se encontra e então digite:

gpg nomedoarquivo.gpg

Substituindo "nomedoarquivo" pelo nome do seu arquivo (no exemplo de cima foi mensagem.txt).

DICA: Ao entrar na pasta onde o arquivo criptografado estiver, digite "gpg" (sem aspas) e depois aperte o TAB que provavelmente o nome do seu arquivo aparecerá.

Aumentando o poder da criptografia


Realmente a criptografia utilizada nesse post pode ser considerada abaixo da média para alguns usuários, mesmo tendo foco na simplicidade, não poderia deixar de ensinar a potencializar essa ferramenta de forma simples. Vou ensinar dois métodos, o da dupla criptografia e da mudança de algoritmo de compressão.

- Dupla criptografia

Como o nome sugere, será feita uma segunda criptografia do conteúdo original, para fazer isso, no terminal, navegue até a pasta com o arquivo criptografado e digite:

gpg -c nomedoarquivo.gpg

Substitua "nomedoarquivo" pelo seu arquivo (no exemplo usei mensagem.txt.gpg). Novamente será solicitada uma senha (digite uma diferente da primeira, preferencialmente), a saída será algo como:

nomedoarquivo.gpg.gpg

Ou, usando o exemplo:

mensagem.txt.gpg.gpg

Pronto. Quando for descriptografar, será necessário realizar o processo duas vezes, entrando a última senha primeiro e depois a primeira senha, respectivamente.

- Mudando o algoritmo

Junto à opção de encriptação, há um algoritmo padrão usado pelo gpg para que a criptografia seja feita, ele é o AES de 128 bits (usado no programa como AES somente). Para mudar o algoritmo do sistema, vá até a pasta do arquivo a ser encriptado e ao usar o gpg, adicione a opção "cipher-algo" ficando o comando assim:

gpg -c --cipher-algo CODIGO nomearquivo

Sendo o "nomearquivo" o seu arquivo (como mensagem.txt) e CODIGO um dos códigos da lista abaixo:

3DES
CAST5
BLOWFISH
AES (padrão, quando não é usada a opção --cipher-algo)
AES192
AES256
TWOFISH
CAMELLIA128
CAMELLIA192
CAMELLIA256

O código pode ser escrito em minúsculas.

- Combinação

Se quebrar uma senha forte por força bruta é trabalhoso, imagine ter que fazer isso 2, 3, 4 vezes. Fora que, no caso de um possível ataque, ao terminar o processo e chegar à senha o invasor descriptografa o arquivo e vê que este continha um outro arquivo também criptografado é bem desestimulante, logo a chance desse ""hacker"" desistir é alta.

Para fazer a combinação, repita o processo de criptografia que ensinei usando a mudança de algoritmo junto à ele, por diversas vezes e terá um resultado interessante.

Aplicação prática


Você deve estar se perguntando, como poderá utilizar isso que passei no dia a dia. Pois eu te falo que podes usar para qualquer coisa e qualquer arquivo, desde que respeitada a integridade do arquivo criptografado.

Não recomendaria esse tipo de criptografia para comunicação por mensagens instantâneas, pois devido ao processo pode ser algo demorado o que vai contra a comunicação instantânea que era procurada pelo usuário. Entretanto, nada impede sua aplicação nos e-mails de uma empresa (que não tenham informação altamente sensível) ou entre duas pessoas quaisquer (desde que ambas estejam treinadas e saibam o que fazer para que possam utilizar o recurso de forma eficiente).

Para o envio de informações mais confidenciais, o gpg também é útil porém necessita de uma configuração mais avançada que não era o foco desse post, pois mexe com chaves públicas e/ou privadas, assinaturas digitais, entre outras peculiaridades que tornam os processos mais complexos.

Referências (em inglês)


Site do GnuPG: https://www.gnupg.org/

Manual geral do GPG v2.1.5: https://www.gnupg.org/documentation/manuals/gnupg.pdf

Manuais rápidos GPG: https://www.gnupg.org/documentation/howtos.html

Extra


No link abaixo estarei disponibilizando um PDF com o conteúdo do post para que possa ser usado para referência off line.

Link: MEGA

Espero que tenham gostado e que nos acompanhem no nosso grupo no Facebook, lá será postado as novidades e notícias e também poderá ser feito o contato com a equipe aqui do blog. Até a próxima.

quinta-feira, 28 de maio de 2015


Hoje não manteremos a tradição de uma introdução sobre o assunto, ou explicações sobre o funcionamento, pois não será necessário, tendo em vista o número de artigos que já publicamos aqui, sobre criptografia, e principalmente pela série de artigos escrita pelo Deivid para o blog. Portanto, para acompanhar a série feita por ele, clique aqui! O conteúdo tá bem explicado e diversificado, com certeza você irá adorar ler.

Mas por não fazer uma introdução, faremos um breve artigo sobre o VeraCrypt, que acredito que poucos conhecem, mas se já acompanha nosso blog à algum tempo, já deve saber que o VeraCrypt, é o sucessor do TrueCrypt.

Configuração e Utilização

Certo, o foco hoje é a configuração e a utilização desta ferramenta. Mas os pontos importantes que devem saber, é que o VeraCrypt é multi plataforma, ou seja, Funciona em diversos sistemas, tais como: Windows, Linux, Mac, Android e iOS. Certo? Ele foi baseado nas funções do TrueCrypt, porém, ainda é um pouco limitado em relação ao seu antecessor, mas mesmo assim é uma nova solução oferecida para os usuários, já que o TrueCrypt era uma ferramenta muito utilizada. Apesar de que mesmo sem suporte, alguns usuários ainda utilizam o TrueCrypt, o que não é recomendado, tendo em vista as falhas que este apresenta, alguns começaram a migrar para o VeraCrypt.

Continuando, para efetuar o Download da Ferramenta:


Feito o Download, Instale a ferramenta e aceite os termos de uso. Caso seja solicitado a escolha de um idioma, escolha o que mais adequado a sua preferência. Com todas as condições cumpridas, abra o VeraCypt.

Observe a interface da ferramenta, parece um pouco complicada de trabalhar, por possuir várias opções para os usuários. Mas não é um bicho de sete cabeças. Na janela principal da ferramenta, temos a disponibilidade de verificar as letras de unidades ainda disponíveis no sistema para serem montadas, também o Botão para Criar Volume, Propriedades do Volume e Limpar Cache. Menu do Disco, onde você poderá procurar o arquivo criado pelo VeraCrypt, e armazenado por você em algum diretório do computador. E os Botões na parte inferior, responsáveis pela montagem e desmontagem de Volumes criados pelo VeraCrypt. 

Criando um novo Volume

Certo, com a janela principal da ferramenta aberta, clique no botão Criar Volume. Feito isso, aparecerá uma nova janela, como essa:


Na janela seguinte a criação do novo Volume, são dadas três opções para criptografia:


  • Crie um recipiente de arquivo criptografado
  • Criptografar uma partição/unidade não-sistema.
  • Criptografar a partição ou unidade de sistema inteira

Como o objetivo deste artigo não é criptografar nenhuma partição do sistema inteiramente, deixe marcada a primeira opção, Crie um recipiente de arquivo criptografado e clique em Avançar.


Mas opções são sugeridas, mas agora para definir o tipo de volume que será criado:

  • Volume VeraCrypt Padrão
  • Volume oculto VeraCrypt

Neste exemplo, para não ser muito extenso e cansativo, usaremos a primeira opção, que é o Volume VeraCrypt Padrão e após definir, clique em Avançar.

Neste passo da criação, vai ser Necessário criar uma pasta em alguma partição do Computador. Mas antes, deixe marcado o item Nunca Salvar Histórico, Depois clique no botão Arquivo.

Como eu já havia criado uma pasta nomeada Teste dentro da Unidade Documentos(F:), apenas abrir ela. Recomendo que você crie uma pasta antes de começar a criação do volume, apenas para se orientar e ser mais organizado. Prosseguindo, com a sua pasta criada, na caixa nome, apenas digite o nome de sua preferência, no meu teste, colocarei o nome de teste para o arquivo, feito isso, clique em Salvar.

Certifique-se primeiro se a localização do volume está correta, caso esteja, apenas clique em Avançar.


Neste passo da criação do volume, deixe o Algoritmo de Criptografia em AES, e o algoritmo Hash em SHA-512, mas caso você não ache que os dois são seguros, você poderá escolher entre as demais que a ferramenta oferece. E clique em Avançar.


Certo, no momento que for criar uma pasta para armazenar o volume, tenha em mente escolher uma unidade que tenha o número em gigas de espaço que você poderá precisar para o seu volume criptografado pelo VeraCrypt. Neste passo da criação, você deverá definir o tamanho do Volume, poderá Definir em Kilobytes, Mega Bytes e Giga bytes. Nesse caso, por ser apenas um exemplo criado para este artigo, colocarei apenas 100 Mega Bytes. Definido um tamanho, clique em Avançar.

Defina uma senha agora neste passo. Eu pessoalmente recomendo uma senha de no minimo 25 caracteres, mas isso tem que ser levado em conta, quando falamos de arquivos que são definitivamente importantes e devem ser protegidos a todo custo. Uma senha de 25 caracteres, poderá ser ruim de memorizar, por isso defina um padrão para ela, no qual você deve se lembrar com facilidade. E a combinação deverá ser entre Letras minusculas, maiúsculas, números e caracteres especiais, pois definitivamente, a não ser que possuam um computador quântico a disposição ou a ferramenta possua alguma falha que permita ser explorada e ofereça acesso as senhas dos volumes, teremos ai uns bilhões de anos para quebrar esta criptografia e ter acesso a essa senha.Definida uma senha, clique em Avançar.


Chegamos a reta final da criação de um volume com o VeraCrypt, esse ponto é muito importante, defina primeiro a opção do sistema de formatação, deixe em NFTS, Cluster pode ser padrão, e deixe desmarcado o item Dinâmico. Mova o ponteiro do mouse quantas vezes forem possíveis antes e durante a formatação do volume, em cima do item que está marcado na imagem, especificamente, em cima do Pool aleatório, para que haja um maior número possível de combinações para aumentar a força da criptografia das chaves. Clique em Formatar, e depois continue passando o mouse em cima do pool aleatório, até que seja definido uma chave mestra.

Esta Mensagem aparecerá confirmando o sucesso da criação do novo Volume do VeraCrypt.

O Próximo passo agora é finalizar o assistente do VeraCrypt.


Clique em Fechar.


Testando o Volume Criado

Vamos agora abrir o arquivo e montar a unidade criada nos passos acima.
Com a janela principal do VeraCrypt aberta, clique em Arquivo.

Procure na Unidade e pasta onde você armazenou o arquivo criado para abrir o volume do VeraCrypt. Feito isso, abra o arquivo. Neste exemplo, irei abrir o arquivo teste, que foi criado durante este artigo.
Feito isso, certifique-se de que o caminho para a unidade, pasta e arquivo estão corretos. Depois verifique uma unidade disponibilizada pela ferramenta para ser montado o volume, no nosso exemplo, usaremos a unidade Z:. Com todas as condições cumpridas, clique em Montar.

Certo, agora lembre-se da senha de 25 caracteres que foi sugerido para este artigo, e digite-a no campo senha. No item PKCS-5 PRF, deixe como está, pois ele é responsável por detectar o algoritmo utilizado no arquivo correspondente ao volume, e interpretar a senha que será digitada, para poder reconhecer e montar o volume com êxito. Todas as condições cumpridas, clique em OK.

Vamos acessar nossa unidade agora, clique duas vezes sobre a letra da unidade que foi utilizada para montar o volume por você.

Poderá aparecer a mensagem oferecendo a formatação do disco quando você tentar entrar na unidade de seu volume criado pelo VeraCrypt. Isso ocorre, porque escolhemos a opção de sistema em NFTS, mas isso não é um problema, certo? Apernas clique em Formatar disco.
Aparecerá o gerenciador de formatação de disco do windows, então, inicie a formatação.
OBS: é opcional deixar marcada ou não a opção Formatação rápida.


Finalizado! Nosso Volume no VeraCrypt Foi criado com sucesso! Observe que na propriedade do volume, poderá haver 13 Mega Bytes da memória em utilização. Mas basta reiniciar o sistema ou desmontar e montar a unidade novamente. Falando em desmontar...
Selecione a Letra e unidade referente ao volume montado por você do VeraCrypt, e Clique em Desmontar

Conclusão

Mais um artigo finalizado! Hoje deixamos um pouco da teoria de lado, pois já possuímos uma grande variedade de artigos relacionados a Criptografia, por este motivo, focamos mais na prática e na montagem de quase um guia para iniciantes do VeraCrypt. Aliais, esta ferramenta não deixa muito a desejar em questão de funções oferecidas ao usuário. Apesar de que o TrueCrypt fosse mais completo, não podemos menosprezar o VeraCrypt, afinal, ainda é uma ferramenta que está ganhando seu espaço. Em relação as outras opções de criptografia oferecidas pela ferramenta, como a de Unidade não-sistema e Unidade do sistema, são boas opções, porém, não testadas pela Brutal Security ainda. Futuramente quem sabe. Mas nesse quesito, acredito que esta ferramenta poderá ser semelhante ao BitLocker da Microsoft, oferecida apenas para Windows 8 e 8.1 PRO, e Algumas versões do Windows 7. 

Por ser multiplataforma, dando suporte aos sistemas operacionais mais utilizados na atualidade, não demorará muito para que este projeto alavanque mais ainda, oferecendo mais funções, e podendo até mesmo ultrapassar o TrueCrypt e outras ferramentas da área em número de usuários e funções oferecidas.Caso você possua arquivos que venham a ser muito importantes e não devem correr risco de serem furtados por Cybers Criminosos, é altamente recomendável utilizar esta ferramenta! E novamente, recomendo a leitura da série de Artigos do Deivid sobre Criptografia.

Bom pessoal, é isso! Qualquer dúvida que você venha a possuir em relação a este artigo, ou os demais já publicados da série Segurança Digital, entre em contato pela Nossa Página no Facebook, ou nosso Grupo de discussão no Facebook. Ajudaremos com maior prazer, é claro, se suas dúvidas forem relevantes e estivem relacionadas a área de segurança ética. Atos ilícitos estão longe de ser nosso objetivo. 

Forte abraço, e até a próxima o/

quinta-feira, 23 de abril de 2015

Par de chaves

Como comentado no texto anterior, os algoritmos de criptografia assimétrica utilizam um par de chaves. Vimos também que cada pessoa gera seu par de chaves, e que essas chaves são diferentes e matematicamente relacionadas.

Vamos ver agora mais algumas características desse modelo de criptografia.

As chaves são chamadas de Chave Pública e Chave Privada por um motivo óbvio. Uma das chaves vai ser disponibilizada publicamente e a outra será mantida privada.

Como a chave pública é disponível a qualquer pessoa, esta pessoa que deseja se comunicar com você usa sua chave pública para cifrar a mensagem, e apenas você com sua chave privada pode decifrar a mensagem.

Veremos logo abaixo os usos da criptografia assimétrica e como este modo de par de chaves tem menos chances de ser comprometido do que o modo simétrico.

Pode-se usar a criptografia assimétrica de várias maneiras, para os mais variados usos, veremos alguns.

Criptografia (Confidencialidade)

Podemos utilizar a criptografia assimétrica para criptografar dados, do mesmo modo que poderíamos utilizar a criptografia simétrica, com o mesmo nível de segurança, nem mais nem menos. Esta é uma associação errada que normalmente se faz, que um modelo é melhor que o outro. Sem levar em consideração o algoritmo de criptografia, os dois modelos tem o mesmo potencial.

Caso nosso objetivo seja criptografar uma mensagem, podemos fazer isso utilizando a chave pública do destino, e assim que receber, o próprio pode utilizar sua chave privada para decifrar a mensagem.

Por exemplo, A deseja enviar uma mensagem para B de forma confidencial:


A cifra a mensagem com a chave pública de B e a envia. Quando B receber a mensagem ele a decifra com sua chave privada.

Sempre que nos referirmos a criptografia ou confidencialidade estamos falando em criptografar texto ou arquivos, ou seja, usamos a chave pública do destinatário para a cifragem e o destinatário usa sua chave privada para decifrar.

No exemplo acima, se B deseja responder para A o processo é o mesmo, mas usando as chaves de A.

Um dos problemas da criptografia assimétrica na cifragem de arquivos grandes é a demora para a decifragem. Por se tratar de algoritmos mais complexos que os algoritmos simétricos, não é viável cifrar grandes quantidades de dados com este modelo.

Assinatura (Autenticação)

Outro uso para a criptografia assimétrica é a assinatura, ou garantir autenticação.

Garantir autenticação, basicamente quer dizer, garantir que uma parte seja realmente quem alega ser.

No caso de assinatura, trabalharemos com as chaves na ordem contrária, a chave privada irá "cifrar" a mensagem e a chave pública irá "decifrar"a mensagem. Para esse tipo de operação é mais comum trocar o termo Cifrar/Decifrar por Assinar.

Este modo não garante confidencialidade, já que a chave que "decifra" a mensagem é pública e qualquer pessoa teria acesso a ela. Este modo é utilizado para garantir a identidade do autor da mensagem. Se a mensagem só pode ser "decifrada" com a chave pública de B, isso quer dizer que somente B pode ter "cifrado" a mensagem com sua chave privada.

Vamos a um exemplo:

A deseja enviar uma mensagem assinada para B, garantindo que foi A quem enviou a mensagem:


A assina o texto claro com sua chave privada, gerando a mensagem assinada, e envia esta para B. B recebe a mensagem assinada e passa pelo algoritmo criptográfico com a chave pública de A para verificar sua autenticidade.


No próximo texto veremos outros métodos de uso de criptografia assimétrica.

terça-feira, 21 de abril de 2015

Criptografia Assimétrica

Vamos começar hoje a segunda parte do assunto de criptografia. Tudo que vimos até agora era criptografia simétrica, ou seja, usava a mesma chave para a criptografia do texto claro e para a decriptografia do texto cifrado.

A partir de agora vamos ver um pouco sobre criptografia assimétrica, que não usa a mesma chave na cifragem e decifragem, normalmente usa um par de chaves, diretamente relacionadas, uma sendo usada para cifrar e outra para decifrar.

Até agora foi mencionado que existem algoritmos antigos (clássicos), algoritmos atuais mas não mais utilizados e algoritmos atuais sendo utilizados. Agora estamos mencionando outro tipo de criptografia e a primeira pergunta que vem a mente é, "qual é melhor" ou "porque dois tipos"? A resposta é simples, depende (praticamente todas as perguntas da área podem ser respondidas com esta palavra :D). Depende do seu objetivo, cada modelo de criptografia é o melhor para sua função. Vimos que com algoritmos simétricos como o AES podemos criptografar e decriptografar grandes quantidades de dados de uma forma rápida, então uma finalidade boa para este algoritmo é a criptografia de arquivos e de disco.

Já no caso da criptografia assimétrica vamos ver no decorrer de nossos estudos.

Pontos negativos da criptografia simétrica

Antes de iniciarmos de fato com a assimétrica vamos entender alguns pontos onde a simétrica não é muito boa:

- Necessidade de canal seguro: A criptografia simétrica necessita obrigatoriamente de um canal seguro, onde será trafegada a chave, como já vimos anteriormente. Neste caso, se o canal seguro for comprometido, toda a criptografia vai por água abaixo, já que portando a chave uma parte mal intencionada pode lançar qualquer tipo de ataque, incluindo decifrar conteúdos cifrados.

- Gerenciamento complexo: Como tudo depende de apenas uma chave e com ela tanto cifragem quanto decifragem são realizadas acabamos gerando outros problemas. Por exemplo, você vai precisar de uma cópia da chave de cada uma das pessoas com quem você se relaciona e troca informação sensível. Este armazenamento e gerência tem de ser seguro, caso você ou alguém que tenha sua senha seja comprometido, todas as mensagens cifradas que você e outras pessoas que tenham suas chaves armazenadas trocaram podem ser decifradas por esse atacante.

Ok, para resolver esses problemas você poderia pensar em criar uma nova chave para cada comunicação ou para cada pessoa que você conversa, mas essa não seria uma boa idéia, além de ter que gerenciar as chaves de todos, vai ter o trabalho de gerencias várias chaves próprias diferentes, sem falar em comunicar sempre que mudar de chave.



Imagine que um grupo de 4 pessoas está trabalhando em um projeto altamente sigiloso, e essas 4 pessoas se reportam a uma outra pessoa. Todas as suas mensagens tem de ser trocadas de forma sigilosa. Usando a criptografia simétrica isso não seria uma tarefa fácil, cada um dos membros deveria ter uma cópia armazenada da chave dos outros membros, o que geraria muita confusão já que cada mensagem deveria ter uma chave diferente, de acordo com o destino dela. Outra possibilidade para simplificar seria o uso de uma chave única, o que resolveria boa parte da confusão, mas ainda seriam muitos pontos de falha, se qualquer um dos cinco integrantes tiver sua máquina comprometida, a chave pode vazar, resultando em exposição de tudo o que já foi criptografado com esta chave.

Para resolver esse tipo de questão e algumas outras foi inventada a criptografia assimétrica em 1976, quando Whitfield Diffie e Martin Hellman apresentaram um algoritmo para troca de chaves, no ano seguinte Ron Rivest, Adi Shamir e Len Adleman criaram um algoritmo de fato que era de criptografia assimétrica, e em 1978 é publicado o algoritmo RSA, que é o algoritmo assimétrico mais usado até hoje.

Funcionamento básico das chaves

Como já foi comentado antes, os algoritmos assimétricos usam 2 chaves, diferentes, mas matematicamente relacionadas. As chaves são comumente chamadas de Chave Pública e Chave Privada. Pelos seus nomes já da para ter uma idéia de suas funções :)

Diferentes, mas matematicamente relacionadas quer dizer que as chaves são de fato diferentes, onde o que uma chave cifrar apenas a outra poderá decifrar. A mesma chave não pode decifrar o que cifrou e o algoritmo funciona independente de ordem, qualquer uma das duas pode ser usada na criptografia.

Veremos em outros textos os usos de criptografia com a chave pública e com a chave privada e seus objetivos.

Mesmo as chaves sendo matematicamente interligadas é (ou espera-se que seja) impossível de recriar uma chave a partir da outra.

Veja um exemplo simples da criptografia assimétrica:


No próximo texto veremos mais informações sobre as chaves, funcionamento e possíveis uso deste tipo de criptografia.

quinta-feira, 16 de abril de 2015

Advanced Encryption Standard - AES

Seguindo então na nossa cronologia, em 1997 o NIST iniciou o processo de substituição do DES, e abriu novamente um concurso para avaliar as propostas de novos algoritmos. Concurso este similar ao que o DES entrou como algoritmo padrão.

No início do concurso foram recebidas 21 propostas, mas para final 5 foram selecionadas. Os 5 algoritmos classificados para a final são:

  • Rijndael
  • MARS
  • RC6
  • Serpent
  • Twofish
Alguns desses algoritmos podem ser vistos hoje em dia. Não são o algoritmo padrão nacional dos Estados Unidos, mas ainda são fortes e usáveis hoje em dia. O famoso TrueCrypt e seu fork não autorizado VeraCrypt, utilizam os algoritmos Serpent e Twofish na criptografia de dados.

Como o título deste texto indica, o ganhador foi o AES, que se chamava Rijndael na época que o projeto foi submetido.

Esta seleção levou alguns anos para ser concluída, apenas em 2001 que o AES foi escolhido como padrão.

Algumas características que podemos ressaltar no algoritmo é o comprimento da chave que é grande e pode ser variado (128/192/156 bits), e que não utilizada a estrutura da cifra de Feistel.

Veja abaixo uma representação gráfica do AES, similar as usadas como demonstração do algoritmo DES nos posts anteriores dessa série:


Só de olhar já da pra ver que ele é um pouco mais complexo né?


AES Simplificado

Sim! O AES também tem uma versão simplificada. Mas dessa vez não vou me aprofundar como foi feito no DES/S-DES. Acredito que não tenha necessidade, as operações mudaram, mas o sentido da coisa continua o mesmo. Caso você tenha interesse em brincar com o AES ou o S-AES você já vai ter uma noção.

Vamos ver aqui apenas alguns detalhes superficiais do S-AES.

Este algoritmo foi desenvolvido por um professor da Universidade de Santa Clara, com o auxílio de seus alunos. Seu objetivo é similar ao S-DES, ou seja, apenas para uso educacional.

Veja abaixo a representação do S-AES e compare com a versão S-DES e com a versão AES:


O algoritmo S-AES utiliza chaves e blocos de texto de 16 bits.

Efeito Avalanche

O efeito avalanche também está presente no algoritmo AES. Do mesmo modo que no DES, o efeito avalanche acontece quando uma modificação em 1 bit afeta completamente a saída do algoritmo, e quanto mais rodadas maior é o impacto da mutação.


Possivelmente em um próximo texto eu volte a falar um pouco mais sobre AES e criptografia simétrica, mas não se preocupe, nada tão complexo e aprofundado como o exemplo do S-DES! ;)

Eu fico hoje por aqui e aguardo você novamente para a próxima etapa desta série!

terça-feira, 14 de abril de 2015

Exercício prático com o S-DES

Hoje vamos ver então um exemplo prático de criptografia com o S-DES. Não vou colocar aqui novamente todas aquelas imagens e explicações, vou direto ao ponto.

A única coisa que vou buscar dos outros posts antes de começar é as subchaves que criamos.

K1 = 11110010
K2 = 11000111

Recomendo que abra abas com os textos passados do S-DES para ir acompanhando as operações.

Para não cortar o fluxo do exercício vou comentar antes sobre os XOR que aparecerão no texto. Teoricamente se você está lendo este texto provavelmente você tem uma noção de binário e operações com eles, caso não tenha já sabe o que precisa estudar! :)


Esta é a tabela do XOR. Mesmo sem ter estudado operações em binário da para ter uma noção do que ela faz. Caso ainda ficou alguma dúvida veremos na prática logo abaixo.

Chega de enrolação e vamos a prática!

Nossa primeira operação é a IP, que acho que esqueci de colocar nos textos anteriores sua caixa.



O texto claro que vamos criptografar, chamaremos de X:

X = 01010001

Etapa 1: Ao passarmos a entrada X pela caixa IP teremos como resultado "10001100".

Etapa 2: Dividimos X em duas partes, a primeira parte segue para o fim e a segunda parte entra em E/P. O "1100" que entra no E/P sai como "01101001".

Etapa 3: Saída de E/P entra em um XOR com a subchave K1:
01101001 --> E/P
11110010 --> K1
10011011 --> Resultado
Etapa 4: Saída do XOR é dividida em duas partes e cada uma entra em uma Caixa-S:
Saída = 10011011
S0 = 1001
S1 = 1011
Resultado S0 = Linha 11, Coluna 00, Valor 3 = 11
Resultado S1 = Linha 11, Coluna 01, Valor 1 = 01
Etapa 5: Resultado das Caixas-S é unido novamente e usado como entrada na caixa P4. "11" e "01" entram em P4 e como resultado geram "1101".

Etapa 6: XOR com a primeira parte de IP:
1000 --> IP
1101 --> P4
0101 --> Resultado
Etapa 7: Realizado a inversão de entradas com a caixa SW. Entradas "0101" (XOR - Etapa 6) e "1100" (IP - Etapa 1) viram as Saídas "1100" e "0101".

Etapa 8: Iniciando a segunda função complexa, a primeira metade da saída anterior vai para o fim do algoritmo e a segunda vai para a caixa E/P. Resultado de E/P é "10101010".

Etapa 9: XOR com a segunda subchave:
10101010 --> E/P
11000111 --> K2
01101101 --> Resultado
Etapa 10: Saída do XOR é dividida em duas partes e cada uma entra em uma Caixa-S:
Saída = 01101101
S0 = 0110
S1 = 1101
Resultado S0 = Linha 00, Coluna 11, Valor 2 = 10
Resultado S1 = Linha 11, Coluna 10, Valor 0 = 00
Etapa 11: Resultado das Caixas-S é unido novamente e usado como entrada na caixa P4. "10" e "00" entram em P4 e como resultado geram "0001".

Etapa 12: XOR com a primeira parte de SW:
1100 --> IP
0001 --> P4
1101 --> Resultado
Etapa 13: Por fim, o resultado do XOR (1101) e o segundo resultado de SW (0101) juntam-se e entram em IP -1 que gerará nosso texto cifrado. Temos então nesta prática como texto cifrado o valor "11000111".

E era isso! Se estivessemos usando o algoritmo DES normal, teríamos que repetir essas operações por mais 14 vezes.

Compare nossa entrada X = 01010001 com a saída final "11000111". Completamente diferente e sem nenhum sentido. Claro que neste exemplo usamos apenas um bloco, mas se quiser testar pode fazer com um algoritmo de verdade, com algum software de criptografia que comentarei em algum post futuro. Verá que o resultado é totalmente ilegível.

Efeito Avalanche

O efeito avalanche explica o motivo de um algoritmo de criptografia ter de repetir diversas vezes o mesmo conjunto de operações. A mínima mudança no texto plano ou na chave deve gerar grandes mudanças no texto cifrado. Quanto mais rodadas, mais o texto cifrado sofre do efeito avalanche e maior é o impacto dessa mudança. Veja a imagem do efeito avalanche do DES:


E com isso eu fico por aqui, dando um fim nessa jornada de criptografia com o S-DES. Aguarde o próximo texto com conteúdos novos!

Se esta gostando dos textos não esqueça de compartilhar com seus amigos e conhecidos o texto e o blog.

Até a próxima!

quinta-feira, 9 de abril de 2015

Criptografando com o S-DES

Seguindo com a série de criptografia, neste post vamos criptografar uma mensagem em texto claro com o algoritmo S-DES. No testo anterior vimos que o algoritmo necessita de subchaves, e vimos também o algoritmo de como são geradas.

Neste texto vamos ver como funciona a função complexa (fK) do algoritmo S-DES, e no próximo post, vamos fazer o processo completo da criptografia pelo algoritmo.

A função complexa tanto do DES quanto do S-DES é similar, a diferença está no número de rodadas. Veja abaixo o conteúdo, de uma forma simplificada, da função complexa.


As operações são similares as que vimos no algoritmo de geração de subchaves, então não tem necessidade de explicar novamente cada uma das operações.

O algoritmo representado na imagem é o DES, que possui 16 rodadas, chaves de 56 bits e blocos de 64 bits. Sabemos que no caso do S-DES temos apenas 2 rodadas. Caso não se lembra confira a imagem abaixo do S-DES:



Pode-se ver no algoritmo que a primeira rodada é onde a chave K1 entra, e a segunda rodada onde a chave K2 entra.

Se expandirmos a função fK temos as seguintes operações:



Na imagem acima podemos ver a Permutação Inicial (IP), quais operações compõe o fK (E/P, S0, S1, P4 e XOR),  o funcionamento do SW, uma segunda função fK com a segunda chave, e por fim a Permutação Final (IP -1).

As caixas E/P, S0, S1 e P4 funcionam do mesmo modo que as caixas P10, P8 e LS-1 do texto anterior.

Veja abaixo a organização das caixas:




As caixas E/P e P4 são simples, como as outras já apresentadas. Basta substituir a entrada de acordo com a ordem apresentada na imagem acima. Por exemplo, se recebermos como entrada na caixa E/P o número (binário) "1101", na saída teremos os bits dispostos de acordo com a imagem do E/P. Neste caso seguiremos a ordem 4º bit, 1º bit, 2º bit, 3º bit, 2º bit, 3º bit, 4º bit e por fim o 1º bit novamente. Neste caso a saída seria "11101011".

Já no caso da caixa S0 e S1, comumente chamadas de Caixas-S, são um pouco diferentes. A entrada da caixa-S é sempre 4 bits. O primeiro e o último bit representam a linha na matriz e o segundo e o terceiro bit representam a coluna da matriz. O resultado das coordenadas em decimal representa a saída da caixa-S, que deve ser convertido em binário.

Vamos a um exemplo. Vou usar aqui como entrada da caixa S0 o número "1010". Sabendo que o primeiro e quarto bit formam a linha (1º = 1, 4º = 0, ou seja, 10 binário = 2 decimal), e o segundo e terceiro formam a coluna (2º = 0, 3º = 1, ou seja, 01 binário = 1 decimal), temos as coordenadas da matriz.

O valor na posição (2, 1) é 2, ou seja, a saída da caixa S0 neste exemplo é 2 decimal = 10 binário.

Lembre-se que as linhas e colunas começam em 0 e não 1. As 4 linhas/colunas são 0, 1, 2 e 3.

Seguindo com o algoritmo, após a permutação inicial (P1) de 8 bits, os 8 bits são divididos em 2 blocos de 4 bits, a primeira metade vai para o fim do algoritmo para o XOR e a segunda metade para a caixa E/P e para o SW para a próxima rodada. A saída de 8 bits do E/P passa por um XOR com a primeira subchave e seu resultado é dividido e 2 blocos de 4 bits que entrarão nas caixas-S S0 e S1.

Os 2 blocos de 2 bits como saída das caixas-S entram na caixa P4. O resultado de 4 bits da saída de P4 passa por um XOR com a primeira parte do bloco que foi dividido na permutação inicial (IP), que ainda não tinha sido usado.

A saída do XOR e o segundo bloco de 4 bits da permutação inicial entram no SW, que inverte a ordem das entradas e usa na segunda rodada da função complexa.

Após realizar novamente as operações da função complexa, sua saídas vão para a permutação final (IP -1) e a saída desta permutação é o texto cifrado.

Neste caso a teoria é muito mais difícil que a prática, mas a teoria é necessária. Caso não tenha entendido alguma coisa, releia e acompanhe o texto com as imagens de referência, seguindo o fluxo do algoritmo.

No próximo texto vamos fazer todo o processo de criptografia, usando as subchaves que criamos no texto anterior.

Caso não tenha entendido alguma coisa poste sua dúvida aqui no post ou no grupo do Facebook que responderei e explicarei novamente se for necessário.
Subscribe to RSS Feed Follow me on Twitter!