Sadayana anu anjeun hoyong terang ngeunaan alamat MAC

Sadayana anu anjeun hoyong terang ngeunaan alamat MACSadayana terang yén genep bait ieu, biasana dipidangkeun dina format héksadesimal, ditugaskeun ka kartu jaringan di pabrik, sareng katingalina acak. Sababaraha urang terang yén tilu bait munggaran alamatna nyaéta ID produsén, sareng tilu bait sésana ditugaskeun ka aranjeunna. Hal ieu ogé dipikawanoh nu bisa nyetél diri sawenang-wenang alamat. Loba jalma geus uninga ngeunaan "alamat acak" dina Wi-Fi.

Hayu urang terang naon éta.

Alamat MAC (alamat kontrol aksés média) nyaéta identifier unik anu ditugaskeun ka adaptor jaringan, dianggo dina jaringan standar IEEE 802, utamina Ethernet, Wi-Fi sareng Bluetooth. Resmina disebut "EUI-48 tipe identifier". Tina nami éta écés yén alamatna panjangna 48 bit, i.e. 6 bait. Teu aya standar anu ditarima sacara umum pikeun nulis alamat (sabalikna tina alamat IPv4, dimana oktét sok dipisahkeun ku titik-titik). Biasana ditulis salaku genep wilangan héksadesimal anu dipisahkeun ku titik dua: 00:AB:CD:EF:11: 22, sanajan sababaraha pabrik parabot resep notasi 00 -AB-CD-EF-11-22 komo 00ab.cdef.1122.

Dina sajarahna, alamat flashed kana ROM tina chipset kartu jaringan tanpa kamampuhan pikeun ngaropea aranjeunna tanpa programmer flash, tapi kiwari alamatna bisa dirobah programmatically tina sistem operasi. Anjeun tiasa sacara manual nyetél alamat MAC tina kartu jaringan dina Linux sareng MacOS (salawasna), Windows (ampir sok, upami supir ngamungkinkeun), Android (ngan ukur akar); Kalayan ios (tanpa akar) trik sapertos kitu mustahil.

Struktur alamat

Alamatna diwangun ku bagian tina identifier produsén, OUI, sareng identifier anu ditugaskeun ku produsén. Penugasan tina OUI (Organizationally Unique Identifier) ​​identifiers kalibet dina organisasi IEEE. Nyatana, panjangna henteu ngan ukur 3 bait (24 bit), tapi 28 atanapi 36 bit, ti mana blok (Blok Alamat MAC, MA) alamat jinis ageung (MA-L), Sedeng (MA-M) sareng Leutik kabentuk (MA-S) masing-masing. Ukuran blok anu dikaluarkeun, dina hal ieu, bakal 24, 20, 12 bit atanapi 16 juta, 1 juta, 4 rébu alamat. Ayeuna aya sakitar 38 rébu blok anu disebarkeun, aranjeunna tiasa ditingali nganggo seueur alat online, contona IEEE atawa Wireshark.

Saha nu gaduh alamatna?

Gampang ngolah sadia umum unloading database IEEE nyadiakeun cukup loba informasi. Contona, sababaraha organisasi geus nyokot loba blok OUI keur diri. Ieu pahlawan urang:

Ngajual
Jumlah blok / rékaman
Jumlah alamat, jutaan

Cisco Systems Nyarita
888
14208

apel
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

Intel Corporation
375
5776

ARRIS Grup Nyarita.
319
5104

Nokia Corporation
241
3856

wasta
232
2704

Texas Instrumén
212
3392

perusahaan zte
198
3168

Otoritas Pendaptaran IEEE
194
3072

Hewlett Packard
149
2384

Hon Hai Precision
136
2176

TP-link
134
2144

Dell Inc.
123
1968

Juniper Jaringan
110
1760

Sagemcom Broadband 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 ngan boga 40 di antarana, sarta ieu teu heran: maranéhna sorangan teu ngahasilkeun loba alat jaringan.

