Software F.A.Q. > QHiMD

 

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

  • Uploads von MP3s (Download wird ebenfalls moeglich sein, wir haben die Verschlüsselung ja geknackt)
  • Uploads von PCMs vom RH1 (wegen der konstanten Schlüssel eine einfache Sache)
  • Formatierung einer HiMD (ist lediglich ein SCSI-Befehl; jedoch ist das noch nicht in libhimd implementiert)
  • Upload von ATRAC-SP von alten MDs direkt m ATRAC-Format (die Konvertierung in PCM/ATRAC3 auf dem PC macht normalerweise SonicStage)

Was noch fehlt

  • Upload von unverschlüsselten ATRAC3s vom RH1 (wir wissen wie das geht und die Beta 5 vom HiMD-Renderer kann das auch schon dank unseres Codes)
  • Upload von verschlüsselten PCMs/ATRAC3s (wir haben die Keys noch nicht)
  • Download von MP3s (ist schon machbar, wurde noch nicht implementiert, folgt in den kommenden Monaten)
  • Download von verschlüsselten PCMs/ATRAC3s (Kombination der letzten beiden Punkte; wenn wir die Keys kennen, dann muss das lediglich implementiert werden)
  • Implementation von ATRAC-SP Uploads (wir wissen wie es geht und haben es schon gemacht, es fehlt jedoch die Implementation)
  • NetMD-Download (erfordert sowohl die Keys als eine Implementation des NetMD-Protokolls)


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.

 

 

weitere Themen zu Software F.A.Q. :
weiterführende Links zu diesem Thema: