La sécurité des réseaux mobiles – Part 6

Cet article est le dernier de la série – Sécurité des réseaux mobiles.

Se référer à :

La sécurité sur les réseaux de mobiles – Part 1

La sécurité sur les réseaux de mobiles – Part 2

La sécurité sur les réseaux de mobiles – Part 3

La sécurité des réseaux mobiles – Part 4

La sécurité des réseaux mobiles – Part 5

II-3-2) La sécurité sur l’architecture SBA

L’architecture 5G SBA est définie à l’article suivant :

Architecture SBA du réseau 5G : Microservices et SOA

Figure 20 : l’architecture SBA du réseau 5G

Les fonctions réseaux NF (Network Function) doivent supporter le protocole TLS pour l’échange d’information coté serveur et client.

Le proxy SEPP implémente un niveau de sécurité sur la couche application sur l’échange d’information de signalisation échangées entre deux fonctions réseaux NF entre deux opérateurs (nominal et visité). La transaction entre les deux opérateurs est sécurisée par un certificat d’autorité.

Le rôle du SEPP est d’apporter une sécurité de bout en bout (E2E core network interconnection security) en chiffrement et en sécurité lorsque la signalisation est prise en charge par un fournisseur de transport IPX.

La confidentialité et l’intégrité sont assurées par les fonctions SEPP de bout en bout (réseau visité, réseau nominal) à travers l’interface N32.*

Figure 21 : L’architecture SBA dans le cas du Home Routing (HR)

3. Le mécanisme EAP

Pour gérer différentes méthodes d’authentification, les réseaux de mobiles utilise le protocole EAP (extensible Authentication Protocol). Ce protocole est dit extensible car il supporte différentes méthodes d’authentification.  Pour que l’authentification réussisse, il faut supporter le même type d’authentification EAP sur le client et sur le serveur d’authentification.

Différents type d’authentification supportés par le protocole EAP sont :

  • EAP-MD5 : Authentification avec un mot de passe ;
  • EAP-TLS (Transport Layer Security) : Authentification mutuelle basée sur les certificats du client et du réseau. Le client et le serveur doivent posséder un certificat numérique issue d’une autorité de certification (CA – Certificate Authority) ;
  • EAP-TTLS : Le client authentifie le serveur grâce à une infrastructure à clés publique (PKI : Public Key Infrastructure) au niveau du serveur. L’authentification mutuelle est optionnelle (l’utilisation de la clé publique au niveau client est optionnelle). Lorsque le client a authentifié le serveur, le serveur met en place un tunnel chiffré avec le client. Ce tunnel permet au serveur d’authentifier le client par un login/mot de passe au niveau du client. Le mot de passe peut en plus être chiffré par la méthode CHAP;
  • EAP-PEAP : La méthode PEAP est similaire à la méthode TTLS. Pour la méthode TTLS le mot de passe est transmis dans la payload TLS, alors que dans la méthode PEAP, le mot de passe du client est encapsulé dans l’en-tête TLS.
  • EAP-FAST : Authentification mutuelle, basée sur un certificat. L’obtention du certificat est négociée par le client lors du premier échange. Si le client n’a pas de clé PAC (Crédit d’Accès Protégé – Protected Access Credential) secrète communiquée à l’avance, il peut envoyer une requête d’échange EAP-FAST afin d’en obtenir une dynamiquement du serveur du client et du réseau par l’intermédiaire d’un canal chiffré (ou tunnel) ;
  • EAP-SIM : Authentification via l’application SIM d’un téléphone 2G;
  • EAP-AKA : Authentification mutuelle sur le réseau 3G/4G/5G ;
  • EAP-AKA’ : Authentification mutuelle sur le réseau 5G.

Dans le cas des réseaux mobiles, la méthode d’authentification s’appuie sur une clé secrète connue uniquement par le client et par le serveur d’authentification. Aucun mot de passe n’est transmis. Ainsi, seules les méthodes EAP-SIM, EAP-AKA et EAP-AKA’ sont utilisées.

La méthode EAP-SIM est définie pour le réseau 2G et dans ce cas, seul le serveur authentifie le client. Pour les méthodes EAP-AKA et EAP-AKA’, l’authentification est mutuelle (Authentication and Key Agreement), le réseau authentifie le mobile et le mobile authentifie le réseau.

Le réseau 4G supporte la méthode EAP-AKA, les réseaux 5G supportent en plus les méthodes EAP-AKA’ et EAP-TLS. Le protocole EAP-TLS est utilisé pour les réseaux privés.

Le format des messages EAP est le suivant :

Figure 22 : Le format EAP

Le champ des données utiles (payload) est constitué d’un champ type et du vecteur d’authentification.

Le champ type défini la méthode d’authentification :

Tableau 2 : Différentes valeurs des types EAP

L’implémentation du protocole EAP nécessite trois composantes :

  • Une couche basse (lower layer) est responsable de la transmission/réception des trames EAP. La couche basse peut être une connexion PPP, un modem RTC, une connexion Ethernet, une connexion WiFi, une connexion cellulaire ;
  • Une couche EAP qui transmet les paquets EAP à la couche basse ou reçoit les paquets EAP en provenance de la couche basse. La couche EAP implémente une fonction de détection des doublons et une fonction de retransmission.
  • La méthode EAP implémente l’algorithme d’authentification

Dans le cadre des réseaux de mobiles, le client EAP est situé dans la carte UICC.

Figure 23 : Le protocole EAP (cas PPP)

Les trois méthodes qui sont présentées permettent l’authentification du mobile à partir d’un point d’accès WiFi.

III-1) La méthode EAP-SIM

La méthode EAP-SIM permet au téléphone de basculer sur la connexion 2G ou 3G sur le réseau WiFi. La figure 3 présente les messages échangés entre le terminal et un point d’accès WiFi.

Figure 24 : La méthode EAP SIM

La méthode EAP SIM permet d’authentifier le mobile à partir de la clé privée symétrique située dans l’application SIM de la carte UICC et dans la base de donnée HLR.

L’objectif de la méthode EAP SIM est de permettre au mobile de se connecter automatiquement et de manière sécurisée sur un réseau WiFi communautaire. La méthode EAP SIM ne nécessité pas de login/mot de passe ni de portail captif.

Le centre d’authentification est l’entité HLR/Auc et l’authentificateur est le serveur d’authentification RADIUS AAA (Authentication Autorisation Accounting).

Figure 25 : Le protocole d’authentification par la méthode EAP-SIM (Source CISCO [4])

III-2) La méthode EAP-AKA

La méthode EAP-AKA est un mécanisme de défi-réponse basé sur une clé symétrique dans le module USIM et dans l’environnement nominal (HLR).

Le mécanisme est similaire à l’authentification 4G-AKA, le serveur EAP (authentificateur) est un serveur AAA (Authentication, Authorization and Accounting) et le centre d’authentification est l’entité HLR/AuC. Le lien radioélectrique WiFi n’étant pas protégé, le support de données (bearer) sera transmis dans un tunnel VPN sécurisé par le protocole IPSEC (Internet Protocol Security). Ce tunnel s’établit entre le mobile et l’entité ePDG (evolved Packet Data Gateway).

Figure 26 : L’architecture du réseau 4G avec le point d’accès WiFi

Le mécanisme IPsec est mis en œuvre pour l’établissement d’un tunnel à l’issue de la phase d’authentification utilisant le mécanisme 802.1x.

Le plan de contrôle (signalisation) est mis en œuvre par le protocole de chiffrement IKEv2 qui gère l’association de sécurité SA (Security Association) pour les sessions IPsec. Le protocole IKEv2 permet d’authentifier les deux extrémités du tunnel (ePDG et le mobile). Le mobile est l’initiateur et l’entité ePDG est le répondeur. Le protocole IKEv2 négocie les algorithmes de l’association de sécurité et permet l’échange des valeurs publiques D-H (algorithme Diffie Hellman) et les nombres aléatoires Nonce.

