Warum HDCP selten (mitlerweile) richtig funktioniert

Die "High Definition Content Protection" HDCP existiert nun schon zehn Jahre, und eigentlich sollte sie sich im Bereich der Unterhaltungsgeräte schon längst durchgesetzt haben, erst recht auf dem Gebiet der PC-Grafikkarten und -Monitore, baut sie doch auf deren Verbindungsstandard DVI auf. Und daß der relativ problemlos funktioniert zeigt der überwältigende Erfolg dieser Schnittstelle, die fast nur noch von der allgegenwärtigen VGA-Schnittstelle im Bereich der Computerbildschirme übertroffen wird.

Aber selbst der erneute Anlauf, HDCP mit einem neuen Steckverbinder namens HDMI so richtig zum Renner zu machen ist mehr eine Story von Fehlschlägen denn von überwältigendem Markterfolg. Nicht nur, daß kaum ein Anwender übermäßigen Wert darauf legt, eine kopiergeschützte Schnittstelle zwischen zwei Geräten verordnet zu bekommen (was alleine nicht so schlimm wäre, gibt es doch bis jetzt keinen Recorder mit einem DVI-Eingang) - nein, die Hersteller von Geräten vernachlässigen die analogen Schnittstellen immer mehr, so daß einem kaum etwas anderes übrig bleibt, als auf die digitale Schnittstelle auszuweichen.

Und das Schlimmste: das in HDMI zwingend vorgeschriebene HDCP hat im Fall der neuen HD-Formate sogar Auswirkungen auf die Bildsignale parallel vorhandener analoger Komponentenausgänge!

Ursprünge von HDCP
Funktionsweise
Schwächen

Verbesserungen
Fazit

Ursprünge von HDCP

Der Kopierschutz HDCP stammt aus dem Hause Intel, und er wurde etwa um 1999 herum das erste mal öffentlich vorgestellt. Hintergrund war die Besorgnis der Hollywood-Filmstudios, daß es im Bereich von hochauflösendem Video keinen dem Macrovision-Kopierschutz von NTSC und PAL vergleichbaren Standard gab, über den man einem Aufnahmegerät hätte mitteilen können, daß es bitte jetzt von einer Aufnahme des Films absehen soll. Da man die Tage einer analogen Bildübertragung zwischen Player/Receiver und Bildschirm sowieso als bald für beendet ansah, machte man auch keine großen Intentionen, die schon in den 80er Jahren für HDTV festgeklopften Standards für die analogen Komponentensignal durch einen Kopierschutz verwässern zu wollen.

Intel ist ja bekanntlich Hersteller von PC-Prozessoren und Chipsätzen, zu denen nunmal auch Grafikchips gehören. Also fühlte man sich berufen, der Filmindustrie zu helfen. Basis sollte die von SGI vorgestellte DVI-Schnittstelle sein, aber man verzichtete (wohl aus Kostengründen) darauf, die Schnittstelle in ihrer elektrischen und logischen Funktion zu modifzieren: DVI besteht für die "langsame" bidirektionale Kommunikation zwischen PC und Bildschirm aus zwei Leitungen des DDC (Display Data Channel) ähnlich einem I²C- oder SMB-Bus (es gibt einen Takt und eine Datenleitung, der Master des Busses sitzt auf der PC-Seite) sowie aus 1x4 oder 2x4 Leitungspaaren (dem sogenannten TMDS-Bus) für die "schnelle" Kommunikation der Bildübertragung vom PC zum Bildschirm. Weiterhin wird festgelegt, wie das Bild zu übertragen ist.

Funktionsweise von HDCP

Bei DVI wird der DDC dazu benutzt, eine sogenannte "State Machine" aufzubauen, bei der es auf Sender- und Empfängerseite verschiedene Zustände gibt, die z.B. für "kein Monitor angeschlossen", "Bildrücklauf", "Bildzeile n" etc. stehen. Die Synchronisation der für die eigentliche Bildübertragung verwendeten TMDS-Links erfolgt auf diese Weise.

