Laboratorio II: Sistemi Operativi - a.a. 1998/99

La consegna va effettuata entro 22 gennaio 1999.

Sviluppo di un proxy per un servente POP (Post Office Protocol)

Sono facoltative le seguenti richieste (in ordine crescente di importanza):
1) istallazione automatica. Si richiede di automatizzare la procedura descritta nel file INSTALL accluso nel sorgente del qpopper. Uno script in perl dovrebbe eseguire automaticamente le indicazioni contenute nel file.

2) file di log. Il proxy potrebbe registrare in un suo file di log vari tipi di informazioni, ad esempio solo le connessioni, le richieste eseguite da ogni connessione, il contenuto dei messaggi, ecc. Si richiede sia di definire le informazioni utili da mantenere sia di estendere il proxy con questa funzione.

3) Valutazione delle prestazioni.
3.a)Si richiede di valutare "il costo globale" dovuto all'introduzione del proxy. Ad esempio, si potrebbe misurare e confrontare il tempo impiegato per leggere una email di varie dimensioni senza/con il proxy. Data la necessita' di isolare l'errore di misura introdotto dal carico di fondo della rete dei laboratori, una misura dal vivo risulta complessa, bisognerebbe pero' almeno descrivere come una misura del genere puo' essere impostata.
3.b) Si richiede la comparazione fra la versione monoprocesso e quella multiprocesso. Descrivere almeno come la misura puo' essere eseguita.
 

Introduzione

Normalmente, gli utenti accedono la propria posta, mail, leggendo un file sulla macchina dove e' stata "consegnata" tramite il protocollo SMTP (Simple Mail Transfer Protocol). A volte e' utile usare un meccanismo diverso basato su un servente, mail server, che mantiene e distribuisce su richiesta la posta ai singoli utenti (tipicamente questo schema e' utilizzato dai provider Internet). Il protocollo POP (RFC 1725) permette di accedere la propria posta elettronica gestita da un mail server. Esistono diversi programmi che possono svolgere le funzioni di clienti POP. Tra i piu' noti vi sono Eudora ed i Web browser piu' diffusi: Netscape, Internet Explorer.

Per controllare gli accessi ed evitare che si possa leggere la posta elettronica di altri utenti, il protocollo POP richiede l'autenticazione dell'utente. In genere il meccanismo di controllo degli accessi e' lo stesso che viene comunemente utilizzato per l'accesso interattivo ai sistemi: la coppia login,password.

Poiche' in molti casi la password viaggia in "chiaro" tra il cliente ed il server, si ha un potenziale problema di sicurezza perche' la password puo' essere intercettata e riutilizzata da altri (e non solo per l'accesso alla posta elettronica).

Esistono implementazioni del POP che cercano di risolvere questo problema ricorrendo a Kerberos o sfruttando password "non riutilizzabili" (APOP). Purtroppo queste varianti sicure non sono ampiamente diffuse o supportate. In particolare, non e' possibile utilizzare come POP client i browser piu' diffusi se l'autenticazione sul server e' di tipo APOP.

Scopo del progetto

Lo scopo del progetto e' lo studio e la realizzazione in Perl di un proxy che supporti il meccanismo di autenticazione APOP e che quindi consenta l'utizzo sicuro di un qualsiasi browser come cliente POP. In particolare, il proxy deve essere in grado di ricevere la password in chiaro inviata dal browser utilizzato dal cliente e seguire la procedura APOP per accedere al mail server reale. Una volta autenticato il cliente in modo sicuro sul mail server, e' necessario:
  1. ricevere i comandi POP inviati dal browser,
  2. girare le richieste al POP server
  3. ricevere le risposte (compresi eventuali codici di errore!)
  4. girare le risposte al browser
Si richiede lo sviluppo delle seguenti due versioni:
  1. Monoprocesso: un singolo processo che gestisce multiple connessioni
  2. Monoconnessione: un processo per ogni connessione (i processi multipli sono supervisionati da un processo daemon).
Particolare attenzione deve essere rivolta all'affidabilita' del proxy. Un altro importante elemento di valutazione sara' la flessibilita' del disegno e del codice che devono essere facilmente adattabili a modifiche del POP e/o all'utilizzo come proxy di altri protocolli.

A completamento del progetto ogni gruppo dovra' consegnare una documentazione su carta con chiara l'indicazione dei componenti del gruppo (nome, matricola, anno accademico e recapito). La documentazione dovra' almeno contenere le informazioni dettagliate di seguito:

  • Lo scopo del progetto (problema da risolvere, possibili soluzioni...)
  • Le scelte di progetto effettuate
  • L'organizzazione del codice e delle strutture dati
  • Descrizione dei test effettuati per dimostrare l'affidabilita' del prototipo
  • Procedure di installazione ed utilizzo. Per questa parte si dovra' usare formato e notazione consistenti con quelli dei manuali UNIX

  • Come appendice del documento dovra' essere incluso il codice sorgente Perl.

Bibliografia (solo consultazione)

  1. Building Internet Firewalls, D.B. Chapman and E.D. Zwicky, O'Reilly & Ass. 1995
  2. TCP/IP Network Administration, 2nd Ed., C. Hunt, O'Reilly & Ass., 1998
  3. Advanced Perl Programming, S. Srinivasan, O'Reilly & Ass., 1997
  4. Unix Network Programming, R.Stevens, Prentice Hall Software Series, 1990
  5. POP3: http://www.eudora.com/freeware definito in rfc1725

-- AntonioValletta - 14 Nov 2001

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2002-10-31 - AlessandroMei






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback