Podpisovanie addonov a vytvorenie podpisového kľúča
Z Armed Assault nápověda
Obsah |
Úvod
Používanie podpisov addonov (podpisové kľúče *.bikey) je jedna z ciest ako zabrániť cheatovaniu v ArmA: Armed Assault.
Používajú sa na detekovanie zmien dát v súboroch addonov, ktoré nevykonal samotný autor po zverejnení podpísaného addonu.
Vytváranie týchto kľúčov je založené na overených kryptografických princípoch (dvojice kľúčov private/public), preto je ich prelomenie (hacknutie) takmer nemožné.
Vytvorený addon je podpisovaný súkromným podpisovým kľúčom (private key) samotného autora pri pakovaní do finálneho súboru *.pbo, zatiaľ čo verejný podpisový kľúč (public key) používa hra na kontrolu dát archívu addonu a overuje tak či bol addon následne po vydaní a zverejnení modifikovaný.
- Checked (kontrolovaný) server: server na ktorom je zapnutá kontrola neoficiálnych addonov s podpisovým kľučom
- Unchecked (nekontrolovaný) server: server s vypnutou kontrolou neoficiálnych addonov
- Accepted signature: podpisový kľúč addonu, ktorý je v nastavení servera definovaný ako overený (dôveryhodný)
Ako to funguje
Hráč pripájajúci sa na zabezpečený server má povolené mať nainštalované v adresári hry iba addony ktoré sú na serveri podpísané (majú uložené podpisové kľúče addonov). Ak sa u nejakého pripájajúceho hráča zistí nezhoda v podpísaných/nepodpísaných addonoch, je mu následne zobrazená správa ktorá ho informuje o tejto skutočnosti. Hráč môže byť samozrejme okamžite odpojený od servera, alebo bude prevedená iná akcia ktorú môže administrátor servera nakonfigurovať.
Hráč by nemal prevádzať niektorú z nasledujúcich činností ak chce aby bola jeho verifikácia podpisových kľúčov pri pripojení na herný server úspešná:
- akékoľvek modifikovanie už podpísaných addonov
- používanie nepodpísaných addonov
- používanie podpísaných addonov, ale ich podpisový kľúč nie je akceptovaný
Ak chce hráč používať nepodpísané addony počas SP hrania alebo počas hrania na serveroch ktoré nie sú určené na ich testovanie, potrebuje vedieť ktoré addony neobsahuje zabezpečený server na ktorý sa práve pripája. Na tento problém existuje jednoduché riešenie v podobe tzv. Mod adresárov, alebo používania utilít vytvorených komunitou.
| ! |
Viac informácií o problematike vytvárania Mod adresárov nájdete tu. |
Kontrola addonu na serveri
Ak chce administrátor servera zapnúť kontrolu podpisov addonov, stačí mu do konfiguračného súboru (server.cfg) dopísať nasledujúci príkaz:
verifySignatures=1
Ďalej už záleží len na administrátorovi ktorých tvorcov addonov označí za dôveryhodných a tak nakopíruje ich podpisové kľúče do adresára "Keys".
Obyčajne (pri holej inštalácii hry) sa v tomto adresári nachádza iba jeden podpisový kľúč od spoločnosti Bohemia Interactive. Jeho názov je bi.bikey.
Ostatné podpisové kľúče by sa mali šíriť spolu s vydanými addonmi, alebo v najhoršom prípade by mali byť uvedené odkazy na ich stiahnutie v priloženom ReadMe.txt daného addonu.
Prístup komunity
Vo všeobecnosti neexistuje žiadna organizácia ktorá by prehlasovala jednotlivé podpisové kľúče komunity za "(ne)dôveryhodné". Rozhodnutie o tom ktoré addony budú umiestnené na server aj s podpisovými kľúčmi zostáva na administrátoroch daných herných serverov. Samozrejme týto administrátori môžu voľne zverejňovať svoje poznatky a zistenia s používaním jednotlivých podpisových kľúčov a im zodpovedajúcich addonov. Takisto môžu zverejňovať voľne dostupné tzv. "Black list-y", v ktorých budú uvedené nedôveryhodné, prípadne "ukradnuté" podpisové kľúče autorov addonov.
Podpisovanie addonov
Samotné podpisovanie addonov sa prevádza pomocou oficiálneho nástroja DSSignFile.
Na podpis addonu budete ale v prvom rade potrebovať najskôr vlastný tzv. súkromný podpisový kľúč, ktorý si ľahko vytvoríte pomocou iného voľne dostupného nástroja - DSCreateKey.
Ako podpísať addon
Vytvorenie vlastného podpisového kľúča
Pre vytvorenie vlastného podpisového kľúča použijeme teda oficiálny nástroj DSCreateKey, ktorý je súčasťou balíka DSUtilites.
Rozpakujte si teda tento *.zip archív napríklad priamo na disk C:\ a spustite programček DSCreateKey.exe cez tzv. DOS-ovský príkazový riadok.
V menu Štart vyberte Spustit (Run) a do riadku vpíšte jednoducho cmd.
Týmto spustíme príkazový riadok systému Windows.
Po spustení budete mať pravdepodobne zadanú cestu do adresára svojich dokumentov, tak jednoducho použite štandardný DOSovksý príkaz cd .., pomocou ktorého sa postupne presuniete o adresár bližšie (späť) ku koreňovému adresáru disku C:\ kam sme rozbalili *.zip archív.
Poznámka: po každom zápise cd .. stlačte Enter pre vykonanie príkazu
Až sa konečne dostanete na hlavný adresár disku, zobrazí sa iba C:\>.
Teraz môžete spustiť programček a nechať si vygenerovať podpisový kľúč.
Dopíšte teda nasledujúce:
C:\>dscreatekey tagAutora
- tagAutora predstavuje tag (nick) ktorý by mal mať v najlepšom prípade autor addonu zaregistrovaný na OFPEC.com.
| ! |
Viac informácií o registrovaných tagoch komunity nájdete tu. |
V mojom prípade som samozrejme použil môj vlastný tag, takže namiesto ukážkového tagAutora (resp. EMSI) použite svoj vlastný.
Po zadaní príkazu na vytvorenie podpisového kľúča stlačte iba Enter a v adresári kde máte uložený programček DSCreateKey (v našom prípade je to C:\) sa vytvoria dva súbory ako to je vidieť v ukážke.
Ďalej potom pri podpisovaní addonov nebudete potrebovať ďalší nový podpisový kľúč pre každý nový addon - normálne budete stále používať tento istý podpisový kľúč opakovane.
Toto je dôležité hlavne pre administrátorov. Inštalovanie nových podpísaných a dôveryhodných addonov je jednoduchšie a bezproblémové ako overovanie nových addonov s ich novými podpisovými kľúčmi aj keď budú od preverených autorov.
Podpis už spakovaných addonov
Ak ste sa ocitli v situácii že váš addon je už dávnejšie spakovaný a vydaný, môžete ešte dodatočne iba k nemu vytvoriť vlastný podpisový kľúč.
K tomuto použijete priamo nástroj DSSignFile bez použitia pakovacej utility BinPBO.
Postup zadávania parametrov pri podpise addonu je v podstate rovnaký ako pri vytváraní podpisového kľúča, sú tu ale podstatné zmeny.
C:\>dssignfile tagAutora.biprivatekey nazovAddonu.pbo
- tagAutora.biprivatekey je súkromný podpisový kľúč autora vytvorený v predchádzajúcom kroku. Pre svoje vlastné použitie si samozrejme najskôr vytvorte vlastný.
- nazovAddonu.pbo je potom logicky priamo názov už spakovaného (prípadne vydaného) addonu autora ktorý chce podpísať svojim vlastným podpisovým kľúčom vlastný addon.
Podpis addonov pri pakovaní
Ak sa chystáte svoj addon ešte len spakovať do finálneho súboru *.pbo, podpis addonu bude omnoho jednoduchší.
Pre pakovanie použite oficiálny programček BinPBO s tým, že v políčku "Path to signature file" zadáte pomocou tlačítka "Change" priamu cestu k vášmu vlastnému súkromnému podpisovému kľúču (*.biprivatekey).
| ! |
Viac si o programčeku BinPBO môžete prečítať tu. |
Pri následnom pakovaní celého adresára addonu sa výsledný vytvorený súbor *.pbo automaticky podpíše a v adresári s vytvoreným addonom potom nájdete aj jeho podpisový kľúč.
Záložné podpisové kľúče (Beta keys)
Počas testovania svojich addonov sa môžete dostať do situácie kedy potrebujete vytvoriť a následne na to aj podpísať podpisovým kľúčom svoj addon. Keďže sa ale jedná o Beta verziu addonu a vy potrebujete napríklad otestovať niektoré MP funkcie addonu priamo na serveri, nemusíte podpisovať svoj addon priamo hlavným podpisovým kľúčom. Jednoducho si iba vytvorte iný (testovací) podpisový kľúč, ktorému zadáte názov napríklad "tagAutoraBeta". Postup vytvárania Beta podpisového kľúča je rovnaký ako pri vlastnom podpisovom kľúči.
Takto vytvorený a podpísaný addon môžete následne nahrať na server a otestovať jeho funkcie. Po vyriešení všetkých nájdených problémov potom vytvorte finálnu verziu svojho addonu a podpíšte ju už so svojím hlavným podpisovým kľúčom.
Poznámka: ak potrebujete otestovať svoj Beta addon na verejne prístupných serveroch, informujte o tomto samozrejme najskôr administrátorov tohto servera a následne potom s nimi dohodnite aj zmazanie tejto Beta verzie s podpisovým kľúčom a nahratie finálnej verzie + podpisový kľúč.
Serverové podpisové kľúče (Server keys)
Jeden addon môže byť doložený viacerými podpismi, pričom každý s iným podpisovým kľúčom. Administrátor takto môže vytvoriť vlastný podpisový kľúč pre server a použiť ho takto na podpísanie (kontrolu) všetkých uložených addonov na serveri, ktoré sú považované za dôveryhodné.
Poznámka: Pri použití tohto postupu je ale nutné aby boli všetky podpisové kľúče použitých addonov dostupné pre všetkých pripájajúcich sa hráčov na server.
Bezpečnostné opatrenia
Nasledujúce príklady poukazujú na možné spôsoby obídenia tohto bezpečnostného systému (ľudský faktor):
- Súkromný podpisový kľúč bol "ukradnutý", čo znamená že niekto sa môže pokúsiť o neautorizovaný podpis iných addonov ako sú addony od pôvodného autora podpisového kľúča.
- Osoba ktorá vlastní súkromný podpisový kľúč a je považovaná za dôveryhodnú, úmyselne podpíše addon, ktorý môže byť s veľkou pravdepodobnosťou použitý na cheatovanie.
- Osoba ktorá vlastní súkromný podpisový kľúč a je považovaná za dôveryhodnú, úmyselne podpíše addon ktorý môže byť s veľkou pravdepodobnosťou použitý na cheatovanie, pričom toto nemusí byť z prvého pohľadu považované za cheat.
Napríklad niekto vytvorí zaujímavú verziu uniformy (reskin) pre štandardné jednotky, ale pritom táto kamufláž podstatne zmenšuje viditeľnosť jednotiek v boji, alebo tvorca addonov podpíše addon ktorý už bol preverený a je od dôveryhodného tvorcu, ale addon pritom obsahuje skryté miesta pre inú muníciu – nakonfigurované napríklad pomocou skriptu. - Niekto vytvorí v addone cheaty a následne "oklame" administrátora serveru aby zaradil jeho podpisový kľúč k dôveryhodným.
Rady pre tvorcov addonov
- Nikdy nikomu nepožičiavajte svoj súkromný podpisový kľúč (*.biprivatekey), majte ho uložený na bezpečnom mieste a ak ho prenášate, použite bezpečné prostriedky (napr. zaheslovaný archív, zabezpečené USB).
- Nikdy nepodpisujte svojim kľúčom addony od iných autorov.
- Vy sami ste zodpovedný za dôveryhodnosť svojho podpisového kľúča. Dobre teda premýšľajte o tom, aký addon s ním podpíšete.
- Dobre zvážte či môže byť addon, alebo modifikácia ktorú ste vytvorili použiteľná v hre a či neznevýhodňuje jednu zo strán.
Rady pre administrátorov serverov
- Pridávajte iba podpisové kľúče autorov addonov ktorí sú dôveryhodný. Nepridávajte kľúče iba na základe požiadavku niekoľkých užívateľov.
- Dajte si pozor na falošné podpisové kľúče. Ak je totiž nejaký kľúč pomenovaný napríklad AMG, nemusí to nutne znamenať že naozaj pochádza od "Addon Making Group".
Takýmto spôsobom sa môžu cheateri pokúsiť zdiskreditovať "AMG" a podstrčiť tak administrátorovi herného servera svoj falošný podpisový kľúč.
Preto si radšej všetkými možnými cestami overte autenticitu zdroja podpisového kľúča (overenie emailom, Skype ...). - Dobre si premyslite čo sa bude diať (aké kroky sa uskutočnia – napr. zobrazenie chybovej hlášky) ak hráč pripájajúci sa na server neprejde verifikáciou addonov. Na konfiguráciu týchto udalostí použite skriptovanie sa strane servera (Server Side Scripting).








