Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7



Documents pareils
Comprendre le Wi Fi. Patrick VINCENT

Sécurité des réseaux wi fi

How To? Sécurité des réseaux sans fils

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Manuel de Configuration

Administration du WG302 en SSH par Magicsam

Sommaire. III : Mise en place :... 7

Outils libres d'audit et d'intrusion pour les réseaux Wi-Fi

La sécurité dans un réseau Wi-Fi

Introduction. Adresses

Elle supporte entièrement la gestion de réseau sans fil sous Windows 98SE/ME/2000/XP.

Sécurité des réseaux wifi. CREIX Kevin GIOVARESCO Julien

FACULTE DES SCIENCES ET TECHNIQUES FES SAIS MASTER SYSTEMES INTELLIGENTS ET RESEAUX MST SIR 2014 TP WIFI. Encadré par PR.

Les messages d erreur d'applidis Client

Chapitre 6 -TP : Support Réseau des Accès Utilisateurs

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Internet. Licence Pro R&S. TD 5 - Wifi / Radius. 1 Sur le réseau de distribution (DS) 1.1 Configuration des routeurs PC6

Charte d installation des réseaux sans-fils à l INSA de Lyon

Poussés par cette relative simplicité d'installation. Cassons le cryptage WPA, sécurisons le WiFi

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Nmap (Network Mapper) Outil d exploration réseau et scanneur de ports/sécurité

Dynamic Host Configuration Protocol

TP 6 : Wifi Sécurité

Réseaux : Wi-Fi Sommaire. 1. Introduction. 2. Modes de fonctionnement. 3. Le médium. 4. La loi. 5. Sécurité

Sécurité des réseaux sans fil

Rappels réseaux TCP/IP

Se connecter en WiFi à une Freebox

Présentation et portée du cours : CCNA Exploration v4.0

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Manuel d'installation

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

WIFI sécurisé en entreprise (sur un Active Directory 2008)

Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Le WiFi sécurisé. 16 Octobre 2008 PRATIC RIOM

Programme formation pfsense Mars 2011 Cript Bretagne

7.1.2 Normes des réseaux locaux sans fil

SOMMAIRE : CONFIGURATION RESEAU SOUS WINDOWS... 2 INSTRUCTIONS DE TEST DE CONNECTIVITE... 5

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

DIFF AVANCÉE. Samy.

OS Réseaux et Programmation Système - C5

ETI/Domo. Français. ETI-Domo Config FR

Ch2 La modélisation théorique du réseau : OSI Dernière maj : jeudi 12 juillet 2007

VPN TLS avec OpenVPN. Matthieu Herrb. 14 Mars 2005

Advisor Master Advanced GSM SMS GPRS

Authentification sur réseau sans-fil Utilisation d un serveur radius Expérience du CENBG

Présentation et portée du cours : CCNA Exploration v4.0

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

Chap.9: SNMP: Simple Network Management Protocol

Cisco Certified Network Associate

Systèmes et Réseaux (ASR 2) - Notes de cours Cours 14

Le protocole TCP. Services de TCP

E4R : ÉTUDE DE CAS. Durée : 5 heures Coefficient : 5 CAS TRACE ÉLÉMENTS DE CORRECTION

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

DHCP. Dynamic Host Configuration Protocol

Un peu de vocabulaire

Cisco Certified Network Associate

Le protocole RADIUS Remote Authentication Dial-In User Service

Sécurité des réseaux sans fil

WIFI (WIreless FIdelity)

Guide de connexion Wi-Fi sur un hotspot ADP Télécom

Configurer sa carte Wi-Fi sous BSD

Les Réseaux sans fils : IEEE F. Nolot

Oléane VPN : Les nouvelles fonctions de gestion de réseaux. Orange Business Services

1. Présentation de WPA et 802.1X

1. CONFIGURATION DE LA CLE WEP CONFIGURATION DE LA CLE WPA CONFIGURATION D UN SSID SANS CHIFFREMENT... 6

Technique de défense dans un réseau

Date : NOM Prénom : TP n /5 DISTANT : CONCEPTS ET DIFFÉRENCES

Partie 9 : Wi-Fi et les réseaux sans fil

Le rôle Serveur NPS et Protection d accès réseau

Glossaire réseau. Version 0 FRE

Les ACL Cisco. F. Nolot Master 2 Professionnel STIC-Informatique 1

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide pour Mac OS X