Das einzige, was HDCP am DVI-Standard änderte war, daß eine zusätzliche Protokollschicht für eine kryptografische Authentifizierung zwischen PC und Bildschirm hinzukommen sollte sowie ein sogenannter "HDCP Cipher", also ein kryptografischer Zahlengenerator, der dazu dient, den Bildschirminhalt zu verschlüsseln. Dieser Cipher wird über Ergebniswerte der kryptographischen Authentifizierung initialisiert. Kommt es dabei zu Übertragungsfehler auf dem I²C-Bus (der eigentlich mal für Distanzen im cm-Bereich entwickelt worden war und nicht einmal eine Paritätsprüfung besitzt!), dann stimmen die Startwerte für den Zifferngenerator nicht oder die Authentifizierung schlägt komplett fehl. Der Algorithmus des HDCP Cipher erinnert stark an den standardisierten 3DES-Algorithmus. Die passenden Schlüssel gibt es aber nur, wenn man sich bei der HDCP LLA anmeldet und seine Geräte zur Analyse auf Schwachstellen vorbeischickt, ebenso müssen die Geräte bestimmte Bedingungen einhalten, die den Kopierschutz der übertragenen Inhalte sicherstellen sollen.

Die State Machine von DVI wird bei HDCP um zusätzliche Zustände erweitert, die im Zusammenhang mit der Authentifizierung und dem HDCP Cipher stehen. Erst wenn die Authentifizierung ordnungsgemäß durchgeführt wurde stehen die korrekten Initialisierungswerte für den HDCP Cipher fest. Nach jedem Bildrücklauf wird eine Neuinitialisierung des Ciphers durchgeführt, die aber (normalerweise) nichts am Wert des Ciphers ändern sollte, solange nicht der Schlüssel wieder getauscht wird.

Um zu verhindern, daß im laufenden Betrieb ein authentifiziertes Gerät gegen ein nicht authentifiziertes ausgetauscht wird, überprüft ("pollt") die State Machine bei HDCP etwa alle 5s den ordnungsgemäßen Zustand des Gegenparts, die fehlschlägt, wenn der "richtige" Kommunikationspartner abgeschaltet oder durch ein anderes Gerät ausgetauscht wurde.

Alles war so ausgetüftelt, daß sich HDCP im Grunde per Software-Treiber auf jeder beliebigen PC-Grafikkarte mit DVI-Ausgang implementieren lassen sollte. Die von der CPU benötigte Rechenleistung wäre schon ab einem P-4 mit 1,6 GHz nicht weiter ins Gewicht gefallen, da 3DES ein sehr schneller Algorithmus ist.

So weit die Theorie.

Die Praxis sieht aber so aus, daß es bis Ende 2005 noch keine eine PC-Grafikkarte mit implementiertem HDCP zu kaufen gab! Und die Mehrzahl aller möglichen "HDCP-gesicherten" Verbindungen funktionierte nicht richtig. Woran lag das?

(Eine Notiz: Mittlerweile gibt es Grafikkarten und auch entsprechende Monitore, aber selbst 2009 noch gibt es Beispiele von nicht funktionsfähigen Gerätekombinationen, wobei es oft schwierig ist, ob die Ursache des Fehlers bereits in der DVI- oder erst in der HDCP-Kommunikation liegt - Resultat ist jedenfalls, daß es kein Bild gibt).

Schwächen des Konzepts

Patzer 1: Eine Verschlüsselung in der Grafikkarten-Software ist zu leicht angreifbar

Obwohl es das Konzept von Intel vorsah, daß man mit geringst möglichem Aufwand einen HDCP-Ausgang an jede DVI-Grafikkarte "basteln" konnte, sind doch die Lizenzierungsschranken für HDCP so hoch gelegt, daß das unmöglich ist: In den Lizenzbedingungen von HDCP steht explizit drin, daß die für die Verschlüsselung nötigen Schlüsselwerte nirgends in Klartextform vorliegen dürfen, da sie sonst zu einfach z.B. mittels eines Debuggers aus dem Treiber extrahiert werden dürfen. Alle derzeit für HDMI-Ausgang vorgesehenen Grafikchips haben deswegen die Verschlüsselung in Hardware realisiert.

Also wurde aus HDCP am PC nix, Hollywood hat es den Herstellern von High-End-DVD-Playern überlassen, die ersten Feldversuche mit HDCP zu unternehmen. Allerdings noch mit einem "handzahmen" HDCP, denn

  1. lies sich bei der DVD nicht nachträglich noch ein Bit einpflanzen "HDCP anschalten"
  2. gibt es wegen der anfänglichen Schwierigkeiten viele Systeme, die ein "dummy-HDCP" fahren, das zwar vorgibt, HDCP zu sein, aber bei Fehlen eines "geeigneten" Gegenparts ganz auf HDCP verzichtet.
  3. läßt sich bei den meisten (auch High-End-DVD-Playern von namhaften Herstellern) ganz entgegen der Spezifikation der DVD HDCP einfach abschalten, damit der Käufer überhaupt etwas vom teueren Digitalausgang hat.

