-
Die vorliegende Erfindung betrifft ein Dateiübertragungssystem mit mindestens einem Server und einer Mehrzahl von Clients, wobei Server und Clients über ein Kommunikationsnetz miteinander kommunizieren und wobei das Dateiübertragungssystem jeweils eine oder mehrere Dateien von einem ersten Client zum Server und von dort aus zu mindestens einem zweiten Client überträgt.
-
Typischerweise handelt es sich bei den Clients um Endgeräte, welche einen programmgesteuerten Mikroprozessor aufweisen und über ein Kommunikationsnetz wie z. B. das Internet mit dem Server kommunizieren können. Bei den Clients kann es sich dabei insbesondere um PCs oder Mobiletelefone handeln, auf welchen entsprechende softwarebasierte Clientanwendungen ablaufen.
-
Bei bekannten Dateiübertragungssystemen kann der Benutzer eines Clients üblicherweise Dateien nur gezielt an ihm bekannte, weitere Clients bzw. Nutzer übertragen. So kann z. B. bei einem E-Mail-System eine Datei als Anhang zu einer E-Mail an die Empfänger der E-Mail übertragen werden. Bekannte Dateiübertragungssysteme haben daher den Nachteil, dass die Reichweite des Übertragungssystems für die einzelnen Nutzer jeweils auf die ihm bekannten Kontaktpersonen beschränkt ist.
-
Aufgabe der vorliegenden Erfindung ist es daher, ein verbessertes Dateiübertragungssystem zur Verfügung zu stellen.
-
Erfindungsgemäß wird diese Aufgabe durch ein Dateiübertragungssystem gemäß Anspruch 1 gelöst. Das erfindungsgemäße Danteübertragungssystem umfasst dabei mindestens einen Server und eine Mehrzahl von Clients, wobei Server und Clients über ein Kommunikationsnetz miteinander kommunizieren und wobei das Dateiübertragungssystem jeweils ein oder mehrere Dateien von einem ersten Client zum Server und von dort aus zu mindestens einem zweiten Client überträgt. Erfindungsgemäß ist dabei vorgesehen, dass der oder die Clients, an welche eine zu übertragende Datei gesendet wird, durch einen Zufallsgenerator zufällig ausgewählt wird oder werden. Hierdurch ist die Reichweite des Dateiübertragungssystems nicht mehr auf die einem einzelnen Nutzer bereits bekannten anderen Nutzer beschränkt. Vielmehr kann eine Datei von einem Client zunächst zum Server und von dort aus an einen zufällig ausgewählten weiteren Client übertragen werden, so dass die Reichweite des Dateiübertragungssystems auf alle Nutzer des Systems erweitert wird.
-
Dabei können vorteilhafterweise Dateien unterschiedlicher Formate übertragen werden, z. B. Dateien für einen oder mehreren der folgenden Inhalte: Bilder, Filme, Musik, Sounds und/oder Texte. Vorteilhafterweise werden dabei unterschiedliche Dateiformate unterstützt.
-
Weiterhin vorteilhafterweise handelt es sich bei dem Server um einen Webserver, welcher die Übertragung der Dateien zwischen einer Vielzahl von Clients organisiert. Bei den Clients handelt es sich vorteilhafterweise um Endgeräte, auf welchen ein entsprechendes Client-Anwendungsprogramm läuft.
-
Vorteilhafterweise wird dabei erfindungsgemäß eine Datei, welche von einem ersten Client zum Server übertragen wird, auf dem ersten Client gelöscht. Eine Datei geht so auf den ersten Client verloren, während sie über den Zufallsgenerator zu einem zweiten Client übertragen wird und dort auftaucht.
-
Vorteilhafterweise wird eine Datei, bevor sie zu einem zweiten Client übertragen wird, durch eine Sicherheitsüberprüfung überprüft. Hierdurch wird die Sicherheit des Dateiübertragungssystems erhöht. Vorteilhafterweise umfasst die Sicherheitsüberprüfung dabei insbesondere eine Überprüfung auf Schadsoftware, insbesondere auf Viren. Vorteilhafterweise erfolgt die Sicherheitsüberprüfung insbesondere auf Schadsoftware dabei auf dem Server.
-
Weiterhin kann im Übertragungssystem auch eine Überprüfung hinsichtlich des zulässigen Formats bzw. der zulässigen Größe der Datei erfolgen. Diese Überprüfung kann dabei bereits durch den ersten Client, von welchem aus eine Datei zum Server übertragen werden soll, erfolgen.
-
Vorteilhafterweise werden empfangene Dateien auf dem Server außerhalb des Webroots gespeichert und vorteilhafterweise direkt über den Service gestreamt. Hierdurch wird die Sicherheit des Servers erhöht.
-
Weiterhin vorteilhafterweise ist vorgesehen, dass zusammen mit einer Datei Daten zur Identifikation eines Nutzers und/oder zur Kontaktaufnahme mit einem Nutzer des Clients, von welchem die Datei stammt, an den zweiten Client übertragen werden. Diese Funktion ermöglicht eine spätere Kontaktaufnahme zwischen den beiden Nutzern. Vorteilhafterweise ist dabei von dem Nutzer des ersten Clients, von welchem die Datei stammt, frei wählbar, ob die Daten zur Identifikation zusammen mit der Datei übertragen werden oder nicht.
-
Vorteilhafterweise wird eine von einem ersten Client zum Server übertragene Datei zeitnah an einen zweiten Client übertragen. Vorteilhafterweise erfolgt die Übertragung dabei innerhalb eines Zeitraums von weniger 1 Stunde, weiterhin vorteilhafterweise innerhalb eines Zeitraums von weniger als 1 Minute.
-
Vorteilhafterweise umfassen die Clients jeweils Mittel, durch welche eine zu versendende Datei auswählbar ist. Der Nutzer eines Clients kann so frei bestimmen, welche Datei über das Dateiübertragungssystem übertragen werden soll. Vorteilhafterweise erfolgt die Auswahl dabei über drag and drop in eine hierfür auf einer Anzeige, z. B. einem Bildschirm angezeigte Box.
-
Vorteilhafterweise umfassen die Clients jeweils Mittel, durch welche der Empfang einer neuen Datei angezeigt wird. Wird daher durch den Zufallsgenerator ein Client ausgewählt, an welchem die Datei übertragen wird, so wird der Nutzer dieses Clients durch die Mittel hierauf hingewiesen. Z. B. kann dabei ein akustisches und/oder ein visuelles Signal erzeugt werden.
-
Weiterhin kann bei den Clients eine Authentifizierungsfunktion zur Authentifizierung beim Server vorgesehen sein. Hierdurch kann sichergestellt werde, dass nur zuvor registrierte Nutzer an dem Dateiübertragungssystem teilnehmen können. Vorteilhafterweise sind die hierfür verwendeten Credentials von einem Benutzer eingebbar sind und auf dem Client verschlüsselt abspeicherbar.
-
Weiterhin vorteilhafterweise umfasst der Server eine Datenbank mit Userdaten. Vorteilhafterweise enthält diese Datenbank dabei sowohl Daten zu allen angemeldeten Benutzern, als auch zu allen im jeweiligen Zeitpunkt aktiven Clients. Vorteilhafterweise werden dabei zumindest bestimmte Daten der User, insbesondere Passwörter, verschlüsselt in der Datenbank abgespeichert.
-
Zum Betrieb des Dateiübertragungssystem muss ein Benutzer eines Clients sich zunächst bei dem Server als ein neuer Client registrieren lassen. Wird die Anwendung dann auf dem jeweiligen Client gestartet, meldet sich diese mit den entsprechenden Daten beim Server und signalisiert so, dass der entsprechende Client aktiv ist.
-
Weiterhin vorteilhafterweise ist vorgesehen, dass die Clients und der Server über verschlüsselte Verbindungen miteinander kommunizieren. Hierdurch wird die Sicherheit des Dateiübertragungssystems erhöht. Insbesondere sind dabei SSL-Verbindungen vorgesehen, über welche die Clients und der Server kommunizieren können.
-
Vorteilhafterweise fragen die Clients dabei beim Start der Anwendung und/oder in vorbestimmten Abständen beim Server an, ob zufällig ausgewählte Dateien zum Download bereit stehen. Hat der Zufallsgenerator einen bestimmten Client zufällig als Empfänger einer Datei ausgewählt, so teilt der Server dies dem Client bei seiner Abfrage mit, so dass der Client die entsprechende Datei downloaden kann.
-
Vorteilhafterweise speichern die Clients dabei vom Server übertragene Dateien in einem temporären Verzeichnis. Aus diesem temporären Verzeichnis kann ein Nutzer des Clients die Dateien dann in ein anderes Verzeichnis kopieren, wenn dies gewünscht ist. Vorteilhafterweise wird das temporäre Verzeichnis dabei beim Beenden der Anwendung geleert.
-
Dabei kann vorgesehen sein, dass der Zufallsgenerator den oder die Clients, an welchen oder an welche eine Datei übertragen wird, nur aus den zu diesem Zeitpunkt aktiven Clients auswählt. Die Übertragung einer Datei erfolgt daher immer zwischen einem ersten aktiven Client und einem zweiten aktiven Client, wobei der zweite aktive Client über den Zufallsgenerator des Servers ausgewählt wird.
-
Vorteilhafterweise ist erfindungsgemäß vorgesehen, dass für jede Datei genau ein Client als Empfänger zufällig ausgewählt wird.
-
Weiterhin vorteilhafterweise umfasst der Server eine Plattform, in welcher über das System übertragene Dateien allgemein und/oder für alle Clients zugänglich abgelegt werden können. Insbesondere handelt es sich dabei um eine Web-Galerie, in welcher über das Übertragungssystem übertragene Daten abgelegt werden können. Vorteilhafterweise umfasst jeder Client dabei eine Funktion, durch welche eine gerade übertragene Datei auf der Plattform abgelegt werden kann.
-
Vorteilhafterweise ermöglicht die Plattform dabei eine Kommentierung der abgelegten Dateien und/oder Kommunikation mit Benutzern anderer Clients. Hierdurch ist ein Informationsaustausch zwischen den Nutzern des Dateiübertragungssystems möglich.
-
Weiterhin vorteilhafterweise weist der Server eine Gewinnfunktion auf, durch welche Gewinne über den Zufallsgenerator an Nutzer von teilnehmenden Clients verlost werden können. Die Benachrichtigung der Nutzer kann dabei entweder über das Dateiübertragungssystem selbst, oder über die von den Nutzern der Clients bei Registrierung angegebenen Daten erfolgen.
-
Vorteilhafterweise sind erfindungsgemäß die Client-Anwendungen auf PCs und/oder Mobiltelefonen installierbar. Insbesondere handelt es sich bei den Clientanwendungen dabei um Softwareprogramme, welche auf einem entsprechend ausgestatteten Endgerät installiert werden können, so dass dieses als Client des Dateiübertragungssystems fungiert. Vorteilhafterweise kommunizieren die Clients dabei mit dem Server über das Internet.
-
Weiterhin vorteilhafterweise umfasst das Dateiübertragungssystem dabei eine Downloadfunktion, über welche die Client-Anwendung auf ein Endgerät heruntergeladen werden kann.
-
Die vorliegende Erfindung umfasst weiterhin einen Server für ein Dateiübertragungssystem, wie es oben dargestellt wurde. Offensichtlich weist ein solcher Server die gleichen Vorteile auf, wie sie bereits oben hinsichtlich des Dateiübertragungssystems beschrieben wurden.
-
Vorteilhafterweise ermöglicht der Server dabei den Download von Client-Anwendungen, so dass Nutzer durch Download der Client-Anwendungen und Installation auf ihrem Endgerät Teilnehmer des Dateiübertragungssystems werden können.
-
Die vorliegende Erfindung umfasst weiterhin ein Client-Anwendungsprogramm für ein Dateiübertragungssystem, wie es oben dargestellt wurde. Vorteilhafterweise ist das Client-Anwendungsprogramm dabei auf einem Endgerät installierbar und durch dieses ausführbar, so dass das Endgerät als ein Client des Dateiübertragungssystems arbeiten kann.
-
Weiterhin umfasst die vorliegende Erfindung einen Datenträger mit einem Client-Anwendungsprogramm für ein Dateiübertragungssystem, wie es oben dargestellt wurde.
-
Die vorliegende Erfindung wird nun anhand eines Ausführungsbeispiels sowie einer Zeichnung näher dargestellt. Dabei zeigt:
-
1: ein Ausführungsbeispiel eines erfindungsgemäßen Dateiübertragungssystems.
-
Bei dem Ausführungsbeispiel eines erfindungsgemäßen Dateiübertragungssystems steht ein Web-Server zur Verfügung, welcher potentiellen Nutzern durch Bereitstellung einer entsprechenden Webseite zur Verfügung steht. Die Nutzer haben dabei die Möglichkeit, eine Client-Anwendung auf ihr Endgerät zu laden und auf diesem zu installieren. Hierdurch dient das Endgerät als Client des Dateiübertragungssystems.
-
Damit ein Nutzer über seine Client-Anwendung an dem Dateiübertragungssystem teilnehmen kann, muss dieser zunächst einen Registrierungsprozess durchführen. Hierzu erfolgt eine Kommunikation zwischen der Client-Anwendung und dem Server, innerhalb welcher der Nutzer User-Daten sowie gegebenenfalls ein Passwort eingibt. Die Nutzerdaten werden dann auf dem Server in einer Datenbank gespeichert. Vorteilhafterweise erfolgt dabei zumindest die Speicherung der Passwörter verschlüsselt.
-
Nach erfolgter Registrierung meldet sich die Client-Anwendung bei ihrem Start beim Server durch Angabe entsprechender Credentials an. Vorteilhafterweise wird auf dem Server dabei erfasst, welche Client-Anwendungen aktuell aktiv sind.
-
Durch die Client-Anwendung hat ein Nutzer die Möglichkeit, bestimmte auf seinem Endgerät gespeicherte Inhalte wie z. B. Bilder, Filme, Musik, Sounds, Grafiken oder Texte in das Dateiübertragungssystem einzustellen. Insbesondere kann dies durch Ziehen der entsprechenden Datei in die Anwendung erfolgen, das sogenannte drag and drop Verfahren. Dabei sind gewisse Beschränkungen hinsichtlich der Art, des Formats und der Größe vorgesehen, welche durch die Client-Anwendung überprüft werden.
-
Bei Einstellung einer Datei in das Dateiübertragungssystem hat der Nutzer die Möglichkeit zu entscheiden, ob der Inhalt anonym oder zusammen mit Kontaktdaten über das Dateiübertragungssystem versandt werden soll.
-
Die Datei wird dann auf den Server übertragen, dort mittels einer Sicherheitsüberprüfung auf ihre Virenfreiheit überprüft und zu einem zufällig ausgewählten anderen Nutzer übertragen. Die Datei wird dann auf dem Endgerät des einstellenden Nutzers gelöscht.
-
Weiterhin bietet die Client-Anwendung die Möglichkeit, Dateien, welche der Client über das Dateiübertragungssystem empfangen hat, auf eine Plattform des Dateiübertragungssystems hochzuladen. Vorteilhafterweise ist dabei eine Kommentierung sowie gegebenenfalls eine Bewertung der Dateien auf dieser Plattform möglich.
-
Weiterhin kann der Betreiber des Dateiübertragungssystems das Zufallsverfahren des Dateiübertragungssystems nutzen, um unter den Nutzern des Dateiübertragungssystems ein Gewinne zu verlosen. Vorteilhafterweise erfolgt die Verlosung dabei durch eine zufällige Auswahl aus allen oder einer bestimmten Gruppe von Teilnehmern, vorteilhafterweise anhand der Daten in der zentralen Datenbank zu den Teilnehmern.
-
Als Endgeräte können dabei mikroprozessorgesteuerte Geräte mit einer Ein-/Ausgabeschnittstelle wie z. B. PCs oder entsprechend ausgestattete Mobiltelefone eingesetzt werden, auf welchen die Client-Anwendung installierbar ist. Die Funktionen des Servers können dabei sowohl virtuell, als auch physikalisch auf eine Mehrzahl von Geräten oder Anwendungen verteilt werden.
-
Eine konkrete Architektur für das erfindungsgemäße Dateiübertragungssystem wird nun anhand von 1 näher erläutert. Dabei ist ein Webserver 1 vorgesehen, welcher über ein Kommunikationsnetz 4 mit Clients 2 und 3 kommunizieren kann. Bei dem Kommunikationsnetz 4 handelt es sich dabei um das Internet. Bei den Clients 2 bzw. 3 handelt es sich dabei um Endgeräte, auf welchen entsprechende Client-Anwendungen installiert sind. Bei dem Client 2 handelt es sich im Ausführungsbeispiel um einen PC, bei dem Client 3 um ein internetfähiges Mobiltelefon. Die Übertragung von Daten über das Kommunikationsnetz 4 kann verschlüsselt erfolgen. Die Client-Anwendungen kommunizieren hierfür über sichere 128 Bit 551-Verbindungen mit dem Server 1.
-
Der Server 1 ist in ein Frontend 11, ein Backend 12 sowie eine Datenbank 13 aufgegliedert. Als Frontend wird dabei XML-basiertes REST-Interface eingesetzt, als Backend eine Ruby-on-Rails-Anwendung. Passwörter werden verschlüsselt in der Datenbank 13 gespeichert, welche als MySQL-Datenkbank ausgeführt ist. Die Softwarearchitektur ist dabei flexibel und skalierbar konzipiert. Die Last kann gegebenenfalls über einen Proxy-Balancer mod_proxy im Apache verteilt werden.
-
Die Client-Anwendung 2 wird in ActionScript 3.0 programmiert und als kompilierte AIR-Anwendung zur Verfügung gestellt. Die Client-Anwendung wird hierfür auf einer Webseite zum Download zur Verfügung gestellt. Hierfür ist auf der entsprechenden Webseite ein Installer-Badge vorgesehen, über welchen die Client-Anwendung installierbar ist. Vorteilhafterweise wird dabei bei jeder Kontaktaufnahme einer Client-Anwendung mit dem Server überprüft, ob die aktuelle Anwendungsversion installiert ist.
-
Nachdem die Client-Anwendung installiert wurde, wird diese automatisch gestartet. Es erscheint an einer zufälligen Position auf dem Desktop eine Box mit einer Log-In-Maske. Hier muss der User einmalig seine Credentials zur Teilnahme am Dateiübertragungssystem eintragen. Alle sicherheitskritischen Daten werden verschlüsselt lokal auf dem Endgerät des Users gespeichert. Dabei wird unter Windows DPAPI und unter MAC-OS die Key-Chain verwendet, um die verschlüsselten, lokalen Daten der Anwendung zuzuordnen. Dabei wird eine sichere 128 Bit Verschlüsselung verwendet.
-
Der User kann nun per drag and drop Dateien auf die Box der Client-Anwendung ziehen. Die Dateien werden vorab auf Größe und Dateityp (Systemdatei, Datei in Verwendung, etc.) geprüft und gegebenenfalls an den Server geschickt. Sofern die Prüfung auf dem Server ebenfalls positiv verläuft (Virencheck, Header... etc.) wird die Datei vom File-System des Users gelöscht.
-
Je nach Art der Anfrage werden serverseitig nur bestimmte http-Methoden (beim Upload z. B. nur post) zugelassen.
-
Die Client-Anwendung überprüft beim Start und nach bestimmten Intervallen, ob neue Dateien durch den Zufallsgenerator auf dem Server der entsprechenden Client-Anwendung zugeordnet wurden und lädt diese gegebenenfalls in ein temporäres Verzeichnis herunter. Anschließend werden Informationen zu den heruntergeladenen Dateien angezeigt. Der temporäre Ordner wird beim Schließen der Anwendung geleert.
-
Als Client kann neben PCs ebenfalls ein internetfähiges Mobiltelefon eingesetzt werden. Auch hier ist eine entsprechende Client-Anwendung vorgesehen, welche auf dem Mobiltelefon installiert werden kann. Die Nutzung dieser Client-Anwendung erfolgt im wesentlichen so, wie dies bereits hinsichtlich der Client-Anwendung auf anderen Endgeräten beschrieben wurde.
-
Als Webserver dient ein Linux-Server mit Apache und einer MySQL-Datenbank. Als Framework wird Ruby-an-Rails verwendet. Gegebenenfalls können mehrere Instanzen (auch physiklaisch) parallel ausgeführt werden, um die Last besser zu verteilen. Die Ruby-on-Rails-Anwendung enthält CSRF-Protection und Methoden gegen Cross-Site-Scripting XSS sowie alle weiteren sicherheitsrelevanten Verfahren.
-
Das als Frontend eingesetzte REST-Interface enthält Methoden für:
Log-In (verschlüsselt)
Registrierung,
Upload von Dateien,
Download von Dateien,
Auswahl einer zufälligen Datei und/oder eines zufälligen Clients,
-
Jedem Methodenaufruf muss eine vorherige Authentifizierung mit den Credentials vorausgehen. Nach dem ersten erfolgreichen Log-In wird ein Authentifizierungs-Token mit einer bestimmten Gültigkeit erstellt. Sofern kein Token vorhanden ist, erscheint erneut die Log-In-Maske.
-
Nach vollständigem Upload einer Datei wird eine serverseitige Virenprüfung durchgeführt. Hierbei werden die Dateien auf schadhafte Signaturen geprüft. Sollte die Prüfung positiv sein, wird die Datei sofort gelöscht und der User benachrichtigt. Alle hochgeladenen Dateien werden in einem Verzeichnis außerhalb des Webroots gespeichert und direkt über den Service gestreamt, so dass kein direkter Zugriff von Unbefugten möglich ist. Der Log-In und die Registrierung auf der Webseite des Dateiübertragungssystems wird ebenfalls per SSL geschützt.
-
Die vorliegende Erfindung ermöglicht durch die zufällige Auswahl der Clients, an welche Dateien übertragen werden, eine erheblich größere Reichweite des Dateiübertragungssytems.