Yeşil asma kilidin gizemi çözüldü: SSL anlaşması nasıl çalışır?

Yayınlanan: 2022-08-16

Her gün Web'de güvenlik göz önünde bulundurularak gezinirken, tarayıcınızdaki web sitesi URL adresinin yanındaki ünlü yeşil asma kilidi ve veri aktarım protokolünün HTTPS sürümünü düşünürsünüz. Bu makalede, HTTPS'nin neden gerçekten güvenli olduğunu ve iletişimin üçüncü bir tarafça gizlice dinlenmekten nasıl korunduğunu keşfedeceğiz.

İlk olarak, iki temel şifreleme kavramını kısaca tanıtacağız: dijital imza ve şifreleme, istemci ve sunucu iletişim alışverişinde bulunmadan önce gerçekleştirilen ve güvenli bir şifreleme bağlamı oluşturmak için kullanılan SSL anlaşması adı verilen bir işleme dalacağız. İstemci sertifikası kimlik doğrulaması adı verilen isteğe bağlı bir adımla güvenliğin nasıl daha da artırılacağına ilişkin bilgilerle bitireceğiz.

Açık anahtar şifrelemesi 101: Anahtar Çifti

Özel mesajlarını güvenli bir şekilde değiş tokuş etmek için kriptografik yöntemler kullanmaya karar veren iki kişi olan Alice ve Bob ile tanışın. Karşılaşmaları gereken ilk seçenek, iki farklı şifreleme türü arasındadır: simetrik ve asimetrik anahtar şifrelemesi (ortak anahtar şifrelemesi olarak da adlandırılır).

Ama bekleyin, bu anahtarlar nedir? Temel olarak, bir anahtarın rastgele bir karakter dizisi olduğunu basitleştirebiliriz. Bu diziyi bir mesaj üzerinde dönüştürmek (belirli bir kriptografik işlem yapmak) için kullanabiliriz – bunu yakında inceleyeceğiz.

Simetrik anahtar şifreleme

Simetrik anahtar kripto kullanırken, gönderen bir anahtar oluşturur ve ardından alıcı için kopyalar . Gönderici orijinal anahtarı kaydeder ve alıcıya bir kopyası gönderilir. Aynı anahtar, iletişimin her iki ucunda da kripto işlemleri için kullanılır.

Simetrik anahtar kriptografisinin temel faydaları ve dezavantajları nelerdir?

Artıları Eksileri
daha hızlı kripto işlemleri – yalnızca bir anahtar kullanılır hassas anahtar, göndericiden alıcıya aktarım sırasında ele geçirilme tehlikesiyle karşı karşıya
daha basit kurulum, anlaşılması daha kolay anahtar ele geçirildiğinde, iletişim de her iki uçta da tehlikeye girer
Simetrik anahtar şifrelemesinin artıları ve eksileri

Asimetrik anahtar şifreleme

Asimetrik anahtar şifrelemesi kullanıldığında, hem gönderici hem de alıcı bir anahtar çifti oluşturur - bir genel anahtar ve bir özel anahtar. Anahtarlar, çeşitli kripto işlemlerinde birlikte çalışmak için matematiksel olarak birbirine bağlanmıştır. Hem gönderici hem de alıcı özel anahtarlarını güvenli bir şekilde saklar, ancak özel bir önlem olmaksızın ortak anahtarları değiştirebilirler. Hatta bir tür "ortak anahtar sarı sayfaları" - ortak anahtarlarını herkesin erişebileceği şekilde göndermek için bir ortak anahtar sunucusu - bile kullanabilirler.

Asimetrik anahtar kriptografisinin artıları ve eksileri nelerdir?

Artıları Eksileri
hassas özel anahtar, gönderenin ortamından asla ayrılmaz daha düşük kripto işlemleri performansı
iletişimin bir ucunda özel bir anahtarın güvenliği ihlal edildiğinde, diğeri hala güvendedir özel anahtar kaybolduğunda oyun biter
daha fazla şifreleme işlemi mevcut
Asimetrik anahtar şifrelemesinin artıları ve eksileri

Asimetrik kripto kurulumu daha güvenli olduğu için Alice ve Bob onunla gitmeye karar verdi! Artık bundan yararlanabilir ve iletişimin güvenliğini ve bütünlüğünü sağlamayı düşünmeye başlayabilirler.

Açık anahtar şifrelemesi 101: Şifreleme

Alice, Bob'a bir mesaj gönderdiğinde, içeriğin ne olduğunu başka kimsenin göremediğinden emin olmak ister. Mesajı şifrelemeye karar verir. Bunu başarmak için Alice, önce Bob'un açık anahtarını ya bir anahtar sunucusundan ya da bir iletişim kanalı aracılığıyla doğrudan Bob'dan almalıdır. Alice anahtarı aldığında, göndermek istediği mesaja Bob'un açık anahtarını kullanarak bir şifreleme işlemi uygulayabilir .

Genel olarak konuşursak, bu süreçte mesaj, bloklar halinde (en yaygın olarak) bir kriptografik algoritma (diğer bir deyişle şifre) tarafından alınır ve mesaj ile anahtar arasında bazı bit işlemleri gerçekleştirilir, şifreli mesaj (aka şifreli metin) olan bir çıktı üretilir. . Bob şifreli mesajı aldığında , özel anahtarıyla mesajın şifresini çözebilecek tek kişidir.

Not:

  • Mesaj şifreleme - gönderen, alıcının ortak anahtarıyla bir mesajı şifreler
  • Mesaj şifre çözme - alıcı bir mesajın şifresini kendi özel anahtarıyla çözer

Açık anahtar şifrelemesi 101: İmza

Mesaj içeriğinin açığa çıkmasını engellemenin yanı sıra, gönderenin kimliğini ve mesajın değiştirilip değiştirilmediğini doğrulamak da aynı derecede önemlidir. Dijital imza (mesaj eklenmiş ayrı bir nesne) tam olarak bu iki nedenden dolayı kullanılır.

Alice, imzasını oluşturmak için bir mesaj karması geliştirmek için önce bir karma algoritması kullanır. Hashing, farklı bir girdi için farklı olan daha kısa, sabit bir değer çıktısı üreten bir mesaj üzerinde tek yönlü bir matematiksel fonksiyon hesaplıyor. Ardından, oluşturulan hash'i şifrelemek (imzalamak) için özel anahtarını kullanır.

Ardından, Bob mesajı ve imzayı aldığında, önce Alice'in açık anahtarını kullanarak imzanın şifresini çözebilir . Bu başarılı olduğunda, imzanın gerçekten Alice tarafından oluşturulduğunu bilir (aksi takdirde, onun genel anahtarıyla şifre çözme başarısız olur).

İkinci olarak, Bob mesajı alabilir ve Alice'in daha önce sahip olduğu aynı algoritmayı kullanarak onu hash edebilir ve mesajın hash değerinin Alice tarafından oluşturulan ile aynı olduğunu onaylayabilir. Karma değerleri eşleştiğinde, mesajın kurcalanmadığını bilir.

Not:

  • İmza oluşturma - gönderen, özel anahtarıyla mesaj karmasını şifreler (imzalar) ve bir imza oluşturur
  • İmzanın doğrulanması – alıcı ilk önce imzadan gelen mesaj karmasının şifresini çözer ve kendisi tarafından hesaplanan bir karmanın imzadan gelenle eşleşip eşleşmediğini kontrol eder.
  • Şifreleme ve imza ayrı ayrı kullanılabilir , ancak en yüksek güvenlik için genellikle birleştirilirler. Bu nedenle, karşılaşabileceğiniz çoğu şifreleme işlevi encryptSignMessage() , decryptVerifyMessage() vb. olarak adlandırılır.

Umarım Alice ve Bob hikayesine ayak uydurmakta zorluk çekmiyorsunuzdur. Her şeyin net olduğundan emin olmak ve her şeyi özetlemek için tüm akışı bir kez daha göstereyim.

Şifreli iletişim akışı
  1. Alice, Bob'a bir mesaj göndermek istiyor.
  2. Alice özel anahtarını alır ve bir imza oluşturur
  3. Alice, Bob'un açık anahtarını alır ve mesajı şifreler.
  4. Alice mesajı Bob'a gönderir
  5. Bob, Alice'in genel anahtarını alır ve imzayı doğrular
  6. Bob, mesajın şifresini çözmek için özel anahtarını kullanır

Pekala, bu kadar teori yeter. Şimdi tüm bunların HTTPS'de nasıl kullanıldığını görelim!

SSL El Sıkışma

merhaba de lütfen

Bir istemci bir sunucuya bağlantı başlattığında, iletişimin geri kalanı için kriptografik bağlam oluşturmak için öncelikle uygun bir giriş yapmak çok önemlidir. Bu, üstbilgileri ve istek gövdelerini ayrıştırmadan çok önce HTTPS BAĞLANTISI adımında yapılabilir. Her şey müşterinin bir müşteri merhaba mesajı göndermesiyle başlar.

En önemlisi, mesaj, müşterinin anladığı kripto algoritmalarını ve desteklenen sıkıştırma algoritmaları, protokol sürümleri, oturum kimliği vb. gibi bazı ek materyalleri içerir. Sunucu kibar olmayı sevdiğinden, en önemlisi bir sunucu merhaba mesajıyla yanıt verir. sunucu sertifikasını sunucu ortak anahtarıyla birlikte içerir (evet, süreç ortak anahtar şifrelemesine dayanır – Alice ve Bob'un seçtiği yöntemle aynı).

Sertifika yetkilisi

Şimdi sahnedeki bir sonraki konuğumuzu karşılama zamanı: bir sertifika yetkilisi (CA). İsim kulağa ciddi geliyor – ama bu sadece dünya çapında temelde güvenilir olarak kabul edilen çok fazla sokak kredisine sahip üçüncü taraf bir kuruluş. Böyle bir varlık, bir sunucunun kimliğini doğrulayabilir ve dijital imzasını sunucu sertifikasıyla birlikte yerleştirebilir (Alice'e Bob'a mesaj gönderirken yaptığına benzer şekilde).

Sertifika doğrulama

Şimdi nihayet tarayıcınızın URL adresinin yanındaki yeşil asma kilit başlığını ele alalım.

Her web istemcisi, iyi bilinen ve güvenilen sertifika yetkililerinin ortak anahtarlarının toplu bir listesine sahiptir. Hatırlarsınız, yazının başında imzanın gönderenin özel anahtarı kullanılarak oluşturulduğundan ve gönderenin açık anahtarıyla doğrulanabileceğinden bahsetmiştim. İşte müşterinin yaptığı tam olarak bu . Paketlenmiş güvenilir CA'lar listesinden geçer ve sunucu sertifikası imzasının güvenilir CA'lardan birine ait olup olmadığını kontrol eder. Kabul ederse, sertifikayı kabul eder – ve o an asma kilit yeşile döner .

Ancak bu, henüz güvenlikle ilgisi olmayan bir ilk adımdır. Herkes herhangi bir ortak anahtar sertifikasını kopyalayabilir, bir sunucuya koyabilir ve onu bağlanan bir istemciye sunabilir, değil mi?

İstemci sunucu sertifikasını doğruladıktan sonra iletişimi şifrelemek için simetrik bir anahtar oluşturur. Ancak, başta da belirttiğim gibi, simetrik anahtarlarla ilgili sorun, taşıma sırasında ele geçirilmeye karşı savunmasız olmalarıdır. Bu adımda, istemci ve sunucu ortak bir şifreleme bağlamına sahip değildir. Böylece istemci simetrik anahtarı sunucuya gönderir, ancak önce sunucunun açık anahtarıyla şifreler. Ardından sunucu onu alır ve güvenli bir bağlantı kurmak için şifresini çözme yeteneğine ihtiyaç duyar.

Bu nedenle, birisi çalıntı bir ortak anahtar sertifikası sunsa bile, başarısız olacakları adım budur. Simetrik anahtarın şifresini çözmek için sunucu sertifikası ortak anahtarına bağlı geçerli bir özel anahtar gereklidir. Tabii ki, özel anahtarı güvenli bir şekilde kaydettiği için bu meşru bir sunucu için bir sorun değildir. Simetrik anahtarın şifresini çözmek ve daha fazla iletişimi şifrelemek için kullanılabilir.

Özetlemek gerekirse, bir SSL anlaşması, hem simetrik hem de asimetrik şifreleme türlerinin kullanıldığı bir işlemdir . İlk başta, asimetrik anahtar çifti bağlantıyı başlatır ve simetrik anahtarın seyahat etmesi için güvenli bir yol sağlar. Başta da belirttiğimiz gibi, simetrik kriptografi işlemleri daha hızlıdır, bu nedenle kurulumdan sonra tüm iletişim için kullanmak faydalıdır. Ayrıca, güvenli bir bağlantı kurulduğunda, süresi dolana kadar yeniden kullanılır, bu nedenle her istemci isteğinden önce asimetrik anahtar kurulumu yapılmaz.

Ayrıca gerçek hayatta, sertifikaların en ünlü güvenilir CA'lar ( root olarak adlandırılır) tarafından doğrudan imzalanmadığını da belirtmekte fayda var. Yine de, kök CA'lar ara sertifikaları imzalar ve sonunda sunucu sertifikasını imzalar - böylece, bağlanan istemcinin geçerli bir imza karşılanana kadar kontrol ettiği bir sertifika zinciri oluşturur. Kesinlikle daha iyi güvenlik sağlar - ara CA'lardan birinin güvenliği ihlal edildiğinde, daha az insanı etkiler.

İstemci sertifikası doğrulaması

Şimdi, onu anlamak için gereken tüm bilgilere sahip olduğumuz için kısaca bahsedebileceğimiz isteğe bağlı bir adım var. Bir sunucu, ek güvenlik sağlamak için güvenli bir bağlantı kurduktan sonra bir istemci sertifikası istemek ve doğrulamak üzere yapılandırılabilir.

Bu aynı şekilde çalışır - ancak bu sefer istemci sertifikasını gönderir ve sunucu güvenilir sertifika yetkilileri listesini gözden geçirir ve doğrular. Ayrıca, sunucunun geliştiricilerin kontrolü altında olduğunu (bir istemcinin, yani bir web tarayıcısının veya bir mobil işletim sisteminin tersi) olduğunu da belirtmekte fayda var, böylece arka uç geliştiriciler, güvenilir sertifikalar listesini kolayca değiştirebilir.

Kurumsal ağlar genellikle bu mekanizmayı kullanır. Çoğu zaman, istemci sertifikaları, çalışan cihazında kurulu bir cihaz yönetim sistemi tarafından oluşturulur ve şirket tarafından oluşturulan bir kök sertifika ile imzalanır. Aynı sertifika arka uç ortamına da eklenir. Bu şekilde, kurumsal arka uç, istemci bağlandığında sertifikayı kolayca doğrulayabilir.

Arka uç çözümlerimize göz atalım

Devamını oku

Şimdi, özetlemek gerekirse, tüm akış için bir diyagram görelim:

İstemci ve sunucu doğrulama akışı

Özet

Yazının sonuna geldiniz! Umarım, HTTPS'deki şifreleme kurulumunun uygulama mekanizmasını ve imzalama ve şifreleme işlemlerinin uygulama yöntemlerini zaten anlamışsınızdır.

İşlerin nasıl yürüdüğünü bildiğinize göre, veri şifreleme konusunda kesinlikle daha emin olmalısınız. Yine de, tarayıcınızdaki yeşil bir asma kilidin henüz güvenliği garanti etmediğini unutmamak gerekir. Güvenlik açısından hassas bağlamda, sertifikayı da yakından incelemelisiniz. Dedikleri gibi, önceden uyarılmış, önceden hazırlanmış!