Iedereen weet dat deze zes bytes, meestal weergegeven in hexadecimaal formaat, in de fabriek aan de netwerkkaart zijn toegewezen en op het eerste gezicht willekeurig zijn. Sommigen weten dat de eerste drie bytes van het adres de identificatie van de fabrikant zijn en dat de overige drie bytes daaraan zijn toegewezen. Het is ook bekend dat je zelf kunt instellen willekeurig adres. Velen hebben gehoord over "willekeurige adressen" in Wi-Fi.
Laten we eens uitzoeken wat het is.
MAC-adres (Media Access Control Address) is een unieke identificatiecode die aan een netwerkadapter wordt toegewezen en wordt gebruikt in IEEE 802-standaardnetwerken, met name Ethernet, wifi en Bluetooth. Officieel heet het "EUI-48 type identifier". Zoals de naam al doet vermoeden, is het adres 48 bits lang, d.w.z. 6 bytes. Er is geen algemeen geaccepteerde standaard voor het schrijven van het adres (in tegenstelling tot het IPv4-adres, waarbij octetten altijd door punten worden gescheiden). Het wordt meestal geschreven als zes hexadecimale getallen, gescheiden door een dubbele punt: 00:AB:CD:EF:11:22, hoewel sommige fabrikanten de voorkeur geven aan 00-AB-CD-EF-11-22 en zelfs 00ab.cdef.1122.
Исторически адреса прошивались в ПЗУ чипсета сетевой карты без возможности их модификации без флеш-программатора, но в настоящее время адрес может быть изменен программно, из операционной системы. Задать вручную МАС адрес сетевой карте можно в Linux и MacOS (всегда), Windows (почти всегда, если позволит драйвер), Android (только рутованный); с iOS (без рута) подобный трюк невозможен.
Adresstructuur
Een adres bestaat uit een fabrikant-ID (OUI) en een door de fabrikant toegewezen ID. Toewijzing van OUI-ID's (Organizationally Unique Identifier) IEEE-organisatie. De lengte kan niet alleen 3 bytes (24 bits) zijn, maar ook 28 of 36 bits, waaruit blokken (MAC Address Block, MA) van adressen van respectievelijk de typen Large (MA-L), Medium (MA-M) en Small (MA-S) worden gevormd. De grootte van het uitgegeven blok zal in dit geval 24, 20, 12 bits of 16 miljoen, 1 miljoen, 4 duizend adressen zijn. Momenteel zijn er ongeveer 38 duizend blokken verspreid, die via talloze online tools kunnen worden bekeken, bijvoorbeeld op of .
Wie is de eigenaar van de adressen?
Eenvoudige verwerking van openbaar beschikbare IEEE geeft heel wat informatie. Sommige organisaties hebben bijvoorbeeld veel OUI-blokken voor zichzelf overgenomen. Dit zijn onze helden:
Leverancier
Aantal blokken/records
Aantal adressen, miljoen
Cisco Systems Inc.
888
14208
Appel
772
12352
Samsung
636
10144
Huawei Technologies Co.Ltd
606
9696
Intel Corporation
375
5776
ARRIS Groep Inc.
319
5104
Nokia Corporation
241
3856
Privé
232
2704
Texas Instruments
212
3392
zte corporation
198
3168
IEEE Registratie Autoriteit
194
3072
Hewlett Packard
149
2384
Hon Hai-precisie
136
2176
TP-LINK
134
2144
Dell Inc.
123
1968
Juniper Networks
110
1760
Sagemcom Breedband SAS
97
1552
Fiberhome Telecommunicatietechnologieën Co. LTD
97
1552
Xiaomi Communications Co Ltd
88
1408
Guangdong Oppo Mobile Telecommunications Corp. Ltd
82
1312
Google heeft er maar 40, wat niet verrassend is: het bedrijf produceert zelf niet veel netwerkapparaten.
MA-blokken worden niet gratis aangeboden; ze kunnen voor een schappelijke prijs (zonder abonnementskosten) worden aangeschaft voor respectievelijk $ 3000, $ 1800 of $ 755. Interessant is dat je voor een extra bedrag (per jaar) openbare informatie over het toegewezen blok kunt "verbergen". Er zijn er momenteel 232, zoals je hierboven kunt zien.
Wanneer MAC-adressen opraken
We zijn allemaal behoorlijk moe van de verhalen die al 10 jaar de ronde doen over "IPv4-adressen die bijna op zijn". Ja, het is niet langer eenvoudig om nieuwe IPv4-blokken te krijgen. Tegelijkertijd is het bekend dat IP-adressen ; er zijn gigantische en onderbenutte blokken in handen van grote bedrijven en Amerikaanse overheidsinstellingen, hoewel er weinig hoop is dat ze kunnen worden herverdeeld onder degenen die ze nodig hebben. De verspreiding van NAT, CG-NAT en IPv6 heeft het probleem van het tekort aan publieke adressen minder acuut gemaakt.
Het MAC-adres heeft 48 bits, waarvan er 46 als "nuttig" kunnen worden beschouwd (waarom? lees verder). Dit resulteert in 246 of 1014 adressen, wat 214 keer meer is dan de IPv4-adresruimte.
Er zijn momenteel ongeveer een half biljoen adressen toegewezen, oftewel slechts 0.73% van het totaal. We zijn nog lang niet door onze MAC-adressen heen.
Willekeur van bits
We kunnen ervan uitgaan dat OUI's willekeurig verdeeld zijn en dat de leverancier vervolgens adressen toewijst aan individuele netwerkapparaten, net zo willekeurig. Klopt dit? Laten we eens kijken naar de bitverdeling in de MAC-adresdatabases van 802.11-apparaten die ik heb, verzameld door werkende autorisatiesystemen in draadloze netwerken. De adressen behoren tot echte apparaten die al jarenlang in drie landen met wifi zijn verbonden. Daarnaast is er een kleine database met 802.3-bekabelde LAN-apparaten.
Laten we elk MAC-adres (zes bytes) van elk sample opsplitsen in bits, byte voor byte, en kijken naar de frequentie van bit "1" in elk van de 48 posities. Als de bit volledig willekeurig is ingesteld, is de kans op "1" 50%.
Wi-Fi-monster #1 (RF)
Wi-Fi-monster #2 (Wit-Rusland)
Wi-Fi-monster #3 (Oezbekistan)
LAN-bemonstering (RF)
Aantal records in de database
5929000
1274000
366000
1000
Bitnummer:
% bit "1"
% bit "1"
% bit "1"
% bit "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%
Waar komt die oneerlijkheid in 7 en 8 bits vandaan? Er staan bijna altijd nullen.
De standaard definieert deze bits immers als speciaal ():

De achtste (vanaf het begin) bit van de eerste byte van het MAC-adres wordt de unicast/multicast-bit genoemd en bepaalt welk type frame met dit adres wordt verzonden: normaal (0) of broadcast (1) (multicast of broadcast). Voor normale unicast-interactie van de netwerkadapter wordt deze bit in alle verzonden pakketten op "0" gezet.
De zevende (vanaf het begin) bit van de eerste byte van het MAC-adres wordt de U/L-bit (Universal/Local) genoemd en bepaalt of het adres wereldwijd uniek (0) of lokaal uniek (1) is. Standaard zijn alle adressen die "door de fabrikant zijn geprogrammeerd" wereldwijd uniek, waardoor de overgrote meerderheid van de verzamelde MAC-adressen de zevende bit op "0" heeft staan. In de tabel met toegewezen OUI-identifiers hebben slechts ongeveer 130 vermeldingen de U/L-bit "1", en blijkbaar zijn dit blokken MAC-adressen voor speciale doeleinden.
De zesde tot en met de eerste bit van de eerste byte, de tweede en derde bytes van de OUI-identificatoren en vooral de bits in de vierde tot en met zesde byte van het door de fabrikant toegewezen adres, zijn min of meer gelijkmatig verdeeld.
In het echte MAC-adres van de netwerkadapter zijn de bits dus feitelijk equivalent en hebben ze geen technologische betekenis, met uitzondering van twee servicebits van de meest significante byte.
Распространенность
Ik vraag me af welke fabrikanten van draadloze apparatuur het populairst zijn. Laten we de OUI-database-zoekopdracht combineren met de gegevens uit steekproef #1.
Leverancier
Aandeel apparaten, %
Appel
26,09
Samsung
19,79
Huawei Technologies Co.Ltd
7,80
Xiaomi Communications Co Ltd
6,83
Sony mobiele communicatie inc
3,29
LG Electronics (Mobiele communicatie)
2,76
ASUSTek COMPUTER INC.
2,58
TCT mobiel ltd
2,13
zte corporation
2,00
niet gevonden in IEEE-database
1,92
Lenovo Mobiele Communicatietechnologie Ltd.
1,71
HTC Corporation
1,68
Murata Manufacturing
1,31
InPro Comm
1,26
Microsoft Corporation
1,11
Shenzhen TINNO Mobiele Technologie Corp.
1,02
Motorola (Wuhan) Mobility Technologies Communicatie Co. Ltd.
0,93
Nokia Corporation
0,88
Shanghai Wind Technologies Co. Ltd
0,74
Lenovo Mobile Communication (Wuhan) Company Limited
0,71
Uit ervaring blijkt dat hoe welvarender de groep draadloze netwerkabonnees op een bepaalde locatie is, hoe groter het aandeel Apple-apparaten is.
Uniciteit
Zijn MAC-adressen uniek? In theorie wel, aangezien elke apparaatfabrikant (eigenaar van het MA-blok) verplicht is een uniek adres te verstrekken voor elke netwerkadapter die hij produceert. Sommige chipfabrikanten, namelijk:
- 00:0A:F5 Airgo Networks, Inc. (nu Qualcomm)
- 00:08:22 InPro Comm (nu MediaTek)
Stel de laatste drie bytes van het MAC-adres in op een willekeurig getal, blijkbaar na elke herstart van het apparaat. Er waren 1 van dergelijke adressen in mijn voorbeeld #82.
Je kunt natuurlijk een vreemd, niet-uniek adres instellen door het doelbewust in te stellen als "net als dat van je buurman", door het te detecteren met een sniffer, of door er willekeurig een te kiezen. Het is ook mogelijk om per ongeluk een niet-uniek adres in te stellen, bijvoorbeeld door een back-up van de configuratie van een router zoals Mikrotik of OpenWrt terug te zetten.
Wat gebeurt er als er twee apparaten met hetzelfde MAC-adres in het netwerk zijn? Het hangt allemaal af van de logica van de netwerkapparatuur (bekabelde router, draadloze netwerkcontroller). Hoogstwaarschijnlijk zullen beide apparaten niet of met tussenpozen werken. Vanuit het oogpunt van IEEE-standaarden wordt voorgesteld om de beveiliging tegen MAC-adresvervalsing te regelen met bijvoorbeeld MACsec of 802.1X.
Wat als u een MAC instelt met het zevende of achtste bit op "1", dus een lokaal of multicastadres? Uw netwerk zal hier waarschijnlijk geen aandacht aan besteden, maar formeel voldoet zo'n adres niet aan de standaard, en het is beter om dit niet te doen.
Hoe randomisatie werkt
We weten dat smartphonebesturingssystemen al jaren gebruikmaken van randomisatietechnologie om te voorkomen dat de bewegingen van mensen worden gevolgd door het scannen van de ether en het verzamelen van MAC-adressen. In theorie verstuurt een smartphone, wanneer hij de ether scant naar bekende netwerken, een pakket (of een groep pakketten) van het type 802.11 probe request met een MAC-adres als bron:

