
مكتبة تشفير غير متماثل لتوليد روابط موقّعة على الأجهزة المضمنة، مما يتيح الوصول المُحدَّد زمنيًا إلى الموارد باستخدام واجهة PSA Crypto API مع دعم Zephyr و ESP-IDF.
URLs موقعة للأجهزة الصغيرة.
signy هي مكتبة لتوليد URLs موقعة على الأجهزة المدمجة باستخدام التشفير غير المتماثل. عادة ما تُستخدم الـ URLs الموقعة لمنح وصول محدود الوقت إلى الموارد الخاصة، مثل تلك التي تُقدم بواسطة شبكة توصيل المحتوى (CDN). في سياق الأجهزة المدمجة، قد تُستخدم الـ URLs الموقعة لتمكين نظام خارجي، أو مكون آخر في نفس النظام، من الوصول إلى مورد معين. على سبيل المثال، قد يولد جهاز URL موقعًا ويمرره إلى نظام أكثر قدرة للسماح له بتنزيل المورد نيابة عنه.
يتطلب استخدام signy خادمًا قادرًا على التحقق من الـ URLs الموقعة التي يولدها. إذا كنت تستخدم signy مع Golioth، يجب ربط الشهادات المرتبطة بسلطة الشهادات (CA) التي أصدرت شهادة الجهاز بمشروعك.
تستفيد signy من واجهة برمجة تطبيقات التشفير لبنية أمان المنصة (PSA) لعمليات التوقيع. يجب توليد أو استيراد المفاتيح الخاصة باستخدام واجهات برمجة تطبيقات التشفير لـ PSA، ويجب تمرير شهادة موقعة تحتوي على المفتاح العام إلى مكتبة signy.
تتبع الـ URLs الموقعة التي تولدها signy التنسيق التالي.
BASEURL?nb=NOTBEFORE&na=NOTAFTER&cert=CERTIFICATE&sig=SIGNATURE
BASEURL: موقع المورد (مثل https://gw.golioth.io/.u/c/[email protected])NOTBEFORE / NOTAFTER: الطوابع الزمنية لـ unix التي تحدد النافذة التي يكون فيها الـ URL الموقع صالحًا. تستخدم signy وقت نظام الجهاز لـ NOTBEFORE وتضبط الطابع الزمني لـ NOTAFTER بناءً على CONFIG_SIGNY_URL_VALIDITY_DURATION.CERTIFICATE: ترميز URL base64 غير المحشو لشهادة الجهاز.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 لمزيد من المعلومات.