Vous êtes sur la page 1sur 51

Tierce Maintenance Applicative-Infrastructures GET Radius NHE

Mars 2007

Os radius

Le radius est un os long qui forme le squelette de l'avant-bras Cet os va de l'extrieur du coude la base du pouce sur le poignet. Il est plus court que l'autre os de l'avant-bras, le cubitus

Sommaire

Historique AAA Protocole Radius Flux Radius Outils Radius Freeradius Exploitation proxy Radius CASE Questions

Historique

Radius = Remote Authentication Dial-In User Service Dvelopp par Livingston Enterprises puis normalis par lIETF Premire version: janvier 1997 Dernire version: juin 2000 normalise par l'IETF dans les RFC :
RFC 2865 (RADIUS authentication) RFC 2866 (RADIUS accounting) RFC 2869 (RADIUS extensions EAP)

A l'origine pour permettre aux FAI d'authentifier les utilisateurs distants utilisant les connexions par modem RTC partir de multiples serveurs (les clients radius de type NAS) mais d'une seule base utilisateurs (attache au serveur radius)

Authentication Authorization Accounting

Radius est un protocole de type AAA

Authentication
Qui me parle ? Comment je lauthentifie ?

Authorization
Quelles autorisations je lui accorde ?

Accounting
Que fait-il ?

Autres protocoles AAA: DIAMETER, TACACS, TACACS+

Authentication

Permet de vrifier si le client est bien celui quil prtend tre Authentification pour dlivrer des autorisations Prsentation dun login/password, dun token, dune adresse MAC, ... Mthode dauthentification: CHAP, MS-CHAP, PAP, EAP, etc Authentification rseaux:
Branchement physique: 802.1X Autorisation daccs Autorisation d'usage

Authentification applicatives:
Systme d'exploitation: formulaire de login Application apache: formulaire HTTP daccs une page

Authorization

Vrifier si le client droit daccder telle ou telle ressource Utilisation dun fichier ou dune base de donnes Enrichissement grce des attributs
Framed-IP-Address, Session-Timeout et Idle-Timeout, ..

Utilisation de dictionnaires

User-Name cyber * cyber

Action check ajout ajout

Attribut Password DNS Gateway "toto"

Valeur

213.223.20.254 213.223.20.1

Accounting

Enregistrer les ressources consommes par le client


temps pass sur une connexion internet via un modem trafic tlcharg lors de la dernire connexion.

Date 13/02/2007 12:01:00 13/02/2007 12:01:32 14/02/2007 18:01:32

User-Name nhe nhe bja

Type Start Stop Stop

Session-Id 000003 000003 000004

Input-Octets

Output-Octets

Session-Time

145 20Mo

119 2506 Terra octets

32 3600

Le protocole Radius

Permet de grer les connexions d'utilisateurs des services distants (politique d'autorisation, droits d'accs et traabilit) Dfini par la RFC2138/RFC2139 et ses extensions RFC2869 (support de lEAP pour accroitre la scurit) Architecture client/serveur Transport UDP Port 1812 (anciennement 1645): service authentification Port 1813 (anciennement 1646): service accounting Proxyfiable Transport en clair, seul le mot de passe est chiffr par hachage Richesse des informations qui peuvent potentiellement tre transmises entre le serveur et le client par les attributs (AvPairs)

Les types de paquets

Le protocole utilise 6 types de paquets => suffisants pour assurer toutes les transactions: Access-Request
Premier paquet envoy par le client (NAS), Contient l'identit de l'utilisateur qui se connecte

Access-Accept
Renvoy par le serveur Radius pour accepter la requte du client aprs interrogation de sa base d'authentification

Access-Reject
Emis par le serveur radius pour spcifier au client que sa requte est rejete.

Access-Challenge
Emis par le serveur Radius pour demander de remettre un access-request avec des paramtres supplmentaires

Accounting-Request
Emis par le client pour indiquer loccurrence dun dvnement

