Ho un'applicazione desktop che crea e memorizza una discreta quantità di dati (principalmente da solo, non attraverso l'input dell'utente tradizionale); per lo più di natura statistica.
Attualmente i dati sono per lo più accessibili solo ad altre applicazioni che ho scritto io stesso e non sono esposti all'utente se non attraverso queste applicazioni.
Sto considerando di consentire l'accesso di terzi a questi dati tramite un'API REST o simili, ma in questo caso il "server" sarebbe effettivamente in esecuzione sulla stessa macchina del client (o un'altra macchina nella stessa LAN, al massimo).
Tuttavia, poiché questo accesso è destinato alla monetizzazione, desidero avere un qualche tipo di autenticazione per consentire a client specifici di accedere a sottoinsiemi specifici dei dati, piuttosto che fornire permessi generali.
(Quindi l'obiettivo non è l'autenticazione dell'utente, ma l'autenticazione dell'app client, in senso umano tutti i dati sono per un utente, ma dovrebbero essere accessibili solo tramite app autorizzate.)
Ovviamente dal momento che tutto sta funzionando lato client, in pratica ho già perso (un utente sufficientemente determinato non avrebbe problemi nell'estrarre e nello spoofing le credenziali, e AFAIK è letteralmente impossibile prevenirlo) - ma quale sarebbe il migliori pratiche per fornire un ragionevole livello di sicurezza contro utenti non sufficientemente determinati?
La maggior parte delle solite raccomandazioni per l'autenticazione dell'API REST (SSL, OAuth, ecc.) non sembrano realmente applicabili poiché assumono un server separato e sicuro. (E SSL si occupa principalmente della convalida del server.)