silabs 21Q2 محفوظ BLE ڈیوائس سیکیورٹی لیب

BLE سیکیورٹی لیب دستی

اس لیب میں، آپ دیکھیں گے کہ ایک زیادہ محفوظ BLE ڈیوائس کو کیسے ڈیزائن کیا جائے۔ ہم ایک اوور سے آغاز کریں گے۔view اسٹیک کی کچھ خصوصیات کو کیسے استعمال کیا جائے اور مزید محفوظ کنکشن کے لیے تکنیک کے بارے میں کچھ عمومی مشورے کی طرف بڑھیں اور آخر میں ہم دیکھیں گے کہ BLE پر ڈیوائس سرٹیفکیٹس کو کس طرح استعمال کیا جائے تاکہ کسی پیریفیرل کو مستند بنایا جائے۔

شروع کرنا

بلوٹوتھ ایسample ایپلیکیشن جس پر آپ تعمیر کریں گے اس کا مقصد بوٹ لوڈر کے ساتھ استعمال کیا جانا ہے۔ اگر آپ بالکل نئے EFR32MG21B کے ساتھ کام کر رہے ہیں، تو اس میں بوٹ لوڈر نہیں ہوگا۔ آپ پلیٹ فارم\بوٹ لوڈر\s میں پہلے سے بنایا ہوا بوٹ لوڈر تلاش کر سکتے ہیں۔ample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a آپ کے SDK کا فولڈر۔

  1. ایک soc-empty s کے ساتھ شروع کریں۔ampلی ایپ۔ یہ ایسample ایپ کو بطور ٹیمپلیٹ استعمال کیا جاتا ہے اور یہ کسی بھی BLE ایپلیکیشن کے لیے ایک اچھا نقطہ آغاز بناتا ہے۔
    1. Simplicity Studio سے Silicon Labs پروجیکٹ وزرڈ کھولیں۔ File مینو -> نیا۔
    2. BRD4181C کو منتخب کریں اور 'اگلا' بٹن پر کلک کریں۔
    3. ٹیکنالوجی کی قسم کے تحت 'بلوٹوتھ (9)' چیک باکس پر کلک کریں۔
    4. 'بلوٹوتھ - ایس او سی خالی' کو نمایاں کریں پھر اگلا پر کلک کریں۔
    5. 'ختم' بٹن پر کلک کریں۔
  2. اب آپ یہ دیکھنے کے لیے کچھ خصوصیات شامل کر سکتے ہیں کہ کس طرح محفوظ اور غیر محفوظ خصوصیات کے ساتھ مختلف سلوک کیا جاتا ہے۔
    1. پروجیکٹ کا slcp کھولیں۔ file پروجیکٹ ایکسپلورر ونڈو میں اس پر ڈبل کلک کرکے
    2. 'سافٹ ویئر کے اجزاء' ٹیب کو نمایاں کریں اور GATT کنفیگریشن ٹول کو کھولیں جیسا کہ ذیل میں دکھایا گیا ہے: اور gatt_configuration.btconf درآمد کرنے کے لیے نیچے دکھائے گئے امپورٹ ٹول کا استعمال کریں۔ file فراہم کردہ مواد میں سرور فولڈر سے۔GATT ڈیٹا بیس میں ایک حسب ضرورت سروس ہے، جسے 'ٹریننگ' کہا جاتا ہے، جس میں کچھ ڈیٹا محفوظ ہے اور کچھ جو نہیں ہے۔ یہ آپ کو اس بات کا موازنہ کرنے کی اجازت دیتا ہے کہ جب کسی محفوظ خصوصیت تک رسائی حاصل کرنے کی کوشش کی جائے تو کیا ہوتا ہے بمقابلہ غیر محفوظ۔ یہ انتہائی بنیادی سیکیورٹی کے ساتھ ڈیوائس بنانے کا ایک تیز طریقہ ہے۔
  3. ہم سیریل پورٹ کا استعمال سادگی اسٹوڈیو میں کنسول پر پرنٹ کرنے کے لیے کریں گے تاکہ اس ایپلی کیشن میں کیا ہو رہا ہے۔ ان اجزاء کو تلاش کرنے کا سب سے آسان طریقہ یہ ہے کہ انہیں سافٹ ویئر کے اجزاء ڈائیلاگ میں تلاش کریں جیسا کہ دکھایا گیا ہے:
      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. 'ٹریننگ' نامی ڈیوائس پر 'کنیکٹ' آئیکن پر ٹیپ کریں۔
  8. غیر محفوظ شدہ خصوصیت کو درج ذیل پڑھیں:
      1. UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0 کے ساتھ نامعلوم سروس کے تحت 'مزید معلومات' کے لنک پر ٹیپ کریں۔
      2. 'پڑھیں' آئیکن کو تھپتھپا کر غیر محفوظ خصوصیت، UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c پڑھیں۔ یہاں کوئی حیرت نہیں ہے۔ چونکہ خصوصیت کسی بھی طرح محفوظ نہیں ہے، اسے سادہ متن میں بھیجا جائے گا۔
  9. اب محفوظ شدہ خصوصیت، UUID d4261dbb-dcd0-daab-ec95-deec088d532b پڑھیں۔ آپ کا موبائل فون آپ کو جوڑا بنانے اور جڑنے کا اشارہ کرے، آپ کے موبائل OS کے لحاظ سے پیغام مختلف ہو سکتا ہے۔ جوڑا بنانے کی درخواست قبول کرنے کے بعد، آپ کو کنسول پر مندرجہ ذیل پیغام دینا چاہیے: نوٹ: اس کتابچے کے آخر میں ضمیمہ A میں حوالہ کے لیے I/O صلاحیتوں اور جوڑا بنانے کے طریقوں کا خلاصہ ہے۔ ضمیمہ B بلوٹوتھ سیکیورٹی طریقوں کا خلاصہ کرتا ہے۔

سیکیورٹی مینیجر کی ترتیب

سیکیورٹی مینیجر بلوٹوتھ اسٹیک کا حصہ ہے جو اس بات کا تعین کرتا ہے کہ کون سی سیکیورٹی خصوصیات استعمال کی جاتی ہیں۔ ان خصوصیات میں مین-ان-دی-مڈل (MITM) تحفظ، LE سیکیور کنکشنز (عرف ECDH) شامل ہیں، بانڈنگ کے لیے تصدیق کی ضرورت ہوتی ہے، وغیرہ۔ سیکیورٹی مینیجر I/O صلاحیتوں کو بھی ہینڈل کرتا ہے جو اس بات کا تعین کرنے کے لیے استعمال کیے جاتے ہیں کہ جوڑا بنانے کے لیے کون سا طریقہ استعمال کیا جاتا ہے۔ /بانڈنگ (خلاصہ کے لیے ضمیمہ A دیکھیں)۔ اس سیکشن میں آپ کو ایک سادہ سیٹ اپ نظر آئے گا۔

  1. مطلوبہ کنفیگریشن کے ساتھ SM سیٹ اپ کریں۔ اس لیب کا ہارڈ ویئر کنسول پر پاس کی کو ڈسپلے کرنا آسان بناتا ہے۔ 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 app.c میں sl_simple_button_instances.h
    4. sl_bt_evt_sm_bonding_confirm_id ایونٹ کے لیے ایک ہینڈلر شامل کریں۔ اس ایونٹ ہینڈلر کا بنیادی کام صارف کو مطلع کرنا ہے کہ ایک ریموٹ ڈیوائس نئے بانڈ کی درخواست کر رہا ہے۔
    5. بلوٹوتھ اسٹیک پر سگنل بھیجنے کے لیے سادہ بٹن ہینڈلر کے لیے کال بیک فنکشن شامل کریں جس سے یہ ظاہر ہوتا ہے کہ بٹن دبایا گیا ہے۔ یہ پہلے سے طے شدہ کال بیک کو اوور رائیڈ کرتا ہے جو آسانی سے واپس آتا ہے۔
    6. ایک بیرونی سگنل ایونٹ ہینڈلر شامل کریں۔ یہ واقعہ سگنل موصول ہونے کے جواب میں اٹھایا جاتا ہے، جیسا کہ پچھلے مرحلے میں۔ بانڈنگ کی تصدیق کے لیے بیرونی سگنل ایونٹ کا استعمال کیا جائے گا۔
    7. بانڈنگ کی تصدیق کی ضرورت کے لیے کال کو sl_bt_sm_configure میں تبدیل کریں جیسے
    8. دوبارہ بنائیں اور فلیش کریں۔
    9. EFRConnect کے ساتھ جڑیں اور محفوظ شدہ خصوصیت کو پہلے کی طرح پڑھیں۔ اب آپ کو کنسول پر مندرجہ ذیل پیغام نظر آئے گا۔بانڈنگ کی تصدیق کے لیے PB0 دبائیں۔ اب کنسول بانڈنگ کے لیے موبائل فون پر داخل کی جانے والی پاس کی دکھائے گا۔ بانڈنگ کے عمل کو مکمل کرنے کے لیے پاس کی درج کریں۔

 

ٹپ: ایونٹ ہینڈلر میں ڈیفالٹ کیس کا استعمال کریں پیغام کو پرنٹ کرنے کے لیے جب اسٹیک کوئی ایسا ایونٹ بھیجتا ہے جسے ہینڈل نہیں کیا جاتا ہے۔ ہو سکتا ہے اسٹیک آپ کو کچھ اہم بتانے کی کوشش کر رہا ہو۔

بنیادی باتوں سے آگے

اس موقع پر، آپ نے مشورہ لیا ہےtagحفاظتی خصوصیات میں سے e جو ہمارے اسٹیک کو پیش کرنا ہے۔ اب آئیے اپنے اختیار میں خصوصیات کے دانشمندانہ استعمال کے ذریعے نفاذ کو بہتر بنائیں۔ مندرجہ ذیل اقدامات اختیاری اور ایک دوسرے سے آزاد ہیں، آپ رویے کو دیکھنے یا ان سب کو ایک ساتھ آزمانے کے لیے ہر ایک کے بعد بنا اور فلیش کر سکتے ہیں۔

  1. بانڈ کی ناکام کوششوں پر رابطہ منقطع کریں۔ خطرات کا پتہ لگانے کے لیے یہ ایک اچھی جگہ ہے۔ اگر ریموٹ ڈیوائس انکرپشن/توثیق کو سپورٹ نہیں کرتی ہے یا اس میں درست کلیدیں نہیں ہیں تو یہ ہیکر ہو سکتا ہے۔ تو، چلو کنکشن توڑتے ہیں. sl_bt_sm_bonding_failed_id ایونٹ میں sl_bt_connection_close() پر کال شامل کرنے کی کوشش کریں۔ 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. اب EFRConnect سے جڑنے سے پہلے PB1 دبانے کی کوشش کریں۔ اس بار رابطہ کامیاب ہو گا۔ 30 سیکنڈ کے بعد آپ کو کنسول پر ایک پیغام نظر آئے گا جو اس بات کی نشاندہی کرے گا کہ ڈیوائس سیٹ اپ موڈ سے باہر ہو رہی ہے۔ اس کا مطلب ہے کہ بانڈ ایبل موڈ اب غیر فعال ہے۔
  3. کنکشن بنانے پر سیکیورٹی میں اضافہ کریں۔ چونکہ سیکورٹی اختیاری ہے، ہمیں GATT کی خصوصیات پر انحصار کرنے کے بجائے جلد از جلد ایک خفیہ کنکشن کی درخواست کرنی چاہیے۔ API کو یہاں دستاویز کیا گیا ہے۔ اس API کو کال کرنے کے لیے ایک اچھی جگہ sl_bt_evt_connection_opened_id ایونٹ میں ہے۔ کنکشن ہینڈل کنکشن متغیر میں دستیاب ہے۔

محفوظ شناخت

