fieldtester.io

जुड़ना और सुरक्षा

OTAA और ABP, डिवाइस की कुंजियाँ और क्यों गेटवे आपका डेटा नहीं पढ़ सकता।

OTAA और ABP

OTAA (over-the-air activation): डिवाइस जॉइन अनुरोध से नेटवर्क से जुड़ता है। इसके लिए तीन मान चाहिए:

  • DevEUI: डिवाइस का विश्व स्तर पर अद्वितीय नंबर (16 हेक्स अक्षर),
  • JoinEUI (पहले AppEUI): जॉइन सर्वर की पहचान करता है,
  • AppKey: गुप्त कुंजी (32 हेक्स अक्षर)।

इनसे हर जॉइन पर नई सेशन कुंजियाँ बनाई जाती हैं। OTAA अनुशंसित तरीक़ा है।

ABP (activation by personalization): सेशन कुंजियाँ और डिवाइस पता पहले से तय होते हैं। डिवाइस कभी जॉइन नहीं करता। यह आसान है, लेकिन कम सुरक्षित है और जब फ़्रेम काउंटर आपस में मेल नहीं खाते तो इसमें गड़बड़ी होती है।

एन्क्रिप्शन

डिवाइसगेटवेनेटवर्कसर्वरएप्लिकेशनसर्वरएप्लिकेशनfieldtester.ioपेलोड AppSKey से शुरू से अंत तक एन्क्रिप्टेडनेटवर्क कुंजी से हस्ताक्षरित, नेटवर्क जाँचता हैकेवल एन्क्रिप्टेडबाइट देखता हैपेलोड यहाँडिक्रिप्ट होता है
पेलोड डिवाइस से एप्लिकेशन सर्वर तक एन्क्रिप्टेड रहता है। गेटवे और नेटवर्क सर्वर केवल एन्क्रिप्टेड बाइट देखते हैं।

LoRaWAN दो स्तरों पर AES-128 का उपयोग करता है:

  • NwkSKey (LoRaWAN 1.1 में कई नेटवर्क कुंजियाँ): संदेश को बदलाव से बचाती है; नेटवर्क इससे जाँचता है कि संदेश असली है।
  • AppSKey: पेलोड को शुरू से अंत तक एन्क्रिप्ट करती है। गेटवे और नेटवर्क ऑपरेटर केवल एन्क्रिप्टेड बाइट देखते हैं; केवल एप्लिकेशन सर्वर उन्हें डिक्रिप्ट करता है।

फ़्रेम काउंटर

हर संदेश में एक चलता हुआ काउंटर (FCnt) होता है। नेटवर्क उन संदेशों को छोड़ देता है जिनका काउंटर वह पहले देख चुका है। इससे कोई पुराने पैकेट दोबारा नहीं भेज सकता।

अगर कोई ABP डिवाइस रीस्टार्ट होकर फिर 0 से शुरू करता है, तो नेटवर्क उसके संदेश छोड़ देता है। OTAA में हर जॉइन के बाद काउंटर फिर से शुरू होता है, और वहाँ यह सही है।