Table of Contents
הדחף של Secure Boot ב Embedded IoT אבטחה
התפשטות מכשירים המחוברים לאינטרנט בתעשיות – ממוניטורים רפואיים ובקרים תעשייתיים ועד למטרים חכמים ומרכזי אוטומציה ביתיים – יצרה משטח התקפה עצום.מכשיר שנפגע בשולי יכול לשמש שער לרשתות גדולות יותר, לאפשר גניבת נתונים, או לגרום נזק פיזי.אחד ההגנות הבסיסיות ביותר נגד איומים כאלה הוא הקמת סביבת ביצוע אמינה מרגע זה הוא מנעול מאובטח, שרשרת של מתווכים, של מערכת הצפנה שאינה אמינה, אשר הפכה למנגנון הצפנה של מערכת הפעלה קומפקטית של סוללות מבוזרת של קוסמטיקה.
ללא מגף מאובטח, תוקף עם גישה פיזית או תוכנה יכול להחליף את ה-חול או קושחה עם גרסה זדונית הנמשכת על פני ה- Reboots, טכניקה המכונה "קשת שורש חריפה" ברגע שהמכשיר מחוספס תחת קוד מבוקר תוקף, כל שכבה לאחר מכן - מערכת הפעלה, יישומים ונתונים - הוא חסום לא רק מונע את המעמד הזה של התקפות, אלא גם מספק את הבסיס לתכונות אבטחה גבוהות יותר כמו קושחיקה, כגון העדכונים של מכשיר מרוחק, עדכונים מאובטחים, , , , העדכונים של אבטחה מרחוק.
מה זה Secure Boot? A Cryptographicשרשרת של אמון
עקרון הליבה: לבדוק לפני האמון
מנעול מאובטח הוא תהליך בעל כוח חומרה או חומרה המוודא שכל פיסת קוד שהוצאה להורג לאחר איפוס היא אותנטית ובלתי מחוספסת.הוא מסתמך על תהליך של FLT:0root of trustFLT:1 (RoT) - רכיב בלתי-מוטשן, בדרך כלל מערכת הגנה שאינה מתפקדת או מודול אבטחה ייעודי - שמאחסן אחד או יותר מפתחות ציבוריים במהלך הסטארט-אפ, אז מתחיל שלב זיהוי דיגיטלי (שלב) של שלב-שלב הראשון של תיבת-שלב הראשון של חותם).
קרנות Cryptographic
מנעול מאובטח משתמש בקריפטוגרפיה סימטרית (תשתית ציבורית-קי, או PKI) מפתח פרטי, נשמר באופן מאובטח בסביבה של יצרן המכשיר, חותם כל תמונה קושחה.המפתח הציבורי המתאים מאוחסן בזיכרון הלא-מחוש של המכשיר ב-256 במהלך אימות, קו המטען SHAPO SHAD-ADD (Computer computer) הוא בעל תמונת הקושחה (R/R/RD-P) ומשווה אותו עם הערך המוטבע.
מחיקת אבטחה בטוחה מתכונות אבטחה אחרות
(החול מאובטח מבולבל לעיתים קרובות עם FLT:0) ממורמר (השימוש במערכות מבוססות TPM כמו Trusted Boot ב- Windows או נמדד ההשקה בלינוקס) בעוד שחול מאובטח מונע ביצוע קוד שאינו מהימן, מדד רשומות האתחול כל הקוד המבוצע ב- PCRs (Platform Configuration Registers) של TPM ללא בהכרח הפסקתחול של קוד האשפה: 2F2Fic מאפשר לעיתים קרובות ל-Firelimate.
מדוע Secure Boot הוא קריטי עבור מכשירי IoT Embedded
סיכון פיזי ומרוחק
מכשירים Embedded לעתים קרובות פרוסים בסביבות לא מבוססות שבו התוקפים יכולים לקבל גישה פיזית זיכרון פלאש, נמלי UART / JTAG, או להסיר שבבי זיכרון.ללא מגף מאובטח, תוקף יכול להבה קושחה שונה אשר מקלקל חיישנים אבטחה, exfiltrates נתונים רגישים, או להפוך את המכשיר למשתתף בוטנט.
התפטרות ותעשייה המנדטים
(הממשלה וגופים בתעשייה דורשים יותר ויותר אתחול מאובטח עבור מכשירים מחוברים: ה-FLT:0) EU Cyber Resilience Act of Reilience Act of Reilience Act of Reilience Act of 1,FLT:2California's SB-327FLT:3 (חוק אבטחת IoT), ו-FLT:4NISTIRFLT:5 הנחיות מדגישות את השלמות של המכשיר ממכשירי ה-חול עם ה-FDA לעתים קרובות דורשות אבטחה אופציונלית, כדי לספק מענה ל-IFLT 8259, כדי להבטיח, כדי לספק את רמות אבטחה אופציונליות ל-SEC.
מערכת של מערכת מאובטחת
שורש האמון (Rot)
RoT הוא העוגן של שרשרת האמון כולה.זה חייב להיות בלתי-מחוק (לא ניתן לשנות על ידי תוכנה) וחייב לספק סביבה בטוחה לאחסון מפתחות קריפטוגרפיים.
- (FLT:0) זיכרון בלבד (ROM) טביעת אצבע (ROM) ,A קטן תוכנית מסיכה מופצת לתוך השבב במהלך ההצתה.הוא מכיל את המפתח הציבורי ואת לוגיקה אימות ראשוני.
- (FLT:0) Trusted Platform (TPM)FIRLT:1) - שבב אבטחה ייעודי שיכול לבצע פעולות RSA / ECC, לאחסן מפתחות ולספק אחסון חתומה.מפתחת ההשבתה של TPM ומפתח אחסון נוצרים ומוגנים בתוך השבב.
- (FLT:0) סודיות (SE)FLT:1, בדומה ל-TPM אך לעתים קרובות מיועד לתקני כוח נמוך, קטן-ייצור.זה בדרך כלל מפעיל כרטיס Java או תפוח יליד עבור אימות מנעול מאובטח.
- (FLT:0)ARM TrustZone / Intel CSE / AMD PrinFLT 1:1 - בידוד On-chip שיוצר "עולם בטוח" נפרד מהמערכת הרגילה.הקושחה הפועלת בעולם הזה יכול ליישם מנעול מאובטח ולשמור על חומר מפתח במזגים מאובטחים בחומרה.
Signing Keys and Certificate Hierarchy
פריסות IoT בקנה מידה גדול משתמשות בשלוש שכבות PKI: שורש CA (offline, לעתים רחוקות בשימוש), ביניים חתימה CA, ו- זוגות מפתח ספציפיים למכשירים רבים, המכשיר מאחסן רק את המפתח הציבורי שורש CA (או את הישבן שלה) כמו רולט כל התמונות הקושחה חתמו על ידי מפתח ביניים, והמכשיר מאמת את שרשרת החתימה של תעודות ביניים בחזרה לשורש זה מאפשר החלפת מקשים: 0101.
Bootloader and Verification Stages
תהליך האתחול מחולק לשלבים מרובים כדי לשמור על כל שלב קטן מספיק כדי להתאים בזיכרון על שבב או מאובטח תוך מתן מערכת הפעלה מורכבת כדי להיות טעון:
- (ב) ROM LT:0 (Stage 0 (ROT)FLT:1 ROM לטעון את המכפל הראשון של שלב (FSBL) ומאמת את החתימה שלו.אם לגיטימי, ה-FSBL מבוצע על ידי שבב SRAM.
- (FLT:0)Stage 1 (FSBL)FirLT:1 ; ראשית DRAM, לטעון את מברשות הבמה הבאה (כמו U-Boot או מעומס קנייני) מהפלאש, ומאמת את החתימה שלה.
- (FLT:0)Stage 2 (SSBL)FLT:1 - עץ המכשיר הראשון, לטעון את מערכת ההפעלה kernel (לינוקס, Zephyr, FreeRTOS, וכו ') ומהווה את החתימה של תמונת הקרנל.
- (FLT:0)Stage 3 (OS Kernel)FearLT:1 ; לאחר ביצוע הקרנל, הסביבה המוסמך על ביצוע להורג (TEE) עשויה לאמת יישומים של סביבת המשתמש או לטעון מודולים של הקרנל חתום.
כל שלב מקטין את פני השטח של ההתקפה, כי בסיס מחשוב מהימן גדל רק לאחר מעבר אימות.
שלב-בי-שלב יישום מדריך ל-IoT Embedded
שלב 1: Define the Threat Model and Trust Boundaries
לפני יישום, לנתח את הפריסה הפיזית של המכשיר, קישוריות רשת, ואת הערך של הנתונים שהוא מטפל.לדוגמה, חיישן מופעל סוללות כי מתקשר רק על BLE יכול להיות פרופיל סיכון שונה מאשר PLC תעשייתי ביקורת בטיחות.מודל האיום קובע את הכוח הנדרש של RoT, גודל המפתח, והאם יש לתמוך בביטול.
שלב 2: בחר פלטפורמה קשיחה עם Secure Boot Capabilities
לא כל המיקרו-בקרים תומכים במגף מאובטח.בחר שבב עם מטען מנעול לא מלוטש, על אחסון מפתח שבב (למשל, eFuses או OTP NVRAM), ו מאיץ הצפנה מובנה בחומרה הצפנה. ספקים מובילים המציעים פתרונות מנעולים מאובטחים כוללים:
- (FLT:0NXP i.MX RT ו- i.MX 8/9 8/910Felo:1 - High Assurance Boot (HAB) באמצעות SHA-256 ו-RSA; תומך בתמונות מגף מוצפנים.
- (FLT:0STM32MP1 / STM32H7IRLT) 1 - STM32 מאובטח מנעול באמצעות X-CUBE-SBSFU (סעיף Boot ו- Secure Firmware Update).
- (ב) ⁇ :0Microchip SAM L10/LIRFLT) 1 - TrustZone ו- Secureחול עם הגנה מרכזית בזיכרון הטמפר-resistant.
- (FLT:0)Espressif ESP32-C3/SIRFLT:1 - מנעול מאובטח V2 עם אימות חתימה דיגיטלית, תמיכה הצפנה פלאש.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0)ARM Cortex-M33/M5503IRLT:1) TF-M (מסמך על תוכנה-M) יישום שימוש במגף מאובטח.
- (FLT:0)Intel / AMD x86 מעבדי IoT IoT של AMD x86: UEFI Secure Boot ו- Boot Guard (המפתח ה-die)
אם SoC שנבחר אינו כולל חומרה RoT, באפשרותך להוסיף TPM דיסקרטי (למשל, Infineon SLB9670) או אלמנט מאובטח (MicrochipATE CC608A) כדי לספק אחד.חומרה חיצונית RoTs הם יקרים יותר אך מציעים שדרוג.
שלב 3: ליצור ולחסן את שורש האמון
במהלך ייצור המכשיר, כל מכשיר חייב להיות מפתח שורש ייחודי או משותף שלו מתוכנת לתוך הזיכרון הבלתי-מוגדר.עבור ייצור בנפח גבוה, רוב היצרנים משתמשים ב-FLT:0flash-on-productionFLT:1 גישה שבה מפתח הציבור מפוצץ ל- eFuses כמבצע חד פעמי.
שלב 4: לחתום על תמונות של המשרד
הגדר צינור CI /CD המסתים את כל התמונות הקושחה המשוחררות עם המפתח הפרטי המתאים.עבור כל גרסה קושחה, התסריט בונה יוצר בינארי, מצמיד את ה- SHA-256/384, ונספח את RSA-2048/4096 או ECDSA חתימה. רבים של ספק SDKs לספק כלי חתימה; עבור מטעני מנעולים מותאמים אישית, אתה יכול להשתמש ב-FLT:0 ותבנית החתימה למטרה.
חשוב: לא רק את ה-Coשחה תשלום, אלא גם את metadata שלה (למשל, מספר גרסאות, מזהה חומרה היעד, אורך התמונה) זה מונע התקפות מתגלגל שבו תוקף חוזר לגרסה ישנה יותר, פגיעת קושחה.
שלב 5: הגדר את ה Bootloader for Verification
התאמה אישית של U-Boot (מערכות מבוססות לינוקס)
עבור מערכות באמצעות U-Boot, לאפשר CONFIN OF TRUST ו CONFender VERIFICATION INSECURE ולספק את ה-Commonb של U-Boot:0verifiedחול (VBOOT)FLT:1 מנגנון תומך בתמונות מאומתות עם metadata (גרסה עבור rollback).
שימוש ב-MCUBoot (עבור RTOS או Zephyr)
MCUBoot הוא תקן דה Facto לאבטחתחול על ARM Cortex-M ומיקרובקרים דומים.זה תומך אימות חתימה באמצעות RSA, ECDSA, והוא ניתן להגדרה עם הצפנה של תמונה. MCUot משלב עם שרשרת ה-ZphyrOS פועל עם פלאש חיצוני.אדריכלות שלה תומכת החלפת תמונות כפולה (A / Bעדכון) ו-One-image עם החלמה.
המונחים: ownloaders
עבור NXP i.MX, להגדיר את HAB (High Assurance Boot) באמצעות הכלי CST. עבור STM32, השתמש ב- X-CUBE-SBSFU הכולל גם מנעול מאובטח ועדכון קושחה מאובטח בחבילה אחת. עבור ESP32, מאפשר CONF SECURE BOOT V2 בתפריט ולנהל את התסריטאיטר 1:1 .
שלב 6: יישום עדכון אבטחה Over-the-Air (FOTA)
מנעול מאובטח הוא רק חזק כמו מנגנון העדכון שלו.אם התוקף יכול להזריק קושחה ללא חתימה באמצעות ערוץ אנט, אימות מנעול מאובטח בחול הבא יתפוס אותו, אבל תנאי הכחשה של שירות יכול לגרום.תהליך העדכון עצמו חייב לאמת את החתימה לפני כתיבת החלוקה.
- בנק A פועל קושחה נוכחית; בנק B הוא ריק או מחזיק את הגרסה הטובה האחרונה הידוע.
- המגפיים של ה-Glockloader מהבנק עם הגרסה הגבוהה ביותר שעוברת בדיקה.
- אם עדכון OTA נכשל (בדיקה או חתימה לא חוקי), ה-חול חוזר לבנק השני, שמירה על פונקציונליות המכשיר.
- בעדכון מוצלח, ה-Botloader מצמיד דגל לחול מהבנק החדש.
כל העדכונים חייבים להיחתם עם אותו מפתח פרטי (או שרשראות) תמיד צריך (FLT:0version מבוסס nonceFLT:1 או מול מונוטוני כדי למנוע התקפות חוזרת כאשר תמונה קודמת ישנה יותר משוחקת.
אדריכלות: Real-World Implementation
ARM TrustZone-M (Cortex-M23/M33) עם TF-M
חברת F-M (F-M) מספקת יישום הפניה של מגף מאובטח, מנהל מחיצה מאובטח ועדכון קושחה מאובטח עבור מערכות ARMv8-M. TF-M של ה-BL פועל לצד MCUBoot ותומכת בחתמת תמונות, אימות ואנטי-rollback.מנהל החלוקה הבטוח (SPM) מבודד קוד יישומים ל"בטוח"עולם ללא אבטחה" אפילו לאחר מכן.
AMD / Ryzen Embedded + PSP + UEFI Secure Boot
מערכות משובצות גבוהות משתמשות ב- x86 UEFI Secure Boot (כפי שהוגדר על ידי Microsoft Secure Boot ספציפי ל- Windows) בשילוב עם חומרה Secure Processor (PSP) UEFI Secure Bootifyies (ה-EFIloader באמצעות מפתח פלטפורמה (PK, KEK) מאוחסנים ב- UEFI Non-Volatile RAM. for פריסות, UEFI Secure Bootile, UEFI Secure Bootit הוא מורכב עבור התקנים מסוימים, אך ורק עבור לינוקס.
NXP i.MX High Assurance Boot (HAB)
ה- NXP של HAB משמש נרחב במכשירים תעשייתיים ותעשייתיים.זה משתמש ב"סופר שורש" (SRK) מאוחסן במזג אוויר מאובטח.החול מאמת את CSF (קובץ CSF) הכולל חתימה דיגיטלית עבור כל תמונה. HAB גירסה 4 תומך בתמונות מוצפנים וערכי SRK מרובים לסיבוב מרכזי.
אתגרים משותפים וכיצד למיין את אותם
מורכבות ניהולית
ההוריד הגדול ביותר הוא להגן על המפתח הפרטי לאורך מחזור חיי המוצר.הפרקטיקות הטובות ביותר: להשתמש ב- HSM (מודול אבטחה מודע) או שירות מפתח מבוסס ענן (AWS CloudHSM, Azure Key Vault) עבור חתימה על פעולות. רוטט מקשי ביניים באופן קבוע. ליישם טקס מפתח הדורש מספר רב של חותמים מורשים.
שחזור ממכשירים ריקים
אם הבזק מושחת או עדכון מתקין באופן לא נכון, המכשיר עלול לסרב לחול. Mitigations: לכלול מברשות מינימלית משנית בזיכרון מוגן בכתב שיכול ליזום מצב התאוששות באמצעות כפתור פיזי, ממשק סידורי או USB DFU יש כמה SoCs יש ממזג "החלמה כוח" כי עקף אתחול מאובטח למטרות תיקון - אבל זה פותח חלון להתקפות פיזיות אם לא נשלט כראוי.
הופעות ו-Bot Time Overhead
אימות חתימה אסימטרי יכול לקחת מאות אלפי שניות, במיוחד על MCUs כוח נמוך ללא מאיץ הצפנה חומרה. השתמש ECDSA על RSA עבור חתימות קטנות יותר אימות מהיר יותר. ספקים רבים כוללים מנועי הצפנה ייעודיים המבצעים פעולות לאמת בתוך 10 מ"מ עבור חתימה 256 סיביות ECDSA. Measure וייעל כל אימות של שלב; פעילות כבדה (כמו חישוב) לאחר DRAM קטן אם החתימה הראשונה היא 256.
חוסר אחידות בתעשייה
לכל ספק SoC יש יישום מנעול מאובטח קנייני.מפתחים חייבים ללמוד את הכלי הספציפי ותסריט בכל פעם.שימוש במטען קוד פתוח כמו MCUBoot או U-Boot מופשט כמה מההבדלים הללו.המאמצים לתקינה באמצעות קבוצת מחשוב מבוזרת:0 (TCG) ®FLT:1 ו-FLT2Platformalrated F3 הם בהדרגה מוסמך אבטחה (DI).
Enhancing Secure Boot with Complementary Technologies
מנעול מאובטח לבדו אינו מגן מפני התקפות בריצה, דליפות צד, או שרתי עדכון פשרניים.שלבו אותו עם:
- (בקיצור:0) בידוד כפוי של ההרחבה:1 (למשל, ARM TrustZone, Intel SGX, או RISC-V PMP) כדי להגן על המפתחות בזיכרון גם לאחר האתחול.
- (ב) ,0) ,מאורגן אחסון מוצפן 1 (הצפנת flash) כדי למנוע מיצוי של מפתחות או קושחה בינארי.
- (FLT:0)Remote attestationFLT:1 - המכשיר מוכיח את זהותו ואת השלמות של שרשרת האתחול שלה לשרת ענן (למשל, באמצעות DICE - מכשיר Identifier הקטור מנוע).
- (ב) ,0) ניטור יושרה של גלגול זמן (FLT:1) - בדיקות תקופתיות של אזורי קוד קריטי ורישום תצורה.
- (FLT:0) סביבות הוצאה להורג מאוממות (TEE)FIRLT:1) כדי לארח פעולות רגישות כמו דור מפתח או לוגיקה קריפטוגרפית בעולם מבודד גם לאחר המגפיים של מערכת ההפעלה.
כיוונים עתידיים: למשל, DICE, PSA Certified ו-Integrated Security
האדריכלות (FLT:0)Device Identifier Tool Engine (DICEura)FLT:1 אדריכלות, המוגדרת על ידי TCG, משתמשת בסוד חומרה פשוט, הנקראת סוד התקן ייחודי (UDS), ייחודי לכל שבב. atחול, השכבה ROM שואבת מפתח הצפנה שקושר לשחיקה.
(FLT:0.PSA CertifiedFLT:1) מציעה מסגרת לבניית מכשירים IoT ו- certifying עם רמות אבטחה מ 1 (הגנה בסיסית) ל 3 (בידוד קשיח). רמה 2 המנדטים מאובטחים אתחול, בעוד שרמה 3 דורשת התנגדות טמפר פיזי.
יותר ויותר, מגף מאובטח משולב ישירות לתוך סיליקון בצורת " ⁇ בטיחות" ברמת השבבים, אשר מטפל בכל אימות ואחסון מפתח.כפי שעולה של תכונות אלה יורדת, אפילו את הזול ביותר עלות IoT SoCs צפויים לשלוח עם אחסון לא מופרך על ידי על-ידי.
מסקנה: להפוך את Secure Boot the First Line of Defense
יישום מנעול מאובטח במכשירי IoT משובצים אינו משימה טריוויאלית, אבל זה היחיד החשוב ביותר נגד קושחה מתמשכת tampering. על ידי הקמת שרשרת חומרה של אמון, יצרנים יכולים להבטיח שכל מכשיר מחוספס רק לתוך קושחה אותנטית לא מתואמת, לא מתואם התהליך דורש בחירה זהירה של חומרה עם שורש מתאים של אמון, ניהול מפתח מלוטש, ושילוב מאובטח עם מנגנונים מאובטחים של מנגנונים מחוץ לפשרה, כמו גם על פני השטח, כמו גם על פני השטח, כמו גם על פני השטח, להמשיך את כל אמצעי אבטחה מופחתת אבטחה מוגבלת, כמו גם על בסיס קבוע של אמצעי אבטחה, כמו גם על פני השטח של אמצעי אבטחה, שמירה על בסיס יעיל של אמצעי אבטחה, שמירה על בסיס מתאים של אבטחה, שמירה על בסיס מתאים של אבטחה, שמירה על בסיס יעיל של אבטחה, על בסיס יעיל של אבטחה, על בסיס יעיל של אבטחה, על בסיס יעיל של אבטחה, על בסיס קבוע של אבטחה, על בסיס קבוע של אבטחה, על בסיס יעיל של אבטחה, על בסיס קבוע של אבטחה, שמירה על בסיס יעיל של אבטחה, על בסיס קבוע של אבטחה, על בסיס יעיל של אבטחה, על בסיס יעיל של אבטחה, על בסיס קבוע של אבטחה, על בסיס קבוע של אבטחה, שמירה על בסיס יעיל של אבטחה,
(ב) לעיין ב[[1924]], [[1924]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]