blok ma teu disadiakeun haratis, aranjeunna bisa dibeuli pikeun harga lumrah (tanpa fee langganan) keur $ 3000, $ 1800 atawa $ 755, tuturutan. Narikna, pikeun duit tambahan (per taun) anjeun tiasa mésér "nyumput" inpormasi umum ngeunaan blok anu dialokasikeun. Ayeuna aya 232 di antarana, sakumaha anu katingali di luhur.

Iraha urang bakal béak alamat MAC?

Urang sadayana bosen kana carita anu parantos lumangsung salami 10 taun yén "alamat IPv4 badé béak." Sumuhun, blok IPv4 anyar geus euweuh gampang pikeun ménta. Perlu dipikanyaho yén alamat IP disebarkeun pisan henteu rata; Aya blok gigantic na underutilized milik korporasi badag sarta agénsi pamaréntah AS, kumaha oge, kalawan saeutik harepan redistributing aranjeunna ka jalma merlukeun. Proliferasi NAT, CG-NAT sareng IPv6 ngajantenkeun masalah kakurangan alamat umum kirang akut.

A alamat MAC boga 48 bit, nu 46 bisa dianggap "mangpaat" (naha? Baca on), nu mere 246 atawa 1014 alamat, nu 214 kali leuwih ti spasi alamat IPv4.
Ayeuna, kurang leuwih satengah triliun alamat geus disebarkeun, atawa ngan 0.73% tina total volume. Kami masih pisan, jauh pisan tina kehabisan alamat MAC.

Randomness bit

Ieu bisa dianggap yén OUIs disebarkeun acak, sarta ngajual lajeng ogé acak nangtukeun alamat ka alat jaringan individu. Naha kitu? Hayu urang tingali panyebaran bit dina pangkalan data alamat MAC tina 802.11 alat anu aya dina pembuangan kuring, dikumpulkeun ku sistem otorisasi damel dina jaringan nirkabel. WNAM. Alamatna milik alat nyata anu nyambung ka Wi-Fi salami sababaraha taun di tilu nagara. Sajaba ti éta, aya database leutik 802.3 alat LAN kabel.

Hayu urang ngarecah unggal alamat MAC (genep bait) unggal sampel kana bit, bait demi bait, sarta kasampak di frékuénsi lumangsungna bit "1" dina unggal 48 posisi. Upami bit disetél dina cara anu sawenang-wenang, maka kamungkinan kéngingkeun "1" kedahna 50%.

Pilihan Wi-Fi No. 1 (RF)
Sampel Wi-Fi No. 2 (Belarus)
Pilihan Wi-Fi No. 3 (Uzbékistan)
LAN sampling (RF)

Jumlah rékaman dina database
5929000
1274000
366000
1000

Jumlah bit:
% 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%

Naha ketidakadilan sapertos dina 7 sareng 8 bit? Aya ampir sok nol.

Memang, standar ngahartikeun bit ieu salaku husus (Wikipedia):
Sadayana anu anjeun hoyong terang ngeunaan alamat MAC

Bit kadalapan (ti mimiti) tina bait kahiji alamat MAC disebut bit Unicast/Multicast jeung nangtukeun jenis pigura (pigura) naon dikirimkeun ku alamat ieu, biasa (0) atawa siaran (1) (multicast atawa siaran). Pikeun normal, komunikasi adaptor jaringan unicast, bit ieu disetel ka "0" dina sakabéh pakét dikirim ka dinya.

Bit katujuh (ti mimiti) tina bait mimiti alamat MAC disebut bit U/L (Universal/Lokal) jeung nangtukeun naha alamatna unik sacara global (0), atawa unik lokal (1). Sacara standar, sadaya alamat "pabrikan-stitched" sacara global unik, jadi seuseueurna alamat MAC anu dikumpulkeun ngandung bit katujuh disetel ka "0". Dina tabel identifiers OUI ditugaskeun, ngan ngeunaan 130 éntri boga U / L bit "1", sarta tétéla ieu blok alamat MAC pikeun kaperluan husus.

