BitLocker הצפנות ובינהם

Bitlocker הינה טכנולוגיה להצפנות דיסק במערכות הפעלה שונות (גם Windows וגם Linux), ובמערכות הפעלה מבוססות Microsoft היא קיימת החל מגרסאות Windows Vista השונות ומעלה ובגרסת Windows 10 קיבלה שיפורי אבטחה רבים.

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

הפעלת BitLocker כיום הינה תהליך של Click-to-Next אך לפניו מגיע תהליך תכנון קפדני שכן תכנון לא נכון עלול לגרום לבעיות שונות בתחנת הקצה של המשתמשים, וגרוע מכך עלול ליצור מצב אשר בו BitLocker אינו מבצע את ההגנה הנדרשת אשר לשמה BitLocker נועד (תחנות קצה אינן מוצפנות כמו שצריך), ניהול מפתחות ופענוח לא מנוהלים נכון וכן הלאה.

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

הקדמה

הטכנולוגיה של BitLocker במערכות Microsoft זמינה החל מגרסת Windows Vista וכן Windows Server 2008 ומטרתה העיקרית היא התמודות עם הגנה על המידע, שלמות המידע ומניעת זליגת מידע, כל זאת נעשה ע"י הצפנת תוכן הדיסק ופענוחו בעת הצורך בלבד וע"י אותם מפתחות ייעודים של אותה הצפנה השייכים לאותו דיסק.

המטרה של BitLocker היא לבצע הגנה על אמצעי האחסון כולו, אשר כולל אחסון דיסק נייח והתקני אחסון ניידים המתחברים לתחנת הקצה, ברירת המחדל של הצפנת BitLocker היא שימוש באלגוריתם הצפנה AES (אשר עושה שימוש על גבי CBC) או בתצורה של XTS עם מפתחות הצפנה של 128 או 256. חשוב להדגיש כי השימוש של CBC נעשה רק ברמת הסקטור עצמו ולא כל הדיסק עצמו.

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

הצפנת דיסק וניהול המפתחות

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

כאשר מפעילים BitLocker אנו למעשה מצפינים את כלל הדיסק כולל מערכת נפעלה, האפליקציות, קובצי מערכת, קבצים זמניים, קובצי Hibernation, כלל הפרופילים של המשתמשים וכן הלאה.

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

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

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

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

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

ניהול מפתחות חייב להיעשות מתוך מערכת ייעודית שתאפשר שמירה של נתונים שונים, כדוגמת:

  • Hash of the TPM owner password
  • BitLocker recovery password
  • BitLocker key package

במצבים רבים הנתונים שהוזכרו ונוספים נשמרים על גבי תשתית Active Directory (בשילוב עם MBAM) או על גבי Azure AD (בשילוב עם Intune והרכיב המרכזי הוא BitLocker CSP), ולמעשה מאפשרים ניהול מפתחות מול המשתמש או לחלופין גישת משתמש אל Recovery Key (במצבים מסוימים ולפי הגדרה מראש).

מצד שני אם נקח דוגמה גרועה של תחנת קצה ללא ניהול באמצעות Active Directory או ללא שיוך אל Azure AD, בהצפנה כזאת של BitLocker על גבי תחנה מקומית ובודדת אנו למעשה מצפינים את המפתח הסימטרי על גבי דיסק אחר, ולכן אבטחה מסוג זה מבוססת על What You Have ומשתמש צריך לחבר את הדיסק החיצוני טרם עליית התחנה בכדי לטעון מפתח הצפנה.

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

כאשר מזכירים את מפתח ההצ]פנה תמיד עולה השאלה של מנגנון אימות המשתמש:

  • אימות אישי (מבוסס PIN+TPM) – משתמש מחויב לשים קוד מסוים באתחול מערכת ההפעלה, מומלץ ומונע את רוב החולשות שנמצאו בשנים האחרונות.
  • אימות מבוסס TPM – הנתונים והמפתחות (חלקם) נמצאים ברמת חמורה (מבוסס TPM Chip)
  • אימות USB – המפתח נמצא על גבי התקן נייד חיצוני המוכר על ידי BIOS וכאשר אותו התקן חיצוני מחובר ניתן להתחבר למערכת
  • אימות TPM + אימות USB – שילוב של מפתח הצפנה אשר נמצא על התקן חיצוני וגם על TPM וללא שינם יחדיו אין אפשרות לבצע לוגין למערכת הפעלה
  • אימות סיסמה – משתמש מתבקש לשים סיסמה בלבד
  • אימות סיסמה על גבי USB – אימות על גבי התקן חיצוני נייד שמצריך סיסמה של המשתמש (במצבים מסוימים בהם אין צורך בסיסמת לוגין)

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

