Citat:
Vad har du för krypteringsalgoritmer?
Hur då? Plaintext?
X via en krypterad kanal?
Är Y en konstant? Via en krypterad kanal?
-
Sparas klientens lösenord någonstans hos klienten eller hur görs detta?
Bara en idé, jag vet ju inte hur ditt spel ser ut. Men servern skulle ju kunna göra någon form av rimlighets-check baserat på tidigare input från klienten (om klienten skickat något annat?).
T.ex:
Klient: Klarat bana 1 med 5000 score.
Server: OK, 5000 score är inom maxgränsen för bana 1.
Klient: Klarat bana 2 med 10000 score.
Server: OK, 10000 score är inom maxgränsen för bana 2.
Klient: Dog på bana 3 med 9999999 score. Vill ha upp till highscoren med namnet "I PWN EVERYONE".
Server: Inte OK, orimlig score.
Och då menar jag att servern har en rad i sin databas för klienten under klientens själva spelande.
Hur då? Plaintext?
X via en krypterad kanal?
Är Y en konstant? Via en krypterad kanal?
-
Sparas klientens lösenord någonstans hos klienten eller hur görs detta?
Bara en idé, jag vet ju inte hur ditt spel ser ut. Men servern skulle ju kunna göra någon form av rimlighets-check baserat på tidigare input från klienten (om klienten skickat något annat?).
T.ex:
Klient: Klarat bana 1 med 5000 score.
Server: OK, 5000 score är inom maxgränsen för bana 1.
Klient: Klarat bana 2 med 10000 score.
Server: OK, 10000 score är inom maxgränsen för bana 2.
Klient: Dog på bana 3 med 9999999 score. Vill ha upp till highscoren med namnet "I PWN EVERYONE".
Server: Inte OK, orimlig score.
Och då menar jag att servern har en rad i sin databas för klienten under klientens själva spelande.
Ja, jag antar att det är plaintext det rör sig om. Jag skickar bara en sträng som formdata till servern som echoar ut den slumpade nyckeln. Jag har ingen erfarenhet av krypterade kanaler då jag är helt ny på sånt här, men det är säkert nödvändiga saker för 100% täta grejer.
Jag gör spelet i Fusion vilket innebär att jag kan göra enkla hashningar med sha-1 (som jag vet är förlegat och kasst). Jag har möjlighet att göra sha512 vilket ska vara extremt säkert, fast då måste jag hämta in det som ska hashas genom en fil som jag måste skicka från servern istället. Kanske är det värt och säkert att ha en tom fil i programmappen som fylls med fildata genom SFTP och sedan raderas, fast då kommer ju nyckeln ligga tillgänglig på användarens hårddisk i någon mikrosekund.
Jag har inte forskat så djupt i denna metod, kanske finns möjlighet att läsa in denna fil direkt från servern, som sagt är jag lite begränsad med Fusion då det mesta av funktionerna är tillägg.
Y är en konstant som är gömd i klienten och hos servern, den är väl lätt att luska ut om man vill. Därför hänger hela säkerheten i denna metod på användningen av engångsnyckeln X.
Autentiseringen sker hos servern som ett vanligt inloggningssystem med PDO och bundna parametrar, man loggar in i spelet på samma sätt som i en webbläsare.
Jag gillar idén med en rimlighetscheck, definitivt värt att ha i åtanke.