Progetto n. 1: "Guardaroba", un repository per mail-attachment voluminosi. ----------------------------------------------------------- Si richiede di realizzare l'applicazione WEB "Guardaroba" che e' preposta all'immagazzinamento degli attachment in modo da evitare che questi siano inviati direttamente col messaggio. DESCRIZIONE Come e' noto, ai messaggi di posta elettronica e' possibile allegare un file opportunamente codificato (attachment) Supponiamo che l'utente Pasquale intenda mandare un breve messaggio e-mail con allegato un grosso file all'utente Nicola. Pasquale anzicche' inviarlo in attachment, lo deposita sul sito "Guardaroba" ottenendo una "ricevuta" che viene poi inviata a Nicola insieme al messaggio. L'Utente Nicola ricevuto il messagio, si collega al sito "Guardaroba" ed esibendo la ricevuta scarica l'attachment. FUNZIONAMENTO Per ogni attachment depositato, il "Guardaroba" stabilisce una data di scadenza, dopo la quale, il file viene cancellato e non risulta piu' disponibile. 1) Tutte le transazioni devono avvenire via https. 2) Per depositare un attachment bisogna essere utenti registrati. (La registrazione presso il guardaroba e' obbligatoria per il solo mittente). Pertanto, il "Guardaroba" dispone di una pagina REGISTRATI a cui Pasquale si colleghera' per iscriversi al servizio 3) Il sito dispone di una pagina DEPOSITA in cui Pasquale scarica l'attachment e compila i campi di sua competenza nella "ricevuta". 4) La ricevuta consiste in un record cosi' formato: mittente: indirizzo e-mail del mittente destinatario: indirizzo e-mail del destinatario nome: nome del file hash: SHA-1 del file sig: firma del file effettuata dal mittente con la sua chiave privata serial: numero progressivo della ricevuta (*) data: data di deposito(*) ora: ora del deposito(*) scadenza: data di scadenza dell'attachment(*) password: una password one-time che il destinatario deve immettere per ottenere il file. sig-guard:firma digitale della ricevuta fatta dal guardaroba con la sua chiave privata. 4) La ricevuta deve essere firmata con la chiave privata del "guardaroba". Pasquale potra' inviare la ricevuta a Nicola via mail. 5) Nicola riceve la mail e la ricevuta. Si collega al guardaroba alla pagina RITIRA. Se l'attachment non e' scaduto, immette la password in caso di successo, puo' scaricare il file. D'ora in poi, il file non sara' piu' disponibile e ne' la ricevuta ne' la password saranno piu' valide. 6) Il "guardaroba" invia una mail a Pasquale a) se l'attachment scade senza che sia stato ritirato b) se Nicola scarica l'attachment 7) Nicola puo' avere informazioni su Pasquale e scaricare la sua chiave pubblica dalla pagina INFORMAZIONI. SUGGERIMENTI 1) Non perdete tempo con l'estetica dell'interfaccia grafica. 2) Software consigliati (ma non obbligatori): Apache, mod_ssl, MySQL, PHP, OpenSSL, C/C++, Perl, Javascript.