La clé de chiffrement Ck et la clé d’intégrité Ik générées par le centre d’authentification sont transmises à la passerelle ePDG. Les clés Ck et Ik étant connues par le mobile, ces deux clés sont utilisées pour générer la clé maîtresse MSK (Master Session Key).

Une fois l’authentification réussie, le tunnel IPsec assure la protection des données. Le protocole IPsec se situe sur la couche IP et permet :

  • le chiffrement des données (payload) par le protocole ESP (Encapsuling Security Payload). C’est la totalité du paquet IP qui est chiffrée ;
  • l’intégrité et l’authentification par encapsulation de l’entête AH (Authentication Header). Le paquet chiffré est encapsulé dans un nouveau paquet IP avec un nouvel en-tête IP.

Pour plus d’information, se référer à l’article : http://blogs.univ-poitiers.fr/f-launay/2018/01/01/interfonctionnement-du-lte-et-du-wifi/

En 4G, l’accès WiFi vers le cœur de réseau est utilisé principalement pour le WiFiCalling.

Figure 27 : La mise en place d’un tunnel pour le protocole SIP

III-3) La méthode EAP-AKA’

La méthode EAP-AKA’ est proche de la méthode d’authentification 5G-AKA. La demande d’authentification est transmise selon le protocole EAP. Les messages EAP sont encapsulés dans les messages NAS entre le mobile et la fonction SEAF de l’AMF, et dans les API (JSON) entre la fonction SEAF et la fonction AUSF.

Le rôle de la fonction SEAF est néanmoins différent dans le cas de la méthode EAP-AKA’ puisque la fonction SEAF transfère de manière transparente les messages EAP sans être impliquée dans la décision comme c’est le cas pour la méthode 5G-AKA.

L’autre différence porte sur la dérivation des clés. Dans le cas de la méthode 5G-AKA, le clé KAUSF est calculée par la fonction ARPF de l’entité UDM. Dans la méthode EAP-AKA’, la clé EMSK (Extended Master Session Key) est calculée au niveau de la fonction AUSF et les 256 premiers bits de la clé EMSK forment la clé KAUSF.

 

Références :

[1] http://www-igm.univ-mlv.fr/~jyt/Crypto/3/GSM/S5.Brumley-comp128.pdf

[2] 3GPP TS 35.205 : System Aspects; 3G Security, Specification of the MILENAGE algorithm set, An example algorithm set for the 3GPP, authentication and key generation functions f1, f1*, f2, f3, f4, f5 and f5*. V9.0.0

[3] 3GPP TS 35.206 – LTE; 3G Security; Specification of the MILENAGE algorithm set: An example algorithm set for the 3GPP authentication and key generation functions f1, f1*, f2, f3, f4, f5 and f5*; Document 2: Algorithm specification. V9.0.0

[4] Source CISCO : Cisco SP Wi-Fi solution: use cases and call flows (Djordje Vulovic) https://www.cisco.com/c/dam/global/hr_hr/assets/ciscoconnect/2014/docs/cisco_connect_see_2014_sp_wi-fi_dvulovic.pdf

[5] 3GPP TS 33.102 3G security; Security architecture, version 11.5.1 Release 11

[6] Snow3G : https://www.gsma.com/aboutus/wp-content/uploads/2014/12/snow3gspec.pdf

[7] ZUC Specification : https://www.gsma.com/aboutus/wp-content/uploads/2014/12/eea3eia3zucv16.pdf

[8] https://www.netmanias.com/en/?m=view&id=techdocs&no=10425

[9] 3GPP TS 35.206, 3G Security, specification of the MILENAGE, Release 7 version 7.0.0

https://www.etsi.org/deliver/etsi_ts/135200_135299/135206/07.00.00_60/ts_135206v070000p.pdf

[10] https://labs.p1sec.com/2020/06/26/5g-supi-suci-and-ecies/

[11] Des failles de sécurité dans la future norme de communication mobile 5G ; https://factuel.univ-lorraine.fr/node/9972