Derzeit sind zwar von den Firmen ATI und nVidia Grafikchips aktuell, die selbst Hardware-HDCP beherrschen (also völlig ohne HDCP-Unterstützung in ihren Treibern auskommen würden), aber auch bei diesen muß man aufpassen, daß man tatsächlich eine Variante mit HDMI und HDCP erwischt.

Die Situation bei den PC-Grafikkarten war trotz eindringlicher Warnungen Microsofts immer noch dermaßen unbefriedigend für eine PC-basierte Implementation von AACS für HD-DVD-Wiedergabe, daß Microsoft (bzw. die AACS LA) in die "Windows Logo"-Richtlinien für das Premium-Logo des "Windows Media Server"-Programms eine Übergangsfrist bis Sommer 2007 einräumen mußte, bevor ein PC zwingend eine HDCP-fähige Grafikkarte braucht, um das Logo zu erhalten.

Patzer 2: Den Bremsfallschirm vergessen verboten

Die Filmindustrie hat die analogen Ausgänge als zu leicht kopierbar gebranntmarkt. Um endlich das "analoge Loch" (O-Ton Hollywood) zu schließen, wollte man in die HDCP-Spezifikationen auch Beschränkungen über die analoge Bildausgabe und mehrkanalige Tonausgabe einbauen: HDCP kann einfach per Steuerbefehl vom Inhalt angewiesen die HDTV-Ausgänge (analoge Komponentensignale) auf "SDTV" (sprich: NTSC oder PAL, abhängig von der Bildfrequenz) herunterfahren oder ganz abschalten. Ohne funktionierendem HDCP geht dann in solchen Fällen gar nix mehr. Oder die Filmverwerter müssen in den sauren Apfel beißen und die hochauflösende Bildausgabe per Komponentensignalen zulassen, und zwar ohne daß auch nur ansatzweise ein Kopierschutz für das Bild besteht! 

Dummerweise macht HDCP auch den Ausgang für DVI inkompatibel, d.h., wenn die Inhalte eine HDCP-Verschlüsselung erzwingen, dann bleibt ein DVI-Eingang am anderen Ende dunkel. Er könnte ja zu einem Aufnahmegerät gehören (die gibt es zwar noch nicht, aber was sollst, Vorsicht ist die Mutter der Porzellankiste)...

Die analoge Bildausgabe ist dabei noch nicht das einzige, was durch HDCP beeinflußt werden kann. Gleiches gilt auch für die analoge und die digitale, unverschlüsselte Tonausgabe. Ebenso wie das Bild zusammengestutzt oder ganz abgeschaltet werden kann, gibt es in der HDCP-Spezifikation Einschränkungen für die Tonausgabe: Da HDCP im Falle, daß es auf HDMI-Steckern verwendet wird auch über den Ton gebietet, ist im schlimmsten Fall eine Tonausgabe an "alte" (soll heißen: alle Geräte, die derzeit noch ohne HDMI-Anschluß ausgeliefert werden!) Receiver und Verstärker nur noch über analoge Stereoverbindung (für Surround-Klang ist dabei immerhin noch erlaubt, in der Art von Dolby Pro Logic den Raumklang matrix-kodiert in Stereo zu verpacken) oder über PCM-Ton mit maximal 48kHz auf 2 Kanälen digital zu verbinden. Dolby Digital-Ton darf für HD-DVDs, die es nicht erlauben nicht mehr über TOSLINK (die bisherige digitale Verbindung) digital übergeben werden. Auch der (teure) Dolby Digital/DTS EX-Decoder im HD-DVD-Player mit bis zu 8.1 analogen Ausgangsbuchsen kann vom HDCP des HD-DVD-Players abgeschaltet werden!

All diese Beschränkungen alternativer Ausgänge gelten explizit nur für HD-Inhalte. Die Inhalte der DVD wurden definiert, bevor es HDCP gab, entsprechend fehlen die Steuerfunktionen des Inhalts, um HDCP-spezifische Einschränkungen auch gezielt anzusteuern. Die kommende HD-DVD und die hier in Europa per DVB-S2 übertragenen HD-Fernsehkanäle werden diese Steuersignale aber transportieren können. Dies geht so weit, daß auch die in HDCP vorhandene Blockierfunktionen enthalten sein können (HDCP kann zertifizierte Endgerät nachträglich sperren).

