Ana Sayfa

UniFi Inform Protokolünün Tersine Mühendisliği ile Çoklu Kiracılık

1 dk okuma

Birkaç yıl önce, UniFi kontrolcüleri için barındırma hizmeti sunan bir girişimci, her müşteriye ayrı bir sanal özel sunucu (VPS) tahsis etmenin ekonomik olarak sürdürülemez olduğunu fark etti. Düşük kar marjları, herhangi bir destek talebinin tüm kazancı silip süpürmesine neden oluyordu. Bu durum, birden fazla müşteriyi tek bir paylaşılan altyapı üzerinde barındırmayı sağlayan çoklu kiracılık (multi-tenancy) çözümünü zorunlu kılıyordu. Ancak UniFi kontrolcüleri doğal olarak çoklu kiracılığa uygun değildi; her biri kendi veritabanı ve port bağlamalarıyla izole bir örnek olarak çalışıyordu. Bu durum, gelen trafiği doğru müşteriye yönlendirecek bir yönlendirme katmanına ihtiyaç duyulduğu anlamına geliyordu.

Web arayüzü (port 8443) için ters proxy ile alt alan adları kullanmak kolaydı. Ancak UniFi cihazlarının kontrolcüleriyle iletişim kurduğu ve her 10 saniyede bir veri gönderdiği "inform" protokolü (port 8080) daha karmaşıktı. Bu protokolün yükü AES-128-CBC ile şifrelenmiş olduğundan, trafiği anlamak için cihaz başına şifreleme anahtarlarına ve dolayısıyla kontrolcünün veritabanına erişime ihtiyaç duyulacağı düşünülüyordu. Bu da yine her müşteri için ayrı bir örnek gerektirecekti.

Ancak, inform paketlerinin ilk 40 baytının şifresiz olduğu keşfedildi. Bu şifresiz başlık içinde, cihazın MAC adresi (8. bayt ofsetinden itibaren 6 bayt) açıkça bulunuyordu. MAC adresinin başlıkta yer alması, kontrolcünün şifre çözme işleminden önce cihazı tanımlaması gerektiği pratik bir gereklilikten kaynaklanıyordu. Bu önemli keşif, inform trafiğini şifrelemeye dokunmadan yönlendirmenin mümkün olduğu anlamına geliyordu. Böylece, UniFi cihazlarının farklı kontrolcülere yönlendirilmesi için bir yönlendirme katmanı oluşturulabilir ve çoklu kiracılı bir barındırma çözümü ekonomik olarak uygulanabilir hale getirilebilirdi.

İçgörü

UniFi inform protokolünün başlığındaki şifresiz MAC adresi, çoklu kiracılı UniFi kontrolcü barındırma çözümlerinin geliştirilmesini mümkün kılıyor.

Kaynak