Une adresse MAC (de l'anglais Media Access Control[1]), parfois nommée adresse physique[2], est un identifiant physique stocké dans une carte réseau ou une interface réseau similaire. Elle est unique au monde. Toutes les cartes réseau ont une adresse MAC, même celles contenues dans les PC et autres appareils connectés (tablette tactile, smartphone, consoles de jeux, réfrigérateurs, montres, etc.).
MAC constitue la partie inférieure de la couche de liaison (couche 2 du modèle OSI). Elle insère et traite ces adresses au sein des trames transmises. Elle est parfois appelée adresse ethernet, UAA pour (Universally Administered Address), BIA (pour Burned-In Address), MAC-48 ou EUI-48.
L'IEEE a défini un format similaire à 64 bits appelé EUI-64.
Utilisation
Les adresses MAC, attribuées par l'IEEE, sont utilisées dans beaucoup de technologies réseau, parmi lesquelles [réf. nécessaire]:
Structure
Une adresse MAC-48 est constituée de 48 bits (6 octets) et est généralement représentée sous la forme hexadécimale en séparant les octets par un double point. Par exemple 5E:FF:56:A2:AF:15.
Ces 48 bits sont répartis de la façon suivante :
- 1 bit I/G : indique si l'adresse est individuelle, auquel cas le bit sera à 0 (pour une machine unique, unicast) ou de groupe (multicast ou broadcast), en passant le bit à 1 ;
- 1 bit U/L : 0 indique si l'adresse est universelle (conforme au format de l'IEEE) ou locale, 1 pour une adresse administrée localement ;
- 22 bits réservés : tous les bits sont à zéro pour une adresse locale, sinon ils contiennent l'adresse du constructeur ;
- 24 bits : adresse unique (pour différencier les différentes cartes réseaux d'un même constructeur).
Les concepteurs d'Ethernet ayant utilisé un adressage de 48 bits, il existe potentiellement 248 (environ 281 000 milliards) d'adresses MAC possibles. L'IEEE donne des préfixes de 24 bits (appelés Organizationally Unique Identifier - OUI) aux fabricants, ce qui offre 224 (environ 16 millions) d'adresses MAC disponibles par préfixe.
Changement d'adresse MAC
Le changement d’une adresse MAC peut se faire au niveau logiciel, de manière temporaire avec une commande (ifconfig
sous Linux par exemple[3]) ou persistant en modifiant un fichier de configuration (la base de registre sous Windows par exemple[3]).
Selon Edward Snowden, la NSA dispose d'un système qui suit les mouvements des appareils mobiles dans une ville en surveillant les adresses MAC[4]. Pour éviter cette pratique, Apple a commencé à générer automatiquement des adresses MAC aléatoires lorsque l'appareil recherche ou se connecte à des réseaux Wi-Fi[5]. D'autres systèmes d’exploitation ont rapidement suivi : Android à partir de la version 6.0[6], Windows 10[7] et le noyau Linux 3.18[8],[9]. L’implémentation de la technique varie largement selon les différents appareils[10]. De plus, diverses failles et lacunes dans ces implémentations peuvent permettre à un attaquant de suivre un appareil même si son adresse MAC est modifiée[10],[11],[12],[13]. Si une adresse MAC aléatoire n'est pas utilisée, des chercheurs ont confirmé qu'il est possible de lier une identité réelle à une adresse MAC particulière sur un réseau sans fil[14].
Ordre de transmission
En Ethernet, le bit le moins significatif de chaque octet est transmis en premier, c'est-à-dire que le bit I/G est le premier à être transmis. La convention de Token Ring est inverse, ce qui peut mener à des confusions (RFC 2469[15]).
EUI-64
La structure de l'adresse EUI-64 est similaire à celle de EUI-48 (EUI acronyme de "Extended Unique Identifier" pour "identifiant unique étendu"). La taille du champ OUI varie de 24 à 36 bits[16]. Les valeurs FF:FF et FF:FE dans les octets 4 et 5 sont interdites[réf. nécessaire].
Les adresses EUI-64 sont utilisées notamment par FireWire, IPv6, ZigBee, 802.15.4, 6LoWPAN, LoRaWAN. Dans le cas d'IPv6, l'adresse EUI-64 est construite à partir de l'adresse MAC-48 en insérant FFFE dans les octets 4 et 5. L'adresse IPv6 utilise un format modifié dans lequel le bit U/L est inversé (RFC 2464[17]).
Adresses particulières
FF:FF:FF:FF:FF:FF | Adresse broadcast |
01:00:0C:CC:CC:CC | Cisco Discovery Protocol |
01:80:C2:00:00:00 | Spanning Tree Protocol |
33:33:xx:xx:xx:xx | Adresses multicast IPv6 |
01:00:5E:xx:xx:xx | Adresses multicast IPv4 |
00:00:0c:07:ac:xx | Adresses HSRP |
00:00:5E:00:01:XX | Adresses VRRP |
Notes et références
- IEEE 802.1d-1998 par exemple
- Walter Glenn J., Support utilisateurs et résolution des problèmes liés au système d'exploitation client Microsoft®: Kit de formation, Microsoft Press, (lire en ligne)
- (en) SmartARP: merging IP and MAC addressing for low-cost gigabit Ethernet networks, doi.org, consulté le 2 février 20233
- (en) James Bamford, « Edward Snowden : The Untold Story », sur wired.com, (consulté le ).
- « Apple implements random MAC address on iOS 8. Goodbye, marketers », sur Tech Times, (consulté le ).
- (en) « Android 6.0 Changes / Android Developers », sur Android Developers (consulté le ).
- « Wireless Networking in Windows 10 (Channel 9) », sur Internet Archive (consulté le ).
- (en) [PDF] Why MAC Address Randomization is not Enough: An Analysis of Wi-Fi Network Discovery Mechanisms, mathyvanhoef.com, consulté le 2 février 2023
- Five Years Later: How Effective Is the MAC Randomization in Practice? The No-at-All Attack
- (en) Célestin Matte, « Wi-Fi tracking : Fingerprinting attacks and counter-measures », sur Hyper articles en ligne, Université de Lyon, (consulté le ).
- (en) Frank Piessens, « Why MAC Address Randomization is not Enough: An Analysis of Wi-Fi Network Discovery Mechanisms », ACM AsiaCCS (conférence), (DOI 10.1145/2897845.2897883, lire en ligne, consulté le ).
- https://web.archive.org/web/20180822145628/https://www.degruyter.com/downloadpdf/j/popets.2017.2017.issue-4/popets-2017-0054/popets-2017-0054.pdf
- (en) Mathy Vanhoef, « Defeating MAC Address Randomization Through Timing Attacks », ACM WiSec 2016 (conférence), (DOI 10.1145/2939918.2939930, lire en ligne, consulté le ).
- (en) Mathieu Cunche, « I know your MAC Address : Targeted tracking of individual using Wi-Fi », sur inria.fr, (consulté le ).
- (en) Request for comments no 2469
- EUI64 Guidelines, IEEE
- (en) Request for comments no 2464