[12] 3GPP TS 33.501 Security Architecture and Procedure – version 15.1.0 (figure 6.1.3.1.1) : https://www.etsi.org/deliver/etsi_ts/133500_133599/133501/15.01.00_60/ts_133501v150100p.pdf

 

Autres lectures : 

https://www.open.com.au/radiator/eap-sim-whitepaper.pdf

https://www.cablelabs.com/insights/a-comparative-introduction-to-4g-and-5g-authentication

ETSI TS 102 310 V6.0.0 (2004-12) : Extensible Authentication Protocol support in the UICC, Release 6

https://github.com/mitshell/CryptoMobile

https://github.com/CellularPrivacy/Android-IMSI-Catcher-Detector/issues/926

RFC3748 : Extensible Authentication Protocol (EAP) : https://tools.ietf.org/html/rfc3748

RFC 5998 : An Extension for EAP-Only Authentication in IKEv2 : https://tools.ietf.org/html/rfc5998

La sécurité sur les réseaux de mobiles – Part 3

Précédents articles : 

La sécurité sur les réseaux de mobiles – Part 1

La sécurité sur les réseaux de mobiles – Part 2

2. La protocole AKA

II-1) La sécurité sur le réseau 3G :

Le protocole d’authentification GSM n’est pas fiable. D’une part, l’authentification étant unilatérale, le mobile peut s’attacher à un réseau pirate et d’autre part, l’algorithme COMP128 a été cassé en 1997 (figure 3 : attaque Narrow Pipe en 1998) :

Figure 5 : L’algorithme COMP128 [1]

De plus, le réseau pouvant négocier l’algorithme de chiffrement en 2G, il est possible de récupérer en clair les données échangées.

Afin de sécuriser l’attachement du mobile et interdire l’attachement sur un réseau pirate, le protocole AKA (Authentication and Key Agreement) exige une authentification bilatérale.

Le cœur de réseau 3G est identique au cœur de réseau 2G, l’amélioration de la sécurité est apportée au niveau du mobile par l’application USIM sur la carte UICC et d’une mise à jour de la fonction AuC du serveur d’authentification HLR. Pour réaliser l’authentification du réseau, une nouvelle clé AMF (Authentication Management Field) est inscrite dans la carte UICC et dans le HLR.

Le vecteur d’authentification généré par l’AuC contient :

  • l’aléa RAND sur 128 bits ;
  • le résultat d’authentification attendu SRES (32 bits à 128 bits);
  • le sceau d’authentification du réseau opérateur AUTN (128 bits);
  • une clé de chiffrement Ck(128 bits) ;
  • une clé d’intégrité Ik (128 bits).

Le résultat SRES, le sceau AUTN, les clés de chiffrements Ck et Ik sont calculés à partir de l’aléa RAND, de la clé privé symétrique Ki et d’une séquence SQN (figure 6).

Figure 6 : Calcul du vecteur d’authentification 3G

Le vecteur d’authentification est transmis à l’authentificateur VLR ou SGSN. Ce dernier envoie l’aléa RAND et la sceau d’authentification AUTN au mobile, lequel le transfert à la carte UICC.

Le sceau d’authentification est composé de 3 champs qui sont embrouillés par une séquence de 128 bits :

  • une clé d’anonymat Ak (Anonimity Key) sur 48 bits ;
  • la valeur AMF (Authentication Management Field) sur 16 bits ;
  • d’un message de signature d’authentification MAC.

f1 et f2 sont deux fonctions d’authentification. f3, f4 et f5 sont des fonctions de génération de clés (KDF : Key Derivation Function).

Le choix des algorithmes f1, f2, f3, f4 et f5 est spécifique à l’opérateur. Cependant un choix d’algorithmes appelé MILENAGE est proposé par la spécification 3GPP [2] [3].

A partir de sa clé Ki, et de l’aléa, l’application USIM calcule d’abord la clé d’anonymat et récupère ainsi la valeur SQN (par un OU exclusif avec AK et le premier champs AUTN).

Ensuite, le mobile calcule :

  • le message d’authentification XMAC=f1(Ki, AMF, SQN) ;
  • le résultat RES attendu par le cœur de réseau f2(Ki,RAND).

