
एम्बेडेड डिवाइसों पर हस्ताक्षरित URL जनरेट करने के लिए असममित क्रिप्टोग्राफी लाइब्रेरी, जो PSA Crypto API का उपयोग करके Zephyr और ESP-IDF समर्थन के साथ समय-सीमित संसाधन पहुंच को सक्षम बनाती है।
हस्ताक्षरित URL छोटे उपकरणों के लिए।
signy एक लाइब्रेरी है जो एम्बेडेड उपकरणों पर असममित क्रिप्टोग्राफी का उपयोग करके हस्ताक्षरित URL उत्पन्न करने के लिए है। हस्ताक्षरित URL का उपयोग आमतौर पर निजी संसाधनों, जैसे कि कंटेंट डिलीवरी नेटवर्क (CDN) द्वारा प्रदान किए गए, तक समय-सीमित पहुंच प्रदान करने के लिए किया जाता है। एम्बेडेड उपकरणों के संदर्भ में, हस्ताक्षरित URL का उपयोग किसी बाहरी सिस्टम, या उसी सिस्टम के किसी अन्य घटक को किसी विशिष्ट संसाधन तक पहुंचने में सक्षम बनाने के लिए किया जा सकता है। उदाहरण के लिए, एक उपकरण एक हस्ताक्षरित URL उत्पन्न कर सकता है और इसे एक अधिक सक्षम सिस्टम को दे सकता है ताकि वह उसकी ओर से संसाधन डाउनलोड कर सके।
signy के उपयोग के लिए एक सर्वर की आवश्यकता होती है जो इसके द्वारा उत्पन्न हस्ताक्षरित URL को सत्यापित करने में सक्षम हो। यदि Golioth के साथ signy का उपयोग कर रहे हैं, तो उपकरण प्रमाणपत्र जारी करने वाले प्रमाणपत्र प्राधिकरण (CA) से जुड़े प्रमाणपत्रों को आपके प्रोजेक्ट में अपलोड किया जाना चाहिए।
signy हस्ताक्षर संचालन के लिए प्लेटफ़ॉर्म सिक्योरिटी आर्किटेक्चर (PSA) क्रिप्टो API का लाभ उठाता है। निजी कुंजियों को PSA क्रिप्टो API का उपयोग करके उत्पन्न या आयात किया जाना चाहिए, और सार्वजनिक कुंजी वाले एक हस्ताक्षरित प्रमाणपत्र को signy लाइब्रेरी को पास किया जाना चाहिए।
signy द्वारा उत्पन्न हस्ताक्षरित URL निम्नलिखित प्रारूप का पालन करते हैं।
BASEURL?nb=NOTBEFORE&na=NOTAFTER&cert=CERTIFICATE&sig=SIGNATURE
BASEURL: संसाधन का स्थान (उदाहरण: https://gw.golioth.io/.u/c/[email protected])NOTBEFORE / NOTAFTER: यूनिक्स टाइमस्टैम्प जो हस्ताक्षरित URL के मान्य होने की समयावधि को परिभाषित करते हैं। signy NOTBEFORE के लिए डिवाइस सिस्टम समय का उपयोग करता है और NOTAFTER टाइमस्टैम्प को CONFIG_SIGNY_URL_VALIDITY_DURATION के आधार पर सेट करता है।CERTIFICATE: डिवाइस प्रमाणपत्र का base64 अनपैडेड URL एन्कोडिंग।SIGNATURE: URL के संपूर्ण भाग पर &sig= से पहले का हस्ताक्षर।signy रिपॉजिटरी एक Zephyr मॉड्यूल है और इसे किसी भी Zephyr प्रोजेक्ट में प्रोजेक्ट की west.yml फ़ाइल में निम्नलिखित जोड़कर शामिल किया जा सकता है।
- name: signy
path: modules/lib/signy
revision: v0.2.0
url: https://github.com/golioth/signy.git
अधिक जानकारी के लिए Zephyr उदाहरण देखें।
signy रिपॉजिटरी एक ESP-IDF घटक है और इसे किसी भी ESP-IDF प्रोजेक्ट में प्रोजेक्ट की idf_component.yml में निर्भरता के रूप में निर्दिष्ट करके शामिल किया जा सकता है।
dependencies:
signy:
version: v0.2.0
git: https://github.com/golioth/signy.git
अधिक जानकारी के लिए esp-idf उदाहरण देखें।