silabs 21Q2 անվտանգ BLE սարք Անվտանգության լաբորատորիա
BLE Security Lab ձեռնարկ
Այս լաբորատորիայում դուք կտեսնեք, թե ինչպես նախագծել ավելի ապահով BLE սարք: Մենք կսկսենք ավարտիցview ինչպես օգտագործել փաթեթի որոշ առանձնահատկություններ և անցնել մի քանի ընդհանուր խորհուրդների ավելի անվտանգ կապերի տեխնիկայի վերաբերյալ, և վերջապես մենք կտեսնենք, թե ինչպես օգտագործել սարքի վկայագրերը BLE-ի վրա՝ ծայրամասային սարքը որպես վավերական ճանաչելու համար:
Սկսել
Bluetooth սampհավելվածը, որի վրա կկառուցեք, նախատեսված է օգտագործելու համար bootloader-ով: Եթե դուք աշխատում եք բոլորովին նոր EFR32MG21B-ի հետ, այն չի ունենա բեռնիչ: Դուք կարող եք գտնել նախապես կառուցված bootloader հարթակում\bootloader\sample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a ձեր SDK պանակը:
- Սկսեք սոց-դատարկ սample հավելվածը։ Այս սample հավելվածը օգտագործվում է որպես ձևանմուշ և լավ մեկնարկային կետ է ցանկացած BLE հավելվածի համար:
- Բացեք Silicon Labs Project Wizard-ը Simplicity Studio-ից File մենյու -> նոր.
- Ընտրեք BRD4181C և սեղմեք «հաջորդ» կոճակը:
- Սեղմեք «Bluetooth (9)» վանդակը տեխնոլոգիայի տեսակի տակ:
- Նշեք «Bluetooth – SoC Empty» և սեղմեք հաջորդը:
- Սեղմեք «Ավարտել» կոճակը:
- Այժմ դուք կարող եք ավելացնել որոշ բնութագրեր՝ տեսնելու, թե ինչպես են պաշտպանված և չպաշտպանված բնութագրերը տարբեր կերպ են վերաբերվում:
- Բացեք նախագծի slcp-ն file կրկնակի սեղմելով այն Project Explorer-ի պատուհանում
- Նշեք «ԾՐԱԳՐԱԿԱՆ ԿԱԶՄԱԿԵՐՊՆԵՐ» ներդիրը և բացեք GATT-ի կազմաձևման գործիքը, ինչպես ցույց է տրված ստորև.
Եվ gatt_configuration.btconf-ը ներմուծելու համար օգտագործեք ստորև ներկայացված ներմուծման գործիքը file տրամադրված նյութերի սերվերի թղթապանակից:
GATT տվյալների բազան ունի մաքսային ծառայություն, որը կոչվում է «Ուսուցում», որի որոշ տվյալները պաշտպանված են, իսկ որոշները՝ ոչ: Սա թույլ է տալիս համեմատել, թե ինչ է տեղի ունենում, երբ փորձում եք մուտք գործել պաշտպանված հատկանիշ և անպաշտպան: Սա շատ տարրական անվտանգությամբ սարք պատրաստելու արագ միջոց է:
- Մենք կօգտագործենք սերիական միացքը՝ Simplicity Studio-ի վահանակում տպելու համար՝ հետևելու, թե ինչ է կատարվում հավելվածում: Այս բաղադրիչները գտնելու ամենադյուրին ճանապարհը դրանք փնտրելն է ԾՐԱԳՐԱԿԱՆ ԲԱՂԱԴՐՈՒԹՅՈՒՆՆԵՐ երկխոսության մեջ, ինչպես ցույց է տրված.
-
- Տեղադրեք IO Stream USART բաղադրիչը
- Տեղադրեք IO Stream Retarget STDIO բաղադրիչը
- Տեղադրեք ստանդարտ I/O բաղադրիչը
- Տեղադրեք Log բաղադրիչը
- Բացեք տախտակի կառավարման բաղադրիչը և միացրեք «Միացնել վիրտուալ COM UART-ը»
- Աջ սեղմեք ադապտերի վրա «Վրիպազերծման ադապտերների» վահանակում և ընտրեք «Գործարկման վահանակ»: Ընտրեք «Serial 1» ներդիրը և տեղադրեք կուրսորը վահանակի պատուհանի տեքստի մուտքագրման դաշտում և սեղմեք enter՝ վահանակը արթնացնելու համար:
-
- Ստեղծեք տեղական փոփոխական sl_bt_on_event()-ում, որը գտնվում է app.c-ում՝ կապի բռնակը պահելու համար: Փոփոխականը պետք է ստատիկ լինի, քանի որ այս ֆունկցիան կանչվում է ամեն անգամ, երբ միջոցառումը բարձրացվում է կույտի կողմից, և մենք ցանկանում ենք, որ արժեքը մնայուն լինի: Միացման բռնակը կօգտագործվի ավելի ուշ
լաբորատորիայի բաժինը:
- Տեղադրեք որոշ app_log() հայտարարություններ իրադարձությունների համար՝ տեսնելու, թե երբ ենք մենք կապակցված, անվտանգության ռեժիմները և այլն
-
- Ներառեք app_log.h վերնագիրը file
- sl_bt_evt_connection_opened – տպեք կապի բռնակը և պահպանեք կապի բռնակը: Եթե կապի բռնակը 0xFF է, ապա միացված սարքերի միջև կապ գոյություն չունի: Փոփոխեք գոյություն ունեցող իրադարձությունների մշակիչը, որպեսզի այն նման լինի հետևյալին.
- sl_bt_evt_connection_parameters – անվտանգության ռեժիմ: Դա արվում է, որպեսզի տեսնեք, թե երբ է փոխվում անվտանգության ռեժիմը: Տարբերություն կա անվտանգության ռեժիմների համարակալման մեջ, որտեղ անվտանգության ռեժիմ 1-ը թվարկված է 0 արժեքով և այլն: Ձեր դիմումին ավելացրեք հետևյալ իրադարձությունների մշակիչը.
- sl_bt_evt_connection_closed_id. Այս իրադարձությունների մշակիչը փոփոխվել է՝ կապի բռնիչը թարմացնելու համար: 0xFF արժեքը օգտագործվում է նշելու, որ ակտիվ կապ չկա: App_log() հրամանն օգտագործվում է կապի փակման պատճառը տպելու համար, կարգավիճակի կոդերի ցանկն այստեղ է: Փոփոխեք գոյություն ունեցող իրադարձությունների մշակիչը, որպեսզի այն նման լինի հետևյալին.
- Ներառեք app_log.h վերնագիրը file
-
- Կառուցեք և լուսաբանեք նախագիծը: Այս պահին մենք կվարենք սample հավելվածը տեսնելու համար, թե ինչպես է այն իրեն պահում առանց որևէ փոփոխության, բացի GATT տվյալների բազայից:
- Միացեք EFRConnect բջջային հավելվածին հետևյալ կերպ.
-
- Հպեք «Bluetooth զննարկիչ» պատկերակին:
- Հպեք «Միացեք» պատկերակին «Ուսուցում» անունով սարքի վրա:
-
- Կարդացեք անպաշտպան բնութագիրը հետևյալ կերպ.
-
- Հպեք «Լրացուցիչ տեղեկություններ» հղմանը անհայտ ծառայության տակ՝ UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0:
- Կարդացեք անպաշտպան բնութագիրը՝ UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c՝ սեղմելով «Կարդալ» պատկերակը: Այստեղ անակնկալներ չկան: Քանի որ բնութագիրը որևէ կերպ պաշտպանված չէ, այն կուղարկվի բաց տեքստով:
-
- Այժմ կարդացեք պաշտպանված բնութագիրը՝ UUID d4261dbb-dcd0-daab-ec95-deec088d532b: Ձեր բջջային հեռախոսը պետք է հուշի ձեզ զուգավորել և միանալ, հաղորդագրությունը կարող է տարբեր լինել՝ կախված ձեր բջջային ՕՀ-ից: Այն բանից հետո, երբ դուք ընդունում եք զուգակցման հարցումը, դուք պետք է հաղորդագրություն ուղարկեք վահանակի վրա հետևյալ կերպ.
ՆշումԱյս ձեռնարկի վերջում գտնվող Հավելված Ա-ն պարունակում է մուտքի/ելքի հնարավորությունների և զուգակցման մեթոդների համառոտ տեղեկանք: Հավելված B-ն ամփոփում է Bluetooth անվտանգության ռեժիմները:
Անվտանգության մենեջերի կոնֆիգուրացիա
Անվտանգության կառավարիչը Bluetooth փաթեթի մի մասն է, որը որոշում է, թե անվտանգության որ հատկանիշներն են օգտագործվում: Այս հատկանիշները ներառում են մարդ-միջին (MITM) պաշտպանություն, LE Secure միացումներ (aka ECDH), որոնք պահանջում են կապի հաստատում և այլն: Անվտանգության կառավարիչը նաև մշակում է I/O հնարավորությունները, որոնք օգտագործվում են որոշելու, թե որ մեթոդն է օգտագործվում զուգավորման համար: /bonding (տե՛ս Հավելված Ա-ի ամփոփումը): Այս բաժնում դուք կտեսնեք պարզ կարգավորում:
- Կարգավորեք SM-ը ցանկալի կազմաձևով: Այս լաբորատորիայի սարքավորումը հեշտացնում է վահանակի վրա մուտքի բանալին ցուցադրելը: Գաղտնաբառի մուտքագրումը պահանջ է MITM պաշտպանությունը միացնելու համար: Ավելացրեք հետևյալ կոդը ձեր sl_bt_system_boot_id իրադարձությունների մշակիչին: Սա հնարավորություն է տալիս «մարդը միջինում» լինել և հեռակառավարվող սարքին տեղեկացնում է, որ մենք հնարավորություն ունենք ցուցադրելու անցաբառ, բայց դա բոլորն է:
- Վահանակի վրա մուտքի բանալին ցուցադրելու համար անհրաժեշտ է իրադարձությունների մշակիչ, ինչպես ցույց է տրված ստորև.
- Սահմանեք կապի ռեժիմը, կապերի առավելագույն քանակը և այլն: Սկսելու համար օգտագործեք հետևյալ կոդը.
Այս կարգավորումները կարող են օգտագործվել՝ սահմանափակելու հարձակվողի՝ ձեր սարքի հետ կապվելու հնարավորությունը: Եթե ձեր արտադրանքը պետք է ունենա միայն մեկ օգտվող, ապա դուք կարող եք սահմանափակել առավելագույն պարտատոմսերը մինչև 1: Այս զանգերը ավելացնելու համար լավ տեղ է sl_bt_system_boot_id իրադարձությունների մշակիչը: Մենք այս պահին թույլ չենք տա կապել, որպեսզի լաբորատորիայի մնացած մասն ավելի հարթ ընթանա, բայց մենք սահմանում ենք կապակցման քաղաքականություն, որը թույլ կտա միայն մեկ պարտատոմս: Հղման համար այս API-ների փաստաթղթերը գտնվում են այստեղ և այստեղ:
- Ավելացրեք իրադարձությունների մշակիչներ sl_bt_evt_sm_bonded_id-ի և sl_bt_evt_sm_bonding_failed_id-ի համար: Այս իրադարձությունների հիմնական օգտագործումը ներկայումս տեղեկատվական է, բայց ավելի ուշ լաբորատորիայում դուք կավելացնեք ֆունկցիոնալությունը:
- Կառուցեք և բռնեք թիրախային տախտակին: Միացեք EFRConnect-ի հետ և կարդացեք պաշտպանված բնութագիրը ինչպես նախկինում: Այս անգամ դուք կտեսնեք վահանակի վրա ցուցադրվող գաղտնաբառ: Մուտքագրեք այս անցաբառը ձեր բջջային հեռախոսի վրա, երբ ձեզ հուշեն:
- Փորձեք կապի հաստատումը: Այս հատկությունը օգտվողին հնարավորություն է տալիս պահանջելու, որ կապի հարցումները հաստատվեն: Դա թույլ է տալիս հավելվածին վերահսկել, թե որ նմանատիպ սարքերի հետ է այն կապվում: Հնարավորություններից մեկն այն է, որ օգտագործողից պահանջել սեղմել կոճակը նախքան կապը թույլ տալը:
- Բացեք Bluetooth կարգավորումները ձեր բջջային հեռախոսում և հեռացրեք կապը EFR32 սարքի հետ: Բջջային հեռախոսի ներդրումը տարբեր է, ուստի այս քայլը կարող է անհրաժեշտ չլինել: Եթե Bluetooth-ի կարգավորումներում չեք տեսնում «Ուսուցման» սարքը, պարզապես անցեք հաջորդ քայլին:
- Ծրագրաշարի բաղադրիչներում տեղադրեք կոճակի պարզ կարգավորիչի մեկ օրինակ:
- Ներառեք վերնագիրը file sl_simple_button_instances.h app.c-ում
- Ավելացրեք մշակող sl_bt_evt_sm_bonding_confirm_id իրադարձության համար: Այս իրադարձությունների մշակողի հիմնական աշխատանքն է տեղեկացնել օգտվողին, որ հեռավոր սարքը նոր կապ է պահանջում:
- Ավելացրեք հետադարձ զանգի գործառույթ պարզ կոճակ մշակողի համար՝ ազդանշան ուղարկելու Bluetooth փաթեթին, որը ցույց է տալիս, որ կոճակը սեղմված է: Սա անտեսում է կանխադրված հետադարձ զանգը, որը պարզապես վերադառնում է:
- Ավելացրեք արտաքին ազդանշանի իրադարձությունների մշակիչ: Այս իրադարձությունը բարձրացվում է ի պատասխան ազդանշան ստանալու, ինչպես նախորդ քայլում: Արտաքին ազդանշանի իրադարձությունը կօգտագործվի կապը հաստատելու համար:
- Զանգը փոխեք sl_bt_sm_configure-ի, որպեսզի պահանջվի կապի հաստատում, օրինակ
- Վերակառուցել և բռնկել:
- Միացեք EFRConnect-ի հետ և կարդացեք պաշտպանված բնութագիրը ինչպես նախկինում: Այժմ վահանակի վրա կտեսնեք հաղորդագրություն հետևյալ կերպ.
Սեղմեք PB0 կապը հաստատելու համար: Այժմ վահանակը կցուցադրի բջջային հեռախոսում մուտքագրվող անցաբառը՝ կապելու համար: Մուտքագրեք անցաբառը՝ կապակցման գործընթացը ավարտելու համար:
ՀուշումՕգտագործեք իրադարձությունների մշակիչի լռելյայն պատյանը՝ տպագրելու հաղորդագրություն, երբ կույտը ուղարկում է իրադարձություն, որը չի մշակվում: Դույլը կարող է փորձել ձեզ ինչ-որ կարևոր բան ասել:
Հիմունքներից այն կողմ
Այս պահին դուք առաջ եք անցելtagանվտանգության այն հատկանիշներից, որոնք առաջարկում է մեր բուրգը: Այժմ եկեք բարելավենք իրականացումը մեր տրամադրության տակ եղած հնարավորությունների իմաստուն օգտագործման միջոցով: Հետևյալ քայլերը կամընտիր են և միմյանցից անկախ, դուք կարող եք կառուցել և թարթել յուրաքանչյուրից հետո՝ տեսնելու վարքագիծը կամ փորձեք դրանք բոլորը միասին:
- Անջատեք կապի անհաջող փորձերի դեպքում: Սա լավ վայր է սպառնալիքները հայտնաբերելու համար: Եթե հեռակառավարվող սարքը չի աջակցում գաղտնագրում/նույնականացում կամ պարզապես չունի ճիշտ բանալիներ, դա կարող է լինել հաքեր: Այսպիսով, եկեք խզենք կապը: Փորձեք զանգ ավելացնել sl_bt_connection_close()-ին sl_bt_sm_bonding_failed_id իրադարձության մեջ: API-ն փաստաթղթավորված է այստեղ:
Դուք կարող եք ստուգել այս հատկությունը՝ մուտքագրելով սխալ անցաբառ:
- Թույլ է տալիս միայն որոշակի ժամանակ կապել: Սա սահմանափակում է հարձակվողի կողմից կապ ստեղծելու ժամանակը և հնարավորություն է տալիս օգտագործել «միայն թույլատրել կապակցված կապեր» հատկանիշը: Դիզայները կարող է ընտրել, թե ինչպես միացնել կամ անջատել կապվող ռեժիմը: Ցուցադրական նպատակների համար այստեղ մենք կակտիվացնենք «կարգավորման ռեժիմը» PB1-ով և կօգտագործենք ժամանակաչափ՝ այն 30 վայրկյան հետո անջատելու համար:
- Տեղադրեք պարզ կոճակի ինտերֆեյսի երկրորդ օրինակը: Սա հնարավորություն կտա օգտագործել PB1-ը:
- Փոփոխեք հետադարձ զանգը, որպեսզի այլ ազդանշան ուղարկվի կույտին` կապը միացնելու/անջատելու համար: Արդյունքը պետք է նման լինի հետևյալին.
- Փոփոխեք արտաքին ազդանշանի իրադարձությունների մշակիչը այնպես, որ այն մշակի այս նոր ազդանշանը: Արդյունքը պետք է այսպիսին լինի.
- Ավելացրեք իրադարձությունների մշակիչ sl_bt_evt_system_soft_timer_id իրադարձության համար: Սա կօգտագործվի կարգաբերման ռեժիմն անջատելու համար:
- Հետևյալ կոդը կարող է օգտագործվել կապակցման ռեժիմը միացնելու և բոլոր միացումները թույլատրելու կամ կապելու ռեժիմն անջատելու և միայն միացված սարքերից միացումներ թույլ տալու համար.
- Ավելացրեք հետևյալ զանգը sl_bt_system_boot_id իրադարձությունների մշակիչում
- Կառուցեք նախագիծը և թարթեք այն սարքին:
- Փորձեք միանալ սարքին EFRConnect-ով: Կապը պետք է ձախողվի:
- Այժմ փորձեք սեղմել PB1-ը EFRConnect-ի հետ միանալուց առաջ: Այս անգամ կապը հաջող կլինի։ 30 վայրկյան հետո վահանակի վրա կտեսնեք հաղորդագրություն, որը ցույց է տալիս, որ սարքը դուրս է գալիս կարգավորման ռեժիմից: Սա նշանակում է, որ bondable ռեժիմն այժմ անջատված է:
- Բարձրացնել անվտանգությունը կապի ձևավորման ժամանակ: Քանի որ անվտանգությունը կամընտիր է, մենք պետք է հնարավորինս շուտ գաղտնագրված կապ պահանջենք, այլ ոչ թե հենվենք GATT-ի բնութագրերի վրա: API-ն փաստաթղթավորված է այստեղ: Այս API-ն կանչելու լավ վայր է sl_bt_evt_connection_opened_id իրադարձությունը: Կապի բռնիչը հասանելի է կապի փոփոխականում:
Անվտանգ ինքնություն
Այժմ, երբ մենք ունենք ավելի ապահով Bluetooth սարք, եկեք բարելավենք նույնականացման քայլը: Դուք արդեն տեսել եք, թե ինչպես ստուգել պահոց սարքերի անվտանգ ինքնությունը հրամանի տողով նախորդ ուսումնական լաբորատորիաներում: Այս բաժնում մենք կտեսնենք, թե ինչպես մեկ BLE սարքը կարող է ստուգել մեկ այլ BLE սարքի ինքնությունը՝ խնդրելով դրա վկայականների շղթան և ուղարկելով մարտահրավեր: Բոլոր անվտանգ պահոցի մասերը ունեն իրենց սարքի վկայականը և սերտիֆիկատը: Գործարանային և արմատային վկայագրերը կոշտ կոդավորված են հաճախորդի հավելվածում, որպեսզի հնարավոր լինի ստուգել ամբողջ վկայականի շղթան: Անվտանգ ինքնության մասին լրացուցիչ մանրամասների համար տե՛ս AN1268:
- Սահմանեք գլոբալ բուֆեր՝ սարքի հավաստագրման ստորագրությունը պահելու համար, ինչպես ստորև.
- Սահմանեք անվտանգության կառավարչի կոնֆիգուրացիան՝ օգտագործելու JustWorks զուգավորումը: Դա արվում է այնպես, որ կապը կոդավորված է: Գործնականում MITM պաշտպանությունը պետք է օգտագործվի, բայց լաբորատորիան պարզ պահելու համար մենք կօգտագործենք JustWorks-ը: Զանգը փոխեք sl_bt_sm_configure-ի հետ հետևյալին.
Նաև մեկնաբանեք զանգը setup_mode(true) system_boot իրադարձությունների մշակիչում:
- Բացեք helpers.c-ը տրամադրված նյութերից և պատճենեք բովանդակությունը app.c-ում: Հետադարձ կապի այս գործառույթները կատարում են այնպիսի առաջադրանքներ, ինչպիսիք են վկայագրերի հատվածավորումը, որպեսզի դրանք հնարավոր լինի ուղարկել BLE-ով, հաստատել վկայականների շղթան և ստեղծել/ստուգել մարտահրավերը:
- Անհրաժեշտ է որոշել փոխանցման միավորի (MTU) առավելագույն չափը, որպեսզի սերտիֆիկատները կարողանան հատվածավորվել և նորից հավաքվել: Սահմանեք գլոբալ փոփոխական MTU-ն պահպանելու համար, ինչպես ցույց է տրված այստեղ.
Այնուհետև ավելացրեք իրադարձությունների մշակիչ GATT MTU փոխանակված իրադարձության համար, ինչպես ցույց է տրված ստորև.
- Օգտագործողի տվյալների երեք բնութագրիչ կա, որոնք կարելի է կարդալ: Այս բնութագրերն օգտագործվում են սարքի վկայականի, խմբաքանակի վկայականի և մարտահրավերի հետ հաղորդակցվելու համար: Հետադարձ զանգի ֆունկցիան օգտագործվում է օգտատերերի ընթերցման այս հարցումները կարգավորելու համար: Ավելացրեք կարգավորիչ՝ այս ֆունկցիան կանչելու համար, ինչպես ցույց է տրված ստորև.
Հետզանգումն օգտագործում է MTU-ն քայլ #2-ից մինչև սեգմենտը և անհրաժեշտության դեպքում ուղարկի վկայականները: Այն նաև կարգավորում է ստորագրված մարտահրավերի ուղարկումը:
- Հաճախորդը ուղարկում է մարտահրավեր, պատահական համար, որը պետք է ստորագրվի սերվերի կողմից՝ գրելով GATT-ի բնութագրիչներից մեկը: Այս պատճառով, հավելվածը պետք է ունենա օգտագործողի գրելու հարցման իրադարձության մշակիչ, ինչպես ստորև.
- Ավելացրեք ինքնության ապահով աջակցություն files նախագծին:
- app_se_manager_macro.h, app_se_manager_secure_identity.c և app_se_secure_identity.h նախագծի տրամադրված նյութերից: Սրանք files-ը պարունակում է որոշ օգնական գործառույթներ այնպիսի առաջադրանքների համար, ինչպիսիք են վկայագրի չափը ստանալը, սարքի հանրային բանալին ստանալը և մարտահրավեր ստորագրելը:
- Ներառեք app_se_manager_secure_identity.h-ը app.c-ում:
- Ներմուծեք տրամադրված gatt_configuration-attest.btconf-ը տրամադրված նյութերից: Այս GATT տվյալների բազան կոչվում է անվտանգ ատեստավորում, որը ներառում է չորս բնութագրեր, որոնք կօգտագործվեն մեր սարքի ինքնությունը ստուգելու համար: Դրանք ներառում են սարքի վկայականը, խմբաքանակի վկայականը, մարտահրավերը և պատասխանը:
- Հաճախորդը, որն օգտագործվում է այնպիսի սարքի մոդելավորման համար, ինչպիսին է gateway-ը, տրամադրվում է որպես ամբողջական նախագիծ, քանի որ այն ավելի բարդ է կառուցել: Ընդհանուր առմամբ, հաճախորդի աշխատանքը հետևյալն է.
- Սկանավորում է անվտանգ ատեստավորման ծառայությունը գովազդող սարքեր և միանում դրանց:
- Բացահայտում է GATT տվյալների բազայի ծառայություններն ու բնութագրերը:
- Կարդում է սարքի և սերտիֆիկատների սերտիֆիկատները և ստուգում է վկայագրերի շղթան՝ օգտագործելով գործարանային և արմատային վկայականը, որը պահվել է ֆլեշ-ում:
- Պատահական մարտահրավեր է ուղարկում սերվերին:
- Մարտահրավերին պատասխանը ստուգելու փորձեր:
- Փակում է կապը, եթե հաստատումը ձախողվի:
- Կառուցեք և միացրեք սերվերի նախագիծը ձեր սերվերի վրա WSTK /radioboard:
- Ներմուծեք հաճախորդի նախագիծը հաճախորդի թղթապանակից տրամադրված նյութերում: Կառուցեք և տեղադրեք հաճախորդի նախագիծը ձեր հաճախորդի WSTK/radioboard-ին:
- Սեղմեք «Reset» հաճախորդի WSTK-ի վրա և բացեք սերիական վահանակը: Հաճախորդը սկսում է որոնել սարքեր, որոնք գովազդում են մեր անվտանգ ինքնության ծառայությունը և կմիանա, երբ գտնի:
- Հաճախորդը կցուցադրի որոշ հաղորդագրություններ՝ նշելու, որ գտել է սերվերը ցանկալի ծառայության հետ և կարգավիճակի հաղորդագրություններ վկայականների շղթայի ստուգման մասին:
- Եթե հաստատումն անցնի, հաճախորդը կստեղծի պատահական համար, որը կոչվում է մարտահրավեր և կուղարկի այն սերվերին: Սերվերը կստորագրի մարտահրավերը իր ապահով պահված անձնական սարքի բանալիով և ստորագրությամբ կվերադարձնի հաճախորդին, սա կոչվում է մարտահրավերի պատասխան: Այնուհետև հաճախորդը օգտագործում է նախկինում ստացված սարքի վկայագրի հանրային բանալին՝ ստորագրությունը ստուգելու համար: Սա արվում է հաստատելու, որ սերվերն իսկապես ունի այն մասնավոր բանալին, որը պնդում էր, որ ունի: Եթե մարտահրավերը ճիշտ է ստուգված, ապա այդ մասին հաղորդագրություն է ցուցադրվում. հակառակ դեպքում կապը փակ է, և հաղորդագրություն է ցուցադրվում, որտեղ բացատրվում է, թե ինչու:
- Այժմ ուղարկեք անվավեր վկայագիր՝ հաստատելու համար, որ ստուգումն իսկապես աշխատում է: Դուք կարող եք փոփոխել user_read_request_cb()՝ վնասելու կամ վկայագրի տվյալները կամ մարտահրավերի պատասխանը:
Հավելված Ա – I/O հնարավորություններ և զուգակցման մեթոդներ 
Հավելված B – Անվտանգության ռեժիմներ և մակարդակներ
Անվտանգության ռեժիմ 1-ը միակ ռեժիմն է, որն աջակցվում է Bluetooth Low Energy-ի համար Silicon Labs-ի փաթեթում: Մակարդակները հետևյալն են.
- Մակարդակ 1 առանց անվտանգության
- 2-րդ մակարդակի չվավերացված զուգավորում գաղտնագրման հետ
- 3-րդ մակարդակի վավերացված զուգավորում գաղտնագրման հետ
- 4-րդ մակարդակի վավերացված անվտանգ կապեր՝ ուժեղ գաղտնագրմամբ (ECDH բանալիների փոխանակում)
Փաստաթղթեր / ռեսուրսներ
![]() |
silabs 21Q2 անվտանգ BLE սարք Անվտանգության լաբորատորիա [pdf] Օգտագործողի ձեռնարկ 21Q2 անվտանգ BLE սարքի Անվտանգության լաբորատորիա, անվտանգ BLE սարքի անվտանգության լաբորատորիա, անվտանգության լաբորատորիա |