SSTP katmanları açıklandı: iç paket hâlâ neyi açığa vuruyor
SSTP, PPP'yi ve iç paketi TLS içine sarar, ancak dış TCP bağlantısı kimin kiminle konuştuğunu yine de gösterir. Bir yakalamayı okumadan önce her katmanı etiketleyin.
Çoğu açıklamada SSTP hakkındaki iki gerçek birleşir ve yakalamaları kafa karıştırıcı yapan tam da bu birleşmedir. Uygulama paketi korumalı kanalın içinde varlığını sürdürür, o kanalı taşıyan TCP bağlantısı ise baştan sona kendi adreslerini korur. Kablodan geçen şey bir taşıyıcı ve yüküdür, hiçbir zaman ikisinin yerine geçen bir şey değildir. Yığını dışarıdan içeriye doğru yürüyün ve geçtiğiniz her sınırı etiketleyin.
Dış taşıyıcıdan başlayın
Kablodaki ilk şey 443 numaralı bağlantı noktasına giden sıradan bir TCP bağlantısıdır ve yönlendiricilerin ilettiği gerçek adresler taşır. Ağ adresi çevirisinden sağ çıkan ve bir erişim sağlayıcısının sayabildiği şey tam olarak bu bağlantıdır. Yükü korumak taşıyıcıyı ortadan kaldırmaz ve hacmi ya da zamanlamayı gizlemez.
Bu noktadan sonraki her şey yönlendirilmek yerine taşınır. İç alışveriş başarısız olsa bile taşıyıcı çalışmaya devam eder.
Sarmalamayı içeriye doğru izleyin
Korumalı kanalın içinde bir SSTP denetim alışverişi, ardından bir PPP oturumu ve ardından istemcinin teslim edilmesini istediği ağ paketi bulunur. Her katmanın kendi pazarlığı, kendi hata iletileri ve kendi durum makinesi vardır. Bu yüzden bir arıza bir bakış açısından TLS arızası, diğerinden PPP arızası gibi görünebilir. Katmanları sırayla okumak hangi durum makinesinin durduğunu söyler.
Tek bir yakalama bütün yığını nadiren gösterir. Dış başlıklar yalnızca uç noktanın dışında görünür, iç başlıklar ise ancak sarmal çözüldükten sonra. Bu asimetri protokolden değil, durduğunuz yerden gelir.
Aşağıdaki şema katmanları gruplar ki en azından tartışılabilsinler. Bir bayt düzeni değildir, paket başına tek kayıt vaat etmez ve bir uygulamanın kaç kriptografik işlem yaptığı hakkında hiçbir şey söylemez.
outer IP header
TCP to port 443
TLS record layer
SSTP control and data packets
PPP frames
inner IP packet
application transport and payload
Bir yakalamayı okumadan önce gözlemciyi etiketleyin
Aynı oturumun iki yakalaması farklı soruları yanıtlar ve hangi soruları yanıtlayacaklarını alındıkları arayüz belirler. Erişim yolunda taşıyıcıyı ve TLS kayıtlarını görürsünüz, iç adresi görmeden boyutları ve aralıkları ölçebilirsiniz. Uç noktada, sarmal çözüldükten sonra iç paket, özel iletme ilkesi altındaki sıradan trafiktir.
Her yakalamayı yorumlamadan önce üzerine arayüzü ve yönü yazın. Fiziksel bir bağdaştırıcıdan alınan iz, iç uygulamanın adreslerini sıradan dış alanlar olarak asla göstermez ve bu yokluğu bir şifreleme arızası olarak okumak yaygın bir hatadır. Tünelin içinden alınan iz hiçbir taşıyıcı göstermez, bu yüzden sağlayıcının görüşü hakkındaki bir soruyu yanıtlayamaz. Aynı disiplin uç noktanın günlükleri için de geçerlidir; onlar içeriği değil pazarlık sırasını kaydeder.
Şemanın kanıtlayamadığı denetimleri koruyun
Katman sırası, bir kurulumun sunucu sertifikasını doğruladığını, desteklenen bir TLS sürümü üzerinde pazarlık ettiğini ya da hesabı yetkilendirdiğini kanıtlamaz. Bunların her biri sarmalamadan bağımsız olarak başarısız olan bir yapılandırma kararıdır.
Bunları bir çizimden akıl yürütmek yerine ne üzerinde pazarlık ettiğini bildiren bir istemciyle doğrulayın. TLS el sıkışmasıyla başlayın, sonra SSTP alışverişi, sonra PPP ve hata bildiren ilk aşamada durun. İlk komut zinciri ve pazarlık edilen sürümü yazdırır, ikincisi bir yakalamada bulunan el sıkışmaları listeler.
openssl s_client -connect vpn.corp.internal:443 -servername vpn.corp.internal
tshark -r sstp.pcap -Y "tls.handshake.type == 1"