skip to Main Content

İhtiyaç

IP Üzerinden Ses (VoIP) ve diğer medya uygulamalarının sürekli artan kullanımı, Gerçek Zamanlı Aktarım Protokolünün (RTP) daha yaygın kullanımını tetikledi. Bu protokol, VoIP uygulamaları için işgücüdür. Ne yazık ki, birçok VoIP uygulaması RTP verilerini halka açık İnternet üzerinden net bir şekilde gönderir. Bu nedenle, veriler gizlice dinlenmeye veya değiştirilmeye karşı korunmaz. Bu nedenle, günümüzde çoğu VoIP uygulaması güvensiz olarak kabul edilmektedir. Son yıllarda, RTP’nin güvenliğini artırmak için çeşitli faaliyetler başlamıştır.

  • Güvenli Gerçek Zamanlı Aktarım Protokolü (SRTP), RTP güvenliğini artırır ve RTP ortam bağlantıları için bütünlük ve gizlilik sağlar. Bununla birlikte, SRTP’yi verimli bir şekilde kullanmak için, VoIP uygulamalarının anahtarları ve diğer parametreleri otomatik bir şekilde müzakere edebilmesi gerekir.
  • ZRTP, bir SRTP ses ve video oturumu kurmak için gerekli olan anahtarlar ve diğer bilgileri müzakere eden bir protokoldür.

Teknolojiye, protokollere ve benzerlerine bakmak gerekli olmakla birlikte, belirli bir teknolojinin uygulanması, konuşlandırılması ve kullanılabilirliği üzerindeki etkilerine de bakmak gerekir. Kullanılabilirlik, çoğunlukla BT dışı kişiler tarafından kullanılan VoIP eşler arası uygulamalar için hayati önem taşır. Bu nedenle, işlem basit, kullanımı kolay olmalı ve özel altyapı veya kayıt gerektirmemelidir.

ZRTP – bu konudaki yaygara nedir?

ZRTP’nin mucidi Phil Zimmermann, bilgisayar güvenliği alanında tanınmış bir kişidir. En çok, kitlelere güçlü şifreleme, veri güvenliği ve mahremiyet getiren ünlü Pretty Good Privacy (PGP) programıyla tanınır. Phil’in en yeni darbesi olan ZRTP, genellikle IP Üzerinden Ses (VoIP) olarak bilinen ses veya video kullanarak birbirimizle konuşmak için İnternet’i kullandığımızda güvenliği ve gizliliği artırır. Bir kullanıcının bakış açısından, ZRTP’nin kullanımı çok kolaydır ve VoIP programlarında uygulandıktan sonra belirli bir altyapı gerektirmez. ZRTP spesifikasyonunu Phil’in Zfone sayfasında bulabilirsiniz.

ZRTP özellikleri ve özellikleri olmayanlar

ZRTP ve GNU ZRTP uygulaması, iletişim programlarına özellikler sağlar.

  • Ek altyapı, sunucu programları, kayıt ve benzeri işlemler olmadan güvenli ses ve görüntü oturumları kurma,
  • Bir oturumun güvenli olup olmadığı konusunda kullanıcıyı bilgilendirmek, sorunlar ve bunların ciddiyeti hakkında bilgi vermek,
  • Hackerların oturumu kurcalayıp değiştirmediğini tespit etmek için kullanımı kolay bir yöntem sağlar.

ZRTP’nin sağlamadıkları:

  • ZRTP, son kullanıcıların kimliğini otomatik olarak doğrulayamaz; bu, birbirleriyle konuşmaya başladıklarında kullanıcıların görevidir;
  • Ve son olarak, ZRTP sağduyunun yerini alamaz: doğru kişiyle konuştuğunuzu kontrol edin ve ardından SAS’ı kontrol edin.

ZRTP ve iletişim programları

ZRTP bağımsız çalışamaz ve güvenli iletişim sağlayamaz. Bunun yerine, iletişim programları, RTP yığınlarıyla birlikte ZRTP uygulamasını kullanır; programlar, sesli/görüntülü aramalar kurmak ve ZRTP ile birlikte çalışmayı sağlamak için gereken kullanıcı arabirimini ve diğer özellikleri sunar.

Nasıl çalışır?

Prensip olarak ZRTP, SRTP ana anahtarlarını müzakere etmek ve ayarlamak ve SRTP moduna geçmek için üç aşama kullanır:

  1. keşif aşaması – eşlerin ZRTP’yi destekleyip desteklemediğini tespit edin;
  2. anahtar anlaşma aşaması – anahtar malzemeyi değiş tokuş edin;
  3. güvenli aşama – kriptografik verileri onaylayın ve SRTP moduna geçin.

İlk aşamada, her iki ZRTP eşi de simetrik kriptografik algoritmalar, anahtar anlaşma algoritmaları ve destekledikleri kimlik doğrulama modları hakkında bilgi alışverişinde bulunur.

Bir sonraki aşamada, eşler kendi Diffie-Hellman değerlerini üretir ve Diffie-Hellman anahtar çiftinin genel kısmını değiştirir. ZRTP, her oturum için yeni Diffie-Hellman anahtar çiftlerinin oluşturulmasını gerektirir. ZRTP, uzun ömürlü anahtarlar kullanmaz. Bu konular hakkında daha fazla bilgi için lütfen temel süreklilik ve kurtarma yanıtlarına bakın.

Eşler, bu değerlerle birlikte, Retained Secrets (RS) gibi diğer sırları veya farklı bir parola gibi bir sırrı (iletişim programının uygulanmasına bağlı olarak) değiş tokuş edebilir. ZRTP, mevcut tüm sırları kullanır ve SRTP ana anahtarlarını oluşturmak ve türetmek için bunları akıllıca birleştirir. Birkaç önemli verinin birleşimi, bir saldırganın değerleri tahmin etmesini çok zorlaştırır.

ZRTP, SRTP anahtar verilerini hesapladıktan sonra, ZRTP, anahtar anlaşmasının başarılı olup olmadığını kontrol etmek için bazı onay verilerini değiştirir. Son adımda ZRTP, SRTP şifreleme bağlamını kurar ve standart RTP’den SRTP moduna geçer.

RTP, SRTP ve ZRTP İlişkisi

RTP, iki eş arasında ses veya video akışları gibi medya verilerini değiş tokuş etmek için birincil protokoldür. RTP veri paketleri, sabit bir başlık parçasından, isteğe bağlı bir değişken başlık bölümünden, isteğe bağlı bir değişken uzantılı başlık bölümünden ve değişken uzunluktaki bir veri bölümünden oluşur. RTP spesifikasyonu (RFC 3350) ve beraberindeki RTP profili spesifikasyonları, başlık ve veri bölümlerinin nasıl doldurulacağını açıklar.

Tanıtıcı bir RTP oturumu tek yönlüdür. Bu nedenle, iki eş her iki yönde de veri alışverişi yapmak istiyorsa, iki RTP oturumu ayarlamaları gerekir. Bu, güvenlikle ilgili önemli bir gerçektir (aşağıya bakın).

SRTP kesinlikle kendi başına bir protokol değil, bir RTP paketinin nasıl korunacağına ve şifreleneceğine ilişkin bir belirtimdir. SRTP (RFC 3711) tanımlar

  • gizli dinlemeye karşı korumak için bir RTP paketinin hangi bölümlerinin şifrelenmesi gerektiği,
  • veri manipülasyonunu tespit etmek için hangi iddiaların doğrulanması gerektiği,
  • hangi şifreleme algoritmalarının ve şifreleme modlarının kullanılacağı,
  • anahtarların nasıl oluşturulacağı, anahtarların nasıl yenileneceği vb.

