Fornisco un servizio in cui gli utenti possono archiviare dati, file, ecc. in forma crittografata. Il servizio che ho creato ha due applicazioni per la password dell'utente con cui accedono al mio servizio: 1) autenticazione e 2) la password viene utilizzata come base per la chiave di crittografia segreta per i dati che memorizzano con il mio servizio.
Sto integrando con un altro servizio i cui utenti devono essere in grado di accedere al mio servizio tramite SSO, OAuth2, SAML o qualche altro standard. Il problema ovvio è che la password dell'utente è stata eliminata e quindi non può essere utilizzata come chiave segreta.
Alcune domande:
La password dell'utente dal servizio padre può essere passata alla mia applicazione in modo che possa essere utilizzata come chiave segreta per la crittografia?
Se un segreto viene generato casualmente quando l'utente si registra per il mio servizio tramite SSO, può essere memorizzato ovunque in sicurezza?
Attualmente il mio servizio utilizza la crittografia simmetrica AES-256. C'è uno schema di crittografia migliore per il mio caso d'uso?
Qualche idea per una stringa diversa dalla password dell'utente che potrebbe essere utilizzata come chiave segreta?