Alt hvad du ville vide om MAC-adressen

Alt hvad du ville vide om MAC-adressenAlle ved, at disse seks bytes, normalt vist i hexadecimalt format, er tildelt netværkskortet på fabrikken og er tilsyneladende tilfældige. Nogle mennesker ved, at de første tre bytes af adressen er producentens ID, og ​​de resterende tre bytes er tildelt dem. Det er også kendt, at du selv kan indstille vilkårlig adresse. Mange mennesker har hørt om "tilfældige adresser" i Wi-Fi.

Lad os finde ud af, hvad det er.

MAC-adresse (medieadgangskontroladresse) er en unik identifikator, der tildeles en netværksadapter, der bruges i netværk af IEEE 802-standarder, hovedsageligt Ethernet, Wi-Fi og Bluetooth. Officielt kaldes det "EUI-48 type identifikator". Af navnet fremgår det tydeligt, at adressen er 48 bit lang, dvs. 6 bytes. Der er ingen almindeligt accepteret standard for at skrive en adresse (i modsætning til en IPv4-adresse, hvor oktetter altid er adskilt af prikker). Det skrives normalt som seks hexadecimale tal adskilt af et kolon: 00:AB:CD:EF:11: 22, selvom nogle udstyrsproducenter foretrækker notationen 00 -AB-CD-EF-11-22 og endda 00ab.cdef.1122.

Historisk set blev adresser flashet ind i ROM'en på netværkskortchipsættet uden mulighed for at ændre dem uden en flash-programmør, men i dag kan adressen ændres programmatisk fra operativsystemet. Du kan manuelt indstille MAC-adressen på et netværkskort i Linux og MacOS (altid), Windows (næsten altid, hvis driveren tillader det), Android (kun rootet); Med iOS (uden root) er et sådant trick umuligt.

Adressestruktur

Adressen består af en del af producentens identifikator, OUI, og en identifikator tildelt af fabrikanten. Tildeling af OUI (Organizationally Unique Identifier) ​​identifikatorer engageret i IEEE organisation. Faktisk kan dens længde ikke kun være 3 bytes (24 bit), men 28 eller 36 bit, hvorfra blokke (MAC Address Block, MA) af adresser af typerne Large (MA-L), Medium (MA-M) og Små dannes (MA-S) hhv. Størrelsen af ​​den udstedte blok vil i dette tilfælde være 24, 20, 12 bit eller 16 millioner, 1 million, 4 tusind adresser. Der er i øjeblikket omkring 38 tusinde blokke distribueret, de kan ses ved hjælp af adskillige onlineværktøjer, for eksempel IEEE eller Wireshark.

Hvem ejer adresserne?

Nem behandling af offentligt tilgængelige aflæsning af databaser IEEE giver en hel del information. For eksempel har nogle organisationer taget mange OUI-blokke for sig selv. Her er vores helte:

Sælger
Antal blokke/poster
Antal adresser, mio

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

Privat
232
2704

Texas Instruments
212
3392

zte corporation
198
3168

IEEE Registration Authority
194
3072

Hewlett Packard
149
2384

Hon Hai Præcision
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Juniper Networks
110
1760

Sagemcom bredbånd SAS
97
1552

Fiberhome Telecommunication Technologies Co. LTD
97
1552

Xiaomi Communications Co Ltd
88
1408

Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312

Google har kun 40 af dem, og det er ikke overraskende: de selv producerer ikke mange netværksenheder.

MA-blokke leveres ikke gratis, de kan købes til en rimelig pris (uden abonnementsgebyr) for henholdsvis $3000, $1800 eller $755. Interessant nok kan du for yderligere penge (pr. år) købe "skjul" af offentlige oplysninger om den tildelte blok. Dem er der nu 232 af, som det kan ses ovenfor.

Hvornår løber vi tør for MAC-adresser?

Vi er alle ret trætte af de historier, der har stået på i 10 år om, at "IPv4-adresser er ved at løbe tør." Ja, nye IPv4-blokke er ikke længere nemme at få fat i. Det er kendt, at IP-adresser ekstremt ujævnt fordelt; Der er gigantiske og underudnyttede blokke, der ejes af store virksomheder og amerikanske regeringsorganer, dog med ringe håb om at omfordele dem til de nødlidende. Udbredelsen af ​​NAT, CG-NAT og IPv6 har gjort problemet med mangel på offentlige adresser mindre akut.

