Lahat ng gusto mong malaman tungkol sa MAC address

Lahat ng gusto mong malaman tungkol sa MAC addressAlam ng lahat na ang anim na byte na ito, kadalasang ipinapakita sa hexadecimal na format, ay itinalaga sa network card sa pabrika, at tila random. Alam ng ilang tao na ang unang tatlong byte ng address ay ang manufacturer ID, at ang natitirang tatlong byte ay itinalaga sa kanila. Ito ay kilala rin na maaari mong itakda ang iyong sarili di-makatwirang address. Maraming tao ang nakarinig tungkol sa "mga random na address" sa Wi-Fi.

Alamin natin kung ano ito.

Ang MAC address (media access control address) ay isang natatanging identifier na nakatalaga sa isang network adapter, na ginagamit sa mga network ng mga pamantayan ng IEEE 802, pangunahin ang Ethernet, Wi-Fi at Bluetooth. Opisyal itong tinatawag na "EUI-48 type identifier". Mula sa pangalan ay malinaw na ang address ay 48 bits ang haba, i.e. 6 byte. Walang karaniwang tinatanggap na pamantayan para sa pagsulat ng isang address (kumpara sa isang IPv4 address, kung saan ang mga octet ay palaging pinaghihiwalay ng mga tuldok). Karaniwan itong isinusulat bilang anim na numerong hexadecimal na pinaghihiwalay ng isang tutuldok: 00:AB:CD:EF:11: 22, bagama't mas gusto ng ilang tagagawa ng kagamitan ang notasyon na 00 -AB-CD-EF-11-22 at maging 00ab.cdef.1122.

Sa kasaysayan, ang mga address ay na-flash sa ROM ng network card chipset nang walang kakayahang baguhin ang mga ito nang walang flash programmer, ngunit sa kasalukuyan ang address ay maaaring mabago sa programmatically mula sa operating system. Maaari mong manu-manong itakda ang MAC address ng isang network card sa Linux at MacOS (laging), Windows (halos palagi, kung pinapayagan ng driver), Android (naka-root lamang); Sa iOS (walang ugat) imposible ang gayong lansihin.

Istraktura ng address

Ang address ay binubuo ng bahagi ng identifier ng manufacturer, OUI, at isang identifier na itinalaga ng manufacturer. Pagtatalaga ng mga identifier ng OUI (Organizationally Unique Identifier). nakikibahagi sa organisasyon ng IEEE. Sa katunayan, ang haba nito ay maaaring hindi lamang 3 byte (24 bits), ngunit 28 o 36 bits, kung saan ang mga bloke (MAC Address Block, MA) ng mga address ng mga uri Large (MA-L), Medium (MA-M) at Maliit ay nabuo (MA-S) ayon sa pagkakabanggit. Ang laki ng inilabas na bloke, sa kasong ito, ay magiging 24, 20, 12 bits o 16 milyon, 1 milyon, 4 na libong mga address. Sa kasalukuyan ay may humigit-kumulang 38 libong mga bloke na ipinamamahagi, maaari silang matingnan gamit ang maraming mga online na tool, halimbawa IEEE o Wireshark.

Sino ang nagmamay-ari ng mga address?

Madaling pagproseso ng magagamit ng publiko pagbabawas ng mga database Ang IEEE ay nagbibigay ng napakaraming impormasyon. Halimbawa, ang ilang organisasyon ay kumuha ng maraming OUI block para sa kanilang sarili. Narito ang ating mga bayani:

Nagtitinda
Bilang ng mga block/record
Bilang ng mga address, milyon

Cisco Systems Inc
888
14208

mansanas
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

Intel Corporation
375
5776

ARRIS Group Inc.
319
5104

Nokia Corporation
241
3856

pribado
232
2704

Texas Instrumentong
212
3392

zte korporasyon
198
3168

Awtoridad sa Pagpaparehistro ng IEEE
194
3072

Hewlett Packard
149
2384

Hon Hai Precision
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Juniper Networks
110
1760

Sagemcom Broadband SAS
97
1552

Ang Fiberhome Telecommunication Technologies Co. LTD
97
1552

Xiaomi Communications Co Ltd
88
1408

Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312

Ang Google ay mayroon lamang 40 sa kanila, at ito ay hindi nakakagulat: sila mismo ay hindi gumagawa ng maraming mga aparato sa network.

