מערכות משובצות אבטחה תוך שימוש ב-PSoC 64
באדיבות ‎DigiKey's North American Editors
2022-07-27
מספר המוצרים המחוברים לאינטרנט ממשיך לגדול בקצב אקספוננציאלי. הבעיה בה נתקלים צוותי מוצר רבים היא העדר נסיון אבטחה מספיק של מפתחי תוכנה משובצת. חוסר נסיון יכול להוביל להעלמת עין מדרישות אבטחה, פערי אבטחה ומימוש לקוי. התוצאה היא מערכות מקושרות המוגנות בצורה גרועה ומהוות פרי בשל לגנבת קניין רוחני, יחד עם נתוני התקן ומשתמש.
למתכננים של מערכות מבוססות-מיקרו-בקר יש מספר פתרונות זמינים העומדים לרשותם בהם ניתן להשתמש לפישוט מימוש אבטחה ומספקים להם את הכלים לעשות זאת בהצלחה. לדוגמה, מיקרו-בקרי ליבה-יחידה יכולים להשתמש ב-TrustZone של Arm, שהוא חלק מארכיטקטורת Armv8-M (ומעבר). ישנם גם פתרונות עם מיקרו-בקרים מרובי-ליבה.
מאמר זה מראה כיצד מפתחים יכולים להשתמש במעבדים מרובי-ליבה כדי לאבטח את הפתרונות המשובצים שלהם. באופן מיוחד, המאמר בוחן את המיקרו-בקר המאובטח Cypress PSoC 64 ואת הכלים שהוא מספק כדי לממש פתרון מאובטח
יסודות אבטחה משובצת
אחד מיסודות הליבה של תכנון מוצר מאובטח הוא למנף בידוד (isolation) מבוסס-חומרה. בידוד זה יכול לבוא בצורות רבות, כמו סביבת ביצועים מבודדת או זיכרון מבודד מבוסס על יחידת הגנה על זיכרון (MPU). ברמה הגבוהה ביותר, מיקרו-בקר צריך להיות מסוגל לפצל את סביבת הביצועים שלו לסביבת עיבוד מאובטחת (SPE) וסביבת עיבוד לא-מאובטחת (NSPE).
ה-SPE היא סביבת ביצועים מבודדת השומרת על הזיכרון, הרכיבים וקוד היישום שלה בנפרד מה-NSPE. ה-SPE יכולה להחשב למעבד מאובטח. ה-SPE מריצה קוד מאובטח ופעולות כמו מערכת הפעלה מאובטחת ו/או Root-of-Trust (RoT). ה-SPE תבצע גם שירותים בטוחים (trusted services) כגון קריפטוגרפיה, אחסון מאובטח, attestation ורישום מאובטח. מספר מוגבל של יישומים בטוחים (trusted applications) הקשורים לפעולות מאובטחות ירוצו ב-SPE.
ה-NSPE, מצידה, ניתן להחשיבה לסביבת הביצוע עתירת המאפיינים המריצה הכל, פרט לפעולות מאובטחות. למעשה, ה-NSPE היא באמת מודל התכנות המוכר שמרבית מפתחי המשובצים מורגלים אליו; יש לו מערכת הפעלה זמן-אמת (RTOS) ואת מרבית רכיבי היישום.
בידוד (isolation) מבוסס-חומרה הוא אחד מדיירי הליבה, או הפרקטיקות הטובות ביותר המסופקת על ידי Arm® Platform Security Architecture (PSA) לבניית מערכות מאובטחות. השכבות השונות של בידוד שבהן דנו ניתן לראותן כמיושמות באיור 1, עם ה-PSoC 64 כדוגמה. בדוגמה זו, ה-SPE וה-NSPE (1) יוצרות בידוד חומרה בכך שסביבות זמן-הריצה (run-time environments) נמצאות על מעבדים נפרדים. בנוסף להפרדת זמן-ריצה (run-time), ה-RoT והשירותים הבטוחים (Trusted Services) מבודדים בידוד נוסף (2). לבסוף, כל יישום בטוח (trusted application) ב-SPE מבודד גם על ידי שימוש בכלים כמו מחיצות בטוחות (trusted partitions) ויחידות MPU (3).
איור 1: יישום מאובטח משתמש בבידוד מבוסס-חומרה כדי לפצל סביבות ביצועים. 1) NSPE ו-SPE הן מבודדות 2) RoT ושירותים בטוחים (Trusted Services) הם מבודדים 3) יישומים בטוחים (Trusted Applications) הם מבודדים. (מקור תמונה: Arm/Cypress)
ה-PSoC 64 הוא MCU שתי-ליבות בו ה-NSPE מבוצעת על מעבד Arm Cortex®-M4, וה-SPE מבוצעת על מעבד +Arm Cortex-M0. ה-+ARM Cortex-M0 מריץ את כל פונקציות האבטחה ויכול לתקשר עם ה-Cortex-M4 דרך אפיק תקשורת בין מעבדים (IPC). הארכיטקטורה מגבילה את הגישה ל-SPE, שהיא מבודדת חומרה.
כדי להתחיל להשתמש ב-PSoC 64, מפתחים ירצו לבחון את ערכת ה-PSoC 64 Secure Boot Pioneer.
ערכת ה-PSoC 64 Secure Boot Pioneer
לערכת ה-PSoC 64 Secure Boot Pioneer (איור 2) יש את כל מה שמפתחים צריכים כדי להתחיל עם האבטחה של היישום שלהם. ראשית, יש לה מודול PSoC 64 שיש לו את המיקרו-בקר PSoC 64, זיכרון חיצוני ואת כל מעגלי התמיכה (מוצגים באדום). הזיכרון החיצוני יכול לשמש לאחסון קוד יישום או לשמש לאחסון תמונות קושחה חדשות עבור עדכונים מאובטחים של קושחה דרך-האוויר (FOTA).
איור 2: לערכת ה-PSoC 64 Secure Boot Pioneer יש את כל מה שמפתחים צריכים כדי להתחיל בפיתוח יישומי IoT מאובטחים. (מקור תמונה: Cypress)
שנית, יש לה מודול Wi-Fi המאפשר למפתחים לחבר את הלוח לרשת. מודול ה-Wi-Fi הוא שימושי במיוחד עבור יישומי IoT בהם הלוח יתמחבר לשירותי ענן כמו AWS או Azure. לוח הפיתוח תומך ב-Amazon FreeRTOS, בה נדון בפרק הבא.
לבסוף, ערכת ה-Pioneer תומכת במגוון רחב של יכולות התרחבות כגון פסי-פינים, פסי-פינים Arduino ומגוון חיישנים. מפתחים יכולים למנף את מחוון המגע וכפתורי המגע, הלחצנים והפוטנציומטרים שעל הלוח, ועוד הרבה יותר. הלוח גם מאפשר לעשות די בקלות התאמות-מיוחדות עבור כמעט כל יישום.
חבילת התוכנה PSoC 64 Secure
תכנון יישום משובץ מאובטח יכול לגזול זמן ולהיות מאתגר. מפתחים חייבים לחפש פתרונות העוזרים להפחית עלויות וזמן-הגעה-לשוק בעוד הם מבטיחים שהיישום שלהם מאובטח. כדי לסייע בכך, ה-PSoC 64 מספק מגוון רחב של תוכנות המאפשרות למפתחים לבנות במהירות יישום מאובטח.
לדוגמה, ה-CySecureTools מספקת למפתחים סט כלים עבור יצירת מפתחות ואישורים, כמו גם כלים עבור חתימה על יישומי משתמש ואספקת מיקרו-בקרי Cypress. הכלי מאפשר למפתחים להעביר את ה-Cypress RoT ואחר כך להוסיף את נכסי האבטחה שלהם עצמם. מידע על אופן ההקמה והשימוש ב-CySecureTools ניתן למצוא בקובץ github repository README.
כלי שמפתחי IoT ימצאו שימושי הוא תמיכה ב-AWS תוך שימוש ב-FreeRTOS. ה-github repository מכיל דוגמאות שימושיות עבור שימוש ב-FreeRTOS ו-AWS עם ה-PSoC 64. הדוגמה הראשונה שמפתחים יהיו מעוניינים בה היא יישום ה-“Hello World” המשדר מסרי MQTT מה-PSoC 64 אל ענן ה-AWS. דוגמה זו מאפשרת למפתח לעבור בקלות את תהליך ההגדרה וההכנה (Provisioning), היצירה העיקרית ושלבי הפריסה. בסוף הדוגמה, למפתחים יש התקן משובץ מאובטח מחובר ל-AWS. פרטים אודות כיצד להתחיל ניתן למצוא במדריך ערכה Getting Started with CY8CKIT-064S0S204343.
יישומים מאובטחים עם Trusted Firmware-M (TF-M)
ה-PSoC 64 מספק למפתחים מסגרת ביצוע אבטחה שניתנת בקלות להתאמה-מיוחדת ליישום. מפתחים עשויים למצוא את ההבנה מה קורה מאחורי הקלעים למועילה מפרספקטיבה של תוכנה. במיוחד, קושחת ה-PSoC 64 ממנפת מסגרת ביצוע אבטחה התחלתית מקור-פתוח הידועה כ-Trusted Firmware-M או TF-M.
TF-M היא מימוש ייחוס של ה-Arm PSA IoT Security Framework. היא מספקת למפתחים כלי אבטחה שימושיים כמו אישור (attestation) התקן, אימות קושחה, שירותי הצפנה, ניהול סודי של התקן והפרדה מאובטחת על ידי חציצה, אם נזכיר כמה. Cypress מינפה TF-M כדי לבנות את מסגרת-ביצוע האבטחה שלה כך משמפתחים יכולים להשתמש בה אחר כך ביישום שלהם.
מפתחים יכולים לשנות את מסגרת-ביצוע האבטחה שלהם על ידי הוספת הקוד שלהם, הוספת פרופילים של אבטחה והרבה יותר. עם זאת, חשוב לזכור שככל שמשנים יותר את תוכנת ה-SPE, כך עולה הסיכוי להוספת פגיעות. מפתחים חייבים לשקול בזהירות את הסיכונים הקשורים בשינויים, תוספות או החסרות לקושחה הבסיסית.
טיפים וטריקים עבור אבטחת יישומים משובצים
מפתחים המחפשים לאבטח את היישומים המשובצים שלהם בפעם הראשונה יש להם הרבה מה לשקול. להלן מספר "טיפים וטריקים" שיכולים לפשט ולזרז פיתוח:
- בצע מודל איומים וניתוח אבטחה (TMSA) מוקדם במחזור הפיתוח.
- השתמש בלוח פיתוח כדי לבדוק את ה-RoT התקן, טוען אתחול (Bootloader) מאובטח, תהליך הגדרה והכנה (Provisioning) של התקן ועדכוני קושחה.
- אל תממש אבטחה לבד! מנף מקור פתוח קיים ואבטח חבילות קושחה כדי לצמצם עבודה חוזרת (Rework).
- היה בטוח לחשוב על כל מחזור חיי ההתקן, כולל כיצד יש להוציאו מכלל שימוש.
- בחן כלים כמו ה-CySecureTools; כלים כאלה באים עם תבניות אבטחה דוגמה, תוכנה ודוגמאות.
- בשעתוק ה-FreeRTOS github repository, שעתק את הגרסה המתויגת העדכנית ביותר. תוך שעתוק ה-mainline הפעיל, לעתים קרובות מוצאים אי-התאמה ובאגים שעדיין בעיצומם.
- התחל פרויקט על ידי הליכה דרך צעדי ה-Getting Started עם ערכת ה-Cypress CY8CKIT-064S0S2-4343W. היא מספקת את כל המידע הדרוש להרצת יישום התחלתי, שמאוחר יותר ניתן להתאים למטרות מוצר ספציפיות.
מפתחים שעוקבים אחרי ה"טיפים והטריקים" האלה יגלו שהם חוסכים לא מעט זמן וצער.
מסקנה
אבטחה אינה חייבת להיות קשה. על מפתחי משובצים להתמקד במבדלי המוצר שלהם, הרוטב הסודי שלהם. במרבית המקרים, זה לא אבטחה. מאמר זה בחן כיצד ה-PSoC 64 יכול לעזור למפתחים לאבטח במהירות את היישומים שלהם על ידי אספקת לא רק סביבת בידוד מבוססת-חומרה, אלא על ידי אספקת מסגרת של כלי תוכנה. ביחד, פתרונות החומרה והתוכנה מספקים למפתחים מחזור פיתוח אבטחה מואץ.

מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.