PrivateDRM 0.7: Warum DRM sinnvoll ist.

Wie alles begann

Ursprünglich begann es als ein Scherz im Juni, ich sagte es wäre praktisch unmöglich für Informationen digitaler Art wie Texte, Bilder, Videos, usw. Geld zu verlangen, da sie sofort raubkopiert würden. Allerdings ist es auch unmöglich Firmengeheimnisse, private oder heikle Informationen weiterzugeben ohne dass man Gefahr läuft, dass sie von jemandem kopiert werden oder unrechtmässig verwendet werden. (siehe neuste Enthüllungen in Afghanistan)

Deshalb begann ich aus Spass mit dem Entwurf des PrivateDRM-Systems, PrivateDRM ist dabei an die Idee von Private World (die iPhone-App von Private World befindet sich seit Ende April 2010 im Aufnahmeprozess von Apple) angelegt. Über den ortsbasierten Nachrichtendienst Private World soll es dereinst möglich sein Bilder sicher auszutauschen, deshalb passt PrivateDRM perfekt ins Konzept.

PrivateDRM Viewer 0.7 beim Start

Das PrivateDRM-System

Das PrivateDRM-System besteht aus einem Client und einem Server. Dabei entsteht aus beliebigen Quelldatei (getestet bis 250 MB) eine neue Datei mit einer .pdrm-Endung. Die entstehende Datei wird dann einige Bytes (zurzeit 38 Bytes) grösser. Am Anfang der Datei werden binär u.A. folgende Informationen abgelegt: Magic Code: 50 44 52 4D 5E AF 00 0D (“PDRM” SEAFOOOD), daneben auch die eindeutige File-ID und die URL des PrivateDRM-Providers. Die File-ID ist keine Hash der Datei, ausser dem Dateinamen und der Grösse des Files gibt es also keinen Anhaltspunkt für den Inhalt der Datei.

PrivateDRM: Mitglieder für Datei hinzufügen

Die momentane Version von PrivateDRM Viewer (0.7) erlaubt es den DRM Schutz für eine bestimmte Datei wieder zu entfernen, sofern man diese Rechte erhalten hat. Der Viewer kann zurzeit nur Bilder anzeigen, dazu wird der DRM Schutz nur im RAM entfernt und das Bild wird angezeigt. Denkbar ist auch ein Browser-Plugin (z.B. für Firefox), das automatisch authorisierte Bilder entschlüsselt und anzeigt.

Die Möglichkeiten

