silabs 21Q2 անվտանգ BLE սարք Անվտանգության լաբորատորիա

BLE Security Lab ձեռնարկ

Այս լաբորատորիայում դուք կտեսնեք, թե ինչպես նախագծել ավելի ապահով BLE սարք: Մենք կսկսենք ավարտիցview ինչպես օգտագործել փաթեթի որոշ առանձնահատկություններ և անցնել մի քանի ընդհանուր խորհուրդների ավելի անվտանգ կապերի տեխնիկայի վերաբերյալ, և վերջապես մենք կտեսնենք, թե ինչպես օգտագործել սարքի վկայագրերը BLE-ի վրա՝ ծայրամասային սարքը որպես վավերական ճանաչելու համար:

Սկսել

Bluetooth սampհավելվածը, որի վրա կկառուցեք, նախատեսված է օգտագործելու համար bootloader-ով: Եթե ​​դուք աշխատում եք բոլորովին նոր EFR32MG21B-ի հետ, այն չի ունենա բեռնիչ: Դուք կարող եք գտնել նախապես կառուցված bootloader հարթակում\bootloader\sample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a ձեր SDK պանակը:

  1. Սկսեք սոց-դատարկ սample հավելվածը։ Այս սample հավելվածը օգտագործվում է որպես ձևանմուշ և լավ մեկնարկային կետ է ցանկացած BLE հավելվածի համար:
    1. Բացեք Silicon Labs Project Wizard-ը Simplicity Studio-ից File մենյու -> նոր.
    2. Ընտրեք BRD4181C և սեղմեք «հաջորդ» կոճակը:
    3. Սեղմեք «Bluetooth (9)» վանդակը տեխնոլոգիայի տեսակի տակ:
    4. Նշեք «Bluetooth – SoC Empty» և սեղմեք հաջորդը:
    5. Սեղմեք «Ավարտել» կոճակը:
  2. Այժմ դուք կարող եք ավելացնել որոշ բնութագրեր՝ տեսնելու, թե ինչպես են պաշտպանված և չպաշտպանված բնութագրերը տարբեր կերպ են վերաբերվում:
    1. Բացեք նախագծի slcp-ն file կրկնակի սեղմելով այն Project Explorer-ի պատուհանում
    2. Նշեք «ԾՐԱԳՐԱԿԱՆ ԿԱԶՄԱԿԵՐՊՆԵՐ» ներդիրը և բացեք GATT-ի կազմաձևման գործիքը, ինչպես ցույց է տրված ստորև. Եվ gatt_configuration.btconf-ը ներմուծելու համար օգտագործեք ստորև ներկայացված ներմուծման գործիքը file տրամադրված նյութերի սերվերի թղթապանակից:GATT տվյալների բազան ունի մաքսային ծառայություն, որը կոչվում է «Ուսուցում», որի որոշ տվյալները պաշտպանված են, իսկ որոշները՝ ոչ: Սա թույլ է տալիս համեմատել, թե ինչ է տեղի ունենում, երբ փորձում եք մուտք գործել պաշտպանված հատկանիշ և անպաշտպան: Սա շատ տարրական անվտանգությամբ սարք պատրաստելու արագ միջոց է:
  3. Մենք կօգտագործենք սերիական միացքը՝ Simplicity Studio-ի վահանակում տպելու համար՝ հետևելու, թե ինչ է կատարվում հավելվածում: Այս բաղադրիչները գտնելու ամենադյուրին ճանապարհը դրանք փնտրելն է ԾՐԱԳՐԱԿԱՆ ԲԱՂԱԴՐՈՒԹՅՈՒՆՆԵՐ երկխոսության մեջ, ինչպես ցույց է տրված.
      1. Տեղադրեք IO Stream USART բաղադրիչը
      2. Տեղադրեք IO Stream Retarget STDIO բաղադրիչը
      3. Տեղադրեք ստանդարտ I/O բաղադրիչը
      4. Տեղադրեք Log բաղադրիչը
      5. Բացեք տախտակի կառավարման բաղադրիչը և միացրեք «Միացնել վիրտուալ COM UART-ը»
      6. Աջ սեղմեք ադապտերի վրա «Վրիպազերծման ադապտերների» վահանակում և ընտրեք «Գործարկման վահանակ»: Ընտրեք «Serial 1» ներդիրը և տեղադրեք կուրսորը վահանակի պատուհանի տեքստի մուտքագրման դաշտում և սեղմեք enter՝ վահանակը արթնացնելու համար:
  4. Ստեղծեք տեղական փոփոխական sl_bt_on_event()-ում, որը գտնվում է app.c-ում՝ կապի բռնակը պահելու համար: Փոփոխականը պետք է ստատիկ լինի, քանի որ այս ֆունկցիան կանչվում է ամեն անգամ, երբ միջոցառումը բարձրացվում է կույտի կողմից, և մենք ցանկանում ենք, որ արժեքը մնայուն լինի: Միացման բռնակը կօգտագործվի ավելի ուշլաբորատորիայի բաժինը:
  5. Տեղադրեք որոշ app_log() հայտարարություններ իրադարձությունների համար՝ տեսնելու, թե երբ ենք մենք կապակցված, անվտանգության ռեժիմները և այլն
      1. Ներառեք app_log.h վերնագիրը file
      2. sl_bt_evt_connection_opened – տպեք կապի բռնակը և պահպանեք կապի բռնակը: Եթե ​​կապի բռնակը 0xFF է, ապա միացված սարքերի միջև կապ գոյություն չունի: Փոփոխեք գոյություն ունեցող իրադարձությունների մշակիչը, որպեսզի այն նման լինի հետևյալին.
      3. sl_bt_evt_connection_parameters – անվտանգության ռեժիմ: Դա արվում է, որպեսզի տեսնեք, թե երբ է փոխվում անվտանգության ռեժիմը: Տարբերություն կա անվտանգության ռեժիմների համարակալման մեջ, որտեղ անվտանգության ռեժիմ 1-ը թվարկված է 0 արժեքով և այլն: Ձեր դիմումին ավելացրեք հետևյալ իրադարձությունների մշակիչը.
      4. sl_bt_evt_connection_closed_id. Այս իրադարձությունների մշակիչը փոփոխվել է՝ կապի բռնիչը թարմացնելու համար: 0xFF արժեքը օգտագործվում է նշելու, որ ակտիվ կապ չկա: App_log() հրամանն օգտագործվում է կապի փակման պատճառը տպելու համար, կարգավիճակի կոդերի ցանկն այստեղ է: Փոփոխեք գոյություն ունեցող իրադարձությունների մշակիչը, որպեսզի այն նման լինի հետևյալին.
  6. Կառուցեք և լուսաբանեք նախագիծը: Այս պահին մենք կվարենք սample հավելվածը տեսնելու համար, թե ինչպես է այն իրեն պահում առանց որևէ փոփոխության, բացի GATT տվյալների բազայից:
  7. Միացեք EFRConnect բջջային հավելվածին հետևյալ կերպ.
      1. Հպեք «Bluetooth զննարկիչ» պատկերակին:
      2. Հպեք «Միացեք» պատկերակին «Ուսուցում» անունով սարքի վրա:
  8. Կարդացեք անպաշտպան բնութագիրը հետևյալ կերպ.
      1. Հպեք «Լրացուցիչ տեղեկություններ» հղմանը անհայտ ծառայության տակ՝ UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0:
      2. Կարդացեք անպաշտպան բնութագիրը՝ UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c՝ սեղմելով «Կարդալ» պատկերակը: Այստեղ անակնկալներ չկան: Քանի որ բնութագիրը որևէ կերպ պաշտպանված չէ, այն կուղարկվի բաց տեքստով:
  9. Այժմ կարդացեք պաշտպանված բնութագիրը՝ UUID d4261dbb-dcd0-daab-ec95-deec088d532b: Ձեր բջջային հեռախոսը պետք է հուշի ձեզ զուգավորել և միանալ, հաղորդագրությունը կարող է տարբեր լինել՝ կախված ձեր բջջային ՕՀ-ից: Այն բանից հետո, երբ դուք ընդունում եք զուգակցման հարցումը, դուք պետք է հաղորդագրություն ուղարկեք վահանակի վրա հետևյալ կերպ. ՆշումԱյս ձեռնարկի վերջում գտնվող Հավելված Ա-ն պարունակում է մուտքի/ելքի հնարավորությունների և զուգակցման մեթոդների համառոտ տեղեկանք: Հավելված B-ն ամփոփում է Bluetooth անվտանգության ռեժիմները:

