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

Les précédents articles sur le même sujet :

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

II-2) La sécurité sur le réseau 4G

Le réseau en 4G est en réseau en tout IP, et par conséquent, plus sensible sur la sécurité IP. Au niveau de l’accès radioélectrique, la station de base 4G, nommé eNB, rassemble le contrôleur RNC avec la station de base.

Ainsi, le protocole PDCP se situe au niveau de l’eNB. Le chiffrement et l’intégrité sont réalisés par l’eNB en 4G.

Les algorithmes de chiffrement et d’intégrité ont été partiellement redéfinis dans le cas des réseaux de quatrième génération. Ils s’appuient sur deux algorithmes, respectivement fondés sur Snow 3G et AES.

Ainsi, deux standards ont été proposés pour la 4G :

  • chiffrement : Algorithme EEA (EPS Encryption Algorithm) ;
  • intégrité : Algorithme EIA (EPS Integrity Algorithm).

A partir de l’algorithme SNOW3G [6], la 3GPP propose les algorithmes 128-EEA1/128-EIA1.

A partir de l’algorithme AES (Advanced Encryption Standard), la 3GPP propose les algorithmes 128-EEA2/128-EIA2.

A partir de l’algorithme ZUC [7], la 3GPP propose les algorithmes 128-EEA3/128-EIA3.

Tableau 1 : La méthode de chiffrement et la complexité

Les clés de chiffrement et d’intégrité sont calculées à partir de la clé Ki privée et du numéro aléatoire (aléa RAND) fournit au mobile pour l’authentification. Nous allons donc revenir sur la procédure d’authentification en 4G.

Figure 12 : La procédure d’authentification 4G

Se référer aux articles :

La figure 12 présente la procédure d’attachement avec le calcul des clés et les algorithmes associés :

Figure 13 : Procédure d’authentification 4G [8]

Comme en 3G (se référer à la figure 6), le jeton d’authentification contient trois champs :

  • le numéro de séquence SQN embrouillé avec la clé d’anonymat A;
  • la valeur du champ d’authentification AMF ;
  • la signature MAC du message.

La signature est calculée par l’algorithme f1.

Les clés Ck, IK, AK et le résultat d’authentification du mobile RES sont calculés par les algorithmes f2, f3, f4 et f5. La spécification [9] fournit les algorithmes en langage de programmation C.

Figure 14 : le calcul des clés pour la procédure d’authentification en 4G

La carte USIM contient la clé privé Ki. La valeur AMF est fourni avec le vecteur AUTN. OP est une valeur codée sur 128 bits qui est définie par l’opérateur nominal. La clé peut être publique ou secrète. La clé OPc est dérivée de la clé OP à partir de la clé Ki. La clé OPc est stockée dans la carte UICC.

La carte UICC stocke la valeur SQN (cette valeur change à chaque authentification).

Figure 15 : L’algorithme MILENAGE [9]

A l’issu de la phase d’authentification, à partir de la clé privée Ki et de l’aléa RAND :

  • L’entité HSS dérive les clés CK et IK;
  • l’entité HSS dérive la clé KASME à partir de Ck et Ik;
  • l’entité MME dérive les clés KNASenc, KNASInt, KeNB à partir de la clé KASME;
  • l’entité eNB dérive les clés Kupint, Kupenc, kRRCint, KRRCenc.

Les clés de chiffrements utilisées sont :

  • KNASenc pour le chiffrement des messages NAS (UE <-> MME) ;
  • Kupenc pour le chiffrement des messages de données sur l’interface radioélectrique ;
  • KRRCenc pour le chiffrement des messages de contrôle (signalisation) sur l’interface radioélectriques.

Les clés d’intégrités utilisées sont :

  • KNASint pour la signature MAC des messages NAS (UE <-> MME) ;
  • KRRCint pour la signature des messages de contrôle (signalisation) sur l’interface radioélectriques ;
  • Optionnellement (non mis en œuvre en 4G et optionnel en 5G), Kupint pour la signature des messages de données.

La fonction USIM sur la carte UICC réalise l’étape 1 (dérive les clés CK et IK ). Le mobile dérive toutes les autres clés (étapes 2 à 4).

Figure 16 : Le calcul des clés en 4G

Si le mobile fait une procédure d’accès sur le réseau WiFi, le cœur de réseau 4G réalise une nouvelle procédure d’authentification par la méthode EAP-AKA. Celle-ci est décrite en section 3.

Les deux faiblesses de la méthode d’authentification EPS-AKA sont :

  • la transmission en clair de l’identité IMSI. Même si un identifiant temporaire GUTI (Globally Unique Temporary Identity) est ensuite utilisé pour cacher l’identité IMSI sur l’interface radioélectrique LTE, cette identifiant n’est pas modifié assez fréquemment, et l’identité est prédictible. De plus, un réseau pirate peut demander au mobile de retransmettre son identité IMSI en clair ;
  • le réseau nominal fournit au réseau visité le vecteur d’authentification. Il délègue la décision d’authentification au réseau visité.

 

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)