Mọi thứ bạn muốn biết về địa chỉ MAC

Mọi thứ bạn muốn biết về địa chỉ MACMọi người đều biết rằng sáu byte này, thường được hiển thị ở định dạng thập lục phân, được gán cho card mạng tại nhà máy và dường như là ngẫu nhiên. Một số người biết rằng ba byte đầu tiên của địa chỉ là ID nhà sản xuất và ba byte còn lại được gán cho chúng. Người ta cũng biết rằng bạn có thể tự thiết lập Bất kỳ Địa chỉ. Nhiều người đã nghe nói về “địa chỉ ngẫu nhiên” trong Wi-Fi.

Chúng ta hãy tìm hiểu nó là gì.

Địa chỉ MAC (địa chỉ kiểm soát truy cập phương tiện) là mã định danh duy nhất được gán cho bộ điều hợp mạng, được sử dụng trong các mạng theo tiêu chuẩn IEEE 802, chủ yếu là Ethernet, Wi-Fi và Bluetooth. Chính thức nó được gọi là "mã định danh loại EUI-48". Ngay từ cái tên, rõ ràng địa chỉ này dài 48 bit, tức là. 6 byte. Không có tiêu chuẩn chung nào được chấp nhận để ghi địa chỉ (trái ngược với địa chỉ IPv4, trong đó các octet luôn được phân tách bằng dấu chấm). Địa chỉ này thường được viết dưới dạng sáu số thập lục phân cách nhau bằng dấu hai chấm: 00:AB:CD:EF:11: 22, mặc dù một số nhà sản xuất thiết bị thích ký hiệu 00 -AB-CD-EF-11-22 và thậm chí 00ab.cdef.1122.

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

Cấu trúc địa chỉ

Địa chỉ bao gồm một phần mã định danh của nhà sản xuất, OUI và mã định danh do nhà sản xuất chỉ định. Gán các mã định danh OUI (Organizationally Unique Identifier) ​​​ Занимается Tổ chức IEEE Trên thực tế, độ dài của nó có thể không chỉ là 3 byte (24 bit), mà là 28 hoặc 36 bit, từ đó các khối (Khối địa chỉ MAC, MA) gồm các địa chỉ thuộc loại Lớn (MA-L), Trung bình (MA-M) và Nhỏ lần lượt được hình thành (MA-S). Kích thước của khối được phát hành, trong trường hợp này, sẽ là 24, 20, 12 bit hoặc 16 triệu, 1 triệu, 4 ​​nghìn địa chỉ. Hiện tại có khoảng 38 nghìn khối được phân phối, chẳng hạn, chúng có thể được xem bằng nhiều công cụ trực tuyến IEEE hoặc Wireshark.

Ai sở hữu các địa chỉ?

Dễ dàng xử lý công khai dỡ bỏ cơ sở dữ liệu IEEE cung cấp khá nhiều thông tin. Ví dụ: một số tổ chức đã lấy rất nhiều khối OUI cho mình. Đây là những anh hùng của chúng ta:

Người bán
Số khối/bản ghi
Số lượng địa chỉ, triệu

Hệ thống Cisco
888
14208

Apple
772
12352

Samsung
636
10144

Công ty TNHH Công nghệ Huawei
606
9696

Tập đoàn Intel
375
5776

Tập đoàn ARRIS Inc.
319
5104

Tập đoàn Nokia
241
3856

Riêng
232
2704

Texas Instruments
212
3392

tập đoàn zte
198
3168

Cơ quan đăng ký IEEE
194
3072

Hewlett Packard
149
2384

Hon Hai Precision
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Mạng Juniper
110
1760

Sagemcom băng thông rộng SAS
97
1552

Công ty TNHH Công nghệ Viễn thông Fiberhome Công ty TNHH
97
1552

Công ty TNHH Truyền thông Xiaomi
88
1408

Công ty TNHH Viễn thông Di động Oppo Quảng Đông
82
1312

Google chỉ có 40 trong số đó và điều này không có gì đáng ngạc nhiên: bản thân họ không sản xuất nhiều thiết bị mạng.

Các khối MA không được cung cấp miễn phí, chúng có thể được mua với mức giá hợp lý (không tính phí đăng ký) với giá lần lượt là $3000, $1800 hoặc $755. Điều thú vị là, với số tiền bổ sung (mỗi năm), bạn có thể mua "ẩn" thông tin công khai về khối được phân bổ. Hiện tại có 232 người trong số họ, như có thể thấy ở trên.

Khi nào chúng ta sẽ hết địa chỉ MAC?

Tất cả chúng ta đều khá mệt mỏi với câu chuyện đã diễn ra suốt 10 năm rằng “địa chỉ IPv4 sắp hết”. Có, các khối IPv4 mới không còn dễ dàng có được nữa. Được biết, địa chỉ IP phân bố cực kỳ không đồng đều; Tuy nhiên, có những khối khổng lồ và chưa được sử dụng đúng mức thuộc sở hữu của các tập đoàn lớn và các cơ quan chính phủ Hoa Kỳ, với rất ít hy vọng phân phối lại chúng cho những người có nhu cầu. Sự phổ biến của NAT, CG-NAT và IPv6 đã khiến vấn đề thiếu địa chỉ công cộng bớt gay gắt hơn.

Một địa chỉ MAC có 48 bit, trong đó 46 bit có thể được coi là “hữu ích” (tại sao? đọc tiếp), cung cấp 246 hoặc 1014 địa chỉ, gấp 214 lần so với không gian địa chỉ IPv4.
Hiện tại, khoảng nửa nghìn tỷ địa chỉ đã được phân phối, tương đương 0.73% tổng khối lượng. Chúng ta vẫn còn rất rất xa mới hết địa chỉ MAC.

Bit ngẫu nhiên

Có thể giả định rằng các OUI được phân phối ngẫu nhiên và sau đó nhà cung cấp cũng chỉ định địa chỉ ngẫu nhiên cho từng thiết bị mạng riêng lẻ. Có phải vậy không? Hãy xem xét sự phân bổ các bit trong cơ sở dữ liệu địa chỉ MAC của các thiết bị 802.11 mà tôi sử dụng, được thu thập bởi các hệ thống ủy quyền hoạt động trong mạng không dây WNAM. Địa chỉ thuộc về các thiết bị thực đã kết nối với Wi-Fi trong nhiều năm ở ba quốc gia. Ngoài ra còn có một cơ sở dữ liệu nhỏ về các thiết bị mạng LAN có dây 802.3.

Hãy chia nhỏ từng địa chỉ MAC (sáu byte) của từng mẫu thành từng bit, từng byte và xem tần suất xuất hiện của bit “1” ở mỗi vị trí trong số 48 vị trí. Nếu bit được đặt theo cách hoàn toàn tùy ý thì xác suất nhận được “1” sẽ là 50%.

Lựa chọn Wi-Fi số 1 (RF)
Mẫu Wi-Fi số 2 (Belarus)
Lựa chọn Wi-Fi số 3 (Uzbekistan)
Lấy mẫu mạng LAN (RF)

Số lượng bản ghi trong cơ sở dữ liệu
5929000
1274000
366000
1000

Số 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%

Tại sao lại có sự bất công như vậy ở 7 và 8 bit? Hầu như luôn luôn có số không.

Thật vậy, tiêu chuẩn định nghĩa các bit này là đặc biệt (Wikipedia):
Mọi thứ bạn muốn biết về địa chỉ MAC

Bit thứ tám (từ đầu) của byte đầu tiên của địa chỉ MAC được gọi là bit Unicast/Multicast và xác định loại khung (khung) nào được truyền với địa chỉ này, thông thường (0) hoặc quảng bá (1) (multicast hoặc phát tin). Đối với giao tiếp bộ điều hợp mạng unicast thông thường, bit này được đặt thành “0” trong tất cả các gói được gửi tới nó.

Bit thứ bảy (từ đầu) của byte đầu tiên của địa chỉ MAC được gọi là bit U/L (Universal/Local) và xác định xem địa chỉ đó là duy nhất toàn cầu (0) hay duy nhất cục bộ (1). Theo mặc định, tất cả các địa chỉ “do nhà sản xuất ghép” là duy nhất trên toàn cầu, do đó, phần lớn các địa chỉ MAC được thu thập đều chứa bit thứ bảy được đặt thành “0”. Trong bảng định danh OUI được chỉ định, chỉ có khoảng 130 mục có bit U/L là “1”, và rõ ràng đây là các khối địa chỉ MAC dành cho các nhu cầu đặc biệt.

Từ bit thứ sáu đến bit đầu tiên của byte đầu tiên, các bit của byte thứ hai và thứ ba trong mã định danh OUI, và thậm chí nhiều hơn thế, các bit trong 4-6 byte của địa chỉ do nhà sản xuất chỉ định được phân bổ ít nhiều đồng đều .

Do đó, trong địa chỉ MAC thực của bộ điều hợp mạng, các bit thực sự tương đương và không có ý nghĩa công nghệ, ngoại trừ hai bit dịch vụ của byte cao.

Tỷ lệ

Bạn đang thắc mắc hãng sản xuất thiết bị không dây nào phổ biến nhất? Hãy kết hợp tìm kiếm trong cơ sở dữ liệu OUI với dữ liệu từ mẫu số 1.

Người bán
Tỷ lệ thiết bị, %

Apple
26,09

Samsung
19,79

Công ty TNHH Công nghệ Huawei
7,80

Công ty TNHH Truyền thông Xiaomi
6,83

công ty truyền thông di động sony
3,29

LG Electronics (Truyền thông di động)
2,76

CÔNG TY CỔ PHẦN MÁY TÍNH ASUSTek
2,58

Công ty TNHH di động TCT
2,13

tập đoàn zte
2,00

không tìm thấy trong cơ sở dữ liệu IEEE
1,92

Công ty TNHH Công nghệ Truyền thông Di động Lenovo
1,71

Tập đoàn HTC
1,68

Sản xuất Murata
1,31

InPro Comm
1,26

Tập đoàn Microsoft
1,11

Tập đoàn công nghệ di động TINNO Thâm Quyến
1,02

Công ty Truyền thông Công nghệ Di động Motorola (Vũ Hán) Công ty TNHH
0,93

Tập đoàn Nokia
0,88

Công ty công nghệ gió Thượng Hải Công ty TNHH
0,74

Công ty TNHH Truyền thông Di động Lenovo (Vũ Hán)
0,71

Thực tiễn cho thấy rằng đội ngũ thuê bao mạng không dây ở một địa điểm nhất định càng thịnh vượng thì thị phần thiết bị Apple càng lớn.

độc đáo

Địa chỉ MAC có phải là duy nhất không? Về lý thuyết là có, vì mỗi nhà sản xuất thiết bị (chủ sở hữu khối MA) được yêu cầu cung cấp một địa chỉ duy nhất cho mỗi bộ điều hợp mạng mà nó tạo ra. Tuy nhiên, một số nhà sản xuất chip, cụ thể là:

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

đặt ba byte cuối cùng của địa chỉ MAC thành một số ngẫu nhiên, rõ ràng là sau mỗi lần khởi động lại thiết bị. Có 1 nghìn địa chỉ như vậy trong mẫu số 82 của tôi.

Tất nhiên, bạn có thể đặt cho mình một địa chỉ nước ngoài, không phải là duy nhất bằng cách cố tình đặt địa chỉ đó “giống như địa chỉ của hàng xóm của bạn”, xác định địa chỉ đó bằng trình đánh hơi hoặc chọn ngẫu nhiên. Chẳng hạn, bạn cũng có thể vô tình đặt cho mình một địa chỉ không phải duy nhất bằng cách khôi phục cấu hình sao lưu của bộ định tuyến như Mikrotik hoặc OpenWrt.

Điều gì sẽ xảy ra nếu có hai thiết bị trên mạng có cùng địa chỉ MAC? Tất cả phụ thuộc vào logic của thiết bị mạng (bộ định tuyến có dây, bộ điều khiển mạng không dây). Rất có thể cả hai thiết bị sẽ không hoạt động hoặc hoạt động không liên tục. Từ quan điểm của các tiêu chuẩn IEEE, việc bảo vệ chống giả mạo địa chỉ MAC được đề xuất giải quyết bằng cách sử dụng MACsec hoặc 802.1X chẳng hạn.

Điều gì sẽ xảy ra nếu bạn cài đặt MAC với bit thứ bảy hoặc thứ tám được đặt thành “1”, tức là. địa chỉ cục bộ hay multicast? Rất có thể, mạng của bạn sẽ không chú ý đến điều này, nhưng về mặt hình thức, một địa chỉ như vậy sẽ không tuân thủ tiêu chuẩn và tốt hơn là không nên làm như vậy.

Cách ngẫu nhiên hoạt động

Chúng tôi biết rằng để ngăn chặn việc theo dõi chuyển động của mọi người bằng cách quét và thu thập sóng, hệ điều hành MAC của điện thoại thông minh đã sử dụng công nghệ ngẫu nhiên trong vài năm. Về mặt lý thuyết, khi quét sóng để tìm kiếm các mạng đã biết, điện thoại thông minh sẽ gửi một gói (nhóm gói) thuộc loại yêu cầu thăm dò 802.11 với địa chỉ MAC làm nguồn:

