Tls kullanarak veya kullanın. TLS protokolü

  • 23.06.2019

TLS, İnternet'teki düğümler arasında güvenilir ve güvenli bağlantılar sağlayan bir protokol olan SSL'nin halefidir. Tarayıcılar ve istemci-sunucu uygulamaları dahil olmak üzere çeşitli istemcilerin geliştirilmesinde kullanılır. Internet Explorer'da TLS nedir?

Teknoloji hakkında biraz

Finansal işlemlerle uğraşan tüm işletme ve kuruluşlar, paketlerin dinlenmesini ve bilgisayar korsanlarının yetkisiz erişimini engellemek için bu protokolü kullanır. Bu teknoloji, kritik bağlantıları kötü niyetli saldırılardan korumak için tasarlanmıştır.

Temel olarak, kuruluşları yerleşik bir tarayıcı kullanır. Bazı durumlarda, Mozilla Firefox.

Protokolü etkinleştirme ve devre dışı bırakma

SSL ve TLS teknolojileri desteği devre dışı bırakıldığı için bazı sitelere bazen erişilemiyor. Tarayıcıda bir bildirim açılır. Peki, güvenli iletişimin keyfini çıkarmaya devam etmek için protokolleri nasıl etkinleştirirsiniz?
1. Başlat üzerinden Denetim Masasını açın. Başka bir yol: Explorer'ı açın ve sağ üst köşedeki dişli simgesine tıklayın.

2. "Tarayıcı özellikleri" bölümüne gidin ve "Gelişmiş" bloğu açın.

3. "TLS 1.1 ve TLS 1.2 Kullan" seçeneğinin yanındaki kutuları işaretleyin.

4. Değişiklikleri kaydetmek için Tamam'a tıklayın. Özellikle İnternet bankacılığı kullanıyorsanız, kesinlikle önerilmeyen protokolleri devre dışı bırakmak istiyorsanız, aynı öğelerin işaretini kaldırın.

1.0, 1.1 ve 1.2'den nasıl farklıdır? 1.1, kusurlarını kısmen devralan TLS 1.0'ın yalnızca biraz geliştirilmiş bir sürümüdür. 1.2, protokolün en güvenli sürümüdür. Öte yandan, bu protokol sürümü etkinken tüm siteler açılamaz.

Bildiğiniz gibi Skype messenger, Windows'un bir bileşeni olarak doğrudan Internet Explorer ile ilgilidir. Ayarlarda TLS protokolünü işaretlemediyseniz, Skype ile ilgili sorunlar olabilir. Program sunucuya bağlanamayacak.

Internet Explorer ayarlarında TLS desteği devre dışı bırakılırsa, programın ağla ilgili tüm işlevleri çalışmayacaktır. Ayrıca, verilerinizin güvenliği bu teknolojiye bağlıdır. Bu tarayıcıda finansal işlemler yapıyorsanız (çevrimiçi mağazalardan satın alma, İnternet bankacılığı veya elektronik cüzdan aracılığıyla para transferleri vb.)

Ilya Grigorik'in "Yüksek Performanslı Tarayıcı Ağı" adlı mükemmel kitabının bölümleri. Tercüme, dönem ödevi yazımının bir parçası olarak yapılmıştır, bu nedenle çok ücretsizdir, ancak yine de TLS'nin ne olduğu ve ne ile yedikleri hakkında çok az fikri olanlar için faydalı olacaktır.

TLS'yi anlama
Aktarım katmanı güvenliği (TLS), başlangıçta Netscape tarafından İnternet üzerindeki elektronik ticaretin güvenliğini artırmak için geliştirilen Güvenli Yuva Katmanı (SSL) protokolüne dayanmaktadır. SSL, uygulama katmanında, doğrudan TCP'nin (İletim Kontrol Protokolü) üzerine uygulandı ve bu, daha yüksek seviyeli protokollerin (HTTP veya e-posta protokolü gibi) değişmeden çalışmasına izin verdi. SSL doğru yapılandırılmışsa, dışarıdan bir gözlemci yalnızca bağlantı parametrelerini (örneğin, kullanılan şifreleme türü), aktarım frekansını ve yaklaşık veri miktarını öğrenebilir, ancak bunları okuyamaz veya değiştiremez.

TLS'nin (SSL) İnternet protokol yığınındaki özel yeri şemada gösterilmiştir:

SSL, IETF (İnternet Mühendisliği Görev Gücü) tarafından standartlaştırıldıktan sonra, TLS olarak yeniden adlandırıldı. Bu nedenle, SSL ve TLS adları birbirinin yerine kullanılabilir olsa da, her biri protokolün farklı bir sürümünü tanımladığından yine de farklıdırlar.

Yayınlanan protokolün ilk sürümüne SSL 2.0 adı verildi, ancak keşfedilen güvenlik açıkları nedeniyle hızlı bir şekilde SSL 3.0 ile değiştirildi. Belirtildiği gibi, SSL Netscape tarafından geliştirildi, bu nedenle Ocak 1999'da IETF onu TLS 1.0 adı altında açıkça standartlaştırdı. Ardından, Nisan 2006'da, protokolün orijinal yeteneklerini genişleten ve bilinen güvenlik açıklarını düzelten TLS 1.1 yayınlandı. Protokolün şu anda mevcut sürümü, Ağustos 2008'de piyasaya sürülen TLS 1.2'dir.

Belirtildiği gibi, TLS TCP üzerinde çalışmak üzere tasarlanmıştır, ancak TLS'nin DTLS (Datagram Aktarım Katmanı Güvenliği) adlı özel bir sürümü, UDP (Kullanıcı Datagram Protokolü) gibi datagram protokolleriyle çalışmak üzere geliştirilmiştir.

Şifreleme, kimlik doğrulama ve bütünlük
TLS, üzerinde çalışan tüm uygulamalara şifreleme, kimlik doğrulama ve bütünlük olmak üzere üç hizmet sağlamak üzere tasarlanmıştır. Teknik olarak, üçü de kullanılamaz, ancak pratikte güvenliği sağlamak için kural olarak üçü de kullanılır:
  • Şifreleme - bir bilgisayardan diğerine iletilen bilgileri gizleme;
  • Kimlik doğrulama - iletilen bilgilerin yazarlığının doğrulanması;
  • Bütünlük - bilgi sahteciliğinin değiştirilmesini tespit etmek.
Kriptografik olarak güvenli bir veri kanalı oluşturmak için, bağlantı düğümleri kullanılan şifreleme yöntemleri ve anahtarları üzerinde anlaşmalıdır. TLS protokolü bu prosedürü açık bir şekilde tanımlar; bu, TLS El Sıkışma yan tümcesinde daha ayrıntılı olarak tartışılmaktadır. TLS'nin, düğümlerin önceden bilgi sahibi olmadan paylaşılan bir gizli şifreleme anahtarı oluşturmasına izin veren ortak anahtar şifrelemesini kullandığı belirtilmelidir.

Ayrıca TLS El Sıkışma prosedürü çerçevesinde hem istemcinin hem de sunucunun kimliğini belirlemek mümkündür. Örneğin, bir müşteri kendisine banka hesabı bilgilerini sağlayan sunucunun gerçekten bir banka sunucusu olduğundan emin olabilir. Ve tam tersi: şirketin sunucusu, kendisine bağlanan müşterinin üçüncü bir taraf değil, şirketin bir çalışanı olduğundan emin olabilir (bu mekanizmaya Güven Zinciri denir ve ilgili bölümde tartışılacaktır).

Son olarak, TLS, her mesajın bir MAC (Mesaj Kimlik Doğrulama Kodu) kodu ile gönderilmesini sağlar; bu, anahtarları her iki tarafça da bilinen tek yönlü bir şifreleme karma işlevi (aslında bir sağlama toplamı) olan oluşturma algoritmasıdır. iletişim. Her mesaj gönderildiğinde, alıcı tarafından üretilebilen MAC değeri üretilir, bu, bilginin bütünlüğünü ve değiştirilmesinden korunmasını sağlar.

Bu nedenle, TLS protokolünün kripto güvenliğinin altında yatan üç mekanizmayı da kısaca gözden geçirdik.

Tls el sıkışma
TLS aracılığıyla veri alışverişine başlamadan önce, istemci ve sunucu bağlantı parametreleri üzerinde anlaşmalıdır, yani kullanılan protokolün sürümü, veri şifreleme yöntemi ve ayrıca gerekirse sertifikaları kontrol etmelidir. Bağlantı başlatma şemasına TLS El Sıkışma denir ve şekilde gösterilmiştir:

Bu prosedürün her adımına daha yakından bakalım:

  1. TLS TCP üzerinden çalıştığı için önce istemci ile sunucu arasında bir TCP bağlantısı kurulur.
  2. TCP'yi kurduktan sonra, istemci belirtimi sunucuya düz metin olarak gönderir (yani kullanmak istediği protokol sürümü, desteklenen şifreleme yöntemleri vb.).
  3. Sunucu, kullanılan protokolün sürümünü onaylar, sağlanan listeden şifreleme yöntemini seçer, sertifikasını ekler ve istemciye bir yanıt gönderir (istenirse, sunucu ayrıca bir istemci sertifikası da isteyebilir).
  4. Protokol sürümü ve şifreleme yöntemi şu anda onaylanmış olarak kabul edilir, istemci gönderilen sertifikayı kontrol eder ve ayarlanan parametrelere bağlı olarak RSA veya Diffie-Hellman anahtar değişimini başlatır.
  5. Sunucu, istemci tarafından gönderilen mesajı işler, MAC'i doğrular ve 'Bitti' mesajını istemciye şifreli biçimde gönderir.
  6. İstemci alınan mesajın şifresini çözer, MAC'i doğrular ve her şey yolundaysa bağlantının kurulduğu kabul edilir ve uygulama verilerinin alışverişi başlar.
