Google متعهد به پیشبرد برابری نژادی برای جوامع سیاه است. ببینید چگونه.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

ابزار ارائه کارخانه OpenWeave

jinja-placeholder-0 .md "> مشاهده منبع در GitHub

ابزار تأمین کارخانه OpenWeave وسیله ای مناسب برای تهیه اطلاعات پیکربندی مداوم در هر دستگاه بر روی دستگاههای دارای قابلیت Weave فراهم می کند. ابزار تهیه کارخانه در نظر گرفته شده است که به عنوان بخشی از یک فرآیند خط تولید استفاده می شود که دستگاه های فردی را با هویت و اطلاعات معتبر منحصر به فرد قبل از حمل و نقل به مشتریان مهر می کند. همچنین می تواند توسط توسعه دهندگان برای شخصی سازی سخت افزار پیش تولید مورد استفاده در طی مراحل توسعه استفاده شود.

تئوری بهره برداری

هدف ابزار تأمین کارخانه OpenWeave تزریق اطلاعات پیکربندی شده به فروشگاه پیکربندی مداوم دستگاه است ، جایی که می توان آن را در زمان اجرا توسط سیستم عامل دستگاه برداشت و استفاده کرد. پیکربندی دستگاه مداوم به طور معمول در فلاش داخلی دستگاه ذخیره می شود ، اگرچه جزئیات دقیقاً نحوه ذخیره داده ها و با چه فرمی ، از بستر به سیستم عامل دیگر متفاوت است. خود ابزار Factory Provinging مستقل از قالب نهایی ذخیره سازی است و برای نوشتن اطلاعات به روشی صحیح به کد موجود در سیستم عامل دستگاه متکی است. رابط کاربری این ابزار همچنین تا حد زیادی مستقل از نوع سخت افزاری است که پیکربندی شده است ، به این معنی که فرآیندهای تولید مشابه را می توان در خطوط محصول که بر اساس سیستم عامل های سخت افزاری مختلف ساخته شده اند ، به کار گرفت.

Factory Provisioning Tool به صورت کار اجرا شده روی دستگاه میزبان است که از طریق برخی از اشکال اشکال زدایی یا کنترل به یک دستگاه هدف متصل می شود - به عنوان مثال ، یک درگاه JTAG یا SWD. این ابزار با تزریق اطلاعات به رم دستگاه به صورت رمزگذاری شده خاص کار می کند. سپس به دستگاه دستور داده می شود که مجدداً راه اندازی مجدد شود ، در این مرحله کد داخلی که در سیستم عامل دستگاه قرار دارد داده های رمزگذاری شده را پیدا کرده ، یکپارچگی آن را تأیید کرده و مقادیر موجود را در قالب ثابت برای سیستم عامل در ذخیره سازی مداوم می نویسد.

كدی روی دستگاه كه داده های تهیه شده تزریقی را تشخیص داده و پردازش می كند ، در لایه دستگاه OpenWeave قرار دارد و در هر سیستم عامل پشتیبانی شده قابل فعال سازی است. پس از فعال کردن ، کد در هر زمان بوت دستگاه به طور خودکار اجرا می شود ، در یک نقطه اولیه در مراحل اولیه تنظیم دستگاه. این کد با اسکن یک RAM در منطقه خاص پلتفرم کار می کند. در سیستم عامل های دارای حافظه متوسط ​​(به عنوان مثال ، <1M) ، اسکن شامل تمامی رم های موجود می شود.

وقتی در RAM قرار می گیرید ، داده های تهیه شده با یک پیشوند به راحتی قابل شناسایی رمزگذاری می شوند ، که به شما امکان می دهد به سرعت در طی فرآیند اسکن پیدا شود. برای تأیید صحت داده ها قبل از پردازش ، از یک مقدار بررسی یکپارچگی مبتنی بر یک هش رمزنگاری استفاده می شود.

به طور پیش فرض ، ابزار تأمین مکان RAM را انتخاب می کند که در آن می تواند داده های تهیه شده را بر اساس بستر دستگاه مورد نظر تزریق کند. این انتخاب را می توان از طریق استدلال به ابزار نادیده گرفت. به طور کلی ، نیازی نیست که سیستم عامل دستگاه برای دریافت داده ها یک مکان RAM را به طور خاص رزرو کند. به طور معمول ، تهیه داده به محلی برای RAM نوشته شده است که برای اهداف دیگر اختصاص داده شده است ، اما معمولاً در مراحل اولیه بوت دستگاه استفاده نشده است. انتخابهای رایج ، قسمت بالای سیستم اولیه یا همان دورنمای عرصه پشته است.

ابزار ارائه کارخانه به مجموعه ای از ابزارهای توسعه خارجی برای واسطه با دستگاه هدف متکی است. ابزارهای خاص بکار رفته به نوع دستگاه هدف بستگی دارد. دو رابط دستگاه در حال حاضر پشتیبانی می شوند:

  • یک کاوشگر اشکال زدایی J-Link SEGGER J-Link که به پورت JTAG یا SWD دستگاه متصل است
  • پورت سریال USB متصل به Espressif ESP32

رابط J-Link به ابزار SEGGER J-Link Commander (JLinkExe) متکی است که باید جداگانه روی دستگاه میزبان نصب شود.

رابط ESP32 به دستور Espressif esptool.py متکی است ، که به عنوان بخشی از ESP-IDF SDK Espressif ارائه می شود.

انواع اطلاعاتی که می توانند تهیه کنند

ابزار تهیه کارخانه OpenWeave قادر به ارائه انواع زیر اطلاعات است:

  • شماره سریال دستگاه
  • شناسه دستگاه Weave اختصاص داده شده به سازنده
  • گواهینامه Weave و کلید خصوصی اختصاص داده شده به سازنده
  • کد جفت بافی
  • شماره تجدید نظر در محصول
  • تاریخ تولید

اگرچه به طور کلی یک دستگاه برای کارکرد صحیح به کلیه اطلاعات فوق احتیاج دارد ، اما نیازی به تهیه کلیه اطلاعات در همان زمان نیست. بنابراین ، ارائه انواع مختلفی از اطلاعات می تواند در نقاط مشخصی در فرآیند تولید اتفاق بیفتد. علاوه بر این ، می توان مقادیر قبلی را با مقادیر جدید در مرحله تأمین بعدی جایگزین کرد.

منابع تهیه اطلاعات

اطلاعات ارائه دهنده دستگاه را می توان به روش های زیر به ابزار تهیه کارخانه ارائه داد:

  • استدلال خط فرمان
  • با استفاده از تهیه پرونده CSV
  • با واگذاری مقادیر از یک سرور تأمین کننده Nest

خط فرمان

در ساده ترین شکل ، اطلاعات ارائه دهنده دستگاه به طور مستقیم در خط فرمان به ابزار ارائه کارخانه OpenWeave مشخص می شود. مثلا:

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000001 \
    --pairing-code NESTUS --mfg-date 2019/04/01

مقادیر داده دودویی ، مانند گواهی نامه Weave و کلید خصوصی ، می توانند به صورت رشته های base-64 یا به عنوان نام پرونده های حاوی داده های مورد نظر به شکل خام (باینری) مشخص شوند.

برای لیست کامل آرگومان های خط فرمان موجود ، در زیر مشاهده کنید.

تهیه پرونده CSV

برای تأمین تجهیزات عمده دستگاهها ، ابزار تهیه کارخانه همچنین می تواند داده های تهیه شده از پرونده داده های تهیه شده با فرمت CSV را بخواند. انتظار می رود ستون های این پرونده با انواع داده های تأمین کننده خاص مطابقت داشته باشد - یعنی Serial_Num ، Certificate ، Private_Key و غیره. ردیف های این پرونده مقادیر فردی برای دستگاه های خاص ، فهرست بندی شده توسط شناسه دستگاه Weave ( Device_Id ) ارائه می دهند. شناسه دستگاه خاصی که باید تأمین شود باید در خط فرمان مشخص شود. مثلا:

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000001 \
    --prov-csv-file ./dev-provisioning-data.csv

ستون های زیر CSV پشتیبانی می شوند:

نام قالب شرح
Device_Id 16 رقم شش برابر شناسه دستگاه بافندگی. باید حضور داشته باشد
Serial_Num رشته شماره سریال دستگاه.
Certificate پایه-64 رشته مجوز دستگاه Weave اختصاص داده شده به سازنده.
Private_Key پایه-64 رشته کلید خصوصی Weave اختصاص داده شده توسط سازنده.
Pairing_Code رشته کد جفت بافی.
Product_Rev عدد صحیح شماره تجدید نظر در محصول
Mfg_Date YYYY / MM / DD تاریخ ساخت دستگاه.

ستون ها ممکن است به هر ترتیب در پرونده CSV ظاهر شوند. همه ستون ها به استثنای Device_Id اختیاری هستند. هر مقداری که در پرونده CSV موجود نیست به سادگی در دستگاه ارائه نمی شود.

کاربر می تواند علاوه بر پرونده CSV ، مقادیر تأمین کننده فردی را نیز در خط فرمان مشخص کند ، در این صورت مقدار خط فرمان نسبت به مقادیر موجود در پرونده برتری دارد.

پشتیبانی از فرمت فایل CSV توسط ابزار Factory Provinging با خروجی فرمان gen-provisioning-data ابزار weave سازگار است.

سرور تأمین لانه

ابزار تأمین کارخانه از واکشی اطلاعات ارائه دهنده سرویس از یک سرور تأمین کننده Nest با استفاده از پروتکل مبتنی بر HTTPS پشتیبانی می کند. پروتکل ارائه دهنده سرور می تواند برای واگذاری گواهی دستگاه Weave اختصاص داده شده توسط سازنده ، کلید خصوصی مربوطه و کد جفت سازی Weave از سرور تهیه کننده استفاده شود.

محل شبکه سرور تأمین کننده با تهیه یک URL پایه در خط فرمان ابزار تهیه ، مشخص می شود. اطلاعات تهیه مورد نظر با مشخص کردن شناسه دستگاه Weave در خط فرمان انتخاب می شوند. مثلا:

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000001 \
    --prov-server https://192.168.172.2:8000/

کاربر ممکن است علاوه بر تهیه URL سرور ، مقادیر تأمین کننده فردی را نیز در خط فرمان مشخص کند. در این حالت ، مقادیر داده شده در خط فرمان بر ارزشهایی که توسط سرور برگردانده می شوند ، تقدم دارند.

فعال / غیرفعال کردن پشتیبانی از کارخانه

پشتیبانی از تهیه کارخانه OpenWeave در سیستم عامل دستگاه توسط گزینه WEAVE_DEVICE_CONFIG_ENABLE_FACTORY_PROVISIONING گزینه پیکربندی زمان کامپایل کنترل می شود. این گزینه به طور پیش فرض فعال است . این ویژگی را می توان با WeaveProjectConfig.h گرفتن گزینه در پرونده WeaveProjectConfig.h برنامه WeaveProjectConfig.h . مثلا:

#define WEAVE_DEVICE_CONFIG_ENABLE_FACTORY_PROVISIONING 0

به طور کلی ، امکان تهیه کارخانه در سیستم عامل دستگاه تولید بی خطر است به شرطی که رابط کاربری اشکال زدایی دستگاه به طور مناسب در دستگاه های تولید غیرفعال شود. این امر می تواند از طریق ابزار سخت افزاری (به عنوان مثال ، با دمیدن فیوز در SoC) یا در نرم افزار (به عنوان مثال از طریق یک بار گیرنده ایمن که دسترسی به اشکالزدایی را به عنوان بخشی از فرایند راه انداز مسدود می کند) حاصل شود.

اجرای ابزار تهیه کارخانه

ابزار ارائه کارخانه OpenWeave از گزینه های خط فرمان زیر پشتیبانی می کند:

گزینه شرح
- هدف <string> نوع دستگاه هدف گزینه ها عبارتند از: nrf52840 ، esp32
--load-addr <hex-digits> آدرس در حافظه دستگاه که در آن داده های تهیه شده نوشته خواهد شد.
--verbose ، -v سطح سر و صدا بودن خروجی را تنظیم کنید. از آرگومان های متعدد برای افزایش شفافیت استفاده کنید.
--serial-num <string> شماره سریال دستگاه را تنظیم کنید.
--device-id <hex-digits> شناسه دستگاه اختصاص داده شده توسط سازنده را تنظیم کنید.
--device-cert <base-64> | <file-name> گواهی دستگاه سازنده Weave را تنظیم کنید.
--device-key <base-64> | <file-name> کلید خصوصی دستگاه Weave را تنظیم کنید.
- کد پستی <string> کد جفت دستگاه را تنظیم کنید.
--product-rev <integer> ویرایش محصول را برای دستگاه تنظیم کنید.
--mfg-date <YYYY / MM / DD> | امروز | اکنون تاریخ تولید دستگاه را تنظیم کنید.
--jlink-cmd <path-name> مسیر به دستور JLink. پیش فرض "JLinkExe".
--jlink-if SWD | JTAG نوع رابط J-Link. پیش فرض SWD.
--jlink-speed <integer> | تطبیقی | خودکار سرعت رابط J-Link.
--jlink-sn <string> شماره سریال پروب J-Link.
--esptool-cmd <path-name> مسیر به دستور esptool. پیش فرض "esptool.py".
--port <path-name> نام دستگاه پورت COM برای ESP32. پیش فرض به / tty / USB0.
--sped <integer> نرخ Baud برای درگاه COM. پیش فرض به 115200.
--prov-csv-file <file-name> دستگاه تهیه داده های مربوط به پرونده تهیه CSV را بخوانید.
--prov-server <url> اطلاعات ارائه دهنده دستگاه را از سرور تأمین کننده بخوانید.
اعتبار سنجی سرور قابل تغییر هنگام استفاده از HTTPS ، اعتبار گواهی ارائه شده توسط سرور تهیه کننده را غیرفعال کنید.

مثال ها

دستور زیر شناسه دستگاه ، شماره سریال ، تجدید نظر در محصول و کد جفت شدن را روی مقادیر خاص قرار می دهد. تاریخ تولید به تاریخ فعلی تنظیم شده است. گواهی دستگاه و کلید خصوصی برای تنظیم مقادیر داده شده در پرونده CSV با مخزن منبع openweave-core اند.

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000042 \
    --serial-num JAYS_DEVICE_42 --product-rev 1 --pairing-code NESTUS --mfg-date today \
    --prov-csv-file ~/projects/openweave-core/certs/development/device/test-dev-provisioning-data.csv