במסמך הזה מוסבר איך לעדכן את המשתנים Allowed Signature Database (db) ו-Key Exchange Key (KEK) במכונות וירטואליות שיצרתם לפני 7 בנובמבר 2025, כדי שהמכונות יסמכו על אישורים מעודכנים של אתחול מאובטח.
עדכון KEK ו-db הוא חלופה ללקוחות שלא יוצרים מחדש את מכונות החישוב המושפעות שלהם.
לפני שמתחילים
לפני שמעדכנים את אישורי ה-KEK וה-db של Secure Boot, צריך לבדוק אם המופעים דורשים עדכון ולהשלים את ההכנות הבאות כדי למנוע בעיות אפשריות בהפעלה או בפענוח:
- אימות הדרישות המוקדמות: מוודאים שהמופעים שלכם דורשים עדכון של אישורי אתחול מאובטח.
- תקינות נתונים ושחזור מפתחות: מאתרים את מפתחות השחזור של הצפנת הדיסק (BitLocker או LUKS FDE) ומגבים נתונים קריטיים. שינוי משתני אבטחה עלול לנעול את הגישה לדיסקים אם ההגדרה שגויה.
- המלצה לגבי רצף העדכונים ב-Linux: במקרים של מופעי Linux, מומלץ לעדכן את המשתנה
dbUEFI ל-Microsoft UEFI CA 2023 לפני שמעדכנים ל-shims חדשים. הסדר הזה עוזר למנוע תרחיש פוטנציאלי של אי-התאמה של רשות אישורים אם מוחל עדכון של shim שנחתם רק באמצעות Microsoft UEFI CA 2023, בזמן שמסד הנתונים מכיל רק את האישור משנת 2011. - הגדרות מותאמות אישית של PK או KEK: אם המופע שלכם משתמש במשתני Secure Boot מותאמים אישית (כמו
PKאוKEKמותאמים אישית), או אם אתם מריצים מערכת מחוץ ל-Compute Engine, קובצי העדכון הרגילים (DBUpdate3P2023.binאוkek2023update.bin) שמופיעים במסמך הזה לא יחולו ישירות. קובצי העדכון של קושחת UEFI צריכים להיות חתומים על ידי המפתח הפרטי שלKEKאוPKשרשומים במערכת, ו-kek2023update.binחתום באופן ספציפי על ידיPKברירת המחדל של Compute Engine. אם אתם משתמשים במפתחות בהתאמה אישית, אתם צריכים לחתום על קובצי העדכון הבינאריים באמצעות המפתחות הפרטיים שלכם או לנהל את העדכונים דרך רשות האישורים המותאמת אישית שלכם. מידע נוסף מופיע במאמר פתרון בעיות בעדכון מפתח KEK. - Cloud de Confiance by S3NS מכשירי Backup and DR: אלה מכשירים מנוהלים. אתם לא צריכים לעדכן ידנית את האישורים של Secure Boot במכשירי Cloud de Confiance by S3NS האלה.כל העדכונים מתבצעים באופן אוטומטי.
עדכון של מסד הנתונים ומפתח הצפנה ב-Linux
כדי לעדכן את מסד הנתונים של החתימות המותרות (db) ואת מפתח החלפת המפתחות (KEK), בוחרים את האפשרות שמתאימה למערכת ההפעלה שלכם:
Debian או Ubuntu
אפשר לעדכן את האישורים של האתחול המאובטח ב-Debian או ב-Ubuntu באמצעות fwupd, efitools או sbsigntool.
אפשרות 1: עדכון באמצעות fwupd (מומלץ)
מומלץ להשתמש ב-fwupd כדי לעדכן את האישורים. כדי להשתמש בשיטה הזו, נדרשת גרסה fwupdmgr 2.0.10 ומעלה. כדי לאמת את הגרסה, מריצים את הפקודה sudo fwupdmgr --version.
מריצים את הפקודות הבאות:
sudo fwupdmgr refresh
sudo fwupdmgr update 5bc922b7bd1adb5b6f99592611404036bd9f42d0
sudo fwupdmgr update b7a1d3d90faa1f6275d9a98da4fb3be7118e61c7
אפשרות 2: עדכון באמצעות efitools
כדי לעדכן את המשתנים db ו-KEK באמצעות חבילת efitools, מבצעים את הפעולות הבאות:
עדכון מסד הנתונים
מורידים את הקובץ הבינארי של העדכון של מסד הנתונים של החתימות המותרות (
db) מ-Microsoft:wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.binמעדכנים את המשתנה
db:sudo chattr -i /sys/firmware/efi/efivars/db-* sudo efi-updatevar -a -f DBUpdate3P2023.bin db sudo chattr +i /sys/firmware/efi/efivars/db-*
עדכון KEK
מורידים את הארכיון
.cabשמכיל את עדכון האישור:wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cabמתקינים את כלי השירות
gcab:sudo apt update && sudo apt install gcab -yמחולצים את הארכיון ומוודאים שגיבוב SHA-256 של קובץ
kek2023update.binשחולץ תואם ל-99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab sha256sum kek2023update.binמחילים את העדכון:
sudo chattr -i /sys/firmware/efi/efivars/KEK-* sudo efi-updatevar -a -f kek2023update.bin KEK sudo chattr +i /sys/firmware/efi/efivars/KEK-*
אפשרות 3: עדכון באמצעות sbsigntool
כדי לעדכן את המשתנים db ו-KEK באמצעות כלי השירות sbkeysync מהחבילה sbsigntool, צריך להתקין את sbsigntool ואת gcab:
sudo apt update && sudo apt install sbsigntool gcab -y
עדכון מסד הנתונים
מורידים את קובץ העדכון הבינארי של
dbמ-Microsoft:wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.binמסנכרנים את המפתח:
sudo mkdir -p /etc/secureboot/keys/db sudo cp DBUpdate3P2023.bin /etc/secureboot/keys/db/ sudo chattr -i /sys/firmware/efi/efivars/db-* sudo sbkeysync --verbose sudo chattr +i /sys/firmware/efi/efivars/db-*
עדכון KEK
מורידים ומחלצים את העדכון של אישור ה-KEK:
wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cabמוודאים שגיבוב SHA-256 של קובץ
kek2023update.binשחולץ תואם ל-99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:sha256sum kek2023update.binמסנכרנים את המפתח:
sudo mkdir -p /etc/secureboot/keys/KEK sudo cp kek2023update.bin /etc/secureboot/keys/KEK/ sudo chattr -i /sys/firmware/efi/efivars/KEK-* sudo sbkeysync --verbose sudo chattr +i /sys/firmware/efi/efivars/KEK-*
Red Hat Enterprise Linux (RHEL)
אפשר לעדכן את אישורי ההפעלה המאובטחת ב-RHEL באמצעות sbsigntools. יכול להיות שבתמונות RHEL יש גרסה ישנה יותר של fwupd שלא תומכת בעדכוני אישורים של UEFI מחוץ לקופסה.
כדי לעדכן את המשתנים db ו-KEK באמצעות כלי השירות sbkeysync מהחבילה sbsigntools:
מפעילים את מאגר EPEL ומתקינים את
sbsigntoolsו-cabextract:sudo dnf install epel-release -y sudo dnf install sbsigntools cabextract -yכדי לעדכן את המשתנה
db:מורידים את הקובץ הבינארי של העדכון של מסד הנתונים של החתימות המותרות (
db) מ-Microsoft:wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.binמסנכרנים את המפתח:
sudo mkdir -p /etc/secureboot/keys/db sudo cp DBUpdate3P2023.bin /etc/secureboot/keys/db/ sudo chattr -i /sys/firmware/efi/efivars/db-* sudo sbkeysync --verbose sudo chattr +i /sys/firmware/efi/efivars/db-*
כדי לעדכן את המשתנה
KEK:מורידים ומחלצים את העדכון של אישור ה-KEK:
wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cabמוודאים שגיבוב SHA-256 של קובץ
kek2023update.binשחולץ תואם ל-99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:sha256sum kek2023update.binמסנכרנים את המפתח:
sudo mkdir -p /etc/secureboot/keys/KEK sudo cp kek2023update.bin /etc/secureboot/keys/KEK/ sudo chattr -i /sys/firmware/efi/efivars/KEK-* sudo sbkeysync --verbose sudo chattr +i /sys/firmware/efi/efivars/KEK-*
SUSE Linux Enterprise Server (SLES)
אפשר לעדכן את אישורי האתחול המאובטח ב-SLES או ב-openSUSE באמצעות sbsigntools או efitools. יכול להיות שבתמונות SLES יש גרסה ישנה יותר של fwupd או שהן לא מספקות אותה בכלל.
אפשרות 1: עדכון באמצעות sbsigntools
כדי לעדכן את המשתנים db ו-KEK באמצעות כלי השירות sbkeysync מהחבילה sbsigntools, מפעילים את SUSE Package Hub ומתקינים את sbsigntools ו-cabextract:
sudo SUSEConnect -p PackageHub/15.5/x86_64
sudo zypper install sbsigntools cabextract -y
עדכון מסד הנתונים
מורידים את קובץ העדכון הבינארי של
dbמ-Microsoft:wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin ```מסנכרנים את המפתח:
sudo mkdir -p /etc/secureboot/keys/db sudo cp DBUpdate3P2023.bin /etc/secureboot/keys/db/ sudo chattr -i /sys/firmware/efi/efivars/db-* sudo sbkeysync --verbose sudo chattr +i /sys/firmware/efi/efivars/db-* ```
עדכון KEK
מורידים ומחלצים את העדכון של אישור ה-KEK:
wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab ```מוודאים שגיבוב SHA-256 של קובץ
kek2023update.binשחולץ תואם ל-99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:sha256sum kek2023update.bin ```מסנכרנים את המפתח:
sudo mkdir -p /etc/secureboot/keys/KEK sudo cp kek2023update.bin /etc/secureboot/keys/KEK/ sudo chattr -i /sys/firmware/efi/efivars/KEK-* sudo sbkeysync --verbose sudo chattr +i /sys/firmware/efi/efivars/KEK-* ```
אפשרות 2: עדכון באמצעות efitools
כדי לעדכן את המשתנים db ו-KEK באמצעות חבילת efitools, מבצעים את הפעולות הבאות:
עדכון מסד הנתונים
מורידים את הקובץ הבינארי של העדכון של מסד הנתונים של החתימות המותרות (
db) מ-Microsoft:wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin ```מעדכנים את המשתנה
db:sudo chattr -i /sys/firmware/efi/efivars/db-* sudo efi-updatevar -a -f DBUpdate3P2023.bin db sudo chattr +i /sys/firmware/efi/efivars/db-* ```
עדכון KEK
מורידים את הארכיון
.cabשמכיל את עדכון האישור:wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab ```מפעילים את SUSE Package Hub ומתקינים את כלי השירות
gcab:sudo SUSEConnect -p PackageHub/15.5/x86_64 sudo zypper install gcab -y ``` Note: Replace `15.5` with your SLES version if different.מחולצים את הארכיון ומוודאים שגיבוב SHA-256 של קובץ
kek2023update.binשחולץ תואם ל-99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab sha256sum kek2023update.bin ```מחילים את העדכון:
sudo chattr -i /sys/firmware/efi/efivars/KEK-* sudo efi-updatevar -a -f kek2023update.bin KEK sudo chattr +i /sys/firmware/efi/efivars/KEK-* ```
עדכון מסד הנתונים ומפתח הצפנה ב-Windows
אם אתם לא משתמשים ב-Secure Boot במופע הזה או לא מתכננים להשתמש בו, אתם לא צריכים להחיל את עדכוני האישורים האלה. מערכות הפעלה של Windows בדרך כלל מתעלמות מניסיונות להחיל את עדכוני האישורים האלה של אתחול מאובטח אם האתחול המאובטח לא מופעל, כי העדכון לא נחוץ.
אם אתם מתכוונים להשתמש בהפעלה מאובטחת בהמשך, אתם צריכים קודם להפעיל אותה במופע כדי לעדכן את האישורים של ההפעלה המאובטחת.
במופעי Windows, הגדרות הרישום ומשימות מתוזמנות מפעילות עדכונים בגרסאות תואמות:
- מוודאים שעדכונים חודשיים מהזמן האחרון הוחלו על מופעי Windows.
כאדמינים ב-PowerShell, מריצים את הפקודה:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x5944 Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"מפעילים מחדש את המופע כדי לאפשר פעולות על משתני קושחה. בסביבות מסוימות נדרשות שתי הפעלות מחדש אם תכונות האבטחה של הוירטואליזציה פעילות.
אימות העדכון
אחרי שמחילים את העדכונים באמצעות fwupd, efitools, sbsigntool או PowerShell, צריך לוודא שהאישורים משנת 2023 נמצאים במשתני ה-UEFI של המופע.
Linux
לא משנה באיזה כלי משתמשים כדי להחיל את העדכון, האישורים נכתבים למשתני ה-UEFI NVRAM של המופע. אפשר לאמת אותם ישירות באמצעות mokutil (מומלץ) או efi-readvar:
באמצעות
mokutil(מומלץ):mokutilמותקן כברירת מחדל ברוב הפצות Linux.sudo mokutil --kek | grep "KEK 2K CA 2023" sudo mokutil --db | grep "UEFI CA 2023"באמצעות
efi-readvar: אםefitoolsמותקן, מריצים את הפקודה:sudo efi-readvar -v KEK | grep "KEK 2K CA 2023" sudo efi-readvar -v db | grep "UEFI CA 2023"
אם גם המשתנה KEK וגם המשתנה db מציגים את האישורים של 2023, העדכון הוחל בהצלחה ולא נדרשת פעולה נוספת.
Windows
בשורת פקודה של PowerShell עם הרשאות אדמין, מריצים את הפקודה:
# Check for Microsoft KEK 2K CA 2023
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI KEK).bytes) -match 'Microsoft Corporation KEK 2K CA 2023'
# Check for UEFI CA 2023
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'UEFI CA 2023'
# Confirm general Secure Boot enrollment state
Confirm-SecureBootUEFI
פתרון בעיות בעדכון מפתח KEK
כשמעדכנים את המשתנה KEK ב-Linux, יכול להיות שהעדכון של db (DBUpdate3P2023.bin) יצליח, אבל העדכון של KEK (kek2023update.bin) ייכשל עם אחת מהשגיאות הבאות:
כשמשתמשים ב-
sbkeysync:Inserting key update /etc/secureboot/keys/KEK/kek2023update.bin into KEK Error writing key update: Invalid argument Error syncing keystore file /etc/secureboot/keys/KEK/kek2023update.binכשמשתמשים ב-
efi-updatevar:Cannot write to KEK, wrong filesystem permissions
מטרה
ב-UEFI Secure Boot, db עדכונים (DBUpdate3P2023.bin) נחתמים על ידי Microsoft Corporation KEK CA 2011, שרשום כברירת מחדל ברוב מערכות UEFI Secure Boot. עם זאת, עדכוני KEK חייבים להיות חתומים על ידי מפתח הפלטפורמה (PK) שרשום בקושחה של המערכת. אם הקושחה דוחה את החתימה ב-kek2023update.bin או מונעת כתיבה למשתנה UEFI, ליבת Linux מחזירה שגיאה.
השגיאה הזו מתרחשת בגלל אחת מהסיבות הבאות:
- המשתנה
KEKUEFI עדיין מסומן כבלתי ניתן לשינוי: הפקודהchattr -iלא הופעלה לפני הניסיון לבצע את פעולת הכתיבה. - המכונה משתמשת ב-
PKבהתאמה אישית: ארכיון1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cabמכיל קובץ בינאריkek2023update.binשחתום באופן בלעדי על ידיPKברירת המחדל של Compute Engine. אם במכונה של Compute Engine או באימג' מותאם אישית רשוםPKמותאם אישית, הקושחה דוחה אתkek2023update.bin. - המערכת היא לא מופע של Compute Engine: אם מריצים את הפקודות האלה על חומרה פיזית או על מכונה וירטואלית מחוץ ל-Compute Engine, ה-
PKשל המערכת שייך ליצרן החומרה או לספק ההיפר-ויזורים ולא ל-Compute Engine, ולכן הקושחה דוחה אתkek2023update.bin.
רזולוציה
כדי לאבחן ולפתור את השגיאה, צריך לבצע את הפעולות הבאות:
חשוב להקפיד להסיר את המאפיין immutable מהמשתנה
KEKמיד לפני שמריצים את הפקודהsbkeysyncאוefi-updatevar:sudo chattr -i /sys/firmware/efi/efivars/KEK-*בודקים את
PKשרשום במופע:sudo mokutil --pkבהתאם לפלט של
sudo mokutil --pk, מבצעים אחת מהפעולות הבאות:- אם המכונה משתמשת ב-
PKמותאם אישית: חותמים על קובץ הבינארי של העדכוןKEKבאמצעות המפתח הפרטי שמתאים ל-PKהמותאם אישית, או יוצרים מחדש את מכונת ה-Compute מתוך תמונת מצב של דיסק באמצעות תמונה שמסתמכת על אישורי אתחול מאובטח של Compute Engine שמוגדרים כברירת מחדל. - אם מעדכנים מכונה שאינה Compute Engine: מסירים את
/etc/secureboot/keys/KEK/kek2023update.binומקבלים את העדכוןKEKמיצרן החומרה או מספק הפלטפורמה (לדוגמה, על ידי הפעלתsudo fwupdmgr updateאם הספק תומך בכך).
- אם המכונה משתמשת ב-