it-swarm-tr.com

2048 bit SSL ve 256 bit şifrelemeyi anlama

DigiCert'in sayfasında, 256 bit şifreleme ile 2048 bit SSL reklamını yapıyorlar: http://www.digicert.com/256-bit-ssl-certificates.htm

Buradaki fark tam olarak nedir ve neden iki şifreleme bitine başvuruluyor?

İşte reklamın bir ekran görüntüsü:

Geotrust'un Premium SSL reklamında reklamını şu şekilde yaparlar:

Security: domain control validation, strong 256-bit encryption, 2048-bit root

Peki 256 bit şifreleme ve 2048 bit kök arasındaki fark nedir?

Soruyu açıklığa kavuşturmak dileğiyle.

63
JohnJ

2048-bit RSA anahtar çifti ile ilgilidir: RSA anahtarları büyük bir tamsayı içeren matematiksel nesnelerdir ve "2048-bit anahtar" büyük tamsayının 2'den büyük olacağı bir anahtardır [- 22047 ama 2'den küçük2048.

256-bit SSL ile ilgilidir. SSL'de, sunucu anahtarı yalnızca rastgele bir 256 bit anahtar iletmek için kullanılır ( that bir matematiksel yapıya sahip değildir, sadece bir parça bittir); kabaca konuşmak gerekirse, istemci rastgele bir 256 bit anahtar üretir, sunucunun RSA ortak anahtarıyla (sunucunun sertifikasında bulunan ve "2048 bit anahtar" olan) şifreler ve sonucu sunucuya gönderir. Sunucu işlemi tersine çevirmek için özel RSA anahtarını kullanır ve böylece istemci tarafından seçilen 256-bit anahtarı elde eder. Daha sonra, istemci ve sunucu simetrik şifreleme ve bütünlük denetimleri yapmak için 256 bit kullanır ve RSA bu bağlantı için daha fazla kullanılmaz.

Daha fazla ayrıntı için bkz. bu cevap . Bu düzeneğe "karma şifreleme" adı verilir. Bu, RSA'nın toplu şifreleme için uygun olmaması nedeniyle yapılır, ancak simetrik şifreleme, işleri başlatmak için gereken ilk genel/özel işi yapamaz.

(SSL, RSA dışında diğer algoritmalarla anahtar değişimini yapabilir, bu yüzden yukarıdaki metinde biraz açıklama basitleştirdim, ancak bu fikrin özüdür.)

69
Thomas Pornin

Biraz daha ayrıntı eklemek için, 2048 bit RSA anahtarı asimetrik şifreleme adı verilen bir şeydir. Kimliği doğrulamak (imzalamak) ve gönderilen bilgilere (şifreleme) yalnızca hedeflenen bir alıcının erişmesini sağlamak için kullanılır. Bir ortak anahtar ve bir özel anahtar olmak üzere iki parçadan oluşur. Anahtarlar aslında birbiriyle ilişkilidir, ancak çok büyük iki sahte asal sayı ile ilişkili olduklarından (birbirlerine göre asal), özel anahtarı halktan anlamak çok zordur.

Bununla birlikte, algoritma anlaşılması gerçekten zor olan (ancak çözülebilir) bir şeye dayandığı için, matematiksel olarak çözülemeyen ve karmaşıklığa bağlı olmayan paylaşılan bir sırrı temel alan simetrik bir algoritmadan daha az güvenlidir. güvenlik için bir matematik problemi (daha sonra daha fazla). Bu yüzden anahtar simetrik karşılıktan çok daha büyüktür (sadece 256 bit). Denklemin çözülmesini zorlaştırmak için çok daha büyük anahtar gerekir ve ayrıca asimetrik anahtarla iletilen daha fazla bilgi, kırılma olasılığı da artar (ayrıca, şifreleme/şifre çözme daha yoğun işlemcidir).

Bu nedenle SSL, doğrulama ve anahtar değişim aşamaları için yalnızca RSA'yı kullanır. Bunun yerine, simetrik bir anahtar (istemcideki tarayıcı tarafından destekleniyorsa 256 bit) oluşturulur ve RSA şifrelemesi ile sunucuya geri gönderilir ve daha sonra verilerin geri kalanı paylaşılan anahtar ve simetrik bir algoritma ile değiştirilir.

Bu, istemcinin ilk olarak sunucunun özel anahtarıyla şifrelediği bir soruna yanıtın kodunun çözülmesiyle gerçekleşir, istemci daha sonra sunucunun ortak anahtarına (CA'nın (bu durumda DigiCert ) çoğu tarayıcıda bulunur). Çözülmüş yanıt meydan okumayla eşleştiğinde, istemci sunucunun isteğe yanıt verdiğini bilir (ancak bunu ileten bir orta adam olabilir). Istemci daha sonra 256 bit simetrik anahtarı oluşturur ve sunucunun ortak anahtarıyla şifreler ve sunucuya gönderir. Anahtar sunucunun ortak anahtarıyla şifrelenmiş olduğundan, yalnızca özel anahtarı bilen sunucunun şifresi çözülebilir. Bu, önceki adımdaki herhangi bir orta adamın yeni paylaşılan anahtarı bilemeyeceği anlamına gelir. İstemci, artık paylaşılan anahtar aracılığıyla gönderilen bilgilerin yalnızca amaçlanan sunucudan geldiğine güvenebilir.

15
AJ Henderson

Sadece mevcut cevaplara bazı detaylar eklemek için ...

sorum şu ki, rastgele bir 256 bit anahtar üretmeyi nasıl bilebilirdi? (Neden 128 değil?).

Bu, müzakere edilen şifre takımına bağlıdır. TLS 1.1'in bir parçası olarak tanımlananların listesi RFC 4346 Ek A.5 'dır. Örneğin TLS_RSA_WITH_AES_128_CBC_SHA 128 bit anahtar kullanırken TLS_DHE_RSA_WITH_AES_256_CBC_SHA 256 bit anahtar kullanacaktır.

Hangi şifre paketinin görüşüleceği, sunucuda yüklü olan sertifikaya değil, istemci ve sunucu yapılandırmasına bağlı olacaktır. İstemci Client Hello Mesajıyla bağlantıyı başlattığında, desteklediği şifre paketlerinin bir listesini gönderir. Sunucu daha sonra istediği dosyayı seçer ve bunu Server Hello Mesajında ​​söyler.

Bu şifre paketi daha sonra bu simetrik anahtarların nihayetinde nasıl paylaşılacağını belirler. SSL/TLS anlaşmasının hemen amacı, istemci ile sunucu arasında bir paylaşım master öncesi sırrı oluşturmaktır. Bu daha geniş olarak anahtar değişimi (bkz. RFC 4346 Ek F.1.1) olarak adlandırılır.

Bu iki kategoriye ayrılır (anonim anahtar değişimi hariç):

  • RSA anahtar değişimi (örn. TLS_RSA_WITH_AES_128_CBC_SHA): İstemci, ana sertifika sırrını sunucunun ortak anahtarını (sertifikada bulunur) kullanarak şifreler.
  • DH (E) anahtar değişimi (örneğin TLS_DHE_RSA_WITH_AES_256_CBC_SHA): Bir Diffie-Hellman anahtar değişimi gerçekleşir. Sunucu DH parametrelerini imzalar ve istemci, sunucu sertifikasındaki ortak anahtara karşı imzayı doğrular. (RSA tabanlı bir sertifikaya sahip olmak, RSA anahtar değişimi anlamına gelmez.)

El sıkışmasının sonunda, bu iki adımdan hangisi kullanılırsa kullanılsın, istemci ve sunucu ortak bir ana master öncesi sırrına sahiptir. bir ana sırrı elde ederler (bakınız RFC 4346 Bölüm 8.1 ).

Bundan ana sırrdan , her iki taraf da RFC 4346 Bölüm 6. bölümünde açıklandığı gibi şifreleme anahtarlarını (ve MAC sırlarını) türetebilir. .

Anahtar türünün (RSA veya DSS) yanı sıra, şifreleme anahtarının boyutunu sertifikaya bağımlı kılan hiçbir şey yoktur. Ayrıca, her iki türde de 256 bit anahtarlar kullanan şifre paketleri bulunur: örneğin TLS_DHE_DSS_WITH_AES_256_CBC_SHA Ve TLS_DHE_RSA_WITH_AES_256_CBC_SHA. (DSS yalnızca imza algoritmasıdır, bu nedenle master öncesi sırrı şifrelemek için RSA benzeri bir anahtar değişimi elde edemezsiniz.)

Sertifikadaki anahtarın boyutu yalnızca anahtar değişiminin sahteciliğini önlemek (veya kayıtlı trafiği geri deşifre etmek) için önemlidir: birisi sertifikadaki genel anahtardan özel anahtarı bulabildiyse, gerçek sunucuyu taklit etmek için bir MITM veya bir RSA anahtar değişimi (DHE şifre süitleri) kullanırken şifrelenmiş ana master sırrını (ve böylece kaydedilen trafiği) deşifre edebileceklerdir. , saldırgan özel anahtarı ve kayıtlı trafiği ele geçirse bile, bkz bu sor ). Bu yüzden yeterli büyük bir asimetrik anahtar önemlidir.

Sertifika Yetkilileri, pazarlama açısından iyi göründükleri için web sitelerine "256 bit" koyma eğilimindedirler.

Yanlış değil, ancak sunucunuzun nasıl kurulduğunu ve müşterilerinizin önemli olan şeyleri desteklediğini anlamayan insanlar için yanıltıcı olabilir.

9
Bruno