Legalität von Reverse Engineering eines/r Protokolls/Verschlüsselung

.tails

New member
Hallo zusammen.

Ich habe eine Frage zur Legalität von Reverse Engineering, mit dem Ziel eine Funktion einer anderen Software zu implementieren. Speziell geht es dabei um ein Netzwerk Protokoll und das Verschlüsselungsverfahren mit dem die Pakete geschützt werden. Ich war mir nicht ganz sicher ob dies besser in Security oder die Code Kitchen passt, aber hat wohl ein bisschen was von beidem.

Wenn man die beschriebenen Algorithmen einer fremden Client/Server Anwendung entnimmt, und mit diesen eigene, kompatible, Clients und/oder Server schreibt, und diese öffentlich frei gibt (Open Source), ist dies illegal, obwohl nur indirekt Daten des offiziellen Programms verwendet werden, und das Projekt zu 100% aus eigenem Code besteht?

Ich konnte leider bisher auf diese Frage noch keine klare Antwort finden, und bin lediglich zu der Erkenntniss gelangt dass es wohl irgendwo zwischen Weiß und Grau Zone liegen muss. Laien streiten sich gern über dieses Thema, und während die eine Quelle sagt es sei illegal, sagt die nächste schon wieder dass es legal ist, und die übernächste tendiert zu legal, aber nur wenn es nicht-kommerziell ist, usw. Ob es Unterschiede zwischen kommerziell und nicht-kommerziell gibt wäre natürlich interessant.

Gibt es konkrete 100% klare Antworten zu diesem Thema?
 

jemo.

Member
Ich glaube, dass die Legalität bei dem Sachverhalt nur durch das studieren der Nutzungsbedingungen der Software, die du reversen willst, geklärt werden kann.

Ein Beispiel für vermutlich illegales Reversing sind die vielen privaten Game Server von WoW & Co.

Für den komplett privaten Gebrauch gibt es da keine Probleme, aber da du das Ergebnis unter eine Open Source-Lizenz stellen willst sieht es bestimmt anders aus.

Außerdem implementierst du dann ein evtl. proprietäres Protokoll, das ggf. noch anderweitig geschützt ist.

100% klare Antworten kann dir natürlich aber nur ein Jurist geben, wenn es diese überhaupt schon gibt.
 

Chromatin

Moderator
Mitarbeiter
Das kann man so nicht sagen, das kommt auf die Software an.

Fang doch erstml an und poste dann nochmal.
 

.tails

New member
Das kann man so nicht sagen, das kommt auf die Software an.

Fang doch erstml an und poste dann nochmal.
Hätte ich mal gleich dazu schreiben sollen.
Also der Betreiber der original Software hat definitiv etwas dagegen. Nur ist es ja so dass in den TOS sonst was drin stehen kann, das allein aber, falls ich es nicht falsch verstehe, nichts ist womit man rechtlich etwas in der Hand hätte, sondern dem Betreiber nur erlauben würde jemanden der das tut von dem Service auszuschließen.
Etwas anderes wäre es natürlich wenn es ausdrücklich erlaubt, oder nicht weiter erwähnt wäre, aber dann wäre die Frage wohl überflüssig^^ Mir geht es um den Fall wenn das gegen den Willen des Betreibers geschieht. Und in wie weit dieser, mit der sehr wahrscheinlichen Annahme dass man es getan hat, rechtlich überhaupt gegen jemanden vorgehen kann.

Das ist eigentlich ein gutes Beispiel, jemo, es geht tatsächlich um ein Projekt ähnlich einem emulierten Game Server. Und ich weiß zB das es in dem Bereich keinerlei Urteile gegen reine Open Source Projekte gab, die sich nicht noch durch andere Dinge strafbar gemacht haben, wie verändern der Client Software, oder Verwendung von Client Dateien, zur Betreibung eines Servers, was ja wieder eine ganz andere Geschichte und definitiv illegal ist. Oder besser gesagt, mir sind keinerlei solcher Fälle bekannt. Und da ich auch nichts allgemeineres finden konnte, frage ich hier.
 

enkore

New member
InfoCuria

Gaaanz unten:
1. Art. 1 Abs. 2 der Richtlinie 91/250/EWG des Rates vom 14. Mai 1991 über den Rechtsschutz von Computerprogrammen ist dahin auszulegen, dass weder die Funktionalität eines Computerprogramms noch die Programmiersprache oder das Dateiformat, die im Rahmen eines Computerprogramms verwendet werden, um bestimmte Funktionen des Programms zu nutzen, eine Ausdrucksform dieses Programms sind und daher nicht unter den Schutz des Urheberrechts an Computerprogrammen im Sinne dieser Richtlinie fallen.