Ti kagenep nepi ka bit mimiti bait kahiji, bit kadua jeung katilu bait dina identifiers OUI, komo deui bit dina 4-6 bait alamat nu ditugaskeun ku produsén disebarkeun leuwih atawa kurang merata. .

Ku kituna, dina alamat MAC nyata tina adaptor jaringan, bit sabenerna sarimbag jeung teu boga harti téhnologis, iwal dua bit layanan tina bait tinggi.

Prévalénsi

Panasaran mana produsén alat nirkabel anu pang populerna? Hayu urang ngagabungkeun pilarian dina database OUI jeung data ti sampel No.

Ngajual
Pangsa alat,%

apel
26,09

Samsung
19,79

Huawei Technologies Co. Ltd
7,80

Xiaomi Communications Co Ltd
6,83

Sony Mobile Communications Nyarita
3,29

LG Electronics (Komunikasi Seluler)
2,76

ASUSTek KOMPUTER INC.
2,58

TCT mobile Ltd
2,13

perusahaan zte
2,00

teu kapanggih dina database IEEE
1,92

Lenovo Mobile Communication Technology Ltd.
1,71

HTC Corporation
1,68

Murata Manufaktur
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 Komunikasi (Wuhan) Company Limited
0,71

Prakték nunjukkeun yén langkung makmur kontingén palanggan jaringan nirkabel dina lokasi anu ditangtukeun, langkung ageung pangsa alat Apple.

uniqueness

Naha alamat MAC unik? Dina tiori, enya, saprak unggal produsén alat (MA block boga) diperlukeun pikeun nyadiakeun alamat unik pikeun tiap tina adapters jaringan eta ngahasilkeun. Tapi, sababaraha pabrik chip, nyaéta:

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

set tilu bait panungtungan alamat MAC ka angka acak, katingalina sanggeus unggal alat reboot. Aya 1 rébu alamat sapertos dina sampel kuring No.

Anjeun tiasa, tangtosna, nyetél diri anjeun asing, alamat non-unik ku purposefully netepkeun "kawas tatangga anjeun", ngaidentipikasi eta kalawan sniffer a, atawa milih eta di acak. Ieu oge mungkin mun ngahaja nyetel sorangan alamat non-unik ku, contona, malikkeun konfigurasi cadangan router kawas Mikrotik atanapi OpenWrt.

Naon anu bakal kajadian upami aya dua alat dina jaringan sareng alamat MAC anu sami? Eta sadayana gumantung kana logika alat jaringan (router kabel, controller jaringan nirkabel). Paling dipikaresep, kadua alat eta moal jalan atawa bakal dianggo intermittently. Tina sudut pandang standar IEEE, panyalindungan ngalawan spoofing alamat MAC diusulkeun pikeun direngsekeun nganggo, contona, MACsec atanapi 802.1X.

Kumaha upami anjeun masang MAC kalayan bit katujuh atanapi kadalapan disetel ka "1", i.e. alamat lokal atawa multicast? Paling dipikaresep, jaringan anjeun moal nengetan ieu, tapi sacara resmi alamat sapertos moal sasuai jeung standar, sarta eta leuwih hade teu ngalakukeun kitu.

Kumaha karya randomization

Kami terang yén pikeun nyegah nyukcruk gerakan jalma ku cara nyeken sareng ngumpulkeun gelombang udara, sistem operasi MAC smartphone parantos nganggo téknologi randomisasi salami sababaraha taun. Sacara téoritis, nalika nyeken gelombang udara milarian jaringan anu dipikanyaho, smartphone ngirim pakét (kelompok pakét) tina jinis pamundut 802.11 kalayan alamat MAC salaku sumberna:

Sadayana anu anjeun hoyong terang ngeunaan alamat MAC

randomization diaktipkeun ngidinan Anjeun pikeun nangtukeun teu "stitched" hiji, tapi sababaraha alamat sumber pakét séjén, ngarobah kalawan unggal siklus scanning, kana waktu, atawa ku cara séjén. Dupi éta dianggo? Hayu urang tingali statistik alamat MAC anu dikumpulkeun tina hawa ku anu disebut "Wi-Fi Radar":

Sakabéh sampel
Sampel ngan kalawan nol 7 bit

Jumlah rékaman dina database
3920000
305000

Jumlah bit:
% 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%

gambar sagemblengna béda.

Bit ka-8 tina bait mimiti alamat MAC masih cocog sareng sifat Unicast alamat SRC dina pakét pamundut usik.

Bit ka-7 disetel ka Lokal dina 92.2% kasus, nyaéta. Kalayan tingkat kapercayaan anu adil, urang tiasa nganggap yén seueur pisan alamat anu dikumpulkeun sacara acak, sareng kirang ti 8% nyata. Dina hal ieu, sebaran bit dina OUI pikeun alamat nyata misalna kira coincides jeung data dina tabel saméméhna.

Pabrikan mana, numutkeun OUI, anu gaduh alamat acak (nyaéta sareng bit ka-7 dina "1")?

Produsén ku OUI
Bagikeun diantara sadaya alamat

teu kapanggih dina database IEEE
62.45%

Google Inc.
37.54%

istirahat
0.01%

Sumawona, sadaya alamat acak anu ditugaskeun ka Google milik OUI anu sami sareng awalan DA:A1:19. Naon awalan ieu? Hayu urang tingali sumber Android.

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

Stock Android ngagunakeun husus, didaptarkeun OUI nalika néangan jaringan nirkabel, salah sahiji ti saeutik jeung set bit katujuh.

Ngitung MAC nyata tina hiji acak

Hayu urang tingali di dinya:

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

Sakabéh alamat, atawa tilu bait handap na, murni Random.nextLong(). "Pamulihan proprietary tina MAC nyata" mangrupikeun panipuan. Kalayan tingkat kapercayaan anu luhur, urang tiasa ngarepkeun yén produsén telepon Android nganggo OUI sanés anu henteu kadaptar. Urang teu boga kode sumber ios, tapi paling dipikaresep algoritma sarupa dipaké di dinya.

Di luhur teu ngabatalkeun karya mékanisme séjén pikeun de-anonymizing palanggan Wi-Fi, dumasar kana analisis widang sejenna pigura pamundut usik, atawa korelasi frékuénsi relatif requests dikirim ku alat. Sanajan kitu, reliably nyukcruk palanggan ngagunakeun sarana éksternal pisan masalah. Data anu dikumpulkeun bakal langkung cocog pikeun nganalisis beban rata-rata / puncak dumasar lokasi sareng waktos, dumasar kana jumlah anu ageung, tanpa ngarujuk kana alat sareng jalma khusus. Ngan anu "di jero", produsén OS mobile sorangan, sareng aplikasi anu dipasang gaduh data anu akurat.

Naon anu tiasa bahaya upami jalma sanés terang alamat MAC alat anjeun? Serangan panolakan jasa tiasa diluncurkeun pikeun jaringan kabel sareng nirkabel. Pikeun alat nirkabel, komo deui, kalawan sababaraha kamungkinan kamungkinan pikeun ngarekam momen penampilan na di tempat dimana sensor dipasang. Ku spoofing alamatna, anjeun tiasa nyobian "pura-pura" janten alat anjeun, anu ngan tiasa jalan upami teu aya ukuran kaamanan tambahan anu dianggo (otorisasi sareng/atanapi enkripsi). 99.9% jalma di dieu teu boga salempang ngeunaan.

Alamat MAC langkung rumit tibatan sigana, tapi langkung sederhana tibatan anu tiasa.

sumber: www.habr.com

Tambahkeun komentar