Le résultat RES calculé au niveau de la carte UICC est transmis au mobile qui l’envoie à l’authentificateur. L’authentificateur compare le résultat RES du mobile avec la valeur attendue SRES.

Enfin, la carte UICC vérifie la correspondance entre la signature XMAC calculée avec le champ MAC contenu dans le sceau d’authentification AUTN. Cela permet d’éviter les attaques de type Man In The Middle. Si les valeurs sont identiques, l’application USIM calcule le résultat d’authentification (figure 7).

Figure 7 : Les étapes d’authentification pour la 3G et détection d’une station de base pirate

Ensuite, le mobile dérive les clés de chiffrement Ck et d’intégrité Ik à partir des fonctions f3 et f4.

Alors qu’en 2G le chiffrement et le déchiffrement sont réalisés au niveau de la BTS pour les sessions téléphoniques et au niveau du SGSN pour le trafic IP, en 3G le chiffrement et le déchiffrement s’effectuent au niveau du RNC (Radio Network Controller).

Ainsi, la clé CK doit être transférée du VLR au RNC via la commande security mode command gérée par le protocole RANAP (Radio Access Network Application Part). Ensuite, le RNC active le chiffrement au niveau du mobile via le message RRC security mode command.

Figure 8 : La procédure d’authentification et de chiffrement [5]

La clé Ck est calculée à chaque processus d’authentification. Le chiffrement est réalisé par un ou exclusif entre un bloc de données et un flux de chiffrement. Le flux de chiffrement est calculé à partir de l’algorithme f8 avec comme paramètres :

  • la clé Ck;
  • un compteur COUNT-C sur 32 bits ;
  • l’identité du support radio (BEARER) sur 5 bits ;
  • la direction de transmission (UpLink =0/DownLink =1) ;
  • la longueur du flux de chiffrement (le bloc de donnée à chiffrer).

Figure 9: Le chiffrement des données

L’algorithme f9 est utilisé pour le calcul d’intégrité :

Figure 10 : La signature d’intégrité des données

La valeur FRESH est une variable aléatoire généré par le RNC. La clé IK étant générée lors de l’enregistrement, celle-ci n’est pas modifiée tant que le mobile ne se détache pas. La valeur FRESH permet de modifier régulièrement la signature. Cette valeur est transmise au mobile au cours de la demande de connexion RRC.

D’un point de vue implémentation algorithmique, la valeur FRESH n’est pas réellement aléatoire, elle est souvent prise égale à la valeur du BEARER.

Le compteur COUNT-I protège le récepteur d’une attaque Man In The Middle : le prochain message, le compteur est incrémenté et la signature MAC pour le même message sera différente.

Les algorithmes d’authentification sont connus sous le nom de MILENAGE.

Les algorithmes de chiffrement f8 et f9 sont des algorithmes de KASUMI (déjà utilisé en 2G pour l’algorithme A5/3). Plus récemment, l’algorithme Snow 3G est un algorithme de chiffrement à flot pouvant remplacer l’algorithme KASUMI. L’algorithme SNOW3G est aussi utilisé pour fournir un message d’intégrité MAC (aussi nommé algorithme UIA2).

Figure 11 : Le calcul des clés en 3G

L’intégrité est calculé au niveau de la couche RRC, le chiffrement est réalisé au niveau de la couche RLC (sauf pour le mode transparent ou le chiffrement est réalisé par la couche MAC)

La sécurité sur les réseaux de mobiles – Part 1

Merci à Tony Boucheau pour la relecture de l’article

 Introduction

A l’exception des appels d’urgence, le client mobile n’a accès à aucun des services offerts par le cœur de réseau mobile tant que celui-ci n’est pas authentifié.

Les échanges liés au processus d’authentification sont relayés par le point d’accès vers le serveur d’authentification. Le point d’accès est en général une station de base 2G/3G/4G/5G. Toutefois, le point d’accès WiFi est également vu comme une passerelle radioélectrique permettant de connecter l’utilisateur mobile au cœur de réseau 5G.

