SSL ve TLS arasındaki tam protokol seviyesi farkları nelerdir?


40

Bu genel bakış sorusu sorulduktan sonra bu teknik derin bir dalış .

SSL ve TLS arasındaki protokol farkları nelerdir?
İsim değişikliğini garanti etmek için gerçekten yeterli bir fark var mı? (TLS'nin yeni sürümleri için buna "SSLv4" veya SSLv5 denilmesi)


3
Gerçekten derinlemesine bir anlayış istiyorsanız, özellikleri okumaya başlamak zorunda kalacağınızdan şüpheleniyorum. Viki sayfasını kontrol et . RFC'lere ve teknik özelliklere bağlantılar içerir.
Zoredache

7
@Zoredache, lütfen "Vikipedi" için kısaca "wiki" yi kullanmayın.
Spiff

Yanıtlar:


36

SSLv2 ve SSLv3 tamamen farklıdır (ve her ikisi de artık güvensiz olarak kabul edilir). SSLv3 ve TLSv1.0 birbirine çok benzer, ancak birkaç farklılığı vardır.

TLSv1.0'ı SSLv3.1 olarak düşünebilirsiniz (aslında değiş tokuş yapılan kayıtlarda olan şey budur). Bu karşılaştırma sadece kolay TLSv1.0 ile TLSv1.1 ve TLSv1.2 hepsi IETF içinde düzenlenebilir ve aşağı yukarı aynı yapıyı takip ettik çünkü. SSLv3'ün farklı bir kurum (Netscape) tarafından düzenlenmesi, farklılıkları tespit etmeyi biraz zorlaştırıyor.

İşte birkaç fark, ancak hepsini listeleyebileceğimden şüpheliyim:

  • Gelen ClientHellomesajın (ilk mesaj tokalaşma başlatmak için, istemci tarafından gönderilen), sürümüdür {3,0}, SSLv3 için {3,1}TLSv1.0 için ve {3,2}TLSv1.1 için.
  • Farklı ClientKeyExchange.
  • MAC / HMAC farklıdır (TLS HMAC kullanır, SSL ise daha eski bir HMAC sürümü kullanır).
  • Anahtar türetme farklıdır.
  • İstemci uygulama verileri, FinishedSSLv3’te SSL / TLS mesajı gönderildikten hemen sonra gönderilebilir . TLSv1'de, sunucunun Finishedmesajını beklemesi gerekir .
  • Şifre suit listesi farklılık (ve bazıları itibaren yeniden adlandırıldı SSL_*için TLS_*aynı id numarasını tutarak).
  • Yeni müzakere uzatma ile ilgili farklılıklar da var .

Gerçekten daha fazla ayrıntı istiyorsanız, Eric Rescorla'nın kitabını şiddetle tavsiye ediyorum - SSL ve TLS: Güvenli Sistemleri Tasarlama ve Geliştirme , Addison-Wesley, 2001 ISBN 0-201-61598-3 . Bu kitaptan yukarıda belirtilen bazı noktaları öğrendim. Yazar, bazı SSL / TLS mesajlarını açıklarken, SSLv3 ve TLS (yalnızca kitabın yazıldığı tarihte v1.0) arasındaki farklardan bahseder, ancak bu mesajları hakkında temel bir açıklama yapmanız gerekmektedir. (1) ve bu kitaptan buraya kopyalayıp yapıştırmak uygun değildir).


Görünüşe TLS Uzantıları sadece doğru TLS olup SSL uygulanır? Bu nedenle, örneğin, TLS müşterileri genişletilmiş bir ' ClientHello' kaydı gönderirken, yalnızca SSL3 yalnızca müşterileri yalnızca orijinali gönderirdi ' ClientHello'.
culix

@culix, genel olarak konuşursak, bu gerçekten doğrudur (çünkü TLS uzantıları IETF çerçevesinde tanımlanmıştır). SSLv3 ayrıca ClientHello kaydında ek veriye sahip oldu (TLS 1.0 ve 1.1 ile aynı). (Bakın draft302.txtve " ileriye dönük uyumluluk için ... ", TLS'nin 7.4.1.2 bölümleri ile karşılaştırın). Bunu desteklemeyen yığınlarla başa çıkmak için, yeniden uzatma uzantısındaki SCSV sözde şifre paketi gibi geçici çözümler de vardır.
Bruno,

@Buno, Book link down .....
Pacerier

4

Sadece diğer cevapları tekrarlayacağım ama belki biraz farklı bir vurgu ile.

Netscape tarafından "sahip olunan", SSL sürüm 2 olarak adlandırılan güvenli bir soket protokolü vardı. Netscape tarafından "sahip olunan" farklı bir kayıt yapısına ve güvenlik iyileştirmelerine sahip yeni bir sürüm yayımlandı ve SSL sürüm 3 olarak adlandırıldı. places bir ikili sürüm numarası alanıdır. SSL sürüm 3 için bu alan 0x03 0x00, yani sürüm 3.0 olarak ayarlanmıştır. Sonra IETF kendi standardını yaratmaya karar verdi. Muhtemelen, "SSL" nin bir Netscape markası olup olmadığı da dahil olmak üzere SSL ile ilgili bazı fikri mülkiyet belirsizlikleri bulunduğundan, IETF bu protokolün bir sonraki sürümünü yayınladığında kendi adını verdi: Transport Layer Security protokolü veya TLS sürüm 1.0. Kayıt formatı ve genel yapı SSL v3 ile aynı ve tutarlıdır. İkili sürüm numarası 0x03 0x01 olarak değiştirildi ve diğerlerinin de belirttiği gibi bazı küçük şifreleme değişiklikleri yapıldı. O zamandan beri, dahili protokol numaralarının 0x03 0x02 ve 0x03 0x03 olduğu TLS sürüm 1.1 ve 1.2 olmuştur.

SSLv2'yi göz ardı ederek, temel olarak, insanların güvenlik ve performans konusunda daha akıllı hale gelmesiyle gerçekleşen normal protokol ince ayarları ile birlikte yalnızca bir isim değişikliği oldu.


3

Temel olarak, protokolün daha yeni bir sürümü için bir isim değişikliği dışında bir şey değildir. Bunun ana nedeninin, resmi bir IETF standartları takip protokolü haline geldikten sonra, esas olarak Netscape tarafından tasarlanan eski, resmi olmayan standarttan ayrılması olduğuna inanıyorum.

Önceki sorunuzun cevaplarında da belirtildiği gibi, bu SSLv3 ve TLSv1.0'ın uyumlu olduğu anlamına gelmez. RFC 2246'dan alıntı:

Bu protokol ve SSL 3.0 arasındaki farklar çarpıcı değildir, ancak TLS 1.0 ve SSL 3.0'ın birlikte çalışmaması için yeterince önemlidir.

Sanırım protokollerdeki kesin farklılıkları gerçekten bilmek istiyorsan, standartları okumalı ve kendini karşılaştırmalısın.

Netscape TLSv1.0 RFC 2246'dan SSLv3 protokolü taslağı


@SvenW Kendim için karşılaştırmalıyım ama yapmak istediğimden emin değilim büyük bir zorluk. Bu standart 10 yıldan beri var. Elbette biri zaten karşılaştırmayı yaptı, benim gibi adamların anlayabilmesi için güzel grafiklerle.
goodguys_activate 07:10

@ MakerOfThings7 Ne yazık ki bu soru bir pasta grafiğe kadar kaynatılabilecek bir şey değil. Grafiğe yerleştirilebilecek tek şeyler şifreleme bit oranları veya (ve burada gerginim) verilen güvenlik seviyesidir (burada SSLv3 "-" ve TLS "=" ...). Aslında, özellikleri okuyarak ya da en azından Wikipedia sayfasını (önceki soruda size
sunduğum

@SvenW Her iki özelliği de okudunuz ve anladınız mı?
goodguys_activate 07:10

Hayır. Neden yapayım? Bu şartnameye göre yazılım yazan bir geliştirici değilim, bu da düşünebilmemin tek nedeni. SSL / TLS kullanmam gerekiyorsa, dokümanı OpenSSL vb. İçin okudum, bu kullanıcılar ve yöneticiler için yeterli.
Sven

@SvenW Alınma ama bu soruyu verdiğimde makul olan özellikleri okuyan ve anlayan birinden bir cevap alana kadar bunu açık tutacağım.
goodguys_activate 07:10

0

Şifreleme protokolü SSL şimdi aynı protokol için iki adla sonuçlanan TLS olarak adlandırılmıştır. Mevcut yazılım otomatik olarak TLS sürüm 1 veya SSL sürüm 3 ile pazarlık yapacak. Öte yandan, insanlar, daha belirgin olan SSL terimini kullanma ve resmi TLS atamalarına karar vermek zorundalar.

SSL, TLS'nin öncüsüdür.

TLS ve SSL, Aktarım Katmanında güvenli bir uçtan uca geçiş sağlamak için Uygulama Katmanındaki ağ bağlantılarını şifreler.


Yani bu bir isim değişikliği mi? Bu kadar?
goodguys_activate

evet TLS daha yeni bir sürümdür, gerektiğinde TLS kendisini SSL3'e dönüştürebilir.
aleroot

3
Hayır, isim değişikliği değil. TLSv1, SSLv3 ile birlikte çalışabilir (ve geri döner), ancak bunun tam tersi olduğu kesin değildir. TLSv1, SSLv4'e benzer. Not: Ayrıca TLS'nin birden fazla sürümü var.
Philip Reynolds

-2

farklılıklar:

  • TLS, standart bir protokolün üzerinde çalışıyor. Bir TLS bağlantısı, standart bir servisin şifrelenmemiş bir oturumu gibi başlar, ancak bir noktada şifreleme ile pazarlık etmeye başlarlar. Bu görüşme için standart protokolün genişletilmesi gerekmektedir.
  • Standart protokoller SSL’nin tepesindedir. Bir SSL bağlantısı önce şifreleme ile anlaşır, ardından temel protokolü üzerinden geçirir.

Doğru değil, SSL / TLS ile başlamak ile protokolde TLS'ye geçiş yapmak arasındaki farktan STARTTLS: stackoverflow.com/questions/3660798/…
Bruno
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.