deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Rehber: TPM2, FIDO2 ve kurtarma anahtarlarıyla LUKS2'nin insansız açılması için systemd-cryptenroll

dev.to'da yayınlanan bir rehber, TPM2, FIDO2 ve kurtarma anahtarlarının LUKS2 birimlerine nasıl kaydedileceğini gösteriyor; böylece şifreli Linux sunucuları açılışta, parola yazılmadan açılıyor.

Rehber: TPM2, FIDO2 ve kurtarma anahtarlarıyla LUKS2'nin insansız açılması için systemd-cryptenroll

dev.to'da yayımlanan pratik bir rehber, Linux yöneticilerine systemd-cryptenroll aracını tanıtıyor; bu systemd yardımcı programı, LUKS2 ile şifrelenmiş birimleri donanım tabanlı açma etkenlerine bağlıyor ve böylece makineler yeniden başlatmalarda ya da elektrik kesintilerinde kimsenin parola yazmasına gerek kalmadan ayakta kalabiliyor.

Yazarın çıkış noktası net: her yeniden başlatmada konsolda bekleyen şifreleme, işi yarıda bırakır. Bu ödün bir dizüstünde katlanılabilirdir; ama bir homelab düğümünde, bir filo makinesinde ya da elektrik kesintisinden sonra kendi kendine yeniden başlaması beklenen herhangi bir sistemde, insanı bekleyen bir açma istemi doğrudan kesintiye dönüşür. Rehbere göre komutlar ve anlamlar systemd-cryptenroll(1), crypttab(5) ve [email protected](8) kılavuz sayfalarından geliyor ve systemd 262'ye kadar özellikleri kapsıyor.

Araç ne yapıyor, ne yapmıyor

systemd-cryptenroll, bir LUKS2 birimine beş tür açma etkeni kaydediyor: TPM2 güvenlik cihazları, hmac-secret uzantısını kullanan FIDO2 token'ları, PKCS#11 akıllı kartlar (RSA veya EC anahtar çiftleri), sıradan parolalar ve makine tarafından üretilen kurtarma anahtarları. Meta veriler LUKS2 JSON token alanına yerleşiyor ve açılışta systemd-cryptsetup tarafından /etc/crypttab ile birlikte kullanılıyor.

Rehber, aracın ne olmadığını da aynı netlikte söylüyor. Clevis ile Tang, ağa bağlı disk şifrelemesini kapsıyor; birimler, bir Tang sunucusuna erişilebildiğinde açılıyor. systemd-creds etkinleştirme anında servis başına gizli bilgileri tutar, disk açma anahtarlarını değil. sbctl ve Secure Boot açılış zincirini imzalar ve LUKS açmanın yerine geçmez, ona eşlik eder. cryptsetup luksAddKey yalnızca parola veya anahtar dosyası yuvaları ekler; TPM2 veya FIDO2 token JSON'ının hiçbirini içermez. LUKS1 doğrudan desteklenmiyor — bu birimlerin önce yedeklerin ardından cryptsetup convert --type luks2 ile dönüştürülmesi gerekiyor.

Özellikle, kayıt işlemi LUKS ana anahtarını token üzerine açık metinle koymuyor. TPM2 ile rastgele bir açma anahtarı çipe mühürleniyor ve mührün açılması ancak TPM kendi politikasını — PCR'lar, isteğe bağlı PIN, imzalı politikalar vb. — yeniden üretebildiğinde başarıyor. FIDO2'de ise token, yalnızca authenticator içinde kalan bir gizliyle rastgele bir salt üzerinden HMAC hesaplıyor; presence, client PIN ve kullanıcı doğrulaması yapılandırılabilir.

Önce kurtarma anahtarı

İlk laboratuvar bilinçli olarak süssüz: herhangi bir TPM2 veya FIDO2 denemesinden önce systemd-cryptenroll --recovery-key ile bir kurtarma anahtarı kaydedin, sonra bunu çevrimdışı saklayın — bir parola yöneticisi, basılı bir QR kod, mühürlü bir zarf — asla makinenin yanında değil. Komut, yeni yuvayı yetkilendirmek için mevcut bir parola istiyor; basılı anahtar, arkasında daha fazla entropi barındırdığından, bir root parolası kadar özenle korunmaya değer. Rehber ayrıca, parola yuvalarını silmeden önce ikinci bir oturum veya canlı bir USB ısrarında; çünkü bir yuvayı kurtarma yolu olmadan silmek, birim anahtarına erişimi yok eder.

TPM2 açmayı açılışa bağlamak

Fiziksel olarak güvendiğiniz bir ana makine için en basit yol, anahtarı PCR politikası olmadan TPM'e mühürlemektir; böylece birim, o TPM mevcut olduğunda açılır. Kabul edilen tehdit modeli şöyle: yalnızca çalınan bir disk açılmaz, ama makinenin TPM'iyle birlikte çalınan disk açılabilir. Kayıt tek komutla — systemd-cryptenroll --tpm2-device=auto — ardından rootfs UUID=YOUR-LUKS-UUID none tpm2-device=auto,x-initrd.attach gibi bir crypttab girdisi ve dağıtıma göre bir initramfs yeniden oluşturma (update-initramfs -u, dracut -f veya mkinitcpio -P).

crypttab seçenekleri ağırlık taşıyor. tpm2-device=auto çipi bulur; kök disk için x-initrd.attach önerilir ki aygıtlar kapanışta doğru sırayla ayrılsın; headless=true etkileşimli parolaya herhangi bir geri dönüşü engeller ve ancak TPM yolu kanıtlandıktan sonra kullanılmalıdır; varsayılanı 30 saniye olan token-timeout= donanım token'larını geri dönüşten önce bekler. Kök olmayan birimler systemctl start [email protected] ile canlı olarak sınanabilirken, kök disk için parola ve kurtarma anahtarı yuvaları yerinde kalana, yani tek bir temiz açılışa kadar kontrollü bir yeniden başlatma yapılmalıdır.

PCR bağlama ve güncelleme dostu politikalar

İkinci yarı, mühürlenmiş anahtarı ölçülen açılış durumuna bağlar; böylece bu durum saparsa mührün açılması başarısız olur. Rehberde alıntılanan kılavuz sayfası önerisi: birimleri, shim yoldaysa PCR 7 (Secure Boot politikası), PCR 11 (kernel-boot ve UKI ölçümleri) ve PCR 14 (shim/MOK) kombinasyonuna bağlayın, örneğin --tpm2-pcrs=7+11. Rehber, ham firmware kodu PCR'ları olan 0 ve 2 yerine sertifika destekli ölçümleri yeğliyor; çünkü onlar her firmware güncellemesinde değişiyor. Operasyonel maliyet açık — bağlı PCR'ları değiştiren kernel, UKI veya Secure Boot değişiklikleri, yeniden kayıt veya bir kurtarma yolu gelene kadar açılmayı bozar; yazar bunu özelliğin amacı olarak ve kurtarma anahtarının zorunlu olmasının nedeni olarak çerçeveliyor.

Bu maliyeti yumuşatmak için imzalı PCR politikaları, izin verilen PCR durumlarını imzalayan bir açık anahtara bağlanır (--tpm2-public-key=, --tpm2-public-key-pcrs=, isteğe bağlı olarak --tpm2-signature=); böylece üreticiler veya kurum içi bir UKI hattı, kernel'ler değiştiğinde taze imzalar sunabilir.

Neden önemli

Parola için duran şifreli bir Linux sunucusu, insansız güç kesintisinden veya uzaktan yeniden başlatmadan kurtulamaz; bu da güvenlik özelliğini filolar için bir güvenilirlik yüküne dönüştürür. systemd-cryptenroll, bu kişiyi açılış yolundan çıkarırken yalnız disk çalınmasına karşı korumayı korur ve PCR bağlama bu güvenceyi açılış zinciri müdahale tespitine kadar genişletir. Rehberin sıralaması — önce kurtarma anahtarı, donanım yolu kanıtlanana dek parolayı korumak, ardından kontrollü bir yeniden başlatmayla sınamak — onu bir komut listesi değil bir çalışma kitabı haline getiriyor; Clevis/Tang, systemd-creds ve Secure Boot araçlarından özenli ayrımı da yöneticilerin her iş için doğru mekanizmayı seçmesine yardım ediyor.

  • #linux
  • #systemd
  • #disk-encryption
  • #luks2
  • #tpm2