Semua orang tahu bahawa enam bait ini, biasanya dipaparkan dalam format perenambelasan, diberikan kepada kad rangkaian di kilang, dan nampaknya rawak. Sesetengah orang tahu bahawa tiga bait pertama alamat ialah ID pengilang, dan tiga bait yang selebihnya diberikan kepada mereka. Ia juga diketahui bahawa anda boleh menetapkan sendiri sewenang-wenangnya alamat. Ramai orang telah mendengar tentang "alamat rawak" dalam Wi-Fi.
Mari kita fikirkan apa itu.
Alamat MAC (alamat kawalan akses media) ialah pengecam unik yang diberikan kepada penyesuai rangkaian, digunakan dalam rangkaian piawaian IEEE 802, terutamanya Ethernet, Wi-Fi dan Bluetooth. Secara rasmi ia dipanggil "pengecam jenis EUI-48". Dari namanya jelas bahawa alamat adalah 48 bit panjang, i.e. 6 bait. Tiada piawaian yang diterima umum untuk menulis alamat (berbanding dengan alamat IPv4, di mana oktet sentiasa dipisahkan dengan titik). Ia biasanya ditulis sebagai enam nombor perenambelasan yang dipisahkan oleh titik bertindih: 00:AB:CD:EF:11: 22, walaupun sesetengah pengeluar peralatan memilih notasi 00 -AB-CD-EF-11-22 dan juga 00ab.cdef.1122.
Dari segi sejarah, alamat telah dipancarkan ke dalam ROM cipset kad rangkaian tanpa keupayaan untuk mengubah suainya tanpa pengaturcara kilat, tetapi pada masa kini alamat itu boleh ditukar secara pengaturcaraan daripada sistem pengendalian. Anda boleh menetapkan alamat MAC kad rangkaian secara manual dalam Linux dan MacOS (sentiasa), Windows (hampir selalu, jika pemandu membenarkan), Android (root sahaja); Dengan iOS (tanpa akar) muslihat sedemikian adalah mustahil.
Struktur alamat
Alamat terdiri daripada sebahagian daripada pengecam pengilang, OUI dan pengecam yang diberikan oleh pengilang. Penetapan pengecam OUI (Pengecam Unik Organisasi).
Siapa pemilik alamat?
Pemprosesan mudah tersedia untuk umum
Penjual
Bilangan blok/rekod
Bilangan alamat, juta
Cisco Systems Inc
888
14208
Apple
772
12352
Samsung
636
10144
Huawei Technologies Co.Ltd
606
9696
Intel Corporation
375
5776
Kumpulan ARRIS Inc.
319
5104
Nokia Corporation
241
3856
Swasta
232
2704
Texas Instruments
212
3392
perbadanan zte
198
3168
Pihak Berkuasa Pendaftaran IEEE
194
3072
Hewlett Packard
149
2384
Ketepatan Hon Hai
136
2176
TP-LINK
134
2144
Dell Inc.
123
1968
Juniper Networks
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 hanya mempunyai 40 daripadanya, dan ini tidak menghairankan: mereka sendiri tidak menghasilkan banyak peranti rangkaian.
Blok MA tidak disediakan secara percuma, ia boleh dibeli dengan harga yang berpatutan (tanpa yuran langganan) masing-masing untuk $3000, $1800 atau $755. Menariknya, untuk wang tambahan (setahun) anda boleh membeli "menyembunyikan" maklumat awam mengenai blok yang diperuntukkan. Kini terdapat 232 daripadanya, seperti yang dapat dilihat di atas.
Bilakah kita akan kehabisan alamat MAC?
Kita semua agak bosan dengan cerita yang telah berlaku selama 10 tahun bahawa "alamat IPv4 hampir kehabisan." Ya, blok IPv4 baharu tidak lagi mudah diperoleh. Adalah diketahui bahawa alamat IP
Alamat MAC mempunyai 48 bit, yang mana 46 boleh dianggap "berguna" (mengapa? baca terus), yang memberikan 246 atau 1014 alamat, iaitu 214 kali lebih banyak daripada ruang alamat IPv4.
Pada masa ini, kira-kira setengah trilion alamat telah diedarkan, atau hanya 0.73% daripada jumlah keseluruhan. Kami masih sangat jauh daripada kehabisan alamat MAC.
Bit rawak
Ia boleh diandaikan bahawa OUI diedarkan secara rawak, dan vendor kemudiannya juga secara rawak memberikan alamat kepada peranti rangkaian individu. Adakah begitu? Mari lihat pengedaran bit dalam pangkalan data alamat MAC peranti 802.11 yang saya gunakan, yang dikumpulkan oleh sistem kebenaran yang berfungsi dalam rangkaian wayarles
Mari kita pecahkan setiap alamat MAC (enam bait) setiap sampel kepada bit, bait demi bait, dan lihat kekerapan kejadian bit "1" dalam setiap 48 kedudukan. Jika bit ditetapkan dengan cara sewenang-wenangnya, maka kebarangkalian untuk mendapat "1" hendaklah 50%.
Pemilihan Wi-Fi No. 1 (RF)
Sampel Wi-Fi No. 2 (Belarus)
Pilihan Wi-Fi No. 3 (Uzbekistan)
pensampelan LAN (RF)
Bilangan rekod dalam pangkalan data
5929000
1274000
366000
1000
Nombor 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%
Mengapa ketidakadilan dalam 7 dan 8 bit? Hampir selalu ada sifar.
Sesungguhnya, piawaian mentakrifkan bit ini sebagai istimewa (
Bit kelapan (dari awal) bait pertama alamat MAC dipanggil bit Unicast/Multicast dan menentukan jenis bingkai (bingkai) yang dihantar dengan alamat ini, biasa (0) atau siaran (1) (multicast atau siaran). Untuk komunikasi penyesuai rangkaian unicast biasa, bit ini ditetapkan kepada "0" dalam semua paket yang dihantar kepadanya.
Bit ketujuh (dari awal) bait pertama alamat MAC dipanggil bit U/L (Universal/Tempatan) dan menentukan sama ada alamat itu unik di peringkat global (0), atau unik setempat (1). Secara lalai, semua alamat "dijahit pengilang" adalah unik di peringkat global, jadi sebahagian besar alamat MAC yang dikumpul mengandungi bit ketujuh yang ditetapkan kepada "0". Dalam jadual pengecam OUI yang diberikan, hanya kira-kira 130 entri mempunyai bit U/L "1", dan nampaknya ini adalah blok alamat MAC untuk keperluan khas.
Daripada bit keenam hingga pertama bait pertama, bit bait kedua dan ketiga dalam pengecam OUI, dan lebih-lebih lagi bit dalam 4-6 bait alamat yang diberikan oleh pengilang diedarkan lebih kurang sama rata .
Oleh itu, dalam alamat MAC sebenar penyesuai rangkaian, bit sebenarnya setara dan tidak mempunyai makna teknologi, kecuali dua bit perkhidmatan bait tinggi.
Prevalensi
Tertanya-tanya pengeluar peralatan wayarles mana yang paling popular? Mari gabungkan carian dalam pangkalan data OUI dengan data daripada sampel No. 1.
Penjual
Bahagian peranti, %
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 (Komunikasi Mudah Alih)
2,76
ASUSTek KOMPUTER INC.
2,58
TCT mudah alih ltd
2,13
perbadanan zte
2,00
tidak ditemui dalam pangkalan data IEEE
1,92
Lenovo Mobile Communication Technology Ltd.
1,71
HTC Corporation
1,68
Pembuatan 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
Syarikat Komunikasi Mudah Alih Lenovo (Wuhan) Limited
0,71
Amalan menunjukkan bahawa lebih makmur kontinjen pelanggan rangkaian wayarles di lokasi tertentu, semakin besar bahagian peranti Apple.
Keunikan
Adakah alamat MAC unik? Secara teorinya, ya, kerana setiap pengeluar peranti (pemilik blok MA) dikehendaki memberikan alamat unik untuk setiap penyesuai rangkaian yang dihasilkannya. Walau bagaimanapun, beberapa pengeluar cip, iaitu:
- 00:0A:F5 Airgo Networks, Inc. (kini Qualcomm)
- 00:08:22 InPro Comm (kini MediaTek)
tetapkan tiga bait terakhir alamat MAC kepada nombor rawak, nampaknya selepas setiap peranti but semula. Terdapat 1 ribu alamat sedemikian dalam sampel No. 82 saya.
Anda boleh, tentu saja, menetapkan diri anda sebagai alamat asing yang tidak unik dengan sengaja menetapkannya "seperti jiran anda", mengenal pastinya dengan penghidu atau memilihnya secara rawak. Anda juga boleh menetapkan sendiri alamat bukan unik secara tidak sengaja dengan, sebagai contoh, memulihkan konfigurasi sandaran penghala seperti Mikrotik atau OpenWrt.
Apakah yang akan berlaku jika terdapat dua peranti pada rangkaian dengan alamat MAC yang sama? Semuanya bergantung pada logik peralatan rangkaian (penghala berwayar, pengawal rangkaian wayarles). Kemungkinan besar, kedua-dua peranti sama ada tidak akan berfungsi atau akan berfungsi secara berselang-seli. Dari sudut pandangan piawaian IEEE, perlindungan terhadap pemalsuan alamat MAC dicadangkan untuk diselesaikan menggunakan, sebagai contoh, MACsec atau 802.1X.
Bagaimana jika anda memasang MAC dengan bit ketujuh atau kelapan ditetapkan kepada "1", i.e. alamat tempatan atau multicast? Kemungkinan besar, rangkaian anda tidak akan memberi perhatian kepada perkara ini, tetapi secara rasmi alamat sedemikian tidak akan mematuhi piawaian, dan lebih baik tidak berbuat demikian.
Cara rawak berfungsi
Kami tahu bahawa untuk mengelakkan pengesanan pergerakan orang ramai dengan mengimbas dan mengumpul gelombang udara, sistem pengendalian MAC telefon pintar telah menggunakan teknologi rawak selama beberapa tahun. Secara teorinya, apabila mengimbas gelombang udara untuk mencari rangkaian yang diketahui, telefon pintar menghantar paket (kumpulan paket) jenis permintaan siasatan 802.11 dengan alamat MAC sebagai sumber:
Rawak yang didayakan membolehkan anda menentukan bukan yang "dijahit", tetapi beberapa alamat sumber paket lain, berubah dengan setiap kitaran pengimbasan, dari semasa ke semasa, atau dengan cara lain. Adakah ia berfungsi? Mari kita lihat statistik alamat MAC yang dikumpulkan dari udara oleh apa yang dipanggil "Radar Wi-Fi":
Keseluruhan sampel
Sampel hanya dengan sifar bit ke-7
Bilangan rekod dalam pangkalan data
3920000
305000
Nombor 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%
Gambarnya berbeza sama sekali.
Bit ke-8 bait pertama alamat MAC masih sepadan dengan sifat Unicast alamat SRC dalam paket permintaan siasatan.
Bit ke-7 ditetapkan kepada Setempat dalam 92.2% kes, i.e. Dengan tahap keyakinan yang adil, kita boleh menganggap bahawa begitu banyak alamat yang dikumpul adalah rawak, dan kurang daripada 8% adalah benar. Dalam kes ini, pengedaran bit dalam OUI untuk alamat sebenar sedemikian kira-kira bertepatan dengan data dalam jadual sebelumnya.
Pengilang yang manakah, menurut OUI, memiliki alamat rawak (iaitu dengan bit ke-7 dalam "1")?
Pengeluar oleh OUI
Kongsi antara semua alamat
tidak ditemui dalam pangkalan data IEEE
62.45%
Google Inc.
37.54%
berehat
0.01%
Selain itu, semua alamat rawak yang diberikan kepada Google tergolong dalam OUI yang sama dengan awalan DA:A1:19. Apakah awalan ini? Jom tengok masuk
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");
Android Stock menggunakan OUI berdaftar khas apabila mencari rangkaian wayarles, salah satu daripada beberapa rangkaian dengan set bit ketujuh.
Kira MAC sebenar daripada satu rawak
Jom lihat di sana:
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;
}
Seluruh alamat, atau tiga bait bawahnya, adalah tulen Random.nextLong(). "Pemulihan proprietari MAC sebenar" ialah penipuan. Dengan tahap keyakinan yang tinggi, kami boleh menjangkakan bahawa pengeluar telefon Android menggunakan OUI lain yang tidak berdaftar. Kami tidak mempunyai kod sumber iOS, tetapi kemungkinan besar algoritma serupa digunakan di sana.
Perkara di atas tidak membatalkan kerja mekanisme lain untuk menyahnamakan pelanggan Wi-Fi, berdasarkan analisis medan lain bingkai permintaan siasatan, atau korelasi frekuensi relatif permintaan yang dihantar oleh peranti. Walau bagaimanapun, menjejaki pelanggan dengan pasti menggunakan cara luaran adalah amat bermasalah. Data yang dikumpul akan lebih sesuai untuk menganalisis beban purata/puncak mengikut lokasi dan masa, berdasarkan bilangan yang besar, tanpa merujuk kepada peranti dan orang tertentu. Hanya mereka "di dalam", pengeluar OS mudah alih sendiri, dan aplikasi yang dipasang mempunyai data yang tepat.
Apakah yang boleh berbahaya apabila orang lain mengetahui alamat MAC peranti anda? Serangan penafian perkhidmatan boleh dilancarkan untuk rangkaian berwayar dan tanpa wayar. Untuk peranti wayarles, lebih-lebih lagi, dengan beberapa kebarangkalian adalah mungkin untuk merakam momen penampilannya di tempat di mana sensor dipasang. Dengan memalsukan alamat, anda boleh cuba "berpura-pura" sebagai peranti anda, yang hanya boleh berfungsi jika tiada langkah keselamatan tambahan digunakan (keizinan dan/atau penyulitan). 99.9% orang di sini tidak perlu risau.
Alamat MAC adalah lebih rumit daripada yang kelihatan, tetapi lebih mudah daripada yang mungkin.
Sumber: www.habr.com