Menyimpan kata sandi dengan keyring python


16

Saya menggunakan pustaka keyring untuk menyimpan kata sandi di aplikasi python saya.

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

Dan ini bekerja dengan sangat baik.

Saya berasumsi bahwa kata sandi aman dalam keyring, mereka dienkripsi. Tapi, karena saya bisa mendapatkannya dengan nama pengguna, apa yang mencegah aplikasi lain melakukan hal yang sama?

Bukankah itu risiko keamanan, atau saya melewatkan sesuatu?

Jawaban:


14

Perpustakaan keyring menggunakan keyring standar dari lingkungan desktop Anda, mis . Keyring GNOME . Kunci-kunci ini tidak terkunci setelah Anda masuk, artinya: ya, aplikasi lain yang dijalankan oleh Anda memiliki akses ke kata sandi yang Anda simpan dengan aplikasi Anda, tetapi - dan ini adalah ide kunci-kunci - pengguna lain dan aplikasi mereka belum pernah.

Mengutip " Filosofi Keamanan gnome-keyring ":

Contoh teater keamanan memberikan ilusi bahwa entah bagaimana satu aplikasi berjalan dalam konteks keamanan (seperti sesi pengguna Anda) dapat menyimpan informasi dari aplikasi lain yang berjalan dalam konteks keamanan yang sama.

Perhatikan bahwa usernamedi set_password/ get_passwordfungsi tidak terkait dengan nama pengguna yang menjalankan aplikasi (yaitu pengguna yang menggunakan keyring) tetapi mungkin misalnya alamat email, nama pengguna basis data, dll.


Terima kasih atas jawabannya. Jadi, menyimpan kata sandi bisa berisiko :)
umpirsky

3
Tidak, siapa pun yang mengambil kata sandi perlu mengetahui (atau telah memberikan) kata sandi masuk pengguna. Coba nyalakan autologin lalu jalankan aplikasi Anda. Anda seharusnya tidak dapat mengakses kata sandi yang disimpan tanpa memberikan kata sandi login Anda.
Javier Rivera

@umpirsky: tidak ada risiko daripada menyimpan dalam file. Dan tidak peduli bagaimana Anda menuliskannya, kunci untuk decription harus disimpan di suatu tempat atau disediakan entah bagaimana. Jadi, apa pun yang Anda lakukan, aplikasi apa pun di sesi Anda akan memiliki akses ke sana.
MestreLion

Sangat penting untuk dicatat bahwa kode ini berjalan pada Server Ubuntu di mana tidak ada Gnome Keyring akan kembali ke file dengan nilai-nilai yang disandikan Base64 yang mudah diakses.
Cat Man Do

Tautan itu tampaknya sudah mati.
AdamC
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.