אימות (attestation) של Confidential VM

אימות (attestation) של מכונת Confidential VM הוא תהליך שנועד לשפר את רמת הסמך בכך שהמכונה לגיטימית ופועלת במצב הצפוי. זהו כלי חיוני לאימות העובדה שעומס העבודה שלכם פועל בסביבת מחשוב אמינה (TEE).

אימות מבוסס-מעבד (CPU)

דוחות אימות הם ההוכחה לכך שהמכונה הווירטואלית פועלת בסביבת TEE. הן נוצרות על ידי המכונה הווירטואלית Confidential VM, ובהתאם לטכנולוגיית Confidential Computing שבה נעשה שימוש, הן נחתמות על ידי vTPM מבוסס תוכנה או על ידי מודול אבטחה ייעודי מהימן (TSM) מבוסס חומרה. דוחות אימות מכילים מדידות שקשורות לפעילות של טוען האתחול, להגדרת החומרה, להגדרת הקושחה ולאירועים אחרים שנרשמים ביומן בזמן האתחול, ועוזרים לאמת את המצב והזהות של מופע המכונה הווירטואלית החסויה.

סוג דוח האימות שאתם יכולים לבקש תלוי בטכנולוגיית ה-Confidential Computing שבה נעשה שימוש במופע Confidential VM.

מקור החתימה סוג מה נכלל בדוח טכנולוגיית Confidential Computing
SEV SEV-SNP Intel TDX
vTPM בניהול Google מודול vTPM מבוסס תוכנה פעילות של תוכנת האתחול, שלמות הליבה
AMD Secure Processor1 TSM מבוסס-חומרה סביבת חומרה וקושחה
Intel TDX module TSM מבוסס-חומרה סביבת החומרה והקושחה2

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

2. רכיב ההפעלה הראשוני (הקושחה) של מופעי מכונות וירטואליות מסוג TDX Confidential VM נמדד ב-Measurement of the Trust Domain‏ (MRTD), בעוד ששרשרת האתחול הנותרת נמדדת ב-Runtime Measurement Registers‏ (RTMR), כך שכל המדידות מושרשות בחומרה. משתמשים יכולים להרחיב את רישום ה-RTMR[3] באמצעות מדידות של מרחב המשתמש.

בקשה לדוח אישור

אתם יכולים לבקש דוחות אימות מ-vTPM שמנוהל על ידי Google, ממעבד מאובטח של AMD וממודול TDX של Intel באמצעות הכלים הבאים:

  • Go-TPM

  • כלי Go-TPM (נדרשת גרסה 0.4.4 ואילך לתמיכה ב-AMD SEV-SNP וב-Intel TDX)

האירוע GceNonHostInfo ביומן האירועים של אימות vTPM מראה איזו טכנולוגיית Confidential Computing נמצאת בשימוש. כלי Go-TPM יכולים לבקש דוח אימות ממעבד AMD מאובטח אם נעשה שימוש ב-AMD SEV-SNP, או ממודול Intel TDX אם נעשה שימוש ב-Intel TDX.

רק בדוחות אימות חומרה, אפשר לשלוח אתגר קריפטוגרפי ל-TSM באמצעות הכלים הבאים:

  • ב-AMD SEV-SNP, משתמשים ב-SEV Guest. אישורים של מפתח אישור שבב (VCEK) בגרסה מאוחסנים במטמון במכונה הווירטואלית במקום להתבקש ישירות ממערכת הפצת המפתחות (KDS) של AMD.

  • ל-Intel TDX, משתמשים ב-TDX Guest.

‫Intel TDX ב-Ubuntu

בתמונות של Ubuntu בליבה 1016 ומעלה, המודול tdx_guest נמצא בחבילה linux-modules-extra.

כדי להתקין את חבילת linux-modules-extra, מריצים את הפקודה הבאה:

sudo apt-get install linux-modules-extra-gcp

אם נתקלתם בבעיות במהלך ההתקנה של linux-modules-extra-gcp, תוכלו לעדכן את ליבת המערכת על ידי הרצת הפקודה הבאה:

sudo apt-get upgrade

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

sudo modprobe tdx_guest

אימות דוחות אישור באמצעות Google Cloud Attestation

אם מודל האמון שלכם מאפשר זאת, במקום לכתוב ולהריץ בעצמכם כלי לאימות הצהרות, אתם יכולים להשתמש ב-Google Cloud Attestation. התהליך כולל שימוש בכלי Go-TPM כדי לאחזר ציטוט אימות מ-vTPM של מופע Confidential VM, ושליחה שלו ל-Google Cloud Attestation לצורך אימות. אם הצעת המחיר עוברת את האימות, Google Cloud Attestation מחזיר אסימון שמכיל מידע על מכונת ה-VM, שאפשר להשוות למדיניות שלכם כדי לוודא אם אפשר לסמוך על מכונת ה-VM.

אפשר להשתמש ב-Google Cloud Attestation רק במכונות וירטואליות סודיות (CVM) של AMD SEV.

דוגמה מקצה לקצה לעבודה עם Google Cloud Attestation מופיעה בשיעור ה-Codelab בנושא אימות (attestation) מרחוק של vTPM במכונה וירטואלית סודית.

אימות מבוסס-GPU

אימות ה-GPU כולל אימות של הדרייבר של ה-GPU, של מכשיר ה-GPU או של שניהם.

בעיות מוכרות

יכול להיות שאימות ה-GPU ייכשל, ויוצג דיווח על רשומת מדידה לא תואמת באינדקס 9. ‫Google ו-NVIDIA פועלות לפתרון הבעיה.

כדי לעקוף את הבעיה, צריך לבצע עצירה והפעלה מחדש מלאות של ה-VM החסוי. הפעלה מחדש של ה-VM ממערכת ההפעלה של האורח לא פותרת את הבעיה.

אימות של דרייבר GPU

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

התכונה Secure Boot מאפשרת טעינה רק של מנהלי התקנים של GPU שחתומים על ידי ההפצה. האימות הזה חיוני כדי לוודא שהדרייבר של ה-GPU פורסם באופן רשמי על ידי NVIDIA. חשוב להשתמש בדרייבר רשמי כי הוא יוצר סשן מאובטח של פרוטוקול אבטחה ומודל נתונים (SPDM) עם מכשירי GPU, ומשמש כבסיס לאימות של מכשירי GPU של NVIDIA.

אימות של מכשיר NVIDIA GPU

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

כדי לבצע אימות של מכשיר NVIDIA GPU, קודם צריך להתקין את ספריית nvtrustNVIDIA, ואז להשתמש בה לאימות מקומי או מרחוק.

API_LINK="https://api.github.com/repos/NVIDIA/nvtrust/tags"
LATEST_VER="$(curl -s "${API_LINK}" | jq -r '..name')"
DOWNLOAD_LINK="https://github.com/NVIDIA/nvtrust/archive/refs/tags/${LATEST_VER}.tar.gz"
echo "Downloading nvtrust version ${LATEST_VER}"
curl -L "${DOWNLOAD_LINK}" -o nvtrust.tar.gz
mkdir github_nvtrust
tar xvf nvtrust.tar.gz -C github_nvtrust
cd github_nvtrust/nvtrust-${LATEST_VER:1}
python3 -m venv./prodtest
source./prodtest/bin/activate

אימות של מכשיר GPU מקומי

אימות מקומי של מכשיר GPU מאפשר לבצע את תהליך האימות ישירות במכונת ה-VM ולראות את התוצאות באופן מקומי כדי לאמת את השלמות של ה-GPU.

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

אימות (attestation) של מכשיר GPU מרוחק

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

הוראות מפורטות זמינות במאמרים בנושא NVIDIA attestation SDK ו-NVIDIA remote attestation service (NRAS).