Alles wat je wilde weten over het MAC-adres

Alles wat je wilde weten over het MAC-adresIedereen weet dat deze zes bytes, meestal weergegeven in hexadecimaal formaat, in de fabriek aan de netwerkkaart zijn toegewezen en schijnbaar willekeurig zijn. Sommige mensen weten dat de eerste drie bytes van het adres de fabrikant-ID zijn en dat de overige drie bytes eraan zijn toegewezen. Het is ook bekend dat je dit zelf kunt instellen willekeurig adres. Veel mensen hebben gehoord over “willekeurige adressen” in Wi-Fi.

Laten we uitzoeken wat het is.

MAC-adres (media access control-adres) is een unieke identificatie die is toegewezen aan een netwerkadapter en wordt gebruikt in netwerken met IEEE 802-standaarden, voornamelijk Ethernet, Wi-Fi en Bluetooth. Officieel heet het de "EUI-48 type identifier". Uit de naam blijkt duidelijk dat het adres 48 bits lang is, d.w.z. 6 bytes. Er bestaat geen algemeen aanvaarde standaard voor het schrijven van een adres (in tegenstelling tot een IPv4-adres, waar de 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 van apparatuur de voorkeur geven aan de notatie 00 -AB-CD-EF-11-22 en zelfs 00ab.cdef.1122.

Historisch gezien werden adressen in het ROM van de netwerkkaartchipset geflasht zonder de mogelijkheid om ze te wijzigen zonder een flashprogrammeur, maar tegenwoordig kan het adres programmatisch worden gewijzigd vanuit het besturingssysteem. Je kunt het MAC-adres van een netwerkkaart handmatig instellen in Linux en MacOS (altijd), Windows (bijna altijd, als de driver dit toelaat), Android (alleen geroot); Met iOS (zonder root) is zo'n truc onmogelijk.

Adresstructuur

Het adres bestaat uit een deel van de identificatiecode van de fabrikant, OUI, en een identificatiecode die door de fabrikant is toegewezen. Toewijzing van OUI-identificatoren (Organizationally Unique Identifier). занимается IEEE-organisatie. In feite kan de lengte niet alleen 3 bytes (24 bits) zijn, maar ook 28 of 36 bits, waaruit blokken (MAC Address Block, MA) van adressen van het type Large (MA-L), Medium (MA-M) en Er worden respectievelijk kleine gevormd (MA-S). De grootte van het uitgegeven blok zal in dit geval 24, 20, 12 bits of 16 miljoen, 1 miljoen, 4 duizend adressen zijn. Er zijn momenteel ongeveer 38 blokken verspreid, deze kunnen bijvoorbeeld worden bekeken met behulp van tal van online tools IEEE of Wireshark.

Wie is eigenaar van de adressen?

Gemakkelijke verwerking van openbaar beschikbaar databases uitladen IEEE biedt behoorlijk wat informatie. Sommige organisaties hebben bijvoorbeeld veel OUI-blokken voor zichzelf genomen. Dit zijn onze helden:

Leverancier
Aantal blokken/records
Aantal adressen, miljoen

Cisco Systems Inc.
888
14208

Apple
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 bedrijf
198
3168

IEEE-registratieautoriteit
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 Telecommunication Technologies Co. LTD
97
1552

Xiaomi Communications Co Ltd
88
1408

Guangdong Oppo Mobiele Telecommunicatie Corp.Ltd
82
1312

Google heeft er maar 40, en dat is niet verrassend: ze produceren zelf niet veel netwerkapparaten.

MA-blokken worden niet gratis aangeboden, ze kunnen voor een redelijke prijs (zonder abonnementskosten) worden gekocht voor respectievelijk $3000, $1800 of $755. Interessant is dat je voor extra geld (per jaar) het "verbergen" van openbare informatie over het toegewezen blok kunt kopen. Er zijn er nu 232, zoals hierboven te zien is.

Wanneer zullen we geen MAC-adressen meer hebben?

We zijn allemaal behoorlijk moe van de verhalen die al tien jaar de ronde doen en zeggen dat “IPv10-adressen op het punt staan ​​op te raken.” Ja, nieuwe IPv4-blokken zijn niet langer eenvoudig te verkrijgen. Het is bekend dat IP-adressen uiterst ongelijk verdeeld; Er zijn echter gigantische en onderbenutte blokken die eigendom zijn van grote bedrijven en Amerikaanse overheidsinstanties, met weinig hoop op herverdeling ervan onder mensen in nood. De proliferatie van NAT, CG-NAT en IPv6 heeft het probleem van een tekort aan publieke adressen minder acuut gemaakt.

Een MAC-adres heeft 48 bits, waarvan er 46 als “nuttig” kunnen worden beschouwd (waarom? lees verder), wat 246 of 1014 adressen oplevert, wat 214 keer meer is dan de IPv4-adresruimte.
Momenteel zijn ongeveer een half biljoen adressen verspreid, of slechts 0.73% van het totale volume. We zijn nog steeds heel erg ver verwijderd van een tekort aan MAC-adressen.

Willekeurige stukjes

Er kan worden aangenomen dat de OUI's willekeurig worden verdeeld, en dat de leverancier vervolgens ook willekeurig adressen toewijst aan individuele netwerkapparaten. Is dat zo? Laten we eens kijken naar de verdeling van bits in de databases met MAC-adressen van 802.11-apparaten die ik tot mijn beschikking heb, verzameld door werkende autorisatiesystemen in draadloze netwerken WNAM. De adressen behoren tot echte apparaten die gedurende meerdere jaren in drie landen verbinding hebben gemaakt met wifi. Daarnaast is er een kleine database met 802.3 bekabelde LAN-apparaten.

Laten we elk MAC-adres (zes bytes) van elk van de samples opsplitsen in bits, byte voor byte, en kijken naar de frequentie waarmee de “1”-bit op elk van de 48 posities voorkomt. Als de bit op een volledig willekeurige manier wordt ingesteld, moet de kans op een “1” 50% zijn.

Wi-Fi-selectie nr. 1 (RF)
Wi-Fi-voorbeeld nr. 2 (Wit-Rusland)
Wi-Fi-selectie nr. 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%

Waarom zo'n onrechtvaardigheid in 7 en 8 bits? Er zijn bijna altijd nullen.

De standaard definieert deze bits inderdaad als speciaal (Wikipedia):
Alles wat je wilde weten over het MAC-adres

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 (frame) met dit adres wordt verzonden, regulier (0) of broadcast (1) (multicast of uitzending). Voor normale unicast-netwerkadaptercommunicatie wordt deze bit ingesteld op "0" in alle pakketten die ernaar worden verzonden.

De zevende bit (vanaf het begin) van de eerste byte van het MAC-adres wordt de U/L-bit (Universal/Local) genoemd en bepaalt of het adres globaal uniek (0) of lokaal uniek (1) is. Standaard zijn alle “door de fabrikant gestikte” adressen globaal uniek, dus de overgrote meerderheid van de verzamelde MAC-adressen bevat de zevende bit ingesteld op “0”. In de tabel met toegewezen OUI-identificatoren hebben slechts ongeveer 130 vermeldingen een U/L-bit van “1”, en blijkbaar zijn dit blokken MAC-adressen voor speciale behoeften.

Van de zesde tot de eerste bits van de eerste byte worden de bits van de tweede en derde bytes in de OUI-identificatoren, en nog meer de bits in de 4-6 bytes van het door de fabrikant toegewezen adres, 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 hoge byte.

overwicht

Vraagt ​​u zich af welke fabrikanten van draadloze apparatuur het populairst zijn? Laten we de zoekopdracht in de OUI-database combineren met de gegevens uit monster nr. 1.

Leverancier
Aandeel apparaten, %

Apple
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 mobiele ltd
2,13

zte bedrijf
2,00

niet gevonden in de IEEE-database
1,92

Lenovo mobiele communicatietechnologie Ltd.
1,71

HTC Corporation
1,68

Murata-productie
1,31

InPro Comm
1,26

Microsoft Corporation
1,11

Shenzhen TINNO Mobiele Technologie Corp.
1,02

Motorola (Wuhan) Mobility Technologies Communication Co. Ltd.
0,93

Nokia Corporation
0,88

Shanghai Wind Technologies Co. Ltd
0,74

Lenovo Mobiele Communicatie (Wuhan) Company Limited
0,71

De praktijk leert dat hoe welvarender het contingent 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 (MA-blokeigenaar) een uniek adres moet opgeven voor elk van de netwerkadapters die het produceert. Er zijn echter enkele 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 duizend van dergelijke adressen in mijn steekproef nr. 82.

Je kunt jezelf natuurlijk een buitenlands, niet-uniek adres instellen door het doelbewust in te stellen “zoals dat van je buurman”, door het te identificeren met een sniffer, of door het willekeurig te kiezen. Het is ook mogelijk dat u per ongeluk een niet-uniek adres voor uzelf instelt, door bijvoorbeeld een back-upconfiguratie van een router als Mikrotik of OpenWrt te herstellen.

Wat gebeurt er als er twee apparaten op het netwerk zijn met hetzelfde MAC-adres? Het hangt allemaal af van de logica van de netwerkapparatuur (bedrade router, draadloze netwerkcontroller). Hoogstwaarschijnlijk zullen beide apparaten niet werken of met tussenpozen werken. Vanuit het oogpunt van IEEE-standaarden wordt voorgesteld om de bescherming tegen MAC-adresspoofing op te lossen met behulp van bijvoorbeeld MACsec of 802.1X.

Wat als u een MAC installeert met de zevende of achtste bit ingesteld op “1”, d.w.z. lokaal of multicast-adres? Hoogstwaarschijnlijk zal uw netwerk hier geen aandacht aan besteden, maar formeel voldoet een dergelijk adres niet aan de norm en kunt u dit beter niet doen.

Hoe randomisatie werkt

We weten dat MAC-besturingssystemen voor smartphones al jaren gebruik maken van randomisatietechnologie om te voorkomen dat de bewegingen van mensen worden gevolgd door het scannen en verzamelen van ethergolven. Theoretisch verzendt de smartphone bij het scannen van de ether op zoek naar bekende netwerken een pakket (groep pakketten) van het 802.11-sondeverzoektype met het MAC-adres als bron:

Alles wat je wilde weten over het MAC-adres

Met ingeschakelde randomisatie kunt u niet het “gehechte” adres opgeven, maar een ander pakketbronadres, dat bij elke scancyclus, in de loop van de tijd of op een andere manier verandert. Werkt het? Laten we eens kijken naar de statistieken van MAC-adressen die uit de lucht worden verzameld door de zogenaamde "Wi-Fi Radar":

Hele monster
Alleen monster met 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 beeld is compleet anders.

De 8e bit van de eerste byte van het MAC-adres komt nog steeds overeen met de Unicast-aard van het SRC-adres in het probe-verzoekpakket.

In 7% van de gevallen wordt het 92.2e bit ingesteld op Lokaal. Met een behoorlijke mate van vertrouwen kunnen we aannemen dat precies zo veel van de verzamelde adressen willekeurig zijn, en dat minder dan 8% echt is. In dit geval valt de verdeling van bits in de OUI voor dergelijke reële adressen ongeveer samen met de gegevens in de voorgaande tabel.

Welke fabrikant is volgens de OUI eigenaar van de gerandomiseerde adressen (d.w.z. met het 7e bit in “1”)?

Fabrikant door OUI
Deel onder alle adressen

niet gevonden in de IEEE-database
62.45%

Google Inc
37.54%

de rest
0.01%

Bovendien behoren alle gerandomiseerde adressen die aan Google zijn toegewezen tot dezelfde OUI met het voorvoegsel DA:A1:19. Wat is dit voorvoegsel? Laten we naar binnen kijken Android-bronnen.

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

Stock Android gebruikt een speciale, geregistreerde OUI bij het zoeken naar draadloze netwerken, een van de weinige met de zevende bit ingesteld.

Bereken echte MAC uit 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 volledige adres, of de onderste drie bytes, is puur Willekeurig.volgendeLong(). “Proprietary recovery of real MAC” is oplichterij. Met een hoge mate van vertrouwen kunnen we verwachten dat fabrikanten van Android-telefoons andere, niet-geregistreerde OUI's gebruiken. We hebben de iOS-broncode niet, maar hoogstwaarschijnlijk wordt daar een soortgelijk algoritme gebruikt.

Het bovenstaande annuleert niet het werk van andere mechanismen voor het de-anonimiseren van Wi-Fi-abonnees, gebaseerd op de analyse van andere velden van het probe-verzoekframe, of correlatie van de relatieve frequentie van verzoeken die door het apparaat worden verzonden. Het betrouwbaar volgen van een abonnee met behulp van externe middelen is echter uiterst problematisch. De verzamelde gegevens zullen geschikter zijn voor het analyseren van de gemiddelde/piekbelasting per locatie en tijd, op basis van grote aantallen, zonder verwijzing naar specifieke apparaten en mensen. Alleen degenen ‘binnenin’, de fabrikanten van mobiele besturingssystemen zelf, en de geïnstalleerde applicaties beschikken over nauwkeurige gegevens.

Wat kan gevaarlijk zijn als iemand anders het MAC-adres van uw apparaat kent? Denial of service-aanvallen kunnen worden uitgevoerd voor bekabelde en draadloze netwerken. Voor een draadloos apparaat is het bovendien met enige waarschijnlijkheid mogelijk om het moment van verschijning vast te leggen op de plaats waar de sensor is geïnstalleerd. Door het adres te spoofen, kunt u proberen zich voor te doen als uw apparaat, wat alleen kan werken als er geen aanvullende beveiligingsmaatregelen worden gebruikt (autorisatie en/of encryptie). 99.9% van de mensen hier hoeft zich nergens zorgen over te maken.

Het MAC-adres is ingewikkelder dan het lijkt, maar eenvoudiger dan het zou kunnen zijn.

Bron: www.habr.com

Voeg een reactie