Bonding: bu nədir, BLE cütləşdirmə prosesi və təhlükəsizliyi

Müəllif: IT Sectr Dərc olunub: 2026-07-16 Oxuma vaxtı: 10 dəq

Bonding (cütləşdirmə) Bluetooth Low Energy-də iki cihaz arasında kriptoqrafik açarların qeyri-uçucu yaddaşda saxlanması ilə daimi qorunan əlaqə yaratma prosesidir. Bondingdən sonra cihazlar istifadəçinin yenidən PIN daxil etməsi və ya təsdiqləməsi olmadan avtomatik olaraq şifrələnmiş əlaqəni bərpa edə bilər. Bluetooth SIG Core Specification v5.4 (2025)-ə görə, bonding mexanizmi avtomatik yenidən qoşulma tələb edən cihazlar üçün məcburidir — qulaqlıqlar, fitnes trekerlər, tibbi sensorlar və IoT aksesuarları.

Əsas məqamlar

  • Bonding — seans bitdikdən sonra BLE cihazları arasında şifrələmə açarlarının uzunmüddətli saxlanmasıdır.
  • Pairingdən fərqli olaraq, bonding təkrarlanan təsdiqləmə olmadan şifrələnmiş əlaqəni avtomatik bərpa etməyə imkan verir.
  • Bonding prosesi açar mübadiləsi LTK, IRK, CSRK və onların hər iki cihazın yaddaşında saxlanmasını əhatə edir.
  • iOS bonded cihazları Settings > Bluetooth vasitəsilə idarə edir, saxlanılmış açarları silmək mümkündür.
  • Android üçün bonding idarəsi BluetoothAdapter və getBondedDevices() API vasitəsilə həyata keçirilir.

BLE-də Bonding nədir?

Bonding — Bluetooth Low Energy-də pairing prosesinin genişləndirilməsidir, burada cihazlar sonrakı qoşulmalar üçün şifrələmə açarlarını saxlayır. BLE standartı üç təhlükəsizlik rejimi müəyyən edir: Security Mode 1 (autentifikasiyasız şifrələmə), Security Mode 2 (şifrələmədən məlumat imzası) və Security Mode 3 (autentifikasiya ilə şifrələmə). Bonding şifrələmə rejimləri üçün aktualdır, burada açarların təkrarlanan razılaşdırılması olmadan çoxsaylı qoşulma tələb olunur.

Bonding nəyə lazımdır

Bondingin əsas məqsədi cihazların yenidən qoşulması zamanı şifrələnmiş əlaqənin avtomatik bərpasıdır. İstifadəçi qulaqlıqları qutusundan çıxarıb taxdıqda, bonding Bluetooth menyusunda cihazı yenidən seçmədən smartfona dərhal qoşulmağı təmin edir. Apple Bluetooth Design Guidelines (2025)-yə görə, bonded cihazlar aşkarlanma anından etibarən 2 saniyədən çox olmayan müddətdə qoşulmalıdır.

Bonding zamanı hansı məlumatlar saxlanılır

Bonding zamanı hər bir cihaz kriptoqrafik materiallar dəsti saxlayır: Əlaqə şifrƏlƏmƏsi üçün Long Term Key (LTK), təsadüfi ünvanları həll etmək üçün Identity Resolving Key (IRK), məlumat imzalarını yoxlamaq üçün Connection Signature Resolving Key (CSRK). LTK — 128 bit uzunluğunda əsas açar, pairing prosesi zamanı yaradılır və bütün sonrakı şifrələnmiş seanslar üçün istifadə olunur.

AçarUzunluqTəyinat
LTK128 bitYenidən qoşulmadan sonra məlumatların şifrələnməsi
IRK128 bitTəsadüfi şəxsi ünvanların (RPA) həll edilməsi
CSRK128 bitMəlumatların imzalanması və autentikliyinin yoxlanması

Bonding vs Pairing: fərq nədir

Pairing — cari əlaqə seansının şifrələnməsi üçün açarların müvəqqəti razılaşdırılmasıdır. Əlaqə bitdikdə, şifrələmə açarları silinir və növbəti qoşulmada yenidən pairing prosesi tələb olunur. Bonding pairingin bütün mərhələlərini əhatə edir, lakin əlavə olaraq açarları sonrakı seanslar üçün saxlayır. Praktiki olaraq bütün istehlak Bluetooth cihazları (qulaqlıqlar, sütunlar, saatlar) bondingdən istifadə edir, çünki onsuz hər qoşulma yenidən PIN daxil edilməsini tələb edərdi.

Pairing və Bondingin üç mərhələsi

BLE spesifikasiyasına görə pairing prosesi üç mərhələdən ibarətdir. Mərhələ 1 — cihaz imkanlarının mübadiləsi (IO capabilities, autentifikasiya dəstəyi). Mərhələ 2 — Short Term Key (STK) və ya LTK-nın yaradılması və mübadiləsi, qoşulma metodundan asılı olaraq. Mərhələ 3 — açar nəqli: LTK, IRK, CSRK-nın cihazlar arasında mübadiləsi. Əgər cihazlar Mərhələ 3-dən sonra açarları saxladısa — bu bondingdir. Yoxdursa — sadəcə pairing.

ParametrPairingBonding
Açarların saxlanmasıSaxlanılmırNVRAM-da saxlanılır
Avtomatik qoşulmaXeyrBəli
Yenidən PIN daxil etməTələb olunurTələb olunmur
İstifadəEpizodik qoşulmalarDaimi cihazlar

Bonding prosesi necə işləyir

Bonding prosesi pairing uğurla başa çatdıqdan sonra başladılır, cihazlardan biri açarların saxlanması üçün sorğu göndərdikdə. BLE-də Central (adətən smartfon) və Peripheral (geyilən cihaz) Mərhələ 2-də qurulmuş qorunan kanal vasitəsilə açarları mübadilə edir. Uğurlu açar mübadiləsindən sonra hər bir cihaz onları qeyri-uçucu yaddaşda ortağın MAC ünvanı və ya Identity Address ilə birlikdə saxlayır.

Central tərəfində açarların saxlanması

Central (iOS/Android) tərəfində açarlar Bluetooth sistem anbarında saxlanılır. iOS avtomatik bonding idarəsi ilə Core Bluetooth sistem stackindən istifadə edir: ilk qoşulmada açarlar cihazın NVRAM-ında saxlanılır və eyni Peripheral-ə sonrakı qoşulmalar avtomatik olur. Tərtibatçı açarları birbaşa idarə etmir — Core Bluetooth sistem stacki açarların saxlanmasını dəstəkləyən cihaza qoşularkən bondingi avtomatik idarə edir.

Bonding vasitəsilə əlaqənin bərpası

Yenidən qoşulma zamanı Peripheral ya öz ümumi ünvanını, ya da Resolvable Private Address (RPA) ehtiva edən reklam paketləri göndərir. Central paketi qəbul edir, ünvanı saxlanılmış bonded cihazlarla müqayisə edir və uyğunluq taparsa, saxlanılmış LTK ilə seansın bərpasını başladır. LTK uyğun gəlɐrsə — şifrələnmiş əlaqə yenidən pairing olmadan qurulur.

Bondingdə autentifikasiya metodları

BLE spesifikasiyası bondingin təhlükəsizlik səviyyəsinə təsir edən bir neçə autentifikasiya metodu müəyyən edir. Metodun seçimi cihazların IO imkanlarından asılıdır — ekranın, klaviaturanın olması, rəqəmsal müqayisəni təsdiqləmə imkanı. Təhlükəsiz bonding kritik olmayan tətbiqlər üçün Just Works, Man-in-the-Middle hücumlarından qorunma tələb edən tapşırıqlar üçün Numeric Comparison və ya Passkey Entry metodunun istifadəsini tələb edir.

Just Works

Just Works — autentifikasiyasız metod, cihazlardan birinin ekranı və ya klaviaturası olmadıqda istifadə olunur. Şifrələmə açarları ikinci cihazın həqiqiliyi yoxlanılmadan ötürülür — temperatur, nəbz ölçən). Just Works MITM hücumlarına məruz qalır, buna görə yalnız məlumat kompromatının təhlükə yaratmadığı cihazlarda tətbiq olunur.

Numeric Comparison

Numeric Comparison — hər iki cihazın altırəqəmli rəqəm göstərdiyi və istifadəçinin uyğunluğu təsdiqləməli olduğu autentifikasiya metodudur. Bu metod MITM hücumlarından qorunma təmin edir və ekranlı cihazlar üçün tövsiyə olunur — ağıllı saatlar, fitnes trekerlər, uzaqdan idarə panelləri. Təsdiqləmədən sonra bonding maksimum etibar səviyyəsi ilə saxlanılır.

