1 Introduction 2 Skype 3 Fonctionnement

Transcription

1 Introduction 2 Skype 3 Fonctionnement
Skype
Pierre BARRAQUET, Erwann BEN SOUIDEN, Geoffroy COLIN,
Mathieu GUILLON, Mathieu OSTY, Chloé ROLLAND
31 décembre 2004
1 Introduction
les analyses de trafic (reverse-engineering) effectuées par
Baset et Schulzrinne [1].
Skype s’appuie sur une architecture de type peer-to-peer
(P2P) pour transmettre la voix sur Internet. A l’instar de
Kazaa, Skype repose sur un ensemble de "super-nœuds"
(supernodes, SN). Tout client Skype (CS) possédant une
adresse IP publique peut tenir le rôle de SN si ses capacités en terme de CPU et de bande passante le permettent.
Néanmoins, le système n’est pas totalement décentralisé.
En effet, des serveurs entrent en jeu afin de stocker les
informations relatives aux utilisateurs (nom utilisateur,
mot de passe, crédits SkypeOut. . .). En particulier, il est
nécessaire de se connecter à un SN puis au serveur d’authentification afin d’accéder au service (cf fig1).
La VoIP (Voice over Internet Protocol) est un des maillons
manquant de la convergence multimédia promise par Internet. En effet l’émergence de ce moyen de communication s’inscrit dans un mouvement général visant à intégrer la plupart des échanges électroniques sur un seul
et même réseau, Internet. La voix, une fois numérisée et
compressée, est transmise par le protocole IP sous forme
de paquets routés de la même manière que les paquets de
données.
Skype, de part sa simplicité d’utilisation et son excellente
qualité d’écoute, est récemment devenu un logiciel de téléphonie sur Internet incontournable. L’originalité de l’architecture du système (peer-to-peer) et sa popularité grandissante nous ont ammenés à nous intéresser à son fonctionnement général, malgré le peu de documentation disponible à ce sujet.
2 Skype
2.1 Historique
Les créateurs du logiciel de partage de fichiers P2P Kazaa,
Niklas Zennström et Janus Friis, publient la première version (Beta) de Skype en septembre 2003. C’est à la fin de
l’été 2004 que la version 1.0 du logiciel est mise gratuitement à la disposition du public.
Aujourd’hui Skype compte environ 7 millions d’utilisateurs. On dénombre en moyenne 1,2 millions d’utilisateurs connectés simultanément au service.
2.2 Services disponibles
Les services disponibles sont actuellement :
– Communication de type "PC to PC" entre deux terminaux équipés de Skype,
– Communication de type "PC to Phone" entre un terminal équipé de Skype et un téléphone traditionnel (SkypeOut),
– Communication multi-utilisateurs (ou conférence)
entre terminaux équipés de Skype,
– Echange de fichiers,
– Messagerie instantanée,
– Gestion d’une liste de contacts (buddy list).
L’ensemble de ces services est gratuit à l’exception de SkypeOut.
F IG . 1 – Architecture générale
3
Fonctionnement
3.1
Généralités
Host Cache
Chaque CS stocke et met à jour régulièrement une
liste d’adresses de SN et les ports correspondants.
Dans la version actuelle (v1.0.0.100), cette liste, appelée Host Cache (HC), est stockée avec d’autres
informations dans un fichier XML1 . Cette liste est
constituée d’au plus 200 entrées. Au moins une
de ces entrées doit être valide pour permettre la
connexion au réseau.
2.3 Architecture générale
Skype utilisant des technologies propriétaires, il est impossible de connaître précisement son architecture. Les
hypothèses que nous présentons sont donc fondées sur
1 Sous
windows :
<Documents and Settings>\All Users\Application Data\Skype\shared.xml
1
Codecs audio
D’après [1], Skype utilise iLBC [7], iSAC [8] (qui proposent une qualité et une tolérance aux fautes supérieures au codec G.729) ou un troisième codec inconnu. Ils laissent passer les fréquences comprisent
entre 50 et 8000 Hz. Ces codecs largebande permettent de disposer d’une qualité d’écoute raisonnable même avec une bande passante réduite (32
kbps).
3.2.2 Recherche d’un utilisateur
Les communications ne pouvant être tracées au delà du
SN, le processus de recherche d’un utilisateur reste partiellement inconnu.
3.2.3 Gestion d’un appel
Si le correspondant est présent dans la liste de contacts,
la connexion est établie directement via un échange TCP
(signalisation). Dans le cas contraire, l’établissement de
la connexion est précédé par la phase de recherche d’utilisateur.
Suivant la configuration des clients, la gestion d’un appel
peut prendre différentes formes :
– Les communiquants possèdent tous les deux une IP publique (cas idéal), le transport de la voix est assuré par
UDP.
– L’un ou les deux communiquants sont situés derrière
un NAT, alors la signalisation (TCP) ainsi que la voix
(UDP) sont transmis via un CS intermédiaire. Ce nœud
agit comme un proxy et fait suivre le trafic de l’appelant
vers l’appelé et inversement.
– Les deux interlocuteurs sont placés derrière un firewall
bloquant le trafic UDP, l’ensemble des communications
est véhiculé par TCP via un nœud intermédiaire.
De manière générale, le trafic engendré par Skype est de
5 ko/s. En pratique, la bande passante minimale pour une
qualité d’écoute acceptable est de 2 ko/s. Le protocole utilisé par Skype privilégie l’utilisation d’UDP pour le transport des données.
Liste de contacts
La liste de contacts est chiffrée dans des fichiers localisés sur la machine de l’utilisateur.
Chiffrement
Skype utilise AES avec une clé de 256 bits pour le
chiffrement de toutes les communications. L’échange
des clés symétriques AES est protégé par l’utilisation
de l’algorithme RSA avec des clés de 1536 à 2048
bits. Les clés publiques des utilisateurs sont certifiées
par Skype via le serveur d’authentification.
NATs et Pare-feux
Le CS utilise vraisemblablement une variation des
protocoles STUN [5] et TURN [4] afin de déterminer, le cas échéant, le type de NAT et de pare-feu
derrière lequel il se situe. Cette détection a lieu à
l’établissement de la connexion et semble être vérifiée de manière périodique.
3.2 Gestion d’une communication
3.2.4 Conférence
Considérons une conférence à 3 personnes (5 étant la limite imposée par la version actuelle1 ). Le participant qui
possède les ressources les plus importantes est élu pour
jouer le rôle de "mixer". Notons qu’il n’est pas forcément
l’initiateur de la conférence.
Le "mixer" est le cœur de la conférence. Toutes les sources
lui envoient leurs paquets de voix. Il se charge alors de
les multiplexer de manière adequat avec les siens, puis
de les transmettre aux participants comme indiqué sur la
figure 2 sur laquelle B joue le rôle de mixer.
3.2.1 Connexion au réseau
Lorsqu’un CS désire se connecter au réseau, il tente de
joindre l’un des SN de sa liste HC en UDP . Si la connexion
ne peut pas être établie, le CS va essayer successivement
de se connecter en TCP via les ports 80 (HTTP) et 443
(HTTPS) ; ceci permet la traversée d’éventuels pare-feux
ou NAT bloquant les trafics UDP ou certains ports TCP. Si
la connectivité ne peut être obtenue avec aucun des SN,
la phase de connexion échoue.
Une fois connecté à un SN, le CS met en place une
connexion TCP entre eux. Il semble que le CS obtienne
l’adresse du serveur d’authentification auprès du SN via
cette connexion. Ainsi, le CS établi une connexion TCP
avec ce serveur. Après un échange permettant l’authentification, la connexion entre le CS et le serveur d’authentification est rompue ; en revanche, la connexion avec le
SN persiste. Cette connexion est maintenue par un message keep-alive envoyé de manière périodique (chaque
minute). Si la liaison avec ce SN est perdue, alors le CS
en établi une nouvelle avec un autre SN.
Notons que pour la première connexion après l’installation du CS, HC est initialisé avec une liste de 7
adresses. Ces adresses correspondent aux SN référents,
elles semblent codées "en dur" dans le CS. Au fur et à mesure des connexions, le HC sera complété et mis à jour.
La manière dont les CS obtiennent de nouveaux SN reste
floue puisque toutes les communications sont cryptées.
Néanmoins, il semble que le CS reçoive périodiquement
une liste de nouveaux nœuds. De même, une table de SN
"de secours" est créée pour permettre une reprise rapide
de la connectivité si aucun des SN du HC n’est disponible.
F IG . 2 – Fonctionnement d’une conférence
1 Skype
2
v1.0.0.106
4 Analyse du système
Téléglobe (un des plus importants propriétaire-exploitant
de réseau téléphonique à travers le monde). Cela permet
à Skype d’adapter sa capacité de raccordement à l’échelle
mondiale sans investir dans des infrastructures réseau téléphonique commuté. Il peut ainsi se focaliser sur son domaine de compétence, le réseau P2P.
Actuellement, il est impossible d’émettre un appel depuis
un téléphone fixe ou mobile vers un client Skype. En effet, ce dernier ne possède qu’un identifiant Skype. Très
prochainement, grâce à l’offre SkypeIn, il sera possible de
disposer d’un numéro accessible par le RTC lié à l’identifiant Skype.
4.1 Architecture P2P
Skype s’appuie sur un réseau overlay communautaire qui
permet de compenser l’absence de QoS induite par le
fonctionnement Best Effort de l’Internet actuel. Ce type
d’architecture permet une meilleure robustesse du fait de
la répartition de la charge entre les pairs. Son intérêt majeur est d’assurer le passage à l’échelle ; en effet, seule la
phase d’authentification est centralisée, tout le reste des
échanges est réparti entre les utilisateurs.
Néanmoins, ce type d’architecture est sous le joug du
nombre d’utilisateurs, plus ce nombre est élevé, plus le
système est efficace. De même, il est nécessaire d’avoir
une bonne répartition géographique des utilisateurs dans
le réseau overlay, sans quoi l’équité de service ne serait
pas assurée. De plus, la phase d’authentification étant
centralisée, le serveur d’authentification semble donc être
le point de vulnérabilité du système. Si un utilisateur malveillant arrive à mettre hors service ce serveur, aucun
nouvel utilisateur ne pourra plus se connecter.
4.4 Utilisation professionnelle
L’architecture actuelle interdit une utilisation privée, coupée d’Internet, le serveur d’authentification Skype étant
indispensable à toute connexion. Une entreprise ne peut
pas mettre en place son propre réseau Skype. De plus il
n’est pas possible de spécifier un SN particulier. En conséquence, le trafic transite par des nœuds dont ni l’intégrité ni l’identité ne peuvent être assurées. Un particulier,
voire même une entreprise concurrente, pourraient donc
intercepter ou perturber les communications puisque le
SN sert de relais.
Or, Skype est l’un des seuls logiciels de communication
sur Internet à chiffrer les échanges entre utilisateurs, ce
qui permet de garantir une confidentialité des communications. En revanche, la gestion et la génération des
clés privées est effectuée par Skype ; ceci n’est pas acceptable dans un cadre professionnel qui impose une certaine confidentialité des échanges.
Les mécanismes permettant d’assurer le chiffrement
masquent complètement le contenu des communications.
Le trafic Skype n’est donc pas filtrable par des analyseurs
sémantiques ; cela empêche une classification des flux
en vue d’une éventuelle politique de qualité de service.
De plus, comme vu à la section 3.2, Skype utilise plusieurs méthodes pour traverser les NATs et pare-feux. Il
est même possible que tout le trafic transite en TCP via
le port 80 (HTTP) rarement bloqué puisque nécessaire
à la navigation web. Ces caractéristiques rendent Skype
incontrôlable par l’administrateur du réseau.
4.2 Convivialité
L’installation et l’utilisation très intuitive rendent le logiciel accessible au plus grand nombre. En effet, aucune
configuration technique n’est requise pour son utilisation
courante.
Notons que Skype n’implémente pas de mécanisme de
suppression de silence. Lorsque les correspondants ne
parlent pas, la continuité des paquets de voix est assurée.
Cette caractéristique présente deux types d’avantages :
– En terme de confort, chaque correspondant est assuré
de façon continue de la présence de son interlocuteur
par la transmission du bruit ambiant.
– Le maintient de la correspondance au sein du NAT
permis par la continuité du flux UDP.
Le client Skype implémente un ensemble de méthodes
permettant de contourner la plupart des dispositifs de
sécurité sans intervention de l’utilisateur. Ce qui peut
s’avérer dangereux en pratique (voir section 4.4).
Afin de concurrencer ses principaux rivaux, MSN Messenger et Yahoo ! Messenger, il serait intéressant que
Skype supporte la vidéo-conférence, même si la priorité des developpeurs semble être la téléphonie (la
vidéo-conférence nécessite simplement plus de bande
passante).
4.5 Une technologie propriétaire
L’ensemble du logiciel et des protocoles sous-jacents étant
propriétaire, il est impossible de s’assurer de son véritable
fonctionnement. En particulier, l’absence de logiciels espions (spywares) ne peut être vérifiée. Cette crainte est
renforcée par la réputation qu’avait Kazaa à ses débuts.
L’opacité de la technologie et des protocoles utilisés
empèche l’émergence de logiciels concurrents et donc
toute interopérabilité avec d’autres technologies de VoIP
comme SIP dont nous reparlerons à la section 5.
De plus, aucune information n’est divulguée en ce qui
concerne la génération, l’échange et le renouvellement
des clés utilisées pour le chiffrement. Un problème de
confidentialité se pose alors qui pourra être réglé par une
ouverture même partielle du code source.
Skype ne propose aucun service de téléphonie classique
comme répondeur, numéros d’appel d’urgence, renseignements... Notons que l’architecture même du système
rend difficile le déploiement de ce genre de service sans
passer par un serveur central (informations de localisation, stockage des messages ...).
4.3 Passerelle avec le RTC
L’un des atraits de Skype est de proposer à ses utilisateurs
une passerelle vers la téléphonie classique (terrestre et
mobile) à des coûts avantageux. Depuis le 23 juillet 2004,
Skype s’est associé, dans le cadre de son offre SkypeOut, à
3
5 Perspectives
spam pourrait facilement être adapté à la téléphonie IP ;
la gratuité de ses offres et la simplicité de diffusion offertes permettraient de répandre des annonces commerciales ou d’étoffer les listes de téléprospection.
La VoIP est promue à un avenir certain, principalement
pour les raisons suivantes :
– le coût : tout appel sur téléphone fixe ou sur client VoIP
coûterait le même prix qu’une communication locale.
– la souplesse : le numéro d’appel n’est plus lié à un poste
physique, mais peut être attribué dynamiquement à
différents types d’appareils (combiné traditionnel,
mobile, PDA, ordinateur) et à différents endroits. Cela
en s’adaptant au contexte et des choix des utilisateurs.
Références
[1] Salman A.Baset and Henning Schulzrinne. «An Analysis of the Skype Peer-to-Peer Internet Telephony
Protocol». Technical report, Department of Computer
Science, Columbia University, septembre 2004.
[2] Debbis Bergström. «An Analysis of Skype VoIP Application for Use in a Corporate Environment». Technical Report version 1.3, CISSP, octobre 2004.
De plus, la démocratisation de l’internet haut débit, indispensable au déploiement de la VoIP dans le grand public,
rend possible l’utilisation massive de la VoIP.
Depuis 2003, le nombre d’utilisateurs de Skype croît
considérablement ; en 2003 on dénombre plus de 20 millions de téléchargements.
Malgré cet essort, nous avons dégagé au cours de notre
étude plusieurs limites de Skype. Le caractère propriétaire
limite son utilisation dans un cadre professionnel. Pour
ces raisons, Skype fait face à de sérieux concurrents, notamment ceux se reposant sur le protocole SIP (rfc 3261)
qui combine certains avantages :
– sous forme logicielle (softphone), mais principalement
matérielle. L’utilisation d’un combiné permet de disposer d’un numéro d’appel associé au téléphone.
– l’envoi d’un email pour chaque appel manqué (pouvant
inclure le message en pièce jointe), l’intégration naturelle dans des applications (API de haut niveau disponibles ...).
– on peut appeler sur un téléphone/softphone d’un
téléphone fixe "classique". Cela constitue un élément
important permettant la convergence.
[3] Luang Dang, Cullen Jennings, and David Kelly. «Practical VoIP», chapter 7. O’Reilly, 2002.
[4] J.Rosenberg, R.Mahy, and C.Huitema. «TURN : Traversal Using Relay NAT». Internet draft, IETF, Juillet
2004.
[5] J.Rosenberg, J. Weinberger, C. Huitema, and R.Mahy.
«STUN : Simple Traversal of User Datagram Protocol (UDP) Throught Network Address Translators
(NATs)». Rfc 3489, IETF, Mars 2003.
[6] Guy Pujolle. «Les réseaux, édition 2005», chapter 35.
Eyrolles, 2004.
[7] Global IP Sound.
«ilbc Codec».
2004.
http ://www.globalipsound.com/pdf/gips_iLBC.pdf.
[8] Global IP Sound.
«isac Codec».
2004.
http ://www.globalipsound.com/pdf/gips_iSAC.pdf.
[9] «Site Internet de Skype».
2004.
SIP bénéficie d’un meilleur suivi, il fait actuellement
l’objet d’un groupe de travail à l’IETF accessible sur le
Web 1 . Il dispose de plus d’une meilleure médiatisation
(essentiellement aux États-Unis), il existe des offres
d’abonnements SIP 2 ainsi que des téléphones SIP wifi
3
. SIP constitue plus qu’un concurrent de Skype mais se
présente comme une réelle alternative.
Skype, du fait de sa gratuité, de sa simplicité d’utilisation ainsi que de ses très bonnes performances, démocratise la voix sur IP. Cette technologie s’appuie sur les
réseaux communautaires pour palier l’absence de qualité
de service de l’internet actuel. Elle démontre ainsi la suffisance d’un réseau fondé sur IPv4. De part ses partenariats engagés avec le monde des télécoms, Skype s’ouvre
sur des perspectives d’évolution intéressantes (SkypeOut,
SkypeIn).
Cependant, Skype reste à ce jour un logiciel propriétaire
dans le but de conserver ses "recettes" de fabrication.
Dans ce cadre, il ne peut se développer et évoluer de manière optimale.
Enfin, l’avénement de ces nouveaux services induit de
nouveaux problèmes. Par exemple, le phénomène du
1 http
://www.ietf.org/html.charters/sip-charter.html
2 www.grandstream.com
3 http
://pulverinnovations.com/wisip.html
4
http ://www.skype.com,

Documents pareils