silabs 21Q2 sekirite aparèy BLE Sekirite Lab

Manyèl Laboratwa Sekirite BLE

Nan laboratwa sa a, ou pral wè ki jan yo desine yon aparèy BLE ki pi an sekirite. Nou pral kòmanse ak yon souview sou kijan pou itilize kèk nan karakteristik pil yo epi ale nan kèk konsèy jeneral sou teknik pou koneksyon ki pi an sekirite epi finalman nou pral wè ki jan yo sèvi ak sètifika aparèy sou BLE yo idantifye yon periferik kòm natif natal.

Kòmanse

Bluetooth sampAplikasyon ou pral bati sou li gen entansyon pou itilize ak yon bootloader. Si w ap travay ak yon mak nouvo EFR32MG21B, li pa pral gen yon bootloader. Ou ka jwenn yon bootloader pre-bati nan platfòm \ bootloader \ yoample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a katab SDK ou a.

  1. Kòmanse ak yon s soc-vidample app. Sa a sampse le app itilize kòm yon modèl epi li fè yon bon pwen depa pou nenpòt aplikasyon BLE.
    1. Louvri Silicon Labs Project Wizard soti nan Simplicity Studio File meni -> nouvo.
    2. Chwazi BRD4181C a epi klike sou bouton 'pwochen' la.
    3. Klike sou kaz 'Bluetooth (9)' anba kalite teknoloji.
    4. Mete aksan sou 'Bluetooth – SoC Vide' epi klike sou pwochen an.
    5. Klike sou bouton 'Fini' la.
  2. Koulye a, ou ka ajoute kèk karakteristik yo wè ki jan karakteristik pwoteje ak san pwoteksyon yo trete yon fason diferan.
    1. Louvri slcp pwojè a file pa double-klike sou li nan fenèt la Project Explorer
    2. Mete aksan sou onglet 'KONPONENT LOGICIEL yo' epi louvri zouti konfigirasyon GATT jan yo montre anba a: Epi sèvi ak zouti enpòte yo montre anba a pou enpòte gatt_configuration.btconf la file soti nan folder nan sèvè nan materyèl yo bay yo.Baz done GATT a gen yon sèvis koutim, ki rele 'Fòmasyon', ak kèk done ki pwoteje ak kèk ki pa. Sa a pèmèt ou konpare sa k ap pase lè w ap eseye jwenn aksè nan yon karakteristik pwoteje kont yon karakteristik san pwoteksyon. Sa a se yon fason rapid pou fè yon aparèy ak sekirite trè debaz.
  3. Nou pral sèvi ak pò seri a pou enprime nan konsole a nan Simplicity Studio pou swiv sa k ap pase nan aplikasyon an. Fason ki pi fasil pou jwenn konpozan sa yo se lè w chèche yo nan dyalòg KONPONANT LOGICIEL la jan yo montre:
      1. Enstale eleman IO Stream USART la
      2. Enstale eleman IO Stream Retarget STDIO
      3. Enstale eleman Standard I/O
      4. Enstale eleman Log la
      5. Louvri eleman kontwòl Komisyon Konsèy la epi limen 'Pèmèt Virtual COM UART'
      6. Dwa-klike sou adaptè a nan panèl 'Debug adaptè' epi chwazi 'Lanse konsole'. Chwazi onglet 'Serial 1' epi mete kurseur a nan jaden an antre tèks nan fenèt konsole a epi peze antre pou reveye konsole a.
  4. Kreye yon varyab lokal nan sl_bt_on_event(), yo jwenn nan app.c, pou sove manch koneksyon an. Varyab la dwe estatik paske yo rele fonksyon sa a chak fwa yon evènman leve nan pil la epi nou vle valè a pèsistan. Manch koneksyon an pral itilize nan yon pitaseksyon laboratwa a.
  5. Mete kèk deklarasyon app_log() pou evènman yo wè lè nou konekte, mòd sekirite, elatriye.
      1. Mete tèt app_log.h la file
      2. sl_bt_evt_connection_opened - enprime manch kosyon epi sove manch koneksyon an. Si manch kosyon an se 0xFF, pa gen okenn kosyon ant aparèy ki konekte yo. Modifye moun kap okipe evènman an ki egziste deja pou li sanble yon bagay tankou sa a:
      3. sl_bt_evt_connection_parameters - mòd sekirite. Sa a se fè pou ke ou ka wè lè mòd sekirite a chanje. Gen yon diferans nan nimewote mòd sekirite kote mòd sekirite 1, enimere ak valè 0, elatriye. Ajoute moun kap okipe evènman sa a nan aplikasyon w lan:
      4. sl_bt_evt_connection_closed_id. Manadjè evènman sa a modifye pou mete ajou manch koneksyon an. Yo itilize valè 0xFF pou endike pa gen okenn koneksyon aktif. Yo itilize lòd app_log() pou enprime rezon ki fè koneksyon an fèmen, lis kòd estati yo isit la. Modifye moun kap okipe evènman an ki egziste deja pou li sanble yon bagay tankou sa a:
  6. Bati ak flash pwojè a. Nan pwen sa a, nou pral kouri s laample app pou wè ki jan li konpòte san okenn chanjman, san konte baz done GATT la.
  7. Konekte ak aplikasyon mobil EFRConnect jan sa a:
      1. Tape ikòn 'Bluetooth Browser' la.
      2. Tape ikòn 'Konekte' sou aparèy ki rele 'Fòmasyon' la.
  8. Li karakteristik san pwoteksyon jan sa a:
      1. Tape lyen 'Plis Enfòmasyon' ki anba sèvis enkoni ak UUID a815944e-da1e-9d2a-02e2-a8d15e2430a0.
      2. Li karakteristik san pwoteksyon an, UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c lè w tape icon 'Li' la. Pa gen sipriz isit la. Depi karakteristik nan pa pwoteje nan okenn fason, li pral voye nan tèks klè.
  9. Koulye a, li karakteristik ki pwoteje, UUID d4261dbb-dcd0-daab-ec95-deec088d532b. Telefòn mobil ou a ta dwe mande w marye ak konekte, mesaj la ka varye selon OS mobil ou a. Apre ou fin aksepte demann pou koup la, ou ta dwe yon mesaj sou konsole a jan sa a: Remak: Anèks A nan fen manyèl sa a gen yon rezime kapasite I/O ak metòd pairing pou referans. Apendis B rezime mòd sekirite Bluetooth yo.

