Situatie
In lumea reala, Dark Web-ul este un exercitiu masiv de applied cryptography. Nu e o retea paralela fizica, ci un overlay care ruleaza peste infrastructura publica de internet, folosind protocoale care prioritizeaza anonymity in detrimentul latency-ului.
Solutie
1. Multi-layered Encryption (The Onion Concept)
Miezul tehnologic este Tor (The Onion Router). Algoritmul de rutare nu functioneaza prin cel mai scurt drum (cum ar face un router Cisco standard folosind OSPF sau BGP), ci prin crearea unui circuit de trei noduri ales random.
Fiecare segment din drum este criptat separat. Cand pachetul pleaca de la tine, el este “impachetat” in 3 straturi de criptare:
-
Layer 3 (Exit): Il decripteaza nodul de iesire pentru a vedea payload-ul final.
-
Layer 2 (Middle): Il decripteaza nodul de mijloc pentru a vedea unde sa trimita pachetul mai departe.
-
Layer 1 (Guard): Il decripteaza primul nod pentru a vedea catre ce “middle” sa plece.
Magia algoritmica sta in faptul ca niciun punct din retea nu detine intregul state al conexiunii. Este un sistem stateless din punct de vedere al identitatii end-to-end.
2. Generarea adreselor .onion (Hash-based Identities)
Adresele de tip .onion nu sunt cumparate de la GoDaddy si nu trec prin DNS-ul clasic. Ele sunt, in esenta, public keys (sau hash-uri ale acestora).
In versiunea curenta (v3), o adresa onion este generata folosind un algoritm de criptografie pe curbe eliptice (Ed25519). Iata un workflow simplificat in Python care simuleaza logica de generare:
import hashlib
import base64
from cryptography.hazmat.primitives.asymmetric import ed25519
def generate_v3_onion():
# 1. Generam un keypair Ed25519 (standardul Tor v3)
private_key = ed25519.Ed25519PrivateKey.generate()
public_key = private_key.public_key()
pub_bytes = public_key.public_bytes_raw()
# 2. Construim checksum-ul si versiunea (0x03 pentru v3)
# In protocolul real, aici intra si un hash SHA3-256
version = b’\x03′
checksum = hashlib.sha256(b”.onion checksum” + pub_bytes + version).digest()[:2]
# 3. Concatenam: [public key] + [checksum] + [version]
onion_binary = pub_bytes + checksum + version
# 4. Base32 encoding pentru a obtine string-ul final de 56 caractere
onion_address = base64.b32encode(onion_binary).decode().lower()
return f”{onion_address}.onion”
print(f”Generated Service ID: {generate_v3_onion()}”)
De ce e asta important? Pentru ca ownership-ul este matematic. Daca ai cheia privata, detii adresa. Nu exista autoritate centrala care sa iti poata suspenda “domeniul”.
3. Cum se intalnesc clientul si serverul?
Aici e partea unde algoritmii devin cu adevarat complecsi. Deoarece nici serverul nu vrea sa isi stie IP-ul (Hidden Service), si nici clientul, ei nu se conecteaza direct.
-
Descriptor Upload: Serverul isi publica adresa si cateva “Introduction Points” intr-un Distributed Hash Table (DHT).
-
Rendezvous Point: Clientul alege un nod random din retea si ii spune: “Voi fi aici, anunta serverul”.
-
The Handshake: Serverul se conecteaza la acel punct ales de client. Algoritmul asigura ca nodul de intalnire (Rendezvous) doar face bridge intre cele doua circuite de Tor, fara sa stie cine sunt entitatile de la capete.
4. Distributed Hash Tables (DHT) vs Google Indexing
In Dark Web nu exista un crawler care sa indexeze tot (ar fi imposibil din cauza naturii efemere a nodurilor). In schimb, se folosesc sisteme de tip DHT unde informatia despre serviciile active este imprastiata in retea.
Cautarea pe Dark Web nu este un algoritm de ranking de relevanta, ci mai degraba un algoritm de key-value lookup. Daca stii cheia (adresa), reteaua iti spune unde poti gasi un punct de intrare.
Leave A Comment?