Havenfold

Ubuntu Server 24.04'te LUKS2 ve TPM 2.0 ile otomatik açılış: neyi otomatikleştirdik, sanal makinede neyi denedik

Havenfold ekibi ·

Şifreli bir Ubuntu Server'ın açılışta kendiliğinden açılması için LUKS2 diskini makinedeki TPM 2.0 çipine bağlayabilirsiniz; örneğin Clevis ile. TPM anahtarı vermeyi reddettiğinde kullanmak için de ayrı bir kurtarma anahtarı tutulur. Asıl zor seçimler hangi TPM ölçümlerine (PCR) bağlanacağı ve bu seçimden sonra neye karşı korunup neye karşı korunmadığınızdır.

Bu yazı Havenfold kurulumunun bunu Ubuntu Server 24.04'te nasıl yaptığını, neden PCR 7'ye bağlandığını, bu seçimin dürüst sınırını ve tam olarak neyin denenip neyin denenmediğini anlatıyor. Havenfold pre-alpha aşamasında ve burada anlatılanlar yalnız sanal makinede doğrulandı.

Ev sunucusu neden otomatik açılış ister?

Bir ev sunucusu elektrik kesintisinden sonra kendiliğinden ayağa kalkmalıdır. Diski parolayla şifrelenmişse her açılışta birinin parolayı yazması gerekir; gece yarısı kimse bunu yapmaz. Şifreleme yoksa da çalınan makine diskini olduğu gibi teslim eder.

Disk anahtarını TPM'ye bağlamak bilinen orta yoldur: TPM anahtarı yalnız makine beklenen durumda açılırsa verir. Sunucu evde kendiliğinden açılır, ama sökülüp başka bir makinede okunan disk kilitli kalır.

Havenfold kurulumu bunu nasıl kuruyor?

Kurulum ve tasarımı RFC-0007 §8.5'te ve kurulumun notlarında anlatılıyor. TPM olan bir makinede:

  • Geçici parolayla kurulum: Otomatik kurulum, LUKS2 ve LVM düzenini geçici bir parolayla kurar.
  • İlk bağ PCR'sız: Kurulum ortamı USB'den açıldığı için ilk Clevis TPM bağı PCR'sız yapılır.
  • Diskten ilk açılışta PCR 7'ye geçiş: Bir servis PCR 7'ye yeni bir bağ kurup eskisini kaldırır, yeni bir anahtar yuvasına rastgele bir kurtarma anahtarı ekler ve geçici parolanın yuvasını siler.
  • Kurtarma anahtarı bir kişiye verilir: Yüz yüze katılım töreninden sonra kurtarma anahtarı, doğrudan şifreli bir oturumla töreni yapan ebeveynin telefonuna gönderilir ve ailenin kasa koleksiyonuna (kasa yoksa ebeveynler koleksiyonuna) yazılır. Telefon onaylayınca düğüm kendi kopyasını siler; onay gelmezse cihaz kartında bir uyarı durur ve anahtar silinmez.
  • TPM yoksa disk şifrelenmez: TPM olmayan makinede disk şifrelenmez ve kurtarma anahtarı yoktur; tasarım belgesi bunu açıkça yazıyor.

Neden PCR 7 ve neye karşı korumaz?

PCR 7 Güvenli Önyükleme durumunu ölçer. RFC-0007 seçimi şöyle açıklıyor: değişmeyen bir donanımda yeniden başlatmalar ve çekirdek güncellemeleri bağı bozmaz; Güvenli Önyükleme kapatılırsa ya da anahtar veritabanı değişirse bozar. PCR 4 de eklenseydi her shim, GRUB ya da çekirdek güncellemesinden sonra düğüm gözetimsiz açılamazdı.

RFC sınırı da aynı açıklıkla yazıyor: aynı bilgisayarı Microsoft imzalı başka bir sistemle, örneğin herhangi bir canlı Linux USB'siyle, Güvenli Önyükleme açıkken başlatan bir saldırgan PCR 7'yi aynı tutabilir ve diski açabilir. Yani bu şifreleme asıl olarak diskin sökülüp başka makinede okunmasına ve Güvenli Önyükleme kapatılarak yapılan saldırıya karşı korur. Ailenin içeriği zaten uçtan uca şifrelidir; açığa çıkabilecek olan kimlik ve saklanan zarfların üst bilgisidir.

PCR 7 değişirse düğüm açılışta parola sorar. Bir ebeveyn kurtarma anahtarını telefonunda açar, konsola yazar ve servis bağı yeni PCR 7 değeriyle yeniden kurar. Bunu tetiklediği bilinen paket güncellemeleri gözetimsiz güncellemeden tutulur ve yerel onaya bırakılır.

Ne denendi, nerede?

Aşağıdakilerin hepsi GitHub Actions'ta bir sanal makinede (yazılım TPM'si ve açık Güvenli Önyükleme ile QEMU), install.yml iş akışıyla, Ekim 2026'da doğrulandı:

  • Güvenli Önyükleme açık UEFI makinede kurulum menüsü ve LUKS2 ile LVM'li otomatik kurulum.
  • Kurulumdan önce TPM ile mühürle-aç denemesi ve PCR'sız Clevis bağı.
  • İlk açılışta: TPM ile parolasız açılış, PCR 7'ye geçiş, kurtarma yuvasının eklenmesi, geçici yuvanın silinmesi ve kurtarma anahtarının diski açması.
  • İkinci açılışta PCR 7 bağıyla parolasız açılış ve aynı cihaz kimliği.
  • Kurulum günlüklerinde geçici paroladan iz kalmaması.

Doğrulanmayan: gerçek donanım. Kurulumun kendi notları kalanları sayıyor: BIOS'lu makineler ve Güvenli Önyükleme kapalı UEFI, Güvenli Önyükleme kapatılıp açıldıktan sonra kurtarma, TPM'siz makineler, Wi-Fi ve pil davranışı ve QEMU'nun sunmadığı gerçek disk silme komutları. Sanal makine gerçek donanımın yerini tutmaz; notlar, denenmiş maddelerin de gerçek bir cihazda bir kez yinelenmesi gerektiğini yazıyor.

Bunu kendiniz yapmak isterseniz

Bunların hiçbiri için Havenfold'a ihtiyacınız yok. Ubuntu Server'da Clevis'in TPM2 eklentisi ve LUKS2 bu bağı kurabilir. PCR'larınızı yukarıdaki dengeyi düşünerek seçin, kurtarma anahtarını makineden başka bir yerde tutun ve güvenmeden önce bir kurtarmayı deneyin.

Özet

  • LUKS2 diskini TPM 2.0 çipine bağlamak, ev sunucusunun açılışta kendiliğinden açılmasını sağlarken sökülen diski kilitli tutar.
  • Havenfold kurulumu bağı kurulumda PCR'sız yapar, ilk açılışta PCR 7'ye taşır, bir kurtarma anahtarı ekler ve onu bir ebeveynin telefonuna verir.
  • PCR 7 çekirdek güncellemelerinden etkilenmez; ama Güvenli Önyükleme açıkken Microsoft imzalı başka bir sistemle açan saldırgan onu aynı tutabilir. Koruma asıl olarak diskin sökülmesine ve Güvenli Önyüklemenin kapatılmasına karşıdır.
  • Bunların hepsi yalnız CI'daki sanal makinede doğrulandı, gerçek donanımda değil. Havenfold pre-alpha aşamasında ve gerçek veri için değil.

Havenfold pre-alpha aşamasında: gerçek verilerle kullanmayın. Henüz gerçek bir evde çalışmadı ve bağımsız bir güvenlik denetiminden geçmedi.

Kaynaklar