Tout ce que vous vouliez savoir sur l'adresse MAC

Tout le monde sait que ce sont six octets, généralement affichés au format hexadécimal, attribués à une carte réseau en usine, et à première vue, ils sont aléatoires. Certaines personnes savent que les trois premiers octets de l'adresse sont l'identifiant du fabricant et que les trois octets restants leur sont attribués. Il est également connu que vous pouvez vous fixer une adresse arbitraire . Beaucoup ont entendu parler des «adresses aléatoires» du Wi-Fi.


Voyons ce que c'est.


Adresse MAC (adresse de contrôle d'accès aux médias) - identifiant unique attribué à une carte réseau; il est utilisé dans les réseaux standard IEEE 802, principalement Ethernet, Wi-Fi et Bluetooth. Officiellement, il est appelé «identifiant de type EUI-48». Il est évident d'après le nom que l'adresse est de 48 bits, c'est-à-dire 6 octets. Il n'y a pas de norme généralement acceptée pour écrire une adresse (par opposition à une adresse IPv4, où les octets sont toujours séparés par des points). Elle est généralement écrite sous la forme de six nombres hexadécimaux, séparés par deux points: 00: AB: CD: EF: 11: 22, bien que certains fabricants d'équipement préfèrent écrire comme 00 -AB-CD-EF-11-22 et même 00ab.cdef.1122.


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


Structure d'adresse


L'adresse se compose d'une partie de l'identifiant du fabricant, OUI, et de l'identifiant attribué par le fabricant. L'OUI (Organizationally Unique Identifier) est attribué par l'IEEE. En fait, sa longueur peut être non seulement de 3 octets (24 bits), mais de 28 ou 36 bits, à partir desquels sont formés les blocs MAC Address Block (MA) de types Large (MA-L), Medium (MA-M) et Small. (MA-S) respectivement. La taille du bloc émis, dans ce cas, sera de 24, 20, 12 bits ou 16 millions, 1 million, 4 000 morceaux d'adresses. À l'heure actuelle, environ 38 000 blocs sont distribués, ils peuvent être consultés avec de nombreux outils en ligne, par exemple IEEE ou Wireshark .


À qui appartiennent les adresses


Le simple traitement de la base de données de téléchargement IEEE accessible au public fournit de nombreuses informations. Par exemple, certaines organisations ont pris beaucoup de blocs OUI. Voici nos héros:


VendeurLe nombre de blocs / enregistrementsLe nombre d'adresses, en millions
Cisco Systems Inc88814208
Apple77212352
Samsung63610144
Huawei Technologies Co. Ltd6069696
Intel Corporation3755776
Groupe ARRIS Inc.3195104
Nokia Corporation2413856
Privé2322704
Texas Instruments2123392
zte corporation1983168
Autorité d'enregistrement IEEE1943072
Hewlett packard1492384
Hon Hai Precision1362176
TP-LINK1342144
Dell Inc.1231968
Juniper Networks1101760
Sagemcom Broadband SAS971552
Fiberhome Telecommunication Technologies Co. LTD971552
Xiaomi Communications Co Ltd881408
Guangdong Oppo Mobile Telecommunications Corp.Ltd821312

Google n'en a que 40, ce qui n'est pas surprenant: ils ne produisent pas eux-mêmes autant de périphériques réseau.


Les blocs MA ne sont pas fournis gratuitement, ils peuvent être achetés à un prix raisonnable (sans frais mensuels) pour 3000 $, 1800 $ ou 755 $, respectivement. Il est intéressant de noter que pour l'argent supplémentaire (par an), vous pouvez acheter la "dissimulation" des informations publiques sur le bloc alloué. Il y en a maintenant 232, comme on peut le voir ci-dessus.


Quand l'adresse MAC sera-t-elle épuisée?


Nous sommes tous fatigués de l'histoire vieille de dix ans selon laquelle "les adresses IPv4 sont sur le point de s'épuiser". Oui, les nouveaux blocs IPv4 ne sont plus faciles à obtenir. Il est également connu que les adresses IP sont distribuées de manière extrêmement inégale ; il y a cependant des blocs gigantesques et peu utilisés appartenant à de grandes sociétés et au gouvernement américain, sans grand espoir de leur redistribution en faveur de ceux qui en ont besoin. La prolifération de NAT, CG-NAT et IPv6 a rendu le problème du manque d'adresses publiques moins aigu.


Il y a 48 bits dans l'adresse MAC, dont 46 peuvent être considérés comme «utiles» (pourquoi? Lire la suite), ce qui donne 2 46 ou 10 14 adresses, soit 2 14 fois l'espace d'adressage IPv4.
À l'heure actuelle, environ un demi-billion d'adresses sont distribuées, soit seulement 0,73% du volume total. L'épuisement des adresses MAC est encore très, très loin.


Bit aléatoire


On peut supposer que les OUI sont distribuées de manière aléatoire, et le fournisseur attribue ensuite également des adresses à des périphériques réseau individuels. En est-il ainsi? Examinons la distribution des bits dans les bases MAC des adresses dont j'ai à ma disposition pour les appareils 802.11 collectés par les systèmes d'autorisation de travail dans les réseaux sans fil WNAM . Les adresses appartiennent à de vrais appareils connectés au Wi-Fi depuis plusieurs années dans trois pays. En outre, il existe une petite base de périphériques LAN câblés 802.3.


Nous divisons chaque adresse MAC (six octets) de chacun des échantillons en bits par octets, et examinons la fréquence d'occurrence du bit "1" dans chacune des 48 positions. Si le bit est défini de manière complètement arbitraire, la probabilité d'obtenir "1" devrait être de 50%.


Échantillon Wi-Fi n ° 1 (RF)Échantillon Wi-Fi n ° 2 (Bélarus)Échantillon Wi-Fi n ° 3 (Ouzbékistan)Échantillon LAN (RF)
Le nombre d'enregistrements dans la base de données592900012740003660001000
Numéro de bit:% bit "1"% bit "1"% bit "1"% bit "1"
148,6%49,2%50,7%28,7%
244,8%49,1%47,7%30,7%
346,7%48,3%46,8%35,8%
448,0%48,6%49,8%37,1%
545,7%46,9%47,0%32,3%
646,6%46,7%47,8%27,1%
70,3%0,3%0,2%0,7%
80,0%0,0%0,0%0,0%
948,1%50,6%49,4%38,1%
1049,1%50,2%47,4%42,7%
1150,8%50,0%50,6%42,9%
1249,0%48,4%48,2%53,7%
1347,6%47,0%46,3%48,5%
1447,5%47,4%51,7%46,8%
1548,3%47,5%48,7%46,1%
1650,6%50,4%51,2%45,3%
1749,4%50,4%54,3%38,2%
1849,8%50,5%51,5%51,9%
1951,6%53,3%53,9%42,6%
2046,6%46,1%45,5%48,4%
2151,7%52,9%47,7%48,9%
2249,2%49,6%41,6%49,8%
2351,2%50,9%47,0%41,9%
2449,5%50,2%50,1%47,5%
2547,1%47,3%47,7%44,2%
2648,6%48,6%49,2%43,9%
2749,8%49,0%49,7%48,9%
2849,3%49,3%49,7%55,1%
2949,5%49,4%49,8%49,8%
3049,8%49,8%49,7%52,1%
3149,5%49,7%49,6%46,6%
3249,4%49,7%49,5%47,5%
3349,4%49,8%49,7%48,3%
3449,7%50,0%49,6%44,9%
3549,9%50,0%50,0%50,6%
3649,9%49,9%49,8%49,1%
3749,8%50,0%49,9%51,4%
3850,0%50,0%49,8%51,8%
3949,9%50,0%49,9%55,7%
4050,0%50,0%50,0%49,5%
4149,9%50,0%49,9%52,2%
4250,0%50,0%50,0%53,9%
4350,1%50,0%50,3%56,1%
4450,1%50,0%50,1%45,8%
4550,0%50,0%50,1%50,1%
4650,0%50,0%50,1%49,5%
4749,2%49,4%49,7%45,2%
4849,9%50,1%50,7%54,6%

D'où vient cette injustice dans les bits 7 et 8? Il y a presque toujours des zéros.


En effet, la norme définit ces bits comme spéciaux ( Wikipedia ):


Le huitième bit (depuis le 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, normal (0) ou broadcast (1) (multicast ou broadcast). Pour une interaction de carte réseau unicast normale, ce bit est défini sur «0» dans tous les paquets qui lui sont envoyés.


Le septième bit (depuis le début) du premier octet de l'adresse MAC est appelé le 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 "assemblées par le fabricant" sont globalement uniques, par conséquent le nombre écrasant d'adresses MAC collectées contient 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 apparemment ce sont des blocs d'adresses MAC pour des besoins spéciaux.


Du sixième au premier bit du premier octet, les bits des deuxième et troisième octets dans les identifiants OUI, et plus encore les bits en 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 pratiquement équivalents et n'ont pas de signification technologique, à l'exception de deux bits de service de l'octet de poids fort.


Prévalence


Je me demande quels fabricants d'équipements sans fil sont les plus populaires? Combinez la recherche OUI avec des exemples de données n ° 1.


VendeurLa part des appareils,%
Apple26.09
Samsung19,79
Huawei Technologies Co. Ltd7,80
Xiaomi Communications Co Ltd6,83
Sony Mobile Communications Inc3.29
LG Electronics (communications mobiles)2,76
ORDINATEUR ASUSTek INC.2,58
TCT mobile ltd2.13
zte corporation2,00
introuvable dans la base de données IEEE1,92
Lenovo Mobile Communication Technology Ltd.1,71
HTC Corporation1,68
Murata Manufactuaring1,31
Inpro comm1,26
Microsoft Corporation1,11
Shenzhen TINNO Mobile Technology Corp.1,02
Motorola (Wuhan) Mobility Technologies Communication Co. Ltd.0,93
Nokia Corporation0,88
Shanghai Wind Technologies Co. Ltd0,74
Lenovo Mobile Communication (Wuhan) Company Limited0,71

La pratique montre que plus le contingent d'abonnés sans fil de cet endroit est prospère, plus la proportion d'appareils Apple est élevée.


Unicité


Les adresses MAC sont-elles uniques? En théorie, oui, car chacun des fabricants d'appareils (propriétaires de l'unité MA) est tenu de fournir une adresse unique pour chacun de ses adaptateurs réseau. 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 82 000 de ces adresses dans mon échantillon n ° 1.


Vous pouvez vous définir comme un étranger, pas comme une adresse unique, bien sûr, en la configurant délibérément «comme un voisin», en la définissant comme un renifleur ou en choisissant au hasard. Il est également possible de se définir accidentellement une adresse non unique en effectuant, par exemple, la restauration d'une configuration de sauvegarde d'un routeur comme Mikrotik ou OpenWrt.


Que se passe-t-il si deux appareils avec la même adresse MAC sont présents sur le réseau? 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 la falsification des adresses MAC en utilisant, par exemple, MACsec ou 802.1X.


Que se passe-t-il si vous vous mettez un MAC avec le septième ou le huitième bit réglé sur "1", c.-à-d. adresse locale ou multidiffusion? Très probablement, votre réseau n'y fera 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 éviter de suivre les mouvements des personnes en balayant l'air et en collectant les systèmes d'exploitation MAC des smartphones, nous utilisons la technologie de randomisation depuis plusieurs années. Théoriquement, lors de l'analyse de l'air à la recherche de réseaux connus, le smartphone envoie un paquet (groupe de paquets) de type sonde 802.11 avec l'adresse MAC comme source:



La randomisation incluse vous permet de spécifier non pas «flashé», mais une autre adresse source du paquet, changeant à chaque cycle de scan, dans le temps ou d'une manière ou d'une autre. Est-ce que cela fonctionne? Regardons les statistiques des adresses MAC collectées depuis les airs avec le soi-disant "Radar Wi-Fi":


Échantillon entierÉchantillonnage avec seulement 7 m de bits
Le nombre d'enregistrements dans la base de données3920000305 000
Numéro de bit:% bit "1"% bit "1"
166,1%43,3%
266,5%43,4%
331,7%43,8%
466,6%46,4%
566,7%45,7%
631,9%46,4%
792,2%0,0%
80,0%0,0%
967,2%47,5%
1032,3%45,6%
1166,9%45,3%
1232,3%46,8%
1332,6%50,1%
1433,0%56,1%
1532,5%45,0%
1667,2%48,3%
1733,2%56,9%
1833,3%56,8%
1933,3%56,3%
2066,8%43,2%
2167,0%46,4%
2232,6%50,1%
2332,9%51,2%
2467,6%52,2%
2549,8%47,8%
2650,0%50,0%
2750,0%50,2%
2850,0%49,8%
2950,0%49,4%
3050,0%50,0%
3150,0%49,7%
3250,0%49,9%
3350,0%49,7%
3450,0%49,6%
3550,0%50,1%
3650,0%49,5%
3750,0%49,9%
3850,0%49,8%
3950,0%49,9%
4050,0%50,1%
4150,0%50,2%
4250,0%50,2%
4350,0%50,1%
4450,0%50,1%
4550,0%50,0%
4650,0%49,8%
4750,0%49,8%
4850,1%50,9%

L'image est complètement différente.


Le 8e bit du premier octet de l'adresse MAC correspond toujours à la nature Unicast de l'adresse SRC dans le paquet de demande de sonde.


Le 7e bit dans 92,2% des cas est réglé sur Local, c'est-à-dire avec une certaine certitude, nous pouvons supposer qu'autant d'adresses collectées sont aléatoires et moins de 8% sont réelles. De plus, 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.


Selon OUI, à quel fabricant appartiennent les adresses randomisées (c'est-à-dire avec le 7e bit en «1»)?


Fabricant par OUIPartager entre toutes les adresses
introuvable dans la base de données IEEE62,45%
Google Inc.37,54%
le reste0,01%

De plus, toutes les adresses randomisées attribuées à Google appartiennent à une OUI avec le préfixe DA: A1: 19 . Quel est ce préfixe? Regardons le code source pour Android .


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

L'Android stock utilise une OUI spéciale et enregistrée, l'une des rares avec le septième bit défini, dans la recherche de réseaux sans fil.


Calculer le MAC réel à partir du hasard


Regardons là-bas:


 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 au moins, est pure Random.nextLong () . «Récupération brevetée d'un véritable MAS» - une fraude. Avec un haut degré de certitude, on peut s'attendre à ce que les fabricants de téléphones Android utilisent d'autres OUI non enregistrés. Nous n'avons pas de sources iOS, mais un algorithme similaire y est probablement utilisé.


Ce qui précède n'annule pas le fonctionnement d'autres mécanismes de désanonymisation des abonnés Wi-Fi, sur la base de l'analyse d'autres champs de la trame de demande de sonde, ou de la corrélation de la fréquence relative des demandes envoyées par l'appareil. Cependant, le suivi fiable d'un abonné par des moyens externes est extrêmement problématique. Les données collectées sont plus adaptées à l'analyse de la charge moyenne / maximale par emplacement et par heure, sur la base d'un grand nombre, sans référence à des appareils et des personnes spécifiques. Des données précises ne sont destinées qu'à ceux qui sont "à l'intérieur", les fabricants d'OS mobiles eux-mêmes, les applications installées.


Qu'est-ce qui pourrait être dangereux si quelqu'un d'autre découvre l'adresse MAC de votre appareil? Pour les réseaux câblés et sans fil, une attaque par déni de service peut être organisée. Pour un appareil sans fil, en outre, avec une certaine probabilité, il est possible de fixer le moment d'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 des mesures de sécurité supplémentaires ne sont pas appliquées (autorisation et / ou cryptage). 99,9% des gens d'ici n'ont rien à craindre.


L'adresse MAC est plus complexe qu'il n'y paraît, mais plus simple qu'elle ne pourrait l'être.

Source: https://habr.com/ru/post/fr483670/


All Articles