2. Art. 5 Abs. 3 der Richtlinie 91/250 ist dahin auszulegen, dass die Person, die im Besitz einer lizenzierten Kopie eines Computerprogramms ist, das Funktionieren dieses Programms, ohne die Genehmigung des Urheberrechtsinhabers einholen zu müssen, beobachten, untersuchen oder testen kann, um die einem Programmelement zugrunde liegenden Ideen und Grundsätze zu ermitteln, wenn sie von dieser Lizenz umfasste Handlungen sowie Handlungen zum Laden und Ablaufen vornimmt, die für die Benutzung des Computerprogramms erforderlich sind, und unter der Voraussetzung, dass diese Person die Ausschließlichkeitsrechte des Inhabers des Urheberrechts an diesem Programm nicht verletzt.
Sollte auf deinen Fall zutreffen.
 
Zuletzt bearbeitet:

.tails

New member
InfoCuria

Gaaanz unten:


Sollte auf deinen Fall zutreffen.
Juristen Deutsch, you gotta love it. Danke dir.
Klingt passend, aber ich bin mir nicht sicher ob das die Frage schon ganz klärt. Wenn ich das nicht falsch verstehe, heißt es dort es ist legal, solange keine Lizenz oder Patent Rechte verletzt werden. Das ein Algorithmus patentiert ist schließe ich mal bei so alltäglichen Sachen ganz schnell aus, bliebe also die Lizenz. Wenn es keine genaueren Angaben diesbezüglich gibt, und die betreffende Software Closed Source ist, wie läuft das dann? Müsste man sich beim Rechte Inhaber erkundigen? Aber mit hoher Wahrscheinlichkeit würde diese Lizenz das unerlaubte verbreiten dieses nachgebildeten Algorithmus, sowohl in Source als auch in kompilierter Form, sicherlich verbieten, und damit dürfte man die entstehende Software nur noch für sich selbst nutzen... oder?
 
Zuletzt bearbeitet:

enkore

New member
Das mit der Lizenz bezieht sich meiner Meinung nach nur darauf, dass du eine gültige Lizenz für das zu untersuchende Programm hast, was ja eigentlich selbstverständlich ist. Den Nachsatz könnte man wohl so auslegen, dass du keine direkte Konkurrenz auf dieser Basis entwickeln|vertreiben darfst.

Solange du aber eine FOSS-Lizenz mit ggf. starkem Copyleft (GPL) verwendest, solltest du praktisch komplett ausm Schneider sein. Du darfst übrigens patentierte Verfahren beliebig nachprogrammieren und sogar veröffentlichen, nur keine kommerzielle Nutzung ohne Lizenzierung der Patente machen. Sonst wäre sowas wie GnuPG, was ja u.a. RSA nutzt (RSA ist patentiert), gar nicht möglich ;) oder UMTS-Treiber für Linux, die teilweise auch patentierte Verfahren nutzen (müssen).

Schönes Beispiel wäre z.B. auch Wine, wo die gesamte Windows API nachgebaut wurde.
 

.tails

New member
Das mit der Lizenz bezieht sich meiner Meinung nach nur darauf, dass du eine gültige Lizenz für das zu untersuchende Programm hast, was ja eigentlich selbstverständlich ist. Den Nachsatz könnte man wohl so auslegen, dass du keine direkte Konkurrenz auf dieser Basis entwickeln|vertreiben darfst.

Solange du aber eine FOSS-Lizenz mit ggf. starkem Copyleft (GPL) verwendest, solltest du praktisch komplett ausm Schneider sein. Du darfst übrigens patentierte Verfahren beliebig nachprogrammieren und sogar veröffentlichen, nur keine kommerzielle Nutzung ohne Lizenzierung der Patente machen. Sonst wäre sowas wie GnuPG, was ja u.a. RSA nutzt (RSA ist patentiert), gar nicht möglich ;) oder UMTS-Treiber für Linux, die teilweise auch patentierte Verfahren nutzen (müssen).

Schönes Beispiel wäre z.B. auch Wine, wo die gesamte Windows API nachgebaut wurde.
Wunderbar =) Danke an alle, und besonders an dich.
 

.tails

New member
(Entschuldigt den Doppelpost.)

Ich habe zu dem Thema gerade noch dies gefunden:
UrhG - Einzelnorm

Nach Absatz 1 wäre wohl, nach meinem Verständnis, die Dekompilierung zur Informationssammlung, zur Erstellung einer unabhängigen Software legal. Was wir aber ja schon geklärt hatten.
In Absatz 2 wird festgelegt was mit diesen Informationen (nicht) geschehen darf.
(2) Bei Handlungen nach Absatz 1 gewonnene Informationen dürfen nicht
1. zu anderen Zwecken als zur Herstellung der Interoperabilität des unabhängig geschaffenen Programms verwendet werden,
2. an Dritte weitergegeben werden, es sei denn, daß dies für die Interoperabilität des unabhängig geschaffenen Programms notwendig ist,
3. für die Entwicklung, Herstellung oder Vermarktung eines Programms mit im wesentlichen ähnlicher Ausdrucksform oder für irgendwelche anderen das Urheberrecht verletzenden Handlungen verwendet werden.
Und wieder muss ich mich fragen ob es nicht doch illegal ist. Nummer 1 geht noch in Ordnung, Nummer 2 kann man durchgehen lassen, denn die Information sind für die Dritten ja notwendig, aber Nummer 3 sagt klar das man kein praktisch identisches Produkt erschaffen darf. Ab dem Punkt wird es wieder unklar. Ist der offene Quellcode bereits als Programm zu werten? Wenn man einen Client dekompiliert, und mit den Informationen einen dazu passenden Server schreibt, greift dieser Punkt dann?
 

enkore

New member
IdR. kannst du für die reine Verteilung von Quellcode eh nicht verantwortlich gemacht werden, es wurde deswegen noch nie jemand verurteilt (aber schonmal angeklagt, vgl. GnuPG). Außerdem sind Client und Server unterschiedlich.
Ich nehme mal an, dass es um ein Spiel geht. "wesentlichen ähnlicher Ausdrucksform" Client -> grafische Darstellung, 3D etc. Server -> Konsole. Außerdem ist die Funktionalität von Client und Server ja auch diametral anders...
 

.tails

New member
IdR. kannst du für die reine Verteilung von Quellcode eh nicht verantwortlich gemacht werden, es wurde deswegen noch nie jemand verurteilt (aber schonmal angeklagt, vgl. GnuPG). Außerdem sind Client und Server unterschiedlich.
Ich nehme mal an, dass es um ein Spiel geht. "wesentlichen ähnlicher Ausdrucksform" Client -> grafische Darstellung, 3D etc. Server -> Konsole. Außerdem ist die Funktionalität von Client und Server ja auch diametral anders...
Okay, nochmals danke. Ich werde mit dem Thema mal weiterhin vorsichtig sein, aber mit dem Hintergedanken das es im Grunde legal sein sollte.
 

end4win

Member of Honour
Also deiner Beschreibung nach konvertierst du die Daten lediglich in ein für deine
Anwendung brauchbares Format, darin dürfte kein rechtliches Problem bestehen.
Dies wäre dann vergleichbar mit dem Konvertieren von ..bmp oder .pdf nach .jpg
oder txt und zurück. Mir ist hier nichts bekannt von irgendwelchen rechtlichen Problemen.

Gruss
 

.tails

New member
Also deiner Beschreibung nach konvertierst du die Daten lediglich in ein für deine
Anwendung brauchbares Format, darin dürfte kein rechtliches Problem bestehen.
Dies wäre dann vergleichbar mit dem Konvertieren von ..bmp oder .pdf nach .jpg
oder txt und zurück. Mir ist hier nichts bekannt von irgendwelchen rechtlichen Problemen.

Gruss
Mir ist auch nichts bekannt, aber das muss ja nicht unbedingt was heißen^^
Dein Vergleich scheint mir aber leider ein bisschen zu hinken. Ein Bild kopieren ist ja etwas anderes als ein Programm zu dekompilieren. Und würde man es gleich setzen wäre es illegal, denn die geschützten Bilder anderer Leute darf man schließlich nicht verwenden ohne Erlaubnis, egal in welches andere Bild-Format man sie konvertiert.
 

end4win

Member of Honour
Na ich bin davon ausgegangen, dass es sich um Daten handelt die dir gehören,
welche durch die Server/Client Software in ein Format gebracht werden welches
nur diese Software wieder lesen kann.
Sollte es sich allerdings um Daten handeln, die von der Software selbst
erstellt/erarbeitet werden und dies nicht auf triviale Weise begibst du dich wirklich
auf gefährliches Terrain. Allerdings wird dann wohl auch deine Anwendung vermutlich
rechtliche Fragen aufwerfen.

Gruss
 

.tails

New member
Na ich bin davon ausgegangen, dass es sich um Daten handelt die dir gehören,
welche durch die Server/Client Software in ein Format gebracht werden welches
nur diese Software wieder lesen kann.
Sollte es sich allerdings um Daten handeln, die von der Software selbst
erstellt/erarbeitet werden und dies nicht auf triviale Weise begibst du dich wirklich
auf gefährliches Terrain. Allerdings wird dann wohl auch deine Anwendung vermutlich
rechtliche Fragen aufwerfen.

Gruss
Es geht wie im ersten Post beschrieben um ein Netzwerk Protokoll (sprich den Aufbau) und die Verschlüsselungsroutine der Pakete eines Clients. Wirkliche Daten, Bilder usw, werden dabei nicht angerührt.
 
Oben