W zeszłym tygodniu musiałem stworzyć mały GUI do pracy domowej. Żaden z moich kolegów ze szkoły tego nie zrobił. Ukradli mój plik, skąd musieliśmy go przesłać, a następnie przesłali go ponownie jako swój. Kiedy powiedziałem nauczycielowi, że to cała moja praca, nie uwierzył mi.
Pomyślałem więc o umieszczeniu w środku bezużytecznej metody lub czegoś z dowodem, że to zakodowałem. Myślałem o szyfrowaniu. Jak dotąd mój najlepszy pomysł:
String key = ("ZGV2ZWxvcGVkIGJ5IFdhckdvZE5U"); //My proof in base64
Czy możesz wymyślić inne lepsze sposoby?
encryption
WarGodNT
źródło
źródło
Odpowiedzi:
Miałem ten sam problem co ty dawno temu. Mieliśmy komputery z systemem Windows 2000 i przesyłaliśmy pliki do folderu sieciowego Novel, który każdy mógł zobaczyć. Użyłem kilku sztuczek, aby pokonać nawet najlepszych złodziei: znak wodny z białymi znakami; znak wodny metadanych; niezwykłe postacie; zaufane znaczniki czasu; modus operandi. Oto ich w kolejności.
Białe znaki wodne:
To jest mój oryginalny wkład w tworzenie znaków wodnych. Potrzebowałem niewidocznego znaku wodnego, który działałby w plikach tekstowych. Sztuczka, na którą wpadłem, polegała na umieszczeniu określonego wzorca białych znaków między instrukcjami programowania (lub akapitami). Plik wyglądał dla nich tak samo: niektóre instrukcje programowania i podziały wierszy. Ostrożne zaznaczenie tekstu spowoduje wyświetlenie spacji. Każdy pusty wiersz zawierałby pewną liczbę spacji, które oczywiście nie są przypadkowe ani przypadkowe. (np. 17) W praktyce ta metoda zadziałała za mnie, ponieważ nie mogli dowiedzieć się, co umieszczam w dokumentach.
Znak wodny metadanych
Tutaj możesz zmienić metadane pliku, aby zawierały informacje. Możesz osadzić swoje imię i nazwisko, skrót itp. W niewidocznych częściach pliku, szczególnie w plikach EXE. W dniach NT alternatywne strumienie danych były popularne.
Niezwykłe postacie
Wrzucę to tylko dla kopnięć. Stara sztuczka IRC polegająca na podszywaniu się pod inne osoby polegała na stworzeniu nazwy z literami, które wyglądają podobnie do nazwiska innej osoby. Możesz tego użyć w znakowaniu wodnym. Mapa znaków w systemie Windows daje wiele nietypowych znaków, które wyglądają podobnie do litery lub cyfry, których możesz użyć w kodzie źródłowym, ale nie są. Te pojawianie się w konkretnym miejscu w czyjejś pracy nie może być przypadkowe.
Zaufane sygnatury czasowe
Krótko mówiąc, wysyłasz plik (lub jego skrót) do osoby trzeciej, która następnie dodaje do niego znacznik czasu i podpisuje go kluczem prywatnym. Każdy, kto chce udowodnić, kiedy utworzyłeś dokument, może udać się do zaufanej strony trzeciej, często strony internetowej, w celu zweryfikowania czasu utworzenia dokumentu. Były one wykorzystywane w sprawach sądowych w sporach dotyczących własności intelektualnej, więc stanowią bardzo mocną formę dowodu. To standardowy sposób na uzyskanie dowodu, którego szukasz. (Inne dołączyłem jako pierwsze, bo są łatwe, są fajniejsze i prawdopodobnie będą działać.)
Ten artykuł w Wikipedii może pomóc instruktorowi zrozumieć Twoje dowody, a sekcja linków zewnętrznych ma wielu dostawców, w tym bezpłatnych. Przetestowałem pliki testowe przez darmowe przez kilka dni, zanim użyłem ich do czegoś ważnego.
Modus operandi
Więc coś zrobiłeś i teraz masz dowód, prawda? Nie, uczniowie nadal mogą powiedzieć, że ukradłeś im pomysł lub inne bzdury. Moją poprawką było ustalenie na osobności jednej lub więcej moich metod z moim instruktorem. Mówię instruktorowi, aby szukał białych znaków, szukał określonych symboli itp., Ale aby nigdy nie mówił innym, czym był znak wodny. Jeśli instruktor zgodzi się zachować twoje proste techniki w tajemnicy, prawdopodobnie będą nadal działać dobrze. Jeśli nie, zawsze istnieje zaufany znacznik czasu. ;)
źródło
Gdyby twoi koledzy z klasy ukradli Twój kod z witryny do przesyłania, zaszyfrowałbym twoją pracę domową i wysłałbym klucz e-mailem do nauczyciela. Możesz to zrobić za pomocą PGP, jeśli chcesz być skomplikowany lub coś tak prostego, jak plik Zip z hasłem.
EDYCJA: PGP pozwoliłoby na szyfrowanie / podpisywanie bez ujawniania klucza, ale nie można pokonać prostoty ścinania pliku Zip z hasłem, więc po prostu wybieraj nowy klucz przy każdym zadaniu domowym. Piękno w prostocie :)
źródło
Jeśli dajesz nauczycielowi kod źródłowy, po prostu dodaj
serialVersionUID
do jednego z plików klasowych zaszyfrowaną wersję Twojego imienia i nazwiska. Możesz samodzielnie odszyfrować go nauczycielowi.To nic nie znaczy dla innych, tylko dla ciebie. Możesz powiedzieć, że to wygenerowany kod, jeśli go kradną, prawdopodobnie w ogóle nie zawracają sobie głowy jego modyfikacją.
Jeśli chcesz to zrobić w stylowy sposób, możesz użyć tej sztuczki , jeśli znajdziesz przypadkowe ziarno, które produkuje twoje imię. :) To byłby wtedy twój numer i gdziekolwiek by się pojawił, to udowodniłoby, że to ty stworzyłeś ten kod.
źródło
//written by WarGodNT
je//Written by ImaCheata
.) Jest również mało prawdopodobne, aby wielu z nich wiedziało, że svUID może je zniszczyć. Nawet jeśli kilka z nich jest tak sprytnych; jeśli większość klasy oszukuje, kilku z pewnością zostanie złapanych. Powinno to przynajmniej wystarczyć do przekonania nauczyciela, aby nie wyjaśniał swojego procesu.Stało się to z parą moich uczniów, którzy mieszkali w tym samym mieszkaniu. Jeden ukradł kod źródłowy z dysku pozostawionego w szufladzie biurka.
Złodziej nieznacznie zmodyfikował skradzione źródło, żeby nie było to oczywiste. I tak zauważyłem podobieństwo kodu i sprawdziłem źródło w edytorze. Niektóre linie miały dodatkowe spacje na końcach. Źródło każdego ucznia miało taką samą liczbę dodatkowych spacji.
Możesz to wykorzystać do kodowania informacji bez pokazywania ich. Możesz zakodować swoje inicjały lub legitymację studencką na końcach niektórych wierszy ze spacjami.
Złodziej prawdopodobnie dokona kosmetycznych zmian w widocznym kodzie, ale może przeoczyć niewidoczne znaki.
EDYTOWAĆ:
Myśląc o tym trochę więcej, możesz użyć spacji i tabulatorów jako cyfr i dah w alfabecie Morse'a i umieścić swoje imię na końcu wielu linii. Złodziej może usunąć, zmienić kolejność lub przepisać niektóre wiersze bez niszczenia Twojej identyfikacji.
EDYCJA 2:
„Steganografia białych znaków” to termin oznaczający ukrywanie wiadomości w białych znakach. Wyszukiwanie w Google ujawnia tę implementację typu open source z lat 90., przy użyciu kodowania Huffmana zamiast kodu Morse'a.
źródło
Wydaje mi się, że jest to problem z administracją IT. Każdy uczeń powinien mieć własny obszar przesyłania, do którego nie mają dostępu inni uczniowie.
Nauczyciel byłby na wyższym poziomie, mając dostęp do każdego folderu przesyłania uczniów. Jeśli nie jest to możliwe, wybierz odpowiedź @exabrial, ponieważ jest to najprostsze rozwiązanie.
źródło
Najlepsze, co możesz zrobić, to po prostu spakować kod źródłowy z hasłem i wysłać je e-mailem do nauczyciela.
Problem rozwiązany.
źródło
Użyj rozproszonego (= samodzielnego) systemu kontroli wersji , takiego jak git . Może się też przydać.
Historia wersji z Twoim imieniem i datami może być wystarczająco przekonująca.
źródło
git filter-branch
został zbudowany do takich szalonych rzeczy, które nie powinny być łatweCo zostało skradzione?
Źródło ? Możesz umieścić w nim losowe struny (ale można to zmienić). Możesz także spróbować dodać specjalne zachowanie znane tylko od Ciebie (specjalne naciśnięcie klawisza zmieni kolor w rzędzie), możesz wtedy zapytać nauczyciela „inni znają tę specjalną kombinację?”. Najlepszym sposobem będzie zawieszenie programu, jeśli po 5 minutach aktywności w archiwum nie ma pustego, bezużytecznego pliku, twoi koledzy ze szkoły będą zbyt leniwi, aby czekać tak długo.
Binarny? Wystarczy porównać sumę kontrolną każdej klasy .class (Twoi koledzy ze szkoły są zbyt leniwi, aby przepisać pliki klas)
źródło
Po prostu opublikuj swoje rozwiązanie w ostatniej chwili. To nie da czasu nikomu na skopiowanie.
I wyślij opinię do administratora, aby uniemożliwić uczniom przeglądanie projektów innych uczniów.
źródło
Jeśli prześlesz plik w formacie .zip z zaszyfrowanym hasłem, każdy może po prostu złamać hasło, pobierając plik .zip i zlecić procesorowi wykonanie miliona zapytań, jeśli jest tak wielkim złodziejem oszustów. Niestety, niektóre są i łatwo to zrobić.
Twoje źródło może być przeglądane na udostępnionym serwerze przez innych uczniów. Nauczyciel naprawdę powinien dać ci własny zaszyfrowany katalog do przesłania hasła. Można to łatwo zrobić, dodając subdomeny. Ale być może nauczyciel pozwoli ci przesłać pliki na własny serwer, aby mógł tam uzyskać do nich dostęp.
Możliwe jest również zaciemnienie skryptu, aby zawierał plik document.write („Ta strona została napisana przez xxxxx”), zmuszając każdego, kto kopiuje Twoją pracę, do niemożności usunięcia informacji o autorze, chyba że najpierw je odszyfruje. Ale prawdziwa odpowiedź jest taka, że Twoja szkoła musi zapewnić każdemu uczniowi własny katalog chroniony hasłem.
źródło
W moim przypadku moi nauczyciele przyszli z lepszym podejściem. Pytania, które zadali, mają coś wspólnego z naszym numerem rejestracyjnym. Dawny:
Tak więc odpowiedzi lub podejście do rozwiązania są stosunkowo różne u każdego ucznia. To sprawia, że wszyscy uczniowie muszą koniecznie samodzielnie odrabiać pracę domową lub przynajmniej dowiedzieć się, jak zhakować podejście z własną rejestracją. może być trudniejsze niż nauczenie się lekcji;)].
źródło