Diskuze: Lokální akce a integrita dat

Tvůrce

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Na 1) jednoduché řešení není, ostatně, server zkouší počítat jestli je to možné, ale i tak tomu ve většině případů zamezit nemůže, tedy přichází na řadu ochrana na klientovi..
Možná proto věci jako Denuvo dostávají takové šílené prachy pro to, aby nikdo ty informace na klientech falšovat nemohl?
1.-3. já vím, proto se ptám
U ČD si můžeš jednorázově dobít jejich ČD kredit a z toho můžeš ukousávat přes PIN ... nebo otisk prstu. Takže platbě se samozřejmě nevyhneš. Ale teoreticky by potom měl jít zfalšovat můj požadavek bez znalosti PINu.
No.. já opravdu upřímně nevím jak to tam funguje (vlakem jezdím jen pokud není k dispozici žádný jiný rozumný dopravní prostředek, ani osel,..)
Každopádně, celé se to snad děje online ne? Ten PIN / Otisk se někomu posílá, tam se kontorluje a ten někdo (Google , nebo přímo ČD) stanovuje, jeslti je ten PIN / OTISK ok? Tj. předpokládám, že na zařízení není uložený ten otisk. ?
Děje se to online, ale normálně musíš vždy zadat PIN, abys mohl
nějaký kredit utratit.
Android právě ukládá data pouze lokálně a aplikace samotná neví, jaký
ten otisk je, jen se dozví, zda proběhlo ověření úspěšně.
No tak že jo,... já bych předpokládal, že to funguje nějak takto (+- je to vždycky stejně):
ČD SERVER -> 3rd party: " Hele potřebuji tady ověřit identitu pomocí
tvoji služby - otisku"
3rd party -> ČD SERVER: "Ok, tady máš public 12345 a private key, zobraz
si ho v aplikaci.
ČD APP -> 3rd party server: "Tady máš otisk prstu a jde o public
12345
3rd party server -> ČD APP: "Jo jsi to fakt ty"
ČD APP -> ČD server : "Už jsem se ověřil pod tím 12345"
ČD Server -> 3rd party server: "Hele, fakt se ověřil pod 12345? Nebo kdo
to tedy je? private key je ten a ten.."
3rd party server -> ČD server: "hele fakt je to Petr Čech"
ČD Server -> ČD App: "Ok, platba byla provedena"..
Ve složitější / jednodušší mutaci.. jde rpostě o 3legged komunikaci.. prostě tu validaci máš na serveru, ne na klientovi. Ten server pak poví "fakt je to on", ne klient.
Asi nejbezpečnější řešení je pokud je hra plně deterministická, tak
ukládat třeba záznam a pak ho nechat ověřit na serveru, jestli to sedí,
případně třeba během hraní na klíčových místech ověřovat nějaký
dílčí části dat - to už není tak stoprocentní, ale pořád lepší než
nic
Ale i proto některý hry dneska už jedou jenom online, třeba Diablo3 - tam
pak máš jistotu, že uživatel nic zfalšovat nemůže (pokud tam nemáš
nějakou chybu, jako že na tuším xbox verzi Diabla3 šlo duplikovat
předměty )
Viz Marian Benčat, nikdy never klientovi.
Jsou online hry, kde, jak popisujes, je mozne podvrhnout vysledek. Obvykle
jde o jednoduche piskvorky. Je to 99% vsech her!
Pak jsou hry, kde tohle osefuji tim, ze veskera data hry jsou na serveru.
Kliknes piskvorku, neco kliknes, posila se to na server. Takze skore pocita
server a muzes zkusit podvadet, jak chces. Dokonce si pohlida, abys nehral 2x po
sobe. Samozrejme, to je slozite naprogramovat, takze vetsinou se jde do te levne
99% varianty
Resi se to pres RTC, Websockety a pod. Propoji tebe a server samostatnou
jakoby session. A pak jenom vami posilate data. Posila se kratke id cislo sesny
a hash pro sifrovani. kdyz se nekdo ozve se stejnym id, posle spravne
zasifrovana data, bude se to povazovat za ok a dal uz zalezi na serverove
kontrolu.
Problem je, ze tu kontrolu nemuzes resit prilis dukladne, kvuli rychlosti. Napr
u online her. Muzes maxilane zaznamenat veskere udalosti a vyhodnotit je
pozdeji. To dela ted Lol, kdyz hraci kliknout po hre, ze nekdo cheatuje nebo
mluvi sproste. Nebo bys musel mit spesl stroj, ktery ma treba 3d pameti a risc
procesory a muze to zpracovavat online.
klient - chci se pripojit
server - vytvarim ti peer, posilam svuj server-hash a pridelene id
klient - potvrzuji, vracim svuj klient-hash (hash(server-hash+heslo))
server - nastavi u peeru klient-hash
A od teto chvile bez spravneho hashe do toho kanalu nelze posilat.
Zprava se xoruje klient-hash a server-hashem. Soucasne si server muze ulozit ip
a ruzne dalsi informace, co mu klient pri vytvareni pripojeni posle. U RTC
byvaji ty hash dost kratke, asi by to slo padelat.
Ano, ve hrach podvadet je. Je to problem. A nejde mnoho udelat za male penize pro ochranu.
Zobrazeno 9 zpráv z 9.