(tl; dr in fondo)
La crittografia è essenzialmente gratuita a questo punto, anche su connessioni remote. Quasi tutte le lingue principali lo hanno incorporato, o ha una libreria per esso, ecc. Il vantaggio di non utilizzare TLS / SSL è una frazione molto piccola di un secondo tempo di avvio, una riduzione molto trascurabile dell'utilizzo della CPU (una piccola frazione di una percentuale) e circa 4kb di larghezza di banda salvata per sessione (TLS non ha effetti apprezzabili sulla larghezza di banda dopo l'iniziale handshake). Quindi, supponendo di mantenere aperta la connessione per un intero gioco, non stai praticamente risparmiando nulla.
Tuttavia, avere i dati inviati in chiaro rende facile per qualcuno che è interessato a giocare con il gioco per vedere cosa sta facendo. Una volta che sanno qual è il tuo protocollo, possono usarlo a loro vantaggio. Una persona che utilizza uno strumento progettato per svolgere alcune attività è sempre in grado di sovraperformare qualcuno che non ha quello strumento. Sto solo pensando casualmente, ho inventato il botting, la manipolazione dei punteggi più alti, i falsi aggiornamenti client, i giochi con strumenti e il dirottamento di sessione.
Il fare il bucato, ad esempio, è far giocare il computer per te. I computer sono davvero bravi a guardare avanti un milione di mosse in anticipo, quindi possono quasi sempre selezionare la mossa corretta e infallibile da compiere in qualsiasi circostanza più veloce di un umano. Ciò significa che vinceranno e che i giocatori veri perderanno, il che significa che il gioco finirà per essere abbandonato o pieno di robot che giocano l'un l'altro.
I punteggi più alti significano cose per le persone. È una cosa dell'ego. Quindi, quando giocano e ottengono un punteggio di 250, e vedono che il miglior giocatore ha un punteggio di 4.294.967.295, non si preoccuperanno di giocare. Ad esempio, questo potrebbe accadere se il codice di punteggio elevato ha un protocollo facile da interrompere (sì, alcuni giochi in realtà segnalano solo un punteggio elevato e il server lo accetta). Quella parte dovrebbe essere protetta dalla manomissione.
Gli aggiornamenti dei client falsi possono o potrebbero non essere un problema, ma fondamentalmente si riduce a se si può "mentire" con un cliente per far pensare che il gioco si trovi in uno stato diverso da quello in cui è effettivamente. Ad esempio, le persone potrebbero apparire nel posto sbagliato su una mappa, le persone possono teletrasportarsi "magicamente" perché il server accetta le coordinate senza convalida dell'input, ecc. Puoi farlo anche con la crittografia, ma ciò significa che devi modificare binario invece di scrivere solo il tuo cliente.
Le riproduzioni assistite da strumenti sono simili al botting: la persona sta ancora giocando, ma sono guidate dallo strumento per prendere decisioni ottimali, in tempo reale, anche se stanno perdendo. Una persona con uno strumento di solito ha prestazioni migliori di una senza (presupponendo un po 'di pratica, ovviamente), quindi di solito viene considerata come imbrogliare, ed è impossibile rilevare a meno di un cane da guardia per proteggere il cliente. È ancora più semplice se puoi modificare i pacchetti in qualsiasi modo desideri.
Il dirottamento della sessione potrebbe verificarsi se riescono a capire la parte della connessione che rappresenta la loro sessione. Vedete, non è possibile semplicemente eseguire il downgrade di una connessione TLS a uno stato non crittografato (almeno, non che io possa dirlo). Quindi, ciò significa che devi abbandonare la connessione e aprirne una nuova. Questa nuova connessione deve identificare il server che è. Certo, è possibile utilizzare una sorta di token, ma sarebbe meglio essere un nonce (un valore monouso), altrimenti l'attaccante conoscerà le informazioni sulla sessione e potrebbe ingannare il legittimo client dal continuare, magari ripetendo la connessione a il server, ecc.
Tutto sommato, dovresti sempre utilizzare TLS. Anche se è un gioco di Tic-Tac-Toe o Connect Four. Qualcuno, da qualche parte, vorrà imbrogliare il tuo gioco, e puoi praticamente prevenire intere classi di barare semplicemente abilitando un canale sicuro. Tranne un costo di avvio molto basso, la crittografia è essenzialmente gratuita, quindi non utilizzarla non ha vantaggi reali. Se stai eseguendo l'autenticazione in modo sicuro, non ha senso passare successivamente a un canale non protetto, poiché hai già pagato il prezzo di avvio.