SRTP belirtimi ayrıca bir kriptografik bağlamın kurulmasını ve sürdürülmesini tanımlar. Bu bağlam, güvenlik işlemlerini gerçekleştirmek için gerekli tüm verileri içerir; örneğin, SRTP şifreleme anahtarları, paket sırası sayaçları, kimlik doğrulama anahtarları vb. Her SRTP oturumunun, bir RTP oturumuyla aynı olan kendi bağlamı vardır. Bu nedenle, çift yönlü bir SRTP iletişimi, iki farklı SRTP şifreleme bağlamı gerektirir.

ZRTP, verilerini değiş tokuş etmek için RTP oturumlarını kullanan kendi başına bir protokoldür. ZRTP’nin tek amacı, eşler arasında anahtarlar ve kriptografik algoritmalar üzerinde anlaşmak ve bu anahtarları ve algoritmaları kullanarak SRTP kriptografik bağlamını kurmak için veri üretmektir. Böylece ZRTP, SRTP’nin yerine geçmez, ancak SRTP’yi kolayca kullanmak için bir etkinleştiricidir.

SRTP şifreleme bağlamı ayarlandıktan sonra, ZRTP ortadan kalkar ve bant genişliği veya CPU döngüleri gerektirmez.

Karşı tarafın programı ZRTP’yi desteklemiyorsa ne olur?

ZRTP, keşif aşamasında bunu algılayacak ve kullanıcıyı bu gerçek hakkında bilgilendirebilir. ZRTP bu durumda güvenli bir RTP oturumu kuramaz.

Bu nedenle, ZRTP’nin her zaman etkinleştirilmesi güvenlidir. ZRTP, karşı tarafın iletişim programının da ZRTP’yi desteklediğini tespit eder etmez otomatik olarak anahtar görüşmesini başlatır ve güvenli RTP kanalları kurar.

ZRTP anahtar sürekliliğini destekliyor mu?

Evet. İki kullanıcı (ve cihaz) arasındaki ilk başarılı anahtar anlaşmasının ardından, ZRTP bazı verileri (Retained Shared Secrets – RS) hesaplar ve bu verileri kullanıcıların cihazlarında bir önbellek dosyasında depolar. Adına rağmen, bu veriler gizli değildir, ancak anahtar sürekliliğini uygulamak ve diğer anahtar değiş tokuşlarının doğrulanmasını basitleştirmek için kullanılır. Kullanıcılar tekrar arar ve aynı cihazı kullanırsa, ZRTP bunu algılar ve anahtar değişimini doğrulamak için önbelleğe alınmış RS verilerini kullanır. Bu doğrulama başarısız olursa, ZRTP bunu bildirir ve kullanıcılar Kısa Kimlik Doğrulama Dizisini karşılaştırır – bu cevaba bakın.

Kullanıcı ZRTP önbellek dosyasını silerse veya cihazı bozarsa bu tür davranışlar meydana gelebilir. Bu nedenle, gerçek bir güvenlik sorunu değil – sadece küçük bir rahatsızlık.

Ben veya başka biri bir anahtarı kurtarabilir mi?

Bunun basit bir cevabı var: Hayır, her iki kullanıcı da ZRTP müzakere aşamasında Ortadaki Adam (MitM) saldırısının gerçekleşmediğinden emin olduysa. Bu basit bir prosedür: Kısa Kimlik Doğrulama Dizisini karşılaştırın – SAS’a bakın.

ZRTP anahtarları oluşturup müzakere ettiği için kimse onları bilmez. Böylece kullanıcılar bile anahtarları bilmedikleri için söyleyemezler. GNU ZRTP uygulaması, oluşturulan anahtarları dahili belleğinin dışında depolamaz ve belirli bir veri artık kullanımda değilse, belleği mümkün olan en kısa sürede temizler.

ZRTP, SIP, XMPP veya diğer sinyalleşme protokollerini gerektirir mi?

