Overview

Tema 3 SPRC - (Serviciu securizat de gestiune a documentelor)

Iulius Curt  |  334CA


Continut arhiva:
	- certification_authority/
		- ...  - certificatul si cheile CA-ului
	- authorization_server/
		- src/  - sursele
		- security/  - certificatele si keystore-urile
		- banned_encrypted  - fisier in care se retin (criptat) numele
			utilizatorilor interzisi
		- build.xml  - fisierul de build Ant
	- files_server/
		- src/  - sursele
		- security/  - certificatele si keystore-urile
		- files/  - directorul in care se tin documentele uploadate de useri
		- files_encrypted  - fisier in care se retin (criptat) numele
			fisierelor gestionate
		- build.xml  - fisierul de build Ant
	- client/
		- src/  - sursele
		- upload/  - director cu fisiere pe care clientul le incarca
		- download/  - director cu fisiere pe care clientul le-a descarcat
		- security/  - certificatele si keystore-urile
		- run.sh  - script de rulare
		- build.xml  - fisierul de build Ant


Exemplu de rulare:
	- Compilarea si rularea serverului de autorizare:
	  > cd authorization_server
	  > ant  # compileaza + ruleaza

	- Compilarea si rularea serverului de fisiere:
	  > cd files_server
	  > ant  # compileaza + ruleaza

	- Compilarea si rularea unui client:
	  > cd client
	  > ant  # doar compileaza
	  > ./run.sh  # datele de rulare sunt hardcodate (se modifica in script)

Pregenerarea de chei:
	- prerequisites.sh:  creeaza certificatul CA si al serviciului de
		autorizare, semneaza certificatul SA si importa certificatul CA in SA
		si reciproc
	- server.sh:  genereaza informatiile de securitate asociate serverului de
		fisiere (inclusiv certificatele CA si SA)
	- client.sh:  creeaza in 'client/security' un subdirector cu numele dat ca
		prim parametru, unde vor fi depuse informatiile de securitate asociate
		clientului specificat (inclusiv certificatele CA si SA)
	- post.sh:  importa certificatul fiecarui client catre server si
		certificatul serverului de departament catre fiecare client

Exemplu complet de testare:
	- Generarea de certificate:
		> ./prerequisites.sh
		> ./server.sh
		> ./client.sh gigi IT
		> ./client.sh vasi ACCOUNTING
		> ./post.sh
	- Lansare in executie (4 terminale diferite):
		terminal1	> cd authorization_server; ant
		terminal2	> cd files_server; ant
		terminal3	> cd client; ant
					> ./run.sh 1  # ruleaza pentru gigi/IT
		terminal4	> cd client
					> ./run.sh 2  # ruleaza pentru vasi/ACCOUNTING
	- Testare:
		client1	> list  # Raspuns: lista goala
				> upload lipsum  # Raspuns: fisier uploadat cu succes
		client2	> list  # Raspuns: lista ce contine doar 'lipsum'
				> download lipsum  # Revocat de server (drepturi insuficiente)
				> upload xxx  # Raspuns: fisier uploadat cu succes
		client1	> list  # Raspuns: lista 'xxx', 'lipsum'
				> download xxx  # Raspuns: fisier downloadat cu succes
								# Fisierul va aparea in directorul download/
				> bomba  # Raspuns: Primeste interdictie
				> download xxx  # Revocat de server (clientul are interdictie)
		client2	> download xxx  # Raspuns: fisier downloadat cu succes


Formatul de serializare a listei de fisiere scrise in fisier:
	- fisier1~clientX~departX|fisier2~clientY~departY|fisier3~clientX~departX


Detaliile de implementare sunt specificate in enuntul temei.