
Pesquisadores poloneses propuseram uma nova forma de esteganografia de rede baseada nas características de funcionamento do amplamente utilizado protocolo de nível de transporte TCP. Os autores do trabalho acreditam que seu esquema, por exemplo, pode ser aplicado para enviar mensagens ocultas em países totalitários que impõem uma rígida censura na internet. Vamos tentar entender qual é, de fato, a inovação e quão útil ela realmente é.
Em primeiro lugar, é preciso definir o que é esteganografia. A esteganografia é a ciência da transmissão oculta de mensagens. Ou seja, usando seus métodos, as partes tentam esconder o próprio fato da transmissão. Essa é a diferença entre essa ciência e a criptografia, que tenta tornar o conteúdo da mensagem inacessível à leitura. Vale ressaltar que a comunidade profissional de criptografia tem uma atitude bastante desdenhosa em relação à esteganografia devido à proximidade de sua ideologia com o princípio "Security through obscurity" (não sei como isso soa em russo, algo como "Segurança pela ignorância"). Esse princípio, por exemplo, é utilizado pela empresa Skype Inc. — o código-fonte do popular aplicativo de chamadas é fechado e ninguém realmente sabe como exatamente a criptografia dos dados é realizada. Recentemente, aliás, a NSA comentou sobre isso, como informou o renomado especialista Bruce Schneier em seu blog.
Voltando à esteganografia, respondamos à pergunta: por que ela é necessária, se já existe a criptografia? De fato, é possível criptografar uma mensagem usando algum algoritmo moderno e, com uma chave suficientemente longa, ninguém conseguirá ler essa mensagem, a menos que você permita. No entanto, às vezes é mais útil ocultar o próprio fato de que uma transmissão secreta ocorreu. Por exemplo, se as autoridades interceptaram sua mensagem criptografada e não conseguem decifrá-la, mas gostariam muito de fazê-lo, podem existir métodos não computacionais de influência e coleta de informações. Pode parecer distópico, mas, convenhamos, isso é, em princípio, possível. Portanto, é melhor garantir que aqueles que não deveriam saber não tenham ideia de que a transmissão ocorreu. Pesquisadores poloneses propuseram exatamente esse método. E a proposta é implementá-lo através de um protocolo que cada usuário da internet utiliza mil vezes por dia.
Aqui nos aproximamos do Protocolo de Controle de Transmissão (TCP). Explicar todos os seus detalhes, evidentemente, não faz sentido — seria longo e entediante, aqueles que realmente precisam já sabem. Em resumo, o TCP é um protocolo de transporte (ou seja, opera "acima" do IP e "abaixo" dos protocolos de nível de aplicação, como HTTP, FTP ou SMTP), que garante a entrega confiável de dados do remetente ao destinatário. A entrega confiável significa que, se algum pacote se perder ou chegar corrompido, o TCP se encarregará de reencaminhar esse pacote. É importante observar que por alterações em um pacote se refere a distorções não intencionais de dados, mas sim erros de transmissão que ocorrem no nível físico. Por exemplo, enquanto um pacote transitava por cabos de cobre, alguns bits mudaram seu valor para o oposto ou se perderam no meio do ruído (aliás, para Ethernet, o valor da Taxa de Erro de Bit geralmente é considerado em torno de 10-8). A perda de pacotes em trânsito também é um fenômeno relativamente frequente na internet. Isso pode ocorrer, por exemplo, devido à sobrecarga de roteadores, o que leva ao transbordo de buffers e, como consequência, ao descarte de todos os pacotes recém-chegados. Normalmente, a proporção de pacotes perdidos é em torno de 0,1%, mas quando esse valor chega a alguns por cento, o TCP simplesmente para de funcionar corretamente — o usuário enfrentará uma lentidão extrema.
Assim, vemos que a retransmissão de pacotes é um fenômeno comum e necessário para o TCP. Então, por que não usá-lo para as necessidades da esteganografia, dado que o TCP, como já mencionado, é amplamente utilizado (estima-se que atualmente a participação do TCP na internet atinja entre 80-95%)? A essência do método proposto é enviar, na mensagem transmitida, não o que estava no pacote original, mas sim os dados que tentamos ocultar. E detectar essa substituição não é tão simples. Afinal, é preciso saber onde olhar — o número de conexões TCP simultâneas passando pelo provedor é simplesmente enorme. Se soubermos o nível aproximado de retransmissão na rede, podemos ajustar o mecanismo de transmissão esteganográfica de forma que sua conexão não se diferencie das demais.
Claro que esse método não está isento de desvantagens. Por exemplo, do ponto de vista prático, implementá-lo não é tão simples — isso exigirá mudanças na pilha de rede dos sistemas operacionais, embora não seja nada excessivamente complicado. Além disso, com recursos suficientes, ainda é possível detectar pacotes "secretos"; para isso, é necessário examinar e analisar cada pacote na rede. Mas, geralmente, isso é praticamente impossível, então, normalmente, procuramos pacotes e conexões que se destaquem, e o método proposto realmente torna sua conexão nada notável. Também não há nada que impeça você de criptografar dados secretos por precaução. Dessa forma, a própria conexão pode permanecer não criptografada para gerar menos suspeitas.
Os autores do trabalho (aliás, quem se interessar, mostraram) em nível de simulação que o método proposto funciona como previsto. Talvez, no futuro, alguém venha a implementar a ideia deles na prática. E então, esperemos, a internet terá um pouco menos de censura.
Fonte: habr.com