En MAC-adresse har 48 bit, hvoraf 46 kan betragtes som "nyttige" (hvorfor? læse videre), hvilket giver 246 eller 1014 adresser, hvilket er 214 gange mere end IPv4-adresserummet.
I øjeblikket er cirka en halv billion adresser blevet distribueret, eller kun 0.73 % af den samlede mængde. Vi er stadig meget, meget langt fra at løbe tør for MAC-adresser.

Tilfældighedsstykker

Det kan antages, at OUI'erne er fordelt tilfældigt, og leverandøren tildeler da også tilfældigt adresser til individuelle netværksenheder. Er det sådan? Lad os se på fordelingen af ​​bits i databaserne af MAC-adresser på 802.11-enheder til min rådighed, indsamlet af fungerende autorisationssystemer i trådløse netværk WNAM. Adresserne tilhører rigtige enheder, der har tilsluttet sig Wi-Fi over flere år i tre lande. Derudover er der en lille database med 802.3 kablede LAN-enheder.

Lad os opdele hver MAC-adresse (seks bytes) for hver af samplerne i bits, byte for byte, og se på hyppigheden af ​​forekomsten af ​​"1"-bitten i hver af de 48 positioner. Hvis bit er sat på en fuldstændig vilkårlig måde, så skal sandsynligheden for at få en "1" være 50%.

Wi-Fi valg nr. 1 (RF)
Wi-Fi prøve nr. 2 (Hviderusland)
Wi-Fi valg nr. 3 (Usbekistan)
LAN-sampling (RF)

Antal poster i databasen
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 %

Hvorfor sådan uretfærdighed i 7 og 8 bit? Der er næsten altid nuller.

Faktisk definerer standarden disse bits som specielle (Wikipedia):
Alt hvad du ville vide om MAC-adressen

Den ottende (fra begyndelsen) bit af den første byte af MAC-adressen kaldes Unicast/Multicast-bitten og bestemmer, hvilken type frame (frame) der transmitteres med denne adresse, almindelig (0) eller broadcast (1) (multicast eller udsende). For normal unicast-netværksadapterkommunikation er denne bit sat til "0" i alle pakker, der sendes til den.

Den syvende (fra begyndelsen) bit af den første byte af MAC-adressen kaldes U/L (Universal/Local) bit og bestemmer, om adressen er globalt unik (0) eller lokalt unik (1). Som standard er alle "producent-syede" adresser globalt unikke, så langt de fleste indsamlede MAC-adresser indeholder den syvende bit sat til "0". I tabellen over tildelte OUI-identifikatorer har kun omkring 130 poster en U/L-bit på "1", og disse er tilsyneladende blokke af MAC-adresser til særlige behov.

Fra den sjette til den første bit af den første byte, bits af anden og tredje byte i OUI-identifikatorerne, og endnu mere, er bits i de 4-6 bytes af adressen tildelt af producenten fordelt mere eller mindre jævnt .

I den rigtige MAC-adresse på netværksadapteren er bits således faktisk ækvivalente og har ingen teknologisk betydning, med undtagelse af to servicebits af den høje byte.

prævalens

Er du i tvivl om, hvilke producenter af trådløst udstyr der er mest populære? Lad os kombinere søgningen i OUI-databasen med data fra prøve nr. 1.

Sælger
Andel af enheder, %

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 (Mobilkommunikation)
2,76

ASUSTek COMPUTER INC.
2,58

TCT Mobile Ltd
2,13

zte corporation
2,00

ikke fundet i IEEE-databasen
1,92

Lenovo Mobile Communication Technology Ltd.
1,71

HTC Corporation
1,68

Murata fremstilling
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

Praksis viser, at jo mere velstående kontingent af trådløse netværksabonnenter er på et givet sted, jo større andel af Apple-enheder.

entydighed

Er MAC-adresser unikke? I teorien, ja, da hver enhedsproducent (MA-blokejer) er forpligtet til at angive en unik adresse for hver af de netværksadaptere, den producerer. Nogle chipproducenter, nemlig:

  • 00:0A:F5 Airgo Networks, Inc. (nu Qualcomm)
  • 00:08:22 InPro Comm (nu MediaTek)

indstille de sidste tre bytes af MAC-adressen til et tilfældigt tal, tilsyneladende efter hver genstart af enheden. Der var 1 tusinde sådanne adresser i min prøve nr. 82.

Du kan selvfølgelig angive dig selv en fremmed, ikke-unik adresse ved målrettet at indstille den "som din nabos", identificere den med en sniffer eller vælge den tilfældigt. Det er også muligt ved et uheld at sætte dig selv en ikke-unik adresse ved for eksempel at gendanne en backup-konfiguration af en router som Mikrotik eller OpenWrt.

