"Servlet" sembra che tu stia già utilizzando un server complesso.
Ci sono molti modi in cui i protocolli perdono tempo al server. Ad esempio, HTTP ha un popolare campo di intestazione per il tempo di creazione / modifica e i dati generati dinamicamente avranno sempre il tempo di sistema corrente, se usato correttamente.
Per motivi di autenticazione TLS, puoi anche eseguire una ricerca binaria per trovare la data e l'ora di un endpoint utilizzando i certificati client in scadenza.
Questo è un male necessario: se stai facendo TLS, il tuo server deve avere una nozione di tempo per sapere cos'è una chiave / certificato valido e cosa no. Se questo è il caso, molto probabilmente sarà un tempo coordinato da NTP. Quindi, non puoi davvero dire nulla sul server che un utente malintenzionato non saprebbe già - c'è davvero solo un tempo "corretto".
Se non stai facendo TLS: la perdita di tempo del sistema probabilmente non è la prima cosa da risolvere.
Per quanto riguarda la sicurezza: non è proprio sicuro che dovresti esporre un altro servlet solo per i dispositivi per capire il tempo mondiale.
To explain more, this end-point will be used by mobile apps to enhance their security (to avoid cheating by adjusting the device date).
Bandiera rossa . Stai dipendendo dall'integrità del tuo cliente per la sicurezza. Non farlo mai. Semplicemente non puoi fidarti di nulla che accada sui dispositivi dei tuoi utenti. Questi non sono i tuoi dispositivi. Possono semplicemente collegare un debugger e modificare le nozioni di tempo in memoria del processo, indipendentemente dal fatto che siano conservate dal sistema operativo del telefono o dall'applicazione.