Tout ce que vous vouliez savoir sur l'adresse MAC

Tout ce que vous vouliez savoir sur l'adresse MACTout le monde sait que ces six octets, généralement affichés au format hexadécimal, sont attribués en usine à la carte réseau et semblent aléatoires. Certaines personnes savent que les trois premiers octets de l'adresse sont l'ID du fabricant et que les trois octets restants leur sont attribués. On sait également que vous pouvez vous fixer arbitraire adresse. De nombreuses personnes ont entendu parler des « adresses aléatoires » dans le Wi-Fi.

Voyons ce que c'est.

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. Officiellement, on l'appelle « identifiant de type EUI-48 ». D'après le nom, il est évident que l'adresse fait 48 bits, c'est-à-dire 6 octets. Il n'existe pas de norme généralement acceptée pour écrire une adresse (contrairement à une adresse IPv4, où les octets sont toujours séparés par des points). Elle s'écrit généralement sous la forme de six nombres hexadécimaux séparés par deux points : 00:AB:CD:EF:11 : 22, même si certains équipementiers préfèrent la notation 00 -AB-CD-EF-11-22 et même 00ab.cdef.1122.

Historiquement, les adresses étaient flashées dans la ROM du chipset de la carte réseau sans possibilité de les modifier sans programmeur flash, mais de nos jours, l'adresse peut être modifiée par programme à partir du système d'exploitation. Vous pouvez définir manuellement l'adresse MAC d'une carte réseau sous Linux et MacOS (toujours), Windows (presque toujours, si le pilote le permet), Android (uniquement rooté) ; Avec iOS (sans root), une telle astuce est impossible.

Structure d'adresse

L'adresse est constituée d'une partie de l'identifiant du fabricant, OUI, et d'un identifiant attribué par le fabricant. Attribution des identifiants OUI (Organizationally Unique Identifier) Занимается Organisation IEEE. En effet, sa longueur peut être non seulement de 3 octets (24 bits), mais de 28 ou 36 bits, à partir desquels des blocs (MAC Address Block, MA) d'adresses de types Large (MA-L), Medium (MA-M) et Des petits sont formés (MA-S) respectivement. La taille du bloc émis, dans ce cas, sera de 24, 20, 12 bits ou 16 millions, 1 million, 4 38 adresses. Il existe actuellement environ XNUMX XNUMX blocs distribués, ils peuvent être consultés à l'aide de nombreux outils en ligne, par exemple IEEE ou Wireshark.

À qui appartiennent les adresses ?

Traitement facile des informations accessibles au public déchargement des bases de données L'IEEE fournit de nombreuses informations. Par exemple, certaines organisations ont pris pour elles-mêmes de nombreux blocs OUI. Voici nos héros :

Fournisseur
Nombre de blocs/enregistrements
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

Groupe ARRIS inc.
319
5104

Nokia Corporation
241
3856

Chef
232
2704

Texas Instruments
212
3392

zte corporation
198
3168

Autorité d'enregistrement IEEE
194
3072

Hewlett Packard
149
2384

Précision Hon Hai
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Juniper Networks
110
1760

Sagemcom Haut Débit SAS
97
1552

Fibrehome Telecommunication Technologies Co. LTD
97
1552

Xiaomi Communications Co Ltd
88
1408

Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312

Google n'en possède que 40, et ce n'est pas surprenant : eux-mêmes ne produisent pas beaucoup d'appareils réseau.