Accounting-Response
Emis par le serveur pour confirmer lenregistrement de lvnement

10

Structure dun paquet RADIUS

Code (1 octet) = Type de la requte


1 2 3 4 5 11 12 13 255 Access-Request Access-Accept Access-Reject Accounting-Request Accounting-Response Access-Challenge Status-Server (experimental) Status-Client (experimental) Reserved

Identifier (1 octet): permet dassocier les requtes et leurs rponses Length (2 octets): taille totale du paquet UDP Authenticator (2 octets): permet de garantir lintgrit et la scurit Attributes

11

Les authenticators

Hash de 16 octets qui assure la scurit des changes Calcul des authenticators:
RequestAuth = nombre alatoire ResponseAuth = MD5(Code+ID+Length+RequestAuth+Attributes+Secret) RequestAcct = MD5(Code+ID+Length+16 zero octets+Attributes+Secret) ResponseAcct = MD5(Code+ID+Length+ RequestAcct+Attributes+Secret)

Les paquets access-request ne sont pas authentifis avec le secret ! Le serveur peut demander un challenge (Request-Challenge) Seul lattribut User-Password permet de vrifier que le secret partag est le bon.. enfin, si le password est bon
User-Password = XOR(MD5(Secret+RequestAuth),Password)

12

Les attributs (AvPairs)

Couple de cl/valeur permettant un enrichissement des proprits des paquets Chaque attribut possde un numro d'identification Seul ce numro est transmis dans les paquets La correspondance entre le nom de l'attribut, son numro et son type est ralis dans un dictionnaire
Nom
User-Name User-Password CHAP-Password NAS-IP-Address NAS-Port Service-Type Framed-Protocol Framed-IP-Address Framed-IP-Netmask

Code
1 2 3 4 5 6 7 8 9

Type
string string octets ipaddr integer integer integer ipaddr ipaddr

Situ dans: /usr/share/freeradius/dictionary


13

Structure dun attribut dans un paquet RADIUS

Type (1 octet) = type de lattribut


1 2 3 4 5 6 8 18 26 27 28 30 31 32 40 44 46 56 User-Name User-Password CHAP-Password NAS-IP-Address NAS-Port Service-Type Framed-IP-Address Reply-Message Vendor-Specific Session-Timeout Idle-Timeout Called-Station-Id Calling-Station-Id NAS-Identifier Acct-Status-Type Acct-Session-Id Acct-Session-Time Egress-VLANID

Length (1 octet): taille totale de lattribut en comptant le Type+ Length+Value Value (x octets)

14

Les attributs spcifiques: vendor

Les fabricant de matriel rseau ont parfois intgr leurs quipements des attributs spcifiques en plus des attributs standards dfinis dans les RFC. Ces attributs sont encapsuls dans l'attribut standard vendor-specific qui a pour numro 26. Ils sont appels VSA = Vendor Specific Attribut

15

Structure dun attribut VENDOR dans un paquet RADIUS

Type (1 octet) = 26 Vendor-Specific Length (2 octets) = taille totale de lattribut Vendor-Id (4 octets) = N'immatriculation du fabricant

