Diffie-Hellman Anahtar Değişimi Şifreli İletişimi Nasıl Sağlar?


Etkili bir siber güvenlik politikası, güvenli veri iletimi için modern kriptografiyi içerir. Verileri şifrelemek, iletişim alışverişi sırasında hassas bilgileri korur, böylece yalnızca bu verilerin şifresini çözmeye yetkili olanlar bu bilgilere erişebilir. Şifreleme olmadan, halka açık internet üzerinden iletilen tüm veriler, ele geçirilme ve kötü niyetli yeniden kullanım riski altındadır. Şifreleme, Diffie-Hellman anahtar değişimi gibi kriptografik şifreler de dahil olmak üzere çeşitli araçlar aracılığıyla çalınan verilerin önlenmesine yardımcı olur.

Bu makale, Diffie-Hellman anahtar değişiminin bir genel iletişim kanalı üzerinden şifreleme için nasıl çalıştığına dair kısa bir genel bakış sağlar, Diffie-Hellman asallarını kullanırken olası riske maruz kalmayı tanımlar ve Diffie-Hellman algoritmasını kullanımınızı güvence altına almak için üç çözümü ana hatlarıyla belirtir.

Kriptografik Anahtar Değişimi Nedir?

Kriptografide anahtar değişimi, şifreleme anahtarlarının iki veya daha fazla taraf arasında değiş tokuş edildiği süreci ifade eder. Anahtar, her iki tarafın da göndermek istedikleri mesajları şifrelemesini ve aldıkları mesajların şifresini çözmesini sağlar.

Şifreleme, verileriniz ve potansiyel saldırganlar arasında bir güvenlik katmanı sağlar. Karmaşık şifreleme algoritmaları, verileri, şifreleme anahtarını tahmin edebilen kaba kuvvet saldırılarıyla olası şifre çözmeden korur. Değişken bileşenlere sahip bir dizi şifre paketi mevcuttur. Şifreleme standartları sürekli değişmektedir, ancak asimetrik ve simetrik anahtar şifrelemesi gibi Açık Anahtar Altyapısı için mevcut olan çeşitli araçları kullanmak, güçlü bir siber güvenlik duruşu sürdürmenize yardımcı olabilir.

Asimetrik şifreleme, genel anahtarın verileri şifrelediği ve özel anahtarın şifresini çözdüğü bir anahtar çiftine (bir genel anahtar ve bir özel anahtar) dayanır. Mesaj veya veri düz metin olarak adlandırılır. Bir anahtarla şifrelendikten sonra şifreli metin olarak adlandırılır. Asimetrik anahtar şifrelemesi, HTTPS üzerinden güvenli iletişim sağlayan SSL/TLS protokolleri için temeldir.

Simetrik anahtar şifrelemesi ile, gönderen ve alıcı, mesajların şifresini çözmek için tek bir özdeş anahtar kullanır. Diffie-Hellman anahtar değişimi, açık anahtar kriptografisinde kullanılan en yaygın kullanılan simetrik şifreleme yöntemlerinden biridir.

Diffie-Hellman Anahtar Değişimi

Diffie-Hellman anahtar değişim algoritması, güvenli olmayan bir kanalda veya genel ağda taraflar arasında gizli bir simetrik anahtarı kabul etmek ve hesaplamak için bir yöntemdir. Anahtarlar geçici (tek bir oturum için kullanılır), statik (uzun süreli) veya ikisinin bir kombinasyonu (yarı statik) olabilir. Adını, 1976'da açık anahtar algoritmaları üzerine işbirliklerini yayınlayan Whitfield Diffie ve Martin Hellman'dan almıştır. Hellman, Ralph Merkle'nin katkılarını içerecek şekilde Diffie-Hellman-Merkle anahtar değişimi olarak yeniden adlandırmayı önerdi.

Diffie-Hellman anahtar değişimi tipik olarak bir genel değişkeni ve modulo operatörünü iki özel değişkenle birleştirerek paylaşılan bir simetrik şifre anahtarı elde eder. Diffie-Hellman anahtar değişimi, anahtarları hesaplamak için büyük asal sayılar kullanır. Borsa, halka açık kanallar üzerinden gizli bilgi alışverişi yapılmamasına rağmen, anahtar anlaşma hesaplamasının her iki taraf arasında tutarlı olması için bir başlangıç prime ve bir modulo operatörü üzerinde anlaşma gerektirir.

Diffie-Hellman anahtar değişimi ile, iki taraf, tipik olarak 2000 veya 4000 bitlik büyük bir asal sayı olan bir tamsayı değerine ve bir modüle sahip paylaşılan bir genel değişken (üreteç) üzerinde anlaşır. Her partinin, bir üs işlevi sağlayacak kendi özel değişkeni (bazen özel anahtar olarak da adlandırılır) vardır. Bu değişkenler bazen genel ve özel anahtarlar olarak adlandırılsa da, Diffie-Hellman'ın asimetrik anahtar şifrelemesi olmadığını, daha ziyade üs alma yoluyla paylaşılan bir simetrik anahtarı hesaplamak için bir yöntem olduğunu belirtmek önemlidir.