BitLocker עושה שימוש במפתחות קריפטוגרפיים שונים וכאלה שרק TPM יכול לפענח אותם, בין היתר מדובר על מפתחות מבוססים SRK, VMK, FVEK (מורחבים בהמשך המאמר).

רכיב TPM

הטכנולוגיה של BitLocker מבוססת על רכיב חומרה TPM בכדי לספק הגנה והצפנה על הדיסק, ולכן חשוב להדגיש כי היא שמורת על שלמות המידע לפני תהליך אתחול מערכת Windows 10.

הערה: ניתן לעבוד עם BitLocker גם ללא רכיב חומרה ולבצע זאת באמצעות התקנן USB חיצוני.

כאשר עובדים עם TPM אנו למעשה מתבססים על גבי טכנולוגיה אשר פותחה ע"י TCG במטרה לספק Trusted Computing עם תשתית שתספק אמינות ותנסה למנוע שינויים במהלך אתחול הדיסק ע"י תוקפים או סיכונים אחרים.

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

כאשר מערכת הפעלה מסוג Windows 10 עולה ומוגדרת עם רכיב TPM מתרחשים פעולות רבות,

תהליך אתחול במערכת Windows 10 עם רכיב TPM מבוצע באמצעות רכיבים סף וטכנולוגיות שונות, כדוגמת CRTM שהיא חלק מתוך אותו Trusted Computing ונמצא ברמת BIOS (חלק ממנו) של תחנת הקצה, במצב כזה ישנה הפרדה בין תהליך עליה תקין רגיל לבין תהליך עליה של רכיב TPM הכולל CRTM אשר נפרד מתוך BIOS עצמו.

אחד הדברים החשובים של Trusted Computing הוא התבססות ואמינות הדרגתית על חלק מהמערכת של CRTצ מול רכיב TPM, לצורך הענין בתהליך האתחול רכיבים אשר נחשבים אמינים מצבעים מדידות מול רכיבים אחרים. לדוגמה בדיקה של Boot Loader מול קוד הרכיב.

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

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

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

הצפנה באמצעות BitLocker

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

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

  • Storage Root Key – המפתח הראשי המשמש להצפנת התקני אחסון, המפתח מיוצר ומאוחסן ב-TPM ואינו משודר לגורם חיצוני.
  • Volume Master Key – מפתח ביניים המאוחסן על הדיסק כשהוא מוצפן תחת SRK, מפתח זה משמש להצפנת FVEK.
  • Full volume Encryption Key – מפתח שבאמצעותו נעשה ההצפנה של הדיסק, מפתח זה מאוחסן על הדיסק ,כאשר הוא מוצפן תחת מפתח VMK. ההצפנה נעשית על גבי הצפנה מבוססת AES עם תצורת הפעלה מבוססת CBC. בנוסף לכך ישנו שילוב של רכיב Diffuser שמטרתו לספק יכולות אבטחה נוספות.

דגשים בהגדרות BitLokcer

דגשים אלה הינם דגשים בסיסיים בלבד שמותאמים מול Windows 10 וכן תשתית Azure AD + Intune.

  • שימוש על גבי רכיב חומרה TPM 2.0 בלבד (לא גרסה ישנה יותר)
  • התבססות על גבי גרסת Windows 10 מתקדמת ככל האפשר (ישנם שיפורים והבדלים בין Builds שונים)
  • שימוש ביכולות TPM + PIN בכדי לאפשר אימות מירבי של המשתמש (במצבי קצה לשלב אימות USB)
  • התבססות על גבי מערכת Azure AD המאפשר אחסון ושמירת נתונים של BitLocker ללא צורך במערכות נוספות (במידת הצורך ניתן לעבוד עם Active Directory כמו שהיה עד כה)
  • שילוב ויכולות Secure Boot כולל Device Guard בכדי להקטין את שטח המתקפה של אפליקציות וסיכונים לא מורשים
  • הצפנה של התקנים ניידים אשר מתחבירם את תחנת הקצה
  • חווית משתמש – אפשרויות שחזור ושימוש של Recovery Key באופן פשוט

הגדרות בסיסיות על גבי Intune לפי הערכים הבאים:

screenshot_37screenshot_38screenshot_39screenshot_40

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

במאמר הבא התמקד בהגדרת BitLocker למערכות מבוססות Windows 10 באמצעות Azure AD ושילוב Intune.

למאמרי Bitlocker נוספים

You may also like...

2 Responses

  1. moti הגיב:

    מאמר מצוין אלי ותודה על השיתוף

  1. 26/11/2020

    […] הקןדם של BitLocker הצפנות ובינהם התמקד בסוגי הצפנות, דגשים חשובים להגדרת Bitlocker ומידע […]

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *