Freenet

Inicialmente, os locais em Darknet são distribuídos aleatoriamente. Isto significa que o encaminhamento dos pedidos é essencialmente aleatório. Em Opennet as conexões são estabelecidas por uma requisição de join que fornece uma estrutura de rede otimizada se a rede existente já estiver otimizada. Então os dados em uma Freenet recém iniciada serão distribuídos um pouco aleatoriamente.

Como a troca de localização (em Darknet) e a dobra de caminho (em Opennet) progridem, nós que estão próximos uns dos outros terão cada vez mais localizações próximas, e nós que estão longe terão localizações distantes. Dados com chaves similares serão armazenados no mesmo nó.

O resultado é que a rede irá se auto-organizar em uma estrutura distribuída e agrupada, onde os nós tendem a manter os itens de dados que estão próximos uns dos outros no espaço da chave. Provavelmente haverá múltiplos clusters desse tipo em toda a rede, qualquer documento sendo replicado inúmeras vezes, dependendo de quanto ele é usado. Este é um tipo de “quebra espontânea de simetria”, na qual um estado inicialmente simétrico (todos os nós são iguais, com chaves iniciais aleatórias uns para os outros) leva a uma situação altamente assimétrica, com os nós se especializando em dados que têm chaves intimamente relacionadas.

Existem forças que tendem a causar clustering (dados de proximidade compartilhados se espalham pela rede), e forças que tendem a quebrar clusters (cache local de dados comumente usados). Essas forças serão diferentes dependendo da freqüência com que os dados são utilizados, de modo que os dados raramente utilizados tenderão a estar em apenas alguns nós especializados em fornecer esses dados, e os itens freqüentemente utilizados serão amplamente disseminados por toda a rede. Este espelhamento automático contraria os tempos em que o tráfego da web fica sobrecarregado, e devido ao roteamento inteligente de uma rede madura, uma rede de tamanho n deve requerer apenas tempo de log(n) para recuperar um documento em média.

KeysEdit

Keys are hashes: não há noção de proximidade semântica quando se fala de proximidade de chaves. Portanto, não haverá correlação entre proximidade de chave e popularidade similar de dados como poderia haver se as chaves tivessem algum significado semântico, evitando assim gargalos causados por assuntos populares.

Existem duas variedades principais de chaves em uso na Freenet, a Content Hash Key (CHK) e a Signed Subspace Key (SSK). Um subtipo de SSKs é a Updatable Subspace Key (USK) que adiciona o versionamento para permitir a atualização segura do conteúdo.

A CHK é um hash SHA-256 de um documento (após a criptografia, que depende do hash do texto em quadrado) e assim um nó pode verificar se o documento retornado está correto ao hashá-lo e verificar o digito em relação à chave. Esta chave contém a carne dos dados na Freenet. Ela transporta todos os blocos de construção de dados binários para o conteúdo a ser entregue ao cliente para remontagem e decriptação. O CHK é único por natureza e fornece um conteúdo à prova de manipulação. Um nó hostil que altera os dados sob um CHK será imediatamente detectado pelo próximo nó ou pelo cliente. Os CHKs também reduzem a redundância de dados uma vez que os mesmos dados terão o mesmo CHK e quando vários sites fazem referência aos mesmos arquivos grandes, eles podem fazer referência ao mesmo CHK.

SSKs são baseados em criptografia de chave pública. Atualmente a Freenet usa o algoritmo DSA. Documentos inseridos sob SSKs são assinados pelo inseridor, e essa assinatura pode ser verificada por cada nó para garantir que os dados não sejam adulterados. Os SSKs podem ser usados para estabelecer uma identidade pseudônima verificável na Freenet e permitir que vários documentos sejam inseridos com segurança por uma única pessoa. Os arquivos inseridos com um SSK são efetivamente imutáveis, já que a inserção de um segundo arquivo com o mesmo nome pode causar colisões. Os USKs resolvem isso adicionando um número de versão às chaves, que também é usado para fornecer notificação de atualização para chaves registradas como marcadores na interface web. Outro subtipo do SSK é a Keyword Signed Key, ou KSK, na qual o par de chaves é gerado de uma forma padrão a partir de uma simples string legível por humanos. Inserir um documento usando um KSK permite que o documento seja recuperado e desencriptado se e só se o requisitante conhecer a string legível por humanos; isto permite URIs mais convenientes (mas menos seguras) para que os utilizadores se refiram a.

Leave a Reply