צ'יפ החומרה Titan

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

צ'יפ Titan הוא צ'יפ ייעודי שיוצר את שורש האמון בחומרה לפלטפורמות במרכזי נתונים של Google Cloud . שבב Titan הוא מיקרו-בקר עם צריכת חשמל נמוכה, שמוטמע בפלטפורמות כמו שרתים, תשתית רשת וציוד היקפי אחר במרכזי נתונים.

שבב Titan הוא רכיב חשוב בארכיטקטורת האבטחה של חומרת Titanium, שמספקת שכבת אבטחה בסיסית שעוזרת להגן מפני תקיפות פיזיות ואיומים על נתוני המשתמשים. צ'יפ Titan מאפשר ל-Google לזהות ולאמוד באופן מאובטח את הקושחה והתצורה של הפלטפורמה. היא נועדה להגן מפני התקפות של תוכנות עם הרשאות מיוחדות ומפני ערכות Rootkit, החל מתהליך האתחול של המכונה.

במסמך הזה מתוארת ארכיטקטורת השבב והיתרונות של שבב Titan מבחינת אבטחה. צ'יפ Titan תומך בבסיס מינימלי של מחשוב מהימן (TCB) שמאפשר לצ'יפ לספק את היתרונות הבאים:

  • ‫Root of Trust בחומרה שיוצר זהות חזקה למכונה
  • אימות התקינות של קושחת הפלטפורמה, גם בזמן ההפעלה וגם בזמן העדכון
  • תהליכי איטום מרחוק של פרטי כניסה שמהווים בסיס למערכת של Google לניהול פרטי כניסה של מכונות

משפחת הצ'יפים Titan

הצ'יפים הראשונים של Titan תוכננו בשנת 2014. בדורות הבאים שולבו הניסיון שנצבר במהלך תהליכי ייצור, שילוב ופריסה איטרטיביים. למידע נוסף על האופן שבו Google תרמה את הידע שלה על שבב Titan לקהילת אבטחת החומרה של קוד פתוח, אפשר לעיין באתר opentitan.org.

שבבי Titan כוללים את הרכיבים הבאים:

  • מעבד מאובטח
  • מעבד קריפטוגרפי משותף AES ו-SHA
  • מחולל מספרים אקראיים בחומרה
  • היררכיית מפתחות מתוחכמת
  • זיכרון RAM סטטי מוטמע (SRAM), פלאש ו-ROM

זהות הייצור של Titan

במהלך תהליך הייצור של שבב Titan, השבבים מועברים לחדר מאובטח במתקן של Outsourced Semiconductor Assembly and Test (OSAT) כדי שאפשר יהיה להקצות להם את הזהות שלהם. החדר הזה עומד בתקני ISO ובקריטריונים המשותפים. יש בה ארבע מצלמות מיותרות (בכל פינה) וקורא תגים בדלת, שמיועדת להיפתח רק במקרה של מצבי חירום תפעוליים. אף אדם לא נמצא בחדר בזמן הקצאת הצ'יפים, והתהליך מתבצע באופן אוטומטי לגמרי.

המכשירים נכנסים דרך מתחם באחד הקירות ומוכנסים למערכת אוטומטית לטיפול במכשירים. כל מטפל מצויד בשבב Titan שנקרא Scribe. ה-Scribe כולל קושחה להקצאת משאבים, ויש לו ממשק טורי היקפי (SPI), איפוס וחיבורים אוניברסליים אסינכרוניים של משדר-מקלט (UART) למכשיר שנבדק (DUT) (שהוא שבב Titan שמיוצר). ה-Scribe מכוסה באפוקסי, עם סימנים ייחודיים שמעידים על ניסיון פריצה. הכלי האוטומטי לטיפול במכשיר מכניס את ה-DUT למיטה של מסמרים, שבה הוא מופעל. ה-Scribe משחרר את ה-DUT מאיפוס, מזין לו את קושחת ההפעלה ומריץ את תהליך ההקצאה.

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

כל מפתח חתימה של Scribe נרשם בטקס אישי כשמפעילים את Scribe. בנוסף, Scribe מחזיק את מפתח החתימה הפרטי שלו רק בזיכרון נדיף, וכך מבטיח שאם Scribe יוסר מהמתקן המאובטח, הוא יאבד את מפתח החתימה אם ינותק מהחשמל. כל Scribe צריך לאחזר עותק עטוף באופן ייחודי של מפתח החתימה שלו משירות Google בכל פעם שהוא מופעל. העותק המוצפן של מפתח החתימה של Scribe מסוים נוצר כש-Scribe נרשם לראשונה במצב אופליין על ידי קוורום של k מתוך n, ורק Scribe יכול לפענח אותו.

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

