Hiç bir mobil bankacılık uygulamasını, bir yolculuk paylaşımı istemcisini veya herhangi bir modern sosyal platformu proxy üzerinden geçirmeye çalışıp yararlı bir hata mesajı olmadan başarısız olduğunu izlediniz mi? Bu durumla karşılaştıysanız SSL pinning ile tanışmışsınızdır. Geliştirici, uygulamanın güveneceği sertifika parmak izlerini ikili dosyaya sabit kodlamıştır ve proxy'nizin sertifika yetkilisi bu listede yer almaz. TLS el sıkışması tamamlanır, uygulama sertifikayı inceler, tanımadığı bir yayıncı görür ve bağlantıyı sessizce keser.
Özet: Çoğu "HTTPS proxy" pinlenmiş uygulamaları bozar çünkü TLS trafiğinizi keser ve yeniden imzalar. Nodetonet bunu yapmaz — SNI yönlendirmesi kullanarak ham şifreli baytları iletir; böylece uygulamanın pin kontrolü her zaman gerçek sunucu sertifikasını görür.
SSL/TLS sertifika pinning gerçekte ne yapar
Standart bir TLS istemcisi, tanınan bir Sertifika Yetkilisi (CA) tarafından imzalanan herhangi bir sertifikaya güvenir. Varsayılan bir Android kurulumunda bu yaklaşık 150 kök CA'dır. Pinning bunu çarpıcı biçimde daraltır: uygulama, beklediği tam sertifikayı (veya genel anahtar hash'ini) derleme zamanında ikili dosyasına gömer ve başka her sertifikayı reddeder — kaç CA'nın onayladığına bakmaksızın.
Kontrol, TLS el sıkışması tamamlandıktan sonra ancak uygulama verisi akmadan önce istemci tarafında gerçekleşir. Ağ üzerinden görünmezdir. DNS'i manipüle ederek veya başka bir yöntemle onu devre dışı bırakamazsınız. Pinning'i doğru şekilde ele almanın tek yolu baştan sertifika ikame etmemektir.
SSL pinning artık şunlar için standart uygulamadır:
- Mobil bankacılık ve ödeme uygulamaları
- Yolculuk paylaşımı ve yemek teslimatı platformları
- Büyük sosyal ağlar — Instagram, TikTok, Telegram, WhatsApp, Twitter/X hepsi pinler
- Düzenlenmiş veri işleyen sağlık ve kamu uygulamaları
- Düşmanca bir ağın kimlik bilgilerini ele geçirmesinden endişelenen her uygulama
Çoğu "HTTPS proxy" pinlenmiş uygulamaları neden bozar
HTTPS trafiğini incelemenin ucuz yolu ortadaki adam (MITM) yaklaşımıdır: proxy TLS'i sonlandırır, istemciye kendi CA imzalı sertifikasını sunar, ardından gerçek hedefe yeni bir TLS bağlantısı açar ve ikisi arasında veri kopyalar. mitmproxy, Charles, Fiddler ve Burp Suite bunun bu şekilde yapar — CA'yı cihazınıza kurduğunuz hata ayıklama iş akışları için uygundur.
Pinlenmiş uygulamalar için bu bir duvardur. Uygulama, proxy'nin sertifikasını sabit kodlu beklenen sertifika yerine görür görmez bağlantıyı kapatır. Hata iletişim kutusu yok, geri dönüş yok ve uygulamanın pin nedeniyle mi yoksa başka bir nedenle mi başarısız olduğunu dışarıdan söylemenin yolu yok.
Pek çok ticari scraping proxy sağlayıcısı da aynı tuzağa düşer: "HTTPS proxy" olarak tanıtım yapar ama istekleri günlüğe kaydetmek veya önbelleğe almak için MITM yaparlar. Bu yaklaşım sertifika pinning ile temelden uyumsuzdur.
Nodetonet HTTPS proxy'leri bunun yerine nasıl çalışır
Edge sunucularımız SNI yönlendirmesi (şeffaf TLS geçişi de denir) kullanır. Her bağlantıda tam olarak şunlar olur:
- Aracınız TCP üzerinden Nodetonet proxy uç noktasına bağlanır.
- Edge, TLS
ClientHellomesajını okur. Bu mesaj, şifreleme başlamadan önce düz metin olarak gönderilen Sunucu Adı Belirtimi (SNI) uzantısını — bağlandığınız hostname'i — içerir. - Edge o hostname'e TCP bağlantısı açar ve her sonraki baytı her iki yönde olduğu gibi iletir.
- TLS el sıkışması istemciniz ile gerçek sunucu arasında doğrudan tamamlanır. Edge hiçbir şeyi şifresi çözmez.
istemci -- TLS ClientHello (SNI: api.example.com) --> edge
edge -- yalnızca SNI'yi okur, api.example.com:443'e TCP açar
istemci <-- ham TLS baytları, şifre çözme yok --> sunucu
Hiçbir zaman sertifika ikame etmediğimiz için pin kontrolü her zaman gerçek sunucunun sertifikasını görür. Bankacılık, sosyal ve ödeme SDK'ları değiştirilmeden geçer.
Ödünleşim şeffaflıktır: trafik içeriğini inceleyemez, header ekleyemez veya yanıtları yeniden yazamayız. HTTP trafiğini değiştirmeniz gerekiyorsa, pinlenmemiş bir uç noktada şifrelenmemiş HTTP proxy kullanmalısınız. Proxy kullanım durumlarının büyük çoğunluğu — mobil trafik yönlendirme, geo-hedefleme, web scraping — için bu tam olarak doğru ödünleşimdir.
MITM ile SNI geçişinin karşılaştırması
| Özellik | MITM proxy | SNI geçişi (Nodetonet) |
|---|---|---|
| Sertifika pinlenmiş uygulamalarla çalışır | Hayır | Evet |
| İstemcinin özel CA'ya güvenmesi gerekir | Evet | Hayır |
| Uçtan uca şifreleme korunur | Hayır — proxy şifresini çözer | Evet — baytlar asla çözülmez |
| HTTP header enjekte/yeniden yazma | Evet | Hayır |
| Trafik hata ayıklama için kullanışlı | Evet | Hayır |
| Yönlendirme / geo-hedefleme için kullanışlı | Evet | Evet |
| Pin sıkılaştıran uygulama güncellemelerinden sağ çıkar | Hayır | Evet |
Kullanım durumlarınız için ne anlama gelir
- Mobil uygulama otomasyonu. Bankacılık, ödemeler, sosyal — pin kontrolü gerçek sunucu sertifikasını görür. Cihazda veya emülatörde CA kurulumu gerekmez, uygulama değişikliği gerekmez.
- Özel kök CA kurulumu yok. Nodetonet hiçbir zaman yedek sertifika sunmadığından cihazınıza veya emülatörünüze "Nodetonet" CA'ya güvenmeniz istenmeyecektir.
- Uçtan uca şifreleme korunur. Bir edge sunucu tehlikeye girse bile, saldırgan istemcinizle gerçek sunucu arasında yalnızca şifreli metin görür.
- SOCKS5 de eşit ölçüde pin dostudur. SOCKS5 proxy'miz de MITM olmadan ham TCP iletir. Hangisini seçeceğiniz için HTTP vs SOCKS5 kılavuzuna bakın.
- TCP parmak izi ayrı bir endişedir. SNI geçişi sertifika katmanını ele alır. İstemcinizin yaydığı TLS ve TCP parmak izi için TCP parmak izi sahteciliği yazısına bakın.
MITM olmadığını doğrulama
openssl kullanarak bir dakikadan kısa sürede doğrulayabilirsiniz. Nodetonet proxy'niz üzerinden bir bağlantı geçirin ve geri gelen sertifikayı kontrol edin:
openssl s_client -connect example.com:443 -proxy proxy-sunucunuz.nodetonet.com:PORT -servername example.com < /dev/null 2>/dev/null | openssl x509 -noout -subject -issuer
Yazdırılan subject ve issuer, gerçek hedefin sertifika zincirini yansıtmalıdır — Nodetonet'e atıfta bulunan bir şey değil. Ücretsiz proxy checker aracımızı da kullanabilir veya çıkış IP'nizi IP adresim nedir ile doğrulayabilirsiniz. Hiçbir zaman Nodetonet kaynaklı bir sertifika görmelisiniz; görürseniz bu bir hata olur — support@nodetonet.com adresinden destek talebi açın.
SNI geçişinin büyük resme dahil edilmesi
SSL pinning, mobil uygulamaların güvendiği güven katmanlarından yalnızca biridir. Tam resim aynı zamanda uygulamanın arka ucunun kontrol ettiği mobil IP itibarını da içerir. Nodetonet gerçek operatör SIM'lerindeki gerçek Android cihazlar üzerinden geçiş yaptığından, trafiğiniz gerçek 4G/5G ağlarındaki gerçek mobil proxy'lerden çıkar. Bu kombinasyon — gerçek operatör IP'si artı değiştirilmemiş TLS — trafiğin sıradan bir mobil kullanıcıdan ayırt edilmesini imkansız kılan şeydir.
İş akışınız operatör veya şehre göre geo-hedefleme, durum tutan uygulama akışları için sticky oturumlar (kullanıcı adınızda -session-XXXX ile) veya token gruplarıyla bir cihaz havuzunda döndürme içeriyorsa, bunların hepsi SNI geçişinin üstünde temiz çalışır. Yönlendirme katmanı ve TLS katmanı bağımsızdır.
Edge sunucularının veri düzlemini nasıl ele aldığı hakkında daha fazla bilgi için Nodetonet trafiği nasıl yönlendirir yazısına bakın. İlgili HTTPS proxy uygulama ayrıntıları için HTTPS proxy'leri ve SNI yönlendirmesi yazısına bakın.
Başlayın
Pinlenmiş uygulamaları gerçek bir mobil IP üzerinden geçirmeye hazır mısınız? Mobil proxy'leri keşfedin, yukarıdaki herhangi bir terim için proxy sözlüğüne bakın ya da ücretsiz hesap açın ve ilk bağlantınızı dakikalar içinde başlatın. Sorularınız için Discord'da bize ulaşın: discord.gg/nodetonet.