EFS ile Windows Dosya Sistemi Şifreleme Rehberi
Dosyalarınızın şifrelenmemiş halde diskte durması, özellikle dizüstü bilgisayarlar veya paylaşımlı ortamlar söz konusu olduğunda ciddi bir güvenlik riski oluşturuyor. Windows’un yerleşik çözümü olan EFS (Encrypting File System), bu sorunu NTFS katmanında çözen ve yıllardır göz ardı edilen güçlü bir araç. Haydi bu teknolojiyi derinlemesine inceleyelim.
EFS Nedir ve Nasıl Çalışır?
EFS, Windows 2000’den beri NTFS dosya sistemiyle birlikte gelen bir şifreleme mekanizmasıdır. BitLocker’dan farklı olarak EFS, dosya ve klasör bazında şifreleme yapıyor. Yani tüm diski şifrelemek yerine sadece hassas verilerinizi hedef alabiliyorsunuz.
Teknik olarak şöyle çalışıyor: Her dosya, rastgele üretilen bir FEK (File Encryption Key) ile AES algoritması kullanılarak şifreleniyor. Bu FEK daha sonra kullanıcının RSA public key’i ile şifrelenerek dosyanın metadata alanına ekleniyor. Dosyayı okumak istediğinizde Windows otomatik olarak private key’inizi kullanarak FEK’i çözüyor ve dosyaya erişmenizi sağlıyor. Tüm bu süreç arka planda, kullanıcı farkında bile olmadan gerçekleşiyor.
Önemli bir nokta: EFS, kullanıcı bağlamında çalışıyor. Bu yüzden aynı makinede Administrator hesabı bile, private key’e sahip olmadığı sürece şifrelenmiş dosyaları okuyamıyor. Bu, EFS’yi özellikle iç tehditlere karşı değerli kılıyor.
EFS’yi Kimler Kullanmalı?
Gerçek dünya senaryolarına bakalım:
- Muhasebe departmanı: Finansal raporlar ve maaş bilgilerini içeren klasörleri sadece yetkili personelin okuyabilmesi
- Saha çalışanları: Müşteri verisi barındıran dizüstü bilgisayarlar çalınırsa bile verinin okunamaz kalması
- Hukuk firmaları: Dava dosyalarının gizliliğinin korunması
- IT adminler: Domain ortamında toplu politika uygulamaları
EFS, BitLocker’ın yetersiz kaldığı senaryolarda da devreye giriyor. Örneğin birden fazla kullanıcının aynı makinede çalıştığı durumlarda, her kullanıcı kendi şifrelenmiş alanını oluşturabilir.
EFS Sertifikalarını Yönetmek
İlk Kurulum ve Sertifika Oluşturma
Komut satırından EFS sertifikası oluşturmak için:
cipher /r:EFSYedek
Bu komut EFSYedek.cer ve EFSYedek.pfx dosyaları oluşturuyor. .pfx dosyası private key içerdiği için kritik öneme sahip ve güvenli bir yerde saklanması gerekiyor.
Sertifika bilgilerini görüntülemek için:
certmgr.msc
Komut satırından mevcut EFS sertifikalarını listelemek için PowerShell kullanabilirsiniz:
Get-ChildItem Cert:CurrentUserMy | Where-Object {$_.EnhancedKeyUsageList -like "*Encrypting*"}
Dosya ve Klasör Şifreleme
Bir klasörü komut satırından şifrelemek son derece basit:
cipher /e /s:"C:GizliDosyalar"
Tek bir dosyayı şifrelemek için:
cipher /e "C:GizliDosyalarMaasListesi.xlsx"
Şifrelenmiş dosyaları listelemek ve hangi sertifikayla şifrelendiğini görmek için:
cipher /u /n
Bu komut sistemdeki tüm şifrelenmiş dosyaları ve kullanılan sertifika thumbprint’lerini listeliyor. Özellikle key recovery durumlarında bu bilgi hayat kurtarıcı.
Şifrelemeyi kaldırmak gerektiğinde:
cipher /d "C:GizliDosyalarMaasListesi.xlsx"
PowerShell ile Toplu EFS Yönetimi
Büyük ortamlarda tek tek dosya şifrelemek pratik değil. PowerShell burada devreye giriyor:
# Belirli bir klasördeki tüm .docx dosyalarını şifrele
Get-ChildItem -Path "C:HukukDosyalari" -Recurse -Filter "*.docx" | ForEach-Object {
$file = $_.FullName
cipher /e $file
Write-Host "Sifrelendi: $file" -ForegroundColor Green
}
# Şifrelenmiş dosyaların raporunu al
$report = @()
Get-ChildItem -Path "C:" -Recurse -ErrorAction SilentlyContinue | ForEach-Object {
if ($_.Attributes -band [System.IO.FileAttributes]::Encrypted) {
$report += [PSCustomObject]@{
Dosya = $_.FullName
Boyut = $_.Length
DegistirilmeTarihi = $_.LastWriteTime
}
}
}
$report | Export-Csv -Path "C:EFS_Raporu.csv" -NoTypeInformation -Encoding UTF8
Write-Host "Toplam $($report.Count) sifrelenmis dosya bulundu."
Bu iki script birlikte kullanıldığında hem toplu şifreleme hem de envanter yönetimi yapabiliyorsunuz.
Group Policy ile Domain Ortamında EFS
Domain ortamında EFS’nin en güçlü yanı, Data Recovery Agent (DRA) mekanizması. DRA olmadan şifrelenmiş dosyalar, kullanıcı hesabı silindiğinde veya sertifika kaybedildiğinde kalıcı olarak erişilemez hale geliyor.
Data Recovery Agent Yapılandırması
DRA sertifikası oluşturma:
# Domain Controller üzerinde çalıştır
cipher /r:DomainEFSRecovery
# Oluşturulan .cer dosyasını GPO'ya ekle
# Group Policy Management Console -> Computer Configuration ->
# Windows Settings -> Security Settings -> Public Key Policies ->
# Encrypting File System -> Sag tik -> Add Data Recovery Agent
Group Policy üzerinden EFS ayarlarına ulaşmak için:
gpedit.msc
# Computer Configuration > Windows Settings > Security Settings >
# Public Key Policies > Encrypting File System
Burada yapılandırabileceğiniz önemli ayarlar:
- File encryption using EFS: EFS’i zorunlu, isteğe bağlı veya devre dışı yapabilirsiniz
- Certificate templates: Hangi sertifika şablonunun kullanılacağını belirlersiniz
- Cache user EFS key when smart card is used: Smart card kullanılan ortamlarda performansı etkiliyor
GPO ile Otomatik EFS Sertifikası Dağıtımı
Active Directory Certificate Services (AD CS) olan ortamlarda kullanıcılara otomatik EFS sertifikası dağıtmak için:
# Autoenrollment ayarını kontrol et
gpresult /r | findstr -i "certificate"
# Manual olarak sertifika enrollment tetikle
certutil -pulse
EFS ve BitLocker Birlikte Kullanımı
Sık sorulan bir soru: “EFS mi kullanayım, BitLocker mı?” Cevap genellikle ikisi de. Bu iki teknoloji birbirini dışlamıyor, aksine tamamlıyor.
BitLocker disk kapalıyken, fiziksel saldırılara karşı koruyor. Disk şifresi çözüldükten sonra (normal önyükleme sırasında) tüm dosyalar açık hale geliyor. EFS ise sistem çalışır durumdayken bile koruma sağlıyor. Administrator hakkıyla bile şifrelenmiş dosyalara erişilemiyor.
Hibrit yaklaşım önerisi:
- Tüm diskler için BitLocker aktif
- Hassas klasörler (HR, Finans, Hukuk) için EFS
- DRA politikası zorunlu
- Düzenli sertifika yedekleme prosedürü
Gerçek Dünya Senaryosu: Çalınan Dizüstü Bilgisayar
Bir finans şirketinde çalışan kullanıcının dizüstü bilgisayarı çalındı. Senaryoyu inceleyelim:
Senaryo 1 – Yanlış yapılandırma: Sadece Windows oturum açma şifresi var. Saldırgan başka bir sistemden boot ederek sabit diski bağlıyor ve tüm dosyalara erişiyor. Veri ihlali gerçekleşiyor.
Senaryo 2 – BitLocker var: Disk şifreli, saldırgan dosyalara erişemiyor. Ancak eğer TPM bypass açığı varsa veya recovery key ele geçirildiyse koruma devre dışı kalıyor.
Senaryo 3 – EFS + BitLocker: Disk BitLocker ile korumalı, finansal dosyalar EFS ile şifreli. Saldırgan diski başka bir sisteme bağlasa bile EFS şifrelemesi RSA private key olmadan çözülemiyor. En güvenli senaryo bu.
Sık Karşılaşılan Sorunlar ve Çözümleri
Dosyaya Erişilemiyor Hatası
Şifrelenmiş dosyaya erişim reddediliyorsa:
# Sertifika durumunu kontrol et
certutil -verifystore My
# Mevcut kullanıcının EFS sertifikasını listele
cipher /u
Eğer sertifika yoksa ve yedeği varsa:
# .pfx dosyasından sertifikayı içe aktar
certutil -importpfx "C:YedekEFSYedek.pfx"
Yeşil Renk Sorunu
EFS ile şifrelenen dosyalar Windows Explorer’da yeşil renkte görünüyor. Bu bazı kullanıcıları endişelendiriyor ama normal bir davranış. Eğer bir dosyanın şifreli olup olmadığını programatik olarak kontrol etmek istiyorsanız:
# Dosya özelliklerini kontrol et
$dosya = Get-Item "C:GizliDosyalarrapor.docx"
if ($dosya.Attributes -band [System.IO.FileAttributes]::Encrypted) {
Write-Host "Dosya sifrelenmis" -ForegroundColor Yellow
} else {
Write-Host "Dosya sifrelenmemis" -ForegroundColor Red
}
Ağ Paylaşımında EFS Sorunu
EFS ile şifrelenmiş dosyaları ağ paylaşımı üzerinden kopyaladığınızda şifreleme otomatik olarak kaldırılıyor. Bu tasarımdan kaynaklanan bir kısıtlama. Çözümler:
- WebDAV kullan: EFS şifrelemesi WebDAV üzerinden korunuyor
- Robocopy ile
/EFSRAWflag’i: Şifrelenmiş halde kopyalama yapıyor
# Sifreli dosyalari sifreli sekilde kopyala
robocopy C:Kaynak \SunucuHedef /EFSRAW /E /COPYALL
Sertifika Yenileme
EFS sertifikaları genellikle 3 yıl geçerli. Süresi dolmadan önce yenileme yapmak gerekiyor:
# Sertifika son kullanma tarihlerini kontrol et
Get-ChildItem Cert:CurrentUserMy | Select-Object Subject, NotAfter | Sort-Object NotAfter
# 30 gun icinde süresi dolacak EFS sertifikalarini bul
Get-ChildItem Cert:CurrentUserMy | Where-Object {
$_.EnhancedKeyUsageList -like "*Encrypting*" -and
$_.NotAfter -lt (Get-Date).AddDays(30)
} | Select-Object Subject, Thumbprint, NotAfter
EFS Denetim ve Loglama
Güvenlik açısından EFS olaylarını izlemek kritik. Windows Event Log’da EFS ile ilgili olaylar kaydediliyor:
# EFS ile ilgili olaylari goruntule
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4663, 4656
} | Where-Object {$_.Message -like "*Encrypted*"} |
Select-Object TimeCreated, Message |
Format-List
Denetim politikasını aktif etmek için:
# Nesne erisim denetimini etkinlestir
auditpol /set /subcategory:"File System" /success:enable /failure:enable
# Ayarlari dogrula
auditpol /get /subcategory:"File System"
EFS Güvenlik En İyi Uygulamaları
Gerçek ortamlarda uygulamak isteyeceğiniz pratik öneriler:
- Sertifika yedekleme zorunluluğu: Her kullanıcı EFS sertifikasını oluşturduğunda otomatik yedekleme politikası devreye girmeli
- DRA olmadan EFS kullanmayın: Domain ortamında DRA zorunlu olmalı, aksi halde veri kaybı riski çok yüksek
- Temp klasörlerini dikkatli yönetin: Şifrelenmiş dosyaların temp kopyaları şifrelenmiş olmayabilir
- Sertifika ömrünü takip edin: Monitoring sisteminize EFS sertifika son kullanma tarihi kontrolü ekleyin
- Şifreleme kapsamını netleştirin: Hangi klasörlerin şifreleneceğini politika olarak belgeleyin
- Kullanıcı eğitimi: Kullanıcılar yeşil dosyaları anlayabilmeli ve yanlışlıkla şifrelemeyi kaldırmamak için bilinçli olmalı
- Test ortamı: Recovery prosedürlerini düzenli olarak test edin, gerçek ihtiyaç anında çalışıp çalışmadığını öğrenmeyin
Sonuç
EFS, Windows ortamlarında göz ardı edilemeyecek kadar güçlü bir araç. Özellikle hassas veri içeren klasörler, taşınabilir bilgisayarlar ve çok kullanıcılı ortamlar için BitLocker’ı tamamlayan mükemmel bir çözüm sunuyor.
Ancak EFS’nin güvenli ve etkili olması için doğru yapılandırma şart. DRA olmadan EFS uygulamak, kapıyı kilitleyin ama anahtarı içeride bırakmak gibi. Sertifika yönetimi, düzenli yedekleme ve güvenlik izleme olmadan EFS kurulumu eksik kalıyor.
Küçük ölçekli ortamlarda cipher komutlarıyla başlayabilirsiniz. Büyük domain ortamlarında ise AD CS, GPO ve otomatik enrollment mekanizmalarını birlikte kullanmak hem yönetimi kolaylaştırıyor hem de güvenlik seviyesini artırıyor. Asıl hedef, kullanıcıların ek bir işlem yapmadan otomatik koruma altında olduğu bir sistem kurmak. Bu noktaya geldiğinizde EFS gerçek değerini gösteriyor.
