Pertanyaan Menyimpan kata sandi dengan keyring python


saya menggunakan perpustakaan kunci 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 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 aku kehilangan sesuatu?


12
2017-12-19 21:31


asal




Jawaban:


Pustaka kunci menggunakan kunci standar lingkungan desktop Anda, mis. itu Kunci GNOME. Keyring ini dibuka segera 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 dari keyring - pengguna lain dan aplikasi mereka belum pernah.

Mengutip “Gnome-keyring Security Philosophy”:

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

Perhatikan bahwa username dalam set_password/get_password fungsi tidak terkait dengan nama pengguna yang menjalankan aplikasi (yaitu pengguna yang menggunakan kata kunci) tetapi mungkin misalnya alamat email, nama pengguna basis data, dll.


10
2017-12-19 22:53



Terima kasih atas jawabannya. Jadi, menyimpan kata sandi di sana bisa berisiko :) - umpirsky
Tidak, siapa pun yang mengambil kata sandi perlu mengetahui (atau telah memberikan) kata sandi login pengguna. Cobalah untuk mengatur autologin dan kemudian jalankan aplikasi Anda. Anda seharusnya tidak dapat mengakses kata sandi yang tersimpan tanpa memberikan kata sandi login Anda. - Javier Rivera
@umpirsky: tidak lebih berisiko daripada menyimpan dalam file. Dan tidak peduli bagaimana Anda encript itu, kunci (s) untuk dekripsi harus disimpan di suatu tempat atau diberikan entah bagaimana. Jadi tidak peduli apa yang kamu lakukan apa saja aplikasi di sesi Anda akan memiliki akses ke sana. - MestreLion
Sangat penting untuk dicatat bahwa kode ini berjalan di Ubuntu Server di mana tidak ada Gnome Keyring akan jatuh kembali ke file dengan nilai-nilai yang disandikan Base64 yang mudah diakses. - Cat Man Do