Güvenliğin günümüzde bir “extra” olmaktan çıkıp zorunluluk haline gelmiş olması bizleri birçok uygulamayı kullanmada zorunlu hale getirmektedir. Bunlardan en önemlisi ise authentication uygulamalarıdır. Yıllar öncesinin windows NT’lerine, Novell Netware sunucularına oturum açıp logon olsaydık düşünürdük authentication’ın da uygulaması mı olur diye.. veya halen sorabiliriz insanların Smartcard diye tabir edilen kartları sadece banka ATM’lerine logon olurken kullandıkları birer hesap kartı veya kredi kartı olmaktan öteye gidebileceğini.
Fakat işletim sistemleri günümüzde bizlere bu imkanları sunmanın yanısıra, sınırlarımızı zorlayabileceğimiz uygulamalara ev sahipliği yapacak kadar cömert bulunuyorlar. Örnek olarak Windows 2000 ile gelen Certification Authority sayesinde sistemlerimizi birer erişim yönetim merkezi haline getirebilmekteyiz. Veya kurumumuza ait kişiselleştirilebilir sertifika yaratarak , daha önceden var olmayan bir sertifika modelini hazırlayıp sunarak çeşitliliği arttırabilmekteyiz.
Belirttiğimiz gibi, geleneksel login/logout ile sistemlere erişim günümüzde Multifactor Authentication ile zenginleştirilmiş olup SmartCard, Biometrik aygıtlar (retina okuyucu,voice,parmak izi okuyucu) veya donanımsal şifreleme cihazları ile en üst seviyede güvenliği sunmaktadırlar. Fakat bunlardan birçoğu halen uygulama zorluğu,maliyet vb.nedenlerle tercih edilme oranı düşük bulunmaktadır. SmartCardlar ise bizi bu geleneksellikten bir üst safhaya taşıyacak en yakın araçlardır.
Şekil 1: IBM ile ünlü Smartcard üreticisi Gemplus’ın müşterek ürettiği Smartcard Security Kit
Uygulama alanlarına gelecek olursak; uzaktan erişim (vpn örneği) , Terminal server erişimi, E-mail client erişimleri, software kod imzalama, web browser erişimleri ve domain logon şeklinde sıralayabiliriz.
Biz bu yazı dizimizde ilk etapta windows Server 2003 ailesinde smart card kullanımı için altyapıyı hazırlayacak ve domain logon olabilmemiz için gerekli smart card uygulamasını gerçekleştireceğiz, diğer makalede ise smart card’ın şirketimize uzak bir bölgeden erişim ihtiyacımız halinde bize PPTP VPN tüneli ile EAP protokolünü kullanarak sertifika tabanlı erişimi sağlayacağı uygulamayı ve son makalede ise Smart card’ın bir Exchange mail sunucuya bağlanıp mail alıp verirken authentication’ı nasıl sağladığına ilişkin bir uygulama yapacağız.
…………
SmartCard / Domain Logon
Bu uygulama için Domain yapımızda ihtiyacımız duyacağımız Certification Authority bulunmalıdır. Elbette bunu söylerken sıradan bir servis’in gelişigüzel yüklenip start edilmesinden bahsedemeyiz. Certification Authority, planlama yapılması gereken ve şirketin gelecekte ihtiyaç duyacağı tüm security uygulamalarına evsahipliği yapacağından dolayı iyi bir şekilde projelendirilmesi ve hizmete sunulması gereken bir servistir. Diğer ihtiyacımız ise elbette bir Smartcard security kit olacaktır. Bu yazı dizisini hazırlarken kullandığımız smartcard ise Gemplus’ın Gempctwin ürünüdür.
Şekil 2: Yeni nesil Usb arayüze sahip Cell-storage Smart Card ve Okuyucusu
Aşağıda kurulum tüm basamakları ile ele alınmaya çalışılmıştır, fakat sertifika yoluyla smartcard authentication yapabilmemiz için gereken hazır sertifikalar yerine kendi oluşturacağımız ve nitelikleri farklı olan sertifikalar da kullanılabilir, konunun çok uzun ve detaylı olmasından dolayı burada değinme imkanımız bulunmamaktadır. Yine diğer bir husus olarak, Certification Authority’nin kurulumunu makalemizde Enterprise Root olarak ele almış bulunmaktayız, fakat gerçek hayatta kullandığımız CA yapısının dizaynında çok ince ayarlar kullanmamız gerekecektir.(ör: Offline-root/policy CA/Issuing CA yöntemiyle)
Certification Authority’nin domain’imizde kurulması ile ilk başlangıcı yapıyoruz. CA’dan önce Internet Information Service’in yüklenmiş ve start edilmiş olduğuna emin olmalıyız. Çünkü sertifika dağıtımlarını Online yapabileceğimiz gibi web üzerinden de yapabilmek için bu gerekli.
Şekil 3:
CA’nın hangi tipte kurulacağını belirlememiz gerekiyor, yukarda bahsettiğimiz gibi bu örnek uygulamada Enterprise ROOT CA yapısını kullandık. Fakat sistemimizdeki güvenlik topolojisine göre diğer tipleri de kullanabiliriz.
Şekil 4:
Certificate Authority’mizin Active Directory yapısında yayınlanacağı ismi girmemiz gerekiyor, ardından CA sertifikasının geçerlilik süresini belirteceğiz. Bu süre default olarak 5 yıldır.
Şekil 5:
CA’nın kullanacağı veritabanının ve log dosyasının lokasyonu. İstersek farklı bir bölgeye de taşıyabiliriz. Burada şayet sunucumuzda array yapısı kullanıyorsak güvenli olan RAID arraylarine bu dizinleri yol olarak gösterebiliriz.
Şekil 6:
CA’nın tamamlanması için bizden IIS’in stop edilmesini sormaktadır, şayet yukarıda belirttiğimiz gibi IISin kurulumunu unuttuysak ve Domain’imizde CA’in kurulumu bu noktaya kadar geldiyse, artık daha sonradan IIS’i kurmamız halinde bile gerekli sanal dizinler oluşturulamayacaktır. ve elbette web desteğimiz de bulunmayacaktır.
Fakat manuel olarak vereceğimiz bir komut sayesinde unuttuğumuz IIS kurulumundan sonra sanal dizinleri yeniden getirebilmemiz mümkümdür.
Şekil 7:
Şekil 8’de IISin olmadığı bir sunucuya CA yapısını kurup, daha sonradan da IIS’i kurduktan sonraki Default Web site’ın durumunu görüyoruz. İçinde gerekli sanal dizinlerin olmadığını görürüz.
Bu noktada command console’da certutil –vroot komutunu kullanıp bu dizinlerin yaratılmasını sağlarız. Elbette normal şartlarda IIS hazır olan bir Server’a kurulan CA , bize hata vermeden IIS’i de konfigüre edecektir.
Şekil 8:
Şekil 9’da ise ilgili komutumuzu çalıştırdıktan sonra IIS’deki default web Site’ın durumunu görüyoruz. Olması gereken sanal dizinler yerini almıştır.
Şekil 9:
Şimdiki sırada ise , CA manager’ı çalıştırarak SmartCard uygulaması için gereken iki sertifikanın yayınlanması var. Bu sertifikalar ;
- Smartcard Logon (veya Smartcard User)
- Enrollment Agent
sertifikalarıdır.
Smartcard logon sertifikası ile kullanıcılarımıza vereceğimiz smartcard’ların içine public ve private key’leri (key pair) yükleyeceğiz ve bununla birlikte public key certificate’leri içerisinde barındıracaktır. Bu sertifikayı smartcard’ları hazırlayacağımız ve smartcard okuyucusunun bağlı bulunduğu Pc’ye almamız gerekecek.
Enrollment Agent sertifikası da smartcard’ları hazırlayacağımız PC’de bulunacak ve kullanıcıların smartcard’larına onlar adına yetkili bir kişi gibi davranıp CA’den sertifikalarını alıp kartlara yükleyecek kişinin sertifikası olacaktır.
Yukarıda anlatılan bu iki durum da aşağıdaki basamaklarda adım adım uygulanmaktadır.
Şekil 10’da CA manager’dan Certificate Templateleri seçtiğimizde sağdaki panelde yayınlanmakta olan sertifikaları görüyoruz ve default olarak yukarıda bahsedilen iki sertifika da bulunmamaktadır, biz bunları ISSUE ederek yayınlamış olacağız ve smartcard’ları hazırlayacak olan PC’ye bu sertifikaları yükleyeceğiz.
“New Certificate Template to Issue “ seçeneği ile sertifikamızı publish ediyoruz.
Şekil 10:
Enrollment Agent sertifikasını seçerek publish ediyoruz.
Şekil 11:
Yine “New Certificate Template to Issue “ seçeneği ile Smartcard logon sertifikasını seçerek publish ediyoruz. Burada smartcard user sertifikasını da kullanabiliriz, aralarındaki fark ise , smartcard user sertifikasında ilave olarak Secure mail gönderirken kullanılabilecek uygulama da mevcuttur.
Şekil 12:
Her iki sertifika da şu anda publish edilmiş durumda listede yerini almış bulunmaktadır.
Şekil 13:
Gerekli CA yapısının kurulumu ve sertifikaların yayınlanması tamamlandı. Şu andan itibaren Smartcard’ları hazırlayacak olan workstation’ın üzerindeki konfigürasyona değineceğiz.
Örneğimizde kullandığımız Gemplus Smartcard’ın driver’ını yükleyerek sisteme tanıtıyoruz.
Şekil 14:
Hemen ardından bu karta ait library dosyalarını yüklememiz gerekiyor. Burada belirtmek istediğim birşey var, piyasalarda smartcard okuyucuları nereden bulacağız sorusuna tek cevabı Gemplus vermektedir. Bir ekran kartı veya bir monitör gibi çeşitlilik arz eden bir çevre birimi olmaktan öte, dünyanın en büyük smartcard üreticisi Gemplus’ı kullanmak burada ciddi ve kurumsal uygulamalarda bizim başımızı ağrıtmayacaktır. (http://www.gemplus.com/) Türkiye pazarında bulunan diğer tek ürün ise Omnikey’in smart card ve okuyucusudur.
Şekil 15:
Library dosyaları kurulup restart ettikten sonra smartcard okuyucumuz kullanıma hazır hale gelmiştir. Gemplus’ın kendi sertifika yönetimi ve diagnose işlemleri için kullanımımıza sunduğu iki uygulama var, smartdiag ve Gemsafe Toolbox .
Smartdiag ile kart okuyucumuzu ve üzerine taktığımız smart card’ı kontrol ederek çalışır durumda olduğu bilgisini vermektedir.
Şekil 16:
Gemsafe toolbox ise kart üzerinde yüklü sertifikalar, kart özellikleri vb. enformatik bilgileri sunar ve aynı zamanda kart üzerindeki tüm administrative fonksiyonları yönetmemize olanak tanır.
Şekil 17:
Şekil 18’de microsoft CA ile yüklemiş olduğumuz user sertifikasının ardından Gemsafe Toolbox ile kartımızın durumunu inceleyebiliyoruz.
Şekil 18:
Donanımsal ayarlamalardan sonra, sıra geldi enrollment Station’a gerekli sertifikaları çekmeye.. burada iki yöntem kullanılabilir, online olarak Request yöntemi veya web üzerinden CA sunucumuza bağlanıp oradan isteğimizi gerçekleştirebiliriz. Bu uygulamada ilk yöntemi kullanacağız.
MMC’yi açarak ekleyeceğimiz snap-in (certificates) ile , veya komut satırında certmgr.msc komutuyla ilgili sertifika konsolunu açıyoruz,
Şekil 19:
Yeni bir sertifika talebinde bulunmak icin “Request new certificate” komutunu kullanıyoruz.
Şekil 20:
Yeni sertifika sihirbazı ile ilk olarak Enrollment Agent sertifikasını alacağız.
Şekil 21:
Burada görünen iki sertifika da (enrollment agent ve smartcard logon) CA’dan publish ettiğimiz için ilave edilen sertifikalardır.
Şekil 22:
Enrollment Agent sertifikasını seçerek devam ediyoruz. “Friendly name” sordugunda hatırlatıcı bir isim verebiliriz.
Şekil 23:
Başarılı bir şekilde yüklediğimiz ilk sertifikanın ardından sırada smartcard logon sertifikasının talebi var.
Şekil 24:
Yine aynı şekilde Smartcard Logon sertifikasını seçerek devam ediyoruz
Şekil 25:
Bu noktada şayet smartcard okuyucumuza kartımızı taktıysak bizden pin numarasını soracaktır. Belirtmek gerekir ki, smartcard’lar çift güvenlik seviyesi maksadıyla her türlü işlemde bize PIN numarası sormaktadır.
Şekil 26:
Evet, şu anda iki sertifikamız da hazır bulunmaktadır. Geriye kalan tek işlem ise , kullanıcılarımızın username’leri adına sertifikaları CA’dan almak ve smartcard’lara yüklemek olacaktır.
Şekil 27:
Burada baştan belirtmek gerekir ki , CA’a web üzerinden bağlanıldığında çalıştırılacak olan ActiveX scriplerine izin vermek ve aynı zamanda sorun çıkarmadan çalışmalarını sağlamak adına aşağıdaki işlemi yapmamız gerekiyor.
Enrollment Station’da şimdiki uygulanacak adım ise; http://sunucuadi/certsrv yazıp sertifika sunucumuza bağlanmak olacaktır. “ Request a Certificate “ seçerek devam ediyoruz ;
Şekil 28:
Burada “advanced certificate request” seçerek diğer kullanıcılarımız adına smartcard sertifikalarını almak üzere devam ediyoruz ;
Şekil 29:
En alttaki seçenek olan “ request a certificate for a smart card on behalf of….” diyerek devam ediyoruz. Bunun için ihtiyaç duyulan Enrollment Agent sertifikamız halihazırda makinada bulunduğundan dolayı herhangi bir sorun yaşamayacağız.
Şekil 30:
Şu anda ise gerekli enrollment bilgilerinin doğru bir şekilde görüntülenmesinden sonra, hangi kullanıcıya smart card sertifikası yükleyeceğimizi belirtip son aşamayı da tamamlamış olacağız. Doğru bir şekilde görüntülenmesi diyerek şunu kast etmekteyiz ki, ActiveX’in yüklenip çalıştırılması için gerekli yetkiyi vermediysek yahut smartcard logon veya enrollment agent sertifikalarından birisinin düzgün bir şekilde issue edilmediği durumlarda , enrollment bilgilerimiz görüntülenemeyecek ve devam etmemiz olanaksız hale gelecektir. Böyle bir sorun yaşayacak olursak, yukarda bahsedilen noktalara yeniden bir gözatmamız gerekecektir.
Şekil 31’de karşımıza çıkan ActiveX download’ına izin vererek install ediyoruz.
Şekil 31:
Şimdiki aşamada ise User to Enroll bölümünden “select user” ile devam ediyoruz. Bu arada kontrol edeceğimiz bir nokta , “certificate template” bölümünde hangi sertifikayı seçeceğimizi belirtiyor, biz burayı olduğu gibi bıraktık çünkü yükleyeceğimiz tek sertifika smartcard logon sertifikasıdır. Şayet farklı bir amaç için farklı bir sertifika var ise (ör smartcard user veya kendi dizayn ettiğimiz başka amaçlarla yaratılmış olan bir sertifika) işte bu durumda gerekli seçimi yapmamız gerekecektir.
Şekil 32:
Sertifikayı yükleyeceğimiz kullanıcıyı seçiyoruz ve kart okuyucumuza kullanıcımız için tahsis ettiğimiz kartı yerleştiriyoruz, geriye kalan tek aşama olarak “Enroll” komutu ile sertifikayı yazmak kalıyor.
Şekil 33:
Kullanacağımız smart card okuyucu cihaz sisteme doğru bir şekilde tanıtılmadıysa, “Enroll” aşamasında hata verecektir. Çünkü bu noktada smartcard okuyucu ile direkt iletişime geçilmektedir.
Şekil 34:
Daha önceden yapılan bir başka uygulamada kart üzerinde başka bir sertifika yüklü olduğundan dolayı bize mevcut olanı silip silmeyeceğimizi sormaktadır. Kartı temizleyerek sadece bu sertifikanın yüklü olmasını istiyorsak burada gerekli onayı veriyoruz.
Şekil 35:
Her zaman olduğu gibi şimdi de PIN kodunu teyid etmemiz gerekiyor ;
Şekil 36:
Başarılı bir enrollment sonucu aşağıdaki mesajı alıyoruz ,
Şekil 37:
ve istersek yüklediğimiz sertifikayı Smartcard’ımızdan okutarak görüntüleyebiliyoruz. Bu noktada , birden çok kullanıcıya smart card dağıtma durumuda “New user” ‘ı seçerek başka kullanıcılar için de aynı işlemi tekrarlıyoruz.
Şekil 38:
Test etmek amacıyla sisteme oturum açtığımızda , Multifactor Authentication sayesinde karşımıza çıkan Interactive logon ekranında CTRL+ALT+DEL yaptığımızda smart card’ımızın PIN konudu sorarak onaylamamızın ardından sisteme direk oturum açılıyor. Herhangi bir username/password girişi yerine kartımızdaki sertifikamız bizi sisteme dahil ediyor.
Şekil 39:
Şekil 40:
Şayet active Directory yapımızda tüm kullanıcılarımıza “mutlaka smart card ile oturum aç” ilkesini uygulamak istiyorsak domain Security Policy’den ;
- Interactive Logon : Require Smartcard
kuralını aktif hale getiriyoruz. Ve bununla birlikte kullanıcılarımızın oturumlarını Lock etmek istediklerinde CTRL+ALT+DEL yerine smartcard’larını okuyucudan çıkartarak yanlarına alıp oturumlarını kilitlemek istediklerinde de ;
- Interactive logon : SmartCard removal Behavior
kuralını aktif hale getirip ilgili seçimi yapıyoruz. Hatta group policy ile terminal server kullanıcılarının smartcard ile oturumlara katılıp bu kullanımı sağlamaları için gerekli policyler de mevcut.
Şekil 41:
Devam eden makalelerde ise Smartcard ile email uygulaması ve Radius bulunan bir ortamda VPN sunucuya PPTP-EAP ile Sertifikalı bağlanmanın Smart Card kullanarak nasıl yapıldığına ilişkin çalışmamız olacaktır.
Kaynak:
GemPlus
2823 Microsoft Official Curriculum