Peer to peer e crittografia; l'incredibile sinergia di Skype

 

Ad oggi Skype raggiunge circa i 7.000.000 di utenti in linea in tutto il mondo. Ma a cosa è dovuto tanto successo?

La miglior risposta, a cui seguono i numeri, sta nella sinergia che si può avere tra un sistema PEER TO PEER e una buona cifratura dei dati.

Inventato da Janus Friis e Niklas Zennström nel 2002, Skype eredita tutto il successo che ha avuto Kazaa degli stessi fondatori.

Skype basa tutto il suo funzionamento con la stessa logica del suo predecessore: il peer to peer.

Non ha server centrali, ma assegna ad alcuni utenti (inconsapevoli), in modo dinamico, il ruolo di supernodi. Una piccola parte delle loro risorse di banda, memoria e Cpu, sarà usato dal network (dai nodi, gli altri utenti) per fare telefonate. Chi installa Skype accetta insomma la possibilità di diventare supernodo inconsapevole e, in cambio di telefonate gratis, di cedere parte delle proprie risorse a beneficio di tutti.

A livello di crittografia, Skype usa una cifratura a blocchi AES, un sistema di crittografia a chiave pubblica basata su RSA, la ISO 9796-2, un hash SHA-1 e una cifratura a stream RC4.

Il sistema crittografico centrale di Skype è basato su una chiave privata verificata nel server centrale chiamata S s ,la corrispondente chiave pubblica di verifica, V s , e un identificativo per ogni coppia di chiavi che vengono date al momento dell'installazione del software.

La cifratura in Skype inizia già con la registrazione dell'account. L'utente sceglie la propria username, che chiameremo UN, ed una password, PWD. il client genera una coppia di chiavi RSA (S un + V un ). La chiave privata, S un , e l'hash della password, H pwd , vengono memorizzate al sicuro sul proprio computer. (nel caso di sistemi Windows, si usa Windows CryptProtectData API).

Il client stabilisce una sessione cifrata AES a 256bit con il server centrale. La chiave per questa sessione viene avviata con l'ausilio con un generatore di numeri random che dipende dalla piattaforma d'uso. Il client manda la richiesta al server, comprensiva di: UN, H pwd e V un .

Il server centrale verifica se UN esiste già o no, e se rispetta le procedure di registrazione dell'account. Se è così, il server immagazzina (UN, H pwd ) in un database. Esso crea un certificato d'identità per UN, IC un , che contiene, tra le altre cose, la firma RSA del server centralizzato.

Attualmente Skype addotta due coppie di chiavi, una a 1536bit e una 2048bit. La scelta su quale adoperare spetta al server stesso che decide in base alla tipologia di contratto e alle promozioni che l'utente acquista. La struttura centrale consiste in un variegato numero di macchine con diverse funzioni tra loro. Inoltre tutta la struttura viene clonata più volte per garantire maggiori performance e ottimizzare il carico di lavoro.