silabs 21Q2 सुरक्षित BLE डिव्हाइस सुरक्षा लॅब
BLE सुरक्षा लॅब मॅन्युअल
या लॅबमध्ये, तुम्हाला अधिक सुरक्षित BLE डिव्हाइस कसे डिझाइन करायचे ते दिसेल. आम्ही ओव्हरने सुरुवात करूview काही स्टॅक वैशिष्ट्ये कशी वापरायची आणि अधिक सुरक्षित कनेक्शनसाठी तंत्रांबद्दल काही सामान्य सल्ल्याकडे वळायचे आणि शेवटी पेरिफेरल अस्सल ओळखण्यासाठी BLE वर डिव्हाइस सर्टिफिकेट कसे वापरायचे ते पाहू.
प्रारंभ करणे
ब्लूटूथ एसample अनुप्रयोग तुम्ही तयार करत आहात ते बूटलोडरसह वापरायचे आहे. तुम्ही अगदी नवीन EFR32MG21B सह काम करत असल्यास, त्यात बूटलोडर नसेल. तुम्हाला प्लॅटफॉर्म\बूटलोडर\s मध्ये पूर्व-निर्मित बूटलोडर सापडेलample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a तुमच्या SDK चे फोल्डर.
- एक soc-रिक्त s सह प्रारंभ कराample अॅप. या एसample अॅपचा वापर टेम्पलेट म्हणून केला जातो आणि कोणत्याही BLE अनुप्रयोगासाठी एक चांगला प्रारंभ बिंदू बनवतो.
- Simplicity Studio मधून Silicon Labs प्रोजेक्ट विझार्ड उघडा File मेनू -> नवीन.
- BRD4181C निवडा आणि 'पुढील' बटणावर क्लिक करा.
- तंत्रज्ञान प्रकार अंतर्गत 'ब्लूटूथ (9)' चेकबॉक्स क्लिक करा.
- 'Bluetooth – SoC Empty' हायलाइट करा नंतर पुढील क्लिक करा.
- 'फिनिश' बटणावर क्लिक करा.
- आता तुम्ही संरक्षित आणि असुरक्षित वैशिष्ट्ये वेगळ्या पद्धतीने कशी हाताळली जातात हे पाहण्यासाठी काही वैशिष्ट्ये जोडू शकता.
- प्रकल्पाचे slcp उघडा file प्रोजेक्ट एक्सप्लोरर विंडोमध्ये डबल-क्लिक करून
- 'सॉफ्टवेअर घटक' टॅब हायलाइट करा आणि खाली दाखवल्याप्रमाणे GATT कॉन्फिगरेशन टूल उघडा:
आणि gatt_configuration.btconf आयात करण्यासाठी खाली दर्शविलेले आयात साधन वापरा file प्रदान केलेल्या सामग्रीमधील सर्व्हर फोल्डरमधून.
GATT डेटाबेसमध्ये 'ट्रेनिंग' नावाची एक सानुकूल सेवा आहे, ज्यामध्ये काही डेटा संरक्षित आहे आणि काही नाही. हे तुम्हाला संरक्षित वैशिष्ट्य विरुद्ध असुरक्षित वैशिष्ट्यांमध्ये प्रवेश करण्याचा प्रयत्न करताना काय होते याची तुलना करण्यास अनुमती देते. अतिशय मूलभूत सुरक्षिततेसह डिव्हाइस बनवण्याचा हा एक द्रुत मार्ग आहे.
- ऍप्लिकेशनमध्ये काय चालले आहे याचा मागोवा घेण्यासाठी आम्ही सिंपलीसिटी स्टुडिओमधील कन्सोलवर प्रिंट करण्यासाठी सिरीयल पोर्ट वापरू. हे घटक शोधण्याचा सर्वात सोपा मार्ग म्हणजे सॉफ्टवेअर घटक संवादात दाखविल्याप्रमाणे त्यांचा शोध घेणे:
-
- IO प्रवाह USART घटक स्थापित करा
- IO Stream Retarget STDIO घटक स्थापित करा
- मानक I/O घटक स्थापित करा
- लॉग घटक स्थापित करा
- बोर्ड कंट्रोल घटक उघडा आणि 'व्हर्च्युअल COM UART सक्षम करा' चालू करा
- 'डीबग अॅडॉप्टर' पॅनेलमधील अॅडॉप्टरवर उजवे-क्लिक करा आणि 'कन्सोल लाँच करा' निवडा. 'सिरियल 1' टॅब निवडा आणि कन्सोल विंडोच्या मजकूर एंट्री फील्डमध्ये कर्सर ठेवा आणि कन्सोल सक्रिय करण्यासाठी एंटर दाबा.
-
- कनेक्शन हँडल सेव्ह करण्यासाठी app.c मध्ये आढळलेल्या sl_bt_on_event() मध्ये स्थानिक व्हेरिएबल तयार करा. व्हेरिएबल स्थिर असणे आवश्यक आहे कारण प्रत्येक वेळी स्टॅकद्वारे इव्हेंट वाढवताना या फंक्शनला कॉल केले जाते आणि आम्हाला मूल्य कायम असावे असे वाटते. कनेक्शन हँडल नंतर वापरले जाईल
प्रयोगशाळेचा विभाग.
- आम्ही कधी कनेक्ट आहोत हे पाहण्यासाठी काही app_log() स्टेटमेंट्स घाला, सुरक्षा मोड इ
-
- app_log.h हेडर समाविष्ट करा file
- sl_bt_evt_connection_opened – बाँड हँडल प्रिंट करा आणि कनेक्शन हँडल सेव्ह करा. जर बाँड हँडल 0xFF असेल, तर कनेक्ट केलेल्या उपकरणांमधील कोणतेही बॉण्ड अस्तित्वात नाही. विद्यमान इव्हेंट हँडलर सुधारित करा जेणेकरून ते असे काहीतरी दिसेल:
- sl_bt_evt_connection_parameters – सुरक्षा मोड. हे केले जाते जेणेकरून सुरक्षा मोड कधी बदलतो ते तुम्ही पाहू शकता. सुरक्षा मोडच्या क्रमांकामध्ये फरक आहे जेथे सुरक्षा मोड 1, मूल्य 0, इ. सह गणना केली जाते. तुमच्या अर्जामध्ये खालील इव्हेंट हँडलर जोडा:
- sl_bt_evt_connection_closed_id. कनेक्शन हँडल अपडेट करण्यासाठी हा इव्हेंट हँडलर सुधारित केला आहे. कोणतेही सक्रिय कनेक्शन नसल्याचे दर्शविण्यासाठी मूल्य 0xFF वापरले जाते. app_log() कमांड कनेक्शन बंद होण्याचे कारण छापण्यासाठी वापरली जाते, स्थिती कोडची यादी येथे आहे. विद्यमान इव्हेंट हँडलर सुधारित करा जेणेकरून ते असे काहीतरी दिसेल:
- app_log.h हेडर समाविष्ट करा file
-
- प्रकल्प तयार करा आणि फ्लॅश करा. या टप्प्यावर, आम्ही एस चालवूampGATT डेटाबेस व्यतिरिक्त, कोणतेही बदल न करता ते कसे वागते हे पाहण्यासाठी le अॅप.
- खालीलप्रमाणे EFRConnect मोबाइल अॅपशी कनेक्ट व्हा:
-
- 'ब्लूटूथ ब्राउझर' चिन्हावर टॅप करा.
- 'ट्रेनिंग' नावाच्या डिव्हाइसवरील 'कनेक्ट' चिन्हावर टॅप करा.
-
- खालीलप्रमाणे असुरक्षित वैशिष्ट्य वाचा:
-
- UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0 सह अज्ञात सेवे अंतर्गत 'अधिक माहिती' लिंकवर टॅप करा.
- 'वाचा' चिन्हावर टॅप करून असुरक्षित वैशिष्ट्य, UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c वाचा. येथे आश्चर्य नाही. वैशिष्ट्य कोणत्याही प्रकारे संरक्षित नसल्यामुळे, ते साध्या मजकूरात पाठवले जाईल.
-
- आता संरक्षित वैशिष्ट्य वाचा, UUID d4261dbb-dcd0-daab-ec95-deec088d532b. तुमच्या मोबाईल फोनने तुम्हाला जोडण्यासाठी आणि कनेक्ट करण्यासाठी सूचित केले पाहिजे, तुमच्या मोबाइल OS नुसार संदेश बदलू शकतो. तुम्ही पेअर करण्याची विनंती स्वीकारल्यानंतर, तुम्ही कन्सोलवर खालीलप्रमाणे संदेश द्यावा:
नोंद: या मॅन्युअलच्या शेवटी परिशिष्ट A मध्ये संदर्भासाठी I/O क्षमता आणि जोडणी पद्धतींचा सारांश आहे. परिशिष्ट B ब्लूटूथ सुरक्षा मोड्सचा सारांश देतो.
सुरक्षा व्यवस्थापक कॉन्फिगरेशन
सुरक्षा व्यवस्थापक हा ब्लूटूथ स्टॅकचा एक भाग आहे जो कोणती सुरक्षा वैशिष्ट्ये वापरली जातात हे निर्धारित करतो. या वैशिष्ट्यांमध्ये मॅन-इन-द-मिडल (MITM) संरक्षण, LE सुरक्षित कनेक्शन (उर्फ ECDH), बाँडिंगसाठी पुष्टीकरण आवश्यक आहे, इत्यादींचा समावेश आहे. सुरक्षा व्यवस्थापक I/O क्षमता देखील हाताळतो ज्याचा वापर जोडण्यासाठी कोणती पद्धत वापरली जाते हे निर्धारित करण्यासाठी केली जाते. /बंधन (सारांशासाठी परिशिष्ट A पहा). या विभागात तुम्हाला एक सोपा सेटअप दिसेल.
- इच्छित कॉन्फिगरेशनसह SM सेट करा. या लॅबसाठी हार्डवेअर कन्सोलवर पासकी प्रदर्शित करणे सोपे करते. MITM संरक्षण सक्षम करण्यासाठी पासकी एंट्री आवश्यक आहे. तुमच्या sl_bt_system_boot_id इव्हेंट हँडलरमध्ये खालील कोड जोडा. हे मॅन-इन-द-मिडल सक्षम करते आणि रिमोट डिव्हाइसला सूचित करते की आमच्याकडे पासकी प्रदर्शित करण्याची क्षमता आहे, परंतु इतकेच.
- कन्सोलवर पासकी प्रदर्शित करण्यासाठी, खाली दर्शविल्याप्रमाणे इव्हेंट हँडलर आवश्यक आहे:
- बाँडिंग मोड, बाँडिंगची कमाल संख्या इ. सेट करा. सुरू करण्यासाठी खालील कोड वापरा:
या सेटिंग्जचा वापर आक्रमणकर्त्याच्या तुमच्या डिव्हाइसशी बॉण्ड करण्याची क्षमता मर्यादित करण्यासाठी केला जाऊ शकतो. जर तुमच्या उत्पादनाला फक्त एक वापरकर्ता असणे आवश्यक असेल, तर तुम्ही जास्तीत जास्त बॉण्ड्स 1 पर्यंत मर्यादित करू शकता. हे कॉल जोडण्यासाठी एक चांगली जागा sl_bt_system_boot_id इव्हेंट हँडलरमध्ये आहे. उर्वरित लॅब अधिक सुरळीतपणे जाण्यासाठी आम्ही यावेळी बाँडिंग सक्षम करणार नाही परंतु आम्ही फक्त एका बाँडला अनुमती देण्यासाठी बाँडिंग धोरण सेट करतो. संदर्भासाठी, या API साठी कागदपत्रे येथे आणि येथे आढळतात.
- sl_bt_evt_sm_bonded_id आणि sl_bt_evt_sm_bonding_failed_id साठी इव्हेंट हँडलर जोडा. या इव्हेंटसाठी मुख्य वापर सध्या माहितीपूर्ण आहे परंतु नंतर लॅबमध्ये तुम्ही कार्यक्षमता जोडाल.
- लक्ष्य बोर्ड तयार करा आणि फ्लॅश करा. EFRConnect शी कनेक्ट व्हा आणि पूर्वीप्रमाणे संरक्षित वैशिष्ट्य वाचा. यावेळी, तुम्हाला कन्सोलवर एक पासकी प्रदर्शित होईल. विचारल्यावर ही पासकी तुमच्या मोबाईल फोनवर टाका.
- बाँडिंग पुष्टीकरण वापरून पहा. हे वैशिष्ट्य वापरकर्त्याला बाँडिंग विनंत्यांची पुष्टी करण्याची आवश्यकता करण्याची क्षमता देते. असे केल्याने ऍप्लिकेशनला ते कोणत्या पीअर डिव्हाइसेसशी जोडले जाते यावर नियंत्रण मिळते. एक शक्यता म्हणजे बाँडला परवानगी देण्यापूर्वी वापरकर्त्याने एक बटण दाबणे आवश्यक आहे.
- तुमच्या मोबाइल फोनमधील ब्लूटूथ सेटिंग्ज उघडा आणि EFR32 डिव्हाइसवरील बाँड काढा. मोबाईल फोनची अंमलबजावणी वेगवेगळी असते त्यामुळे ही पायरी आवश्यक नसते. तुम्हाला तुमच्या ब्लूटूथ सेटिंग्जमध्ये 'प्रशिक्षण' डिव्हाइस दिसत नसल्यास, फक्त पुढील चरणावर जा.
- सॉफ्टवेअर घटकांमध्ये, साध्या बटण हँडलरचा एक प्रसंग स्थापित करा.
- शीर्षलेख समाविष्ट करा file app.c मध्ये sl_simple_button_instances.h
- sl_bt_evt_sm_bonding_confirm_id इव्हेंटसाठी हँडलर जोडा. या इव्हेंट हँडलरचे मुख्य काम वापरकर्त्याला सूचित करणे आहे की रिमोट डिव्हाइस नवीन बाँडची विनंती करत आहे.
- ब्लूटूथ स्टॅकवर एक बटण दाबले गेले आहे हे दर्शविणारा सिग्नल पाठवण्यासाठी साध्या बटण हँडलरसाठी कॉलबॅक फंक्शन जोडा. हे डीफॉल्ट कॉलबॅक ओव्हरराइड करते जे फक्त परत येते.
- बाह्य सिग्नल इव्हेंट हँडलर जोडा. हा कार्यक्रम सिग्नल प्राप्त करण्याच्या प्रतिसादात वाढविला जातो, जसे की मागील चरणात. बाँडिंगची पुष्टी करण्यासाठी बाह्य सिग्नल इव्हेंटचा वापर केला जाईल.
- बॉन्डिंग पुष्टीकरण आवश्यक करण्यासाठी कॉल sl_bt_sm_configure वर बदला जसे की
- पुन्हा तयार करा आणि फ्लॅश करा.
- EFRConnect शी कनेक्ट व्हा आणि पूर्वीप्रमाणे संरक्षित वैशिष्ट्य वाचा. आता तुम्हाला कन्सोलवर खालीलप्रमाणे संदेश दिसेल:
बाँडिंगची पुष्टी करण्यासाठी PB0 दाबा. आता कन्सोल मोबाईल फोनवर बाँडिंगसाठी प्रविष्ट केलेली पासकी प्रदर्शित करेल. बाँडिंग प्रक्रिया पूर्ण करण्यासाठी पासकी एंटर करा.
टीप: स्टॅक न हाताळलेला इव्हेंट पाठवते तेव्हा संदेश छापण्यासाठी इव्हेंट हँडलरमधील डीफॉल्ट केस वापरा. स्टॅक तुम्हाला काहीतरी महत्त्वाचे सांगण्याचा प्रयत्न करत असेल.
मूलभूत गोष्टींच्या पलीकडे
या टप्प्यावर, आपण अॅडव्हान घेतले आहेtagआमच्या स्टॅकने ऑफर केलेल्या सुरक्षा वैशिष्ट्यांपैकी e. आता आपल्या सोयीनुसार वैशिष्ट्यांचा सुज्ञ वापर करून अंमलबजावणी सुधारू या. खालील पायऱ्या वैकल्पिक आहेत आणि एकमेकांपासून स्वतंत्र आहेत, तुम्ही वर्तन पाहण्यासाठी किंवा त्या सर्व एकत्र करून पाहण्यासाठी प्रत्येकानंतर तयार आणि फ्लॅश करू शकता.
- अयशस्वी बाँड प्रयत्नांवर डिस्कनेक्ट करा. धमक्या शोधण्यासाठी हे एक चांगले ठिकाण आहे. रिमोट डिव्हाइस एन्क्रिप्शन/ऑथेंटिकेशनला सपोर्ट करत नसल्यास किंवा त्याच्याकडे योग्य की नसल्यास, ते हॅकर असू शकते. तर, कनेक्शन तोडूया. sl_bt_sm_bonding_failed_id इव्हेंटमध्ये sl_bt_connection_close() वर कॉल जोडण्याचा प्रयत्न करा. API येथे दस्तऐवजीकरण केले आहे.
तुम्ही चुकीची पासकी टाकून या वैशिष्ट्याची चाचणी घेऊ शकता.
- केवळ ठराविक वेळी बाँडिंगला परवानगी देते. हे आक्रमणकर्त्याला बाँड तयार करण्यासाठी लागणारा वेळ मर्यादित करते आणि 'केवळ बॉन्ड कनेक्शनला परवानगी द्या' वैशिष्ट्य वापरणे शक्य करते. बॉन्डेबल मोड कसा सक्षम किंवा अक्षम करायचा हे डिझायनर निवडू शकतो. येथे प्रात्यक्षिक हेतूंसाठी, आम्ही PB1 सह 'सेटअप मोड' सक्षम करू आणि 30 सेकंदांनंतर तो अक्षम करण्यासाठी टाइमर वापरू.
- साध्या बटण इंटरफेसचा दुसरा प्रसंग स्थापित करा. हे PB1 वापरण्यास सक्षम करेल.
- बाँडिंग सक्षम/अक्षम करण्यासाठी स्टॅकला वेगळा सिग्नल पाठवण्यासाठी कॉलबॅकमध्ये बदल करा. परिणाम असे काहीतरी दिसले पाहिजे:
- बाह्य सिग्नल इव्हेंट हँडलरमध्ये बदल करा जेणेकरून ते हे नवीन सिग्नल हाताळेल. परिणाम असे असावे:
- sl_bt_evt_system_soft_timer_id इव्हेंटसाठी इव्हेंट हँडलर जोडा. हे सेटअप मोड अक्षम करण्यासाठी वापरले जाईल.
- खालील कोडचा वापर बाँड करण्यायोग्य मोड सक्षम करण्यासाठी आणि सर्व कनेक्शनला अनुमती देण्यासाठी किंवा बाँड करण्यायोग्य मोड अक्षम करण्यासाठी आणि केवळ बाँड केलेल्या डिव्हाइसेसच्या कनेक्शनला परवानगी देण्यासाठी केला जाऊ शकतो:
- खालील कॉल sl_bt_system_boot_id इव्हेंट हँडलरमध्ये जोडा
- प्रकल्प तयार करा आणि तो डिव्हाइसवर फ्लॅश करा.
- EFRConnect सह डिव्हाइसशी कनेक्ट करण्याचा प्रयत्न करा. कनेक्शन अयशस्वी झाले पाहिजे.
- आता EFRConnect शी कनेक्ट करण्यापूर्वी PB1 दाबून पहा. यावेळी कनेक्शन यशस्वी होईल. 30 सेकंदांनंतर तुम्हाला कन्सोलवर एक संदेश दिसेल जो सूचित करेल की डिव्हाइस सेटअप मोडमधून बाहेर पडत आहे. याचा अर्थ बॉन्डेबल मोड आता अक्षम केला आहे.
- कनेक्शन तयार करताना सुरक्षा वाढवा. सुरक्षा पर्यायी असल्याने, आम्ही GATT वैशिष्ट्यांवर अवलंबून न राहता शक्य तितक्या लवकर एनक्रिप्टेड कनेक्शनची विनंती केली पाहिजे. API येथे दस्तऐवजीकरण केले आहे. या API ला कॉल करण्यासाठी चांगली जागा sl_bt_evt_connection_opened_id इव्हेंटमध्ये आहे. कनेक्शन हँडल कनेक्शन व्हेरिएबलमध्ये उपलब्ध आहे.
सुरक्षित ओळख
आता आमच्याकडे अधिक सुरक्षित ब्लूटूथ डिव्हाइस आहे, चला प्रमाणीकरणाची पायरी सुधारू या. मागील प्रशिक्षण लॅबमध्ये कमांड लाइनसह वॉल्ट उपकरणांची सुरक्षित ओळख कशी सत्यापित करायची हे तुम्ही आधीच पाहिले आहे. या विभागात, आम्ही एक BLE डिव्हाइस त्याच्या प्रमाणपत्र साखळीला विनंती करून आणि आव्हान पाठवून दुसर्या BLE डिव्हाइसची ओळख कशी सत्यापित करू शकते ते पाहू. सर्व सुरक्षित व्हॉल्ट भागांमध्ये त्यांचे स्वतःचे डिव्हाइस प्रमाणपत्र आणि बॅच प्रमाणपत्र असते. संपूर्ण प्रमाणपत्र साखळीची पडताळणी सक्षम करण्यासाठी फॅक्टरी आणि रूट प्रमाणपत्रे क्लायंट ऍप्लिकेशनमध्ये हार्ड कोड केलेले आहेत. सुरक्षित ओळखीच्या अधिक तपशीलांसाठी AN1268 चा संदर्भ घ्या.
- खालीलप्रमाणे डिव्हाइस प्रमाणीकरण स्वाक्षरी संचयित करण्यासाठी जागतिक बफर परिभाषित करा:
- JustWorks पेअरिंग वापरण्यासाठी सुरक्षा व्यवस्थापक कॉन्फिगरेशन सेट करा. हे केले जाते जेणेकरून कनेक्शन एनक्रिप्ट केले जाईल. व्यवहारात, MITM संरक्षण वापरले पाहिजे परंतु प्रयोगशाळा साधी ठेवण्यासाठी, आम्ही JustWorks वापरू. sl_bt_sm_configure वर कॉल बदला परत खालील वर:
तसेच, system_boot इव्हेंट हँडलरमध्ये सेटअप_मोड(true) वर कॉल करण्यासाठी टिप्पणी द्या.
- प्रदान केलेल्या सामग्रीमधून helpers.c उघडा आणि सामग्री app.c मध्ये कॉपी करा. ही कॉलबॅक फंक्शन्स सर्टिफिकेट्सचे विभाजन करणे, जेणेकरुन ते BLE वर पाठवता येतील, सर्टिफिकेट चेन पडताळणे आणि आव्हान निर्माण/सत्यापित करणे यासारखी कार्ये करतात.
- जास्तीत जास्त हस्तांतरण युनिट (MTU) आकार निश्चित करणे आवश्यक आहे जेणेकरून प्रमाणपत्रे विभागली जाऊ शकतात आणि पुन्हा एकत्र केली जाऊ शकतात. येथे दर्शविल्याप्रमाणे MTU जतन करण्यासाठी ग्लोबल व्हेरिएबल परिभाषित करा:
नंतर खाली दर्शविल्याप्रमाणे GATT MTU एक्सचेंज केलेल्या इव्हेंटसाठी इव्हेंट हँडलर जोडा:
- तीन वापरकर्ता डेटा वैशिष्ट्ये आहेत जी वाचली जाऊ शकतात. ही वैशिष्ट्ये डिव्हाइस प्रमाणपत्र, बॅच प्रमाणपत्र आणि आव्हान संप्रेषण करण्यासाठी वापरली जातात. या वापरकर्त्याच्या वाचन विनंत्या हाताळण्यासाठी कॉलबॅक फंक्शन वापरले जाते. खाली दर्शविल्याप्रमाणे या फंक्शनला कॉल करण्यासाठी हँडलर जोडा:
कॉलबॅक चरण # 2 पासून विभागापर्यंत MTU चा वापर करते आणि आवश्यकतेनुसार प्रमाणपत्रे पाठवते. हे स्वाक्षरी केलेले आव्हान पाठवणे देखील हाताळते.
- क्लायंट GATT वैशिष्ट्यांपैकी एक लिहून एक आव्हान पाठवतो, सर्व्हरद्वारे स्वाक्षरी करण्यासाठी एक यादृच्छिक क्रमांक. या कारणास्तव, अनुप्रयोगास खालीलप्रमाणे वापरकर्ता लेखन विनंती इव्हेंटसाठी हँडलर असणे आवश्यक आहे:
- सुरक्षित ओळख समर्थन जोडा fileप्रकल्पासाठी एस:
- प्रकल्पासाठी प्रदान केलेल्या सामग्रीमधून app_se_manager_macro.h, app_se_manager_secure_identity.c आणि app_se_secure_identity.h. या files मध्ये प्रमाणपत्राचा आकार मिळवणे, डिव्हाइस सार्वजनिक की मिळवणे आणि आव्हानावर स्वाक्षरी करणे यासारख्या कार्यांसाठी काही सहाय्यक कार्ये असतात.
- app.c मध्ये app_se_manager_secure_identity.h समाविष्ट करा.
- प्रदान केलेल्या सामग्रीमधून प्रदान केलेले gatt_configuration-attest.btconf आयात करा. या GATT डेटाबेसला सुरक्षित प्रमाणीकरण म्हणतात ज्यात चार वैशिष्ट्ये समाविष्ट आहेत जी आमच्या डिव्हाइसची ओळख सत्यापित करण्यासाठी वापरली जातील. यामध्ये उपकरण प्रमाणपत्र, बॅच प्रमाणपत्र, आव्हान आणि प्रतिसाद यांचा समावेश आहे.
- क्लायंट, ज्याचा वापर गेटवे सारख्या उपकरणाचे अनुकरण करण्यासाठी केला जातो, तो पूर्ण प्रकल्प म्हणून प्रदान केला जातो कारण तो तयार करणे अधिक जटिल आहे. सर्वसाधारणपणे, क्लायंटचे ऑपरेशन खालीलप्रमाणे आहे:
- सुरक्षित प्रमाणीकरण सेवेची जाहिरात करणार्या उपकरणांसाठी स्कॅन करते आणि त्यांना कनेक्ट करते.
- GATT डेटाबेस सेवा आणि वैशिष्ट्ये शोधा.
- डिव्हाइस आणि बॅच प्रमाणपत्रे वाचते आणि फॅक्टरी आणि रूट प्रमाणपत्र वापरून प्रमाणपत्र शृंखला सत्यापित करते जे त्याने फ्लॅशमध्ये संग्रहित केले आहे.
- सर्व्हरला एक यादृच्छिक आव्हान पाठवते.
- आव्हानाला मिळालेल्या प्रतिसादाची पडताळणी करण्याचा प्रयत्न.
- सत्यापन अयशस्वी झाल्यास कनेक्शन बंद करते.
- तुमच्या सर्व्हरवर WSTK/radioboard सर्व्हर प्रोजेक्ट तयार करा आणि फ्लॅश करा.
- प्रदान केलेल्या सामग्रीमधील क्लायंट फोल्डरमधून क्लायंट प्रोजेक्ट आयात करा. तुमच्या क्लायंट WSTK/रेडिओबोर्डवर क्लायंट प्रोजेक्ट तयार करा आणि फ्लॅश करा.
- क्लायंट WSTK वर रीसेट दाबा आणि सीरियल कन्सोल उघडा. क्लायंट आमच्या सुरक्षित ओळख सेवेची जाहिरात करणार्या डिव्हाइसेससाठी स्कॅनिंग सुरू करतो आणि जेव्हा ते सापडेल तेव्हा ते कनेक्ट होईल.
- सर्टिफिकेट चेनच्या पडताळणीबद्दल क्लायंटला इच्छित सेवा आणि स्थिती संदेशांसह सर्व्हर सापडला आहे हे सूचित करण्यासाठी काही संदेश प्रदर्शित करेल.
- पडताळणी उत्तीर्ण झाल्यास, क्लायंट एक यादृच्छिक क्रमांक व्युत्पन्न करेल, ज्याला आव्हान म्हणतात, आणि तो सर्व्हरला पाठवेल. सर्व्हर ) स्वाक्षरीची पडताळणी करण्यासाठी क्लायंट आधी प्राप्त केलेल्या डिव्हाइस प्रमाणपत्रातील सार्वजनिक की वापरतो. सर्व्हरकडे दावा केलेली खाजगी की खरोखरच आहे याची पुष्टी करण्यासाठी हे केले जाते. आव्हान योग्यरित्या सत्यापित केले असल्यास, त्या प्रभावासाठी एक संदेश प्रदर्शित केला जातो; अन्यथा, कनेक्शन बंद आहे, आणि कारण स्पष्ट करणारा संदेश प्रदर्शित केला जातो.
- आता सत्यापन खरोखर कार्य करते याची पुष्टी करण्यासाठी अवैध प्रमाणपत्र पाठवा. प्रमाणपत्र डेटा किंवा आव्हान प्रतिसाद दूषित करण्यासाठी तुम्ही user_read_request_cb() मध्ये बदल करू शकता.
परिशिष्ट A – I/O क्षमता आणि जोडणी पद्धती 
परिशिष्ट B - सुरक्षा मोड आणि स्तर
सिलिकॉन लॅब्सच्या स्टॅकमध्ये ब्लूटूथ लो एनर्जीसाठी फक्त सिक्युरिटी मोड 1 समर्थित आहे. स्तर खालीलप्रमाणे आहेत:
- स्तर 1 सुरक्षा नाही
- एनक्रिप्शनसह स्तर 2 अनधिकृत जोडणी
- एनक्रिप्शनसह स्तर 3 प्रमाणीकृत जोडणी
- मजबूत एनक्रिप्शनसह स्तर 4 प्रमाणित सुरक्षित कनेक्शन (ECDH की एक्सचेंज)
कागदपत्रे / संसाधने
![]() |
silabs 21Q2 सुरक्षित BLE डिव्हाइस सुरक्षा लॅब [pdf] वापरकर्ता मॅन्युअल 21Q2 सुरक्षित BLE डिव्हाइस सुरक्षा लॅब, सुरक्षित BLE डिव्हाइस सुरक्षा लॅब, सुरक्षा लॅब |