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ì.

МАС адрес (media access control address) – уникальный идентификатор, назначенный сетевому адаптеру, применяется в сетях стандартов IEEE 802, в основном Ethernet, Wi-Fi и Bluetooth. Официально он называется «идентификатором типа EUI-48». Из названия очевидно, что адрес имеет длину в 48 бит, т.е. 6 байт. Общепринятого стандарта на написание адреса нет (в противоположность IPv4 адресу, где октеты всегда разделяют точками).Обычно он записывается как шесть шестнадцатеричных чисел, разделенных двоеточием: 00:AB:CD:EF:11:22, хотя некоторые производители оборудования предпочитают запись вида 00-AB-CD-EF-11-22 и даже 00ab.cdef.1122.

Trước đây, các địa chỉ được flash vào ROM của chipset card mạng mà không có khả năng sửa đổi chúng mà không cần bộ lập trình flash, nhưng ngày nay địa chỉ có thể được thay đổi theo chương trình từ hệ điều hành. Bạn có thể đặt thủ công địa chỉ MAC của card mạng trong Linux và MacOS (luôn luôn), Windows (hầu như luôn luôn, nếu trình điều khiển cho phép), Android (chỉ đã root); Với iOS (không có root) thủ thuật như vậy là không thể.

Cấu trúc địa chỉ

Адрес состоит из части идентификатора производителя, OUI, и идентификатора, присваиваемого производителем. Назначением идентификаторов 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 базы данных выгрузки IEEE даёт довольно много информации. Например, некоторые организации забрали себе много OUI блоков. Вот наши герои:

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

Huawei Technologies Co.Ltd
606
9696

Tập đoàn Intel
375
5776

ARRIS Group 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

Guangdong Oppo Mobile Telecommunications Corp.Ltd
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.

Блоки МА не предоставляются бесплатно, их можно приобрести за разумные деньги (без абонентской платы) за $3000, $1800 или $755 соответственно. Интересно, что за дополнительные деньги (в год) можно приобрести «сокрытие» публичной информации о выделенном блоке. Таких сейчас, как видно выше, 232.

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

Мы все порядком устали от не прекращающихся уже лет 10 историй о том, что «IPv4 адреса вот-вот кончатся». Да, новые блоки IPv4 получить уже непросто. При этом известно, что IP адреса распределены крайне неравномерно; 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.

Случайность бит

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. Адреса принадлежат реальным устройствам, подключавшихся к Wi-Fi на протяжении нескольких лет в трех странах. В дополнение идет маленькая база 802.3-устройств проводной ЛВС.

Разобьем каждый МАС-адрес (шесть байт) каждой из выборок на биты побайтово, и посмотрим на частоту появления бита «1» в каждой из 48 позиций. Если бит выставлен совершенно произвольным образом, то вероятность получить «1» должна быть 50%.

Lựa chọn Wi-Fi số 1 (RF)
Выборка Wi-Fi №2 (Беларусь)
Выборка Wi-Fi №3 (Узбекистан)
Lấy mẫu mạng LAN (RF)

Число записей в базе
5929000
1274000
366000
1000

Номер бита:
% бит «1»
% бит «1»
% бит «1»
% бит «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

Восьмой (с начала) бит первого байта МАС адреса называется Unicast/Multicast битом и определяет, какого типа кадр (фрейм) передается с этим адресом, обычный (0) или широковещательный (1) (мультикаст или броадкаст). Для обычного, unicast взаимодействия сетевого адаптера, этот бит выставлен в «0» во всех пакетах, им отправляемых.

Седьмой (с начала) бит первого байта МАС адреса называется U/L (Universal/Local) битом и определяет, является ли адрес глобально уникальным (0), или локально уникальным (1). По умолчанию, все «прошитые изготовителем» адреса глобально уникальны, поэтому подавляющее число собранных МАС адресов содержат седьмой бит выставленным в «0». В таблице присвоенных идентификаторов OUI только порядка 130 записей имеет U/L бит «1», и по всей видимости это блоки МАС адресов для специальных нужд.

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 .

Таким образом, в реальном МАС-адресе сетевого адаптера биты фактически равноценны и не несут технологического смысла, за исключением двух служебных бит старшего байта.

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

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

TCT mobile ltd
2,13

tập đoàn zte
2,00

не найден в базе 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

Murata Manufactuaring
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

Lenovo Mobile Communication (Wuhan) Company Limited
0,71

Практика показывает, что чем зажиточнее контингент абонентов беспроводной сети в данном месте, тем больше доля устройств Apple.

độc đáo

Уникальны ли МАС адреса? В теории да, поскольку каждый из производителей устройств (владельцев блока МА) обязан обеспечивать уникальный адрес для каждого из выпускаемых им сетевых адаптеров. Однако некоторые производители чипов, а именно:

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

выставляют последние три байта МАС адреса в случайное число, по всей видимости, после каждой перезагрузки устройства. Таких адресов в моей выборке №1 нашлось 82 тысячи.

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.

Что будет, если в сети будет присутствовать два устройства с одним МАС адресом? Все зависит от логики сетевого оборудования (проводного роутера, контроллера беспроводной сети). Скорее всего, оба устройства или не будут работать, или будут работать с перебоями. С точки зрения стандартов IEEE, защиту от подделки МАС адресов предлагается решать при помощи, например, MACsec или 802.1Х.

Đ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

Мы знаем, что с целью предотвратить отслеживание перемещения людей путем сканирования эфира и сбора МАС-операционные системы смартфонов уже несколько лет применяют технологию рандомизации. Теоретически, при сканировании эфира в поиске известных сетей смартфон отправляет пакет (группу пакетов) типа 802.11 probe request с МАС-адресом в качестве источника:

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

Число записей в базе
3920000
305000

Номер бита:
% бит «1»
% бит «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.

8й бит первого байта МАС адреса по-прежнему соответствует Unicast-природе SRC-адреса в probe request пакете.

7й бит в 92.2% случаев установлен в Local, т.е. с достаточной долей уверенности можно считать, что именно столько собранных адресов относится к рандомизированным, а менее 8% — к реальным. При этом распределение бит в OUI для таких реальных адресов примерно совпадает с данными предыдущей таблицы.

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”)?

Производитель по OUI
Chia sẻ giữa tất cả các địa chỉ

не найден в базе 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 исходники Android.

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

Стоковый андроид в поиске беспроводных сетей использует специальный, зарегистрированный OUI, один из немногих с установленным седьмым битом.

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(). “Phục hồi độc quyền MAC thực” là một trò lừa đảo. Với độ tin cậy cao, chúng ta có thể hy vọng rằng các nhà sản xuất điện thoại Android sẽ sử dụng các OUI khác chưa được đăng ký. Chúng tôi không có mã nguồn iOS nhưng rất có thể thuật toán tương tự được sử dụng ở đó.

Đ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.

Что может быть опасного в том, что кто-то другой узнает МАС-адрес вашего устройства? Для проводных и беспроводных сетей можно организовать атаку «отказ в обслуживании». Для беспроводного устройства, к тому же, с некоторой вероятностью можно зафиксировать момент появления в месте, где установлен сенсор. Подменой адреса можно попробовать «представиться» вашим устройством, что может сработать, только если не применяется дополнительных средств защиты (авторизация и/или шифрование). 99.9% людей здесь не о чем волноваться.

МАС-адрес сложнее, чем кажется, но проще, чем мог бы быть.

Nguồn: www.habr.com

Thêm một lời nhận xét