Une fois le client authentifié, le point d’accès laisse passer le trafic. Afin de garantir le secret des informations échangées, les données sont chiffrées et un contrôle d’intégrité par une signature MAC (Message Authentication Code) permet de vérifier l’authenticité de l’émetteur.

Le chiffrement est mis en place entre les acteurs de la transaction ce qui garantit que la session devient inintelligible aux autres personnes. Enfin, pour se prémunir des attaques de type Man in the Middle (IMSI Catcher), l’intégrité des données permet de vérifier que les données de signalisation échangées n’ont pas été altérées (de manière fortuite ou intentionnelle). Le chiffrement et l’intégrité sont réalisés au niveau du terminal et :

  • si le point d’accès est une station de base 4G ou 5G, celle-ci apporte un chiffrement sur le trafic de données et sur le trafic de signalisation ainsi qu’un contrôle d’intégrité sur la signalisation. Optionnellement, pour le réseau 5G, le contrôle d’intégrité peut aussi s’appliquer sur le trafic des données. Les clés de chiffrement et d’intégrité sont dérivées à partir d’une clé secrète et à partir des paramètres échangés lors du processus d’authentification ;
  • si le point d’accès est une station de base 2G, le chiffrement est réalisé au niveau de la station de base pour les communications téléphoniques et au niveau du SGSN pour les sessions IP ;
  • si le point d’accès est une station de base 3G, le chiffrement est réalisé au niveau du contrôleur RNC ;
  • si le point d’accès est un point WiFi, un tunnel est mis en œuvre entre le mobile et une entité de passerelle WAG (Wireless Access Gateway). Cette entité se nomme ePDG (evolved Packet Data Gateway) pour le réseau 4G et N3IWF pour le réseau 5G.

 

Le processus d’authentification a pour objectif de vérifier l’identité d’un client (aussi nommé pair ou supplicant). Le protocole d’authentification spécifie le format des messages échangés (requêtes/réponses) entre le client et l’authentificateur. En se basant sur l’identité présumée du client, l’authentificateur transmet au client un défi (un challenge). A partir du défi, le client calcule sa réponse qu’il transmet à l’authentificateur. Cette réponse permettra à l’authentificateur soit d’authentifier le client soit de démasquer un usurpateur d’identité.

L’architecture d’authentification est composée d’un point d’accès, d’un authentificateur et d’un serveur d’authentification. Dans le cas des réseaux de mobiles, l’authentificateur et le serveur d’authentification sont deux entités distinctes : le serveur d’authentification correspond à l’entité HSS pour les réseaux de mobiles 4G ou à l’entité UDM pour les réseaux de mobiles 5G. Le serveur d’authentification (HSS/UDM) est situé en back-end de l’authentificateur. La fonction d’authentificateur est gérée par l’entité MME en 4G ou par la fonction AMF en 5G.

Les étapes d’authentification sont les suivantes :

  • L’authentificateur reçoit une demande d’identification de la part d’un client comprenant l’identité du client. Cette requête peut être initiée par le client ou par l’authentificateur. A partir de cette demande d’identification, l’authentificateur transmet un défi au client ;
  • Le client calcule la réponse au défi et transmet la réponse à l’authentificateur ;
  • L’authentificateur contrôle la réponse en comparant la réponse du client à la réponse attendue.

L’authentificateur interroge le serveur d’authentification en lui fournissant l’identité du client. Le serveur d’authentification vérifie l’existence de l’identité du client, et le cas échéant génère un défi. Le client peut supporter plusieurs méthodes d’authentification. Le défi est choisi selon la méthode d’authentification supportée par le client. Le défi et la réponse sont transmises à l’authentificateur.

Pour les réseaux de mobiles, le client est la carte UICC et les méthodes d’authentifications sont définies dans l’application USIM (et dans l’application ISIM pour l’authentification avec le réseau IMS).

La carte UICC contient une identité IMSI unique et une clé d’authentification Ki. Ces deux informations sont stockées au niveau du serveur d’authentification.