Hvad sker der, hvis der er to enheder på netværket med samme MAC-adresse? Det hele afhænger af logikken i netværksudstyret (kablet router, trådløs netværkscontroller). Mest sandsynligt vil begge enheder enten ikke fungere eller vil fungere intermitterende. Ud fra IEEE-standardernes synspunkt foreslås beskyttelse mod MAC-adressespoofing løst ved hjælp af for eksempel MACsec eller 802.1X.

Hvad hvis du installerer en MAC med den syvende eller ottende bit sat til "1", dvs. lokal eller multicast adresse? Mest sandsynligt vil dit netværk ikke være opmærksom på dette, men formelt vil en sådan adresse ikke overholde standarden, og det er bedre ikke at gøre det.

Sådan fungerer randomisering

Vi ved, at for at forhindre sporing af folks bevægelser ved at scanne og indsamle æteren, har smartphone MAC-operativsystemer brugt randomiseringsteknologi i flere år. Teoretisk set sender smartphonen en pakke (gruppe af pakker) af typen 802.11 sondeanmodning med MAC-adressen som kilde, når den scanner æteren på jagt efter kendte netværk:

Alt hvad du ville vide om MAC-adressen

Aktiveret randomisering giver dig mulighed for at specificere ikke den "syede", men en anden pakkekildeadresse, der ændres med hver scanningscyklus, over tid eller på anden måde. Virker det? Lad os se på statistikken over MAC-adresser indsamlet fra luften af ​​den såkaldte "Wi-Fi Radar":

Hele prøven
Sample kun med nul 7. bit

Antal poster i databasen
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 %

Billedet er et helt andet.

Den 8. bit af den første byte af MAC-adressen svarer stadig til Unicast-naturen af ​​SRC-adressen i probeanmodningspakken.

Den 7. bit er sat til Lokal i 92.2 % af tilfældene, dvs. Med en rimelig grad af tillid kan vi antage, at præcis så mange af de indsamlede adresser er randomiserede, og mindre end 8 % er reelle. I dette tilfælde falder fordelingen af ​​bits i OUI'en for sådanne reelle adresser omtrent sammen med dataene i den foregående tabel.

Hvilken producent, ifølge OUI, ejer de randomiserede adresser (dvs. med den 7. bit i "1")?

Producent af OUI
Del blandt alle adresser

ikke fundet i IEEE-databasen
62.45 %

Google Inc.
37.54 %

resten
0.01 %

Desuden tilhører alle randomiserede adresser, der er tildelt Google, den samme OUI med præfikset DA:A1:19. Hvad er dette præfiks? Lad os kigge ind Android kilder.

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

Stock Android bruger en speciel, registreret OUI, når du søger efter trådløse netværk, en af ​​de få med det syvende bitsæt.

Beregn ægte MAC fra tilfældig en

Lad os se der:

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;
    }

Hele adressen, eller dens tre nederste bytes, er ren Random.nextLong(). "Ejendomsbeskyttet gendannelse af ægte MAC" er en fidus. Med en høj grad af tillid kan vi forvente, at Android-telefonproducenter bruger andre, uregistrerede OUI'er. Vi har ikke iOS-kildekoden, men højst sandsynligt bruges en lignende algoritme der.

Ovenstående annullerer ikke arbejdet med andre mekanismer til afanonymisering af Wi-Fi-abonnenter, baseret på analysen af ​​andre felter i probeanmodningsrammen eller korrelation af den relative frekvens af anmodninger sendt af enheden. Det er imidlertid ekstremt problematisk at spore en abonnent pålideligt ved hjælp af eksterne midler. De indsamlede data vil være mere egnede til at analysere gennemsnitlig/spidsbelastning efter sted og tidspunkt, baseret på store tal, uden reference til specifikke enheder og personer. Kun dem "inde i", producenterne af mobile OS selv og installerede applikationer har nøjagtige data.

Hvad kan være farligt ved, at en anden kender din enheds MAC-adresse? Denial of service-angreb kan lanceres for kablede og trådløse netværk. For en trådløs enhed er det desuden med en vis sandsynlighed muligt at registrere tidspunktet for dets udseende på det sted, hvor sensoren er installeret. Ved at spoofe adressen kan du forsøge at "foregive" at være din enhed, hvilket kun kan fungere, hvis der ikke bruges yderligere sikkerhedsforanstaltninger (autorisation og/eller kryptering). 99.9% af folk her har intet at bekymre sig om.

MAC-adressen er mere kompliceret end den ser ud til, men enklere end den kunne være.

Kilde: www.habr.com

Tilføj en kommentar