silabs 21Q2 sireletsehileng BLE sesebelisoa Security Lab
Buka ea BLE Security Lab
Lab ena, u tla bona mokhoa oa ho rala sesebelisoa sa BLE se sireletsehileng haholoanyane. Re tla qala ka ho qetelaview ea mokhoa oa ho sebelisa tse ling tsa likarolo tsa stack le ho fetela keletsong e akaretsang mabapi le mekhoa ea likhokahano tse sireletsehileng haholoanyane 'me qetellong re tla bona mokhoa oa ho sebelisa litifikeiti tsa sesebelisoa holim'a BLE ho tsebahatsa peripheral e le' nete.
Rea qala
Sesebelisoa sa BluetoothampSesebelisoa seo u tla be u haha ho sona se reretsoe ho sebelisoa le bootloader. Haeba u sebetsa le EFR32MG21B e ncha, e ke ke ea ba le bootloader. U ka fumana bootloader e hahiloeng esale pele sethaleng \ bootloader \ sample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a foldara ea SDK ea hau.
- Qala ka ho se na letho sample app. Sena sample app e sebelisoa e le template mme e etsa sebaka se setle sa ho qala ts'ebeliso efe kapa efe ea BLE.
- Bula Silicon Labs Project Wizard ho tsoa ho Simplicity Studio File menu -> e ncha.
- Khetha BRD4181C ebe o tobetsa konopo ea 'e latelang'.
- Tobetsa lebokose la ho hlahloba la 'Bluetooth (9)' tlas'a mofuta oa theknoloji.
- Totobatsa 'Bluetooth - SoC Empty' ebe u tobetsa e latelang.
- Tobetsa konopo ea 'Finish'.
- Joale o ka eketsa litšobotsi tse ling ho bona hore na litšobotsi tse sirelelitsoeng le tse sa sireletsoang li tšoaroa joang ka tsela e fapaneng.
- Bula slcp ea morero file ka ho e tobetsa habeli fensetereng ea Project Explorer
- Totobatsa konopo ea 'SOFTWARE COMPONENTS' 'me u bule sesebelisoa sa tlhophiso sa GATT joalokaha ho bontšitsoe ka tlase:
'Me u sebelise sesebelisoa sa ho reka se bontšitsoeng ka tlase ho kenya gatt_configuration.btconf file ho tsoa ho foldara ea seva linthong tse fanoeng.
Database ea GATT e na le ts'ebeletso e tloaelehileng, e bitsoang 'Koetliso', e nang le lintlha tse ling tse sirelelitsoeng le tse seng joalo. Sena se u lumella ho bapisa se etsahalang ha u leka ho fumana tšobotsi e sirelelitsoeng khahlanong le e sa sireletsoang. Ena ke mokhoa o potlakileng oa ho etsa sesebelisoa se nang le ts'ireletso ea mantlha haholo.
- Re tla sebelisa serial port ho hatisa ho console ho Simplicity Studio ho latela se etsahalang ts'ebelisong. Mokhoa o bonolo oa ho fumana likarolo tsena ke ka ho li batla ho SOFTWARE COMPONENTS dialog joalo ka ha ho bonts'itsoe:
-
- Kenya karolo ea IO Stream UART
- Kenya karolo ea IO Stream Retarget STDIO
- Kenya karolo ea Standard I/O
- Kenya karolo ea Log
- Bula karolo ea Taolo ea Boto ebe o bulela 'Enable Virtual COM UART'
- Tobetsa ka ho le letona ho adaptara phanele ea 'Debug adapters' ebe u khetha 'Launch Console'. Khetha 'Serial 1' tab 'me u behe sesupa sebakeng sa ho kenya mongolo fensetereng ea console ebe u tobetsa Enter ho tsosa khomphutha.
-
- Theha phetoho ea lehae ho sl_bt_on_event(), e fumanehang ho app.c, bakeng sa ho boloka sebapi sa khokahano. Phetoho e tlameha ho ba e tsitsitseng kaha ts'ebetso ena e bitsoa nako le nako ha ketsahalo e phahamisoa ke stack mme re batla hore boleng bo tsoele pele. Sesebelisoa sa khokahano se tla sebelisoa hamorao
karolo ea laboratori.
- Kenya app_log() statements bakeng sa liketsahalo ho bona ha re hokahane, mekhoa ea ts'ireletso, jj
-
- Kenyelletsa sehlooho sa app_log.h file
- sl_bt_evt_connection_opened – print bond handle and save the connection handle. Haeba bond handle e le 0xFF, ha ho na maqhama pakeng tsa lisebelisoa tse hokahaneng tse teng. Fetola sebatli sa ketsahalo se teng hore se shebahale tjena:
- sl_bt_evt_connection_parameters - mokhoa oa tšireletso. Sena se etsoa e le hore u ka bona ha mokhoa oa tšireletso o fetoha. Ho na le phapang ea palo ea mekhoa ea ts'ireletso moo mokhoa oa ts'ireletso 1, o baloang ka boleng ba 0, joalo-joalo. Kenya sebatli se latelang sa ketsahalo sesebelisoa sa hau:
- sl_bt_evt_connection_closed_id. Sebapali sena se fetotsoe ho ntlafatsa sebapi sa khokahano. Boleng ba 0xFF bo sebelisoa ho bontša hore ha ho na khokahano e sebetsang. Taelo ea app_log () e sebelisetsoa ho hatisa lebaka la hore khokahano e koetsoe, lenane la likhoutu tsa maemo le mona. Fetola sebatli sa ketsahalo se teng hore se shebahale tjena:
- Kenyelletsa sehlooho sa app_log.h file
-
- Theha le ho khantša morero. Mothating ona, re tla tsamaisa sample app ho bona hore na e sebetsa joang ntle le liphetoho, ntle le database ea GATT.
- Ikopanye le sesebelisoa sa mohala sa EFRConnect ka tsela e latelang:
-
- Tlanya aekhone ea 'Bluetooth Browser'.
- Tlanya letšoao la 'Connect' sesebelisoa se bitsoang 'Training'.
-
- Bala tšobotsi e sa sireletsehang ka tsela e latelang:
-
- Tlanya sehokelo sa 'More Info' tlasa ts'ebeletso e sa tsejoeng ka UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0.
- Bala sebopeho se sa sireletsehang, UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c ka ho tlanya letšoao la 'Bala'. Ha ho na lintho tse makatsang mona. Kaha tšobotsi ha ea sireletsoa ka tsela leha e le efe, e tla romeloa ka mokhoa o hlakileng.
-
- Joale bala tšobotsi e sirelelitsoeng, UUID d4261dbb-dcd0-daab-ec95-deec088d532b. Mohala oa hau oa selefouno o lokela ho u khothaletsa hore u kopane le ho hokela, molaetsa o ka fapana ho latela mobile OS ea hau. Kamora ho amohela kopo ea ho para, o lokela ho romella molaetsa ho console ka tsela e latelang:
Hlokomela: Sehlomathiso sa A se qetellong ea bukana ena se na le kakaretso ea bokhoni ba I/O le mekhoa ea ho kopanya hore ho be le litšupiso. Sehlomathiso B se akaretsa mekhoa ea ts'ireletso ea Bluetooth.
Tlhophiso ea Motsamaisi oa Ts'ireletso
Motsamaisi oa ts'ireletso ke karolo ea stack ea Bluetooth e khethollang hore na ho sebelisoa likarolo life tsa tšireletso. Likarolo tsena li kenyelletsa tšireletso ea motho-in-the-bohareng (MITM), LE Secure connections (aka ECDH), e hlokang netefatso bakeng sa bonding, joalo-joalo Mookameli oa ts'ireletso o boetse o sebetsana le bokhoni ba I / O bo sebelisetsoang ho fumana hore na ke mokhoa ofe o sebelisetsoang ho kopanya. /bonding (sheba Sehlomathiso A bakeng sa kakaretso). Karolong ena u tla bona ho seta ho bonolo.
- Hlophisa SM ka tlhophiso e lakatsehang. Thepa ea lab ena e etsa hore ho be bonolo ho hlahisa senotlolo ho khomphutha. Keno ea Passkey ke tlhokahalo ho nolofalletsa ts'ireletso ea MITM. Kenya khoutu e latelang ho sesebelisoa sa ketsahalo sa sl_bt_system_boot_id. Sena se nolofalletsa motho-bohareng mme se tsebisa sesebelisoa se hole hore re na le bokhoni ba ho bonts'a senotlolo, empa ke phetho.
- Ho bonts'a senotlolo ho khomphutha, ho hlokahala mohlokomeli oa ketsahalo joalo ka ha ho bonts'itsoe ka tlase:
- Seta mokhoa oa ho kopanya, palo e kholo ea li-bonding, joalo-joalo. Sebelisa khoutu e latelang ho qala:
Litlhophiso tsena li ka sebelisoa ho fokotsa bokhoni ba mohlaseli ba ho sebelisana le sesebelisoa sa hau. Haeba sehlahisoa sa hau se hloka feela ho ba le mosebedisi a le mong, joale o ka fokotsa li-bond tse ngata ho 1. Sebaka se setle sa ho eketsa li-call tsena ke ho sl_bt_system_boot_id event handler. Re ke ke ra lumella bonding ka nako ena ho etsa hore lab e setseng e tsamaee hantle empa re thehile leano la bonding ho lumella bond e le 'ngoe feela. Bakeng sa litšupiso, litokomane tsa li-API tsena li fumaneha mona le mona.
- Kenya batshwari ba ketsahalo bakeng sa sl_bt_evt_sm_bonded_id le sl_bt_evt_sm_bonding_failed_id. Tšebeliso ea mantlha bakeng sa liketsahalo tsena e na le tsebo hajoale empa hamorao ka lab o tla eketsa ts'ebetso.
- Haha 'me u bonese ho boto e shebiloeng. Ikopanye le EFRConnect 'me u bale tšobotsi e sirelelitsoeng joalo ka pele. Lekhetlong lena, u tla bona senotlolo sa ho feta se bonts'itsoeng ho console. Kenya phasewete ena fonong ya hao ha o laetswa.
- Leka ho netefatsa bonding. Karolo ena e fa mosebelisi bokhoni ba ho batla hore likopo tsa bonding li netefatsoe. Ho etsa joalo ho fana ka taolo ea ts'ebeliso ea hore na e hokahane le lisebelisoa life tsa lithaka. Monyetla o mong ke ho batla hore mosebelisi a tobetse konopo pele a lumella bond.
- Bula li-setting tsa Bluetooth fonong ea hau 'me u tlose bond ho sesebelisoa sa EFR32. Lisebelisoa tsa mohala oa thekeng lia fapana kahoo mohato ona o kanna oa se hlokehe. Haeba u sa bone sesebelisoa sa 'Koetliso' litlhophisong tsa hau tsa Bluetooth, fetela mohatong o latelang.
- Likarolong tsa software, kenya mohlala o le mong oa sesebelisoa se bonolo sa konopo.
- Kenyelletsa sehlooho file sl_simple_button_instances.h ho app.c
- Kenya setshwari bakeng sa ketsahalo ya sl_bt_evt_sm_bonding_confirm_id. Mosebetsi o ka sehloohong oa moetsi oa ketsahalo ena ke ho tsebisa mosebelisi hore sesebelisoa se hole se kopa bond e ncha.
- Eketsa tšebetso ea callback bakeng sa sesebelisoa se bonolo sa konopo ho romela lets'oao ho Bluetooth stack e bonts'ang hore konopo e tobetse. Sena se fetisa mohala oa kamehla o khutlang.
- Kenya setshwari sa ketsahalo ya letshwao la kantle. Ketsahalo ena e phahamisoa karabelo ea ho amohela lets'oao, joalo ka mohatong o fetileng. Ketsahalo ea matšoao a kantle e tla sebelisoa ho netefatsa tlamahano.
- Fetola mohala ho sl_bt_sm_configure ho hloka netefatso ea bonding joalo ka
- Aha bocha 'me u benye.
- Ikopanye le EFRConnect 'me u bale tšobotsi e sirelelitsoeng joalo ka pele. Joale u tla bona molaetsa ho console ka tsela e latelang:
Tobetsa PB0 ho netefatsa bonding. Joale khomphutha e tla bonts'a senotlolo se tla kenngoa fonong ea selefouno bakeng sa bonding. Kenya phasewete ho phethela mokhoa oa ho kopanya.
Keletso: Sebelisa case ea kamehla ho moetsi oa ketsahalo ho hatisa molaetsa ha stack e romela ketsahalo e sa sebetsoeng. E ka 'na eaba motlatsi o leka ho u bolella ntho ea bohlokoa.
Ka Ntle ho Lintho tsa Motheo
Mothating ona, o nkile peletage ea likarolo tsa ts'ireletso tseo stack ea rona e fanang ka tsona. Joale ha re ntlafatse ts'ebetsong ka tšebeliso e bohlale ea likarolo tseo re nang le tsona. Mehato e latelang ke ea boikhethelo ebile e ikemetse ho e mong, o ka haha le ho benya ka mor'a e 'ngoe le e' ngoe ho bona boitšoaro kapa ho e leka kaofela hammoho.
- Hakolla ha u leka libonto tse hlōlehileng. Sena ke sebaka se setle sa ho bona litšokelo. Haeba sesebelisoa se hole se sa tšehetse encryption / netefatso kapa feela se se na linotlolo tse nepahetseng, e kanna ea ba senokoane. Kahoo, a re kgaoleng kgokahanyo. Leka ho kenya mohala ho sl_bt_connection_close() ketsahalong ea sl_bt_sm_bonding_failed_id. API e ngotsoe mona.
U ka leka tšobotsi ena ka ho kenya phasewete e fosahetseng.
- Ho lumella feela tlamahano ka linako tse itseng. Sena se lekanyetsa nako eo mohlaseli a tlamehang ho theha bond mme e etsa hore ho khonehe ho sebelisa 'feela lumella likhokahano tse hokahaneng'. Moqapi a ka khetha mokhoa oa ho nolofalletsa kapa oa ho tima mokhoa oa bondable. Bakeng sa lipontšo mona, re tla lumella 'seta mode' ka PB1 'me re sebelise sebali ho tima ka mor'a metsotsoana e 30.
- Kenya mohlala oa bobeli oa sebopeho se bonolo sa konopo. Sena se tla nolofalletsa tšebeliso ea PB1.
- Fetosa callback ho romela lets'oao le fapaneng ho stack ho nolofalletsa/ho tima bonding. Sephetho se lokela ho shebahala tjena:
- Fetosa sebatli sa ketsahalo ea lets'oao la kantle hore se tsebe ho sebetsana le lets'oao lena le lecha. Sephetho se lokela ho ba tjena:
- Kenya motho ea sebetsang ketsahalo bakeng sa ketsahalo ea sl_bt_evt_system_soft_timer_id. Sena se tla sebelisoa ho tima mokhoa oa ho seta.
- Khoutu e latelang e ka sebelisoa ho nolofalletsa mokhoa oa bondable le ho lumella likhokahano tsohle kapa ho tima mokhoa o tlamang le ho lumella likhokahano tse tsoang lisebelisoa tse tlanngoeng feela:
- Kenya mohala o latelang ho sesebelisoa sa ketsahalo sa sl_bt_system_boot_id
- Haha projeke ebe o e khantša ho sesebelisoa.
- Leka ho hokela sesebelisoa ka EFRConnect. Khokahano e tlameha ho hloleha.
- Joale leka ho tobetsa PB1 pele o hokela le EFRConnect. Lekhetlong lena khokahano e tla atleha. Ka mor'a metsotsoana e 30 u tla bona molaetsa ho console o bontšang hore sesebelisoa se tsoa ka mokhoa oa ho seta. Sena se bolela hore bondable mode e se e koetsoe.
- Eketsa ts'ireletso mabapi le ho theha khokahano. Kaha tshireletso ke boikgethelo, re lokela ho kopa khokahanyo e patiloeng kapele kamoo ho ka khonehang ho e-na le ho itšetleha ka litšobotsi tsa GATT. API e ngotsoe mona. Sebaka se setle sa ho letsetsa API ena ke ketsahalong ea sl_bt_evt_connection_opened_id. Sebapali sa khokahano se fumaneha ho feto-fetoha ha khokahano.
Boitsebahatso bo Sireletsehileng
Kaha joale re na le sesebelisoa sa Bluetooth se sireletsehileng haholoanyane, re ntlafatse mohato oa netefatso. U se u bone mokhoa oa ho netefatsa boitsebiso bo sireletsehileng ba lisebelisoa tsa vault ka mohala oa taelo lilaboratoring tse fetileng tsa koetliso. Karolong ena, re tla bona kamoo sesebelisoa se le seng sa BLE se ka netefatsang boitsebiso ba sesebelisoa se seng sa BLE ka ho kopa ketane ea setifikeiti le ho romela phephetso. Likarolo tsohle tse sireletsehileng tsa vault li na le setifikeiti sa sesebelisoa sa tsona le setifikeiti sa batch. Litifikeiti tsa feme le tsa metso li kentsoe ka thata ho sesebelisoa sa moreki ho thusa ho netefatsa ketane eohle ea setifikeiti. Sheba AN1268 bakeng sa lintlha tse ling mabapi le boitsebiso bo sireletsehileng.
- Hlalosa buffer ea lefats'e bakeng sa ho boloka mosaeno oa bopaki ba sesebelisoa ka tsela e ka tlase:
- Beha tlhophiso ea mookameli oa ts'ireletso ho sebelisa JustWorks pairing. Sena se etsoa e le hore khokahano e kenngoe ka mokhoa o patiloeng. Ha e le hantle, tšireletso ea MITM e lokela ho sebelisoa empa ho boloka lab e le bonolo, re tla sebelisa JustWorks. Fetola mohala ho sl_bt_sm_configure ho khutlela ho tse latelang:
Hape, fana ka maikutlo ka mohala oa ho setup_mode('nete) ho system_boot event handler.
- Bula helpers.c ho tsoa ho lisebelisoa tse fanoeng ebe u kopitsa litaba ho app.c. Mesebetsi ena ea ho khutlela morao e etsa mesebetsi e kang ho arola litifikeiti e le hore li ka romeloa ka BLE, ho netefatsa ketane ea setifikeiti, le ho hlahisa/ho netefatsa phephetso.
- Hoa hlokahala ho tseba boholo ba yuniti ea phetisetso (MTU) e le hore litifikeiti li ka aroloa le ho kopanngoa hape. Hlalosa phapang ea lefats'e ho boloka MTU joalokaha ho bontšitsoe mona:
Ebe u eketsa mohlokomeli oa ketsahalo bakeng sa ketsahalo e fapanyetsanoang ea GATT MTU joalokaha ho bontšitsoe ka tlase:
- Ho na le litšobotsi tse tharo tsa data tsa mosebelisi tse ka baloang. Litšobotsi tsena li sebelisetsoa ho buisana ka setifikeiti sa sesebelisoa, setifikeiti sa batch le phephetso. Mosebetsi oa ho letsetsa o sebelisoa ho sebetsana le likopo tsena tsa ho bala ha basebelisi. Kenya sebatli ho letsetsa tšebetso ena joalo ka ha ho bonts'itsoe ka tlase:
The callback e sebelisa MTU ho tloha mohato oa #2 ho ea karolong le ho romela litifikeiti ha ho hlokahala. E boetse e sebetsana le ho romella phephetso e saennoeng.
- Moreki o romela phephetso, nomoro e sa reroang e lokelang ho saenoa ke seva, ka ho ngola e 'ngoe ea litšobotsi tsa GATT. Ka lebaka lena, kopo e hloka ho ba le motho ea sebetsanang le ketsahalo ea kopo ea ho ngola ka tlase:
- Kenya ts'ehetso e sireletsehileng ea boitsebiso files ho morero:
- app_se_manager_macro.h, app_se_manager_secure_identity.c le app_se_secure_identity.h ho tloha ho lisebelisoa tse fanoeng ho morero. Tsena files e na le lithuso tse ling bakeng sa mesebetsi e kang ho fumana boholo ba setifikeiti, ho fumana senotlolo sa sechaba sa sesebelisoa le ho saena phephetso.
- Kenyelletsa app_se_manager_secure_identity.h ho app.c.
- Fumana thepa e fanoeng ea gatt_configuration-attest.btconf ho tsoa ho lisebelisoa tse fanoeng. Setsi sena sa polokelo ea boitsebiso sa GATT se bitsoa tiisetso e sireletsehileng e kenyeletsang litšobotsi tse 'nè tse tla sebelisoa ho netefatsa boitsebiso ba lisebelisoa tsa rona. Tsena li kenyelletsa setifikeiti sa sesebelisoa, setifikeiti sa batch, phephetso le karabelo.
- Moreki, e sebelisetsoang ho etsisa sesebelisoa se kang heke, e fanoa e le morero o feletseng kaha ho thata ho haha. Ka kakaretso, ts'ebetso ea bareki e tjena:
- E hlahloba lisebelisoa tse bapatsang litšebeletso tse sireletsehileng tsa bopaki ebe li hokela ho tsona.
- E sibolla lits'ebeletso tsa database tsa GATT le litšobotsi.
- E bala sesebediswa le disetifikeiti tsa batch mme e netefatse ketane ya setifikeiti ka ho sebedisa feme le setifikeiti sa motso seo e se bolokileng ka flash.
- E romela phephetso e sa reroang ho seva.
- Boiteko ba ho netefatsa karabo phephetsong.
- E koala khokahano haeba e 'ngoe ea netefatso e hloleha.
- Haha le ho khantša projeke ea seva ho seva sa hau sa WSTK / radioboard.
- Kenya projeke ea moreki ho tsoa foldareng ea moreki ho lisebelisoa tse fanoeng. Theha le ho khantša morero oa moreki ho WSTK/radioboard ea hau.
- Tobetsa reset ho sebatli sa WSTK ebe u bula serial console. Moreki o qala ho lekola lisebelisoa tse bapatsang litšebeletso tsa rona tse sireletsehileng tsa boitsebiso, 'me o tla hokela ha a se fumana.
- Moreki o tla hlahisa melaetsa e meng ho bontša hore e fumane seva e nang le litšebeletso tse lakatsehang le melaetsa ea boemo mabapi le netefatso ea ketane ea setifikeiti.
- Haeba netefatso e feta, moreki o tla hlahisa nomoro e sa reroang, e bitsoang phephetso, ebe o e romella ho seva. Seva e tla saena phephetso ka senotlolo sa eona sa sesebediswa sa poraefete se sireleditsweng le tshaeno ho kgutlela ho moreki, sena se bitswa karabelo ya phephetso. Joale moreki o sebelisa senotlolo sa sechaba se setifikeiting sa sesebelisoa se amohetsoeng ho netefatsa tekeno. Sena se etsoa ho netefatsa hore seva e na le senotlolo sa lekunutu seo e reng e na le sona. Haeba phephetso e netefalitsoe ka nepo, molaetsa o hlahisoa ho seo; ho seng joalo, kgokelo e kwetswe, mme molaetsa o hlahiswe o hlalosang lebaka.
- Joale romella setifikeiti se sa sebetseng ho netefatsa hore netefatso ea sebetsa. U ka fetola user_read_request_cb() ho senya data ea setifikeiti kapa karabo ea phephetso.
Sehlomathiso A - Bokhoni ba I / O le Mekhoa ea ho Kopanya 
Sehlomathiso B - Mekhoa ea Tšireletso le Maemo
Mokhoa oa ts'ireletso 1 ke ona feela mokhoa o tšehetsoeng bakeng sa Bluetooth Low Energy ka har'a stack ea Silicon Labs. Maemo ke a latelang:
- Boemo ba 1 ha bo na tšireletso
- Boemo ba 2 ba marang-rang bo sa netefatsoang le encryption
- Boemo ba 3 bo netefalitsoeng ba ho hokahanya le encryption
- Level 4 e netefalitsoe likhokahano tse sireletsehileng tse nang le encryption e matla (ECDH key exchange)
Litokomane / Lisebelisoa
![]() |
silabs 21Q2 sireletsehileng BLE sesebelisoa Security Lab [pdf] Bukana ea Mosebelisi 21Q2 sesebelisoa se sireletsehileng sa BLE Lab ea Tšireletso, sesebelisoa se sireletsehileng sa BLE Lab ea Tšireletso, Lab ea Tšireletso |