Her bir taraf, genel değişkeni kendi özel değişkeninin gücüne getirecek, sayısal bir sonuç elde etmek için modulo işlemini çalıştıracak ve ardından sonucu değiş tokuş edecektir. Her bir taraf, gönderenin özel değişkeninin gücüne göre genel değişkeni aldıktan sonra, bu sonucu kendi özel değişkeninin gücüne alır ve her iki taraf için de aynı nihai sonucu hesaplayan modulo işlemini çalıştırır. Bu hesaplamanın sonucu, paylaşılan gizli anahtardır.

Paylaşılan gizli anahtar hem değiş tokuş edilen ortak değişkeni hem de değiş tokuş edilmeyen özel değişkenleri gerektirdiğinden, bir denklemin kökünü almak hesaplama açısından zor olduğundan ve saldırganın her iki tarafın da özel değişkenine doğrudan erişimi olmadığından, saldırganın paylaşılan gizli anahtarı belirlemesi daha zor hale gelir. Modül son derece büyük olduğunda, modulo işleminin kırılması son derece zor hale gelir. Büyük asal sayıların Diffie-Hellman kullanımı, ayrık logaritma hesaplamasını zorlaştırır, bu yüzden Diffie-Hellman genellikle bir şifre paketinin parçası olarak kullanılır.

Ancak, Diffie-Hellman anahtar değişimi taraflar arasında kimlik doğrulama gerektirmediğinden sınırlamalar vardır. Örneğin, Logjam güvenlik açığı (CVE-2015-4000), bir saldırganın güvenli bir bağlantının sürümünü düşürmesine ve 512 bit ve 1024 bit uygulamalarda kullanılan bilinen asal sayılar için logjam ön hesaplaması uygulamasına olanak tanır. Şifre paketlerinizi belirlediğinizde ve şifreleme algoritmasını seçtiğinizde, bileşenler arasındaki tüm sınırlamaları dengelediğinizden emin olun.

Diffie-Hellman Risk Bulguları

Diffie-Hellman algoritması, elde edilmesi nispeten basit ve hesaplanması hesaplama açısından zor olan gizli bir sayıyı belirlemek için bir yöntem sağlar. Diffie-Hellman'ı kullanmanın hala bazı riskleri vardır, özellikle de prime zayıf veya yaygınsa.

Ayrıca, harici varlıklarınız için şifreleme standartlarındaki zayıf halkaları hızlı bir şekilde belirleyebilmenizi sağlamak için gerekli verileri hesaba katan otomatik bir tarama aracı da kullanabilirsiniz. UpGuard BreachSight, Diffie-Hellman anahtar değişimi ile ilgili bilinen güvenlik açıkları da dahil olmak üzere potansiyel tehditler için sürekli izleme ve otomatik tarama sağlar:

  • Anahtar değişiminde kullanılan zayıf Diffie-Hellman prime
  • Anahtar değişiminde kullanılan ortak Diffie-Hellman prime

Küçük anahtar boyutları ve öngörülebilir asal sayılar, saldırganların Diffie-Hellman şifre anahtarını kırmasına izin verebilir. Bazı Diffie-Hellman anahtarları aynı ortak asal sayıları kullanır. Logjam güvenlik açığı gibi önceki güvenlik açıkları, saldırganların bu bilinen asal dosyaları kırmasına izin veriyordu ve bu da yetkisiz aracılar tarafından pasif dinlemeye ve ortadaki adam saldırılarına (ortadaki kişi saldırıları olarak da bilinir) yol açabiliyor. UpGuard ayrıca CVE-2015-4000'e Karşı Savunmasız (Logjam) bulgusuyla Logjam güvenlik açığını da tarar.

Zayıf bir asal sayıyı önlemek için, en az 2048 bit veya daha büyük asal sayılar kullandığınızdan emin olun. Ayrıca, geçici anahtarlar ve eliptik eğri kriptografisi ile Diffie-Hellman protokolünü kullanan Eliptik Eğri Diffie-Hellman Ephemeral (ECDHE) anahtar değişimine de geçebilirsiniz.

İki Diffie-Hellman bulgusuna ek olarak, UpGuard, web sitenizin güçlü siber güvenlik önlemleri almasını sağlamak için zayıf veya güvenli olmayan SSL/TLS ve şifre paketlerini de değerlendirir. UpGuard'ın bu bulguları nasıl değerlendirdiğini anlamak için zayıf SSL hakkındaki makalemizi okuyun.

Mevcut UpGuard kullanıcıları, varlıkları arasında Diffie-Hellman anahtar değişimi bulgularını aramak için oturum açabilir ve Risk Profillerine erişebilir. Mevcut bir UpGuard kullanıcısı değilseniz ve BreachSight ile varlıklarınızın otomatik taramasını yapmak istiyorsanız, bir deneme için kaydolun.

