SSL Handshake Nedir?

Ömer Burak Demirpolat
3 min readApr 18, 2020

Merhaba, bu yazımda bilseniz hayatınızda çok şey değişmeyecek bir şey daha anlatacağım.

Bildiğimiz üzere bazı web sayfaları bağlantılarını SSL sertifikasıyla gerçekleştirir, bu bağlantı genelde 443 portundan sağlanır, bazıları da 80 portundan sağlanıyor. Tarayıcılarımız bu web sitelerini güvenli, güvensiz diye ayırıyor falan falan.

Yazının devamında https://google.com adresine girildiğinde tarayıcı ve web sunucusu neler konuşuyor arkada neler oluyor bunu Wireshark aracı üzerinden inceleyeceğim.

Tarayıcımı açtım ve https://google.com adresine bağlandım. Bakalım tarayıcım ile web sunucusu arasında neler geçmiş.

Görüntüde ilk 3 satır TCP Handshake kısmı, bu konuyu ayrıca araştırabilirsiniz.

Bizi ilgilendiren kısım 4. satırda başlıyor. 4. satırda tarayıcımız yani istemci, sunucuya bir “Client Hello” mesajı göndermiş.

1. İstemciden Sunucuya “Client Hello”

Bu mesajda istemci bir random string, SSL versiyonu, cipher suite (şifrelemede kullanılabilecek algoritmalar) ve görüntüde görüldüğü üzere protokolün içerdiği bir çok bilgi yer almaktadır.

Benim bu mesajda ilgimi çeken nokta Server Name Indication kısmı, istemci burada hangi domain için istekte bulunduğunu belirtiyor ve web sunucusu bu bilgiyi alıp hangi SSL sertifikasını sunacağına karar veriyor.

2. Sunucudan İstemciye “Server Hello”

Bu mesajda ise server bir random string oluşturuyor, seçebildiği en yüksek SSL versiyonunu ve cipher suite seçini istemciye bildiriyor. Aşağıdaki görselde Version ve Cipher Suite seçimleri görülmektedir.

3. Sunucudan İstemciye Key Exchange

Bu bölümde sunucumuz istemci tarafına sertifikayı gönderiyor. İstemci sertifikanın geçerlilik tarihini ve sertifikayı sağlayan kuruluşu kontrol ediyor. Clientimiz bu kontrolü bilgisayarımızda önceden yüklenmiş olan Kök Sertifika Sağlayıcılarına bakarak yapıyor.

Bu doğrulama işlemi ile ilgili detaylı bilgiye buradan ulaşabilirsiniz.

Bu aşamada istemcimizin edindiği önemli bir bilgi daha var. Public Key.

Public Key görüldüğü üzere 047716.. şeklinde devam ediyor.

Peki bu public key ne işe yarayacak? Bir sonraki işlemde göreceğiz.

4. İstemciden Sunucuya Key Exchange

İsmtecimiz sunucudan aldığı public key ile şifrelenmiş yeni bir oturum anahtarı oluşturacak ve bu ortak oturum anahtarını sunucuya gönderecek. Artık bu oturumun iletişimi bu yeni oluşturulan oturum anahtar üzerinden gerçekleşecek.

Elimizde sunucudan alınan bir public key vardı, şimdi ise sunucudan alınan public key ile şifrelenmiş yeni bir public key var.

Aşağıdaki görselde de görüleceği üzere daha önceki public 047716… şeklinde devam ediyordu . Yeni oluşturulan public key ise 0469f… şeklinde oluşturulmuş.

6. Change Cipher Spec

Aslında bu bilgi her iki tarafa da key exchange esnasında gönderiliyor. Bu bilgiler doğrultusunda bir sonraki iletişimin hangi SSL versiyonu ile gerçekleşeceği bildiriliyor.

7. Encrypted Handshake

İstemci ve sunucu aralarında Encrypted Handshake Message ile birlikte ilk şifrelenmiş veri aktarımını yapar ve artık güvenli oturum başlatılmış olur.

Kaynaklar

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response