silabs 21Q2 محفوظ BLE ڊوائيس سيڪيورٽي ليب

BLE سيڪيورٽي ليب دستياب

هن ليب ۾، توهان ڏسندا ته ڪيئن هڪ وڌيڪ محفوظ BLE ڊوائيس ڊزائين ڪرڻ. اسان هڪ اوور سان شروع ڪنداسينview ڪجھ اسٽيڪ فيچرز کي ڪيئن استعمال ڪجي ۽ وڌيڪ محفوظ ڪنيڪشنن لاءِ ٽيڪنڪ جي باري ۾ ڪجھ عام مشوري ڏانھن وڃو ۽ آخر ۾ اسين ڏسنداسين ته ڪيئن استعمال ڪجي ڊيوائس سرٽيفڪيٽن کي BLE مٿان ھڪ پردي کي مستند طور سڃاڻڻ لاءِ.

شروع ٿيڻ

بلوٽوٿ ايسample ائپليڪيشن جنهن تي توهان ٺاهي رهيا آهيو هڪ بوٽ لوڊر سان استعمال ڪرڻ جو ارادو ڪيو ويو آهي. جيڪڏھن توھان ڪم ڪري رھيا آھيو ھڪڙو نئون EFR32MG21B، اھو ھڪڙو بوٽ لوڊ ڪندڙ نه ھوندو. توهان پليٽ فارم بوٽ لوڊر ۾ اڳ ۾ ٺهيل بوٽ لوڊر ڳولي سگهو ٿاample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a توهان جي SDK جو فولڊر.

  1. هڪ سماجي-خالي سان شروع ڪريوample ايپ. هن ايسample ايپ کي ٽيمپليٽ طور استعمال ڪيو ويندو آهي ۽ ڪنهن به BLE ايپليڪيشن لاءِ سٺو شروعاتي نقطو ٺاهيندو آهي.
    1. سادگي اسٽوڊيو مان سلڪون ليبز پروجيڪٽ مددگار کوليو File مينيو -> نئون.
    2. BRD4181C چونڊيو ۽ 'اڳيون' بٽڻ تي ڪلڪ ڪريو.
    3. ٽيڪنالاجي قسم جي تحت 'بلوٽوت (9)' چيڪ بڪس تي ڪلڪ ڪريو.
    4. نمايان ڪريو 'بلوٽوت - SoC خالي' پوء ڪلڪ ڪريو اڳيون.
    5. 'ختم' بٽڻ تي ڪلڪ ڪريو.
  2. ھاڻي توھان ڪجھ خاصيتون شامل ڪري سگھو ٿا ڏسڻ لاءِ ته ڪيئن محفوظ ۽ غير محفوظ خاصيتون مختلف طرح سان علاج ڪيون وڃن ٿيون.
    1. پروجيڪٽ جي slcp کوليو file ان کي ڊبل ڪلڪ ڪندي پروجيڪٽ ايڪسپلورر ونڊو ۾
    2. 'سافٽ ويئر اجزاء' ٽئب کي نمايان ڪريو ۽ GATT ڪنفيگريشن ٽول کوليو جيئن ھيٺ ڏيکاريل آھي: ۽ درآمد ڪرڻ لاءِ هيٺ ڏيکاريل اوزار استعمال ڪريو gatt_configuration.btconf file مهيا ڪيل مواد ۾ سرور فولڊر مان.GATT ڊيٽابيس ۾ هڪ ڪسٽم سروس آهي، جنهن کي 'ٽريننگ' سڏيو ويندو آهي، ڪجهه ڊيٽا سان گڏ جيڪي محفوظ آهن ۽ ڪجهه نه آهن. هي توهان کي موازنہ ڪرڻ جي اجازت ڏئي ٿو ته ڇا ٿئي ٿو جڏهن هڪ محفوظ خاصيت تائين رسائي حاصل ڪرڻ جي ڪوشش ڪئي وئي بمقابله غير محفوظ ٿيل. هي تمام بنيادي سيڪيورٽي سان هڪ ڊوائيس ٺاهڻ جو هڪ تڪڙو طريقو آهي.
  3. اسان سيريل پورٽ استعمال ڪنداسين ڪنسول کي پرنٽ ڪرڻ لاءِ Simplicity Studio ۾ ان کي ٽريڪ ڪرڻ لاءِ ته ايپليڪيشن ۾ ڇا ٿي رهيو آهي. انهن حصن کي ڳولڻ جو آسان طريقو آهي انهن کي ڳولڻ سان سافٽ ويئر اجزاء ڊائلاگ ۾ جيئن ڏيکاريل آهي:
      1. انسٽال ڪريو IO Stream USART جزو
      2. انسٽال ڪريو IO Stream Retarget STDIO جزو
      3. معياري I/O جزو انسٽال ڪريو
      4. لاگ جزو انسٽال ڪريو
      5. بورڊ ڪنٽرول جزو کوليو ۽ آن ڪريو 'ورچوئل COM UART کي فعال ڪريو'
      6. 'ڊيبگ اڊاپٽرز' پينل ۾ اڊاپٽر تي صحيح ڪلڪ ڪريو ۽ 'لانچ ڪنسول' چونڊيو. 'سيريل 1' ٽئب چونڊيو ۽ ڪنسول ونڊو جي ٽيڪسٽ انٽري فيلڊ ۾ ڪرسر کي رکو ۽ ڪنسول کي جاڳڻ لاءِ انٽر کي دٻايو.
  4. sl_bt_on_event() ۾ مقامي متغير ٺاهيو، جيڪو app.c ۾ مليو، ڪنيڪشن هينڊل کي بچائڻ لاءِ. متغير جامد هجڻ گهرجي ڇو ته هن فنڪشن کي سڏيو ويندو آهي هر دفعي هڪ واقعو اسٽيڪ طرفان وڌايو ويندو آهي ۽ اسان چاهيون ٿا ته قيمت مسلسل رهي. ڪنيڪشن هينڊل بعد ۾ استعمال ڪيو ويندوليبارٽري جو سيڪشن.
  5. داخل ڪريو ڪجھ app_log() بيانن لاءِ واقعا ڏسڻ لاءِ جڏھن اسان ڳنڍيل آھيون، سيڪيورٽي موڊس، وغيره
      1. شامل ڪريو app_log.h هيڊر file
      2. sl_bt_evt_connection_opened - پرنٽ بانڊ هينڊل ۽ محفوظ ڪريو ڪنيڪشن هينڊل. جيڪڏهن بانڊ هينڊل 0xFF آهي، ڳنڍيل ڊوائيسز جي وچ ۾ ڪوبه بانڊ موجود ناهي. موجوده ايونٽ هينڊلر کي تبديل ڪريو ته جيئن اهو ڪجهه هن طرح نظر اچي:
      3. sl_bt_evt_connection_parameters - سيڪيورٽي موڊ. اهو ڪيو ويو آهي ته جيئن توهان ڏسي سگهو ٿا جڏهن سيڪيورٽي موڊ تبديل ٿي. سيڪيورٽي طريقن جي تعداد ۾ فرق آهي جتي سيڪيورٽي موڊ 1، قيمت 0، وغيره سان ڳڻيو ويندو آهي. توھان جي ايپليڪيشن ۾ ھيٺ ڏنل ايونٽ ھينڊلر شامل ڪريو:
      4. sl_bt_evt_connection_closed_id. ھي ايونٽ ھينڊلر تبديل ڪيو ويو آھي ڪنيڪشن ھينڊل کي اپڊيٽ ڪرڻ لاءِ. قدر 0xFF استعمال ڪيو ويندو آهي ظاهر ڪرڻ لاءِ ته ڪوبه فعال ڪنيڪشن ناهي. app_log() ڪمانڊ استعمال ڪيو ويندو آھي پرنٽ ڪرڻ لاءِ ڪنيڪشن بند ٿيڻ جو سبب، اسٽيٽس ڪوڊ جي لسٽ ھتي آھي. موجوده ايونٽ هينڊلر کي تبديل ڪريو ته جيئن اهو ڪجهه هن طرح نظر اچي:
  6. منصوبي کي ٺاهيو ۽ فليش ڪريو. هن نقطي تي، اسين هلائينداسين ايسample ائپ کي ڏسڻ لاءِ ته اهو بغير ڪنهن تبديليءَ جي، GATT ڊيٽابيس کان سواءِ ڪيئن عمل ڪري ٿو.
  7. EFRConnect موبائل ايپ سان ڳنڍيو جيئن هيٺ ڏنل:
      1. 'بلوٽوت برائوزر' آئڪن تي ٽيپ ڪريو.
      2. 'ٽريننگ' نالي ڊوائيس تي 'Connect' آئڪن تي ٽيپ ڪريو.
  8. هيٺ ڏنل غير محفوظ ٿيل خاصيت پڙهو:
      1. UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0 سان اڻڄاتل سروس تحت 'وڌيڪ معلومات' لنڪ تي ٽيپ ڪريو.
      2. پڙهو غير محفوظ خصوصيت، UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c 'پڙهو' آئڪن کي ٽيپ ڪندي. هتي ڪا به تعجب ناهي. جيئن ته خصوصيت ڪنهن به طريقي سان محفوظ نه آهي، ان کي سادي متن ۾ موڪليو ويندو.
  9. ھاڻي پڙھو محفوظ ڪيل خصوصيت، UUID d4261dbb-dcd0-daab-ec95-deec088d532b. توهان جي موبائيل فون کي توهان کي ڳنڍڻ ۽ ڳنڍڻ جو اشارو ڏيڻ گهرجي، پيغام توهان جي موبائل او ايس جي لحاظ کان مختلف ٿي سگهي ٿو. توهان جي جوڙي جي درخواست قبول ڪرڻ کان پوء، توهان کي هيٺ ڏنل ڪنسول تي پيغام ڏيڻ گهرجي: نوٽ: هن دستور جي آخر ۾ ضميمو A ۾ I/O صلاحيتن جو خلاصو ۽ حوالن لاءِ جوڙيل طريقن جو خلاصو آهي. ضميمو B بلوٽوت سيڪيورٽي طريقن کي مختصر ڪري ٿو.

سيڪيورٽي مئنيجر جي ترتيب

سيڪيورٽي مئنيجر بلوٽوت اسٽيڪ جو حصو آهي جيڪو طئي ڪري ٿو ته ڪهڙيون حفاظتي خاصيتون استعمال ڪيون وينديون آهن. انهن خاصيتن ۾ شامل آهن مين-ان-دي-مڊل (MITM) تحفظ، LE محفوظ ڪنيڪشن (اڪا ECDH)، بانڊنگ جي تصديق جي ضرورت آهي، وغيره. سيڪيورٽي مئنيجر پڻ I/O صلاحيتون سنڀاليندو آهي جيڪي اهو طئي ڪرڻ لاءِ استعمال ڪيا ويندا آهن ته ڪهڙي طريقي سان جوڙي ٺاهڻ لاءِ استعمال ڪيو وڃي ٿو. /bonding (تت لاءِ ضميمو A ڏسو). هن حصي ۾ توهان هڪ سادي سيٽ اپ ڏسندا.

  1. مطلوب ترتيب سان ايس ايم سيٽ ڪريو. هن ليب لاءِ هارڊويئر ڪنسول تي پاسڪي کي ڊسپلي ڪرڻ آسان بڻائي ٿو. MITM تحفظ کي فعال ڪرڻ لاء پاسڪي داخل ٿيڻ جي ضرورت آهي. ھيٺ ڏنل ڪوڊ شامل ڪريو پنھنجي sl_bt_system_boot_id ايونٽ ھينڊلر ۾. هي وچ ۾ انسان کي قابل بڻائي ٿو ۽ ريموٽ ڊوائيس کي خبر ڏئي ٿو ته اسان وٽ پاسڪي ڊسپلي ڪرڻ جي صلاحيت آهي، پر اهو سڀ ڪجهه آهي.
  2. ڪنسول تي پاسڪي کي ڊسپلي ڪرڻ لاءِ، هڪ ايونٽ هينڊلر گهربل آهي جيئن هيٺ ڏيکاريل آهي:
  3. بانڊنگ موڊ سيٽ ڪريو، بانڊنگ جو وڌ ۾ وڌ تعداد وغيره. شروع ڪرڻ لاءِ ھيٺ ڏنل ڪوڊ استعمال ڪريو:اهي سيٽنگون استعمال ڪري سگھجن ٿيون حملي آور جي صلاحيت کي محدود ڪرڻ لاءِ توهان جي ڊوائيس سان. جيڪڏهن توهان جي پروڊڪٽ کي صرف هڪ صارف هجڻ جي ضرورت آهي، ته پوءِ توهان وڌ ۾ وڌ بانڊن کي 1 تائين محدود ڪري سگهو ٿا. انهن ڪالن کي شامل ڪرڻ لاءِ هڪ سٺي جڳهه sl_bt_system_boot_id ايونٽ هينڊلر ۾ آهي. اسان هن وقت بانڊنگ کي فعال نه ڪنداسين ته باقي ليب کي وڌيڪ آسان بڻائي سگهجي پر اسان صرف هڪ بانڊ جي اجازت ڏيڻ لاءِ بانڊنگ پاليسي قائم ڪريون ٿا. حوالي لاءِ، انهن APIs لاءِ دستاويز مليا آهن هتي ۽ هتي.
  4. sl_bt_evt_sm_bonded_id ۽ sl_bt_evt_sm_bonding_failed_id لاءِ ايونٽ ھينڊلر شامل ڪريو. انهن واقعن لاءِ بنيادي استعمال في الحال معلوماتي آهي پر بعد ۾ ليب ۾ توهان ڪارڪردگي شامل ڪندا.
  5. ھدف بورڊ ڏانھن ٺاھيو ۽ چمڪيو. EFRConnect سان ڳنڍيو ۽ اڳي وانگر محفوظ ڪيل خصوصيت پڙهو. هن ڀيري، توهان ڪنسول تي ڏيکاريل هڪ پاسڪي ڏسندا. هن پاسڪي کي پنهنجي موبائل فون تي داخل ڪريو جڏهن اشارو ڪيو وڃي.
  6. ڪوشش ڪريو بانڊ جي تصديق. هي خصوصيت صارف کي اها صلاحيت ڏئي ٿي ته گهربل درخواستن جي تصديق ڪئي وڃي. ائين ڪرڻ سان ائپليڪيشن کي ڪنٽرول ڏئي ٿو ته اهو ڪهڙي پيريئر ڊوائيسز سان ڳنڍيل آهي. هڪ امڪان اهو آهي ته صارف کي بانڊ جي اجازت ڏيڻ کان پهريان هڪ بٽڻ کي دٻائڻ جي ضرورت آهي.
    1. پنهنجي موبائيل فون ۾ بلوٽوٿ سيٽنگ کوليو ۽ EFR32 ڊيوائس تي بانڊ هٽايو. موبائيل فون تي عمل ڪرڻ مختلف آهن تنهنڪري هي قدم ضروري نه هجي. جيڪڏھن توھان نه ٿا ڏسو 'ٽريننگ' ڊيوائس توھان جي بلوٽوٿ سيٽنگن ۾، بس اڳتي وڌو ايندڙ قدم.
    2. سافٽ ويئر جي اجزاء ۾، هڪ مثال انسٽال ڪريو سادو بٽڻ هينڊلر.
    3. سر شامل ڪريو file sl_simple_button_instances.h app.c ۾
    4. sl_bt_evt_sm_bonding_confirm_id واقعي لاءِ ھينڊلر شامل ڪريو. هن واقعي جي هينڊلر جو بنيادي ڪم صارف کي خبر ڏيڻ آهي ته هڪ ريموٽ ڊوائيس نئين بانڊ جي درخواست ڪري رهيو آهي.
    5. بلوٽوٿ اسٽيڪ ڏانهن سگنل موڪلڻ لاءِ سادي بٽڻ جي هينڊلر لاءِ ڪال بڪ فنڪشن شامل ڪريو جيڪو اشارو ڪري ٿو ته هڪ بٽڻ دٻايو ويو آهي. هي ڊفالٽ ڪالبڪ کي ختم ڪري ٿو جيڪو صرف واپسي ٿو.
    6. هڪ خارجي سگنل ايونٽ هينڊلر شامل ڪريو. اهو واقعو اشارو حاصل ڪرڻ جي جواب ۾ اٿاريو ويو آهي، جهڙوڪ پوئين قدم ۾. بيروني سگنل ايونٽ استعمال ڪيو ويندو بانڊنگ جي تصديق ڪرڻ لاءِ.
    7. ڪال کي تبديل ڪريو sl_bt_sm_configure لاءِ بانڊنگ جي تصديق جي ضرورت آهي جيئن
    8. ٻيهر ٺاهيو ۽ چمڪيو.
    9. EFRConnect سان ڳنڍيو ۽ اڳي وانگر محفوظ ڪيل خصوصيت پڙهو. ھاڻي توھان ھيٺ ڏنل ڪنسول تي ھڪڙو پيغام ڏسندا:PB0 کي دٻايو بانڊ جي تصديق ڪرڻ لاء. ھاڻي ڪنسول پاسڪي ڏيکاريندو جيڪو موبائل فون تي بانڊنگ لاءِ داخل ڪيو ويندو. بانڊنگ جي عمل کي مڪمل ڪرڻ لاءِ پاسڪي داخل ڪريو.

 

