Bonding: Τι είναι, η διαδικασία και η ασφάλεια σύζευξης BLE

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-07-16 Χρόνος ανάγνωσης: 10 λεπ

Bonding (σύζευξη) στο Bluetooth Low Energy είναι η διαδικασία δημιουργίας μιας μόνιμης ασφαλούς σύνδεσης μεταξύ δύο συσκευών με αποθήκευση κρυπτογραφικών κλειδιών σε μη πτητική μνήμη. Μετά το bonding, οι συσκευές μπορούν να αποκαθιστούν αυτόματα την κρυπτογραφημένη σύνδεση κατά την επανασύνδεση χωρίς εκ νέου εισαγωγή PIN ή επιβεβαίωση από τον χρήστη. Σύμφωνα με το Bluetooth SIG Core Specification v5.4 (2025), ο μηχανισμός bonding είναι υποχρεωτικός για συσκευές που απαιτούν αυτόματη επανασύνδεση — ακουστικά, ιχνηλάτες γυμναστικής, ιατρικούς αισθητήρες και IoT αξεσουάρ.

Βασικά σημεία

  • Bonding — είναι η μακροπρόθεσμη αποθήκευση κλειδιών κρυπτογράφησης μεταξύ συσκευών BLE μετά την ολοκλήρωση της συνεδρίας.
  • Σε αντίθεση με το pairing, το bonding επιτρέπει την αυτόματη αποκατάσταση της κρυπτογραφημένης σύνδεσης χωρίς εκ νέου επιβεβαίωση.
  • Η διαδικασία bonding περιλαμβάνει ανταλλαγή κλειδιών LTK, IRK, CSRK και αποθήκευσή τους στη μνήμη και των δύο συσκευών.
  • iOS διαχειρίζεται τις συζευγμένες συσκευές μέσω Settings > Bluetooth με δυνατότητα διαγραφής αποθηκευμένων κλειδιών.
  • Για Android η διαχείριση bonding γίνεται μέσω BluetoothAdapter και API getBondedDevices().

Τι είναι το Bonding στο BLE;

Bonding — είναι η επέκταση της διαδικασίας pairing στο Bluetooth Low Energy, κατά την οποία οι συσκευές αποθηκεύουν κλειδιά κρυπτογράφησης για επόμενες συνδέσεις. Το πρότυπο BLE ορίζει τρεις λειτουργίες ασφαλείας: Security Mode 1 (κρυπτογράφηση χωρίς αυθεντικοποίηση), Security Mode 2 (υπογραφή δεδομένων χωρίς κρυπτογράφηση) και Security Mode 3 (κρυπτογράφηση με αυθεντικοποίηση). Το Bonding είναι σχετικό για λειτουργίες με κρυπτογράφηση, όπου απαιτείται πολλαπλή σύνδεση χωρίς εκ νέου συμφωνία κλειδιών.

Γιατί χρειάζεται το Bonding

Ο κύριος σκοπός του bonding είναι η αυτόματη αποκατάσταση της κρυπτογραφημένης σύνδεσης κατά την επανασύνδεση συσκευών. Όταν ο χρήστης βγάζει τα ακουστικά από τη θήκη και τα φοράει, το bonding εξασφαλίζει άμεση σύνδεση με το smartphone χωρίς να χρειάζεται εκ νέου επιλογή της συσκευής στο μενού Bluetooth. Σύμφωνα με το Apple Bluetooth Design Guidelines (2025), οι συζευγμένες συσκευές πρέπει να συνδέονται σε λιγότερο από 2 δευτερόλεπτα από τη στιγμή ανίχνευσης.

Ποια δεδομένα αποθηκεύονται κατά το Bonding

Κατά το bonding, κάθε συσκευή αποθηκεύει ένα σύνολο κρυπτογραφικών υλικών: Long Term Key (LTK) για κρυπτογράφηση σύνδεσης, Identity Resolving Key (IRK) για ανάλυση τυχαίων διευθύνσεων, Connection Signature Resolving Key (CSRK) για έλεγχο υπογραφών δεδομένων. Το LTK είναι το κύριο κλειδί μήκους 128 bit, που δημιουργείται κατά τη διαδικασία pairing και χρησιμοποιείται για όλες τις επόμενες κρυπτογραφημένες συνεδρίες.

