iTunes und Fairplay-DRM

Auch wenn ich keinen Mac besitze, höre ich regelmäßig den MobileMacs-Podcast. Darin hatte Tim Pritlove erwähnt, dass gekaufte Lieder, Programme und Videos erst im lokalen iTunes mit dem DRM versehen werden. Ich hatte das so verstanden, dass iTunes Dateien aus dem Store als unverschlüsselte Inhalte herunterläd.

Prima dachte ich mir, dann hab ich ja bald eine schöne Sammlung an DRM-freien M4A-Dateien auf meiner Festplatte rumzuliegen. Die erste Aktion war also Wireshark anzumachen und mir einen Song im iTunes-Store zu kaufen. Die heruntergeladene Datei wollte ich dann mittels Wireshark direkt speichern.

Das Ergebnis war relativ enttäuschend. So wie ich es mir vorgestellt hatte, funktioniert es nicht. Die iTunes-Server schicken, nach Austausch diverser Daten, zunächst unverschlüsselt das Coverbild als jpg und anschließend den Song. Dieser wird im m4p-Format geschickt. Eine M4P-Datei ist eine in einem MP4-Container verpackte und DRM-geschützte Datei.

Die englische Wikipedia stellt den Prozess ähnlich dar. Der Artikel über Apples DRM-System Fairplay sagt über die Funktionsweise folgendes:

FairPlay-protected files are regular MP4 container files with an encrypted AAC audio stream. The audio stream is encrypted using the AES algorithm in combination with MD5 hashes. The master key required to decrypt the encrypted audio stream is also stored in encrypted form in the MP4 container file. The key required to decrypt the master key is called the „user key.“

Each time a customer uses iTunes to buy a track a new random user key is generated and used to encrypt the master key. The random user key is stored, together with the account information, on Apple’s servers, and also sent to iTunes. iTunes stores these keys in its own encrypted key repository. Using this key repository, iTunes is able to retrieve the user key required to decrypt the master key. Using the master key, iTunes is able to decrypt the AAC audio stream and play it.

When a user authorizes a new computer, iTunes sends a unique machine identifier to Apple’s servers. In return it receives all the user keys that are stored with the account information. This ensures that Apple is able to limit the number of computers that are authorized and makes sure that each authorized computer has all the user keys that are needed to play the tracks that it bought.

When a user deauthorizes a computer, iTunes will instruct Apple’s servers to remove the unique machine identifier from their database, and at the same time it will remove all the user keys from its encrypted key repository.

The iPod also has its own encrypted key repository. Every time a FairPlay-protected track is copied onto the iPod, iTunes will copy the user key from its own key repository to the key repository on the iPod. This makes sure that the iPod has everything it needs to play the encrypted AAC audio stream.

Das hört sich durchaus so an als ob beim Abruf bereits ein mit dem Master-Key verschlüsseltes M4P-File empfangen wird. Der Master-Key ist in dem File mit dem User-Key verschlüsselt enthalten, so das man nur den User-Key benötigt um den Masterkey und damit das File zu entschlüsseln und abzuspielen. Den Key bekommt man dann von einem Apple-Server oder im Falle eines Offline-Devices, wie dem iPod, aus dem lokalen Repository.

Dennoch kann Tim mit seiner Aussage nicht ganz falsch liegen. iTunes verändert die Datei nach dem Herunterladen zumindest. Denn vergleicht man die M4P-Datei, die heruntergeladen wird und die M4P-Datei, die abgelegt wird, so sind die Dateien zwar größtenteils identisch – dennoch gibt es zwischen den beiden Dateien Unterschiede. So ist die abgelegte Datei im getesteten Fall um circa 140KB größer (die Gesamtgröße ist circa 3.3MB) .

Schaut man sich die beiden Dateien mit WinMerge an, so wird man feststellen, dass in der abgelegten M4P-Datei bei circa 48KB Inhalte eingefügt werden. Das sind die circa 140KB Unterschied. Im Anschluss daran sind die Dateien jedoch wiederum Identisch.

Da der Großteil der Datei nicht verändert wird – also der Audiostream definitiv nicht lokal verschlüsselt wird – nehme ich nicht an, dass das DRM lokal wesentlich verändert wird. Dennoch interessiert mich, was genau passiert.

Falls jemand von euch Informationen dazu hat – bitte postet entsprechende Infos in die Comments. Danke 🙂

Hier noch kurz ein Screenshot der Wireshark-Session. Die beiden M4P-Dateien kann ich auf Anfrage gerne auch bereitstellen.

Wireshark-Session eines iTunes Downloads

Wireshark-Session eines iTunes Downloads

Edit : Das Cover ist auch so circa 140KB groß. Und wenn man sich das Cover und die zusätzlichen 140K anschaut sieht man, dass zumindest ein Teil der 140K das Cover sind.

Advertisements

Über kenny1987

Hallo Leute, ich bin kenny. Ich studiere momentan Informatik und werde über alles interessante was mir so über den Weg läuft bloggen. Seien es irgendwelche News oder aktuelle Entwicklungen von meinen Anwendungen. Viel Spaß :)
Dieser Beitrag wurde unter Internetz allerlei, Programmieren abgelegt und mit , , , , , , , , , , , , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s