Bonding: यह क्या है, BLE पेयरिंग की प्रक्रिया और सुरक्षा

लेखक: IT Sectr प्रकाशित: 2026-07-16 पढ़ने का समय: 10 मिनट

Bonding (पेयरिंग) Bluetooth Low Energy में दो उपकरणों के बीच क्रिप्टोग्राफ़िक कुंजियों को नॉन-वोलाटाइल मेमोरी में संग्रहीत करके एक स्थायी सुरक्षित कनेक्शन बनाने की प्रक्रिया है। बॉन्डिंग के बाद, उपकरण PIN पुनः प्रविष्टि या उपयोगकर्ता पुष्टि के बिना पुनः कनेक्ट होने पर स्वचालित रूप से एन्क्रिप्टेड कनेक्शन को पुनर्स्थापित कर सकते हैं। Bluetooth SIG Core Specification v5.4 (2025) के अनुसार, बॉन्डिंग तंत्र उन उपकरणों के लिए अनिवार्य है जिन्हें स्वचालित पुनः कनेक्शन की आवश्यकता होती है — हेडफ़ोन, फ़िटनेस ट्रैकर, चिकित्सा सेंसर और IoT एक्सेसरीज़।

मुख्य बिंदु

  • Bonding सत्र समाप्त होने के बाद BLE उपकरणों के बीच एन्क्रिप्शन कुंजियों का दीर्घकालिक भंडारण है।
  • Pairing के विपरीत, बॉन्डिंग बार-बार पुष्टि के बिना एन्क्रिप्टेड कनेक्शन को स्वचालित रूप से पुनर्स्थापित करने की अनुमति देती है।
  • बॉन्डिंग प्रक्रिया में LTK, IRK, CSRK का कुंजी आदान-प्रदान और दोनों उपकरणों की मेमोरी में उनका भंडारण शामिल है।
  • iOS संग्रहीत कुंजियों को हटाने की क्षमता के साथ Settings > Bluetooth के माध्यम से बॉन्डेड डिवाइसों का प्रबंधन करता है।
  • Android में, बॉन्डिंग प्रबंधन BluetoothAdapter और getBondedDevices() API के माध्यम से किया जाता है।

BLE में Bonding क्या है?

Bonding Bluetooth Low Energy में पेयरिंग प्रक्रिया का एक विस्तार है, जहाँ उपकरण बाद के कनेक्शनों के लिए एन्क्रिप्शन कुंजियाँ संग्रहीत करते हैं। BLE मानक तीन सुरक्षा मोड परिभाषित करता है: Security Mode 1 (प्रमाणीकरण के बिना एन्क्रिप्शन), Security Mode 2 (एन्क्रिप्शन के बिना डेटा हस्ताक्षर) और Security Mode 3 (प्रमाणीकरण के साथ एन्क्रिप्शन)। बॉन्डिंग एन्क्रिप्शन वाले मोड के लिए प्रासंगिक है जहाँ कुंजी पुनर्निर्माण के बिना बार-बार कनेक्शन की आवश्यकता होती है।

Bonding की आवश्यकता क्यों है

बॉन्डिंग का मुख्य उद्देश्य उपकरणों के पुनः कनेक्ट होने पर एन्क्रिप्टेड कनेक्शनों का स्वचालित पुनर्स्थापन है। जब उपयोगकर्ता अपने केस से ईयरबड्स निकालता है और पहनता है, तो बॉन्डिंग Bluetooth मेनू से डिवाइस को फिर से चुने बिना स्मार्टफ़ोन से तत्काल कनेक्शन सुनिश्चित करती है। Apple Bluetooth Design Guidelines (2025) के अनुसार, बॉन्डेड डिवाइसों को खोज के 2 सेकंड से अधिक समय में कनेक्ट होना चाहिए।

Bonding के दौरान कौन सा डेटा संग्रहीत किया जाता है

बॉन्डिंग के दौरान, प्रत्येक उपकरण क्रिप्टोग्राफ़िक सामग्री का एक सेट संग्रहीत करता है: कनेक्शन एन्क्रिप्शन के लिए Long Term Key (LTK), यादृच्छिक पतों को हल करने के लिए Identity Resolving Key (IRK) और डेटा हस्ताक्षर सत्यापित करने के लिए Connection Signature Resolving Key (CSRK)। LTK 128-बिट की प्राथमिक कुंजी है जो पेयरिंग के दौरान उत्पन्न होती है और सभी बाद के एन्क्रिप्टेड सत्रों के लिए उपयोग की जाती है।

