Files für Download verschlüsseln / Zeitsteuerung / Private & Public Key

Mik3e

Erfahrenes Mitglied
Abend zusammen,

Ich mache mir derzeit Gedanken zur Verschlüsselung von Files mit PHP.

"Pflichtenheft:"
Ein Administrator kann beliebige Files (z.B. PDFs) auf einen Webserver laden (werde dafür die MegaUpload Klasse verwenden).

Anschließend kann ein User dieses PDF downloaden, nachdem er dafür gezahlt hat. Ablauf:
1. Der Kunde legt das PDF in den Warenkorb
2. Er bezahlt den Betrag X per Online Payment
3. Er bekommt eine URL und einen Schlüssel mit dem er das File saugen kann.

Weiters:- Das File darf nur für einen beschränkten Zeitraum zum Download bereit stehen (z.B. 15 Minuten).
- Das File muss verschlüsselt sein
- Das originäre File muss ebenfalls in einem geschützen Bereich aufbewahrt werden (da das File bei jeder Bestellung neu encoded werden soll.

Hat irgendwer einen Ansatz für so eine Lösung

Danke & LG
Mike
 
Ein Ansatz wäre die Dateien per default zu sperren und in ein Verzeichniss zu legen, welches vom Web nicht zugänglich ist. Beim Download wird die Datei über ein PHP-Script, welches vorher prüft, ob die Berechtigung vorliegt, gestreamt.
Nachdem der Benutzer gezahlt hat, bekommt er einen Schlüssel, der sich aus einem Zufallswert, einem Wert für die jeweilige Datei und dem Zeitraum zusammensetzt.

Soviel zum Ansatz - ist realisierbar und garnicht sooo aufwändig! ;)
 
Was ist beispielsweise, wenn der Computer plötzlich streikt und der Fehler nur durch einen Experten zu beheben ist? Deshalb würde ich den Zeitraum unbedingt erweitern und dafür eine zusätzliche anzahlbedingte Downloadsperre reinbauen.

Ich würde es wahrscheinlich wie folgt realisieren: Der Kauf eines Dokuments wird in einer Datenbank vermerkt, zusammen mit dem Schlüssel und dem Zeitpunkt des Kaufs. Mit diesem Schlüssel lässt sich die Datei nun beispielsweise innerhalb von 14 Tagen fünf mal herunterladen. Danach ist der Schlüssel ungültig.
Allerdings solltest du auch die Möglichkeit berücksichtigen, dass der Kunde nach Abbruch des Downloadvorgangs den Vorgang auch lieber wieder aufnehmen möchte anstatt den Download neuzustarten.
 
Hm, das sind schon einige gute Ideen..
Ich dachte mir vielleicht auch, den Download auf IP Ebene zusätzlich zu sperren.. Lässt sich aber vermutlich nicht realisieren (dyn. IP, Netzwerke etc.).

Die Variante mit n-Downloads in einem gewissen Zeitraum ist schon ganz gut, allerdings nicht wirklich sicher.

Angenommen Du kaufst ein MP3 File und lädst es runter. Anschließend schickst Du den Link und den Schlüssel an einen Freund. Der kann das File dann anschließend auch problemlos runterladen.... (und das Ganze in deinem Beispiel fünf mal).

Weiters stellt sich die Frage, wie man das File verschlüsseln kann!? MD5 kommt ja nicht in Frage, da es dann nicht mehr dekodiert werden kann... Es müsste ein schneller 2-Weg Algorithmus sein....

Ciao,
Mike
 
Die Variante mit n-Downloads in einem gewissen Zeitraum ist schon ganz gut, allerdings nicht wirklich sicher.

Angenommen Du kaufst ein MP3 File und lädst es runter. Anschließend schickst Du den Link und den Schlüssel an einen Freund. Der kann das File dann anschließend auch problemlos runterladen.... (und das Ganze in deinem Beispiel fünf mal).
Dasselbe ließe sich auf deine Ursprungsidee übertragen: Angenommen du erwirbst ein Dokument und lädst es runter. Anschließend schickst du deinem Freund dieses Dokument …
Die Problematik an deine Idee ist bloß, dass wenn etwas beim Herunterladen schief geht der Kunde das Geld sprichwörtlich aus dem Fenster schmissen hat.

Eine Verschlüsselung halte ich dabei garnich für sehr sinnvoll. Denn wie und vor allem wo sollten die Daten entschlüsselt werden? Etwa durch ein zusätzliches Programm?
 
Eine Variante wäre beispielsweise automatisches zippen mit einem Key...
Ansonsten würde das Dokument / MP3 / PDF oder was auch immer für den freigeschaltenen Zeitraum (in Deinem Beispiel 14 Tage) jederzeit und von Jedermann gegrabbt werden...
 
Sobald das Dokument heruntergeladen/entpackt wurde, kann es ebenfalls nach Belieben verbreitet werden.

Um was für Dokumente handelt es sich denn und warum benötigen sie solch hohe Sicherheitsvorkehrungen?
 
Muss die unbedingt downloadbar sein?

Also, wenn man die downloaden kann, kann man machen was man will, wenns entpackt ist, ist kopierbar, wie man will...

Online, könnte man vieleicht ein individuelles Bildentwerfen, welches man von einem javaapplet anzeigen lassen kann, ohne das es downloadbar ist

die meisten Fotohändler machen sowas

oder ein programm schreiben, welches die verschlüsselt runtergeladene datei entschlüsselt, wenn der benutzer z.B. ein Passwort eingeben hat (diese daten im web prüft)und dann entschlüsselt und nur mit dem programm anzeigbar ist
 
Zuletzt bearbeitet:
Zurück