חדשות היום

Implementing secured software updates for IoT devices

  1. הקדמה

התקני IOT מיושמים בסביבה דינמית לכן היכולת להתקין בהם עדכוני תוכנה היא חיונית. עדכוני תוכנה חשובים כדי להוסיף תכונות, לתקן באגים וכן כדי לפתור בעיות של נקודות חלשות באבטחת מידע.

התקנים כאלה יכולים להיחשף למניפולציות על ידי התקנת קוד זדוני (MALWARE) על ידי האקרים שיוכלו להשתלט על תשתיות קריטיות, מתקנים תעשייתיים, על רכבים וכן לאסוף מידע חסוי.

  1. תהליך התקנת עדכוני גרסאות תוכנה – תיאור בסיסי

תיאור בסיסי של עדכון מאובטח של תוכנה מתואר בציור 1.

עדכון התוכנה נעשה בדרך כלל במודל של שידור (BROADCAST). זה אומר שהעדכון מיוצר (A) ואחר כך מופץ ליחידות הקצה (B).

התוכנה מוטענת להתקן (1) ובהמשך יחידת הקצה בודקת מקוריות (AUTHENCITY) ושלמות (INTEGRITY) של התוכנה וכן מאמתת שמקור העדכון מורשה (2).

אחרי בדיקה מוצלחת העדכון מותקן ברכיב (3) ומופעל (4).

הפעלה זו מבוצעת בדרך כלל על ידי BOOTLOADER לאחר תיחול הרכיב.

  1. היבטים על אבטחת מידע בתהליך עדכון התוכנה

מקוריות (Authenticity) – וידוא שמקור התוכנה מגוף מאושר לביצוע עדכון תוכנה.

שלמות (Integrity) – הגנה על שלמות התכנה משינויים לא מורשים למשל ע”י קידוד וחתימה Checksum/Hash

משטר עדכונים (Policy enforcement Processing) – כללי עדכון תוכנה למשל סדר עדכון תוכנה, רק עדכונים חדשים יכולים להחליף עדכונים ישנים.

הגנה אופציונלית על קניין רוחני (IP) – מניעת העתקה ו – REVERSE ENGINEERING של קוד ואלגוריתמים.

  1. נתוני קובץ עדכון התוכנה

קובץ עדכון התוכנה מכיל את עדכון התוכנה עצמו (Update File/Image שמעודכן בהתקן ה-IOT וכן נתונים נוספים (METADATA) המשמשים עבור תהליך ההתקנה וכן מידע על קובץ העדכון. (תמונה 2)

  1. יישום עדכון תוכנה מאובטח בהתקן IoT

הרכיבים העיקריים בהתקני IoT הם:

מיקרוקונטרולר, זכרון בלתי נדיף (לעיתים חלק מוטמע בקונטרולר), רכיב אבטחה (ליישום אבטחה חומרתית), רגשים (SENSORS) ורכיבי הפעלה (ACTUARORS).

האתגר הינו למפות את עדכון התכנה המאובטח לארכיטקטורה של הרכיב.

תמונה 1: תהליך התקנת עדכון גרסת תוכנה – תיאור בסיסי

שלב (1) אחסון מאובטח של מפתח ציבורי ואימות מאובטח של חתימת המטא נתונים.

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

תרחישי התקפה אפשריים הם: החלפת מפתח האימות הציבורי של מכשיר IoT במטרה להתקין קובץ עדכון תכנה חליפי.

איום שני יהיה יישום פסול של אלגוריתם האימות. זה יקל יותר על התוקף לתפעל פעולה זו.

אבטחה מבוססת חומרה היא דרך יעילה להתמודד עם התקפות אלה. פתרונות עמידים בפני חבלה שמגנים על שלמות המפתחות ומאפשרים לאחסן אותם בצורה מאובטחת.

פתרונות אבטחה מבוססי חומרה מציעים גם פונקציות לאימות חתימות על שבב באמצעות קריפטוגרפיה של מפתח ציבורי ברכיב האבטחה המוגן חומרתית.

שלב (2) אחסון מאובטח וטיפול בעדכון מפתח המאסטר לפענוח קובץ התוכנה.

ניתן גם להצפין אופציונלית את קובץ עדכון התוכנה ולהוסיף שכבת הגנה נוספת.

מפתח הפענוח נגזר ממפתח משותף המותקן בכל המכשירים מאותו סוג המכונה מפתח מאסטר העדכונים.

מפתח זה הוא יעד מעניין עבור התוקפים לכן יש לאחסן בצורה מאובטחת ולהגן עליו מפני תקיפה.

גישת אבטחה מבוססת חומרה היא היעילה ביותר לאחסן מפתח אב לעדכון בסביבה מאובטחת ועמידה בפני חבלה. בנוסף, ניתן לייצר את המפתח ברכיב האבטחה. זה מקטין את עוד יותר את הסיכון לתקיפה על ידי הגבלת הטיפול בעדכון מפתח האב לרכיב האבטחה המוגן בלבד ולא חושף אותו למעבד היישומים.

לאחר מכן בדרך כלל, הפענוח של הקובץ נעשה על ידי BOOT LOADER שרץ על מעבד המיקרו מסיבות של ביצועים עדיפים.

שלב (3): העתקת קובץ עדכון התוכנה למיקום היעד.

בסוף שלב זה, קובץ עדכון התוכנה מועתק לכתובת הסופית בזיכרון ההבזק של המכשיר.

אם קובץ עדכון התוכנה מוצפן, יש לפענח אותו באמצעות מפתח נגזר לפני שניתן יהיה להעתיק אותו.

שלב (4) בדיקת תקינות קובץ התוכנה והפעלת התוכנה החדשה.

לפני הפעלת התוכנה חדשה, מבוצעת בדיקת תקינות סופית. ניתן לעשות זאת על ידי הפעלת חישוב HASH על קובץ עדכון התוכנה המועתקת והשוואה לערך מאוחסן במטא נתונים.

ניתן לבצע בדיקה מאובטחת זו כפונקציה המוכלת ברכיב האבטחה. זה מקל על ההטמעה של האבטחה ומקטין את ארכיטקטורת האבטחה הנדרשת למכשיר.

התוצאה של השוואה זו מפעילה את המעבר לתוכנה החדשה.

שלב (5) הפעלת קובץ התוכנה החדשה

לאחר אימות השלמות, ה- BOOTLOADER מפעיל את קובץ התוכנה החדשה. כדאי להזכיר כאן ש ה- BOOTLOADER עצמו הוא חלק חשוב מתפיסת האבטחה. מכיוון שלא ניתן לשנותו, קוד זה ממוקם בדרך כלל ב- ROM או בזיכרון לא נדיף חד-פעמי (OTP). הוא הפועל על מעבד היישומים ומקבל את ההחלטה הסופית לעבור מהגרסה הישנה לחדשה.

תמונה 2: תכולת קובץ עדכון תכנה

לאחר ביצוע שלב זה, הסתיים תהליך עדכון התוכנה המאובטח והמכשיר פועל עם התוכנה החדשה.

5.1 אספקת מפתחות הצפנה להתקני IoT

תהליך עדכון התוכנה המאובטח מבוסס על תשתית מפתח ציבורית. המפתח הפרטי מטופל בסביבה מהימנה שהוקמה על ידי יצרן מכשירי ה-IoT .

המפתח הציבורי מאוחסן במכשיר עצמו, שם הוא משמש לאישור מערכי נתונים מאובטחים של עדכוני תוכנה. יש להגן על שלמות המפתח הציבורי הזה לאורך כל מחזור חייו של המכשיר מייצור דרך משלוח וכלה בשדה.

זה מאתגר במיוחד בסביבות ייצור מכיוון שלעתים קרובות הם מופעלים על ידי צדדים שלישיים. רמות האבטחה בדרך כלל נמוכות כאן ולכן הן אינן סביבות מתאימות לטיפול במפתחות רגישים.

אבטחה מבוססת חומרה היא אמצעי יעיל להקצאת מפתחות התקני IoT ולהגנה על סודיותם ושלמותם של אותם מפתחות. עם אבטחה מבוססת חומרה, המפתחות מתוכנתים לרכיב האבטחה בסביבה מאובטחת, למשל במהלך ייצור השבבים או בסביבה מאובטחת שהוקמה על ידי יצרן ה- IoT לאחר פעולה זו, רכיבי האבטחה (עם המפתחות המוגדרים) ישלחו לכל יצרן מבלי צורך לחשוף את המפתחות.

5.2

תמונה 3: מציגה את הדרך המקובלת לעדכון תוכנה מאובטח.

חתימה על עדכוני תוכנה מורשים

ערכות נתוני עדכון תוכנה מופצות וניתן להתקין את העדכון על ידי כל המכשירים מאותו סוג.

מכשירי IoT בודקים את האותנטיות של מערכי הנתונים של עדכון התוכנה על ידי אימות חתימת המטא נתונים.

כדי שזה יקרה, על יצרן מכשירי IoT להפעיל שירות לחתימה על המטא נתונים של ערכת עדכוני התוכנה המאובטחת באמצעות מפתח פרטי. דרוש שלב ייעודי אם תמונת עדכון התוכנה מופצת בפורמט מוצפן. במקרה זה, היצרן שירות צריך להצפין את קובץ התוכנה באמצעות מפתח הנגזר ממפתח מאסטר העדכון בתוספת נתונים ספציפיים על קובץ העדכון שיילקחו מהמטא נתונים. במקרה זה, שני המפתחות – המפתח הפרטי ומפתח האב – חייבים להיות מוגנים. בדרך כלל זה נעשה באמצעות שילוב של כמה מדדים:

■ מחסומים פיזיים, למשל חדר נפרד עם גישה מוגבלת.

■ תשתית רשת ייעודית, המנותקת לעתים קרובות מהאינטרנט ורשתות החברה.

■ אחסון המפתחות בצורה מאובטחת, ברכיבי אבטחה מוגנים מפני חבלה המכונים גם מודולי אבטחת חמרה (HSM) – במקרה זה המפתחות בדרך כלל לא עוזבים את ה-HSM במקום זאת הם מספקים את האמצעים המתאימים לחתימה על המטא נתונים וייצור מפתחות הצפנה עבור קובץ עדכון התוכנה.

Infineon’s OPTIGA™ Trust X .6

רכיבי האבטחה של INFINEON מתוכננים לעמוד באתגרי האבטחה העומדים בפני יצרני מכשירי IoT .

זהו פתרון מבוסס חומרה המציע אבטחה משופרת למכשירים מחוברים וזה כולל פונקציונליות עדכון קושחה מאובטחת. ניתן לקבל את הרכיבים עם מפתחות מובנים בתהליך FULL TURNKEY.

Based on a white paper “Implementing secured software updates for IoT devices”

by Josef Haid, Inifineon, Data Security Solutions Division`


זהבי שרייבשטיין מהנדס יישומיים, ניסקו פרויקטים INFINEON

תגובות סגורות