COMPX518-23A Assignment 1
Due: 22nd April 2023, 5.00 PM
In this assignment you are going to design and develop a password-based authentication system. Your system will have the ability to 1) Enrol new users 2) Authenticate those users using passwords.
1) Enrolment
a. In the enrolment phase the system should prompt the user for a username. The username chosen by the user should conform to the following rules
1. Usernames should be case insensitive
2. Usernames should only use characters from this set [a-zA-Z0-9_]
3. Usernames should not use swear words
4. Users shouldn’t be able to bypass rule 3 by substituting numbers for letters.
b. The system should also prompt the user to set a password. Use the latest NIST password guidelines to set rules for passwords. A user’s password should conform to the requirements you have set.
c. A user should not be allowed to create weak passwords as stated in the NIST guidelines.
d. The password, the user id and other appropriate information should be stored securely using methods discussed in the lectures.
2) Verification
a. In the verification phase the system will prompt the user for a username and password, it will then perform appropriate verification of the username and password. Based on the outcome of the verification, the system will either display a welcome or an error message.
You will need to submit the source code and an executable file for your system. You will also write a report containing the following.
1. A component/block diagram showing various parts of your system
2. A section that shows how you are imposing the requirements for usernames
3. A section listing the password rules your system imposes
4. A section describing how you are storing the username, password and other
appropriate information
Programming Help, Add QQ: 749389476
5. A section describing the error messages you chose to display when the verification fails.
6. Instructions for running the executable file.
7. Test your executable thoroughly and on multiple machines before submitting. No
attempts will be made to fix any errors during marking.
Marking scheme
1. Report on the authentication system – 10 marks
2. Executable runs successfully – 5 marks
Assignment submission
1. Submit the writeups of both parts as a single pdf file.
2. Submit the source code and any dependencies as a zip file.
3. Submit an executable.
Programming Help