CS5432 Advanced System Security - Social Network Project - Spring 2021

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.


Phase 1 Deliverable

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.


Phase 1 Grading Criteria

Your Phase 1 submission will be evaluated against criteria listed below.