sécurité dans lumts* mougel sébastien [email protected] *universal mobile telecommunication system...

22
Sécurité dans l’UMTS* MOUGEL Sébastien [email protected] *Universal Mobile Telecommunication System CNAM : UV C

Upload: garland-loyer

Post on 03-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Sécurité dans l’UMTS*

MOUGEL Sé[email protected]

*Universal Mobile Telecommunication SystemCNAM : UV C

Page 2: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Plan

Architecture du réseau Carte USIM Explication de l’algorithme KASUMI

Page 3: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Réseau UMTS

Page 4: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Réseau UMTS

Page 5: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Différences GSM/UMTSLes fonctions de sécurité de l’UMTS sont basée sur ce qui a été implémenté dans le GSM.Quelques fonctions de sécurité ont été ajoutées et d’autres améliorées. Les algorithmes de

cryptage sont plus forts et inclus dans le NODE-B jusqu’au contrôleur d’interface radio (RNC : radio network controller ). L’ application des algorithmes d’authentification est plus stricte et la confidentialité de l’abonné plus forte.

Les principaux éléments de sécurité du GSM sont :

Authentification des abonnés

Identité de l’abonné confidentielle

La carte SIM doit pouvoir être détachée du terminal.

Cryptage de l’interface radio

Caractéristiques supplémentaires de sécurité dans l’UMTS:

Plus de sécurité contre les « fausses » stations de base (base stations) avec authentification mutuelle

Cryptage étendu de :l’air seulement -> Base station-> RNC

Système pour les mises à jour de sécurité.

Page 6: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

USIM

•Authentification & chiffrement•JavaCard Virtual Machine

HLR : Home Location Registrer

AuC: Authentification Center

IMSI: International Mobile Suscriber Identity (Stocké dans la SIM)

IMEI: N°série du mobile

ISDN: N°téléphone +3306 .. .. .. ..

Page 7: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

KASUMI

C

Fig. 1: KASUMI

FO1FL1

FO3FL3

FO5FL5

FO7FL7

FO2 FL2

FO4 FL4

FO6 FL6

FO8 FL8

KL1 KO1, KI1

FIi1 KIi,1

KOi,1

FIi2 KIi,2

KOi,2

FIi3 KIi,3

KOi,3

S9

S9

zero-extend

zero-extend

truncate

KIi,j,1 KIi,j,2

32 3264

16 1632 16

9 7

Fig.2: FO Function Fig.3: FI Function

Fig.4: FL Function

bitwise AND operation

bitwise OR operation

one bit left rotation

3216 16

KLi,1

KLi,2

KL6

KL8

KL7

KL2

KL5

KL4

KL3

KO2, KI2

KO3, KI3

KO4, KI4

KO5, KI5

KO6, KI6

KO7, KI7

KO8, KI8

truncate

S7

S7

L0

L8

R0

R8

Page 8: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

KASUMI

Algorithme de chiffrement par blocs (128 bits) construit à partir de l’algorithme MISTY de Mr MATSUI

C’est le noyau des algorithmes f8 (confidentialité) et f9 (intégrité)

Entrée sur 64 bits Sortie sur 64 bits Clé à 128 bits KASUMI se décompose en 3 fonctions (FL,FO,FI) et 3

sous clés (KL,KO,KI)

Page 9: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

KASUMI (Fonctions)

fi() : La fonction pour le ième « round » de KASUMI FI() : Transforme une entrée sur 16 bits en une sortie de

16 bits en utilisant une sous clé sur 16 bits FL() : idem sur 32 bits FO() : Entrée (32 bits) Sortie (32 bits) 2 sous-clés de 48

bits chacunes

Page 10: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

KASUMI (Variables)

K : Une clé de 128 bits KLi,KOi,KIi : Sous clés pour le ième round S7[] : S-Box (Entrée de 7 bits /Sortie de 7

bits) S9[] : S-Box (Entrée de 9 bits /Sortie de 9

bits)

Page 11: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Le fonctionnement

Chiffrement de FEISTEL avec 8 « round » I : Entrée sur 64 bits I est divisée en 2 chaînes de 32 bits I= L0 || R0 (|| représente la concaténation) Pour 1<= i <=8 Ri=Li-1 , Li=Ri-1 fi(L⊕ i-1,RKi) SORTIE = KASUMI[I]k ( OUTPUT=L8 || R8 )

Page 12: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

FEISTELDans ce système de chiffrement, un bloc de texte en clair est découpé en deux ; la transformation de ronde est appliquée à une des deux moitiés, et le résultat est combiné avec l'autre moitié par ou exclusif. Les deux moitiés sont alors inversées pour l'application de la ronde suivante. Un avantage de ce type d'algorithmes est que chiffrement et déchiffrement sont structurellement identiques.

