Bonding (पेयरिंग) Bluetooth Low Energy में दो उपकरणों के बीच क्रिप्टोग्राफ़िक कुंजियों को नॉन-वोलाटाइल मेमोरी में संग्रहीत करके एक स्थायी सुरक्षित कनेक्शन बनाने की प्रक्रिया है। बॉन्डिंग के बाद, उपकरण PIN पुनः प्रविष्टि या उपयोगकर्ता पुष्टि के बिना पुनः कनेक्ट होने पर स्वचालित रूप से एन्क्रिप्टेड कनेक्शन को पुनर्स्थापित कर सकते हैं। Bluetooth SIG Core Specification v5.4 (2025) के अनुसार, बॉन्डिंग तंत्र उन उपकरणों के लिए अनिवार्य है जिन्हें स्वचालित पुनः कनेक्शन की आवश्यकता होती है — हेडफ़ोन, फ़िटनेस ट्रैकर, चिकित्सा सेंसर और IoT एक्सेसरीज़।
मुख्य बिंदु
Bonding Bluetooth Low Energy में पेयरिंग प्रक्रिया का एक विस्तार है, जहाँ उपकरण बाद के कनेक्शनों के लिए एन्क्रिप्शन कुंजियाँ संग्रहीत करते हैं। BLE मानक तीन सुरक्षा मोड परिभाषित करता है: Security Mode 1 (प्रमाणीकरण के बिना एन्क्रिप्शन), Security Mode 2 (एन्क्रिप्शन के बिना डेटा हस्ताक्षर) और Security Mode 3 (प्रमाणीकरण के साथ एन्क्रिप्शन)। बॉन्डिंग एन्क्रिप्शन वाले मोड के लिए प्रासंगिक है जहाँ कुंजी पुनर्निर्माण के बिना बार-बार कनेक्शन की आवश्यकता होती है।
बॉन्डिंग का मुख्य उद्देश्य उपकरणों के पुनः कनेक्ट होने पर एन्क्रिप्टेड कनेक्शनों का स्वचालित पुनर्स्थापन है। जब उपयोगकर्ता अपने केस से ईयरबड्स निकालता है और पहनता है, तो बॉन्डिंग Bluetooth मेनू से डिवाइस को फिर से चुने बिना स्मार्टफ़ोन से तत्काल कनेक्शन सुनिश्चित करती है। Apple Bluetooth Design Guidelines (2025) के अनुसार, बॉन्डेड डिवाइसों को खोज के 2 सेकंड से अधिक समय में कनेक्ट होना चाहिए।
बॉन्डिंग के दौरान, प्रत्येक उपकरण क्रिप्टोग्राफ़िक सामग्री का एक सेट संग्रहीत करता है: कनेक्शन एन्क्रिप्शन के लिए Long Term Key (LTK), यादृच्छिक पतों को हल करने के लिए Identity Resolving Key (IRK) और डेटा हस्ताक्षर सत्यापित करने के लिए Connection Signature Resolving Key (CSRK)। LTK 128-बिट की प्राथमिक कुंजी है जो पेयरिंग के दौरान उत्पन्न होती है और सभी बाद के एन्क्रिप्टेड सत्रों के लिए उपयोग की जाती है।
| कुंजी | लंबाई | उद्देश्य |
|---|---|---|
| LTK | 128 बिट | पुनः कनेक्शन के बाद डेटा एन्क्रिप्शन |
| IRK | 128 बिट | यादृच्छिक निजी पतों (RPA) का समाधान |
| CSRK | 128 बिट | डेटा हस्ताक्षर और प्रमाणीकरण सत्यापन |
Pairing वर्तमान संचार सत्र को एन्क्रिप्ट करने के लिए कुंजियों की अस्थायी बातचीत है। जब कनेक्शन समाप्त होता है, तो एन्क्रिप्शन कुंजियाँ हटा दी जाती हैं, और अगले कनेक्शन के लिए फिर से पूर्ण पेयरिंग प्रक्रिया की आवश्यकता होती है। Bonding में सभी पेयरिंग चरण शामिल हैं लेकिन भविष्य के सत्रों के लिए अतिरिक्त रूप से कुंजियाँ संग्रहीत करता है। लगभग सभी उपभोक्ता Bluetooth उपकरण (हेडफ़ोन, स्पीकर, घड़ियाँ) बॉन्डिंग का उपयोग करते हैं क्योंकि इसके बिना, प्रत्येक कनेक्शन के लिए PIN पुनः प्रविष्टि की आवश्यकता होगी।
BLE विनिर्देश के अनुसार पेयरिंग प्रक्रिया में तीन चरण होते हैं। चरण 1 — उपकरण क्षमताओं का आदान-प्रदान (IO क्षमताएँ, प्रमाणीकरण समर्थन)। चरण 2 — पेयरिंग विधि के अनुसार Short Term Key (STK) या LTK का उत्पादन और आदान-प्रदान। चरण 3 — कुंजी परिवहन: उपकरणों के बीच LTK, IRK, CSRK का आदान-प्रदान। यदि उपकरणों ने चरण 3 के बाद कुंजियाँ संग्रहीत कीं — यह बॉन्डिंग है। यदि नहीं — यह केवल पेयरिंग है।
| पैरामीटर | Pairing | Bonding |
|---|---|---|
| कुंजी भंडारण | संग्रहीत नहीं | NVRAM में संग्रहीत |
| स्वचालित पुनः कनेक्शन | नहीं | हाँ |
| PIN पुनः प्रविष्टि | आवश्यक | आवश्यक नहीं |
| उपयोग | सामयिक कनेक्शन | स्थायी उपकरण |
बॉन्डिंग प्रक्रिया सफल पेयरिंग पूरा होने के बाद शुरू होती है, जब एक उपकरण कुंजियाँ संग्रहीत करने का अनुरोध भेजता है। BLE में, Central (आमतौर पर स्मार्टफ़ोन) और Peripheral (पहनने योग्य उपकरण) चरण 2 में स्थापित सुरक्षित चैनल के माध्यम से कुंजियों का आदान-प्रदान करते हैं। सफल कुंजी आदान-प्रदान के बाद, प्रत्येक उपकरण उन्हें साथी के MAC पते या Identity Address के साथ नॉन-वोलाटाइल मेमोरी में संग्रहीत करता है।
Central पक्ष (iOS/Android) पर, कुंजियाँ सिस्टम Bluetooth भंडारण में संग्रहीत होती हैं। iOS स्वचालित बॉन्डिंग प्रबंधन के साथ Core Bluetooth सिस्टम स्टैक का उपयोग करता है: पहली पेयरिंग पर, कुंजियाँ डिवाइस की NVRAM में सहेजी जाती हैं, और उसी Peripheral से बाद के कनेक्शन स्वचालित रूप से होते हैं। डेवलपर सीधे कुंजियों का प्रबंधन नहीं करता — Core Bluetooth सिस्टम स्टैक कुंजी भंडारण का समर्थन करने वाले डिवाइस से कनेक्ट होने पर स्वचालित रूप से बॉन्डिंग को संभालता है।
पुनः कनेक्शन पर, Peripheral अपने सार्वजनिक पते या Resolvable Private Address (RPA) वाले विज्ञापन पैकेट भेजता है। Central पैकेट प्राप्त करता है, पते को संग्रहीत बॉन्डेड डिवाइसों से मिलाता है, और यदि मिलान मिलता है, तो संग्रहीत LTK का उपयोग करके सत्र पुनर्स्थापन शुरू करता है। यदि LTK मेल खाता है, तो एन्क्रिप्टेड कनेक्शन पुनः पेयरिंग के बिना स्थापित हो जाता है।
BLE विनिर्देश कई प्रमाणीकरण विधियाँ परिभाषित करता है जो बॉन्डिंग के सुरक्षा स्तर को प्रभावित करती हैं। विधि का चुनाव उपकरणों की IO क्षमताओं पर निर्भर करता है — क्या उनके पास डिस्प्ले, कीबोर्ड या संख्यात्मक तुलना की पुष्टि करने की क्षमता है। सुरक्षित बॉन्डिंग के लिए गैर-महत्वपूर्ण अनुप्रयोगों के लिए कम से कम Just Works और Man-in-the-Middle हमलों से सुरक्षा की आवश्यकता वाले कार्यों के लिए Numeric Comparison या Passkey Entry का उपयोग करना आवश्यक है।
Just Works एक प्रमाणीकरण-मुक्त विधि है जिसका उपयोग तब किया जाता है जब किसी एक उपकरण में डिस्प्ले या कीबोर्ड न हो। एन्क्रिप्शन कुंजियाँ दूसरे उपकरण की पहचान सत्यापित किए बिना प्रेषित की जाती हैं — तापमान सेंसर, हृदय गति मॉनिटर। Just Works MITM हमलों के लिए संवेदनशील है, इसलिए इसका उपयोग केवल उन उपकरणों के लिए किया जाता है जहाँ डेटा समझौता कोई खतरा पैदा नहीं करता।
Numeric Comparison एक प्रमाणीकरण विधि है जहाँ दोनों उपकरण छह अंकों की संख्या प्रदर्शित करते हैं, और उपयोगकर्ता को मिलान की पुष्टि करनी होती है। यह विधि MITM हमलों के खिलाफ सुरक्षा प्रदान करती है और डिस्प्ले वाले उपकरणों — स्मार्ट घड़ियों, फ़िटनेस ट्रैकर, रिमोट कंट्रोल के लिए अनुशंसित है। पुष्टि के बाद, बॉन्डिंग अधिकतम विश्वास स्तर के साथ संग्रहीत की जाती है।
Passkey Entry के लिए एक उपकरण पर छह अंकों का PIN दर्ज करना आवश्यक होता है। आमतौर पर, कोड एक उपकरण द्वारा उत्पन्न किया जाता है और उस पर प्रदर्शित होता है, जबकि उपयोगकर्ता इसे दूसरे उपकरण पर दर्ज करता है। इस विधि का उपयोग चिकित्सा उपकरणों और IoT तालों के लिए किया जाता है जहाँ उच्च स्तर की सुरक्षा की आवश्यकता होती है लेकिन किसी एक उपकरण में Numeric Comparison के लिए डिस्प्ले नहीं होता।
बॉन्डिंग प्रबंधन पेयर किए गए उपकरणों की संग्रहीत कुंजियों को देखने, हटाने और बनाए रखने की प्रक्रिया है। मोबाइल विकास में, बॉन्डेड डिवाइस स्थितियों को सही ढंग से संभालना महत्वपूर्ण है, विशेष रूप से जब किसी परिधीय उपकरण को रीसेट किया जाता है या उसका फ़र्मवेयर बदला जाता है। जब Peripheral पर बॉन्डिंग कुंजियाँ बदलती हैं, तो Central पर पुरानी कुंजियाँ हटाई जानी चाहिए और नई पेयरिंग की जानी चाहिए।
iOS सिस्टम Core Bluetooth स्टैक के माध्यम से स्वचालित रूप से बॉन्डेड डिवाइसों का प्रबंधन करता है। डेवलपर के पास व्यक्तिगत बॉन्डेड डिवाइसों को देखने या हटाने के लिए सीधा API नहीं है — प्रबंधन सिस्टम सेटिंग्स (Settings > Bluetooth > डिवाइस > Forget) के माध्यम से किया जाता है। यदि प्रोग्रामेटिक रूप से बॉन्डिंग साफ़ करना आवश्यक है, तो ऐप UIApplication.openSettingsURLString का उपयोग करके उपयोगकर्ता को सिस्टम Bluetooth सेटिंग्स पर निर्देशित कर सकता है।
Android BluetoothAdapter वर्ग के माध्यम से बॉन्डेड डिवाइसों के साथ काम करने के लिए सीधा API प्रदान करता है। getBondedDevices() विधि सभी पेयर किए गए उपकरणों का Set<BluetoothDevice> लौटाती है। बॉन्डिंग हटाने के लिए, removeBond() विधि का उपयोग रिफ्लेक्शन के माध्यम से या Android 12+ पर आधिकारिक API BluetoothDevice.removeBond() के माध्यम से किया जाता है।
val adapter = BluetoothAdapter.getDefaultAdapter()
val bondedDevices: Set<BluetoothDevice> = adapter.getBondedDevices()
bondedDevices.forEach { device ->
Log.d("Bonding", "Bonded device: ${device.name}, ${device.address}")
}
Android पर बॉन्डिंग कार्यान्वयन के लिए BluetoothDevice.ACTION_BOND_STATE_CHANGED इवेंट के लिए BroadcastReceiver की सही हैंडलिंग आवश्यक है। किसी डिवाइस से पहले कनेक्शन पर, Android सिस्टम स्वचालित रूप से बॉन्डिंग शुरू करता है यदि डिवाइस इस क्षमता का समर्थन करता है। डेवलपर को तीन स्थितियों को संभालना चाहिए: BOND_NONE (पेयर नहीं), BOND_BONDING (पेयरिंग प्रगति पर), BOND_BONDED (पेयर किया गया)।
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 पर बॉन्डिंग शुरू करने के लिए, BluetoothDevice ऑब्जेक्ट पर createBond() विधि को कॉल किया जाना चाहिए। विधि एक बूलियन लौटाती है — true यदि पेयरिंग प्रक्रिया सफलतापूर्वक शुरू हुई। Android 12 से शुरू होकर, createBond() को BLUETOOTH_CONNECT अनुमति की आवश्यकता है और यदि ऐप के पास पृष्ठभूमि Bluetooth पहुँच नहीं है तो सिस्टम द्वारा अस्वीकार किया जा सकता है।
fun initiateBonding(device: BluetoothDevice) {
if (device.bondState == BluetoothDevice.BOND_NONE) {
val success = device.createBond()
if (success) {
Toast.makeText(context, "Bonding शुरू किया गया", Toast.LENGTH_SHORT)
}
}
}
मोबाइल ऐप डेवलपर अक्सर BLE डिवाइस बॉन्डिंग के साथ काम करते समय सामान्य गलतियों का सामना करते हैं। बॉन्डिंग स्थितियों की गलत हैंडलिंग से कनेक्शन विफलता, पुनः पेयर करने में असमर्थता या डेटा हानि हो सकती है। आइए सबसे सामान्य समस्याओं और उनके समाधानों की जाँच करें।
BLE डिवाइस फ़र्मवेयर अपडेट के बाद, इसकी बॉन्डिंग कुंजियाँ रीसेट हो सकती हैं, लेकिन स्मार्टफ़ोन पुरानी कुंजियाँ (stale bonding) संग्रहीत करना जारी रखता है। कनेक्ट करने का प्रयास करते समय, Central पुराने LTK के साथ सत्र को पुनर्स्थापित करने का प्रयास करता है, Peripheral कुंजी को अस्वीकार करता है, और कनेक्शन विफल हो जाता है। समाधान Settings > Bluetooth > Forget Device के माध्यम से स्मार्टफ़ोन पर बॉन्डिंग हटाना और नई पेयरिंग करना है।
BLE चिप्स में संग्रहीत बॉन्डिंग रिकॉर्ड की संख्या की सीमा होती है। लोकप्रिय Nordic nRF5x चिप्स के लिए, कॉन्फ़िगरेशन के अनुसार सीमा 8-20 रिकॉर्ड है। सीमा पार होने पर, डिवाइस नई पेयरिंग स्वीकार करना बंद कर देता है। समाधान अप्रयुक्त बॉन्डिंग रिकॉर्ड हटाना या सफाई के साथ प्राथमिकता-आधारित कुंजी श्रृंखला का उपयोग करना है।
Privacy Feature (यादृच्छिक MAC पते) का उपयोग करते समय, डिवाइस समय-समय पर अपना पता बदलता है। यदि Central ने IRK संग्रहीत नहीं किया, तो वह नए यादृच्छिक पते को ज्ञात डिवाइस से मेल नहीं खिला सकता। समाधान IRK भंडारण को सही ढंग से लागू करना और प्रत्येक डिवाइस खोज पर RPA को हल करने के लिए इसका उपयोग करना है।
अक्सर पूछे जाने वाले प्रश्न
Bonding Bluetooth Low Energy में पेयरिंग सत्र समाप्त होने के बाद एन्क्रिप्शन कुंजियाँ (LTK, IRK, CSRK) संग्रहीत करने की प्रक्रिया है, ताकि PIN पुनः प्रविष्टि या पुष्टि के बिना बाद के पुनः कनेक्शनों पर स्वचालित रूप से सुरक्षित कनेक्शन पुनर्स्थापित किया जा सके।
Pairing वर्तमान सत्र के लिए कुंजियों की अस्थायी बातचीत है, जो कनेक्शन टूटने पर हटा दी जाती हैं। Bonding में भविष्य के कनेक्शनों के लिए पूर्ण पेयरिंग प्रक्रिया और कुंजी भंडारण शामिल है। Bonding उन उपकरणों के लिए आवश्यक है जो स्वचालित रूप से पुनः कनेक्ट होते हैं — हेडफ़ोन, घड़ियाँ, फ़िटनेस ट्रैकर।
iPhone पर, बॉन्डिंग हटाना सिस्टम सेटिंग्स के माध्यम से किया जाता है: Settings > Bluetooth > डिवाइस के बगल में जानकारी आइकन (i) पर टैप करें > Forget This Device चुनें। इसके बाद, एन्क्रिप्शन कुंजियाँ हटा दी जाती हैं, और अगले कनेक्शन के लिए नई पेयरिंग की आवश्यकता होगी।
बॉन्डेड डिवाइसों की संख्या BLE चिप की नॉन-वोलाटाइल मेमोरी क्षमता पर निर्भर करती है। स्मार्टफ़ोन सैकड़ों रिकॉर्ड संग्रहीत कर सकते हैं, जबकि बजट BLE परिधीय 8-20 रिकॉर्ड तक सीमित हैं। सीमा पार होने पर, पुराने रिकॉर्ड अधिलेखित हो जाते हैं या डिवाइस नई पेयरिंग स्वीकार करना बंद कर देता है।
Stale bonding एक स्थिति है जहाँ एक उपकरण (आमतौर पर Peripheral) पर एन्क्रिप्शन कुंजियाँ रीसेट कर दी गई हैं (उदाहरण के लिए, फ़र्मवेयर अपडेट के बाद), जबकि Central के पास अभी भी पुरानी कुंजियाँ हैं। परिणामस्वरूप, कनेक्शन तब तक स्थापित नहीं किया जा सकता जब तक उपयोगकर्ता Bluetooth सेटिंग्स के माध्यम से stale bonding हटाकर नई पेयरिंग नहीं करता।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें