Tout ce que vous voulez savoir sur l'adresse MAC

Tout ce que vous voulez savoir sur l'adresse MACIl 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) travaille sur 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 IEEE ou Wireshark.

À qui appartiennent les adresses

Un traitement simple de la base de données publique de l'IEEE fournit pas mal d'informations. Par exemple, certaines organisations ont regroupé de nombreux blocs OUI. Voici nos héros : 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 sont distribuées de manière extrêmement inégale; 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. WNAM. 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 (Wikipedia):
Tout ce que vous voulez savoir sur l'adresse MAC

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 :

Tout ce que vous voulez savoir sur l'adresse MAC

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 sources d'Android.

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

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster