Active Directory Certificate Services - SHA1’ den SHA2’ ye Yükseltme

Direnc Onen

Active Directory Certificate Services

PKI Nedir? Neden İhtiyaç Vardır?

Kurum BT bünyesinde çalışmakta olan web sayfaları, dokümanlar, kimlik doğrulama gibi hizmetlerin güvenliğinin sağlanması için PKI altyapısı önemli bir yer teşkil etmektedir. Web sayfalarının SSL ile, dokümanların ve e-postaların dijital olarak imzalanması, sertifika tabanlı kimlik doğrulama hizmetlerinin kullanılması gibi imkanlar sağlar. PKI altyapısı tüm servislerin dijital olarak imzalanması ve veriyi gönderen ile alan arasında ki iletişimin şifreli bir şekilde gerçekleşmesini sağlar. Ayrıca veriyi gönderen ve alan kişi birbirlerini bu altyapı ile doğrular ve verinin yanlış kişilerin eline geçmediğinden emin olur.

Active Directory Certificate Services Nedir?

Microsoft, PKI altyapısını Active Directory entegre ve bağımsız olarak Windows Server üzerinde hizmet olarak sağlamaktadır. Kurum içi kaynakların dijital sertifikalarla korunması için Windows Sertifika hizmetleri kullanılabilir ve sertifika alınması, sertifikanın kontrolü, sertifikanın talebinin onaylanması ve reddedilmesi gibi işlemleri yürütebilir.

AD Entegre yapının Faydaları Nelerdir?

Windows üzerinde gelen sertifika hizmetlerinin AD entegre kullanılmasının bazı faydaları vardır;

  • Kimlik ve kaynak bilgilerinin AD üzerinden çekilmesi,

    Kimlik bilgileri AD üzerinde merkezi olarak tutulmaktadır. AD CA servisi sertifika işlemleri için gerekecek kimlik bilgilerini AD üzerinden kontrol edebilir,

  • GPO ile Kontrol;

    GPO ile hangi kullanıcı ve makinelerin hangi tip sertifikalarla çalışabileceği belirlenebilir. Ayrıca GPO ile otomatik olarak sertifika dağıtımı vb. işlemler de yürütülebilir.

  • Otomatik sertifika alımı ve yönetimi;

    Bir kullanıcı veya bilgisayar hesabı sisteme giriş yaptığı zaman AD tarafından alabileceği sertifika şablonları kontrol edilir ve izinli olduğu şablonlardan otomatik olarak sertifika alır. Bu işlem hiçbir kullanıcı işlemi gerektirmeden otomatik yürütülür. Ayrıca sertifikanın süresinin dolması, süresi dolduğunda otomatik yenilenmesi gibi işlemlerde AD üzerinden otomatik yürütülen işlemlerdir.

SHA1 ve SHA2 arasında ki Farklar Nelerdir?

SHA, yani Secure Hash Algorithm, dijital sertifikaların güvenlik algoritmalarının ortak adıdır. SHA1 ve SHA2 farklı yapılarda tasarlanan ve güvenlik seviyeleri farklı şifreleme algoritmalarını temsil eder. SHA1 160 bit uzunluğunda hash a sahiptir. SHA2 ise daha güvenli ve daha uzun hash a sahiptir. SHA2 genel olarak 256 bit uzunluğunda ki SHA256 adı ile de anılır. SHA2'nin farklı bit uzunluğunda versiyonları mevcuttur ve o bit uzunluğu ile anılır. Örn: SHA224 gibi.

Güvenlik ihtiyaçları gereği, SHA1 29 Aralık 2016 tarihinden itibaren emekliye ayrıldı. Artık tarayıcılar ve diğer SSL kullanan sistemler bu algoritma ile alınan sertifikaları tanımayacak ve güvenlik uyarısı alınacaktır. Dolayısı ile Windows platformlar da dahil olmak üzere tüm PKI altyapılarının ürettiği sertifikaların algoritmasının SHA2 ye yükseltilmesi gerekmektedir. Tabi sadece sertifika servisleri değil, üretilen sertifikaların da SHA2 ye yükseltilmesi ya da değiştirilmesi gerekmektedir.

