A esteganografia é a prática de esconder mensagens ou informações dentro de outros textos ou dados não secretos. Usando estes programas, pode esconder mensagens de texto dentro de excertos de livros ou até livros inteiros.
Plainsight é uma ferramenta de esteganografia textual, escrita em Python, que lhe permite cifrar uma mensagem num formato de texto simples e sem sentido, consistindo em palavras de dicionário, utilizando um texto-fonte.
A forma mais fácil de instalar Plainsight é utilizando o programa de instalação preferido do Python (pip). Muitas distribuições Linux têm-no pré-instalado, mas se não o tiver:
$ pacman -S python-pip
E agora instalar o Plainsight:
$ pip install plainsight
Os módulos de Python bitstring e progressbar são também necessários para executar o programa.
$ pip install bitstring $ pip install progressbar
Para utilizar a Plainsight, é necessário ter um texto-fonte. Isto é o que será utilizado para cifrar a sua mensagem. Pode usar qualquer coisa como texto-fonte, mas as pessoas normalmente usam livros/letras músicais/poemas. No entanto, se puder pré-organizar um texto-fonte privado com o(s) destinatário(s) pretendido(s), seria mais seguro do que utilizar um texto público.
Para este exemplo, vou usar os Lusíadas.
Primeiro vamos criar um novo diretório para guardar os conteúdos deste tutorial, e depois entra nele:
mkdir ~/plainsight cd ~/plainsight
De forma a cifrar uma mensagem, é necessário canalizá-la através do programa. Criamos o ficheiro o seguinte ficheiro:
echo "Esta é a minha mensagem super secreta." > mensagem.txt
Agora vamos usar os Lusíadas como texto-fonte no nosso exemplo. Podes fazer download do ficheiro texto através do Project Gutenberg:
curl -o ~/plainsight/lusiadas.txt https://www.gutenberg.org/files/3333/3333-8.txt
Agora vamos passar a nossa mensagem pelo plainsight usando o nosso texto-fonte escolhido.
cat mensagem.txt | plainsight -m encipher -f lusiadas.txt > textocifrado.txt
Vamos agora ver como ficou o texto cifrado que agora, não passa de nada se não uma algaravia autêntica:
cat textocifrado.txt
todo Nem o esforço nenhum grande esforço olhos dando o Véu se com os bicos, se ale terra, toda remota antiguidade. que Albuquerque Rei, que por ele e forte peito vil tempo lhe nega. bebe, fogo e ferro por ele iroso, revolvido Atlântico algum nunca falte se os dentes os grandes as em em tal filho e lá da costa que o Reino próspero ser mortos vê do mundo, A oferecido. povo, campo
A mensagem de 38 caracteres foi cifrada em 380 caracteres de palavras dispostas aleatoriamente a partir do texto original dos Luisíadas.
Agora para decifrar a mensagem:
cat textocifrado.txt | plainsight -m decipher -f lusiadas.txt > textodecifrado.txt cat textodecifrado.txt "Esta é a minha mensagem super secreta."
Como se pode ver, a mensagem foi decifrada com toda a formatação e pontuação intactas.
O plainsight também funciona bem com ficheiros. Consegui cifrar e decifrar com sucesso um ficheiro PNG, um ficheiro C e um ficheiro ZIP, por isso deve funcionar bem para qualquer tipo de ficheiro.
O plainsight não é realmente ideal para ficheiros grandes, uma vez que se começar a atingir vários megabytes em tamanho, leva muito mais tempo a cifrar/decifrar, e o ficheiro de saída é muito maior em tamanho.
Pode facilmente colocar o plainsight com outras tecnologias para uma protecção extra. Por exemplo, encriptar a suas mensagens com PGP e passa-las através da Plainsight. Desta forma, tem a segurança e privacidade do PGP combinada com a obscuridade do plainsight.