(NMPECS= Network Management Private Enterprise Codes "Assigned Numbers" RFC1700


Vendor-Type (2 octets) = Comme pour les attributs standards, les vendor-attributs possdent un

numro d'identification. Ce numro est rpertori dans un dictionnaire spcifique au fabricant


Vendor Length (2 octets) = taille totale de lattribut vendor spcifique Value (x octets) = valeur de lattribut vendor spcifique

16

Mode opratoire

Une utilisation type de RADIUS met en jeu 3 acteurs:


1) L'utilisateur: un poste de travail, un portable, un PDA... qui met la requte d'authentification 2) Le client RADIUS: c'est le point d'accs au rseau (NAS, firewall, point d'accs wireless, etc...) 3) Le serveur RADIUS: le point central o les donnes d'authentification sont transmises; le serveur RADIUS a typiquement accs une base de donnes d'utilisateurs et de mots de passe

17

Flux dauthentication

NAS

Access-Request User-Name=nhe@fai Password: toto NAS-IP-Address: 207.12.4.1

Serveur Radius

Base de donne utilisateurs FAI

Select User=nhe

User: nhe@fai Password: toto

Access-Accept User-Name=nhe@fai [other attributes]

User=nhe password=toto Timeout=3600 [other attributes]

Framed-Address=213.223.38.100

Internet
Utilisateur

Internet PPP connection established


18

Flux daccounting

NAS

Accounting-Request User-Name=nhe@fai Serveur NAS-IP-Address: 207.12.4.1 Acct-Status-Type = Stop Acct-Session-Id = 120 Acct-Session-Time = 200

Radius

Base de donne utilisateurs FAI

Update User=nhe set Time += 200

Dconnexion

Accounting-Response User-Name=nhe@fai Acct-Session-Id = 120

Internet
Utilisateur

19

Faiblesses du protocole

Le protocole RADIUS possde ainsi plusieurs failles de conception se trouvant l'origine de problmes de scurit :
La technique de protection "User-Password" ne devrait pas utiliser la fonction MD5 comme primitive de chiffrement qui est plutt rserv pour des opration de signature La gnration du champ "Response Authenticator" prsente des faiblesses Le paquet "Access-Request" n'est pas authentifi. De nombreuses implmentations clientes ne crent pas des requtes d'authentification "Request Authenticator" suffisamment alatoires Beaucoup d'administrateurs choisissent des "secrets partags" identiques pour diffrents clients De nombreuses implmentations clientes limitent artificiellement le nombre de caractres possibles du secret partag

En interceptant la fois le Access-Request envoy par le client et la rponse du serveur, il est possible de trouver le secret en utilisant une attaque brute-force ou par dictionnaire. En effet, le Request Authenticator n'est pas encrypt dans la requte, ni les champs Code, Identificateur et Longueur et les attributs dans la rponse
RequestAuth = nombre alatoire ResponseAuth = MD5(Code+ID+Length+RequestAuth+Attributes+Secret)

20

Schma dune infrastructure radius ADSL

Le modem adsl effectue une demande de connexion sur le domaine @sfr.fr Le BAS demande une authentification sur le radius interne de la collecte ADSL de NeufTelecom Le radius analyse la demande et retransmet la requte vers le serveur radius du FAI distant

21

Les extensions du protocole Radius: support EAP (802.1x)

Radius a t tendu pour supporter le protocole EAP et donc l'authentification 802.1x. Pour cela 2 attributs ont t ajouts:
Message-Authenticator EAP-Message

Les paquets EAP sont encapsuls dans l'attribut EAP-Message Message-Authenticator est un attribut qui permet de signer les requtes qui contiennent des attributs EAP-Message. (calcul MD5 sur le contenu d'un access-request + secret partag) RFC:
3579 radius support for EAP 3748 EAP 2716 EAP/TLS 3580 802.1x radius usage guidelines

22

Exemple dauthentification russie

23

Exemple dauthentification en chec

24

Exemple daccounting russi

25

Exemple daccounting en chec

Pas de rponse

26

Boites outils Radius Marc

Serveurs radius
Radiator Steel-Belted Microsoft Radius Server IAS Cisco Secure Access Control Server (ACS) OpenRADIUS Radius - GNU Project Cistron RADIUS Freeradius

Clients radius
radtest radiusclient testradius healthcheck F5 Cyber

27

Freeradius

Freeradius est une implmentation open source du protocole Radius Bas sur Cistron Supporte:
PAP, CHAP, MS-CHAP, EAP-MD5, EAP-GTC, EAP-TLS, EAP-TTLS, PEAPv0, LEAP, EAP-SIM, Digest LDAP, PostgresSQL, Oracle, SAMBA, fichier Local Proxy RADIUS Failover, Load balancing Rcriture, Ajout dattribut la vole Plus de 100 dictionnaires vendor Module PAM-radius pour linux Module mod_auth pour Apache

Disponible sur : Linux, FreeBSD, NetBSD, Solaris, MAC OSX, HP/UX, AIX, MINGW32, CygWin
28

Freeradius: Fichiers de configuration

Les fichiers de configurations sont dans /etc/raddb Configurations principales:


radiusd.conf => fichier de configuration gnral clients.conf => contient les IP des clients et leur secret users => contient les user-name et leurs attributs pour lauthentification huntgroup => contient les groupes dauthentification proxy.conf => contient les directives du proxy radius

Configurations secondaires:
eap.conf dictionnary ldap.attrmap oraclesql.conf postgresql.conf sql.conf

29

Freeradius: fichier clients.conf

Doit rfrencer toutes les IP et les secrets des clients Radius autoriss /etc/raddb/clients.conf

client 127.0.0.1 { secret = "testradius" shortname = localhost } client 80.125.182.0/30 { secret = "testradius" shortname = HC_DMZF } client 80.118.192.64/26 { secret = "tutuyoutou" shortname = h-int-rha-proxy_radius_sfr

30

Freeradius: fichier users

Le fichier users est la base de donnes locale Il est constitu d'une succession d'entres. Chacune correspondant un utilisateur ou une machine Le fichier est parcouru squentiellement du haut vers le bas Chaque entre commence par un identifiant (le username) suivi par une liste d'item vrifier (check item) sur une seule ligne. Les lignes suivantes commencent par une tabulation suivie d'une liste d'items de rponse (reply item) (Il peut y avoir plusieurs reply item spars par des virgules et sur plusieurs lignes) La slection sarrte au premier qui match sauf si une directive de FallThrough = Yes est utilis Tous les check-item doivent matcher, sinon la requte est rejete

31

Freeradius: fichier users


/etc/raddb/users
steve Auth-Type := Local, User-Password == "testing" Service-Type = Framed-User, Framed-Protocol = PPP, Framed-IP-Address = 172.16.3.33, Framed-IP-Netmask = 255.255.255.0, Framed-Filter-Id = "std.ppp", Framed-MTU = 1500, Framed-Compression = Van-Jacobsen-TCP-IP

DEFAULT Suffix == ".shell", Auth-Type := System Service-Type = Login-User, Login-Service = Telnet, Login-IP-Host = your.shell.machine

testradius Auth-Type := Local , User-Password == "testradius" Reply-Message = "Hello, %u", Fall-Through = No DEFAULT Huntgroup-Name == "proxy_radius_sfr" , Proxy-To-Realm := "h-ach-rha-vipradius" Fall-Through = No

32

Freeradius: oprateurs du fichier users

Oprateurs sur les check-item


Attribute = valeur : interdit ! Attribute := valeur : ajoute ou crase l'attribut dans la requte (pour forcer les inputs) Attribute += valeur : ajoute l'attribut dans la requte (pour forcer les inputs) Attribute == valeur : match si l'attribut est prsent et est gale cette valeur Attribute != valeur : match si l'attribut est prsent et n'est pas gale cette valeur Attribute > valeur, >= , <, <= : match si l'attribut est prsent et est > ou >= ou < ou <= cette valeur Attribute =~ expression : match si l'attribut match l'expression rgulire Attribute !~ expression: match si l'attribut ne match pas l'expression rgulire Attribute *= value: match si l'attribut est prsent dans la requte. La valeur n'a pas d'importance Attribute !* value : match si l'attribut nest prsent dans la requte. La valeur n'a pas d'importance

Oprateurs sur les reply-item


Attribute = valeur : ajoute l'attribut la liste des reply-items .
33

Freeradius: fichier huntgroups

Permet de dfinir un groupe de clients bas sur des adresses IP Le nom du groupe servira comme discriminant dans le users /etc/raddb/huntgroups
proxy_radius_sfr Client-IP-Address =~ "80.118.192.*" proxy_radius_sfr Client-IP-Address =~ "80.118.196.*" proxy_radius_sfr Client-IP-Address =~ "86.64.152.*"

Pourquoi ne pas le faire dans le users ?

34

Freeradius: fichier proxy.conf

Permet de dfinir la configuration des forwarding Commence par une directive proxy server:
proxy server { synchronous = no retry_delay = 5 retry_count = 3 dead_time = 120 default_fallback = no }

Un serveur est vu down si une requte nest pas servie dans le dlais imparti Attention, il est sorti du pool pendant 120s non compressible ! synchronous=no permet de ne pas renvoyer une requte duplique default_fallback=no permet de ne pas utiliser les entres DEFAULT en cas dabsence de realm => proxy par default

35

Freeradius: fichier proxy.conf

Constitu d'une succession de directives realm permettant de choisir le forwardeur De base: si User-name=toot@free.fr alors realm=free.fr Choix dimplmentation: pas de connaissance des realms des user-name + forage du realm dans le fichier users
realm h-ach-rha-vipradius { type = radius authhost = 10.143.214.20:1812 accthost = 10.143.214.20:1813 secret = toutouyoutou nostrip }

Forward des requtes vers les hosts suivant le service auth ou acct Si 2+ realms identiques avec directive: ldflag= round_robin alors load-balacing Si 2+ realms identiques avec directive: ldflag= fail_over alors active/backup

36

Freeradius: fichier radius.conf

Configuration centrale de freeradius (60ko de base) Dcoup en blocs Listen


Dfinit la partie coute du daemon radiusd (port, multihoming)

Securit
Dfinit les paramtres pour minimiser les impacts dune attaque (nombre max dattributs, temps entre 2 requtes, etc..

Thread
Dfinit les paralllisassions des process traitant les requtes entrante (nombre min, max, start, etc)

Snmp
Dfinit la communaut pour le pooling des stats => ne marche pas dans notre version

Instantiate
Dfinit lordre de chargement des modules

37

Freeradius: fichier radius.conf

Bloc Modules
Dfinit les fonctions activables ainsi que leur instances : chap, pap, realm, ldap,files, preprocess, sql, passwd, attr_rewrite Format : nom_du_module nom_de_linstance { paramtres }
modules { ldap ldap_serveur1 { server = "ldap.your.domain" } ldap ldap_serveur2 { server = "ldap2.your.domain" } } attr_rewrite rwt_username { attribute = User-Name searchin = proxy searchfor = sfr.fr replacewith = sfr.com ignore_case = no new_attribute = no }
detail acct_log { detailfile = ${radacctdir}/%{Client-IP-Address}/acct_detail-%Y%m%d detailperm = 600 } detail auth_log { detailfile = ${radauthdir}/%{Client-IP-Address}/auth-detail-%Y%m%d detailperm = 600 } detail post_auth_log { detailfile = ${radacctdir}/%{Client-IP-Address}/reply-detail-%Y%m%d detailperm = 600 } detail pre_proxy_log { detailfile = ${radacctdir}/%{Client-IP-Address}/pre-proxy-detail-%Y%m%d detailperm = 600 } detail post_proxy_log { detailfile = ${radacctdir}/%{Client-IP-Address}/post-proxy-detail-%Y%m%d detailperm = 600 }
38

Freeradius: fichier radius.conf

Bloc Authentication
Liste les type dauthentification disponibles Sur CASE uniquement PAP et CHAP
authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } }

Autres: EAP, LDAP, digest, unix

39

Freeradius: fichier radius.conf

Bloc Authorize
Prpare les attributs, les enrichis et dcide quels sont ceux qui seront renvoys Sur CASE, uniquement preprocess (clean + huntgroups) -> realms -> users

authorize { preprocess auth_log chap suffix files }

40

Freeradius: fichier radius.conf

Bloc pre-proxy / post-proxy


Permet de rcrire, logger, supprimer les attributs avant de les relayer vers le serveur final (pre-proxy) ou avant des renvoyer vers le clients (post-proxy) Peu de modules disposent de ces sections Sur CASE, uniquement pour logger

pre-proxy { pre_proxy_log #attr_rewrite #attr_filter } post-proxy { post_proxy_log #attr_rewrite #attr_filter }

41

Philosophie de limplmentation Proxy CASE

Pour RHA
CASE ne connat pas les realms des clients => exit la mthode des realm toto@sfr CASE ne connat pas les User-name et CASE na pas accs une base LDAP => exit mthode user=>proxy CASE connat les IP de NAS/Proxy se connectant dfinition dun huntgroup forage du huntgroup tre proxyfi vers la PFS RHA Peut-tre contraignant car discriminant = IP source

Mthode plus fine pour dautres cas (attribut spcifique, realm)

42

Exploitation de freeradius

Arret/Dmarrage/Statut: /etc/init.d/radiusd stop/start/status Debug prolog avanc (attention cela coupe le flux)
/etc/init.d/radiusd stop radiusd X Ne pas oublier de relancer /etc/init.d/radiusd start

Debug prod: tcpdump ou activation des log


Dcommenter les # dans les sections authentication ou accounting /etc/init.d/radiusd reload tail f /var/log/radius/radacct/IPCLIENTE/pre-proxy-detail tail f /var/log/radius/radacct/IPCLIENTE/post-proxy-detail tail f /var/log/radius/radacct/IPCLIENTE/auth-detail tail f /var/log/radius/radacct/IPCLIENTE/reply-detail tail f radius.log
Tue Nov 21 12:02:12 2006 : Proxy: marking authentication server 10.163.214.20:1812 for realm h-ach-rhc-vipradius dead Tue Nov 21 12:04:51 2006 : Proxy: marking authentication server 10.163.214.20:1812 for realm h-ach-rhc-vipradius dead

43

Exploitation de freeradius

/var/log/messages
Mar 30 11:59:16 pppsvada01 radiusd: radiusd shutdown succeeded Mar 30 11:59:19 pppsvada01 radiusd: Fri Mar 30 11:59:19 2007 : Info: Starting - reading configuration files ... Mar 30 11:59:19 pppsvada01 radiusd: radiusd startup succeeded Mar 30 11:59:40 pppsvada01 radiusd: radiusd shutdown succeeded Mar 30 11:59:43 pppsvada01 radiusd: Fri Mar 30 11:59:43 2007 : Info: Starting - reading configuration files ... Mar 30 11:59:43 pppsvada01 radiusd: Fri Mar 30 11:59:43 2007 : Error: /etc/raddb/radiusd.conf[267]: Unexpected end of file Mar 30 11:59:43 pppsvada01 radiusd: Fri Mar 30 11:59:43 2007 : Error: Errors reading radiusd.conf Mar 30 11:59:43 pppsvada01 radiusd: radiusd startup failed

44

Log dune requte proxy en mode radiusd -X


rad_recv: Access-Request packet from host 80.118.192.89:43255, id=151, length=209 User-Name = "usr1opt3@test.sfr.fr" CHAP-Password = 0x01128b8ff6bbebf100e98d95a0f5292e3f NAS-IP-Address = 86.70.250.167 NAS-Identifier = "92def1-G2-2" Framed-Compression = None NAS-Port-Type = Virtual NAS-Port = 2 Port-Limit = 0 Calling-Station-Id = "92def1-G2-201100100037" Acct-Session-Id = "0077904942" Connect-Info = "OPT1-MAD-MAX" NAS-Port-Id = "92def1-G2-2.1.At.1.1.1.1.37.1.37" Proxy-State = 0x4f53432d457874656e6465642d49643d313531 Processing the authorize section of radiusd.conf modcall: entering group authorize for request 73 modcall[authorize]: module "preprocess" returns ok for request 73 rlm_chap: Setting 'Auth-Type := CHAP' modcall[authorize]: module "chap" returns ok for request 73 rlm_realm: Looking up realm "test.sfr.fr" for User-Name = "usr1opt3@test.sfr.fr" rlm_realm: No such realm "test.sfr.fr" modcall[authorize]: module "suffix" returns noop for request 73 users: Matched DEFAULT at 6 modcall[authorize]: module "files" returns ok for request 73 modcall: group authorize returns ok for request 73
45

Sending Access-Request of id 2 to 10.143.214.20:1812 User-Name = "usr1opt3@test.sfr.fr" CHAP-Password = 0x01128b8ff6bbebf100e98d95a0f5292e3f NAS-IP-Address = 86.70.250.167 NAS-Identifier = "92def1-G2-2" Framed-Compression = None NAS-Port-Type = Virtual NAS-Port = 2 Port-Limit = 0 Calling-Station-Id = "92def1-G2-201100100037" Acct-Session-Id = "0077904942" Connect-Info = "OPT1-MAD-MAX" NAS-Port-Id = "92def1-G2-2.1.At.1.1.1.1.37.1.37" Proxy-State = 0x4f53432d457874656e6465642d49643d313531 CHAP-Challenge = 0x572c6d143f4d21563be1ba588bd3b35f Proxy-State = 0x313531 rad_recv: Access-Accept packet from host 10.143.214.20:1812, id=2, length=142 Proxy-State = 0x4f53432d457874656e6465642d49643d313531 Proxy-State = 0x313531 Reply-Message = "-" Service-Type = Framed-User Tunnel-Assignment-Id:1 = "217.70.90.123" Tunnel-Client-Auth-Id:1 = "clara-sfr" Tunnel-Medium-Type:1 = IP Tunnel-Password:1 = "password" Tunnel-Preference:1 = 1 Tunnel-Server-Endpoint:1 = "217.70.90.123" Tunnel-Type:1 = L2TP
46

Processing the post-proxy section of radiusd.conf modcall: group post-proxy returns ok for request 73 authorize: Skipping authorize in post-proxy stage rad_check_password: Found Auth-Type rad_check_password: Auth-Type = Accept, accepting the user radius_xlat: '-' Processing the post-auth section of radiusd.conf modcall: entering group post-auth for request 73 modcall: group post-auth returns ok for request 73 Sending Access-Accept of id 151 to 80.118.192.89:43255 Reply-Message = "-" Service-Type = Framed-User Tunnel-Assignment-Id:1 = "217.70.90.123" Tunnel-Client-Auth-Id:1 = "clara-sfr" Tunnel-Medium-Type:1 = IP Tunnel-Password:1 = "password" Tunnel-Preference:1 = 1 Tunnel-Server-Endpoint:1 = "217.70.90.123" Tunnel-Type:1 = L2TP Proxy-State = 0x4f53432d457874656e6465642d49643d313531 Finished request 73

47

Question ?

Hicham?

48

EAP/TLS

49

EAP/TLS

1- Le NAS envoi au client une requte EAP lui demandant son identit 2- Le client rpond avec le CN comme identit 3- Le serveur dmarre la squence TLS par lenvoi du message TLS_start 4- Le client rpond par un message client_hello :
La version de TLS Un challenge (nombre alatoire) Un identifiant de session La liste des algorithmes de chiffrement supports par le client

5- Le serveur rpond par un message server_hello


Son certificat et sa cl publique Demande au client denvoyer son certificat Un challenge Un identifiant de session calcul partir de celui du client. Choisit un algorithme de chiffrement en fonction de ceux connus par le client

6- Le client vrifie le certificat du serveur et envoi le sien et sa cl publique


50

EAP/TLS

7- Le client et le serveur calculent une cl de chiffrement pour la session principale ( partir des challenges changs) 8- Le client renvoi une rponse EAP vide et le serveur rpond par un message EAP_success avec une cl de session pour la borne wifi. 9- A partir de cette cl de session la borne calcul une cl WEP ou WPA et lenvoi au client. Dans le cas dauthentification EAP/TLS la cl de session principale nest pas utilise.

51