कुंजीलंबाईउद्देश्य
LTK128 बिटपुनः कनेक्शन के बाद डेटा एन्क्रिप्शन
IRK128 बिटयादृच्छिक निजी पतों (RPA) का समाधान
CSRK128 बिटडेटा हस्ताक्षर और प्रमाणीकरण सत्यापन

Bonding बनाम Pairing: क्या अंतर है

Pairing वर्तमान संचार सत्र को एन्क्रिप्ट करने के लिए कुंजियों की अस्थायी बातचीत है। जब कनेक्शन समाप्त होता है, तो एन्क्रिप्शन कुंजियाँ हटा दी जाती हैं, और अगले कनेक्शन के लिए फिर से पूर्ण पेयरिंग प्रक्रिया की आवश्यकता होती है। Bonding में सभी पेयरिंग चरण शामिल हैं लेकिन भविष्य के सत्रों के लिए अतिरिक्त रूप से कुंजियाँ संग्रहीत करता है। लगभग सभी उपभोक्ता Bluetooth उपकरण (हेडफ़ोन, स्पीकर, घड़ियाँ) बॉन्डिंग का उपयोग करते हैं क्योंकि इसके बिना, प्रत्येक कनेक्शन के लिए PIN पुनः प्रविष्टि की आवश्यकता होगी।

Pairing और Bonding के तीन चरण

BLE विनिर्देश के अनुसार पेयरिंग प्रक्रिया में तीन चरण होते हैं। चरण 1 — उपकरण क्षमताओं का आदान-प्रदान (IO क्षमताएँ, प्रमाणीकरण समर्थन)। चरण 2 — पेयरिंग विधि के अनुसार Short Term Key (STK) या LTK का उत्पादन और आदान-प्रदान। चरण 3 — कुंजी परिवहन: उपकरणों के बीच LTK, IRK, CSRK का आदान-प्रदान। यदि उपकरणों ने चरण 3 के बाद कुंजियाँ संग्रहीत कीं — यह बॉन्डिंग है। यदि नहीं — यह केवल पेयरिंग है।

पैरामीटरPairingBonding
कुंजी भंडारणसंग्रहीत नहींNVRAM में संग्रहीत
स्वचालित पुनः कनेक्शननहींहाँ
PIN पुनः प्रविष्टिआवश्यकआवश्यक नहीं
उपयोगसामयिक कनेक्शनस्थायी उपकरण

Bonding प्रक्रिया कैसे काम करती है

बॉन्डिंग प्रक्रिया सफल पेयरिंग पूरा होने के बाद शुरू होती है, जब एक उपकरण कुंजियाँ संग्रहीत करने का अनुरोध भेजता है। BLE में, Central (आमतौर पर स्मार्टफ़ोन) और Peripheral (पहनने योग्य उपकरण) चरण 2 में स्थापित सुरक्षित चैनल के माध्यम से कुंजियों का आदान-प्रदान करते हैं। सफल कुंजी आदान-प्रदान के बाद, प्रत्येक उपकरण उन्हें साथी के MAC पते या Identity Address के साथ नॉन-वोलाटाइल मेमोरी में संग्रहीत करता है।

Central पक्ष पर कुंजी भंडारण

Central पक्ष (iOS/Android) पर, कुंजियाँ सिस्टम Bluetooth भंडारण में संग्रहीत होती हैं। iOS स्वचालित बॉन्डिंग प्रबंधन के साथ Core Bluetooth सिस्टम स्टैक का उपयोग करता है: पहली पेयरिंग पर, कुंजियाँ डिवाइस की NVRAM में सहेजी जाती हैं, और उसी Peripheral से बाद के कनेक्शन स्वचालित रूप से होते हैं। डेवलपर सीधे कुंजियों का प्रबंधन नहीं करता — Core Bluetooth सिस्टम स्टैक कुंजी भंडारण का समर्थन करने वाले डिवाइस से कनेक्ट होने पर स्वचालित रूप से बॉन्डिंग को संभालता है।

Bonding के माध्यम से कनेक्शन पुनर्स्थापन

पुनः कनेक्शन पर, Peripheral अपने सार्वजनिक पते या Resolvable Private Address (RPA) वाले विज्ञापन पैकेट भेजता है। Central पैकेट प्राप्त करता है, पते को संग्रहीत बॉन्डेड डिवाइसों से मिलाता है, और यदि मिलान मिलता है, तो संग्रहीत LTK का उपयोग करके सत्र पुनर्स्थापन शुरू करता है। यदि LTK मेल खाता है, तो एन्क्रिप्टेड कनेक्शन पुनः पेयरिंग के बिना स्थापित हो जाता है।

