URL Signing ürünü, Web Sunucu üzerinden yayınlanan içeriklere sadece yetkilendirilmiş kullanıcıların erişimini sağlamak üzere geliştirilmiştir bir güvenlik yazılımıdır.
URL Signing ürünü, Web Sunucu üzerinden yayınlanan içeriğe sadece yetkilendirilmiş kullanıcıların erişimini sağlamak üzere geliştirilmiştir. Uygulama; Applikasyon Sunucusu, İstemci ve Web Sunucu için 3 farklı modülden oluşmaktadır. Aplikasyon sunucusu, yetkisi onaylanan kullanıcıya; IP, Zaman ve Sayaç bilgilerini barındıran AES128 bit şifreleme tekniği ile oluşturulmuş bir anahtar verir. İstemci kendisine gelen anahtarı kendi özel anahtarına göre tekrar şifreler (bu işlem ile istemcinin simule edilerek aplikasyon sunucusundan alınan anahtarların kullanımının engellenmesi hedeflenmektedir). İstemci, yayın almak için Web  sunucuya gideceği zaman, yayın linkine kendisindeki anahtarı da ekleyerek gönderir. Web sunucu istemcinin gönderdiği linkte bulunan anahtarı alarak aşağıdaki şekilde kontrol eder :
  • IP Kontrolü :  İstemcinin Aplikasyon sunucusuna gittiği IP adresi ile Web  makinesine gittiği IP adresleri karşılaştırılır. Kullanıcı, kendisi için aldığı anahtarı bir başkası ile paylaşıp linkleri simüle etmesi durumunda IP kontrolünden geçemeyecektir.
  • Zaman Kontrolü : Alınan anahtarların bir yaşam süresi vardır. İstemci, Aplikasyon sunucusundan istekte bulunduğu ?zaman değeri? anahtar içerisine yazılır. Web sunucu gelen anahtar içindeki zamanı güncel zaman ile kontrol ederek, parametrik olarak tanımlanan zaman değeri ile karşılaştırır ve buna göre yayına izin verir.
  • Sayaç Kontrolü : Aplikasyon sunucu her verdiği anahtar için sürekli artan bir değer atamaktadır. Web Sunucu anahtar içindeki sayaç değerini tutar ve yeni gelen isteklerdeki sayaç değerleri ile karşılaştırır. Yeni gelen istekte bulunan sayaç değerinin  farkı parametrik olarak tanımlanan sayaç değer toleransından büyük olması durumuna göre yayına izin verilir.
Şifre oluşturma ve çözümleme işlemleri AES 128bit standartında yapılmakta olup, fonksiyonlar özel olarak geliştirilmiştir. Generic bir kütüphaneden faydalanmadan özel fonksiyon tasarlanması, tüm işlemlerin hızlı bir şekilde tamamlanmasını sağlamaktadır.


Sorular - Cevaplar
3 modülden herhangi birinde değişiklik yapılmak istendiğinde, diğerlerinin de güncellenmesi gerekiyor mu?
Hayır. Şifreleme fonksiyonları sabit olup değişmeyecektir. Kullanılan anahtarlar ise parametrik olarak tanımlanmaktadır. Herhangi bir modülde değişiklik yapılmak istenirse sadece o modülü güncellemek diğer modüllerin çalışmasını engellemeyecek şekilde tasarlanmıştır.

Uygulamayı Web Sunuculara kurmak için ne yapmak gerekiyor?
Handler uygulamasının setup dosyası bulunmaktadır, sadece setup yaparak kurulum tamamlanabilmektedir.

Web Stream Server tarafında performans kaybı yaşanır mı?
Hayır, performans değerleri; url string ve encrypt ile ilgili tüm fonksiyonları kapsamaktadır, network ve diğer işlemleri bu değerler içine girmemektedir. Tek işlemcili bir makinede ~ 1 milyon istek Web Sunucu tarafından handle edilememektedir. Default olarak bir Web Aplikasyonunun Queue Length değeri 1000’dir, 1000 isteğin kontrol edilmesi 1. Makine performans değerine göre yaklaşık 1 milisaniye tutmaktadır. Bir Stream serverin, 1 Gigabitlik çıkış hesabına göre yaklaşık saniyede 5.000 ile 20.000 request alması beklenirse bu değerlere göre kontrol işlemi 5 ? 19 milisaniye tutmaktadır.

Performans değerlerinin bu kadar hızlı çıkması doğru mu?
Evet, bunun nedeni, AES şifreleme standartı bu tarz uygulamalar için kullanılan ve tasarlanan hızlı bir algoritmadır, ayrıca Generic bir kütüphane kullanılmadan bu uygulamaya özel olarak C ve Assembler tabanlı kod geliştirildiği için uygulama hızlı çalışmaktadır.

Uygulamayı, Parametrik olarak kaldırmak mümkün müdür?
Evet, komut satırı ile parametrik olarak kaldırmak mümkündür.


© 2012 Udav Yazılım