PrivateDRM kann eingesetzt werden um:

  • Private/Firmen Daten vor Diebstahl zu schützen.
  • Jeder könnte theoretisch einen eigenen PrivateDRM-Server zu betreiben.
  • private Dateien über öffentlich zugängliche Methoden (wie Rapidshare oder Bittorrent) zu verteilen. (jeder kann sie herunterladen, aber nur authorisierte Personen können sie anschauen.
  • Eine Datei zu verteilen, die Empfänger können sie aber erst aber einem bestimmten Datum anschauen.
  • Auch ist es möglich Zugriffsrechte wieder zu entziehen.


Ausblick

PrivateDRM läuft stabil und solange die Quelldateien nicht gelöscht werden tritt kein Datenverlust auf. PrivateDRM ist allerdings eher als stabiles PoC (Proof of Concept) anzusehen. Wenn ich Zeit und den nötigen Antrieb finde werde ich PrivateDRM weiterentwickeln.

Comments (2,734)

Schweizer “Hackerparagraph” geplant

Wie in einem Artikel von heute (18.06.2010) auf NZZ online zu lesen ist will die Schweiz erneut die Strafen für Hacker verschärfen. Und in der Tat scheint sie wirklich die Strafen für Hacker und Cracker verschärfen zu wollen:

“Künftig soll bereits als Hacker bestraft werden, wer weiss oder annehmen muss, dass die von ihm zur Verfügung gestellten Passwörter, Programme und anderen Daten zum hacken von geschützten Computersystemen verwendet werden sollen.[..]“

Mit anderen Worten: die Schweiz erhält jetzt auch den aus Deutschland berüchtigten Hackerparagraphen. Die einen mögen sich vielleicht noch erinnern, das dass Tool “KisMAC” wegen dem Hackerparagraphen von Deutschland in die Schweiz umgezogen ist.

Des weiteren liest man im Artikel:

“Angepasst werden muss auch das Rechtshilfegesetz. Angesichts der Kurzlebigkeit elektronischer Daten wird der schweizerischen Rechtshilfebehörde die Kompetenz eingeräumt, in bestimmten Fällen Verkehrsdaten bereits vor Abschluss des Rechtshilfeverfahrens zu Ermittlungszwecken an die antragsstellende Behörde auszuhändigen.”

So sehr ich Verständnis habe für diese Idee (Kurzlebigkeit elektronischer Daten) ritzt sie doch an der Rechstaatlichkeit und öffnet Tür und Tor für Missbrauch.

Wie ich bereits schon einmal ausgeführt habe ist die Schweiz bereits jetzt ein internationaler “Musterschüler” in Sachen Internetüberwachung. Während aber in Deutschland heftig über solche Sachen diskutiert wird (Längst nicht nur durch den CCC, sondern auch auf Bundesebene (CDU, SDP, FDP, …), gibt es in der Schweiz keine Partei oder grössere Organisation die sich der Sache annehmen. Klar es gibt die Piratenpartei, ch/open, CCC ZH, und ein paar weitere Organisationen, aber keine deren Stimme wirklich zählt. Mit diesen Themen müssten sich eigentlich die etablierten Parteien befassen, denn schliesslich sind es Themen, welche letztendlich von Bedeutung für die gesamte Bevölkerung sind.

Wenn ich mich aber Frage, wer in der Politik mit Informatik zu tun hat, dann scheint es mindestens auf nationaler Ebene an Fachkompetenz zu mangeln. Oder anders gesagt: der einzige Nationalrat der mir zum Thema Informatik/Telekommunikation einfällt ist Ruedi Noser (FDP), VRP Noser Group, Ex-VRP von Myriad (ehemals Esmertec).

Ich fordere also dringend mehr Informatikwissen für die Politik, insbesondere wenn man weiss, dass die Schweiz bei ACTA an der vorderster Front mitarbeitet.

Comments (1,156)

Den Mac mit dem 64 Bit Kernel starten

Viele Mac Benutzer wissen nicht, dass ihr Kernel auch unter Snow Leopard standardmässig noch ein 32 Bit Kernel ist. Dies wurde gemacht, weil viele Treiber erst in einer 32 Bit Version vorhanden sind (Applikationen wie Mail laufen mit 64 Bit). Wer den 64 Bit Kernel testen möchte, braucht einen 64 Bit Intel Prozessor und muss während dem Starten die Tasten 6 und 4 gedrückt halten.

Zur Vereinfachung des Ganzen habe ich ein kleines Gadget gemacht, ein sog. “32 to 64 Bit Kernel Converter” :)

Das Gadget wird voraussichtlich für 99 Franken in den Detailhandel kommen :)

Mehr über den 64 Bit Kernel gibts hier:

http://www.ahatfullofsky.comuv.com/English/Programs/SMS/SMS.html

Comments (1,092)

Bravo Drupal, Gratulation an Sascha!

Ich weiss ja nicht wie viele Leute Sascha Grossenbacher bisher für Drupal begeistern konnte. Aber ich wette es sind viele und das absolut zu Recht! Drupal ist ein grossartiges CMS und Sascha ein Top Contributor für das neue Drupal 7!

Sascha

Sascha

Drupal Top Commiters

Drupal Top Contributors

Die an der diesjährigen DrupalCon gezeigte Commit Statistik setzt Sascha auf den 15 Platz! Sascha ist ausserdem noch Maintainer des wichtigen Drupal Moduls Privatemsg, welches den Austausch privater Nachrichten ermöglicht, das A&O einer Community also.

Wem Drupal bisher noch nichts sagte dem möchte ich es kurz näher bringen: Drupal ist ein universell einsetzbares Content Management System, oder einfach ausgedrückt: mit Drupal können beliebige Webseiten erstellt werden, welche von Personen mit unterschiedlichen technischem Hintergründen verwaltet werden können. Drupal existiert als Projekt seit dem Jahr 2001, gegründet wurde es von dem Belgier Dries Buytaert. Drupal basiert auf PHP und unterstützt in der Version 6 hauptsächlich MySQL und Postgres als Datenbanken. Die Liste der Grossunternehmen welche Drupal einsetzen ist schier endlos lange, als Beispiele seien Accenture, Sony, BBC, Intel, nVidia und selbst die SAI Learning Connection von Sun genannt.

