Il est bien connu que ces six octets, généralement affichés au format hexadécimal, sont attribués à la carte réseau en usine et semblent aléatoires à première vue. Certains savent que les trois premiers octets de l'adresse constituent l'identifiant du fabricant, tandis que les trois derniers lui sont attribués. Il est également connu qu'il est possible de se attribuer un adresse aléatoire . Beaucoup ont entendu parler des « adresses aléatoires » en Wi-Fi.
Examinons ce que cela signifie.
L'adresse MAC (Media Access Control Address) est un identifiant unique attribué à un adaptateur réseau, utilisé dans les réseaux des normes IEEE 802, principalement Ethernet, Wi-Fi et Bluetooth. Elle est officiellement appelée « identifiant de type EUI-48 ». Comme son nom l'indique, l'adresse a une longueur de 48 bits, c'est-à-dire 6 octets. Il n'existe pas de norme universelle pour l'écriture de l'adresse (contrairement à l'adresse IPv4, où les octets sont toujours séparés par des points). Elle est généralement notée sous la forme de six nombres hexadécimaux séparés par des deux-points : 00:AB:CD:EF:11:22, bien que certains fabricants d'équipement préfèrent la notation 00-AB-CD-EF-11-22 voire 00ab.cdef.1122.
Historiquement, les adresses étaient gravées dans la ROM du chipset de la carte réseau sans possibilité de les modifier sans programmeur flash, mais à l'heure actuelle, l'adresse peut être modifiée par logiciel, depuis le système d'exploitation. Il est possible de définir manuellement l'adresse MAC sur les cartes réseau sous Linux et MacOS (toujours), Windows (presque toujours, si le pilote le permet), Android (uniquement avec root) ; avec iOS (sans root), cette astuce est impossible.
Structure de l'adresse
L'adresse se compose de la partie identifiant du fabricant, OUI, et de l'identifiant attribué par le fabricant. Les identifiants OUI (Organizationally Unique Identifier) sont attribués par l'organisation IEEE. En réalité, sa longueur peut ne pas seulement être de 3 octets (24 bits), mais aussi de 28 ou 36 bits, dont sont formés les blocs (MAC Address Block, MA) d'adresses de types Large (MA-L), Medium (MA-M) et Small (MA-S) respectivement. La taille du bloc attribué sera alors de 24, 20, 12 bits ou 16 millions, 1 million, 4 mille adresses. Actuellement, environ 38 000 blocs sont répartis, et ils peuvent être consultés via de nombreux outils en ligne, par exemple chez ou .
À qui appartiennent les adresses
Un traitement simple de la base de données publique Fournisseur
Nombre de blocs/enregistrements
Nombre d'adresses, millions.
Nombre d'adresses, millions.
Cisco Systems Inc
888
14208
Apple
772
12352
Samsung
636
10144
Huawei Technologies Co.Ltd
606
9696
Intel Corporation
375
5776
ARRIS Group Inc.
319
5104
Nokia Corporation
241
3856
Privée
232
2704
Texas Instruments
212
3392
zte corporation
198
3168
IEEE Registration Authority
194
3072
Hewlett Packard
149
2384
Hon Hai Precision
136
2176
TP-LINK
134
2144
Dell Inc.
123
1968
Juniper Networks
110
1760
Sagemcom Broadband SAS
97
1552
Fiberhome Telecommunication Technologies Co. LTD
97
1552
Xiaomi Communications Co Ltd
88
1408
Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312
Chez Google, il y en a seulement 40, et ce n'est pas surprenant : ils ne fabriquent pas tant d'équipements réseau.
Les blocs MAC ne sont pas offerts gratuitement, ils peuvent être achetés pour un prix raisonnable (sans frais d'abonnement) de 3000$, 1800$ ou 755$ respectivement. Il est intéressant de noter qu'il est possible d'acheter pour un coût supplémentaire (par an) la « dissimulation » des informations publiques concernant le bloc dédié. Actuellement, comme indiqué ci-dessus, il y en a 232.
Quand les adresses MAC seront-elles épuisées ?
Nous sommes tous assez fatigués d'entendre depuis bientôt 10 ans que les « adresses IPv4 vont bientôt s'épuiser ». Oui, il est désormais difficile d'obtenir de nouveaux blocs IPv4. Cependant, il est connu que les adresses IP ; il existe d'énormes blocs peu utilisés appartenant à des grandes entreprises et des institutions gouvernementales américaines, sans trop d'espoir qu'ils soient redistribués au profit des nécessités. La diffusion des NAT, CG-NAT et IPv6 a rendu le problème du manque d'adresses publiques moins aigu.
Une adresse MAC compte 48 bits, dont 46 peuvent être considérés comme « utiles » (pourquoi ? Lisez la suite), ce qui donne 246 ou 1014 adresses, soit 214 fois plus que l'espace d'adressage IPv4.
Actuellement, environ un demi-trillion d'adresses sont distribuées, soit seulement 0,73% de l'ensemble. Nous sommes encore très loin de l'épuisement des adresses MAC.
Hasard des bits
On peut supposer que les OUI sont répartis aléatoirement, puis le fournisseur attribue également par hasard des adresses aux appareils réseau individuels. Est-ce vrai ? Observons la distribution des bits dans les bases de données d'adresses MAC 802.11, collectées par des systèmes d'autorisation opérationnels dans des réseaux sans fil. . Les adresses appartiennent à de réels appareils qui se sont connectés au Wi-Fi pendant plusieurs années dans trois pays. De plus, il existe une petite base de données d'équipements 802.3 pour les LAN filaires.
Nous allons décortiquer chaque adresse MAC (six octets) de chaque échantillon bit par bit, et examiner la fréquence d'apparition du bit « 1 » dans chacune des 48 positions. Si le bit est défini de manière complètement aléatoire, la probabilité d'obtenir un « 1 » devrait être de 50%.
Échantillon Wi-Fi n°1 (RF)
Échantillon Wi-Fi n°2 (Biélorussie)
Échantillon Wi-Fi n°3 (Ouzbékistan)
Échantillon LAN (RF)
Nombre d'enregistrements dans la base
5929000
1274000
366000
1000
Numéro du bit :
% de bits « 1 »
% de bits « 1 »
% de bits « 1 »
% de bits « 1 »
1
48.6%
49.2%
50.7%
28.7%
2
44.8%
49.1%
47.7%
30.7%
3
46.7%
48.3%
46.8%
35.8%
4
48.0%
48.6%
49.8%
37.1%
5
45.7%
46.9%
47.0%
32.3%
6
46.6%
46.7%
47.8%
27.1%
7
0.3%
0.3%
0.2%
0.7%
8
0.0%
0.0%
0.0%
0.0%
9
48.1%
50.6%
49.4%
38.1%
10
49.1%
50.2%
47.4%
42.7%
11
50.8%
50.0%
50.6%
42.9%
12
49.0%
48.4%
48.2%
53.7%
13
47.6%
47.0%
46.3%
48.5%
14
47.5%
47.4%
51.7%
46.8%
15
48.3%
47.5%
48.7%
46.1%
16
50.6%
50.4%
51.2%
45.3%
17
49.4%
50.4%
54.3%
38.2%
18
49.8%
50.5%
51.5%
51.9%
19
51.6%
53.3%
53.9%
42.6%
20
46.6%
46.1%
45.5%
48.4%
21
51.7%
52.9%
47.7%
48.9%
22
49.2%
49.6%
41.6%
49.8%
23
51.2%
50.9%
47.0%
41.9%
24
49.5%
50.2%
50.1%
47.5%
25
47.1%
47.3%
47.7%
44.2%
26
48.6%
48.6%
49.2%
43.9%
27
49.8%
49.0%
49.7%
48.9%
28
49.3%
49.3%
49.7%
55.1%
29
49.5%
49.4%
49.8%
49.8%
30
49.8%
49.8%
49.7%
52.1%
31
49.5%
49.7%
49.6%
46.6%
32
49.4%
49.7%
49.5%
47.5%
33
49.4%
49.8%
49.7%
48.3%
34
49.7%
50.0%
49.6%
44.9%
35
49.9%
50.0%
50.0%
50.6%
36
49.9%
49.9%
49.8%
49.1%
37
49.8%
50.0%
49.9%
51.4%
38
50.0%
50.0%
49.8%
51.8%
39
49.9%
50.0%
49.9%
55.7%
40
50.0%
50.0%
50.0%
49.5%
41
49.9%
50.0%
49.9%
52.2%
42
50.0%
50.0%
50.0%
53.9%
43
50.1%
50.0%
50.3%
56.1%
44
50.1%
50.0%
50.1%
45.8%
45
50.0%
50.0%
50.1%
50.1%
46
50.0%
50.0%
50.1%
49.5%
47
49.2%
49.4%
49.7%
45.2%
48
49.9%
50.1%
50.7%
54.6%
D'où vient cette injustice dans les bits 7 et 8 ? Ils sont presque toujours des zéros.
En effet, la norme définit ces bits comme spéciaux ():

Le huitième (à partir de) bit du premier octet de l'adresse MAC est appelé bit Unicast/Multicast et détermine le type de trame transmis avec cette adresse, normale (0) ou de diffusion (1) (multicast ou broadcast). Pour une communication unicast normale avec le réseau, ce bit est défini sur « 0 » dans tous les paquets qui lui sont envoyés.
Le septième (à partir de) bit du premier octet de l'adresse MAC est appelé bit U/L (Universel/Local) et détermine si l'adresse est globalement unique (0) ou localement unique (1). Par défaut, toutes les adresses « gravées par le fabricant » sont globalement uniques, donc la grande majorité des adresses MAC enregistrées ont le septième bit défini sur « 0 ». Dans le tableau des identifiants OUI attribués, seulement environ 130 enregistrements ont le bit U/L « 1 », et il semble que ce soit des blocs d'adresses MAC pour des besoins spéciaux.
Les bits du sixième au premier octet du premier byte, ainsi que les bits du deuxième et du troisième octet dans les identifiants OUI, et surtout les bits dans les octets 4-6 de l'adresse, attribués par le fabricant, sont répartis de manière plus ou moins égale.
Ainsi, dans une adresse MAC réelle d'un adaptateur réseau, les bits sont en fait équivalents et n'ont pas de signification technologique, à l'exception de deux bits de service du premier octet.
Prévalence
Il est intéressant de savoir quels fabricants d'équipements sans fil sont les plus populaires ? Nous allons combiner la recherche dans la base OUI avec les données de l'échantillon n°1.
Nombre de blocs/enregistrements
Part des appareils, %
Apple
26,09
Samsung
19,79
Huawei Technologies Co. Ltd
7,80
Xiaomi Communications Co Ltd
6,83
Sony Mobile Communications Inc
3,29
LG Electronics (Mobile Communications)
2,76
ASUSTek COMPUTER INC.
2,58
TCT mobile ltd
2,13
zte corporation
2,00
non trouvé dans la base IEEE
1,92
Lenovo Mobile Communication Technology Ltd.
1,71
HTC Corporation
1,68
Murata Manufactuaring
1,31
InPro Comm
1,26
Microsoft Corporation
1,11
Shenzhen TINNO Mobile Technology Corp.
1,02
Motorola (Wuhan) Mobility Technologies Communication Co. Ltd.
0,93
Nokia Corporation
0,88
Shanghai Wind Technologies Co. Ltd
0,74
Lenovo Mobile Communication (Wuhan) Company Limited
0,71
L'expérience montre que plus le public d'abonnés d'un réseau sans fil est aisé dans cet endroit, plus la part des appareils Apple est élevée.
Unicité
Les adresses MAC sont-elles uniques ? Théoriquement oui, car chaque fabricant d'appareils (propriétaire du bloc MA) est tenu de fournir une adresse unique pour chacun des adaptateurs réseau qu'il produit. Cependant, certains fabricants de puces, à savoir :
- 00:0A:F5 Airgo Networks, Inc. (maintenant Qualcomm)
- 00:08:22 InPro Comm (maintenant MediaTek)
Les trois derniers octets de l'adresse MAC sont affichés comme un nombre aléatoire, apparemment après chaque redémarrage de l'appareil. J'ai trouvé 82 000 de ces adresses dans mon échantillon n°1.
Il est possible d'attribuer à soi-même une adresse non unique, bien sûr, en la définissant intentionnellement « comme chez le voisin », en l'identifiant avec un sniffer, ou en choisissant au hasard. Il est également possible de se retrouver accidentellement avec une adresse non unique en exécutant, par exemple, la restauration d'une sauvegarde de la configuration d'un routeur comme Mikrotik ou OpenWrt.
Que se passe-t-il si deux appareils se retrouvent sur le réseau avec la même adresse MAC ? Tout dépend de la logique du matériel réseau (routeur filaire, contrôleur de réseau sans fil). Il est probable que les deux appareils ne fonctionnent pas, ou fonctionneront avec des interférences. Selon les normes IEEE, la protection contre la falsification des adresses MAC devrait être abordée en utilisant, par exemple, MACsec ou 802.1X.
Que se passe-t-il si j'attribue une adresse MAC avec le septième ou le huitième bit défini sur « 1 », c'est-à-dire une adresse locale ou multicast ? Il est probable que votre réseau ne prêtera pas attention, mais formellement, cette adresse ne respectera pas la norme, et il est préférable de ne pas le faire.
Comment fonctionne la randomisation
Nous savons qu'afin de prévenir le suivi des mouvements des personnes par le balayage de l'air et la collecte des adresses MAC, les systèmes d'exploitation des smartphones utilisent déjà depuis plusieurs années la technologie de randomisation. Théoriquement, lors du balayage pour rechercher des réseaux connus, le smartphone envoie un paquet (un groupe de paquets) de type 802.11 probe request avec l'adresse MAC en tant que source :

La randomisation activée permet d'indiquer non pas une adresse « gravée », mais une autre adresse source du paquet, changeant à chaque cycle de balayage, dans le temps ou d'une autre manière. Cela fonctionne-t-il ? Voyons les statistiques des adresses MAC collectées dans l'air à l'aide du « Wi-Fi Radar » :
L'ensemble de l'échantillon
Échantillon uniquement avec le bit 7 nul
Nombre d'enregistrements dans la base
3920000
305000
Numéro du bit :
% de bits « 1 »
% de bits « 1 »
1
66.1%
43.3%
2
66.5%
43.4%
3
31.7%
43.8%
4
66.6%
46.4%
5
66.7%
45.7%
6
31.9%
46.4%
7
92.2%
0.0%
8
0.0%
0.0%
9
67.2%
47.5%
10
32.3%
45.6%
11
66.9%
45.3%
12
32.3%
46.8%
13
32.6%
50.1%
14
33.0%
56.1%
15
32.5%
45.0%
16
67.2%
48.3%
17
33.2%
56.9%
18
33.3%
56.8%
19
33.3%
56.3%
20
66.8%
43.2%
21
67.0%
46.4%
22
32.6%
50.1%
23
32.9%
51.2%
24
67.6%
52.2%
25
49.8%
47.8%
26
50.0%
50.0%
27
50.0%
50.2%
28
50.0%
49.8%
29
50.0%
49.4%
30
50.0%
50.0%
31
50.0%
49.7%
32
50.0%
49.9%
33
50.0%
49.7%
34
50.0%
49.6%
35
50.0%
50.1%
36
50.0%
49.5%
37
50.0%
49.9%
38
50.0%
49.8%
39
50.0%
49.9%
40
50.0%
50.1%
41
50.0%
50.2%
42
50.0%
50.2%
43
50.0%
50.1%
44
50.0%
50.1%
45
50.0%
50.0%
46
50.0%
49.8%
47
50.0%
49.8%
48
50.1%
50.9%
Le tableau est complètement différent.
Le 8ème bit du premier octet de l'adresse MAC correspond toujours à la nature Unicast de l'adresse SRC dans le paquet probe request.
Le 7ème bit est fixé à 92,2 % des cas sur Local, ce qui permet de considérer avec une confiance raisonnable que cette proportion d'adresses collectées est aléatoire, tandis que moins de 8 % sont réelles. De plus, la distribution des bits dans l'OUI pour ces adresses réelles correspond approximativement aux données du tableau précédent.
À quel fabricant, selon l'OUI, appartiennent les adresses randomisées (c'est-à-dire avec le 7ème bit à « 1 ») ?
Fabricant selon l'OUI
Part des adresses totales
non trouvé dans la base IEEE
62.45%
Google Inc.
37.54%
autres
0.01%
Toutes les adresses randomisées associées à Google appartiennent à un seul OUI avec le préfixe DA:A1:19. Quel est ce préfixe ? Regardons dans les .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");Le stock Android utilise lors de la recherche de réseaux sans fil un OUI spécial, enregistré, l'un des rares ayant le septième bit fixé.
Calculer le véritable MAC à partir d'un aléatoire
Voyons cela aussi :
private static final long VALID_LONG_MASK = (1L << 48) - 1;
private static final long LOCALLY_ASSIGNED_MASK = MacAddress.fromString("2:0:0:0:0:0").mAddr;
private static final long MULTICAST_MASK = MacAddress.fromString("1:0:0:0:0:0").mAddr;
public static @NonNull MacAddress createRandomUnicastAddress(MacAddress base, Random r) {
long addr;
if (base == null) {
addr = r.nextLong() & VALID_LONG_MASK;
} else {
addr = (base.mAddr & OUI_MASK) | (NIC_MASK & r.nextLong());
}
addr |= LOCALLY_ASSIGNED_MASK;
addr &= ~MULTICAST_MASK;
MacAddress mac = new MacAddress(addr);
if (mac.equals(DEFAULT_MAC_ADDRESS)) {
return createRandomUnicastAddress(base, r);
}
return mac;
}
L'adresse entière, ou ses trois derniers octets, est un pur Random.nextLong(). « Récupération brevetée du vrai MAC » est une imposture. On peut s'attendre avec une grande confiance à ce que les fabricants de téléphones Android utilisent d'autres OUI non enregistrés. Nous n'avons pas les sources d'iOS, mais il est probable qu'un algorithme similaire y soit appliqué.
Ce qui précède n'annule pas le fonctionnement d'autres mécanismes de dé-anonymisation des abonnés Wi-Fi, basés sur l'analyse d'autres champs de la trame de demande probe, ou la corrélation de la fréquence relative des demandes envoyées par l'appareil. Cependant, il est extrêmement difficile de suivre un abonné par des moyens externes. Les données collectées seront plus appropriées pour analyser la charge moyenne/pic par localisation et par temps, sur la base de grands nombres, sans lien avec des dispositifs et des personnes spécifiques. Les données précises ne sont disponibles que pour ceux qui se trouvent « à l'intérieur », chez les fabricants de systèmes d'exploitation mobile eux-mêmes, et dans les applications installées.
Quels dangers peuvent survenir si quelqu'un découvre l'adresse MAC de votre appareil ? Pour les réseaux filaires et sans fil, une attaque par déni de service peut être orchestrée. Pour un appareil sans fil, il est également possible de détecter avec une certaine probabilité le moment où il apparaît dans la zone où un capteur est installé. En falsifiant l'adresse, il est possible d'essayer de 'se faire passer' pour votre appareil, ce qui peut fonctionner uniquement si des mesures de sécurité supplémentaires (autorisation et/ou cryptage) ne sont pas mises en place. 99,9 % des gens ici n'ont pas à s'inquiéter.
L'adresse MAC est plus complexe qu'il n'y paraît, mais plus simple qu'elle pourrait l'être.
Source : habr.com
