# FastTrack

FastTrack è un protocollo peer-to-peer, utilizzato dai programmi di file sharing KaZaA, Grokster e iMesh.
È dall'inizio del 2003 che FastTrack è diventato il protocollo di rete peer-to-peer più popolare e viene utilizzato principalmente per lo scambio di file musicali. Ora ha più utenti di quando Napster aveva raggiunto il suo picco. Caratteristica principale del protocollo è il permettere il resume dei download e la possibilità di scaricare simultaneamente segmenti di file da peer multipli ha reso questo protocollo estremamente popolare.

## Storia

FastTrack è stato creato nel marzo 2001 contemporaneamente al suo client Kazaa dall'ingegno del programmatore svedese Niklas Zennström, dipendente della filiale olandese Kazaa BV. Il tutto avvenne poco prima che Napster chiudesse a causa delle dispute legali con le majors discografiche. Successivamente anche la rete di MusicCity venne chiusa, per cui tutti gli utenti che facevano capo a questo client migrarono a Morpheus un programma che utilizza la rete FastTrack.
Nel novembre del 2001 i proprietari di FastTrack/KaZaa persero una causa, per cui furono costretti a nascondere la proprietà aziendale in una fitta rete di compagnie offshore, di cui la capogruppo era Sharman Networks. Nel marzo 2002, la corte d'appello dichiarò che l'esistenza di FastTrack/KaZaa era legittima, in quanto come proprietari di una rete essi non potevano essere responsabili dei comportamenti degli utenti.
Nel febbraio 2002 Morpheus non fu più in grado di pagare i diritti ai proprietari di FastTrack, per cui fu costretto a chiudere. La rete FastTrack utilizzò il programma open source giFT per un breve periodo, finché esso venne chiuso a causa di una serie di cambiamenti al protocollo (i clients proprietari di FastTrack sono configurati in modo da effettuare l'aggiornamento automatico del software, rendendo più semplice il cambiamento di protocollo).
Nell'Aprile del 2002, si scoprì che KaZaA era connesso anche alla rete privata Altanet. Inoltre il software di KaZaA ebbe un problema di credibilità con la scoperta che conteneva spyware e adware. A causa di questi programmi nascosti, il sito Cnet's Download.com ha fermato la distribuzione di KaZaA. Nello stesso mese, venne distribuita una versione di KaZaA non autorizzata chiamata KaZaA Lite, dove tutti i programmi pubblicitari erano stati rimossi. La situazione era del tutto simile ai programmi peer-to-peer di Grokster e Clean Grokster. Nel 2003 fu attuata una totale revisione del protocollo e fu creata una multi-piattaforma open source.

## Tecnologia

FastTrack fa parte della seconda generazione dei protocolli P2P. Si basa sul protocollo Gnutella e lo evolve attraverso il concetto di supernodo e migliorandone la scalabilità. La funzionalità dei supernodi è costruita attorno al client: un computer molto potente avente una linea veloce e che si connetta con un programma client diventa automaticamente un supernodo, in pratica agisce come un indice provvisorio per gli utenti più lenti.
Il funzionamento a grandi linee è il seguente:
* Al primo collegamento il programma si incorpora (hardcoded) una lista di supernodi, sotto forma di numeri IP.
* Il client individua il supernodo più vicino funzionante e riceve una lista dei supernodi attivi e correnti da usare per futuri tentativi di connessione.
* Il client, ottenuto un supernodo come sua "sorgente" (upstream) invierà una lista di file con l'intento di condividerli a quel supernodo, e una richiesta di ricerca.
* Il supernodo comunica con altri supernodi allo scopo di soddisfare la richiesta di ricerca.
* Il client si collega direttamente (peer) per iniziare lo scaricamento (download) del file (trasferimento eseguito con il protocollo HTTP).
Per permettere lo scaricamento di files da sorgenti multiple, FastTrack impiega un algoritmo di hashing chiamato UUHash. Questo algoritmo ha la capacità di decodificare file molto grandi, ma ha delle vulnerabilità che non permettono un controllo di integrità del file, permettendo la condivisione quindi di file corrotti.

## Reverse Engineering

Il protocollo FastTrack utilizza una crittografia dei dati (encryption, in inglese) non documentata dal suo creatore, così come lo era il software del primo client. Programmatori open source sono riusciti a decompilare la parte di protocollo che si occupa della comunicazione con il client-supernodo; la parte di protocollo che permette la comunicazione tra supernodi rimane in gran parte sconosciuta.
I dati di inizializzazione per effettuare la codifica dei dati mediante l'algoritmo vengono inviati in chiaro senza l'utilizzo di chiavi pubbliche codificate. È in questo modo che è stato possibile effettuare una decompilazione relativamente semplice di questa parte del protocollo.
Alcuni client open source per la rete FastTrack
* giFT-FastTrack è un plugin per giFT che consente ricerche e scaricamento di files dalla rete FastTrack
* MLDonkey è software una multi-piattaforma, multi-rete libera con client file sharing in grado di collegarsi alla rete FastTrack
* Filepipe anch'esso software multipiattaforma supporta: Ares, FastTrack, Gnutella.