Esteganografia TCP ou como ocultar a transmissão de dados na Internet

Esteganografia TCP ou como ocultar a transmissão de dados na Internet

Pesquisadores poloneses propuseram um novo método de esteganografia de rede baseado nos recursos operacionais do protocolo da camada de transporte TCP, amplamente utilizado. Os autores do trabalho acreditam que o seu esquema, por exemplo, pode ser usado para enviar mensagens ocultas em países totalitários que impõem censura estrita à Internet. Vamos tentar descobrir o que realmente é a inovação e quão útil ela realmente é.

Antes de mais nada, é preciso definir o que é esteganografia. Portanto, a esteganografia é a ciência da transmissão de mensagens ocultas. Ou seja, usando os métodos dela, as partes tentam esconder o próprio fato da transferência. Esta é a diferença entre esta ciência e a criptografia, que tenta tornar o conteúdo da mensagem ilegível. É importante notar que a comunidade profissional de criptógrafos despreza bastante a esteganografia devido à proximidade de sua ideologia com o princípio de “Segurança através da obscuridade” (não sei como soa corretamente em russo, algo como “Segurança através da ignorância ”). Este princípio, por exemplo, é usado pela Skype Inc. — o código-fonte do discador popular é fechado e ninguém sabe exatamente como os dados são criptografados. Recentemente, aliás, a NSA reclamou disso, como observou o famoso especialista Bruce Schneier escreveu no meu blog.

Voltando à esteganografia, responderemos à pergunta: por que ela é necessária se existe criptografia? Na verdade, você pode criptografar uma mensagem usando algum algoritmo moderno e se usar uma chave suficientemente longa, ninguém será capaz de ler esta mensagem a menos que você queira. No entanto, às vezes é mais útil esconder o próprio fato de uma transferência secreta. Por exemplo, se as autoridades relevantes interceptaram sua mensagem criptografada e não conseguem decifrá-la, mas realmente desejam, então, afinal, existem métodos não informáticos para influenciar e obter informações. Parece distópico, mas, veja bem, isso é possível em princípio. Portanto, seria melhor garantir que aqueles que não deveriam saber de forma alguma que a transferência ocorreu. Pesquisadores poloneses propuseram exatamente esse método. Além disso, propõem fazer isso por meio de um protocolo que todo internauta utiliza mil vezes ao dia.

Aqui chegamos perto do Protocolo de Controle de Transmissão (TCP). Explicar todos os seus detalhes, claro, não faz sentido - é longo, chato e quem precisa já sabe disso. Resumindo, podemos dizer que o TCP é um protocolo da camada de transporte (ou seja, funciona “sobre” IP e “sob” protocolos da camada de aplicação, como HTTP, FTP ou SMTP), que garante a entrega confiável de dados do remetente para o destinatário. Entrega confiável significa que se um pacote for perdido ou chegar modificado, o TCP se encarregará de encaminhar esse pacote. Observe que alterações no pacote aqui não significam distorção intencional de dados, mas erros de transmissão que ocorrem no nível físico. Por exemplo, enquanto o pacote estava viajando ao longo de fios de cobre, alguns bits mudaram seu valor para o oposto ou foram completamente perdidos em meio ao ruído (a propósito, para Ethernet o valor da taxa de erro de bit geralmente é considerado cerca de 10-8 ). A perda de pacotes em trânsito também é uma ocorrência relativamente comum na Internet. Pode ocorrer, por exemplo, devido à carga nos roteadores, o que leva ao buffer overflow e, consequentemente, ao descarte de todos os pacotes recém-chegados. Normalmente, a proporção de pacotes perdidos é de cerca de 0.1% e, com um valor de alguns por cento, o TCP para de funcionar normalmente - tudo será terrivelmente lento para o usuário.

Assim, vemos que o encaminhamento (retransmissão) de pacotes é um fenômeno frequente para o TCP e, em geral, necessário. Então, por que não usá-lo para necessidades de esteganografia, já que o TCP, como mencionado acima, é usado em todos os lugares (de acordo com várias estimativas, hoje a participação do TCP na Internet chega a 80-95%). A essência do método proposto é enviar na mensagem encaminhada não o que estava no pacote primário, mas os dados que estamos tentando ocultar. No entanto, detectar tal substituição não é tão fácil. Afinal, você precisa saber onde procurar - o número de conexões TCP simultâneas que passam pelo provedor é simplesmente enorme. Se você conhece o nível aproximado de retransmissão na rede, pode ajustar o mecanismo de encaminhamento esteganográfico para que sua conexão não seja diferente das demais.

É claro que este método não está isento de desvantagens. Por exemplo, do ponto de vista prático, implementá-lo não será tão fácil - exigirá uma mudança na pilha de rede nos sistemas operacionais, embora não haja nada proibitivamente difícil nisso. Além disso, se você tiver recursos suficientes, ainda é possível detectar pacotes “secretos” visualizando e analisando cada pacote da rede. Mas via de regra isso é praticamente impossível, então eles costumam procurar pacotes e conexões que se destaquem de alguma forma, e o método proposto é justamente o que torna sua conexão normal. E ninguém está impedindo você de criptografar dados secretos, apenas por precaução. Ao mesmo tempo, a própria conexão pode permanecer descriptografada para levantar menos suspeitas.

Os autores da obra (aliás, para os interessados, aqui ela) mostrou no nível de simulação que o método proposto funciona conforme pretendido. Talvez no futuro alguém implemente sua ideia na prática. E então, esperançosamente, haverá um pouco menos de censura na Internet.

Fonte: habr.com

Adicionar um comentário