ΚλειδίΜήκοςΣκοπός
LTK128 bitΚρυπτογράφηση δεδομένων μετά από επανασύνδεση
IRK128 bitΑνάλυση τυχαίων ιδιωτικών διευθύνσεων (RPA)
CSRK128 bitΥπογραφή και έλεγχος αυθεντικότητας δεδομένων

Bonding vs Pairing: ποια είναι η διαφορά

Pairing — είναι η προσωρινή συμφωνία κλειδιών για κρυπτογράφηση της τρέχουσας συνεδρίας επικοινωνίας. Όταν η σύνδεση τερματίζεται, τα κλειδιά κρυπτογράφησης διαγράφονται και κατά την επόμενη σύνδεση απαιτείται εκ νέου διαδικασία pairing. Bonding περιλαμβάνει όλα τα στάδια του pairing, αλλά επιπλέον αποθηκεύει τα κλειδιά για επόμενες συνεδρίες. Πρακτικά όλες οι καταναλωτικές συσκευές Bluetooth (ακουστικά, ηχεία, ρολόγια) χρησιμοποιούν bonding, καθώς χωρίς αυτό κάθε σύνδεση θα απαιτούσε εκ νέου εισαγωγή PIN.

Τρεις φάσεις Pairing και Bonding

Η διαδικασία pairing σύμφωνα με την προδιαγραφή BLE αποτελείται από τρεις φάσεις. Φάση 1 — ανταλλαγή δυνατοτήτων συσκευών (IO capabilities, υποστήριξη αυθεντικοποίησης). Φάση 2 — δημιουργία και ανταλλαγή Short Term Key (STK) ή LTK, ανάλογα με τη μέθοδο σύζευξης. Φάση 3 — μεταφορά κλειδιών: ανταλλαγή LTK, IRK, CSRK μεταξύ συσκευών. Εάν οι συσκευές αποθήκευσαν τα κλειδιά μετά τη Φάση 3 — πρόκειται για bonding. Εάν όχι — πρόκειται απλώς για pairing.

ΠαράμετροςPairingBonding
Αποθήκευση κλειδιώνΔεν αποθηκεύονταιΑποθηκεύονται σε NVRAM
Αυτόματη σύνδεσηΌχιΝαι
Εκ νέου εισαγωγή PINΑπαιτείταιΔεν απαιτείται
ΧρήσηΠεριστασιακές συνδέσειςΜόνιμες συσκευές

Πώς λειτουργεί η διαδικασία Bonding

Η διαδικασία bonding ξεκινά μετά την επιτυχή ολοκλήρωση του pairing, όταν μία από τις συσκευές στέλνει αίτημα αποθήκευσης κλειδιών. Στο BLE, το Central (συνήθως smartphone) και το Peripheral (φορητή συσκευή) ανταλλάσσουν κλειδιά μέσω ασφαλούς καναλιού που δημιουργήθηκε στη Φάση 2. Μετά την επιτυχή ανταλλαγή κλειδιών, κάθε συσκευή τα αποθηκεύει σε μη πτητική μνήμη μαζί με τη MAC διεύθυνση ή τη διεύθυνση ταυτότητας του συνεργάτη.

Αποθήκευση κλειδιών στην πλευρά Central

Στην πλευρά Central (iOS/Android), τα κλειδιά αποθηκεύονται στο σύστημα αποθήκευσης Bluetooth. Το iOS χρησιμοποιεί τη στοίβα Core Bluetooth με αυτόματη διαχείριση bonding: κατά την πρώτη σύζευξη, τα κλειδιά αποθηκεύονται στην NVRAM της συσκευής και οι επόμενες συνδέσεις στο ίδιο Peripheral γίνονται αυτόματα. Ο προγραμματιστής δεν διαχειρίζεται τα κλειδιά άμεσα — η στοίβα Core Bluetooth χειρίζεται το bonding αυτόματα κατά τη δημιουργία σύνδεσης με μια συσκευή που υποστηρίζει αποθήκευση κλειδιών.

