Como gerar um endereço .onion no Tor
Na internet, como a maioria das pessoas o usa, um nome de domínio (por exemplo, expressvpn.com) é registrado por meio de um registrador. Você costuma pagar uma taxa por isso.
A parte após o ponto à direita do domínio, como “.com” ou “.ca”, é chamada de domínio de nível superior. Geralmente, é o código de um país, mas também existem alguns domínios genéricos de nível superior, como “.website”. Recentemente, as empresas conseguiram registrar seus próprios domínios de nível superior, como “.apple”.
Esses domínios de nível superior são atribuídos pelo Corporação da Internet para nomes e números atribuídos (ICANN). Se você deseja criar seu próprio domínio de nível superior, precisará enviar sua proposta e provavelmente pagará muito dinheiro por ela..
A parte antes do ponto, à esquerda do domínio, é o subdomínio. Ao comprar um nome de domínio, como seunome.com, você pode criar subdomínios e apontá-los para servidores separados (por exemplo, blog.yourname.com ou chat.yourname.com).
Depois de registrar seu próprio domínio em um registrador (ou mesmo um domínio de nível superior na ICANN), você poderá apontar esse domínio para o endereço IP do seu site usando um servidor de nomes.
Para uma internet livre e aberta, isso cria vários problemas.
Se a ICANN não gostar de você, por qualquer motivo, eles podem simplesmente remover seu domínio e entregá-lo a outra pessoa.
Um invasor pode acessar sua conta com o registrador e apontar para seu próprio servidor. Eles podem usar isso para phishing senhas e outras informações privilegiadas de seus usuários. Seu servidor é sempre facilmente identificável por meio de seu domínio, o que facilita a censura ou a confiscação de seu serviço.
.serviços de cebola resolvem todos esses problemas através de criptografia inteligente e alguns truques.
Um hash de uma chave pública
.sites de cebola, como tp7q4m5ln4yhk5os.onion, não são registrados. Em vez disso, eles são um hash de uma chave pública.
Para ser mais preciso, eles são a primeira metade do hash SHA-1 codificado em base32 de uma chave pública, de um par de chaves RSA de 1024 bits com o sufixo “.onion”.
O resultado é que um nome de domínio .onion terá 16 caracteres e só poderá conter letras minúsculas de a a z e os dígitos de 2 a 7.
Quando você digita um endereço .onion no navegador Tor, diferentemente de um domínio comum, não procura um endereço IP em um servidor DNS. Em vez disso, você está solicitando um diretório de serviço oculto, no qual qualquer pessoa pode se voluntariar para executar.
Se o diretório Serviço Escondido que você está solicitando souber como encontrar o servidor que você está procurando, você será direcionado ao site, sem que o local seja revelado (saiba mais sobre como o Tor funciona aqui).
.reconhecimento de cebola de registradores da Internet
Como essa funcionalidade funciona apenas na rede Tor, você só poderá procurar sites .onion através do navegador Tor. Se alguma vez a ICANN emitir domínios com o .onion final, isso poderá criar muita confusão, pois serviços e sites ocultos na rede regular resolveriam o mesmo endereço de duas maneiras diferentes, levando a dois sites diferentes.
No entanto, isso não é muito provável, pois é provável que a ICANN reconheça a ampla adoção e uso da rede Tor e certamente desejaria evitar confusões no sistema de nomes de domínio..
A Força-Tarefa de Engenharia da Internet, IETF, que desenvolve e mantém padrões da Internet como o TCP / IP já reconheceu formalmente o domínio .onion no que foi aclamado como uma decisão histórica em 2015. Essa decisão veio após lobby pesado do Projeto Tor e a tornou possível que o Facebook receba um certificado TLS digital.
O TLS não é necessário na rede Tor para criptografia, pois a conexão já está criptografada de ponta a ponta entre um servidor .onion e o usuário. Um certificado, no entanto, facilita para o usuário verificar se está se conectando ao servidor certo e fornece uma barreira adicional para um invasor.
Obtendo um endereço .onion personalizado
Quando você gera um endereço .onion, ele parecerá aleatório, como é o caso de qualquer hash. No entanto, estatisticamente falando, se você criar endereços suficientes o suficiente, de vez em quando você encontrará aleatoriamente um que seja realmente legível.
Para cada posição, existem 32 caracteres possíveis. Se você deseja encontrar um endereço que comece com e, deverá adivinhar cerca de 16 vezes. Se você deseja um endereço que comece com ex, você já deve ter adivinhado (32 * 32) / 2 = 512 vezes. Para exp, são necessárias mais de 16.000 suposições.
Um computador moderno pode, usando um script, adivinhar com facilidade cerca de 1-2 milhões de endereços por segundo. A partir daqui, podemos estimar facilmente quanto tempo levaria para encontrar o nome de domínio que queremos. Poderíamos usar o mesmo processo para tentar decifrar o endereço .onion de outra pessoa, mas os gráficos a seguir mostram que isso não seria viável.
Para gerar um endereço .onion bom, memorável e estético, você não se limitará a simplesmente olhar os primeiros caracteres. Você pode usar expressões regulares para criar padrões fáceis de ler e lembrar.
Para gerar seu domínio .onion facebookcorewwwi.onion, o Facebook adotou um novo datacenter e usou mais de 500.000 núcleos para gerar domínios repetidamente, até encontrar o que mais gostava..
O Facebook demorou mais de uma semana para gerar seu domínio .onion, e o poder da computação custaria cerca de US $ 100.000 em eletricidade.
Nik Cubrilovic, que configurou o serviço oculto para o Blockchain, diz que levou apenas de 200 a 300 dólares e cerca de 24 horas para criar seu domínio (blockchainbdgpzk.onion) usando uma instância do AWS G1 e um cluster de seis placas ATi.
O ExpressVPN usou apenas um único computador com um sistema operacional recém-instalado. O computador não estava conectado à Internet para limitar o risco de terceiros se apossarem das chaves. Demorou cerca de duas semanas para gerar expressobutiolem.onion, além de alguns outros domínios menos bonitos.
.segurança de endereço de cebola
Embora você não seja capaz de decifrar uma chave .onion com seu laptop ou mesmo com mil laptops, talvez seja possível encontrar um milhão de computadores, cada um com cerca de 10.000 vezes o poder de computação do seu laptop atualmente.
Mesmo assim, você pode levar alguns anos, mas o que parece escandalosamente caro hoje pode em breve chegar ao alcance de uma agência de três letras bem financiada e motivada.
No futuro, os endereços .onion precisarão ser atualizados ou um novo esquema deverá ser encontrado. No mínimo, a chave RSA precisará ser estendida (o ExpressVPN já usa chaves RSA com um comprimento de 4096 bits para seu serviço VPN) e o algoritmo de hash pode ser atualizado para um algoritmo SHA-2.
Os endereços Bitcoin, por exemplo, são criados de maneira muito semelhante aos endereços .onion, mas o Bitcoin usa a curva elíptica ECDSA para gerar chaves de 256 bits e aplica a função de hash SHA-256 duas vezes para derivar o endereço..
Em seguida, para Tor e .onion?
Não sabemos o que o futuro reserva para os certificados TLS de endereço .onion. Como os endereços .onion são difíceis de calcular, há pouco risco de serem copiados, mas os usuários ainda podem ser induzidos a seguir um endereço semelhante e a obter phishing. Para evitar isso, o usuário precisa verificar a integridade de todo o domínio, não apenas os primeiros caracteres correspondentes.
Os certificados TLS potencialmente facilitam esse processo, mas também exigem que o detentor da chave .onion revele sua identidade real. Isso prejudicaria a própria finalidade do serviço oculto.
Uma alternativa seria usar serviços de mapeamento como Namecoin ou Blockstack para criar uma substituição de DNS descentralizada. No entanto, não está claro como esse sistema pode lidar com o uso de nomes e phishing. No final, o futuro pode até pertencer a combinações simples de hashes criptográficos longos e catálogos de endereços comuns.
Você tem suas próprias teorias sobre o futuro dos domínios .onion? Compartilhe seus pensamentos nos comentários abaixo!