Der Text ist in Teilen von Adrian82, einem User des Minidisc
Forums, verfasst worden. Vielen Dank!
Inhaltliche Einführung
QHiMD soll die Funktionen von SonicStage auf verschiedene Plattformen
bringen und vor allem Usern, die andere Betriebssysteme als Windows
verwenden, dienen. Die Software ist grundsätzlich so konzipiert,
dass die gesamte Funktionalität auf allen Plattformen (Linux,
MacOS, Windows) funktioniert. Jedoch brauchen wir für alles,
was SCSI-Befehle benötigt, eine betriebssystemunabhängige
SCSI-Bibliothek. So etwas gibt es, z.B. libscg von Joerg Schilling.
Wir werden einen Abkömmling dieser Bibliothek verwenden. Für
NetMD müssen wir eine eigene Bibliothek verwenden, welche auf
libusb (ebenfalls plattformunabhängig) aufsetzt.
Technische Einführung
NetMD
NetMD verwendet ein eigenes USB-Protokoll, welches auf AV/C aufsetzt.
AV/C ist eine Spezifikation, wie sie auch für Camcorder über
Firewire verwendet wird. Nur verwendet Sony es hier über USB.
NetMD hat einen ausgefeilten Verschlüsselungsmechanismus, der
eine Authentifizierung des Computers gegenüber des Walkmans verlangt.
Es funktioniert so, dass sowohl PC als auch Walkman sich erstmal gegeneinander
mittels geheimer Schlüssel ausweisen müssen, so dass beide
Seiten wissen, dass es sich jeweils um von Sony zertifizierte Hardware/Software
handelt. Sobald die Authentifizierung geklappt hat, darf SonicStage
dem Walkman ATRAC-Tracks verschlüsselt übertragen (wegen
DRM usw). Die Daten werden übers USB-Kabel verschlüsselt
übertragen, im Walkman entschlüsselt und dann unverschlüsselt
auf der MD gespeichert. Die klassische MD kennt ja keine Verschlüsselung.
Uploads (Transfer zum PC) sieht NetMD von der Hardware nicht vor.
Hi-MD
Hi-MD setzt im Gegensatz zu NetMD auf ein standartisiertes Protokoll,
nämlich USB-Massstorage. Die Audio-Daten werden auf einem FAT-Dateisystem
gespeichert, jedoch ebenfalls verschlüsselt. Sony hat jedoch
zusätzliche SCSI-Befehle (Massstorage verwendet SCSI-Befehle),
die die verschlüsselte übertragung und das Auslesen von
zusätzlichen Informationen wie DiskID (gespeichert ausserhalb
des FAT-Dateisystems auf der HiMD), erlaubt. Grundsätzlich sind
alle Audio-Daten, die SonicStage auf der HiMD speichert mit einem
zufälligen Schlüssel gesichert. Dieser Schlüssel baut
jedoch auf das gleiche Schlüsselsystem wie bei NetMD auf. Dann
kamen die ersten HiMD-Walkman, die MP3s wiedergeben konnten. MP3s
sind im Gegensatz zu ATRAC und PCM mit einer einfachen XOR-Verschlüsselung
gespeichert. Der Schlüssel für die MP3-Verschlüsselung
berechnet sich aus der DiskID, welche in der mclist0X.hma und zusätzlich
ausserhalb der FAT gespeichert ist. Das System zur Ver- und Entschlüsselung
von MP3s ist aufgrund seiner Einfachheit vollständig verstanden,
daher sind auch als erstes MP3-Uploads moeglich gewesen. Als Sony
den MZ-RH1 auf den Markt brachte, haben sie zusätzlich für
ATRAC und PCM die Verschlüsselung drastisch zurückgefahren.
Wenn du mit dem RH1 eine PCM oder ATRAC-Aufnahme machst, dann werden
diese mit einem konstanten Schlüssel verschlüsselt (der
Schlüssel ist notwendig, damit du diese Aufnahmen auch in älteren
HiMD-Geräten wiedergeben kannst). Du erkennst diese Tracks mittels
"himdtest", es zeigt dort einen Null-Schlüssel an.
Zusätzlich kann der RH1 ja Tracks von klassischen MDs in ATRAC-SP
hochladen. Dies bedarf lediglich einiger NetMD-Befehle und der gesamte
Upload ist unverschlüsselt, steht auch im Wiki.
Verschlüsselung und DRM
Das gesamte System OpenMG ist ein hochabgesichertes DRM-System mit
virtueller Maschine und Schutz gegen Debugging/Reverse-Engineering.
In OpenMG stecken praktisch *alle* Schlüssel und die Funktionalitat
für verschlüsselte übertragung und Speicherung von
NetMD/HiMD. D.h., wenn man die maximal moegliche Transfer-Funktionalität
haben moechte, braucht man diese Schlüssel (das eigentliche System,
wie man den Walkman ansteürt hat Sony ja in Patenten dokumentiert,
es fehlen lediglich die Schlüssel). An OpenMG arbeiten wir immer
noch dran. Es arbeiten insgesamt 3 Leute daran und einer davon (Marcus)
ist Mathematiker und Verschlüsselungsexperte. Von ihm stammt
bereits das Projekt FreeMD. Marcus meint, dass das mit der Verschlüsslung
nicht mehr lange daürt. Wenn wir die Schlüssel haben, dann
bedarf es lediglich einer Implementierung des Codes, also ein paar
Stunden Programmieraufwand.
Der aktuelle Stand
Bisher umgesetzt
Alles in allem kann ich sagen, dass, sobald wir aus OpenMG die Keys
rausgeholt haben, wir nur noch alles implementieren müssen. Das
ist dann jeweils Programmieraufwand, wobei uns auch andere Programmierer
helfen koennen, wenn sie unsere Dokumentation im Wiki lesen.
Das Kompilieren der Software erfolgt auf Plattformen aus ein und
dem selben Quellcode. Die Anleitungen stehen jeweils im Wiki und wenn
man sich daran hält, dann kann sich jeder für Windows, Mac
oder Linux jeweils die aktuellste Version der libhimd und QHiMDTransfer
bauen. Die Funktionalität ist auf allen Plattformen dieselbe.