Les blocs MA ne sont pas fournis gratuitement, ils peuvent être achetés à un prix raisonnable (sans frais d'abonnement) pour respectivement 3000 1800 $, 755 232 $ ou XNUMX $. Fait intéressant, pour de l'argent supplémentaire (par an), vous pouvez acheter la « dissimulation » des informations publiques sur le bloc alloué. Ils sont désormais XNUMX, comme on peut le voir ci-dessus.

Quand manquerons-nous d’adresses MAC ?

Nous sommes tous assez fatigués des histoires qui circulent depuis 10 ans selon lesquelles « les adresses IPv4 sont sur le point de s’épuiser ». Oui, les nouveaux blocs IPv4 ne sont plus faciles à obtenir. On sait que les adresses IP extrêmement inégalement réparti; Il existe cependant des blocs gigantesques et sous-utilisés appartenant à de grandes entreprises et à des agences gouvernementales américaines, avec peu d’espoir de les redistribuer à ceux qui en ont besoin. La prolifération des NAT, CG-NAT et IPv6 a rendu le problème de la pénurie d'adresses publiques moins aigu.

Une adresse MAC comporte 48 bits, dont 46 peuvent être considérés comme « utiles » (pourquoi ? continuez à lire), ce qui donne 246 ou 1014 adresses, soit 214 fois plus que l'espace d'adressage IPv4.
Actuellement, environ un demi-billion d’adresses ont été distribuées, soit seulement 0.73 % du volume total. Nous sommes encore très très loin de manquer d’adresses MAC.

Bits aléatoires

On peut supposer que les OUI sont distribués de manière aléatoire et que le fournisseur attribue ensuite également des adresses de manière aléatoire aux périphériques réseau individuels. Est-ce ainsi ? Regardons la répartition des bits dans les bases de données d'adresses MAC des appareils 802.11 à ma disposition, collectées par les systèmes d'autorisation fonctionnels dans les réseaux sans fil WNAM. Les adresses appartiennent à des appareils réels connectés au Wi-Fi pendant plusieurs années dans trois pays. De plus, il existe une petite base de données de périphériques LAN filaires 802.3.

Décomposons chaque adresse MAC (six octets) de chacun des échantillons en bits, octet par octet, et regardons la fréquence d'apparition du bit « 1 » dans chacune des 48 positions. Si le bit est défini de manière complètement arbitraire, alors la probabilité d'obtenir un « 1 » devrait être de 50 %.

Sélection Wi-Fi n°1 (RF)
Échantillon Wi-Fi n°2 (Biélorussie)
Sélection Wi-Fi n°3 (Ouzbékistan)
Échantillonnage LAN (RF)

Nombre d'enregistrements dans la base de données
5929000
1274000
366000
1000

Numéro de bits :
% bits "1"
% bits "1"
% bits "1"
% 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%

Pourquoi une telle injustice en 7 et 8 bits ? Il y a presque toujours des zéros.

En effet, la norme définit ces bits comme spéciaux (Wikipedia):
Tout ce que vous vouliez savoir sur l'adresse MAC

Le huitième bit (à partir du début) du premier octet de l'adresse MAC est appelé bit Unicast/Multicast et détermine quel type de trame (trame) est transmis avec cette adresse, régulière (0) ou diffusion (1) (multidiffusion ou diffuser). Pour une communication normale de la carte réseau unicast, ce bit est défini sur « 0 » dans tous les paquets qui lui sont envoyés.

Le septième bit (à partir du début) 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 « cousues par le fabricant » sont globalement uniques, de sorte que la grande majorité des adresses MAC collectées contiennent le septième bit défini sur « 0 ». Dans le tableau des identifiants OUI attribués, seules environ 130 entrées ont un bit U/L de « 1 », et il s'agit apparemment de blocs d'adresses MAC destinés à des besoins particuliers.

Du sixième au premier bits du premier octet, les bits des deuxième et troisième octets des identifiants OUI, et plus encore les bits des 4-6 octets de l'adresse attribuée par le constructeur sont répartis plus ou moins uniformément .

Ainsi, dans l'adresse MAC réelle de la carte réseau, les bits sont en réalité équivalents et n'ont aucune signification technologique, à l'exception de deux bits de service de l'octet de poids fort.

Prévalence

Vous vous demandez quels fabricants d’équipements sans fil sont les plus populaires ? Combinons la recherche dans la base de données OUI avec les données de l'échantillon n°1.

Fournisseur
Part des appareils, %

Apple
26,09

Samsung
19,79

Huawei Technologies Co. Ltd
7,80

Xiaomi Communications Co Ltd
6,83

communications mobiles sony inc
3,29

LG Électronique (Communications mobiles)
2,76

ASUSTek ORDINATEUR INC.
2,58

TCT mobile ltée
2,13

zte corporation
2,00

introuvable dans la base de données IEEE
1,92

Technologie de communication mobile Lenovo Ltd.
1,71

HTC Corporation
1,68

Fabrication Murata
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. Ltée
0,74

Lenovo Mobile Communication (Wuhan) Société Limitée
0,71

La pratique montre que plus le contingent d'abonnés au réseau sans fil dans un endroit donné est prospère, plus la part des appareils Apple est importante.

Unicité

Les adresses MAC sont-elles uniques ? En théorie, oui, puisque chaque fabricant d'appareils (propriétaire du bloc MA) est tenu de fournir une adresse unique pour chacune des cartes 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)

définissez les trois derniers octets de l'adresse MAC sur un nombre aléatoire, apparemment après chaque redémarrage de l'appareil. Il y avait 1 82 adresses de ce type dans mon échantillon n°XNUMX.

Vous pouvez bien sûr vous définir une adresse étrangère et non unique en la définissant délibérément « comme celle de votre voisin », en l’identifiant avec un renifleur ou en la choisissant au hasard. Il est également possible de définir accidentellement une adresse non unique, par exemple en restaurant une configuration de sauvegarde d'un routeur comme Mikrotik ou OpenWrt.

Que se passera-t-il s'il y a deux appareils sur le réseau avec la même adresse MAC ? Tout dépend de la logique de l'équipement réseau (routeur filaire, contrôleur réseau sans fil). Très probablement, les deux appareils ne fonctionneront pas ou fonctionneront par intermittence. Du point de vue des normes IEEE, il est proposé de résoudre la protection contre l'usurpation d'adresse MAC en utilisant, par exemple, MACsec ou 802.1X.

Que se passe-t-il si vous installez un MAC avec le septième ou le huitième bit défini sur « 1 », c'est-à-dire adresse locale ou multicast ? Très probablement, votre réseau n'y prêtera pas attention, mais formellement, une telle adresse ne sera pas conforme à la norme et il vaut mieux ne pas le faire.

Comment fonctionne la randomisation

Nous savons que pour empêcher le suivi des mouvements des personnes en scannant et en collectant les ondes, les systèmes d'exploitation des smartphones MAC utilisent depuis plusieurs années la technologie de randomisation. Théoriquement, lors du balayage des ondes à la recherche de réseaux connus, le smartphone envoie un paquet (groupe de paquets) de type requête de sonde 802.11 avec l'adresse MAC comme source :

Tout ce que vous vouliez savoir sur l'adresse MAC

La randomisation activée vous permet de spécifier non pas celle « assemblée », mais une autre adresse source de paquet, changeant à chaque cycle d'analyse, au fil du temps ou d'une autre manière. Est-ce que ça marche? Regardons les statistiques des adresses MAC collectées depuis les airs par ce que l'on appelle le « radar Wi-Fi » :

Échantillon complet
Échantillon uniquement avec zéro 7ème bit

Nombre d'enregistrements dans la base de données
3920000
305000

Numéro de bits :
% bits "1"
% 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%

La situation est complètement différente.

Le 8ème bit du premier octet de l'adresse MAC correspond toujours à la nature Unicast de l'adresse SRC dans le paquet de requête de sonde.

Le 7ème bit est mis à Local dans 92.2% des cas, soit Avec un certain degré de confiance, nous pouvons supposer qu’un nombre exactement limité d’adresses collectées sont aléatoires et que moins de 8 % sont réelles. Dans ce cas, la distribution des bits dans l'OUI pour de telles adresses réelles coïncide approximativement avec les données du tableau précédent.

Quel constructeur, selon l'OUI, possède les adresses aléatoires (c'est à dire avec le 7ème bit en « 1 ») ?

