2015/06/02

BGP - como a internet de hoje está dependente de um "desenrasque" do século passado


De vez em quando vamos espreitando como funcionam os aspectos mais profundos das redes (como o TCP/IP) e hoje o tema será o BGP; mais um componente crítico para o funcionamento da internet... mas que foi inicialmente concebido como um desenrasque de curta duração... já lá vão mais de 25 anos!


Se ainda se recordam de como o TCP/IP funciona, saberão que esse protocolo permite que um computador comunique com outro, colocando nos pacotes de dados o seu endereço e o do destinatário. A questão é que, para chegar ao destino, esses dados terão que passar por uma dezena de routers, e a questão que se coloca é: como é que um router sabe para onde enviar cada pacote? É que ao contrário dos endereços de nossas casas, a Internet não tem um mapa estático de onde estão os servidores/endereços; para além de que, a qualquer momento, uma ligação poderá ficar saturada ou inoperacional, necessitando que os dados sejam reencaminhados por outra via.

A resposta é o BGP (Border Gateway Protocol)... também conhecido como o protocolo dos três guardanapos - alusão à sua origem, quando foi rabiscado em 1989 como uma forma de desenrascar a confusão da gestão do tráfego nas redes, numa altura em que a "internet" começava a ter um crescimento exponencial.


O BGP é o protocolo que permite aos routers comunicarem entre eles, para que combinem os "melhores caminhos" para os dados. É graças a ele que um router saberá que um pacote com destino a um servidor nos EUA deverá ser reencaminhado para um router que o faça aproximar do seu destino, em vez de seguir em direcção à Austrália para dar a volta ao mundo.

O problema é que, tal como muitos outros elementos em que a internet assenta, o BGP foi criado numa altura em que se assumia que a rede era constituída por elementos de confiança... algo que infelizmente já não se pode assumir, e que agora se torna numa gigantesca vulnerabilidade que pode originar um verdadeiro "apocalipse digital".

Ao confiar implicitamente no que os routers dizem, uma entidade maliciosa pode enviar informações falsas, e desviar o tráfego de dados na internet. Situação que já aconteceu em 2010 (supostamente por acidente), quando os dados destinados aos EUA foram reencaminhados pela China. Na prática, é o equivalente a dizerem aos routers que o caminho para os EUA é "mais rápido" se passar pela vossa rede, e os routers alegremente acreditarão em vocês e redireccionarão os pacotes para vocês.

Nesta altura já se trabalham em formas que adicionem maior segurança a este protocolo, para evitar que este tipo de coisa possa acontecer de forma tão fácil; mas na verdade acaba por demonstrar também a necessidade de encriptação de todos os dados que percorrem a internet, de modo a que se torne irrelevante por onde é que os dados passam ou se alguém os está a monitorizar.

Ainda assim, não deixa de ser um pouco assustador que uma solução de desenrasque continue a ser um dos blocos essenciais para o funcionamento da Internet como a conhecemos... mais de um quarto de século depois de ter sido criada.

4 comentários:

  1. Para quem quiser brincar um bocadinho com o BGP e aprender mais, há sempre o GNS3 e o Packet Tracer.

    ResponderEliminar
    Respostas
    1. E o boson. A linha de entrada da Cisco (serie 800), não suporta coisas tão avançadas, mas dá para brincar com mais simples como o RIP. Tendo em conta que muitos modelos são em fim de vida e andam pela hora da morte no ebay, não fica caro ter um cisco em casa....porque sim :P

      Eliminar
  2. Acho que tens que ler sobre BGP na CloudFare. https://blog.cloudflare.com/cloudflares-architecture-eliminating-single-p/

    ResponderEliminar
  3. Chama-se route poisoning e não é exclusivo de BGP. Qualquer protocolo de routing dinâmico, quando mal configurado é vulneravel a envenenamento de rotas. Porque é que achas que anos atrás um grupo de hackers testemunhou perante o senado americano, que "conseguia facilmente mandar abaixo o backbone da internet?"
    Não estavam a falar em desligar cabos :P
    E já aconteceu, embora por falha humana.
    As ultimas versões do BGP permitem um certo nível de autenticação entre routers de diferentes Autonomous systems (redes de isps diferentes) mas com router com tabelas na ordem de milhares de rotas é difícil segurar todos os casos possíveis.

    ResponderEliminar