Repository for the Segurança em Sistemas Informáticos course.
- Pedro Galvão
- Eduardo Macedo
- Ana Rita Santos
- Raul Viana
Pyhton, Javascript, openssl, sqlite3
An organization intends to design and implement a system with a trusted server supplying services to client applications, used by their collaborators. The services are REST endpoints that can be called by the client applications. These services have an associated security level (an integer value). Also, collaborators can send messages to each other using the client application. The client applications should be mobile, but, for a proof of concept, they can run on a PC with a CLI (command line interface) or GUI (graphic user interface) interface...(Full Text)
$ npm install
$ cd database
$ cat create.sql | sqlite3 Database.db
or (testing)
$ cd server
$ python create_table.py
To send messages between two clients run them from different folders
Pre-registration needed on both
$ cp -r client ./client2
$ cd server
$ python register_app.py
$ node index
$ cd client
$ python client.py
- Main Menu
- Request service
- Calculation of square root (security level: 1)
- Calculation of cubic root (security level: 2)
- Paramaterized n-root (security level: 3)
- Send message
- Check received messages
- Request service
- not encrypted: public_key
- not encrypted: username
- encrypted (rsa): one_time_id, new_iv, symmetric_key, time
- encrypted(symmetric): token
- not encrypted: username, new_iv
- encrypted(symmetric): token, msg, time
- not encrypted: challenge, new_iv
- encrypted(symmetric): succ_msg
- not encrypted: username, new_iv
- encrypted(symmetric): "challenge", time
- not encrypted: new_iv
- encrypted(symmetric): new_token, succ_msg
- not encrypted: username, new_iv
- encrypted(symmetric): token, ip_port, time
- not encrypted: new_iv
- encrypted(symmetric): succ_msg
- not encrypted: username, new_iv
- encrypted(symmetric): token, username_2, time
- not encrypted: new_iv, ip_port
- encrypted(symmetric): ip_port, succ_msg
- not encrypted: username, new_iv
- encrypted(symmetric): token, service_data, time
- not encrypted: new_iv
- encrypted(symmetric): succ_msg with the value
- not encrypted: username, new_iv
- encrypted(symmetric): token, public_key, time
- not encrypted: new_iv
- encrypted(symmetric): succ_msg
- not encrypted: username, new_iv
- encrypted(symmetric): token, username_2, time
- not encrypted: new_iv, ip_port
- encrypted(symmetric): public_key, succ_msg