Przechowywanie haseł z brelokiem do python

16

Korzystam z biblioteki kluczy do przechowywania haseł w mojej aplikacji Python.

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

I to działa bardzo dobrze.

Zakładam, że hasła są bezpieczne w breloku, są szyfrowane. Ale skoro mogę uzyskać je według nazwy użytkownika, co uniemożliwia innym aplikacjom to samo?

Czy to nie jest zagrożenie bezpieczeństwa, czy coś mi brakuje?

umpirsky
źródło

Odpowiedzi:

14

Biblioteka kluczy używa standardowego zestawu kluczy środowiska pulpitu, np . Klucza GNOME . Ten brelok jest odblokowywany, gdy tylko się zalogujesz, co oznacza: tak, każda inna aplikacja uruchomiona przez Ciebie ma dostęp do hasła zapisanego w aplikacji, ale - i to jest pomysł breloka - inni użytkownicy i ich aplikacje nie mieć.

Cytując „ Filozofię bezpieczeństwa gnome-keyring ”:

Przykładem teatru bezpieczeństwa jest złudzenie, że jakaś aplikacja działająca w kontekście bezpieczeństwa (na przykład sesja użytkownika) może zachować informacje z innej aplikacji działającej w tym samym kontekście bezpieczeństwa.

Należy pamiętać, że usernamew funkcjach set_password/ get_passwordnie jest związany z nazwą użytkownika uruchamiającego aplikację (tj. Użytkownika, którego klucz jest używany), ale może to być na przykład adres e-mail, nazwa użytkownika bazy danych itp.

Marcel Stimberg
źródło
Dziękuję za odpowiedź. Przechowywanie haseł może więc być ryzykowne :)
umpirsky,
3
Nie, każdy, kto odzyska hasło, będzie musiał znać (lub podać) hasło logowania użytkownika. Spróbuj włączyć automatyczne logowanie, a następnie uruchom aplikację. Dostęp do przechowywanych haseł nie powinien być możliwy bez podania hasła logowania.
Javier Rivera,
@umpirsky: nie jest to bardziej ryzykowne niż przechowywanie w pliku. I bez względu na to, w jaki sposób go zapisujesz, klucz (klucze) do opisu muszą być gdzieś przechowywane lub w jakiś sposób dostarczone. Więc bez względu na to, co robisz, wszystkie aplikacje w sesji będą miały do ​​niego dostęp.
MestreLion
Należy zauważyć, że ten kod działający na Ubuntu Server, na którym nie ma Gnome Keyring, wróci do plików z wartościami zakodowanymi w Base64, które są łatwo dostępne.
Cat Man Do
Ten link wydaje się martwy.
AdamC,