Questo è un repost, perché ho postato accidentalmente su stackoverflow primo
Mi chiedevo come avrei potuto raggiungere un alto livello di sicurezza, usando l'autenticazione client-server. Di seguito è riportato un abbozzo di ciò a cui ho pensato:
Lasciachetispieghiunpo'dipiù:
- L'eseguibileC++èinesecuzionesuunaconsoledigiocochehaunIDunivocochel'utenteutilizzaperregistrarsisulmiositoweb
- Quandol'eseguibilevieneavviato,otterràl'attualehashdelmodulo/filedell'eseguibileel'IDunivoco("Chiave" nello schizzo) e eseguirà una richiesta web sul mio sito Web (esempio in blu sullo schizzo)
- L'auth.php sul mio sito Web controllerà quindi se l'hash del file è uguale al file che è stato distribuito (rilevando se il file è stato modificato). Verificherà anche se la "Chiave" è connessa a un utente
- Quindi invierà le informazioni individuali da quell'utente e anche alcuni dati / offset necessari affinché l'eseguibile possa essere eseguito in un secondo momento (Ciò impedirebbe teoricamente al pirata informatico di annidare semplicemente la connessione Internet, quindi deve effettuare una chiamata al mio sito Web per ottenere i dati necessari per eseguire correttamente l'eseguibile)
Mi è sembrato buono all'inizio ma poi ho notato alcuni difetti:
- Anche se sto offuscando e crittografando il file, un hacker sarà comunque in grado di smontarlo. Il che significa che potrebbe togliere il mio assegno se la chiave è falsa e semplicemente inviare la chiave di un utente registrato (può anche modificare l'hash che viene inviato per impedire l'intero controllo se il file è stato modificato cosa lo rende ridondante)
- Poteva anche leggere i dati che sono stati inviati dopo un'autenticazione riuscita e quindi annullare la connessione a Internet, quindi non c'è più alcuna chiamata al mio sito web e inserire i dati che ha inserito nell'eseguibile per farlo funzionare
Indipendentemente dalla sicurezza dell'eseguibile, un hacker sarà sempre in grado di smontarlo / decompilarlo a un certo punto. Ecco perché penso che l'Autenticazione Client-Server deve essere tale che anche se il client viene dirottato non sarà in grado di autenticarsi. Non so davvero se è possibile o se è solo l'approccio sbagliato.
Apprezzerei molto se tu potessi lasciare alcuni pensieri o idee in basso. Grazie per il tuo tempo e buona giornata:)