Fabricant par OUI
Partager entre toutes les adresses

introuvable dans la base de données IEEE
62.45%

Google Inc
37.54%

остальные
0.01%

De plus, toutes les adresses randomisées attribuées à Google appartiennent au même OUI avec le préfixe DA:A1:19. Quel est ce préfixe ? Regardons dedans Sources Android.

private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");

Stock Android utilise un OUI spécial enregistré lors de la recherche de réseaux sans fil, l'un des rares avec le septième bit défini.

Calculer le MAC réel à partir d'un MAC aléatoire

Voyons là :

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 octets inférieurs, est pure Random.nextLong(). « Récupération propriétaire du vrai MAC » est une arnaque. Avec un degré de confiance élevé, nous pouvons nous attendre à ce que les fabricants de téléphones Android utilisent d’autres OUI non enregistrés. Nous n'avons pas le code source iOS, mais il est fort probable qu'un algorithme similaire y soit utilisé.

Ce qui précède n'annule pas le travail d'autres mécanismes de désanonymisation des abonnés Wi-Fi, basés sur l'analyse d'autres champs de la trame de requête de sonde, ou sur la corrélation de la fréquence relative des requêtes envoyées par l'appareil. Cependant, suivre de manière fiable un abonné à l'aide de moyens externes est extrêmement problématique. Les données collectées seront plus adaptées à l’analyse de la charge moyenne/crête par lieu et par heure, sur la base de grands nombres, sans référence à des appareils ou à des personnes spécifiques. Seuls ceux « à l’intérieur », les fabricants d’OS mobiles eux-mêmes et les applications installées disposent de données précises.

Qu'est-ce qui pourrait être dangereux si quelqu'un d'autre connaissait l'adresse MAC de votre appareil ? Des attaques par déni de service peuvent être lancées pour les réseaux filaires et sans fil. De plus, pour un appareil sans fil, il est possible, avec une certaine probabilité, d'enregistrer le moment de son apparition à l'endroit où le capteur est installé. En usurpant l'adresse, vous pouvez essayer de « faire semblant » d'être votre appareil, ce qui ne peut fonctionner que si aucune mesure de sécurité supplémentaire n'est utilisée (autorisation et/ou cryptage). 99.9% des gens ici n'ont rien à craindre.

L’adresse MAC est plus compliquée qu’il n’y paraît, mais plus simple qu’elle ne pourrait l’être.

Source: habr.com

Ajouter un commentaire