• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Revolution

Melhorar sistema de encriptação do BT Revolution

28 mensagens neste tópico

Perguntas:

- O código que meteste já funciona ou não?

- O código que meteste foi feito por ti?

Cumps

P.S.: quando usas as tags CODE para meteres código, faz CODE=Python para ficar com highlight de Pitão. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Perguntas:

- O código que meteste já funciona ou não?

- O código que meteste foi feito por ti?

Cumps

P.S.: quando usas as tags CODE para meteres código, faz CODE=Python para ficar com highlight de Pitão. ;)

Pelos comentário diria que não foi feito por ele.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelos comentário diria que não foi feito por ele.

O segundo vi que não... Mas no primeiro a docstring não me elucidou totalmente... :|

E fiquei sem perceber o que ele quer...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso supostamente já funciona.

Então tu vais publicar o código desse tal cliente para não infringir a licença do ABC nem do BitTornado certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que o ISP efectua o traffic shapping? Ou seja, como sabe que os dados são do protocolo BitTorrent?

Antes de pensar como contornar, é preciso conhecer bem o problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nice isso é que é preciso ;)

Olha se calhar não é preciso tanta coisa, basta fazer com que os dados transmitidos não se assemelhem ao protocolo bittorrent, o que podes fazer è aplicar um XOR a todos os dados, por exemplo:

>>> XORCode=123 #0-255
>>> data='cenas do protocolo bittorrent'
>>> encr=''.join(map(lambda x:chr(ord(x)^XORCode), data))
>>> encr
'\x18\x1e\x15\x1a\x08[\x1f\x14[\x0b\t\x14\x0f\x14\x18\x14\x17\x14[\x19\x12\x0f\x0f\x14\t\t\x1e\x15\x0f'
>>> ''.join(map(lambda x:chr(ord(x)^XORCode), encr))
'cenas do protocolo bittorrent'

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Revolution o sistema de encriptação acho que é igual em todos os clientes, senão o cliente x só pode ligar ao cliente x. Se tu criares um novo vais estar a restringir o cliente ao teu.

Já agora, que ISP "cortam" na velocidade do bittorent?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Revolution, imagina isto. Se eu quero enviar-te uma mensagem e cifrar com um método que só eu sei, achas que tu conseguirias decifrar a mensagem?

É isso que o fnds está a dizer.

Agora, se o teu tracker já restringe a um cliente, acho que não terás problemas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Revolution, tenta implementar aquilo que eu te dei, pode ser que funcione.

Mas não te esqueças que o pessoal vai ter todo de usar o mesmo cliente.

Eu não conheço muito bem o ABC, mas procura pela parte onde são feitas as conecções p2p, depois só tens de alterar o recv e o write do socket de modo a que os dados sejam enviados "cifrados" e recebidos limpos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

Revolution , tal como o Triton disse, antes de começar a alterar o código, o melhor era começar por estudar as formas de traffic shaping, a forma como é feito, etc...

Continuando... Dependendo de que forma o teu ISP faz traffic shaping, podes ou nao conseguir apenas encriptando o payload e o header dos pacotes...  Segundo percebi, o código que tens ja faz alguma encriptação. Mas ele encripta apenas o payload ou encripta também os header's?

Outra alternativa seria fazeres tunneling. Ao fazeres isso crias um canal entre os dois pontos da ligação e todo o tráfego que passa nesse canal é encriptado e assim torna-se mais complicado para o ISP saber o que vao la dentro. Para fazeres alguns teste com SSH.

Procura por AQUI como podes fazer. Tens varios exemplo de como podes fazer. Basta adaptares ao que tu precisas. Se assim resultar, podes entao avançar para a implementação desse sistema no teu programa!

Alguma dúvida, é só perguntares

EDIT:

Encontrei aqui um simples how-to que podes seguir para perceber como podes fazer

Link

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continuo a achar que o meu método é o mais simples, aquilo destroce os dados TODOS que são transmitidos logo é "impossível" o ISP saber qual o protocolo.

O problema é que o ISP pode reduzir a velocidade a tudo menos X protocolos conhecido, mas duvido que isto aconteça.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continuo a achar que o meu método é o mais simples, aquilo destroce os dados TODOS que são transmitidos logo é "impossível" o ISP saber qual o protocolo.

O problema é que o ISP pode reduzir a velocidade a tudo menos X protocolos conhecido, mas duvido que isto aconteça.

Bem, sempre podias esconder dados dentro de pacotes de coisas conhecidas, como HTTP. B)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continuo a achar que o meu método é o mais simples, aquilo destroce os dados TODOS que são transmitidos logo é "impossível" o ISP saber qual o protocolo.

O problema é que o ISP pode reduzir a velocidade a tudo menos X protocolos conhecido, mas duvido que isto aconteça.

O facto de distorcer todos os dados que vão nos pacotes não adianta nada se o ISP fizer um traffic shaping avançado que pode entre outras coisas verificar o handshak, tamanho dos pacotes, frequencia com que existe um determinado tipo de tráfego, etc, etc. Agora tudo depende de como eles fazem isso... É experimentar, ate pode ser que o que ti disseste baste...

Bem, sempre podias esconder dados dentro de pacotes de coisas conhecidas, como HTTP. B)

Pois, também é uma hipotese... http tunneling...

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O facto de distorcer todos os dados que vão nos pacotes não adianta nada se o ISP fizer um traffic shaping avançado que pode entre outras coisas verificar o handshak, tamanho dos pacotes, frequencia com que existe um determinado tipo de tráfego, etc, etc. Agora tudo depende de como eles fazem isso... É experimentar, ate pode ser que o que ti disseste baste...

O handshak também era distorcido. EU acho que isto era o suficiente para o caso, fazer um filtro tão complexo exige uma grande capacidade de processamento não?

http tunneling involve um servidor HTTP pelo meio, mas a ideia de modificar o "aperto de mão" usando um protocolo conhecido por não usar muita largura de banda é boa ideia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O handshak também era distorcido. EU acho que isto era o suficiente para o caso, fazer um filtro tão complexo exige uma grande capacidade de processamento não?

....

Sim, exige alguma capacidade de processamento e talvez algum equipamento extra... e tendo em conta que eles limitam as velocidades porque estao limitados a alguns niveis, também não me parece que invistam num grande sistema de traffic shaping... mas, nunca se sabe...lol

É experimentar... se o ktorrent consegue passar despercebido e é open source não era má ideia explorar o código e/ou analizar o trafego gerado pelo azureus que pelo que sei também consegue passar despercebido com algumas configurações...

...mas a ideia de modificar o "aperto de mão" usando um protocolo conhecido por não usar muita largura de banda é boa ideia.

fnds, podes-me dar umas luzes de como isso pode ser feito? Simular um servidor HTTP para fazer o handshake?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bah! O sapo está a fazer esse ****a à minha conta! Agora não passo dos 50KBps nos torrents todos somados...

E pelos visto as ligações HTTP também, estão limitadas a 500KBps cada.

fnds, podes-me dar umas luzes de como isso pode ser feito? Simular um servidor HTTP para fazer o handshake?

Exacto, usas um cabeçalho HTTP para fazer o handshake e o corpo para transferir dados por exemplo. O problema é que no fim os dois têm de um cliene que proceda da mesma forma.

Já agora, o BT Next não é afectado?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

Revolution , como distorces-te o trafego para passar alguns ISP's?

E como é que estas a fazer os testes? Estas tu proprio a alojar um tracker ou estas a utilizar um publico?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ah ja tou a ver! Conhecer mesmo conhecer nao conhecia..lol mas ja tinha ouvido falar!

Entao e diz-me uma coisa, isso ta alojado num servidor onde possas meter outros programas a rodar, ou é um servidor alogado?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por favor peço a um moderador que apague este tópico.

Obrigado!

Os tópicos não se apagam assim sem mais nem menos. É uma falta de respeito para com todos os utilizadores que postaram aqui...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque ninguém sabe como resolver.

E as dicas que deram foram puramente postes de pescada.

E é um tópico sem futuro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque não encriptas o trafego? Ao que pude ler e tanto quanto sei a analise de pacotes não é muito eficaz em pacotes encriptados, porque não aplicas alguma coisa como SSL ou TLS nas ligações?? Assim tenho as minhas duvidas que algum ISP intercepte e identifique os packets.

A necessidade aguça o engenho. Apagar topicos não aguça nada!

Lembra-te que se estás a evitar o controlo por parte dos ISP o pessoal dos ISP também lê forums.

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque ninguém sabe como resolver.

E as dicas que deram foram puramente postes de pescada.

E é um tópico sem futuro.

Já te foram dadas várias alternativas. Tu é que saiste uma "posta de pescada"...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Convidado
Este tópico está fechado a novas respostas.