Merhabalar , 2014 yılında yazmıştım bu blogu. O zaman daha yeni yeni popülerleşen bir konuydu online eğitim. covid sürecinde iyice popüler oldu
güncel konu için ve demo için
http://emrekaratasoglu.com/php-freelance-video-indirmeyi-engellemenin-yollari-2020/:
Eğitim sistemleri ve online eğitimler popülerleşmeye başladı. İnternet fiyatlarının düşmesi ( Türkiye için hâla çok fahiş fiyatlar olmasına rağmen , yurtdışı serverlarında 1Gbit , 10 Gbitlik hatları çok çok ucuza alabilme fırsatı var ) sayesinde artık progresive download yerine videolar stream olarak yayınlanmakta . Bu kapsamda Görüntülü Akademi , Doping Hafıza, Uzman Hafıza gibi firmalar bu alanlarda çalışmaları başlattılar ve online eğitime geçtiler. Buradaki en önemli ve en değerli şey Videoların güvenliği, çünkü videolar üzerinden maddi gelir dönmekte. Hâl böyle olunca yayın güvenliği önem arzediyor. Internet download manager ya da youtube download vb programlarla stream edilen bir videoyu kaydetmek çok kolay. Ancak bunu engellemenin yolları da mevcut . Video indirmeyi engellemek yapılması gereken ilk şey ENCRYPTION.
Yayın ile uğraşanlar RTMP ile flash üzerinden yayın yapmışlardır, playerları sayesinde linkleri gizleseler bile hâla yayınlarını indirilebilmektedir. Bu konuda ben ise RMTPE ve RTMPS kullanmaktayım. Wowza Media Server’ın Sunduğu olanaklarla custom bir kod geliştirdim ve bu kod yayını şifreli gönderiyor, alıcı bu şifreyi çözebilmek için gizli şifreye ihtiyaç duyuyor. [ bu kısım 2020 itibariyle geçersizdir, 2020 sonunda flash bitiyor ]
Aynı zamanda HLS ve MPEGDASH şifreli yayınlar da üretmekteyim. [ 2020 updated]
Buradaki genel topolojimiz aşağıdaki resimdeki gibidir.
Burada
RTMP için Adobe media serverdan süre gelen bir RTMPE mevcuttu.
Rtmpe , varolan yayın datasını çok performanslı şekilde şifreliyor , client şifreli datayı alıyor ve oynatıcı sayesinde şifreli data çözümleniyordu .
Basit manada videonun saniyede giden parçasının
“emre” olduğunu düşünürseniz, elimizdeki gizli anahtar ile ( private key ) bu datayı şifreliyoruz. Data “kW125kFKSAFKQWPO12LlL” şekline dönüşüyor. Böyle olunca yayın , yayın kaydetme indirme programları tarafından yakalanamıyor çünkü yayının headeri değiştirilmiş durumda. Oldu ki yayın linkine bile ulaşılsa
rtmp://ip_adres/vod/mp4:ders-icerigi.mp4 linkini almış bile olsak RTMPDUMP , FFMPEG vb programlarla bu yayın asla indirilemiyor.
Sadece geliştirdiğimiz player tarafından oynatılıyor çünkü playerda da o gizli key mevcut.
Playera “kW125kFKSAFKQWPO12LlL” data tekrar “emre” metnine dönüştürülüyor.
Rtmpe en kolay ve en güvenli yayın güvenliği alma yöntemidir.
Link çalınsa bile kişinin karşılaşacağı hata ve server logu şekildeki gibi olmaktadır.
Ancak bu kısımda
RTMPS de çıkıyor. Bu da Ssl ile şifrelemenin yapılması. Ancak bu yöntemler 2019-2020 itibariyle geçersiz.
Artık HTML5 üzerinde HLS js pluginleriyle HLS oynatmak gerekiyor. %100
Video indirmeyi engellemenin tek yolu bu ancak karşımıza bu kezde yayını cep telefonu vs ile çekerse ne olacak durumu çıkıyor. bunun İçinde ekran üzerine ligtv nin yaptığı gibi şifre bastırıyoruz. TC KİMLİK NO ya da kişiyi tanımlayacak birşey, ve bu surekli yer değiştiriyor 😀
Baktık ki buna rağmen kişi Camtasia manycam gibi masaüstü capture ve stream eden programlar kullanıyor, bunda da windows tarafından bir masaüstü uygulaması geliştirip websitesinin onun içinde açıyoruz, bu durumda sistem varolan programlardan birini yakalarsa Hoooppp diyor seni banlıyorum 🙂
burada çıkan örnek hata ,
Daha detaylı yayın güvenliği için ileitşime geçebilirsiniz.