Windows ve Exchange Server Ortamlarında Machine Key Rotation
Bilgi güvenliği dünyasında “anahtar rotasyonu” (key rotation) kavramı, sistemlerin en temel koruma katmanlarından biridir. Şifreleme, imzalama veya kimlik doğrulama işlemlerinde kullanılan anahtarlar zamanla risk altına girer; bu nedenle periyodik olarak yenilenmeleri gerekir.
Ancak Windows tabanlı sistemlerde kullanılan machine key kavramı genellikle yanlış anlaşılır. Pek çok sistem yöneticisi, Windows’un bu anahtarları otomatik olarak yenilediğini düşünür. Gerçekte ise durum farklıdır.
Machine key’ler, Windows işletim sistemi, IIS web servisleri, Exchange Server ve ASP.NET tabanlı uygulamalar tarafından veri şifreleme, kimlik doğrulama ve oturum yönetimi için kullanılır. Bu anahtarların rotasyonu yalnızca belirli koşullarda gerçekleşir; düzenli, planlı bir otomatik döngü yoktur.
Bu makalede Windows’un machine key yönetim modelini, Exchange üzerindeki etkilerini ve manuel rotasyonun nasıl güvenli biçimde yapılabileceğini inceleyeceğiz.
Machine Key Türleri
Windows ekosisteminde “machine key” terimi aslında birkaç farklı düzeyde kullanılabilir. Her biri farklı bileşenlere hizmet eder:
- RSA Machine Keys:
Tüm sistem genelinde kullanılan, özellikle IIS ve Exchange tarafından kullanılan asimetrik anahtarlardır.
Fiziksel konumları: C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
Bu dosyalar Local System veya Network Service hesapları adına oluşturulur. - Domain DPAPI Backup Keys:
Etki alanı ortamında, domain controller’lar üzerinde bulunur. DPAPI verilerinin geri yüklenmesi için kullanılan özel yedek anahtarlardır. - ASP.NET Machine Key (Web Config):
Web uygulamalarında ViewState, Forms Authentication ve Session verilerinin güvenliği için kullanılır. - Exchange OAuth Machine Keys:
Exchange Server’ın modern authentication süreçlerinde token imzalama ve şifreleme işlemleri için bu anahtarlar kullanılır.
Windows’ta Machine Key Rotation Mekanizması
Windows işletim sistemi, machine key rotation işlemini varsayılan olarak otomatik şekilde yapmaz.
Anahtarlar yalnızca şu durumlarda yeniden oluşturulur:
- İşletim sistemi yeniden kurulduğunda veya sysprep /generalize işlemi uygulandığında,
- Machine SID değiştiğinde,
- DPAPI Master Key süresi dolduğunda (nadiren),
- System restore, recovery veya profil yeniden oluşturma sırasında,
- Anahtar dosyası fiziksel olarak silindiğinde ya da erişilemez hale geldiğinde.
Microsoft’un resmi dökümantasyonunda (CNG DPAPI Backup Keys on AD Domain Controllers), domain ortamlarında oluşturulan DPAPI yedek anahtarlarının da manuel müdahale olmadan yenilenmediği açıkça belirtilmiştir. Yani işletim sistemi kendi kendine belirli aralıklarla yeni machine key üretmez. Bu, backward compatibility (eski verilerin okunabilirliği) nedenleriyle bilerek sınırlanmış bir davranıştır.
Örneğin, bir kullanıcı profiline ait DPAPI anahtarı döndürülürse, önceki anahtarlarla şifrelenmiş tüm veriler erişilemez hale gelir. Bu nedenle Windows, rotasyonu güvenlikten çok erişilebilirliği önceleyen bir tasarımla sınırlandırır.
Exchange Server ve Machine Key Kullanımı
Exchange Server, machine key’leri özellikle OAuth token imzalama ve IIS tabanlı web servisler için kullanır.
Bu kapsamda aşağıdaki bileşenlerde etkili olurlar:
- Autodiscover
- EWS (Exchange Web Services)
- OWA ve ECP uygulamaları
- OAuth Authentication Service
- MAPI over HTTP
Exchange üzerinde machine key rotasyonu yapılmadığında sistem uzun süre aynı şifreleme anahtarlarını kullanmaya devam eder.
Bu durum doğrudan bir güvenlik açığı oluşturmasa da, özellikle yüksek güvenlikli ortamlarda (örneğin kamu kurumları, bankalar, regülasyona tabi kuruluşlar) anahtar yaşam döngüsü yönetimi (key lifecycle management) politikalarına aykırıdır.
Bazı Microsoft Support vakalarında, “static machine key rotation” önerisinin yer aldığı görülür. Bu öneri, işletim sistemi tarafından değil, güvenlik ekipleri tarafından elle başlatılan bir süreçtir.
Amaç; uzun süredir kullanılan anahtarların yenilenmesi, eski token ve oturum verilerinin geçersiz kılınmasıdır.
Machine Key Rotation Nasıl Yapılır?
a) IIS Yenileme Yöntemi
En yaygın yöntem, IIS üzerinden yeni anahtar üretimini tetiklemektir.
Bu işlem için aşağıdaki komut kullanılır:
iisreset /renewmachinekey
Bu komut çalıştırıldığında IIS, C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys dizininde yeni anahtar çiftleri oluşturur.
Ancak bu işlem öncesinde: Tüm Exchange servislerinin durdurulması, OAuth token cache’lerinin temizlenmesi, App pool’ların yeniden başlatılması gerekir.
b) DPAPI Backup Key Rotation (Domain Ortamı)
Active Directory üzerindeki DPAPI backup key’lerin rotasyonu için Microsoft destekli doğrudan bir araç yoktur. Ancak certutil -dcinfo add komutuyla yeni bir key oluşturulabilir, ardından eski anahtarlar silinebilir.
Bu işlem, dikkatli planlanmadığında kullanıcı veri şifreleme hatalarına neden olabilir.
c) ASP . NET Uygulama Anahtarları
Web .config içindeki elemanının değişimiyle manuel rotation yapılabilir. Ancak eski ViewState veya forms authentication cookie’leri geçersiz hale gelir; planlı geçiş önerilir.
Exchange Server’da Machine Key Rotation Nasıl Yapılır
Machine Key Değişikliği Öncesi Hazırlık
- IIS yapılandırmasını yedekle
- Web.config dosyalarını yedekle
- C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\
- C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\
- C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp\
- C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\
- C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys klasörünü yedekle
- AuthConfig sertifika bilgilerini kaydet (Get-AuthConfig | FL CurrentCertificateThumbprint, PreviousCertificateThumbprint, ServiceName)
- DAG veya Load Balancer varsa sadece bir node üzerinde başla
- Servisleri kontrol et: IIS Admin, World Wide Web Publishing, Net.Tcp Port Sharing
- Eski ve yeni validation/decryption key değerlerini kaydet
- Hangi sunucuda hangi tarih/saatte değişiklik yaptığını not al
- OWA erişimini test et
- ECP erişimini test et
- Outlook (MAPI/HTTP) bağlantısını test et
- EWS (Exchange Web Services) bağlantısını test et
- ActiveSync bağlantısını test et
- Geri dönüş için IIS backup hazırla (
appcmd restore backup "BeforeMachineKeyChange") - Web.config yedeklerini geri yükleme planını hazır tut
- MachineKeys klasörü yedeğini hazır tut
- İşlem sonrası iisreset /noforce çalıştır
- Event Viewer Application loglarını kontrol et (ASP.NET 1309, 1310)
- IIS W3SVC loglarını kontrol et (Viewstate / MAC hataları)
- Exchange loglarını kontrol et (OWA, ECP, EWS, Authentication hataları)
- Değişiklik sonrası 30–60 dakika boyunca bağlantı ve login stabilitesini izle
Ortamınızıda DAG varsa ilk sunucudan başlayabilirsiniz. DAG yoksa direk olarak yedeklemelerden sonra işlemlere başlatabilirsiniz.
IIS Manager’ı Açın
- Başlat menüsünden Internet Information Services (IIS) Manager uygulamasını açın.
- Sol panelden ilgili Exchange sunucusunu genişletin ve Sites > Default Web Site öğesini seçin.
- Orta alanda bulunan “Features View” ekranında ASP.NET kategorisinde yer alan Machine Key ikonuna tıklayın.

