HLS şifreleme AES-128 kullanır ve tüm HLS oynatıcılarla uyumludur. Anahtar yönetimi ve belirteç hizmeti ile birleştirildiğinde, çevrimiçi eğitim ve özel içerik akışı gibi yüksek güvenlik gerektiren senaryolar için uygundur.
Nasıl çalışır
ApsaraVideo VOD zarf şifrelemeyi kullanır. Hizmet sağlayıcı, Alibaba Cloud Key Management Service (KMS) kullanarak bir veri anahtarı (DK) ve bir zarflanmış veri anahtarı (EDK) oluşturur. DK videoyu şifreler ve EDK bunun yanında saklanır. Oynatma sırasında istemci, videonun şifresini çözmek için DK'yı şifre çözme hizmetinden alır.
Şifre çözme URL'sini güvence altına almak için M3U8 şifreleme ve yeniden yazmayı etkinleştirin; bu işlem HLS veri erişim sürecine ek bir koruma katmanı ekler. Varsayılan yeniden yazılan parametre MtsHlsUriToken şeklindedir. Bu özelliğin nasıl etkinleştirileceğini ve nasıl çalıştığını öğrenmek için bkz. M3U8 şifreleme ve yeniden yazma.
Önkoşullar
HLS şifreleme ücretsiz bir hizmettir. Ancak bu özellik video kod dönüştürme gerektirir ve bu işlem ücretlidir. Fiyatlandırma ayrıntıları için bkz. Medya kod dönüştürme faturalandırması.
ApsaraVideo VOD'u etkinleştirdiniz. Talimatlar için bkz. ApsaraVideo VOD'u etkinleştirme.
ApsaraVideo VOD'un Key Management Service (KMS) hesabınıza erişmesine izin verdiniz. Gerekli izinleri Cloud Resource Access Authorization sayfasında verebilirsiniz.
ApsaraVideo VOD'da hızlandırılmış bir alan adı eklediniz. Talimatlar için bkz. Hızlandırılmış alan adı ekleme.
-
Gerekli sunucu tarafı SDK'yı yüklediniz. Daha fazla bilgi için bkz. Sunucu tarafı SDK'lar. Bu konuda örnek olarak Java için SDK kullanılmaktadır.
Anahtar kavramlar
Şifreleme ve şifre çözme iş akışı
Yükleme ve şifreleme iş akışı

Şifre çözme ve oynatma iş akışı
M3U8 yeniden yazma etkin (Önerilen)

M3U8 yeniden yazma devre dışı

Videoyu şifreleme
-
Videonuzu yükleyin ve geri arama alın.
HLS Şifrelemesini destekleyen videoların otomatik olarak kodunun dönüştürülmesini önlemek için, videoları ApsaraVideo VOD'a yüklerken yerleşik No Transcoding şablon grubunu kullanmanız gerekir. Bu işlem yükleme sırasında otomatik kod dönüştürmeyi engeller.
ApsaraVideo VOD konsolunu kullanarak video yüklemek için bkz. ApsaraVideo VOD konsolunda dosya yükleme. Sunucu tarafı API kullanarak video yüklemek için bkz. Medya yükleme.
ApsaraVideo VOD için olay bildirimlerini yapılandırın. Video yükleme tamamlandı olayına ait bir geri arama iletisi, videonun ApsaraVideo VOD'a yüklendiğini gösterir. Olay bildirimlerinin nasıl yapılandırılacağı hakkında bilgi için bkz. Olay bildirimleri.
-
Bir şifreleme hizmeti kurun.
-
Bir hizmet anahtarı oluşturun.
Hizmet anahtarı, KMS'deki birincil şifreleme anahtarıdır ve HLS Şifrelemesi için anahtarlar oluşturmak üzere kullanılmalıdır. Bir hizmet anahtarı oluşturmazsanız GenerateKMSDataKey işlemi hata verir.
-
Sayfanın sol üst köşesinde, hizmet anahtarını oluşturmak istediğiniz bölgeye geçmek için bölge kimliğine tıklayın.
NotHizmet anahtarı, videonuzun kaynak sunucusuyla aynı bölgede bulunmalıdır. Örneğin, videonuz Çin (Şanghay) bölgesinde depolanıyorsa hizmet anahtarı da Çin (Şanghay) bölgesinde oluşturulmalıdır.
Kullanılabilir bölgeler Çin (Şanghay), Çin (Pekin), Çin (Shenzhen), Japonya (Tokyo), Singapur, Endonezya (Cakarta), Hindistan (Mumbai) ve Almanya (Frankfurt) şeklindedir.
ApsaraVideo VOD konsoluna gidin. Sol gezinme bölmesinde Configuration Management > Media Processing > HLS Standard Encryption seçeneklerini seçin.
-
HLS Şifreleme sayfasında Create Service Key seçeneğine tıklayın.
Hizmet anahtarı oluşturulduktan sonra bir onay mesajı görünür. Ardından anahtarı Key Information bölümünde görüntüleyebilirsiniz.
NotBaşarılı bir mesaj görünür ancak anahtarı görüntüleyemiyorsanız, bunun nedeni eksik bir hizmet bağlantılı rol olabilir. Rolü geri yüklemek için ApsaraVideo VOD'u yeniden yetkilendirebilir ve ardından hizmet anahtarını görüntülemek için sayfayı yenileyebilirsiniz.
-
-
Bir veri anahtarı (DK) oluşturmak için bir API işlemi çağırın.
Bir veri anahtarı (DK) ve bir zarflanmış veri anahtarı (EDK) oluşturmak için GenerateKMSDataKey işlemini çağırın. Herhangi bir parametre iletmeniz gerekmez. Başarılı bir çağrıdan sonra yanıtta bulunan
Plaintextalanında DK,CiphertextBlobalanında ise AES-128 formatındaki EDK yer alır. HLS Şifreleme kod dönüştürme işi içinCiphertextBlobdeğerini önbelleğe alın.
-
-
HLS Şifrelemesi için bir kod dönüştürme şablon grubu oluşturun.
HLS Şifreleme süreci iki kod dönüştürme şablon grubu gerektirir: yerleşik No Transcoding şablon grubu ve HLS Şifrelemesi için özel bir kod dönüştürme şablon grubu. Özel bir kod dönüştürme şablon grubu oluşturmak için aşağıdaki adımları uygulayın:
ApsaraVideo VOD konsoluna gidin. Sol gezinme bölmesinde Configuration Management > Media Processing > Transcoding Template Groups seçeneklerini seçin.
-
Kod Dönüştürme Şablon Grupları sayfasında HLS Şifrelemesi için bir kod dönüştürme şablon grubu oluşturun.
Encapsulation Format seçeneğini hls olarak ayarlayın. Advanced Parameters bölümünde Video Encryption seçeneğini etkinleştirin ve Alibaba Cloud Encryption seçeneğini belirleyin. Diğer parametreleri gerektiği şekilde yapılandırın. Parametreler hakkında daha fazla bilgi için bkz. Kod dönüştürme şablonları.
Şablon grubu oluşturulduktan sonra Kod Dönüştürme Şablon Grupları sayfasındaki listede yeni şablon grubunu bulun ve ID değerini kaydedin. Bu şablon grubu kimliği şifreleme yapılandırması için gereklidir.
-
Bir HLS Şifreleme kod dönüştürme işi gönderin.
-
Bir HLS Şifreleme kod dönüştürme işi göndermek için SubmitTranscodeJobs işlemini çağırın.
Olay bildirimlerini yapılandırdıysanız Single Definition Transcoding Complete veya Transcode complete olayına ait bir geri callback iletisi, kod dönüştürme işinin tamamlandığını gösterir.
-
-
HLS Şifreleme sonucunu doğrulayın.
Kod dönüştürme işi tamamlandıktan sonra şifrelemeyi doğrulamak için aşağıdaki yöntemlerden birini kullanın.
Yöntem 1: ApsaraVideo VOD konsoluna gidin. Audio/Video dosyasının ayrıntılar sayfasına gidin ve Video URL sekmesine tıklayın. Video URL listesinde M3U8 çıkış dosyasının format sütununda bir HLS Encryption etiketi olup olmadığını kontrol edin. Bu etiketin varlığı şifrelemenin başarılı olduğunu doğrular.
Yöntem 2: HLS Standard Encryption etiketine sahip M3U8 dosyasının URL'sini kopyalayın. M3U8 içeriğini almak için curl -v "M3U8 dosyasının URL'si" komutunu çalıştırın. İçerikte aşağıdaki anahtar bilgileri kontrol edin:
URI="<the decryption URI that you provided as the DecryptKeyUri parameter value>". Bu bilgiler mevcutsa şifreleme başarılı olmuştur.Yöntem 3: GetTranscodeTask işlemini çağırın ve Adım 4 içinde döndürülen
JobIdparametresinin değerini iletin. YanıttakiTranscodeTemplateIddeğeri Adım 3 içinde oluşturduğunuz kod dönüştürme şablon grubunun kimliğiyle eşleşiyor veTranscodeJobStatusdeğeriTranscodeSuccessise şifreleme başarılı olmuştur.
HLS (M3U8) şifreleme ve yeniden yazma (Önerilen)
M3U8 şifreleme ve yeniden yazma etkinleştirildiğinde sistem, HLS Medya Oynatma Listesine (M3U8 dosyası) #EXT-X-KEY etiketine algoritma, anahtar URI'si ve kimlik doğrulama parametreleri dahil olmak üzere şifreleme parametrelerini otomatik olarak ekler. İstemci yeniden yazılmış M3U8 dosyasını ayrıştırdığında, şifre çözme anahtarını istemek için kimlik doğrulama parametrelerine sahip anahtar URI'sini kullanır ve ardından aktarım akışı (TS) segmentlerinin şifresini belirtilen algoritmayla çözer.
Adım 1: HLS şifrelemesi için parametre geçişini etkinleştirme
ApsaraVideo VOD konsolunda Parameter Pass-through for HLS Encryption seçeneğini etkinleştirin.
Parameter Pass-through for HLS Encryption seçeneğini etkinleştirdikten sonra ApsaraVideo VOD, M3U8 dosyasını yeniden yazar ve istemci isteğinden gelen parametreleri ekleyerek #EXT-X-KEY etiketindeki URI'yi değiştirir. Varsayılan parametre adı MtsHlsUriToken şeklindedir.
Önkoşullar
Çapraz kaynak paylaşımını (CORS) yapılandırdınız. Daha fazla bilgi için bkz. Çapraz kaynak paylaşımını yapılandırma.
Bu özellik Alibaba Cloud Gov Cloud'da kullanılamaz.
Yordam
ApsaraVideo VOD konsoluna gidin.
Sol gezinme bölmesinde Configuration Management seçeneğine tıklayın.
CDN Configuration > Domain Names seçeneklerine tıklayarak Domain Names sayfasına gidin.
Yönetmek istediğiniz alan adını bulun ve Actions sütunundaki configure seçeneğine tıklayın.
Alan adının yapılandırma sayfasında sol gezinme bölmesinde Video Related seçeneğine tıklayın.
encrypted playback bölümünde Parameter Pass-through for HLS Encryption anahtarını açın. Varsayılan olarak bu anahtar kapalıdır ve parametre adı
MtsHlsUriTokenşeklindedir.
Bu özelliği etkinleştirdikten sonra ApsaraVideo VOD, belirteç parametresini yeniden yazarak kimlik doğrulamasını gerçekleştirir. Yeniden yazılan parametre
MtsHlsUriTokenşeklindedir ve değeritestolur. Şifresi çözülmüş oynatma sırasında dağıtım noktası (POP), M3U8 dosyasının#EXT-X-KEYetiketindeki URI'yeMtsHlsUriToken=testekler.
Adım 2: MtsHlsUriToken içeren istek gönderme
M3U8 dosyasına erişmek için istemci, MtsHlsUriToken parametresini içeren bir isteği bir dağıtım noktasına (POP) gönderir.
Kullanıcılara MtsHlsUriToken oluşturup vermek için bir belirteç hizmeti oluşturmanız gerekir.
Aşağıdaki kod MtsHlsUriToken oluşturur. İş gereksinimlerinize göre aşağıdaki parametreleri değiştirmeniz gerekir:
Adım 3: Dosyanın şifresini çözme ve oynatma
İstemciden bir istek alındığında dağıtım noktası (POP) bunu kimlik doğrular. Kimlik doğrulama başarılı olursa POP dosyanın şifresini çözer ve oynatır.
Adım 2'de oluşturulan MtsHlsUriToken parametresinin değeri test ise şifresi çözülmüş oynatma sırasında POP, M3U8 dosyasının #EXT-X-KEY etiketindeki URI'ye MtsHlsUriToken=test ekler.
Kimlik doğrulama mantığını uygulamanız gerekir. Referans için bkz. Videoları oynatma bölümündeki M3U8 şifreleme ve yeniden yazma için şifre çözme hizmeti örnek kodu.
Videoyu oynatma
M3U8 yeniden yazma ile (önerilen)
-
Bir şifre çözme hizmeti kurun.
Videoların şifresini çözmek için yerel bir HTTP hizmeti kurun.
Veri anahtarının şifresini çözmek için DecryptKMSDataKey işlemini çağırın. Yanıttaki veri anahtarı olan
PlainText, GenerateKMSDataKey işlemi tarafından döndürülenPlainTextdeğerinin Base64 kodu çözülmüş halidir.Şifre çözme URL'lerini doğrulayarak ek bir güvenlik katmanı eklemek için M3U8 şifreleme ve yeniden yazmayı etkinleştirin. Bu özellik, anahtar istek URL'sine bir belirteç ekler. Varsayılan parametre adı
MtsHlsUriTokenşeklindedir. Şifre çözme hizmeti uygulamanız bu özelliğin etkin olup olmadığına bağlıdır. -
Video oynatma URL'sini veya kimlik bilgisini alın.
Oynatma kimlik bilgisini almak için GetVideoPlayAuth işlemini veya oynatma URL'sini almak için GetPlayInfo işlemini çağırın.
-
Şifrelenmiş videoyu oynatın.
HLS standart şifreleme tüm HLS oynatıcılarla uyumludur. Şifrelenmiş videoyu oynatmak için kendi geliştirdiğiniz bir oynatıcıyı veya ApsaraVideo Player'ı kullanabilirsiniz.
ApsaraVideo Player kullanıyorsanız videoyu oynatmak için gereken belirteci ve kimlik doğrulama bilgilerini alın. Daha fazla bilgi için bkz. Şifrelenmiş videoyu oynatma. Farklı bir oynatıcı kullanıyorsanız oynatma mantığını uygulayın.
Aşağıdaki bölümde ApsaraVideo Player'ın dahili oynatma süreci açıklanmaktadır:
M3U8 yeniden yazma ile (önerilen)
M3U8 yeniden yazma olmadan
-
Bir şifre çözme hizmeti kurun.
Videoların şifresini çözmek için yerel bir HTTP hizmeti kurun.
Veri anahtarının şifresini çözmek için DecryptKMSDataKey işlemini çağırın. Yanıttaki veri anahtarı olan
PlainText, GenerateKMSDataKey işlemi tarafından döndürülenPlainTextdeğerinin Base64 kodu çözülmüş halidir.Örnek:
-
Video oynatma URL'sini veya kimlik bilgisini alın.
Oynatma kimlik bilgisini almak için GetVideoPlayAuth işlemini veya oynatma URL'sini almak için GetPlayInfo işlemini çağırın.
-
Şifrelenmiş videoyu oynatın.
HLS standart şifreleme tüm HLS oynatıcılarla uyumludur. Şifrelenmiş videoyu oynatmak için kendi geliştirdiğiniz bir oynatıcıyı veya ApsaraVideo Player'ı kullanabilirsiniz.
ApsaraVideo Player kullanıyorsanız videoyu oynatmak için gereken belirteci ve kimlik doğrulama bilgilerini alın. Daha fazla bilgi için bkz. Şifrelenmiş videoyu oynatma. Farklı bir oynatıcı kullanıyorsanız oynatma mantığını uygulayın.
Aşağıdaki bölümde ApsaraVideo Player'ın dahili oynatma süreci açıklanmaktadır:
M3U8 yeniden yazma olmadan