Den bisherigen Höhepunkt der Popularität hat Drupal im Herbst 2009 erreicht als bekannt wurde dass die öffentliche Webseite des Weissen Haus: whitehouse.gov nun Drupal als CMS einsetzt.

Drupal beim weissen Haus

Drupal beim weissen Haus

Man kann also durchaus sagen das die Arbeit von Sascha einen weltweiten Impact hat!

Und das ist… gelinde gesagt: Sackstark!

Comments (1,104)

Der gläserne Bürger in der Schweiz

Das Bankgeheimnis wird oft mit dem Wunsch des Bürgers nach Privatsphäre begründet. Dies ist grundsätzlich zu Begrüssen, tönt aber sehr scheinheilig. Die Schweiz ist nämlich ein Staat der zumindest im Internet massiv in die Privatsphäre eines jeden Bürgers eingreifen kann.

Eine kleine Auflistung:

Während in Deutschland betreffend Websperren und Vorratsdatenspeicherung ein grosser Aufruhr herrscht, wurden diese in der Schweiz ohne Einbezug des Volks eingeführt.

Was ich damit sagen möchte ist: wenn die Bürger und Politiker so einen Aufstand machen wegen dem Bankgeheimnis, warum interessiert sich dann niemand für das Fernmeldegeheimnis und die bereits heute mögliche Überwachung im Internet?

(Mal ganz naiv angenommen es gehe beim Bankgeheimnis nur um den Schutz der Privatsphäre)

Comments (1,194)

Solaris ist nun eine Trial

Lange wurde spekuliert was der Kauf von Sun durch Oracle für Auswirkungen auf Solaris bzw. OpenSolaris haben wird. Wie Ars Technica berichtet ist Solaris jetzt nur noch als 90 tägige Trial erhältlich. Zumindest wird dem Nutzer nur noch ein 90 tägiges Nutzungsrecht zugesprochen.

Please remember, your right to use Solaris acquired as a download is limited to a trial of 90 days, unless you acquire a service contract for the downloaded Software.

Natürlich ist das an sich noch nichts Schlechtes, da die meisten welche Solaris in einem professionellen Umfeld einsetzen sowieso Wartungsverträge haben. Und als Alternative gibt es ja noch(!) OpenSolaris.

Comments (1,118)

Eine serielle Schnittstelle in Virtual Box einbinden

Virtual Box benutze ich schon seit längerer Zeit (bevor es durch Sun übernommen wurde) und es ist erstaunlich wie positiv sich diese Applikation entwickelt hat. Gerade das neu eingeführte Teleportation tönt vielversprechend. Sogar Blockbuster Applikationen wie Microsofts Visual Studio 2008 unter Windows 7 laufen in der Virtual Box ohne Probleme, einzig die Betaversion von Visual Studio 2010 verhält sich extrem träge.

Host-OS: Mac OS X / Gast-OS: Windows (7) / VM-SW: Virtual Box 3.0+

Nun wollte ich aber zur Programmierung von 8-Bit Mikrocontroller Atmels AVR Studio mit dem STK 500 kommunizieren lassen. Und da das STK 500 nur zwei serielle RS232 Anschlüsse hat und Macs schon seit Ewigkeiten keine RS232 Anschlüsse mehr haben wollte ich einen Serial to USB Adapter einsetzen. Also versuchte ich in der Virtual Box den Adapter als USB Gerät einzubinden; nach ein paar erfolglosen Versuchen merkte ich dass dies nicht so einfach werden würde. Also suchte ich einige Zeit im Internet nach einer Lösung und fand diese:

  1. Windows XP installed without a hitch, but it had no COM ports set up. It turns out that I hadn’t turned them on in VirtualBox, so I did that.
  2. Installed the Keyspan drivers on my Mac (Leopard, 10.5.4).
  3. Downloaded SerialClient, the excellent app that seems to make this work.
  4. Attached the Keyspan adapter.
  5. In XP, I went into the Add Hardware wizard, and scrolled down to the bottom to add hardware I pick from a list. Basically, I wanted to force XP to set up an item in Device Manager for a COM port. The device was created, but for some reason, it ended up being a COM3, IRQ4, at address 3F8 (this is important in a moment).
  6. In VirtualBox, I then edited Serial Ports in the Settings area of my virtual machine. After enabling Port 1, I set the Port Number drop-down to User-defined, and set it to IRQ 4, 3F8 as above. Port Mode is Host Pipe. Finally, put a checkmark in the box labeled Create Pipe, and enter path of /tmp/serial without the quotes. Click OK to exit.
  7. Now, finally, run the SerialClient software downloaded above. Make the stream path /tmp/serial, just as above. Select your serial port KeySerial1. Baud Rade is 115200 and defaults on the rest.
  8. Restart Windows XP, and while it’s coming up, go ahead and click Conncect in SerialClient.
Serielle Schnittstelle in Virtual Box

Serielle Schnittstelle in Virtual Box

Hinweise

  • Im Unterschied zu dieser Anleitung habe ich den Prolific-kompatiblen PL2303 USB to Serial Driver auf dem Mac installiert.
  • Unter Windows 7 kann man einen Com-Port nicht mehr als normales Gerät hinzufügen sondern muss(!) ihn im Gerätemanager als Legacygerät hinzufügen, er heisst dort: Kommunikationsschnittstelle.
  • Zuerst gab es Probleme bei der IRQ und I/O Zuweisung unter Windows 7, aber nach einem Neustart lösten sich diese von selbst.
  • Windows 7 (Vista evt. auch) hat kein Hyperterminal mehr, dafür kann man z.B. MTTTY installieren.
  • Beim Serial Client muss man die Verbindungsgeschwindigkeit einstellen, diese kann aber ohne Neustart des Gast-OS gewechselt werden.
Serial Client Einstellungen

Serial Client Einstellungen

Ich hoffe ja das es in Zukunft einfacher wird eine serielle Schnittstelle einzubinden. :)

Comments (1,083)

SSL First! bei Banken

Als Bankenkunde hat man erhöhte Anforderungen an die durch die Bank vermittelte Sicherheit, nach den letzten Ereignissen sowieso. Fürs E-Banking ist der Einsatz von SSL Zertifkaten, wenn nicht sogar der Einsatz von EV-SSL Zertifikaten ein absolutes Muss. Für den Rest der Seite schien dies bisher nicht zu gelten, deshalb nahm ich vor ca. einem Jahr erfreut zur Kenntnis das die Credit Suisse auf ihren Seiten wenn immer möglich auf die https Version umleitet.

site-wide ssl

site-wide SSL

Man könnte sich jetzt nach dem Sinn dieser kompletten verschlüsselten Übetragung fragen, ich könnte mir folgende Vorstellen:

Usability

  • vermittelte Sicherheit schafft Vertrauen
  • viele Browser färben einen Teil der Adresseingabe grün ein, wenn ein EV-SSL Zertifikat verwendet wird.

Sicherheit

  • der gesamte Verkehr mit der Bank wird verschlüsselt übertragen
  • Eine Firma/Staat kann den Verkehr (z.B. Suchanfrage) zwischen der Bank und dem (potentiellen) Kunden nicht belauschen und das gerade in Zeiten wo die gesetzlichen Grundlagen für die Deep Packet Inspection von vielen Staaten vorangetrieben wird.

Für welche anderen Schweizer Banken dies auch zutrifft (eine nicht vollständige Zusammenstellung ausgewählter Grossbanken, Kantonalbanken und Privatbanken):

Grossbanken

Credit Suisse: Ja

UBS: Nein

Kantonalbanken

Aargauische Kantonalbank: Nein

Banque Cantonale Vaudoise: Nein

Luzerner Kantonalbank: Ja

Zuger Kantonalbank: Nein

Zürcher Kantonalbank: Nein

Privatbanken

Julius Bär: Nein

Pictet: Nein

Sarasin: Nein

Wegelin: Nein

Regionalbanken/andere

Bank Coop: Nein

Clientis: Nein

Migros Bank: Nein

Raiffeisenbank: Nein

Finanzdienstleister ohne Bankenlizenz

PostFinance: Nein

Ein Nein bedeutet nicht das etwa ein SSL Zertifikat fehlt, sondern das nicht automatisch auf die SSL-Version weitergeleitet wird, dies ist an sich nicht dramatisch. Trotzdem gibt es gute Gründe dies zu tun, insbesondere wenn die Banken die Benutzer darauf sensibilisieren die SSL Zertifikate beim Onlinebanking anzuschauen wirkt die durchgehende Verschlüsselung homogener.

Mal schauen wies in einem Jahr aussieht… :)

Comments (1,174)

DTrace curpsinfo->pr_psargs unter Mac OS X

Unter Solaris kann man sich mit der DTrace Anweisung

dtrace -n ‘syscall::exec*: {printf(“%s”,curpsinfo->pr_psargs)}’

alle Prozesse welche nach diesem Aufruf gestartet werden anzeigen lassen (inklusive Befehlszeilenparametern).

Die Mac OS Version von DTrace zeigt bei diesem Aufruf die Parameter allerdings nicht an. Gerade diese Parameter sind aber beim Reverse Engineering interessant.

Um diese Limitation zu umgehen gibt es folgendes DTrace Script (funktioniert nicht in allen Fällen), welches ich um die Zeitausgabe erweitert habe :

#!/usr/sbin/dtrace -C -s
#pragma D option quiet

proc::posix_spawn:exec-success,proc::__mac_execve:exec-success
{
this->isx64=(curproc->p_flag & P_LP64)!=0;
#define SELECT_64_86(x64, x86) (this->isx64 ? (x64) : (x86))
#define GET_POINTER(base, offset) (user_addr_t)SELECT_64_86(*(uint64_t *)((base)+sizeof(uint64_t)*(offset)), *(uint32_t *)((base)+sizeof(uint32_t)*(offset)))
this->ptrsize=SELECT_64_86(sizeof(uint64_t),sizeof(uint32_t));
this->argc=curproc->p_argc;
// I havn’t recognized whether the x64 occurs the same problem (argv[0] points invalid area)
this->isClean=SELECT_64_86(1, (curproc->p_dtrace_argv==(uregs[R_SP]+sizeof(uint32_t)+sizeof(uint32_t))));
this->argv=(uint64_t)copyin(curproc->p_dtrace_argv,this->ptrsize*this->argc);
// added timestamp
printf(“%Y “, (0 < this->argc && this->isClean) ? walltimestamp : 0);
printf(“%s “, (0 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,0)) : “”);
printf(“%s “, (1 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,1)) : “”);
printf(“%s “, (2 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,2)) : “”);
printf(“%s “, (3 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,3)) : “”);
printf(“%s “, (4 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,4)) : “”);
printf(“%s “, (5 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,5)) : “”);
printf(“%s “, (6 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,6)) : “”);
printf(“%s “, (7 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,7)) : “”);
printf(“%s “, (8 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,8)) : “”);
printf(“%s “, (9 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,9)) : “”);
printf(“\n”);


#undef GET_POINTER
#undef SELECT_64_86
}

Abspeichern als args.d

Aufruf mit:

sudo dtrace -C -s args.d

DTrace Terminalausgabe

DTrace Terminalausgabe

Update: Ich habe das Script hier hochgeladen: args.d

Comments (1,003)

Zugelassen fürs Made for iPod/iPhone Programm!

Alan Kay (OOP- und GUI-Pionier) sagte einmal:

“People who are really serious about software should make their own hardware.”

Als Informatikstudent und iPhone Softwareentwickler mit Hintergrund in der Elektronikentwicklung schätze ich den Einsatz guter Hardware und manchmal möchte man mit seinem Telefon mehr machen als die Standardhardware erlaubt. Dies ist der Grund warum ich mich unlängst für das Made for iPod/Works with iPhone Programm angemeldet habe. Dies ist momentan der einzig legale Weg Hardware für das iPhone zu entwickeln und sogar zu verkaufen mit den offiziellen Logos von Apple.

iPhone Hardware der NASA

iPhone Hardware der NASA

Ich Freue mich deshalb, weil der administrative Aufwand für die Anmeldung an diesem Programm sehr gross ist, und es zu keiner Stufe sicher scheint ob man überhaupt zugelassen ist. Gerade für Privatpersonen wurden die Chance im Netz als klein beschrieben. Neben dem Ausfüllen von mehreren Formularen (NDAs, Lizenzen, Legal Counsel, etc) gehört die Angabe eines konkreten Produktes dazu mit Angaben zum Stromverbrauch, genaue Auflistung der Funktionen, usw.

Works With iPhone Logo

Works With iPhone Logo

Durch das Programm erhält man unter anderem einen Spezialzugang zum einzigen von Apple akkreditierten Distributor für die 30-Pin Spezialstecker und Koprozessoren zur Authentifizierung. Alle anderen Informationen sind leider Confidential.

Comments (142)