SSH Gerçekte Ne Yapar
Splync, akıllı telefonunuz ile sunucumuz arasındaki iletişimi korumak için HTTPS kullanır ama kullanıcı verilerinin güvenliğini sağlamak için sunucunun kendisini de korumamız gerekir. Uygulama geliştiriciler ve sistem yöneticileri, güncellemeleri güvenli bir şekilde yönetmek ve dağıtmak için sunucuya erişim sağlamalıdır. İşte burada SSH (Güvenli Kabuğu) devreye giriyor. Yetkili kullanıcıların, güvenilmeyen ağlarda bile uzaktaki bilgisayarlara güvenli bir şekilde giriş yapmasına olanak tanıyan bir protokoldür. SSH, kullanıcı adları ve şifreleri düz metin olarak gönderen Telnet gibi eski ve güvensiz yöntemlerin yerini alır.
Anahtarların Arkasındaki Fikir
SSH, geleneksel bir şifreye dayanmaz. Bunun yerine, bir açık anahtar ve bir özel anahtardan oluşan kriptografik anahtarlar kullanır. Bunları birbirine tam uyan kilit ve anahtar olarak düşünebilirsiniz. Açık anahtar sunucuda yer alır, özel anahtar ise kullanıcıda kalır. Bağlandığınızda, sunucu size özel anahtarı elinizde tuttuğunuzu kanıtlamanız için bir meydan okuma sunar ancak bunu hiçbir zaman açığa çıkarmaz. Bu, dinleyen birinin sizi taklit etmesini neredeyse imkansız hale getirir. Geleneksel şifreler tahmin edilebilir, sızdırılabilir veya yeniden kullanılabilirken, SSH anahtarları uzun, rastgele kriptografik diziler olup tahmin edilemez. Biri bağlantıyı dinlese bile göreceği tek şey şifreli bir gürültü olacaktır. Ve SSH anahtarları ağ üzerinden asla gönderilmediği için, taşınırken çalınacak bir şey yoktur.
Bir SSH Anahtarı Nasıl Görünür
SSH anahtarını daha önce hiç görmediyseniz soyut gelebilir ama aslında şifrelenmiş uzun bir metin bloğudur. Açık anahtar genellikle birkaç yüz karakter uzunluğundayken, özel anahtar binden fazla karaktere ulaşabilir. Her ikisi de metin dosyası olarak saklanır, ancak içerikleri harfler, sayılar ve sembollerin karışımı olan rasgele bir gürültü gibi görünür. Açık anahtarı paylaşmak güvenlidir; sunucuya kilidinizi takmak gibidir. Özel anahtar ise sizin benzersiz dijital kimliğinizdir ve asla paylaşılmamalıdır. Bilgisayarınızda yerel olarak saklanır ve yalnızca kimliğinizi kanıtlamak için kullanılır, hiçbir zaman anahtarın kendisini açığa çıkarmaz.
Açık Anahtar ve Özel Anahtar
Açık anahtar, evinize taktığınız bir kilit gibidir. Herkes sokaktan görebilir, tıpkı ön kapınızdaki kilit gibi. Ancak kilide bakmak kimseye nasıl açılacağını söylemez. Yani, herkes görebilir ama sadece doğru anahtar açabilir. Diğer yandan özel anahtar, kilidi açan anahtardır ve güvenli bir şekilde sizde kalır. Biri özel anahtarınızı ele geçirirse, evinize sanki sizmişsiniz gibi girebilir. Bu yüzden her zaman gizli tutulmalıdır.
SSH Mekanizması
Her açık anahtar ve özel anahtar, benzersiz bir bire bir çift oluşturur. Matematiksel bir süreç ile birlikte üretilirler, böylece yalnızca o özel anahtar, karşılık gelen açık anahtarla eşleşebilir. Bunları birlikte dövülmüş özel yapım bir kilit ve anahtar gibi düşünebilirsiniz ve dünyadaki başka hiçbir anahtar o kilide uymaz. Aynı algoritmayı (RSA veya Ed25519 gibi) kullanarak başka bir çift oluştursanız bile içindeki sayılar tamamen farklı olacaktır. İkisini bağlayan matematik tek yönlüdür: özel anahtardan açık anahtarı kolayca türetebilirsiniz ama süreci tersine çevirip açık anahtardan özel anahtarı bulmak neredeyse imkansızdır. Bu yüzden her SSH anahtar çifti benzersiz ve güvenlidir.
SSH Sizin Kim Olduğunuzu Nasıl Kanıtlar
SSH ile bir sunucuya giriş yaptığınızda, özel anahtarınız bilgisayarınızı asla terk etmez. Bunun yerine, sunucu, yalnızca özel anahtarınızın çözebileceği rastgele bir meydan okuma gönderir. Bilgisayarınız bu meydan okumayı matematiksel olarak imzalar ve sunucunun açık anahtarınızı kullanarak kontrol edebileceği kısa bir cevap üretir. Cevap uygunsa, sunucu doğru özel anahtara sahip olduğunuzu bilir, bunu hiç görmeden. Bu, modern kriptografinin sihridir: kimliğinizi sırrınızı açığa çıkarmadan kanıtlayabilirsiniz. SSH kimlik doğrulaması çalışır çünkü özel anahtarınız, açık anahtarı türetmek için gereken tüm bilgileri içerir, ancak tersini yapmak neredeyse imkansızdır.
Geliştiriciler SSH'i Pratikte Nasıl Kullanıyor
Geliştiriciler her kod dağıttıklarında, veritabanını güncellediklerinde veya bir hizmeti yeniden başlattıklarında, sıklıkla SSH üzerinden uzak sunucularına bağlanırlar. Kimlik doğrulamadan sonra, sunucuya güvenli bir komut satırı bağlantısı elde ederler. Oradan dosyaları yönetebilir, hizmetleri yeniden başlatabilir veya logları inceleyebilirler — hepsi uçtan uca şifrelenmiştir. Splync için durum böyle; SSH, bulut sunucumuzun güvenli bir şekilde yönetildiği yoldur. Her yönetim işlemi — güncellemeleri yüklemek, logları kontrol etmek, verileri yedeklemek — kriptografik anahtarlarla korunan SSH bağlantıları üzerinden yapılır. Doğru özel anahtara sahip olmadan kimse sunucuya erişemez. Biri IP adresimizi bilse bile, o anahtar olmadan kapı açılmaz.
Gelecek: Sunucudaki Şifreleme
SSH sunucuya giriş koruması sağlar, HTTPS ise veriyi aktarımda korur. Ancak veri bir kez veritabanına indiğinde, onu nasıl güvende tutarız? İşte burada, hashing ve şifreleme devreye girer — son savunma katmanı.