İş 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.
- 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.
- 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.
Ö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.
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.
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.
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.