Lưu trữ mật khẩu với khóa python


16

Tôi đang sử dụng thư viện khóa để lưu mật khẩu trong ứng dụng python của mình.

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

Và điều này hoạt động rất tốt.

Tôi giả sử rằng mật khẩu là an toàn trong khóa, chúng được mã hóa. Nhưng, vì tôi có thể lấy chúng theo tên người dùng, điều gì ngăn các ứng dụng khác làm điều tương tự?

Đó không phải là một rủi ro bảo mật, hay tôi đang thiếu một cái gì đó?

Câu trả lời:


14

Thư viện khóa sử dụng khóa tiêu chuẩn của môi trường máy tính để bàn của bạn, ví dụ: khóa Gnome . Khóa này được mở khóa ngay khi bạn đăng nhập, nghĩa là: có, mọi ứng dụng khác do bạn chạy đều có quyền truy cập vào mật khẩu bạn lưu trữ với ứng dụng của mình, nhưng - và đây là ý tưởng về việc khóa - người dùng khác và ứng dụng của họ không có.

Trích dẫn “ gnome-keyring an Triết học ”:

Một ví dụ về nhà hát bảo mật đang ảo tưởng rằng bằng cách nào đó một ứng dụng đang chạy trong ngữ cảnh bảo mật (chẳng hạn như phiên người dùng của bạn) có thể giữ thông tin từ một ứng dụng khác chạy trong cùng bối cảnh bảo mật.

Lưu ý rằng usernametrong set_password/ get_passwordhàm không liên quan đến tên người dùng đang chạy ứng dụng (nghĩa là người dùng có khóa được sử dụng) nhưng có thể là ví dụ địa chỉ email, tên người dùng cơ sở dữ liệu, v.v.


Cảm ơn câu trả lời. Vì vậy, lưu trữ mật khẩu có thể có rủi ro :)
umpirsky

3
Không, bất cứ ai lấy mật khẩu sẽ cần biết (hoặc đã cung cấp) mật khẩu đăng nhập của người dùng. Cố gắng đặt autologin trên và sau đó chạy ứng dụng của bạn. Bạn không thể truy cập mật khẩu đã lưu mà không cần cung cấp mật khẩu đăng nhập.
Javier Rivera

@umpirsky: không nguy hiểm hơn việc lưu trữ trong một tệp. Và cho dù bạn có mã hóa nó như thế nào, (các) khóa để giải mã phải được lưu trữ ở đâu đó hoặc được cung cấp bằng cách nào đó. Vì vậy, bất kể bạn làm gì, bất kỳ ứng dụng nào trong phiên của bạn đều có quyền truy cập vào nó.
MestreLion

Điều quan trọng cần lưu ý là mã này chạy trên Ubuntu Server, nơi không có Gnome key sẽ quay trở lại các tệp có giá trị được mã hóa Base64 có thể truy cập dễ dàng.
Cat Man Do

Liên kết đó dường như đã chết.
AdamC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.