TLS parmak izi nedir?
TLS parmak izi, bir istemcinin TLS bağlantısını açarken gönderdiği ilk mesajdan türetilen kısa bir kimlik damgasıdır. Bu mesaja ClientHello denir. Mesaj istemci yazılımının (tarayıcı, curl, bir Python kütüphanesi) hangi seçenekleri desteklediğini listeler ve her yazılım bu listeyi kendi tercih sırasıyla yazar. Listeyi özetlerseniz yazılım yığınına özgü bir damga elde edersiniz.
Bu damga şunu söyler: "bu bağlantı, şu aileden bir TLS yığınından geliyor." Şunu söylemez: "bu bağlantıyı şu kişi kurdu" veya "bu kişi kötü niyetli." Aradaki fark, parmak izini doğru kullanmanın temelidir.
ClientHello'da ne bulunur?
TLS 1.3 el sıkışması RFC 8446 ile tanımlıdır. ClientHello şifrelenmeden gönderilir ve parmak izi için kullanılan alanları taşır:
- Protokol sürümü. İstemcinin önerdiği TLS sürümü.
- Şifre takımları (cipher suites). İstemcinin desteklediği şifreleme algoritmaları, tercih sırasıyla.
- Uzantılar (extensions). SNI, ALPN, desteklenen gruplar, imza algoritmaları gibi isteğe bağlı özellikler.
- Eliptik eğriler ve nokta biçimleri. Anahtar değişiminde kullanılacak eğri grupları.
- ALPN. İstemcinin konuşmak istediği uygulama protokolü, örneğin
h2veyahttp/1.1.
Sunucu bu alanları değiştirmeden okur. Pasif bir ölçüm, bağlantıyı yavaşlatmadan parmak izini çıkarabilir.
JA3 nasıl çalışır?
JA3, Salesforce ekibinin yayımladığı yöntemdir. Beş alanı ondalık sayı olarak birleştirir ve MD5 özeti alır: TLS sürümü, şifre takımları, uzantılar, eliptik eğriler ve eliptik eğri nokta biçimleri. Alan içi değerler tire ile, alanlar virgülle ayrılır. Sonuç 32 karakterlik bir özettir.
JA3'ün güçlü yanı basitliğidir. Zayıf yanı sıraya duyarlı olmasıdır. Chrome'un uzantı sırasını rastgele karıştırmaya başlamasıyla aynı tarayıcı sürümü çok sayıda farklı JA3 üretir. Bu, JA3'ü tarayıcı tanımada zayıflattı. Rastgeleleştirme olmayan yığınlar için (birçok HTTP kütüphanesi, bot aracı) JA3 hâlâ kararlıdır.
JA4 nasıl çalışır?
JA4, FoxIO'nun geliştirdiği ve JA3'ün sınırlarını gidermeyi hedefleyen ailedir. JA4 parmak izi JA4_a_b_c biçiminde üç parçadır:
- a: okunabilir bölüm. Taşıma türü (TCP veya QUIC), TLS sürümü, SNI olup olmadığı, şifre takımı ve uzantı sayısı, ALPN.
- b: sıralanmış şifre takımlarının kısaltılmış özeti.
- c: sıralanmış uzantıların ve imza algoritmalarının kısaltılmış özeti.
Sıralama sayesinde uzantı sırasını karıştırmak parmak izini değiştirmez. Okunabilir a bölümü ise analist için ek değer sunur: ham özete bakmadan bağlantının sürümünü ve ALPN'sini görürsünüz. Böylece parmak izlerini gruplayabilir, yeni bir yığını fark edebilirsiniz.
HTTP/2 parmak izi nedir?
TLS parmak izi el sıkışmayı, HTTP/2 parmak izi ise bağlantı kurulduktan sonraki ilk ayarları ölçer: SETTINGS çerçevesi değerleri, WINDOW_UPDATE boyutu, öncelik çerçeveleri ve başlık sırası. Akamai tarzı biçim bu değerleri tek bir dizgede toplar. Her tarayıcı bu değerleri kendi ayarına göre gönderir, bu yüzden TLS'e ek ikinci bir bağımsız katman olur. İkisi birbirini tutmuyorsa (örneğin Chrome gibi görünen TLS ile Chrome'a benzemeyen HTTP/2 ayarları), bu anlamlı bir uyarıdır.
Parmak izi pratikte nasıl görünür?
JA4 dizgesi şuna benzer bir biçimdedir: t13d1516h2_8daaf6152771_b186095e22b6. Birinci bölüm t13d1516h2 şunu okutur: TCP üzerinde (t), TLS 1.3 (13), SNI var (d), 15 şifre takımı, 16 uzantı, ALPN h2. Sonraki iki bölüm sıralı listelerin kısaltılmış özetleridir. Bu dizge yalnızca biçimi göstermek için verilmiştir; gerçek değerler istemciye ve sürüme göre değişir.
Analist için en yararlı iş akışı şöyledir: sitenize gelen parmak izlerini sayın, en sık görülenleri bilinen tarayıcılarla eşleştirin, nadir ve yeni olanları inceleyin. Bir parmak izi yüzlerce farklı IP'den geliyorsa ve doğrulamayı neredeyse hiç geçemiyorsa, bu bir bot aracının imzası olabilir.
Hangi durumlarda yanıltıcı olur?
- TLS sonlandıran ara cihazlar. Kurumsal güvenlik proxy'leri bağlantıyı yeniden kurar. Sunucuya ulaşan parmak izi tarayıcınınki değil, proxy'ninkidir.
- Tarayıcı güncellemeleri. Yeni sürüm yeni parmak izi demektir; eski listeler kullanıcıları yanlış işaretleyebilir.
- Nadir ama meşru istemciler. Eski cihazlar, gömülü sistemler, komut satırı araçları ve izleme servisleri alışılmadık parmak izleri taşır.
- Uygulama içi tarayıcılar. Mobil uygulamalardaki web görünümleri sistem yığınını kullanır ve masaüstü tarayıcıdan farklı görünür.
Parmak izleri neyi kanıtlar?
| Kanıtlayabilir | Kanıtlayamaz |
|---|---|
| Hangi TLS yığın ailesi konuşuyor | Kullanıcının kimliği |
| User-Agent ile TLS yığınının uyumsuzluğu | Kullanıcının niyeti |
| Bilinen bir bot aracının imzası | Aynı parmak izinin tek kullanıcıya ait olduğu |
| Beklenmedik yeni bir yığının ortaya çıkışı | İstemcinin taklit edilmediği |
Örnek: istek Mozilla/5.0 ... Chrome/... User-Agent'ı taşıyor ama parmak izi bir Python HTTP kütüphanesine ait. Bu uyumsuzluk güçlü bir ipucudur. Ters örnek: parmak izi Chrome'a ait, ama bu bir bot olmadığını göstermez. Gerçek Chrome'u otomasyonla süren bir bot da aynı parmak izini üretir.
Ayrıca parmak izleri paylaşılır. Kurumsal bir ağdaki yüzlerce çalışan, aynı tarayıcı sürümüyle aynı parmak izini üretir. Tek başına yaptırım uygulamak bu kullanıcıları cezalandırır.
Parmak izi neden taklit edilebilir?
TLS taklit (impersonation) kütüphaneleri gerçek bir tarayıcının ClientHello'sunu ve HTTP/2 ayarlarını birebir yeniden üretir. Saldırgan bu kütüphaneyle isteğinin Chrome gibi görünmesini sağlar. Parmak izi kararlı saldırganı durdurmaz, ama ucuz botları ayıklar: çoğu hazır araç varsayılan yapılandırmasıyla kendini ele verir. Gelişmiş saldırganı yakalamak için davranış ve challenge katmanları gerekir; bkz. bot koruması ve CAPTCHA alternatifleri.
Parmak izini güvenle nasıl kullanırsınız?
- Tek sinyal olarak kullanın. Parmak izini bir risk skoruna ekleyin, ayrı bir blok kuralı yapmayın.
- Gölge kipiyle başlayın. Önce kaydedin, puan eklemeyin. Gerçek trafikte hangi parmak izlerinin meşru kullanıcılara ait olduğunu görün.
- Paylaşılan parmak izlerini listeleyin. Çok sayıda farklı IP'den gelen yaygın parmak izleri tarayıcıdır; engellemeyin.
- Kaydı güncel tutun. Tarayıcı sürümleri değişir, parmak izleri eskir.
- Yanlış pozitifleri izleyin. Engellenen meşru kullanıcıların şikayetleri en doğrudan geri bildirimdir.
Nexren Shield bunu nasıl ele alır
Nexren Shield JA3/JA4 pasif TLS parmak izlerini ve HTTP/2 (Akamai tarzı) parmak izlerini toplar. Bunlar tek başına bir engelleme kuralı değildir; doğrulama anındaki risk değerlendirmesine girer:
- UA-TLS uyumsuzluk faktörü. User-Agent ile TLS yığını birbirini tutmuyorsa skor yükselir.
- Öğrenilen kötü yığınlar. Doğrulamayı neredeyse hiç geçemeyen TLS yığınlarının öğrenilmiş bir listesi (
bad-ja4) skora katkı verir. - Gölge kipi. Parmak izi kaydedilir ama skora puan eklemez; yaptırıma geçmeden önce etkiyi görürsünüz.
Dürüst sınır: parmak izi skorun yalnızca bir parçasıdır. TLS taklit kütüphaneleriyle üretilmiş bağlantılar bu sinyali geçebilir; bu yüzden davranış telemetrisi ve zaman kilitli proof-of-work challenge'ı ile birlikte çalışır. Genel mimari için Nexren Shield nedir, saldırı imzalarını yakalayan katman için WAF nedir rehberine bakın.
Kaynaklar
İlgili ürün sayfaları:Teknoloji
Sık sorulan sorular
JA3 ile JA4 arasındaki temel fark nedir?
JA3 alanları sırasıyla birleştirip MD5 özeti alır; sıra değişirse parmak izi değişir. JA4 bazı alanları sıralayarak özetler ve başındaki bölümü okunabilir bırakır, bu da gruplamayı ve incelemeyi kolaylaştırır.
Parmak izi bir kullanıcıyı tanımlar mı?
Hayır. Aynı tarayıcı sürümünü kullanan milyonlarca kişi aynı parmak izini üretir. Parmak izi yazılım yığınını gösterir, kişiyi değil.
Saldırgan parmak izini taklit edebilir mi?
Evet. TLS taklit (impersonation) kütüphaneleri gerçek bir tarayıcının ClientHello'sunu birebir üretebilir. Bu yüzden parmak izi tek başına güvenlik sınırı olamaz.
Gölge (shadow) kipi ne işe yarar?
Parmak izi kaydedilir ama skora puan eklemez. Böylece gerçek trafikte yanlış pozitif oranını görür, ardından yaptırıma geçersiniz.
TLS 1.3 parmak izini etkiler mi?
ClientHello TLS 1.3'te de şifrelenmemiş olarak gider, bu yüzden parmak izi alınabilir. Ancak Encrypted Client Hello yaygınlaşırsa bu alanlar görünmez hale gelebilir.
İlgili rehberler
Bot Koruması ve CAPTCHA Alternatifleri: Yöntemler Karşılaştırması
Bot koruması üç soruya cevap arar: istemci gerçek bir tarayıcı mı, davranışı insana benziyor mu, istek itibarlı bir kaynaktan mı geliyor.
WAF nedir? Web uygulama güvenlik duvarı nasıl çalışır
WAF (web uygulama güvenlik duvarı), uygulamanıza giden HTTP isteklerini kurallara göre inceler ve SQL injection, XSS gibi saldırıları uygulamaya ulaşmadan engeller.
Nexren Shield nedir? Ters proxy tabanlı web güvenlik servisi
Nexren Shield, web uygulamalarınızın önüne oturan bir ters proxy güvenlik servisidir.
Ters proxy nedir? Reverse proxy mantığı, TLS ve güvenlik
Ters proxy, istemcilerin bağlandığı ve istekleri arkadaki sunucuya ileten ara katmandır.