اب جبکہ ہمارے پاس ایک زیادہ محفوظ بلوٹوتھ ڈیوائس ہے، آئیے توثیق کے مرحلے کو بہتر بنائیں۔ آپ پہلے ہی دیکھ چکے ہیں کہ پچھلی ٹریننگ لیبز میں کمانڈ لائن کے ساتھ والٹ ڈیوائسز کی محفوظ شناخت کی تصدیق کیسے کی جاتی ہے۔ اس سیکشن میں، ہم دیکھیں گے کہ کس طرح ایک BLE ڈیوائس اپنے سرٹیفکیٹ چین کی درخواست کرکے اور چیلنج بھیج کر دوسرے BLE ڈیوائس کی شناخت کی تصدیق کر سکتی ہے۔ تمام محفوظ والٹ پرزوں میں اپنا آلہ سرٹیفکیٹ اور بیچ سرٹیفکیٹ ہوتا ہے۔ فیکٹری اور روٹ سرٹیفکیٹس کو کلائنٹ ایپلیکیشن میں سخت کوڈ کیا گیا ہے تاکہ پورے سرٹیفکیٹ چین کی تصدیق کو ممکن بنایا جا سکے۔ محفوظ شناخت کے بارے میں مزید تفصیلات کے لیے AN1268 سے رجوع کریں۔

  1. آلہ کی تصدیق کے دستخط کو ذخیرہ کرنے کے لیے عالمی بفر کی وضاحت ذیل میں کریں:
  2. JustWorks جوڑا استعمال کرنے کے لیے سیکیورٹی مینیجر کی ترتیب سیٹ کریں۔ ایسا اس لیے کیا جاتا ہے کہ کنکشن کو انکرپٹ کیا جائے۔ عملی طور پر، MITM تحفظ استعمال کیا جانا چاہیے لیکن لیب کو سادہ رکھنے کے لیے، ہم JustWorks استعمال کریں گے۔ کال کو sl_bt_sm_configure میں واپس درج ذیل میں تبدیل کریں:نیز، سسٹم_بوٹ ایونٹ ہینڈلر میں سیٹ اپ_موڈ (سچ) پر کال پر تبصرہ کریں۔
  3. فراہم کردہ مواد سے helpers.c کھولیں اور مواد کو app.c میں کاپی کریں۔ یہ کال بیک فنکشن سرٹیفکیٹس کو الگ کرنے جیسے کام انجام دیتے ہیں تاکہ انہیں BLE پر بھیجا جا سکے، سرٹیفکیٹ چین کی تصدیق کرنا، اور چیلنج تیار کرنا/تصدیق کرنا۔
  4. زیادہ سے زیادہ ٹرانسفر یونٹ (MTU) سائز کا تعین کرنا ضروری ہے تاکہ سرٹیفکیٹس کو الگ کیا جا سکے اور دوبارہ جوڑا جا سکے۔ ایم ٹی یو کو بچانے کے لیے عالمی متغیر کی وضاحت کریں جیسا کہ یہاں دکھایا گیا ہے:پھر GATT MTU کے تبادلے والے ایونٹ کے لیے ایک ایونٹ ہینڈلر شامل کریں جیسا کہ ذیل میں دکھایا گیا ہے:
  5. صارف کے ڈیٹا کی تین خصوصیات ہیں جنہیں پڑھا جا سکتا ہے۔ یہ خصوصیات ڈیوائس سرٹیفکیٹ، بیچ سرٹیفکیٹ اور چیلنج سے رابطہ کرنے کے لیے استعمال ہوتی ہیں۔ ان صارف کی پڑھنے کی درخواستوں کو سنبھالنے کے لیے ایک کال بیک فنکشن استعمال کیا جاتا ہے۔ اس فنکشن کو کال کرنے کے لیے ایک ہینڈلر شامل کریں جیسا کہ ذیل میں دکھایا گیا ہے۔کال بیک مرحلہ نمبر 2 سے سیگمنٹ تک MTU کا استعمال کرتا ہے اور ضرورت کے مطابق سرٹیفکیٹ بھیجتا ہے۔ یہ دستخط شدہ چیلنج بھیجنے کو بھی سنبھالتا ہے۔
  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/radioboard پر بنائیں اور فلیش کریں۔
  11. فراہم کردہ مواد میں کلائنٹ فولڈر سے کلائنٹ پروجیکٹ درآمد کریں۔ کلائنٹ پروجیکٹ کو اپنے کلائنٹ WSTK/radioboard پر بنائیں اور فلیش کریں۔
  12. کلائنٹ WSTK پر ری سیٹ دبائیں اور سیریل کنسول کھولیں۔ کلائنٹ ہماری محفوظ شناختی سروس کی تشہیر کرنے والے آلات کے لیے اسکین کرنا شروع کر دیتا ہے اور جب اسے مل جائے گا تو منسلک ہو جائے گا۔
  13. کلائنٹ اس بات کی نشاندہی کرنے کے لیے کچھ پیغامات دکھائے گا کہ اسے مطلوبہ سروس کے ساتھ سرور مل گیا ہے اور سرٹیفکیٹ چین کی تصدیق کے بارے میں اسٹیٹس پیغامات ہیں۔
  14. اگر تصدیق گزر جاتی ہے، تو کلائنٹ ایک بے ترتیب نمبر تیار کرے گا، جسے چیلنج کہا جاتا ہے، اور اسے سرور کو بھیجے گا۔ سرور چیلنج پر اپنے محفوظ طریقے سے رکھے ہوئے پرائیویٹ ڈیوائس کلید کے ساتھ دستخط کرے گا اور کلائنٹ کو واپس دستخط کرے گا، اسے چیلنج رسپانس کہا جاتا ہے۔ کلائنٹ پھر دستخط کی تصدیق کے لیے پہلے موصول ہونے والے ڈیوائس سرٹیفکیٹ میں عوامی کلید کا استعمال کرتا ہے۔ یہ اس بات کی تصدیق کرنے کے لیے کیا جاتا ہے کہ سرور کے پاس واقعی وہ نجی کلید ہے جس کا اس نے دعویٰ کیا ہے۔ اگر چیلنج کی درست طریقے سے تصدیق ہو جاتی ہے، تو اس اثر کے لیے ایک پیغام ظاہر ہوتا ہے۔ بصورت دیگر، کنکشن بند ہو جاتا ہے، اور ایک پیغام ظاہر ہوتا ہے جس کی وجہ بتائی جاتی ہے۔
  15. اب یہ تصدیق کرنے کے لیے ایک غلط سرٹیفکیٹ بھیجیں کہ تصدیق واقعی کام کرتی ہے۔ آپ user_read_request_cb() میں ترمیم کر سکتے ہیں تاکہ سرٹیفکیٹ ڈیٹا یا چیلنج کے جواب کو خراب کر سکیں۔

