A Microsoft 1995-ben kiadott operációs rendszere, a Windows 95 a redmondi vállalat egyik legfontosabb terméke volt, melyet agresszív reklámkampány kísért.
A szoftver kalóz-másolatainak terjedésének lassítása érdekében pedig a Microsoft ezzel az operációs rendszerrel vezette be általánosan a telepítéskor való termékkulcs használatát - ez a telepítéskor megadandó kódsor elméletben arra szolgál, hogy a szoftvert csak az tudja telepíteni, aki ténylegesen megvásárolta azt, és így rendelkezik egy valós termékkulccsal.
Nyilvánvalóan a termékkulcs csak akkor működik megfelelően, ha azt nem lehet könnyen kitalálni: márpedig a címben említett 111-1111111 tényleg működő termékkulcs Windows 95-höz - hogyan lehetséges az, hogy a Microsoft ilyen termékkulcsot is elfogadott érvényesként?
A választ egyrészt az 1995-ös technológia fejlettségében kell keresni: A Windows 95 még teljes egészében offline telepíthető volt, így a termékkulcsok ellenőrzését központi rendszer nélkül kellett végrehajtani, így a telepítő médiának kellett tartalmaznia az ezt ellenőrző kódsort.
Másrészt a Windows 95 telepítő nagy mennyiségben kiadott termék volt, és mindegyik telepítő ugyanazt a kódot tartalmazta - ennek megfelelően a termékkulcsot ellenőrző kódrészlet is mindenhol pontosan ugyan az volt, így a valóságban a 1-1 termékkulcs nem csak azzal a telepítő médiával (ami akkoriban floppy vagy CD volt) használható, amivel együtt vásároltuk azt, hanem bármelyik kulcs bármelyik - hasonló kiadású - Windows 95 telepítővel használható.
Ennek megfelelően teljesen lehetetlen lett volna véletlenszerű kulcsokat létrehozni, és azok listáját menteni a korlátozott méretű telepítő-médiákra - és itt került képbe a matematika.
A Windows 95 licenckulcs tekintetében kétfajta kiadásban volt elérhető: kiskereskedelmi és OEM változatban.
Az OEM kulcsok formátuma így nézett ki: 12345-OEM-0123456-12345, míg kiskereskedelmi kiadások kulcsa ezt a formátumot követte: 123-1234567
Nézzük először az utóbbiakat: A telepítőkhöz adott kód első 3 tagja a gyáregység azonosítója, ahol az adott telepítő médiát előállították, míg az utána következő 7 számjegy egy "véletlenszerű" kódsor.
Amikor ezt a kódot megadjuk telepítésnél, akkor azt egy nagyon egyszerű program ellenőrzi:
A gyáregység azonosítóját reprezentáló első 3 számjegyből bármit elfogad a telepítő a 333, 444, 555, 666, 777, 888 és a 999 kivételével, míg az azt követő 7 számjegyből álló számot akkor fogadja el érvényesnek, ha az osztható 7-el.
Innen már könnyű belátni, hogy valószínűleg a 111-1111111 sosem volt egy Microsoft által kiadott termékkulcs, szimplán a szoftver ellenőrző-mechanizmusa volt annyira egyszerű, hogy ezt a kódot is érvényesnek találja: hiszen az 111 a telepítő által egy elfogadott gyáregység azonosító, míg a 7 db 1-esből álló szám osztható 7-el.
Felmerülhet még az a kérdés, hogy mi a helyzet a két számsort elválasztó kötőjel-karakterrel: erre a válasz nagyon egyszerű: a termékkulcs 4. karakterét - amely elméletileg mindig kötőjel kell legyen - nem is ellenőrzi a telepítő, így a kötőjel helyett bármilyen más karaktert is érvényesnek fogad el a Windows 95 telepítője.
Felmerülhet még a kérdés, hogy mi a helyzet a teljesen más formátumú OEM-telepítők kulcslaival?
Nos, itt már kicsit bonyolultabb a helyzet: ezeknél a kódoknál az első 5 karakter az év napját és az évet jelöli, tehát 1998 február 10-én legyártott telepítő esetén az első 5 szám a következő lesz: 04198 - ahol a 041 a február 10-e (január 31 napos + 10 nap = 41, a 98 pedig 1998-as év utolsó két számjegye).
Ezt minden esetben a -OEM- szöveg követi, majd egy 7 karakterből álló sorozat követi, mely a kiskereskedelmi változathoz hasonlóan 7-el osztható kell legyen, viszont itt már egy extra kitétel is megtalálható: ez a kódsor kötelezően 0-val kell kezdődjön. Emiatt itt már a 1111111 nem lesz érvényes termékkulcs, ellenben a 0000007 igen. Ezt a kódot egy újabb kötőjel, és 5 számjegy követi, ezek különlegessége, hogy ennek a résznek már csak a megléte kerül ellenőrzésre, így bármilyen 5 karakter érvényes licenckulcs lesz.
Ugorjuk vissza egy kicsit az év napját és az évet jelölő kódsorra: itt az első 3 számjegy 001 és 366 között bármi lehet (a 366 is függetlenül működik attól, hogy volt-e az adott évben szökőnap, vagy nem), míg az évet reprezentáló 2 szám 95 és 02 között bármi lehet.
A telepítő-médiából származó kódsor a következő videóból került kimentésre, ahol a termékkulcsot ellenőrző programrész részletesebben is bemutatásra kerül:
Bár a Windows 95 utódja, a Windows 98 is még teljes egészében offline telepíthető, viszont itt már bonyolultabb kulcs-ellenőrzési algoritmust valósított meg a Microsoft, így egy működő Windows 98 kulcs kitalálása jelentősen bonyolultabb feladat, mint amit a Window 95 kulcs-számolása igényelt - így valószínűleg ez esetben már sokkal egyszerűbb volt a telepítő média mellé adott kulcsot használni (és esetleges szoftver-kalózkodás esetén azzal együtt továbbadni a Windows telepítő másolatát).
Érdekesség, hogy a Windows XP-vel a Microsoft átállt a kulcsok központi hitelesítésére, mely elsősorban internetes termék-aktiválást jelentett, viszont internetkapcsolat nélküli módban is adott lehetőséget a telepítő a termék-aktiválásra: ez esetben egy telefonszám felhívásával, és az ott kapott ellenőrző-kód beírásával aktiválhattuk a rendszerünket.
Ezen kulcs-párosok generálására szolgáló kódrészt a Windows XP telepítője tartalmazza, így - a forráskód kiszivárgása után szinte egyértelműnek tekinthető módon - ezen algoritmus is "közkincsé" vált az interneten - és természetesen ez az algoritmus is jóval bonyolultabb, mint a Windows 95 fentebb részletezett algoritmusa.
Hozzászólások
-