TLS bağlantısı kurmanın genellikle uzun ve zaman alıcı bir süreç olduğu açıktır, bu nedenle TLS standardında çeşitli optimizasyonlar vardır. Özellikle, bağlantıyı geri yüklemek için (tabii ki, istemci ve sunucu geçmişte bir TLS bağlantısı kurduysa) önceden anlaşılan parametreleri kullanmanıza izin veren "kısaltılmış el sıkışma" adlı bir prosedür vardır. Bu prosedür, "Oturumu sürdürme" bölümünde daha ayrıntılı olarak tartışılmaktadır.

El Sıkışma prosedürünün TLS Yanlış Başlatma adı verilen ek bir uzantısı da vardır. Bu uzantı, istemci ve sunucunun, şifreleme yöntemi kurulur kurulmaz şifrelenmiş verileri değiş tokuş etmeye başlamasına izin verir, bu da bağlantı kurulmasını mesajların bir yinelemesi kadar azaltır. Bu, "TLS Yanlış Başlatma" bölümünde daha ayrıntılı olarak açıklanmaktadır.

TLS anahtar değişimi
Çeşitli tarihsel ve ticari nedenlerle, RSA anahtar değişimi en çok TLS'de kullanılır: istemci simetrik bir anahtar oluşturur, sunucunun ortak anahtarını kullanarak imzalar ve sunucuya gönderir. Sırayla, sunucuda, istemcinin anahtarının şifresi özel anahtar kullanılarak çözülür. Bundan sonra, anahtar değişiminin tamamlandığı bildirilir. Bu algoritmanın bir dezavantajı vardır: sunucu kimlik doğrulaması için aynı ortak ve özel anahtar çifti de kullanılır. Buna göre, bir saldırgan sunucunun özel anahtarına erişim elde ederse, tüm iletişim oturumunun şifresini çözebilir. Ayrıca, bir saldırgan tüm iletişim oturumunu şifrelenmiş bir sürümde basitçe kaydedebilir ve daha sonra, sunucunun özel anahtarını elde etmek mümkün olduğunda şifre çözme işlemini gerçekleştirebilir. Aynı zamanda, Diffie-Hellman anahtar değişimi, kurulan simetrik anahtar istemciden veya sunucudan asla ayrılmadığından ve buna bağlı olarak, sunucunun özel anahtarını bilse bile bir saldırgan tarafından ele geçirilemeyeceğinden daha güvenli görünmektedir. Bu, geçmiş iletişim oturumlarını tehlikeye atma riskini azaltmak için hizmetin temelidir: her yeni iletişim oturumu için yeni, sözde "geçici" simetrik anahtar oluşturulur. Buna göre, en kötü durumda bile (saldırgan sunucunun özel anahtarını biliyorsa), saldırgan yalnızca gelecekteki oturumlardan anahtar alabilir, ancak önceden kaydedilmiş olanların şifresini çözemez.

Şu anda, tüm tarayıcılar TLS bağlantısı kurarken, bağlantının güvenliğini artırmak için Diffie-Hellman algoritmasının kombinasyonunu ve geçici anahtarların kullanımını tercih ediyor.

Açık anahtar şifrelemesinin yalnızca ilk bağlantı kurulumu sırasında TLS El Sıkışma prosedüründe kullanıldığına tekrar dikkat edilmelidir. Tünel kurulduktan sonra simetrik kriptografi devreye girer ve mevcut oturum içindeki iletişim, kurulan simetrik anahtarlar tarafından tam olarak şifrelenir. Açık anahtar şifrelemesi önemli ölçüde daha fazla işlem gücü gerektirdiğinden, performansı artırmak için bu gereklidir.

TLS Oturumunu Sürdür
Daha önce belirtildiği gibi, tam TLS El Sıkışma prosedürü oldukça zaman alıcıdır ve hesaplama açısından pahalıdır. Bu nedenle, önceden yapılandırılmış verilere dayalı olarak daha önce kesintiye uğramış bir bağlantıyı sürdürmenize izin veren bir prosedür geliştirilmiştir.

