Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 

De la Théorie à la pratique











Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Antoine Boegli, SCRT : 26C3 : GSM, le sujet qui fâche ?

février 2010 par Antoine Boegli, Ingénieur Sécurité, SCRT

Entre le 27 et le 30 décembre 2009, s’est tenue à Berlin la conférence annuelle du Chaos Computer Club. En 2008, c’était la relative insécurité des technologies RFID qui avait mobilisé l’attention des foules, et cette année, c’est l’infrastructure GSM utilisée par la majorité des téléphones mobiles dans le monde qui a été l’objet de plusieurs conférences et publications inquiétantes relayées par le net et les médias.

Mais qu’en est-il réellement ? L’exposé de Karsten Nohl et Chris Paget contient-il des révélations aussi surprenantes que ça ? Et est-ce que d’ailleurs elles représentent réellement les aspects les plus intéressants de ce qui a été dit durant les conférences consacrées au GSM ? Par exemple, Harald Welte a montré dans son exposé les aspects matériels de l’usage du GSM et des projets open-sources qui cherchent à implémenter une version ouverte des standards.

Le chiffrement A5 longuement remis en question...

Ce qu’il est convenu d’appeler le protocole GSM (Global System for Mobile Communications) a été conçu et mis en place au milieu des années quatre-vingt, et A5/1, l’algorithme de chiffrement des données qu’il utilise, a été choisi en 1987. A l’époque, pendant les derniers soubresauts de la guerre froide, A5/1 avait été mis à disposition des USA et des pays de l’Europe de l’ouest, alors qu’une version volontairement affaiblie, A5/2, était destinée à l’exportation vers les autres régions du monde. Une version appelée A5/0 existe aussi, pour les données non-chiffrées.

Depuis la publication des spécifications de la norme GSM et d’A5/1 en 1994, de nombreuses équipes de spécialistes se sont évertuées à mettre à jour les faiblesses de l’algorithme choisi. Une première démonstration de la faiblesse d’A5/1 était publiée en 1997, d’autres ont suivi en 2000, 2003, 2005, 2006 et 2008. A chaque fois, l’algorithme A5/1 se révélait plus fragile. Du côté de la version affaiblie A5/2, la situation était encore pire, puisqu’aujourd’hui le décryptage de données transmises « protégées » par cet algorithme est affaire de secondes et ne demande pas une puissance de calcul spécialement forte. Mais pour A5/1, la grande nouveauté des travaux de Nohl et Cie, c’est qu’il s’agit d’un cassage public du codage, accompagné d’exemples pratiques et de la documentation utile pour mettre en place une station d’écoute. Malheureusement, l’industrie se retranche derrière l’utilisation prochaine de A5/3 pour répondre à cette démonstration, alors que A5/3 a déjà fait l’objet de publications annonçant sa faiblesse et observant que de toute manière il utilise les mêmes clefs que A5/1, celles justement dont il est question dans la démonstration de Nohl.

Par ailleurs, le fonctionnement de GSM permet de sauter d’un encryptage à l’autre dans une même connexion téléphonique tout en conservant les clefs de chiffrement. Il est donc possible de forcer un passage de A5/3 à A5/1, voire de A5/3 à la version affaiblie A5/2 si l’opérateur a été négligeant. Dans ce dernier cas, la clef de chiffrement partagée entre l’antenne et le mobile est récupérée depuis l’encryptage A5/2, et réutilisée avec l’encryptage A5/3 a priori plus solide...

Les éléments de l’architecture

Les éléments qui composent l’infrastructure GSM proviennent de plusieurs sources et forment un assemblage complexe et hétéroclite qu’il est difficile d’appréhender et dont les combinaisons peuvent amener leur propre lot de failles.

La couverture radio est découpée en cellules, qui sont les zones où l’une ou l’autre antenne émettent et reçoivent les signaux téléphoniques. Le génie du système GSM se trouve dans la manière dont les signaux minimisent les effets d’écho et de « mélange » (harmoniques, annulations du signal, superpositions). Ces cellules sont reliées les unes aux autres et aux réseaux téléphoniques commutés traditionnels par une collection impressionnante de relais et sous-systèmes complexes. En partant du téléphone mobile, nous avons les éléments suivants :
- Le téléphone mobile lui-même, que tout le monde devrait connaître...
- Une antenne, ou BTS (Base Transceiver Station), qui émet et reçoit les signaux téléphoniques selon le protocole « Um » destinés aux téléphones mobiles
- Un central de contrôle GSM ou BSC (Base Station Controler), qui organise l’identification des mobiles et la gestion des BTS et qui distribue le trafic vers les sous-systèmes adéquats (GPRS ou téléphonie)
- Puis viennent les NSS (Network SubSystem) pour la téléphonie et la liaison avec les destinataires, et le GPRS Core Network, pour l’interfaçage avec les systèmes TCP/IP
- Il y a encore beaucoup d’autres éléments complexes disséminés à travers le réseau.

Les BTS communiquent avec leur BSC en utilisant le protocole réseau A-bis, puis le BSC utilise le protocole A pour communiquer avec le sous-système téléphonique, et à travers une interface ad-hoc, avec le protocole Gb pour communiquer avec le réseau GPRS. Chacun de ces éléments matériels et de ces protocoles fait l’objet d’une normalisation complexe et très abondante : l’ensemble de la norme GSM représente un total de plus de mille documents PDF, répartis entre des groupes comme l’ETSI et la GSM Association pour le standard de base, et les groupes d’intérêt liés spécifiquement à des normes comme le SMS, le GPRS, le EDGE, etc.

Exploitation des failles

