การจัดเก็บรหัสผ่านด้วยพวงกุญแจหลาม


16

ฉันใช้ห้องสมุดพวงกุญแจเพื่อจัดเก็บรหัสผ่านในแอปหลามของฉัน

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

และมันใช้งานได้ดีมาก

ฉันคิดว่ารหัสผ่านมีความปลอดภัยในพวงกุญแจรหัสถูกเข้ารหัส แต่เนื่องจากฉันสามารถรับชื่อผู้ใช้ได้ด้วยสิ่งใดที่ทำให้แอพอื่น ๆ ทำเช่นเดียวกัน

นั่นคือความเสี่ยงด้านความปลอดภัยหรือว่าฉันทำอะไรหายไป?

คำตอบ:


14

ห้องสมุดพวงกุญแจพวงกุญแจใช้มาตรฐานของสภาพแวดล้อมเดสก์ทอปของคุณเช่นพวงกุญแจ GNOME พวงกุญแจนี้ถูกปลดล็อคทันทีที่คุณเข้าสู่ระบบความหมาย: ใช่แอปพลิเคชันอื่น ๆ ที่คุณดำเนินการโดยเข้าถึงรหัสผ่านที่คุณจัดเก็บด้วยแอปพลิเคชันของคุณ แต่ - และนี่คือแนวคิดของพวงกุญแจ - ผู้ใช้อื่น ๆ ยังไม่ได้

การอ้างอิง“ ปรัชญาความปลอดภัยของคำพังเพย ”:

ตัวอย่างของโรงละครรักษาความปลอดภัยกำลังให้ภาพลวงตาว่ามีแอปพลิเคชันหนึ่งตัวที่ทำงานในบริบทความปลอดภัย (เช่นเซสชันผู้ใช้ของคุณ) สามารถเก็บข้อมูลจากแอปพลิเคชันอื่นที่ทำงานในบริบทความปลอดภัยเดียวกัน

โปรดทราบว่าusernameในset_password/ get_passwordฟังก์ชั่นไม่เกี่ยวข้องกับชื่อของผู้ใช้ที่เรียกใช้แอปพลิเคชัน (เช่นผู้ใช้ที่ใช้พวงกุญแจ) แต่อาจเป็นที่อยู่อีเมลชื่อผู้ใช้ฐานข้อมูล ฯลฯ


ขอบคุณสำหรับคำตอบ. ดังนั้นการจัดเก็บรหัสผ่านที่อาจมีความเสี่ยง :)
umpirsky

3
ไม่ใครก็ตามที่ดึงรหัสผ่านจะต้องรู้รหัสผ่านการเข้าสู่ระบบของผู้ใช้ ลองตั้งค่า autologin และเรียกใช้แอปของคุณ คุณไม่สามารถเข้าถึงรหัสผ่านที่เก็บไว้ได้โดยไม่ต้องให้รหัสผ่านการเข้าสู่ระบบของคุณ
Javier Rivera

@umpirsky: มันไม่มีความเสี่ยงกว่าการจัดเก็บในไฟล์ และไม่ว่าคุณจะเกณฑ์อย่างไรคีย์สำหรับการ decription ต้องถูกเก็บไว้ที่ใดที่หนึ่งหรือให้ไว้อย่างใด ดังนั้นไม่ว่าคุณจะทำแอปใดในเซสชันของคุณจะสามารถเข้าถึงได้
MestreLion

โปรดทราบว่ารหัสนี้ทำงานบนเซิร์ฟเวอร์ Ubuntu ที่ไม่มี Gnome Keyring จะย้อนกลับไปยังไฟล์ที่มีค่าการเข้ารหัส Base64 ซึ่งสามารถเข้าถึงได้ง่าย
แคทแมนอย

ลิงค์นั้นดูเหมือนตาย
AdamC
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.