Protokolün ilk genel sürümünden (SSL 2.0) başlayarak, TLS El Sıkışma içindeki sunucu (yani ilk ServerHello mesajı) 32 baytlık bir oturum tanımlayıcısı oluşturabilir ve gönderebilir. Doğal olarak, bu durumda sunucu, her istemci için oluşturulan tanımlayıcıların ve oturum parametrelerinin bir önbelleğini depolar. Buna karşılık, istemci gönderilen tanımlayıcıyı saklar ve (tabii ki varsa) ilk ClientHello mesajına dahil eder. Hem istemci hem de sunucu aynı oturum tanımlayıcılarına sahipse, şekilde gösterilen basitleştirilmiş algoritmaya göre ortak bir bağlantı kurulur. Değilse, TLS El Sıkışma'nın tam sürümü gereklidir.

Oturum yeniden başlatma prosedürü, bağlantı kurulum süresini önemli ölçüde artıran, ancak önceki oturumdan daha önce taviz verilmeyen veriler kullanıldığından güvenliğini etkilemeyen simetrik anahtar oluşturma aşamasını atlamanıza olanak tanır.

Bununla birlikte, burada pratik bir sınırlama vardır: sunucunun tüm açık oturumlarla ilgili verileri depolaması gerektiğinden, bu, binlerce ve milyonlarca istemci tarafından aynı anda talep edilen popüler kaynaklarla ilgili bir soruna yol açar.

Bu soruna geçici bir çözüm bulmak için, her istemcinin verilerini sunucuda depolama ihtiyacını ortadan kaldıran Oturum Bileti mekanizması geliştirilmiştir. İstemci, ilk bağlantı kurulumu sırasında bu teknolojiyi desteklediğini belirttiyse, TLS El Sıkışma sırasında istemciye, sunucunun özel anahtarıyla şifrelenmiş Oturum Bileti - oturum parametrelerini gönderir. Oturum yeniden başlatıldığında, istemci ClientHello ile birlikte sahip olduğu Oturum Biletini gönderir. Böylece, sunucu her bağlantı hakkında veri depolama ihtiyacından kurtulur, ancak Oturum Bileti yalnızca sunucu tarafından bilinen bir anahtarla şifrelendiğinden bağlantı hala güvenlidir.

TLS Yanlış Başlangıç
Oturumun yeniden başlatılması, protokol performansını inkar edilemez bir şekilde artırır ve hesaplama maliyetlerini azaltır, ancak sunucuya ilk bağlantıda veya önceki oturumun süresinin dolmuş olması durumunda geçerli değildir.

Daha da yüksek performans elde etmek için, protokolün isteğe bağlı bir uzantısı olan ve TLS El Sıkışma yalnızca kısmen tamamlandığında veri göndermenize izin veren TLS Yanlış Başlatma teknolojisi geliştirilmiştir. TLS Yanlış Başlatmanın ayrıntılı bir diyagramı şekilde gösterilmiştir:

TLS Yanlış Başlatmanın TLS El Sıkışma prosedürünü hiçbir şekilde değiştirmediğini unutmamak önemlidir. İstemci ve sunucunun bağlantı parametrelerini ve simetrik anahtarları zaten bildiği anda, uygulama verilerinin zaten gönderilebileceği ve gerekli tüm kontrollerin paralel olarak gerçekleştirilebileceği varsayımına dayanmaktadır. Sonuç olarak, bağlantı bir mesajlaşma yinelemesinden önce kullanıma hazırdır.

TLS güven zinciri
Kimlik doğrulama, her TLS bağlantısının ayrılmaz bir parçasıdır. Alice ve Bob arasındaki en basit kimlik doğrulama sürecine bir göz atalım:
  1. Hem Alice hem de Bob kendi genel ve özel anahtarlarını oluşturur.
  2. Alice ve Bob ortak anahtarları değiştirir.
  3. Alice bir mesaj oluşturur, özel anahtarıyla şifreler ve Bob'a gönderir.
  4. Bob, Alice'den aldığı anahtarı mesajın şifresini çözmek için kullanır ve böylece alınan mesajın gerçekliğini doğrular.
Açıkçası, bu plan Alice ve Bob arasındaki güven üzerine inşa edilmiştir. Açık anahtarların değişiminin örneğin yüz yüze bir toplantıda gerçekleştiği varsayılır ve bu nedenle Alice, anahtarı doğrudan Bob'dan aldığından ve Bob da sırayla Alice'in anahtarını aldığından emindir. Genel anahtar.

Şimdi Alice, aşina olmadığı ama Bob'la arkadaş olduğunu iddia eden Charlie'den bir mesaj alsın. Bunu kanıtlamak için Charlie önceden kendi açık anahtarını Bob'un özel anahtarıyla imzalamasını istedi ve bu imzayı Alice'in mesajına ekledi. Öte yandan Alice, önce Bob'un Charlie'nin anahtarındaki imzasını kontrol eder (bunu yapabilir, çünkü Bob'un açık anahtarını zaten bilir), Charlie'nin gerçekten Bob'un arkadaşı olduğundan emin olur, mesajını kabul eder ve zaten bilinen bütünlük kontrolünü gerçekleştirir. , mesajın gerçekten Charlie'den geldiğinden emin olun:

Bir önceki paragrafta açıklanan, bir "güven zinciri"nin (veya İngilizce'de "Güven Zinciri") oluşturulmasıdır.
TLS'de güven zinciri verileri, sertifika yetkilileri (CA'lar) adı verilen özel yetkililer tarafından sağlanan orijinallik sertifikalarına dayanır. Sertifika yetkilileri kontroller yapar ve verilen sertifikanın güvenliği ihlal edilirse bu sertifika iptal edilir.

Daha önce tartışılan güven zinciri, verilen sertifikalardan oluşur. Kökü, sözde “Kök CA sertifikası” - büyük bir otorite tarafından imzalanmış, güveni inkar edilemez bir sertifika. Genel anlamda, güven zinciri şuna benzer:

Doğal olarak, önceden verilmiş bir sertifikanın iptal edilmesi veya iptal edilmesi gereken durumlar vardır (örneğin, sertifikanın özel anahtarının güvenliği ihlal edilmiştir veya tüm sertifika prosedürünün güvenliği ihlal edilmiştir). Bu amaçla, orijinallik sertifikaları, uygunluklarını kontrol etmek için özel talimatlar içerir. Bu nedenle, bir güven zinciri oluştururken, her bir güvenilen düğümün alaka düzeyini kontrol etmek gerekir.

Bu kontrolün mekanizması basittir ve sözde dayanmaktadır. Sertifika İptal Listesi (CRL). CA'ların her biri, iptal edilen sertifikaların seri numaralarının basit bir listesi olan bu listeye sahiptir. Buna göre, bir sertifikanın gerçekliğini doğrulamak isteyen herkes bu listeyi indirir ve içindeki doğrulanmış sertifikanın numarasını arar. Numara bulunursa, sertifikanın iptal edildiği anlamına gelir.

Açıkçası burada bazı teknik mantıksızlıklar var: sadece bir sertifikayı doğrulamak için, işin yavaşlamasına neden olan iptal edilmiş sertifikaların tam listesini talep etmeniz gerekiyor. Bununla mücadele etmek için Çevrimiçi Sertifika Durum Protokolü (OCSP) adı verilen bir mekanizma geliştirilmiştir. Bir sertifikanın durumunun dinamik olarak kontrol edilmesini sağlar. Doğal olarak bu, ağ bant genişliği üzerindeki yükü azaltır, ancak aynı zamanda birkaç soruna yol açar:

  • CA'lar yükü gerçek zamanlı olarak ele almalıdır;
  • CA'lar her zaman kullanılabilirliklerini garanti etmelidir;
  • Gerçek zamanlı istekler nedeniyle, CA'lar her bir kullanıcının hangi siteleri ziyaret ettiği hakkında bilgi alır.
Aslında, tüm modern tarayıcılarda, her iki çözüm de (OCSP ve CRL) birbirini tamamlar, ayrıca kural olarak, sertifikanın durumunu kontrol etmek için tercih edilen politikayı yapılandırmak mümkündür.

Bu nedenle, bu makale, bilgileri korumak için TLS protokolü tarafından sağlanan tüm önemli araçları kapsar. Makaledeki bazı reklamlar için özür dilerim, bu çevirinin orijinal amacının maliyetidir.

kayıt protokolü TLS. Bu protokol, iki ana özelliği olan bağlantılar için güvenlik sağlar.
  • Bağlantı gizlidir. Simetrik şifreleme, verileri şifrelemek için kullanılır (örn. DES, RC4, vb.). Şifreleme anahtarları, her bağlantı için bağımsız olarak oluşturulur ve başka bir protokol (TLS konuşma protokolü gibi) kullanılarak elde edilen bir sırrı temel alır. kayıt protokolüşifreleme olmadan kullanılabilir.
  • Bağlantı güvenilirdir. Mesaj iletim prosedürü, bir MAC hesaplaması kullanan bir bütünlük kontrolünü içerir. Hash fonksiyonları MAC hesaplamak için kullanılır (örn. SHA, MD5, vb.). kayıt protokolü MAC olmadan çalışabilir, ancak bu modda yalnızca başka bir protokol kullanıldığında geçerlidir kayıt protokolü güvenlik parametrelerini netleştirirken bir aktarım olarak.

kayıt protokolü TLS, çeşitli üst düzey protokolleri kapsüllemek için kullanılır. Böyle bir kapsüllenmiş nesne olan TLS Diyalog Protokolü, sunucu ve istemcinin birbirlerinin kimliklerini doğrulamasına ve uygulama ilk bilgi baytını göndermeden veya almadan önce bir şifreleme algoritması ve kripto anahtarları üzerinde anlaşmaya varmasına olanak tanır. TLS Diyalog Protokolü, üç temel özelliği olan güvenli bir bağlantı sağlar.

  • Ortakların kimliği asimetrik kriptografi (örn. RSA, DSS, vb.) kullanılarak belirlenebilir. Bu kimlik doğrulama isteğe bağlı hale getirilebilir, ancak ortaklardan en az biri için gereklidir.
  • Paylaşılan sırrı açığa çıkarmak güvenlidir: Bu sır, bağlantıya bağlanmayı başarsa bile saldırgan tarafından kullanılamaz.
  • Diyalog güvenlidir: bir saldırgan, değişim ortakları tarafından keşfedilmeden bağlantıyı değiştiremez.

TLS'nin avantajlarından biri, uygulama protokolünden bağımsız olmasıdır. Üst katman protokolleri şeffaf bir şekilde TLS üzerinde barındırılabilir. Ancak TLS standardı, protokollerin TLS kullanarak güvenliği nasıl artırdığını belirtmez; TLS iletişim kutusunun nasıl başlatılacağı ve kimlik doğrulama sertifikalarının nasıl yorumlanacağı konusundaki karar, TLS'nin üzerinde çalışan protokol ve programların geliştiricilerinin takdirine bırakılmıştır.

Hedefler

TLS protokolünün amaçları öncelik sırasına göre şunlardır:

  1. kriptografik güvenlik... İki ortak arasında güvenli bir bağlantı kurmak için TLS kullanılmalıdır.
  2. uyumluluk... Bağımsız programcılar, birbirlerinin programlarının özelliklerini bilmeden kriptografik parametreleri başarıyla değiş tokuş edebilen TLS kullanan uygulamalar geliştirebilmelidir.
  3. genişletilebilirlik... TLS, gerektiğinde yeni anahtarları ve şifreleme yöntemlerini sisteme dahil etmenin bir yolunu arıyor. Burada iki yan hedef vardır: yeni bir protokol oluşturma ihtiyacını ortadan kaldırmak (bu, yeni zayıflıkların getirilmesini içerebilir) ve yeni bir güvenlik kitaplığı uygulamasını gereksiz kılmak.
  4. göreli verimlilik. kriptografik işlemlerçok fazla CPU gücü gerektirir, özellikle açık anahtar işlemleri bunun için ünlüdür. Bu nedenle TLS, yeni geçici arabellekler kullanılarak kurulan bağlantıların sayısını azaltan isteğe bağlı bir oturum önbelleğe alma şemasına sahiptir.

Sunum dili

Bu belgedeki verilerin sunumu, C ve XDR [XDR] sözdizimine benzer, ancak bu paralellikler yeterince kabadır ve TLS'nin kendisiyle hiçbir ilgisi yoktur. Bu temsiller yalnızca malzemenin algılanmasını basitleştirmek amacıyla kullanılır.

Temel veri bloğu bir bayt (yani 8 bit) olarak kabul edilir. Çok baytlı bilgi öğeleri, soldan sağa ve yukarıdan aşağıya bir bayt dizisinin birleşimidir. Çok baytlı öğeler, bayt akışından (C notasyonu kullanılarak) aşağıdaki gibi alınır:

değer = (bayt<< 8*(n-1)) | (байт << 8*(n-2)) | ... | байт;

Çok baytlı diziler için bu bayt sıralaması ağlar için standarttır (büyük endian).

Yorumlar "/ *" ile başlar ve "* /" ile biter. İsteğe bağlı bileşenler, çift köşeli parantez "" içine alınarak vurgulanır. Yorumlanamayan veriler içeren tek baytlık nesneler opak tiptedir (opak).

Bir vektör (tek boyutlu dizi), homojen bilgi öğelerinin bir akışıdır. Vektörün boyutu dokümantasyon sırasında belirtilebilir veya işin başlangıcına kadar belirsiz kalabilir. Her durumda, uzunluk, vektördeki öğelerin sayısını değil, bayt sayısını belirler. T tipi sabit uzunlukta bir vektör olan yeni bir T tipinin belirtimi için sözdizimi TT" [n];

Burada T ", bilgi akışında n bayt kaplar, burada n, T'nin bir katıdır. Vektör uzunluğu, kodlanmış akışa dahil edilmez.

Aşağıdaki örnekte Veri, protokol tarafından yorumlanmayan ardışık üç bayt olarak tanımlanırken Veri, dokuz baytlık üç Veri vektörüdür.

opak Veri; / * yorumlanamayan üç bayt * / Veri Verisi; / * 3 ardışık 3 bayt vektör * /

Değişken uzunluk vektörleri, notasyonu kullanarak yasal uzunlukların bir alt aralığını belirterek tanımlanır. ... Kodlandığında, gerçek uzunluk vektörü oluşturan bayt akışından önce gelir. Uzunluk, vektörün (tavan) mümkün olan maksimum uzunluğunu belirtmek için gerektiği kadar bayt kaplayan bir sayı biçimindedir. Gerçek uzunluk alanı sıfır olan değişken uzunluklu bir vektör boş bir vektördür.

TT " ;

Aşağıdaki örnekte, bir vektör gereklidir ve opak türden 300 ila 400 bayt içermelidir. Boş olmamalı. Alan gerçek uzunluk iki bayt alır, uint16, 400'ü temsil etmek için yeterlidir. Öte yandan, daha uzun, 800 bayta kadar veriyi veya 400 uint16 öğesini temsil edebilir ve boş olabilir. Kod gösterimi, iki gerçek uzunlukta alan baytı ve ardından bir vektör içerecektir. Kodlanmış vektörün uzunluğu, tek bir öğenin uzunluğunun çift katı olmalıdır (örneğin: 17 bayt vektör uint16 yasa dışı olur).

opak zorunlu<300..400>; / * uzunluk alanı 2 bayttır, boş olamaz * / uint16 daha uzun<0..800>; / * 0 - 400 16 bit işaretsiz tam sayı * /

Temel sayısal veri türü, işaretsiz bayttır (uint8). Tüm daha uzun dijital veri türleri, birlikte birleştirilmiş sabit bir işaretsiz bayt dizisinden oluşturulur. Aşağıdaki sayısal türler önceden tanımlanmıştır.

Rus mevzuatının gerekliliklerine göre, yalnızca Rus şifreleme algoritmaları GOST 28147-89, GOST R 34.10-94, GOST R 34.11-94 ve GOST R 34.10-2001'e göre kurulan TLS bağlantılarının kullanımı tanınır. Bu nedenle GOST algoritmalarına göre şifreleme kullanan siteler kullanmanız gerekiyorsa CryptoPro CSP programını yüklemeniz gerekir.

Windows işletim sistemlerinde CryptoPro CSP programı kullanılır - elektronik imzalar oluşturmak için sertifikalarla çalışan bir dizi şifreleme aracı

CryptoPro CSP'yi kurmak için resmi web sitesindeki malzemeleri kullanın:

  • CryptoPro CSP dağıtım kiti
  • CryptoPro CSP'yi yükleme ve kullanma talimatları paketi

CryptoPro CSP'yi kurduktan sonra, tarayıcı bu programın kullanılabilirliğini ve işlevselliğini kontrol eder.

GOST TLS şifrelemesi isteyen siteler

Site GOST TLS şifrelemesi isterse, tarayıcı CryptoPro CSP programının kurulu olup olmadığını kontrol eder. Program kuruluysa, kontrol ona aktarılır.

Şifreleme talep eden sitelere örnekler: www.gosuslugi.ru, .gov.ru, .kamgov.ru, .nalog.ru alan adındaki siteler.

Site listede yoksa ek onay istenir. Siteye güveniyorsanız ve bağlantının GOST TLS şifrelemesi kullanılarak yapılması gerekiyorsa Devam'ı tıklayın.

Not. Siteler sertifikaların yüklenmesini gerektirebilir. Sertifika yükleme talimatları genellikle sertifikaları talep eden sitelerde bulunur.

Tarayıcı tarafından CryptoPro CSP desteğini etkinleştirme ve devre dışı bırakma

Varsayılan olarak, tarayıcıda CryptoPro CSP desteği etkinleştirilmiştir. Bunu doğrulamanızı öneririz.

Ağ protokolleri SSL ve TLS, yetkisiz erişime, iletilen verilerin bütünlüğünün ihlaline karşı kimlik doğrulama ve koruma sağlayan kriptografik protokollerdir. SSL / TLS protokolleri, istemci veya sunucu tarafında tanımlayıcının değiştirilmesini, verilerin ifşa edilmesini veya bozulmasını hariç tutmak için tasarlanmıştır. Bu amaçlar için güvenilir bir kimlik doğrulama yöntemi kullanılır, iletişim kanalının şifrelenmesi ve mesaj bütünlüğü kodları kullanılır. SSL / TLS için varsayılan bağlantı noktası HTTPS için 443, SMTPS (e-posta) için 465, LDAPS için 636, NNTPS için 563, IRCS (chat) için 994, POP3S için 995'tir.

SSL protokolü

SSL, hizmet ve aktarım protokolleri arasındaki verileri korumak için Netscape tarafından geliştirilmiştir. İlk yayınlanan sürüm 1995 yılında piyasaya sürüldü. VoIP uygulamaları, anlık mesajlaşma servisleri için yaygın olarak kullanılmaktadır. SSL, aşağıdaki özelliklere sahip güvenli bir kanaldır:

  • Özel kanal. Şifreleme anahtarının belirlenmesi için gerekli olan diyalogdan sonra tüm mesajlar şifrelenir.
  • Kanalın kimliği doğrulandı. Kimlik doğrulama, istemci tarafı için isteğe bağlıdır ve sunucu tarafı için zorunludur.
  • Kanal güvenilirliği. Mesajları taşırken, MAC kullanılarak bir bütünlük kontrolü yapılır.

SSL hem simetrik hem de asimetrik anahtarlar kullanır.

SSL protokolünün özellikleri ve amacı

SSL, iki görev için bir çözüm sunar - iletilen bilgilerin şifrelenmesi ve bilgilerin tam olarak gerekli olduğu yere aktarılması (kimlik doğrulama). Protokolün temel amacı, uygulamalar arasında veri alışverişi için güvenilir bir yol sağlamaktır. SSL, güvenli olmayan iletişim kanalları üzerinden bilgileri güvenli bir şekilde aktarmak için kullanılan çok katmanlı bir ortam olarak uygulanır.

Çok katmanlı yapı, bir bağlantı doğrulama protokolü katmanı ve bir kayıt protokolü katmanı ile temsil edilir. İlk katman bir aktarım protokolüdür, örneğin TCP - SSL Kayıt Protokolü ile birlikte, bu katmanlar daha sonra karmaşık altyapıların oluşumuna katılan SSL çekirdeğini oluşturur.

SSL protokolünün temel özellikleri arasında yazılım-platform bağımsızlığı olduğu belirtilmelidir. Şu anda SSL yeterli koruma sağlamamaktadır - yerini TLS almıştır.

TLS protokolü

TLS, İnternet'teki farklı düğümler arasında verileri güvenli bir şekilde aktarmak için kullanılan bir şifreleme protokolüdür. Bu protokol VoIP uygulamalarında, web tarayıcılarında, anlık mesajlaşma uygulamalarında uygulama bulmuştur. TLS, SSL 3.0 spesifikasyonunda uygulanır. Protokolün geliştirilmesi ve geliştirilmesi İETF firması tarafından yürütülmektedir.

TLS'nin sağladığı ana güvenlik önlemleri şunları içerir:

  • Mesaj doğrulama kodunu doğrulamak için bir anahtar kullanma.
  • TLS sürümünü düşürme veya daha az güvenli bir ağ protokolü ile değiştirme olasılığı ortadan kalkar.
  • El sıkışma mesajı, taraflar arasında değiş tokuş edilen tüm mesajların bir karmasını içerir.
  • MAC kullanarak uygulama kaydı numaralandırmasının kullanılması.
  • Giriş mesajlarını her biri farklı bir karma işlevi tarafından işlenen 2 parçaya bölen sözde rastgele bir işlev uygulaması.

TLS protokolünün özellikleri ve amacı

TLS protokolü aşağıdaki algoritmaları kullanır:

  • Simetrik şifreleme için RC4, Triple DES, SEED, IDEA vb.
  • Anahtar kimlik doğrulaması için RSA, DSA, Diffie-Hellman ve ECDSA.
  • Hash fonksiyonları için MD5, SHA ve SHA-256/384.

Uygulamalar, verileri kendi içlerinde depolayan kayıtları değiştirir. Kayıtlar sıkıştırılabilir, artırılabilir, şifrelenebilir veya tanımlanabilir. Aynı zamanda her kayıt, paket uzunluğu ve kullanılan TLS versiyonu hakkında bilgi içerir.

Genel olarak SSL/TLS protokollerinde kriptografi kullanımı uygulamaların performansını önemli ölçüde düşürür ancak veri iletiminin güvenilir şekilde korunmasını sağlar. Protokoller, istemci tarafında hemen hemen herhangi bir ayar gerektirmez; İnternet'teki en yaygın güvenlik protokolleri olarak kabul edilirler.