PACK ADSL WIFI. Configurer ma connexion ADSL avec Modem/Routeur Sagem 1400W

VoIP et "NAT" VoIP et "NAT" 1/ La Traduction d'adresse réseau. 1/ La traduction d'adresse réseau. 1/ La traduction d'adresse réseau

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence

GUIDE UTILISATEUR - RÉSEAU

WiFI Sécurité et nouvelles normes

Procédure Configuration Borne Wifi. Attribution d'une adresse IP

E5SR : PRODUCTION ET FOURNITURE DE SERVICES. Durée : 4 heures Coefficient : 5 CAS RABANOV. Éléments de correction

L annuaire et le Service DNS

Partie II PRATIQUE DES CPL

Administration des ressources informatiques

Projet de Veille Technologique

Sécurité des réseaux Les attaques

Configurez votre Neufbox Evolution

PROJECTEUR DE DONNEES XJ-A135/XJ-A145/XJ-A155/ XJ-A245/XJ-A255

eurobraille VOYONS ENSEMBLE MANUEL D'UTILISATION WIFI iris 40, 20 iris-s 32, 20 iris-kb 40,20 VERSION 1.82

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Multicast & IGMP Snooping

IV. La sécurité du sans-fil

Serveur FTP. 20 décembre. Windows Server 2008R2

Le Protocole DHCP. Définition. Références. Fonctionnement. Les baux

box Modem Internet et téléphone avec routeur WiFi Mode d'emploi

Mise en réseau d'une classe mobile

Mode d Emploi du Module d ASRock WiFi g

Transcription:

Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones (échange scan/adhoc) RevC 18/04/2006 Mise à jour de l'api Sébastien Bourdeauducq RevD 25/05/2006 Mise à jour de l'api (Milestone 2) SB RevE 01/06/2006 Précision sur la taille de buffer de clef SB

1 INTRODUCTION...3 1.1 Rappel du contexte...3 2 PÉRIMÈTRE DU DRIVER...4 2.1 Rappel des fonctionnalités réseau haut-niveau...4 2.2 Limite entre driver et application...4 3 API...5 3.1 Initialisation / configuration...5 3.2 Scan...5 3.3 Etat de la carte...6 3.4 Envoi / Réception...7 4 MILESTONES...7 4.1 Phase A...7 4.2 Phase B...7 4.3 Phase C...8 2

1 Introduction 1.1 Rappel du contexte La société Violet édite et produit des objets communicants basés sur la technologie Wifi. La société entre dans une nouvelle étape de son développement : - développer un socle technique commun à plusieurs objets - améliorer la scalabilité de sa plateforme - améliorer la réactivité de ses objets Il en résulte : - une augmentation de la puissance de calcul des objets o passage à une technologie 32 bits o augmentation de la mémoire vive (3ko -> 1Mo) - une augmentation de l intelligence des objets o des objets qui maîtrisent leur connectivité réseau o des objets capables de définir leur comportement et de télécharger les ressources dont ils ont besoin o un bytecode plus complexe - une meilleure gestion du réseau o une couche réseau qui ne recourt plus aux mécanismes de polling o des capacités de streaming in et out (dans le sens : l objet joue la musique en même temps qu il la télécharge) o une couche réseau qui est capable de gérer les indisponibilités de serveur Pour atteindre ces objectifs, il est nécessaire d utiliser une nouvelle interface wifi. Celle retenue est un dongle USB à base de chipset Ralink RT2571W. L USB est piloté par un driver USB maître, le ML60842 : http://www.okisemi.com/datadocs/doc-eng/ml60842.pdf Le hardware de l hôte est le suivant : - ARM7, 32Mhz, environ 30Mips - 128ko de rom pour le programme - 1Mo de SRAM 3