Mọi thứ bạn muốn biết về địa chỉ MAC

Tính năng ngẫu nhiên được bật cho phép bạn chỉ định không phải địa chỉ "được ghép" mà là một số địa chỉ nguồn gói khác, thay đổi theo từng chu kỳ quét, theo thời gian hoặc theo một cách nào khác. Nó có hoạt động không? Chúng ta hãy xem số liệu thống kê về các địa chỉ MAC được thu thập từ trên không bởi cái gọi là “Rađa Wi-Fi”:

Toàn bộ mẫu
Chỉ lấy mẫu với bit thứ 7 bằng XNUMX

Số lượng bản ghi trong cơ sở dữ liệu
3920000
305000

Số 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%

Hình ảnh hoàn toàn khác.

Bit thứ 8 của byte đầu tiên của địa chỉ MAC vẫn tương ứng với tính chất Unicast của địa chỉ SRC trong gói yêu cầu thăm dò.

Bit thứ 7 được đặt thành Cục bộ trong 92.2% trường hợp, tức là. Với mức độ tin cậy khá cao, chúng tôi có thể giả định rằng có rất nhiều địa chỉ được thu thập là ngẫu nhiên và dưới 8% là có thật. Trong trường hợp này, việc phân phối các bit trong OUI cho các địa chỉ thực như vậy gần như trùng khớp với dữ liệu trong bảng trước.

Theo OUI, nhà sản xuất nào sở hữu các địa chỉ ngẫu nhiên (tức là với bit thứ 7 trong “1”)?

Nhà sản xuất bởi OUI
Chia sẻ giữa tất cả các địa chỉ

không tìm thấy trong cơ sở dữ liệu IEEE
62.45%

Google Inc.
37.54%

nghỉ ngơi
0.01%

Hơn nữa, tất cả các địa chỉ ngẫu nhiên được gán cho Google đều thuộc cùng một OUI có tiền tố DA:A1:19. Tiền tố này là gì? Hãy nhìn vào nguồn Android.

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

Stock Android sử dụng OUI đã đăng ký đặc biệt khi tìm kiếm mạng không dây, một trong số ít mạng có tập hợp bit thứ bảy.

Tính MAC thực từ ngẫu nhiên

Chúng ta hãy xem ở đó:

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

Toàn bộ địa chỉ hoặc ba byte thấp hơn của nó là thuần túy Random.nextLong(). «Патентованное восстановление реального МАС» — надувательство. С большой долей уверенности можно ожидать, что производители Android-телефонов применяют и другие, не зарегистрированные OUI. Исходников iOS у нас нет, но скорее всего там применен схожий алгоритм.

Điều trên không hủy bỏ hoạt động của các cơ chế khác để khử ẩn danh người đăng ký Wi-Fi, dựa trên phân tích các trường khác của khung yêu cầu thăm dò hoặc mối tương quan giữa tần suất tương đối của các yêu cầu được thiết bị gửi. Tuy nhiên, việc theo dõi người đăng ký một cách đáng tin cậy bằng các phương tiện bên ngoài là cực kỳ khó khăn. Dữ liệu được thu thập sẽ phù hợp hơn để phân tích tải trung bình/cao điểm theo vị trí và thời gian, dựa trên số lượng lớn, không tham chiếu đến thiết bị và con người cụ thể. Chỉ những người “bên trong”, chính nhà sản xuất hệ điều hành di động và các ứng dụng đã cài đặt mới có dữ liệu chính xác.

Việc ai đó biết được địa chỉ MAC của thiết bị của bạn nguy hiểm ở điểm nào? Một cuộc tấn công từ chối dịch vụ (DoS) có thể được thực hiện trên cả mạng có dây và không dây. Đối với thiết bị không dây, cũng có khả năng sự hiện diện của nó tại vị trí của cảm biến có thể bị phát hiện. Giả mạo địa chỉ có thể được sử dụng để mạo danh thiết bị của bạn, nhưng điều này chỉ hoạt động nếu không có các biện pháp bảo mật bổ sung (xác thực và/hoặc mã hóa). 99.9% Người dân ở đây không có gì phải lo lắng.

Địa chỉ MAC phức tạp hơn tưởng tượng nhưng lại đơn giản hơn mức có thể.

Nguồn: www.habr.com

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster