Bonding: bu nima, BLE juftlash jarayoni va xavfsizligi

Muallif: IT Sectr Nashr etilgan: 2026-07-16 O'qish vaqti: 10 daq

Bonding (juftlash) Bluetooth Low Energy da ikki qurilma o'rtasida kriptografik kalitlarni o'chmaydigan xotirada saqlash bilan doimiy himoyalangan ulanish yaratish jarayonidir. Bondingdan so'ng qurilmalar foydalanuvchining PINni qayta kiritishi yoki tasdiqlashisiz avtomatik ravishda shifrlangan ulanishni tiklashi mumkin. Bluetooth SIG Core Specification v5.4 (2025) ga ko'ra, bonding mexanizmi avtomatik qayta ulanishni talab qiladigan qurilmalar uchun majburiydir — naushniklar, fitnes trekerlar, tibbiy sensorlar va IoT aksessuarlari.

Asosiy ma'lumotlar

  • Bonding — seans tugaganidan keyin BLE qurilmalari o'rtasida shifrlash kalitlarini uzoq muddatli saqlash.
  • Pairing dan farqli o'laroq, bonding qayta tasdiqlashsiz shifrlangan ulanishni avtomatik tiklash imkonini beradi.
  • Bonding jarayoni kalit almashinuvi LTK, IRK, CSRK va ularni ikkala qurilma xotirasida saqlashni o'z ichiga oladi.
  • iOS bonded qurilmalarni Settings > Bluetooth orqali saqlangan kalitlarni o'chirish imkoniyati bilan boshqaradi.
  • Android uchun bondingni boshqarish BluetoothAdapter va getBondedDevices() API orqali amalga oshiriladi.

BLE da Bonding nima?

Bonding — Bluetooth Low Energy da pairing jarayonining kengaytmasi bo'lib, unda qurilmalar keyingi ulanishlar uchun shifrlash kalitlarini saqlaydi. BLE standarti uchta xavfsizlik rejimini belgilaydi: Security Mode 1 (autentifikatsiyasiz shifrlash), Security Mode 2 (shifrlamasdan ma'lumotlarni imzolash) va Security Mode 3 (autentifikatsiya bilan shifrlash). Bonding kalitlarni qayta kelishmasdan ko'p marta ulanish talab qilinadigan shifrlash rejimlari uchun dolzarbdir.

Bonding nima uchun kerak

Bondingning asosiy maqsadi qurilmalarning qayta ulanishida shifrlangan ulanishni avtomatik tiklash dir. Foydalanuvchi naushniklarni qutidan chiqarib taqqanda, bonding Bluetooth menyusida qurilmani qayta tanlamasdan smartfonga tezkor ulanishni ta'minlaydi. Apple Bluetooth Design Guidelines (2025) ga ko'ra, bonded qurilmalar aniqlangan paytdan boshlab 2 soniyadan ko'p bo'lmagan vaqt ichida ulanishi kerak.

Bonding paytida qanday ma'lumotlar saqlanadi

Bonding paytida har bir qurilma kriptografik materiallar to'plamini saqlaydi: ulanishni shifrlash uchun Long Term Key (LTK), tasodifiy manzillarni hal qilish uchun Identity Resolving Key (IRK), ma'lumotlar imzolarini tekshirish uchun Connection Signature Resolving Key (CSRK). LTK — 128 bit uzunlikdagi asosiy kalit, pairing jarayonida yaratiladi va barcha keyingi shifrlangan seanslar uchun ishlatiladi.

KalitUzunlikVazifasi
LTK128 bitQayta ulanishdan keyin ma'lumotlarni shifrlash
IRK128 bitTasodifiy shaxsiy manzillarni (RPA) hal qilish
CSRK128 bitMa'lumotlarni imzolash va haqiqiyligini tekshirish

Bonding vs Pairing: farqi nimada

Pairing — joriy aloqa seansini shifrlash uchun kalitlarni vaqtinchalik kelishishdir. Ulanish tugagach, shifrlash kalitlari o'chiriladi va keyingi ulanishda qayta pairing jarayoni talab qilinadi. Bonding pairingning barcha bosqichlarini o'z ichiga oladi, lekin qo'shimcha ravishda kalitlarni keyingi seanslar uchun saqlaydi. Deyarli barcha iste'mol Bluetooth qurilmalari (naushniklar, kolonkalar, soatlar) bondingdan foydalanadi, chunki usiz har bir ulanish PINni qayta kiritishni talab qiladi.

Pairing va Bondingning uch bosqichi

