כיצד לאמת אטסטציה של חומרה ב-Azure Confidential Computing
By Mirko Peters ·
למדו כיצד פועלת אטסטציה של חומרה ב-Azure, השוו בין AMD SEV-SNP ל-Intel SGX, וגלו כיצד לשלב אימות קריפטוגרפי בצנרות ה-CI/CD שלכם.
Automatically translated with AI from the original post. Read the English original

אטסטציה של חומרה ב-Azure היא תהליך אימות קריפטוגרפי קריטי, המוכיח שסביבת ההרצה המהימנה שלכם אותנטית ולא שונתה לפני טעינת עומסי עבודה רגישים. על ידי הערכת מדידות של אתחול מאובטח ומפתחות חומרה מול קווי הבסיס של Microsoft והספקים, האטסטציה מגשרת על פער האמון שבין מפעילי הענן לפרטיות הנתונים של הדיירים.
עיקרי הדברים
- אטסטציה של חומרה מאמתת באופן קריפטוגרפי שה-Trusted Execution Environment (TEE) שלכם אותנטי ולא נפרץ.
- שירות האטסטציה המרוחקת מעריך מדידות פלטפורמה מול קווי בסיס אבטחה לפני שחרור מפתחות פענוח.
- גם ארכיטקטורות AMD SEV-SNP וגם Intel SGX נשענות על אימות מרוחק כדי להבטיח שמנהלי ענן לא יוכלו לבחון את הזיכרון בשימוש.
- שילוב אטסטציה בצנרות הפריסה ב-CI/CD שלכם הופך את אימות האמון לאוטומטי ומונע מקונטיינרים שעברו שינוי להתחיל לפעול.
- הבנת לחיצת היד של האטסטציה חיונית לשמירה על גישת zero-trust בסביבות ענן היברידיות מודרניות.
פער האמון בענני ציבור
בעת העברת עומסי עבודה רגישים לענן הציבורי, מודלי אבטחה מסורתיים מגנים על הנתונים שלכם במעבר באמצעות TLS, ובמנוחה באמצעות הצפנת AES-256. עם זאת, נותרת פגיעות משמעותית: נתונים בשימוש. בעבר, בכל פעם שמעבד הריץ קוד, נתונים אלה נדרשו להיפתח ולהיות מאוחסנים בטקסט גלוי בזיכרון המערכת. בסביבת ענן מרובת דיירים, המשמעות הייתה לתת אמון בהייפרוויזור, בספק תשתית הענן, ובכל מי שיש לו גישה ניהולית לחומרה הפיזית שמתחתיה.
Azure Confidential Computing משנה פרדיגמה זו באמצעות Trusted Execution Environments מבוססי חומרה, או TEEs. אלה enclaves מאובטחים ומכונות וירטואליות מבודדות שמצפינים את תוכן הזיכרון באמצעות מפתחות חומרה ייעודיים הנשלטים ישירות על ידי שבב ה-CPU. עם זאת, חדר נעול הוא רק חצי מהמשימה. אתם צריכים גם דרך לוודא שהמנעול לא נפרץ, שהדלת נבנתה כראוי, ושאין תוכנה לא מורשית הפועלת בתוך הגבול המאובטח לפני שתמסרו את מפתחות ההצפנה שלכם.
כיצד פועלת אטסטציה מרוחקת
אטסטציה מרוחקת היא מנגנון האימות שעונה על שאלה יסודית: מניין תדעו שסביבת הענן שאליה אתם פורסים אכן מאובטחת ולא שונתה? ללא אטסטציה, תוקף בעל גישה ברמת ההייפרוויזור יכול, תיאורטית, להחליף BIOS זדוני או לשנות את ה-bootloader, וליירט את מפתחות ההצפנה שלכם ברגע שהם נטענים לזיכרון.
תהליך האטסטציה פועל כלחיצת יד קריפטוגרפית רב-שלבית ומדויקת:
שלב 1: אתחול מאובטח ומדידת פלטפורמה
כאשר מכונה וירטואלית מאובטחת של Azure (Azure confidential virtual machine) או מופע מאגר (container instance) עולה, החומרה וקושחת המערכת מתעדות מדידות קריפטוגרפיות של כל רכיב המעורב בתהליך האתחול. זה כולל את מנהל האתחול (bootloader), תמונות ליבת המערכת (kernel) וכל דיסק RAM ראשוני (initial ramdisk). המדידות האלה נשמרות בצורה מאובטחת באוגרי חומרה בתוך ה-CPU, ואי אפשר לשנות אותן על ידי מערכת ההפעלה המארחת או על ידי ה-hypervisor.
שלב 2: יצירת הדוח הקריפטוגרפי
לאחר שעומס העבודה מאותחל בתוך ה-TEE, הוא מבקש מה-CPU דוח חתום בחומרה. המעבד חותם על דוח המדידות באמצעות מפתח פרטי קבוע ובלתי משתנה, המוטמע בסיליקון במהלך הייצור. הדוח משמש כ"דרכון דיגיטלי" שאי אפשר לזייף, והוא מייצג את מצבה המדויק של מערכת התוכנה הפועלת בתוך הסביבה המבודדת.
שלב 3: הערכה על ידי שירות Azure Attestation
הדוח החתום מהחומרה נשלח לשירות Microsoft Azure Attestation (MAA) או לאמת צד שלישי תואם. השירות משווה את המדידות שהתקבלו למדיניות בסיס מהימנה שהוגדרה על ידי הדייר. אם הקוד הפועל בתוך ה-enclave תואם למדיניות המורשית, השירות מנפיק אסימון אימות (attestation token).
שלב 4: שחרור הסודות
עם אסימון אימות תקף, האפליקציה שלכם יכולה לבקש בבטחה פרטי התחברות למסד נתונים, תעודות TLS או מפתחות הצפנה של נתונים מ-Key Vault Managed HSM. ה-Key Vault מאמת את האסימון ומשחרר את הסודות רק ל-TEE שאומת, כך שאף סביבה לא מורשית לא תוכל לגשת לנתונים הגלויים שלכם.
הבדלים ארכיטקטוניים: AMD SEV-SNP לעומת Intel SGX
יישום attestation דורש הבנה של ארכיטקטורת החומרה הבסיסית שמפעילה את צמתי Azure Confidential Computing שלכם. Microsoft Azure תומך בשתי טכנולוגיות חומרה עיקריות, שכל אחת מטפלת בבידוד ובאימות בצורה שונה במקצת.
Intel Software Guard Extensions (SGX) מתמקדת בבידוד ברמת התהליך. במקום להגן על מכונה וירטואלית שלמה, SGX מאפשרת למפתחים לבודד קוד ומבני נתונים ספציפיים ל-enclaves מדויקים. ה-attestation ב-SGX נשען במידה רבה על enclaves של ציטוט (quoting enclaves) שארוזים את מצב החומרה ל-quote הניתן לאימות, שלאחר מכן נבדק מול תשתית Enhanced Privacy ID (EPID) או תשתית Data Center Attestation Primitives (DCAP) המודרנית של Intel.
מנגד, AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP) מגן על מכונות וירטואליות שלמות. SEV-SNP מאבטח את שלמות הזיכרון באמצעות הצפנת זיכרון מבוססת חומרה, ומונע מ-hypervisors זדוניים למפות מחדש כתובות פיזיות של האורח. דוח ה-attestation שנוצר על ידי מכונה וירטואלית של AMD SEV-SNP כולל תצורות מדיניות של האורח ומדידות השקה (launch measurements), וכך קל יותר לבצע lift-and-shift ליישומי מאגרים קיימים, מבלי לכתוב מחדש קוד עבור ממשקי API ייעודיים ל-enclave.
יישום Attestation בצינורות CI/CD
עבור ארכיטקטים של ענן ומהנדסי DevOps, אימות ידני של דוחות attestation אינו ניתן להרחבה ואינו מעשי. כדי לבנות תשתית ענן עמידה, יש לשלב את ה-attestation באופן עמוק בצינורות הפריסה האוטומטיים שלכם.
פריסות מאגרים מודרניות הפועלות ב-Azure Kubernetes Service (AKS) עם צמתים מאובטחים יכולות להשתמש במאגרי sidecar או בתוספי התקן (device plugins) כדי לנהל את לחיצת היד של ה-attestation באופן אוטומטי. כאשר pod מאובטח עולה, לקוח ה-attestation שולף את דוח החומרה, שולח אותו לשירות Azure Attestation ושומר במטמון את האסימון שהתקבל. רק כאשר האסימון אומת, מאגר היישום מרכיב את הכוננים המאובטחים שלו ומתחיל לעבד בקשות.
על ידי הטמעת בדיקות attestation בשערי השחרור (release gates), מובטח שכל שינוי קוד לא מורשה, בין אם בשוגג ובין אם בזדון, יבטל מיד את המדידות של החומרה. הדבר עוצר את תהליך שחרור המפתחות ומונע מעומס העבודה הפגום לעלות לפרודקשן.
סיכום: הגנה על נתונים בשימוש כבר היום
מחשוב חסוי של Azure מספק את הבסיס הטכנולוגי הדרוש להגנה על עומסי עבודה רגישים בענן מפני איומים מודרניים על התשתית, אך בידוד חומרה לבדו אינו מספיק ללא אימות קפדני. על ידי שליטה באימות מרחוק (remote attestation), ארכיטקטים של ענן יכולים לבסס אמון בר-אימות בין קוד הדייר לבין החומרה הפיזית, כך שהנתונים בזמן עיבוד יישארו מאובטחים לא פחות מנתונים במנוחה ובתנועה. כדי לשמוע פירוט מקיף של מושגי אבטחת הענן הללו ולגלות את התמונה הרחבה יותר של Microsoft 365 ו-Azure, האזינו לפרק המלא של פודקאסט M365 FM.
שאלות נפוצות
מהי המטרה העיקרית של Azure Attestation?
Azure Attestation הוא שירות ענן מאוחד שמאמת בצורה קריפטוגרפית את מהימנות סביבת ביצוע מהימנה (Trusted Execution Environment) ומוודא את שלמות התוכנה הפועלת בתוכה, לפניששרים או מפתחות הצפנה משוחררים.
האם מנהל ענן יכול לעקוף אימות חומרה?
לא. אימות חומרה נשען על מפתחות קריפטוגרפיים המוטמעים ישירות בסיליקון של המעבד על ידי יצרן החומרה. מאחר שהמפתחות הללו אינם נגישים להיפרוויזורים ולמפעילי הענן, מנהלים אינם יכולים לזייף דוח אימות תקין עבור סביבה שנפרצה.
מה ההבדל בין אימות ברמת VM לאימות ברמת תהליך?
אימות ברמת VM (כמו AMD SEV-SNP) מודד ומאמת מערכת הפעלה שלמה של מכונה וירטואלית והעומסים שלה. אימות ברמת תהליך (כמו Intel SGX) מבודד ומאמת שגרות קוד או enclaves ספציפיים בתוך סביבת מערכת הפעלה רגילה.
כיצד אסימוני אימות משתלבים עם Azure Key Vault?
לאחר שעומס עבודה חסוי משלים בהצלחה את תהליך האימות, הוא מקבל אסימון חתום. ניתן להציג אסימון זה ל-Azure Key Vault Managed HSM כדי להוכיח את שלמות הסביבה, מה שמפעיל שחרור אוטומטי של מפתחות הצפנה ואישורי מסד נתונים.