Skąd system wie, że posiadasz oficjalna licencję?

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?

Opublikowano 22.12.2022 14:31

  • 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?

#youtube