2 Périmètre du driver 2.1 Rappel des fonctionnalités réseau haut-niveau L objet est capable de : - connaître son adresse MAC (celle en dur dans la carte wifi) - découvrir les réseaux disponibles (scan) - se connecter à une borne WIFI, en accès libre, en wep (open / shared), en wpa (PSK) - effectuer des requêtes ARP - obtenir une adresse IP à travers le protocole Dhcp (client) - effectuer des requêtes DNS (client) - envoyer/recevoir des paquets Udp - créer une connexion Tcp - effectuer une requête http Dans la phase de configuration, l objet est également capable - de fonctionner en mode master (point d'accès) - d accepter les associations - de répondre aux requêtes ARP - de fournir une adresse IP à travers le protocole Dhcp (serveur) - de recevoir une connexion Tcp - de répondre à une requête http 2.2 Limite entre driver et application L implémentation des protocoles haut-niveau est à la charge de Violet : ARP, IP (et donc UDP, TCP, HTTP). Le driver fournit une interface qui permet : - de configurer la connexion wifi - de connaître l état de la connexion - d effectuer un scan - d envoyer des trames ARP ou IP - de réceptionner des trames ARP ou IP Le driver prend en charge : - les échanges de trames liées au protocole wifi : connexion, authentification, échange de clefs, - le cryptage et le décryptage des données (WEP et WPA-PSK) - le découpage et le réassemblage des trames qui le nécessitent Le driver est écrit en langage C, sans utilisation de librairies. L utilisation de la sortie série pour les messages de debug est possible, mais doit pouvoir être désactivée et supprimée du code par un simple #define 4

3 API L'application doit inclure le fichier rt2501usb.h uniquement. Sauf mention contraire, les fonctions renvoyant un type «int» renvoient 1 en cas de succès, et 0 sinon. 3.1 Initialisation / configuration int rt2501_driver_install(void); Met en place le driver Ralink dans le driver USB Host. void rt2501_timer(void); Cette fonction doit être appellée toutes les 100ms par l'application, afin que le driver puisse recalibrer périodiquement la puissance d'émission de la carte et gérer les timeouts. Cette fonction ne doit pas être appellée lorsque les interruptions sont désactivées. extern unsigned char rt2501_mac[ieee80211_addr_len]; L adresse MAC de la carte se trouve dans ce buffer, sauf si le driver est dans l'état RT2501_S_BROKEN. void rt2501_setmode(int mode, const char *ssid, unsigned char channel); Définit le mode souhaité : IEEE80211_M_MANAGED ou IEEE80211_M_MASTER. Dans le cas d'utilisation du mode Master, «ssid» et «channel» doivent donner les informations de configuration du point d'accès. Lors d'un passage en mode Managed, ces paramètres sont ignorés. Il est possible de rappeller cette fonction lorsque l'on est en mode Master avec des paramètres «ssid» et «channel» différents, afin de reconfigurer le point d'accès. Cette fonction ne doit pas être appellée lorsque les interruptions sont désactivées. 3.2 Scan On définira une structure rt2501_scan_result, capable de contenir les paramètres de scan d une borne : struct rt2501_scan_result { char ssid[ieee80211_ssid_maxlen+1]; unsigned char mac[ieee80211_addr_len]; unsigned char bssid[ieee80211_addr_len]; short int rssi; unsigned char channel; unsigned short int rateset; unsigned char encryption; }; puis on appellera la fonction suivante qui réalise un Scan et qui appelle la callback autant de fois qu il y a de bornes à portée. Chaque appel de la callback fournit les informations d une seule borne. typedef void (*rt2501_scan_callback)(struct rt2501_scan_result *, void *); void rt2501_scan(const char *ssid, rt2501_scan_callback callback, void *userparam); Le paramètre «ssid» permet d'émettre, lors du scan, des «probe request» portant ce SSID. Ceci est nécessaire pour pouvoir se connecter sur des réseaux sans «SSID broadcast». 5

Le paramètre «userparam» n est pas interprété par la fonction mais est fourni à chaque appel de callback. La fonction de callback peut être appellée plusieurs fois par le driver (à chaque réception d'un «beacon» ou d'une «probe response»). Le callback est appellé depuis une routine de traitement d'interruption. Le champ «rssi» donne la puissance du signal reçu, en dbm. Le champ «encryption» peut prendre les valeurs 0 (IEEE80211_CRYPT_NONE) et 1 (IEEE80211_CRYPT_WEP64). Si le réseau utilise une clef WEP 128 bits, le champ sera tout de même égal à IEEE80211_CRYPT_WEP64. C'est à l'application de déterminer si le réseau utilise une clef 64 ou 128 bits. Il n'est possible de scanner qu'en mode Managed. Cette fonction ne doit pas être appellée lorsque les interruptions sont désactivées. La connexion à un réseau s'effectue ensuite par l'appel de la fonction suivante : void rt2501_auth(const char *ssid, const unsigned char *mac, const unsigned char *bssid, unsigned char channel, unsigned short int rateset, unsigned char authmode, unsigned char encryption, const char *key); L'application doit ensuite appeler rt2501_state() afin de vérifier l'état de la connexion. En cas d'erreur de connexion, l'état passera à RT2501_S_IDLE ; en cas de succès, il passera à RT2501_S_CONNECTED. Le paramètre «authmode» peut valoir 0 (IEEE80211_AUTH_OPEN) ou 1 (IEEE80211_AUTH_SHARED). Le paramètre «encryption» prend les valeurs 0 (IEEE80211_CRYPT_NONE), 1 (IEEE80211_CRYPT_WEP64) et 2 (IEEE80211_CRYPT_WEP128). Ceci détermine la taille du buffer vers lequel pointe «key». Si le cryptage n'est pas utilisé, le paramètre «key» est ignoré. Si «authmode» vaut IEEE80211_AUTH_SHARED, «encryption» ne doit pas valoir IEEE80211_CRYPT_NONE. Le buffer vers lequel pointe «key» doit contenir 8 octets pour une clef WEP64, et 16 octets pour une clef WEP128. Ses trois derniers octets sont ignorés, mais doivent être présents en mémoire pour des raisons d'alignement. Cette fonction ne doit pas être appellée lorsque les interruptions sont désactivées. 3.3 Etat de la carte int rt2501_state(void); retourne l état de la carte : - 0 : (RT2501_S_BROKEN) «cassée» (carte absente ou ne répondant pas) - 1 : (RT2501_S_IDLE) initialisée mais non connectée - 2 : (RT2501_S_SCAN) scan en cours - 3 : (RT2501_S_CONNECTING) connexion en cours d établissement - 4 : (RT2501_S_CONNECTED) connexion établie - 5 : (RT2501_S_MASTER) mode Master extern char ieee80211_assoc_ssid[ieee80211_ssid_maxlen+1]; 6

Si la carte est connectée, en cours de connexion, ou en mode Master, ce buffer contient le SSID sur lequel la carte se connecte, ou le SSID du réseau créé. 3.4 Envoi / Réception Le driver est capable de mettre en attente une quantité arbitraire de trames reçues (tant qu'il y a de la mémoire disponible sur le matériel). struct rt2501buffer { struct rt2501buffer *next; unsigned int length; char source_mac[ieee80211_addr_len]; char data[]; }; struct rt2501buffer *rt2501_receive(void); Si une trame est en attente, celle ci est retirée de la file d'attente et renvoyée par cette fonction. Si aucune trame n'est en attente, la fonction renvoie NULL. La structure rt2501buffer est composée des éléments suivants : next: utilisé par le driver lorsque la trame était encore en file d'attente, l'application peut ignorer ou altérer ce champ sans conséquence. length: taille de la trame source_mac: adresse MAC de l'émetteur de la trame data: données de la trame La structure doit ensuite être libérée par l'application à l'aide de la fonction free(). La trame commence à l'en-tête LLC (Logical-Link Control), lequel est immédiatement suivi par une trame IP ou ARP (ce type est déterminé avec le LLC). int rt2501_send(const char *frame, unsigned int length, const unsigned char *dest_mac, int lowrate, int mayblock); Envoie une trame IP ou ARP. Celle ci doit être précédée d'un en-tête LLC. Le paramètre «lowrate» permet, en mode Managed, d'envoyer la trame avec le débit le plus bas supporté par l'ap. Ceci est utile pour des trames courtes et critiques pour le fonctionnement du réseau (DHCP, ARP,...). Le paramètre «mayblock» indique à la fonction qu'en cas de buffer d'émission plein, elle peut attendre que de la place se libère pour y mettre la trame. Cette fonctionnalité ne doit pas être utilisée lorsque les interruptions sont désactivées. 4 Milestones 4.1 Phase A - Réalisation du driver complet, sans cryptage, avec scan, et sans mode master Le sous-traitant fournira également la description exhaustive et octet par octet des paquets émis et reçus. 4.2 Phase B - Implémentation du driver WEP (64 et 128 bits : cryptage + mécanismes d authentification) 7

- Implémentation du mode master Le sous-traitant fournira également la description exhaustive et octet par octet des paquets émis et reçus. 4.3 Phase C - Implémentation du driver WPA-PSK (cryptage + mécanismes d authentification et de renouvellement des clefs) Le sous-traitant fournira également la description exhaustive et octet par octet des paquets émis et reçus. 8