SSL Güvenlik Protokolü ve SSL Sertifikası

29 Haz

İş dünyasının ve ticaretin internet ortamına taşındığı günden itibaren internetin güvenliği sürekli sorgulanmıştır. Milyonlarca internet site arasından müşteri bilgilerinin güvenliğini ve mahremiyetini sağlayanlar öncelikli olarak tercih edilmiş ve rekabette bir adım önde olmuştur.

İnternet üzerinden yapılan iletişimin güvenliği noktasında iki önemli soruna çözüm bulunmalıdır.

  1. Veri gönderen ve alan tarafın, iletişim süresi boyunca birbirlerini tanıdıklarından emin olmaları gerekir. Alıcı tarafın, üçüncü şahıslar olması durumunda kişisel bilgiler, hesaplar gibi önemli verilerin güvenliği tehlikede demektir.
  2. Alıcı taraf, gönderilen verinin iletişim yolu üzerinde hiç değiştirilmeden geldiğinden emin olmak durumundadır.

Uzmanlar güvensiz ağ üzerinde güvenlik üzerinde kafa yorarak http protokolüne güvenlik mekanizmasını ekleyip https protokolünü oluşturmuşlardır.

  • http: hyper text transper protocol.
  • https: secured  hyper text transper protocol.

HTTP Protokolü

Protokol kavramı bilgisayar dünyasında gerçek hayatta ki sözlük anlamından farksızdır. Günlük hayatta protokoller iki taraf arasında uyulacak kuralları belirlemek amacıyla imzalanan anlaşma metnidir. Bilgisayar dünyasında ise haberleşen taraflar arasında belirlenen dijital iletişim kurallarıdır. Gönderen tarafın ve alıcı tarafın ilgili protokol kurallarına göre veri göndermesi ve alması gerekmektedir. HTTP protokolü sunucudaki 80 numaralı port üzerinden haberleşir.

HTTP protokolü, belli kurallar dahilinde istemci ve sunucu arasında talep/cevap göndermeyi sağlayan bir protokoldür.

https-ranking-signal-02 - Kopya

Örneğin bir tarayıcı sunucuya gönderdiği talepte protokol gereği şunları söyler:

  • Benim metodum GET,
  • Ulaşmak istediğim kaynak URL şudur,
  • QueryString parametrelerim şunlar,
  • Kabul ettiğim Accept-Encoding gzip, deflate
  • Tarayıcı dilim en-EN
  • Tarayıcı bilgilerim şunlar gibi.

HTTP protokolünün kurallarını, sunucu bilgisayar da bildiği için tarayıcının ne söylediğini anlayabilir ve ona göre ilgili kaynaktaki bilgiyi cevap olarak geri gönderir.

HTTP protokolü güvenlik gerektirmeyen bir ağ üzerinde çalışabilmek amacıyla tasarlanmıştır.

HTTPS Protokolü

HTTPS protokolünün oluşturulma amacı güvensiz bir ağ ortamında güvenli bir iletişim yolu oluşturmaktır. Çünkü HTTP protokolü man-in-the-middle diye tabir edilen saldırılara açıktır. Bu tür saldırılarda ağı dinleyen saldırganlar, kişisel hesap bilgilerini ve parolaları kolay bir şekilde ele geçirebilirler. HTTPS bu tür saldırılardan korunmak amacıyla tasarlanmış bir protokoldür. HTTPS = HTTP + SSL şeklinde bir formül ile ifade edebiliriz. HTTPS protokolü sunucudaki 443 numaralı port üzerinden haberleşir.

https-ranking-signal-02

Bir web sitesinde https protokolünün kullanılmasını gerektiren durumlar özetle şu şekildedir.

  • E-ticaret ve ödemek işlemleri gerçekleştirilen sitelerde maddi kayıpları önlemek amacıyla kullanılır.
  • Kişisel hesapların oluşturulduğu sitelerde kişisel verilerin korunması ve kullanıcı güvenliği amacıyla kullanılır.
  • Kullanıcıların kötü niyetli şahıslar tarafından oluşturulan benzer sitelere gitmesini engellemek için bilgilendirmek amacıyla kullanılır.

https ile veri mahremiyeti ve bütünlüğünü sağlamak amacıyla verinin şifrelenmesi ve iletişime geçilen sunucuların güvenliği doğrulanmış olması gerekmektedir. Veri şifrelemesi için doğrulanmış ve güvenilir sunucu sertifikaları kullanılır. Bu sertifikalara SSL sertifikaları denir. SSL sertifikaları, SSL protokolünün bir parçasıdır.

SSL Protokolü

SSL protokolü, ağ üzerinden gönderilen bilginin sadece doğru adreste deşifre edilerek okunabilmesi amacıyla tasarlanmış kriptolama protokolüdür. Protokol kuralları gereği gönderilen bilgi gönderici tarafında şifrelenir, ve sadece ulaşması istenen tarafta deşifre edilmesi garanti altına alınır. Böylece her iki tarafta doğrulamalar yapılarak veri mahremiyeti ve bütünlüğü sağlanmış olur.