ضمیمہ A - I/O صلاحیتیں اور جوڑا بنانے کے طریقے
ضمیمہ B - حفاظتی طریقے اور سطحیں۔

سیکیورٹی موڈ 1 واحد موڈ ہے جو سلیکون لیبز کے اسٹیک میں بلوٹوتھ لو انرجی کے لیے تعاون یافتہ ہے۔ درجات درج ذیل ہیں:

  • لیول 1 کوئی سیکیورٹی نہیں۔
  • خفیہ کاری کے ساتھ لیول 2 کا غیر تصدیق شدہ جوڑا
  • خفیہ کاری کے ساتھ لیول 3 کی تصدیق شدہ جوڑی
  • مضبوط خفیہ کاری کے ساتھ لیول 4 کی تصدیق شدہ محفوظ کنکشنز (ECDH کلیدی تبادلہ)

 

دستاویزات / وسائل

silabs 21Q2 محفوظ BLE ڈیوائس سیکیورٹی لیب [پی ڈی ایف] یوزر مینوئل
21Q2 محفوظ BLE ڈیوائس سیکیورٹی لیب، محفوظ BLE ڈیوائس سیکیورٹی لیب، سیکیورٹی لیب

حوالہ جات

ایک تبصرہ چھوڑیں۔

آپ کا ای میل پتہ شائع نہیں کیا جائے گا۔ مطلوبہ فیلڈز نشان زد ہیں۔ *