BLE spetsifikatsiyasi bo'yicha pairing jarayoni uch bosqichdan iborat. 1-bosqich — qurilma imkoniyatlarini almashish (IO capabilities, autentifikatsiyani qo'llab-quvvatlash). 2-bosqich — Short Term Key (STK) yoki LTK ni yaratish va almashish, ulanish usuliga qarab. 3-bosqich — kalit tashish: LTK, IRK, CSRK ni qurilmalar o'rtasida almashish. Agar qurilmalar 3-bosqichdan keyin kalitlarni saqlagan bo'lsa — bu bonding. Agar yo'q bo'lsa — bu oddiy pairing.

ParametrPairingBonding
Kalitlarni saqlashSaqlamaydiNVRAM da saqlaydi
Avtomatik ulanishYo'qHa
Qayta PIN kiritishTalab qilinadiTalab qilinmaydi
FoydalanishEpizodik ulanishlarDoimiy qurilmalar

Bonding jarayoni qanday ishlaydi

Bonding jarayoni pairing muvaffaqiyatli tugaganidan so'ng, qurilmalardan biri kalitlarni saqlash so'rovini yuborganda boshlanadi. BLE da Central (odatda smartfon) va Peripheral (taqiladigan qurilma) 2-bosqichda o'rnatilgan himoyalangan kanal orqali kalitlarni almashadi. Muvaffaqiyatli kalit almashinuvidan so'ng, har bir qurilma ularni o'chmaydigan xotirada hamkorning MAC manzili yoki Identity Address bilan birga saqlaydi.

Central tomonda kalitlarni saqlash

Central (iOS/Android) tomonda kalitlar Bluetooth tizim omborida saqlanadi. iOS avtomatik bonding boshqaruvi bilan Core Bluetooth tizim stekidan foydalanadi: birinchi ulanishda kalitlar qurilmaning NVRAM ida saqlanadi va keyingi ulanishlar avtomatik ravishda amalga oshiriladi. Dasturchi kalitlarni bevosita boshqarmaydi — Core Bluetooth tizim steki kalitlarni saqlashni qo'llab-quvvatlaydigan qurilmaga ulanishda bondingni avtomatik ravishda boshqaradi.

Bonding orqali ulanishni tiklash

Qayta ulanishda Peripheral o'zining umumiy manzilini yoki Resolvable Private Address (RPA) ni o'z ichiga olgan reklama paketlarini yuboradi. Central paketni qabul qiladi, manzilni saqlangan bonded qurilmalar bilan solishtiradi va agar moslik topsa, saqlangan LTK yordamida seansni tiklashni boshlaydi. Agar LTK mos kelsa — shifrlangan ulanish qayta pairing siz o'rnatiladi.

Bondingda autentifikatsiya usullari

BLE spetsifikatsiyasi bonding xavfsizlik darajasiga ta'sir qiluvchi bir nechta autentifikatsiya usullarini belgilaydi. Usulni tanlash qurilmalarning IO imkoniyatlariga bog'liq — ekran, klaviatura mavjudligi, raqamli taqqoslashni tasdiqlash imkoniyati. Xavfsiz bonding muhim bo'lmagan ilovalar uchun Just Works va Man-in-the-Middle hujumlaridan himoya talab qiladigan vazifalar uchun Numeric Comparison yoki Passkey Entry usulidan foydalanishni talab qiladi.

Just Works

Just Works — autentifikatsiyasiz usul, qurilmalardan birida ekran yoki klaviatura bo'lmaganda qo'llaniladi. Shifrlash kalitlari ikkinchi qurilmaning haqiqiyligi tekshirilmasdan uzatiladi — harorat, puls). Just Works MITM hujumlariga moyil, shuning uchun faqat ma'lumotlarning buzilishi xavf tug'dirmaydigan qurilmalarda qo'llaniladi.

Numeric Comparison

Numeric Comparison — ikkala qurilma olti xonali raqamni ko'rsatadigan va foydalanuvchi moslikni tasdiqlashi kerak bo'lgan autentifikatsiya usuli. Bu usul MITM hujumlaridan himoya qiladi va ekranli qurilmalar — aqlli soatlar, fitnes trekerlar, masofadan boshqarish pultlari uchun tavsiya etiladi. Tasdiqlashdan so'ng bonding maksimal ishonch darajasi bilan saqlanadi.

Passkey Entry

Passkey Entry qurilmalardan birida olti xonali PIN kodini kiritishni talab qiladi. Odatda kod bir qurilma tomonidan yaratiladi va unda ko'rsatiladi, foydalanuvchi esa uni ikkinchi qurilmada kiritadi. Usul tibbiy qurilmalar va IoT qulflari uchun qo'llaniladi, bu erda yuqori xavfsizlik talab qilinadi, lekin qurilmalardan birida Numeric Comparison uchun ekran yo'q.