L’aspect le plus inquiétant des faiblesses de GSM ne provient pas vraiment de son encryption. Durant une autre conférence, Dieter Spaar a fait une démonstration fort convaincante de déni de service sur une cellule GSM. Prenant la cellule de démonstration montée sur place pour l’occasion, il a, à l’aide d’un simple téléphone mobile, complètement bloqué tout le processus d’identification de téléphone de la cellule. Il s’agit là d’une faille d’exploitation existant depuis le début du standard, et qui est intrinsèquement liée à la manière dont le protocole GSM fonctionne.

GSM est un protocole de type « maître/esclave », où les appareils téléphoniques font ce que les centres leur demandent de faire. Aveuglément. Il n’y a pas d’authentification mutuelle entre les stations de base et les téléphones, et ces derniers se branchent automatiquement sur les antennes qui émettent le signal radio le plus fort. Sachant cela, il est possible de mettre en place une écoute active des téléphones se trouvant dans une cellule.

Il y a deux façons d’exploiter les faiblesses de GSM au niveau des ondes radios :
- Interception Active à l’aide d’une station BTS pirate : les téléphones se connectent à travers un équipement compromis ou falsifié, qui se substitue aux vraies antennes assurant la couverture d’une cellule. Ces stations pirates sont par contre extrêmement simples à localiser, pour autant qu’on les cherche …
- Interception Passive avec une station d’écoute radio et une infrastructure permettant de casser le chiffrement. L’attaque est invisible, mais par contre demande un équipement radio spécialement configuré, et un calcul préalable assez exigeant : un scanneur radio et une collection de « rainbow tables » qui sont justement le sujet de la présentation de Nohl et Cie. Pour rappel, ce qu’on appelle une « rainbow table » ou « table arc-en-ciel » est une structure de donnée inventée par Philippe Oechslin, permettant de retrouver un mot de passe à partir de son empreinte chiffrée. La création de tables arc-en-ciel demande de générer les empreintes de tous les mots de passe possibles pour un algorithme de chiffrement donné, ce qui peut être très exigeant en puissance de calcul et était l’obstacle principal du décodage de A5/1 en interception passive.

A ce point, il est bon de relativiser la gravité de toutes ces vulnérabilités. Vu les fréquences radio utilisées, la portée de ces méthodes de piratage est limitée à celle de la cellule attaquée. Dans une interception active le pirate crée littéralement une nouvelle cellule (avec du matériel GSM standard d’occasion ou obtenu par des voies illégales), mais dans l’interception passive, il doit non seulement identifier la bonne cellule à espionner, mais aussi discriminer les émissions vers les autres cellules, ce qui n’est pas trivial mais peut être effectué avec USRP2 et la suite logicielle ouverte AirProbe et des dissecteurs spécialisés pour Wireshark, et décrypter le trafic capturé. D’un autre coté, il existe probablement des vulnérabilités dans la partie câblée du réseau GSM qui pourraient par exemple être exploitées depuis des plate-formes GPRS ou par un piratage le long des connexions vers Internet.

Immobilisme des acteurs

Contrairement au monde d’Internet où le nombre et l’identité des intervenants sont en perpétuelle évolution, le monde du GSM peut être qualifié de quasi-monopole. Du coté des infrastructures du réseau, quatre sociétés se partagent le marché mondial, et les circuits qui traitent le signal GSM dans les téléphones sont fabriqués par une douzaine de fondeurs, mais leurs firmwares proviennent de quelques sources limitées.

Cette situation explique sans doute le peu d’ouverture de l’industrie : les rênes de la technologie sont aux mains de groupes qui ne veulent pas perdre leur position dominante, et qui font payer fort cher l’accès à leurs implémentations de référence. Sans compter les contrats de non-divulgation et les menaces légales qu’ils sous-entendent.

Perspectives d’avenir ?

Contrairement à TCP/IP, GSM n’a jamais bénéficié du regard ni de l’expertise de la communauté. La difficulté de mettre en place des tests de sécurité couplée avec le peu d’empressement des différents acteurs de l’industrie à communiquer avec les experts ont permis à une situation floue de se perpétuer. C’est en partie pour combattre cet état de fait que plusieurs projets se sont mis en place pour réaliser une implémentation de référence open-source, OpenBTS et OpenBSC étant les principaux.

Le cas de l’A5/1 est assez simple, il faudrait le remplacer par un algorithme plus fiable, basé par exemple sur des clefs plus longues. Le candidat officiel est A5/3 « Kasumi », mais il a déjà montré ses limites. Une option serait de profiter de l’initiative eSTREAM lancée en 2004 par l’Union Européenne, qui vient de terminer la sélection d’un portefeuille d’algorithmes de chiffrage de flux qui pourraient être utilisés dans le cadre de la téléphonie. La difficulté dans les deux cas reste de convaincre les fournisseurs de mettre à jour leur matériel, ce qu’ils ne feront probablement que s’il y a pour eux un avantage commercial tangible et immédiat. Du coté des failles et problèmes structurels du GSM, vu l’étendue de son utilisation, il faudrait ici qu’une nouvelle technologie fasse son apparition, qui ne nécessiterait pas de passer par la couche GSM. Mais dans la prochaine génération de téléphonie mobile, à part WiMAX, toutes les options existantes mettent à contribution l’infrastructure existante et y ajoutent de nouveaux éléments. Il faut s’attendre malheureusement à de grosses déconvenues, et probablement de gros problèmes de sécurité des communications.


Sources et sites de références

http://en.wikipedia.org/wiki/File:G...

http://etsi.org/

http://www.gsmworld.com/

http://openbts.sourceforge.net/

http://openbsc.gnumonks.org/trac/wi...

http://airprobe.org

http://en.wikipedia.org/wiki/ESTREAM

http://cryptome.org/0001/gsm-a5-fil...

http://www.ettus.com/products




Voir les articles précédents

    

Voir les articles suivants