Passkey Entry

Passkey Entry cihazlardan birində altı rəqəmli PIN daxil edilməsini tələb edir. Adətən kod bir cihaz tərəfindən yaradılır və göstərilir, istifadəçi isə onu ikinci cihazda daxil edir. Metod tibbi cihazlar və IoT qıfılları üçün tətbiq olunur, burada yüksək təhlükəsizlik tələb olunur, lakin cihazlardan birinin Numeric Comparison üçün ekranı yoxdur.

iOS və Android-də bonded cihazların idarə edilməsi

Bonding idarəsi — bu, saxlanılmış cütləşmiş cihaz açarlarına baxmaq, silmək və onları saxlamaq prosesidir. Mobil proqramlaşdırmada bonded cihazların vəziyyətlərini düzgün idarə etmək vacibdir, xüsusilə periferik cihazın parametrləri sıfırlandıqda və ya proqram təminatı dəyişdirildikdə. Peripheral-də bonding açarları dəyişdirildikdə, Central-da köhnə açarları silmək və yenidən cütləşdirmə aparmaq lazımdır.

iOS-da idarə etmə

iOS sistem Core Bluetooth stacki vasitəsilə bonded cihazları avtomatik idarə edir. Tərtibatçının ayrı-ayrı bonded cihazlara baxmaq və ya silmək üçün birbaşa API-si yoxdur — idarə sistem parametrləri vasitəsilə həyata keçirilir (Settings > Bluetooth > cihaz > Forget). Bondingi proqram təminatı ilə təmizləmək lazımdırsa, tətbiq UIApplication.openSettingsURLString istifadə edərək istifadəçini Bluetooth sistem parametrlərinə yönləndirə bilər.

Android-də idarə etmə

Android BluetoothAdapter sinfi vasitəsilə bonded cihazlarla işləmək üçün birbaşa API təqdim edir. getBondedDevices() metodu bütün cütləşmiş cihazların Set<BluetoothDevice> qaytarır. Bondingi silmək üçün removeBond() metodu refleksiya və ya Android 12+ rəsmi BluetoothDevice.removeBond() API vasitəsilə istifadə olunur.

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

Bonding tətbiqinin praktiki nümunəsi

Bonding tətbiqi Android tərəfində BluetoothDevice.ACTION_BOND_STATE_CHANGED hadisələri üçün BroadcastReceiver-in düzgün işlənməsini tələb edir. Cihaza ilk qoşulmada Android sistemi avtomatik olaraq bondingi başladır, əgər cihaz bu imkanı dəstəkləyirsə. Tərtibatçı üç vəziyyəti idarə etməlidir: BOND_NONE (cütləşməyib), BOND_BONDING (cütləşdirmə prosesi), BOND_BONDED (cütləşdirilib).

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 silindi")
        }
    }
}

Android-də Bondingin başladılması

Android-də bondingi başlatmaq üçün BluetoothDevice obyektində createBond() metodunu çağırmaq lazımdır. Metod boolean qaytarır — true, əgər cütləşdirmə prosesi uğurla başladılıbsa. Android 12-dən başlayaraq, createBond() BLUETOOTH_CONNECT icazəsi tələb edir və sistem tərəfindən rədd edilə bilər, əgər tətbiqin Bluetooth-a fon girişi yoxdursa.

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

Bonding ilə işlərkən tipik səhvlər

Mobil tətbiq tərtibatçıları tez-tez BLE cihazlarının bondingi ilə işlərkən tipik səhvlərlə üzləşirlər. Bonding vəziyyətlərinin düzgün işlənməməsi qoşulma uğursuzluqlarına, yenidən cütləşdirmənin mümkünsüzlüyünə və ya məlumat itkisinə səbəb ola bilər. Ən tez-tez rast gəlinən problemləri və onların həllini nəzərdən keçirək.

Peripheral proqram təminatının sıfırlanması və köhnəlmiş bonding

BLE cihazının proqram təminatı yeniləndikdən sonra onun bonding açarları sıfırlana bilər, lakin smartfon köhnəlmiş açarları (stale bonding) saxlamağa davam edir. Qoşulma cəhdi zamanı Central köhnə LTK ilə seansı bərpa etməyə çalışır, Peripheral açarı rədd edir və əlaqə qurulmur. Həll — smartfonda Settings > Bluetooth > Cihazı unut vasitəsilə bondingi silin və yenidən cütləşdirmə aparın.

Bonded cihazların sayının limiti

BLE çipləri saxlanılan bonding qeydlərinin sayına məhdudiyyət qoyur. Məşhur Nordic nRF5x çipləri üçün limit konfiqurasiyadan asılı olaraq 8–20 qeyddir. Limit aşıldıqda cihaz yeni cütləşdirmələri qəbul etməyi dayandırır. Həll — istifadə olunmayan bonding qeydlərini silin və ya prioritet təmizləmə ilə açar bağlamasından istifadə edin.

Privacy Feature ilə bağlı problemlər

Privacy Feature (təsadüfi MAC ünvanları) istifadə edildikdə cihaz vaxtaşırı ünvanını dəyişir. Əgər Central IRK saxlamayıbsa, o, yeni təsadüfi ünvanı tanınmış cihazla əlaqələndirə bilməz. Həll — IRK saxlamağı düzgün tətbiq edin və hər cihaz aşkarlanmasında RPA-nı həll etmək üçün istifadə edin.

Tez-tez verilən suallar

BLE-də Bonding nədir?

Bonding Bluetooth Low Energy-də — pairing seansı bitdikdən sonra şifrələmə açarlarının (LTK, IRK, CSRK) saxlanması prosesidir ki, sonrakı qoşulmalarda yenidən PIN daxil etmədən və ya təsdiqləmədən qorunan əlaqə avtomatik bərpa olunsun.

Bonding Pairingdən nə ilə fərqlənir?

Pairing — cari seans üçün açarların müvəqqəti razılaşdırılmasıdır, əlaqə qopduqda açarlar silinir. Bonding tam pairing prosesini əhatə edir və əlavə olaraq açarları gələcək qoşulmalar üçün saxlayır. Bonding avtomatik qoşulan cihazlar üçün tələb olunur — qulaqlıqlar, saatlar, fitnes trekerlər.

iPhone-da Bondingi necə silmək olar?

iPhoneda bondingin silinməsi sistem parametrləri vasitəsilə həyata keçirilir: Settings > Bluetooth > cihazın yanındakı məlumat (i) işarəsini basın > Forget This Device seçin. Bundan sonra şifrələmə açarları silinir və növbəti qoşulmada yenidən cütləşdirmə tələb olunacaq.

Bondingdə neçə cihaz ola bilər?

Say BLE çipinin qeyri-uçucu yaddaşının həcmindən asğılıdır. Smartfonlar yüzlərlə qeyd saxlaya bilər, ucuz BLE periferik cihazları isə 8–20 qeydlə məhdudlaşır. Limit aşıldıqda köhnə qeydlər üzərinə yazılır və ya cihaz yeni cütləşdirmələri qəbul etməyi dayandırır.

Stale bonding nədir?

Stale bonding — bir cihazda (adətən Peripheral) şifrələmə açarlarının sıfırlandığı (məsələn, proqram yenilənməsi zamanı), Central-da isə köhnə açarların qaldığı vəziyyətdir. Nəticədə istifadəçi Bluetooth parametrləri vasitəsilə köhnəlmiş bondingi silib yenidən cütləşdirmə aparana kimi əlaqə qurulmur.

Nəticə

  • Bonding — BLE-nin əsas mexanizmidir, yenidən PIN daxil etmədən şifrələnmiş əlaqələrin avtomatik bərpası üçün.
  • Pairing və bonding açarların saxlanması ilə fərqlənir: pairingdə açarlar bir seans yaşayır, bondingdə isə daimi saxlanılır.
  • Bonding prosesi üç növ açarın mübadiləsi və saxlanmasını əhatə edir: LTK (şifrələmə), IRK (identifikasiya), CSRK (imza).
  • Numeric Comparison autentifikasiya metodu MITM hücumlarından qorunma təmin edir və ekranlı cihazlar üçün tövsiyə olunur.
  • iOS Core Bluetooth vasitəsilə bondingi avtomatik idarə edir, Android API createBond() və removeBond() təqdim edir.
  • Peripheral proqram təminatı yenilənməsindən sonra köhnəlmiş bonding — cihazı Bluetooth siyahısından silməklə həll olunan tez-tez rast gəlinən problemdir.
  • Periferik BLE çipində bonded cihazların sayı modeldən asılı olaraq 8–20 qeydlə məhdudlaşır.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun