silabs 21Q2 secure device BLE Security Lab

BLE Manwal tal-Lab tas-Sigurtà

F'dan il-laboratorju, se tara kif tfassal apparat BLE aktar sigur. Nibdew b'overview ta 'kif tuża xi wħud mill-karatteristiċi munzell u jimxu għal xi pariri ġenerali dwar tekniki għal konnessjonijiet aktar sikuri u finalment se naraw kif tuża ċertifikati apparat fuq BLE biex jidentifikaw periferali bħala awtentiċi.

Nibdew

Il-Bluetooth sampl-applikazzjoni li inti tkun qed tibni fuq hija maħsuba biex tintuża ma 'bootloader. Jekk qed taħdem ma 'EFR32MG21B ġdid fjamant, mhux se jkollu bootloader. Tista' ssib bootloader mibni minn qabel fil-pjattaforma\bootloader\sample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a folder tal-SDK tiegħek.

  1. Ibda b'soc-vojta sample app. Dan sample app tintuża bħala mudell u tagħmel punt ta 'tluq tajjeb għal kwalunkwe applikazzjoni BLE.
    1. Iftaħ is-Silicon Labs Project Wizard mis-Simplicity Studio File menu -> ġdid.
    2. Agħżel il-BRD4181C u kklikkja l-buttuna 'li jmiss'.
    3. Ikklikkja l-kaxxa 'Bluetooth (9)' taħt it-tip ta' teknoloġija.
    4. Immarka 'Bluetooth – SoC Vojt' imbagħad ikklikkja jmiss.
    5. Ikklikkja l-buttuna 'Fish'.
  2. Issa tista 'żżid xi karatteristiċi biex tara kif karatteristiċi protetti u mhux protetti huma ttrattati b'mod differenti.
    1. Iftaħ l-slcp tal-proġett file billi tikklikkjaha darbtejn fit-tieqa tal-Project Explorer
    2. Immarka t-tab 'KOMPONENTI SOFTWARE' u iftaħ l-għodda ta' konfigurazzjoni GATT kif muri hawn taħt: U uża l-għodda ta 'importazzjoni murija hawn taħt biex timporta l-gatt_configuration.btconf file mill-folder tas-server fil-materjali pprovduti.Id-database tal-GATT għandha servizz tad-dwana, imsejjaħ 'Taħriġ', b'xi data li hija protetta u xi wħud li mhix. Dan jippermettilek tqabbel dak li jiġri meta tipprova taċċessa karatteristika protetta vs waħda mhux protetta. Dan huwa mod rapidu kif tagħmel apparat b'sigurtà bażika ħafna.
  3. Aħna ser nużaw il-port tas-serje biex nipprintjaw fuq il-console fi Simplicity Studio biex insegwu dak li qed jiġri fl-applikazzjoni. L-eħfef mod biex issib dawn il-komponenti huwa billi tfittexhom fid-djalogu KOMPONENTI SOFTWARE kif muri:
      1. Installa l-komponent IO Stream USART
      2. Installa l-komponent IO Stream Retarget STDIO
      3. Installa l-komponent I/O Standard
      4. Installa l-komponent Log
      5. Iftaħ il-komponent tal-Kontroll tal-Bord u ixgħel il-'Enable Virtual COM UART'
      6. Ikklikkja bil-lemin fuq l-adapter fil-panel 'Debug adapters' u agħżel 'Launch Console'. Agħżel it-tab 'Serial 1' u poġġi l-cursor fil-qasam tad-dħul tat-test tat-tieqa tal-console u agħfas enter biex tqum il-console.
  4. Oħloq varjabbli lokali f'sl_bt_on_event(), misjuba f'app.c, biex issalva l-manku tal-konnessjoni. Il-varjabbli trid tkun statika peress li din il-funzjoni tissejjaħ kull darba li avveniment jitqajjem mill-munzell u rridu li l-valur ikun persistenti. Il-manku tal-konnessjoni se jintuża aktar tardsezzjoni tal-laboratorju.
  5. Daħħal xi dikjarazzjonijiet app_log() għal avvenimenti biex tara meta nkunu konnessi, modi tas-sigurtà, eċċ
      1. Inkludi l-header app_log.h file
      2. sl_bt_evt_connection_opened – ipprintja l-manku tal-bond u ssalva l-manku tal-konnessjoni. Jekk il-manku tal-bond huwa 0xFF, ma teżisti l-ebda rabta bejn l-apparati konnessi. Immodifika l-immaniġġjar tal-avvenimenti eżistenti sabiex jidher xi ħaġa bħal din:
      3. sl_bt_evt_connection_parameters – mod tas-sigurtà. Dan isir sabiex tkun tista' tara meta tinbidel il-mod tas-sigurtà. Hemm differenza fin-numerazzjoni tal-modi tas-sigurtà fejn il-mod tas-sigurtà 1, huwa enumerat bil-valur 0, eċċ. Żid il-handler tal-avvenimenti li ġej mal-applikazzjoni tiegħek:
      4. sl_bt_evt_connection_closed_id. Dan il-handler tal-avveniment huwa modifikat biex jaġġorna l-manku tal-konnessjoni. Il-valur 0xFF jintuża biex jindika li m'hemm l-ebda konnessjoni attiva. Il-kmand app_log() jintuża biex jistampa r-raġuni għall-għeluq tal-konnessjoni, il-lista tal-kodiċijiet tal-istatus tinsab hawn. Immodifika l-immaniġġjar tal-avvenimenti eżistenti sabiex jidher xi ħaġa bħal din:
  6. Ibni u flash il-proġett. F'dan il-punt, aħna ser imexxu l-sample app biex tara kif iġib ruħu mingħajr ebda tibdil, minbarra d-database tal-GATT.
  7. Qabbad mal-app mobbli EFRConnect kif ġej:
      1. Tektek l-ikona 'Bluetooth Browser'.
      2. Tektek l-ikona 'Konness' fuq l-apparat imsejjaħ 'Taħriġ'.
  8. Aqra l-karatteristika mhux protetta kif ġej:
      1. Tektek il-link 'Aktar Informazzjoni' taħt is-servizz mhux magħruf b'UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0.
      2. Aqra l-karatteristika mhux protetta, UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c billi ttektek l-ikona 'Aqra'. Ebda sorpriża hawn. Peress li l-karatteristika ma hija protetta bl-ebda mod, se tintbagħat b'test sempliċi.
  9. Issa aqra l-karatteristika protetta, UUID d4261dbb-dcd0-daab-ec95-deec088d532b. Il-mowbajl tiegħek għandu jqanqlek biex tgħaqqad u tikkonnettja, il-messaġġ jista 'jvarja skont l-OS mobbli tiegħek. Wara li taċċetta t-talba biex tgħaqqad, għandek messaġġ fuq il-console kif ġej: Nota: L-Appendiċi A fl-aħħar ta' dan il-manwal għandu sommarju tal-kapaċitajiet tal-I/O u l-metodi ta' pairing għal referenza. L-Appendiċi B jiġbor fil-qosor il-modi tas-sigurtà tal-Bluetooth.

