Wpis z mikrobloga

Pamiętasz swój klucz do Windowsa? Kupując legalne oprogramowanie oprócz płyty otrzymywało się certyfikat autentyczności z wydrukowanymi kilkoma znakami. Ale skąd system wiedział, że ten kod jest prawidłowy? #od0dopentestera
Teoretycznie można umieścić wszystkie klucze w kodzie programu. Ale nikt tak nie robi. Bo co jeśli jest ich na przykład 100 000?
Wykorzystuje się algorytm, który na podstawie matematycznych operacji weryfikuje poprawność klucza. Wyobraź sobie, że kod produktu składa się z samych cyfr. Program liczy ich sumę. Jeśli jest równa 20 - serial jest prawidłowy. Istnieje sporo różnych kombinacji cyfr, których suma jest równa 20. A równocześnie jest mała szansa, że użytkownik losowo poda akurat takie dane, które spełnią nasze wymagania.
Tutaj znajdziesz film tłumaczący algorytm do Windowsa 95 a tu opis dla Half Life.
Programy typu shareware działają x dni a później wymagają aktywacji. Skąd wiedzą, kiedy zostały uruchomione po raz pierwszy? Zapisują to sobie. Na przykład w rejestrze. Albo w jakimś pliku tekstowym schowanym w katalogu C:\Windows\system32.
Narzędzie RunAsDate pozwala na uruchomienie dowolnego programu z dowolną datą (bez zmiany czasu systemowego). Wykorzystywane jest do omijania zabezpieczeń ale ma też legalne zastosowanie. Możesz dla przykładu sprawdzić jak program zachowa się w przyszłości.
Prawidłowy klucz zadziała na każdym komputerze. Zaczęto więc łączyć je z unikalnym identyfikatorem sprzętowym. Można dla przykładu pobrać numer seryjny dysku twardego lub wartość "MachineGuid", która jest generowana podczas instalacji Windowsa. Taki klucz nie zadziała już na innych komputerach bo jest powiązany z tą jedną, konkretną maszyną.
Windows XP działał przez 30 dni po instalacji. Później wymagał aktywacji. Microsoft chciał w ten sposób sprawdzić czy jeden klucz nie jest wykorzystywany na wielu komputerach. Teraz w czasach Internetu jest to proste. Wystarczy wysłać serial i sprawdzić go w bazie. Ale wtedy Internet nie był popularny.
Zastosowano mechanizm aktywacji przez telefon. Użytkownik dzwonił na specjalny numer i wciskał klawisze na klawiaturze. 9 grup po 6 cyfr. W tych cyfrach programiści „ukryli” numer produktu ale także informacje o komputerze.
Jak wspomina Dave (programista odpowiedzialny za ten mechanizm) z racji ograniczonego miejsca musiano iść na wiele kompromisów. Na przykład nie wysyłano ile konkretnie megabajtów ramu masz - ale informacje w stylu "mało, średnio, dużo i bardzo dużo".
WinRar jest słynny ze swojego 40 dniowego okresu próbnego. Ale całość działa nawet po przekroczeniu tego czasu. Wyświetlany jest tylko „nag screen” - okienko przypominające, że ten program nie jest darmowy i należy kupić licencję.
To nie jest błąd ale sprytna technika marketingowa. Pozwalamy klientom domowym używać za darmo naszego programu. Lubią go i znają. Więc pewno będą go chcieli używać również w pracy. Zarabia się więc na firmach a nie użytkownikach domowych.
Dawniej wykorzystywano również częściową weryfikację klucza. Nie sprawdzano poprawności całego ciągu - ale tylko wybranych fragmentów. W kolejnych aktualizacjach dodawano weryfikacje nowych części. Przez co generatory nielegalnych kluczy nie działały z nowszymi wersjami oprogramowania. Bo skąd programiści mieli wiedzieć jaki algorytm wykorzysta autor w przyszłości?
Droższe programy używają kluczy sprzętowych nazywanych donglami. Są to urządzenia USB. Wyobraź sobie, że tworzysz program rachunkowy. W kluczu programujesz wartość podatku VAT. Teraz gdy chcesz wykonać jakąś operację to musisz najpierw poprosić klucz o zwrócenie odpowiedniej wartości. Bez niej program nie zadziała bo tej wartości nie ma fizycznie w kodzie.
Nowsze generacje tych urządzeń działają jak mini komputery. Pozwalają na wykonywanie kodu programu wprost w kluczu. Czyli przenosi się część programu do zewnętrznego urządzenia. Ale znowu coś kosztem czegoś. Taka integracja wymaga więcej pracy od programisty. I zwiększa też koszt końcowy programu - bo każdy użytkownik oprócz licencji musi też otrzymać od nas klucz sprzętowy.

Więcej opowiadam w filmie: Skąd Windows wie, że jest legalny?

PS. Jeśli ten film Ci się spodobał - możesz go wykopać.

Interesujesz się bezpieczeństwem - sprawdź mój newsletter.

#gruparatowaniapoziomu #ciekawostki #ciekawostkihistoryczne #swiat #technologia #historia #programowanie #informatyka #komputery
KacperSzurek - Pamiętasz swój klucz do Windowsa? Kupując legalne oprogramowanie opróc...
  • 99
  • Odpowiedz
@KacperSzurek: nie pamiętam już co to był za soft ale kojarzę że serial wyglądał jakoś tak 1113-111111111 czy podobne kwiatki ;)
Ale jeśli chodzi o zabezpieczenia softu to warto też wspomnieć o tych używanych w grach na początku wieku. Przy starcie program prosił o odczytanie i wpisanie konkretnego słowa z danej strony instrukcji. Pamiętam że takiego kwiatka miałem w grze Wing Commander, coś takiego miał też Blackthrone i pare innych
  • Odpowiedz
@KacperSzurek: a jak jest z doładowaniami do telefonu? Za dzieciaka próbowało się wiele razy trafić z kodem manipulując cyframi z kupionego doładowania lub strzelając w ciemno ale nigdy się nie udało.
  • Odpowiedz
a jak jest z doładowaniami do telefonu? Za dzieciaka próbowało się wiele razy trafić z kodem manipulując cyframi z kupionego doładowania lub strzelając w ciemno ale nigdy się nie udało.


@xqwzyts: na 99% doładowanie jest tworzone w momencie wydruku, wcześniej fizycznie w sieci nie istnieje, dlatego ewentualnie miałbyś szansę, gdybyś wbił kod, który właśnie ktoś wygenerował, ale nie zdążył go użyć.
  • Odpowiedz
@KacperSzurek: a nie wiem Win95 miałem oryginalnego i klucz składał się z e 5 sekcji. Ale pamiętam że ten klucz o którym wspominałem dzielił się na 2 sekcje. Gdybym nie był taki stary pewnie bym pamiętał dokładnie do czego xD
  • Odpowiedz
@KacperSzurek: Przy WinRAR niestety się mylisz. Oczywiście wyskakiwało okienko z informacją, że minęło 40 dni, które można było zamknąć i dalej działał menadżer plików. Jednak nie można było rozpakowywać archiwów - wyskakiwał błąd przy wypakowywaniu i nic z tym fantem nie można było zrobić. Chyba, że to ja zawsze miałem skopaną wersję ( ͡º ͜ʖ͡º)
  • Odpowiedz
na 99% doładowanie jest tworzone w momencie wydruku, wcześniej fizycznie w sieci nie istnieje, dlatego ewentualnie miałbyś szansę, gdybyś wbił kod, który właśnie ktoś wygenerował, ale nie zdążył go użyć.


@Fenrirr: ale kiedyś były w kiosku karty zdrapki. Te kody były już wygenerowane.
  • Odpowiedz