Patzer 3: Dumm, aber leider die falsche Basis genommen

Das Konzept von HDCP sieht vor, daß es auf einer Verbindung zwischen PC und Monitor gefahren wird, also einer klassischen Punkt-zu-Punkt-Verbindung. Es sind keine Abzweigungen und keine tote Enden erlaubt. Realisierbar ist das bei einer Verkabelung z.B. mit einem AV-Receiver als Umschaltzentrale nur, wenn alle beteiligten Komponenten HDCP beherrschen. Ein Receiver, der einfach nur "dumm" die Signale zweier HDCP-Ausgänge an einen HDCP-Eingang schaltet ohne selbst Teil des Protokolls zu sein kann das fragile Timing durcheinander bringen.

Da es auch in Zeiten von HDMI keinesfalls sicher scheint, daß zwei Geräte mit den entsprechenden Ein- und Ausgängen überhaupt miteinander funktionieren können, kann es sich zum Fiasko ausweiten, wenn man einen Receiver zwischen HD-DVD-Player und HD-Fernseher schalten möchte: Player und Fernseher verstehen sich über HDMI, aber der Receiver bringt dann das System außer Funktion. Guter Rat ist dann teuer.

Merkwürdig ist, daß HDCP dagegen vorsieht, daß es einen Sender, aber mehrere, über einen oder mehrere Repeater angeschlossene Empfänger gibt. Das ist eine für Heimanwender völlig unnötige Konfiguration, und vor allem ist nicht zu verstehen, wie so etwas als Kopierschutz durchgehen soll: Denn das Bild wird ja von einem Eingang auf mehrere Ausgänge "kopiert", wenn diese alle sich per HDCP zertifizieren können!

HDCP sieht vor, daß die für das zugrundeliegende DVI nötige Kommunikation störungsfrei abgewickelt werden kann. Treten z.B. bei DVI Pixelfehler auf, dann stören die nicht weiter - spätestens 1/60s später wird ja ohnehin wieder ein neues Bild übertragen, dann wird das falsch übertragene Pixel ja wieder überschrieben. Ebenso ist es völlig uninteressant, ob die verwendeten Receiver vielleicht einige Pixel zu viel am Bildende übertragen: Durch die Neusynchronisation bei Start der Bildübertragung für das nächste Bild wird das ja ohnehin korrigiert.

Unterschiede HDCP auf DVI und HDMI  

Falls HDCP auf DVI aufsetzt, dann werden nur Bilddaten übertragen und verschlüsselt. Falls dagegen der zugrundeliegende Stecker ein HDMI-Stecker ist, dann müssen auch die Tondaten übertragen und verschlüsselt werden. Für die Unterscheidung auf Protokollebene sind ein paar Bits zuständig, die aber erst bei HDMI eingeführt wurden, auch darin kann ein Problem liegen, wenn sich Sender und Empfänger nicht verstehen.

Verbesserungen ab ca. 2008

Da sich am Markt auf Dauer nichts durchsetzen kann, was nicht nahezu perfekt funktioniert und vor allem auch, weil einerseits die Chip-Hersteller den Kopierschutz immer tiefer in ihre System integriert haben und andererseits die Rechteinhaber nicht mehr so genau bei Verfehlungen hingeschaut haben, hat sich beginnend mit dem Siegeszug der Blu-Ray-Disc ab ca. 2008 die Situation nach und nach verbessert.

Mittlerweile ist HDMI zwar immer noch der Marktführer im Bereich der AV-Schnittstellen im Heimbereich, aber er bekam so grundlegend Konkurrenz, dass die Designschwächen der Anfangszeit mittlerweile als überwunden gelten können.

Fazit

DVI ist als Standard für eine unkomprimierte Bildübertragung ziemlich ungeeignet, um darauf einen kryptografisch arbeitenden Kopierschutz zu implementieren. Die "langsame" Verbindung über SMB für die Authentifizierung ist einem Standard entsprungen, der eigentlich für viel kürzere Distanzen entwickelt wurde und ebenfalls keinerlei Sicherung gegen Übertragungsfehler aufweist.

Mit anderen Worten: HDCP war in der ursprünglichen Form eine Krücke. Erst durch langwierige Entwicklung und das Festschreiben von Kompatibiltätstests wurde das Problem nach und nach entschärft.

Fraglich ist, wofür das ganze sinnvoll ist.

Stand: 02.02.2017