Konfigurazzjoni tal-Maniġer tas-Sigurtà

Il-maniġer tas-sigurtà huwa parti mill-munzell Bluetooth li jiddetermina liema karatteristiċi tas-sigurtà jintużaw. Dawn il-karatteristiċi jinkludu protezzjoni man-in-the-middle (MITM), konnessjonijiet LE Secure (magħruf ukoll bħala ECDH), li jeħtieġu konferma għat-twaħħil, eċċ. Il-maniġer tas-sigurtà jimmaniġġja wkoll kapaċitajiet I/O li huma użati biex jiddeterminaw liema metodu jintuża għall-irbit. /bonding (ara l-Appendiċi A għal sommarju). F'din it-taqsima se tara setup sempliċi.

  1. Setup SM b'konfigurazzjoni mixtieqa. Il-ħardwer għal dan il-laboratorju jagħmilha faċli biex jintwera passkey fuq il-console. Id-dħul tal-passkey huwa rekwiżit biex tippermetti l-protezzjoni MITM. Żid il-kodiċi li ġej mal-handler tal-avveniment sl_bt_system_boot_id tiegħek. Dan jippermetti man-in-the-middle u jinforma lill-apparat remot li għandna l-abbiltà li juru passkey, iżda dak kollu.
  2. Biex turi l-passkey fuq il-console, jeħtieġ li jimmaniġġja l-avvenimenti kif muri hawn taħt:
  3. Issettja l-mod ta' rbit, in-numru massimu ta' rbit, eċċ. Uża l-kodiċi li ġej biex tibda:Dawn is-settings jistgħu jintużaw biex jillimitaw l-abbiltà ta 'attakkant li jgħaqqad mat-tagħmir tiegħek. Jekk il-prodott tiegħek jeħtieġ li jkollu utent wieħed biss, allura tista' tillimita l-bonds massimi għal 1. Post tajjeb biex iżżid dawn is-sejħiet huwa fil-handler tal-avvenimenti sl_bt_system_boot_id. Mhux se nippermettu t-twaħħil f'dan il-ħin biex il-bqija tal-laboratorju jimxi aktar bla xkiel iżda nistabbilixxu politika ta' rbit biex inħallu bond wieħed biss. Għal referenza, id-dokumentazzjoni għal dawn l-APIs tinsab hawn u hawn .
  4. Żid handlers tal-avvenimenti għal sl_bt_evt_sm_bonded_id u sl_bt_evt_sm_bonding_failed_id. L-użu ewlieni għal dawn l-avvenimenti bħalissa huwa informattiv iżda aktar tard fil-laboratorju se żżid il-funzjonalità.
  5. Ibni u flash għall-bord fil-mira. Qabbad ma 'EFRConnect u aqra l-karatteristika protetta bħal qabel. Din id-darba, se tara passkey murija fuq il-console. Daħħal din il-passkey fuq il-mowbajl tiegħek meta tintalab.
  6. Ipprova l-konferma tat-twaħħil. Din il-karatteristika tagħti lill-utent il-kapaċità li jeħtieġ li t-talbiet tal-irbit jiġu kkonfermati. Jekk tagħmel hekk, l-applikazzjoni tagħti kontroll fuq liema apparati tal-pari hija marbuta magħhom. Possibbiltà waħda hija li titlob lill-utent biex jagħfas buttuna qabel ma jippermetti l-bond.
    1. Iftaħ is-settings tal-Bluetooth fil-mowbajl tiegħek u neħħi r-rabta mal-apparat EFR32. L-implimentazzjonijiet tat-telefon ċellulari jvarjaw għalhekk dan il-pass jista' ma jkunx meħtieġ. Jekk ma tarax l-apparat 'Taħriġ' fis-settings tal-Bluetooth tiegħek, ipproċedi għall-pass li jmiss.
    2. Fil-komponenti tas-softwer, installa każ wieħed tal-handler tal-buttuna sempliċi.
    3. Inkludi l-header file sl_simple_button_instances.h f'app.c
    4. Żid handler għall-avveniment sl_bt_evt_sm_bonding_confirm_id. Ix-xogħol ewlieni ta 'dan l-immaniġġjar tal-avvenimenti huwa li jinforma lill-utent li apparat remot qed jitlob bond ġdid.
    5. Żid funzjoni ta 'callback għall-immaniġġjar tal-buttuna sempliċi biex jibgħat sinjal lill-munzell Bluetooth li jindika li buttuna ġiet ippressata. Dan jegħleb is-callback default li sempliċement jirritorna.
    6. Żid handler tal-avvenimenti tas-sinjal estern. Dan l-avveniment jitqajjem bi tweġiba għar-riċeviment ta 'sinjal, bħal fil-pass preċedenti. L-avveniment tas-sinjal estern se jintuża biex jikkonferma t-twaħħil.
    7. Ibdel is-sejħa għal sl_bt_sm_configure biex teħtieġ konferma tal-irbit bħal
    8. Ibni mill-ġdid u flash.
    9. Qabbad ma 'EFRConnect u aqra l-karatteristika protetta bħal qabel. Issa se tara messaġġ fuq il-console kif ġej:Agħfas PB0 biex tikkonferma t-twaħħil. Issa l-console se juri l-passkey li għandu jiddaħħal fuq il-mowbajl għall-irbit. Daħħal il-passkey biex tlesti l-proċess tat-twaħħil.

 

Tip: Uża l-każ default fil-handler tal-avvenimenti biex tipprintja messaġġ meta l-munzell jibgħat avveniment li ma jiġix immaniġġjat. Il-munzell jista 'jkun qed jipprova jgħidlek xi ħaġa importanti.

Lil hinn mill-Bażiku

F'dan il-punt, inti ħadt vantaġġtage tal-karatteristiċi ta 'sigurtà li munzell tagħna għandha x'toffri. Issa ejja ntejbu l-implimentazzjoni permezz ta 'użu għaqli tal-karatteristiċi għad-dispożizzjoni tagħna. Il-passi li ġejjin huma fakultattivi u indipendenti minn xulxin, tista 'tibni u flash wara kull wieħed biex tara l-imġieba jew tipprovahom kollha flimkien.

  1. Skonnettja fuq tentattivi falluti ta' bond. Dan huwa post tajjeb biex tiskopri theddid. Jekk l-apparat remot ma jappoġġjax encryption/awtentikazzjoni jew sempliċement ma jkollux iċ-ċwievet korretti, jista 'jkun hacker. Allura, ejja nkissru l-konnessjoni. Ipprova żid sejħa għal sl_bt_connection_close() fl-avveniment sl_bt_sm_bonding_failed_id. L-API hija dokumentata hawn.Tista' tittestja din il-karatteristika billi ddaħħal passkey ħażin.
  2. Jippermettu biss twaħħil f'ċerti ħinijiet. Dan jillimita l-ħin li attakkant ikollu biex jifforma rabta u jagħmilha possibbli li tintuża l-karatteristika 'jħalli biss konnessjonijiet bonded'. Id-disinjatur jista 'jagħżel kif jattiva jew iddiżattiva l-mod bondable. Għal skopijiet ta 'dimostrazzjoni hawn, aħna ser nippermettu 'modalità setup' ma' PB1 u nużaw tajmer biex tiddiżattivaha wara 30 sekonda.
    1. Installa t-tieni istanza tal-interface tal-buttuna sempliċi. Dan se jippermetti l-użu ta 'PB1.
    2. Immodifika r-callback biex tibgħat sinjal differenti lill-munzell biex tippermetti/itwaqqaf it-twaħħil. Ir-riżultat għandu jidher xi ħaġa bħal din:
    3. Immodifika l-immaniġġjar tal-avveniment tas-sinjal estern sabiex jimmaniġġja dan is-sinjal il-ġdid. Ir-riżultat għandu bħal dan:
    4. Żid handler tal-avvenimenti għall-avveniment sl_bt_evt_system_soft_timer_id. Dan se jintuża biex jiskonnettja l-modalità tas-setup.
    5. Il-kodiċi li ġej jista 'jintuża biex jippermetti l-mod bondable u jippermetti l-konnessjonijiet kollha jew biex jiskonnettja l-bondable mode u jippermetti biss konnessjonijiet minn apparati bonded:
    6. Żid is-sejħa li ġejja fil-handler tal-avveniment sl_bt_system_boot_id
    7. Ibni l-proġett u flash it-tagħmir.
    8. Ipprova ikkonnettja mal-apparat b'EFRConnect. Il-konnessjoni għandha tfalli.
    9. Issa ipprova agħfas PB1 qabel tikkonnettja ma 'EFRConnect. Din id-darba l-konnessjoni se tkun ta 'suċċess. Wara 30 sekonda tara messaġġ fuq il-console li jindika li l-apparat qed joħroġ mill-modalità tas-setup. Dan ifisser li l-mod bondable issa huwa diżattivat.
  3. Żid is-sigurtà meta tifforma konnessjoni. Peress li s-sigurtà hija fakultattiva, għandna nitolbu konnessjoni kriptata kemm jista 'jkun malajr aktar milli niddependu fuq il-karatteristiċi tal-GATT. L-API hija dokumentata hawn. Post tajjeb biex issejjaħ din l-API huwa fl-avveniment sl_bt_evt_connection_opened_id. Il-manku tal-konnessjoni huwa disponibbli fil-varjabbli tal-konnessjoni.

Identità Sikura

Issa li għandna apparat Bluetooth aktar sikur, ejja ntejbu l-pass tal-awtentikazzjoni. Diġà rajt kif tivverifika l-identità sigura tal-apparati tal-kaxxa-forti bil-linja tal-kmand fil-laboratorji ta 'taħriġ preċedenti. F'din it-taqsima, se naraw kif apparat BLE wieħed jista 'jivverifika l-identità ta' apparat BLE ieħor billi jitlob il-katina taċ-ċertifikati tiegħu u jibgħat sfida. Il-partijiet kollha siguri tal-kaxxa-forti għandhom iċ-ċertifikat tal-apparat u ċ-ċertifikat tal-lott tagħhom stess. Iċ-ċertifikati tal-fabbrika u l-għeruq huma kodifikati iebes fl-applikazzjoni tal-klijent biex jippermettu l-verifika tal-katina taċ-ċertifikati kollha. Irreferi għal AN1268 għal aktar dettalji dwar identità sigura.

  1. Iddefinixxi buffer globali għall-ħażna tal-firma tal-attestazzjoni tal-apparat kif ġej:
  2. Issettja l-konfigurazzjoni tal-maniġer tas-sigurtà biex tuża t-tqabbil JustWorks. Dan isir sabiex il-konnessjoni tkun encrypted. Fil-prattika, għandha tintuża l-protezzjoni MITM iżda biex inżommu l-laboratorju sempliċi, se nużaw JustWorks. Ibdel is-sejħa għal sl_bt_sm_configure lura għal dan li ġej:Ukoll, ikkummenta s-sejħa għal setup_mode(true) fil-handler tal-avveniment system_boot.
  3. Iftaħ helpers.c mill-materjali pprovduti u kkopja l-kontenut f'app.c. Dawn il-funzjonijiet callback iwettqu kompiti bħas-segmentazzjoni taċ-ċertifikati sabiex ikunu jistgħu jintbagħtu fuq BLE, jivverifikaw il-katina taċ-ċertifikati, u jiġġeneraw/verifikaw l-isfida.
  4. Huwa meħtieġ li jiġi ddeterminat id-daqs massimu tal-unità tat-trasferiment (MTU) sabiex iċ-ċertifikati jkunu jistgħu jiġu segmentati u assemblati mill-ġdid. Iddefinixxi varjabbli globali biex issalva l-MTU kif muri hawn:Imbagħad żid handler tal-avvenimenti għall-avveniment skambjat tal-GATT MTU kif muri hawn taħt:
  5. Hemm tliet karatteristiċi tad-dejta tal-utent li jistgħu jinqraw. Dawn il-karatteristiċi jintużaw biex jikkomunikaw iċ-ċertifikat tal-apparat, iċ-ċertifikat tal-lott u l-isfida. Funzjoni ta' callback tintuża biex timmaniġġja dawn it-talbiet tal-qari tal-utent. Żid handler biex issejjaħ din il-funzjoni kif muri hawn taħt:Is-callback juża l-MTU mill-pass #2 biex segment u jibgħat iċ-ċertifikati kif meħtieġ. Jitratta wkoll li tibgħat l-isfida ffirmata.
  6. Il-klijent jibgħat sfida, numru każwali li għandu jiġi ffirmat mis-server, billi jikteb waħda mill-karatteristiċi tal-GATT. Għal din ir-raġuni, l-applikazzjoni jeħtieġ li jkollha handler għall-avveniment tat-talba tal-kitba tal-utent kif hawn taħt:
  7. Żid appoġġ għall-identità sigura files għall-proġett:
    1. app_se_manager_macro.h, app_se_manager_secure_identity.c u app_se_secure_identity.h mill-materjali pprovduti għall-proġett. Dawn files fihom xi funzjonijiet helper għal ħidmiet bħal jkollna d-daqs taċ-ċertifikat, jkollna ċ-ċavetta pubblika tat-tagħmir u jiffirmaw sfida.
    2. Inkludi app_se_manager_secure_identity.h f'app.c.
  8. Importa l-gatt_configuration-attest.btconf ipprovdut mill-materjali pprovduti. Din id-database tal-GATT imsejħa attestazzjoni sigura li tinkludi erba' karatteristiċi li se jintużaw biex tiġi vverifikata l-identità tal-apparat tagħna. Dawn jinkludu ċ-ċertifikat tal-apparat, iċ-ċertifikat tal-lott, l-isfida u r-rispons.
  9. Il-klijent, li jintuża biex jissimula apparat bħal gateway, huwa pprovdut bħala proġett sħiħ peress li huwa aktar kumpless biex jinbena. B'mod ġenerali, l-operat tal-klijent huwa kif ġej:
    1. Skennja għal apparati li jirreklamaw is-servizz ta' attestazzjoni sigur u jgħaqqad magħhom.
    2. Jiskopri s-servizzi u l-karatteristiċi tad-database tal-GATT.
    3. Jaqra l-apparat u ċ-ċertifikati tal-lott u jivverifika l-katina taċ-ċertifikati billi juża ċ-ċertifikat tal-fabbrika u l-għeruq li jkun ħażen fi flash.
    4. Tibgħat sfida każwali lis-server.
    5. Tentattivi biex jivverifikaw ir-rispons għall-isfida.
    6. Jagħlaq il-konnessjoni jekk xi verifika tfalli.
  10. Ibni u flash il-proġett tas-server lis-server tiegħek WSTK/radioboard.
  11. Importa l-proġett tal-klijent mill-folder tal-klijent fil-materjali pprovduti. Ibni u flash il-proġett tal-klijent lill-klijent tiegħek WSTK/radjuboard.
  12. Agħfas reset fuq il-klijent WSTK u tiftaħ il-console tas-serje. Il-klijent jibda jiskennja għal apparati li jirreklamaw is-servizz tagħna ta' identità sigura u se jgħaqqad meta jsib wieħed.
  13. Il-klijent se juri xi messaġġi biex jindika li sab is-server bis-servizz mixtieq u l-messaġġi tal-istatus dwar il-verifika tal-katina taċ-ċertifikat.
  14. Jekk il-verifika tgħaddi, il-klijent jiġġenera numru każwali, imsejjaħ sfida, u jibgħatha lis-server. Is-server se jiffirma l-isfida biċ-ċavetta tal-apparat privat miżmuma b'mod sigur u l-firma lura lill-klijent, din tissejjaħ rispons għall-isfida. Il-klijent imbagħad juża ċ-ċavetta pubblika fiċ-ċertifikat tal-apparat li jkun irċieva qabel biex jivverifika l-firma. Dan isir biex jikkonferma li s-server verament għandu ċ-ċavetta privata li stqarr li għandu. Jekk l-isfida tiġi vverifikata b'mod korrett, jintwera messaġġ għal dak il-għan; inkella, il-konnessjoni tingħalaq, u jintwera messaġġ li jispjega għaliex.
  15. Issa ibgħat ċertifikat invalidu biex tikkonferma li l-verifika tassew taħdem. Tista' timmodifika user_read_request_cb() biex tikkorrompi jew id-dejta taċ-ċertifikat jew ir-rispons tal-isfida.

Appendiċi A – Kapaċitajiet I/O u Metodi ta' Tqabbil
Appendiċi B – Modi u Livelli ta' Sigurtà

Il-mod tas-sigurtà 1 huwa l-uniku mod appoġġjat għall-Bluetooth Low Energy fil-munzell tas-Silicon Labs. Il-livelli huma kif ġej:

  • Livell 1 ebda sigurtà
  • Tqabbil mhux awtentikat tal-Livell 2 b'encryption
  • Livell 3 awtentikata pairing ma encryption
  • Konnessjonijiet sikuri awtentikati tal-Livell 4 b'encryption b'saħħitha (skambju taċ-ċavetta ECDH)

 

Dokumenti / Riżorsi

silabs 21Q2 secure device BLE Security Lab [pdfManwal tal-Utent
21Q2 sikur apparat BLE Security Lab, sikur apparat BLE Security Lab, Security Lab

Referenzi

Ħalli kumment

L-indirizz elettroniku tiegħek mhux se jiġi ppubblikat. L-oqsma meħtieġa huma mmarkati *