Pytanie Jak działają 25-znakowe klucze produktu?


Produkty Microsoft i inne produkty często mają klucz produktu składający się z 5 grup po 5 znaków, na przykład:

ABCDE-12345-ABCDE-12345-VWXYZ

W jaki sposób produkt wie, czy klucz jest ważny? Jakiś rodzaj kryptografii? Czy istnieje biblioteka, jeśli chcę użyć tego klucza produktu w moim kodzie?


12
2017-12-01 05:58


pochodzenie


MS prawdopodobnie nigdy nie ujawniłby swojego algorytmu. - Rafe Kettler
Podobnie jak 27-znakowe klucze produktu, tylko szybciej. Dopóki nikt nie wymyśli 23-znakowych kluczy produktu, powinniśmy być w porządku :-) {z przeprosinami braci Farrelly}. - paxdiablo
Zastanawiałem się - dlaczego 25? I obliczył, że 25 to minimalna ilość symboli potrzebnych do zakodowania 128 bitów danych. A także 25 to wielokrotność 5, która pozwala nawet na grupowanie. Te klucze są zaskakująco dobrze zaprojektowane pod kątem zarówno pojemności danych, jak i czytelności człowieka! - ogurets


Odpowiedzi:


Może chcesz się przyjrzeć Ten artykuł o tym, jak zaimplementować funkcję sprawdzania numeru seryjnego. Wchodzi również w kilka zaawansowanych technik, takich jak trzymanie się kluczy typu keygen, wyciek kluczy itp.

W skrócie, są typowo trzy podstawowe pola w takim kluczu:

  • rzeczywisty numer seryjny, który w artykule nazywa się "nasieniem"
  • niektóre dane weryfikacyjne; tylko część danych weryfikacyjnych jest faktycznie sprawdzana przez kod
  • suma kontrolna, CRC lub inny prosty mechanizm korekty literówki

Wykonując tylko część sprawdzania danych weryfikacyjnych w swoim kodzie, możesz zrobić "prawdziwą walidację" (w takim przypadku reszta weryfikacji dzieje się na serwerze) lub wyzwolić keygeny poprzez sprawdzenie różnych podzbiorów danych walidacyjnych w nowym wydania.


5
2017-12-01 06:34





Szczególnie w przypadku produktów Microsoft dostępna jest pewna wiedza.

Klucze produktu w systemie Windows XP są kodowane base24 przy użyciu niestandardowego alfabetu. Składa się z numeru seryjnego (źródło nazywa go "kluczem produktu surowego") i podpisu cyfrowego nad nim. źródło

Klucze produktu w systemie Windows 8 i nowszych mają pewną dokumentację w zgłoszeniu patentowym oprogramowania WO 2012067888 A1. Nadal jest kodowany base24 (57 i następne, co w praktyce oznacza, że ​​pozycja "N" jest używana jako pierwszy znak do odkodowania). Istotne jest to, że są te części do klucza produktu Windows 8 i wyższego:

  • Identyfikator grupy, który wskazuje typ / wydanie / rodzinę / kanał dystrybucji, patrz akt 34)
  • Numer seryjny (formularze "Klucz produktu surowego" wraz z identyfikatorem grupy)
  • Wartości bezpieczeństwa 1 i 2 (różnych stopni bezpieczeństwa, obie są prawdopodobnie podpisami, por. Ustawa 34 i nast., 46, 55)
  • Suma kontrolna (czynność 56, w praktyce skrócone POSIX cksum nad kluczem)
  • Uaktualnij bit

1
2017-07-25 17:44





Istnieją cztery sposoby potwierdzenia klucza.

  1. Proste porównanie z istniejącym ciągiem w exe (bardzo łatwe do złamania)
  2. Algorytmiczne porównanie z wprowadzonym ciągiem znaków (prawie tak proste jak nr 1. Zależy całkowicie od umiejętności inżynierii odwrotnej krakera).
  3. Porównaj z serwerem przez Internet. (można obejść)
  4. Klucz sprzętowy.

W zależności od tego, jaki produkt masz z Microsoftu, używa on jednego z trzech pierwszych mechanizmów powyżej. Na przykład, ich system operacyjny zazwyczaj telefonuje do domu; ale ich narzędzia programistyczne mają klucz zapakowany lub porównują algorytmicznie. Niektóre z ich starszych systemów operacyjnych używały algorytmu.

Istnieje zmodyfikowana opcja 3, ale polega ona na tym, że telefon app jest często w domu, zazwyczaj w zależności od jakiegoś zdarzenia. W przypadku systemów operacyjnych, MS ma potwierdzić wprowadzony klucz produktu dla niektórych aktualizacji systemu Windows i innych produktów do pobrania. Ponadto, w zależności od klucza licencyjnego, może on dzwonić do domu raz w miesiącu. Na marginesie, jest powód, dla którego Chiny mają zainstalowaną bazę IE6.

Można również obejść czwartą opcję. Zazwyczaj cracker po prostu załatwia twój produkt, aby ominąć część kodu, który sprawdza sprzęt.


0
2017-12-01 06:02



Jak działałoby porównanie algorytmiczne? - Chetan
@ArsenMkrt: Chodzi o to, że możesz sprawić, że będzie to trudne, ale nie niemożliwe. Powinieneś zrobić to wystarczająco ciężko, aby zwykli ludzie po prostu poszli naprzód i zapłacili za to, co próbujesz chronić. Oszuści będą oszustami, bez względu na wszystko. - NotMe
Opcję 3 można ominąć przez każdego, kto może się zdemontować i majsterkować z własnym routerem sieciowym lub serwerem DNS. Łatwo jest założyć fałszywy serwer uwierzytelniający i skierować do niego ruch. Jeśli program sprawdza autentyczność serwera za pomocą certyfikatu SSL lub czegoś podobnego, można użyć czegoś tak prostego, jak edytor heksadecymalny, aby nadpisać ten certyfikat od fałszywego od atakującego. W skrócie: jeśli działa na czyimś komputerze, ostatecznie nie masz możliwości jego ochrony w 100%. - cdhowie
@Pacerier Co z tym? Należy pamiętać, że za pomocą kryptografii w rzeczywistej odpowiedzi serwera (nie tylko jako warstwy transportowej) można jeszcze pokonać, łatając lokalny plik binarny, aby pominąć taką kontrolę. (W każdym razie, zakładając brak TPM). - cdhowie
@Pacerier Easy jest terminem względnym i zależy również od stopnia specjalizacji atakującego. Ostatecznie stopień trudności jest zupełnie nieistotny - ktoś lub jakaś grupa to wymyśli, a następnie opublikuje wyniki na (ahem) bardziej zalążkowych częściach Internetu. Czy mogę okazać się to? Nie. Czy możesz mi pokazać? jeden kontrprzykład, gdzie ochrona taka jak ta nie ma został złamany? (Czy muszę cytować takie rzeczy jak HD-DVD / AACS?) - cdhowie