Blog

Microsoft Root Certificate Mekanizması Nasıl Çalışıyor? Bilmeniz Gerekenler

Dijital sertifikalar, günümüz BT altyapılarının temel güven mekanizmalarından biridir. Bir kullanıcı HTTPS kullanan bir web sitesine eriştiğinde, bir uygulama dijital olarak imzalandığında veya bir işletim sistemi güvenli bağlantı kurduğunda, arka planda sertifika doğrulama işlemleri gerçekleşir. Bu doğrulama zincirinin en üstünde ise Root Certificate Authority (Root CA) olarak adlandırılan kök sertifika otoriteleri bulunur.

Windows işletim sistemleri, güvenilen kök sertifikaları yönetmek için Microsoft Root Certificate Program adı verilen bir mekanizma kullanır. Bu mekanizma çoğu zaman kullanıcılar tarafından fark edilmez ancak güvenli iletişimin devamlılığı açısından kritik öneme sahiptir. Özellikle internet erişimi olmayan ortamlarda veya sertifika yönetiminin merkezi olarak yapıldığı kurumlarda sistemin çalışma mantığını anlamak büyük önem taşır.

Microsoft Root Certificate Program Nedir?

Microsoft Root Certificate Program, Microsoft tarafından güvenilir olarak kabul edilen kök sertifika otoritelerinin Windows işletim sistemlerinde kullanılmasını sağlayan programdır.

Bir kullanıcı HTTPS kullanan bir web sitesine bağlandığında Windows aşağıdaki kontrolleri gerçekleştirir:

  1. Sunucu sertifikasını inceler.
  2. Sertifika zincirini oluşturur.
  3. Zincirin sonundaki Root CA’nın güvenilir olup olmadığını kontrol eder.
  4. Eğer Root CA sistemde bulunmuyorsa Microsoft Root Certificate Program listesini kontrol eder.
  5. Sertifika program kapsamında güvenilir olarak işaretlenmişse otomatik olarak indirilir ve Trusted Root Certification Authorities deposuna eklenir.

Bu süreç sayesinde kullanıcılar sertifika yüklemek zorunda kalmadan güvenli bağlantılar kurabilir.

Trusted Root Certification Authorities Deposu

Windows üzerinde güvenilen kök sertifikalar aşağıdaki sertifika deposunda tutulur:

Trusted Root Certification Authorities

Yerel bilgisayardaki kök sertifikaları görüntülemek için aşağıdaki PowerShell komutu kullanılabilir:

Get-ChildItem cert:\LocalMachine\root | Select FriendlyName

Yeni kurulan bir Windows sisteminde bile bazı temel Microsoft kök sertifikaları ön yüklü olarak gelir. Bunun nedeni Windows Activation, Windows Update ve diğer Microsoft servisleriyle güvenli iletişim kurulabilmesidir.

İnternet Erişimi Olmayan Ortamlarda Sertifikalar Nasıl Çalışır?

Birçok sistem yöneticisinin karşılaştığı ilginç durumlardan biri, Windows Update erişimi olmayan sistemlerde bile bazı kök sertifikaların otomatik olarak yüklenebilmesidir. Bu durumun nedeni Windows’un uzun yıllardır kullandığı özel bir mekanizmadır. Windows Vista’dan itibaren Microsoft, güncel kök sertifika listesinin önemli bir bölümünü işletim sisteminin crypt32.dll dosyası içerisine gömülü olarak dağıtmaktadır.

Eğer sistem:

  • Windows Update’e erişemiyorsa,
  • Kurum içi sertifika deposuna erişemiyorsa,
  • Web veya dosya sunucusuna ulaşamıyorsa,

Windows gerekli sertifikaları doğrudan crypt32.dll içerisinden çıkarabilir. Bu nedenle bazı sistemlerde otomatik güncelleme çalışmasa bile sertifika doğrulamalarının başarılı olduğu görülebilir.

Süresi Dolmuş Root Sertifikalar Neden Silinmemelidir?

Birçok yönetici süresi dolmuş sertifikaların gereksiz olduğunu düşünerek bunları temizlemeye çalışır. Ancak özellikle Authenticode ile imzalanmış uygulamalarda bu yaklaşım sorun yaratabilir. Bir uygulamanın imzası oluşturulduğu tarihte kullanılan Root CA geçerliyse, daha sonra sertifika süresi dolmuş olsa bile imza geçerliliğini koruyabilir. Bu nedenle eski Root CA sertifikalarının silinmesi dijital imza doğrulamalarında beklenmeyen sorunlara neden olabilir.

Yakında süresi dolacak veya süresi dolmuş sertifikaları görüntülemek için:

Get-ChildItem cert:\LocalMachine\root | Where {$_.NotAfter -lt (Get-Date).AddDays(30)} | Select NotAfter, Subject

komutu kullanılabilir.

Root Sertifikaların Geçerliliğinin Kontrol Edilmesi

Bir sertifikanın süresinin dolması ile iptal edilmesi (revoked) farklı kavramlardır.

Bir Root CA aşağıdaki nedenlerle iptal edilebilir:

  • Sertifika otoritesinin ele geçirilmesi
  • Güvenlik ihlali yaşanması
  • Kurumsal politika değişiklikleri
  • Operasyonel sebepler

Bu nedenle yalnızca sertifikanın süresine bakmak yeterli değildir. Microsoft içerisinde yerleşik bir Root CA doğrulama aracı bulunmamakla birlikte birçok uzman Sysinternals SigCheck aracını kullanmaktadır.

Aracı indirmek için:

wget https://download.sysinternals.com/files/Sigcheck.zip -OutFile SigCheck.zip

Arşivi açmak için:

Expand-Archive .\SigCheck.zip

Güncel ve güvenilir sertifikaları doğrulamak için:

