Unified Extensible Firmware Interface/Secure Boot (Türkçe)
Secure Boot, UEFI standardında yer alan ve önyükleme öncesi sürece ek bir koruma katmanı sağlamak amacıyla tasarlanmış bir güvenlik özelliğidir. Önyükleme sırasında çalıştırılmasına izin verilen veya yasaklanan ikili dosyaların (binary) şifreleme yöntemleriyle imzalanmış bir listesini tutarak; sistemin temel önyükleme bileşenlerinin (önyükleme yöneticisi, çekirdek, initramfs) yetkisiz müdahaleye uğramadığından emin olunmasını sağlar.
Bu bakımdan Secure Boot, kişilerin kendi çalışma ortamlarını güvenli hâle getirme çabalarının bir devamı veya tamamlayıcısı olarak görülebilir. Sistem şifrelemesi gibi diğer yazılım güvenliği çözümlerinden tamamen farklı ve onlara bağımlı olmamakla birlikte, bu çözümlerin kolayca kapsayamadığı saldırı yüzeyini daraltır. Secure Boot, kendine has avantajları ve dezavantajlarıyla, mevcut güvenlik uygulamalarının bir bileşeni olarak tek başına varlığını sürdürmektedir.
Secure Boot Durumunun Kontrol Edilmesi
İşletim sistemini önyüklemeden önce
Bu noktada, bellenim (firmware) yapılandırmasına bakmak gerekir. Eğer işletim sistemi açılmış ve çalışıyorsa, genellikle makinenin yeniden başlatılması gerekir.
Önyükleme sürecinde özel bir tuş ile bellenim yapılandırmasına erişebilirsiniz. Bu tuş cihazınıza bağlı olarak değişiklik gösterebilir. Genellikle Esc, F2, Del veya başka bir fonksiyon tuşu (F1-F12 arası) olabilir. Bazen doğru tuş önyükleme sürecinin başında kısa bir süreliğine görüntülenebilir. Bu genellikle anakart kılavuzunda belirtilir.
- Press [DEL] to enter UEFI BIOS setup
- F12 for Boot Menu
Makineyi çalıştırdıktan hemen sonra, hatta ekran henüz hiçbir şey göstermeden önce bu tuşa art arda basmanız gerekebilir.
Bellenim yapılandırmasına girdikten sonra, planlamadığınız hiçbir ayarı değiştirmemeye dikkat edin. Genelde her yapılandırma menüsünün altında gezinme yönergeleri ve ayarlar için küçük bir yardım penceresi bulunur. Kurulum süreci birden fazla sayfadan oluşabilir, bu nedenle ilgili ayarın bulunduğu doğru bölüme gitmeniz gerekecektir. İlgili ayar, genelde "Security" (Güvenlik) gibi bir sekmede bulunur ve ismi basitçe "Secure Boot" (Güvenli Önyükleme) şeklindedir. Bu özellik etkinleştirilip devre dışı bırakılabilir biçimdedir.
İşletim sistemini önyükledikten sonra
Secure Boot'un aktiflik durumunu systemd kullanan sistemlerde kontrol etmenin bir basit yolu da bootctl(1) kullanmaktır:
$ bootctl
System:
Firmware: UEFI 2.80 (American Megatrends 5.26)
Firmware Arch: x64
Secure Boot: enabled (user)
TPM2 Support: yes
Measured UKI: yes
Boot into FW: supported
...
Bu örnekte gördüğümüz gibi Secure Boot aktif ve kullanıcı modunda uygulanmış. Diğer olası değerler şunlardır: Kurulum Modu için disabled (setup) , Güvenli Önyükleme kapalıysa disabled (disabled) ve bellenim Secure Boot özelliğini desteklemiyorsa disabled (unsupported) .
Makinenin Secure Boot ile başlatılıp başlatılmadığını kontrol etmenin bir başka yolu ise bu komutu kullanmaktır:
$ od --address-radix=n --format=u1 /sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
Eğer Secure Boot aktifse, komut yazdırılan 5 sayıdan sonuncusunun değerini 1 olarak döndürür. Örneğin:
6 0 0 0 1
Bununla birlikte, yetersiz kapasiteye sahip bir önyükleyici (boot loader) kullanılması durumunda, (bellenimde etkinleştirilmiş olsa bile) çekirdek Secure Boot'tan haberdar olmayabilir. Bu durum, sistem başlatıldıktan kısa bir süre sonra çekirdek iletileri kontrol edilerek doğrulanabilir:
# journalctl -kg 'secure boot'
kernel: Secure boot disabled kernel: Secure boot could not be determined
Aksi takdirde çekirdek mesajlarında Secure boot enabled (secure boot etkinleştirildi) yazacaktır.
Bir kurulum ortamına önyükleme
Resmi indirme kalıbı Secure Boot'u desteklemez (archlinux/archiso#69). Secure Boot desteği ilk olarak archlinux-2013.07.01-dual.iso kalıbına eklenmiş, ancak daha sonra archlinux-2016.06.01-dual.iso ile kaldırılmış ve o günden sonra bir daha geri eklenmemiştir. O dönemde, efitools her ne kadar imzalanmamış EFI ikili dosyaları kullanıyor olsa da prebootloader'ın yerini almıştır.
Bir indirme kalıbını Secure Boot ayarı etkin bir cihazda başlatmak için ya Secure Boot'u kapatmanız ya da mevcut kalıbın üzerinde değişiklik yaparak imzalanmış bir önyükleyici eklemeniz gerekmektedir.
Archboot kalıpları indirme medyasında secure boot kullanmanızı sağlayan bir başka yöntemdir.
Secure Boot'u Kapatma
Secure Boot özelliği UEFI bellenim arayüzü aracılığıyla kapatılabilir. Bellenim yapılandırmasına nasıl girebileceğiniz #Before booting the OS üzerinde detaylıca anlatılmıştır.
Eğer denediğiniz kısayollar işe yaramadıysa ve Windows'u açabiliyorsanız:
(Windows 10 için):
Ayarlar > Güncelleştirme ve Güvenlik > Kurtarma > Gelişmiş başlangıç (Şimdi yeniden başlat) > Sorun gider > Gelişmiş seçenekler > UEFI Donanım Yazılımı Ayarları > Yeniden Başlat
(Windows 11 için):
Ayarlar > Sistem > Kurtarma > Gelişmiş başlangıç (Şimdi yeniden başlat) > Sorun Gider > Gelişmiş seçenekler > UEFI Donanım Yazılımı Ayarları > Yeniden Başlat
İndirme kalıbını geri paketleme
Bilgi için #ISO repacking'e göz atın.
İndirme ortamını düzenleme
Eğer bir USB bellek indirme ortamı kullanıyorsanız, USB bellek içerisindeki EFI sistemi disk bölümlemesini manuel olarak düzenlemeniz mümkündür.
USB belleğinizi takın, sonra ilgili disk bölümünü bağlayın (mount):
# mount /dev/disk/by-label/ARCHISO_EFI /mnt
Daha sonra #İmzalanmış bir önyükleyici kullanma başlığındaki adımları takip edin. Örneğin, #PreLoader indirmek için:
# mv /mnt/EFI/BOOT/BOOTx64.EFI /mnt/EFI/BOOT/loader.efi # cp /usr/share/preloader-signed/PreLoader.efi /mnt/EFI/BOOT/BOOTx64.EFI # cp /usr/share/preloader-signed/HashTool.efi /mnt/EFI/BOOT/HashTool.efi
Secure Boot'u Uygulama
İdeal bir Secure Boot yapılandırması yapmak için gerekli şartlar vardır:
- UEFI, bazı iyi bilinen eleştirileri ve güvenlik açıkları [1]) olmasına rağmen, Büyük ölçüde güvenilir kabul edilir ve güçlü bir şifre ile korunması gerekmektedir.
- Varsayılan 3. parti anahtarlar, Secure Boot'un güvenlik modelini önemli ölçüde zayıflattığı[2] için kullanılamazlar.
- UEFI, Secure Boot tarafından kurulan güven zincirini korumak ve saldırı yüzeyini azaltmak amacıyla, mikro kod (varsa) ve initramfs'yi içeren, kullanıcı tarafından imzalanmış, EFI boot stub uyumlu tek bir çekirdek görüntüsünü (önyükleme yöneticisi olmadan) doğrudan yükler.
- Tam disk şifrelemesi kullanarak, çekirdek imajının oluşturulması ve imzalanması sürecinde kullanılan araçlara ve dosyalara, makineye fiziksel erişimi olan birinin müdahale etmesini veya erişmesini engelleyin.
- Bir TPM kullanılarak bazı ek iyileştirmeler elde edilebilir.
Basit ve tamamen bağımsız bir kurulum #Kendi anahtarlarınızı kullanma başlığında açıklanırken, #İmzalanmış bir önyükleyici kullanma başlığı altında üçüncü bir tarafça imzalanmış ara araçlar kullanır.