Bonding में प्रमाणीकरण विधियाँ

BLE विनिर्देश कई प्रमाणीकरण विधियाँ परिभाषित करता है जो बॉन्डिंग के सुरक्षा स्तर को प्रभावित करती हैं। विधि का चुनाव उपकरणों की IO क्षमताओं पर निर्भर करता है — क्या उनके पास डिस्प्ले, कीबोर्ड या संख्यात्मक तुलना की पुष्टि करने की क्षमता है। सुरक्षित बॉन्डिंग के लिए गैर-महत्वपूर्ण अनुप्रयोगों के लिए कम से कम Just Works और Man-in-the-Middle हमलों से सुरक्षा की आवश्यकता वाले कार्यों के लिए Numeric Comparison या Passkey Entry का उपयोग करना आवश्यक है।

Just Works

Just Works एक प्रमाणीकरण-मुक्त विधि है जिसका उपयोग तब किया जाता है जब किसी एक उपकरण में डिस्प्ले या कीबोर्ड न हो। एन्क्रिप्शन कुंजियाँ दूसरे उपकरण की पहचान सत्यापित किए बिना प्रेषित की जाती हैं — तापमान सेंसर, हृदय गति मॉनिटर। Just Works MITM हमलों के लिए संवेदनशील है, इसलिए इसका उपयोग केवल उन उपकरणों के लिए किया जाता है जहाँ डेटा समझौता कोई खतरा पैदा नहीं करता।

Numeric Comparison

Numeric Comparison एक प्रमाणीकरण विधि है जहाँ दोनों उपकरण छह अंकों की संख्या प्रदर्शित करते हैं, और उपयोगकर्ता को मिलान की पुष्टि करनी होती है। यह विधि MITM हमलों के खिलाफ सुरक्षा प्रदान करती है और डिस्प्ले वाले उपकरणों — स्मार्ट घड़ियों, फ़िटनेस ट्रैकर, रिमोट कंट्रोल के लिए अनुशंसित है। पुष्टि के बाद, बॉन्डिंग अधिकतम विश्वास स्तर के साथ संग्रहीत की जाती है।

Passkey Entry

Passkey Entry के लिए एक उपकरण पर छह अंकों का PIN दर्ज करना आवश्यक होता है। आमतौर पर, कोड एक उपकरण द्वारा उत्पन्न किया जाता है और उस पर प्रदर्शित होता है, जबकि उपयोगकर्ता इसे दूसरे उपकरण पर दर्ज करता है। इस विधि का उपयोग चिकित्सा उपकरणों और IoT तालों के लिए किया जाता है जहाँ उच्च स्तर की सुरक्षा की आवश्यकता होती है लेकिन किसी एक उपकरण में Numeric Comparison के लिए डिस्प्ले नहीं होता।

iOS और Android में बॉन्डेड डिवाइसों का प्रबंधन

बॉन्डिंग प्रबंधन पेयर किए गए उपकरणों की संग्रहीत कुंजियों को देखने, हटाने और बनाए रखने की प्रक्रिया है। मोबाइल विकास में, बॉन्डेड डिवाइस स्थितियों को सही ढंग से संभालना महत्वपूर्ण है, विशेष रूप से जब किसी परिधीय उपकरण को रीसेट किया जाता है या उसका फ़र्मवेयर बदला जाता है। जब Peripheral पर बॉन्डिंग कुंजियाँ बदलती हैं, तो Central पर पुरानी कुंजियाँ हटाई जानी चाहिए और नई पेयरिंग की जानी चाहिए।

iOS में प्रबंधन

iOS सिस्टम Core Bluetooth स्टैक के माध्यम से स्वचालित रूप से बॉन्डेड डिवाइसों का प्रबंधन करता है। डेवलपर के पास व्यक्तिगत बॉन्डेड डिवाइसों को देखने या हटाने के लिए सीधा API नहीं है — प्रबंधन सिस्टम सेटिंग्स (Settings > Bluetooth > डिवाइस > Forget) के माध्यम से किया जाता है। यदि प्रोग्रामेटिक रूप से बॉन्डिंग साफ़ करना आवश्यक है, तो ऐप UIApplication.openSettingsURLString का उपयोग करके उपयोगकर्ता को सिस्टम Bluetooth सेटिंग्स पर निर्देशित कर सकता है।

Android में प्रबंधन

Android BluetoothAdapter वर्ग के माध्यम से बॉन्डेड डिवाइसों के साथ काम करने के लिए सीधा API प्रदान करता है। getBondedDevices() विधि सभी पेयर किए गए उपकरणों का Set<BluetoothDevice> लौटाती है। बॉन्डिंग हटाने के लिए, removeBond() विधि का उपयोग रिफ्लेक्शन के माध्यम से या Android 12+ पर आधिकारिक API BluetoothDevice.removeBond() के माध्यम से किया जाता है।

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

Bonding कार्यान्वयन का व्यावहारिक उदाहरण

Android पर बॉन्डिंग कार्यान्वयन के लिए BluetoothDevice.ACTION_BOND_STATE_CHANGED इवेंट के लिए BroadcastReceiver की सही हैंडलिंग आवश्यक है। किसी डिवाइस से पहले कनेक्शन पर, Android सिस्टम स्वचालित रूप से बॉन्डिंग शुरू करता है यदि डिवाइस इस क्षमता का समर्थन करता है। डेवलपर को तीन स्थितियों को संभालना चाहिए: BOND_NONE (पेयर नहीं), BOND_BONDING (पेयरिंग प्रगति पर), BOND_BONDED (पेयर किया गया)।

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", "बॉन्ड हटाया गया")
        }
    }
}

Android पर Bonding शुरू करना

Android पर बॉन्डिंग शुरू करने के लिए, BluetoothDevice ऑब्जेक्ट पर createBond() विधि को कॉल किया जाना चाहिए। विधि एक बूलियन लौटाती है — true यदि पेयरिंग प्रक्रिया सफलतापूर्वक शुरू हुई। Android 12 से शुरू होकर, createBond() को BLUETOOTH_CONNECT अनुमति की आवश्यकता है और यदि ऐप के पास पृष्ठभूमि Bluetooth पहुँच नहीं है तो सिस्टम द्वारा अस्वीकार किया जा सकता है।

kotlin
fun initiateBonding(device: BluetoothDevice) {
    if (device.bondState == BluetoothDevice.BOND_NONE) {
        val success = device.createBond()
        if (success) {
            Toast.makeText(context, "Bonding शुरू किया गया", Toast.LENGTH_SHORT)
        }
    }
}

Bonding के साथ काम करते समय सामान्य गलतियाँ

मोबाइल ऐप डेवलपर अक्सर BLE डिवाइस बॉन्डिंग के साथ काम करते समय सामान्य गलतियों का सामना करते हैं। बॉन्डिंग स्थितियों की गलत हैंडलिंग से कनेक्शन विफलता, पुनः पेयर करने में असमर्थता या डेटा हानि हो सकती है। आइए सबसे सामान्य समस्याओं और उनके समाधानों की जाँच करें।

Peripheral का फ़र्मवेयर रीसेट और stale bonding

BLE डिवाइस फ़र्मवेयर अपडेट के बाद, इसकी बॉन्डिंग कुंजियाँ रीसेट हो सकती हैं, लेकिन स्मार्टफ़ोन पुरानी कुंजियाँ (stale bonding) संग्रहीत करना जारी रखता है। कनेक्ट करने का प्रयास करते समय, Central पुराने LTK के साथ सत्र को पुनर्स्थापित करने का प्रयास करता है, Peripheral कुंजी को अस्वीकार करता है, और कनेक्शन विफल हो जाता है। समाधान Settings > Bluetooth > Forget Device के माध्यम से स्मार्टफ़ोन पर बॉन्डिंग हटाना और नई पेयरिंग करना है।

बॉन्डेड डिवाइसों की संख्या सीमा

BLE चिप्स में संग्रहीत बॉन्डिंग रिकॉर्ड की संख्या की सीमा होती है। लोकप्रिय Nordic nRF5x चिप्स के लिए, कॉन्फ़िगरेशन के अनुसार सीमा 8-20 रिकॉर्ड है। सीमा पार होने पर, डिवाइस नई पेयरिंग स्वीकार करना बंद कर देता है। समाधान अप्रयुक्त बॉन्डिंग रिकॉर्ड हटाना या सफाई के साथ प्राथमिकता-आधारित कुंजी श्रृंखला का उपयोग करना है।

Privacy Feature के साथ समस्याएँ

Privacy Feature (यादृच्छिक MAC पते) का उपयोग करते समय, डिवाइस समय-समय पर अपना पता बदलता है। यदि Central ने IRK संग्रहीत नहीं किया, तो वह नए यादृच्छिक पते को ज्ञात डिवाइस से मेल नहीं खिला सकता। समाधान IRK भंडारण को सही ढंग से लागू करना और प्रत्येक डिवाइस खोज पर RPA को हल करने के लिए इसका उपयोग करना है।

