Após um ano de desenvolvimento, foi lançado o ZeroNet, uma plataforma web descentralizada , que oferece a utilização de mecanismos de endereçamento e verificação do Bitcoin em combinação com tecnologias de entrega distribuída do BitTorrent para criar sites que não podem ser censurados, falsificados ou bloqueados. O conteúdo dos sites é armazenado em uma rede P2P nos dispositivos dos visitantes e é verificado por meio da assinatura digital do proprietário. Para endereçamento, são utilizados sistemas alternativos de servidores DNS raiz . O projeto é escrito na linguagem Python e sob a licença GPLv2.
Os dados hospedados no site são verificados e vinculados à conta do proprietário do site, similar à vinculação de carteiras Bitcoin, o que também permite controlar a atualidade das informações e atualizar o conteúdo em tempo real. Para ocultar endereços IP, pode-se usar a rede anônima Tor, cujo suporte está embutido no ZeroNet. O usuário participa da distribuição de todos os sites que acessou. Após o download para o sistema local, os arquivos são salvos em cache e tornam-se disponíveis para distribuição a partir da máquina atual, utilizando métodos semelhantes ao BitTorrent.
Para visualizar sites ZeroNet, basta executar o script zeronet.py, após o qual é possível abrir sites no navegador através da URL "http://127.0.0.1:43110/enderec_zeronet" (por exemplo, "http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D"). Ao abrir o site, o programa encontra os peers mais próximos e carrega os arquivos relacionados à página solicitada (html, css, imagens etc.).
Para criar seu próprio site, basta executar o comando "zeronet.py siteCreate", após o qual será gerado um identificador de site e uma chave privada para confirmar a autoria por meio da assinatura digital.
Para o site criado, será formada uma diretório vazia no formato "data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D". Após alterar o conteúdo deste diretório, é necessário assinar a nova versão usando o comando "zeronet.py siteSign identificador_site" e introduzindo a chave privada. Assim que o novo conteúdo for assinado, é necessário anunciá-lo com o comando "zeronet.py sitePublish identificador_site" para que a versão alterada se torne disponível para os peers (para o anúncio das alterações, utiliza-se a API WebSocket). Nesta cadeia, os peers verificarão a integridade da nova versão por meio da assinatura digital, carregarão o novo conteúdo e o transferirão para outros peers.
Principais :
- A ausência de um ponto único de falha — o site permanece acessível se houver pelo menos um peer na distribuição;
- A ausência de um repositório padrão do site — o site não pode ser encerrado desconectando o serviço de hospedagem, pois os dados estão distribuídos em todas as máquinas dos visitantes;
- Todas as informações previamente visualizadas estão em cache e disponíveis a partir da máquina atual em modo offline, sem necessidade de conexão à rede global.
- Suporte à atualização de conteúdo em tempo real;
- Possibilidade de endereçamento através do registro de domínio na zona «.bit»;
- Funciona sem configuração prévia — basta descompactar o arquivo com o software e executar um script;
- Possibilidade de clonagem de sites com um clique;
- Autenticação sem senha baseada no formato : a conta é protegida pelo mesmo método criptográfico que a criptomoeda Bitcoin;
- Servidor SQL integrado com recursos de sincronização de dados P2P;
- Possibilidade de usar Tor para anonimato e total suporte para o uso de serviços ocultos Tor (.onion) em vez de endereços IPv4;
- Suporte à criptografia TLS;
- Disponibilidade automática via uPnP;
- Possibilidade de anexar vários autores ao site, cada um com assinaturas digitais diferentes;
- Disponibilidade de um plug-in para criar configurações multiusuário (openproxy);
- Suporte à transmissão de fluxos de notícias;
- Funciona em todos os navegadores e sistemas operacionais.
Principais mudanças no ZeroNet 0.7
- Código reestruturado para suporte ao Python3, garantindo compatibilidade com Python 3.4-3.8;
- Implementado modo de sincronização de banco de dados seguro;
- Interrompido, quando possível, o fornecimento de bibliotecas de terceiros do pacote principal em favor de dependências externas;
- Código para verificação de assinaturas digitais acelerado em 5-10 vezes (usada a biblioteca libsecp256k1;
- Adicionada randomização de certificados já gerados para contornar filtros;
- Código P2P atualizado, que foi adaptado para usar o protocolo ZeroNet;
- Adicionado modo de operação offline;
- Adicionado plug-in UiPluginManager para instalação e gerenciamento de plug-ins de terceiros;
- Total suporte ao OpenSSL 1.1;
- Ao se conectar com peers, são utilizados registros fictícios SNI e ALPN, para tornar as conexões mais parecidas com acessos a sites comuns via HTTPS;
No mesmo dia do lançamento do ZeroNet 0.7.0 Atualização 0.7.1, que corrige uma vulnerabilidade crítica que potencialmente permite a execução de código no lado do cliente. Devido a um erro no código de renderização de variáveis de template, um site externo aberto pode estabelecer uma conexão com o sistema do cliente via WebSocket com permissões ADMIN/NOSANDBOX ilimitadas, o que possibilita alterar configurações e executar código no computador do usuário através de manipulações com o parâmetro open_browser.
A vulnerabilidade se manifesta na ramificação 0.7, bem como em compilações experimentais a partir da revisão. (alteração feita há 20 dias).
Fonte: opennet.ru
