Aracılığıyla paylaş


PlayReady İçerik Şifrelemesi

Bu konu, PlayReady ekosistemindeki içeriği korumak için kullanılan şifreleme algoritmalarına genel bir bakış sağlar.

Uyarı

Şifreleme terimleri ve tanımları için bkz. Sözlük .

Şifrelemeyle ilgili temel bilgiler

Simetrik anahtar şifrelemesi en basit şifreleme türüdür. Simetrik anahtar şifrelemesi ile, içeriği şifrelemek ve şifresini çözmek için aynı anahtar kullanılır. Simetrik anahtar algoritmaları genellikle küçük ve hızlıdır. Genellikle, herhangi bir şifreleme görevinin toplu işlemi bir tür simetrik anahtar şifrelemesi tarafından işlenir.

Buna karşılık ortak anahtar şifrelemesi, şifrelemek için yayımlanmış bir ortak anahtar ve şifreyi çözmek için farklı, gizli, özel bir anahtar kullanır. Bu nedenle, "A" kullanıcısı "B" kullanıcısını ortak anahtar verirse B, A içeriğini başka bir bilgi olmadan şifreleyebilir. İçerik nasıl iletilirse iletilsin, yalnızca A tarafından okunabilir. İçerik kesicilerin özel anahtarı (gizli anahtar) eksik olduğundan, bu yüzden iletinin şifresini çözemiyorlar. Ortak anahtar açıkça kullanılabilir hale getirildiğinden, herkes A için şifreleyebilir, ancak yalnızca A şifresi çözülebilir. Ortak anahtar şifrelemesi, hesaplama açısından karmaşık algoritmalar gerektirir.

Eliptik eğri şifrelemesi (ECC), içeriği şifrelemek ve şifresini çözmek için kullanılan bir ortak anahtar şifreleme algoritmasıdır. Eliptik eğriyi tanımlayan hesaplamalı olarak karmaşık bir işlevdir. Bu algoritmanın bileşenleri ortak anahtar olarak paylaşılır. Şifre çözme için kullanılan diğer bileşenler özel anahtarı oluşturur.

Tek anahtarlı İleti Kimlik Doğrulama Kodları (OMAC), blok şifrelemesinden yapılan bir ileti kimlik doğrulama kodudur. İki OMAC algoritması vardır: OMAC1 ve OMAC2.

Sertifikalar , güvenilir olmayan varlıkların orijinalliğini sağlamak için kullanılır. Sertifikayı gönderen, özel anahtarını kullanarak adını (cihaz tanımlayıcısı) imzalar. Sertifikanın alıcısı, gönderenin kimliğini güvence altına almak için sertifikanın imzasını gönderenin ortak anahtarıyla doğrular. Gönderen özel anahtarın tek sahibi olduğundan, ortak anahtar verildiğinde özel anahtar oluşturmak zordur ve özel anahtarla imzalanmadığı sürece sertifika doğrulanmaz; bu durumda, veri kaynağının doğru olduğu varsayılır ve sertifikalı iletişim güvenlidir.

PlayReady şifreleme algoritmaları

Simetrik algoritmalar

Aşağıdaki AES şifreleme modları desteklenir:

  • AES 128 CTR modu — PlayReady sistemleri, örneklerin tam olarak şifrelendiği veya örneklerin yalnızca bir deseninin şifrelendiği dosyaları ve akışları CTR işlem modunda koruyabilir. Bunlar, ISO/IEC 23001-7'de tanımlanan Ortak Şifreleme modları olan 'cenc' (Ortak Şifreleme Şeması) ve 'cens' (Şifrelenmemiş/şifrelenmiş bayt deseni kullanan Ortak Şifreleme Düzeni) modlarını içerir.

  • AES 128 CBC modu — Sürüm 4.0 ile başlayan PlayReady sistemleri, AES 128 içerik anahtarıyla tamamen veya kısmen şifrelenmiş dosyaları ve akışları CBC çalışma modunda koruyabilir. Bunlar ISO/IEC 23001-7'de tanımlandığı şekilde 'cbc1' ve 'cbcs' Ortak Şifreleme modlarını ve CBC modunda AES 128 içerik anahtarıyla şifrelenen diğer tüm biçimleri içerir.

Uyarı

1.X, 2.X ve 3.X sürümüne sahip PlayReady sistemleri yalnızca CTR modunda şifrelenmiş dosyaları koruyabilir (Ortak Şifreleme modu 'cenc'). 'cens' desteklenmez. Sürüm 4.0 ve üzeri olan PlayReady sistemleri, CTR modunda (Ortak Şifreleme modları 'cenc' ) ve CBC modunda (Ortak Şifreleme modları 'cbcs' ) şifrelenmiş dosyaları koruyabilir. Diğer 'cens' ve 'cbc1' modları desteklenmez.

ECC algoritmaları

Microsoft PlayReady sistemleri, içerik anahtarlarını şifrelemek ve protokol iletilerini imzalamak için ECC (Eliptik eğri şifrelemesi) kullanır.

  • ECC ElGamal algoritması — Şifrelenmiş içerik anahtarları için kullanılır.
  • ECDSA (Eliptik eğri dijital imza algoritması) — PlayReady protokollerinde uygun olan her yerde iletileri imzalamak için kullanılır.
  • NIST — Microsoft PlayReady sistemleri uygun olduğunda ve şu anda P-256 üç nokta eğrisini kullanıyorsa ECC şifrelemesi için standart NIST algoritmalarını kullanır.

İmzalama algoritmaları

Lisansları, geçici anahtarları veya verileri imzalamak için PlayReady sistemleri, CMAC (Şifreleme tabanlı ileti Kimlik Doğrulama Kodu) ile eşdeğer olan ve Mayıs 2005'te NIST önerisi haline gelen AES OMAC1'i kullanır. Anahtarlar rastgele oluşturulur, ancak veriler SHA256 ile karma hale getirilir ve ardından karma, ECC256 ile imzalanır.

Çalışma zamanı ve performansla ilgili dikkat edilmesi gerekenler

İçerik kayıttan yürütme tetiklendiğinde, ilk kayıttan yürütmenin başlayabilmesi için PlayReady İstemcisi'nin bazı adımlar gerçekleştirmesi gerekir. Buna lisans bulma, bağlama veya yorumlama, içerik anahtarının şifresini çözme ve son olarak içeriğin şifresini çözmeye hazırlanma dahildir. PlayReady İstemci yığınının bir lisansı bir içerik parçasına bağlaması zaman alır ve bu işlem, içerik şifre çözme ve işlemeye başlamadan önce gereklidir. Bu, lisans bağlama süresinin, bir oynatma başlatılırken ilk kareye kadar geçen süreyi veya parçalar arasındaki boşluğu etkilediğini gösterir. İstemci geliştirici ve uygulama geliştiricisi, ilk kare süresini kısaltmak ve kesintisiz oynatma sağlamak için kodlarını çalışma süresi ve performans sorunlarını iyileştirmek için düşünebilir.

Korumalı kapsayıcılar, içeriğin büyük bir kısmını şifrelemek için simetrik anahtar şifrelemesi kullanır. Ancak, lisans içinde ortak anahtar şifrelemesi kullanılır. Bunun nedeni, lisansın içeriğin simetrik anahtarını içermesidir ve Sunucu, içeriğin simetrik anahtarını şifrelemek için istemcinin ortak anahtarını kullanır.

İçeriğin şifresini çözme zamanı geldiğinde, istemcinin özel anahtarı lisanstan simetrik anahtarın şifresini çözmek için kullanılır. Yalnızca lisansın bağlı olduğu istemci simetrik anahtarı ayıklayabilir.

Özel anahtar şifre çözme işlemi, simetrik şifre çözmeden daha yoğun işlem gücü kullanır; bu nedenle, lisansın yorumlanması işlem açısından yoğundur. Lisans düzgün bir şekilde işlendikten sonra simetrik anahtarın şifresi çözülür ve içeriğin şifresi küçük ve hızlı algoritmalar kullanılarak çözülebilir.

Kaynak kısıtlaması olan uygulamalar veya cihazlar için, başlatma önemli ölçüde zaman ve kaynak gerektirir. Ancak bu işlem tamamlandıktan sonra, sistem kaynakları serbest bırakılır, şifre çözme işlemi verimli bir şekilde sürebilir ve birkaç CPU döngüsü veya sistem kaynağı gerektirmez.