Բոլորը գիտեն, որ այս վեց բայթերը, որոնք սովորաբար ցուցադրվում են տասնվեցական ձևաչափով, գործարանում նշանակվում են ցանցային քարտին և առաջին հայացքից պատահական են։ Ոմանք գիտեն, որ հասցեի առաջին երեք բայթերը արտադրողի նույնականացուցիչն են, իսկ մնացած երեք բայթերը նշանակվում են դրանց։ Հայտնի է նաև, որ դուք կարող եք ինքներդ սահմանել կամայական հասցե։ Շատերը լսել են Wi-Fi-ում «պատահական հասցեների» մասին։
Եկեք պարզենք, թե ինչ է դա։
MAC հասցեն (մեդիա մուտքի կառավարման հասցե) ցանցային ադապտերին տրված եզակի նույնականացուցիչ է, որն օգտագործվում է 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:
Исторически адреса прошивались в ПЗУ чипсета сетевой карты без возможности их модификации без флеш-программатора, но в настоящее время адрес может быть изменен программно, из операционной системы. Задать вручную МАС адрес сетевой карте можно в Linux и MacOS (всегда), Windows (почти всегда, если позволит драйвер), Android (только рутованный); с iOS (без рута) подобный трюк невозможен.
Հասցեի կառուցվածքը
Հասցեն բաղկացած է արտադրողի նույնականացուցիչից՝ OUI-ից և արտադրողի կողմից նշանակված նույնականացուցիչից։ OUI (կազմակերպչականորեն եզակի նույնականացուցիչ) նույնականացուցիչների նշանակում IEEE կազմակերպություն։ Իրականում, դրա երկարությունը կարող է լինել ոչ միայն 3 բայթ (24 բիթ), այլև 28 կամ 36 բիթ, որոնցից համապատասխանաբար ձևավորվում են Large (MA-L), Medium (MA-M) և Small (MA-S) տեսակի հասցեների բլոկներ (MAC հասցեի բլոկ, MA): Այս դեպքում թողարկված բլոկի չափը կլինի 24, 20, 12 բիթ կամ 16 միլիոն, 1 միլիոն, 4 հազար միավոր հասցե։ Այս պահին բաշխված է մոտ 38 հազար բլոկ, դրանք կարելի է դիտել բազմաթիվ առցանց գործիքներով, օրինակ՝ կամ .
Ո՞ւմ են պատկանում հասցեները։
Հանրային հասանելիության հեշտ մշակում IEEE-ն բավականին շատ տեղեկատվություն է տրամադրում: Օրինակ, որոշ կազմակերպություններ իրենց համար վերցրել են OUI-ի բազմաթիվ բլոկներ: Ահա մեր հերոսները՝
Վաճառող
Բլոկների/գրառումների քանակը
Հասցեների քանակը, միլիոն
Cisco Systems Inc
888
14208
Apple
772
12352
Samsung
636
10144
«Հուավեյ Թեքնոլոջիս» ՍՊԸ
606
9696
Intel կորպորացիան
375
5776
ARRIS Group Inc.
319
5104
Nokia կորպորացիան
241
3856
Անձնական
232
2704
TEXAS INSTRUMENTS
212
3392
ZTE կորպորացիա
198
3168
IEEE գրանցման մարմին
194
3072
Hewlett Packard
149
2384
Hon Hai Precision
136
2176
TP LINK
134
2144
Dell Inc.
123
1968
Juniper Networks- ը
110
1760
Sagemcom Broadband SAS
97
1552
Ֆայբերհոմ Հեռահաղորդակցության Տեխնոլոգիաների Ընկերություն ՍՊԸ
97
1552
Xiaomi Communications Co Ltd
88
1408
Գուանդուն Օպպո Մոբայլ Հեռահաղորդակցության Կորպորացիա ՍՊԸ
82
1312
Google-ն ունի դրանցից ընդամենը 40-ը, ինչը զարմանալի չէ. նրանք իրենք շատ ցանցային սարքեր չեն արտադրում։
MA բլոկները անվճար չեն տրամադրվում, դրանք կարելի է ձեռք բերել ողջամիտ գնով (առանց բաժանորդագրության վճարի) համապատասխանաբար $3000, $1800 կամ $755 գնով: Հետաքրքիր է, որ լրացուցիչ գումարի դիմաց (տարեկան) կարելի է գնել հատկացված բլոկի մասին «թաքնված» հանրային տեղեկատվություն: Այս պահին դրանցից 232-ը կան, ինչպես կարող եք տեսնել վերևում:
Երբ MAC հասցեները սպառվում են
Մենք բոլորս բավականին հոգնել ենք արդեն 10 տարի շարունակվող պատմություններից այն մասին, թե ինչպես են «IPv4 հասցեները սպառվելու»: Այո, այլևս հեշտ չէ նոր IPv4 բլոկներ ստանալ: Միևնույն ժամանակ, հայտնի է, որ IP հասցեները կան հսկայական և թերօգտագործվող բլոկներ, որոնք պատկանում են խոշոր կորպորացիաներին և ԱՄՆ կառավարական գործակալություններին, չնայած դրանք կարիքավորներին վերաբաշխելու քիչ հույս կա: NAT-ի, CG-NAT-ի և IPv6-ի տարածումը հանրային հասցեների պակասի խնդիրը դարձրել է պակաս սուր:
MAC հասցեն ունի 48 բիթ, որոնցից 46-ը կարելի է համարել «օգտակար» (ինչու՞, շարունակեք կարդալ), ինչը տալիս է 246 կամ 1014 հասցե, որը 214 անգամ ավելի է, քան IPv4 հասցեների տարածությունը։
Ներկայումս հատկացված է մոտ կես տրիլիոն հասցե, կամ ընդհանուրի ընդամենը 0.73%-ը։ Մենք դեռ շատ հեռու ենք MAC հասցեների սպառումից։
Բիթերի պատահականություն
Կարելի է ենթադրել, որ OUI-ները բաշխվում են պատահականորեն, և այնուհետև մատակարարը հասցեներ է հատկացնում առանձին ցանցային սարքերին նույնքան պատահականորեն: Արդյո՞ք սա ճիշտ է: Եկեք նայենք 802.11 սարքերի MAC հասցեների տվյալների բազաների բիթերի բաշխմանը, որոնք ես ունեմ, որոնք հավաքագրվել են անլար ցանցերում գործող լիազորման համակարգերի կողմից: Հասցեները պատկանում են իրական սարքերի, որոնք մի քանի տարի շարունակ միացված են եղել Wi-Fi-ին երեք երկրներում: Բացի այդ, կա 802.3 լարային LAN սարքերի փոքր տվյալների բազա:
Եկեք յուրաքանչյուր նմուշի յուրաքանչյուր MAC հասցեն (վեց բայթ) բաժանենք բայթ առ բայթ և նայենք «1» բիթի հաճախականությանը 48 դիրքերից յուրաքանչյուրում։ Եթե բիթը սահմանված է լիովին պատահականորեն, ապա «1» ստանալու հավանականությունը պետք է լինի 50%։
Wi-Fi նմուշ #1 (RF)
Wi-Fi նմուշ #2 (Բելառուս)
Wi-Fi նմուշ #3 (Ուզբեկստան)
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%
Որտեղի՞ց է գալիս 7 և 8 բիթերի այս անարդարությունը։ Այնտեղ գրեթե միշտ զրոներ կան։
Իրոք, ստանդարտը այս բիթերը սահմանում է որպես հատուկ ():

MAC հասցեի առաջին բայթի ութերորդ (սկզբից) բիթը կոչվում է Unicast/Multicast բիթ և որոշում է, թե այս հասցեով ինչ տեսակի կադր է փոխանցվում՝ նորմալ (0) թե՞ հեռարձակում (1) (multicast կամ broadcast): Ցանցային ադապտերի նորմալ, unicast փոխազդեցության համար այս բիթը դրվում է «0»՝ դրանով ուղարկված բոլոր փաթեթներում:
MAC հասցեի առաջին բայթի յոթերորդ (սկզբից) բիթը կոչվում է U/L (Universal/Local) բիթ և որոշում է, թե հասցեն գլոբալ եզակի է (0), թե տեղական եզակի (1): Ըստ լռելյայնի, բոլոր «արտադրողի կողմից ծրագրավորված» հասցեները գլոբալ եզակի են, ուստի հավաքված MAC հասցեների ճնշող մեծամասնության յոթերորդ բիթը սահմանված է «0»: Նշանակված OUI նույնականացուցիչների աղյուսակում միայն մոտ 130 գրառում ունի «1» U/L բիթը, և, ըստ երևույթին, դրանք հատուկ նպատակներով MAC հասցեների բլոկներ են:
Առաջին բայթի վեցերորդից մինչև առաջին բիթերը, OUI նույնականացուցիչների երկրորդ և երրորդ բայթերը, և հատկապես արտադրողի կողմից նշանակված հասցեի 4-րդից 6-րդ բայթերի բիթերը բաշխված են մոտավորապես հավասարաչափ։
Այսպիսով, ցանցային ադապտերի իրական MAC հասցեում բիթերը իրականում համարժեք են և որևէ տեխնոլոգիական նշանակություն չունեն, բացառությամբ ամենակարևոր բայթի երկու սպասարկման բիթերի:
Տարածվածությունը
Հետաքրքիր է, թե անլար սարքավորումների որ արտադրողներն են ամենատարածվածը։ Եկեք համատեղենք OUI տվյալների բազայի որոնումը #1 նմուշի տվյալների հետ։
Վաճառող
Սարքերի մասնաբաժինը, %
Apple
26,09
Samsung
19,79
Huawei Technologies Co. ՍՊԸ
7,80
Xiaomi Communications Co Ltd
6,83
Sony Mobile Communications Inc
3,29
LG Electronics (բջջային կապ)
2,76
ASUSTEK COMPUTER INC.
2,58
TCT մոբայլ ՍՊԸ
2,13
ZTE կորպորացիա
2,00
չի գտնվել IEEE տվյալների բազայում
1,92
Lenovo Mobile Communication Technology Ltd.
1,71
HTC կորպորացիան
1,68
Մուրատա Արտադրություն
1,31
InPro Comm
1,26
Microsoft կորպորացիան
1,11
Շենժեն TINNO Mobile Technology Corp.
1,02
Motorola (Ուհան) Mobility Technologies Communication Co. Ltd.
0,93
Nokia կորպորացիան
0,88
Շանհայի քամու տեխնոլոգիաների ընկերություն ՍՊԸ
0,74
Lenovo Mobile Communication (Wuhan) Company Limited
0,71
Փորձը ցույց է տալիս, որ որքան հարուստ է անլար ցանցի բաժանորդների կոնտինգենտը տվյալ վայրում, այնքան մեծ է Apple սարքերի բաժինը։
ԵԶԱԿԻՈՒԹՅՈՒՆԸ
MAC հասցեները եզակի՞ են։ Տեսականորեն՝ այո, քանի որ յուրաքանչյուր սարքի արտադրող (MA բլոկի սեփականատեր) պարտավոր է տրամադրել եզակի հասցե իր արտադրած յուրաքանչյուր ցանցային ադապտերի համար։ Այնուամենայնիվ, որոշ չիպերի արտադրողներ, մասնավորապես՝
- 00:0A:F5 Airgo Networks, Inc. (այժմ՝ Qualcomm)
- 00:08:22 InPro Comm (այժմ՝ MediaTek)
MAC հասցեի վերջին երեք բայթերը պատահական թիվ սահմանել, ըստ երևույթին, սարքի յուրաքանչյուր վերագործարկումից հետո: Իմ #1 նմուշում կար 82 հազար նման հասցե:
Իհարկե, դուք կարող եք ինքներդ ձեզ համար սահմանել օտար, ոչ եզակի հասցե՝ այն միտումնավոր սահմանելով «ինչպես ձեր հարևանինը», այն հայտնաբերելով որոնիչով կամ պատահականորեն ընտրելով: Հնարավոր է նաև պատահաբար ձեզ համար սահմանել ոչ եզակի հասցե՝, օրինակ, վերականգնելով Mikrotik-ի կամ OpenWrt-ի նման ռաութերի կազմաձևման պահուստային պատճենը:
Ի՞նչ է պատահում, եթե ցանցում կան երկու սարք նույն MAC հասցեով: Ամեն ինչ կախված է ցանցային սարքավորումների տրամաբանությունից (լարային ռաութեր, անլար ցանցի կառավարիչ): Ամենայն հավանականությամբ, երկու սարքերն էլ կամ չեն աշխատի, կամ կաշխատեն ընդհատումներով: IEEE ստանդարտների տեսանկյունից, MAC հասցեի կեղծումից պաշտպանությունը առաջարկվում է լուծել, օրինակ, MACsec-ի կամ 802.1X-ի միջոցով:
Ի՞նչ անել, եթե դուք ձեզ համար MAC հասցե եք սահմանել՝ յոթերորդ կամ ութերորդ բիթը «1» դարձնելով, այսինքն՝ տեղական կամ բազմահեռարձակման հասցե։ Ամենայն հավանականությամբ, ձեր ցանցը դրան ուշադրություն չի դարձնի, բայց ձևականորեն նման հասցեն չի համապատասխանի ստանդարտին, և ավելի լավ է դա չանել։
Ինչպես է գործում պատահականացումը
Մենք գիտենք, որ եթերային ալիքները սկանավորելու և MAC հասցեները հավաքելու միջոցով մարդկանց շարժումների հետևումը կանխելու համար սմարթֆոնների օպերացիոն համակարգերը մի քանի տարի շարունակ օգտագործում են պատահականացման տեխնոլոգիա։ Տեսականորեն, հայտնի ցանցերի համար եթերային ալիքները սկանավորելիս սմարթֆոնն ուղարկում է 802.11 զոնդային հարցման տեսակի փաթեթ (կամ փաթեթների խումբ)՝ MAC հասցեն որպես աղբյուր նշելով։

Միացված պատահականացումը թույլ է տալիս նշել ոչ թե «լարային» հասցեն, այլ փաթեթի աղբյուրի որևէ այլ հասցե, որը փոխվում է յուրաքանչյուր սկանավորման ցիկլի հետ, ժամանակի ընթացքում կամ այլ կերպ: Արդյո՞ք դա աշխատում է: Եկեք նայենք այսպես կոչված «Wi-Fi ռադարի» կողմից օդից հավաքված MAC հասցեների վիճակագրությանը.
Ամբողջ նմուշը
Ընտրություն միայն զրո 7-րդ բիթով
Տվյալների բազայում գրառումների քանակը
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%
Պատկերը բոլորովին այլ է։
MAC հասցեի առաջին բայթի 8-րդ բիթը դեռևս համապատասխանում է զոնդի հարցման փաթեթում SRC հասցեի Unicast բնույթին։
7-րդ բիթը դրվում է Local-ի վրա դեպքերի 92.2%-ում, այսինքն՝ մենք կարող ենք բավականին վստահությամբ ենթադրել, որ հավաքված հասցեների հենց այդքանն է պատահականացված, և 8%-ից պակասն է իրական։ Նման իրական հասցեների համար OUI-ում բիթերի բաշխումը մոտավորապես համապատասխանում է նախորդ աղյուսակի տվյալներին։
OUI-ի համաձայն, որ արտադրողն ունի պատահականացված հասցեներ (այսինքն՝ 7-րդ բիթը «1» է դրված):
Արտադրող՝ OUI
Կիսվել բոլոր հասցեների միջև
չի գտնվել IEEE տվյալների բազայում
62.45%
Google Inc.
37.54%
հանգստանալ
0.01%
Այս դեպքում, Google-ին վերագրված բոլոր պատահականացված հասցեները պատկանում են մեկ OUI-ի՝ նախածանցով ԴԱ:Ա1:19Ի՞նչ է այս նախածանցը։ Եկեք նայենք .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");Ստանդարտ Android-ը օգտագործում է հատուկ, գրանցված OUI՝ անլար ցանցեր որոնելու համար, որը այն քչերից մեկն է, որտեղ տեղադրված է յոթերորդ բիթ։
Հաշվարկեք իրական MAC-ը պատահականից
Եկեք նայենք այնտեղ.
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;
}
Ամբողջ հասցեն, կամ դրա ստորին երեք բայթերը, մաքուր են Պատահական.nextLong(). «Патентованное восстановление реального МАС» — надувательство. С большой долей уверенности можно ожидать, что производители Android-телефонов применяют и другие, не зарегистрированные OUI. Исходников iOS у нас нет, но скорее всего там применен схожий алгоритм.
Վերոնշյալը չի չեղարկում Wi-Fi բաժանորդների անանունացման այլ մեխանիզմների աշխատանքը, որոնք հիմնված են զոնդային հարցման շրջանակի այլ դաշտերի վերլուծության կամ սարքի կողմից ուղարկված հարցումների հարաբերական հաճախականության փոխհարաբերության վրա: Այնուամենայնիվ, արտաքին միջոցներով բաժանորդին հուսալիորեն հետևելը չափազանց խնդրահարույց է: Հավաքված տվյալներն ավելի հարմար են միջին/գագաթնակետային բեռը գտնվելու վայրի և ժամանակի վերլուծության համար՝ մեծ թվերի հիման վրա, առանց կոնկրետ սարքերի և մարդկանց հղում անելու: Միայն «ներսում» գտնվողներն ունեն ճշգրիտ տվյալներ՝ բջջային օպերացիոն համակարգերի արտադրողները և տեղադրված հավելվածները:
Что может быть опасного в том, что кто-то другой узнает МАС-адрес вашего устройства? Для проводных и беспроводных сетей можно организовать атаку «отказ в обслуживании». Для беспроводного устройства, к тому же, с некоторой вероятностью можно зафиксировать момент появления в месте, где установлен сенсор. Подменой адреса можно попробовать «представиться» вашим устройством, что может сработать, только если не применяется дополнительных средств защиты (авторизация и/или шифрование). 99.9% людей здесь не о чем волноваться.
MAC հասցեն ավելի բարդ է, քան թվում է, բայց ավելի պարզ, քան կարող էր լինել։
Source: www.habr.com
