சிலாப்கள் 21Q2 பாதுகாப்பான BLE சாதனம் பாதுகாப்பு ஆய்வகம்

BLE பாதுகாப்பு ஆய்வக கையேடு

இந்த ஆய்வகத்தில், மிகவும் பாதுகாப்பான BLE சாதனத்தை எப்படி வடிவமைப்பது என்பதை நீங்கள் பார்க்கலாம். நாங்கள் ஒரு ஓவருடன் தொடங்குவோம்view சில ஸ்டாக் அம்சங்களை எவ்வாறு பயன்படுத்துவது மற்றும் மிகவும் பாதுகாப்பான இணைப்புகளுக்கான நுட்பங்களைப் பற்றிய சில பொதுவான ஆலோசனைகளுக்குச் செல்வது மற்றும் இறுதியாக BLE இல் உள்ள சாதனச் சான்றிதழ்களை எவ்வாறு உண்மையானது என அடையாளம் காண்பது என்பதைப் பார்ப்போம்.

தொடங்குதல்

புளூடூத் எஸ்ampநீங்கள் உருவாக்கும் le பயன்பாடு ஒரு பூட்லோடருடன் பயன்படுத்தப்பட வேண்டும். நீங்கள் ஒரு புதிய EFR32MG21B உடன் பணிபுரிந்தால், அதில் பூட்லோடர் இருக்காது. பிளாட்ஃபார்ம்\பூட்லோடர்\களில் முன்பே கட்டமைக்கப்பட்ட பூட்லோடரைக் காணலாம்ample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a உங்கள் SDK கோப்புறை.

  1. ஒரு soc-காலி s உடன் தொடங்கவும்ample பயன்பாடு. இந்த எஸ்ample பயன்பாடு ஒரு டெம்ப்ளேட்டாகப் பயன்படுத்தப்படுகிறது மற்றும் எந்த BLE பயன்பாட்டிற்கும் ஒரு நல்ல தொடக்க புள்ளியாக உள்ளது.
    1. சிம்ப்ளிசிட்டி ஸ்டுடியோவில் இருந்து சிலிக்கான் லேப்ஸ் ப்ராஜெக்ட் வழிகாட்டியைத் திறக்கவும் File மெனு -> புதியது.
    2. BRD4181C ஐத் தேர்ந்தெடுத்து 'அடுத்து' பொத்தானைக் கிளிக் செய்யவும்.
    3. தொழில்நுட்ப வகையின் கீழ் 'புளூடூத் (9)' தேர்வுப்பெட்டியைக் கிளிக் செய்யவும்.
    4. 'புளூடூத் - SoC காலி' என்பதை ஹைலைட் செய்து அடுத்து என்பதைக் கிளிக் செய்யவும்.
    5. 'பினிஷ்' பட்டனை கிளிக் செய்யவும்.
  2. பாதுகாக்கப்பட்ட மற்றும் பாதுகாப்பற்ற பண்புகள் எவ்வாறு வித்தியாசமாக நடத்தப்படுகின்றன என்பதைப் பார்க்க இப்போது நீங்கள் சில பண்புகளைச் சேர்க்கலாம்.
    1. திட்டத்தின் slcp ஐ திறக்கவும் file ப்ராஜெக்ட் எக்ஸ்ப்ளோரர் விண்டோவில் இருமுறை கிளிக் செய்வதன் மூலம்
    2. 'மென்பொருள் கூறுகள்' தாவலைத் தனிப்படுத்தி, கீழே காட்டப்பட்டுள்ளபடி GATT உள்ளமைவுக் கருவியைத் திறக்கவும்: gatt_configuration.btconf ஐ இறக்குமதி செய்ய கீழே காட்டப்பட்டுள்ள இறக்குமதி கருவியைப் பயன்படுத்தவும் file வழங்கப்பட்ட பொருட்களில் உள்ள சர்வர் கோப்புறையிலிருந்து.GATT தரவுத்தளமானது 'பயிற்சி' எனப்படும் தனிப்பயன் சேவையைக் கொண்டுள்ளது, சில தரவு பாதுகாக்கப்படுகிறது மற்றும் சில இல்லை. பாதுகாக்கப்பட்ட பண்புக்கு எதிராக பாதுகாப்பற்ற பண்புகளை அணுக முயற்சிக்கும்போது என்ன நடக்கிறது என்பதை ஒப்பிட இது உங்களை அனுமதிக்கிறது. இது மிக அடிப்படையான பாதுகாப்புடன் கூடிய சாதனத்தை உருவாக்குவதற்கான விரைவான வழியாகும்.
  3. பயன்பாட்டில் என்ன நடக்கிறது என்பதைக் கண்காணிக்க, சிம்ப்ளிசிட்டி ஸ்டுடியோவில் உள்ள கன்சோலில் அச்சிட சீரியல் போர்ட்டைப் பயன்படுத்துவோம். இந்த கூறுகளைக் கண்டறிவதற்கான எளிதான வழி, காட்டப்பட்டுள்ளபடி மென்பொருள் கூறுகள் உரையாடலில் அவற்றைத் தேடுவது:
      1. IO ஸ்ட்ரீம் USART கூறுகளை நிறுவவும்
      2. IO Stream Retarget STDIO கூறுகளை நிறுவவும்
      3. நிலையான I/O கூறுகளை நிறுவவும்
      4. பதிவு கூறுகளை நிறுவவும்
      5. போர்டு கட்டுப்பாட்டு கூறுகளைத் திறந்து, 'விர்ச்சுவல் COM UART ஐ இயக்கு' என்பதை இயக்கவும்
      6. 'டிபக் அடாப்டர்கள்' பேனலில் உள்ள அடாப்டரை வலது கிளிக் செய்து, 'லாஞ்ச் கன்சோல்' என்பதைத் தேர்ந்தெடுக்கவும். 'வரிசை 1' தாவலைத் தேர்ந்தெடுத்து, கன்சோல் சாளரத்தின் உரை நுழைவு புலத்தில் கர்சரை வைத்து, கன்சோலை எழுப்ப Enter ஐ அழுத்தவும்.
  4. இணைப்புக் கைப்பிடியைச் சேமிப்பதற்காக app.c இல் காணப்படும் sl_bt_on_event() இல் உள்ளூர் மாறியை உருவாக்கவும். ஒவ்வொரு முறையும் ஒரு நிகழ்வை அடுக்கினால் எழுப்பப்படும் போது இந்தச் செயல்பாடு அழைக்கப்படுகிறது என்பதால் மாறி நிலையானதாக இருக்க வேண்டும், மேலும் மதிப்பு தொடர்ந்து இருக்க வேண்டும் என்று நாங்கள் விரும்புகிறோம். இணைப்பு கைப்பிடி பின்னர் பயன்படுத்தப்படும்ஆய்வகத்தின் பிரிவு.
  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. திட்டத்தை உருவாக்கி ப்ளாஷ் செய்யுங்கள். இந்த கட்டத்தில், நாங்கள் களை இயக்குவோம்ampGATT தரவுத்தளத்தைத் தவிர, எந்த மாற்றமும் இல்லாமல் அது எவ்வாறு செயல்படுகிறது என்பதைப் பார்க்க le பயன்பாடு.
  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 நிகழ்வு ஹேண்ட்லரில் உள்ளது. மீதமுள்ள ஆய்வகங்களைச் சீராகச் செய்ய, இப்போது பிணைப்பை இயக்க மாட்டோம், ஆனால் ஒரே ஒரு பத்திரத்தை அனுமதிக்கும் வகையில் பிணைப்புக் கொள்கையை அமைத்துள்ளோம். குறிப்புக்கு, இந்த APIகளுக்கான ஆவணங்கள் இங்கே மற்றும் இங்கே காணப்படுகின்றன.
  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 க்கு மாற்றவும்:மேலும், system_boot நிகழ்வு ஹேண்ட்லரில் setup_mode(true)க்கான அழைப்பை கருத்து தெரிவிக்கவும்.
  3. வழங்கப்பட்ட பொருட்களிலிருந்து helpers.c ஐத் திறந்து, உள்ளடக்கங்களை app.c க்கு நகலெடுக்கவும். இந்த கால்பேக் செயல்பாடுகள், சான்றிதழ்களைப் பிரித்தல், BLE வழியாக அனுப்பப்படும், சான்றிதழ் சங்கிலியைச் சரிபார்த்தல் மற்றும் சவாலை உருவாக்குதல்/சரிபார்த்தல் போன்ற பணிகளைச் செய்கின்றன.
  4. அதிகபட்ச பரிமாற்ற அலகு (MTU) அளவை தீர்மானிக்க வேண்டியது அவசியம், இதனால் சான்றிதழ்கள் பிரிக்கப்பட்டு மீண்டும் இணைக்கப்படும். இங்கே காட்டப்பட்டுள்ளபடி 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. இவை fileசான்றிதழின் அளவைப் பெறுதல், சாதனத்தின் பொது விசையைப் பெறுதல் மற்றும் சவாலில் கையொப்பமிடுதல் போன்ற பணிகளுக்கான சில உதவி செயல்பாடுகள் உள்ளன.
    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 ஆம் நிலை அங்கீகரிக்கப்பட்ட இணைத்தல்
  • வலுவான குறியாக்கத்துடன் (ECDH விசை பரிமாற்றம்) நிலை 4 அங்கீகரிக்கப்பட்ட பாதுகாப்பான இணைப்புகள்

 

ஆவணங்கள் / ஆதாரங்கள்

சிலாப்கள் 21Q2 பாதுகாப்பான BLE சாதனம் பாதுகாப்பு ஆய்வகம் [pdf] பயனர் கையேடு
21Q2 பாதுகாப்பான BLE சாதனம் பாதுகாப்பு ஆய்வகம், பாதுகாப்பான BLE சாதனம் பாதுகாப்பு ஆய்வகம், பாதுகாப்பு ஆய்வகம்

குறிப்புகள்

கருத்து தெரிவிக்கவும்

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்படாது. தேவையான புலங்கள் குறிக்கப்பட்டுள்ளன *