Supponiamo, ad esempio, di essere un fornitore di videogiochi digitali ei miei giochi sono stati riprodotti tramite una macchina virtuale. Diciamo anche che il codice per questa macchina virtuale era open source e che questa VM è stata progettata per funzionare sul computer di qualcuno.
Quando lancio questa VM, controllerebbe se stessa per gli aggiornamenti, quindi l'utente effettuerà l'accesso e sarà incanalato verso il mio negozio online dove potrebbero acquistare nuovi giochi o avviare i giochi che avevano acquistato. Questi file binari del gioco verrebbero archiviati sul disco rigido dell'utente e inviati alla stessa VM. I binari di gioco, molto simili ai binari composti da bytecode Java, non sono necessariamente open-source.
Ovviamente voglio alcune condizioni sull'operazione della VM.
- Gli utenti dovrebbero essere in grado di avviare solo giochi associati ai propri account.
- La mia VM ha anti-cheat integrato. Non voglio che gli utenti circumnavigano questo.
Penserei di risolvere questo problema tramite un checksum segnalato; il binario VM deve corrispondere all'ultima versione ufficiale prima che un tentativo di accesso venga accettato dal servizio, ma il codice open source significa che un utente esperto potrebbe modificare la funzione report_checksum
per restituire qualsiasi cosa corrisponda alla versione ufficiale.
In che modo un servizio in tale relazione con i suoi clienti può autenticare coloro che hanno provato a interrogarlo?