Blog

Sertifika Şeffaflığı

SERTİFİKA ŞEFFAFLIĞI  
 Mahir YÜKSEL İstanbul Şehir Üniversitesi, Fen Bilimleri Enstitüsü, Bilgi Güvenliği Mühendisliği, İstanbul, [email protected]    

ÖZET : Google’ın sertifika şeffaflığı projesinden önce Geçerli olan model, tüm kullanıcıların, yüzlerce sertifika otoritesi  tarafından sitelere verilen sertifikaların doğru olduğuna güvenmesini gerektirmektedir. Fakat bazen insan hataları veya kimliğe bürünme eylemleri, sertifikaların yanlış verilmesine yol açabilmektedir. Bu bildiri, sertifika şeffaflığı projesinin anılan problemlerle ilgili ortaya çıkabilecek güvenlik açıkları ve hatalar için alınabilecek önlemler ve çözüm yollarını kapsamaktadır.   ANAHTAR KELİMELER : Sertifika, Sertifika Şeffaflığı, Sertifika Otoritesi    

GİRİŞ   Sunucu (SSL) sertifikaları, İnternet ve her türlü ağ üzerinde istemci bağlantılarını karşılayan sunucuların, bağlanan kullanıcılar tarafından doğrulanması amacıyla kullanılmaktadır. Eğer sunucuya bağlanan kullanıcı da elektronik sertifika sahibiyse, sunucu bağlantısı sırasında kullanıcının da kimliğinin doğrulanması mümkündür. Bu tür bir bağlantı sırasında istemci ve sunucu arasında güvenli bir iletişim kanalı oluşturulur ve gönderilip alınan bilgiler şifrelenerek transfer edilir. Sunucu (SSL) sertifikaları, özellikle İnternet üzerinde hizmet veren web sunucularının bağlantı güvenliğinin sağlanması amacıyla kullanılır. [1]  

 SERTİFİKA NEDİR ?   Bir web sitesini güvenli bağlantı (HTTPS) üzerinden ziyaret ettiğinizde ilgili web sitesi, tarayıcınıza dijital sertifika sağlar. Bu sertifika, sitenin ana makine adını tanımlar ve site sahibini doğrulayan Sertifika Yetkilisi (CA) tarafından imzalanmıştır. Kullanıcı, Sertifika Yetkilisine güvendiği sürece Sertifikada sunulan kimlik kanıtına da güvenebilir[2]. (Inc., 2016)     1.SSL (SECURE SOCKET LAYER) NEDİR ? SSL teknolojisi TCP/IP protokolü üzerinden çalışan, web sunucusu ve web tarayıcısı arasındaki tüm bilgi akışını koruyan bir güvenlik protokolüdür. Bütün popüler web tarayıcılarda ve web sunucularda uygulanmaktadır. Bugünün web üzerinden elektronik ticaret ve elektronik iş uygulamalarında önemli bir rolü vardır. SSL protokolü iki taraf arasında güvenli ve gizli iletişimin sağlanmasında elektronik sertifika kullanır. SSL bağlantısı üzerinden gönderilen veriler üçüncü şahıslar tarafından bozguna uğratıldığında, bundan tarafların anında haberi olur.

Bir web sunucusunun kullanıcılarıyla SSL bağlantısı sağlayabilmesi için öncelikle sunucu tarafında bir sunucu sertifikası bulunması gereklidir. SSL ile güvenliği sağlanmış bir siteye bağlanan kullanıcı sitenin URL adresinin "https:" ile başladığını görür. Daha sonra SSL bağlantısı kurulur ve sunucu-tarayıcı arasındaki tüm veriler üçüncü şahısların mesajı okumasını önlemek amacıyla şifrelenir.Bu işlemlerin amacı kullanıcıya bağlandığı sitenin gerçekten bağlandığını düşündüğü site olduğunun ispatının sağlanmasıdır. Kullanıcı bundan emin olmak için SSL bağlantısı süresince sunucudan gelen her bilgiyi web    sayfasının güvenlikle ilgili özelliklerine bakarak kontrol etmelidir. Web sayfalarının güvenlik bilgileri sunucunun sertifikasını kontrol imkanı sağlar. Eğer yabancı veya farklı bir sunucunun sertifikasıyla karşılaşılırsa bağlanılan sunucu bağlanıldığı sanılan sunucu değildir ve iletişimin güvenliği tehdit altındadır.

 2.SSL SERTİFİKASI NASIL ÇALIŞIR ?  