Konfigirasyon Manadjè Sekirite

Manadjè sekirite a se yon pati nan pil Bluetooth ki detèmine ki karakteristik sekirite yo itilize. Karakteristik sa yo gen ladan pwoteksyon man-in-the-middle (MITM), koneksyon LE Secure (aka ECDH), ki mande konfimasyon pou lyezon, elatriye. Manadjè sekirite a tou okipe kapasite I/O ki itilize pou detèmine ki metòd yo itilize pou appariement. /bonding (gade Anèks A pou yon rezime). Nan seksyon sa a ou pral wè yon konfigirasyon senp.

  1. Enstalasyon SM ak konfigirasyon vle. Materyèl pou laboratwa sa a fè li fasil pou montre yon passkey sou konsole a. Antre Passkey se yon kondisyon pou pèmèt pwoteksyon MITM. Ajoute kòd sa a nan okipe evènman sl_bt_system_boot_id ou a. Sa a pèmèt man-in-the-middle ak enfòme aparèy la aleka ke nou gen kapasite nan montre yon passkey, men sa a tout.
  2. Pou montre passkey la sou konsole a, yon moun k ap okipe evènman yo nesesè jan yo montre anba a:
  3. Mete mòd lyezon an, kantite maksimòm lyezon, elatriye. Sèvi ak kòd sa a pou kòmanse:Anviwònman sa yo ka itilize pou limite kapasite yon atakè pou lye ak aparèy ou an. Si pwodwi ou a sèlman bezwen gen yon sèl itilizatè, Lè sa a, ou ta ka limite lyezon maksimòm yo a 1. Yon bon kote pou ajoute apèl sa yo se nan sl_bt_system_boot_id evènman okipe a. Nou p ap pèmèt lyezon nan moman sa a pou fè rès laboratwa a mache pi byen, men nou mete yon politik lyezon pou pèmèt yon sèl lyezon. Pou referans, dokimantasyon pou API sa yo jwenn isit la ak isit la.
  4. Ajoute moun kap okipe evènman pou sl_bt_evt_sm_bonded_id ak sl_bt_evt_sm_bonding_failed_id. Itilizasyon prensipal la pou evènman sa yo se enfòmatif kounye a men pita nan laboratwa a ou pral ajoute fonctionnalités.
  5. Bati ak flash sou tablo a sib. Konekte ak EFRConnect epi li karakteristik ki pwoteje tankou anvan. Fwa sa a, ou pral wè yon passkey parèt sou konsole a. Mete passkey sa a sou telefòn mobil ou lè w mande w.
  6. Eseye konfimasyon lyezon. Karakteristik sa a bay itilizatè a kapasite pou mande pou yo konfime demann lyezon. Lè w fè sa, aplikasyon an gen kontwòl sou ki aparèy parèy li kole ak yo. Yon posibilite se mande itilizatè a peze yon bouton anvan li pèmèt kosyon an.
    1. Louvri paramèt Bluetooth yo nan telefòn mobil ou epi retire kosyon an nan aparèy EFR32 la. Enplemantasyon telefòn mobil yo varye, kidonk etap sa a ka pa nesesè. Si ou pa wè aparèy 'Fòmasyon' nan paramèt Bluetooth ou, jis kontinye nan pwochen etap la.
    2. Nan konpozan lojisyèl, enstale yon egzanp nan manyen bouton an senp.
    3. Mete tèt la file sl_simple_button_instances.h nan app.c
    4. Ajoute yon moun kap okipe evènman sl_bt_evt_sm_bonding_confirm_id. Travay prensipal moun kap okipe evènman sa a se pou enfòme itilizatè a ke yon aparèy aleka mande yon nouvo kosyon.
    5. Ajoute yon fonksyon callback pou moun kap okipe bouton an senp pou voye yon siyal nan pil Bluetooth la ki endike ke yo te peze yon bouton. Sa a pase defo callback ki tou senpleman retounen.
    6. Ajoute yon moun kap okipe evènman siyal ekstèn. Se evènman sa a leve soti vivan an repons a resevwa yon siyal, tankou nan etap anvan an. Evènman siyal ekstèn lan pral itilize pou konfime lyezon.
    7. Chanje apèl la nan sl_bt_sm_configure pou mande konfimasyon lyezon tankou
    8. Rebati ak flash.
    9. Konekte ak EFRConnect epi li karakteristik ki pwoteje tankou anvan. Koulye a, ou pral wè yon mesaj sou konsole a jan sa a:Peze PB0 pou konfime lyezon an. Koulye a, konsole a pral montre passkey la yo dwe antre nan telefòn mobil lan pou lyezon. Antre passkey la pou konplete pwosesis lyezon an.

 

