Aggiorna il problema. L'obiettivo dell'esperienza utente - consentire all'utente di autenticare senza credenziali - è il vero obiettivo. Questo tipo di obiettivo di sicurezza non è adatto agli endpoint. Esistono soluzioni alternative più sicure rispetto al salvataggio di nome utente e password, uno dei quali suggerirò ora. Ricorda che questo funziona solo se controlli il server o puoi implementare un intermediario come un proxy.
Crea un token a tempo limitato sul server. Associarlo con l'utente. Quando l'utente si connette, il programma fornisce il token se presente e autenticato. In caso contrario, all'utente verranno richieste le credenziali.
Con un intermediario memorizzerai le credenziali sull'intermedio digitato dal token in un formato crittografato e usi un servizio di crittografia separato (forse qualcosa come Amazon KMS) per decrittografarlo.
Anche in questo caso, se hai solo il controllo laterale del client, l'opzione migliore che hai è simile a quella sopra usando un servizio di crittografia dal client, ma poi sei soggetto all'attacco dell'endpoint a @SteffenUlrich che ha già identificato nella sua risposta. Esistono API che avvolgono in modo trasparente soluzioni di gestione delle chiavi specifiche della piattaforma come gnome-keyring, KeyChain di OS X e Windows Credential Vault sotto un'API comune. Ad esempio questo modulo portachiavi Python lo fa:
link
A quel punto le credenziali sono sicure come qualsiasi altra cosa che il sistema operativo sta gestendo.