iOS va Android da bonded qurilmalarni boshqarish

Bondingni boshqarish — bu saqlangan juftlashgan qurilma kalitlarini ko'rish, o'chirish va ularga xizmat ko'rsatish jarayonidir. Mobil dasturlashda bonded qurilmalarning holatlarini to'g'ri boshqarish muhim, ayniqsa periferik qurilmaning sozlamalari qayta tiklanganda yoki uning dasturiy ta'minoti almashtirilganda. Peripheral da bonding kalitlari o'zgartirilganda, Central da eski kalitlarni o'chirish va qayta juftlashni amalga oshirish kerak.

iOS da boshqarish

iOS Core Bluetooth tizim steki orqali bonded qurilmalarni avtomatik boshqaradi. Dasturchining alohida bonded qurilmalarni ko'rish yoki o'chirish uchun to'g'ridan-to'g'ri API si yo'q — boshqarish tizim sozlamalari orqali amalga oshiriladi (Settings > Bluetooth > qurilma > Forget). Agar bondingni dasturiy tozalash kerak bo'lsa, ilova foydalanuvchini UIApplication.openSettingsURLString yordamida Bluetooth tizim sozlamalariga yo'naltirishi mumkin.

Android da boshqarish

Android BluetoothAdapter klassi orqali bonded qurilmalar bilan ishlash uchun to'g'ridan-to'g'ri API ni taqdim etadi. getBondedDevices() metodi barcha juftlashgan qurilmalarning Set<BluetoothDevice> ini qaytaradi. Bondingni o'chirish uchun removeBond() metodi refleksiya yoki Android 12+ rasmiy BluetoothDevice.removeBond() API si orqali qo'llaniladi.

kotlin
val adapter = BluetoothAdapter.getDefaultAdapter()
val bondedDevices: Set<BluetoothDevice> = adapter.getBondedDevices()
bondedDevices.forEach { device ->
    Log.d("Bonding", "Bonded device: ${device.name}, ${device.address}")
}

Bondingni amalda qo'llash misoli

Bondingni amalga oshirish Android tomonda BluetoothDevice.ACTION_BOND_STATE_CHANGED hodisalari uchun BroadcastReceiver ni to'g'ri qayta ishlashni talab qiladi. Qurilmaga birinchi ulanishda Android tizimi avtomatik ravishda bondingni boshlaydi, agar qurilma bu imkoniyatni qo'llab-quvvatlasa. Dasturchi uchta holatni boshqarishi kerak: BOND_NONE (juftlanmagan), BOND_BONDING (juftlash jarayoni), BOND_BONDED (juftlangan).

kotlin
val bondReceiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        val device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)
        val bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, -1)
        when (bondState) {
            BluetoothDevice.BOND_BONDED -> Log.d("Bonding", "Bonded: ${device.name}")
            BluetoothDevice.BOND_NONE -> Log.d("Bonding", "Bond o'chirildi")
        }
    }
}

Android da Bondingni boshlash

Android da bondingni boshlash uchun BluetoothDevice obyektida createBond() metodini chaqirish kerak. Metod boolean qiymatini qaytaradi — true, agar juftlash jarayoni muvaffaqiyatli boshlangan bo'lsa. Android 12 dan boshlab, createBond() BLUETOOTH_CONNECT ruxsatini talab qiladi va agar ilova Bluetooth ga fon kirishiga ega bo'lmasa, tizim tomonidan rad etilishi mumkin.

kotlin
fun initiateBonding(device: BluetoothDevice) {
    if (device.bondState == BluetoothDevice.BOND_NONE) {
        val success = device.createBond()
        if (success) {
            Toast.makeText(context, "Bonding boshlandi", Toast.LENGTH_SHORT)
        }
    }
}

Bonding bilan ishlashda odatiy xatolar

Mobil ilova dasturchilari ko'pincha BLE qurilmalarining bondingi bilan ishlashda odatiy xatolarga duch kelishadi. Bonding holatlarini noto'g'ri qayta ishlash ulanishdagi nosozliklarga, qayta juftlashning imkonsizligiga yoki ma'lumotlarning yo'qolishiga olib kelishi mumkin. Eng keng tarqalgan muammolar va ularning echimlarini ko'rib chiqamiz.

Peripheral dasturiy ta'minotini qayta tiklash va eskirgan bonding

BLE qurilmasining dasturiy ta'minoti yangilanganidan so'ng uning bonding kalitlari qayta tiklanishi mumkin, ammo smartfon eskirgan kalitlarni (stale bonding) saqlashda davom etadi. Ulanishga urinishda Central eski LTK bilan seansni tiklashga harakat qiladi, Peripheral kalitni rad etadi va ulanish o'rnatilmaydi. Yechim — smartfonda Settings > Bluetooth > Forget Device orqali bondingni o'chiring va qayta juftlashni amalga oshiring.