Αποκατάσταση σύνδεσης μέσω Bonding

Κατά την επανασύνδεση, το Peripheral στέλνει διαφημιστικά πακέτα που περιέχουν είτε τη δημόσια διεύθυνσή του είτε μια Resolvable Private Address (RPA). Το Central λαμβάνει το πακέτο, αντιστοιχίζει τη διεύθυνση με αποθηκευμένες συζευγμένες συσκευές και, αν βρει ταύτιση, ξεκινά αποκατάσταση συνεδρίας χρησιμοποιώντας το αποθηκευμένο LTK. Εάν το LTK ταιριάζει — η κρυπτογραφημένη σύνδεση δημιουργείται χωρίς εκ νέου pairing.

Μέθοδοι αυθεντικοποίησης στο Bonding

Η προδιαγραφή BLE ορίζει διάφορες μεθόδους αυθεντικοποίησης που επηρεάζουν το επίπεδο ασφάλειας του bonding. Η επιλογή μεθόδου εξαρτάται από τις IO capabilities των συσκευών — ύπαρξη οθόνης, πληκτρολογίου, δυνατότητα επιβεβαίωσης αριθμητικής σύγκρισης. Ασφαλές bonding απαιτεί τη χρήση μεθόδου τουλάχιστον Just Works για μη κρίσιμες εφαρμογές και Numeric Comparison ή Passkey Entry για εργασίες που απαιτούν προστασία από επιθέσεις Man-in-the-Middle.

Just Works

Just Works — μέθοδος χωρίς αυθεντικοποίηση, που χρησιμοποιείται όταν μία από τις συσκευές δεν έχει οθόνη ή πληκτρολόγιο. Τα κλειδιά κρυπτογράφησης μεταφέρονται χωρίς έλεγχο ταυτότητας της δεύτερης συσκευής — θερμοκρασία, παλμογράφος). Το Just Works είναι ευάλωτο σε επιθέσεις MITM, επομένως εφαρμόζεται μόνο σε συσκευές όπου η παραβίαση δεδομένων δεν αποτελεί απειλή.

Numeric Comparison

Numeric Comparison — μέθοδος αυθεντικοποίησης κατά την οποία και οι δύο συσκευές εμφανίζουν ένα εξαψήφιο αριθμό και ο χρήστης πρέπει να επιβεβαιώσει την ταύτιση. Αυτή η μέθοδος παρέχει προστασία από επιθέσεις MITM και συνιστάται για συσκευές με οθόνη — smart ρολόγια, ιχνηλάτες γυμναστικής, τηλεχειριστήρια. Μετά την επιβεβαίωση, το bonding αποθηκεύεται με το μέγιστο επίπεδο εμπιστοσύνης.

Passkey Entry

Passkey Entry απαιτεί εισαγωγή εξαψήφιου PIN σε μία από τις συσκευές. Συνήθως ο κωδικός δημιουργείται από μία συσκευή και εμφανίζεται σε αυτήν, ενώ ο χρήστης τον εισάγει στη δεύτερη. Η μέθοδος εφαρμόζεται για ιατρικές συσκευές και IoT κλειδαριές, όπου απαιτείται υψηλό επίπεδο ασφάλειας αλλά μία από τις συσκευές δεν έχει οθόνη για Numeric Comparison.

Διαχείριση συζευγμένων συσκευών σε iOS και Android

Διαχείριση bonding — είναι η διαδικασία προβολής, διαγραφής και συντήρησης αποθηκευμένων κλειδιών συζευγμένων συσκευών. Στην ανάπτυξη κινητών εφαρμογών είναι σημαντικό να χειρίζεστε σωστά τις καταστάσεις συζευγμένων συσκευών, ειδικά κατά την επαναφορά εργοστασιακών ρυθμίσεων της περιφερειακής συσκευής ή αντικατάσταση του firmware της. Κατά την αλλαγή κλειδιών bonding στο Peripheral, είναι απαραίτητο να διαγράψετε τα παλιά κλειδιά στο Central και να εκτελέσετε εκ νέου σύζευξη.

Διαχείριση σε iOS

Το iOS διαχειρίζεται αυτόματα τις συζευγμένες συσκευές μέσω της στοίβας συστήματος Core Bluetooth. Ο προγραμματιστής δεν έχει άμεσο API για προβολή ή διαγραφή μεμονωμένων συζευγμένων συσκευών — η διαχείριση γίνεται μέσω των ρυθμίσεων συστήματος (Settings > Bluetooth > συσκευή > Forget). Εάν είναι απαραίτητος ο προγραμματιστικός καθαρισμός του bonding, η εφαρμογή μπορεί να στείλει τον χρήστη στις ρυθμίσεις Bluetooth συστήματος χρησιμοποιώντας το UIApplication.openSettingsURLString.

Διαχείριση σε Android

Το Android παρέχει άμεσο API για εργασία με συζευγμένες συσκευές μέσω της κλάσης BluetoothAdapter. Η μέθοδος getBondedDevices() επιστρέφει Set<BluetoothDevice> όλων των συζευγμένων συσκευών. Για διαγραφή bonding χρησιμοποιείται η μέθοδος 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

Υλοποίηση bonding στην πλευρά Android απαιτεί σωστό χειρισμό του BroadcastReceiver για συμβάντα BluetoothDevice.ACTION_BOND_STATE_CHANGED. Κατά την πρώτη σύνδεση με μια συσκευή, το σύστημα Android ξεκινά αυτόματα το bonding εάν η συσκευή υποστηρίζει αυτή τη δυνατότητα. Ο προγραμματιστής πρέπει να χειρίζεται τρεις καταστάσεις: 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", "Η σύνδεση αφαιρέθηκε")
        }
    }
}

Εκκίνηση Bonding σε Android

Για την εκκίνηση του bonding σε Android, είναι απαραίτητη η κλήση της μεθόδου createBond() στο αντικείμενο BluetoothDevice. Η μέθοδος επιστρέφει boolean — 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

Οι προγραμματιστές κινητών εφαρμογών συχνά αντιμετωπίζουν συνηθισμένα λάθη κατά την εργασία με bonding συσκευών BLE. Ο εσφαλμένος χειρισμός καταστάσεων bonding μπορεί να οδηγήσει σε αποτυχίες σύνδεσης, αδυναμία εκ νέου σύζευξης ή απώλεια δεδομένων. Ας εξετάσουμε τα πιο συνηθισμένα προβλήματα και τις λύσεις τους.

Επαναφορά firmware Peripheral και stale bonding

Μετά την ενημέρωση firmware της BLE συσκευής, τα κλειδιά bonding μπορεί να επαναφερθούν, αλλά το smartphone συνεχίζει να αποθηκεύει παλιά κλειδιά (stale bonding). Κατά την προσπάθεια σύνδεσης, το Central επιχειρεί να αποκαταστήσει τη συνεδρία με το παλιό LTK, το Peripheral απορρίπτει το κλειδί και η σύνδεση δεν δημιουργείται. Λύση — διαγραφή bonding στο smartphone μέσω Settings > Bluetooth > Forget Device και εκ νέου σύζευξη.

Όριο αριθμού συζευγμένων συσκευών

Τα BLE τσιπ έχουν περιορισμό στον αριθμό αποθηκευμένων εγγραφών bonding. Για δημοφιλή τσιπ Nordic nRF5x, το όριο είναι 8-20 εγγραφές ανάλογα με τη διαμόρφωση. Κατά την υπέρβαση του ορίου, η συσκευή σταματά να δέχεται νέες συζεύξεις. Λύση — διαγραφή μη χρησιμοποιούμενων εγγραφών bonding ή χρήση συστήματος κλειδιών με προτεραιότητα εκκαθάρισης.

Προβλήματα με το Privacy Feature

Κατά τη χρήση Privacy Feature (τυχαίες MAC διευθύνσεις), η συσκευή αλλάζει περιοδικά τη διεύθυνσή της. Εάν το Central δεν αποθήκευσε το IRK, δεν μπορεί να αντιστοιχίσει τη νέα τυχαία διεύθυνση με γνωστή συσκευή. Λύση — σωστή υλοποίηση αποθήκευσης IRK και χρήση του για ανάλυση RPA σε κάθε ανίχνευση συσκευής.

Συχνές ερωτήσεις

Τι είναι το Bonding στο BLE;

Bonding στο Bluetooth Low Energy — είναι η διαδικασία αποθήκευσης κλειδιών κρυπτογράφησης (LTK, IRK, CSRK) μετά την ολοκλήρωση της συνεδρίας pairing για αυτόματη αποκατάσταση της ασφαλούς σύνδεσης σε επόμενες συνδέσεις χωρίς εκ νέου εισαγωγή PIN ή επιβεβαίωση.

Ποια είναι η διαφορά μεταξύ Bonding και Pairing;

Pairing — είναι η προσωρινή συμφωνία κλειδιών για την τρέχουσα συνεδρία, τα οποία διαγράφονται κατά τη διακοπή της σύνδεσης. Bonding περιλαμβάνει την πλήρη διαδικασία pairing συν την αποθήκευση κλειδιών για μελλοντικές συνδέσεις. Το Bonding απαιτείται για συσκευές που επανασυνδέονται αυτόματα — ακουστικά, ρολόγια, ιχνηλάτες γυμναστικής.

Πώς να διαγράψετε το Bonding σε iPhone;

Σε iPhone, η διαγραφή bonding γίνεται μέσω των ρυθμίσεων συστήματος: Settings > Bluetooth > πατήστε το εικονίδιο πληροφοριών (i) δίπλα στη συσκευή > επιλέξτε Forget This Device. Μετά από αυτό, τα κλειδιά κρυπτογράφησης διαγράφονται και κατά την επόμενη σύνδεση θα απαιτηθεί εκ νέου σύζευξη.

Πόσες συσκευές μπορούν να είναι σε Bonding;

Ο αριθμός συζευγμένων συσκευών εξαρτάται από το μέγεθος της μη πτητικής μνήμης του BLE τσιπ. Τα smartphones μπορούν να αποθηκεύσουν εκατοντάδες εγγραφές, ενώ οι οικονομικές BLE περιφερειακές συσκευές περιορίζονται σε 8-20 εγγραφές. Κατά την υπέρβαση του ορίου, οι παλιές εγγραφές αντικαθίστανται ή η συσκευή σταματά να δέχεται νέες συζεύξεις.

Τι είναι το stale bonding;

Stale bonding — κατάσταση όταν τα κλειδιά κρυπτογράφησης σε μία συσκευή (συνήθως Peripheral) έχουν επαναφερθεί (π.χ. κατά την επαναφορά firmware), ενώ στο Central παραμένουν παλιά κλειδιά. Ως αποτέλεσμα, η σύνδεση δεν δημιουργείται μέχρι ο χρήστης να διαγράψει το stale bonding μέσω των ρυθμίσεων Bluetooth και να εκτελέσει εκ νέου σύζευξη.

Σύνοψη

  • Bonding — βασικός μηχανισμός BLE για αυτόματη αποκατάσταση κρυπτογραφημένων συνδέσεων χωρίς εκ νέου εισαγωγή PIN.
  • Pairing και bonding διαφέρουν στην αποθήκευση κλειδιών: στο pairing τα κλειδιά ζουν μία συνεδρία, στο bonding αποθηκεύονται μόνιμα.
  • Η διαδικασία bonding περιλαμβάνει ανταλλαγή και αποθήκευση τριών τύπων κλειδιών: LTK (κρυπτογράφηση), IRK (ταυτοποίηση), CSRK (υπογραφή).
  • Η μέθοδος αυθεντικοποίησης Numeric Comparison παρέχει προστασία από επιθέσεις MITM και συνιστάται για συσκευές με οθόνη.
  • Το iOS διαχειρίζεται το bonding αυτόματα μέσω Core Bluetooth, το Android παρέχει API createBond() και removeBond().
  • Το Stale bonding μετά από επαναφορά firmware του Peripheral είναι συνηθισμένο πρόβλημα, που λύνεται με διαγραφή της συσκευής από τη λίστα Bluetooth.
  • Ο αριθμός συζευγμένων συσκευών σε ένα περιφερειακό BLE τσιπ περιορίζεται σε 8-20 εγγραφές ανάλογα με το μοντέλο.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης