“HTTPS proxy” ne demek?#
Terim belirsizdir ve bu belirsizlik ayar yaparken hata yapılmasına yol açar. Birinci anlamda HTTPS proxy, HTTPS adreslere erişim sağlayan herhangi bir HTTP proxy’dir; istemci proxy’ye çoğunlukla düz HTTP ile bağlanır ve şifreli tüneli proxy üzerinden geçirir. İkinci anlamda ise istemci ile proxy arasındaki bağlantının kendisi TLS ile şifrelenir; adres https://proxy.example.com:PORT biçiminde yazılır.
| Anlam | İstemci → proxy bağlantısı | Proxy → hedef | Adres biçimi |
|---|---|---|---|
| HTTPS siteleri geçiren proxy | Genellikle düz HTTP | Uçtan uca TLS tüneli | http://proxy.example.com:PORT |
| TLS ile erişilen proxy | TLS ile şifreli | Uçtan uca TLS tüneli | https://proxy.example.com:PORT |
CONNECT tüneli nasıl kurulur?#
HTTPS trafiği proxy tarafından okunamaz çünkü proxy araya girip içeriği yeniden şifrelemez. Bunun yerine istemci, proxy’den hedef sunucuya bir TCP tüneli açmasını ister. Bu isteğin adı CONNECT’tir.
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
Proxy-Authorization: Basic VVNFUk5BTUU6UEFTU1dPUkQ=
HTTP/1.1 200 Connection established- İstemci proxy’ye bağlanır ve
CONNECT hedef:443ister. - Proxy, hedef sunucuya bir TCP bağlantısı açar ve istemciye
200döner. - İstemci ve hedef, tünelin içinden TLS el sıkışması yapar.
- Proxy bundan sonra yalnızca şifreli baytları iki yöne aktarır.
Proxy neyi görebilir, neyi göremez?#
- Görebilir: Bağlandığınız sunucunun adı ve portu, bağlantının ne zaman kurulduğu, aktarılan veri miktarı.
- Göremez: Sayfa içeriği, formlara yazdıklarınız, çerezler ve başlıklar; bunlar tünelin içinde şifrelidir.
- Bir istisna: Sizden kendi sertifikasını yüklemenizi isteyen ve trafiği çözen bir proxy (TLS denetimi yapan kurumsal ağ geçitleri gibi) içeriği görebilir. Bilmediğiniz bir sertifikayı cihazınıza asla yüklemeyin.
TLS sertifikası ve güven#
HTTPS’in güvencesi sertifikalardan gelir. Tarayıcınız bir siteye bağlandığında sitenin sertifikasını güvendiği kuruluşlara göre doğrular. CONNECT tünelinde bu doğrulama doğrudan sizinle hedef site arasında gerçekleşir; proxy araya girmez. Bu, HTTPS proxy kullanmanın en önemli güvenlik avantajıdır: proxy’yi tanımıyor olsanız bile, doğru sertifikayı gördüğünüz sürece içerik üçüncü bir tarafça okunamaz.
Bu güvenceyi bozabilecek tek durum, cihazınıza ek bir kök sertifika kurulmasıdır. Sertifika kuran bir proxy kendi sahte sertifikalarını imzalayarak tüneli açabilir. Kurumsal bilgisayarlarda bu uygulama bilinçli ve duyurulmuş biçimde yapılır; kişisel kullanımda ise böyle bir isteği kabul etmenizi gerektirecek meşru bir sebep yoktur.
Proxy’ye TLS ile bağlanmanın anlamı#
İkinci anlamdaki HTTPS proxy’de, proxy’ye giden ilk bağlantı da şifrelenir. Bunun yararı, kimlik bilgilerinizin (kullanıcı adı ve parola) ağ üzerinde düz biçimde dolaşmamasıdır; ayrıca ağdaki bir gözlemci hangi hedefe CONNECT istediğinizi göremez. Tarayıcıların ve istemci kitaplıklarının bu modu destekleme düzeyi değişir; bu nedenle yeni bir araçta kullanmadan önce küçük bir deneme yapmanız doğru olur.
Ayar yaparken hangi adresi yazmalısınız?#
Çoğu araç proxy adresini bir URL olarak ister. Önemli olan şemadır: şema, proxy’ye hangi dille bağlanılacağını belirtir, hedefin HTTPS olup olmadığını değil. Proxy’niz HTTP ile dinliyorsa https:// yazmak bağlantıyı bozar. Sağlayıcı ya da liste hangi biçimi veriyorsa onu kullanın.
import requests
# Proxy düz HTTP ile dinliyorsa (HTTPS siteleri yine CONNECT ile geçer)
proxy = "http://USERNAME:[email protected]:PORT"
proxies = {"http": proxy, "https": proxy}
r = requests.get("https://api.ipify.org", proxies=proxies, timeout=15)
print(r.status_code, r.text)# Proxy’ye TLS ile bağlanmak gerekiyorsa (proxy bunu destekliyorsa)
curl --proxy https://proxy.example.com:PORT \
--proxy-user USERNAME:PASSWORD \
--max-time 15 \
https://api.ipify.orgHız ve performans üzerine#
CONNECT tüneli kurulduktan sonra proxy yalnızca baytları aktardığı için ek bir şifreleme maliyeti doğurmaz; asıl gecikme, proxy’ye ulaşma süresi ve ilk bağlantının kurulması sırasında oluşur. Proxy’ye TLS ile bağlanıldığında ek bir el sıkışma gerekir, bu da ilk istekte küçük bir gecikme getirir. Birden çok isteği aynı bağlantı üzerinden göndermek (bağlantı yeniden kullanımı) bu maliyeti büyük ölçüde azaltır. Kesin süreler sunucuya ve ağ yoluna bağlıdır; bu yüzden kendi ölçümünüzü yapın.
Sık yapılan hatalar#
- HTTPS site kullanacağım diye proxy adresine
https://yazmak. - SOCKS5 adresini HTTP proxy alanına girmek (protokol uyuşmazlığı).
- Kimlik doğrulama gerektiren proxy’ye bilgi vermeyi unutmak ve 407 yanıtı almak.
- Sertifika uyarısını önemsemeden kabul etmek.
Elinizdeki adresin protokolünü doğrulamak için proxy kontrol aracı kullanılabilir. HTTPS siteleri geçirebilen adaylar için HTTPS proxy listesini inceleyebilirsiniz. HTTP tarafının temelleri için HTTP proxy nedir rehberi, güvenlik tarafı için ise ücretsiz proxy riskleri yazısı faydalı olacaktır.