Cifratura di dati e SSO

3

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?

    
posta user138172 02.02.2017 - 20:13
fonte

1 risposta

1

Can the user's password from the parent service be passed to my application allowing for it to be used as the secret key for encryption?

No. Questo è il punto del protocollo.

If a secret is randomly generated when the user registers for my service via SSO, can this be stored anywhere securely?

Sicuro da chi? Immagino che il tuo sistema sia stato progettato in modo che nemmeno tu possa decifrare i file privati di qualcuno. Se questo è il caso, allora no, non è possibile salvarlo da nessuna parte dove non è possibile ottenerlo, a meno che non lo passi all'utente finale e chieda loro di memorizzarlo.

Currently my service employs AES-256 symmetrical encryption. Is there a better encryption scheme for my use case?

Anche AES128 è molto strong. Senza sapere di più sul tuo sistema, è difficile per me dire se trarrebbe beneficio da alcuni aspetti che utilizzano una chiave pubblica / privata.

Any ideas for a string other than the user's password that could be used as a secret key?

Se fossi in me non vorrei che tu usassi la mia password (che è piuttosto breve). Vorrei essere in grado di digitare una passphrase arbitrariamente lunga in una casella di testo multi-linea di grandi dimensioni. Probabilmente inserirò un paio di pagine da un libro che mi piace, il che mi rende più facile il recupero.

Potresti anche generare un valore in modo casuale e salvarlo come cookie o file da conservare per l'utente finale.

    
risposta data 02.02.2017 - 23:31
fonte

Leggi altre domande sui tag