Bonded qurilmalar sonining chegarasi

BLE chiplari saqlangan bonding yozuvlari sonida cheklovga ega. Mashhur Nordic nRF5x chiplari uchun chegara konfiguratsiyaga qarab 8–20 yozuvni tashkil qiladi. Chegara oshib ketganda, qurilma yangi juftlashlarni qabul qilishni to'xtatadi. Yechim — foydalanilmayotgan bonding yozuvlarini o'chiring yoki ustuvor tozalash bilan kalitlar bog'lamidan foydalaning.

Privacy Feature bilan bog'liq muammolar

Privacy Feature (tasodifiy MAC manzillari) ishlatilganda, qurilma vaqti-vaqti bilan o'z manzilini o'zgartiradi. Agar Central IRK ni saqlamagan bo'lsa, u yangi tasodifiy manzilni taniqli qurilma bilan bog'lay olmaydi. Yechim — IRK ni saqlashni to'g'ri amalga oshiring va uni har bir qurilmani aniqlashda RPA ni hal qilish uchun ishlating.

Tez-tez beriladigan savollar

BLE da Bonding nima?

Bonding Bluetooth Low Energy da — pairing seansi tugaganidan keyin shifrlash kalitlarini (LTK, IRK, CSRK) saqlash jarayoni bo'lib, keyingi ulanishlarda PINni qayta kiritmasdan yoki tasdiqlamasdan himoyalangan ulanishni avtomatik tiklash uchun.

Bonding Pairingdan qanday farq qiladi?

Pairing — joriy seans uchun kalitlarni vaqtinchalik kelishish, ular ulanish uzilganda o'chiriladi. Bonding to'liq pairing jarayonini o'z ichiga oladi va qo'shimcha ravishda kalitlarni kelajakdagi ulanishlar uchun saqlaydi. Bonding avtomatik ulanadigan qurilmalar — naushniklar, soatlar, fitnes trekerlar uchun talab qilinadi.

iPhone da Bondingni qanday o'chirish mumkin?

iPhone da bondingni o'chirish tizim sozlamalari orqali amalga oshiriladi: Settings > Bluetooth > qurilma yonidagi ma'lumot (i) belgisini bosing > Forget This Device ni tanlang. Shundan so'ng shifrlash kalitlari o'chiriladi va keyingi ulanishda qayta juftlash talab qilinadi.

Bondingda nechta qurilma bo'lishi mumkin?

Son BLE chipining o'chmaydigan xotira hajmiga bog'liq. Smartfonlar yuzlab yozuvlarni saqlashi mumkin, arzon BLE periferik qurilmalari esa 8–20 yozuv bilan cheklangan. Chegara oshib ketganda, eski yozuvlar ustiga yoziladi yoki qurilma yangi juftlashlarni qabul qilishni to'xtatadi.

Stale bonding nima?

Stale bonding — bir qurilmada (odatda Peripheral) shifrlash kalitlari qayta tiklangan (masalan, dasturiy ta'minot yangilanishi paytida), ammo Central da eski kalitlar qolgan holatdir. Natijada, foydalanuvchi Bluetooth sozlamalari orqali eskirgan bondingni o'chirib, qayta juftlashni amalga oshirmaguncha ulanish o'rnatilmaydi.

Xulosa

  • Bonding — BLE ning asosiy mexanizmi, PINni qayta kiritmasdan shifrlangan ulanishlarni avtomatik tiklash uchun.
  • Pairing va bonding kalitlarni saqlash bilan farqlanadi: pairingda kalitlar bir seans yashaydi, bondingda doimiy saqlanadi.
  • Bonding jarayoni uch turdagi kalitlarni almashish va saqlashni o'z ichiga oladi: LTK (shifrlash), IRK (identifikatsiya), CSRK (imzo).
  • Numeric Comparison autentifikatsiya usuli MITM hujumlaridan himoya qiladi va ekranli qurilmalar uchun tavsiya etiladi.
  • iOS bondingni Core Bluetooth orqali avtomatik boshqaradi, Android API createBond() va removeBond() ni taqdim etadi.
  • Peripheral dasturiy ta'minoti yangilanishidan keyin eskirgan bonding — qurilmani Bluetooth ro'yxatidan o'chirish bilan hal qilinadigan keng tarqalgan muammo.
  • Periferik BLE chipidagi bonded qurilmalar soni modelga qarab 8–20 yozuv bilan cheklangan.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing