You will implement a social network, where users upload content and/or read content posted by other users. You will decide the exact functionality and security guarantees. Your deliverable for this phase is to describe those choices. Changes to that proposal can still be made (without penalty, if accompanied by credible justifications) in the documentation you submit for the next phase. After that, however, failure to deliver a system that implements what you promise will affect your grade.
We require that your proposed social network system (i) authenticates users, (ii) provides a means to control which users have access to content, and (iii) provides a means to control whether non-users (including system administrators and law enforcement) have access to content that is in transit or being stored. Of course, a "real" system to support social networks would have fancy user interfaces and might use AI to better serve its users. But the focus of CS5432 is on computer security, so our evaluation criteria for your project will focus on computer security -- and you should, too.
Implementation. Use the programming language of your choice and the run-time environment provided by the software platform of your choice. However, functionality and assurance are both important for your system. So if you select a language (e.g., C or C++) that does not come with strong safety guarantees then plan to employ means (e.g., coding discipline, static analysis tools, testing) to mitigate the additional risks.
Users of a social network might be using different computers. And if your implementation employs a server, then it will be running on yet another computer. To simulate a distributed system, you may use (i) computers owned by people in your group and/or (ii) computers in the undergrad lab and/or (iii) a single computer hosting a separate process or virtual machine for each processor in the (simulated) distributed system. In all cases, use TCP/IP (or some extension) for communications. Shared files are prohibited (except at startup). Note, the system demo at the end of the semester will be performed using zoom, which allows sharing the screen of only one computer -- plan ahead!
Security Functionality. Your social network implementation should include the following elements concerned with computer security.
Various system architectures could be used. Pick one of these, or design your own.
The deliverable for this phase is a relatively short document that describes the system that your group will build. This document serves two purposes.
Your Phase 1 deliverable should be submitted to CMS as a .pdf. Use 10 point font or larger, "single" line spacing, and at least 1 inch margins. The entire document should be at most 3 pages (single-sided) and likely will be shorter.
Structure your document as follows.
Title: A short descriptive title for your system. (A cute title that is not descriptive will not receive full credit.)
Group: The list of group members. Give the full name and netid for each.
Implementation Target: What programming language(s) and operating system platforms will be used. How will assurance in the resulting system be established?
System Details:
Authentication of People: Description of how users and others will be authenticated.
Authorization of Content Access: Description of how users specify which other users are eligible to see a given post. Can these specifications be changed and when do those changes take effect? Can a user determine which other users could see posts? Can a user determine which other user's posts it will see? In short, what is the authorization model being implemented.
Postings Protection: Description of how the system will protect the confidentiality and integrity of postings that are being stored or are in transit. Discuss any protections (or lack thereof) for defense against operators and/or to facilitate law enforcement access.
System Architecture: High level description of the system architecture. Where do clients reside? Where do server(s) reside?
Your Phase 1 submission will be evaluated against criteria listed below.