Konsèy: Sèvi ak ka default nan moun kap okipe evènman an pou enprime yon mesaj lè pil la voye yon evènman ki pa okipe. Pile a ka ap eseye di ou yon bagay enpòtan.

Beyond Basics yo

Nan pwen sa a, ou te pran advantage nan karakteristik sekirite yo ke chemine nou an gen pou l ofri. Koulye a, ann amelyore aplikasyon an grasa itilizasyon saj nan karakteristik a jete nou. Etap sa yo se opsyonèl ak endepandan youn ak lòt, ou ka bati ak flash apre chak yo wè konpòtman an oswa eseye yo tout ansanm.

  1. Dekonekte sou tantativ kosyon echwe. Sa se yon bon kote pou detekte menas. Si aparèy la aleka pa sipòte chifreman / otantifikasyon oswa jis pa gen kle ki kòrèk, li ta ka yon pirate. Se konsa, an n kraze koneksyon an. Eseye ajoute yon apèl nan sl_bt_connection_close() nan evènman an sl_bt_sm_bonding_failed_id. API a dokimante isit la.Ou ka teste karakteristik sa a lè w antre move paskey la.
  2. Sèlman pèmèt lyezon nan sèten moman. Sa a limite tan ke yon atakè gen pou fòme yon kosyon epi li fè li posib yo sèvi ak 'sèlman pèmèt koneksyon lyezon'. Designer a ka chwazi ki jan yo aktive oswa enfim mòd bondable. Pou rezon demonstrasyon isit la, nou pral pèmèt yon 'mòd konfigirasyon' ak PB1 epi sèvi ak yon revèy pou enfim li apre 30 segonn.
    1. Enstale yon dezyèm egzanp nan koòdone nan bouton senp. Sa a pral pèmèt itilizasyon PB1.
    2. Modifye callback la pou voye yon siyal diferan nan chemine a pou pèmèt/enfim lyezon. Rezilta a ta dwe gade yon bagay tankou sa a:
    3. Modifye moun kap okipe evènman siyal ekstèn lan pou li okipe nouvo siyal sa a. Rezilta a ta dwe tankou sa a:
    4. Ajoute yon moun kap okipe evènman an pou evènman sl_bt_evt_system_soft_timer_id. Sa a pral itilize pou enfim mòd konfigirasyon.
    5. Ou ka itilize kòd sa a pou pèmèt mòd bondable epi pèmèt tout koneksyon oswa pou enfim mòd bondable epi sèlman pèmèt koneksyon soti nan aparèy bondable:
    6. Ajoute apèl sa a nan okipe evènman sl_bt_system_boot_id
    7. Bati pwojè a epi flash li sou aparèy la.
    8. Eseye konekte ak aparèy la ak EFRConnect. Koneksyon an ta dwe echwe.
    9. Koulye a, eseye peze PB1 anvan ou konekte ak EFRConnect. Fwa sa a, koneksyon an pral gen siksè. Apre 30 segonn ou pral wè yon mesaj sou konsole a ki endike ke aparèy la ap soti nan mòd konfigirasyon. Sa vle di ke mòd bondable kounye a enfim.
  3. Ogmante sekirite sou fòme yon koneksyon. Piske sekirite opsyonèl, nou ta dwe mande yon koneksyon chiffres pi vit ke posib olye ke nou konte sou karakteristik GATT. API a dokimante isit la. Yon bon kote pou rele API sa a se nan evènman sl_bt_evt_connection_opened_id. Manch koneksyon an disponib nan varyab koneksyon an.

Sekirize idantite

Kounye a ke nou gen yon aparèy Bluetooth ki pi an sekirite, ann amelyore etap otantifikasyon an. Ou te deja wè ki jan yo verifye idantite an sekirite nan aparèy vout ak liy lòd la nan laboratwa fòmasyon anvan yo. Nan seksyon sa a, nou pral wè ki jan yon aparèy BLE ka verifye idantite yon lòt aparèy BLE lè w mande chèn sètifika li epi voye yon defi. Tout pati vout ki an sekirite yo kenbe pwòp sètifika aparèy yo ak sètifika pakèt yo. Faktori ak sètifika rasin yo difisil kode nan aplikasyon kliyan an pou pèmèt verifikasyon tout chèn sètifika a. Gade AN1268 pou plis detay sou idantite sekirite.

  1. Defini yon tanpon mondyal pou estoke siyati atestasyon aparèy la jan pi ba a:
  2. Fikse konfigirasyon manadjè sekirite a pou itilize kouple JustWorks. Sa a se fè pou koneksyon an chiffres. Nan pratik, pwoteksyon MITM ta dwe itilize men pou kenbe laboratwa a senp, nou pral itilize JustWorks. Chanje apèl la nan sl_bt_sm_configure tounen nan sa ki annapre yo:Epitou, fè kòmantè apèl pou setup_mode(true) nan system_boot event handler.
  3. Louvri helpers.c soti nan materyèl yo bay yo epi kopye sa ki nan app.c. Fonksyon callback sa yo fè travay tankou segman sètifika yo pou yo ka voye yo sou BLE, verifye chèn sètifika a, ak jenere / verifye defi a.
  4. Li nesesè pou detèmine gwosè maksimòm transfè inite (MTU) pou sètifika yo ka segmenté ak reyini. Defini yon varyab mondyal pou konsève pou MTU a jan yo montre isit la:Lè sa a, ajoute yon moun kap okipe evènman pou evènman GATT MTU echanje jan yo montre anba a:
  5. Gen twa karakteristik done itilizatè ki ka li. Karakteristik sa yo yo itilize pou kominike sètifika aparèy, sètifika pakèt ak defi a. Yo itilize yon fonksyon callback pou okipe demann li itilizatè sa yo. Ajoute yon responsab pou rele fonksyon sa a jan yo montre anba a:Rappel a sèvi ak MTU a soti nan etap #2 nan segman epi voye sètifika yo jan sa nesesè. Li tou okipe voye defi a siyen.
  6. Kliyan an voye yon defi, yon nimewo o aza yo dwe siyen pa sèvè a, lè li ekri youn nan karakteristik GATT yo. Pou rezon sa a, aplikasyon an bezwen gen yon moun kap okipe evènman demann ekri itilizatè a jan pi ba a:
  7. Ajoute sipò idantite an sekirite files nan pwojè a:
    1. app_se_manager_macro.h, app_se_manager_secure_identity.c ak app_se_secure_identity.h soti nan materyèl yo bay nan pwojè a. Sa yo fileyo genyen kèk fonksyon asistan pou travay tankou jwenn gwosè sètifika a, jwenn kle piblik aparèy la ak siyen yon defi.
    2. Mete app_se_manager_secure_identity.h nan app.c.
  8. Enpòte gatt_configuration-attest.btconf yo bay nan materyèl yo bay yo. Baz done GATT sa a rele ateste sekirite ki gen ladann kat karakteristik ki pral itilize pou verifye idantite aparèy nou an. Men sa yo enkli sètifika aparèy la, sètifika pakèt, defi ak repons.
  9. Kliyan an, ki itilize pou simulation yon aparèy tankou passerelle, bay kòm yon pwojè nèt sou tout pwen paske li pi konplèks pou konstwi. An jeneral, operasyon an nan kliyan an se jan sa a:
    1. Analyse pou aparèy ki fè reklam sèvis atestasyon an sekirite epi konekte yo.
    2. Dekouvri sèvis baz done GATT ak karakteristik yo.
    3. Li aparèy la ak sètifika pakèt epi verifye chèn sètifika a lè l sèvi avèk sètifika faktori a ak rasin li te estoke nan flash.
    4. Voye yon defi o aza nan sèvè a.
    5. Eseye verifye repons lan nan defi a.
    6. Fèmen koneksyon an si nenpòt verifikasyon echwe.
  10. Konstwi ak flash pwojè sèvè a sou sèvè w la WSTK/radioboard.
  11. Enpòte pwojè kliyan an nan katab kliyan an nan materyèl yo bay yo. Konstwi ak flash pwojè kliyan an sou kliyan ou a WSTK/radioboard.
  12. Peze reset sou kliyan WSTK la epi louvri konsole seri a. Kliyan an kòmanse chèche aparèy ki fè reklam sèvis idantite sekirite nou an epi li pral konekte lè li jwenn youn.
  13. Kliyan an pral montre kèk mesaj pou endike ke li te jwenn sèvè a ak sèvis la vle ak mesaj estati sou verifikasyon an nan chèn sètifika a.
  14. Si verifikasyon an pase, kliyan an pral jenere yon nimewo o aza, yo rele yon defi, epi voye li bay sèvè a. Sèvè a pral siyen defi a ak kle aparèy prive li an sekirite ak siyati a tounen bay kliyan an, yo rele sa yon repons defi. Lè sa a, kliyan an sèvi ak kle piblik la nan sètifika aparèy la te deja resevwa pou verifye siyati a. Sa a se fè konfime ke sèvè a reyèlman gen kle prive a ke li te deklare ke li genyen. Si yo verifye defi a kòrèkteman, yo parèt yon mesaj pou sa; otreman, koneksyon an fèmen, epi yo parèt yon mesaj ki eksplike poukisa.
  15. Koulye a, voye yon sètifika valab pou konfime ke verifikasyon an vrèman ap travay. Ou ka modifye user_read_request_cb() pou koripsyon swa done sètifika a oswa repons defi a.

Apendis A – Kapasite I/O ak Metòd Pairing
Apendis B – Mòd ak Nivo Sekirite

Mòd sekirite 1 se sèl mòd ki sipòte Bluetooth Low Energy nan pil Silisyòm Labs yo. Nivo yo jan sa a:

  • Nivo 1 pa gen sekirite
  • Nivo 2 koupi san otantifikasyon ak chifreman
  • Nivo 3 otantifye pè ak chifreman
  • Nivo 4 otantifye koneksyon an sekirite ak chifreman fò (ECDH kle echanj)

 

Dokiman / Resous

silabs 21Q2 sekirite aparèy BLE Sekirite Lab [pdfManyèl Itilizatè
21Q2 sekirite aparèy BLE Sekirite Lab, sekirite aparèy BLE Sekirite Lab, Sekirite Lab

Referans

Kite yon kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo make *