silabs 21Q2 slán BLE device Security Lab
Lámhleabhar BLE Security Lab
Sa tsaotharlann seo, feicfidh tú conas gléas BLE níos sláine a dhearadh. Tosóimid le breisview ar conas cuid de na gnéithe cruachta a úsáid agus bogadh ar aghaidh go dtí roinnt comhairle ghinearálta faoi theicnící le haghaidh naisc níos sláine agus ar deireadh feicfimid conas teastais gléas a úsáid thar BLE chun forimeallach a aithint mar bharántúil.
Tús a chur leis
An Bluetooth sampLe feidhmchlár a mbeidh tú ag tógáil air tá sé beartaithe é a úsáid le tosaitheoir. Má tá tú ag obair le EFR32MG21B branda nua, ní bheidh bootloader aige. Is féidir leat tosaitheoir réamhthógtha a fháil san ardán\bootloader\sample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a fillteán de do SDK.
- Tosaigh le soc-folamh sample app. Seo sampúsáidtear le app mar theimpléad agus is pointe tosaigh maith é d’aon fheidhmchlár BLE.
- Oscail Treoraí Tionscadal Silicon Labs ón Simplicity Studio File roghchlár -> nua.
- Roghnaigh an BRD4181C agus cliceáil ar an gcnaipe 'ar aghaidh'.
- Cliceáil ar an ticbhosca 'Bluetooth (9)' faoi chineál teicneolaíochta.
- Aibhsigh 'Bluetooth – SoC Folamh' agus ansin cliceáil ar seo chugainn.
- Cliceáil ar an gcnaipe 'Críochnaigh'.
- Anois is féidir leat roinnt tréithe a chur leis chun a fheiceáil conas a dhéileáiltear le tréithe cosanta agus neamhchosanta ar bhealach difriúil.
- Oscail slcp an tionscadail file trí chliceáil faoi dhó ar an bhfuinneog Project Explorer
- Aibhsigh an táb 'COMHARANNA BOGEARRAÍ' agus oscail an uirlis chumraíochta GATT mar a thaispeántar thíos:
Agus bain úsáid as an uirlis allmhairithe a thaispeántar thíos chun an gatt_configuration.btconf a allmhairiú file ón bhfillteán freastalaí sna hábhair atá curtha ar fáil.
Tá seirbhís shaincheaptha ag bunachar sonraí GATT, ar a dtugtar 'Oiliúint', le roinnt sonraí atá faoi chosaint agus roinnt sonraí nach bhfuil. Ligeann sé seo duit comparáid a dhéanamh idir cad a tharlaíonn agus tú ag iarraidh rochtain a fháil ar shaintréith chosanta vs tréith gan chosaint. Is bealach tapa é seo le gléas a dhéanamh le slándáil an-bhunúsach.
- Úsáidfimid an port srathach chun priontáil chuig an consól i Simplicity Studio chun a bhfuil ar siúl san fheidhmchlár a rianú. Is é an bealach is éasca chun na comhpháirteanna seo a aimsiú ná iad a chuardach sa dialóg COMHPHÁIRTÍ BOGEARRAÍ mar a thaispeántar:
-
- Suiteáil an chomhpháirt IO Stream USART
- Suiteáil an chomhpháirt IO Stream Retarget STDIO
- Suiteáil an chomhpháirt Caighdeánach I/O
- Suiteáil an chomhpháirt Logála
- Oscail an chomhpháirt Rialaithe Boird agus cas ar an 'Cumasaigh Virtual COM UART'
- Deaschliceáil ar an adapter sa phainéal 'Debug adapters' agus roghnaigh 'Launch Console'. Roghnaigh cluaisín 'Sraith 1' agus cuir an cúrsóir i réimse iontrála téacs fhuinneog an chonsóil agus brúigh Enter chun an consól a mhúscailt.
-
- Cruthaigh athróg áitiúil in sl_bt_on_event(), a fhaightear in app.c, chun an láimhseáil naisc a shábháil. Caithfidh an t-athróg a bheith statach toisc go dtugtar an fheidhm seo gach uair a ardaítear teagmhas ag an gcruach agus ba mhaith linn go mbeadh an luach seasmhach. Bainfear úsáid as an láimhseáil nasc i gceann níos déanaí
chuid den saotharlann.
- Cuir isteach roinnt ráiteas app_log() le haghaidh imeachtaí chun féachaint cathain a bhíonn muid nasctha, modhanna slándála, etc
-
- Cuir an ceanntásc app_log.h san áireamh file
- sl_bt_evt_connection_opened - priontáil láimhseáil bannaí agus sábháil an láimhseáil ceangail. Más é 0xFF an láimhseáil bannaí, níl aon nasc idir na gléasanna nasctha ann. Athraigh an láimhseálaí imeachta reatha ionas go mbeidh cuma mar seo air:
- sl_bt_evt_connection_parameters - mód slándála. Déantar é seo ionas gur féidir leat a fheiceáil nuair a athraíonn an modh slándála. Tá difríocht idir uimhriú na modhanna slándála ina n-áirítear modh slándála 1 leis an luach 0, etc. . Cuir an láimhseálaí imeachta seo a leanas le d'iarratas:
- sl_bt_evt_connection_dúnta_id. Athraítear an láimhseálaí teagmhais seo chun an hanla naisc a nuashonrú. Úsáidtear an luach 0xFF chun a chur in iúl nach bhfuil aon nasc gníomhach ann. Úsáidtear an t-ordú app_log () chun an chúis atá leis an nasc a dhúnadh a phriontáil, tá liosta na gcód stádais anseo. Athraigh an láimhseálaí imeachta reatha ionas go mbeidh cuma mar seo air:
- Cuir an ceanntásc app_log.h san áireamh file
-
- Tógáil agus flash an tionscadal. Ag an bpointe seo, reáchtálfaimid an sample app féachaint conas a iompraíonn sé gan aon athruithe, seachas bunachar sonraí GATT.
- Ceangail leis an aip shoghluaiste EFRConnect mar seo a leanas:
-
- Tapáil an deilbhín 'Brabhsálaí Bluetooth'.
- Beartaíonn ar an deilbhín 'Ceangail' ar an ngléas darb ainm 'Oiliúint'.
-
- Léigh an tréith gan chosaint mar seo a leanas:
-
- Tapáil an nasc ‘Tuilleadh Eolais’ faoin tseirbhís anaithnid le UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0.
- Léigh an tréith gan chosaint, UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c tríd an deilbhín 'Léigh' a thapáil. Níl aon iontas anseo. Ós rud é nach bhfuil an tréith cosanta ar bhealach ar bith, seolfar i ngnáth-théacs é.
-
- Léigh anois an tréith chosanta, UUID d4261dbb-dcd0-daab-ec95-deec088d532b. Ba chóir go spreagfadh d’fhón póca tú chun péireáil agus ceangal a dhéanamh, d’fhéadfadh an teachtaireacht a bheith éagsúil ag brath ar do OS soghluaiste. Tar éis duit glacadh leis an iarratas péireáil, ba cheart duit teachtaireacht a chur ar an gconsól mar seo a leanas:
Nóta: Tá achoimre in Aguisín A ag deireadh an lámhleabhair seo ar chumais I/O agus ar mhodhanna péireála le haghaidh tagartha. Déanann Aguisín B achoimre ar na modhanna slándála Bluetooth.
Cumraíocht Bainisteoir Slándála
Tá an bainisteoir slándála mar chuid den chruach Bluetooth a chinneann na gnéithe slándála a úsáidtear. Áirítear ar na gnéithe seo cosaint fear-i-lár (MITM), naisc LE Secure (aka ECDH), a éilíonn deimhniú nascáil, etc. Láimhseálann an bainisteoir slándála cumais I/O freisin a úsáidtear chun a chinneadh cén modh a úsáidtear le haghaidh péireála /nascadh (féach Aguisín A le haghaidh achoimre). Sa chuid seo feicfidh tú socrú simplí.
- Socrú SM le cumraíocht inmhianaithe. Mar gheall ar chrua-earraí na saotharlainne seo tá sé éasca eochair pas a thaispeáint ar an gconsól. Is riachtanas é iontráil pasfhocail chun cosaint MITM a chumasú. Cuir an cód seo a leanas le do láimhseálaí imeachta sl_bt_system_boot_id. Cuireann sé seo ar chumas fear-i-an-lár agus cuireann sé in iúl don fheiste iargúlta go bhfuil an cumas againn pasfhocal a thaispeáint, ach sin uile.
- Chun an pasfhocal a thaispeáint ar an gconsól, tá láimhseálaí imeachta ag teastáil mar a thaispeántar thíos:
- Socraigh an modh nasctha, uaslíon na nascanna, srl. Úsáid an cód seo a leanas chun tús a chur leis:
Is féidir na socruithe seo a úsáid chun teorainn a chur le cumas ionsaitheora nascadh le do ghléas. Mura bhfuil ach úsáideoir amháin ag teastáil ó do tháirge, d'fhéadfá na bannaí uasta a theorannú go 1. Áit mhaith chun na glaonna seo a chur leis ná sa láimhseálaí imeacht sl_bt_system_boot_id. Ní chuirfimid ar chumas an nascáil ag an am seo chun an chuid eile den saotharlann a dhéanamh níos réidhe ach socraímid polasaí nascáil chun banna amháin a cheadú. Mar thagairt, tá na doiciméid le haghaidh na APIs seo le fáil anseo agus anseo .
- Cuir láimhseálaithe imeachta leis le haghaidh sl_bt_evt_sm_bonded_id agus sl_bt_evt_sm_bonding_failed_id. Is í an phríomhúsáid a bhaintear as na himeachtaí seo faisnéiseach faoi láthair ach níos déanaí sa tsaotharlann cuirfidh tú feidhmiúlacht leis.
- Tógáil agus flash chuig an spriocchlár. Ceangail le EFRConnect agus léigh an tréith chosanta mar a rinneadh cheana. An uair seo, feicfidh tú pasfhocal ar taispeáint ar an gconsól. Cuir isteach an pasfhocal seo ar do ghuthán póca nuair a iarrtar ort é.
- Bain triail as deimhniú nascáil. Tugann an ghné seo an cumas don úsáideoir a éileamh go ndeimhnítear iarratais ar bhannaí. Má dhéantar é sin, beidh smacht ag an bhfeidhmchlár ar na gléasanna piaraí a nascann sé leo. Féidearthacht amháin is ea a cheangal ar an úsáideoir cnaipe a bhrú sula gceadaítear an banna.
- Oscail na socruithe Bluetooth i do ghuthán póca agus bain an banna leis an ngléas EFR32. Bíonn éagsúlacht ag baint le feidhmiú fón póca agus mar sin seans nach mbeidh gá leis an gcéim seo. Mura bhfeiceann tú an gléas 'Oiliúint' i do shocruithe Bluetooth, téigh ar aghaidh go dtí an chéad chéim eile.
- I gcomhpháirteanna bogearraí, suiteáil sampla amháin den láimhseálaí cnaipe simplí.
- Cuir an ceanntásc san áireamh file sl_simple_button_instances.h in app.c
- Cuir láimhseálaí leis don imeacht sl_bt_evt_sm_bonding_confirm_id. Is é príomhphost láimhseálaí an imeachta seo ná a chur in iúl don úsáideoir go bhfuil cianfheiste ag iarraidh banna nua.
- Cuir feidhm aisghlao leis don láimhseálaí simplí cnaipe chun comhartha a sheoladh chuig an stack Bluetooth ag léiriú go bhfuil cnaipe brúite. Sáraíonn sé seo an glao ar ais réamhshocraithe a thagann ar ais go simplí.
- Cuir láimhseálaí imeachta comhartha seachtrach leis. Ardaítear an teagmhas seo mar fhreagra ar chomhartha a fháil, mar a tharla sa chéim roimhe seo. Úsáidfear an teagmhas comhartha seachtrach chun nascáil a dhearbhú.
- Athraigh an glao go sl_bt_sm_configure chun deimhniú nascáil a éileamh, mar shampla
- Atógáil agus flash.
- Ceangail le EFRConnect agus léigh an tréith chosanta mar a rinneadh cheana. Anois feicfidh tú teachtaireacht ar an gconsól mar seo a leanas:
Brúigh PB0 chun an nascáil a dhearbhú. Anois taispeánfaidh an consól an pasfhocal atá le cur isteach ar an bhfón póca le haghaidh nascáil. Cuir isteach an eochair pas chun an próiseas nascáil a chríochnú.
Leid: Úsáid an cás réamhshocraithe i láimhseálaí an imeachta chun teachtaireacht a phriontáil nuair a sheolann an stack imeacht nach bhfuil ar láimh. B'fhéidir go bhfuil an stack ag iarraidh rud éigin tábhachtach a insint duit.
Thar na Bunúsacha
Ag an bpointe seo, tá tú tar éis advan a ghlacadhtage de na gnéithe slándála atá le tairiscint ag ár stack. Anois, déanaimis cur i bhfeidhm a fheabhsú trí úsáid stuama a bhaint as na gnéithe atá ar fáil dúinn. Tá na céimeanna seo a leanas roghnach agus neamhspleách ar a chéile, is féidir leat a thógáil agus a flash i ndiaidh a chéile chun an t-iompar a fheiceáil nó iad a thriail go léir le chéile.
- Dícheangail ar iarrachtaí bannaí ar theip orthu. Is áit mhaith é seo chun bagairtí a bhrath. Mura dtacaíonn an cianfheiste le criptiú/fíordheimhniú nó mura bhfuil na heochracha cearta aige, d'fhéadfadh sé a bheith ina hacker. Mar sin, déanaimis an nasc a bhriseadh. Bain triail as glao a chur le sl_bt_connection_close() san imeacht sl_bt_sm_bonding_failed_id. Tá an API doiciméadaithe anseo.
Is féidir leat an ghné seo a thástáil ach an pasfhocal mícheart a iontráil.
- Gan ach nascáil a cheadú ag amanna áirithe. Cuireann sé seo teorainn leis an méid ama a bhíonn ag ionsaitheoir chun banna a dhéanamh agus is féidir an ghné 'ní cheadaigh ach naisc nasctha' a úsáid. Is féidir leis an dearthóir a roghnú conas mód inchurtha a chumasú nó a dhíchumasú. Chun críocha taispeána anseo, cumasóimid 'mód socraithe' le PB1 agus úsáidfimid lasc ama chun é a dhíchumasú tar éis 30 soicind.
- Suiteáil an dara huair den chomhéadan cnaipe simplí. Cumasóidh sé seo úsáid PB1.
- Athraigh an aisghlao chun comhartha eile a sheoladh chuig an stack chun nascáil a chumasú/a dhíchumasú. Ba chóir go bhfeicfeadh an toradh rud éigin mar seo:
- Athraigh láimhseálaí an imeachta comhartha seachtrach ionas go láimhseálann sé an comhartha nua seo. Ba chóir go mbeadh an toradh mar seo:
- Cuir láimhseálaí imeachta leis don imeacht sl_bt_evt_system_soft_timer_id. Úsáidfear é seo chun mód socraithe a dhíchumasú.
- Is féidir an cód seo a leanas a úsáid chun mód inbhanna a chumasú agus chun gach nasc a cheadú nó chun mód inbhanna a dhíchumasú agus gan ach naisc ó ghléasanna nasctha a cheadú:
- Cuir an glao seo a leanas leis sa láimhseálaí imeachta sl_bt_system_boot_id
- Tóg an tionscadal agus é a flash leis an bhfeiste.
- Bain triail as nascadh leis an ngléas le EFRConnect. Ba cheart go dteipfeadh ar an nasc.
- Anois bain triail as PB1 a bhrú roimh nascadh le EFRConnect. An uair seo beidh an nasc rathúil. Tar éis 30 soicind feicfidh tú teachtaireacht ar an gconsól a thabharfadh le fios go bhfuil an gléas ag éirí as an modh socraithe. Ciallaíonn sé seo go bhfuil mód inchurtha díchumasaithe anois.
- Slándáil a mhéadú nuair a dhéantar nasc. Ós rud é go bhfuil slándáil roghnach, ba cheart dúinn nasc criptithe a iarraidh a luaithe is féidir seachas a bheith ag brath ar shaintréithe GATT. Tá an API doiciméadaithe anseo. Is áit mhaith chun an API seo a ghlaoch ná san imeacht sl_bt_evt_connection_opened_id. Tá láimhseáil an naisc ar fáil san athróg naisc.
Aitheantas Slán
Anois go bhfuil gléas Bluetooth níos sláine againn, is féidir an chéim fíordheimhnithe a fheabhsú. Tá sé feicthe agat cheana féin conas aitheantas slán gléasanna cruinneachán a fhíorú leis an líne ordaithe i saotharlanna oiliúna roimhe seo. Sa chuid seo, feicfimid conas is féidir le gléas BLE amháin céannacht gléas BLE eile a fhíorú trína slabhra deimhnithe a iarraidh agus dúshlán a sheoladh. Tá a dteastas feiste agus deimhniú baisc féin ag gach cuid boghta slán. Tá na deimhnithe mhonarcha agus fréimhe códaithe go crua isteach san fheidhmchlár cliant chun an slabhra deimhnithe iomlán a fhíorú. Déan tagairt do AN1268 le haghaidh tuilleadh sonraí ar chéannacht shlán.
- Sainmhínigh maolán domhanda chun síniú fianú an ghléis a stóráil mar atá thíos:
- Socraigh cumraíocht an bhainisteora slándála chun péireáil JustWorks a úsáid. Déantar é seo ionas go mbeidh an nasc criptithe. Go praiticiúil, ba cheart cosaint MITM a úsáid ach chun an saotharlann a choinneáil simplí, úsáidfimid JustWorks. Athraigh an glao go sl_bt_sm_configure ar ais chuig an méid seo a leanas:
Chomh maith leis sin, déan trácht ar an nglao go setup_mode(true) sa láimhseálaí imeacht system_boot.
- Oscail helpers.c ó na hábhair a cuireadh ar fáil agus cóipeáil an t-ábhar in app.c. Déanann na feidhmeanna aisghlao seo tascanna ar nós na deimhnithe a dheighilt ionas gur féidir iad a sheoladh thar BLE, slabhra na dteastas a fhíorú, agus an dúshlán a ghiniúint/fhíorú.
- Is gá uasmhéid an aonaid aistrithe (MTU) a chinneadh ionas gur féidir deimhnithe a dheighilt agus a athchóimeáil. Sainmhínigh athróg dhomhanda chun an MTU a shábháil mar a thaispeántar anseo:
Ansin cuir láimhseálaí imeachta leis don imeacht malartaithe GATT MTU mar a thaispeántar thíos:
- Tá trí shaintréith sonraí úsáideora is féidir a léamh. Úsáidtear na saintréithe seo chun an deimhniú feiste, an deimhniú baisc agus an dúshlán a chur in iúl. Úsáidtear feidhm aisghlao chun na hiarratais léite úsáideoirí seo a láimhseáil. Cuir láimhseálaí leis chun an fheidhm seo a ghlaoch mar a thaispeántar thíos:
Úsáideann an glao ar ais an MTU ó chéim #2 chun deighilt a dhéanamh agus na teastais a sheoladh de réir mar is gá. Láimhseálann sé freisin an dúshlán sínithe a sheoladh.
- Seolann an cliant dúshlán, uimhir randamach le síniú ag an bhfreastalaí, trí cheann de na tréithe GATT a scríobh. Ar an gcúis seo, ní mór láimhseálaí a bheith ag an bhfeidhmchlár don imeacht iarratais scríobh úsáideora mar atá thíos:
- Cuir tacaíocht aitheantais shlán leis files don tionscadal:
- app_se_manager_macro.h, app_se_manager_secure_identity.c agus app_se_secure_identity.h ó na hábhair a cuireadh ar fáil don tionscadal. iad seo files roinnt feidhmeanna cúntóra le haghaidh tascanna ar nós méid an teastais a fháil, eochair phoiblí an ghléis a fháil agus dúshlán a shíniú.
- Cuir app_se_manager_secure_identity.h san áireamh in app.c.
- Iompórtáil an gatt_configuration-attest.btconf soláthraithe ó na hábhair a soláthraíodh. Thug an bunachar sonraí GATT seo fianú slán ar a n-áirítear ceithre thréith a úsáidfear chun céannacht ár ngléas a fhíorú. Ina measc seo tá deimhniú feiste, deimhniú baisc, dúshlán agus freagairt.
- Cuirtear an cliant, a úsáidtear chun gléas cosúil le geata a insamhladh, ar fáil mar thionscadal iomlán ós rud é go bhfuil sé níos casta é a thógáil. Go ginearálta, tá oibríocht an chliaint mar seo a leanas:
- Scanann gléasanna a fhógraíonn an tseirbhís fhianaithe shlán agus nascann sé leo.
- Faigheann sé amach seirbhísí agus tréithe bunachar sonraí GATT.
- Léann sé na deimhnithe feiste agus baisce agus fíoraíonn sé an slabhra teastas ag baint úsáide as an monarcha agus an teastas fréimhe atá stóráilte aige i splanc.
- Seolann dúshlán randamach chuig an bhfreastalaí.
- Iarrachtaí chun an freagra ar an dúshlán a fhíorú.
- Dúnann sé an nasc má theipeann ar cheachtar den dá fhíorú.
- Tóg agus flash an tionscadal freastalaí chuig do fhreastalaí WSTK / raidió-chlár.
- Iompórtáil an tionscadal cliant ón bhfillteán cliant sna hábhair a chuirtear ar fáil. Tóg agus splanc an tionscadal cliant chuig do chliant WSK/radioboard.
- Brúigh athshocrú ar an WSTK cliant agus oscail an consól sraitheach. Tosaíonn an cliant ag scanadh le haghaidh gléasanna a fhógraíonn ár seirbhís aitheantais shlán agus nascfaidh sé nuair a aimsíonn sé ceann.
- Taispeánfaidh an cliant roinnt teachtaireachtaí chun a chur in iúl go bhfuil an freastalaí faighte aige leis an tseirbhís atá ag teastáil agus teachtaireachtaí stádais maidir le fíorú an tslabhra teastais.
- Má éiríonn leis an bhfíorú, ginfidh an cliant uimhir randamach, ar a dtugtar dúshlán, agus seolfaidh sé chuig an bhfreastalaí é. Síneoidh an freastalaí an dúshlán lena eochair ghléis phríobháideach atá slán agus an síniú ar ais chuig an gcliant, tugtar freagra dúshlán air seo. Úsáideann an cliant ansin an eochair phoiblí sa deimhniú gléis a fuarthas roimhe seo chun an síniú a fhíorú. Déantar é seo chun a dhearbhú go bhfuil an eochair phríobháideach ag an bhfreastalaí a d'éiligh sé a bheith aige. Má dhéantar an dúshlán a fhíorú i gceart, taispeántar teachtaireacht chuige sin; ar shlí eile, tá an nasc dúnta, agus taispeántar teachtaireacht ag míniú cén fáth.
- Anois seol teastas neamhbhailí chun a dheimhniú go n-oibríonn an fíorú i ndáiríre. Is féidir leat user_read_request_cb() a mhodhnú chun sonraí an teastais nó an freagra dúshlán a éilliú.
Aguisín A – Cumais I/O agus Modhanna Péireála 
Aguisín B – Modhanna agus Leibhéil Slándála
Is é modh slándála 1 an t-aon mhodh a dtacaítear leis le haghaidh Bluetooth Low Energy i gcruach na Silicon Labs. Is iad seo a leanas na leibhéil:
- Leibhéal 1 gan slándáil
- Péireáil neamhdheimhnithe Leibhéal 2 le criptiú
- Péireáil fhíordheimhnithe Leibhéal 3 le criptiú
- Nascanna slána fíordheimhnithe Leibhéal 4 le criptiú láidir (malartú eochrach ECDH)
Doiciméid / Acmhainní
![]() |
silabs 21Q2 slán BLE device Security Lab [pdfLámhleabhar Úsáideora Saotharlann Slándála gléas BLE slán 21Q2, slán sábháilte Saotharlann Slándála an fheiste BLE, Saotharlann Slándála |