Gereksinimler

SHA2 algoritması kullanılarak sertifika üretilebilmesi için işletim sisteminin de güncel olması gerekmektedir. Eğer Windows Server 2016 kullanıyorsanız bu işletim sistemi üzerine kurulacak Sertifika hizmeti varsayılan olarak SHA2 (SHA256) destekler halde kurulmaktadır.

  • Windows XP Service Pack 3 ile limitli SHA2 desteğine sahiptir.

  • Windows Server 2003 Service Pack 2 üzerine yüklenecek bazı KB'lerle limitli SHA2 desteğine sahip olabilmektedir. Ancak işletim sisteminin böyle bir desteği bulunmamaktadır. (KB938397, KB968730)

  • Windows Vista ve Windows Server 2008 ile birlikte CNG (Cryptography Next Generation) algoritmaları desteklenir hale gelmiştir. SHA2 de bu algoritmalar içerisinde bulunur.

  • Outlook 2003 ve üzeri Windows Vista üzerinde çalıştığı sürece SHA2 ile oluşturulmuş S/MIME sertifikalarını desteklemektedir.

Migration Çalışması

Bu makale hali hazırda SHA2'yi destekleyen bir sunucu işletim sistemi üzerinde bulunan ancak SHA1 olarak yapılandırılmış sertifika sunucusunun SHA2 destekler hale getirilmesi üzerinedir.

Başlıklar

  1. Sertifika sunucusu Hash Algoritmasının değiştirilmesi

  2. Yeni algoritmaya sahip kök sertifikasının alınması

Sertifika sunucusu Hash Algoritmasının değiştirilmesi

Sertifika sunucusu üzerinde çalışma yaparken sertifika sunucusu servisinin yedeğinin alınması önerilir. Herhangi bir problem durumunda geri dönüşün mümkün olabilmesi ve kök sertifikanın kaybolmaması için mutlaka yedek alınmalıdır.

  1. Çevrim işlemleri tamamen Powershell ara yüzünden yapılacaktır.

  2. Powershell ekranı Run-As Administrator komutu ile çalıştırılmalıdır.

  3. Sertifika sunucusunun adı S01CASRV, Sertifika hizmetinin adı CA-FRM-01, etki alanı adı domain.com olarak örneklendirilmiştir. Burada adı geçen alanları kendi sisteminize uygun şekilde değiştirin.

  • Tüm işlemlerin yapılacak CA-Backup adında bir klasör C sürücüsünde oluşturulur.

PS C:\Windows\System32> cd\

PS C:\> New-Item -Path c:\CA-Backup -ItemType directory

PS C:\> Set-Location -Path c:\CA-Backup

PS C:\CA-Backup>

  • Sertifika servisinin yedeği alınır. Bu işlem yapılırken parola girilmesi istenir. Karmaşık bir parola verilir. Bu parola daha sonraki adımlarda yine kullanılacaktır. Parolanın unutulmaması gerekmektedir.

PS C:\CA-Backup> Backup-CARoleService –path C:\CA-Backup -Password (Read-Host -Prompt "Enter Password" -AsSecureString)

PS C:\CA-Backup> reg export HKLM\SYSTEM\CurrentControlSet\services\CertSvc c:\CA-Backup\CAregistry.reg

  • Servis durdurulur.

PS C:\CA-Backup> Stop-Service certsvc

  • Sertifika sunucusunun üzerinde yüklü olan sertifikaların bilgisi bir text dosyasına aktarılır.

PS C:\CA-Backup> certutil –store my CA-FRM-01 > output.txt

  • Output text dosyası notepad ile açılır ve burada sunucunun kök sertifikalarının thumbprint denilen eşsiz sayısal değeri bulunur. Bu değer özel anahtardır ve bu anahtar ile birlikte sertifika silinir. Bu dosya içerisinde ki tüm sertifikalar için silme işlemi tekrarlanır.

PS C:\CA-Backup> cd cert:\localmachine\my

PS Cert:\localmachine\my> del –deletekey "42c7a0cf0fce74687cd287c23a1610e61264a432"

PS Cert:\localmachine\my> Set-Location -Path c:\CA-Backup

  • 2. Adımda yedeği alınan kök sertifikası sisteme yüklenir ve PFX formatında tekrar çıkartılır. Dosyayı kullanırken PFX formatına ihtiyaç vardır. Bu işlem sırasında yedekleme esnasında girilen parola kullanılır.

PS C:\CA-Backup> certutil –csp "Microsoft Software Key Storage Provider" –importpfx C:\CA-Backup\CA-FRM-01.p12

PS C:\CA-Backup> certutil –exportpfx my CA-FRM-01 C:\CA-Backup\Exported-CA-FRM-01.pfx

  • Çıkartılan PFX dosyasının içinde anahtar bulunmaktadır. Bu anahtar sisteme geri yüklenir.

PS C:\CA-Backup> certutil –restorekey C:\CA-Backup\Exported-CA-FRM-01.pfx

  • Registry editör kullanılarak algoritmalar değiştirilir. Bu aşamada registry anahtarları değiştirilirken dikkatli olunması gerekiyor. Yanlış değiştirdiğiniz bir ayar nedeni ile sisteminiz çalışamaz duruma gelebilir. Mutlaka registry yedeklerinizi alınız. 2 ayrı registry anahtar kümesi girişi yapılır. Aşağıda ki içerikler altında yazan isimlerle C:\CA-Backup dizini altına kaydedilir. Dosyanın uzantısının reg olmasına dikkat edilir.

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\CA-FRM-01\CSP]

"ProviderType"=dword:00000000

"Provider"="Microsoft Software Key Storage Provider"

"CNGPublicKeyAlgorithm"="RSA"

"CNGHashAlgorithm"="SHA1"

SHA1.reg

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\CA-FRM-01\EncryptionCSP] 
"ProviderType"=dword:00000000 
"Provider"="Microsoft Software Key Storage Provider" 
"CNGPublicKeyAlgorithm"="RSA" 
"CNGEncryptionAlgorithm"="3DES" 
"MachineKeyset"=dword:00000001 
"SymmetricKeySize"=dword:000000a8

3DES.reg

PS C:\CA-Backup> reg import SHA1.reg

PS C:\CA-Backup> reg import 3DES.reg

  • Hash Algoritması SHA256 ya dönüştürülür. Ardından servis başlatılır.

PS C:\CA-Backup> certutil -setreg ca\csp\CNGHashAlgorithm SHA256

PS C:\CA-Backup> Start-Service certsvc

Yeni algoritmaya sahip kök sertifikasının alınması

  1. Certification Authority mmc konsolu açılır.

  2. Sertifika sunucusunun adına sağ tıklanır ve "Renew CA Certificate…" tıklanır.

  3. Bu işlem sırasında servisin durdurulması istenmektedir. Yes tıklanır.

  4. Yeni anahtarlı yeni bir kök sertifikası yaratılması için No seçilir ve OK tıklanır. Bu işlem bittikten sonra servis otomatik olarak başlar.

  5. Sertifikanın kontrolü için yine MMC konsolu üzerinde sunucu üzerine sağ tıklanır ve Properties seçilir.

  6. Sertifika özellikleri ekranında alt kısımda sertifika sunucusunun varsayılan algoritması görülür.

  7. View Certificate düğmesine basıldığında kök sertifikanın SHA256 algoritmasında bir sertifika olduğu görülür.

Dosya Uzantıları

REG: registry kayıtlarını içeren metin tabanlı dosyalardır. Notepad vb. bir araçla hazırlanıp uzantısı txt yerine reg yazılarak olarak kaydedilir. Bu durumda dosya registry uygulaması ile eşleşir ve çalıştırıldığında içerisinde bulunan registry anahtarları yüklenir.

PFX: Sertifikanın binary formatında ki halidir. İçerisinde özel anahtar (Private Key) bulunur. Bu dosya Microsoft' un formatıdır.

P12: PFX gibi Sertifikanın binary formatında ki halidir. İçerisinde özel anahtar (Private Key) bulunur. Bu dosya Netscape'in formatıdır. Microsoft tarafından tanınır.

Last updated