अक्सर पूछे जाने वाले प्रश्न

BLE में Bonding क्या है?

Bonding Bluetooth Low Energy में पेयरिंग सत्र समाप्त होने के बाद एन्क्रिप्शन कुंजियाँ (LTK, IRK, CSRK) संग्रहीत करने की प्रक्रिया है, ताकि PIN पुनः प्रविष्टि या पुष्टि के बिना बाद के पुनः कनेक्शनों पर स्वचालित रूप से सुरक्षित कनेक्शन पुनर्स्थापित किया जा सके।

Bonding Pairing से कैसे अलग है?

Pairing वर्तमान सत्र के लिए कुंजियों की अस्थायी बातचीत है, जो कनेक्शन टूटने पर हटा दी जाती हैं। Bonding में भविष्य के कनेक्शनों के लिए पूर्ण पेयरिंग प्रक्रिया और कुंजी भंडारण शामिल है। Bonding उन उपकरणों के लिए आवश्यक है जो स्वचालित रूप से पुनः कनेक्ट होते हैं — हेडफ़ोन, घड़ियाँ, फ़िटनेस ट्रैकर।

iPhone पर Bonding कैसे हटाएँ?

iPhone पर, बॉन्डिंग हटाना सिस्टम सेटिंग्स के माध्यम से किया जाता है: Settings > Bluetooth > डिवाइस के बगल में जानकारी आइकन (i) पर टैप करें > Forget This Device चुनें। इसके बाद, एन्क्रिप्शन कुंजियाँ हटा दी जाती हैं, और अगले कनेक्शन के लिए नई पेयरिंग की आवश्यकता होगी।

कितने डिवाइस Bonding में हो सकते हैं?

बॉन्डेड डिवाइसों की संख्या BLE चिप की नॉन-वोलाटाइल मेमोरी क्षमता पर निर्भर करती है। स्मार्टफ़ोन सैकड़ों रिकॉर्ड संग्रहीत कर सकते हैं, जबकि बजट BLE परिधीय 8-20 रिकॉर्ड तक सीमित हैं। सीमा पार होने पर, पुराने रिकॉर्ड अधिलेखित हो जाते हैं या डिवाइस नई पेयरिंग स्वीकार करना बंद कर देता है।

stale bonding क्या है?

Stale bonding एक स्थिति है जहाँ एक उपकरण (आमतौर पर Peripheral) पर एन्क्रिप्शन कुंजियाँ रीसेट कर दी गई हैं (उदाहरण के लिए, फ़र्मवेयर अपडेट के बाद), जबकि Central के पास अभी भी पुरानी कुंजियाँ हैं। परिणामस्वरूप, कनेक्शन तब तक स्थापित नहीं किया जा सकता जब तक उपयोगकर्ता Bluetooth सेटिंग्स के माध्यम से stale bonding हटाकर नई पेयरिंग नहीं करता।

सारांश

  • Bonding PIN पुनः प्रविष्टि के बिना एन्क्रिप्टेड कनेक्शन को स्वचालित रूप से पुनर्स्थापित करने के लिए एक महत्वपूर्ण BLE तंत्र है।
  • Pairing और बॉन्डिंग कुंजी भंडारण में भिन्न हैं: पेयरिंग में कुंजियाँ एक सत्र तक चलती हैं, बॉन्डिंग में वे स्थायी रूप से संग्रहीत होती हैं।
  • बॉन्डिंग प्रक्रिया में तीन प्रकार की कुंजियों का आदान-प्रदान और भंडारण शामिल है: LTK (एन्क्रिप्शन), IRK (पहचान), CSRK (हस्ताक्षर)।
  • Numeric Comparison प्रमाणीकरण विधि MITM हमलों से सुरक्षा प्रदान करती है और डिस्प्ले वाले उपकरणों के लिए अनुशंसित है।
  • iOS Core Bluetooth के माध्यम से स्वचालित रूप से बॉन्डिंग का प्रबंधन करता है, जबकि Android API createBond() और removeBond() प्रदान करता है।
  • Peripheral फ़र्मवेयर अपडेट के बाद Stale bonding एक सामान्य समस्या है जिसे Bluetooth सूची से डिवाइस हटाकर हल किया जाता है।
  • परिधीय BLE चिप पर बॉन्डेड डिवाइसों की संख्या मॉडल के अनुसार 8-20 रिकॉर्ड तक सीमित है।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें