Table of Contents
מבוא לרישום Permissions in Secureware Design
במערכות חומרה מודרניות, רישומים משמשים אלמנטים אחסון יסודיים השולטים בהתנהגות המכשיר, תצורה וזרימת נתונים. ממיקרו-בקרים בחיישנים IoT למעבדי יישומים במכשירים ניידים, כל רישום מייצג משטח התקפה פוטנציאלי. Unauthorized קורא או לכתוב גישה לרישום קריטי יכול להוביל להסלמה פריבילגיה, דליפות מידע, או תקלה קבועה בניהול המכשיר לרשום הרשאות עם דיוק הוא אבן הפינה של עיצוב חומרה מאובטח.
אבטחה קשה היא לא מאמץ חד פעמי; יש לזעוק לתוך האדריכלות מן השלבים המוקדמים ביותר. ניהול הרשאות של הרישום משפיע ישירות על המערכת & #8217; היכולת להתנגד להתקפות, בצד, וניצולי קושחה. על ידי אימוץ גישה שיטתית, מעצבים יכולים להפחית את נקודות התורפה ללא הקרבה או גמישות.
מימון של סוגי הרישום
כל רישום בעיצוב חומרה מאובטח צריך להיות מדיניות גישה מוגדרת בבירור.שלושת סוגי ההרשאות הבסיסיות הם:
- (ב) ,0) קרארש"ל:1: מאפשר תוכנה או סוכן חומרה אחר כדי להחזיר את הערך הנוכחי של הרישום.
- (FLT:0)WriteveFLT:1: Permits Change of the Register ’ התוכן, אשר עשוי לשנות את מצב המכשיר או את התצורה.
- (ב) ,0) ,ExecuteFLT:1: משמש לרישום המכיל פקודות או נקודות קוד גלוי; קריאה וכתיבה נדרשים בדרך כלל.
מעבר לכך, עיצובים מודרניים כוללים לעתים קרובות ממחצבים נוספים כגון FLT:0 (הנקראים ארק) 1 (FLT:2write-onceFLT 3:, FLT:4-clearing עצמו-clearcioFLT:5, ו-FLT:6 מ-FLT 7, לדוגמה, רישום בכתב-once מונע אימות זדוני או תיקון עצמי, לאחר תיקון ראשוני, הוא דורש תיקון של מדיניות גישה.
רשומות חומרה מקובצים לעתים קרובות לבנקים או בלוקים על ידי תפקוד (למשל, DMA Control רושמים, קידודי מצב מפריעים, רישום ⁇ אבטחה) לכל קבוצה יכול להיות פרופיל הרשאות נפרד בהתבסס על הרגישות של הפעולות שהיא שולטת.מערכת פשוטה על שבב יכול להיות כמה מאות רישומים; מעבד שרת מורכב עשוי להיות עשרות אלפי הרשאות או לוגיקה מבוזרת חייב בהתאם.
Best Practice: Apply the Principle of Least Privilege
העיקרון של זכויות היתר קובע כי כל ישות ו-#8212; אם חסימת חומרה, חוט תוכנה או מנהל אוטובוס חיצוני ו-#8212; יש לקבל רק את ההרשאה הדרושות לביצוע הפונקציה הלגיטימית שלו.
- הגנה על שום גישה; במפורש להעניק גישה רק למקום הנדרש.
- שליטה נפרדת ורישום נתונים כך ששחית מניפולציה של זרימת נתונים אינה משנה בטעות תצורה רגישה.
- הגבלת הגישה לרישום המשפיע על כוח, שעון, מתח או גבולות אבטחה למרכיב קושחה יחיד, ממוסגר היטב (למשל, לפקח אבטחה).
טעות נפוצה היא לתת לכל גישה קושחה לכל רישום בפריפריה.במקום, ליישם את ה-FLT:0hardware הרשאות matrixveFLT:1 שממפות כל מנהל אוטובוס או רמת זכות למערך של רישומים שניתן לקרוא ולכתוב. במערכות מבוססות ARM, זה מושג לעתים קרובות באמצעות יחידת הגנה מפני זיכרון של אמון (MPU) או מערכת ברמת גישה לרמה של 3DIF (פחות מאובטח) לשימוש ב-ARM (ARM-F) ב-ALC) או ב-ALCDLCALCALCDLCDLCDLCALCALCD.
בעת תכנון IP מותאם אישית, שקול הוספת רישום שליטה ייעודי:0 גישה (ACR)FIRLT:1 לכל בלוק המגדיר אילו תעודות או רמות זכות שליטה מותרות.
Best Practice 2: השתמש ב-Hardware-Enforced Access Controls
בדיקות הרשאות רק תוכנה הן פגיעות לעקוף באמצעות ניצולים, buffer overflows, או התקפות ישירות של גישה לזיכרון (DMA) , בקרות המוחזקות של חומרה-הכוח לספק שכבה דטרמיניסטית שאי אפשר להתגבר על ידי קוד זדוני.
דרגה אנגלית: Level Gates
ארכיטקטורות מעבד רבות תומךות בשני רמות פריווילגיה או יותר (למשל, משתמש/מפקח, אל0/EL1/EL2/EL3 ב- ARM) A Register יכול להיות מתוייג רק מרמות מסוימות של זכויות יוצרים.לדוגמה, רישום שליטה מפתח מנעול מאובטח צריך להיות מתפתל רק מרמת הפריבילגיה הגבוהה ביותר (EL3) ורק בשלב מסוים שלחול.
תפקוד בלתי אפשרי (PUF) Keyed Access
עבור רשומות רגישות אולטרה סגול (למשל, מערךי תפירה, חנויות מפתח קריפטוגרפיים), רמות הפריבילגיות המסורתיות לא יכולות מספיקות.חלק מהעיצובים קושרים גישה למפתח חומרה שמקורו ב-PUF. ללא מפתח תקף, קורא להחזיר את כל אפסים וכותבים מלוטשים בשקט.זה מונע כל תוכנה, כולל היפר-בידור נפגע, ממיצוי סודות.
יחידות הגנה על זיכרון (MPUs) ויחידות ניהול זיכרון מערכת (SMMUs)
יחידות אלה מגדירות הרשאות גישה מבוססות אזור על פני כל מפת הכתובת. A היטב-configured MPU יכול למנוע בקר DMA לקרוא רישומים מחוץ לטווח המוסמך שלה.
תגית: Hardware Permission Lookaside Buffers
בעיצובים בעלי ביצועים גבוהים, בדיקת הרשאות לעסקה יכולה להוסיף שקיפות.A הרשאת buffer מדביקה את זכויות הגישה עבור כתובות שנרשמו לאחרונה, ומאפשרת בדיקות להשלים במחזור שעון יחיד.טכניקה זו דומה TLB אבל מוקדשת לבקרת גישה.
Best Practice 3: יישום בקרת גישה מבוססת-תפקיד (RBAC) עבור רשומות
גישה מבוססת תפקידים מארגן רשות על ידי תפקוד ולא על ידי מזהה אישי.ניהול זה מפשט, במיוחד כאשר מספר הסוכנים הוא גדול. Common תפקידים במערכת חומרה מאובטחת כוללים:
- (ב) ,0) ,Boot ROMIRFLT:1: גישה מלאה לרישום אחסון מאובטח במהלך האתחול; בדרך כלל נעול לאחר האתחול.
- (ב) [ה]: [ה], [ה], [ה],] כתוב גישה לרישום הגדרות המשפיעות על מדיניות הביטחון; קרא גישה לרישום סטטוס.
- (ב) [ה]ה]: [ה] לא היה אחראי על ה-FLT]: גישה לקריאה בלבד לרישום סטטוס לא קריטי; אין גישה לתצורה של אבטחה.
- (ב) ,0) ,Debug ControllerFLT:1: גישה נוחה לקריאה / כתיבה מותנית רק כאשר תוכנית אימות נזיפה בטוחה מאפשרת.
- (ב) עיין:0(DMA EnginesphFLT:1: Read/write Access only to data buffer רושמים, לא לשלוט או לרשום את הנתונים.
מעצבים קשיחים יכולים ליישם את RBAC באמצעות זיכרון RAM מאובטח אשר מוקרן במהלך ה-iPad.כל עסקה באוטובוס נושאת את הבקשה & #8217; תפקיד זה, ואת בקר הגישה משווה אותו נגד המרשם.
תגית: Secure Key Manager Register
שקול מנהל מפתח מאובטח עם שלושה רישומים: KEY CTRL, KEY VALID, ו-KEY CLEAR.
- Boot ROM יכול לכתוב KEY CTRL ו-KEY VALID במהלך מתן מפתח.
- קושחה אמין יכול לקרוא KEY VALID אבל לא יכול לכתוב KEY CTRL.
- קושחה לא מאובטחת חסומה מכל שלושת הרשומות.
פתיחות זו מונעת קושחה אמינה נפגעת ממפתחות התחדשות, בעוד היא מאפשרת שאילתות סטטוס.
אמצעי אבטחה נוספים מעבר להגשת
ניהול הרשאות של Robust חייב להיות משלים עם מנגנוני אבטחה ברמה של מערכת.הפרקטיקות הבאות מומלץ:
המונחים: Boot chain Integrity
רשומות ששולטות בסדרות האתחול, דגלי מגף מאובטחים, או ממזגים חייבים להיות הרשאות שלהם נעולות לפני תהליך האתחול מתקדם. השתמש במכונות מצב חומרה שעוברות מ- #8220; פתוח ו-#8221; מדינה תצורתית למצב של & #8220; נעולה ו-#8221; מדינה רצופה.
בסביבה הקרובה של Execution Environments (TEE)
EEs כגון ARM TrustZone, Intel SGX, או RISC-V MultiZone חלוקת משאבי חומרה לתוך עולמות מאובטחים ונורמאליים. רשם בתוך העולם הבטוח הם בלתי נראים ובלתי נגישים לתוכנה עולמית נורמלית.כל רישומים בעולם מאובטח צריך להיות מוגדר עם שליטה ברמה עולמית כמו השער הראשון.
גישה ל-Audit Trail
עבור מערכות ביטוח גבוה (למשל, avionics צבאי, רכב ASIL-D), כל גישה לרישום קריטי צריך להיות מחובר. מנוע חומרה ייעודי יכול להקליט את מזהה המאסטר, פעולה (read / write), כתובת, ופעמים לתוך buffer בטוח, לא-volle. זה מסלול ביקורת עוזר לזהות דפוסים של גישה לאחר אירוע אבטחה.
גילוי תמים ותגובה
כמה מערכות משלבות חיישנים מתים אשר מזהים גלימות מתח, קיצוניות טמפרטורה, או לייזר probing. כאשר אירוע טמפר מזוהה, החומרה יכולה לבטל באופן אוטומטי הרשאות על רישומים רגישים, מפתחות ברורים, או לגרום לאפסה בטוחה.זה דורש לוגיקה של רישום יש קלט יחידת זיהוי טמפר, על מדיניות גישה נורמלית.
המונחים: Secure Debug and Test Access
ממשקי Debug (JTAG, SWD) לעתים קרובות לעקוף בדיקות הרשאות.מכשיר ייצור חייב להיות אותנטיות או אותנטי מאוד גישה debug. השתמש בתוכנית אימות אתגר עם סוד מכשיר-לא-מכשיר.בנוסף, debug רושם את עצמם צריך להיות כפוף לאותו פקד כמו רישומים אחרים; לדוגמה, רק תפקיד ספציפי של debug עם תעודה מזהה יכול לשבור נקודות על קוד מאובטח.
שיקולי מחזור חיים עבור רישום הרשאות
הרשאות אבטחה קשות אינן סטטיות.המערכת עוברת דרך שלבים נפרדים של מחזור חיים: ייצור, מגף, ריצה, ואולי גם מחזרי שדה או פירוק.כל שלב דורש פרופיל הרשאות שונה.
שלב הייצור
במהלך ייצור שבב ומבחן, רישומים רבים זקוקים לגישה בלתי מוגבלת לאימות.עם זאת, רישום הבדיקה צריך להיות מבודד מרישום פונקציונלי באמצעות מצבי מבחן ייעודיים כי הם מוגבלים לאחר הייצור. השתמש e-fuses כדי להשבית גישה בדיקה לצמיתות לפני השבב נשלח. Permission חומרה צריך לכלול a & #82; מצב בטוח #8221; לקבוע, כאשר נטען, לנעול את כל רישום הקשורים לבדיקה.
שלב ה-Bot Phase
קוד המגף המוקדם (ROM) נחשב לחסרונות.יש לו גישה זמנית לכל הרשומות הדרושות לזייף.לאחר שהחול ROM יד אל קושחה של השלב הבא, הוא מנע את הרישום שלו ומגדיר את בקר הגישה למדיניות של זמן ריצה.תבנית משותפת היא להשתמש ב-FLT:0boot-lockt-Lock 1LT:1, שפעם נכתב עם מפתח ספציפי, ממורש, ממורש נוסף, מתבטל את ההרשאה נוספת.
שלב ריצה
הרשאות של ריץ' צריכות להיות מגבילות ככל האפשר.באופן אידיאלי, שום ישות לא יכולה לשנות מדיניות הרשאות לאחר האתחול (שולחן ההרשאה הוא בלתי-משתנה) אם יש צורך בהגדרה מחדש בזמן, יש לאמת אותו ולהירשם.לדוגמה, עדכון קושחה שדה עשוי לדרוש אישורים מורחבים באופן זמני; זה צריך לגרום לאפסת בטוחה לפני שהרשאות החדשות ייכנסו לתוקף.
סוף-חיים (Decommissioning)
כאשר מכשיר הוא פרש, יש לבטל הרשאות כדי למנוע מיצוי של נתונים שאריות.מרשם המחזיקים סודות צריך להיות מנקה על ידי פקודה אפסיזציה חומרה.לוגיקה של הרשאות צריכה לספק a “ ללא ביטחון למחוק #8221; אות זה מאלץ את כל הרשומות הרגישות למצבי האפס הבטוחות שלהם.
המונחים: Register Permissions
תכנון תוכנית הרשאות הוא רק חצי מהעבודה; אימות כי הוא מתנהג כראוי בכל התרחישים הוא קריטי באותה מידה.אסטרטגיות אימות הבאות עוזר להבטיח יציבות:
בדיקה ישירה ואחרונה
צור מקרים של בדיקות המנסים לגשת לכל רישום מכל מאסטר/רול עם כל פעולה אפשרית. השתמש בבדיקות סימולציה הקובעות כשל כאשר גישה בלתי מורשית מצליחה.בדיקה אקראית עם הרשאות מוגבלות יכולה לחשוף מקרים של פינה, כגון הגדרות אזוריות או חלונות תזמון שבו מנעולים עדיין אינם יציבים.
המונחים: Verification
עבור עיצובים קריטיים בטיחותיים, אימות פורמלי (בדיקת מודל) יכול להוכיח באופן מתמטי כי אין רצף של עסקאות אוטובוס יכול להפר את מדיניות הרשאות. כלים כמו קדינס JasperGold או Synopsys VC Formal יכול לאמת תכונות כגון & #8220; הרישום X הוא מעולם לא נכתב על ידי אדן Y לאחר נעילה מוגדר. & #82; שיטות קודמות הן בעלות ערך במיוחד עבור זיהוי תופעות לוואי, כגון אחד לרשום לוגיקה משותפת.
בדיקת Fault ו- Red Team Testing
סימסומנט של זעזועים חד-ביטים בבקר הרשאות רושם את עצמם.אם תקלה משנה את ה- ACR, האם המערכת נופלת בחסד למצב בטוח (למשל, כל הגישה חסומה) או מאפשרת להסלמה? בדיקות חד-פעמי צוות אדום על אב-טיפוס FPGA יכולות לחשוף פרצות שמפספסות סימולציות, כגון גלימות תזמון שבעזרת קומפרורים.
מלכודות נפוצות וכיצד להימנע מהם
אפילו מעצבים מנוסים יכולים לעשות טעויות בעת ניהול הרשאות רישום.לבדוק את הבעיות החוזרות האלה:
- (FLT:0) לרשום רק את סודות הדליפה על כותב: אנדרט 1:1 כמה רישומים ישובו נתונים לפני בכתב עם ערך לא חוקי.תמיד להבטיח כי רק לכתוב או לקרוא רק לרשום ערכים קבועים (למשל, אפס) ולא מצב פנימי.
- (FLT:0) רחבה ו-#8220; פיקוח על ו-#8221; גישה: אנדרט 1 גרנט גישה ברמת פיקוח לכל הרשומות חותרת פחות פריבילגיה.
- (FLT:0) אבחון ערוצי צד מתזמון: FIRLT:1; אם בדיקות הרשאות לוקחות זמן משתנה בהתאם אם הגישה מותרת, תוקף יכול להשתמש בתזמון כדי לבדוק הרשאות.
- (FLT:0) , 000 עבור נעילה של רישום debug:IRLT 1:1 יציאות גישה Debug לפעול לעתים קרובות מחוץ למסגרת הרשאות הרגיל.
תקני תעשייה והמלצות
אימוץ תקני התעשייה מסייע ליישר עיצובי הרשאות עם שיטות הטובות ביותר בכל המגזר.הפניות כוללות:
- (ב) ⁇ (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) [13] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) [15] ,0) ,NIST Cybersecurity FrameworkFLT:1 עבור שילוב בקרת גישה לחומרה לתוך הפונקציה הגנה.
- RISC-V Physical Memory (PMP) מפרט כדוגמה לאכיפה מבוססת הרשאות.
מסקנה
הרשאות רישום ניהוליות אינן רק פריט צ'ק; זהו משמעת הנדסית מתמשכת נוגעת בכל היבט של עיצוב חומרה.על ידי יישום העיקרון של לפחות פריבילגיה, מינוף של בקרת גישה מאומצת חומרה, וליישם מודלים המבוססים על תפקידים, מעצבים יכולים לבנות מערכות שמתנגדות לשימוש לרעה מקרי ותקיפה מכוונת. בשילוב עם מנעול מאובטח, פיקוח, ורשות חיים, שיטות הגנה מקיפה עבור אסטרטגיה אבטחה מעמיקת.
ככל שטכניקות התקפה מתפתחות, כך גם עלינו גישה שלנו כדי לרשום בקרת גישה.התפתחויות עתידיות כגון מודלים מופשטים של הרשאות המונעים על ידי מפרטים רשמיים, זיהוי של למידת מכונה על דפוסי גישה, ועוד הפרדה פריבילגיה גרפית יותר יקשה על העיצובים שלנו.עבור עכשיו, להתמקד ביסודות המפורטים לעיל ניב שיפורים מיידיים ומתמשכים אבטחה עבור כל פרויקט חומרה מאובטח.