sigcheck64.exe -tv -accepteula

komutu kullanılabilir.

Microsoft Root Certificate Listesi Nasıl İndirilir?

Kurumlar Microsoft’un sertifika deposunun yerel bir kopyasını oluşturabilir.

Bunun için:

certutil -syncWithWU <hedef_klasör>

komutu kullanılabilir.

Bu işlem aşağıdaki dosyaları indirir:

  • Authrootstl.cab
  • Disallowedcertstl.cab
  • Disallowedcert.sst
  • Pinrulesstl.cab
  • Pinrulesstl.sst
  • Root CA *.crt dosyaları

Bu dosyalar güvenilen ve güvenilmeyen sertifikaların tamamını içerir.

SST Formatında Tüm Sertifikaların İndirilmesi

Bazı durumlarda tüm sertifikaların tek dosyada tutulması tercih edilir.

Bunun için:

certutil.exe -generateSSTFromWU root.sst

komutu kullanılabilir.

Oluşan SST (Serialized Certificate Store) dosyası daha sonra GPO veya diğer yöntemlerle dağıtılabilir.

Otomatik Root Certificate Güncellemeleri Nasıl Kapatılır?

Bazı kurumlar sertifika güncellemelerini tamamen kendi kontrolüne almak ister.

Bu durumda aşağıdaki GPO kullanılabilir:

Computer Configuration > Administrative Templates > System > Internet Communication Management > Internet Communication > Turn off Automatic Root Certificates Update

Alternatif olarak registry üzerinden:

HKLM\Software\Policies\Microsoft\SystemCertificates\AuthRoot\DisableRootAutoUpdate=1

değeri atanabilir. Bu ayar hem güvenilen hem de güvensiz sertifika güncellemelerini durdurur.

Root Sertifikaların Dağıtım Yöntemleri

Microsoft dört farklı dağıtım yöntemi sunmaktadır:

1. Group Policy

GPO üzerinden:

Computer Configuration > Policies > Windows Settings > Security Settings > Public Key Policies > Trusted Root Certification Authorities

konumu kullanılarak sertifikalar merkezi olarak dağıtılabilir. SST dosyalarının import edilmesi toplu yönetim açısından büyük kolaylık sağlar.

2. Active Directory Configuration Partition

Sertifikalar doğrudan Active Directory içerisine yayınlanabilir.

Örnek:

certutil -dspublish -f RootCA.crt RootCA

Birden fazla sertifika için PowerShell döngüleri kullanılabilir. Yayınlanan sertifikalar Configuration Partition altında saklanır ve istemcilere GPO yenileme sürecinde ulaşır.

3. Dosya Sunucusu

Root sertifikalar SYSVOL veya başka bir paylaşım alanında tutulabilir.

Registry ayarı:

HKLM\Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate\RootDirURL=file://\Server\Share\RootCert

şeklinde yapılandırılarak istemcilerin bu depoyu kullanması sağlanabilir.

4. Web Sunucusu

Aynı yöntem bir HTTP veya HTTPS sunucusu üzerinden de uygulanabilir.

Bu yöntem özellikle internet erişimi olmayan ağlarda yaygın olarak kullanılmaktadır.

Certificate Trust List (CTL) Nedir?

Certificate Trust List (CTL), sertifikaların tamamını değil yalnızca hash değerlerini içeren özel bir listedir.

Mantıksal olarak CRL (Certificate Revocation List) yapısına benzer.

CTL sayesinde Windows:

  • Güvenilir sertifikaları doğrulayabilir
  • İmza kontrollerini hızlandırabilir
  • Sertifika bütünlüğünü kontrol edebilir

Varsayılan olarak Windows yaklaşık iki haftada bir CTL güncellemesi yapar.

Güvenilmeyen Sertifikaların Yönetimi

Microsoft yalnızca güvenilen sertifikaları değil, güvenilmeyen sertifikaları da dağıtır.

Bu liste aşağıdaki dosyada tutulur:

Disallowedcertstl.cab

Güvenilmeyen sertifikalar manuel olarak yüklenebilir:

certutil.exe -enterprise -f -v -AddStore disallowed disallowedcert.stl

Bu yöntem özellikle kapalı ağlarda güvenlik seviyesini artırmak için kullanılabilir.

Sorun Giderme Adımları

Root sertifika güncellemeleriyle ilgili sorun yaşanıyorsa aşağıdaki kontroller yapılmalıdır.

Cryptnet Önbelleğini Temizleme

certutil -urlcache * delete

veya

%userprofile%\AppData\LocalLow\Microsoft\CryptnetUrlCache

klasörünün temizlenmesi önerilir.

CAPI2 Loglarını Açma

Applications and Services Logs > Microsoft > Windows > CAPI2

günlükleri etkinleştirilerek sertifika işlemleri detaylı şekilde izlenebilir.

Sertifika İşlemini Tetikleme

  • HTTPS bir siteye bağlanmak
  • Sertifika dosyasını açmak
  • İmzalı bir uygulama çalıştırmak

otomatik Root Certificate mekanizmasını yeniden çalıştırabilir.

Microsoft Root Certificate Program, Windows güvenlik mimarisinin görünmeyen ancak kritik bileşenlerinden biridir. HTTPS bağlantılarından uygulama imzalarına kadar birçok güvenlik işlemi bu mekanizma üzerine kuruludur. Özellikle internet erişimi olmayan ortamlarda çalışan sistem yöneticilerinin CTL, Root Store, Crypt32.dll, Group Policy dağıtımları ve Certutil araçları hakkında bilgi sahibi olması, sertifika kaynaklı problemlerin çözümünü önemli ölçüde kolaylaştıracaktır.

İlgili Makaleler

Bir yanıt yazın

Başa dön tuşu