Segala sesuatu yang ingin Anda ketahui tentang alamat MAC

Segala sesuatu yang ingin Anda ketahui tentang alamat MACSemua orang tahu bahwa enam byte ini, biasanya ditampilkan dalam format heksadesimal, ditetapkan ke kartu jaringan di pabrik, dan tampaknya acak. Beberapa orang mengetahui bahwa tiga byte pertama dari alamat tersebut adalah ID pabrikan, dan tiga byte sisanya ditetapkan padanya. Diketahui juga bahwa Anda dapat mengaturnya sendiri sewenang-wenang alamat. Banyak orang telah mendengar tentang “alamat acak” di Wi-Fi.

Mari kita cari tahu apa itu.

Alamat MAC (alamat kontrol akses media) adalah pengidentifikasi unik yang ditetapkan ke adaptor jaringan, digunakan dalam jaringan standar IEEE 802, terutama Ethernet, Wi-Fi, dan Bluetooth. Secara resmi disebut "Pengidentifikasi Tipe EUI-48". Dari namanya jelas alamatnya panjangnya 48 bit, yaitu. 6 byte. Tidak ada standar yang diterima secara umum untuk penulisan alamat (berbeda dengan alamat IPv4, di mana oktet selalu dipisahkan dengan titik). Biasanya ditulis sebagai enam angka heksadesimal yang dipisahkan oleh titik dua: 00:AB:CD:EF:11: 22, meskipun beberapa produsen peralatan lebih memilih notasi 00 -AB-CD-EF-11-22 dan bahkan 00ab.cdef.1122.

Исторически адреса прошивались в ПЗУ чипсета сетевой карты без возможности их модификации без флеш-программатора, но в настоящее время адрес может быть изменен программно, из операционной системы. Задать вручную МАС адрес сетевой карте можно в Linux и MacOS (всегда), Windows (почти всегда, если позволит драйвер), Android (только рутованный); с iOS (без рута) подобный трюк невозможен.

Struktur alamat

Alamat tersebut terdiri dari bagian pengidentifikasi pabrikan, OUI, dan pengidentifikasi yang ditetapkan oleh pabrikan. Penetapan pengidentifikasi OUI (Organizationally Unique Identifier). terlibat dalam organisasi IEEE. Faktanya, panjangnya tidak hanya 3 byte (24 bit), tetapi 28 atau 36 bit, yang terdiri dari blok-blok (Blok Alamat MAC, MA) alamat tipe Besar (MA-L), Sedang (MA-M) dan Kecil terbentuk (MA-S) masing-masing. Ukuran blok yang dikeluarkan dalam hal ini adalah 24, 20, 12 bit atau 16 juta, 1 juta, 4 ribu alamat. Saat ini ada sekitar 38 ribu blok yang didistribusikan, dapat dilihat menggunakan berbagai alat online, misalnya IEEE или Wireshark.

Siapa pemilik alamatnya?

Pemrosesan yang mudah tersedia untuk umum membongkar database IEEE memberikan cukup banyak informasi. Misalnya, beberapa organisasi telah mengambil banyak blok OUI untuk dirinya sendiri. Inilah pahlawan kita:

Penjual
Jumlah blok/catatan
Jumlah alamat, juta

Cisco Systems Inc
888
14208

Apple
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

Intel Corporation
375
5776

Grup ARRIS Inc.
319
5104

Nokia Corporation
241
3856

Swasta
232
2704

Texas Instruments
212
3392

perusahaan ZTE
198
3168

Otoritas Pendaftaran IEEE
194
3072

Hewlett Packard
149
2384

Hon Hai Presisi
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Jaringan Juniper
110
1760

SAS Pita Lebar Sagemcom
97
1552

Fiberhome Telekomunikasi Technologies Co. LTD
97
1552

Xiaomi Komunikasi Co Ltd
88
1408

Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312

Google hanya memiliki 40 unit, dan ini tidak mengherankan: mereka sendiri tidak memproduksi banyak perangkat jaringan.

Blok MA tidak disediakan secara gratis, mereka dapat dibeli dengan harga yang wajar (tanpa biaya berlangganan) masing-masing seharga $3000, $1800 atau $755. Menariknya, dengan uang tambahan (per tahun) Anda dapat membeli “menyembunyikan” informasi publik tentang blok yang dialokasikan. Saat ini jumlahnya ada 232, seperti terlihat di atas.

Kapan kita akan kehabisan alamat MAC?

Kita semua bosan dengan cerita yang telah berlangsung selama 10 tahun bahwa “alamat IPv4 akan segera habis.” Ya, blok IPv4 baru tidak lagi mudah diperoleh. Diketahui bahwa alamat IP sangat tidak merata; Namun, terdapat blok-blok raksasa dan kurang dimanfaatkan yang dimiliki oleh perusahaan-perusahaan besar dan lembaga-lembaga pemerintah AS, dan tidak ada harapan untuk mendistribusikannya kembali kepada mereka yang membutuhkan. Perkembangan NAT, CG-NAT dan IPv6 telah mengurangi masalah kekurangan alamat publik.

Sebuah alamat MAC memiliki 48 bit, 46 di antaranya dapat dianggap “berguna” (mengapa? baca terus), yang menghasilkan 246 atau 1014 alamat, yang berarti 214 kali lebih banyak daripada ruang alamat IPv4.
Saat ini, kurang lebih setengah triliun alamat telah terdistribusi atau hanya 0.73% dari total volume. Kami masih sangat, sangat jauh dari kehabisan alamat MAC.

Sedikit keacakan

Dapat diasumsikan bahwa OUI didistribusikan secara acak, dan vendor kemudian juga secara acak memberikan alamat ke masing-masing perangkat jaringan. Apakah ini benar? Mari kita lihat distribusi bit dalam database alamat MAC perangkat 802.11 yang saya miliki, yang dikumpulkan oleh sistem otorisasi yang berfungsi di jaringan nirkabel WNAM. Alamat tersebut milik perangkat asli yang terhubung ke Wi-Fi selama beberapa tahun di tiga negara. Selain itu terdapat database kecil 802.3 perangkat LAN kabel.

Mari kita pecahkan setiap alamat MAC (enam byte) dari masing-masing sampel menjadi bit, byte demi byte, dan lihat frekuensi kemunculan bit “1” di masing-masing 48 posisi. Jika bit disetel dengan cara yang benar-benar sewenang-wenang, maka kemungkinan mendapatkan “1” adalah 50%.

Pilihan Wi-Fi No.1 (RF)
Sampel Wi-Fi No. 2 (Belarusia)
Pilihan Wi-Fi No.3 (Uzbekistan)
Pengambilan sampel LAN (RF)

Jumlah catatan dalam database
5929000
1274000
366000
1000

Nomor bit:
% sedikit "1"
% sedikit "1"
% sedikit "1"
% sedikit "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 angka nol.

Memang benar, standar mendefinisikan bit-bit ini sebagai bit khusus (Wikipedia):
Segala sesuatu yang ingin Anda ketahui tentang alamat MAC

Bit kedelapan (dari awal) dari byte pertama alamat MAC disebut bit Unicast/Multicast dan menentukan jenis bingkai (frame) apa yang ditransmisikan dengan alamat ini, reguler (0) atau siaran (1) (multicast atau siaran). Untuk komunikasi adaptor jaringan unicast normal, bit ini disetel ke “0” di semua paket yang dikirimkan kepadanya.

Bit ketujuh (dari awal) dari byte pertama alamat MAC disebut bit U/L (Universal/Lokal) dan menentukan apakah alamat tersebut unik secara global (0), atau unik secara lokal (1). Secara default, semua alamat yang “dijahit oleh pabrikan” bersifat unik secara global, sehingga sebagian besar alamat MAC yang dikumpulkan berisi bit ketujuh yang disetel ke “0”. Dalam tabel pengidentifikasi OUI yang ditetapkan, hanya sekitar 130 entri yang memiliki bit U/L “1”, dan tampaknya ini adalah blok alamat MAC untuk kebutuhan khusus.

Dari bit keenam hingga bit pertama dari byte pertama, bit dari byte kedua dan ketiga dalam pengidentifikasi OUI, dan terlebih lagi bit dalam 4-6 byte dari alamat yang diberikan oleh pabrikan didistribusikan kurang lebih merata .

Jadi, dalam alamat MAC sebenarnya dari adaptor jaringan, bit-bit tersebut sebenarnya setara dan tidak memiliki arti teknologi, dengan pengecualian dua bit layanan byte tinggi.

Prevalensi

Ingin tahu produsen peralatan nirkabel mana yang paling populer? Mari kita gabungkan pencarian di database OUI dengan data dari sampel No.1.

Penjual
Pangsa perangkat, %

Apple
26,09

Samsung
19,79

Huawei Technologies Co.Ltd
7,80

Xiaomi Komunikasi Co Ltd
6,83

sony mobile communication inc
3,29

LG Electronics (Komunikasi Seluler)
2,76

ASUSTek COMPUTER Inc.
2,58

TCT seluler Ltd
2,13

perusahaan ZTE
2,00

tidak ditemukan dalam database IEEE
1,92

Lenovo Ponsel Teknologi Komunikasi Ltd.
1,71

HTC Corporation
1,68

Manufaktur Murata
1,31

Komunikasi InPro
1,26

perusahaan Microsoft
1,11

Shenzhen TINNO Ponsel Teknologi Corp
1,02

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

Nokia Corporation
0,88

Shanghai Angin Technologies Co. Ltd
0,74

Perusahaan Komunikasi Seluler Lenovo (Wuhan) Terbatas
0,71

Praktek menunjukkan bahwa semakin makmur kontingen pelanggan jaringan nirkabel di suatu lokasi, semakin besar pula pangsa perangkat Apple.

Keunikan

Apakah alamat MAC unik? Secara teori, ya, karena setiap produsen perangkat (pemilik blok MA) diharuskan memberikan alamat unik untuk setiap adaptor jaringan yang diproduksinya. Namun beberapa produsen chip yaitu:

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

atur tiga byte terakhir alamat MAC ke nomor acak, tampaknya setelah setiap perangkat di-boot ulang. Ada 1 ribu alamat seperti itu dalam sampel saya No.82.

Anda tentu saja dapat menetapkan sendiri alamat asing yang tidak unik dengan sengaja menetapkannya “seperti milik tetangga Anda”, mengidentifikasinya dengan sniffer, atau memilihnya secara acak. Dimungkinkan juga untuk secara tidak sengaja menetapkan sendiri alamat yang tidak unik, misalnya dengan memulihkan konfigurasi cadangan router seperti Mikrotik atau OpenWrt.

Apa yang akan terjadi jika ada dua perangkat di jaringan dengan alamat MAC yang sama? Itu semua tergantung pada logika peralatan jaringan (router berkabel, pengontrol jaringan nirkabel). Kemungkinan besar, kedua perangkat tidak akan berfungsi atau akan berfungsi sebentar-sebentar. Dari sudut pandang standar IEEE, perlindungan terhadap spoofing alamat MAC diusulkan untuk diselesaikan dengan menggunakan, misalnya, MACsec atau 802.1X.

Bagaimana jika Anda menginstal MAC dengan bit ketujuh atau kedelapan disetel ke “1”, mis. alamat lokal atau multicast? Kemungkinan besar, jaringan Anda tidak akan memperhatikan hal ini, tetapi secara formal alamat seperti itu tidak akan memenuhi standar, dan lebih baik tidak melakukannya.

Cara kerja pengacakan

Kita tahu bahwa untuk mencegah pelacakan pergerakan orang dengan memindai dan mengumpulkan gelombang udara, sistem operasi MAC ponsel pintar telah menggunakan teknologi pengacakan selama beberapa tahun. Secara teoritis, saat memindai gelombang udara untuk mencari jaringan yang dikenal, ponsel cerdas mengirimkan paket (kelompok paket) jenis permintaan probe 802.11 dengan alamat MAC sebagai sumbernya:

Segala sesuatu yang ingin Anda ketahui tentang alamat MAC

Pengacakan yang diaktifkan memungkinkan Anda untuk menentukan bukan alamat yang "dijahit", tetapi beberapa alamat sumber paket lainnya, yang berubah setiap siklus pemindaian, seiring waktu, atau dengan cara lain. Apakah itu berhasil? Mari kita lihat statistik alamat MAC yang dikumpulkan dari udara oleh apa yang disebut “Radar Wi-Fi”:

Seluruh sampel
Sampel hanya dengan nol bit ke-7

Jumlah catatan dalam database
3920000
305000

Nomor bit:
% sedikit "1"
% sedikit "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%

Gambarannya sangat berbeda.

Bit ke-8 dari byte pertama alamat MAC masih sesuai dengan sifat Unicast dari alamat SRC dalam paket permintaan probe.

Bit ke-7 diatur ke Lokal dalam 92.2% kasus, mis. Dengan tingkat keyakinan yang cukup, kita dapat berasumsi bahwa banyak sekali alamat yang dikumpulkan yang diacak, dan kurang dari 8% yang asli. Dalam hal ini, distribusi bit di OUI untuk alamat sebenarnya kira-kira sama dengan data pada tabel sebelumnya.

Pabrikan mana, menurut OUI, yang memiliki alamat acak (yaitu dengan bit ke-7 di “1”)?

Produsen oleh OUI
Bagikan di antara semua alamat

tidak ditemukan dalam database IEEE
62.45%

Google Inc.
37.54%

beristirahat
0.01%

Selain itu, semua alamat acak yang diberikan ke Google termasuk dalam OUI yang sama dengan awalan DA:A1:19. Apa awalan ini? Mari kita lihat ke dalam sumber Android.

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

Stock Android menggunakan OUI khusus yang terdaftar saat mencari jaringan nirkabel, salah satu dari sedikit OUI yang memiliki set bit ketujuh.

Hitung MAC nyata dari MAC acak

Mari kita 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 byte terbawahnya, adalah murni Acak.nextLong(). «Патентованное восстановление реального МАС» — надувательство. С большой долей уверенности можно ожидать, что производители Android-телефонов применяют и другие, не зарегистрированные OUI. Исходников iOS у нас нет, но скорее всего там применен схожий алгоритм.

Hal di atas tidak membatalkan kerja mekanisme lain untuk mendeanonimkan pelanggan Wi-Fi, berdasarkan analisis bidang lain dari kerangka permintaan penyelidikan, atau korelasi frekuensi relatif permintaan yang dikirim oleh perangkat. Namun, melacak pelanggan secara andal menggunakan cara eksternal sangatlah bermasalah. Data yang dikumpulkan akan lebih cocok untuk menganalisis beban rata-rata/puncak berdasarkan lokasi dan waktu, berdasarkan jumlah yang besar, tanpa mengacu pada perangkat dan orang tertentu. Hanya mereka yang berada “di dalam”, produsen OS seluler itu sendiri, dan aplikasi yang diinstal yang memiliki data akurat.

Apa bahayanya jika seseorang mengetahui alamat MAC perangkat Anda? Serangan penolakan layanan (denial-of-service) dapat dilancarkan baik pada jaringan kabel maupun nirkabel. Untuk perangkat nirkabel, ada juga kemungkinan keberadaannya di lokasi sensor dapat terdeteksi. Pemalsuan alamat dapat digunakan untuk meniru perangkat Anda, tetapi ini hanya akan berhasil jika tindakan keamanan tambahan (otorisasi dan/atau enkripsi) tidak diterapkan. 99.9% Orang-orang di sini tidak perlu khawatir tentang apa pun.

Alamat MAC lebih rumit dari yang terlihat, namun lebih sederhana dari yang seharusnya.

Sumber: www.habr.com

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS 🔥 Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster