KeepMyPass
เกี่ยวกับ KeepMyPass
KeepMyPass เป็นระบบจัดการรหัสผ่านที่สร้างขึ้นใน Python โดยใช้การผสานรวม MySQL เข้ากับอินเทอร์เฟซผู้ใช้แบบกราฟิก ได้รับการพัฒนาใน June/July, 2020
เป็นโครงการวิทยาศาสตร์คอมพิวเตอร์เกรด XII (CBSE) นอกจากนี้ยังมีระบบการจัดการเหตุการณ์และระบบการจัดการการติดต่อ
รับทราบและรับรอง
โครงงานนี้ส่วนหนึ่งได้รับความช่วยเหลือจากครูวิทยาศาสตร์คอมพิวเตอร์เกรด 12 ของฉัน เป็นไปตามข้อกำหนดทั้งหมดของโครงการวิทยาศาสตร์คอมพิวเตอร์เกรด XII ปี 2020-21 และครอบคลุมแนวคิดต่อไปนี้โดยละเอียด:
- การจัดการไฟล์ข้อมูลไบนารี่ผ่าน Python
- การจัดการฐานข้อมูล MySQL ผ่านการบูรณาการ Python-MySQL โดยใช้
mysql.connector
- การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้โดยใช้
tkinter
คุณสมบัติบางอย่างของแอพ
คุณสมบัติข้อมูล
ปุ่มช่วยเหลือมีให้บนหน้าจอต่างๆ เพื่อช่วยเหลือผู้ใช้ในการนำทางผ่านแอพ
คุณสมบัติลืมรหัสผ่าน
หากผู้ใช้ลืมรหัสผ่านหลัก พวกเขาสามารถเรียกคืนบัญชีที่สูญหายได้โดยใช้คุณสมบัตินี้
คุณสมบัติการสร้างรหัสผ่าน
Secure-Vault มีตัวสร้างรหัสผ่านที่สร้าง (หลอก) รหัสผ่านแบบสุ่ม*
(หลอก) คุณสมบัติด้านความปลอดภัย
- ไฟล์ไบนารี่มีบันทึกข้อมูลปลอม*
- ข้อมูลที่กำลังเขียนลงใน Binary File จะถูกเข้ารหัสสองครั้ง*
- ผู้ใช้เพียงรายเดียวเท่านั้นที่สามารถเข้าสู่ระบบได้ในแต่ละครั้ง
- ข้อมูลทั้งหมดจะถูกเก็บไว้ในฐานข้อมูลในรูปแบบที่เข้ารหัส และจะถูกถอดรหัสเฉพาะในกรณีที่ผู้ใช้ต้องการดูเท่านั้น
- คีย์สำหรับการเข้ารหัส/ถอดรหัสนั้นมีเอกลักษณ์เฉพาะสำหรับผู้ใช้ทุกคน
คุณสมบัติโหมดผู้ดูแลระบบ
เมื่อใช้โหมดผู้ดูแลระบบที่ป้องกันด้วยรหัสผ่าน บุคคลสามารถค้นหา User-Vaults ทั้งหมดได้ในคราวเดียว* การค้นหาสามารถใช้เพื่อค้นหาบันทึกเฉพาะหรือบันทึกทั้งหมดประเภทใดประเภทหนึ่งได้
เชิงอรรถและปัญหาด้านความปลอดภัย
- โปรเจ็กต์นี้มีความเสี่ยงต่อการดีซีเรียลไลซ์ที่ไม่ปลอดภัยเนื่องจากใช้โมดูล Python
pickle
- โครงการกล่าวถึง (ในหลาย ๆ ที่) ว่ารหัสผ่านที่สร้างขึ้นนั้น 'ปลอดภัย' โปรดทราบว่ารหัสผ่านเป็นแบบ pseudorandom แม้ว่าองค์ประกอบของฟังก์ชันการสร้างรหัสผ่านจะใช้
os.urandom()
ก็ตาม - เพิ่มฟีเจอร์โหมดผู้ดูแลระบบลงในโปรเจ็กต์เพื่อให้ตรงตามข้อกำหนดที่กำหนดโดย CBSE เท่านั้น ไม่ควรใช้ประโยชน์จากคุณลักษณะนี้ในทางใดทางหนึ่ง ฉันซึ่งเป็นนักพัฒนาเข้าใจดีว่าการสามารถเข้าถึงข้อมูลที่เก็บไว้ทั้งหมดและการให้สิทธิ์เข้าถึงแก่ผู้ใช้ปลายทางนั้นเป็น ปัญหาและผิดจรรยาบรรณ
- เทคนิคการเข้ารหัสที่นำมาใช้ประกอบด้วยการแมปอักขระและการเข้ารหัส ROT ที่แตกต่าง กันเท่านั้น กล่าวคือ ไม่มีการใช้อัลกอริธึมการเข้ารหัสจริงในโครงการ
- การรวมบันทึกปลอมไว้ในไฟล์ไบนารี ไม่ได้ ส่งผลกระทบต่อความปลอดภัยของบันทึกข้อมูลจริงจริงๆ
- การเข้ารหัสข้อมูลสองครั้งไม่มีประโยชน์เพิ่มเติมเมื่อเปรียบเทียบกับการเข้ารหัสเพียงครั้งเดียว
- คำแนะนำประเภทถูกเพิ่มเข้าไปในฟังก์ชันทั้งหมดในภายหลัง
-
user_checker.py
ได้รับการเพิ่มเป็นตัวตรวจสอบฟังก์ชันการทำงานส่วนหลังเท่านั้น มันไม่ได้มีไว้สำหรับการใช้งาน
เครดิตภาพประกอบ
ภาพประกอบทั้งหมดที่ใช้ในโปรเจ็กต์นี้นำมาจาก LastPass และฉันอ้างว่าฉันไม่สามารถและจะใช้โปรเจ็กต์ของฉันเพื่อจุดประสงค์ทางการค้าใดๆ ก็ตามที่มีภาพประกอบเหล่านี้
วิ่ง
หากต้องการรัน ให้โคลนพื้นที่เก็บข้อมูลบนอุปกรณ์ของคุณ นำทางไปยังโฟลเดอร์ และดำเนินการ:
แผนการในอนาคต
- แก้ไขปัญหาด้านความปลอดภัยที่เป็นไปได้ทั้งหมดและการมีส่วนร่วมของอัลกอริธึมการเข้ารหัส/ถอดรหัสจริง
- ปรับปรุง UI/การออกแบบ
- การใช้แพ็คเกจสำรองเพื่อจัดการไฟล์ไบนารี่หรือการใช้วิธีการอื่นเพื่อจัดเก็บคีย์การเข้ารหัส/ถอดรหัส
- รหัสผ่านสำหรับโหมดผู้ดูแลระบบ ไม่ ควรฮาร์ดโค้ดลงในไฟล์
- แยกโครงการ โดยที่โหมดผู้ดูแลระบบจะถูกลบออก
- ทำให้โค้ดเป็นแบบโมดูลาร์มากขึ้น
- คำแนะนำประเภทที่ดีขึ้นและเป็นมืออาชีพมากขึ้น