I L K B Y T E

Ssh key kullanmanın ne gibi bir avantajı var?

2
Gürkan Ş.
31.08.2018 11:09

Sunucu oluştururken ssh key kullanılması gerekiyor. Tam ne olarak nasıl bir güvenlik avantajı sağlıyor ssh key kullanmak?

3 Yorum

8
Erhan Y.
31.08.2018 18:49

SSH Key ve parola kullanımı uzaktaki sunuculara güvenli erişim için kullanılan iki yöntemdir. İkisinin de artıları ve eksileri var ancak SSH Key’in eksileri, parola kullanımının eksileri kadar güvenlik zaafiyeti doğurmadığı için SSH Key metodu daha güvenli olarak değerlendirilmektedir. Bunun sebeplerine gelirsek;

  1. Öncelikle parola kullanımında ne kadar güçlü bir parola kullanırsak kullanalım, SSH Key’in uzunluğuna ve karmaşıklığına yaklaşması mümkün değildir. Kaldı ki çoğu zaman kullanıcılar standart bir düzeni içeren parola kullanırlar.

Örnek parola: TrabZon07-
Örnek SSH Key: MIIEpAIBAAKCAQEA1KX5d0pof07jo55sIXVLMb+JjEs+ThkjMeA8E6vQTaQh/VsQ
NB0kr20B4/QohI8G59EQ00TLCvm0TcEaxsoMhl4XNF3bVxf7+wwDhaXDy3XzBvKJ
GUoxuW3DwH5B4OQDVtJq6T7OK9vRwAnxnPntblgrIp6nIiAEgoKvK08mT/FofwKE…
(sadece 3 satırını yazdım. Bunun devamında 22 satır daha var)

  1. Kullanmakta olduğumuz parolayı unutmamak için elimizin altında bulundurduğumuz gibi ayrıca güvenli giriş yaparken kullanılmak (karşılaştırılmak) üzere aynı parolayı uzak sunucuda da (çoğu zaman veritabanında) bulundururuz. Tabi böyle bir durumda parolanın güvenliği, sunucu güvenliğine dayanır ve sunucuya herhangi bir sızıntı olduğu anda parolamız (kriptolu bile olsa) ele geçirilmiş demektir. SSH Key ise sadece lokalde yani kendi bilgisayarımızda tutulur, uzak sunucuda bulunmaz. Böylece çalınma ihtimali bir anda %50 azalır.

  2. Bununla birlikte bağlanacağımız uzak sunucu kötü niyetli kişilerin eline geçtiğinde parola ile girişte gizli bilgimizi karşı tarafa göndermiş oluruz. Ancak SSH Key kullanımında özel (private) anahtarımız lokalde tutulur ve karşı tarafa gönderilmez. Bu açıdan da sahte sunucu oluşturulması durumunda bile anahatarımızı güvende tutmuş oluruz.

  3. Diğer taraftan (teoride) parolanın güvenli olduğu değerlendirilen durumlar da vardır. Mesela SSH Key bilgisayarda belirli bir dosyada muhafaza edilmek zorundadır. Tabi böyle bir durumda çalınan bir laptop güvenlik zaafiyetine neden olabilir. Bu nedenle SSH anahtarları birer passphrase ile korunmalıdır. Bu hassasiyete karşılık olarak bir parolayı yalnızda aklımızda muhafaza edebiliriz, bilgisayarda tutulmasına gerek yoktur. Tabi bu söylediğim teoride doğru gibi görünse de pratikte uygulamak mümkün olmaz. Çünkü bir yandan her servis/site için farklı ve güvenli parola kullanayım, hem de hepsini aklımda tutayım demek gerçek dışı düşünmekten başka bir şey değildir.

Düzenlenmiş Yanıt
4
Berkant İ.
04.09.2018 10:16

SSH anahtarı ile yetkilendirme yapıldığında client’in private key’i karşı sunucuya aktarılmaz. Yani ağ üzerinde kötü amaçlı herhangi bir intercepting saldırısı durumunda (örn. man-in-the-middle), saldırgan private key’inizi okuyamaz. Ancak şifre ile yetkilendirme durumunda, şifrenizi sunucuya ağ vasıtasıyla aktarırsınız. Bu da muhtemel bir saldırıda şifrenizi açık edebilir.

Bu yetkilendirmeler nasıl gerçekleşir ondan bahsedeyim.

Şifre ile yetkilendirme yapıldığında, basit bir biçimde, şifrenizi SSL/TLS üzerinden karşı sunucuya aktarırsınız. Sunucu, girdiğiniz kullanıcı adı ve şifrenin doğruluğuna bakarak bir oturum başlatır.

İkili anahtar çifti (asimetrik şifreleme) ile yetkilendirme yapıldığında önce server ve client arasında geçici bir oturum başlatılır. Ardından server, hali hazırda client’in sunucuda bulunan public key’i ile random bir data şifreler. Buna “nonce” deniliyor. Sonra bu enkripte edilmiş veri client’e iletilir. Bu veriyi ancak public key’in eşi olan private key çözebilir. Eğer çözebilirse, bu veri tekrar server’a iletilir, server verinin doğruluğunu kontrol eder ve kalıcı bir güvenli oturum başlatır. Buna challenge-response türü yetkilendirme deniliyor.

Burada görüldüğü üzere client’in private key’i hiçbir yere aktarılmıyor. Decryption olayı tamamen lokal ortamda gerçekleşiyor.

Düzenlenmiş Yanıt
1
Zübeyr Furkan D.
11.04.2021 11:34

SSH anahtarları, SSH bağlantısında parola kullanmaktan çok daha güvenli bir alternatiftir. Projelerinizde kullanmış olduğunuz sunucular için SSH bağlantısı kurarken şifre yerine SSH Key kullanmanızı şiddetle tavsiye ediyorum.

Cevabınız