“Machine Key” ikonuna tıkladığınızda ayar ekranı açılacaktır.
Bu pencerede Validation method ve Encryption method alanları varsayılan olarak SHA1 / Auto değerleriyle gelir.
“Automatically generate at runtime” kutuları işaretliyse, sistem her uygulama havuzu yeniden başlatıldığında yeni anahtarlar üretir. Bu davranış birden fazla Exchange node’u olan ortamlarda tutarsızlık yaratabilir.
Manuel Anahtar Atama
- “Automatically generate at runtime” kutularının işaretini kaldırın.
- “Generate Keys” tıklayıp yeni key üretin ve bir yere not edin.
- Tüm Exchange sunucularında aynı key değerlerini kullanın (DAG veya Load Balanced ortamlarda tutarlılık için şarttır).
- Sağ taraftaki Apply butonuna basarak değişiklikleri kaydedin.

Exchange Back End Sitesinde Machine Key Değerlerinin Sabitlenmesi
Exchange Server mimarisinde iki farklı IIS sitesi bulunur:
- Default Web Site > (OWA, ECP, EWS, OAB, RPC, PowerShell)
- Exchange Back End > (MAPI/HTTP, ActiveSync, EWS Internal, RPC)
Her iki site kendi uygulama havuzunda çalıştığı için, Machine Key değerleri birbirinden bağımsızdır. Bu nedenle, Default Web Site’ta yaptığınız değişikliklerin Exchange Back End tarafına da aynen uygulanması gerekir.
Aşağıdaki adımlar, ikinci sitedeki (Exchange Back End) Machine Key değerlerinin sabitlenmesini göstermektedir.



Otomatik Anahtar Üretimini Devre Dışı Bırakın
- Açılan pencerede “Validation key” ve “Decryption key” alanlarının altındaki
“Automatically generate at runtime” kutularını işaretli görürsünüz. - Bu kutuların işaretini kaldırın.
- Aynı validation ve decryption anahtarlarını, Default Web Site ve Exchange Back End kullandığınız değerlerle birebir olacak şekilde manuel olarak girin.
- Sağ bölümde yer alan Apply butonuna tıklayın.
Machine Key yapılandırması tamamlandıktan sonra yapılacak test ve doğrulama adımları, hem IIS tarafında hem de Exchange servislerinde tutarlılığın sağlandığından emin olmak için kritik öneme sahiptir.
Bu aşamada amaç, tüm uygulamaların (OWA, ECP, EWS, MAPI, ActiveSync) aynı şifreleme anahtarlarını kullanarak sorunsuz şekilde kimlik doğrulaması yapabildiğini teyit etmektir.
Değişiklik sonrası temel servislerin ve kimlik doğrulamanın düzgün çalıştığını doğrulamak için aşağıdaki testleri yapın:
| Test | Adres / Komut | Beklenen Sonuç |
|---|---|---|
| OWA (Outlook Web Access) | https://mail.domain.com/owa | Login başarılı, oturum açılıyor |
| ECP (Exchange Control Panel) | https://mail.domain.com/ecp | Arayüz düzgün yükleniyor |
| EWS (Exchange Web Services) | https://mail.domain.com/ews/Exchange.asmx | 401 Unauthorized hatası yok |
| MAPI/HTTP | Outlook istemcisi üzerinden bağlantı | Kesinti yok, yeniden bağlantı gerekmiyor |
| ActiveSync | Mobil cihaz e-posta senkronizasyonu | Sync başarılı |
Event Viewer Denetimi
- Event Viewer > Application altında ASP.NET kaynaklı hataları kontrol edin:
- Event ID 1309 / 1310 > ViewState validation, FormsAuth, MAC errors varsa yapı tutarsızdır.
- Event Viewer → Microsoft-Windows-IIS-W3SVC loglarında hata olup olmadığını inceleyin.
- MSExchange loglarında özellikle aşağıdaki olaylara dikkat edin:
- Authentication failures
- OWA/ECP service restart
- EWS or MAPI session disconnects
DAG Ortamında Tutarlılık Kontrolü
- Diğer DAG node’larında da aynı Machine Key değerlerinin bulunduğunu doğrulayın.
- Load balancer üzerinden node geçiş testi yapın:
- Aktif node’tan pasif node’a geçişte oturum düşmemeli.
- Kullanıcı OWA/ECP oturumunda kopma veya yeniden login gereksinimi olmamalı.
Tüm testler başarıyla tamamlandığında şu durumlar geçerli olmalıdır:
- OWA, ECP, EWS ve MAPI servisleri sorunsuz çalışıyor.
- Event Viewer’da hata bulunmuyor.
- “Automatically generate” kutuları tüm node’larda boş.
- Aynı validation/decryption key değerleri her sitede (ve her node’da) tanımlı.
Bu kontroller tamamlandıysa Machine Key yapılandırması başarıyla sabitlenmiş ve Exchange ortamında tutarlılık sağlanmış demektir.








Eline sağlık, çok güzel bir makale olmuş.