ٽپو: ايونٽ هينڊلر ۾ ڊفالٽ ڪيس استعمال ڪريو پيغام پرنٽ ڪرڻ لاءِ جڏهن اسٽيڪ هڪ واقعو موڪلي ٿو جيڪو هٿ نه ڪيو ويو آهي. اسٽيڪ شايد توهان کي ڪجهه اهم ٻڌائڻ جي ڪوشش ڪري رهيو آهي.

بنياديات کان ٻاهر

هن موقعي تي، توهان مشورو ورتو آهيtagحفاظتي خاصيتن مان جيڪي اسان جي اسٽيڪ کي پيش ڪن ٿيون. هاڻي اچو ته اسان جي اختيار ۾ خاصيتن جي دانشمندانه استعمال ذريعي عمل درآمد کي بهتر بڻائين. هيٺيان قدم اختياري ۽ هڪ ٻئي کان آزاد آهن، توهان ٺاهي سگهو ٿا ۽ هر هڪ کان پوء فليش ڪري سگهو ٿا رويي کي ڏسڻ يا انهن سڀني کي گڏ ڪرڻ جي ڪوشش ڪريو.

  1. ناڪام بانڊ جي ڪوششن تي ڊسڪ ڪيو. هي خطرن کي ڳولڻ لاء هڪ سٺي جڳهه آهي. جيڪڏهن ريموٽ ڊوائيس انڪرپشن/تصديق کي سپورٽ نٿو ڪري يا صرف صحيح چابيون نه آهي، اهو هڪ هيڪر ٿي سگهي ٿو. سو، اچو ته ڪنيڪشن ٽوڙي. sl_bt_connection_close() ۾ ڪال شامل ڪرڻ جي ڪوشش ڪريو sl_bt_sm_bonding_failed_id واقعي ۾. API هتي دستاويز ڪئي وئي آهي.توھان غلط پاسڪي داخل ڪندي ھن خصوصيت کي جانچي سگھو ٿا.
  2. صرف مخصوص وقتن تي بانڊ جي اجازت ڏئي ٿي. اهو وقت کي محدود ڪري ٿو جيڪو هڪ حملي ڪندڙ کي بانڊ ٺاهڻو آهي ۽ ان کي استعمال ڪرڻ ممڪن بڻائي ٿو 'صرف بانڊ ٿيل ڪنيڪشن جي اجازت ڏيو' خصوصيت. ڊزائنر چونڊي سگھي ٿو ته بانڊ ايبل موڊ کي ڪيئن فعال يا غير فعال ڪجي. هتي نمائش جي مقصدن لاءِ، اسان PB1 سان هڪ ’سيٽ اپ موڊ‘ کي فعال ڪنداسين ۽ 30 سيڪنڊن کان پوءِ ان کي غير فعال ڪرڻ لاءِ ٽائمر استعمال ڪنداسين.
    1. سادو بٽڻ واري انٽرفيس جو ٻيو مثال انسٽال ڪريو. هي PB1 جي استعمال کي فعال ڪندو.
    2. بانڊنگ کي فعال/بند ڪرڻ لاءِ اسٽيڪ ڏانهن مختلف سگنل موڪلڻ لاءِ ڪال بڪ کي تبديل ڪريو. نتيجو هن طرح ڪجهه ڏسڻ گهرجي:
    3. خارجي سگنل ايونٽ ھينڊلر کي تبديل ڪريو ته جيئن اھو ھن نئين سگنل کي ھٿ ڪري. نتيجو هن طرح هجڻ گهرجي:
    4. sl_bt_evt_system_soft_timer_id واقعي لاءِ ايونٽ ھينڊلر شامل ڪريو. هي سيٽ اپ موڊ کي غير فعال ڪرڻ لاء استعمال ڪيو ويندو.
    5. ھيٺ ڏنل ڪوڊ استعمال ڪري سگھجي ٿو بانڊ ايبل موڊ کي فعال ڪرڻ ۽ سڀني ڪنيڪشن کي اجازت ڏيڻ يا بانڊ ايبل موڊ کي غير فعال ڪرڻ ۽ صرف بند ٿيل ڊوائيسز کان ڪنيڪشن جي اجازت ڏيڻ لاءِ:
    6. sl_bt_system_boot_id ايونٽ ھينڊلر ۾ ھيٺيون ڪال شامل ڪريو
    7. پروجيڪٽ ٺاھيو ۽ ان کي ڊوائيس ڏانھن چمڪيو.
    8. EFRConnect سان ڊوائيس سان ڳنڍڻ جي ڪوشش ڪريو. ڪنيڪشن ناڪام ٿيڻ گهرجي.
    9. ھاڻي ڪوشش ڪريو PB1 کي دٻائڻ کان پھريائين EFRConnect سان ڳنڍڻ. هن ڀيري رابطو ڪامياب ٿيندو. 30 سيڪنڊن کان پوءِ توهان ڪنسول تي هڪ پيغام ڏسندا جنهن مان ظاهر ٿئي ٿو ته ڊوائيس سيٽ اپ موڊ مان نڪرندي آهي. هن جو مطلب آهي ته بانڊ ايبل موڊ هاڻي غير فعال آهي.
  3. ڪنيڪشن ٺاهڻ تي سيڪيورٽي وڌايو. جيئن ته سيڪيورٽي اختياري آهي، اسان کي GATT خاصيتن تي ڀروسو ڪرڻ بجاءِ جلد کان جلد هڪ اينڪرپٽ ٿيل ڪنيڪشن جي درخواست ڪرڻ گهرجي. API هتي دستاويز ڪئي وئي آهي. هن API کي سڏڻ لاءِ هڪ سٺي جڳهه sl_bt_evt_connection_opened_id واقعي ۾ آهي. ڪنيڪشن هينڊل ڪنيڪشن متغير ۾ موجود آهي.

محفوظ سڃاڻپ

هاڻي ته اسان وٽ هڪ وڌيڪ محفوظ بلوٽوٿ ڊيوائس آهي، اچو ته تصديق جي قدم کي بهتر ڪريون. توھان اڳ ۾ ئي ڏسي چڪا آھيو ته ڪيئن تصديق ڪجي والٽ ڊوائيسز جي محفوظ سڃاڻپ کي ڪمانڊ لائن سان اڳوڻي ٽريننگ ليبز ۾. هن حصي ۾، اسان ڏسنداسين ته ڪيئن هڪ BLE ڊوائيس ٻئي BLE ڊوائيس جي سڃاڻپ جي تصديق ڪري سگهي ٿي ان جي سرٽيفڪيٽ زنجير جي درخواست ڪندي ۽ هڪ چئلينج موڪلڻ سان. سڀئي محفوظ والٽ حصا انهن جي پنهنجي ڊوائيس سرٽيفڪيٽ ۽ بيچ سرٽيفڪيٽ رکن ٿا. فيڪٽري ۽ روٽ سرٽيفڪيٽ کي ڪلائنٽ ايپليڪيشن ۾ سخت ڪوڊ ڪيو ويو آهي پوري سرٽيفڪيٽ زنجير جي تصديق کي فعال ڪرڻ لاءِ. محفوظ سڃاڻپ بابت وڌيڪ تفصيل لاءِ ڏسو AN1268.

  1. هيٺ ڏنل ڊوائيس جي تصديق واري دستخط کي محفوظ ڪرڻ لاء عالمي بفر جي وضاحت ڪريو:
  2. JustWorks pairing استعمال ڪرڻ لاءِ سيڪيورٽي مئنيجر جي ترتيب سيٽ ڪريو. اهو ڪيو ويو آهي ته ڪنيڪشن انڪوڊ ٿيل آهي. عملي طور تي، MITM تحفظ استعمال ڪيو وڃي پر ليب کي سادو رکڻ لاءِ، اسان استعمال ڪنداسين JustWorks. ڪال کي تبديل ڪريو sl_bt_sm_configure ھيٺ ڏنل ڏانھن واپس:انهي سان گڏ، سسٽم_بوٽ ايونٽ هينڊلر ۾ سيٽ اپ_موڊ (سچو) کي ڪال ڪريو.
  3. مهيا ڪيل مواد مان helpers.c کوليو ۽ مواد کي app.c ۾ نقل ڪريو. اهي ڪال بڪ افعال ڪم ڪن ٿا جهڙوڪ سرٽيفڪيٽن کي ورهائڻ جيئن اهي BLE تي موڪليا وڃن، سرٽيفڪيٽ زنجير جي تصديق ڪرڻ، ۽ چئلينج پيدا ڪرڻ/تصديق ڪرڻ.
  4. اهو ضروري آهي ته وڌ ۾ وڌ منتقلي يونٽ (MTU) سائيز جو اندازو لڳايو وڃي ته جيئن سرٽيفڪيٽن کي ورهائي ۽ ٻيهر گڏ ڪري سگهجي. MTU محفوظ ڪرڻ لاءِ عالمي متغير جي وضاحت ڪريو جيئن هتي ڏيکاريل آهي:پوءِ شامل ڪريو ايونٽ ھينڊلر GATT MTU مٽا سٽا واري واقعي لاءِ جيئن ھيٺ ڏيکاريل آھي.
  5. هتي ٽي صارف ڊيٽا خاصيتون آهن جيڪي پڙهي سگهجن ٿيون. اهي خاصيتون ڊوائيس سرٽيفڪيٽ، بيچ سرٽيفڪيٽ ۽ چئلينج کي گفتگو ڪرڻ لاء استعمال ڪيا ويا آهن. هڪ ڪال بڪ فنڪشن استعمال ڪيو ويندو آهي انهن صارفن جي پڙهڻ جي درخواستن کي سنڀالڻ لاءِ. هن فنڪشن کي ڪال ڪرڻ لاءِ هينڊلر شامل ڪريو جيئن هيٺ ڏيکاريل آهي:ڪال بڪ MTU استعمال ڪري ٿو قدم #2 کان ڀاڱي تائين ۽ ضرورت مطابق سرٽيفڪيٽ موڪلي ٿو. اهو دستخط ٿيل چئلينج موڪلڻ کي پڻ سنڀاليندو آهي.
  6. گراهڪ هڪ چئلينج موڪلي ٿو، هڪ بي ترتيب نمبر سرور طرفان دستخط ٿيڻ لاء، GATT خاصيتن مان هڪ لکڻ سان. انهي سبب لاء، ايپليڪيشن کي صارف جي لکڻ جي درخواست جي واقعن لاء هيٺ ڏنل هينڊلر جي ضرورت آهي:
  7. محفوظ سڃاڻپ سپورٽ شامل ڪريو fileپروجيڪٽ ڏانهن:
    1. app_se_manager_macro.h، app_se_manager_secure_identity.c ۽ app_se_secure_identity.h پروجيڪٽ کي مهيا ڪيل مواد مان. هنن files ۾ ڪمن لاءِ ڪجھ مددگار افعال شامل آھن جھڙوڪ سرٽيفڪيٽ جي سائيز حاصل ڪرڻ، ڊوائيس عوامي ڪيئي حاصل ڪرڻ ۽ چئلينج تي دستخط ڪرڻ.
    2. app.c ۾ app_se_manager_secure_identity.h شامل ڪريو.
  8. مهيا ڪيل مواد مان مهيا ڪيل gatt_configuration-attest.btconf درآمد ڪريو. هي GATT ڊيٽابيس سڏيو ويندو آهي محفوظ تصديق جنهن ۾ چار خاصيتون شامل آهن جيڪي اسان جي ڊوائيس جي سڃاڻپ جي تصديق ڪرڻ لاء استعمال ڪيا ويندا. انهن ۾ ڊوائيس سرٽيفڪيٽ، بيچ سرٽيفڪيٽ، چئلينج ۽ جواب شامل آهن.
  9. ڪلائنٽ، جيڪو گيٽ وي وانگر هڪ ڊوائيس کي نقل ڪرڻ لاء استعمال ڪيو ويندو آهي، هڪ مڪمل منصوبي جي طور تي مهيا ڪيو ويو آهي ڇاڪاڻ ته اهو تعمير ڪرڻ کان وڌيڪ پيچيده آهي. عام طور تي، ڪلائنٽ جي آپريشن هيٺ ڏنل آهي:
    1. ڊوائيسز لاء اسڪين محفوظ تصديق جي خدمت جي اشتهارن ۽ انهن سان ڳنڍي ٿي.
    2. GATT ڊيٽابيس سروسز ۽ خاصيتون دريافت ڪري ٿو.
    3. ڊوائيس ۽ بيچ سرٽيفڪيٽ کي پڙهي ٿو ۽ تصديق ڪري ٿو سرٽيفڪيشن زنجير کي استعمال ڪندي فيڪٽري ۽ روٽ سرٽيفڪيٽ جنهن کي اهو فليش ۾ محفوظ ڪيو ويو آهي.
    4. سرور ڏانهن بي ترتيب چئلينج موڪلي ٿو.
    5. چئلينج جي جواب جي تصديق ڪرڻ جي ڪوشش.
    6. ڪنيڪشن کي بند ڪري ٿو جيڪڏهن تصديق ناڪام ٿي.
  10. تعمير ڪريو ۽ سرور پروجيڪٽ کي توھان جي سرور تي فليش ڪريو WSTK / ريڊيو بورڊ.
  11. مهيا ڪيل مواد ۾ ڪلائنٽ فولڊر مان ڪلائنٽ پروجيڪٽ درآمد ڪريو. تعمير ڪريو ۽ ڪلائنٽ پروجيڪٽ کي پنھنجي ڪلائنٽ WSTK/ريڊيو بورڊ ڏانھن.
  12. ڪلائنٽ WSTK تي ري سيٽ کي دٻايو ۽ سيريل ڪنسول کوليو. ڪلائنٽ اسان جي محفوظ سڃاڻپ سروس جي اشتهارن جي ڊوائيسز لاء اسڪيننگ شروع ڪري ٿو ۽ ڳنڍيندو جڏهن اهو هڪ ڳولي ٿو.
  13. ڪلائنٽ ڪجهه پيغام ڏيکاريندو ته اهو ظاهر ڪري ٿو ته اهو سرور مليو آهي گهربل خدمت ۽ اسٽيٽس پيغامن سان سرٽيفڪيٽ زنجير جي تصديق بابت.
  14. جيڪڏهن تصديق ٿي وڃي ٿي، ڪلائنٽ هڪ بي ترتيب نمبر ٺاهيندو، جنهن کي چيلنج سڏيو ويندو، ۽ ان کي سرور ڏانهن موڪليو. سرور چيلنج تي دستخط ڪندو ان جي محفوظ طور تي رکيل پرائيويٽ ڊيوائس ڪيئي ۽ دستخط واپس ڪلائنٽ ڏانهن، ان کي چيلنج جواب چئبو آهي. ڪلائنٽ وري دستخط جي تصديق ڪرڻ لاءِ اڳ ۾ مليل ڊيوائس سرٽيفڪيٽ ۾ عوامي ڪيئي استعمال ڪري ٿو. اهو ان ڳالهه جي تصديق ڪرڻ لاءِ ڪيو ويو آهي ته سرور وٽ حقيقت ۾ اها پرائيويٽ ڪنجي آهي جيڪا هن دعويٰ ڪئي آهي. جيڪڏهن چئلينج صحيح طور تي تصديق ڪئي وئي آهي، هڪ پيغام ڏيکاريل آهي انهي اثر لاء؛ ٻي صورت ۾، ڪنيڪشن بند آهي، ۽ هڪ پيغام ڏيکاريو ويو آهي وضاحت ڪندي ڇو.
  15. ھاڻي موڪليو ھڪ غلط سرٽيفڪيٽ تصديق ڪرڻ لاءِ ته تصديق واقعي ڪم ڪري ٿي. توھان تبديل ڪري سگھو ٿا user_read_request_cb() کي خراب ڪرڻ لاءِ يا ته سرٽيفڪيٽ ڊيٽا يا چئلينج جواب.

ضميمو A - I/O صلاحيتون ۽ جوڙڻ جا طريقا
ضميمو B - سيڪيورٽي موڊس ۽ ليولز

سڪيورٽي موڊ 1 واحد موڊ آهي جيڪو سپورٽ ڪيل بلوٽوٿ لو انرجي لاءِ سلڪون ليبز جي اسٽيڪ ۾. سطحون هن ريت آهن:

  • ليول 1 ڪابه سيڪيورٽي
  • ليول 2 غير تصديق ٿيل جوڙو انڪرپشن سان
  • ليول 3 تصديق ٿيل جوڙو انڪريشن سان
  • سطح 4 جي تصديق ٿيل محفوظ ڪنيڪشن مضبوط انڪرپشن سان (ECDH اهم مٽا سٽا)

 

دستاويز / وسيلا

silabs 21Q2 محفوظ BLE ڊوائيس سيڪيورٽي ليب [pdf] استعمال ڪندڙ دستياب
21Q2 محفوظ BLE ڊوائيس سيڪيورٽي ليب، محفوظ BLE ڊوائيس سيڪيورٽي ليب، سيڪيورٽي ليب

حوالو

تبصرو ڇڏي ڏيو

توهان جو اي ميل پتو شايع نه ڪيو ويندو. گهربل فيلڊ نشان لڳل آهن *