IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi  
 sohbet
derya sohbet


Webmaster Genel Webmasterların fikir alışverişi yapabileceği konulara bu başlık altından ulaşabilirsiniz.

2Beğeni(ler)
  • 1 Post By UmutAldi
  • 1 Post By Allecra


 
 
Seçenekler Stil
Alt 12 Mayıs 2020, 16:26   #1
Sound Engineering | Radio Presenter
UmutAldi - ait Kullanıcı Resmi (Avatar)

Exclamation HTTPS Nasıl Çalışır? HTTPS’e Neden Ihtiyaç Duyarız?

Bu makaleyi okuduktan sonra HTTPS hakkında kafanızda oluşan bir çok soru aydınlığa kavuşacaktır. Neredeyse bir bir her yeri açıklamaya çalışacağım. Ancak yinede kafanıza takılan bir soru olursa sormaktan çekinmeyin.
HTTPS‘i açıklamaya geçmeden önce TCP/IP ve UDP protokolü hakkında biraz bilgi vermek daha doğru olur diye düşündüm.

Bilgisayarların birbirleriyle iletişim kurabilmeleri için belirli protokollere ihtiyaç vardır. TCP/IP ve UDP protokolleri ise bu iletişim protokolleri arasında yer alır.

TCP PROTOKOLÜ
TCP senkron bir biçimde 2 tarafında birbirine data gönderebildiği full dublex bir yapıdır.
TCP/IP protokolünde veriler katmanlara göre paketlenerek yollanır ve alıcıda bu paketler tek tek açılarak veriye ulaşılır.
TCP’de data integrity(data bütünlüğü) önemlidir. TCP ‘de veriler paketler halinde gönderilir.
Örneğin; TCP/IP , 5 MB’ lık bir veri yollarken herhangi bir paket içerisindeki veri bozuksa yada veri bir şekilde iletilmediyse paketi tekrar gönderir.

UDP PROTOKOLÜ
Uygulamalar arasında düşük gecikme ve az kayıp oranı varsa tercih edilebilir. UDP ‘de 2 bilgisayar arasında iletişim sırasında bir kontrol mekanizması yoktur.
A bilgisayarı B bilgisayarına sürekli data gönderir ancak UDP protokolü TCP protokolünde olduğu gibi bu datanın bozuk veya yolda kaybolduğu ile ilgilenmez. Ancak yayın ve anlık iletinin olduğu yerlerde kullanılabilir.
Mesela; radyo akışı gibi. Anlık kesilmeler olması normaldir.
SSL, alttında TCP protokolünü kullanır. Doğal olarak SSL iletişiminden
bahsedebilmek için TCP handshake ile TCP bağlantısının kurulması gerekir.
Bu TCP paket mekanizmasının ilk 3 paketi handshake mekanizmasıına aittir.
Şimdi ana konumuz olan HTTPS’ e geçebiliriz.

HTTPS
Tarayıcı ve web sitesi tek yönlü SSL anlaşması kullanarak bir HTTPS bağlantısı kuruyor. Temel amacı, bir sunucu ile bir istemci arasındaki iletişim
için gizlilik ve veri bütünlüğü sağlamaktır. 2 tür SSL vardır.
Tek yönlü SSL’de yalnızca sunucunun client kimliğini doğrulaması,
iki yönlü SSL’de ise hem sunucunun hem de clientin birbirinin kimliğini doğrulamasıdır.
Genellikle, bir HTTPS web sitesine göz attığımızda, yalnızca browserin (istemcimizin) serverin kimliğini doğruladığı tek yönlü SSL kullanılmaktadır. İki yönlü SSL, çoğunlukla her iki tarafın da birbirlerinin kimliğini doğrulaması gereken sunucudan sunucuya iletişimde kullanılır.

Neden HTTPS’e ihtiyaç duyarız ?
1. Privacy (Gizlilik)
2. Integrity (Entegre Bütün Olmak)
3. Identification (Tanımlama)

