CSCE 3550/5550 Project Topics – Python Two-way Authentication

CSCE 3550/5550 Project Topics – Python Two-way Authentication

CSCE 3550/5550 Project Topics – Python Two-way Authentication

 

 

https://drive.google.com/file/d/1Zq9-OSdg9Witv_fHK_Nlib95EisP7C9V/view?usp=sharing

A project proposal is due by June 05, 2020 11.59 PM.
o The entire project is worth 100 points.
o The proposal is worth 5 points out of 100 points.
o Late submission may not be accepted and will not receive any points.
• Your proposal should have the following sections. Keep it under 2 pages.
o Title
▪ Give your project a suitable name.
o Objective
▪ What topic did you choose and why?
o Proposed Methodology
▪ How do you plan to finish the project?
▪ What tools?
▪ What programming language (your choices are C/C++, Java and Python)?
▪ Any flowcharts?
▪ Any algorithm?
▪ You cannot change your proposed methodology without my approval.
Choose one of the following projects. The requirements of the project follow each project topic.
1. Password Manager
• Your program needs to have a suitable graphic user interface.
• The user should be able to create an account for the program.
o The program should be able to support multiple users, each user identified by their
account.
o The user logs in using the account information.
o The account credentials should be saved on the local computer, but not in plain text.
• After the user logs in, the user should be able to store their username and password for different
services/websites (e.g. Google, Facebook, etc.) account in the program.
o The application should hide the password while the user is entering the information.
o The credentials should be saved on the local computer, but not in plain text.
▪ The program should encrypt the password using a user-specific key.
• When the user wants to view the stored password, the program must ask the user for the key,
decrypt the password and provide it in clear text.
2. Two Way Authentication System
• Your program needs to have a suitable graphic user interface.
• Your authentication system program needs to allow users to create an account.
o It needs to contain at least three elements—a username, a password and phone number.
• You can store the account information in a local computer.
o Password and phone number should NOT be stored in cleartext, they need to be hashed.
• Your authentication system program needs to allow users to log in.
o Your system needs to ask the user for username and password.
o You need to compare the hash value of the user entered password with the stored
hash value.
o If there is no match, inform the user of the wrong password.
o If there is a match, use appropriate web application or package to send a secret code
of your choice to the user on the stored phone number.
o Prompt the user to enter the secret code
o Check if the user entered code matches the code generated by the system.
o If it matches, the user has authenticated. Inform the user.
• You don’t need anything behind the authentication system for this project, just build the
authentication part.
3. Network Security
• Using VMs, install a web server. You can use WordPress or any other suitable packages.
• The content of web page hosted by the server can be minimal.
• The server needs to store a password file which contains two elements—username and password.
If you feel you need a separate database server to do this part, go ahead.
• Password should NOT be stored in cleat text—they need to be hashed.
• Your web page should be accessible via the internet.
o If you need server space on the CSE server to host your site let me know.
• Your web page needs to have access restrictions.
o When the user tries to open the webpage, the user needs to be authenticated.
o Prompt the user for username and password.
o Find the hash of the user entered password and compare it with the stored hash value.
o If there is a match, the user should have access to the webpage
• Your webserver needs to be behind a firewall. Choose appropriate firewall settings and
configurations as examples.
4. Role based Access Control System
• Your program needs control the access to files on the local computer.
• Your program needs to set three hierarchical roles.
o For example, CEO, Manager, Engineer
• Your program needs to set four access types.
o Read access, Write access, Ownership access, Peer Access
• You need to create accounts for the users of your system.
o The accounts need to have at least three elements – username, password and role.
o Note that the users don’t create accounts for themselves, it is already available to them.
o Assume users know their passwords.
• Your program needs to let users log in with username and password.
o The program must automatically identify the role of the user.
• Your program needs to allow the user to create a file and access a file with access control.
• When the users create a file or folder
o Automatically provide them ownership access
▪ The user should be able to access a file for both reading and writing/modifying if
they have ownership.
o Allow the option to set the peer access
▪ If peer access is set, the file can be accessed for reading by another user with the
same role but cannot be modified.
• The user should be able to have read access to a file if their role is on a higher hierarchical level.
o For example, a CEO can read every file, even those owned by Mangers and Engineers, but
cannot modify them.
• The user should not be able to access for either reading or writing if their role in on the lower
hierarchical level.
o For example, an Engineer cannot access a file for reading or writing/modifying that is
owned by Mangers or CEO.
• Your program needs to have a GUI
• You may keep all files in the same folder and display all files to all users.
• You may use any suitable data structure to store the access control and file system information

DOWNLOAD PROPOSAL FILE HERE

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.