Nous considérerons que pour une certaine clef entrée, ces fonctions sont les suivantes:

Page 13: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

La fonction fi()

Entrée : 32 bits Sortie : 32 bits Clé du round : RKi triplet(KLi, KOi,KIi) Fonction qui comprend FL() et FO() FL utilise : KLi FO utilise KOi et KIi

Round pair : fi(I,RKi) = FO( FL( I, KLi), KOi, KIi )

Round impair : fi(I,Ki) = FL( FO( I, KOi, KIi ), KLi )

Page 14: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Fonction FL

La clé est divisée en 2 :KLi = KLi,1 || KLi,2

L’entrée I = L || R

R′ = R ROL( L KLi,1 )L′ = L ROL( R′ KLi,2 )

La sortie vaut : S=L’||R’

Page 15: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Fonction FO

I=L0||R0 KOi = KOi,1 || KOi,2 || KOi,3 et KIi = KIi,1 || KIi,2 || KIi,3 Les clés de 48 bits sont divisées en 3 clés de 16 bits Pour chaque entier j tel que : 1<=j<=3

Rj = FI(Lj-1 KOi,j , KIi,j ) Rj-1Lj = Rj-1

A la fin : S=L3||R3

Page 16: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Fonction FI

I=L0||R0

La clé KIij (16 bits)=KIij,1(7 bits)||KIij,2 (9 bits)

Utilise 2 S-box S7 et S9 ZE(x) 0x1234567 -> 0x001234567 TR(x) 0x123456789 -> 0x23456789 L1 = R0 R1 = S9[L0] ZE(R0) L2 = R1 KIi,j,2 R2 = S7[L1] TR(R1) KIi,j,1 L3 = R2 R3 = S9[L2] ZE(R2) L4 = S7[L3] TR(R3) R4 = R3

S=L4 || R4

Page 17: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

S-BoxChacune d'elles rend difficile la table inversible.

Une S-Box possible est la transformation d'identité, qui n'a en fait aucun effet. Toute autre transformation a au moins un effet sur les données.

– La S-Box Si permet de subtituer les 6 bits(b1b2b3b4b5b6) par les bits Si[b1b6][b2b3b4b5].– Exemple : S1 substitue (011010) en S1[00][1101] = 9 (1001).

Page 18: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

S-Box

Entrée x Sortie yx = x8 || x7 || x6 || x5 || x4 || x3 || x2 || x1 || x0

y = y8 || y7 || y6 || y5 || y4 || y3 || y2 || y1 || y0

Page 19: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

S-Box

Au niveau hardware : Les s-box ont été conçues pour être implementées avec peu de composants

de logique combinatoire Les opérations S7 et S9

Peuvent être effectuées en

parallèle FIi,1 et FIi,2 également

FIi,1 FIi,2

FIi,3

16 1632

Fig.6: FO Function

S9

S9

169 7

Fig.5: FI Function

S7

S7

Page 20: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Planification des clésKASUMI a une clé K de 128bits. A chaque tour KASUMI utilise une clé dérivée de K. Deux tableaux de 16-bits Kj et Kj′ (j=1 à 8) :K = K1 || K2 || K3 ||…|| K8.

Pour chaque entier j tel que 1 j 8Kj′ = Kj Cj

Cj est la valeur definie dans la table 2.Les sous clés sont derivée de Kj et Kj′ comme défini dans table 1.

Page 21: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

KASUMI

C

Fig. 1: KASUMI

FO1FL1

FO3FL3

FO5FL5

FO7FL7

FO2 FL2

FO4 FL4

FO6 FL6

FO8 FL8

KL1 KO1, KI1

FIi1 KIi,1

KOi,1

FIi2 KIi,2

KOi,2

FIi3 KIi,3

KOi,3

S9

S9

zero-extend

zero-extend

truncate

KIi,j,1 KIi,j,2

32 3264

16 1632 16

9 7

Fig.2: FO Function Fig.3: FI Function

Fig.4: FL Function

bitwise AND operation

bitwise OR operation

one bit left rotation

3216 16

KLi,1

KLi,2

KL6

KL8

KL7

KL2

KL5

KL4

KL3

KO2, KI2

KO3, KI3

KO4, KI4

KO5, KI5

KO6, KI6

KO7, KI7

KO8, KI8

truncate

S7

S7

L0

L8

R0

R8

Page 22: Sécurité dans lUMTS* MOUGEL Sébastien smougel@yahoo.fr *Universal Mobile Telecommunication System CNAM : UV C

Références

http://www.3gpp.org (3rd generation partnership project) http://www.rd.francetelecom.com