1.Privacy (Gizlilik)
Privacy’i açıklamakla başlayalım
Örnek ile açıklamaya çalışalım. Elimiz de MagnificentApp uygulaması olsun.
MagnificentApp’den Browser’a bir mesaj yolluyoruz. Ancak mesajımız encrypte edilmemiş durumda olsun. A uygulaması da mesajı yakalayan sistemimizi yani browser ile olan communicationımızı listen ediyor olsun.
Privacy, hiç kimsenin mesajlarımızı gizlice dinleyemeceği anlamına gelmektedir.
HTTPS olmadan bir web sitesi göz attığında şifreni gizlice birisi dinliyor olabilir. Browser’ınızın url çubuğundaki yeşil kilit, burada gizlice birinin sizi izlenmediğini söyler. :)

2. Integrity(Entegre Bütün Olmak)
Örnek ile açıklamaya çalışalım
Browser’a unencrypted olarak bir mesaj yolluyoruz. Fakat mesaj browser’a ulaşmadan önce intercept(yolu kesilebilir) edilebilir.
Ve mesajımızın içeriği açılıp kötü niyetli bir şekilde güncellenerek devam ettirilebilir. Buna genellikle man-in-the-middle attack olarak adlandırılır.
Integrity, mesaj gideceği yere(destination) giderken manipule edilmediği anlamına gelmektedir.
HTTPS(url çubuğundaki yeşil kilit) sayesinde communicationımız tahrip edilmediğinden emin oluruz.

3. Identification(Tanımlama)
Browser, mesajın bir bilgisayardan geldiğini kontrol edebilir.
Mesaja dijital bir imza attach edilmesi göndereni identify edebilir.
Digital imzayı herkes kopyalayabilir.
İnternette gezinirken identification, ziyaret etmekte olduğunuz sitenin gerçekten senin düşündüğün girmek istediğin site olduğu anlamına gelir.
HTTPS, SSL certificate üzerinden kesinlikle gerçekten beklediğin receiver ile connect olmanı sağlar.
Yani SSL sertifikaları der ki ; bu site valid ve bu sertifika yasal bir sertifika yetkilisi tarafından verilmiştir. Buraya gönül rahatlığıyla girebilirsin.
Peki HTTPS Privacy, Integrity ve Identification’ı nasıl sağlar? Tabiki de encryption ile. Şimdi ise encryption algoritmalarını inceleyelim.

The Keys
HTTPS ; privacy, integrity ve identification’ı encryption ile sağlar.
2 tür encryption algoritması hakkında konuşacağız.
Symmetric key ve Asymmetric key algorithm.

SYMMETRIC KEYS
Bu algoritma da şifreyi encrypte ve decrypte edebilmek için yalnızca bir tane key vardır.
Browser’a mesajı göndermeden önce bir tane key ile mesajı encrypte ederiz.
Encryption sürecini mesajı bir kutuya koymak ve kutuyu bir key ile kilitlemek olarak düşünebiliriz.
Yalnızca bu anahtarın bir kopyası olan bir kişi bu kutuyu açıp mesajı okuyabilir.
Böylece doğru key olmayan kişilerin kutuyu açamayacağı garanti edilir.
Browser kutuyu aldığında key ile kutuyu açar ve mesajı okur. Burada önemli olan nokta key gizli tutulmalıdır. Key plain text olarak paylaşılmamalıdır veya kutunun içinde gönderilmemelidir.
Kutu örneği anlamak için güzeldir. Ancak işin özü bu kadar basit değildir.
Gerçekte olan ; key olmadan mesaja bakan kişi saçma bir metin görür.

Kod

(HE770 — D/_/^^ÿ)
Bu encryption algorithm ile oluşturulmuştur.
Encryption algorithm bilinse bile key olmadan mesaj hala saçma görünür. Bu yüzden key’imiz ele geçirilmediği sürece güvendeyiz.
Symmetric key’ler ile ilgili olarak güvenlik konusunda önemli olan nokta key’leri distributed ederken gerçekten çok dikkatli olmalıyız.

