Skip to content
This repository has been archived by the owner on Oct 11, 2023. It is now read-only.

University Project for "Foundations of Cybersecurity" course (MSc Computer Engineering @ University of Pisa). Implementation of a Secure Cloud Storage using C++ 17 and OpenSSL library.

License

Notifications You must be signed in to change notification settings

yolly98/Secure-Cloud-Storage

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCS-Logo

Secure Cloud Storage

University Project for "Foundations of Cybersecurity" course (MSc Computer Engineering @ University of Pisa). Implementation of a Secure Cloud Storage using C++ 17 and OpenSSL 1.1.1 library.

Overview

The project consists of a secure cloud storage. Each client connects to a centralized server that allows to perform operations on its private dedicated storage. In order to access to his storage, a user must login, after that he can execute the following operations:

  • List: shows all files currently on the storage
  • Download: retrieves a file from the storage to the local file system
  • Upload: loads a file from the local file system to the storage
  • Rename: changes the name of a file on the storage
  • Delete: removes a file from the storage
  • Logout: closes the connection to the server

The login operation creates a secure connection between the server and a client through the negotiation of a set of session keys.

The cloud storage application has to guarantee the following requirements:

  • The key negotiation has to provide the Perfect Forward Secrecy
  • The client and server communication has to be encrypted and authenticated
  • The client and server communication has to be protected against reply attacks

Client and server authenticate each other using their own public keys. The server already knows all the registered users’ keys and the client retrieves the server’s key through the certificate released by a Certification Authority.

Getting Started

In order to compile the project, openssl-1.1.1 is needed with the development library:

sudo apt install libssl-dev 

To compile the project:

mkdir bin
make

To run the project:

bin/server
bin/client

Project Architecture

Secure-Cloud-Storage
├── data
│   ├── biagio
│   ├── gianluca
│   └── matteo
├── docs
├── resources
│   ├── certificates
│   ├── Config.h
│   ├── encrypted_keys
│   ├── private_keys
│   └── public_keys
├── script
└── src
    ├── client
    ├── packet
    ├── security
    ├── server
    └── utility

Authors

About

University Project for "Foundations of Cybersecurity" course (MSc Computer Engineering @ University of Pisa). Implementation of a Secure Cloud Storage using C++ 17 and OpenSSL library.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.8%
  • Makefile 1.8%
  • Other 0.4%