Varlıklarınız arasında bir şifreleme riski belirlediğinizde, kullanıcıların web sitenize erişirken korunmaya devam etmesi için sorunu çözmek için güvenlik önlemleri ayarlayabilirsiniz.

SSL/TLS Şifrelemesi için Diffie-Hellman Anahtar Değişimi Nasıl Uygulanır

Diffie-Hellman anahtar değişimi, genel ağlar üzerinden şifreleme için faydalıdır. Diffie-Hellman kullanımınızın gerekli güvenlik önlemlerini sağladığından emin olmak için, aşağıdaki üç öneriyle Aktarım Katmanı Güvenliği (TLS) için Diffie-Hellman değişimini dağıtabilirsiniz.

Şifre Paketlerini Dışa Aktarmayı Devre Dışı Bırak

Dışarı aktarma şifre paketleri, TLS bağlantılarında sürüm düşürme saldırılarına neden olabilen düşük güçlü şifreleme şifre paketleridir. Dışa aktarma şifre paketleri tasarım gereği zayıftır ve yasal gereksinimler nedeniyle açıkça gerekli olmadıkça kaldırılmalıdır.

Eliptik Eğri Diffie-Hellman Geçici (ECDHE) Dağıtma

Eliptik eğri şifrelemesi, şifreleme anahtarının oluşturulmasına yardımcı olmak için sonlu alanlar üzerinde eliptik eğriler kullanır. Diffie-Hellman anahtar değişimi için geçici, geçici anahtarlar kullanıldığında, her şifreleme değişimi statik anahtarın yeniden kullanımı yerine yeni bir anahtar gerektirecektir. ECDHE şifrelemesi ayrıca ayrık logaritma sorununa eliptik bir eğri ekleyerek, aynı güvenlik seviyesi için bit eşiğini düşürürken sorunun karmaşıklığını artırır. ECDHE ayrıca mükemmel iletim gizliliği seçeneğini de mümkün kılar. Çoğu tarayıcı, sonlu alan Diffie-Hellman yerine Eliptik Eğri Diffie-Hellman (ECDH) anahtar değişimini tercih eder.

Güçlü Bir Diffie-Hellman Grubu Kullanın

Ön hesaplamayı ve olası dinleyicileri önlemek için, en az 2048 bit veya daha büyük güçlü bir Diffie-Hellman grubu kullanın. Google Chrome, Mozilla Firefox ve Microsoft Internet Explorer dahil olmak üzere çoğu modern web tarayıcısı, Diffie-Hellman ortak anahtar şifrelemesi için en az 1024 bitlik bir grup boyutu gerektirir ve hesaplamanın daha büyük bit boyutlarıyla kırılması zorlaşır.

Sunucunuzun güçlü ECDHE parametreleri kullandığından emin olmak için, sunucunuzu yapılandırırken Mozilla'nın önerdiği şifre paketlerini uygulayın. Mozilla'nın Sunucu Tarafı TLS, güvenlik için yapılandırma ve önerilen şifre paketleri için bir kılavuz sağlar. Sunucu ve ortam gereksinimlerinize göre yapılandırma kodu oluşturmak için SSL Yapılandırma Oluşturucu'yu kullanabilirsiniz.

Bazı sunucu yazılımı sağlayıcıları, dağıtım için öneriler de sunar:

  • Microsoft Internet Information Services (IIS): Diffie-Hellman Anahtar Değişimi için Güncelleştirilmiş Destek
  • Amazon Elastic Load Balancing: Classic Load Balancer'lar için önceden tanımlanmış SSL güvenlik politikaları
>

Diğer yazılımlar için, herhangi bir değişiklik yapmak için uygun yapılandırma dosyasını kullanın:

  • Apache HTTP Sunucusu: [.rt-script]httpd.conf[.rt-script] veya [.rt-script]/etc/apache2/sites-available/[.rt-script] dizininde bulunan belirli sanal ana bilgisayarlar için
  • Apache Tomcat: [.rt komut dosyası]server.xml[.rt komut dosyası]
  • Güvercinlik: [.rt-script]/etc/dovecot.conf[.rt-script]
  • HAProxy: [.rt-komut dosyası]/etc/haproxy/haproxy.cfg[.rt-komut dosyası]
  • Lighttpd: [.rt-script]/etc/lighttpd/lighttpd.conf[.rt-script]
  • Nginx: [.rt-script]/etc/nginx/sites-enabled/default[.rt-script] dizininde tutulan sunucu bloğu
  • Postfix SMTP: [.rt-script]/etc/postfix/main.cf[.rt-script]
  • Sendmail: [.rt-script]/etc/mail/sendmail.mc[.rt-script]

Güncelleştirilmiş yapılandırma ayarlarınızı uyguladıktan sonra, kimlik doğrulaması için dijital imzalar gibi diğer şifreleme araçlarıyla Diffie-Hellman kullanımınızı artırabilirsiniz. Örneğin, RSA algoritmasının iletinin kaynağını doğrulayabilmesi için ECDHE-RSA sertifikalarını kullanabilirsiniz.