ASYMMECTRIC KEYS
Symmetric keys ile arasında ana farkı bunda 2 tane key bulunmasıdır.
Bir key public’tir diğeri ise private. Bu key’ler pair’dir(eşleştirilmişlerdir) ve birlikte çalışırlar.
Computer public key’i browser’a gönderir. Browser’da mesajı bir kutuya yerleştirir ve computer’ın public key’i ile kilitleyip geri gönderir.
Computer’a gelen mesajı(yani public key ile şifrelenmiş olan mesajı) yalnızca private key ile açabiliriz.
Bu public key ve private key birbirleriyle eşleştirilmiş olan key’lerdir. Yani birbirlerinin pairidir.
Eğer bir işlem yapmak istiyorsak 2 sine de ihtiyacımız vardır.(Mesajı görüntüleyebilmek istiyorsak)
Public keyi başka bir mesajı göndermek için de rahatlıkla kullanırız. Ancak private key’e sahip olmayan kimse mesajı açamaz.
Bu hem bize privacy hemde identification sağlar. Çünkü sadece 2 key’e sahip olan biri mesajı açabilir.
2 key’e de sahip ise kişi identification’ı da sağlamış oluruz.
Şimdi ise SSL handshake’den bahsetmek istiyorum. SSL, alttında TCP protokolünü kullanır. Doğal olarak SSL iletişiminden bahsedebilmek için TCP handshake ile TCP bağlantısının kurulması gerekir.
Bu TCP paket mekanizmasının ilk 3 paketi handshake mekanizmasıına aittir.

HANDSHAKE
Eğer bir site ssl sertificasına sahip ise yukarıda yeşil bir kilit bulunur.
Peki bu işlemler nasıl gerçekleşir? Arkada neler döner?
Browser, site’nin bulunduğu server ile iletişime geçer ve her 2 side mesajlarını iletmek için güvenli bir bağlantı kurar.
Ancak 2 sininde güvenli iletişimi kurabilmeleri için anlaşmaları gerekir. Eğer iletişimleri başarılı olmazsa tarayıcı uyarı verir.
Yani tarayıcı ile server arasındaki bu iletişime handshake olarak adlandırırız.
Bunu inceleyelim ;
1. Adım : Client, SSL iletişim kurma istediğini Client hello mesajını göndererek belirtir..
Bu mesajın içinde browser birlikte çalışabileceği SSL/TLS sürümlerini ve şifreleme algorithma’larının bir listesini gönderir. Daha sonra computer’ dan(server’dan) bir cevap gelinceye kadar browser bekler.
2.Adım : Server Hello der. Tercihe bağlı olarak listeden en iyi SSL/TLS sürümünü ve şifreleme algoritmasını seçer.
Server Public key’i ve sahip olduğu sertificayı mesajın içine koyarak yanıt verir. Böylece server’ın kim olduğunu browser doğrulayabilir.(sertifika sayesinde). Bu aşamada server public key’ ini browser’a yollamış olur.
3.Adım : Client Key exchange.
Browser, computer’ın sertifikasını kontrol eder. Daha sonra browser, symmetric key(anahtar) üretiminde kullanılacak pre-master key’i oluşturur, böylece unique bir key oluşturulduğunda kullanabilirler.
pre-master key, henüz gerçek mesajlaşma için kullanılacak olan key değildir. Birazdan anlayacaksınız. Daha sonra pre-master key’i , server’in public key ile ile encrypte edip client’a gönderir.
Serverin, public sertifikayla şifrelenen mesajı bu public sertifikanın pairi olan private sertifika ile çözebilirler. Yani bu iletişim kötü niyetli biri tarafından dinlenilse bile private sertifikaya sahip olmadığı için bişey yapamaz. Bu key’de sadece server’da var. Server, bu private key’i browser’la da paylaşmadı yani kimse bilemez şu anda private keyi.
4.Adım : Server, kendi public keyinin karşılığı olan private key’ini kullanarak mesajı çözer. Ve eline premaster keyi alır.
5.Adım : Hem server hem client pre-master key’i kullanarak random session keys generate ederler. Bu işleminde sonunda 2 side aynı sonucu elde etmiş olurlar.
6. Adım : Client, session key ile encrypte edilmiş bir finished mesajı yollar.
Aynı şekilde server’da session key ile encrypte edilmiş bir finished mesajı yollar.
Eğer 2'si bu finished mesajını alıp içeriğini doğru key ile açabilirse işlem tamamlanmılş olur. Artık handshake tamamlandı, bundan sonraki iletişim de güvenli olan session keys kullanılarak devam ettirilir.
Akılda iyice oturması için çok kısa özet geçmek istedim.
Server, mesajlaşma için başlangıçta public key ve bunun pairi olan private key üretir(Asymmetric keys).

Client’in , handshake isteği geldikten sonra bu public keyi verdi. Bu keyi biri araya girip aldığını varsayalım. Ancak bu public key hiç bir işe yaramaz. Bu public key’i server bir daha hiç kullanmayacak. Yani mesaj gönderirken bir daha bu key kullanılmayacak. Zaten bu public key birinin eline geçse Asymmetric keys ile şifrelendiği için bunun pairi olan private key elinde olmadan hiç bir şey yapamaz.

Daha sonra public keyi eline alan browser mesajlaşma için kullanılacak olan ana keyi üretmek için bir pre-master key oluşturur. Ve bu pre-master keyi public key ile şifreler. Bu noktadan sonra public key bir daha hiç kullanılmayacak. Üretilen pre-master keyi, public key ile şifreledikten sonra server’a yollar.

Burada önemli olan key, pre-master key’dir. Bunun kimsenin eline geçmemesi gerekir. Varsayalım ki biri araya girdi ve bu mesajı da dinledi. Kötü niyetli kişinin elinde public key ile şifrelenmiş pre-master key var. Hatta bu kötü niyetli kişi bir önceki mesajdaki public key’i de ele geçirmişti. Elinde hem mesaj var hem public key var. Ancak public keyimizin pairi olan private key hiç bir şekilde paylaşılmadığı için kötü niyetli kişi bu mesaj açamayacaktır.
Daha sonra pre-master key mesajını alan server private keyi kullanarak mesajı açar. Ve eline pre-master keyi alır. Bu pre-master keyi kullanarakta master keyimizi generate eder.
Sonuç olarak hem client de hem server’da aynı key’i elde etmiş olur ve bu mesajın kimsenin elinde olmayacağının garantisi verilmiş olur. Daha sonraki mesajlarda bu key ile şifrelenip bu key ile çözülerek communication güvenli bir şekilde sürdürülür.
________________

https://i.hizliresim.com/ti30cio.gif
Seslendirdiğim şiirlere, profilimden açtığım konulara tıklayarak ulaşabilirsiniz.
 
Alt 12 Mayıs 2020, 16:27   #2
Banlı Üye
Allecra - ait Kullanıcı Resmi (Avatar)

Standart

Paylaşım için teşekkürler

 
Alt 12 Mayıs 2020, 16:43   #3
Sound Engineering | Radio Presenter
UmutAldi - ait Kullanıcı Resmi (Avatar)

Standart

Rica ederim ! :)

________________

https://i.hizliresim.com/ti30cio.gif
Seslendirdiğim şiirlere, profilimden açtığım konulara tıklayarak ulaşabilirsiniz.
 
Alt 12 Mayıs 2020, 18:45   #4
MaviRuhluAdam
CaNeRR - ait Kullanıcı Resmi (Avatar)

Standart

Emeğine Sağlik Kardeş. . .

 
Alt 24 Ağustos 2020, 23:40   #5
She
✰ ÖzeL..
She - ait Kullanıcı Resmi (Avatar)

Standart

Emeğinize sağlık

________________

~ E & B ~
 
Alt 24 Ağustos 2020, 23:46   #6
Cumhuriyet Kadını
Reyhan - ait Kullanıcı Resmi (Avatar)

Standart

Emeğinize sağlık

________________

bazen insanlar iyilesmek istemez.
cünkü ,
icindeki acı sevdiklerinin son hatirasidir..


per aspera ad astra ✨
 
Alt 14 Ekim 2020, 03:48   #7
Mutena
Ruyanur - ait Kullanıcı Resmi (Avatar)

Standart

Emeğinize sağlık

 
Alt 24 Mayıs 2021, 23:03   #8
Yanlış Bildiğin Yolda; Herkesle yürüyeceğine Doğru Bildiğin Yolda; Tek başına yürü..
Artist - ait Kullanıcı Resmi (Avatar)

Standart

Güzel paylaşımlarınız ve herkesi konu ile alakalı bilgilendirdiğiniz için teşekkür ederiz.

________________

HTTPS Nasıl Çalışır? HTTPS’e Neden Ihtiyaç Duyarız?
 
Alt 24 Mayıs 2021, 23:08   #9
Standart

emeginize saglik @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

________________

No MoRe DramA
 


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı





Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 18:47.