Letzte Woche musste ich eine kleine GUI für Hausaufgaben erstellen. Keiner meiner Schulkameraden hat es getan. Sie haben meine gestohlen, von wo wir sie hochladen mussten, und dann haben sie sie erneut als ihre hochgeladen. Als ich meinem Lehrer sagte, es sei meine ganze Arbeit, glaubte er mir nicht.
Also dachte ich daran, eine nutzlose Methode oder etwas mit dem Beweis, dass ich sie codiert habe, in mich aufzunehmen. Ich dachte an Verschlüsselung. Meine bisher beste Idee:
String key = ("ZGV2ZWxvcGVkIGJ5IFdhckdvZE5U"); //My proof in base64
Können Sie sich andere bessere Möglichkeiten vorstellen?
encryption
WarGodNT
quelle
quelle
Antworten:
Ich hatte vor langer Zeit das gleiche Problem wie Sie. Wir hatten Windows 2000-Computer und haben Dateien in einen neuartigen Netzwerkordner hochgeladen, den jeder sehen konnte. Ich habe verschiedene Tricks angewendet, um selbst die besten Diebe zu besiegen: Whitespace-Wasserzeichen; Metadaten-Wasserzeichen; ungewöhnliche Charaktere; vertrauenswürdige Zeitstempelung; Modus Operandi. Hier sind sie in Ordnung.
Whitespace-Wasserzeichen:
Dies ist mein ursprünglicher Beitrag zum Wasserzeichen. Ich brauchte ein unsichtbares Wasserzeichen, das in Textdateien funktionierte. Der Trick, den ich mir ausgedacht habe, bestand darin, ein bestimmtes Leerzeichenmuster zwischen Programmieranweisungen (oder Absätzen) einzufügen. Die Datei sah für sie gleich aus: einige Programmieranweisungen und Zeilenumbrüche. Wenn Sie den Text sorgfältig auswählen, wird das Leerzeichen angezeigt. Jede leere Zeile würde eine bestimmte Anzahl von Leerzeichen enthalten, die offensichtlich nicht zufällig oder zufällig sind. (zB 17) In der Praxis hat diese Methode die Arbeit für mich erledigt, weil sie nicht herausfinden konnten, was ich in die Dokumente eingebettet habe.
Metadaten-Wasserzeichen
Hier ändern Sie die Metadaten der Datei, um Informationen zu enthalten. Sie können Ihren Namen, einen Hash usw. in unsichtbare Teile einer Datei einbetten, insbesondere in EXE-Dateien. In NT-Tagen waren alternative Datenströme beliebt.
Ungewöhnliche Charaktere
Ich werde diesen nur zum Spaß reinwerfen. Ein alter IRC-Identitätswechsel-Trick bestand darin, einen Namen mit Buchstaben zu erstellen, die dem Namen einer anderen Person ähneln. Sie können dies als Wasserzeichen verwenden. Die Zeichentabelle in Windows enthält viele ungewöhnliche Zeichen, die einem Buchstaben oder einer Zahl ähneln, aber nicht sind, die Sie möglicherweise in Ihrem Quellcode verwenden. Diese, die an einer bestimmten Stelle in der Arbeit eines anderen auftauchen, können nicht zufällig sein.
Vertrauenswürdige Zeitstempelung
Kurz gesagt, Sie senden eine Datei (oder ihren Hash) an einen Dritten, der ihm dann einen Zeitstempel anfügt und ihn mit einem privaten Schlüssel signiert. Jeder, der nachweisen möchte, wann Sie ein Dokument erstellt haben, kann sich an einen vertrauenswürdigen Dritten, häufig eine Website, wenden, um den Nachweis der Erstellungszeit zu überprüfen. Diese wurden in Gerichtsverfahren für Streitigkeiten über geistiges Eigentum verwendet, daher sind sie eine sehr starke Beweisform. Sie sind der Standardweg, um den gewünschten Beweis zu erbringen. (Ich habe die anderen zuerst aufgenommen, weil sie einfach sind, mehr Spaß machen und wahrscheinlich funktionieren werden.)
Dieser Wikipedia-Artikel kann Ihrem Kursleiter helfen, Ihre Beweise zu verstehen, und der Abschnitt mit externen Links enthält viele Anbieter, einschließlich kostenloser. Ich habe einige Tage lang Testdateien durch kostenlose Dateien geführt, bevor ich sie für etwas Wichtiges verwendet habe.
Modus Operandi
Also hast du etwas getan und hast jetzt Beweise, oder? Nein, die Schüler können immer noch sagen, dass Sie ihnen die Idee oder einen anderen Unsinn gestohlen haben. Meine Lösung bestand darin, privat eine oder mehrere meiner Methoden mit meinem Ausbilder festzulegen. Ich fordere den Ausbilder auf, nach Leerzeichen zu suchen, nach bestimmten Symbolen zu suchen usw., aber den anderen niemals zu sagen, was das Wasserzeichen war. Wenn der Ausbilder zustimmt, Ihre einfachen Techniken geheim zu halten, funktionieren sie wahrscheinlich weiterhin einwandfrei. Wenn nicht, gibt es immer vertrauenswürdige Zeitstempel. ;)
quelle
Wenn Ihre Klassenkameraden Ihren Code von der Upload-Site gestohlen haben, würde ich Ihre Hausaufgaben verschlüsseln und den Schlüssel per E-Mail an den Lehrer senden. Sie können dies mit PGP tun, wenn Sie kompliziert sein möchten oder etwas so Einfaches wie eine Zip-Datei mit einem Passwort.
BEARBEITEN: Mit PGP können Sie verschlüsseln / signieren, ohne Ihren Schlüssel preiszugeben, aber Sie können die schere Einfachheit einer Zip-Datei mit einem Passwort nicht übertreffen. Wählen Sie also bei jeder Hausaufgabe einen neuen Schlüssel aus. Schönheit in Einfachheit :)
quelle
Wenn Sie dem Lehrer Quellcode geben, fügen Sie einfach eine
serialVersionUID
Ihrer Klassendateien hinzu, die eine verschlüsselte Version Ihres Namens ist. Sie können es dem Lehrer selbst entschlüsseln.Für die anderen bedeutet das nichts, nur für dich. Sie können sagen, dass es sich um einen generierten Code handelt. Wenn sie ihn stehlen, wird er sich wahrscheinlich überhaupt nicht darum kümmern, ihn zu ändern.
Wenn Sie es auf stilvolle Weise tun möchten, können Sie diesen Trick verwenden , wenn Sie den zufälligen Samen finden, der Ihren Namen erzeugt. :) Das wäre dann deine Nummer , und wo immer es erscheint, würde das beweisen, dass du es warst , der diesen Code gemacht hat.
quelle
//written by WarGodNT
mit//Written by ImaCheata
.) Es ist auch unwahrscheinlich , dass viele von ihnen wissen sogar die svUID sie sprengen könnte. Auch wenn einige von ihnen so schlau sind; Wenn der Großteil der Klasse betrügt, werden einige mit ziemlicher Sicherheit erwischt. Zumindest sollte dies ausreichen, um den Lehrer davon zu überzeugen, seinen Prozess aufzuheben.Dies geschah mit einem Paar meiner Schüler, die in derselben Wohnung lebten. Man stahl den Quellcode von einer Festplatte in einer Schreibtischschublade.
Der Dieb hat die gestohlene Quelle leicht modifiziert, so dass es nicht offensichtlich ist. Ich bemerkte sowieso die Ähnlichkeit des Codes und untersuchte die Quelle in einem Editor. Einige der Linien hatten zusätzliche Leerzeichen an den Enden. Die Quelle jedes Schülers hatte die gleiche Anzahl zusätzlicher Leerzeichen.
Sie können dies ausnutzen, um Informationen zu verschlüsseln, ohne sie sichtbar zu machen. Sie können Ihre Initialen oder Ihren Studentenausweis am Ende einiger Zeilen mit Leerzeichen codieren.
Ein Dieb wird wahrscheinlich kosmetische Änderungen am sichtbaren Code vornehmen, aber möglicherweise die nicht sichtbaren Zeichen übersehen.
BEARBEITEN:
Wenn Sie etwas mehr darüber nachdenken, können Sie Leerzeichen und Tabulatoren als Morsecode-Dits und Dahs verwenden und Ihren Namen am Ende mehrerer Zeilen einfügen. Ein Dieb könnte einige Zeilen entfernen, neu anordnen oder neu eingeben, ohne Ihre Identifikation zu zerstören.
EDIT 2:
"Whitespace-Steganographie" ist der Begriff für das Verbergen von Nachrichten in Whitespace. Durch Googeln wird diese Open-Source-Implementierung aus den 90er Jahren enthüllt , bei der Huffman-Codierung anstelle von Morsecode verwendet wird.
quelle
Es scheint mir ein IT-Verwaltungsproblem zu sein. Jeder Schüler sollte einen eigenen Upload-Bereich haben, auf den andere Schüler nicht zugreifen können.
Der Lehrer wäre eine höhere Stufe und könnte auf jeden Schüler-Upload-Ordner zugreifen. Wenn dies nicht möglich ist, gehen Sie zu @exabrial answer, da dies die einfachste Lösung ist.
quelle
Das Beste, was Sie tun können, ist, den Quellcode mit einem Passwort zu komprimieren und das Passwort per E-Mail an den Lehrer zu senden.
Problem gelöst.
quelle
Verwenden Sie ein verteiltes (= eigenständiges) Versionskontrollsystem wie git . Könnte auch nützlich sein.
Ein Versionsverlauf mit Ihrem Namen und Datum kann ausreichend überzeugend sein.
quelle
git filter-branch
wurde für solche verrückten Sachen gebaut, das sollte nicht einfach seinWas wurde gestohlen?
Die Quelle ? Sie können zufällige Zeichenfolgen einfügen (diese können jedoch geändert werden). Sie können auch versuchen, ein spezielles Verhalten hinzuzufügen, das nur von Ihnen bekannt ist (ein spezieller Tastendruck ändert eine Farbzeile). Anschließend können Sie den Lehrer fragen: "Die anderen kennen diese spezielle Kombination?". Der beste Weg ist, das Programm zum Absturz zu bringen, wenn nach 5 Minuten Aktivität keine leere, nutzlose Datei im Archiv vorhanden ist. Ihre Schulkameraden sind zu faul, um diese Zeit zu warten.
Die Binärdatei? Es reicht aus, nur die Prüfsumme jeder Klasse zu vergleichen (Ihre Schulkameraden sind zu faul, um die Klassendateien neu zu schreiben).
quelle
Veröffentlichen Sie Ihre Lösung einfach in letzter Minute. Dies gibt niemandem Zeit, es zu kopieren.
Senden Sie dem Administrator ein Feedback, damit die Schüler die Aufgaben anderer Schüler nicht sehen können.
quelle
Wenn Sie die Datei in eine ZIP-Datei mit Kennwortverschlüsselung hochladen, kann jeder das Kennwort einfach durch Herunterladen der ZIP-Datei knacken und seine CPU eine Million Abfragen ausführen lassen, wenn er ein so großer Betrügerdieb ist. Leider sind einige und es ist einfach zu tun.
Ihre Quelle kann von den anderen Schülern auf dem freigegebenen Server angezeigt werden. Der Lehrer sollte Ihnen wirklich Ihr eigenes passwortverschlüsseltes Verzeichnis zum Hochladen geben. Dies kann einfach durch Hinzufügen von Subdomains erfolgen. Aber vielleicht erlaubt Ihnen der Lehrer, die Dateien auf Ihren eigenen Server hochzuladen, damit er dort darauf zugreifen kann.
Es ist auch möglich, das Skript so zu verschleiern, dass es ein document.write enthält ('Diese Seite wurde von xxxxx geschrieben'), wodurch jeder, der Ihre Arbeit kopiert, gezwungen wird, das Guthaben erst zu entfernen, wenn er es zuerst entschlüsselt. Die eigentliche Antwort ist jedoch, dass Ihre Schule jedem ihrer Schüler ein eigenes passwortgeschütztes Verzeichnis geben muss.
quelle
In meinem Fall kamen meine Lehrer mit einem besseren Ansatz. Die Fragen, die sie gestellt haben, haben etwas mit unserer Registrierungsnummer zu tun. Ex:
Die Antworten oder die Herangehensweise an die Lösung unterscheiden sich also relativ von jedem Schüler. Dadurch muss jeder Schüler seine Hausaufgaben selbst machen oder zumindest lernen, wie er den Ansatz mit seiner eigenen Registrierung hackt kann schwieriger sein als die Lektion zu lernen;)].
quelle