1. Öncelikle kullanıcı ( istemci ) bir web sayfasını http yerine https olarak çağırması ile ( örneğin tarayıcınıza http://www.example.com yerine https://www.example.com yazarak) sunucunun HTTPS protokolüne talepte bulunur.

2. Sunucu SSL sertifikası ile ilgili bilgileri kullanıcıya  ( istemciye ) gönderir. İstemci bu sertifikanın alan adını, süresini ve ssl üreticisi otorite tarafından geçerliliğini kontrol eder, eğer sertifikanın alan adı ile sitenin alan adı farklı ise veya ssl sertifikasının süresi geçmişse veya dünyaca kabul edilen sertifika otoritelerinden birisinin imzasını taşımayan bir sertifika ise kullanıcıyı uyaran mesaj verir.  

3. Eğer yukarıdaki tüm kontroller doğrulanırsa, kullanıcı ( istemci ) sunucudan aldığı şifreleme algoritması ile özel oturum anahtarını sunucuya gönderir.

4. Sunucu kendi algoritması ile bu özel oturum anahtarının doğrulaması yapar ve sadece kullanıcı ve sunucunun anlayacağı şifreli iletişim başlamış olur.[3]

SERTİFİKA OTORİTESİ (CA) NEDİR ?

Sertifika Otoritesi (CA), web sitesi operatörlerine dijital sertifikalar veren bir kuruluştur. İşletim sistemleri (ör. Mac OS X ve Windows) ve web tarayıcıları (ör. Chrome, Firefox, Safari), güvenilir kök sertifika yetkililerden oluşan önceden yüklenmiş bir grupla sunulur. Modern işletim sistemleri genellikle 200'ün üzerinde güvenilir CA ile sunulmaktadır. Bunların bazıları, devletler tarafından işletilmektedir. Her CA, web tarayıcıları için eşit düzeyde güvenilirliğe sahiptir. Bununla birlikte, birçok CA, sertifika verme yeteneğini ara Sertifika Otoritelerine aktarır.  

SERTİFİKA ŞEFFAFLIĞI NEDEN ÖNEMLİDİR?

Geçerli model, tüm kullanıcıların, yüzlerce sertifika otoritesi tarafından sitelere verilen sertifikaların doğru olduğuna güvenmesini gerektirmektedir. Ancak bazen insan hataları veya kimliğe bürünme eylemleri, sertifikaların yanlış verilmesine yol açabilmektedir. Sertifika Şeffaflığı (CT), sertifika verme sürecini değiştirerek sertifikaların kullanıcının web tarayıcısı tarafından geçerli olarak kabul edilmesi için herkesin doğrulayabileceği, izinsiz değişikliklere karşı korunan, yalnızca ekleme yapılabilen günlüklere yazılmasını zorunlu hale getirmektedir. Sertifikaların bu herkese açık CT günlüklerine yazılması zorunlu hale getirildiğinde, ilgilenen herkes bir sertifika otoritesi tarafından verilen tüm sertifikaları inceleyebilir. Bunun sonucunda da kuruluşların hesap verme zorunluluğu artarak daha güvenilir bir sistem desteklenir. Sonuç olarak, bir sitenin sertifikası CT günlüklerine kaydedilmemişse, HTTPS protokolünü kullanan bir site ziyaret edildiğinde tarayıcılar güvenli bağlantı kilidini göstermeyebilir. Sertifika Şeffalığı, sorunlu sertifikaların mümkün olduğunca erken dönemde tespit edilmesini sağlar, sorun veya hatanın tekrarlanmasını önlemek için düzeltici adımların atılmasına yardımcı olmak üzere SSL sertifikalarının kamuoyuna açık bir şekilde işlenmesine olanak veren bir yol sunmaktadır.  

SAHTE SERTİFİKA ÖRNEĞİ  

2011 yılında TürkTrust şirketi bir tanesi e-islem.kktcmerkezbankasi.org diğeri ise ego.gov.tr olmak üzere iki adet SSL sertifikası yerine  ara sağlayıcı sertifikası üretiyor. Kktcmerkezbankasi.org için üretilen sertifika çalışmıyor ve hemen geri çekiliyor.. Ego.gov.tr sertifikası ise yürürlükte kalıyor. Ego.gov.tr’nin ara sağlayıcı sertifikası bir IIS ve e-posta sunucusunda kullanıma girmiştir. Checkpoint güvenlik duvarı sistemine yüklenen gereğinden fazla yetkili sertifika man-in-the-middle attack  sayesinde otomatik olarak SSL trafiğinin arasına girebilecek bir sertifika yaratmıştır. Üretilen sahte Google sertifikası, Chrome tarayıcı üzerinde fark edilmiş ve durum TürkTrust’a ve paydaşlara Google tarafından bildirilmiştir. TürkTrust yazılımsal bir hata nedeniyle sertifika üretiminde bir problem yaşandığını belirtmiştir fakat İnternet üzerinden ürün ve hizmet sunan firmalar TürkTrust’ı kendi güvenilir sertifika sağlayıcı listelerinden çıkartmaya ve güvenilirlik durumunu askıya almaya başlamıştır. Opera Browser’da GoogleChrome gibi TurkTRUST’ın güvenlik seviyesini Extended Validation’dan Standart Validation’a düşürmüştür.

Şekil 1 SSL Güvenlik Seviyesi

Şekil 2 Firefox Duyurusu


Google bu durumu açık anahtar iğneleme ( public key pinning ) ile tespit etmiştir[4]. Public Key Pinning, Google Chrome’un 13. sürümünden bu yana bulunan bir özelliktir, istenilen site veya hizmetlerin sadece ilgili sertifika otoritesi veya otoriteleri ( yani ilgili hizmet/site sahibinin belirlediği sağlayıcılar ) tarafından imzalanması durumunda kabul gördüğü bir sistem. Örnek Olarak “ A Corporation ” isimli güvenilir bir sertifika sağlayıcısıysanız ve Google o an sizinle iş yapmıyorsa ve bu iğneleme listesinde bulunmuyorsanız A Corporation’ın verdiği Google.com sertifikasını kabul etmememektedir.    

DIGINOTAR VE TRUSTWAVE ÖRNEKLERİ  

ComodoHacker isimli iran menşeyli bir grup tarafından Sertifika Otoritesi olan ve Hollanda devletinin e-imza gibi uygulamalarınada sertifika üreten DIGINOTAR isimli şirkete yönelik bir saldırı gerçekleştirilmiştir. [5]500'den fazla sahte sertifika [15] üretmeyi başarmışlardır. Bu saldırı HTTPS Gmail trafiğinin google sunucularından başka adreslere yönlendirildiğinin farkedilmesi ile ortaya çıkmıştır ve ortaya çıkmasının arıdından ComodoHacker'ın sahte olarak ürettiği *.google.com sertifikası DigiNotar tarafından bloke edilip kullanımdan kaldırılmıştır. Ancak üretici firmalar peş peşe DigiNotar sertifikalarını güvenilir sertifika makamı listesinden çıkartıp kara listeye almışlardır. Ayrıca DigiNotar firması da güvenlik firmalarının yardımıyla bir güvenlik denetimi başlatmış ve bu süre zarfında sertifika verilmesi işlemini durdurduğunu açıklamıştır. [6]    

Şekil 3 ComodoHacker Tarafından Oluşturulan Sertifika [7]


Saldırının ardından Microsoft, Mozilla, Google, Apple gibi dünya devi üreticiler DigiNotar sertifikalarına olan güvenlerini geri çektiler ve bunu yaptıkları güncellemeler ile kullanıcılara sundular. Microsoft Güncellemeleri (update.microsoft.com) için de sertifika imzalayan ComodoHacker'a karşı ilk adım atan şirketlerin başında Microsoft gelmektedir. Microsoft yayınladığı güncellemeler ile Windows ve Internet Explorer'a ait güvenilir sertifika makamları listesini güncellemiştir.[8]   Mozilla'nın yayınladığı güncellemeler de Firefox, Thunderbird ve SeaMonkey uygulamalarına yönelik olmuştur.[9] Apple, MacOS X ve MAC OS X Server sürümleri ile OS X Lion ve Lion Server için güncellemelerini yayınlamıştır.[10]  
Şekil 4 İnternet Tarayıcısı Tarafından Yayınlanan Güvenilmeyen Sertifika Otoritesi Listesi  

SERTİFİKA ŞEFFAFLIĞI YAPISI BİLEŞENLERİ

Sertifika Şeffaflığı,  mevcut  SSL sertifika sistemine üç yeni işlevsel bileşen ekler: 

 

  • Sertifika kayıtları/logları
  • Sertifika denetleyicileri
  • Sertifika denetmenleri

Bu işlevsel bileşenler, ek izleme ve denetim hizmetleri sağlayan ayrı yazılım modüllerini temsil eder. Geçerli SSL sertifika sisteminin yerini alamaz veya bunlara bir alternatif oluşturmazlar.    Gerçekten de bu bileşenler, istemcilerin bir alan adını doğrulamasına ve bir sunucu ile güvenli bir bağlantı kurmasına olanak tanıyan temel güvenlik zinciri modelini değiştirmez. Bunun yerine, bu bileşenler, tüm SSL sertifika sisteminin kamu gözetimine ve denetimine destek sağlayarak, zincirleme güven modelini zenginleştirir.   

TEMEL ÖZELLİKLER
Sertifika Şeffaflığı sisteminin merkezinde sertifika logları bulunur. Bir sertifika logu, bir SSL sertifikası kaydını tutan basit bir ağ hizmetidir.    Sertifika logları’nın üç önemli özelliği vardır: 

 

 

  • Sertifikalar yalnızca bir log’a eklenebilir; Sertifikalar silinemez, değiştirilemez veya geçmişe dönük olarak günlüğe kaydedilemez.
  • Kriptografik olarak güvence altındadırlar . Loglar müdahaleyi önlemek için Merkle Tree Hashes olarak bilinen özel bir şifreleme mekanizması kullanır.
  • Herkes denetlenebilir durumdadır. herkes bir sertifikayı günlükte sorgulayabilir ve doğruluğunu doğrulayabilir veya bir SSL sertifikasının meşru olarak günlüğe eklendiğini doğrulayabilir.

Bir logun  bozuk olmadığını ve oturum operatörünün günlükteki herhangi bir sertifikayı silip değiştirmediğini ispatlamak için özel bir şifreleme algoritması kullanmasına izin verir. Merkle Tree Hash olarak bilinen bu algoritma, denetçilerin eski tarihli sertifikaları bir log’un içine ekleyip eklemediğini tespit etmesini de mümkün kılar.  

Her sertifika logu, URL'sini ve açık anahtarını  kamuya açıkça ilan etmelidir. Herkes HTTPS GET ve POST mesajları yoluyla bir log’la etkileşimde bulunabilir.   Sertifika Şeffaflığı günlüğü, RFC 6962'yi uygulayan bir sunucudur ve herhangi bir tarafın, herkesin güvendiği bir CA tarafından verilen sertifikaları göndermesine olanak tanır. Günlük, bir sertifikayı kabul ettikten sonra, günlüğün şifreleme özellikleri, girişin hiçbir zaman kaldırılamamasını veya düzenlenememesini garanti eder.[11]
 
TEMEL LOGLAMA İŞLEMLERİ  

Çoğu sertifikanın sertifika yetkilileri ve sunucu operatörleri tarafından gönderilmesine rağmen herkes bir günlüğüne bir sertifika gönderebilir.   Birisi bir günlüğe geçerli bir sertifika gönderdiğinde, günlüğe imzalanmış bir sertifika zaman damgasıyla (SCT) yanıt gelir; bu, belirli bir süre içerisinde sertifikayı günlük dosyasına ekleyeceğiniz anlamına gelir. Zaman aralığı, maksimum birleştirme gecikmesi (MMD) olarak bilinir.   SERTİFİKA ŞEFFAFLIĞININ

OLUŞTURULMA ADIMLARI


Sertifika yayınlama sürecine, Sertifika Şeffaflığı tarafından tanıtılan yeni adımlar koyu renk ile vurgulanmıştır.  
1.       Sunucu operatörü Sertifika Otoritesin'den sertifika satın alır.
2.       SO, sunucu operatörünü doğrular
3.       SO bir ön sertifika oluşturur
4.       SO, ön sertifikayı oturum sunucusu ile günlüğe kaydeder ve imzalanmış bir sertifika zaman damgası (SCT)( Signed Certificate Timestamp)
5.       SO, SSL Sertifikası yayınlar
6.       SSL Sertifikası, imzalı sertifika zaman damgasını içerebilir. (SCT)
7.       Tarayıcı, TLS el sıkışması sırasında SSL Sertifikasını doğrular
8.       Tarayıcı, TLS el sıkışması sırasında sağlanan imzalanmış sertifika zaman damgasını  ya OCSP  ile ya da bir TLS uzantısı aracılığıyla ya da sertifikada gömülü olan bilgi ile doğrular.
9.       Tarayıcı sunucu ile bağlantı kuruyor
10.    SSL Sertifikası, tüm verileri tarayıcıdan sunucuya geçtikçe şifrelemeye başlar.[12] Açıklandığı gibi, TLS el sıkışma sırasında imzalanmış sertifika zaman damgasını  teslim için üç olası yolu vardır.

 

·         Gömülü Sertifika

SO'lar  SCT kanıtını doğrudan sertifikanın uzantılarına yerleştirerek SCT'yi bir sertifikaya iliştirebilirler. Sertifika verilmeden önce, kayıt defterine bir ön sertifika gönderilir ve kayıt SCT'yi iade eder. SO, uygun aracı tarafından imzalanmadan önce verilen sertifikada sertifikalı bir uzantı olarak geri gönderilen SCT'leri içerir. Bu yöntem, sunucu operatörü tarafında herhangi bir sunucu değişikliği veya işlem gerektirmez. Bununla birlikte, bu yöntem, CA'nın sertifikayı vermeden önce SCT elde etmesini gerektirir.

·         TLS Uzantısı

Sunucu operatörleri özel bir TLS uzantısı kullanarak SCT'leri gerçek sertifika dışında sunabilir. SO sertifika verir sonra, sunucu operatörü sertifika günlüğüne gönderir. Günlük SCT'yi sunucu operatöre gönderir ve sunucu, el sıkışma sırasında SCT'yi teslim etmek için TLS uzantısını kullanır. Bu yöntem, sertifika boyutunu azaltır ve SO'nun herhangi bir bölümünde herhangi bir işlem yapmasını gerektirmez.

·         OCSP Damgalama

Sunucu operatörleri, Çevrimiçi Sertifika Durum Protokolü (OCSP) kullanarak SCT sunabilir. OCSP işlemi ile CA sertifika hem günlük sunucusuna hem de sunucu operatöre gönderir. SO, sunucunun OCSP yanıtı talebinin bir parçası olarak SCT'yi sunucu operatörüne döndürür. Uzantı olarak SCT'yi içeren bu yanıt, TLS el sıkışması sırasında sunucu tarafından müşterilere sağlanır. Bu yöntemde, SO'nun sertifikayı verme sırasında günlüğüne göndermesini gerektirir, ancak SO'nun SCT'yi almadan önce sertifika teslim etmesine izin verir. Bu yöntem, sunucu operatörünün sunucuda OCSP ‘yi etkinleştirmesini de gerektirir.   İmzalanmış zaman damgasının dağıtım yöntemlerinden biri için bu sürecin bir diyagramı aşağıda yer almaktadır.  

Sertifika Şeffaflık Bileşenleri
Sertifika Şefafflık  sistemi dört bileşen içerir: SO, sertifika kaydı, sertifika izleyici ve sertifika denetçisi.  Bu bileşenlerin muhtemel bir yapılandırmasına sahip bir diyagram aşağıda yer almaktadır. 

Sertifika yetkilisi

CT, varolan kamunun güvenilen CA sisteminde çalışır. CT'lerle, CA'lar bir genel günlüğünde sertifika verme belgesi içerebilir ve tarayıcılar el sıkışma sırasında bu ÖTV'yi kontrol edebilir. Sertifika günlüğü, CA'nın düzgün çalıştığının kanıtıdır ve CA operasyonları hakkında fikir verir.

 

Sertifika İzleme Aracı

Bir sertifika izleyicisi, sertifika günlüklerini şüpheli etkinlikler için izleyen herkestir (büyük marka sahipleri veya CA'lar gibi). Monitörler, HTTP GET komutunu kullanarak günlüklerden bilgi alabilir. Her müşteri kendi günlük izleme hizmeti gibi davranabilir veya bunu başka bir tarafa devredebilir. 

Sertifika denetçisi

Sertifika denetmenleri, günlüğün diğer günlüklerle tutarlı olup olmadığını, yeni girdilerin eklendiğini ve bir sertifikayı geçmişe dönük olarak ekleme, silme veya değiştirme gibi birinin bozmadığını doğrulamak için günlükleri kontrol eder. Denetim muhtemelen tarayıcılarda yer alan otomatik bir işlem olacaktır. Bununla birlikte, denetçiler bağımsız bir hizmet olabilir veya bir monitörün ikincil bir fonksiyonu olabilir.

KAYNAKLAR  

 

[1] http://informatics.istanbul.edu.tr/wp-content/uploads/2012/09/TURKTRUST_ESHS_ve_PKI_Sunumu.pdf

[2] https://www.google.com/transparencyreport/https/faq/?hl=tr#ctimportance

[3] https://www.evsslcertificate.com/ssl/description-ssl.html

[4] http://tolga.kaprol.net/turktrustun-sahte-sertifika-olayi/

[5] http://spectrum.ieee.org/riskfactor/telecom/security/diginotar-certificate-authority-breach-crashes-...

[6] http://www.vasco.com/company/press_room/news_archive/2011/news_diginotar_reports_security_incident.a...

[7] https://www.bilgiguvenligi.gov.tr/kritik-acikliklar/guvenilir-sertifika-makamina-guvenmek-oncesi-ve-...

[8] http://technet.microsoft.com/en-us/security/advisory/2607712

[9] http://www.mozilla.org/security/announce/

[10] http://support.apple.com/kb/HT4920

[11] https://www.google.com/transparencyreport/https/faq/?hl=tr#whatcert

[12] https://www.digicert.com/certificate-transparency/how-it-works.htm




Yazar Hakkında

Halen bir kamu kurumunda görevine devam etmektedir. Meslek hayatı boyunca çeşitli kamu kurumlarında güvenlik analisti ve bilgi güvenliği uzmanı olarak çalışmıştır. İstanbul Şehir Üniversitesinde Bilgi Güvenliği Mühendisliği üzerine yüksek lisans yapmaktadır. Sibertehdit.com'un kurucusudur. Cyber Threat Intelligence, Penetration Testing, Critical Infrastructure Protection alanlarında çalışmalar yürütmektedir.






Yorum Yapmak İçin Giriş Yapın.