
BLESuite is a Python package that provides an easier way to test Bluetooth Low Energy (BLE) device
BLESuite एक python पैकेज है जो ब्लूटूथ लो एनर्जी (BLE) डिवाइस संचार को अधिक उपयोगकर्ता-अनुकूल बनाता है और तीव्र BLE डिवाइस परीक्षण सक्षम करता है। BLESuite का संस्करण 2, PyGattlib और BlueZ पर निर्भरता हटा देता है और इसके बजाय PyBT (https://github.com/mikeryan/PyBT) के संशोधित संस्करण का उपयोग करके अपना स्वयं का BLE स्टैक लागू और प्रबंधित करता है। यह संस्करण संचार विश्वसनीयता बढ़ाता है, संचार लचीलापन बढ़ाता है, डिवाइस स्कैनिंग में सुधार करता है, और ब्लूटूथ स्टैक के होस्ट परतों पर डिवाइस फज़िंग सक्षम करता है। BLESuite द्वारा उपयोग किया जाने वाला स्टैक जानबूझकर डिवाइस परीक्षण सक्षम करने के लिए डिवाइसों को गलत-निर्मित (malformed) अनुरोध/प्रतिक्रियाएं भेजने की अनुमति देता है।
विशेषताएँ:
blesuite और ble-replayपाठक के लिए नोट:
ब्लूटूथ लो एनर्जी कार्यक्षमता तक पहुंचने के लिए, आपके पास एक ब्लूटूथ एडाप्टर होना चाहिए जो इसका समर्थन करता हो।
BLESuite का लक्ष्य सुरक्षा मूल्यांकन के लिए लक्षित BLE डिवाइसों के साथ संचार को शीघ्रता से स्क्रिप्ट करने की एक सरल विधि प्रदान करना है। PyGattlib और BlueZ से PyBT की ओर स्थानांतरण के साथ, अब हमारे पास BLE स्टैक पर अधिक नियंत्रण है और हम इसका उपयोग लक्षित डिवाइस की विभिन्न BLE स्टैक परतों का परीक्षण करने के लिए कर सकते हैं।
इसके अतिरिक्त, BLESuite अब केवल केंद्रीय (Central) भूमिका तक सीमित नहीं है। BLESuite अब परिधीय (Peripheral) भूमिका का समर्थन करता है और उपयोगकर्ताओं को शीघ्रता से GATT सर्वर कॉन्फ़िगर और स्थापित करने की अनुमति देता है जिसका उपयोग केंद्रीय भूमिका वाले BLE डिवाइसों (या दोहरी भूमिका वाले डिवाइसों) का परीक्षण करने के लिए किया जा सकता है।
निम्नलिखित BLESuite Python पैकेज के लिए स्थापना निर्देश हैं।
समर्थित ऑपरेटिंग सिस्टम:
BLESuite को Debian 9.3 के विरुद्ध विकसित और परीक्षण किया गया था। लाइब्रेरी अन्य Linux वितरणों द्वारा समर्थित हो सकती है, हालांकि वर्तमान में समर्थन की गारंटी नहीं है।
नोट: Fedora 28 के साथ BLESuite का उपयोग करने के हालिया प्रयास निम्नलिखित वस्तुओं को स्थापित करके सफल हुए:
Fedora 28 के साथ, BLESuite से संबंधित एक गैर-दोहराने योग्य रिपोर्ट की गई समस्या है जो एक TypeError से संबंधित है जो Debian 9.3 स्थापनाओं में मौजूद नहीं है जब एक आने वाले ATT अनुरोध को संभालने का प्रयास किया जाता है।
फिक्स योगदान का स्वागत है!
आवश्यक सॉफ़्टवेयर
BLESuite का उपयोग करने के लिए निम्नलिखित आवश्यकताएं हैं:
libbluetooth-dev, libpython-dev, और python-sphinx स्थापित करने के बाद, शेष Python निर्भरताएं स्थापित करने के लिए निम्नलिखित चलाएं:
pip install -r requirements.txt
docs फ़ोल्डर से, चलाएं:
make html
फिर docs/_build/html में दस्तावेज़ों और संदर्भ गाइडों का एक पूरा सेट उपलब्ध होगा।
Python पैकेज स्थापित करने के लिए निम्नलिखित कमांड चलाएं:
python setup.py install
यदि आप BDADDR Python API स्थापित नहीं करना चाहते हैं या इसे स्थापित करने में समस्या आ रही है, तो setup.py में निम्नलिखित पंक्ति को टिप्पणी (comment) करें और उपरोक्त कमांड को फिर से चलाएं:
ext_modules = [c_ext],
अभी तक, BLESuite केवल LE Legacy JustWorks पेयरिंग का समर्थन कर सकता है। सुरक्षा प्रबंधक (Security Manager) मुख्य रूप से रेखांकित किया गया है, लेकिन LESC और वैकल्पिक एसोसिएशन मॉडल के लिए शेष क्रिप्टोग्राफिक प्रोग्रामिंग अभी भी लागू करने की आवश्यकता है।
ATT हस्ताक्षरित लेखन (signed write) ऑपरेशन वर्तमान में BLESuite द्वारा समर्थित नहीं है। यह एक सामान्य रूप से उपयोग किया जाने वाला ऑपरेशन नहीं है, हालांकि सुरक्षा मोड 2 का समर्थन करने के लिए, इसे समर्थित किया जाना चाहिए।
BLESuite वर्तमान में केवल पब्लिक (Public) और रैंडम (स्थैतिक) पतों का समर्थन करता है। हालांकि, रैंडम पते दो उप-प्रकार के हो सकते हैं: स्थैतिक (Static) या निजी (Private)। एक रैंडम निजी पता भी दो उप-प्रकारों में विभाजित किया जा सकता है जो वर्तमान में BLESuite द्वारा समर्थित नहीं हैं: गैर-समाधान योग्य निजी पता (Non-resolvable Private address) और समाधान योग्य निजी पता (Resolvable Private address) (पेयरिंग के दौरान आदान-प्रदान किए गए IRK का उपयोग करके हल किया जाता है)।
इस प्रकार, इन प्रकार के पतों को होस्ट एडाप्टर पर सेट करने की कार्यक्षमता वर्तमान में BLESuite द्वारा उजागर नहीं की गई है। साथ ही, आदान-प्रदान किए गए IRK के आधार पर किसी पीयर के रैंडम समाधान योग्य पतों को हल करने की क्षमता अभी तक लागू नहीं की गई है।
लाइब्रेरी के निर्माण के साथ, अगला कदम सुरक्षा मूल्यांकन उपकरण बनाना है जो इस लाइब्रेरी का उपयोग करते हैं।
ऐसा ही एक उदाहरण जो हमने इस लाइब्रेरी के साथ शामिल किया है वह है ble-replay, जो एक BLE पैकेट कैप्चर ले सकता है और लक्षित डिवाइस पर GATT ट्रैफ़िक को रीप्ले कर सकता है। ble-replay रिप्ले हमलों से संबंधित एप्लिकेशन परत सुरक्षा कमजोरियों की पहचान करने में शीघ्रता से मदद कर सकता है।
इस प्रकार के उपकरण पैकेट कैप्चर का मैन्युअल रूप से विश्लेषण करने और BLE संचार परीक्षण मामलों को मैन्युअल रूप से स्क्रिप्ट करने में लगने वाले समय को कम करते हैं।