Memorizzazione delle password con il portachiavi Python

12

Sto usando la libreria di portachiavi per memorizzare le password nella mia app python.

import keyring
keyring.set_password('My namespace', username, password)
keyring.get_password('My namespace', username)

E funziona molto bene.

Suppongo che le password siano sicure nel keyring, sono criptate. Ma, dato che posso ottenerli per nome utente, cosa impedisce ad altre app di fare lo stesso?

Non è un rischio per la sicurezza o mi manca qualcosa?

    
posta umpirsky 19.12.2011 - 22:31
fonte

1 risposta

10

La libreria di portachiavi utilizza il portachiavi standard del tuo ambiente desktop, ad es. il portachiavi GNOME . Questo portachiavi viene sbloccato non appena si effettua il login, ovvero: sì, qualsiasi altra applicazione eseguita da te ha accesso alla password memorizzata con l'applicazione, ma - e questa è l'idea di un portachiavi - altri utenti e le loro applicazioni non lo sono.

Citando " Filosofia di sicurezza di gnome-keyring ":

  

Un esempio di teatro della sicurezza sta dando l'illusione che in qualche modo uno   applicazione in esecuzione in un contesto di sicurezza (come la sessione utente)   può mantenere le informazioni da un'altra applicazione in esecuzione nello stesso   contesto di sicurezza.

Si noti che il username nelle funzioni set_password / get_password non è correlato al nome dell'utente che esegue l'applicazione (cioè l'utente il cui portachiavi è utilizzato) ma può essere ad esempio un indirizzo e-mail, un nome utente del database, ecc.

    
risposta data Marcel Stimberg 19.12.2011 - 23:53
fonte

Leggi altre domande sui tag