שבבי Titan משתמשים בצמדי מפתחות ייחודיים למכשיר כדי לאמת את הקושחה שלהם באופן דומה ל-Device Identifier Composition Engine‏ (DICE). הצ'יפים המקוריים של Titan קיבלו אישור באמצעות עיצוב מותאם אישית של Google, כי הם יוצרו לפני שהוצגו תקנים רלוונטיים בתעשייה. הניסיון של Google בייצור ובפריסה של חומרה מאובטחת מעודד אותנו להגדיל את ההשתתפות בתהליכי התקנים, ותקנים חדשים יותר כמו DICE,‏ Trusted Platform Module‏ (TPM) ו-Security Protocol and Data Mode‏ (SPDM) כוללים שינויים שמשקפים את הניסיון שלנו.

שילוב עם Titan

כששבב Titan משולב בפלטפורמה, הוא מספק הגנות אבטחה למעבד אפליקציות (AP). לדוגמה, יכול להיות ש-Titan ישולב עם מעבד שמריץ עומסי עבודה, עם baseboard management controller ‏ (BMC) או עם מאיץ לעומסי עבודה כמו למידת מכונה.

‫Titan מתקשר עם ה-AP באמצעות ה-SPI bus. ‫Titan ממוקם בין ה-AP לבין שבב הזיכרון מסוג פלאש של קושחת האתחול של ה-AP, וכך הוא יכול לקרוא ולמדוד כל בייט של הקושחה הזו לפני שהקושחה מופעלת בזמן האתחול.

השלבים הבאים מתרחשים כשפלטפורמה עם Titan מופעלת:

  1. ‫Titan שומר על המעבד המרכזי במצב איפוס בזמן שמעבד האפליקציה הפנימי של Titan מריץ קוד בלתי ניתן לשינוי (ה-ROM של האתחול) מזיכרון לקריאה בלבד שמוטמע בו.
  2. ‫Titan מריץ בדיקה עצמית מובנית כדי לוודא שלא בוצעו שינויים בזיכרון (כולל ה-ROM).
  3. ה-ROM של Titan מאמת את הקושחה של Titan באמצעות קריפטוגרפיה של מפתח ציבורי, ומשלב את הזהות של הקושחה המאומתת בהיררכיית המפתחות של Titan.
  4. ה-ROM של האתחול של Titan טוען את הקושחה המאומתת של Titan.
  5. הקושחה של Titan מאמתת את התוכן של ה-flash של קושחת האתחול של ה-AP באמצעות קריפטוגרפיה של מפתח ציבורי. ‫Titan חוסם את הגישה של ה-AP ל-boot firmware flash עד שתהליך האימות מסתיים בהצלחה.
  6. אחרי האימות, שבב Titan משחרר את מעבד האפליקציות מאיפוס, ומאפשר למעבד האפליקציות לבצע אתחול.
  7. הקושחה של נקודת הגישה מבצעת הגדרה נוספת, שעשויה לכלול הפעלה של תמונות אתחול נוספות. המעבד יכול לצלם מדידות של תמונות האתחול האלה ולשלוח את המדידות ל-Titan לצורך מעקב מאובטח.

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

התהליך הזה דומה לתהליך האתחול שמבוצע על ידי פלטפורמות שמצוידות ב-TPM. עם זאת, צ'יפים של Titan כוללים תכונות שלא זמינות בדרך כלל במודולי TPM רגילים, כמו אימות עצמי של קושחת Titan או אבטחת שדרוג קושחת AP, כפי שמתואר בקטעים הבאים.

שילובים רגילים של TPM יכולים להיות פגיעים להתקפות פיזיות של רכיבי ביניים. שילובים חדשים יותר של Titan ב-Google מצמצמים את הסיכון להתקפות האלה באמצעות שורשי אמון משולבים. מידע נוסף זמין במאמר TPM Transport Security: Defeating Active Interposers with DICE (YouTube).

שדרוג מאובטח של הקושחה של Titan

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

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

‫Google תרמה לגרסה האחרונה של מפרט ספריית TPM, שכוללת עכשיו תכונות שמאפשרות ל-TPM אחרים לספק הבטחות דומות לאימות עצמי. מידע נוסף זמין בקטע TPM Firmware-Limited and SVN-Limited Objects (PDF) בגרסה 1.83 של מפרט ארכיטקטורת TPM. התכונות האלה של TPM הוטמעו והופעלו בצ'יפים האחרונים של Titan.

שדרוג מאובטח של קושחת נקודת הגישה

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

המאמרים הבאים

מידע נוסף על תהליך בדיקת תקינות האתחול