Hayır. ZRTP, verilerini değiş tokuş etmek için RTP oturumunu kullanır. RTP oturum iletişimini kurmak için programlar, tarafların RTP oturum adreslerini ve diğer gerekli bilgileri değiş tokuş etmek için SIP veya XMPP dahil olmak üzere herhangi bir mekanizmayı kullanabilir.

Basit noktadan noktaya RTP oturumları kullanan küçük bir ZRTP etkin iletişim programı bile kullanabilirsiniz. Ancak elbette bu durumda aranan tarafın tüm gerekli adres verilerine ihtiyacınız var.

ZRTP benim hakkımda veri saklıyor mu? Örneğin, kullanılmış anahtarları saklıyor mu?

ZRTP protokolü belirtimi, veri depolama gerektiren özellikleri tanımlar. Bu veriler anahtar içermez; bir kişiyi tanımlamaz ve anahtarları kurtarmak için kullanılamaz. ZRTP verileri genellikle ZRTP önbellek dosyası olarak adlandırılır.

ZRTP, ZRTP tanımlayıcısı, SAS doğrulama durumu, saklanan paylaşılan sır (RS) ve diğerlerinden oluşan durum bilgilerini depolar.

Bu dosyanın konumu, iletişim programının uygulanmasına bağlıdır.

ZRTP tanımlayıcısı nedir?

ZRTP tanımlayıcısı (ZID), cihazın kombinasyonunu ve iletişim programı örneğini tanımlayan rastgele bir sayıdır. ZRTP, aynı cihazı/iletişim programını içeren oturumları tanımlamak için bu tanımlayıcıyı kullanır ve bu oturumlar için durum bilgilerini depolar.

Tutulan Paylaşılan Sır (RS) nedir?

İlk ZRTP anahtar anlaşmasının sonunda, GNU ZRTP sonraki oturumlar sırasında bir MitM saldırısını ve diğer sorunları (örneğin ağ sorunları) algılamasını sağlayan Tutulan Paylaşılan Sırları (RS) hesaplar ve depolar. Ancak ZRTP, RS’yi hesaplamak için karma algoritmalar kullanır. Bu nedenle, RS’yi analiz ederek anahtarları veya diğer ilgili anahtar materyalleri kurtarmak imkansızdır.

ZRTP, önemli müzakereler sırasında anahtar sürekliliğini ve olası hatalardan kurtarmayı sağlamak için her önemli müzakereden sonra RS’yi hesaplar ve günceller.

ZRTP, Ortadaki Adam saldırılarını tespit edip rapor edebilir mi?

Bir cihazın/iletişim programının ilk oturumunda, hiçbir durum verisi mevcut değildir (buraya da bakın) ve ZRTP, Ortadaki Adam (MitM) saldırısını tespit edemez. Bu nedenle, kullanıcılar her zaman SAS’ı kontrol etmeli ve anahtar anlaşmasının doğru olduğunu doğrulamalıdır. İletişim programı şuna benzer bir uyarı mesajı görüntüler: Saklanan paylaşılan sır yok – SAS doğrulanmalıdır.

İlk ZRTP anahtar anlaşmasının sonunda, GNU ZRTP, aynı cihaz/iletişim programına yönelik sonraki oturumlarda olası bir MitM saldırısını algılamasını ve bu saldırı hakkında uyarıda bulunmasını sağlayan Tutulan Paylaşılan Sırları (RS) hesaplar ve depolar. ZRTP olası bir MitM tespit ederse bunu bildirir. Ek olarak, iletişim programı genellikle şuna benzer bir uyarı mesajı verir: Geçerli tutulan paylaşılan sırlar mevcuttur, ancak eşleşme bulunamadı – SAS’ı doğrulamalıdır.

Arkaplan bilgisi
ZRTP, iki iletişim programı arasında anahtar veri alışverişi yapmak için Diffie-Hellman anahtar anlaşmasını kullanır. Ne yazık ki, Diffie-Hellman anahtar anlaşması protokolü, kötü bir adamın iyi adamlar arasında oturduğu ve iletişim yollarını kontrol ettiği sözde Ortadaki Adam (MitM) saldırısına karşı savunmasızdır.

Bu sorunun üstesinden gelmek için ZRTP, kullanıcıların bir MitM’yi algılamasını sağlamak ve kimsenin ZRTP anlaşmasına müdahale etmemesini sağlamak için karşı önlemler tanımlar. ZRTP, basit ama güçlü mekanizmaları tanımlar:

  • Kısa Bir Kimlik Doğrulama Dizesi (SAS) ve
  • Tutulan paylaşılan Sırlar (RS).

SAS nedir ve nasıl kullanılır?

ZRTP, anahtar anlaşması sırasında bir şey olup olmadığını algılamak ve kullanıcıların oturumun bütünlüğünü kontrol etmesini sağlamak için kullanımı kolay bir mekanizma olarak Kısa Kimlik Doğrulama Dizisi (SAS) kullanır.

ZRTP uygulamaları SAS’ı hesaplar ve iletişim programları bunu kullanıcıya kısa metinsel bilgiler olarak sunmalıdır (ZRTP, zorunlu SAS’ın uzunluğunu 4 karakter olarak tanımlar).

Artık her iki kullanıcı da SAS verilerini okuyabilir ve ses bağlantısı üzerinden karşılaştırabilir.

SAS’ı kontrol etmenin mükemmel bir yolu, arayanın SAS’ın ilk iki karakterini, arananın da ikinci iki karakteri okumasıdır. Değerler eşleşirse, hiç kimse ZRTP anahtar görüşme oturumunu kurcalamamıştır. Anlaşmaların karşılaştırılması görüşmenin başında ve normal görüşme sırasında yapılmalıdır.

SAS verilerini doğruladıktan sonra, her iki kullanıcı da SAS’ı doğrulamak için ayarlarsa, her iki kullanıcı da SAS durumunu doğrulanmış olarak ayarlayabilir, ZRTP uygulamaları bu bilgiyi depolar ve sonraki ZRTP oturumlarında kullanır.

ZRTP önbellek dosyası silindi veya bozuk mu?

Bu küçük bir problem. GNU ZRTP, bu aygıt/iletişim kombinasyonu için yeni bir boş önbellek dosyası ve yeni bir ZRTP tanımlaması (ZID) oluşturur. Ardından aramaları her zamanki gibi yapın. Elbette, doğrulanmış tüm SAS bilgileri artık mevcut değildir ve yeniden oluşturulması gerekir (bkz. SAS).

Yeni bir ZRTP önbellek dosyasıyla başlarsanız veya ilk kez bir ortağı ararsanız, GNU ZRTP aşağıdaki uyarıyı bildirir: Kullanılabilir saklanan paylaşılan sır yok – SAS’ı doğrulamalıdır.

ZRTP önbellek dosyası bir hacker tarafından kopyalanır mı?

Bu daha büyük daha önemli olabilir, ancak tehlikeli değildir. GNU ZRTP, iki arayan aynı ZRTP önbellek dosyasını kullansa bile farklı tutulan paylaşılan sırlar üretir – bu durumda, siz ve dosyayı kopyalayan kötü adam. ZRTP, tutulan paylaşılan sırları hesaplamak için rasgele anahtar verilerini kullandığından bu mümkündür.

Bu nedenle, iki ZRTP önbellek dosyası senkronizasyondan çıkar ve bu, ZRTP aynı ZRTP kimliğinden farklı tutulan sırları gördüğü için aranan taraflarda uyarı mesajlarına neden olur. Böyle bir mesaj görürseniz, SAS’ı doğruladığınızdan ve iletişim ortağınızı tanımladığınızdan emin olun.

GNU ZRTP, ZRTP önbellek dosyaları senkronizasyon dışındaysa bu hatayı bildirir: Geçerli tutulan paylaşılan sırlar mevcut ancak eşleşme bulunamadı – SAS’ı doğrulamalıdır.