Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Programmieren<br />
www.linux-magazin.de HTML-5-DRM 09/2013<br />
100<br />
Komponente »privateKey«, um die Signatur<br />
zu bilden. In Zeile 18 benutzt sie den<br />
öffentlichen Schlüssel aus »publicKey«<br />
zum Verifizieren der Signatur. Zeile 19<br />
gibt das Ergebnis der Verifikation auf der<br />
Javascript-Konsole aus.<br />
Mit solchen kryptographischen Funktionen<br />
lässt sich eine Anwendung schreiben,<br />
die beispielsweise das Abspielen<br />
einer verschlüsselten Videodatei nur einem<br />
bestimmten Browser in einer einzigen<br />
Sitzung erlaubt. Das heißt, Anbieter<br />
wie Netflix oder BBC können über diese<br />
HTML-5-Erweiterung effektiv Digital<br />
Rights Management (DRM) betreiben.<br />
Widerstand<br />
Das trifft auf den Widerstand der Electronic<br />
Frontier Foundation (EFF). Die USamerikanische<br />
Organisation für digitale<br />
Bürgerrechte bekämpft seit Jahren DRM.<br />
Im Mai 2013 reichte die EFF daher förmlichen<br />
Einspruch gegen die Statuten der<br />
HTML-Arbeitsgruppe beim W3C ein: Die<br />
Encrypted Media Extensions widersprechen<br />
nach Meinung der Foundation der<br />
Vision des W3C von einem offenen Web<br />
01 var encRawKey = "4ea1...b2bf";<br />
02 var encAlg = {<br />
03 name : "AES‐GCM",<br />
04 params : {<br />
05 iv : hex2bin("534aea17"),<br />
06 additionalData: hex2bin("534aea17"),<br />
07 tagLength: 128<br />
08 }<br />
09 };<br />
10 function encrypt(text) {<br />
Listing 1: Verschlüsselung von Anwendungsdaten<br />
11 polycrypt.importKey("raw",<br />
hex2bin(encRawKey)).oncomplete = function(e) {<br />
12 var key = e.target.result;<br />
01 var sigKeyAlg = {<br />
02 name: "RSASSA‐PKCS1‐v1_5",<br />
03 params: {<br />
04 modulusLength: 512,<br />
Listing 2: Signieren einer Nachricht<br />
05 publicExponent: new Uint8Array([0x01, 0x00,<br />
0x01])<br />
06 }<br />
07 };<br />
08 var sigAlg = {<br />
09 name: "RSASSA‐PKCS1‐v1_5",<br />
10 params: { hash: "SHA‐1" }<br />
11 };<br />
12 function signature(text) {<br />
13 var arr = str2bin(text);<br />
und schlössen bestimmte Browser und<br />
Plattformen vom WWW aus. Die EME<br />
behinderten die Interoperabilität sowie<br />
die Partizipation aller am Web.<br />
Gegen das Hollyweb<br />
13 polycrypt.encrypt(encAlg, key,<br />
str2bin(text)).oncomplete = function(e) {<br />
14 var cipher = e.target.result;<br />
15 polycrypt.decrypt(encAlg, key, cipher).<br />
oncomplete = function(e) {<br />
16 console.log("encrypted: "<br />
+bin2str(cipher));<br />
17 console.log("decrypted: "<br />
+bin2str(e.target.result));<br />
18 };<br />
19 };<br />
20 };<br />
21 }<br />
14 polycrypt.generateKey(sigKeyAlg).oncomplete =<br />
function(e) {<br />
15 var key = e.target.result;<br />
16 polycrypt.sign(sigAlg, key.privateKey,<br />
arr).oncomplete = function(e) {<br />
17 var sign= e.target.result;<br />
18 polycrypt.verify(sigAlg, key.publicKey,<br />
sign, arr).oncomplete = function(e) {<br />
19 console.log("verifyed?: "+e.target.<br />
result);<br />
20 };<br />
21 };<br />
22 };<br />
23 };<br />
ELIMINATE<br />
DRM<br />
DefectiveByDesign.org<br />
Abbildung 2: Die Free Software Foundation<br />
bekämpft Digital Rights Management mit ihrer<br />
Kampagne „Defective by Design“.<br />
Dieser Kritik schließt sich die Free Software<br />
Foundation (FSF) an, die seit jeher<br />
von „Digital Restrictions Management“<br />
spricht und es bekämpft (Abbildung 2).<br />
Für die aktuelle Bedrohung haben die Aktivisten<br />
den Begriff „Hollyweb“ geprägt<br />
und meinen damit ein Internet, das sich<br />
an den Vorstellungen der Filmkonzerne<br />
aus Hollywood orientiert [11]. Am 3. Mai<br />
2013 feierten sie mit internationalen Partnern<br />
einen Tag gegen DRM und überreichten<br />
dem W3C eine Protestnote mit<br />
Zehntausenden Unterschriften.<br />
Förmlichen Einspruch gegen EME hat<br />
auch der Software-Entwickler Andreas<br />
Kuckartz eingelegt [12]. Der Deutsche<br />
ist seit zwei Jahren Invited Expert in der<br />
HTML-Arbeitsgruppe des W3C. Er sieht<br />
bei EME Probleme mit den Lizenzen von<br />
Open-Source-Software: „Seit GPLv3 sind<br />
DRM und freie Software nicht mehr vereinbar.“<br />
Seiner Meinung nach besteht<br />
für das W3C keine Verpflichtung, den<br />
Wünschen der Unterhaltungsindustrie<br />
nach Digital Rights Management nachzukommen.<br />
Der Standardisierungsprozess<br />
werde noch einige Stadien durchlaufen,<br />
erklärt er und hält den Ausgang<br />
für unklar. „Falls das W3C DRM aus den<br />
Standards rauslässt, könnten die Interessenten<br />
auch einen Alleingang machen“,<br />
prognostiziert er vorsichtig. n<br />
Infos<br />
[1] „HTML5 Video at Netflix“:<br />
[http:// techblog. netflix. com/ 2013/ 04/<br />
html5‐video‐at‐netflix. html]<br />
[2] Unterstützung der BBC für DRM:<br />
[http:// lists. w3. org/ Archives/ Public/<br />
public‐html‐admin/ 2013Feb/ 0153. html]<br />
[3] Encrypted Media Extensions (EME):<br />
[https:// dvcs. w3. org/ hg/ html‐media/<br />
raw‐file/ tip/ encrypted‐media/<br />
encrypted‐media. html]<br />
[4] Web Cryptography API:<br />
[https:// dvcs. w3. org/ hg/ webcrypto‐api/<br />
raw‐file/ tip/ spec/ Overview. html]<br />
[5] Implementierung in Chrome:<br />
[http:// www. chromestatus. com/ features]<br />
[6] Crypto-API bei Mozilla:<br />
[https:// wiki. mozilla. org/ Privacy/<br />
Features/ DOMCryptAPISpec/ Latest]<br />
[7] Polycrypt: [http:// polycrypt. net]<br />
[8] Netflix Webcrypto:<br />
[https:// github. com/ Netflix/ NfWebCrypto]<br />
[9] AES: [https:// de. wikipedia. org/ wiki/<br />
Advanced_Encryption_Standard]<br />
[10] RSA: [http:// de. wikipedia. org/ wiki/<br />
RSA‐Kryptosystem]<br />
[11] Förmlicher Einspruch der EFF:<br />
[https:// www. eff. org/ pages/ drm/<br />
w3c‐formal‐objection‐html‐wg]<br />
[12] Förmlicher Einspruch von Andreas Kuckartz:<br />
[http:// lists. w3. org/ Archives/ Public/<br />
public‐html‐admin/ 2013May/ 0138. html]