Videos verschlüsselt speichern und abspielen

  • Liebe Helfer,


    ich bin blutiger Anfänger und würde gerne wissen, ob so etwas mit einem Raspberry realisierbar ist:

    - auf dem Speicher des Raspberry sollen Videos gespeichert sein

    - diese Video-Dateien sollten verschlüsselt sein, so dass der Inhaber/Benutzer diese nicht (ohne großen Aufwand) vom Gerät extrahieren kann.

    - beim Start des Raspberry soll automatisch eine Oberfläche starten mithilfe derer der Benutzer einzelne Videos gezielt auswählen oder alle in einer Schleife abspielen kann

    - der Raspberry soll die Videos abspielen und per HDMI ausgeben


    Vielen Dank und liebe Grüße,

    Phantomias

  • Servus Phantomias ,


    Dein Suchbegriff wäre "verschlüsseltes Dateisystem" ... das ist durchaus möglich.

    Um den Rest, also Oberfläche, ... musst Du Dich dann wohl selbst kümmern oder eines der Media-Center für den Raspi nutzen (wobei ich jetzt nicht sagen kann, inwieweit bei einer Media-Center-Distri verschlüsselte Dateisysteme unterstützt werden).

    Wobei mir der Sinn verborgen bleibt, weil der Besitzer des Pi in der Regel uneingeschränkten Zugriff auf das System hat.


    cu,

    -ds-

  • - An welche Art der Verschlüsselung denkst du?

    - direkt anknüpfend: wo sollen die Schlüssel zur Entschlüsselung her kommen? Ja wohl nicht hardgecoded, das wäre ja dann sinnfrei.


    Apropos Sinn: welchem Zweck soll das ganze dienen?


    Edit: dreamshader ich denke, es sind Personen gemeint, die physischen Zugriff zum Raspi haben, aber keine Autorisierung, auf die Dateien lesend oder schreibend zuzugreifen., sprich kein Passwort zum Benutzeraccount pi o.ä. kennen.

  • Vielen lieben Dank für eure Antworten.


    Letztendlich muss sich der Schlüssel zur Entschlüsselung meiner Meinung nach auf dem Gerät befinden. Er sollte nur nicht ohne erheblichen Aufwand zu extrahieren sein.


    Sinn und Zweck: Ich möchte den Raspberry Pi mit einer Auswahl von Videos an Endbenutzer geben. Diese sollten die Videos mit dem Gerät abspielen, aber die Videos nicht ohne erheblichen Aufwand weitergeben/kopieren können.

  • Einen Benutzer für die Endbenutzer anlegen, der nur eingeschränkte Ausführen (starten) Rechte besitzt, anlegen und z.B. ein Skript benutzen, welches die Endbenutzer starten dürfen. Das Skript spielt dann die Videos ab. K.A. ob das funktioniert oder wirklich praktikabel ist.

  • und was hindert diese User dann daran den Pi zu nehmen, das Root passwort zu resetten/umgehen und die Daten zu kopieren? Richtig, gar nichts :)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Servus Phantomias ,

    also unter den Voraussetzungen wird das mit dem verschlüsselten Dateisystem wohl nicht funktionieren.

    Das bedeutet: Du müsstest das ver- und entschlüsseln mit z.B. eigener Software selbst übernehmen. Das ist jetzt erst mal kein Problem, dafür gibt es gute Bibliotheken, auf die man aufsetzen kann. Evtl. reicht Dir zunächst eines der Standard-Tools aus.

    Aber: Du müsstest Dich zwischen Player und Dateisystem einklinken und die verschlüsselten Daten lesen, entschlüsseln und an den Player weitergeben.

    Das ist prinzipiell auch möglich, dürfte aber an der Rechenleistung des Pi scheitern.

    Zweites Problem: Du müsstest den Schlüssel zum Decodieren ja irgendwo hinterlegen. Jetzt dürfte es ziemlich aufwändig und schwierig sein, für jeden Pi einen eigenen Schlüssel zu verwalten. Also wird der wohl überall derselbe sein ... und damit ist das auch keine Lösung.


    Wir halten fest: auf einem Open Source System irgendwas zu verstecken bzw. proprietäres einzubauen, gestaltet sich ziemlich schwierig (aber das ist auch gut so ;) ) ...


    cu,

    -ds-

  • In diesem Fall waere eine "obfuscation" die richtige Herangehensweise. Das "entschluesseln" kann dann ein einfaches Filterprogramm übernehmen, welches per pipe zwischengeschaltet wird. Das Filterprogramm wird nur binaer mit ausgeliefert. Erheblicher Aufwand hiesse hier dann das decompilieren des Binaer-Programms was theoretisch möglich ist, aber sicher ein normaler User nicht macht.


    Ein Filter-Programm kann jedes Programm sein, was einen eingang über stdin und einen ausgang ueber stdout besitzt. Die meisten kommandozeilen-tools sind so realisiert.


    Eine effektive verschleierung geht schon so:


    1. lese byte von stdin

    2. XOR das byte mit eine Zahl

    3. schreibe byte an stdout

    4. goto 1


    Wobei die "Zahl" entwede fest eingebaut sein kann, oder sich mit jedem byte aendern kann. Das kannst Du so kompliziert machen, wie du willst. Deine Videos musst Du natuerlich ensprechend durch ein umgekehrtes Filter schicken.


    Abspielen dann z.B. mit

    Code
    1. cat Mein-Video.dat | decoderfilter | mplayer -cache 1024 -


    Deine Videos musst Du natuerlich ensprechend durch ein umgekehrtes Filter schicken.


    Code
    1. cat Mein-Video.mp4 | encoderfilter > Mein-Video.dat


    Jetzt kann der User natuerlich mithilfe der Kommandozeile und dem Binaer-Programm "decoderfilter" die Videos wieder zurueckumwandeln. Wenn Du das erschweren willst, dann kannst Du noch spezielle Überprüfungen in das decoderfilter einbauen. Z.B. dass es überprüft, dass das stdout eine pipe ist und nicht in eine Datei geht, oder Du kannst Füll-Bytes ausgeben, die die Dateigröße aufblaehen würden, aber von mplayer ignoriert würden.

    Einmal editiert, zuletzt von wend ()