Անվտանգության մենեջերի կոնֆիգուրացիա

Անվտանգության կառավարիչը Bluetooth փաթեթի մի մասն է, որը որոշում է, թե անվտանգության որ հատկանիշներն են օգտագործվում: Այս հատկանիշները ներառում են մարդ-միջին (MITM) պաշտպանություն, LE Secure միացումներ (aka ECDH), որոնք պահանջում են կապի հաստատում և այլն: Անվտանգության կառավարիչը նաև մշակում է I/O հնարավորությունները, որոնք օգտագործվում են որոշելու, թե որ մեթոդն է օգտագործվում զուգավորման համար: /bonding (տե՛ս Հավելված Ա-ի ամփոփումը): Այս բաժնում դուք կտեսնեք պարզ կարգավորում:

  1. Կարգավորեք SM-ը ցանկալի կազմաձևով: Այս լաբորատորիայի սարքավորումը հեշտացնում է վահանակի վրա մուտքի բանալին ցուցադրելը: Գաղտնաբառի մուտքագրումը պահանջ է MITM պաշտպանությունը միացնելու համար: Ավելացրեք հետևյալ կոդը ձեր sl_bt_system_boot_id իրադարձությունների մշակիչին: Սա հնարավորություն է տալիս «մարդը միջինում» լինել և հեռակառավարվող սարքին տեղեկացնում է, որ մենք հնարավորություն ունենք ցուցադրելու անցաբառ, բայց դա բոլորն է:
  2. Վահանակի վրա մուտքի բանալին ցուցադրելու համար անհրաժեշտ է իրադարձությունների մշակիչ, ինչպես ցույց է տրված ստորև.
  3. Սահմանեք կապի ռեժիմը, կապերի առավելագույն քանակը և այլն: Սկսելու համար օգտագործեք հետևյալ կոդը.Այս կարգավորումները կարող են օգտագործվել՝ սահմանափակելու հարձակվողի՝ ձեր սարքի հետ կապվելու հնարավորությունը: Եթե ​​ձեր արտադրանքը պետք է ունենա միայն մեկ օգտվող, ապա դուք կարող եք սահմանափակել առավելագույն պարտատոմսերը մինչև 1: Այս զանգերը ավելացնելու համար լավ տեղ է sl_bt_system_boot_id իրադարձությունների մշակիչը: Մենք այս պահին թույլ չենք տա կապել, որպեսզի լաբորատորիայի մնացած մասն ավելի հարթ ընթանա, բայց մենք սահմանում ենք կապակցման քաղաքականություն, որը թույլ կտա միայն մեկ պարտատոմս: Հղման համար այս API-ների փաստաթղթերը գտնվում են այստեղ և այստեղ:
  4. Ավելացրեք իրադարձությունների մշակիչներ sl_bt_evt_sm_bonded_id-ի և sl_bt_evt_sm_bonding_failed_id-ի համար: Այս իրադարձությունների հիմնական օգտագործումը ներկայումս տեղեկատվական է, բայց ավելի ուշ լաբորատորիայում դուք կավելացնեք ֆունկցիոնալությունը:
  5. Կառուցեք և բռնեք թիրախային տախտակին: Միացեք EFRConnect-ի հետ և կարդացեք պաշտպանված բնութագիրը ինչպես նախկինում: Այս անգամ դուք կտեսնեք վահանակի վրա ցուցադրվող գաղտնաբառ: Մուտքագրեք այս անցաբառը ձեր բջջային հեռախոսի վրա, երբ ձեզ հուշեն:
  6. Փորձեք կապի հաստատումը: Այս հատկությունը օգտվողին հնարավորություն է տալիս պահանջելու, որ կապի հարցումները հաստատվեն: Դա թույլ է տալիս հավելվածին վերահսկել, թե որ նմանատիպ սարքերի հետ է այն կապվում: Հնարավորություններից մեկն այն է, որ օգտագործողից պահանջել սեղմել կոճակը նախքան կապը թույլ տալը:
    1. Բացեք Bluetooth կարգավորումները ձեր բջջային հեռախոսում և հեռացրեք կապը EFR32 սարքի հետ: Բջջային հեռախոսի ներդրումը տարբեր է, ուստի այս քայլը կարող է անհրաժեշտ չլինել: Եթե ​​Bluetooth-ի կարգավորումներում չեք տեսնում «Ուսուցման» սարքը, պարզապես անցեք հաջորդ քայլին:
    2. Ծրագրաշարի բաղադրիչներում տեղադրեք կոճակի պարզ կարգավորիչի մեկ օրինակ:
    3. Ներառեք վերնագիրը file sl_simple_button_instances.h app.c-ում
    4. Ավելացրեք մշակող sl_bt_evt_sm_bonding_confirm_id իրադարձության համար: Այս իրադարձությունների մշակողի հիմնական աշխատանքն է տեղեկացնել օգտվողին, որ հեռավոր սարքը նոր կապ է պահանջում:
    5. Ավելացրեք հետադարձ զանգի գործառույթ պարզ կոճակ մշակողի համար՝ ազդանշան ուղարկելու Bluetooth փաթեթին, որը ցույց է տալիս, որ կոճակը սեղմված է: Սա անտեսում է կանխադրված հետադարձ զանգը, որը պարզապես վերադառնում է:
    6. Ավելացրեք արտաքին ազդանշանի իրադարձությունների մշակիչ: Այս իրադարձությունը բարձրացվում է ի պատասխան ազդանշան ստանալու, ինչպես նախորդ քայլում: Արտաքին ազդանշանի իրադարձությունը կօգտագործվի կապը հաստատելու համար:
    7. Զանգը փոխեք sl_bt_sm_configure-ի, որպեսզի պահանջվի կապի հաստատում, օրինակ
    8. Վերակառուցել և բռնկել:
    9. Միացեք EFRConnect-ի հետ և կարդացեք պաշտպանված բնութագիրը ինչպես նախկինում: Այժմ վահանակի վրա կտեսնեք հաղորդագրություն հետևյալ կերպ.Սեղմեք PB0 կապը հաստատելու համար: Այժմ վահանակը կցուցադրի բջջային հեռախոսում մուտքագրվող անցաբառը՝ կապելու համար: Մուտքագրեք անցաբառը՝ կապակցման գործընթացը ավարտելու համար:

 

ՀուշումՕգտագործեք իրադարձությունների մշակիչի լռելյայն պատյանը՝ տպագրելու հաղորդագրություն, երբ կույտը ուղարկում է իրադարձություն, որը չի մշակվում: Դույլը կարող է փորձել ձեզ ինչ-որ կարևոր բան ասել:

Հիմունքներից այն կողմ

Այս պահին դուք առաջ եք անցելtagանվտանգության այն հատկանիշներից, որոնք առաջարկում է մեր բուրգը: Այժմ եկեք բարելավենք իրականացումը մեր տրամադրության տակ եղած հնարավորությունների իմաստուն օգտագործման միջոցով: Հետևյալ քայլերը կամընտիր են և միմյանցից անկախ, դուք կարող եք կառուցել և թարթել յուրաքանչյուրից հետո՝ տեսնելու վարքագիծը կամ փորձեք դրանք բոլորը միասին:

  1. Անջատեք կապի անհաջող փորձերի դեպքում: Սա լավ վայր է սպառնալիքները հայտնաբերելու համար: Եթե ​​հեռակառավարվող սարքը չի աջակցում գաղտնագրում/նույնականացում կամ պարզապես չունի ճիշտ բանալիներ, դա կարող է լինել հաքեր: Այսպիսով, եկեք խզենք կապը: Փորձեք զանգ ավելացնել sl_bt_connection_close()-ին sl_bt_sm_bonding_failed_id իրադարձության մեջ: API-ն փաստաթղթավորված է այստեղ:Դուք կարող եք ստուգել այս հատկությունը՝ մուտքագրելով սխալ անցաբառ:
  2. Թույլ է տալիս միայն որոշակի ժամանակ կապել: Սա սահմանափակում է հարձակվողի կողմից կապ ստեղծելու ժամանակը և հնարավորություն է տալիս օգտագործել «միայն թույլատրել կապակցված կապեր» հատկանիշը: Դիզայները կարող է ընտրել, թե ինչպես միացնել կամ անջատել կապվող ռեժիմը: Ցուցադրական նպատակների համար այստեղ մենք կակտիվացնենք «կարգավորման ռեժիմը» ​​PB1-ով և կօգտագործենք ժամանակաչափ՝ այն 30 վայրկյան հետո անջատելու համար:
    1. Տեղադրեք պարզ կոճակի ինտերֆեյսի երկրորդ օրինակը: Սա հնարավորություն կտա օգտագործել PB1-ը:
    2. Փոփոխեք հետադարձ զանգը, որպեսզի այլ ազդանշան ուղարկվի կույտին` կապը միացնելու/անջատելու համար: Արդյունքը պետք է նման լինի հետևյալին.
    3. Փոփոխեք արտաքին ազդանշանի իրադարձությունների մշակիչը այնպես, որ այն մշակի այս նոր ազդանշանը: Արդյունքը պետք է այսպիսին լինի.
    4. Ավելացրեք իրադարձությունների մշակիչ sl_bt_evt_system_soft_timer_id իրադարձության համար: Սա կօգտագործվի կարգաբերման ռեժիմն անջատելու համար:
    5. Հետևյալ կոդը կարող է օգտագործվել կապակցման ռեժիմը միացնելու և բոլոր միացումները թույլատրելու կամ կապելու ռեժիմն անջատելու և միայն միացված սարքերից միացումներ թույլ տալու համար.
    6. Ավելացրեք հետևյալ զանգը sl_bt_system_boot_id իրադարձությունների մշակիչում
    7. Կառուցեք նախագիծը և թարթեք այն սարքին:
    8. Փորձեք միանալ սարքին EFRConnect-ով: Կապը պետք է ձախողվի:
    9. Այժմ փորձեք սեղմել PB1-ը EFRConnect-ի հետ միանալուց առաջ: Այս անգամ կապը հաջող կլինի։ 30 վայրկյան հետո վահանակի վրա կտեսնեք հաղորդագրություն, որը ցույց է տալիս, որ սարքը դուրս է գալիս կարգավորման ռեժիմից: Սա նշանակում է, որ bondable ռեժիմն այժմ անջատված է:
  3. Բարձրացնել անվտանգությունը կապի ձևավորման ժամանակ: Քանի որ անվտանգությունը կամընտիր է, մենք պետք է հնարավորինս շուտ գաղտնագրված կապ պահանջենք, այլ ոչ թե հենվենք GATT-ի բնութագրերի վրա: API-ն փաստաթղթավորված է այստեղ: Այս API-ն կանչելու լավ վայր է sl_bt_evt_connection_opened_id իրադարձությունը: Կապի բռնիչը հասանելի է կապի փոփոխականում:

Անվտանգ ինքնություն

Այժմ, երբ մենք ունենք ավելի ապահով Bluetooth սարք, եկեք բարելավենք նույնականացման քայլը: Դուք արդեն տեսել եք, թե ինչպես ստուգել պահոց սարքերի անվտանգ ինքնությունը հրամանի տողով նախորդ ուսումնական լաբորատորիաներում: Այս բաժնում մենք կտեսնենք, թե ինչպես մեկ BLE սարքը կարող է ստուգել մեկ այլ BLE սարքի ինքնությունը՝ խնդրելով դրա վկայականների շղթան և ուղարկելով մարտահրավեր: Բոլոր անվտանգ պահոցի մասերը ունեն իրենց սարքի վկայականը և սերտիֆիկատը: Գործարանային և արմատային վկայագրերը կոշտ կոդավորված են հաճախորդի հավելվածում, որպեսզի հնարավոր լինի ստուգել ամբողջ վկայականի շղթան: Անվտանգ ինքնության մասին լրացուցիչ մանրամասների համար տե՛ս AN1268:

  1. Սահմանեք գլոբալ բուֆեր՝ սարքի հավաստագրման ստորագրությունը պահելու համար, ինչպես ստորև.
  2. Սահմանեք անվտանգության կառավարչի կոնֆիգուրացիան՝ օգտագործելու JustWorks զուգավորումը: Դա արվում է այնպես, որ կապը կոդավորված է: Գործնականում MITM պաշտպանությունը պետք է օգտագործվի, բայց լաբորատորիան պարզ պահելու համար մենք կօգտագործենք JustWorks-ը: Զանգը փոխեք sl_bt_sm_configure-ի հետ հետևյալին.Նաև մեկնաբանեք զանգը setup_mode(true) system_boot իրադարձությունների մշակիչում:
  3. Բացեք helpers.c-ը տրամադրված նյութերից և պատճենեք բովանդակությունը app.c-ում: Հետադարձ կապի այս գործառույթները կատարում են այնպիսի առաջադրանքներ, ինչպիսիք են վկայագրերի հատվածավորումը, որպեսզի դրանք հնարավոր լինի ուղարկել BLE-ով, հաստատել վկայականների շղթան և ստեղծել/ստուգել մարտահրավերը:
  4. Անհրաժեշտ է որոշել փոխանցման միավորի (MTU) առավելագույն չափը, որպեսզի սերտիֆիկատները կարողանան հատվածավորվել և նորից հավաքվել: Սահմանեք գլոբալ փոփոխական MTU-ն պահպանելու համար, ինչպես ցույց է տրված այստեղ.Այնուհետև ավելացրեք իրադարձությունների մշակիչ GATT MTU փոխանակված իրադարձության համար, ինչպես ցույց է տրված ստորև.
  5. Օգտագործողի տվյալների երեք բնութագրիչ կա, որոնք կարելի է կարդալ: Այս բնութագրերն օգտագործվում են սարքի վկայականի, խմբաքանակի վկայականի և մարտահրավերի հետ հաղորդակցվելու համար: Հետադարձ զանգի ֆունկցիան օգտագործվում է օգտատերերի ընթերցման այս հարցումները կարգավորելու համար: Ավելացրեք կարգավորիչ՝ այս ֆունկցիան կանչելու համար, ինչպես ցույց է տրված ստորև.Հետզանգումն օգտագործում է MTU-ն քայլ #2-ից մինչև սեգմենտը և անհրաժեշտության դեպքում ուղարկի վկայականները: Այն նաև կարգավորում է ստորագրված մարտահրավերի ուղարկումը:
  6. Հաճախորդը ուղարկում է մարտահրավեր, պատահական համար, որը պետք է ստորագրվի սերվերի կողմից՝ գրելով GATT-ի բնութագրիչներից մեկը: Այս պատճառով, հավելվածը պետք է ունենա օգտագործողի գրելու հարցման իրադարձության մշակիչ, ինչպես ստորև.
  7. Ավելացրեք ինքնության ապահով աջակցություն files նախագծին:
    1. app_se_manager_macro.h, app_se_manager_secure_identity.c և app_se_secure_identity.h նախագծի տրամադրված նյութերից: Սրանք files-ը պարունակում է որոշ օգնական գործառույթներ այնպիսի առաջադրանքների համար, ինչպիսիք են վկայագրի չափը ստանալը, սարքի հանրային բանալին ստանալը և մարտահրավեր ստորագրելը:
    2. Ներառեք app_se_manager_secure_identity.h-ը app.c-ում:
  8. Ներմուծեք տրամադրված gatt_configuration-attest.btconf-ը տրամադրված նյութերից: Այս GATT տվյալների բազան կոչվում է անվտանգ ատեստավորում, որը ներառում է չորս բնութագրեր, որոնք կօգտագործվեն մեր սարքի ինքնությունը ստուգելու համար: Դրանք ներառում են սարքի վկայականը, խմբաքանակի վկայականը, մարտահրավերը և պատասխանը:
  9. Հաճախորդը, որն օգտագործվում է այնպիսի սարքի մոդելավորման համար, ինչպիսին է gateway-ը, տրամադրվում է որպես ամբողջական նախագիծ, քանի որ այն ավելի բարդ է կառուցել: Ընդհանուր առմամբ, հաճախորդի աշխատանքը հետևյալն է.
    1. Սկանավորում է անվտանգ ատեստավորման ծառայությունը գովազդող սարքեր և միանում դրանց:
    2. Բացահայտում է GATT տվյալների բազայի ծառայություններն ու բնութագրերը:
    3. Կարդում է սարքի և սերտիֆիկատների սերտիֆիկատները և ստուգում է վկայագրերի շղթան՝ օգտագործելով գործարանային և արմատային վկայականը, որը պահվել է ֆլեշ-ում:
    4. Պատահական մարտահրավեր է ուղարկում սերվերին:
    5. Մարտահրավերին պատասխանը ստուգելու փորձեր:
    6. Փակում է կապը, եթե հաստատումը ձախողվի:
  10. Կառուցեք և միացրեք սերվերի նախագիծը ձեր սերվերի վրա WSTK /radioboard:
  11. Ներմուծեք հաճախորդի նախագիծը հաճախորդի թղթապանակից տրամադրված նյութերում: Կառուցեք և տեղադրեք հաճախորդի նախագիծը ձեր հաճախորդի WSTK/radioboard-ին:
  12. Սեղմեք «Reset» հաճախորդի WSTK-ի վրա և բացեք սերիական վահանակը: Հաճախորդը սկսում է որոնել սարքեր, որոնք գովազդում են մեր անվտանգ ինքնության ծառայությունը և կմիանա, երբ գտնի:
  13. Հաճախորդը կցուցադրի որոշ հաղորդագրություններ՝ նշելու, որ գտել է սերվերը ցանկալի ծառայության հետ և կարգավիճակի հաղորդագրություններ վկայականների շղթայի ստուգման մասին:
  14. Եթե ​​հաստատումն անցնի, հաճախորդը կստեղծի պատահական համար, որը կոչվում է մարտահրավեր և կուղարկի այն սերվերին: Սերվերը կստորագրի մարտահրավերը իր ապահով պահված անձնական սարքի բանալիով և ստորագրությամբ կվերադարձնի հաճախորդին, սա կոչվում է մարտահրավերի պատասխան: Այնուհետև հաճախորդը օգտագործում է նախկինում ստացված սարքի վկայագրի հանրային բանալին՝ ստորագրությունը ստուգելու համար: Սա արվում է հաստատելու, որ սերվերն իսկապես ունի այն մասնավոր բանալին, որը պնդում էր, որ ունի: Եթե ​​մարտահրավերը ճիշտ է ստուգված, ապա այդ մասին հաղորդագրություն է ցուցադրվում. հակառակ դեպքում կապը փակ է, և հաղորդագրություն է ցուցադրվում, որտեղ բացատրվում է, թե ինչու:
  15. Այժմ ուղարկեք անվավեր վկայագիր՝ հաստատելու համար, որ ստուգումն իսկապես աշխատում է: Դուք կարող եք փոփոխել 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 սարքի անվտանգության լաբորատորիա, անվտանգության լաբորատորիա

Հղումներ

Թողնել մեկնաբանություն

Ձեր էլփոստի հասցեն չի հրապարակվի: Պարտադիր դաշտերը նշված են *