Your SlideShare is downloading. ×

Rapport sécurité

5,051

Published on

Etude théorique et pratique de …

Etude théorique et pratique de
RC5, RC6, SNORT et RADIUS
&
leurs applications

Published in: Education
3 Comments
6 Likes
Statistics
Notes
  • peut tu m'envoyer ce document s'il vous plaît, c'est vraiment intéressant, je suis en stage et je dois mettre en place un serveur radius sous windows server 2008r2. J' espère sans doute qu'il me seras utile.Mon e-mail est theophilix@yahoo.fr. Merci d'avance
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • peut tu m'envoyer ce document s'il vous plaît, c'est vraiment intéressant, mon e-mail est hadjira17@hotmail.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • peut tu m'envoyer ce document s'il vous plaît, c'est vraiment intéressant, mon e-mail est tarik.tyane@gmail.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
5,051
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
444
Comments
3
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Etude théorique et pratique de RC5, RC6, SNORT et RADIUS & leurs applicationsRéalisé par :  Younes ASIMI  Yassine SADQI  Mohamed ZAOUI Encadré par : Prof. Ahmed ASIMI
  • 2. Sommaire RADIUS :I. INTRODUCTION GENERALE .................................................................................................. 3II. LE PROTOCOLE RADUIS ........................................................................................................ 4III. FONCTIONNEMMENT DU PROTOCOLE RADUIS ................................................................ 11IV. Configuration du RADIUS : cas Windows 2003 .................................................................. 14 Introduction ................................................................................................................................ 15 Configuration générale du serveur ............................................................................................ 17 Centralisation des clients daccès distant à laide du serveur IAS ........................................... 21 Configuration des clients daccès à distance et sécurisation de laccès à distance................. 28 Conclusion .................................................................................................................................... 31 SNORT :I. Introduction ...................................................................................................................... 32II. Détection dattaques : les IDS .......................................................................................... 32III. Mise en oeuvre dIDS........................................................................................................ 36 RC5 : ………………………………………………………………………………………………………………………………45 RC6 :I. Le chiffrement par bloc...................................................................................................... 48II. Présentation de l’algorithme RC6 ...................................................................................... 48III. Principes de l’algorithme ................................................................................................... 48 2
  • 3. RADIUS I. INTRODUCTION GENERALE Remote Authentication Dial-In User Service est un système qui fait de « lAAA »(Authentication,Authorization and Accounting). Utilisé depuis longtemps déjà par bon nombre defournisseurs daccès à linternet pour authentifier leurs clients et leur communiquer une configurationIP. RADIUS est également très utile pour sécuriser un réseau Wi-Fi, ou même un réseau filaire, danscertaines conditions. • la sécurisation dun réseau Wi-Fi (authentification WPA2-TLS), • la sécurisation dun réseau filaire (authentification des stations par adresse MAC). Ce type de sécurisation savère fort intéressant si lon dispose dun réseau proposant un accèsfilaire et Wi-Fi, avec des utilisateurs susceptibles de venir y connecter leur ordinateur portable. Pardéfinition, ce type de machine échappe totalement au contrôle de ladministrateur et peut être la sourcede bien des soucis. Les services présentés par RADUIS sont capables dauthentifier des utilisateurs distants,suivant de multiples modes plus ou moins sécurisés, en sappuyant sur une base connaissances allantdu simple fichier texte à lannuaire LDAP, en passant par une base de données de type SQL, 3
  • 4. d’enregistrer des informations sur chaque « login » et ainsi de renvoyer au demandeur des paramètresvariés pouvant, suivant le cas, être une configuration IP, un numéro de LAN virtuel etc. Ainsi RADIUS a deux possibilités d’authentifier les stations soit depuis leur adresse MACconnues sur notre réseau filaire, en utilisant un système de type « login/password », avec le protocoleCHAP (Challenge-Handshake Authentication Protocol), éventuellement en assignant un numéro deVLAN suivant la machine et soit avec un certificat x.509 sur le réseau Wi-Fi, en utilisant EAP-TLS. Le serveur RADIUS peut fonctionner en sappuyant uniquement sur des fichiers texte. Maispour gérer des multiples clients on aura besoin d’utiliser une base MySQL pour stocker les adressesMAC des clients. Outre la souplesse quapportent des outils comme phpmyadmin pour gérer la listedes clients, cette solution offre lavantage de ne pas nécessiter de redémarrage le serveur à chaquemodification de la base. II. LE PROTOCOLE RADUIS 1. L’authentification C’est le processus qui prouve qu’une identité appartient bien à celui qui l’a présente unidentifiant est proposé au serveur radius. Il doit vérifier qu’il est bien présent dans sa base et aussi ilfaut vérifier que celui qui présente cet identifiant peut prouver qu’il en est bien le propriétaire. Il existeplusieurs méthodes d’authentification on cite les plus courantes :  Adresse MAC (faible, pas de preuve)  Login/mot de passe  Certificat Il sagit dauthentifier une machine lorsquelle se branche sur le réseau afin de lui autoriser ourefuser lusage du réseau, Cette authentification est indépendante dautres authentifications vers dessystèmes dexploitation ou applications. 4
  • 5. Authentification réseau :  Branchement physique sur le réseau  Authentification  Autorisation dusage Authentification applicatives :  Authentification sur le système dexploitation (windows, Linux…)  Authentification sur une application Les principaux objectifs d’authentification  Sécuriser un réseau filaire ou sans-fil  Pour interdire les postes inconnus  Pour placer les postes connus a des endroits spécifiques du réseau (vlan) de façon dynamique.  Pour savoir quelle machine est connectée et où elle est connectée  Savoir qui se connecte sur quelle prise  Eviter une utilisation illicite du réseau par des « inconnus »  Affecter les machines sur des réseaux virtuels (cloisonnement)  Affecter une machine sur le même vlan que lorsqu’elle  Se connecte sur le réseau filaire.  Authentification + cryptage … 2. Mécanisme d’authentification Afin de se connecter à l’équipement coté client, le client RADIUS récupère d’abord toutes lesinformations nécessaires (login, mot de passe). La méthode de récupération de ces informationsdépend de la configuration du client. Il peut s’agir directement d’un prompt invitant l’utilisateur àentrer ces informations, ou bien d’utiliser les valeurs transmises par le protocole de communication(ex : PPP). Le client RADIUS crée ensuite un paquet de type « Access-Request » contenant lesinformations dont le serveur RADIUS a besoin (nom, mot de passe, ID du client, ID du port). Si unmot de passe est présent, il sera haché en utilisant MD5. Une fois que le serveur reçoit la requête, il vérifie d’abord que le client partage un secret aveclui, puis récupère les informations concernant l’utilisateur. Celles-ci sont extraites d’une base dedonnées qui peut être locale au serveur RADIUS, ou bien appartenir à un autre serveur RADIUS (dansce cas, le serveur RADIUS jouera lui-même le rôle de client). Si un mot de passe doit êtrecommuniqué, il sera vérifié par le serveur. Dans le cas où l’une des informations transmises par le client s’avère incorrecte, le serveurretourne un paquet « Access-Reject » indiquant au client que la connexion a été refusée et pouvantcontenir un message d’explication. Dans le cas contraire, le serveur retourne un paquet « Access-Challenge ». Le paquet contient un nombre aléatoire que le client doit chiffrer. En retour, le client émet de nouveau le paquet « Access-Request » mais contenant cette fois laréponse au challenge. Le serveur peut alors renvoyer : i. un paquet « Access-Accept » si l’authentification est validée ; ii. un paquet « Access-Reject » dans le cas contraire ; iii. un paquet « Access-Challenge » si un complément d’information est nécessaire. 5
  • 6. b. L’autorisation C’est le fait de déterminer quels sont les droits de l’utilisateur. Par exemple, après s’être logué,l’utilisateur peut essayer d’utiliser certaines commandes. L’autorisation détermine alors si l’utilisateurpeut ou non les utiliser. Dans certaines implémentations, l’identification et l’autorisation sontregroupés en une seule étape. Lors de l’ “Access-Accept”, le serveur ajoute, dans le paquet, une liste de valeurscorrespondant aux paramètres de l’utilisateur. Elles sont utilisées par le NAS qui réalise la phased’autorisation. Si elles sont valides, l’utilisateur est alors connecté. Suivant la configuration duNetwork Access Server, elle peut ne pas être réalisée, auquel cas, aucune autorisation ne seraeffectuée. Ainsi ce terme a un sens très large tel que : i. Accès ou refus de la connexion au réseau ii. Affecter un N°de VLAN iii. Donner une adresse IP iv. Positionner des ACLs v. Exécuter une commande (filtrage, routage…) Mais il faut voir ces autorisations comme des attributs de connexion (Reply-item) c. Comptabilisation (accounting) Cela consiste à mesurer les ressources qu’un utilisateur consomme, en terme d’échangeréseau, de ressources système,... Cela sert en fait à logguer un certain nombre d’informations surl’utilisateur. Cela permet de connaître à la fois les services demandés par l’utilisateur et la quantité deressources requises. Les trois points définis ci-dessus sont importants pour une bonne gestion et une bonne sécuritéd’un réseau. Ils devraient être disponibles au point d’entrée d’un réseau. Tous les utilisateurs distants accèdent au réseau au travers d’un NAS (Network AccessServer), aussi appelé Remote Access Server, ou Terminal Server. Un NAS est une interface quiaccepte un accès distant à travers une ligne téléphonique ou RNIS. Le NAS connecte les utilisateursdistants au réseau interne (Local Area Network). Après s’être connecté, l’utilisateur distant a accès à toutes les ressources du réseau interne(serveurs, partages, communication avec les autres utilisateurs, ...) Au démarrage d’un service, le NAS émet un paquet “Accounting-Start” au serveur RADIUS.Le NAS centralise les informations, puis les envoie au serveur au moment de la fermeture du servicedans un paquet “Accounting Stop” (quantité transmise, débit, bande passante, temps d’émission, ...). Lors de l’envoi du paquet « Access-Accept », le serveur ajoute, dans le paquet, une liste devaleurs correspondant aux paramètres de l’utilisateur. Elles sont utilisées par le l’équipement cotéclient qui réalise la phase d’autorisation. Si elles sont valides, l’utilisateur est alors connecté. d. Principe du protocole RADIUS Le standard RADIUS est basé sur un ensemble d’attributs relatifs aux utilisateurs. Ils sont tousstockés dans la base RADIUS du serveur. Au cours d’une connexion, un échange d’information a lieu 6
  • 7. entre le serveur et le client (NAS). Le standard RADIUS propose un certain nombre d’attributs quidoivent être mis en œuvre. Mais beaucoup d’implémentations spécifiques du protocole apportent leurpropre jeu d’attributs. Le protocole RADIUS permet une authentification utilisateur/mot de passe ouutilisateur/challenge/réponse ou les deux, qui peuvent être configurée spécifiquement pour chaqueutilisateur. La vérification est réalisée par le serveur RADIUS, qui retourne alors un “authenticationreply” au NAS qui a émis la requête. Tous les clients RADIUS communiquent généralement à travers le réseau local sur un serveurunique, ce qui rend la tâche de l’administrateur plus simple. La gestion des utilisateurs et de leursdroits est alors plus facile par rapport à plusieurs serveurs qu’il faudrait mettre à jour simultanémentsur le réseau. Toutes les informations échangées entre le serveur Radius et le client Radius passent par desattributs (Un nom et une valeur), on distingue deux types d’attributs : 1. Les attributs envoyés par les clients au serveur Radius(Request-Items) ii. User-Name iii. Calling-Station-Id iv. Called-Station-Id 1. Envoyés par le serveur Radius aux clients(Reply-Items) v. Tunnel-Private-Group-Id vi. Framed-IP-Adress (Pas compatible avec EAP) Le protocole RADIUS est basé sur un échange de paquets utilisant le protocole UDP. Le portgénéralement employé est le 1645, bien qu’il devrait être normalement configuré sur le port 1812 pouréviter des conflits avec le service Datametrics. Le protocole utilise 4 types de paquets suffisants pour assurer toutes les transactions (horsaccounting) pour effectuer une authentification RADIUS : 7
  • 8.  Access-Request Envoyé par le NAS contenant les informations sur le client qui souhaite se connecter(login/mot de passe, adresse MAC…), ce paquet contient lidentité de lutilisateur qui se connecte (username/password ou CN du certificat ou MAC adresse)  Access-Accept Envoyé par le serveur pour autorisé la connexion si la vérification des informations est correctaprès l’interrogation de sa base dauthentification. Ce paquet peut contenir une liste dattributscorrespondant aux services qui sont autorisés (par exemple le vlan).  Access-Reject Envoyé par le serveur pour refuser une connexion en cas d’échec de l’authentification ou pourmettre fin à une connexion et pour informer le client que sa requête est rejetée. En principe ce paquetpeut être émis à tout moment pour mettre fin à une connexion, mais certains équipement ne supportepas.  Access-Challenge Envoyé par le serveur pour demander la réémission d’un access-request ou des informationscomplémentaires. Format des trames :  Code (1 octet):  access-request  access-accept  access-reject  accounting-request  accounting-response  access-challenge  Identifier (1 octet) : utilisé pour associer les requêtes et les réponses  Unique pour chaque authentification  Identique pour une retransmission  Longueur (2 octets):  Taille total du message (de 20 à 4096 octets)Authentificateur (16): Lorsque le client NAS envoi un paquet access-request il inclut un authentificateur appelérequest-authenticator qui est une séquence aléatoire. Le serveur répond par un paquet access-acceptou accept-reject ou accept-challenge avec un response-authenticator composé avec lesinformations contenues dans le paquet access-request, le request authenticator et un secret partagéavec le NAS et le tout crypté MD5. 8
  • 9. Le NAS est alors en mesure de vérifier que le serveur qui répond est bien celui quil acontacté.  Request Authenticator (16 octets):  Un nombre aléatoire unique  Response Authenticator (16 octets):  MD5 (Code + ID + Length +RequestAuth + Attributes + Secret) Les transactions RADIUS ont pour but de véhiculer des attributs et leur valeur entre le clientNAS et le serveur. Ces attributs et leur valeur sont appelés paires attribut-valeur (AVP= attribut-value pair), Ils permettent au client de communiquer des informations au serveur (password, MACadresse…) et au serveur de communiquer les paramètres des autorisations quil délivre (vlan…) oubien demander des informations complémentaires. Un attribut est caractérisé par son type et sa valeur (éventuellement nulle)  Integer  Enumerated  IP address  Chaîne de caractères  Date  Binaire  Vendor-specific Il y a beaucoup dattributs standards mais peu sont utilisables dans le cas dune utilisation avec802.1x. Par exemple lattribut CALLBACK-NUMBER contient le numéro de téléphone sur lequel ilfaut rappeler le client. Ce qui est inutile dans notre cas…Les attributs standards : Chaque attribut possède un numéro didentification. Seul ce numéro est transmis dans lespaquets.  Called-Station-Id : Contient ladresse MAC de léquipement NAS  Calling-Station-Id : Contient ladresse MAC de la machine de lutilisateur.  NAS-IP-Address : Adresse IP de léquipement NAS  NAS-Port : Port sur lequel est connecté le supplicant  User-Name  User-PasswordLes attributs vendor : Les fabricant de matériel réseau (NAS) ont parfois intégré à leurs équipements des attributsspécifiques en plus des attributs standards définis dans le RFC. Ces attributs sont encapsulés danslattribut standard vendor-specific qui a pour numero 26. Ils sont appelés VSA = Vendor SpecificAttribut. 9
  • 10.  Vendor ID: N° dimmatriculation du fabricant (NMPECS= Network Management Private EnterpriseCodes (RFC1700)  Attribut number Comme pour les attributs standards, les vendor-attributs possèdent un numéro didentification.Ce numéro est répertorié dans un dictionnaire spécifique au fabricant. e. Modules et attributs programmables Il est possible d’écrire des programmes qui s’exécuteront pendant le processusd’authentification/autorisation. Deux méthodes : i. Au moyen de modules déclarés dans la configuration Radius ii. Avec l’attribut Exec-Program-Wait dans la base de données. Exemples :  Générer des lignes de logs spécifiques  Envoyer un mail avant expiration  Faire des vérifications supplémentaires  Modifier dynamiquement la base de données Dans le fichier de configuration du daemon FreeRadius (radiusd.conf) on défini un modulespécifique. Ce module est appelé dans une des sections de radiusd.conf. Ecrire le programme appelé 10
  • 11. Appel d’un programme dans les attributs stockés dans la base de données (utilisation del’attribut Exec-Program-Wait.) Exemple : Envoi d’un mail avant date d’expiration Ecriture du programme correspondant . III. FONCTIONNEMMENT DU PROTOCOLE RADUIS Le protocole RADIUS repose principalement sur un serveur (le serveur RADIUS), relié à unebase d’identification (base de données, annuaire LDAP, etc.), sur un client RADIUS, appelé NAS(Network Access Server), faisant office d’intermédiaire entre l’utilisateur final et le serveur.L’ensemble des transactions entre le client RADIUS et le serveur RADIUS est chiffré. Le serveur RADIUS peut faire office de proxy, c’est-à-dire transmettre les requêtes du client àd’autres serveurs RADIUS. Le serveur traite les demandes d’authentification en accédant si nécessaireà une base externe : base de données SQL, annuaire LDAP, comptes d’utilisateurs, de machines ou dedomaines. Un serveur RADIUS dispose pour cela d’un certain nombre d’interfaces ou de méthodes.6 Un utilisateur envoie une requête au NAS afin d’autoriser une connexion à distance. Le NAS achemine la demande au serveur RADIUS. Le serveur RADIUS consulte sa base de données d’identification afin de connaître le type de scénario d’identification demandé pour l’utilisateur. Soit le scénario actuel convient, soit une autre méthode d’identification est demandée à l’utilisateur. Le serveur RADIUS retourne ainsi une des quatre réponses suivantes :  ACCEPT : l’identification a réussi.  REJECT : l’identification a échoué. 11
  • 12.  CHALLENGE : le serveur RADIUS souhaite des informations supplémentaires de la part de l’utilisateur et propose un « défi ». Une autre réponse est possible : CHANGE PASSWORD où le serveur RADIUS demande à l’utilisateur un nouveau mot de passe. Change-password est un attribut VSA (Vendor-Specific Attributes), c’est-à-dire qu’il est spécifique à un fournisseur. Suite à cette phase dit d’authentification, débute une phase d’autorisation où le serveur retourne les autorisations de l’utilisateur. Donc la demande d’authentification contient un nom dusager et un mot de passe (chiffré avecMD5 ou un autre algorithme) dont la validité sera comparée avec le couple identifiant-mot de passeenregistré dans un annuaire centralisé (généralement un service dannuaire LDAP). Lidentifiant et lemot de passe sont déchiffrés au moyen dun se-cret partagé entre le client et le serveur Radius. Si lesinformations fournies sont correctes, le serveur Radius renvoie une chaîne numérique aléatoire que leclient utilisera pour faire sa demande daccès au réseau. À réception de celle-ci, le serveur Radiusinscrit lusager authentifié sur le réseau en lui attribuant une adresse IP par lentremise du serveurDHCP. Le protocole Radius dispose également de fonctions pour comptabiliser le temps deconnexion. Le serveur Radius conserve au sein dun fichier de traces la date et lheure de connexion etde déconnexion de lutilisateur, ou transmet ces informations à une base de données. À noter, toutesces connexions seffectuent en mode session grâce au protocole UDP. EAP (Extended Authentication Protocol), un mécanisme de contrôle daccès au niveaudEthernet basé sur un service d’authentification RADUIS. Connu également sous le numéro 802.1x,EAP intercepte la demande dinscription dun adaptateur Ethernet sur le segment du réseau dont ildépend et la soumet à une authentification Radius. Dun intérêt limité pour les réseaux locauxdentreprise, ce protocole assure en revanche une sécurisation efficace pour les réseaux locaux radio.EAP garantit en effet quun utilisateur non-autorisé ne puisse pas accéder à la zone de couverture danslaquelle il se trouve. En théorie donc, Radius cumule presque tous les avantages. Cependant, à lexploitation, le protocole révèle non seulement des contraintes qui compliquentson déploiement, mais aussi des failles de sécurité inquiétantes. Ainsi, une étude récente réalisée parInfoguard, un cabinet dexperts américain, démontre que lidentifiant généré par le client, permettant auserveur Radius de reconnaître lorigine dune requête, autant que le secret partagé, utilisé pour chiffreret déchiffrer léchange du mot de passe de lutilisateur, sont vulnérables aux attaques de pirateschevronnés. Cela permet à un pirate ayant observé et capturé une demande de requête et sa réponse, de 12
  • 13. reproduire léchange et dobtenir ainsi frauduleusement un accès "légal" sur le réseau. " Le secretpartagé lui-même peut être décodé facilement dès que lon est parvenu à se procurer un nomdutilisateur et un mot de passe valides. " Le protocole autorise lutilisation du même secret partagépour un nombre illimité de clients, relève lexpert. Ce qui signifie que dans beaucoup de cas, ladécouverte dun seul secret partagé permet de collecter tous les identifiants dutilisateurs qui seronttransmis au serveur Radius. Les secrets partagés sont bien tous différents et suffisamment complexes pour ne pas êtretrouvés trop facilement constitue pour linstant la seule défense possible. Car il nexiste pas de réellesolution disponible à ce jour. Lespoir ne semble pas même devoir venir de Diameter. Ce protocoledauthentification, actuellement en cours de finalisation par lIETF, prévoit certes des mécanismes desécurité, mais les limite à léchange dinformations entre serveurs Diameter. Pour autant, cette versionrévisée de Radius est attendue. Tournant le dos à larchitecture client-serveur classique qui handicapeRadius (un client doit émettre une requête pour démarrer le processus dauthentification), Diameterpermettra au serveur de détecter lentrée dusagers non encore autorisés sur le réseau. Plus important, leprotocole prévoit aussi des mécanismes déchange, dinterrogation à distance et de délégation dautoritéentre les serveurs dauthentification. Lautorisation délivrée par un serveur sera ainsi valable nonseulement pour son propre réseau, mais aussi pour tous les réseaux reliés, et ce, selon des permissionsprédéfinies dans le cadre des informations reçues de lusager. Radius centralise lauthentification 1. Accéder au serveur RAS Access-Request : un paquet IP spécifique, émis par lagent logiciel dune passerelle RPV oudun serveur daccès. Celui-ci contient lidentifiant et le mot de passe de lutilisateur chiffrés.Secretpartagé : une chaîne de 16 caractères alphanumériques utilisée par le serveur et les clients Radius pourse reconnaître entre eux.Identifiant de requête : généralement limité à un simple compteur, ce champdu paquet de requête permet louverture dune session dauthentification sur le serveur Radius. 2. Sécuriser le sans-fil 13
  • 14. Avec lavènement des connexions sans fil, lIETF a mis au point le protocole EAP (ExtensibleAuthentification Protocol), un mode de négociation avec les serveurs dauthentification fondé surléchange de clés communes et de certificats. Ce protocole, qui est proposé par Cisco, Microsoft etRSA, serait plus fiable que WEP. 3. Authentifier En recevant la requête, le serveur Radius vérifie auprès du serveur LDAP que lutilisateur estbien présent dans la base dannuaire. La connexion seffectue en utilisant le mode de transmissionUDP, plus souple que TCP. Ce choix dUDP par lIETF répond au besoin dune connexion permanentesans renégociation, comme cest le cas avec TCP. 4. Attribuer ladresse IP Après avoir authentifié lutilisateur en interrogeant un annuaire LDAP, le serveur Radiusretourne une autorisation daccès chiffrée au client, sous la forme dun numéro unique et aléatoire. Decette façon, le serveur sassure que le client Radius ayant émis la requête est bien celui qui est habilitéà traiter la réponse. À réception de celle-ci, le client émet à nouveau une requête daccès grâce àlaquelle il obtiendra ladresse IP dont lusager à besoin pour être connecté au réseau.Claude IV. Configuration du RADIUS : cas Windows 2003 14
  • 15. Introduction Présentation du service routage et accès distantLe service Routage et Accès Distant encore appelé RRAS (pour Routing and Remote Access Service)possède deux fonctions principales :  Il permet de faire communiquer entre-eux des réseaux différents ou des sous-réseaux différents (routage)  Il permet à des clients situé dans une zone géographiquement éloignée de lentreprise daccéder au réseau interne de lentreprise (accès à distance)Dans cet article nous détailler la mise en place de laccès à distance avec le service Routage et accèsdistant de Microsoft Windows 2003 Server. Infrastructure logicielle et matérielle de laccès à distancea/ infrastructure logicielle¨Pour être mis en place dans un environnement Microsoft, laccès à distance requiert la présence deplusieurs services:  un logiciel daccès distants client (intégré au système dexploitation depuis la sortie de Windows 95)  le service Routage et Accès distant  le service dannuaire Active DirectoryComme nous le verrons ultérieurement, il est possible dutiliser un service spécifique nommé IAS(Internet Authentification Service) pour centraliser les demandes dauthentification des clients daccèsdistant.b/ infrastructure matérielleGénéralement, une machine dédiée est utilisée pour jouer le rôle de contrôleur de domaine et une autremachine est utilisée exécuter le service Routage et Accès Distant. Voici une topologie réseau type ence qui concerne laccès à distance :Comme le montre le schéma ci-dessus, divers types de réseau peuvent utilisés pour établir laconnexion entre lordinateur client et le serveur daccès distant. Les trois principaux sont : 15
  • 16.  les connexions VPN (Virtual Private Network) qui utilisent un réseau public (le plus souvent Internet).  les connexions daccès à distance qui utilisent un Réseau Numérique à Intégration de Service (RNIS), comme par exemple Numéris de lopérateur téléphonique France Télécom.  les connexions sans fil (ou wireless) qui utilisent des technologies basées sur la propagation dondes (infrarouge, bluetooth, WiFi, WiMAX,...).En conséquence, plusieurs types de clients sont distinguables :  les clients VPN  les clients daccès à distance  les clients sans fil Principe de fonctionnement de laccès à distanceLétablissement dune connexion daccès à distance passe par plusieurs étapes : 1. Un client contacte le serveur daccès distant et lui envoie un identifiant avec un mot de passe pour tenter de sauthentifier. 2. Le serveur daccès distant commence par vérifier si lidentifiant et le mot de passe correspondent à un utilisateur de lannuaire Active Directory : cest la phase dauthentification. 3. Si lutilisateur sest authentifié avec succès, alors le serveur daccès distant compare les paramètres de la demande de connexion avec toutes les stratégies daccès distant existantes. 4. Si les conditions dune stratégie daccès distant correspondent avec les paramètres de la demande de connexion, alors le serveur daccès distant vérifie si lutilisateur a lautorisation de se connecter à distance au réseau de lentreprise : cest la phase dautorisation. 5. Si lutilisateur est autorisé à se connecter à distance au réseau de lentreprise, alors les conditions du profil daccès distant de la connexion sont vérifiées. 6. Si toutes les conditions du profil daccès distant sont vérifiées alors la connexion est autorisée et le client reçoit une adresse IP. les étapes de létablissement dune connexion daccès à distance 16
  • 17. Configuration générale du serveur Lancer la console et activer le service Routage et Accès distantIl faut taper rrasmgmt.msc dans la boite de dialogue exécuter pour lancer la console Routage et AccèsDistant. Pour activer le service, il faut faire un clic droit sur le nom du serveur et cliquer surConfigurer et activer le routage et laccès distant.Lassistant installation du serveur de routage et daccès distant se lance. 17
  • 18. On sélectionne les services nécessaires.Lassistant se termine. 18
  • 19. Une fois le service Routage et Accès Distant installé, larborescence se complète et on a accès à plusdoptions :  Interface Réseau : liste les cartes réseau et les modems actuellement connectés à la machine et permet dajouter des connexions de numérotation à la demande.  Clients daccès distant : liste le nombre de clients actuellement connectés au serveur daccès distant et offre la possibilité de forcer la fermeture des sessions daccès distants.  Ports : Un port est un périphérique virtuel permettant aux clients de se connecter au serveur. Le nombre de ports configurés est paramétrable pour chaque type de connexion (par exemple, il est possible de définir un nombre de ports pour les connexions via le protocole PPTP). Cette vue permet de constater létat actif ou inactif de chaque port.  Routage IP : Permet de configurer le routage des paquets IP. Il est possible ici de configurer les interfaces, dajouter des protocoles (comme le NAT, OSPF ou RIPv2) afin de permettre la découverte automatique de routeurs. Cette fenêtre permet aussi de définir une interface en tant quagent de relais DHCP. 19
  • 20.  Stratégies daccès distant : Une stratégie daccès distant est un ensemble de conditions définissant qui pourra accéder à distance au réseau et quelles seront les caractéristiques de cette connexion. Les critères dacceptation ou de refus de connexions sont très variés. Il est possible de configurer une stratégie pour refuser ou accepter un connexion suivant une plage horaire, appartenance à un groupe, type de service, protocole utilisé, temps maximum de connexion etc… Lordre de placement des stratégies est très importante car cest la première stratégie concernée qui servira à accepter ou refuser la connexion. Les stratégies daccès distant ne sont pas stockées dans lactive Directory, mais dans le fichier local IAS.mdb. Une solution pour appliquer les même stratégies daccès distant à plusieurs serveur daccès distant est dutiliser un serveur utilisant le protocole RADIUS. Le serveur RADIUS de Microsoft se nomme IAS (Internet Authentification Service) et se présente sous la forme dun service optionnel.  Connexion par accès distant : Cette fenêtre permet de paramétrer la journalisation (emplacement du journal, types dévènements à enregistrer,...) Les paramètres du serveur daccès distantDes paramètres généraux sont accessibles en faisant un clic droit sur le nom du serveur puis ensélectionnant propriétés. Les options intéressantes au niveau de laccès à distance (les autres optionsconcernent le routage) sont : o le choix dactiver ou non laccès à distance (onglet Général) o le choix du protocole utilisé pour lauthentification des utilisateurs (onglet Sécurité) o la possibilité de choisir comment le serveur daccès distant va attribuer les adresses IP aux clients (soit dans un pool dadresses statique, soit via le protocole DHCP) o la possibilité de choisir avec quelle interface réseau le serveur daccès distant doit obtenir les baux DHCP pour les clients. 20
  • 21. o la possibilité de choisir quels sont les évènements qui seront stockés dans le journal (onglet Enregistrement). Les protocoles dauthentificationLe service Routage et accès distant propose plusieurs protocoles plus ou moins sécurisé pourauthentifier les utilisateurs distant :  PAP (Password Authentification Protocol) est un protocole non sécurisé car les identifiants et les mots de passe sont envoyés en clair (cest-à-dire sans cryptage) entre le client et le serveur daccès distant.  SPAP (Shiva Password Authentification Protocol) permet aux machines clientes équipées avec du matériel de marque Shiva de se connecter au serveur daccès distant. Les mots de passe sont protégés par un cryptage réversible (faible sécurité).  CHAP (Challenge Handshake Authentification Protocol) autorise le cryptage des mots de passe envoyés du client vers le serveur daccès distant.  MS-CHAP (Microsoft CHAP) est un protocole propriétaire de Microsoft basé sur CHAP. Il utilise le protocole de cryptage MPPE (Microsoft Point-to-Point Encryption) et est supporté depuis Windows 95.  MS-CHAP V2 est une amélioration du protocole MS-CHAP avec des clés de cryptage plus fortes et une authentification mutuelle entre le client et le serveur daccès distant. Il a été implémenté à partir de Windows 98.  EAP (Extensible Authentification Protocol) est un protocole évolutif qui permet dauthentifier du matériel propriétaire de manière sécurisée.Centralisation des clients daccès distant à laide du serveur IAS Présentation et installation dIASLorsque lon dispose de plusieurs serveurs daccès distant, il peut savérer fastidieux de mettre en placeune stratégie daccès uniforme. La solution la plus simple reste de mettre en place un serveur utilisant 21
  • 22. le protocole RADIUS (pour Remote Authentication Dial-In User Service) qui permet une autorisationet une authentification des utilisateurs distant de manière centralisée. Microsoft a développé sonpropre serveur RADIUS qui sintègre à Windows 2003 Server sous la forme dun service optionnel. Ceservice se nomme IAS pour Internet Authentification Service.Une fois en place et correctement paramétré le serveur IAS joue le rôle dintermédiaire entre lesserveurs daccès distant et le contrôleur de domaine Ceci modifie donc les étapes lors delétablissement dune connexion daccès à distance : 1. Un client contacte le serveur daccès distant et lui envoie un identifiant avec un mot de passe pour tenter détablir la connexion. 2. Le serveur daccès distant (qui est un client RADIUS du point de vue du serveur IAS) envoie la demande dauthentification au serveur IAS en UDP via les ports 1812 et 1813. 3. Le serveur IAS exécute les phases dauthentification et dautorisation auprès dun contrôleur de domaine 4. Si lutilisateur distant a correctement été identifié alors le serveur IAS compare les stratégies daccès distant configurées avec la demande de connexion du client. 5. Si les paramètres de la demande de connexion concordent avec une stratégie daccès distant alors le serveur IAS envoie un message au serveur daccès distant qui fournit ensuite une adresse IP au client. Pour lancer linstallation du service IAS, allez dans le panneau de configuration, puis sélectionnez ajout/suppression de programmes. Cliquez ensuite sur le bouton Ajouter ou supprimer des composants de Windows. 22
  • 23. Dans la première fenêtre de lassistant Composants de Windows, sélectionnez loption Services de miseen réseau.Enfin côchez la case Service dauthentification Internet puis cliquez sur OK. Enfin faites suivant pourlancer linstallation dIAS.Une fois le service installé, vous pouvez y accéder en tapant ias.msc dans la boite de dialogue exécuterou bien en cliquant sur Service dauthentification Internet dans les outils dadministration. Configuration dIASVoici une capture décran de la console Service dauthentification Internet : 23
  • 24. Client RADIUSLe conteneur Clients RADIUS liste lensemble des serveurs daccès distants qui sont des clients vis-à-vis du serveur IAS. Pour quun serveur daccès distant fasse partie de cette liste, il suffit de ly ajouteren utilisant lassistant Ajouter un client RADIUS.Pour ajouter un client RADIUS, il suffit dentrer son nom de domaine pleinement qualifié (FQDN) oubien son adresse IP ainsi quune chaîne de caractère permettant de le reconnaître facilement. 24
  • 25. Il faut ensuite choisir le type de technologie RADIUS à utiliser (ici RADIUS standard), une clépartagée (optionnelle) pour crypter les échanges entre le client et le serveur IAS. On peut aussi côcherla case Les requêtes doivent contenir lattribut de lauthentificateur de message qui aura pour effet deforcer le client RADIUS à sauthentifier à chaque connexion auprès du serveur IAS en envoyant unesignature numérique.Connexion par accès distantLe conteneur Connexion par accès distant permet de configurer la journalisation. Il est par exemplepossible de choisir les informations qui seront enregistrées. 25
  • 26. Mais aussi, lemplacement, le format et la fréquence dactualisation du fichier journal.Stratégie daccès distantLe conteneur Stratégie daccès distant est identique à celui présent dans la console Routage et accèsdistant. Il stocke lensemble des stratégies daccès distant disponibles pour chaque serveur daccèsdistant.3-) Configuration du serveur daccès distant pour utiliser IASPour que les serveur daccès distant envoie les demandes dauthentifications vers le serveur IAS, il estnécessaire de modifier leur configuration originelle. Pour cela il faut lancer la console Routage etAccès distant (vous pouvez taper rrasmgmt.msc dans la boite de dialogue exécuter) puis faire un clic 26
  • 27. droit sur le nom du serveur, puis propriétés. Sectionnez ensuite longlet Sécurité et vous devriezaccédez à la fenêtre ci-contre.Choisissez Authentification RADIUS dans la liste déroulante Fournisseur dauthentifications, puiscliquez sur le bouton Configurer.Dans la fenêtre Authentification RADIUS, cliquez sur le bouton Ajouter. 27
  • 28. Vous devez saisir le nom DNS pleinement qualifié du serveur IAS dans le champ réservé à cet effet.Si vous avez choisi dutilisé une clé pré-partagée lors de lajout du serveur daccès distant dans la listedes client RADIUS du serveur IAS, vous devez saisir la même clé en cliquant sur le bouton Modifier.Si vous avez côché loption Les requêtes doivent contenir lattribut de lauthentificateur de message,lors de lajout du serveur daccès distant dans la liste des client RADIUS du serveur IAS, alors vousdevez aussi côcher la case Toujours utiliser lauthentificateur de messages. Ainsi à chaque demandedaccès distant, le serveur daccès distant enverra une signature numérique permettant de lidentifier entant que client RADIUS auprès du serveur IAS.Vous pouvez éventuellement modifier le port par défaut pour envoyer les messages dauthentificationvers le serveur IAS.Une fois toutes ces modifications effectuées vous devez redémarrer le service Routage et accès distantpour que les modifications soient prises en compte.Configuration des clients daccès à distance et sécurisation de laccès àdistance Présentation du réseau privé virtuel (VPN)Une connexion réseau privé virtuel ou VPN (Virtual Private Network) permet à deux entités decommuniquer entres-elle de façon sécurisée en passant par un réseau public (non sécurisé) commeInternet. Les réseaux privés virtuels sont souvent utilisés dans le cadre de laccès à distance car ilspermettent à un utilisateur lambda daccéder aux ressources internes de lentreprise en utilisant unréseau dont le coût de location est faible (Internet) de manière sécurisée. Pour cela les réseaux privésvirtuels utilisent des protocoles spécifiques comme PPTP ou bien encore L2TP/IPSec appelésprotocole de tunnel.Les protocoles de tunnel chiffrent les trames de données puis encapsulent ces trames dans despaquets IP qui sont envoyés sur Internet. La sécurité des données est maximale puisque les adresses IPprivées (celle du client et du serveur daccès distant) sont chiffrées. Il est donc impossible pour unutilisateur non autorisé davoir accès aux données circulant sur la toile. 28
  • 29. Les protocoles de cryptage utilisés par PPTP et L2TP sont respectivement MPPE et IPSec.2-) Configurer une connexion VPN sous Windows XPPour créer une connexion VPN sous Windows XP, affichez la page listant les connexions réseau (clicdroit / propriétés sur licône favoris réseau) puis lancez lAssistant Nouvelle Connexion et cliquez surSuivant. Sélectionnez Connexion au réseau dentreprise.Cliquez sur Suivant, puis sur Terminer pour quitter lassistant. Vous devez ensuite saisir lidentifiant etle mot de passe à utiliser pour sauthentifier auprès du serveur daccès distant. Vous pouvez choisirdenregistrer ces informations dauthentification ce qui évitera de les ressaisir à lavenir.Vous pouvez ensuite cliquer sur Se connecter pour établir la connexion VPN. 29
  • 30. Les propriétés de la connexion permettent de modifier un grand nombre de paramètre comme leprotocole dauthentification à utiliser (MS-CHAP V2 est le protocole recommandé pour obtenir unesécurité maximale), les paramètres TCP/IP, ladresse IP du serveur daccès distant, ... Sécuriser les accès distantsPermettre à des utilisateurs distants daccéder aux ressources internes de lentreprise peut savérerrisqué du point de vue de la sécurité. Voici un ensemble de règles simples qui permettent de sécuriserau mieux une connexion daccès à distance : o Centralisez les demandes dauthentifications à laide dun serveur RADIUS. 30
  • 31. o Sécurisez au maximum le trafic entre le serveur RADIUS et les serveurs daccès distant (utilisation dune clé pré-partagée, de signatures numériques pour identifier les serveurs daccès distant, dIPSec pour crypter les échanges de données,...). o Configurez les stratégies daccès distant les plus restrictives possibles (limitez les plages horaires, paramétrez une durée dinactivité de la connexion faible, utilisez uniquement les protocoles MS-CHAP V2 ou EAP pour authentifier les utilisateurs, utilisez le cryptage maximal,...) o Si vous utilisez le protocole L2TP/IPSec mettez en place un système de certificats. o Mettez en place une stratégie de groupe verrouillant le compte des utilisateurs distant après un certain nombre de tentatives infructueuses.Vous pouvez aussi envisager linstallation dun pare-feu comme ISA Server afin daugmenter le niveaude sécurité du réseau interne de lentreprise.ConclusionLa console Routage et accès distant (RRAS) regroupe toutes les fonctionnalités nécessaires à lacréation de connexions daccès distant. Les méthodes daccès distant proposées (réseau privé virtuel,sans fil,...) permettent une adaptation à tout les cas de figure envisageables. Lassociation des profilsdaccès distant et des stratégies daccès distant permet de sécuriser et de réglementer de façon très fineune connexion à travers un réseau public comme Internet. De plus, la mise en place du service IASfacilite la maintenance des stratégies daccès distant grâce à lutilisation du protocole RADIUS quipermet la centralisation des requêtes dauthentification.En conclusion, linfrastructure intégrée à Windows 2000/2003 server permet de mettre en placerapidement un service daccès à distance fiable, sécurisé et hautement paramétrable. 31
  • 32. SNORT I. IntroductionLes systèmes dinformation sont aujourdhui de plus en plus ouverts sur Internet. Cette ouverture, apriori bénéfique, pose néanmoins un problème majeur : il en découle un nombre croissant dattaques.La mise en place d’une politique de sécurité autour de ces systèmes est donc primordiale.Outre la mise en place de pare-feux et de systèmes dauthentification de plus en plus sécurisés, il estnécessaire, pour compléter cette politique de sécurité, davoir des outils de surveillance pour auditer lesystème dinformation et détecter déventuelles intrusions.Ce que nous appelons intrusion signifie pénétration des systèmes dinformation mais aussi tentativesdes utilisateurs locaux daccéder à de plus hauts privilèges que ceux qui leur sont attribués, outentatives des administrateurs dabuser de leurs privilèges.Les attaques d’intrusion peuvent être répertoriées selon trois types : - les attaques réseau ; - les attaques par portes dérobées (backdoors) et canaux de communication cachés (cover channels) ; - les attaques sur les services, qui gagnent une importance croissante (de nos jours, à peu près 60% des intrusions se font via le Web).La détection d’intrusion est étudiée depuis plus de vingt-cinq ans Les systèmes dits “passifs” dedétection d’intrusion (IDS pour Intrusion Detection Systems) ont été déployés de plus en pluslargement, suivis aujourd’hui par des systèmes dits “actifs” de prévention d’intrusion (IPS pourIntrusion Prevention Systems). La recherche en détection (et prévention) d’intrusion est toujours trèsactive, notamment en raison des évolutions rapides et incessantes dans les technologies del’information et de la communication.Au cours de cette Partie nous verrons comment se protéger efficacement face à ces intrusions, maisaussi les problèmes techniques déduits de ces outils, nouvellement apparus dans le mondeinformatique. II. Détection dattaques : les IDS 1. Pourquoi utiliser un IDS ?• La surveillance du trafic d’un (plusieurs) réseau(x) de machines en vue de la surveillance « TempsRéel » du trafic, par opposition à la consultation des traces (« Logs ») qui se fait forcement en différé,sans parler des difficultés de repérer des failles.• Ce que qu’on peut attendre d’un IDS : l’émission d’alertes qui permettront la détection de lapréparation d’une attaque, (scans massifs à la recherche de failles sur un ensemble de machines…),une attaque en cours (trafic sur des ports correspondants à des failles), et à posteriori, la détectiond’une machine compromise avant qu’elle ne puisse servir de base d’attaques vers d’autres systèmes.• En outre, il permet d’éditer des rapports permettant d’avoir une vision globale du degré de sécuritéd’un réseau ou d’un ensemble de machines, et cela de différents niveaux. A titre d’exemple, un rapport 32
  • 33. à destination du management sera synthétique et dégagera des tendances pour mettre en évidence leniveau de vulnérabilité d’un réseau. Un des intérêts de ce rapport synthétique est de pouvoir suivrel’évolution du niveau de sécurité d’un réseau dans le temps. Ce document est en quelque sorte unindicateur qualitatif concernant la sécurité d’un réseau ou d’un ensemble de machines. C’est un moyend’aide à la définition d’une politique de sécurité, c’est aussi un moyen de suivi de son application, carla mise en œuvre d’une politique de sécurité est un processus continu. Il peut être utile pour justifierdes investissements en matière de sécurité en présentant leur incidence sur le niveau global de sécurité.Les rapports à destination du personnel technique présenteront les failles ainsi que les éventuelsremèdes à appliquer pour les supprimer. 2. La détection d’intrusionEn sécurité informatique, la détection dintrusion est lacte de détecter les actions qui essaient decompromettre la confidentialité, lintégrité ou la disponibilité dune ressource. La détection dintrusionpeut être effectuée manuellement ou automatiquement. Dans le processus de détection dintrusionmanuelle, un analyste humain procède à l’examen de fichiers de logs à la recherche de tout signesuspect pouvant indiquer une intrusion. Un système qui effectue une détection dintrusion automatisée est appelé système de détectiond’intrusion (IDS). Lorsqu’une intrusion est découverte par un IDS, les actions typiques qu’il peutentreprendre sont par exemple d’enregistrer l’information pertinente dans un fichier ou une base dedonnées, de générer une alerte par e-mail ou un message sur un pager ou un téléphone mobile.Déterminer quelle est réellement lintrusion détectée et entreprendre certaines actions pour y mettre finou lempêcher de se reproduire, ne font généralement pas partie du domaine de la détectiondintrusion. Cependant, quelques formes de réaction automatique peuvent être implémentées parlinteraction de lIDS et de systèmes de contrôle daccès tels que les pare-feu 3. Les différents types dIDSLes attaques utilisées par les pirates sont très variées. Certaines utilisent des failles réseaux et d’autresdes failles de programmation. Nous pouvons donc facilement comprendre que la détection d’intrusionsdoit se faire à plusieurs niveaux.Ainsi, il existe différents types d’IDS dont nous détaillons ci-dessous les caractéristiques principales. a. Les systèmes de détection d’intrusions (IDS)Définition : ensemble de composants logiciels et matériels dont la fonction principale est de détecter etanalyser toute tentative d’effraction (volontaire ou non).Fonctions : détection des techniques de sondage (balayages de ports, fingerprinting), des tentatives decompromission de systèmes, d’activités suspectes internes, des activités virales ou encore audit desfichiers de journaux (logs). b. Les systèmes de détection d’intrusions « réseaux » (NIDS)Objectif : analyser de manière passive les flux en transit sur le réseau et détecter les intrusions entemps réel.Un NIDS écoute donc tout le trafic réseau, puis l’analyse et génère des alertes si des paquets semblentdangereux.Les NIDS étant les IDS plus intéressants et les plus utiles du fait de l’omniprésence des réseaux dansnotre vie quotidienne, ce document se concentrera essentiellement sur ce type d’IDS en étudiantSNORT. c. Les systèmes de détection d’intrusions de type hôte (HIDS) 33
  • 34. Un HIDS se base sur une unique machine, n’analysant cette fois plus le trafic réseau mais l’activité sepassant sur cette machine. Il analyse en temps réel les flux relatifs à une machine ainsi que lesjournaux.Un HIDS a besoin d’un système sain pour vérifier l’intégrité des donnés. Si le système a étécompromis par un pirate, le HIDS ne sera plus efficace. Pour parer à ces attaques, il existe des KIDS(Kernel Intrusion Detection System) et KIPS (Kernel Intrusion PreventionSystem) qui sont fortement liés au noyau. Ces types d’IDS sont décrits un peu plus loin. d. Les systèmes de détection d’intrusions « hybrides »Généralement utilisés dans un environnement décentralisé, ils permettent de réunir les informations dediverses sondes placées sur le réseau. Leur appellation « hybride » provient du fait qu’ils sont capablesde réunir aussi bien des informations provenant d’un système HIDS qu’un NIDS.L’exemple le plus connu dans le monde Open-Source est Prelude. Ce framework permet de stockerdans une base de données des alertes provenant de différents systèmes relativement variés. UtilisantSnort comme NIDS, et d’autres logiciels tels que Samhain en tant que HIDS, il permet de combinerdes outils puissants tous ensemble pour permettre une visualisation centralisée des attaques. 4. Les méthodes de détectionPour bien gérer un système de détection d’intrusions, il est important de comprendre comment celui-cifonctionne. Une question simple se pose alors : comment une intrusion est elle détectée par un telsystème ? Quel critère différencie un flux contenant une attaque d’un flux normal ?Ces questions nous ont amenés à étudier le fonctionnement interne d’un IDS. De là, nous en avonsdéduit deux techniques mises en place dans la détection d’attaques. La première consiste à détecter dessignatures d’attaques connues dans les paquets circulant sur le réseau. La seconde, consiste quant àelle, à détecter une activité suspecte dans le comportement de l’utilisateur. Ces deux techniques, aussidifférentes soient-elles, peuvent être combinées au sein d’un même système afin d’accroître lasécurité. a. L’approche par scénario (misuse detection)Cette technique s’appuie sur la connaissance des techniques utilisées par les attaquants pour déduiredes scénarios typiques. Elle ne tient pas compte des actions passées de l’utilisateur et utilise dessignatures d’attaques (= ensemble de caractéristiques permettant d’identifier une activité intrusive :une chaîne alphanumérique, une taille de paquet inhabituelle, une trame formatée de manière suspecte)  Recherche de motifs (pattern matching)La méthode la plus connue et la plus à facile à comprendre. Elle se base sur la recherche de motifs(chaînes de caractères ou suite d’octets) au sein du flux de données. L’IDS comporte une base designatures où chaque signature contient les protocole et port utilisés par l’attaque ainsi que le motif quipermettra de reconnaître les paquets suspects.Le principal inconvénient de cette méthode est que seules les attaques reconnues par les signaturesseront détectées. Il est donc nécessaire de mettre à jour régulièrement le base de signatures.Un autre inconvénient est que les motifs sont en général fixes. Or une attaque n’est pas toujoursidentique à 100%. Le moindre octet différent par rapport à la signature provoquera la non détection del’attaque.Pour les IDS utilisant cette méthode, il est nécessaire d’adapter la base de signatures en fonction dusystème à protéger. Cela permet non seulement de diminuer les ressources nécessaires et doncaugmenter les performances ; mais également réduire considérablement le nombre de fausses alertes etdonc faciliter le travail des administrateurs réseaux qui analyseront les fichiers d’alertes. Cettetechnique est également utilisée dans les anti-virus. 34
  • 35.  Analyse de protocolesCette méthode se base sur une vérification de la conformité (par rapport aux RFC) des flux, ainsi quesur l’observation des champs et paramètres suspects dans les paquets. Cependant, les éditeurs delogiciels et les constructeurs respectent rarement à la lettre les RFC et cette méthode n’est pas toujourstrès performante.L’analyse protocolaire est souvent implémentée par un ensemble de préprocesseurs, où chaquepréprocesseur est chargé d’analyser un protocole particulier (FTP, HTTP, ICMP, ...). Du fait de laprésence de tous ces préprocesseurs, les performances dans un tel système s’en voient fortementdégradées.L’intérêt fort de l’analyse protocolaire est qu’elle permet de détecter des attaques inconnues,contrairement au pattern matching qui doit connaître l’attaque pour pouvoir la détecter.  Analyse heuristique et détection d’anomaliesLe but de cette méthode est, par une analyse intelligente, de détecter une activité suspecte ou touteautre anomalie.Par exemple : une analyse heuristique permet de générer une alarme quand le nombre de sessions àdestination d’un port donné dépasse un seuil dans un intervalle de temps prédéfini. b. L’approche comportementale (Anomaly Detection)Cette technique consiste à détecter une intrusion en fonction du comportement passé de l’utilisateur.Pour cela, il faut préalablement dresser un profil utilisateur à partir de ses habitudes et déclencher unealerte lorsque des événements hors profil se produisent.Cette technique peut être appliquée non seulement à des utilisateurs mais aussi à des applications etservices. Plusieurs métriques sont possibles : la charge CPU, le volume de données échangées, letemps de connexion sur des ressources, la répartition statistique des protocoles et applications utilisés,les heures de connexion, … Cependant elle possède quelques inconvénients : - peu fiable : tout changement dans les habitudes de l’utilisateur provoque une alerte. - nécessite une période de non fonctionnement pour mettre en oeuvre les mécanismes d’auto- apprentissage : si un pirate attaque pendant ce moment, ses actions seront assimilées à un profil utilisateur, et donc passeront inaperçues lorsque le système de détection sera complètement mis en place. - l’établissement du profil doit être souple afin qu’il n’y ait pas trop de fausses alertes : le pirate peut discrètement intervenir pour modifier le profil de l’utilisateur afin d’obtenir 18 après c. Les méthodes répanduesEn général, les IDS mélangent les différentes techniques de détection par scénario en proposant dupattern matching, de l’analyse protocolaire et de la détection d’anomalies.De nombreuses techniques et algorithmes sont utilisés dans la détection d’intrusions :Pattern Matching : - algorithmes de recherche de motifs (ex : Boyer-Moore) , - algorithmes de comptage - algorithmes génétiquesAnalyse Protocolaire : - conformité aux RFCDétection d’anomalies : - méthodes heuristiquesAnalyse statistique : - modèles statistiquesAnalyse probabiliste : - réseaux bayésiens 35
  • 36. Autre analyse comportementale : - réseaux de neurones, - systèmes experts + data mining - immunologie, graphes, ...Il est bien sûr impossible de détailler chacun des algorithmes mis en oeuvre dans les IDS. III. Mise en oeuvre dIDS 1. Historique du SNORT :C’est en 1998 que Martin Roesch décide de publier un logiciel de sa conception, développé autour dumilieu Open Source : un programme qu’il appellera finalement ”Snort”, ce qui correspond au verbeainsi qu’à l’onomatopée anglaise du reniflement (sniffing, qui est d’ailleurs un principe informatiquebien connu dans le domaine de l’étude approfondie des paquets réseau).Au commencement, il trouvait son système de détection anti intrusion ”plutôt léger” comparé auxlogiciels disponibles au marché à l’époque. Aujourd’hui, ce modeste personnage commence seulementà témoigner de l’envergure des fonctionnalités proposées par Snort, et se met à en parler comme l’unedes technologies anti intrusions les plus répandues dans le monde. Depuis toutes ces années, le projetSnort a beaucoup mûri, et a évolué vers un concept plutôt riche, ce qui l’a ainsi fait devenir un outilstandard pour la sécurité système et la détection d’intrusions. Des innovations récentes dans les règlesde comportement, ainsi que dans les fonctions de perception, ont permis de rendre la détection desprocessus plus flexible et plus pointue, ce qui fait désormais de Snort un champion ”poids lourd” de lasécurité dans ce domaine. . .De ce fait, le projet Snort s’appuie lourdement sur cette méthodologie, et il est prouvé, que test aprèstest, Snort est en conclusion largement à la hauteur, comparé aux autres technologies dans ce domainesur le marché.La puissance actuelle de Snort est principalement due à la grande efficacité de la communautéd’utilisateurs. Sans parler des développeurs à plein temps sur ce logiciel, il faut compter un bon millierde programmeurs expérimentés qui revoient et testent le code sans cesse, et mettent ainsi à l’épreuveun nombre impressionnant de fonctionnalités, de stratégies, et de jeux de règles. Cependant,aujourd’hui, il semble que le moteur de Snort ne soit plus libre, ce qui appelle donc à un certainbouleversement dans l’optique de développement qui s’en trouve alors grandement controversée. 2. Ressources humaines du projet :L’équipe de Snort est composée de 47 développeurs réguliers (on peut trouver leurs noms ici, cf.http://www.snort.org/about snort/team.html) ainsi que d’un nombre très important de contributeursoccasionnels, pour la plupart, réunis dans un des 21 groupes actifs d’utilisateur gravitant autour duprojet (cf. http ://www.snort.org /community/usergroups.html).Créateur et superviseur : Marty Roesch.Manager du produit Snort : Jennifer Steffens.Responsable de la section ”Snort Rules” : Brian Caswell.Responsable Win32 : Chris Reid.Responsables RPM : JP Vossen, Daniel Wittenberg.Responsable du développement de Snort : Marc Norton.Developpeurs principaux : Marc Norton, Andrew Mullican, Steve Sturges 3. Présentation du Snort : 36
  • 37. Snort est un système de détection dintrusions réseau en Open Source , capable deffectuer lanalysedu trafic en temps réel. On lutilise en général pour détecter une variété dattaques et de scans tels quedes débordements de tampons, des scans de ports furtifs, des attaques CGI, des scans SMB, destentatives didentification dOS grâce à l’analyse des signatures et des réponses caractéristiques(fingerprinting), et beaucoup d’autres choses encore. Il peut fonctionner selon trois modes principaux :il peut être utilisé comme un simple sniffer de paquets, comme un logger de trafic réseaux (ce qui estfort utile pour déboguer un réseau par exemple puisque ce mode d’enregistrement des activitésrépertorie toutes les interactions entre les machines d’un même réseau), ou comme un véritablesystème complet de prévention contre les attaques et les intrusions de tout genre.Cest un très puissant outil, il est connu comme un des meilleurs IDS sur le marché, même quand il estcomparé à des IDS commerciaux.De nombreuses personnes dans la cette communauté très active partagent leurs règles de sécurité, cequi est très utile si on nest pas un expert de la sécurité et si on veut des règles à jour.La compagnie SourceFire délivre très régulièrement de nouvelles règles de sécurité. Elles peuvent êtretéléchargées, soit gratuitement mais malheureusement que quelques jours après leurs sorties, soitimmédiatement pour des espèces sonnantes et trébuchantes. 4. Architecture du Snort : Architecture du snortUn noyau de base : (Packet Decoder) au démarrage, ce noyau charge un ensemble de règles, lescompile, les optimise et les classe. Durant l’exécution, le rôle principal du noyau est la capture despaquets.Une série de pré–processeurs: (Detection Engine) ces derniers améliorent les possibilités de SNORTen matière d’analyse et de recomposition du trafic capturé. Ils reçoivent les paquets directementcapturés et décodés, les retravaillent éventuellement puis les fournissent au moteur de recherche dessignatures pour les comparer avec la base des signatures.Une série de « Detection plugins »: Ces analyses se composent principalement de comparaison entreles différents champs des headers des protocoles (IP, ICMP, TCP et UDP) par rapport à des valeursprécises.Une série de « output plugins »: permet de traiter cette intrusion de plusieurs manières : envoie versun fichier log, envoie d’un message d’alerte vers un serveur syslog, stocker cette intrusion dans unebase de données SQL. 5. Positionnement de SNORT dans le réseauL’emplacement physique de la sonde SNORT sur le réseau a un impact considérable sur son efficacité.Dans le cas d’une architecture classique, composée d’un Firewall et d’uneDMZ, trois positions sont généralement envisageables : 37
  • 38. a. Avant le Firewall ou le routeur filtrant : Positionnement du snort avant le firewallDans cette position, la sonde occupe une place de premier choix dans la détection des attaques desources extérieures visant l’entreprise. SNORT pourra alors analyser le trafic qui sera éventuellementbloqué par le Firewall.Les deux inconvénients de cette position du NIDS sont:Primo, le risque engendré par un trafic très important qui pourrait entraîner une perte de fiabilité etsecondo, étant situé hors du domaine de protection du firewall, le NIDS est alors exposé àdéventuelles attaques pouvant le rendre inefficace. b. Sur la DMZ : 38
  • 39. Positionnement du snort après le firewallDans cette position, la sonde peut détecter tout le trafic filtré par leFirewall et qui a atteint la zone DMZ. Cette position de la sonde permet de surveiller les attaquesdirigées vers les différents serveurs de l’entreprise accessible de l’extérieur. c. Sur le réseau interne : Positionnement du snort sur le réseau interneLe positionnement du NIDS à cet endroit nous permet d’observer les tentatives d’intrusion parvenuesde l’intérieur du réseau d’entreprise ainsi que les tentatives d’attaques à partir de lintérieur. Dans lecas d’entreprises utilisant largement loutil informatique pour la gestion de leur activités ou de réseauxfournissant un accès à des personnes peu soucieuses de la sécurité (réseaux d’écoles et d’universités),cette position peut revêtir un intérêt primordial. 6. Les règles de SNORT :Les règles de SNORT sont composées de deux parties distinctes : le header et les options.Le header permet de spécifier le type d’alerte à générer (alert, log et pass) et d’indiquer les champs debase nécessaires au filtrage : le protocole ainsi que les adresses IP et ports sources et destination.Les options, spécifiées entre parenthèses, permettent d’affiner l’analyse, en décomposant la signatureen différentes valeurs à observer parmi certains champs du header ou parmi les données. Composition du règles de snortAction de la règle : alert, log, passProtocole : tcp, udp, icmpAdresses source et destination : src, dest, anyPort src / dest : any, nb port, plage de ports avec p1:pn 39
  • 40. Opérateur de direction : > unidirectionnel, ou <> bidirectionnelSyntaxe des options :– combinaison de règles avec le séparateur « ; »– séparation des mots clefs et des arguments avec « : »– mots clefs : msg, logto, minfrag, ttl, id, dsize, content, offset, depth, flags, seq, ack, itype, idecode,nocase, session 7. Installation & configuration a. Installation du Snort:Donc pour initialiser SNORT sous UBUNTU on peut utiliser la commande aptget install pourtélécharger et installer les paquets nécessaires automatiquement.  apache2Pour le serveur web : #aptget install apache2  MySQLserverpour la base de données : #aptget install mysqlserver  php5pour le script orienté serveur : #aptget install php5  php5MySQLpour la configuration du php avec mysql : #aptget install php5mysql  php5gdpour la librairie graphique : #aptget install php5gd  PEARpours PHP Extension et Application Repository : #aptget install phppear  Iptablesest un parefeu sous linux : #aptget install iptablesdev  ClamavAntivirus : #aptget install clamav  snortmysql :#aptget install snortmysql  outils de compilation : #aptget install buildessential  Libnetest une interface de programmation générique réseau qui fournit unaccès à plusieurs protocoles.#aptget install libnet1dev  LibpcapLibcap est une librairie pour capturer des paquets réseaux: #aptget install libpcap0.8dev  PcrePcre est une librairie de fonctions utilisant la même syntaxe et sémantique que Perl 5.#aptget install libpcre3dev  mysqlclientLibrairies de développement MySQL et fichiers header: #aptget install libmysqlclient16-dev  CHECKINSTALLPour installer ou désinstaller facilement les programmes depuis la source: #aptget install checkinstallAprès le téléchargement du snort-2.9.0.5, on crée deux dossiers, un pour stocker les fichiers deconfiguration et lautre pour stocker les règles Snort.#mkdir /etc/snort#mkdir /etc/snort/rulesEnsuite on copie les fichiers de configuration de Snort dans le dossier /etc/snort/ :#cp snort-2.9.0.5/etc/* /etc/snort/ 40
  • 41. Les deux fichiers de configuration dans notre dossier /etc/snort/rules:#cp snor snort-2.9.0.5/etc/classification.config /etc/snort/rules/#cp snort/ etc/reference.config /etc/snort/rules/ - classification.config: définit des URLs pour les références trouvées dans les règles. - reference.config: inclus de linformation pour la prioritisation des règles.On peut créer un utilisateur appelé snort pour lancer Snort:#useradd snort d /var/log/snort -s /bin/false -c SNORT_IDSUn dossier de log appartenant à lutilisateur snort:#mkdir /var/log/snort#chown -R snort /var/log/snortEnsuite :#tar –xzf snort2.8.3.1 (décompression du paquet)#cd snort2.8.3.1#./configure withmysql enableinline enableclamav –enable --dynamicpluginsConfiguration du snort avec la base de donnée et activation des pluginstel que:--enableinline: pour activer la communication avec le parefeu (iptable) et rendre Snort un IPS(intrusion prevention system) qui réagit lors de la détection dune intrusion.--enableclamav: pour améliorer la base des signatures du snort par la configuration avec lantivirusClamav, dans ce cas, snort jouera le rôle dun IDS et un antivirus en même temps.--enabledynamicplugins : pour rendre snort configurable avec les nouveaux plugins même aprèsinstallation.#make : (compilation du paquet)Erreur dans make : 41
  • 42. #checkinstall (exécution de l’installation) b. Configuration de la base de données MYSQL:Premièrement, il faut créer la base de données MySQL et les tables pourrecevoir les logs de Snort:#mysql -u root p>create database snort;Comme il est dangereux daccéder à la base de données avec lutilisateur root, il est nécessaire de créerun utilisateur avec des permissions sur la base de données snort uniquement:#grant all on snort.* to snortuser@localhost identified by pwdPuis on recharge les privilèges MySQL:#flush privileges>exit;Maintenant, nous devons créer les tables dans la base de données snort:Par chance, les tables sont déjà créées et nous devons juste les trouver et les installer dans la base dedonnées:#mysql -u root –p snort < schemas/create_mysql c. Configuration du snort pour SQL:Nous devons dévier les logs de Snort dans la base de données:Il est juste nécessaire de configurer le login et mot de passe pour accéder à la base de données snort.Dans le fichier /etc/snort/snort.conf, nous devons ajouter ou modifier les lignes entre (#DBSTART#)et (#DBEND#):output database: log, mysql, user=snortuser password=pwddbname=snort host=localhostToujours dans le même fichier, il faut décommenter les lignes suivantes:ruletype redalert{type alertoutput alert_syslog: LOG_AUTH LOG ALERToutput database: log, mysql, user=snortuser password=pwddbname=snort host=localhost}Configuration de Snort est maintenant terminée Pour lancer snort :#snort -u snort -c /etc/snort/snort.confCela veut dire que snort est démarré avec lutilisateur snort et va charger la configuration stockée dansle fichier /etc/snort/snort.conf. Pour des raisons de sécurité, il est toujours conseillé de démarrer desprogrammes sans lutilisateur root. 42
  • 43. Pour lancer snort automatiquement au démarrage du système, on peut ajouter une ligne dans le fichier/etc/crontab.@reboot root snort usnort c/etc/snort/snort.conf >> /dev/null 43
  • 44. RC5 RC5 est un algorithme de chiffrement par blocs avec de nombreux paramètres : taille desblocs, taille de la clef, et nombre de rondes. Ron Rivest en est l’inventeur et il a été analysé par leslaboratoires RSA. Il y a deux opérations : ou exclusif, addition et rotation. Les rotations prennent un tempsconstant sur la plupart des processeurs et les rotations variables sont des fonctions non linéaires. Cesrotations qui dépendent à la fois de la clef et des données constituent la partie intéressante. La longueur des blocs est variable dans RC5, mais on se concentrera dans l’exemple qui suitsur une taille de 64 bits. Le chiffrement nécessaire 2r  2 mots de 32 bits dépendants de la clef,S0 , S1 , S2 ,...., S2 r 2 , où r est le nombre de rondes. Pour chiffrer, diviser d’abord tout le bloc de texteen clair en mots de 32 bits : A et B. Il faut alors procéder ainsi : A  A  S0 B  B  S1Pour i variant de 1 à r, effectuer : A  (( A  B)  B)  S2i B  (( B  A)  A)  S2r 1La sortie est constituée des registres A et B.Le déchiffrement est tout aussi facile. Partager le texte chiffré en deux mots A et B, et effectuer : B  (( B  S2 r 1 )  A)  A A  (( A  S2 r )  B)  BB  B  S1A  A  S0 44
  • 45. Avec la fonction ROTL de chiffrement et la fonction ROTR de déchiffrement sont définirespectivement : ROTL( x, y)  ((( x)  ( y & ( w  1))) | ((x)>>(w-(y&(w-1))))) ROTR(x, y )=(((x)>>(y &(w-1))) | (( x)  ( w  ( y & ( w  1))))) La création du tableau de clef est plus compliquée mais directe aussi. Commencez par copierles bits de la clef dans un tableau L de c mots de 32 bits (en remplissant si nécessaire le dernier motavec des zéro). Initialisez alors le tableau en utilisant un générateur congruentiel modulo 232 : S0  P Pour i variant de 1 à 2(r+1)-1, effectuer: Si 1  ( Si  Q) mod ulo 232P=0xB7E15163 et Q=0x9E3779B9 sont des constantes basées sur e.Pour finir, mélangez L et S : 45
  • 46. i j0 A B0 Effectuer n fois (où n est le maximum de 2(r+1) et c): A  Si  ( Si  A  B )  3 B  Li  ( Li  A  B )  ( A  B ) i  (i  1) modulo 2(r  1) j  ( j  1) modulo c RC5 est en fait une famille d’algorithme. Nous avons défini RC5 avec des mots de 32 bits delong et des blocs de 64 bits de long : rien n’empêche l’algorithme de fonctionner avec des mots de 64bits de long et des blocs de 128 bits de long. Rivest désigne les réalisations particulières de RC5 par RC5  w / r / b où w est la taille des mots, r le nombre de rondes, et b la longueur de la clef en octets.Pour w =64, P et Q valent respectivement P  0 xB7 E151628 AED2 A6B ET Q  0 x9E3779B9F 4 A7C15 . RC5 est nouveau, mais les laboratoires RSA ont passé un temps considérable à l’analyser avecune taille de bloc de 64 bits. Après 5 rondes, les statistiques paraissent très bonnes. Après 8 rondes,chaque bit du texte en clair affecte au moins une rotation. Il existe une attaque différentielle avec 224textes en clair choisis pour 5 rondes, 245 pour 10 rondes, et 268 pour 15 rondes. Il n’y a bien sûr que264 textes en clair possibles. Aussi cette attaque ne marchera pas pour 15 rondes ou plus. Desestimations en cryptanalyse linéaire indiquent que l’algorithme est sûr après 6 rondes. Rivestrecommande au moins 12 rondes et 16 si possible. Ce nombre pourrait changer. Le code de RC5 : 46
  • 47. Le résultat de l’exécution : 47
  • 48. RC6 I. Le chiffrement par blocLe chiffrement par bloc (en anglais block cipher) est une des deux grandes catégories de chiffrementsmodernes en cryptographie symétrique, lautre étant le chiffrement par flot. La principale différencevient du découpage des données en blocs de taille généralement fixe. La taille de bloc est compriseentre 32 et 512 bits, dans le milieu des années 1990 le standard était de 64 bits mais depuis 2000 et leconcours AES le standard est de 128 bits. Les blocs sont ensuite chiffrés les uns après les autres. Il estpossible de transformer un chiffrement de bloc en un chiffrement par flot en utilisant un modedopération comme ECB (chaque bloc chiffré indépendamment des autres) ou CFB (on chaîne lechiffrement en effectuant un XOR entre les résultats successifs).Une liste non-exhaustive de chiffrements par bloc :  DES, lancêtre conçu dans les années 70, a été passablement étudié  AES, le remplaçant de DES  Blowfish, Serpent et Twofish, des alternatives à AESIl y en a encore bien dautres qui sont adaptés à des besoins particuliers. Certains consomment plus demémoire ou sont plus gourmands en puissance de calcul. Un chiffrement par bloc peut également êtreutilisé comme une fonction de hachage, cest-à-dire une fonction à sens unique. Une variante de DESest employée pour le système de mots de passe dans Unix. Une chaîne contenant uniquement des zérosest chiffrée avec une clé correspondant au mot de passe (une composante aléatoire appelée "sel" estencore intégrée à lalgorithme). Ce chiffrement est itératif et se fait 25 fois avant dobtenir le résultatfinal. II. Présentation de l’algorithme RC6Le RC6 a été créé en 1998. Il propose des améliorations au RC5 et, comme celui-ci, est fortementdépendant de la transformation de décalage de bits (rotation). Comme le RC5, il a lavantage davoirune longueur de bloc de données variable, un nombre de rounds variable et une clé de longueurvariable.Toutefois, il utilise la multiplication, ce qui augmente la diffusion dans chacun des rounds, donc lasécurité, et il a dû se conformer à des spécifications : opérer des blocs de 128 bits divisés en quatredans le traitement et être hautement sécuritaire par rapport à sa complexité.RC6 a été soumis au NIST pour devenir le nouveau standard de la cryptographie avancée (AdvancedEncryption Standard - AES). III. Principes de l’algorithme 48
  • 49. RC6–w/r/b décrit une famille d’algorithmes de cryptage dont chaque membre est caractérisé par lalargeur des mots traités (w bits), le nombre de rondes r et la taille de la clef (b octets). La versionproposée pour AES utilise par exemple les paramètres w = 32, r = 20 et b = 16, 24 ou 32.Quatre opérations distinct.es interviennent lors du cryptage avec RC6–w/r/b. La réalisation matérielledes deux premières, déjà rencontrées lors de notre étude de l’algorithme IDEA, n’offre plus aucunedifficulté:❶Le OU exclusif bit à bit de deux mots de w bits, noté ⊕.❷L’addition entière modulo 2w de deux opérandes de w bits, notée _.❸La rotation à gauche, notée ≪. En étudiant l’algorithme, nous constatons toutefois que le nombre depositions des deux premières rotations est constant Schéma descriptif de l’algorithme de chiffrement RC6. 49
  • 50. (lignes 4 et 5), alors que celui des deux suivantes varie en fonction des log2w bits de poids faibles desopérandes u et t (lignes 6 et 7). Il faut donc co. ncevoir deux opérateurs distincts. La rotation de log2wpositions ne requiert évidemment aucune ressource matérielle particulière. En effet, commeil suffit de permuter les log2w bits de poids forts avec les bits restants lors de leur connexion àl’opérateur ⊕. Si le nombre de positions est variable, la rotation s’effectue à l’aide d’un barrel-shifter.❹La fonction f (X) = (X(2X +1)) mod 2w = (2X2+X) mod 2w. La conception d’un opérateur calculantefficacement f (X) s’avère cruciale afin de restreindre le temps de cycle d’une ronde de calcul. Leprochain paragraphe est consacré à l’étude de ce problème.Contrairement à IDEA, l’architecture utilisée pour le décryptage (algorithme 4.8) diffère légèrementde celle intervenant lors du chiffrement des données. Nous constatons en particulier l’apparition de lasoustraction entière modulo 2w, notée _, et de la rotation à droite, désignée par≫.Le calcul des sous-clefs, décrit par l’algorithme 4.9, nécessite deux constantesPw et Qw. P32 = b7e15163 et Q32 = 9e3779b9 sont respectivement définies à partir desreprésentations binaires de e−2 et du nombre d’or diminué de un. Ces valeurs arbitraires peuvent êtrechoisies par le concepteur d’un système proposant RC6. Il faut toutefois que l’auteur d’un message etle destinataire utilisent les mêmes coefficients Pw et Qw. 50

×