ssl

Veri şifrelemede güvenliğin seviyesi şifreleme anahtarının uzunluğuna göre değişir. Örneğin 8 bit anahtar 0-255 arası değerler alacağından 256 olasılık sıra ile denenerek anahtar bilgisi elde edilebilir. SSL protokolünde genelde 128 ve daha fazla bit ile şifreleme kullanılır. 128 bit şifreleme durumda 2128 adet değişik anahtar kullanılmaktadır. 128 bitlik şifrenin çözülmesi için çok büyük yatırım maliyetleri ve çok uzun süre gereklidir.

SSL protokolü ile iletişim kurulabilmesi için SSL sertifikalarına ihtiyaç duyulur ancak olmazsa olmaz bir şart değildir.

SSL Sertifikaları

SSL Sertifikaları, internet işlemlerini güvenli hale getiren veri şifreleme işleminin önemli bir bileşenidir. Sertifikalar, veri gizliliğini ve bütünlüğünü sağlamak amacıyla web sitelerinin kimlik bilgisini doğrulayan dijital belgelerdir. SSL sertifikaları SSL protokolü aracılığıyla kullanıcıların güvenli bir oturum başlatmalarını sağlar. Sertifika olmadan şifreleme anahtarları ve web sitesini tanıtan şirket bilgileri olmayacağından güvenli bir bağlantı sağlanamaz.

Sertifikalar tanınmış resmi kuruluşlar tarafından sağlanır. Bu kuruluşlara Certificate Authority(CA) denir. Sertifika içeriğinde veri şifreleme için kullanılacak olan bir public key ve sertifika veren kuruluş bilgileri bulunur. Sertifika veren kuruluşlar istemci bilgisayarların sertifika depolarında bulunduğundan sunucu ile iletişime geçen bir internet tarayıcısı bize ilgili sitenin sertifikasının güvenilir bir kuruluş tarafından verilip verilmediğini veya geçerli olup olmadığını uyarılar şeklinde belirtir.

HTTPS ile Güvenli İletişimin Adımları

HTTPS protokolü üzerinden bir internet tarayıcısı ve sunucu arasında gerçekleştirilen iletişim adımları şu şekilde gerçekleşir.

https://www.thesslstore.com/blog/wp-content/uploads/2016/02/howsslworks-1.png
https://www.thesslstore.com/blog/wp-content/uploads/2016/02/howsslworks-1.png

 

Adım-1: İstemci internet tarayıcısında https protokolü üzerinden sunucuya bir talep gönderir.

Adım-2: Sunucu kendisine ait şifreleme yöntemini belirten genel anahtarı(public-key) bulunduran bir sertifikayı istemciye gönderir.

Adım-3: İstemci tarayıcısı, sertifikanın:

  • Güvenli bir CA tarafından üretilip üretilmediğini,
  • Sertifikanın hala geçerli olup olmadığını,
  • Sertifikanın ilgili siteye ait olup olmadığını kontrol eder.

Adım-4: Tarayıcı public-key kullanarak rasgele simetrik şifreleme ile bilgileri şifreleyerek sunucuya gönderir.

Adım-5:Sunucu simetrik şifreyi private-key yardımı ile çözerek veriye ulaşır.

Adım-6: Sunucu istemciye html dökümanını şifreleyerek geri gönderir.

Adım-7: İstemcinin internet tarayıcısı şifreyi çözerek html dökümanını görüntüler.

IIS ile Self Signed Certificate Oluşturma

17 Haz

Self Signed Certificate yani Otomatik Olarak İmzalanan sertifikaların IIS yardımı ile oluşturulması adımları aşağıdaki gibidir.

IIS ana penceresinde bulunan “Sunucu Sertifikaları” bölümüne girilir.

1

Bu bölümde ki sağ pencerede bulunan “Otomatik Olarak İmzalanan Sertifika Oluştur” seçeneği seçilir.

2

3

Otomatik imzalanan sertifika oluşturma penceresinde bir sertifika adı ve sertifika deposu seçilir.

4

Oluşturulan yeni sertifika artık Sunucu Sertifikaları listesinde görünmektedir. Sağ bölümde bulunan “Dışarı Aktar” seçeneği ile açılan pencerede sertifikanın nereye aktarılacağı ve şifresi belirlenir.

5

Sertifika”C:\Temp\” dizini altına başarılı bir şekilde oluşturulmuştur. Sertifikayı Base64 olarak kodlanmış bir metin halinde almak için kullanılabilecek C# kodu:


Convert.ToBase64String(File.ReadAllBytes(@"C:\\Temp\B3CERT.pfx"));

 

SSL Güvenliği

9 Eyl

SSL Nedir?

SSL (Secured Sockets Layer), ağ üzerinde veri taşıma işleminin güvenli güvenli bir şekilde yapılabilmesi için Netscape tarafından geliştirilmiş ve standartlaşmış bir protokoldür.

SSL Sertifikası Nedir?

SSL sertifikası, bir kuruluşu tanıtan bilgileri, şifrelenmiş bir dijital anahtara bağlayan ufak veri dosyalarıdır. Bir SSL sertifikası üçüncü parti sertifika otoritsi tarafından üretilen ve şirketin web sitesinin o şirkete ait olduğunu doğrular. Gönderilen bilginin sadece doğru adreste deşifre edilmesini sağlar. SSL genellikle e-ticaret, bankacılık ve sosyal medya gibi veri güvenliğinin önemli olduğu sistemlerde kullanılır.

Bir web sayfasının kullanıcılar ile güvenli iletişim kurabilmesi için SSL sertifikasının WEB sunucusuna yüklemesi gerekmektedir. Sertifika yüklendikten sonra, WEB sayfasına https://www.domain.com şeklinde https protokolü kullanan bir adresten bağlanmak mümkündür. Güvenli bağlantı kurulduktan sonra WEB sunucusu ve WEB tarayıcısı arasındaki tüm trafik güvenli olacaktır.

WEB tarayıcıları, bir WEB ayfasının SSL güvenliğini, kullanıcılara bir kaç farklı yolla bildirir. Bunlar:

Genişletilmiş SSL Sertifika Doğrulaması (Extended Validation SSL Certificate)

Bu doğrulamayı yapan sitelere girdiğimizde adres çubuğunda aşağıdakine benzer bir görüntü ile karşılaşırız.

Adsız

Sarı ile işaretlenen bölgede kuruluş adınının adres çubuğunda gözükmesi, Extended Validation SSL olduğunu gösterir.

Adres çubuğunda kırmızı ile işaretlenen asma kilit ise sunucu ile kurulan bağlantının güvenli olduğunun işaretidir.

Standart SSL Sertifika Doğrulaması

Bu bağlantıda adres çubuğunda kuruluş adı gözükmez. Sadece güvenli bağlantının sembolü olan asma kilit gözükür.

Adsız2

Asma kilit işaretine tıkladığınızda kuruluşa ait sertifika bilgilerine ulaşabilirsiniz.

SSL Sertifikası Nasıl Temin Edilir?

Bir SSL sertifikasını sertifika sağlayıcı şirketlerden(Certificate Authority) temin edebileceğimiz gibi kendi bilgisayarımızda da oluşturabiliriz. Kendi bilgisayarımızda oluşturuduğumuz sertifikalar kullanıcı bilgisayarlar tarafından güvenilir sertifikalar olarak görülmez. Bunun sebebi sertifikayı oluşturanın güvenilir olup olmadığının bilinmemesidir. Ancak üçüncü parti sertifika otoriteşirketleri(CA)  tarafından temin edilen sertifikalar WEB tarayıcıları tarafından güvenilir sertifikalar olarak algılanır. Üçüncü parti sertifika otoritelerinin kök sertifikaları kullanıcı tarafında önceden yüklüdür. Tarayıcı ayarlarından yola çıkarak önceden yüklü kök sertifikaları görebilmekteyiz.

Sertifika Geçerliliği

Bir sunucuya yüklenen sertifika https protokolü üzerinden kullanıcı bilgisayarın WEB tarayıcısına gönderilir. Kullanıcının web tarayıcısı sertifikanın doğruluğunu denetler. Tarih ve zaman doğrulaması gerçekleştirir. Burda bir örnek vermek gerekirse, bilgisayarınızın tarih saat ayarlarını 100,200 sene geri veya ileri alın ve https kullanan bir siteye girmeyi deneyin. Bakalım ne ile karşılaşacaksınız.

Sertifika İsteği Oluşturmak

Bir sunucu üzerinde SSL sertifika isteği oluşturmak, Windows işletim sistemleri için IIS üzerinden kolayca yapılabilmektedir. IIS kullanıcı panelinden Sunucu Sertifikaları penceresinden sağ paneldeki Sertifika İsteği Oluştur sekmesinden sertifika isteği kolayca oluşturulabilir. Oluşturulan sertifika isteği, üçüncü parti bir sertifika otoritesine gönderilerek onaylı bir sertifika edinebiliriz.

SSL Sertifika İsteği
SSL Sertifika İsteği

Sertifika Yüklemesi

Edindiğimiz sertifikayı yine IIS üzerinden sunucuya Sertifika İsteğini Tamamla sekmesinden yükleyebiliriz. Sunucuya yüklenen sertifikayı bir web sitesine bağlamak için ise IIS üzerinde şu yolu izleyebiliriz.

Web Sitesine Sertifika Bağlama
Web Sitesine Sertifika Bağlama

Burada dikkat edersek bağlantı noktası(portu) olarak 443 numaralı bağlantı noktası verilmiştir. Çünkü https protokolü, 443 numaralı bağlantı noktası üzerinden iletişim kurabilmektedir.