Ang mga bloke ng MA ay hindi ibinibigay nang libre, maaari silang bilhin para sa isang makatwirang presyo (nang walang bayad sa subscription) para sa $3000, $1800 o $755, ayon sa pagkakabanggit. Kapansin-pansin, para sa karagdagang pera (bawat taon) maaari kang bumili ng "pagtatago" ng pampublikong impormasyon tungkol sa inilalaan na bloke. Mayroon na ngayong 232 sa kanila, gaya ng makikita sa itaas.

Kailan tayo mauubusan ng mga MAC address?

Lahat kami ay pagod na sa mga kwentong nangyayari sa loob ng 10 taon na "malapit nang maubusan ang mga IPv4 address." Oo, hindi na madaling makuha ang mga bagong IPv4 block. Ito ay kilala na ang mga IP address lubhang hindi pantay na ipinamamahagi; Mayroong napakalaki at hindi gaanong ginagamit na mga bloke na pag-aari ng malalaking korporasyon at ahensya ng gobyerno ng US, gayunpaman, na may maliit na pag-asa na maipamahagi muli ang mga ito sa mga nangangailangan. Ang paglaganap ng NAT, CG-NAT at IPv6 ay nagpababa sa problema ng kakulangan ng mga pampublikong address.

Ang isang MAC address ay may 48 bits, kung saan ang 46 ay maaaring ituring na "kapaki-pakinabang" (bakit? basahin pa), na nagbibigay ng 246 o 1014 na mga address, na 214 beses na higit sa espasyo ng IPv4 address.
Sa kasalukuyan, humigit-kumulang kalahating trilyong address ang naipamahagi, o 0.73% lamang ng kabuuang volume. Napakalayo pa rin namin sa pagkaubos ng mga MAC address.

Randomness bits

Maaaring ipagpalagay na ang mga OUI ay random na ibinahagi, at ang vendor ay random ding nagtatalaga ng mga address sa mga indibidwal na network device. Ganoon ba? Tingnan natin ang pamamahagi ng mga bit sa mga database ng mga MAC address ng 802.11 na mga device sa aking pagtatapon, na kinokolekta ng mga gumaganang sistema ng awtorisasyon sa mga wireless network WNAM. Ang mga address ay nabibilang sa mga totoong device na nakakonekta sa Wi-Fi sa loob ng ilang taon sa tatlong bansa. Bilang karagdagan mayroong isang maliit na database ng 802.3 wired LAN device.

Hatiin natin ang bawat MAC address (anim na byte) ng bawat isa sa mga sample sa mga bit, byte bawat byte, at tingnan ang dalas ng paglitaw ng "1" bit sa bawat isa sa 48 na posisyon. Kung ang bit ay nakatakda sa isang ganap na arbitrary na paraan, kung gayon ang posibilidad na makakuha ng "1" ay dapat na 50%.

Pagpili ng Wi-Fi No. 1 (RF)
Wi-Fi sample No. 2 (Belarus)
Pagpili ng Wi-Fi No. 3 (Uzbekistan)
LAN sampling (RF)

Bilang ng mga tala sa database
5929000
1274000
366000
1000

Bit number:
% 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%

Bakit ganoong kawalang-katarungan sa 7 at 8 bits? Halos palaging may mga zero.

Sa katunayan, ang pamantayan ay tumutukoy sa mga bit na ito bilang espesyal (Wikipedia):
Lahat ng gusto mong malaman tungkol sa MAC address

Ang ikawalong (mula sa simula) bit ng unang byte ng MAC address ay tinatawag na Unicast/Multicast bit at tinutukoy kung anong uri ng frame (frame) ang ipinapadala gamit ang address na ito, regular (0) o broadcast (1) (multicast o broadcast). Para sa normal, unicast network adapter na komunikasyon, ang bit na ito ay nakatakda sa "0" sa lahat ng mga packet na ipinadala dito.

Ang ikapitong (mula sa simula) bit ng unang byte ng MAC address ay tinatawag na U/L (Universal/Local) bit at tinutukoy kung ang address ay globally unique (0), o locally unique (1). Bilang default, ang lahat ng "manufacturer-stitched" address ay natatangi sa buong mundo, kaya ang karamihan sa mga nakolektang MAC address ay naglalaman ng ikapitong bit na nakatakda sa "0". Sa talahanayan ng mga nakatalagang OUI identifier, humigit-kumulang 130 entry lang ang may U/L bit na "1", at maliwanag na ito ay mga bloke ng MAC address para sa mga espesyal na pangangailangan.

Mula sa ikaanim hanggang sa unang mga bit ng unang byte, ang mga bit ng pangalawa at pangatlong byte sa mga OUI identifier, at higit pa kaya ang mga bit sa 4-6 na byte ng address na itinalaga ng tagagawa ay ipinamamahagi nang higit pa o hindi gaanong pantay. .

Kaya, sa totoong MAC address ng network adapter, ang mga bit ay aktwal na katumbas at walang teknolohikal na kahulugan, maliban sa dalawang service bits ng mataas na byte.

Pagkalat

Nagtataka kung aling mga tagagawa ng wireless na kagamitan ang pinakasikat? Pagsamahin natin ang paghahanap sa database ng OUI sa data mula sa sample No. 1.

Nagtitinda
Bahagi ng mga device, %

mansanas
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 (Mobile Communications)
2,76

ASUSTek KOMPUTER INC.
2,58

TCT mobile ltd
2,13

zte korporasyon
2,00

hindi nakita sa database ng IEEE
1,92

Lenovo Mobile Communication Technology Ltd.
1,71

HTC Corporation
1,68

Paggawa ng 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. Ltd
0,74

Lenovo Mobile Communication (Wuhan) Company Limited
0,71

Ipinapakita ng pagsasanay na kung mas maunlad ang contingent ng mga subscriber ng wireless network sa isang partikular na lokasyon, mas malaki ang bahagi ng mga Apple device.

uniqueness

Natatangi ba ang mga MAC address? Sa teorya, oo, dahil ang bawat manufacturer ng device (may-ari ng MA block) ay kinakailangang magbigay ng natatanging address para sa bawat network adapter na ginagawa nito. Gayunpaman, ang ilang mga tagagawa ng chip, katulad:

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

itakda ang huling tatlong byte ng MAC address sa isang random na numero, tila pagkatapos ng bawat reboot ng device. Mayroong 1 libong ganoong mga address sa aking sample No.

Siyempre, maaari mong itakda ang iyong sarili sa isang dayuhan, hindi natatanging address sa pamamagitan ng sadyang pagtatakda nito "tulad ng sa iyong kapitbahay", pagtukoy nito sa isang sniffer, o pagpili nito nang random. Posible rin na aksidenteng itakda ang iyong sarili ng isang hindi natatanging address sa pamamagitan ng, halimbawa, pagpapanumbalik ng backup na configuration ng isang router tulad ng Mikrotik o OpenWrt.

Ano ang mangyayari kung mayroong dalawang device sa network na may parehong MAC address? Ang lahat ay nakasalalay sa lohika ng kagamitan sa network (wired router, wireless network controller). Malamang, ang parehong mga aparato ay maaaring hindi gagana o gagana nang paulit-ulit. Mula sa punto ng view ng mga pamantayan ng IEEE, ang proteksyon laban sa MAC address spoofing ay iminungkahi na lutasin gamit ang, halimbawa, MACsec o 802.1X.

Paano kung mag-install ka ng MAC na ang ikapito o ikawalong bit ay nakatakda sa "1", ibig sabihin. lokal o multicast na address? Malamang, hindi ito bibigyan ng pansin ng iyong network, ngunit pormal na ang gayong address ay hindi susunod sa pamantayan, at mas mainam na huwag gawin ito.

Paano gumagana ang randomization

Alam namin na upang maiwasan ang pagsubaybay sa mga paggalaw ng mga tao sa pamamagitan ng pag-scan at pagkolekta ng mga airwave, ang mga operating system ng smartphone MAC ay gumagamit ng randomization technology sa loob ng ilang taon. Sa teorya, kapag nag-scan sa mga airwave sa paghahanap ng mga kilalang network, ang smartphone ay nagpapadala ng isang packet (pangkat ng mga packet) ng 802.11 na uri ng kahilingan sa pagsisiyasat na may MAC address bilang pinagmulan:

Lahat ng gusto mong malaman tungkol sa MAC address

Binibigyang-daan ka ng pinaganang randomization na tukuyin hindi ang "natahi", ngunit ang iba pang address ng pinagmulan ng packet, na nagbabago sa bawat ikot ng pag-scan, sa paglipas ng panahon, o sa ibang paraan. Gumagana ba? Tingnan natin ang mga istatistika ng mga MAC address na nakolekta mula sa himpapawid ng tinatawag na "Wi-Fi Radar":

Buong sample
Sample lang na may zero 7th bit

Bilang ng mga tala sa database
3920000
305000

Bit number:
% 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%

Ang larawan ay ganap na naiiba.

Ang ika-8 bit ng unang byte ng MAC address ay tumutugma pa rin sa Unicast na katangian ng SRC address sa packet ng kahilingan sa pagsisiyasat.

Ang 7th bit ay nakatakda sa Lokal sa 92.2% ng mga kaso, i.e. Sa isang patas na antas ng kumpiyansa, maaari nating ipagpalagay na napakarami sa mga nakolektang address ay randomized, at wala pang 8% ang totoo. Sa kasong ito, ang distribusyon ng mga bit sa OUI para sa mga naturang totoong address ay tinatayang tumutugma sa data sa nakaraang talahanayan.

Aling manufacturer, ayon sa OUI, ang nagmamay-ari ng mga randomized na address (ibig sabihin, may ika-7 bit sa β€œ1”)?

Tagagawa ng OUI
Ibahagi sa lahat ng mga address

hindi nakita sa database ng IEEE
62.45%

Google Inc.
37.54%

magpahinga
0.01%

Bukod dito, lahat ng randomized na address na itinalaga sa Google ay kabilang sa parehong OUI na may prefix DA:A1:19. Ano ang prefix na ito? Tingnan natin Mga mapagkukunan ng Android.

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

Gumagamit ang Stock Android ng espesyal at nakarehistrong OUI kapag naghahanap ng mga wireless network, isa sa iilan na may ikapitong bit set.

Kalkulahin ang totoong MAC mula sa random na isa

Tingnan natin doon:

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

Ang buong address, o ang mas mababang tatlong byte nito, ay dalisay Random.nextLong(). Ang β€œproprietary recovery ng totoong MAC” ay isang scam. Sa mataas na antas ng kumpiyansa, maaari naming asahan na ang mga manufacturer ng Android phone ay gumagamit ng iba pang hindi rehistradong OUI. Wala kaming source code ng iOS, ngunit malamang na isang katulad na algorithm ang ginagamit doon.

Hindi kinakansela ng nasa itaas ang gawain ng iba pang mekanismo para sa pag-de-anonymize ng mga subscriber ng Wi-Fi, batay sa pagsusuri ng iba pang field ng frame ng kahilingan sa pagsisiyasat, o ugnayan ng kaugnay na dalas ng mga kahilingang ipinadala ng device. Gayunpaman, ang mapagkakatiwalaang pagsubaybay sa isang subscriber gamit ang mga panlabas na paraan ay lubhang may problema. Ang data na nakolekta ay magiging mas angkop para sa pagsusuri ng average/peak na pag-load ayon sa lokasyon at oras, batay sa malalaking numero, nang walang pagtukoy sa mga partikular na device at tao. Tanging ang mga "sa loob", ang mga mismong tagagawa ng mobile OS, at mga naka-install na application ang may tumpak na data.

Ano ang maaaring mapanganib sa ibang tao na nakakaalam ng MAC address ng iyong device? Maaaring ilunsad ang mga pag-atake sa pagtanggi sa serbisyo para sa mga wired at wireless network. Para sa isang wireless na aparato, bukod dito, na may ilang posibilidad na posible na i-record ang sandali ng hitsura nito sa lugar kung saan naka-install ang sensor. Sa pamamagitan ng panggagaya sa address, maaari mong subukang "magpanggap" bilang iyong device, na maaari lang gumana kung walang karagdagang mga hakbang sa seguridad na ginagamit (awtorisasyon at/o pag-encrypt). 99.9% ng mga tao dito ay walang dapat ikabahala.

Ang MAC address ay mas kumplikado kaysa sa tila, ngunit mas simple kaysa sa maaaring ito.

Pinagmulan: www.habr.com

Magdagdag ng komento