Met ingeschakelde randomisatie kunt u niet het "vaste" adres opgeven, maar een ander adres van de pakketbron, dat met elke scancyclus, in de loop van de tijd of op een andere manier verandert. Werkt dit? Laten we eens kijken naar de statistieken van MAC-adressen die via de lucht worden verzameld door de zogenaamde "Wi-Fi Radar":
Het volledige monster
Selectie met alleen nul 7e bit
Aantal records in de database
3920000
305000
Bitnummer:
% bit "1"
% bit "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%
Het plaatje ziet er totaal anders uit.
De 8e bit van de eerste byte van het MAC-adres komt nog steeds overeen met het unicastkarakter van het SRC-adres in het probe request-pakket.
De 7e bit is in 92.2% van de gevallen ingesteld op Lokaal. We kunnen er dus met een redelijke mate van zekerheid van uitgaan dat precies zoveel van de verzamelde adressen willekeurig zijn en dat minder dan 8% echt is. De verdeling van bits in de OUI voor dergelijke echte adressen komt ongeveer overeen met de gegevens in de vorige tabel.
Welke fabrikant bezit volgens OUI willekeurige adressen (d.w.z. met het 7e bit ingesteld op "1")?
Fabrikant door OUI
Delen tussen alle adressen
niet gevonden in IEEE-database
62.45%
Google Inc
37.54%
de rest
0.01%
In dit geval behoren alle willekeurige adressen die aan Google zijn toegewezen tot één OUI met het voorvoegsel DA:A1:19Wat is dit voorvoegsel? Laten we eens kijken naar .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");Stock Android gebruikt een speciale, geregistreerde OUI om te zoeken naar draadloze netwerken. Eén van de weinige besturingssystemen beschikt over de zevende bit.
Bereken de werkelijke MAC uit de willekeurige
Laten we daar eens kijken:
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;
}
Het gehele adres, of de onderste drie bytes, zijn schoon Willekeurig.volgendeLong(). «Патентованное восстановление реального МАС» — надувательство. С большой долей уверенности можно ожидать, что производители Android-телефонов применяют и другие, не зарегистрированные OUI. Исходников iOS у нас нет, но скорее всего там применен схожий алгоритм.
Het bovenstaande doet niets af aan het werk van andere mechanismen voor deanonimisering van wifi-abonnees, gebaseerd op de analyse van andere velden van het probe request frame, of de correlatie met de relatieve frequentie van de verzoeken die door het apparaat worden verzonden. Het is echter uiterst problematisch om een abonnee betrouwbaar te volgen met externe middelen. De verzamelde gegevens zijn geschikter voor het analyseren van de gemiddelde/piekbelasting per locatie en tijd, op basis van grote aantallen, zonder verwijzing naar specifieke apparaten en personen. Alleen degenen "in" de organisatie beschikken over accurate gegevens: de fabrikanten van mobiele besturingssystemen zelf en de geïnstalleerde applicaties.
Что может быть опасного в том, что кто-то другой узнает МАС-адрес вашего устройства? Для проводных и беспроводных сетей можно организовать атаку «отказ в обслуживании». Для беспроводного устройства, к тому же, с некоторой вероятностью можно зафиксировать момент появления в месте, где установлен сенсор. Подменой адреса можно попробовать «представиться» вашим устройством, что может сработать, только если не применяется дополнительных средств защиты (авторизация и/или шифрование). 99.9% людей здесь не о чем волноваться.
Het MAC-adres is ingewikkelder dan het lijkt, maar eenvoudiger dan het kan zijn.
Bron: www.habr.com
