tility Windows XP...2) Digitare recover [unità:] [percorso]nomefile per recuperare file da...

176
1 tility Windows XP Programmi eseguibili dal prompt dei comandi (sintassi Start/Esegui/cmd): 1) Digitare systeminfo, (da cmd) verranno visualizzate numerose informazioni relative al sistema tra cui: versione di Windows XP, numero di serie, proprieta- rio, versione del bios, hotfix installati etc. 2) Digitare recover [unità:] [percorso]nomefile per recuperare file da un'unità danneggiata o difettosa. E' consentito il recupero di un file alla volta senza l'uti- lizzo di wildcards (es. *.*), dunque indicando il nome preciso di un file. 3) Digitare driverquery, (da cmd)comparirà una schermata riassuntiva con l'elen- co dei driver installati sul nostro sistema operativo ordinati per "nome modulo", "nome visualizzato" e "data di collegamento". 4) Digitare fsutil fsinfo, la schermata presenterà una serie di opzioni che consen- tiranno di conoscere informazioni approfondite sui volumi e il tipo di filesystem utilizzato: drives - Elenca tutte le unità drivetype - Interroga un'unità in base al tipo volumeinfo - Interroga le informazioni sul volume ntfsinfo - Interroga informazioni sul volume specifiche per NTFS statistics - Interroga le statistiche del file system. 5) Digitare tasklist /svc, (da cmd)verranno visualizzati in tal modo i processi at- tivi sul sistema affiancati dai relativi servizi da cui dipendono. Utile nel caso si voglia conoscere in maniera approfondita l'origine di un programma in esecuzio- ne. I comandi di WinXP più usati da linea di comando (Esegui) Molti comandi di Windows si possono direttamente richiamare direttamente da linea di comando (Start -> Esegui). Ecco i principali e a cosa servono: *msconfig = permette di accedere ad una finstra da cui modificare i file SYSTEM.INI, WIN.INI, BOOT.INI, gestire i Servizi di Windows e anche gesti- re i programmi da usare all'Avvio; *services.msc = richiama la finestra di gestione dei Servizi di sistema; U

Transcript of tility Windows XP...2) Digitare recover [unità:] [percorso]nomefile per recuperare file da...

1

tility Windows XP

Programmi eseguibili dal prompt dei comandi (sintassi Start/Esegui/cmd):

1) Digitare systeminfo, (da cmd) verranno visualizzate numerose informazioni relative al sistema tra cui: versione di Windows XP, numero di serie, proprieta-rio, versione del bios, hotfix installati etc.

2) Digitare recover [unità:] [percorso]nomefile per recuperare file da un'unità danneggiata o difettosa. E' consentito il recupero di un file alla volta senza l'uti-lizzo di wildcards (es. *.*), dunque indicando il nome preciso di un file.

3) Digitare driverquery, (da cmd)comparirà una schermata riassuntiva con l'elen-co dei driver installati sul nostro sistema operativo ordinati per "nome modulo", "nome visualizzato" e "data di collegamento".

4) Digitare fsutil fsinfo, la schermata presenterà una serie di opzioni che consen-tiranno di conoscere informazioni approfondite sui volumi e il tipo di filesystem utilizzato: drives - Elenca tutte le unità drivetype - Interroga un'unità in base al tipo volumeinfo - Interroga le informazioni sul volume ntfsinfo - Interroga informazioni sul volume specifiche per NTFS statistics - Interroga le statistiche del file system.

5) Digitare tasklist /svc, (da cmd)verranno visualizzati in tal modo i processi at-tivi sul sistema affiancati dai relativi servizi da cui dipendono. Utile nel caso si voglia conoscere in maniera approfondita l'origine di un programma in esecuzio-ne.

I comandi di WinXP più usati da linea di comando (Esegui)

Molti comandi di Windows si possono direttamente richiamare direttamente da linea di comando (Start -> Esegui). Ecco i principali e a cosa servono: *msconfig = permette di accedere ad una finstra da cui modificare i file SYSTEM.INI, WIN.INI, BOOT.INI, gestire i Servizi di Windows e anche gesti-re i programmi da usare all'Avvio; *services.msc = richiama la finestra di gestione dei Servizi di sistema;

U

2

*mailto: = serve per scrivere direttamente una mail serza il client di posta prede-finito; *bootcfg = Configurare, interrogare o modificare le impostazioni del file Bo-ot.ini; *driverquery = Visualizzazione di un elenco dei drivers di tutte le periferiche in-stallate e delle loro proprietà; *systeminfo = Visualizzazione di informazioni dettagliate sulla configurazione del computer e del sistema operativo installato su di esso; *getmac = Visualizzazione dell'indirizzo MAC (Media Access Control) e di un elenco dei protocolli di rete associati ad ogni indirizzo per tutte le schede di rete in ogni computer; *gpresult = Visualizzazione delle impostazioni del Group Policy e dell'RSOP (Resultant Set of Policy) di un utente o di un computer; *netsh = Questo comando può essere utilizzato all'interno del "Netsh Interface IP" al fine di configurare il protocollo TCP/IP; *schtasks = Schematizzazione dei comandi e dei programmi che girano peridi-camente o in un tempo specifico sul computer.

Esecuzione programmi e file

CALC - calcolatrice CLEANMGR - pulitura disco CMD - prompt dei comandi DVDPLAY.EXE - Windows Media Player EXCEL - Excel EXPLORER - avvia Esplora Risorse MOZILLA - browser Mozilla MPLAYER2.EXE - MediaPlayer 6.4 spartano e leggero MSPAINT - Paint NERO - Ahead Nero NOTEPAD C:\BOOT.INI - visualizzazione boot.ini OSK - tastiera su schermo WINWORD - Word WIN.INI - visualizzazione win.ini

Varie disinstallazione di Messeger RunDll32 advpack.dll,LaunchINFSection –

maggiore potenza del processore %windir%\INF\msmsgs.inf,BLC.Remove - Rundll32.exe adva-pi32.dll,ProcessIdleTasks ciò libererà i programmi in idle che lavorano in background, così Windows XP potrà avere più risorse libere. Questo processo può durare anche 15 minuti.

3

Recovery Console in caso di crash o gravi problemi che impediscono il corretto funzionamento di Windows 2000/XP, [Lettera CD Rom]:\i386\winnt32.exe /cmdcons Recovery Console - La si può in-stallare nel menu d'avvio di Win2000/XP in modo che venga copiata sull'hard disk e sia immediatamente accessibile tramite il menu di boot. bloccare il pc da intrusioni Rundll user32.dll,LockWorkStation - nei sistemi 2k e XP. Per riaccedere bisogna reinserire la password. Come si utilizza l'utility SFC di Microsoft

Grazie all'utility SFC (System File Checker), è possibile controllare l'integrità dei file di sistema. Richiamare l'utility da Start -> Esegui -> cmd ->sfc.exe sfc [/scannow] [/scanboot] [/scanonce] [/revert] [/purgecache] [/cachesize=x] ecco tutti gli switch dell'utility: /scannow - Esegue una scansione immediata di tutti i file protetti /scanonce - Esegue la scansione dei soli file protetti (una sola volta) /scanboot - Esegue la scansione dei file protetti e di sistema ad ogni avvio del computer /revert - Ripristina il valore di default di SFC /purgecache - Rimuove la cache del Windows File Protection file cache ed ese-gue una scasione immediata per inserire i nuovi dati /cachesize=x - delimita i parametri , in Mb, della cache del Windows File Protec-tion

Shutdown.exe per chiudere/riavviare il sistema

Con il Resource Kit di WindowsNT/2000 (ed ora disponibile in modo "nativo" su XP), è stato introdotta un'interessantissima utility (soprattutto se utilizzata ne-gli scripts), che vi consente di chiudere o riavviare il sistema. E' possibile utilizzare l'utility anche su sistemi remoti. Ecco la lista completa degli switch: -i Display GUI interface, must be the first option -l Log off (cannot be used with -m option) -s Shutdown the computer -r Shutdown and restart the computer -a Abort a system shutdown -m \\computername Remote computer to shutdown/restart/abort -t xx Set timeout for shutdown to xx seconds -c "comment" Shutdown comment (maximum of 127 characters) -f Forces running applications to close without warning -d [u][p]:xx:yy The reason code for the shutdown u is the user code p is a planned shutdown code

4

xx is the major reason code (positive integer le ss than 256) yy is the minor reason code (positive integer le ss than 65536)

Spegnere il pc in remoto

Il comando da usare è il seguente: net use \\nomecomputerdaspegnere\IPC$ /USER:[dominio\]nomeutente <password>dove l'utente deve avere privilegi di amministratore

Disabilitare la richiesta password

Con WindowsXP è possibile disabilitare la richiesta di username/password per l'accesso al sistema, grazie ad un pratico ed utile tool. Da start -> esegui, digitare control userpasswords2 Si aprirà una finestra denominata User Accounts. Da questa finestra, disabilitan-do la voce "User must enter a user name and password to use this computer", verrà bypassato il login dal prossimo riavvio del sistema.

Terminare le applicazioni bloccate

Molte volte capita che, alla chiusura delle applicazioni, quest'ultime rimangano bloccate, con la conseguente apertura di una finestra in cui si viene avvisati che il programma "non risponde...". Per sopperire a questo inconveniente, e far in mo-do che Windows forzi automaticamente la chiusura dell'applicazione, è sufficien-te modificare la seguente chiave di registro: 1 - Aprite il registro di configurazione (rege-dit.exe)HKEY_USERS\.DEFAULT\Control Panel\Desktop 2. Impostate a "1" il valore di "AutoEndTasks

Password caching

Se siete un pò smaliziati dovreste sapere che le password che immette nelle ca-selle che hanno l’opzione “salva password” vanno a finire in un file nome_dell’utente.pwl che può essere decifrato facilmente con Pwl Tool (Pwl Tool). E' possibile evitare l'uso delle cached password modificando una chiave nel Re-gistry. Basta impostare al valore 1 la seguente chiave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVer-sion\Policies\ Network\DisablePwdCaching

Windows: tracciare i problemi di avvio/chiusura

Può capitare che Windows manifesti dei problemi in fase di avvio o chiusura. Questa piccola modifica del registro di configurazione vi consentirà di attivare il logging esteso permettendovi di ottenere informazioni dettagliate sull'av-

5

vio/arresto del sistema operativo. Aprite il registro e posizionatevi in corrispondenza della chiave seguente: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System Qualora non esistesse già, provvedete a creare un nuovo valore DWORD deno-minato VerboseStatus. Impostatene il valore a 1 per attivare la funzione. Successivamente potrete ripor-tarne a 0 il valore per ripristinare le impostazioni iniziali. Qualora sia presente il valore DisableStatusMessage (impostato a 1) non verrà visualizzato alcun messaggio: modificatene il valore DWORD a 0. Come Cambiare il product-key di XP da registro

Aprire il registro di windows con Regedit: * Posizionarsi sul ramo HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT \CurrentVersion\wpaevents * Selezionare a destra la chiave OOBETimer, e cliccare su Modify * Cambiare almeno un valore per disattivare Windows e confermare * Chidere il Regedit * Andare nella directory "%systemroot%\system32\oobe e digitare: msoobe.exe /a" * Selezionare la modalità di attivazione telefonica per attivare Windows cliccan-do su Yes e poi next * Selezionare Change Product Key * Inserire un Product Key Corporate valido * Selezionare Update e chiudere la finestra * Nella finestra precedente selezioanre Remind me later * Riavviare il pc Verificare i cambiamenti * Dopo il riavvio de pc andare nella directory "%systemroot%\system32\oobe e digitare: msoobe.exe /a" * Nel caso in cui l'aggiornamento sia andato a buon fine nella dialog box ci sarà scritto: "your copy of windows is already activated"

Ho perso la product key di windows: come posso ritrovarla

La product key di windows, necessaria per poter istallare il sistema operativo, si trova in una chiave del registro di configurazione. Se dovete reistallare windows sul vostro computer e non avete voglia di cercare il cd rom di istallazione, potete leggere la vostra product key nel registro di con-figurazione. Per farlo, aprite l'editor del registro (regedit.exe), e recatevi in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion Nella parte destra saranno elencate una serie di chiavi, tra cui "ProductKey", il

6

cui valore sarà quello richiesto dall'istallazione di windows. Se il vostro sistema operativo è windows 2000 o xp, il procedimento sarà lo stes-so, ma la chiave da aprire si troverà ad un altro indirizzo: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion.

Disabilitare la memorizzazione di password

Con questa modifica al registro di configurazione, è possibile disabilitare la me-morizzazione delle credenziali di autenticazione e password locali. Aprire il registro e portarsi sulla seguente chiave: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa Creare (se non esiste) un nuovo valore DWORD, denominato DisableDomain-Creds, e settarla a 1. Windows: disabilitare le condivisioni amministratore

I sistemi operativi Windows (XP/2000/2003) in fase di installazione creano au-tomaticamente, per partizione presente sul sistema, delle condivisione ammini-strative chiamate C$, D$, ecc ecc a secondo del numero di partizioni presenti. Il simbolo $ serve a rendere la condivisione nascosta e quindi non visibile dalle "Risorse di Rete". E' possibile disabilitare questa caratteristica, agendo sul registro si sistema: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters Impostate la chiave DWORD AutoShareServer o AutoShareWks (a seconda del-la versione di Windows installata) a 0. Sarà possibile ripristinare la situazione originale, reimpostando la chiave a 1. Il file di Paging

Il file di paging (o di paginazione) rappresenta per Windows quella zona dell’hard disk dedicata ad accogliere quella parte di programmi caricati nella RAM e che è da un po’ di tempo che non vengono usati. E' possibile eliminarli automaticamente all'uscita di windows (verranno comunque ricreati ad ogni av-vio). Procedete in questo modo: aprite il Registro di sistema e trovate la chiave: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management e qui modificate il valore da 0 a 1 di "ClearPageFileAtShutdown" Dal successivo riavvio il file di paging verrà ricreato ad ogni accesso. Questo trucco è stato testato su WindowsXP.

Svuotare il file di paging al reboot

La memoria virtuale, o paging file, viene utilizzato da Windows per memorizza-re dati vitale per il funzionamento del sistema operativo, e della applicazioni che

7

girano sulla macchina, qualora la memoria fisica (RAM) sia insufficiente. Per questioni relative alla sicurezza, potrebbe essere opportuno svuotare questo file, al fine di eliminare file riservati o personali (non criptati). Per fare ciò seguire i seguenti passi: 1. Aprire il registro di configurazione 2. Posizionatevi sulla chiave: HKey_Local_Machine/System/CurrentControlSet/Control/Session Manager/Memory Management 3. Doppio click sull'entry "ClearPageFileAtShutdown" e impostare il valore a 1

Eliminare il file di paging all'uscita di windows

Se vogliamo che il sistema ad ogni avvio ricrei il file di paging basta andare nel registro di configurazione (Start -> Esegui -> regedit) e cercare la chiave: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management e modificare il valore da 0 a 1 di "ClearPageFileAtShutdown" Dal successivo riavvio il file di paging verrà ricreato ad ogni accesso.

Proteggere la propria privacy cancellando il file di paging all'uscita Se il computer è usato da più persone è più sicuro, quando si spegne il pc, svuo-tare il file di paging in modo che altre persone non possano entrare in possesso di informazioni personali. Per fare questo basta andare nel Pannello di Controllo -> Strumenti di Amministrazione -> Impostazioni protezione locale e alla voce 'Ar-resto del sistema: Cancella il file di paging della memoria virtuale' andiamo a se-lezionare 'Abilitato'.

Cambiare la lettera d'unità del disco di boot.

Questa procedura permette di cambiare la lettera d'unità assegnata al disco di bo-ot di windows (per default C) con un' altra lettera d'unità libera. Questa opera-zione è consigliata solo in casi di reale necessita e comunque si consiglia di effet-tuare sempre prima un backup totale del server compreso il system state.In que-sto esempio invertiamo il disco C (attuale di boot) con il disco D (nuovo disco di boot) usando per lo swap una lettera di unità libera (Y) di comodo. 1. Aprire il registro di configurazione con l' utility Regedt32.exe e posizionarsi sul ramo : HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices 2. Verificare se su MountedDevices gli utenti appartenenti al gruppo Administra-tors abbiano i permessi di Full-Control (tasto dx > permissions), nel caso impo-starli. 3. Chiudere l' utility Regedit32 ed aprire l' utility Regedit.exe 4. Posizionarsi sulla chiave di registry : HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices 5. Rinominare la chiave \DosDevices\C: (attuale disco di boot) in \DosDevices\Y: (assicurandosi che la lettera Y sia libera); questa operazione li-

8

bererà la lettera C 6. Rinominare la chiave \DosDevices\D: (nuovo disco di boot) in \DosDevices\C: 7. Rinominare la chiave \DosDevices\Y: in \DosDevices\D: 8. Chiudere l' utility Regedit.exe 9. Nel caso in cui siano state precedentemente settate le permission al punto 2 ri-portarle allo stato originario sempre con l' utility regedit32.exe P.s. Questa operazione va effettuata con un account che abbia i diritti ammini-strativi.

Forzare Windows a scaricare dalla memoria le DLL Ecco come impedire che WindowsXP metta in cache tutte le librerie DLL in pre-cedentemente caricate e utilizzate. Aprire il registro di configurazione e portarsi sulla seguente chiave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer Creare (se non esiste) una nuova chiave denominata AlwaysUnloadDLL e settar-la a 1. Riavviare Windows per rendere la modifica operativa.

Controllo sui crash/blue-screen del sistema

Windows2000, XP e l'ultimo nato 2003, sono sistemi operativi indubbiamente più stabili rispetto ai loro predecessori. In casi remoti, però, può capire che si presentino ugualmente crash e blue-screen, e che la macchina si riavvii in modo automatico senza preavviso. Per ovviare a questa situazione, bisogna intervenire sul registro di configurazione. Aprire il registro di configurazione e portarsi sulla seguente chiave: HKEY_LOCAL_MACHINE\parCrashControl Modificare il valore della chiave: AutoReboot e assegnargli il valore 0 per disabilitare il riavvio automatico, e 1 per riabilitarlo.

Creare una copia di backup delle connessioni remote

Per creare una copia di backup di tutte le connessioni di accesso remoto, è suffi-ciente fare come segue: copiare il file rasphone.pbk, contenuto nella cartella and SettingUsersapplicazionisu un floppy o su un'altro dispositivo di backup. Nel ca-so in cui vogliate reinstallare il sistema o ripristinare le connessioni, basta ri-prendere questo file e riposizionarlo nella cartella sopra indicata.

Come disabilitare la segnalazione e l'invio di errori

Infatti succede che quando un programma si blocca e siamo costretti a chiuderlo, ci appare una finestra chiedendoci se vogliamo segnalare a Microsoft l'errore.

9

Ebbene, vediamo come rimuovere dal Pannello di Controllo questa segnalazio-ne... Andiamo in Pannello di Controllo e selezioniamo 'Sistema'. Da qui ci portiamo nel tab 'Avanzate' e clicchiamo su 'Segnalazione Errori'. A questo punto si aprirà una finestra che ci permetterà di rimuovere la segnalazione. Non visualizzare l'ultimo login

Windows mostra sempre automaticamente l'ultimo utente con il quale si ha avuto accesso al sistema. Per impedire questo, andare dentro a Pannello di Controllo, Strumenti di amministrazione sistema, Selezionare l'icona Criteri di Protezione locale. Ora aprire, nella struttura ad albero che compare a sinistra, la cartella Cri-teri locali, Opzioni di protezione. Cercare nel pannello di destra della finestra la voce Non visualizzare l'ultimo nome utente nella schermata di accesso e fare doppio clic per aprire la finestra di dialogo. In essa si farà clic sull'opzione Abilitati e poi si conferma con OK. In futuro Windows al login, non mostrerà più il nome dell'ultimo utente.

Blocco allo spegnimento di WindowsXP

Durante l'arresto del sistema, appare la finestra Salvataggio Impostazioni in cor-so e il computer si blocca. Accedi a Regedit, quindi cerca la chiave di registro: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer trovare la stringa AlwaysUnloadDLL (se non la trovi creala) e assegna valore 1. Successivamente fare scandisk, defrag e comunque eliminare i files *.tmp

Come 'bloccare' la home page

Per chi utilizza Windows 2000/XP è possibile bloccare, in Opzioni Internet, la propria pagina iniziale scelta (che nel Registro di Sistema corrisponde al valore HomePage) in modo tale da non essere modificata da script maligni, anche se ultimamente si stanno evolvendo parecchio. Per bloccarla, ricorriamo al Registro di Sistema e cerchiamo questa chiave: HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explo-rer\Control Panel Ora modificate il valore "Homepage" portandolo a 1. Se volete sbloccarla, non dovete far altro che rimodificare il valore riportandolo a 0.

Impedire la modifica della password esistente

Per impedire la modifica della propria password, è sufficiente andare alla se-guente chiave del registro di configurazione: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies

10

A questo punto è necessario aggiugere, se non presente, la sottochiave "System" nel cui interno creare la voce Dword "NoPwdPage" con valore "1".

Far risultare effettuata la registrazione

Eseguire regedit (l'editore del registro di configurazione), andare in HKEY_LOCAL_MACHINE, poi SOFTWARE, poi Microsoft, Windows NT, Current Version e inserire il valore 1 in corrispondenza di RegDone.

Potenzialità dei Criteri di Gruppo (Local Group Policy Editor)

Pochi utenti conoscono il comando gpedit.msc che permette di aprire l'editor dei Criteri di Gruppo. Andate su Start -> Esegui e digitate gpedit.msc. Si aprirà una finestra dalla quale si possono modificare delle cose incredibili di Windows. Tra le personalizzazioni migliori si possono notare cose molto carine come la modi-fica del logo di Internet Explorer, il titolo del browser, lo sfondo della barra degli strumenti, operare su molti componenti di Windows, la rete, il sistema, il Desktop, il Pannello di Controllo e moltissime altre cose ancora.

Rendere il computer invisibile in rete

E' possibile fare in modo che il proprio computer risulti "invisibile" al resto della rete a cui è connesso per motivi di sicurezza/privacy. Andiamo nel registro di configurazione (Start -> Esegui -> regedit) e cerhiamo la chiave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters e, se non esiste già, creiamo un valore DWORD con nome "Hid-den" (senza le virgolette), assegnandogli il valore a '1'. Per rendere il computer nuovamente visibile basta impostare Hidden a 0.

• Servizi di Windows disattivabili Start Esegui... digitare servi-ces.msc

Nome Descrizione Consiglio

Accesso Peri-ferica / Human Interface

Accesso a periferiche come tastie-re, teleco-mandi e altre periferiche multimediali non std.

Disattivare

Aggiornamenti automatici

Donwload e installazione

Disattivare

11

di aggiorna-menti critici da Windows Update

Avvisi

ClipBook

Abilita il Vi-sualizzatore Cartella Ap-punti

Disattivare

Compatibilità di Cambio ra-pido utente

Gestione delle appli-cazioni che richiedono assistenza in un ambiente con più uten-ti

Disattivare su pc fuori rete o utente singolo

Condivisione Desktop Re-moto di Net-Meeting

Consente di accedere al desktop di Windows da postazione remota

Disattivare

Guida in linea e supporto tecnico

Consente l'e-secuzione di Guida in li-nea e sup-porto tecnico

Didattivare

Gestione ap-plicazione

Gestione ses-sione di assi-stenza median-te desktop re-moto

Helper Smart Card

Supporto per precedenti versioni di lettori di Smart Card non PnP

Disattivare

Host di perife- Fornisce il Disattivare / Rischio di

12

riche PnP uni-versali

supporto per ospitare peri-feriche uni-versali

sicurezza

Messenger

Ora di Windows

Sincronizza data e ora su tutti i client e i server della rete

Disattivare su pc fuori rete

Provider sup-porto prote-zione LM NT

Protezione per i pro-grammi con chiamate a procedure remote (RPC)

Disattivare

Registro di si-stema remoto

Rilevamento hardware shell

Rileva modi-fiche hardware

Automatico/Disattivare per prova

Routing e Ac-cesso Remoto

Servizi di routing in ambiente Lan e Wan

Disattivare

Server

Condivisione in rete di fi-le, stampa e named-pipe

Disattivare su pc fuori rete

Servizi di crit-tografia

Gestisce le firme dei file di Windows e i certificati delle fonti attendibili

Disattivare / Avvio manuale

Server terminal

Consente a più utenti di connettersi in modo in-terattivo al computer

Disattivare

13

Servizio COM di masterizza-zione CD I-MAPI

Gestisce la registrazione di cd-Rom

Disattivare

Servizio di in-dicizzazione

Indicizza contenuti e proprietà di file su com-puter locali e remoti

Disattivare

Servizio di ri-levamento SSDP

Rileva le pe-riferiche U-niversal PnP

Disattivare / Rischio di sicurezza

Servizio di se-gnalazione er-rori

Segnalazione di errori per servizi e ap-plicazioni eseguiti in ambienti non standard

Disattivare

Sistema di e-venti COM+

Notifica e-venti di si-stema

Avvio manuale

Smart Card

Gestisce l'ac-cesso alle Smart Card lette dal computer

Disattivare

Telefonia

Supporto di telefonia Ta-pi per telefo-nia basata su IP

Disattivare

Telnet

Consente l'accesso da remoto al computer

Disattivare

Temi Gestione dei temi d'inter-faccia

Disattivare

WebClient Abilita i pro-grammi per

Disattivare

14

creare, acce-dere e modi-ficare i file basati su internet

Servizi che possono essere modificati per ottimizzare le prestazioni

Servizi Impostazioni Funzione

Aggiornamenti automatici Disabilitato

Download e installazione automatici degli aggiorna-menti. Potete sempre ag-giornarli manualmente

Clipbook Disabilitato Serve per la condivisione in rete degli appunti. Inutile su postazione singola

Servizio se-gnalazione er-rori

Disabilitato COnsente la segnalazione di errori in ambienti non standard. Inutile

Fax Manuale Consente di inviare fax uti-lizzando il fax/modem.

Servizio COM di masterizza-zione CD I-MAPI

Disabilitato Disabilitate questa opzione solo se non avete un maste-rizzatore CD.

Condivisione Desktop remo-to di Netmee-ting

Disabilitato Inutile in ambiente dome-stico.

DDE di rete Manuale

Ancora impostazioni di rete che probabilmente non oc-corro in ambiente domesti-co

Servizio di supporto Dri-ver nVidia

Disabilitato Presente se avete una sche-da video di questa marca, ma cmq non necessario

Avvisi e regi-stri di presta-zioni

Disabilitato Riunisce e memorizza dati sulle prestazioni, ma infa-stidisce la maggior parte

15

degli utenti. Numero di se-rie del suppor-to portatile

Disabilitato Disabilitate se non avete un lettore MP3

Gestione ses-sione di assi-stenza median-te Desktop Remoto

Disabilitato Consente ad altri utenti di collegarsi al vostro PC in remoto per fornirvi aiuto

Smart Card Disabilitato Utilizzato soprattutto nei computer portatili e rara-mente dai PC desktop

Helper smart card Disabilitato

Utilizzato soprattutto nei computer portatili e rara-mente dai PC desktop

Gruppo di continuità Disabilitato

Utilizzato soltanto da PC con interfacciamento con UPS

Ora di Windows Disabilitato Sincronizza gli orologi dei

PC in una rete

La Management Console di Windows XP

Nome file Descrizione

certmgr.msc

Gestione certificati elet-tronici, di cui vengono muniti per esempio dri-ver o add-in di Internet Explorer come conferma di fonte affidabile del programma.

Compmgmt.msc

amministrazione del computer, richiamabile dal Pannello di controllo tramite Prestazioni e Manutenzione /Strumenti di Amm.ne In questa console sono in-tegrati numerosi snap-in quali la deframmenta-

16

zione e la gestione peri-feriche

Devmgmt.msc

gestione periferiche (in-tegrato in gestione com-puter) per la gestion dei singoli componenti hardware del pc.

Dfrg.msc Strumento per la de-frammentazione

Diskmgmt.msc

Gestione disco, per la configurazione (parti-zionamento, formatta-zione ecc.) degli hard disk e per l'assegnazione delle lettere di drive.

Eventvwr.msc Visualizzatore eventi

Fsmgmt.msc

Questa console serve a controllare le cartelle condivise e i files aperti sul pc da altri utenti.

Lusrmgr.msc

La console Utenti e gruppi locali serve per la gestione dei diritti di tut-ti gli utenti e gruppi con-figurati sul pc; può esse-re utilizzata solo in Windows XP Professio-nal.

Ntmsmrg.msc

La console dei supporti rimovibili gestisce e ca-taloga supporti di memo-rizzazione diversi, quali unità a nastro. Qui si possono creare pool di supporti e code di attesa per l'uso degli archivi.

Perfmon.msc Visualizzatore di presta-zioni

Services.msc Questo snap-in gestisce tut-ti i servizi: è possibile atti-vare/disattivare le voci di questo elenco e determinare

17

il loro stato all'avvio di Windows. La gestione ser-vizi fa parte della Gestione computer.

Eliminare i contenuti di una cartella

Nella cartella temporanea di Windows si accumulano alla lunga molti file inutili. Vorrei che ad ogni avvio di WIndows venissero eliminati automaticamente in moda da liberare spazio su disco. Si può usare un semplice file batch, che va inserito nella cartella Esecuzione Au-tomatica. Creiamo un documento con estensione "bat" utilizzando Notepad (editor di testo) ed inseriamo queste righe: @echo off ; [per Windows 98/Me] echo S | del "c:\windows\temp\*.*" ; [per Windows 2000/XP] echo S | del "c:\documents and settings\<nome utente>\impostazioni loca-li\temp\*.*" e salvare il file come "deltemp.bat"

Come faccio per avere configurazioni multiple di rete su Windows XP ?

Spesso si ha la necessità di cambiare le impostazioni di rete, specie lavorando con un computer portatile. Se non si vuole cambiare tutti i parametri a mano ogni volta, si può ricorrere a questo piccolo trucchetto: dal prompt di ms-dos, digitate netsh -c interface dump >reteconfig.txt In questo modo avete creato un file di testo contenente tutti i parametri di rete in uso in quel momento. Il file è stato salvato nella directory dove è stato digitato il comando. Dopo aver cambiato le impostazioni di rete, potete tornare alla configurazione salvata digitando questo comando: netsh -f reteconfig.txt Windows caricarà le impostazioni scritte sul file. Questo trucchetto è molto utile anche quando si devono configurare più compu-ter con le stesse impostazioni, senza intervenire a mano in tutti i pc. Come faccio a sapere quali porte sono in uso in questo momento sul mio pc?

Aprite un prompt di MS-dos ( start, programmi accessori su Win2000, mentre in win98 è in programmi ) e digitate netstat –an vi verrà mostrata una lista delle porte TCP e UDP aperte, dove punta-no queste porte, se sono attive o in ascolto, ecc...se volete che la lista sia inserita in un file di testo, potete digitare:

18

netstat -an >c:activeports.txt e troverete in C: un file di testo con contenute le porte utilizzate. Il comando netstat restituisce come parametri: - Protocollo - Indirizzo locale ( nome host : num. Porta ) - Indirizzo remoto ( nome host : num. Porta ) - Stato della connessione Ad es.: Proto Indirizzo locale Indirizzo remoto Stato TCP xelo:1050 GIUSTI:netbios-ssn ESTABLISHED In questo caso abbiamo una connessione attiva Netbios dal nostro pc ( xelo porta 1050 ) al pc Giusti ( porta netbios ) Ci sono numerosi altri flag da utilizzare con il comando netstat. Per avere una li-sta digitate netstat –help sempre dal prompt di dos.

Accesso ai file personali

Recentemente ho dovuto reinstallare il sistema operativo Windows XP senza formattare il disco, per sistemare vari problemi. Adesso non riesco più ad aprire o a spostare da Documents and settings un mio file personale, denominato mio-sno.privato-j3kizja che contiene documenti. Come mai? Ripendendo l'installazione del sistema operativo, Windows 2000 e XP ricreano i profili degli utenti attribuendo a ciascuno un nuovo Sid (Security ID), cioè un nuovo codice di sicurezza per identificarli univocamente nel computer e sulla re-te. Non basta percioò ricreare utente con lo stesso nome di quelli preesistenti. Agli occhi di Windows l'utente Mario che esisteva prima della formattazione è diverso dall'utente Mario creato successivamente, perchè i loro Sid sono diversi. Poichè gli utenti sono diversi, i documenti memorizzati nella cartella personali del vecchio utente non sono più accessivbili dal nuovo utente. Per correggere questa situazione e recuperare l'accesso ai file, è sufficiente verificare che sia impostata la condivisione file in modalità avanzata: aprire il Pannello di control-lo e fare doppio clic sull'icona Opzioni cartella; nella scheda Visualizzazione to-gliere la spunta alla voce Utilizza condivisione semplice. Selezionare ora la car-tella e richiamare le sue proprietà. Premere il pulsante e poi Avanzate per aprire la finestra delle impostazioni avanzate di protezione. Scegliere la scheda proprie-tario, mettere il segno di spunta nella casella Sostituisci proprietario in sottocon-tenitori e oggetti, fare clic sul proprio nome utente nell'elenco e poi confermare. Ripristino delle funzionalità di Windows

Dopo l'installazione di qualche programma può succedere che alcuni file di si-stema vengano corrotti o che il Registry non funzioni più correttamente. Se si procede a una reinstallazione di Windows, però, tutte le impostazioni precedenti vanno perse. Un trucco permette invece di reinstallare Windows senza perdere la configurazione precedente: inserire il cd di installazione di XP e selezionare Start

19

> Esegui. Immettere il comando: <lettera del CD>:\i386\winnt32 /unattend e premere invio. Si avvierà così la procedura di installazione che riparerà i file di sistema fondamentali.

Svuotare regolarmente la cartella Prefetch

Il perfezionamento del boot di WIndows, attraverso l'utilizzo di una cartella con funzioni di cache, rende l'avvio del sistema più veloce. La cartella della cache, il cui percorso è Windows\prefetch, si dovrebbe però svuotare una o due volte al mese affinchè XP possa riempirla nuovamente e organizzarla meglio, garantendo così costantemente un avvio rapido. Migliorare le impostazioni di Prefetch

La funzione Prefetch si può modificare o disattivare completamente, cosa che ha senso se si ha difficoltà all'avvio del sistema o se il pc è un po' datato. In questo modo infatti si risparmia spazio sul disco fisso, ma si rallenta la velocità di lavo-ro. Per modificare le impostazioni di Prefetch entrare nel Registry e cercare la chiave HKEY_Local_Machine\System\CurrentControlSet\Control\SessionManager\Memory Management\Prefetch Parameters. Lo stato dell'applicazione è riconoscibi-le dalla voce Enable Prefetcher: i valori possibili sono 0 (funzione disattivata), 1 (Prefetch solo per applicazioni), 2 (solo per il boot), 3 (Prefetch per entrambe) Convertire la FAT32 in NTFS

Dl desktop di Windows XP, clic su Start e seleziona Esegui. Nella finestra scrivi "cmd" e premi il tasto Invio. Apparirà la finestra DOS. Nella finestra DOS, scri-vere la riga "convert disco:/FS:NTFS", dove per "disco" devi specificare l'unità del tuo hard disk, con la fat32 (ad esempio C). A questo punto, basta premere In-vio per avviare il processo. Premi "S" quando compare il messaggio "vuoi utiliz-zare nuovamente la conversione la prossima volta che riavvii il computer?". Ora non resta riavviare il PC per poi ritrovarsi con l'unità convertita. Ricordiamoci che non sarà più possibile tornare indietro e quindi tornare a FAT32.

Bloccare le Proprietà dello schermo

Spesso può capitare di dover condividere il proprio pc con altre persone, una del-le cose che crea più fastidio è tornare e trovarsi le proprietà dello schermo modi-ficate. Tramite il registro di sistema possiamo impedire che questo accada bloccando la possibilità di visualizzare le proprietà dello schermo. Apriamo il registro di sistema: start->esegui->regedit Andiamo alla chiave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System Nel caso non fosse presente dovremo creare noi, all'interno di "Policies", la

20

Chiave "System". Posizioniamoci dentro la chiave "System" e creiamo una sottochiave di tipo DWORD di nome "NoDispCPL" (escluse le virgolette). Impostiamo il valore a 1. D'ora in poi sarà impossibile accedere alle proprietà dello schermo. Per ripristinare l'accesso è sufficiente portare il valore a 0. Nota: per poter lanciare regedit è necessario avere i privilegi di amministratore.

Eliminazione automatica dei file temporanei

Questo piccolo trucco aiuta a mantenere sempre pulito il nostro disco fisso, eli-minando automaticamente i file temporanei (compatibile solamente con Windows XP Professional) Per prima cosa, portatevi su start->esegui e digitate "gpedit.msc". Portatevi quindi su Computer Configuration->Administrative Templates->Windows Components->Terminal Services->Temporary Folder Aprite quindi ""Do Not Delete Temp Folder Upon Exit"" e selzioante "Disabled". Chiudete il gpedit e riavviate il computer. Potete verificare che la cosa abbia funzionato ponendo un file in una delle cartel-le temporanee di windows: se avete eseguito correttamente la procedura, il do-cumento verrà eliminato automaticamente. Ripristinare la schermata di login classica

Se avete disabilitato la schermata di benvenuto "Welcome Screen" e volete ripri-stinare lo stile di login classico, fate così. Aprite innanzitutto l'editor del registro (regedit) e portatevi su HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\ThemeManager Modificate il valore DllName in %SystemRoot%\Resources\themes\Windows Classic.theme Chiudete regedit e disconnettetevi per verificare che tutto abbia funzionato cor-rettamente.

Problemi col Service Pack 2 (Firewall e Centro Sicurezza PC)

Dopo l'installazione del Service Pack 2, il sistema è rallentato o le condivisioni risultano essere difficili? Andare a fare tasto destro su Risorse del Computer, Gestisci. Cercare servizi e andare a disabilitare ed arrestare le seguenti voci: Centro sicurezza pc e Windows Firewall/Condivizione Internet (ICS) x:\windows\system32\shutdown.exe -s -t 00

Messaggio all'avvio (Windows XP)

Per far apparire un messaggio, in una finestra di pop-up, all'avvio di Windows

21

bisogna accedere, tramite Regedit, alla voce: HKEY_Local_Machine\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon La chiave LegalNoticeCaption contiene il nome della finestra di pop-up; la chia-ve LegalNotiveText Contiene invece il testo da visualizzare all'interno.

Eliminare la modalità grafica all'avvio (Windows XP)

Si vorrebbe disattivare la visualizzazione del Logo di Windows all'avvio, per rendere così l'avvio più veloce e rendere anche meglio visibili eventuali messag-gi di errore in modalità testuale. Si può disattivare la modalità grafica durante l'avvio del sistema modificando il file di sistema Boot.ini. Per rendere visibile il file, normalmente nascosto, bisogna che in Esplorare risorse, dopo la selezione di Sturmenti - Ozioni cartelle, nella schede Visualizzazione sia attivata l'opzione Visualizza cartelle e file nascosti. Ora si potrà aprire il file, posto nella cartella rdice del disco C, in un editor di testi. Nella sezione [operating system] si trova una riga per ogni sistema operativo installato, che per default termina con il pa-ramtro /fastdetect. Dopo questo bisogna, al termina della riga aggiungere l'ulte-riore parametro /noguiboot, come nell'esempio: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Pro-fessional" /fastdetect /noguiboot Questa modifica si può apportare a tutti i sistemi operativi installati. Dopo il sal-vataggio del file modificato e il riavvio non si avrà più la comparsa del logo ini-ziale. Si noti che l'accelerazione dell'avvio ottenibile con questa modifica dipen-de molto dalle prestazioni del processore e della scheda video; in ogni caso di-venta così possibile meglio eventuali segnalazioni di errore, che di solito vengo-no nascoste dalla grafica, il che può essere importante nel caso di problemi dovu-ti ai driver. Altre opzioni sono: /basevideo avvia il sistema con i driver video standard VGA /debug - modalità debut /maxmem:n specifica la quanguità massima di Ram da usare. /noguiboot esegue il boot senza visualizzare la schermata grafica di avvio /sos segnala a video i driver dei dispositivi mano a mano che vengono caricati /bootlog abilita la creazione di un file di registro (log) /safeboot:minimal avvia il sistema in modalità provvisoria, utile a fini diagnostici /safeboot:network avvia il sistema in modalità provvisoria con il supporto di rete /onecpu abilita una sola CPU nei sistemi multiprocessore.

22

Ripristino di account utenti bloccati (Windows XP)

D: Ho bloccato accidentalmente tutti gli account utente di WIndows XP. QUan-do si avvia, il sistema operativo si ferma alla schermata di benvenuto e attende la scelta dell'utente: purtroppo però non c'è niente che si possa scegliere. Come si può rimediare R: il sistema operativo va avviato partendo dal Cd di installazione, e quando il sistema chiede di scegliere tra le opzioni Continua, Riparazione e Interrompi in-stallazione, premere il tasto R (riparazione). Fornire la password dell'Ammini-stratore seguita da Invio. Questo tipo di accesso funziona anche se l'account Amministratore è tra quelli bloccati. Ora, dal promp dei comandi, si copierà con il comando: copy c:\windows\repair\sam c:\windows\system32\config il file SAM dalla sottocartella Repair di Windows a system32\config (adattare il comando, se necessario, all'effettivo percorso di origine e di destinazione). Con-fermare premendo S la richiesta di sovrascrittura del file Sam nella cartella di de-stinazione. Ora si riavvierà il sistema e si potrà fare il login. Il file Sam contiene tutte le informazioni sugli account di sistema; subito dopo l'installazione, Windows slava questo file nella cartella Repair. Con la procedura descritta si ri-portano gli account nello stato in cui erano immediatamente dopo l'installazione di Windows. Si perdono però le informazioni sugli account creati successiva-mente e anche possibili impostazioni personalizzate nel Registry; in questo modo si riesce però ad accedere al sistema, dove si potranno eventualmente ripristinate le configurazioni citate.

Modificare la password dimenticata

Se capita di dimenticare la password dell'Amministratore di Windows XP sareb-be comodo sostituirla con una nuova anche senza dover immettere la vecchia. Questo è possibile solo se si dispone di un altro account con diritti di Admini-strator: in tal caso effettuare il login con questo utente e aprire una console di comando tramite Start - Tutti i programmi - Accessori - Prompt dei comandi. Immettere il comando: net user administrator <newpassword>

Registro di sistema

La linea di comando(regedit)

MS ha provveduto a munire Windows di una versione a linea di comando del programma "regedit". Al prompt scrivere "reg /?" e lo schermo si riempirà di uti-li aiuti sull'utilizzo dell'editor. I comandi sono query, add, delete, copy, save, re-store, load, unload, compare, export e import. Per vedere come utilizzare un co-mando specifico, scrivete "reg comando /?". Se volete provare questo editor del registro, un comando sicuro da sperimentare è export, che memorizza una qual-

23

siasi chiave (e sottochiave) da voi specificata in un file .reg. Non modifica il re-gistro e la scopo di realizzare un backup di una chiave prima di modificarla. Per esempio se volete fare un backup della chiave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer, dovreste inserire reg export HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer Questo dovrebbe essere inserito come un comando unico. La chiave verrà salvata su c:\mybackup.reg.

Come aggiornare il registro senza riavviarlo

E' possibile, per chi usa Windows 2000/XP, aggiornare il registro di sistema sen-za riavviare: di solito quando si applicano alcune modifiche al sistema, come l'installazione di un nuovo software, potrebbe essere necessario riavviare. Tutta-via esiste un metotdo più veloce per eseguire questa operazione. Apriamo il Task manager con la combinazione di tasti Ctrl + Alt + Canc. poi spostiamoci nella sezione Processi e chiudiamo tutte le sessioni di EXPLO-RER.EXE (tasto desto sul processo e fate clic su termina processo). Successivamente andiamo sul menu File e selezioniamo Nuova Operazione (E-segui): digitiamo Explorer (con la E maiuscola). E a questo punto abbiamo ag-giornato il Registro di Sistema senza aver riavviato il PC. Ingegnoso vero?

Modifica del registro

Editor del file registro, più veloce e mostra una lista di tutti i risultati Scaricabile dal seguente sito: http://www.resplendence.com/download/reglite.exe

Guida rapida ai "DWORD" del menu Avvio

Valore del registro Funzione

NoSimpleStartMenu Rimpiazza il menu Start di Windows XP con la sua versio-ne classica

NoStartMenuPinnedList Rimuove la lista dei programmi aggiunti dal menu Start

NoStartMenuMFUprogramsList Rimuove la lista dei programmi usati più di frequente dal menu Start

NoWindowsUpdate Rimuove il collegamento a WindowsUpdate dalla lista Pro-grammi e blocca l'accesso a

24

"windowsupdate.microsoft.com"

NoSMMyDocs Rimuove la cartella Documenti dal menu Start

NoRecentDocsMenu Rimuove la cartella Dati Recenti dal menu Start

ClearRecentDocsOnExit Cancella il menu Dati Recenti quando un utente si disconnette

NoSMHelp Rimuove la guida in linea dal menu Start

NoFind Rimuove Cerca dal menu Start NoRun Rimuove Esegui dal menu Start

NoChangeStartMenu Impedisce agli utenti di modifi-care il menu Start trascinando gli oggetti al suo interno

NoUserNameInStartMenu Rimuove il nome utente dal me-nu Start

NoSetTaskbar Disabilita le modifiche all'area di notifica e alle impostazioni del menu Start

Utility nascoste (Windows XP)

Systeminfo.exe è un programma di diagnostica Openfiles.exe è possibile controllare quali sono i file aperti al momento e quale utente e /o programma li ha aperti. es. openfiles /disconnect /id<id> openfiles /disconnect /a <user> Shutdown.exe consente lo spegnimento sicuro e flessibile dei computer in rete, non solo con XP ma anche Win2k. I parametri principali sono: -1 per disconnettersi, -s per arrestare il sistema, -r per riavviare il sistema con -m \\<nomecomputer> è possibile spegnere o riavviare un computer dalla rete locale, a patto di avere i diritti di amministratore, con -c <te-sto>, per indicare un messaggio durante i trenta secondi di ritardo che intercorro-no prima dello spegnimento. per modificare il tempo aggiungere il parametro -t <secondi> con -f chiude tutte le applicazioni aperte pathping.exe permette di seguire il percorso dei pacchetti di rete pathping <host>

25

Come cambiare le informazioni sul sistema in XP

E' possibile cambiare le informazioni che vengono visualizzate nella finestra "Proprietà del sistema". Ecco come fare: aprite il Registro di Sistema e cercate la seguente chiave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\Current Ver-sion Ora create (o modificate) i valori Stringa RegisteredOwner e RegisteredOrgani-zation con il testo che volete far apparire. Se questa modifica non dovesse avere effetto, provate a rifare le stesse operazio-ni nella chiave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows NT

Eliminare le copie di backup dei service pack

Vediamo come eliminare le copie di backup create durante l'installazione di patch e Service Pack e recuperare spazio su disco. Premessa: ogni volta che installiamo aggiornamenti e Service Pack per Windows, il sistema operativo memorizza una copia di tutti i file modificati od eliminati all'interno delle cartelle \WINDOWS o \WINNT. Quest'operazione ha il compito di rendere possibile la disinstallazione di una o più patch (o di un intero Service Pack) in un momento successivo. Se, dopo un periodo di prova, non riscontrate problemi - conclusa l'installazione di una o più patch - è possibile eliminare tutti i file di backup recuperando spazio prezioso sull'hard disk. Procedete nel seguente modo: andate nella cartella \WINDOWS o \WINNT e da qui attivate la visualizzazione delle cartelle e dei file nascosti (menù Strumen-ti/Opzioni cartella/Visualizzazione/ Visualizza cartelle e file nascosti). A questo punto dovreste veder comparire, nella cartella \WINDOWS o \WINNT, una lista più o meno folta di cartelle il cui nome comincia per "NtServicePackU-ninstall". Se dopo l'installazione delle varie patch, davvero non abbiate riscontrato alcun problema del PC, allora potete procedere con l'eliminazione di tutte le cartelle "NtServicePackUninstall". Per maggior sicurezza potreste masterizzare tutti i file su un CD ROM, e poi e-liminarli: in caso di emergenza potrete così agevolmente ripristinarli.

Problemi d'avvio del sistema (Windows 2000/XP)

Se all'avvio del sistema operativo incontriamo qualche problema, possiamo cer-care di risolverlo utilizzando la "console di ripristino d'emergenza". La funzione è accessibile e utilizzabile facendo il boot dal cd di windows, oppure installando-la direttamente sull'hard disk in modo da averla sempre disponibile tra le opzioni d'avvio. Per installarla clicchiamo su Start - Esegui e, nella casella apri digitiamo E:\i386\winnt32.exe /cmdcons, dove E indica il cdrom. Scegliamo OK e seguia-

26

mo le istruzioni visualizzate per completare l'installazione . Al termine riavviamo il pc.

Ripristino dei driver (Windows XP)

Se dopo aver installato un nuovo driver incontriamo dei problemi, con Windows XP è possibile recuperare la versione del driver utilizzata in precedenza. Apria-mo il Pannello di Controllo e facciamo click sull'icona Sistema. Nella finestra di dialogo portiamo in primo piano la scheda Hardware e facciamo click sul pulsan-te gestione periferiche. Nella finestra di dialogo aperta individuiamo la periferica su cui intervenire e diamo un doppio click con il mouse. Infine apriamo la scheda Driver e clicchiamo sul pulsante Ripristina driver.

I principali processi di sistema di Windows 2000/XP

Nome Descrizione Terminazione possibile

Ciclo i-del del sistema

Serve soltanto a visualizzare il tempo del processore che non vie-ne impegnato da altri thread e pro-cessi. Nel normale funzionamento, nel Task Manager segnala un uti-lizzo e tempo CPU notevole

NO

csrss

csrss.exe (client/server runtime subsystem). Gestisce i prompt dei comandi, la creazione e l'elimina-zione di thread, nonchè parti del-l'ambiente virtuale MS-DOS a 16bit. Appartiene alla modalità u-tente del sottosistema Win32 (mentre win32.sys fa parte della modalità kernel) e deve sempre essere attivo

NO

explorer

explorer.exe L'interfaccia utente di Windows, comprende componenti quali barra delle applicazioni, desktop, icone e simili. Può essere terminata, se necessario, senza ef-fetti negativi e poi riavviata.

SI

internat internat.exe Permette di scegliere il layout di tastiera in uso. Nella barra della applicazioni è visibile

SI

27

come simbolo della tastiera in uso (per esempio IT o EN) con il quale si cambia layout. Tramite il Pan-nello di controllo si può disattivare permanentemente, nel caso non serva

lsass

lsass.exe Server di autenticazione locale, gestisce le direttive di pro-tezione del protocollo ip (internet protocol) e avvia il driver di prote-zione IP. Genera il processo per la notifica dell'utente al sistema. Se l'autenticazione ha esito positivo viene generato un "biglietto" (to-ken) di accesso, una sorta di marca di riconoscimento, per l'utente che si è notificato. Gli altri processi avviati dall'utente ereditano questo token

NO

mstask mstask.exe Servizio di pianificazione delle attività, che avvia automatica-mente le operazioni programmate dal-l'utente.

NO

smss

smss.exe Manager delle sessioni, è il sottosistema per l'avvio delle sessioni utente. Il processo viene avviato dal thread di sistema e gestisce varie ope-razioni, tra cui l'avvio dei processi Winlogo e Win2 (csrss.exe , nonchè l'inizializzazione di alcune variabili di sistema. Quando l'smss riconsce che il winlogon o il csrss è terminato, chiude il sistema

NO

spoolsv spoolsv.exe E' la coda di stampa, ge-stisce tutte le operazioni di stampa e fax

NO

svchost

svchost.exe Questo processo serve da host per altri porcessi avviati da una dll, perciò spesso sono attive contem-poraneamente più istanze di svchost. L'utility Tlist, scaricabile dal sito Microsoft, permette di vedere quali processi accedono a svchost

NO

28

==°°== Quando apro il task manager vedo ben quattro processi SVCHOST.EXE in esecuzione, che occupano molta me-moria. Di che si tratta? Posso chiuder-li? Il file svchost.exe, che si trova gene-ralmente nella cartella c:\windows\system32 serve per verifi-care, all'avvio del computer, la por-zione del Registro di sistema relativa ai servizi, in modo da stabilire l'elenco di quelli da caricare. Gli elenchi e quindi i gruppi di servizi, possono es-sere diversi. Per visualizzare l'elenco dei servizi in esecuzione, fate clic su Start - Esegui e lanciate il comando cmd per aprire il prompt dei comandi, poi digitate: tasklist /svc seguito da invio per visua-lizzare la lista.

services

services.exe Processo di gestione dei servizi di sistema; avvio e chiusura nonchè tutte le altre interazioni con i servizi sono effettuati da questo pro-cesso

NO

system Processo che esegue i thread in moda-lità kernel.

NO

taskmgr taskmgr.exe Processo di gestione delle operazioni, visualizzato dalla finestra aperta

SI

winlogon

winlogon.exe Gestisce l'accesso e la disconnessione degli utenti ed è attivo come finestra di dialogo, Protezione di Windows quando un utente preme ctrl+alt+canc

NO

winmgmt

winmgmt.exe Un componente della gestioneclient di Windows; il processo si avvia con la connessione del primo client, oppure viene sempre eseguito quando applicazione di amministra-zione richiedere dei servizi. Sotto XP si avvia come client di un processo Svchost

NO

29

Disabilitare la segnalazione e l'invio di errori

Quando un programma si blocca e siamo costretti a chiuderlo in malo modo, ap-pare una finestra contente il messaggio che il programma si è chiuso e ci chiede se vogliamo segnalare a Microsoft l'errore. E' possibile da pannello di controllo rimuovere la segnalazione a Microsoft o eventualmente eliminare interamente la segnalazione. Andiamo in Pannello di Controllo e selezioniamo 'Sistema'. Andiamo nel tab 'A-vanzate' e clicchiamo su 'Segnalazione Errori'. A questo punto si aprirà una fine-stra che ci permetterà appunto di rimuovere la segnalazione. Velocizzare la navigazione tramite browser

La modifica al registro di configurazione (Start -> Esegui -> regedit) che stiamo per vedere permette di velocizzare la navigazione tramite browser. Di preciso la modifica agisce sul DNS e impedisce la richiesta superflua di informazioni du-rante la navigazione in uno stesso sito. Ecco il pezzo di registro da aggiungere. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters] "CacheHashTableBucketSize"=dword:00000001 "CacheHashTa-bleSize"=dword:00000180 "MaxCacheEntryTtlLimit"=dword:0000fa00 "Ma-xSOACacheEntryTtlLimit"=dword:0000012d

Non riesco ad accedere a Windows XP: un messaggio mi informa che

\WINDOWS\SYSTEM32\CONFIG\SYSTEM è corrotto!

Un messaggio di questo tipo, visualizzato durante la fase di boot del personal computer, indica che il registro di sistema di Windows risulta danneggiato. Per riuscire ad accedere nuovamente al sistema, l’unica soluzione consiste nel ripri-stinare l’ultima copia "sana" del registro di sistema stesso. Ciò comporterà la perdita di alcune informazioni necessarie per il corretto funzionamento di alcune applicazioni che dovranno quindi essere successivamente reinstallate. Inserite il CD ROM di Windows XP nel lettore e riavviate il sistema (accertan-dovi che il BIOS del vostro pc sia regolato per il boot da CD). A questo punto la-sciate che abbia inizio la prima parte della procedura di setup quindi premete In-vio per avviare l'installazione; F8 per accettare il contratto di licenza d'uso. La procedura di setup provvederà a ricercare la precedente vostra installazione di Windows XP. Premete R per avere accesso alla console di ripristino del sistema. Digitate, quindi, il comando cd \windows\system32\config poi, a seconda che l'errore visualizzato riguardi \WINDOWS\SYSTEM32\CONFIG\SYSTEM o \WINDOWS\SYSTEM32\CONFIG\SOFTWARE, digitate i comandi che seguo-no. Nel caso di "SYSTEM": ren system system.bad copy \windows\repair\system Nel caso di "SOFTWARE":

30

ren software software.bad copy \windows\repair\software Estraete, anche in questo caso, il CD d'installazione di Windows XP dal lettore e digitate il comando EXIT. Il sistema dovrebbe così avviarsi.

Non riesco a cancellare un file memorizzato su disco fisso: Windows XP se-

gnala che è in uso.

Questo tipo di problema in genere si verifica quando si tenta di cancellare dal di-sco fisso file di grosse dimensioni (generalmente filmati in formato MPEG, vi-deo e così via). Ciò è dovuto al fatto che Windows XP tenta sempre di effettuare l'anteprima di una qualunque immagine o di un qualsiasi file video: l’anteprima può richiedere diverso tempo per essere elaborata ed il file viene "bloccato" da parte del sistema. Per risolvere il problema portatevi al Prompt di DOS (Start, Tutti i programmi, Accessori, Prompt dei comandi) quindi premete CTRL+ALT+DEL per accedere al Task Manager di Windows, cliccate sulla scheda Processi, selezionate EXPLORER.EXE, infine cliccate sul pulsante Ter-mina processo. Nella finestra del prompt dei comandi portatevi nella cartella contenente i file che sembrano ineliminabili (servitevi dei comandi CD, CD.. e CD\) quindi digitate DEL nomedelfile.ext per eliminare (sostituendo a nomefi-le.ext, il file di cui de desiderate sbarazzarvi). Tornate ora al Task Manager, clic-cate sulla scheda Applicazioni quindi sul pulsante Nuova operazione.... Digitate explorer.exe e premete OK.

Migliorare le prestazioni caricando il nucleo di Windows in RAM

Questa modifica al registro di configurazione di Windows permette di caricare il core del sistema operativo invece che nel file di paging su disco direttamente in RAM in modo da velocizzare le operazioni. Questo modifica è consigliata solo per i computer con almeno 512MB di RAM. Andiamo nel registro di configurazione (Start -> Esegui -> regedit) e cerchiamo la seguente chiave: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] A questo punto creiamo (o modifichiamo nel caso sia già presente) "DisablePa-gingExecutive" e gli assegnamo come valore 1. Per tornare alle impostazioni o-riginali assegnamo il valore 0. Controllare i problemi allo spegnimento

Se dopo aver dato il comando di spegnimento (shutdown) il computer non si spegne automaticamente, ma al contrario viene fuori il messaggio "Ora è possibi-le spegnere il computer", con una semplice modifica al registro si può automatiz-zare l'operazione. Basta andare nel registro di configurazione (Start -> Esegui -> regedit) e cercare la chiave

31

[HKEY_CURRENT_USER\Control Panel\Desktop] Controllare la stringa "PowerOffActive" e settarla a 1.

Visualizzare le periferiche nascoste

Per visualizzare le periferiche installate sul sistema, anche se sono state tolte (ti-po le pen drive). Creare un file *.bat e inserirci: set devmgr_show_nonpresent_devices=1 start devmgmt.msc Una volta che si lancia il file, andare su Visualizza, Mostra periferiche nascoste. Compariranno tutte le periferiche che sono state installate e tolte e/o rimesse sul-la macchina

Copiare il sistema operativo su un nuovo Hard Disk

Dopo aver installato il nuovo disco, bisogna formattarlo creando una partizione primaria nella quale copiare il sistema operativo. Avviare il pc con il floppy di ripristino e da DOS scrivere: Xcopy32 c:*.* d: /h /i /c /k /e /r /y dove "c:" è la lettera che identifica il vecchio hard disk, e "d:" quella del nuovo. Dopo aver spento il computer, e aver impostato come primario in nuovo disco e come secondario quello vecchio, possiamo accenderlo e andare a formattare il vecchio disco. ATTENZIONE: si consiglia di effettuare copie di backup dei dati prima di ese-guire qualsiasi operazione di copia e/o formattazione.

Reinstallazione del sistema operativo Certe volte è necessario reinstallare il sistema operativo conservando le imposta-zioni già presenti. In Windows XP non è disponibile una voce che ci permetta di eseguire immediatamente questa operazione, ma possiamo farlo manualmente dalla riga di comando. Basta inserire il CD di Windows XP e lanciare il file WINNT32.EXE con il pa-rametro /unattend.

Ottimizzare la cache del processore Windows XP è stato progettato per sfruttare al massimo i processori dotati di 256KB di cache di secondo livello, ma se il nostro processore disponde di 512KB di cache? Premete Start -> Esegui... e digitate regedit per entrare nell'editor del registro di sistema. Fate sempre molta attenzione mentre apportate modifiche al registro di sistema! Cercate la seguente chiave: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Memory Management

32

Adesso create o modificate il valore DWORD chiamato SecondLevelDataCache e impostatelo a 200. E' necessario riavviare il sistema perchè i cambiamenti abbiano effetto

Disinstallare i componenti non necessari di Windows XP

Ci sono dei componenti (MSN Messenger, MSN Explorer e Giochi vari) che non possono essere disinstallati da Installazione applicazioni, Aggiungi/rimuovi. Per poter far apparire tali voci nel menu di Installazione/Rimozione applicazioni * Fare una copia di backup del file sysoc.inf (c:\windows\inf\sysoc.inf); * Aprire il file sysoc.inf. * Cancellare la sola parola HIDE da tutte le componenti che vorreste poter disin-stallare. * Salvare il file sysoc.inf e riavviare il PC. Adesso nel pannello Rimuovi/aggiungi applicazioni non necessarie potranno es-sere disinstallate comodamente.

Ripulire il computer dai files inutili Per ripulire il pc basta creare un file .bat e copiare queste righe: del c:\Documents and Settings\'Nome utente'\Cookies\*.* /s /q del c:\Documents and Settings\'Nome utente'\Impostazioni Locali\temp\*.* /s /q del c:\Documents and Settings\'Nome utente'\Impostazioni locali\Temporary Internet Files\*.* /s /q del c:\Documents and Settings\NetworkService\Cookies\*.* /s /q del c:\Documents and Settings\NetworkService\Impostazioni Locali\temp\*.* /s /q del c:\Documents and Settings\NetworkService\Impostazioni locali\Temporary Internet Files\*.* /s /q del c:\Documents and Settings\LocalService\Cookies\*.* /s /q del c:\Documents and Settings\LocalService\Impostazioni Locali\temp\*.* /s /q del c:\Documents and Settings\LocalService\Impostazioni locali\Temporary Internet Files\*.* /s /q del c:\Documents and Settings\Default User\Cookies\*.* /s /q del c:\Documents and Settings\Default User\Impostazioni Locali\temp\*.* /s /q del c:\Documents and Settings\Default User\Impostazioni locali\Temporary Internet Files\*.* /s /q del c:\Windows\Temp\*.* /s /q Al posto di 'Nome Utente' (apici inclusi) inseriamo il nome dell'utente con cui ci siamo loggati. Salviamo come pulizia_temporanei.bat il file. Se lo lanciamo, automaticamente, tutti file temporanei verranno rimossi.

33

Leggere i DVD con Windows Media Player

Con una piccola modifica è possibile leggere i DVD con Windows Media Player. La procedura è semplice: aprite il registro di sistema e cercate la chiave: HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer \Player\Settings Qui creiamo un nuovo valore stringa e la chiamiamo "EnableDVDUI"; diamogli come valore "yes". Riavviate il PC.

Nascondere i propri files

Volete conservare i vostri files segreti senza che sia possibile scovarli? Andate in una cartella di sistema, la migliore dovrebbe essere c:\windows\system che contiene altre sotto cartelle (ma se trovate delle directory piu' 'addentro' nel-l'albero e' anche meglio. Per es.: C:\WINDOWS\Application Data\Microsoft e sottocartelle). Eseguite dal menu' 'Start' il comando 'command.com' dopo avere reso attiva quella cartella. Sotto dos, create una cartella dandole un nome piu' tecnico possibile (es.: "NewDll") col seguente comando: md newdll prima di premere Invio, digitate ALT+0254. Dopo di che premete invio. Se andate su windows, vedrete la cartella ma vi risul-tera' inaccessibile. Avete creato una cartella che in pratica non esiste, non si puo' can-cellare, non si puo' rinominare. A meno di non andare sotto dos. In pratica potrete inserire li i vostri documenti, giochi e quant'altro. Se avete dei problemi con le installazioni di windows, vi bastera' rinominare la cartella prima dell'installazione, per renderla accessibile. E successivamente per renderla di nuovo inutilizzabile. Altri codici, oltre ALT+0254, sono: da 176 a 224, da 226 a 229... e ce ne sono tanti altri

Togliere le voci inutili dal menu "installazione applicazione"

Una delle domanda piu' quotate e' come faccio a togliere le voci dei programmi disinstallati da un pezzo nel menu Installazioni/Applicazioni del Pannello di Controllo? In questo modo: - se ricorrete al Registro di Sistema dovrete trovare la voce: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVer-sion \ Uninstall ed a questo punto dovete cliccare sulla cartella corrispondente al file da eliminare e premete CANC. Altro sistema piu' soft, e' quello di ricorrere a TweakUI.

34

Il programma in questione ha un'apposita voce (ADD/REMOVE) che vi permet-te di ottenere lo stesso risultato senza smanettare con il Registro di Sistema

Diritti di accesso alle cartelle (*********) Una delle caratteristiche delle partizioni delle partizioni NTFS era quella di im-postare, sulle singole cartelle presenti su di un computer in rete, criteri di prote-zione che assegnavano a ciascun utente i diritti di accesso e modifica dei dati. Anche Windows XP PROFESSIONAL permette di gestire i diritti di protezione sulle cartelle. Facendo clic su una cartella con il pulsante destro del mouse, appare un menu contestuale nel quale possiamo selezionare la voce Proprietà. Nella finestra di di-alogo che si apre, facciamo clic sulla scheda "Condivisione". Qui, nella sezione "Condivisione di rete e protezione" , possiamo condividere la cartella in rete ma non è possibile specificare con quali utente. Apriamo una cartella qualsiasi. Fac-ciamo clic sul menu "Strumenti - Opzioni cartella". Qui facciamo clic sulla sche-da "Visualizzazione". Nel riquadro sottostante, spuntiamo l'opzione "Utilizza condivisione file semplice (scelta consigliata)" e DISABILITIAMOLA. Faccia-mo di nuovo clic con il tasto destro su una cartella e, dal menu contestuale, sele-zioniamo "Proprietà". Facciamo clic sulla scheda Condivisione. Qui spuntiamo l'opzione "Condividi cartella" specificando un nome. Per impostare le autorizza-zioni per gli utenti che accedono alla cartella in rete, facciamo clic sul pulsante "Autorizzazioni". Possiamo specificare quali utenti possono accedere alla cartel-la e con quali diritti: "Controllo completo", "modifica" o "lettura"

Non mostrare il nome di un computer all'interno della finestra Risorse di rete

Un semplice tip permette di fare in modo che, all'interno della rete locale alla quale il vostro personal computer è collegato, il nome della vostra macchina non venga visualizzato nella finestra "Risorse di rete". Pur non essendo elencato all'interno di tale finestra, sarà comunque possibile - per chi conosce i nomi delle condivisioni attivate sul vostro computer - accedere manualmente a file, cartelle e risorse (in base ai diritti impostati). Per fare in modo che il vostro computer non venga mostrato nell'elenco visualiz-zato in "Risorse di rete", è sufficiente portarsi al prompt di MS DOS e digitare quanto segue: net config server /hidden:yes

Un suggerimento per condividere in rete locale una serie di cartelle

Se avete la necessità di configurare la condivisione di più cartelle all'interno del-la vostra rete locale, è possibile applicare il nostro semplice suggerimento. Cliccate su Start, Esegui... quindi digitate SHRPUBW.EXE e premete Invio (o cliccate sul pulsante OK). Vi verrà proposta una praticissima finestra di dialogo mediante la quale avrete la possibilità di:

35

- selezionare la cartella che desiderate condividere in rete locale (pulsante "Sfo-glia..."); - impostare un nome per la condivisione; - inserire una descrizione per la condivisione stessa; Cliccando sul pulsante "Avanti", potrete quindi configurare i diritti di accesso al-la condivisione che state creando. Sono disponibili permessi generici (Controllo completo per tutti gli utenti, controllo completo per gli amministratori e accesso in lettura per gli altri utenti, controllo completo per gli amministratori e nessun tipo di accesso per gli altri utenti) oltre alla possibilità di regolare a proprio pia-cimento le varie autorizzazioni (pulsante "Personalizza...").

Come Accedere a Windows senza dover immettere la password

Se siete sicuri che nel vostro PC di casa nessuno acceda, tranne voi, allora potre-te tranquillamente disabilitare l'accesso solo ad utenti munuti di User Name e Password. Non dovete fare altro che attivare il cosiddetto Autologon su Windows XP. Cliccate su Start - Esegui e digitate control userpasswords2. Si aprirà una finestra dal titolo "Account Utente". Disabilitando la voce 'Per utilizzare questo computer è necessario che l'utente immetta il nome e la password', succederà che al riavvio del computer non ci verrà più richiesto il login. Trucco testato su WindowsXP.

Alla scoperta dell'utility NETSH: tutte le informazioni su hardware e connes-

sioni di rete

Windows XP include una nuova utility - denominata NETSH - che permette di effettuare un'analisi del sistema in modo da recuperare informazioni dettagliate su hardware, software e connessioni di rete. Cliccate su Start, Esegui..., quindi digitate quanto segue: netsh diag gui Premete il tasto Invio o cliccate sul pulsante OK. Dopo qualche secondo di attesa vi verrà proposta l'interfaccia grafica per l'effet-tuazione dell'analisi del vostro sistema. Il link "Imposta opzioni di analisi" vi permetterà di ottenere la lista delle caratteristiche del sistema e della rete che possono essere controllate: spuntate quelle di vostro interesse. Per avviare il test cliccate sul link "Analizza sistema". I risultati del controllo po-tranno essere salvati, infine, se lo si desidera, su file di testo. Avevamo già incontrato in passato NETSH in un altro nostro tip dedicato al ri-pristino della configurazione iniziale del protocollo TCP/IP. Potete documentar-vi, in proposito, in questa pagina.

36

Risolvere i problemi che impediscono l'avvio del sistema operati-

vo -- Soluzioni pratiche per problemi comuni -- In passato abbiamo avuto già modo di presentare gli strumenti che consentono di risolvere i principali problemi di avvio di Windows XP. Per riparare un'installazione danneggiata di Windows XP, inserite il CD ROM di XP nel lettore e riavviate il sistema (accertandovi che il BIOS del vostro pc sia regolato per il boot da CD ROM). A questo punto lasciate che abbia inizio la prima parte della procedura di setup quindi premete Invio per avviare l'installa-zione; F8 per accettare il contratto di licenza d'uso. La procedura di setup prov-vederà a ricercare la precedente vostra installazione di Windows XP. Premete R per avviare la procedura di riparazione nell'installazione di Windows XP già presente sul sistema. I dati memorizzati sul disco fisso rimarranno infatti: verranno invece sovrascritti tutti i file di sistema potenzialmente danneggiati. Per questo motivo, dopo la riparazione del sistema si dovrà procedere nuova-mente all'applicazione di tutte le patch necessarie ricorrendo all'uso di Windows Update e/o di MBSA (ved. questa pagina e questi articoli). - Risolvere i problemi con NTLDR e NTDETECT.COM Come già illustratovi in passato, anche a noi è più volte accaduto che su sistema ad avvio multiplo (cioè con un boot manager che permetta di scegliere quale si-stema operativo eseguire di volta in volta all'avvio del personal computer) dopo aver, per esempio, reinstallato qualche software - o lo stesso boot manager (ad es. "BootMagic" di Powerquest) -, Windows 2000/XP si sia rifiutato di ripartire visualizzando immediatamente un messaggio simile al seguente: NTLDR man-cante. Impossibile avviare il sistema. Premere CTRL+ALT+DEL per riavviare. Come fare per risolvere un problema simile e permettere di nuovo l'avvio di Windows XP? Formattate da un sistema su cui è installato Windows XP un floppy disk (non copiatevi i file di avvio, eseguite semplicemente il comando FORMAT A:) quindi copiate dalla cartella /I386 del CD ROM di installazione di Windows XP i file NTLDR e NTDETECT.COM Create, sempre all'interno del disco floppy appena formattato, un file denominato BOOT.INI quindi copiatevi all'interno quanto segue: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(N)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(N)\WINDOWS="Microsoft Windows XP" /fastdetect Sostituite la lettera N con il numero della partizione contenente Windows XP, salvate, quindi riavviate il computer con il dischetto inserito (assicuratevi che Windows XP sia stato installato nella cartella \WINDOWS altrimenti specificate quella corretta).

37

Infine, copiate i tre file BOOT.INI, NTLDR e NTDETECT.COM nella cartella principale della partizione contenente Windows XP. Il sistema operativo dovreb-be così, d'ora in poi, essere avviato correttamente. In alternativa, avviate la Console di ripristino di Windows XP e digitate quanto segue: COPY X:\i386\NTLDR C\: COPY X:\i386\NTDETECT.COM C:\ - Quando NTOSKRNL sembra danneggiato o mancante Se in fase di avvio del sistema operativo viene visualizzato un messaggio che in-forma su un problema riscontrato sul file NTOSKRNL (file danneggiato o man-cante), ecco la soluzione per "far resuscitare" il vostro Windows XP. Inserite il CD ROM d'installazione di Windows XP nel lettore e riavviate il si-stema (accertandovi che il BIOS del vostro pc sia regolato per il boot da CD ROM).A questo punto lasciate che abbia inizio la prima parte della procedura di setup quindi premete Invio per avviare l'installazione; F8 per accettare il contrat-to di licenza d'uso. La procedura di setup provvederà a ricercare la precedente vostra installazione di Windows XP. Premete R per avviare la Console di ripristino del sistema (sarà necessario indi-care l'installazione di Windows che si desidera riparare e la password dell'ammi-nistratore).Una volta avviata la Console di ripristino (per maggiori informazioni, fate riferimento agli articoli seguenti: art.1; art.2 e art.3), digitate l'identificativo associato al lettore CD ROM ove è inserito il CD di Windows XP (es.: D:) quin-di, in sequenza, i seguenti comandi: CD i386 expand ntkrnlmp.ex_ C:\Windows\System32\ntoskrnl.exe Si è supposto che Windows XP sia installato in C:\Windows: se è stato installato in una cartella diversa, effettuate gli opportuni cambiamenti. Estraete il CD ROM di Windows XP dal lettore e digitate EXIT. - HAL.DLL danneggiato o mancante Se, in fase di avvio di Windows, ricevete un errore facente riferimento al file HAL.DLL è possibile che sia il file BOOT.INI ad essere danneggiato (ved. art.1 e art.2). Accedete alla Console di ripristino di Windows XP, così come spiegato in prece-denza, quindi al prompt dei comandi digitate: bootcfg /list Otterrete l'attuale configurazione del file BOOT.INI. Il comando bootcfg /rebuild vi consentirà di ricreare il file. - \WINDOWS\SYSTEM32\CONFIG danneggiato o mancante In questo caso, sempre dal prompt della Console di ripristino è necessario digita-re: cd \windows\system32\config A seconda che l'errore visualizzato riguardi \WINDOWS\SYSTEM32\CONFIG\SYSTEM o \WINDOWS\SYSTEM32\CONFIG\SOFTWARE, digitate quanto segue: 1. nel caso di "SYSTEM" digitate:

38

ren system system.bad copy \windows\repair\system 2. nel caso di "SOFTWARE": ren software software.bad copy \windows\repair\software Estraete, anche in questo caso, il CD d'installazione di Windows XP dal lettore e digitate il comando EXIT.

Batchrun : creare facilmente file batch con l’aiuto di un’interfaccia

In informatica, e in particolare nella terminologia di MS-DOS e Windows, un fi-

le batch o comando batch è un file di testo che contiene una sequenza di coman-

di per l’interprete di comandi del sistema (solitamente command.com o

cmd.exe). Il file batch viene eseguito dall’interprete dei comandi mandando in

esecuzione, secondo la sequenza specificata, i comandi elencati nel file. Il con-

cetto di file batch è analogo a quello di shell script per i sistemi Unix e infatti

può essere considerato un rudimentale linguaggio di scripting, anche se i co-

strutti a disposizione sono veramente pochi: if, for e goto

Se volete, quindi, l’utilità è ben presto compresa, ma ci si chiede : come si crea un file batch? Purtroppo pochi hanno conoscenza adeguata dei vari comandi, ma non è il solo modo per crearli.Esiste, infatti, una utility davvero comoda, Ba-tchrun, che permette di creare files batch utilizzando una comoda interfaccia grafica.Con l’utilizzo dei files batch .brs generati ed eseguibili solo con Ba-tchrun, è possibile eseguire qualsiasi programma, comando o connessione dialup desiderata con un semplice click del mouse. Per ogni processo è possibile settare le modalità di esecuzione quali la priorità, l’avvio (normale, minimizzato, massimizzato), il ritardo nell’esecuzioni. I comandi attualmente supportati sono : Copy, Rename, Makedir, Delete, End Process, Kill, Deltree e Text to clipboard. I files batch creati con Batchrun pos-sono essere eseguiti da esplora risorse o inseriti in Esecuzione Automatica piut-tosto che iconizzati sul desktop.

39

HijackThis HijackThis è senza dubbio un tool indispensabile per la corretta manutenzio-ne del vostro pc. Con un semplice click vengono infatti rilevate tutte le imposta-zioni e i settaggi del registro di sistema, dell'esecuzione automatica e dei pro-grammi nascosti, il tutto viene salvato in un file di log. Questo software non si limita solamente alla scansione e al rilevamento di un codice dannoso, ma vi mette a disposizione una pratica interfaccia, dalla quale è possibile rimuovere le voci sospette. COSA FA Controlla le chiavi di esecuzione più frequentemente utilizzate dagli spyware e vi aiuta a rimuoverle creando automaticamente backup di sicurezza (rimuovere per sbaglio qualcosa non è un dramma se si ha una copia! ;) ). Questa procedura NON cancella i file maligni dal vostro PC, ma evita che questi vengano lanciati al successivo riavvio. Se gli effetti nocivi saranno spariti (l'homepage è nuova-mente re-impostabile, oppure la pagina di ricerca, o quel dialer fastidioso non appare più) allora avrete la certezza matematica che i file che quelle voci del re-gistro facevano partire erano nocivi e li potete cestinare. COME SI INSTALLA Non è una vera e propria installazione: si apre il file zip, si estrae il file che c'è dentro in una cartella e collocate Hijackthis.exe in una nuova cartella creata ap-positamente in C:\ o C:\programmi. ***Nota***Se lasciate l'eseguibile nei file temp o sul desktop , il backup delle

voci rimosse non verrà effettuato . Se si salveranno delle informazioni nel registro (come annotare le chiavi sicure perché non vengano segnalate insieme a quelle sospette) queste poi si cancelle-ranno con un click (vedi ultima parte). La sua poca invasività e le sue piccole dimensioni lo rendono trasportabile su altri PC semplicemente mettendolo su CD, floppy, chiavetta USB ecc. COME SI USA Avviato il programma ci apparirà un avviso (solo la prima volta): ci dice che il software in questione ci proporrà TUTTE le chiavi di avvio di Windows, sia le buone, che le sospette, che le cattive, dovremo stare attenti a quello che facciamo e imparare a capire cosa è giusto eliminare. Tolto il messaggio ci troveremo in una finestra con vari pulsanti. Nella maggior-naza dei casi useremo solo i primi due: Do a system scan and save a logfile: fa una scansione e ne salva il risultato in un file chiamato hijackthis.log che verrà posizionato nella stessa cartella dove

40

abbiamo messo il programma. È utile se vogliamo far vedere l'analisi del softeare a qualcuno via mail o incollandone il testo in un forum Do a system scan only: serve se sappiamo già dove mettere le mani o comunque si sono scoperte le voci da rimuovere. In pratica la lista delle chiavi viene diret-tamente mostrata su schermo, pronta per essere modificata. Come dicevamo prima, in entrami i casi verranno mostrate TUTTE le chiavi che avviano file, sia pericolosi che non. Ora che avete davanti agli occhi la lista ve-diamo cosa fare. - Come faccio a capire quali voci NON sono pericolose? Semplice, cercando su Google i loro nomi . Un sito che però può facilitare molto la vita è http://www.liutilities.com/products/wintaskspro/processlibrary/ Se nelle sue pagine non trovate il file sospetto al 90% NON è roba di sistema. Ma non è detto che sia uno spyware! Un'altro indizio è la descrizione dopo la si-gla BHO. Se vedete scritto BHO (no name) non è un buon segno. - Ma la lista è troppo lunga! Già, sul PC girano più applicazioni di quanto si pensi! Le uniche cose che potete fare sono: Chiudere i programmi in esecuzione e quelli vicino all'icona del volume Windows, in basso a destra, PRIMA di usare HijackThis. Selezionare le voci che sapete sicure (=innocue) e poi premere Add checked to ignorelist. Se ci ripensate andate su Config... > Ignore list. - Forse ho trovato la chiave dello spyware: e ora? Ora la si seleziona premendo nel quadratino a sinistra che ha, e si preme Fix che-cked. Il backup della chiave è creato in automatico, perché la voce Make ba-ckups before fixing items in Config... > Main è selezionata per impostazione predefinita (controllate ;) ). Ora resettate il PC e vedete se il sintomo che vi ha fatto accorgere dello spyware (homepage non personalizzabile per es.) è sparito. - È tutto come prima! E ora? Beh, andate su Config... Backups > Restore, rimettete quanto avevate tolto, ag-giungete quelle voci alla Ignore list e proseguite. Il metodo empirico ( a tentativi) è l'unico e il migliore in questi casi. - Il problema è sparito! Quindi? Quindi i file che erano avviati da quelle chiavi (di cui avete una copia in backup

41

ed è bene conservarla) erano quelli nocivi. Andate nella cartelle in cui si trovano e cancellateli, ma anche di quelli fatevene una copia di sicurezza ; - Non ci riesco, è troppo difficile, non ho capito. Che faccio? Aprte il programma e premete Do a system scan and save a logfile. Ora avete 2 alternative: Incollare il contenuto in questa pagina http://hijackthis.de/index.php?langselect=italian e affidarsi all'analisi automatica: non è infallibile ma restringe il numero di voci sospette Incollare il conntenuto sul forum http://www.pc-facile.com/forum/index.php In entrambi i casi cercate di eliminare dall'elenco quante più voci possibili, sia chiudendo i programmi attivi, sia cancellando le chiavi che si ritengono sicure.

42

ETI

Concetti base delle reti : PORTE E PROTOCOLLI

Componenti

Per comprendere la trattazione delle porte e i protocolli, è necessario familiariz-zare con le icone che rappresentano i dispositivi più comuni negli schemi di rete. Essi sono:

Topologie

Con questi dispositivi possono essere realizzate reti locali o LAN (Local Area Network). In una LAN i computer possono condividere risorse quali dischi, stampanti e connessioni ad Internet, e un amministratore può controllare come

R

43

vengono condivise tali risorse.

In una topologia a bus, tutti i computer sono connessi ad un singolo mezzo tra-smissivo e ogni computer può comunicare direttamente con gli altri.

Nella configurazione ad anello ogni computer è connesso al successivo e l'ultimo con il primo; ogni computer può comunicare direttamente solo con quelli a lui adiacenti.

In una topologia a stella nessuno dei computer è connesso direttamente agli altri. Al contrario essi sono connessi attraverso un punto centrale e il dispositivo cen-trale è responsabile di inoltrare le informazioni da un computer ad un altro. Se più punti centrali sono connessi tra loro, si ottiene una rete a stella estesa.

In una topologia a stella o a stella estesa, tutti i punti centrali sono paritetici, cioè scambiano informazioni su basi uguali. Se, tuttavia, due reti a stella o a stella e-stesa vengono connesse attraverso un punto centrale che controlla o limita lo scambio di informazioni tra le due reti, si è di fronte ad una singola topologia ge-rarchica.

Modello TCP/IP

Introduzione

Il TCP/IP è stato sviluppato dal DoD (Department of Defense) degli Stati Uniti dalla DARPA (Defense Advanced Research Project Agency) negli anni 1970. Il TCP/IP è stato progettato come standard aperto uti-lizzabile da chiunque per connettere i computer tra loro e scambiare informazioni tra loro. E' diventato il protocollo di base di Internet.

Strati o Livelli

Il modello TCP/IP definisce 4 livelli totalmente indi-pendenti in cui dividere il processo di comunicazione tra due dispositivi. I livelli attraverso cui transita l'in-formazione scambiata tra due dispositivi sono:

44

Applicazione

Lo strato Applicazione (Application) è il livello più vicino all'utente finale. E' il livello deputato a tradurre i dati dalle applicazioni in informazioni che possono essere inviate attraverso la rete. Le funzioni di questo livello sono:

-Rappresentazione

-Codifica

-Controllo del Dialogo

-Gestione Applicazione.

Trasporto

Il livello di Trasporto (Transport) stabilisce, mantiene e termina circuiti virtuali per il trasferimento delle informazioni. Fornisce meccanismi di controllo di flus-so, consente il broadcasting e fornisce meccanismi per la rilevazione e correzione degli errori. L'informazione che arriva a questo livello dal livello applicazione è divisa in segmenti diversi. L'informazione che giunge al livello di trasporto dal livello Internet è inviata al livello applicazione attraverso porte.

Le funzioni di base di questo livello sono: -Affidabilità -Controllo di flusso -Correzione degli errori -Broadcasting

Internet

Questo livello divide i segmenti del livello di trasporto in pacchetti e li invia at-traverso le reti che formano Internet. Usa indirizzi IP (Internet Protocol) per de-terminare l'ubicazione del destinatario. Non assicura l'affidabilità della connes-sione, perchè è già compito del livello di trasporto, ma è responsabile di selezio-nare il cammino migliore tra il nodo sorgente e quello destinatario.

Accesso alla rete

Questo livello è deputato ad inviare informazioni sia al livello LAN che al livello fisico. Trasforma tutte le informazioni che giungono dai livelli superiori in in-formazioni elementari (bit) e le invia alla locazione corretta. A questo livello, la destinazione delle informazioni è determinata dall'indirizzo MAC (Media Access Control) del dispositivo destinatario.

45

Protocolli e porte

Per poter inviare informazioni tra due dispositivi, entrambi devono utilizzare lo stesso linguaggio. Questo linguaggio è chiamato protocollo.

I protocolli che compaiono nel livello applicazione del TCP/IP sono:

-File Transfer Protocol (FTP)-Hypertext Transfer Protocol (HTTP)-Simple Mail Transfer Protocol (SMTP)-Domain Name Service (DNS)-Trivial File Transfer Protocol (TFTP)

L'FTP o file transfer protocol è utilizzato per la trasmissione di files tra due di-spositivi. Usa TCP per creare una connessione virtuale per il controllo dell'in-formazione, poi crea un'altra connessione utilizzata per il trasferimento dei dati. Le porte più comunemente usate sono la 20 e la 21.

HTTP o hypertext transfer protocol è utilizzato per tradurre le informazioni in pagine web. Questa informazione viene distribuita in maniera analoga a quella utilizzata dalla posta elettronica. La porta più comunemente utilizzata è la 80.

SMTP o simple mail transfer protocol è un servizio di posta basato sul modello FTP. Trasferisce posta elettronica tra due sistemi e fornisce una notifica della po-sta in arrivo. La porta più comunemente utilizzata è la 25.

DNS o domain name service fornisce un meccanismo per associare ad un nome di dominio un indirizzo IP. La porta più comunemente utilizzata è la 53.

TFTP o trivial file transfer protocol ha la stessa funzione di FTP ma usa UDP invece che TCP. Questo fornisce maggior velocità, ma minore sicurezza e affi-dabilità. La porta più comunemente utilizzata è la 69.

I protocolli del livello di trasporto sono:

-Transport Control Protocol (TCP) -User Datagram Protocol (UDP)

Ci sono due protocolli che possono essere usati dal livello di trasporto per conse-gnare segmenti di informazioni.

Il TCP o transmission control protocol stabilisce una connessione logica tra i punti finali della rete. Sincronizza e regola il traffico con un meccanismo noto come "Three Way Handshake". Nel “Three Way Handshake” il sistema sorgente invia un pacchetto iniziale noto come SYN al sistema destinatario. Il sistema de-stinatario invia un pacchetto di conferma detto SYN/ACK (acknowledge).

46

Infine il dispositivo sorgente invia un pacchetto chiamato ACK, che è una con-ferma della conferma. A questo punto, entrambi i dispositivi sorgente e destina-tario hanno stabilito che esiste una connessione tra loro, ed entrambi sono pronti a inviare e ricevere dati.

UDP o user datagram protocol è un protocollo di trasporto non basato su una connessione. In questo caso il sistema sorgente invia i pacchetti senza avvisare il destinatario del loro invio. E' quindi delegata al dispositivo destinatario l'accetta-zione o meno dei pacchetti.

I protocolli del livello Internet sono:

-Internet Protocol (IP) Un protocollo frequentemente usato dal livello di acces-so alla rete Ethernet

IP o Internet Protocol è un protocollo universale che consente a due computer di comunicare attraverso qualunque rete in qualunque momento. Come UDP, è senza connessione, poichè non stabilisce una connessione con il computer remo-to. Al contrario è ciò che si può definire il miglior servizio possibile, nel senso che fa tutto il possibile per assicurare il corretto funzionamento, ma non garanti-sce l'affidabilità. Il protocollo Internet determina il formato delle intestazioni dei pacchetti, incluso l'indirizzo IP dei sistemi sorgente e destinazione.

Indirizzi IP

Gli indirizzi IP sono gli identificatori utilizzati per distinguere i dispositivi che sono connessi ad una rete. Ogni dispositivo deve avere un indirizzo IP differente, così non ci sono problemi di errata identificazione all'interno della rete. Un indi-rizzo IP consiste in 32 bit divisi in 4 ottetti separati da punti. Parte dell'indirizzo IP identifica la rete e il resto dell'indirizzo IP identifica il singolo computer all'in-terno della rete.

47

Esistono sia indirizzi IP privati che pubblici. Gli indirizzi IP privati sono usati da reti private che non hanno connessioni con le reti esterne. Gli indirizzi IP all'in-terno di una rete privata non devono essere duplicati, mentre computer presenti su due reti private diverse – ma non connesse – possono avere IP duplicati. Gli indirizzi IP che sono stati definiti dalla IANA, Internet Assigned Numbers Au-thority, come disponibili per reti private sono:

da 10.0.0.0 fino a 10.255.255.255

da 172.16.0.0 fino a 172.31.255.255

da 192.168.0.0. fino a 192.168.255.255

Gli indirizzi IP sono suddivisi in classi in base alla porzione dell'indirizzo che viene utilizzata per identificare la rete e a quella utilizzata per identificare il sin-golo computer.

48

A seconda della dimensione assegnata ad ogni parte, possono essere definiti più dispositivi all'interno della rete o possono essere definite più reti. Le classi esi-stenti sono:

-Classe A: il primo bit è sempre zero, di conseguenza la classe comprende gli in-dirizzi compresi tra 0.0.0.0 e 126.255.255.255. Nota: gli indirizzi del tipo

127.x.x.x sono riservati per i servizi di loopback o localhost.

-Classe B: i primi due bit del primo ottetto sono '10', di conseguenza la classe comprende gli indirizzi compresi tra 128.0.0.0 e 191.255.255.255.

-Classe C: i primi tre bit del primo ottetto sono '110', di conseguenza la classe comprende gli indirizzi compresi tra 192.0.0.0 e 223.255.255.255

-Classe D: i primi 4 bit del primo ottetto sono '1110', di conseguenza questa clas-se comprende gli indirizzi compresi tra 224.0.0.0 e 239.255.255.255. Questi indi-rizzi sono riservati per implementazioni di multicast di gruppo.

-Gli indirizzi restanti sono usati per sperimentazioni o per usi futuri.

E' necessario un meccanismo per distinguere tra la parte dell'indirizzo usata per identificare la rete e la parte usata per identificare il singolo dispositivo. Per que-sto viene usata una maschera di bit. Nella maschera la parte costituita da bit '1' rappresenta la parte contenente l'identificativo della rete e quella costituita da '0' la parte che identifica il singolo dispositivo. Quindi per identificare un dispositi-vo oltre all'indirizzo IP è necessario specificare una maschera di rete (network mask):

IP: 172.16.1.20Mask: 255.255.255.0

Gli indirizzi IP 127.x.x.x sono riservati per essere usati come loopback o indiriz-zi del sistema locale, essi cioè si riferiscono direttamente al computer locale. O-gni computer ha un indirizzo locale 127.0.0.1, quindi quell'indirizzo non può es-sere usato per identificare dispositivi diversi. Ci sono anche altri indirizzi che non possono essere usati. Questi sono l'indirizzo di rete (network address ) e quello di broadcast.

L'indirizzo di rete è un indirizzo in cui la parte che normalmente identifica il dispositivo è tutti zero. Questo indirizzo non può essere usato, perchè identifica una rete e non può mai essere usato per identificare un dispositivo specifico.

49

L'indirizzo di broadcast è un indirizzo in cui la parte dell'indirizzo che nor-malmente identifica il dispositivo è tutto 1. Questo indirizzo non può essere usa-to per identificare un dispositivo specifico, perchè è usato per inviare informa-zioni a tutti i computer che appartengono ad una rete specifica.

IP: 172.16.1.255Mask: 255.255.255.0

Porte

Sia TCP che UDP utilizzano porte per scambiare informazioni con applicazioni. Una porta è un'estensione di un indirizzo, esattamente come quando si aggiunge il numero di un appartamento ad un indirizzo. Una lettera con un indirizzo arri-verà all'edificio corretto, ma senza il numero dell'appartamento non verrà conse-gnata al destinatario corretto. Le porte lavorano in modo simile. Un pacchetto può essere consegnato all'indirizzo IP corretto, ma senza la porta associata non vi è modo di determinare quale applicazione dovrebbe agire sul pacchetto.

Una volta definite le porte i tipi diversi di informazioni inviate ad un indirizzo IP possono essere inviate all'applicazione appropriata. Utilizzando le porte un servi-zio in esecuzione su un computer remoto può determinare che tipo di informa-zione sia richiesta dal client locale, può determinare il protocollo richiesto per inviare quell'informazione e mantenere comunicazioni simultaneamente con un numero di client diversi.

Ad esempio, se un computer locale cercasse di connettersi al sito web www.osstmm.org, il cui indirizzo IP è 62.80.122.203, con un server web in ese-cuzione sulla porta 80, il computer locale si connetterebbe a quello remoto utiliz-zando l'indirizzo (socket address ):

62.80.122.203:80

Per mantenere un livello di standardizzazione tra le porte più comunemente usa-te, la IANA ha stabilito che le porte numerate da 0 a 1024 sono usate per servizi comuni. Le porte rimanenti -fino a 65535 – sono usate per allocazioni dinamiche

50

o servizi particolari. Le porte più comunemente utilizzate – come assegnate da IANA – sono elencate nella tabella seguente.

Decimals

Port Assignments Keywords Description

0 Reserved

1-4 Unassigned

5 rje Remote Job Entry

7 echo Echo

9 discard Discard

11 systat Active Users

13 daytime Daytime

15 netstat Who is Up or NETSTAT

17 qotd Quote of the Day

19 chargen Character Generator

20 ftp-data File Transfer [Default Data]

21 ftp File Transfer [Control]

22 ssh SSH Remote Login Protocol

23 telnet Telnet

25 smtp Simple Mail Transfer

37 time Time

39 rlp Resource Location Protocol

42 nameserver Host Name Server

Port Assignments Decimals Keywords Description

43 nicname Who Is

53 domain Domain Name Server

51

67 bootps Bootstrap Protocol Server

68 bootpc Bootstrap Protocol Client

69 tftp Trivial File Transfer

70 gopher Gopher

75 any private dial out service

77 any private RJE service

79 finger Finger

80 www-http World Wide Web HTTP

95 supdup SUPDUP

101 hostname NIC Host Name Server

102 iso-tsap ISO-TSAP Class 0

110 pop3 Post Office Protocol - Version 3

113 auth Authentication Service

117 uucp-path UUCP Path Service

119 nntp Network News Transfer Protocol

123 ntp Network Time Protocol

137 netbios-ns NETBIOS Name Service

138 netbios-dgm NETBIOS Datagram Service

139 netbios-ssn NETBIOS Session Service

140-159 Unassigned

160-223 Reserved

Incapsulamento

Quando un'informazione – un messaggio e-mail ad esempio – viene inviato da un computer ad un altro, è soggetto ad una serie di trasformazioni. Il livello ap-plicazione genera i dati che vengono inviati al livello di trasporto. Il livello di trasporto prende queste informazioni e vi aggiunge un'intestazione. L'intestazio-ne consiste in informazioni quali l'indirizzo IP dei computer sorgente e destinata-rio, che specifica cosa debba essere fatto ai dati per inviarli alla corretta destina-zione. Il livello successivo aggiunge un'altra intestazione e così via. Questa pro-cedura ricorsiva è nota come incapsulamento.

52

Ogni livello dopo il primo incapsula i dati del livello precedente fino a che si ar-riva al livello finale in cui viene effettuata la reale trasmissione dei dati. La figu-ra seguente mostra in forma grafica l'incapsulamento:

Quando l'informazione incapsulata giunge alla sua destinazione deve essere deincapsulata. Come ogni livello riceve informazioni da quello precedente, que-sto rimuove le informazioni non necessarie contenute nell'intestazione costruita dal livello precedente.

53

WIRELESS LAN Una wireless local area network ,WLan, è un sistema di comunicazione flessibi-le e implementabile nella sua estensione , o alternativo ,ad una rete fissa ( wired Lan).In una Wlan viene utilizzata una tecnologia di radio frequenza RF per la trasmissione e la ricezione dei dati, minimizzando la necessità di connessioni via cavo (wired), favorendo così una discreta mobiltà.

Una rete wireless può essere un'estensione di una normale rete cablata, suppor-tando tramite un acces point, la connessione a dispositivi mobili e a dispositivi

fissi (pc).In generale le architetture per sistemi wireless sono basate due tipologie di dispositivi :

• Access Point ( Ap) • Wireless Terminal (WT)

Gli access point sono bridge che collegano la sottorete wireless con quella ca-blata, come abbiamo detto, mentre i wireless terminal sono dei dispostivi che usufruiscono dei servizi di rete. Gli AP possono essere implementati in hardware

54

(esistono dei dispositivi dedicati) che in software appoggiandosi per esempio ad un pc, o notebook dotato sia dell’interfaccia wireless sia di una scheda ethernet. I WT possono essere qualsiasi tipo di dispositivo come per esempio notebbok, palmari, pda, cellulari, o apparecchiature che interfacciano standard IEEE 802.11, o sistemi consumer su tecnologia Bluetooth.

Una WLan consente una velocità massima di trasmissione dati (

bit rate) pari a 11Mbps al di sotto di una rete

wired ma superiore al-le possibilità consenti-ta dai terminali mobili comuni.Tra i possibili vantaggi offerti da una Wlan, possiamo elen-

care :

• installazione veloce e sem-plice , rispetto alla stesura

dei cavi,canaline... di una rete cablata • installazione flessibile • mobilità con un accesso delle informazioni real time ovunque ci si trova

all'interno del network wireless • scalabilità, consentendo una variegata tipologia/possibilità di configura-

zione, utilizzando specifiche applicazioni e installazioni • possibile riduzione dei costi in certe situazioni, o a lungo termine

La trasmissione e ricezione wireless (Tx / RX) opera sui 2.4 GHz, con potenze di trasmissione dai 10-20 mW fino ai 100mW.

55

La copertura di una cella radio varia da 20 metri a oltre 300 metri, in relazione alla tipologia degli ambienti, con una possibilità di collegamento da 10 a 250 u-tenze per Ap, in funzione del modello e della tecnolgia impiegata.

Gli standard di comunicazione usati consentono ad un WT di inviare via radio all’Ap i dati che poi instraderà , verso un'eventuale sottorete cablata o ad un’altro WT. Il protocollo IEEE 802.11 e le sue applicazioni

Agli inizi degli anni novanta fu approvato lo standard IEEE 802.11 che dettava le specifiche a livello fisico e datalink per l’implementazione di una rete LAN wireless.Tale standard consentiva un data rate di 1 o 2 Mbps usando la tecnolo-gia basata su onde radio nella banda 2.4 GHz o su raggi infrarossi. La limitata velocità dello standard determinò uno scarso successo e diffusione. L'evoluzione di tale tecnologia diversi anni dopo ,1997, portò alla sua evoluzione IEEE

802.11b ( denominato anche Wi-Fi ) consentendo una trasmissione dai 5.5 ai 11 Mbit/s oltre a mantenere la com-patibilità con lo standard precedente. Questo standard ha avuto e sta avendo successo perché molte industrie leader nel settore Nokia, 3Com, Apple, Cisco System, Intersil,Compaq, IBM,... lo hanno riconosciuto e hanno fondato nel 1999 il WECA (Wireless Ethernet Compatibility Alliance) con l' obietti-vo della certificazione, dell' interope-

rabilità e compatibilità tra i prodotti.

56

Il protocollo IEEE 802.11b consente :

• di poter variare la velocità di trasmissione dati per adattarsi al canale • un data rate fino a 11 Mbps • la possibilità di scelta automatica della banda di trasmissione meno oc-

cupata • la possibilità di scelta automatica dell'access point in funzione della po-

tenza del segnale e del traffico di rete • di creare un numero arbitrario di celle parzialmente sovrapposte permet-

tendo il roaming in modo del tutto trasparente.

Glossario Wi-Fi 802.11 802.11 è lo standard IEEE originario del ’97 per le reti wireless, ma identifica anche la famiglia di standard 802.11x che si è andata sviluppando nel corso degli anni I principali standard IEEE per le reti wireless 802.11 Lo standard WLAN originale del '97, per velocità massima di 1 o 2 Mbps nella banda dei 2,4 GHz. Prevede che lo strato fisico trasmetta con i metodi DSSS (spettro distribuito con sequenza diretta) e FHSS (spettro distribuito con salti di frequenza).Nessun prodotto fu realizzato con questo standard. 802.11b Lo standard del '99 per trasmissione DSSS fino a 11 Mbps a 2,4 GHz.Sfrutta un numero massimo di 14 canali (13 in Europa) distanti 5 MHz e larghi 22 MHz. La modulazione CCK ottimizza il rappor to segnale/ rumore. 802.11a Uno standard del '99 diffuso in America; sfrutta la banda dei 5 GHz per-trasmissioni DSSS fino a 54 Mbps con modulazione OFDM.Non è compatibile con l''802.11b. 802.11g Standard del 2002 che sfrutta la banda dei 2,4 GHz per trasmissioni DSSS fino a 54 Mbps con modulazione OFDM, CCK (per compatibilità 802.11b) e PBCC come opzione. 802.11e Introduce la funzione QOS (quality of service) necessaria per le applica-zioni multimediali (come voice su WLAN). 802.11f Migliora l'interoperabilità tra access point di produttori diversi. 802.11h Consente l'uso in Europa delle WLAN a 5 GHz tramite le funzioni di controllo della potenza e selezione dinamica della frequenza, per evitare inter fe-renze con le trasmissioni satellitari. 802.11i Uno standard di sicurezza che ingloba le funzioni dello standard 802.1x e aggiunge funzioni di sicurezza, cifratura AES e distribuzione dinamica delle chiavi con il protocollo TKIP. Il WPA è un sottoinsieme dell'802.11i.

57

802.11n Standard in preparazione che offrirà velocità effettive di 100-320 Mbps,mentre le velocità degli standard precedenti, misurate allo strato fisico,in pratica vanno più che dimezzate. Si prevede che l'802.11n usi la banda dei 5 GHz. Ad-Hoc Mode La modalità wireless Ad-Hoc(detta anche paritetica o senza gestione) fornisce una connessione diretta tra un piccolo numero di stazioni,senza passare attraver-so un access point. AP, Access Point Equivale a un hub che interconnette un gruppo di stazioni wireless e funge da bridge tra la sottorete wireleess e un’eventuale sottorete cablata. BSS Basic Service Set, una rete wireless composta di un access point e di stazioni Bridge Un dispositivo per collegare due o più sottoreti in un’unica rete per dare visibilità reciproca a tutti i nodi relativi CSMA/CA Carrier Sense Multiple Access/Collision Avoidance(accesso multiplo con rile-vamento della por tante e prevenzione delle collisioni), il sistema di accesso al mezzo fisico utilizzato nelle reti wireless 802.11 DS Distribution System, un sistema per la connessione tra stazioni appar tenenti a diversi BSS, che prevde il roaming tra diverse reti wireless ESS Extended Service Set, l’insieme di un sistema di distribuzione(DS) e dei diversi BSS interconnessi Gateway Un dispositivo che funge da traduttore tra due sistemi che non usano gli stessi protocolli di comunicazione, formato dei dati, linguaggi e architetture IBSS Independent Basic Service Set, una piccola rete wireless in modalità ad-hoc, senza access point Infrastructure Mode La modalità con infrastruttura, a differenza di quella Ad-Hoc,prevede che le sta-zioni si connettano tra loro attraverso un access point, che può essere connesso a una rete fissa e ad altri access point IP address Indirizzo IP, un numero di 32 bit(destinato in futuro ad essere di128 bit) che i-dentifica ogni dispositivo collegato a una rete TCP/IP come Internet

58

LAN Local Area Network o rete locale MAC Medium Access Control, il sottostrato dello strato Data Link del modello I-SO/OSI collocato sopra lo strato fisico e identificato da un numero unico di 48 bit Mbps Megabit per secondo, la misura della velocità della connessione, solitamente mi-surata allo strato fisico e quindi teorica (quella reale è circa un terzo di quella massima) Peer to peer Riferito a una rete wireless,indica una piccola rete di stazioni connesse diretta-mente in modalità ad-hoc Router Un dispositivo per collegare tra loro reti anche eterogenee, come Internet e una rete wireless SSID Service Set Identifier, l’identificatore di una rete wireless, paragonabile al nome del gruppo di lavoro di una reteWindows Stazione Un computer o altro dispositivo comprendente un’interfaccia per la connessione wireless a un access point o ad altre stazioni WEP Wired Equivalent Privacy, la tecnologia di base per garantire un certo livello di sicurezza alla connessione e alla trasmissione su una rete wireless;dimostratosi più vulnerabile del previsto, è stato affiancato da tecnologie più efficaci, come il WPA Wi-Fi Wireless Fidelity (abbreviato anche WiFi), un consorzio che garantisce l’interoperabilità dei prodotti wireless WAN Wide Area Network, o rete geografica WLAN Wireless LAN, rete locale senza fili WPA WiFi Protected Access, una tecnologia di sicurezza (subset dello standard 802.11i) che utilizza il protocollo TKIP(Temporal Key Integrity Protocol)per una cifratura dei dati a prova di intercettazione

59

Nove modi per proteggere la rete wireless

Sono sempre più diffuse le reti wireless domestiche. La comodità di girare per casa (o in ufficio) col portatile e la mancanza dei tremendi grovigli di cavi che inevitabilmente si vengono a creare nei luoghi dove sono presenti le classi-che reti ethernet sono due argomenti fortissimi a favore del networking wireless. Naturalmente oltre a questi grandi benefici ci sono anche dei pro-blemi: le reti wireless sono più vulnerabili a intrusioni e intercettazioni.Oggi che la pirateria ha smesso di essere un hobby ed è diventato un affare per le grosse organizzazioni criminali, la protezione delle reti di computer è una necessità primaria per gli utenti. E’ dunque necessario prendere delle precauzioni rimanendo consa-

pevoli che non si potrà ottenere la sicurezza assoluta. Infatti nella sicurezza informatica bisogna valutare diversi fattori: cosa difendere e da chi; la motivazione degli eventuali pirati; il bilanciamento tra funzionalità e sicurezza. L’idea di base è quella di creare una serie di barriere che se prese singolarmente possono non spaventare il pirata, ma considerate nel loro insieme possono farlo desistere e indirizzarlo verso obiettivi più “morbidi”.

Nella difesa di Lan Wireless oltre alle minacce convenzionali dobbiamo fronteg-giare anche altri pericoli e tener conto di altri fattori che possiamo indicare in 9 punti:

1. Cambiare il default login del router Un accorgimento che può apparire banale (ma non lo è): cambiare i parametri di login di default del Router / Access Point. Infatti la prima cosa che un pirata fa è controllare le liste di password di default e verificare se è stata modificata. La-sciare la password standard è un suicidio!Di seguito presento alcuni link dove possono essere trovate le password di default di router e dispositivi vari, proba-bilmente li troverete piuttosto utile nei prossimi penetration test:

• www.cyxla.com/passwords/passwords.html

• dopeman.org/default_passwords.html

• www.phenoelit-us.org/dpl/dpl.html

• www.routerpasswords.com

60

2. Prevenzione Come tutti i software anche il sistema operativo del Router / Access point neces-sita di aggiornamenti. Infatti quasi quotidianamente vengono scoperti bug che permettono ai pirati che lanciare attacchi e prendere il controllo del dispositivo. Una delle migliori armi difensive è la prevenzione. Quindi consultare periodicamente il sito del produttore del proprio router per ve-rificare la presenza di aggiornamenti di sicurezza critici.

3. Infrastructure o Ad-Hoc? Le Lan Wi-Fi possono funzionare in due modalità: Infrastructure e Ad-Hoc. Nel-la prima (raccomandata) le comunicazioni tra i vari computer della rete passano tramite l’Access Point. Nella seconda (Ad-Hoc) invece i computer comunicano tra di loro senza un punto di controllo relizzando così una classica rete peer-to-peer.

4. Disabilitare il SSID Broadcasting In un a rete wi-fi esiste un codice di identificazione detto SSID (Service Set I-dentifier). Un computer che vuole comunicare con una rete deve conoscere que-sto codice; infatti ogni pacchetto di dati scambiato in una rete wi-fi contiene que-sto codice. Piuttosto che utilizzare un SSID banale (tipo “wlan”) utilizzarne uno composto di numeri e lettere. Inoltre disabilitando il Broadcasting del SSID l’Access Point smetterà di annun-ciare pubblicamente la presenza della rete (cosa inutile per una rete domestica). Questo accorgimento non è determinante (come nessun accorgimento preso sin-golarmente) in quanto il SSID puo’ comunque essere “sniffato”, ma aggiunge un ulteriore livello di difficoltà per l’eventuale pirata.

5. Disabilitare i Ping di Broadcast Disabilitando il ping di broadcast si rende invisibile l’Access Point ai tool di ana-lisi per il protocollo wi-fi 802.11b

6. Filtro sul Mac Address Come è noto ogni computer collegato a Internet o a una rete privata ha un indi-rizzo, il famoso Ip (Internet Protocol). In realtà ogni dispositivo di rete ha un al-tro indirizzo che lo identifica in modo univoco: il Mac Address. E’ possibile attivare sull’Access Point un filtro che permetta l’accesso solo alle schede di rete autorizzate. Inserendo nel filtro gli indirizzi MAC dei computer della rete domestica permetterà a questi ultimi di accedere alla rete: tutte gli altri rimarranno esclusi.Anche in questo caso il pirata ha le sue contromosse: un MAC può essere modificato e falsificato (spoofing); ma un tipo di attacco così sofisticato richiede motivazione e finalità che difficilmente un cracker trova in

61

una rete domestica. Come trovate il MAC Address dei vodtri dispositivi di rete? Basta lanciare il prompt dei comand (start -> esegui -> cmd.exe) e quindi digitare; ipconfig/all; alla voce “Indirizzo fisico” troverete il MAC (6 numeri esadecimali)

7. Disabilitare l’Amministrazione Remota E’ proprio necessario lasciare attiva un’interfaccia di amministrazione remota? No? Allora è meglio disbilitarla…

8. Criptografia Tutto quanto detto fin’ora non è molto utile se le informazioni che passano in chiaro nell’etere possono essere facilmente intercettate! Esistono tre tipi di crip-tografia per le reti wireless domestiche: WEP, WPA e WPA2. Se non avete a casa adattatori o schede di rete wireless vecchiotte (per esempio 802.11b) potrete tranquillamente evitare il WEP, protocollo debole altamente sconsigliato (craccabile in poche ore). Quindi se avete dispositivi di ultima gene-razione (quelli che trovate ora nei negozi) potete utilizzare WPA o WPA2

9. Copertura e posizionamento Non è consigliabile posizionare l’Access Point vicino ai muri perimetrali, meglio metterlo in una posizione centrale dell’appartamento/ufficio: questo riduce sen-sibilmente il rischio di essere intercettati da un pirata durante una sessione di Wardriving. Applicando queste 9 regole si rafforza la sicurezza della propria rete wireless domestica. Comunque non dimentichiamoci mai di tenere gli occhi aperti, di non sopravvalutare la propria astuzia che potrebbe indurre un falso senso di sicurezza che sarebbe fatale.

Come Recuperare e Craccare la Chiave WPA su Xp E’ possibile recuperare facilmente una chiave WEP dal servizio Wireless Zero Configuration di Windows Xp; nel caso di Vista è possibile recuperare facilmen-te anche la chiave WPA.Per farlo basta scaricare e utilizzare il programma Wirelesskeyview. Questo programma recupera la chiave dal servizio Wireless Zero Configuration di Xp e dal servizio WLAN AutoConfig di Vista. In entrambi i casi la chiave WEP è in chiaro; invece la chiave WPA è memorizzata in formato “leggibile” solo su Vista, non su Xp. Utilizzando Wirelesskeyview su Xp si recupera la chiave WPA codificata tramite l’algoritmo PBKDF2. Si tratta di un algoritmo che calcola un codice (hash) deri-vato da reiterate operazioni eseguite su di una password e un codice aggiuntivo, il “salt” combinati tra di loro. Nel caso del PBKDF2 applicato al WPA, la password è la chiave vera e propria;

62

il salt è l’ESSID, l’identificativo della rete wireless. Per fare un esempio, se l’ESSID è “mywifi” e la password è “pippo”, il codice calcolato tramite PBKDF2 risulterà essere 9BEA00D070CDC6F6712A6CE941F20EB488C7156A88F43A607B6798EC113070F3. Su Xp il programma Wirelesskeyview recupera questo codice e non “pippo” come sperato. Per risalire alla password partendo dal codice hash c’è una sola strada: il cracking.

L’attacco Dictionary calcolerà in tempo reale l’hash PBKDF2 combinando l’ESSID con una serie di parole (un dizionario), con la speranza di indovinare quella giusta. Il programma Cain ha in dotazione un dizionario (Wordlist.txt) di oltre 7000 parole.

Le Rainbow Tables sono gigantesche tabelle di password pre-calcolate. Posso-no essere utili se l’ESSID è un nome comune (come il costruttore dell’Access Point, Cisco, Linksys…). In questo caso il tempo di cracking potrebbe essere sorprendentemente breve. Se avete la necessità di recuperare la chiave WPA di una macchina con Windows Xp, il metodo è questo. Armatevi di pazienza e sperate nella fortuna: queste (pa-zienza e fortuna) sono le uniche due vere alleate dell’hacker in qualsiasi opera-zione di password cracking.

Recuperare la Chiave WEP/WPA con WirelessKeyView Può succedere che ci si dimentichi la password (o meglio la key) per la connes-sione wifi. Non solo: in un penetration test, in caso di accesso fisico al computer, può essere utile recuperare le key WEP/WPA. WirelessKeyView è un software freeware in grado appunto di recuperare le chiavi WEP/WPA immagazzinate in un computer dal servizio Wireless Zero Configuration di XP o dal servizio WLAN AutoConfig di Vista. Le key vengono mostrate a video in una griglia dati, ma possono anche essere salvate in diversi formati: text,html,xml. Per utilizzare questo programma bisogna essere loggati sul computer in locale, quindi non si tratta di uno strumento per intercettare le password o per craccare la connessione, ma una utility di recupero password. WirelessKeyView oltre ad essere gratuito non necessita di installazione: basta scaricarlo ed eseguirlo. Viste le ridotte dimensioni può anche essere comoda-mente memorizzato su di una chiave USB.

63

Attacco Criptografico al WPA

Quando ci si accorse che il WEP era debolissimo si corse ai ripari creando un “WEP potenziato”, basato sulla cifratura TKIP e denominato WPA. Benché molti considerassero il WPA inviolabile (e questo era vero, almeno dal punto di vista crittografico) in realtà il WPA (ma anche il WPA2) poteva essere violato con un attacco a dizionario. Qual’è la differenza tra WPA e WPA2? WPA2 utilizza un algoritmo di cifratura che deriva dall’AES, attualmente uno dei sistemi crittografici più robusti; il WPA utilizza il TKIP, basato su RC4 e parente stretto del WEP. In questi giorni è circolata la notizia che alcuni ricercatori sono riusciti ad crac-care il TKIP tramite un attacco già popolare in ambito WEP: il chopchop attack. Questo attacco non recupera la chiave crittografica e quindi non è in grado di de-codificare l’intera connessione, ma è in grado di decifrare singoli pacchetti, sen-za conoscere la chiave. E’ sicuramente un passo avanti verso il naufragio definitivo del WPA, vedremo altri sviluppi nelle prossime settimane.

Gli standard

Chiave WEP Il meccanismo per la protezione dei dati originariamente previsto dallo standard IEEE 802.11 è il WEP ("Wired Equivalent Privacy"). Il WEP prevede che ogni pacchetto scambiato tra l'access point e l'apparato dell'utente sia codificato con l'agoritmo di cifratura RC4, utilizzando una chiave segreta di 40 o 104 bit, pre-ceduta da un'ulteriore sequenza casuale di 24 bit (Initialization Vector) diversa per ogni pacchetto trasmesso. La chiave segreta deve essere comunicata a tutti gli utenti che accedono al corrispondente access point. Nel 2001 alcuni ricercatori hanno però dimostrato la debolezza dell'algoritmo RC4, nonché altre debolezze intrinseche del meccanismo WEP. È stato quindi i-stituito un gruppo di lavoro, chiamato "Task Group i", per correggere i noti pro-blemi del WEP e definire un nuovo standard di sicurezza, l'IEEE 802.11i.

Dal WEP all'802.11i: WPA IEEE e Wi-Fi Alliance, l'organizzazione che si occupa di promuovere lo svilup-po e la diffusione delle reti wireless, hanno quindi dato vita ad un progetto per elaborare una soluzione immediata per sostituire il WEP come meccanismo di sicurezza nei prodotti commerciali esistenti. Il nuovo meccanismo, denominato WPA (Wireless Protected Access), è stato concepito sin dall'inizio come soluzione temporanea, in attesa che lo sviluppo di 802.11i giungesse a maturazione. Per WPA è stato progettato un nuovo protocollo, denominato TKIP (Temporal

64

Key Integrity Protocol), sempre basato sull'algoritmo RC4, che aggiunge un meccanismo di cifratura software preliminare a quello utilizzato dal WEP (ese-guito invece in hardware) per ogni pacchetto inviato. WPA si basa su TKIP per la codifica dei messaggi, mentre si è aggiunto un mec-canismo di autenticazione per utente, in luogo dello scambio della chiave WEP segreta, basato sul protocollo 802.1x (illustrato piu' avanti).

WPA2 (802.11i)

L'802.11i, rilasciato nel luglio 2004, è ora comunemente indicato con il nome di WPA2. Anche WPA2 utilizza 802.1x per la gestione delle politiche di autenticazione. Per la cifratura dei dati invece, è definito un nuovo protocollo, CCMP (Counter Mode with CBC-MAC Protocol), che utilizza l'algoritmo crittografico AES al posto dell'RC4. La maggiore robustezza di AES (e di CCMP) si paga con una maggior potenza di calcolo richiesta agli apparati rispetto a WEP e TKIP, e ri-chiede quindi una modifica del'hardware. Ad oggi gli apparati che supportano WPA2 sono poco diffusi.

Riepilogando:

WPA = TKIP + 802.1x

WPA2 = CCMP + 802.1x

L'autenticazione 802.1x

Per evitare gli accessi non autorizzati in rete si è deciso di adottare il protocollo di autenticazione port-based denominato IEEE 802.1x, il quale prevede che l'au-tenticazione avvenga sia in fase di primo accesso alla rete sia ad intervalli perio-dici di tempo. Per l'autenticazione l'access point si deve appoggiare ad un server esterno tramite il protocollo RADIUS (Remote Authentication Dial-In User Ser-vice). L'architettura 802.1x applicata alla tecnologia wireless prevede quindi la presen-za delle seguenti entità:

Supplicant = client che intende accedere alla rete

Authenticator = punto di accesso alla rete (access-point)

65

Authentication Server = server esterno a cui l'autenticatore invia le richieste di autenticazione provenienti da un supplicant

La figura seguente mostra l'architettura di autenticazione prevista dal protocollo 802.1x:

Schema applicativo 802.1x

EAP

Il sistema di autenticazione utilizza il protocollo di trasporto EAP (Extensible Authentication Protocol), il quale non specifica un meccanismo di autenticazione fisso, bensì definisce una piattaforma di autenticazione estensibile, consentendo quindi di poter variare il meccanismo di autenticazione nel caso in cui in que-st'ultimo venisse scoperta una qualche vulnerabilità.

Metodi di autenticazione

Tra i vari metodi di autenticazione impiegati in EAP (oltre 40) è possibile segna-lare:

• EAP-MD5: (MD5-Challenge), equivalente al PPP, richiede userna-me/password. Non prevede mutua autenticazione o scambio di chiavi quindi è poco adatto in ambiente wireless.

66

• LEAP: (Lightweight EAP) sviluppato da Cisco, prevede l'invio di user-name/password ad un server di autenticazione (RADIUS). Considerato poco sicuro è in fase di abbandono.

• EAP-TLS: crea un sessione TLS (tunnel) tra il Supplicant e l'Authenti-cation Server. Sia il server che il supplicant richiedono l'utilizzo di un certificato (x509). Questo metodo fornisce una mutua autenticazione.

• EAP-TTLS: crea una sessione TLS cifrata, all'interno della quale è pos-sibile utilizzare qualsiasi metodo di autenticazione.

• PEAP: (Protected EAP) crea una sessione TLS cifrata. Sia in PEAP che in TTLS il certificato del supplicant è opzionale, mentre è obbligatorio quello dell'Authentication Server.

• EAP-MSCHAPv2: richiede username/password, ed è fondamentalmen-te un'incapsulamento dell'MS-CHAP-v2 in EAP.

67

WPA-Cracking tra Cloud Computing e Personal Super-computers

Si scrive “cloud computing”, ma si legge “craccare una password WPA in 40 minuti per soli $17″. Clound computing è il termine magico con il quale si iden-tifica la nuova incarnazione del calcolo distribuito, l’eterno ritorno di un’idea che oggi si realizza tramite le tecnologie web.

Nel corso degli anni, da quando si sono diffuse le reti wireless, gli sforzi di chi ha il compito di difendere le comunicazioni senza fili, sono stati duramente con-trastati da chi ha la volontà di aggirare i sistemi di sicurezza delle reti wifi.

Il sistema WEP è capitolato quasi subito. Il WPA ha resistito un po’ di più, e sebbene sia tutt’oggi più sicuro del WEP e meno facile da attaccare con succes-so, inizia a presentare delle crepe. Comunque sia WPA (TKIP), sia WPA (A-ES/CCMP) sono da sempre attaccabili tramite dictionary attack.

Il problema è il tempo. Una possibile soluzione sono le rainbow tables, un passo avanti è la potenza di calcolo: GPU o calcolo distribuito.

La chiave WPA è formata dalla passphrase e dall’ESSID, e viene calcolata tra-mite l’algoritmo PBKDF2. Gli approcci per l’attacco possono essere ti due tipi:

1. Rainbow Tables: si tratta di dizionari precalcolati. Church of Wifi rende disponibili le tabelle con dizionari formati da 170000 password dei 1000 ESSID più diffusi

2. Potenza di calcolo: abbastanza intuitivo, occorre una quantità massiccia di cicli di clock per calcolare milioni di password, elaborando in tempo reale l’hash, comprensivo dell’ESSID.

Questa potenza di calcolo può essere ottenuta in due modi: con potenti GPU e un apposito software, oppure distribuendo il calcolo, tramite cloud computing, tra centinaia di nodi. Elcomsoft ha prodotto un software (Elcomsoft Wireless Security Auditor) che sfruttando la potenza di personal supercomputer Tesla è in grado di calcolare 52400 password al secondo. Il solo prezzo del software (senza il computerone) è però di €1199 Euro.

68

IL PROVETTO RICERCATORE

Internet è un immensa fonte di informazioni e muoversi all'interno di essa è co-me entrare in un labirinto dove, senza un filo di Arianna che ci guidi, non po-tremmo mai uscirne fuori. Il nostro filo di Arianna in questo caso sono alcuni strumenti nati con l'intento di guidarci e portare a buon fine il nostro scopo. Gli strumenti di cui abbiamo biso-gno sono di due tipi: quelli implementati nel sistema operativo (Tracert, Ping, Nbtstat, ecc..), e quelli forniti dalla rete (finger, Netfind, Whois, ecc..).In questa guida mi occuperò solamente di quei tool che permettono di rintracciare delle

persone che utilizzano la rete e reperire più informazioni possibili su di esse. Quasi tutte le tecniche usate per l'hacking si basano principalmente nel reperire il maggior numero di informazioni relative al sito da attaccare; è necessario sapere quali programmi (e versione) girano sul server vittima, per poter conoscere in seguito quale exploit utilizzare. Anche la tecnica stessa del bruteforce si basa sul-la ricerca di ogni dettaglio riguardo l'administrator del server per poterne identi-ficare l'eventuale user o pwd. E magari avendo solo a disposizione il suo IP, o il suo nome e dominio, trovare la sua vera mail o meglio ancora dove abita!Avere anche la possibilità di rintracciare la vittima on-line quando vi pare, anche se possiede un IP dinamico, ovviamente tutto questo dipende anche da una certa dose di fortuna, nel senso che più la nostra vittima si è resa "visibile" in rete, più informazioni riusciremo ad avere su di lui. Questo dovrebbe farvi capire intuiti-vamente che è molto più facile ottenere ottimi risultati su un'amministratore di un server che su un utente qualsiasi della rete. WINDOWS UTILITY Installando il protocollo di rete Microsoft TCP/IP, vengono copiati alcuni file in /Windows, questi file sono delle utility per Internet (e reti LAN), che spesso vengono erroneamente sottovalutate. Invece sono molto utili e si adattano molto bene a diversi scopi . Tenete presente che esistono molti programmini che fanno uso di tali strumenti, ma vi consiglio vivamente di imparare ad utilizzarli da DOS o comunque da una shell. Tracert: Mostra il percorso (HOPS) fatto da un pacchetto per raggiungere un computer remoto. Ping:Verifica la connessione di un sito e ne determina i tempi di risposta. Gli switch dei comandi sono case-sensitive, quindi attenzione a come digitate le maiuscole e le minuscole, ad es. è diverso scrivere: Ping -a da Ping -A !!

69

TRACERT E' un'utility che stabilisce il percorso verso una destinazione inviando pacchetti echo con valori variabili di Time To Live (TTL).Lungo il percorso il compito di ogni "instradatore"(Router) è quello di abbassare di almeno una unità il TTL di un pacchetto prima di consegnarlo, in pratica il TTL è un conteggio di salti (Hops). Quando il TTL di un pacchetto arriva a 0, l'instradatore dovrebbe man-dare indietro un messaggio al sistema di origine.In base ai messaggi rinviati dagli instradatori, viene determinato il percorso del pacchetto. (Acuni instradatori però rendono invisibili i pacchetti echo, lasciandoli esaurire senza che tracert ne rilevi la traccia....provate allora col ping). Sintassi del comando: TRACERT [-d] [-h maximum_hops] [-j host-list] [-w timeout] nome_destinazione Opzioni: • -d Non risolve gli indirizzi in nome host. • -h Numero massimo di hops per ricercare la destinazio-ne. • -j Libera route di origine lungo l'elenco host. • -w Intervallo di timeout in millisecondi per ogni risposta. • nome_dest. Specifica il nome di ospite del computer di destinazione Facciamo un'esempio; C:\windows> TRACERT mbox.virtualbit.it Rilevazione instradamento verso mbox.virtualbit.it [195.103.10.3] su un massi-mo di 30 punti di passaggio: 1 115 ms 121 ms 113 ms 202.41.103.65 2 153 ms 151 ms 149 ms 202.41.103.1 3 192 ms 317 ms 189 ms 202.41.92.10 4 214 ms 188 ms 227 ms [202.41.92.1] 5 186 ms 224 ms 185 ms interbusiness.it [212.41.192.2] 6 * * 2684 ms r-mi3-.interbusiness.it [151.9.15.145] 7 290 ms 234 ms 228 ms r-mi1-fddi.interbusiness.it [151.99.5.167] 8 402 ms 486 ms 269 ms 195.31.80.134 9 303 ms 795 ms 286 ms 195.103.10.130

70

10 * 351 ms 941 ms 192.168.0.6 11 756 ms 475 ms 512 ms mbox.virtualbit.it [195.103.10.3] Rilevazione completata.[ è solo un'esempio ] La prima colonna riporta il numero di TTL (hops). Le altre colonne indicano i tempi di andata e ritorno in millisecondi per un tenta-tivo di raggiungere l'host remoto. L'ultimo hops è il server da noi analizzato (tin.it), mentre gli hops intermedi sono vari routers che instradano il pacchetto.L'asterisco indica che il tempo(timeout) per il tentativo è scaduto, mentre l'ultima colonna riporta il nome e l'indirizzo IP dell'host.Avrete notato quindi come sia semplice ottenere l'IP di un server tramite il suo nome e viceversa (NSlookup), ovvero trovare il nome del server avendo solamente il suo IP.Infatti possiamo utilizzare tracert su un'indirizzo numerico (IP)e determinare quale server utilizza il nostro amico.....potremo poi connetterci al nome del server per reperire ulteriori info sulla nostra vittima (dovete sapere che molti provider usano una specie di yellow page dei propri utenti!). Parleremo di come utilizzare le info reperite in questo modo nella parte relativa agli strumenti di Internet. Tracert però non sempre dà i risultati che vogliamo, ed ecco che a questo punto entra in ballo un'altra utility... Ping Il comando Ping è utile per controllare un collegamento con l'host remoto e valu-tarne la velocità. Viene inviato all'host in questione una serie di pacchetti "echo" di 64 byte aspet-tando i pacchetti di risposta. Non è certo utile ai nostri scopi usarlo in questo modo, ma se invece lo utiliz-ziamo con dei parametri, il discorso cambia... Sintassi: PING [-t] [-a] [-n numero] [-l lunghezza] [-f] [-i TTL] [-v TOS] Opzioni: •-t Ping è eseguito sull'host specificato finchè non viene interrotto. •-a Risolve gli indirizzi in nomi host. •-n Invia il numero di richieste di echo indicato da numero. Il valore di default è 4. •-l Invia i pacchetti echo contenenti la quantità di dati indicati in lunghezza; il default è 64 byte;il massimo è 8192.

71

•-f Imposta il flag. Non frammenta il pacchetto. •-i TTL Imposta la "vita" del pacchetto col valore indicato da TTL •-v TOS Imposta il tipo di servizio col valore indicato da TOS. •-r Registra il percorso del pacchetto in uscita e del pacchetto di ritorno nel campo Record Route. Numero che deve specificare da 1 a 9 ospiti. •-s Marca orario per il numero dei salti precisati da numero •-j host-list Indirizza i pacchetti per mezzo della lista degli ospiti specificata da host-list.Gli ospiti vicini possono essere separati da gateway intermedi. •-k host-list Restringe route di origine lungo l'elenco host. •-w Intervallo attesa "timeout" (in millisecondi) per ogni risposta. Non abbiamo bisogno di conoscere tutti i parametri del comando, basta conosce-re i più importanti.... ping -a IP // risolve l'IP di un server in nome ping -w IP (intervallo) // imposta l'intervallo d'attesa ... per i nostri scopi. Mentre è ben conosciuto l'IP Flooding come DoS: ping -l IP (dim.del pacchetto) // invia un "echo" di dim. determinate ping -f IP (dim.del pacchetto) // ne evita la frammentazione (flag) Ma facciamo un'esempio. L'IP di un utente è facilmente determinabile sia che frequenti Usenet che i servizi Chat, nel 1° caso è presente nelle proprietà del msg, nel 2° se non è visualizzato (es. in ICQ) ci sono molti progmmi che servono a tale scopo e sono reperibili in rete, se poi abbiamo anche il suo nome, o alias o altro , le cose diventano più facili.Una volta ottenuto tale numero, possiamo in-cominciare le nostre ricerche. Supponiamo che l'IP della vittima sia 194.105.97.16 (casuale).. c:\windows> ping -a 194.105.97.16 (Il parametro -a sappiamo che risolve un IP num. in nome dell'host)

72

Il risultato sarà del tipo... Esecuzione di Ping NOME_HOST [194.105.97.16] con 32 byte di dati: Risposta da 194.105.97.16: byte=32 durata=1ms TTL=128 Risposta da 194.105.97.16: byte=32 durata<10ms TTL=128 Risposta da 194.105.97.16: byte=32 durata<10ms TTL=128 Risposta da 194.105.97.16: byte=32 durata<10ms TTL=128 Statistiche Ping per 194.105.97.16: Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 0ms, Massimo = 1ms, Medio = 0ms ..possiamo vedere così quale sia il nome del computer della vittima, oppure , se fosse un server, il nome host dello stesso. Tenete presente comunque che se avete l'IP di un utente in tempo reale (in IRC), avete già tutto ciò che vi serve per rendergli la vita difficile !! Come?? E' semplicissimo, basta avere un DNS-scanner, reperibile in internet. Prima di andare avanti però apriamo una piccola parentesi. Come dovreste sapere l'indirizzo IP assegnato dal Provider ad un'host della sua rete è dinamico, cioè cambia ad ogni connessione, ma la radice (i primi 24 bit) rimane invariata. Se per esempio il mio IP è 194.10.190.18 significa che appar-tengo ad un indirizzo di rete : 194.10.190.X //dove "X" è il n°host che mi può essere assegnato (a meno che si tratta di grosse sottoreti, dove l'assegnazione del n° può variare negli ultimi 16 bit --> .192.X e .191.X per esempio). Facciamo un'esempio e torniamo alla nostra vittima in IRC; supponiamo che il suo IP sia 196.41.197.36 , mano al nostro DNS-scanner e inseriamo il suo IP... ..il risultato sarà *(con un pò di fortuna) il nome del suo PC !!(risultato simile lo avremmo avuto col Ping -a) Proprio così, avete presente quando installate windows (o altri S.O.)che carican-do i protocolli di rete NetBios e Client Microsoft, vi chiede di dare un nome al vostro PC ?.. bene, quello è il nome che apparirà in rete e sarà visualizzato dallo scanner!Quindi se sappiamo il nome dell'host ed a quale indirizzo di rete appar-tiene, in futuro potremo sempre intercettarlo (se sarà online, ovviamente) facen-do una scansione degli indirizzi da 196.41.197.1 a 196.41.197.249 controllando

73

se apparirà il suo nome!Normalmente basta una scansione dei primi 50/90 n°, vi-sto che difficilmente gli utenti della stessa rete si collegano nello stesso momen-to, inoltre una volta trovato e attaccato,se dovesse riconnettersi il server gli asse-gnerà il primo n° disponibile su quella rete, accellerando così le nostre ricerche. Prima ho detto "con un pò di fortuna" perchè alcuni non danno nessun nome al proprio mezzo (e fanno bene).. lo scanner in questo caso vi descriverà l'host co-me "undelevaraible host" anche se sarà attivo. In questo caso, ci sono diversi modi per farlo, uno di questi è senz'altro usando un port scanner! facendo una scansione delle porte, possiamo reperire alcune importanti informazioni. Se per esempio scopriamo che è attiva la porta 135 o 137 nel Pc della vittima, significa (quasi certamente) che utilizza WinNT, che non è un dettaglio da poco! Più ampliamo la scansione delle porte e più troviamo dei dettagli propri del computer del malcapitato. Un'altro metodo sarebbe quello di utilizzare nbtstat (di /windows) per controlla-re se ha il netbios attivo ( e magari condivide pure qualcosa eh..), ed avere altre info utili.. Insomma, con un pò di ingegno si determina l'obiettivo. Se la nostra vittima invece è un utente che frequenta le news, la ricerca sarà un pò più lunga ma con un pò di impegno si raggiungerà ugualmente l'obiettivo. In questo caso il suo IP lo potete vedere semplicemente sotto l'header (intestazione) del server NNTP (I news server comunicano fra loro attraverso il protocollo NNTP in modo che i messaggi inviati ad un server si trovino duplicati su tutti gli altri server) verificando nelle proprietà del msg... trovato ? ..bene , ma i msg che vengono postati sui NG sono ovviamente datati, oramai il suo IP non sarà più quello...però abbiamo comunque il suo indirizzo di rete ; per es. 195.12.97.X Dovreste capire già cosa fare... mano al Ping e via! Si incomincia a pingare l'indirizzo che abbiamo facendo una scansione dal pri-mo n° ; ping -a 195.12.97.1 ping -a 195.12.97.2 ....... ecc.... dopo pochi tentativi di solito si becca subito un host attivo (se proprio volete, u-sate uno scanner) che come risposta ci darà il nome del server a cui è collega-to.Se abbiamo il suo nome o alias possiamo comportarci come ho descritto pri-ma, cioè usando un dns-scanner e verificare se il suo nome host coincide con quello che abbiamo.

74

Esiste anche un modo per cercare degli indirizzi di chi posta sulle news.... ed è anche comodo da usare , ma serve solamente se l'utente che state cercando ha te-nuto visibile il suo vero e-mail address nelle proprietà di almeno un msg. In pra-tica vi è utile quando vi ricordate solo il nome del tizio e dove postava, ma non avete il suo indirizzo. Basta spedire una mail a rtfm.mit.edu (database per Usenet); [email protected] specificando nel corpo del messaggio ciò che desiderate ottenere; send usenet-addresses/nome o cognome della persona Se il nome della persona che cercate contiene della punteggiatura (oppure volete sapere in quale altro modo è possibile sfruttare questo servizio) vi conviene dare un'occhiata all'help del sito stesso; send usenet-addresses/help in ogni caso,nel giro di pochissimi giorni, otterrete quello che avrete chiesto sempre tramite posta elettronica (comodo no?). Se invece non siamo contenti di quello che abbiamo trovato e vogliamo sapere tutto il possibile sulla nostra vittima, allora si passa ai servizi che ci offre Internet... Netfind, Whois, Finger Si tratta di alcuni dei tanti servizi che la rete ci offre per reperire tutte le informa-zioni di cui abbiamo bisogno. Per poterne fare uso è necessario (o quasi, come vedremo più avanti) l'uso di TELNET. INTRODUZIONE A TELNET Telnet è un prog che permette ad un utente di comandare (in modo restrittivo) una shell remota, in modo da usufruire dei suoi servizi. Come si utilizza? Attiviamo il comando Telnet su Windows 7 e Windows vista!

La prima cosa da fare è quella di aprire il pannello di controllo - programmi e funzionalità del vostro Windows 7. A questo punto, sulla barra di sinistra cliccate su Attivazione e Disattivazione delle funzionalità di Windows. Si aprirà una nuova finestra e spuntate le caselle

75

vicino alle voci: Telnet Client,Telnet Server (opzionale). A questo punto, con-fermate l’operazione e aspettate alcuni minuti che sia installato il servizio. Una volta completata l’installazione da esegui digitare telnet ok, tramite il prompt dei comandi, potrete utilizzare il Telnet. Se poi vi procurate un prog Telnet un pò più decente (tipo Netterm, ma ce ne so-no molti altri) che supporti il comando copia-incolla, è ancora meglio (vedrete poi perchè), ... ma questo è un'altro discorso, per i nostri scopi va bene anche quello di windows.Il comando per avviare una connessione è: telnet host_remoto n°porta dove host_remoto sarà l'indirizzo del server host al quale dovremo collegarci, mentre n°porta è la porta alla quale ci si collega per avere un determinato servi-zio. Se per esempio vogliamo collegarci ad un servizio mail (SMTP) la porta sa-rà la n° 25 , per le news è 119, e così via...Facciamo un esempio; se ci vogliamo collegare al servizio FTP della Tin, il nostro comando sarà: telnet ftp.volftp.tin.it 21 //la porta 21 è per il servizio FTP Quando vedremo apparire un messaggio con la descrizione del server significa che la connessione è avvenuta.Qui di seguito riporterò le porte principali tra le WKS (Well Known Services) utilizzabili su un server telnet. Per WKS si inten-dono quelle porte (le prime 1024) che hanno di regola un valore fisso stabilito per un determinato servizio (tenete conto comunque che in totale sono 65535). Porta Servizi 7 [echo] Qualunque cosa scrivi, l'host te lo ripete 11 [systat] Molte info sugli utenti 13 [daytime] Ora e data dell'host locale 15 [netstat] Informazioni sul Networks (!) 21 [ftp] Servizio trasferimento files 23 [telnet] Il tuo log in. 25 [smpt] Servizio mail (spedizione) 39 [rlp] Risorse dell'ubicazione 43 [whois] Info su host e reti 53 [domain] Nome del server 70 [gopher] Servizio gopher 79 [finger] Informazioni sugli utenti 80 [http] Sevizio Web 110 [pop] Servizio mail (ricevente)

76

119 [nntp] Servizio Usenet 443 [shttp] Altro servizio Web 512 [biff] Notificazione della posta 513 [rlogin] Login remoto [who] Who remoto 514 [shell] Comandi in remoto, nessuna pwd [syslog] Logging del sys remoto 520 [route] Protocollo di instradamento. Bene, chiusa questa piccola parentesi sul funzionamento di Telnet, possiamo in-cominciare...... Collegandosi a http://www.whatismyip.com/tools/ Si possono usufruire di servizi on line quali: ip address lookup, ip whois lookup, host name lookup, server headers check, user agent. (tool approfonditi nel vol 3°) In alternativa si può utilizzare il software IP-Tools (allegato al CD vol 3°)

Whois Questo servizio è presente in diversi server e contiene un database dove all'inter-no sono memorizzati nomi, cognomi, indirizzi (e-mail) di milioni di persone che frequentano Internet.Tramite questo servizio potremo reperire inofrmazioni su un determinato utente partendo dal suo nome e cognome ( sempre che sia presente nel database), vediamo un'esempio; uno dei server più capienti è senz'altro internic.net, dove per collegarsi digitere-mo da DOS: c:\windows> telnet whois.internic.net 43 ..dove "43" è ovviamente il n° della porta per tale servizio. E'possibile anche non specificare la porta, purchè venga utilizzato il nome del server per intero (whois.dominio.net). Basta attendere un'attimo e riceveremo la risposta dal server.... al prompt digiteremo prima il cognome poi il nome... whois: pawell, jhon ... e avremo così di seguito le informazioni relative alla persona che stiamo cer-cando. Ovviamente per avere maggiori probabilità di riuscita è essenziale utiliz-zare il server whois più vicino alla vittima (e questo vale anche per gli altri servi-zi che tratterò di seguito)...Potreste provare addirittura (se siete fortunati) a veri-

77

ficare se il provider della persona che cerchiamo abbia attivo questo tipo di ser-vizio, in questo caso la strada sarà molto più semplice ed efficace. Se siete incerti del nome potrete inserire solo il cognome,in questo caso whois vi elencherà tutti gli utenti con la possibilità di scegliere quello che volete.La possi-bilità di utilizzare whois si estende anche al Web (oltre ai soliti programmini), ci sono infatti numerosi server che offrono questo servizio via http e che ne consen-tono quindi l'utilizzo con più semplicità ( volete la pappa pronta eh ??), come per esempio l'ottimo database Europeo "RIPE" .. http://www.ripe.net (nella sez whois) Se desiderate invece un'elenco dei server whois potete trovarlo a: ftp://sipb.mit.edu/pub/whois/whois-servers.list Finger Come per whois, finger è un'altro strumento molto utile per reperire delle info sugli utenti, allo stesso modo si apre una sessione telnet, ma la porta in questo caso è la 79 (è sempre utile leggersi l'help del server prima di utilizzarlo): telnet arpanet.it 79 La quantità di informazioni varia da server a server, così come il metodo di ri-cerca, un difetto questo che rende il servizio non molto affidabile; potremmo non trovare niente su un determinato server e trovare di tutto su un'altro. I termini di ricerca in questo caso sono di vario tipo ma diciamo che normalmen-te viene utilizzato l'indirizzo e-mail della vittima... : [email protected] ...dategli tempo di elaborare e (se saranno presenti) vi troverete davanti le infor-mazioni riguardanti l'utente, sarete anche avvisati (sempre che il server lo per-metta) se l'utente è collegato in rete!! In alternativa se la chive di ricerca è incerta potrete utilizzare finger in questo modo.. : [email protected] ..per avere un elenco degli utenti appartenenti al sito "netware.net" (anche se non è molto consigliabile farlo su grossi siti, visto l'interminabile elenco di utenti).

78

Come già dovreste sapere molti server disattivano questo tipo di servizio perchè particolarmente debole agli attacchi (///* ^s, per es.), qundi sarà vostro impegno trovarne uno adatto al prorio bisogno. Netfind Ora passiamo ad un sistema ormai in disuso che è comunque utile conoscere e sapere come funziona, perchè nel caso in cui avrete la possibilità di usufruirne, diventerebbe uno strumento utilissimo.Il server netfind viene utilizzato nel caso in cui siamo a conoscenza del nome o cognome della persona che cerchiamo, del dominio oppure anche tramite alcune parole chiave che vi saranno spiegate nel-l'help del server.E' ovvio quindi che netfind è un servizio utile solo per una ricer-ca più mirata, ovvero se siamo già a conoscenza di alcune info sul nostro bersa-glio.Per utilizzare questo servizio sarà sufficiente collegarsi con telnet ad un server netfind, entrare con "netfind" quando chiede il login e dare un'invio quan-do richiede la password (non tutti i server utilizzano però questo protocollo).Vi troverete davanti la solita descrizione del server ;-) ed un'elenco di altri servizi netfind disponibili in rete.Una volta dentro dovrete inserire i dati per la vostra ri-cerca; supponiamo di dover cercare un tal Kevin su un dominio "netware.net".. netfind: kevin netware.net bisognerà inserire prima il cognome (o il nome), poi il dominio o qualunque pa-rola chiave che possa identificare la persona...ecco tutto quello che dovrete fare. Netfind si preoccuperà di effettuare una ricerca nel dominio da voi indicato, rife-rendovi tutte le informazioni disponibili e , come per finger, se l'utente da voi se-lezionato è attualmente in rete. Interessante no?! (Ricordatevi che le chiavi di ricerca vanno divise da spazi e non da punteggiatu-re). Più la ricerca sarà precisa e più sarà veloce ed efficace il risultato, se invece do-vrete effettuare dei tentativi... allora armatevi di pazienza.Fra i più grandi server netfind và considerato dis.internic.net, ma ce ne sono diversi sparsi per molti pa-esi, eccone alcuni che ho potuto verificare: netfind.fnet.fr (Francia) netfind.uni-essen.de (germania) ds.internic.net (USA) netfind.elte.hu (Ungheria) netfind.icm.edu.pl (Polonia) nic.uakom.sk (Slovenia) bruno.cs.colorado.edu (USA) netfind.vslib.cz (Rep.Ceca)

79

Non ho ancora verificato se esiste un server netfind in Italia, nel caso lo sappiate mandatemi pure una mail! Come whois anche netfind ha la sua presenza sul Web ed esistono vari Url dove è possibile usufruirne; non stò ad elencarli perchè potete facilmente trovarli tra-mite un motore di ricerca! ricordatevi che un buon hacker ha la capacità di trovare chiunque nella rete, dovunque esso sia, qualsiasi cosa faccia... per questo non vi augurerei mai di incontrarlo!!

Telnet per spedire la posta Telnet è il principale protocollo di Internet per realizzare delle connessioni con macchine in remoto. Dà la possibilità di essere fisicamente sul proprio sistema e lavorare su un altro che può essere nella stanza accanto come dall'altra parte del mondo, la propria macchina (locale) diventa così un terminale remoto: tecnica-mente l'operazione è definita Remote Login. Ad esempio: se ci si trova lontani dal proprio ambiente di lavoro e si ha bisogno di controllare la posta elettronica, basta trovare un qualsiasi accesso ad Internet con servizio di telnet e collegarsi al proprio server di posta elettronica. Esistono due tipi di server per la posta elettronica: SMTP e POP3 che potrebbero anche essere la stessa macchina. SMTP è la sigla che indica i server di posta in uscita, POP3 i server di posta in entrata. In poche parole, con un server SMTP si man-dano le email, con un server POP3, invece, si ricevono le email sul proprio com-puter client. Il nostro client può inviare la nostra missiva grazie ad una opportuna sessione Telnet, tramite questa si manda il nostro messaggio al server SMTP il quale a sua volta lo manda al server POP3 di destinazione e, tramite una sessione Telnet compiuta dal ricevente, è possibile scaricarla nel computer client dell'amico che riceverà la lettera elettronica. Definiamo anche cos'è un HOST, un HOST non è altro che un codice alfanume-rico che identifica un computer in rete, per esempio pp1518.actarus.it è un Host, esso ci serve per distinguere quel computer da tutti gli altri che si trovano in rete. Ad ogni Host corrisponde un indirizzo IP. Vediamo un esempio di spedizione e ricezione di email, puntualizzando i pas-saggi. Supponiamo che [email protected] mandi una mail a [email protected], il compu-ter client di actarus apre una sessione Telnet e manda la mail attraverso il server

80

di posta in entrata di tipo SMTP smtp.vega.it. Il server SMTP la recapita al server di posta in uscita di tipo POP3 venus pop.venus.it il quale a sua volta lo fa ricevere a Venusia sul suo client tramite una propria sessione Telnet. Tutti i passaggi che un messaggio ha subito da un server all'altro compaiono ne-gli 'Headers'. Fatta questa breve descrizione generale di come avviene la spedi-zione di una email, vediamo il comando telnet nella sua essenza. La sintassi per connettersi ad un servizio qualsiasi è la seguente: telnet provider.it porta Un server ha un nome unico (es: pippo.it), ma ad ogni servizio che esso offre è associata una corrispettiva porta (es. 25 SMTP, 21 FTP, 110 POP3, 119 NNTP etc.), quindi se ci colleghiamo alla porta 25 ci risponderà (sempre perché è un numero unico valido per tutti i server) il servizio SMTP, ovviamente il servizio deve essere attivo sul server cioè ci deve essere "qualcuno" in ascolto sulla porta 25. Per collegarci a un server SMTP del provider Libero.it, digiteremo telnet libe-

ro.it 25. Comandi SMTP

Una volta che ci siamo connessi al server smtp possiamo cominciare a digitare comandi. Eccone una lista: HELO provider.it Questo comando serve per salutare il server SMTP il quali ci riconoscerà dal no-stro IP. Il server SMTP non permette l'autenticazione, per questa funzione accor-re usare il server POP3 che vedremo più avanti. MAIL FROM: <[email protected]> Questo comando serve per indicare l'indirizzo email del mittente, è nostra cura dare l'email esatta, in caso contrario il destinatario potrà non riconoscerci. Non omettere le parentesi angolari. RCPT TO: <[email protected]> Questo comando serve per indicare l'indirizzo email del destinatario. Anche qui non omettere le parentesi angolari. DATA

A questo comando segue una riga vuota che va riempita con la prima riga del no-

81

stro messaggio, per terminare l'inserimento è sufficiente una riga contenete il so-lo punto: ".". VRFY: <[email protected]> Questo comando serve per accettarsi dell'esistenza di un indirizzo email. HELP oppure HELP <comando> Fornisce la lista dei comandi disponibile oppure da informazioni su un singolo comando. Vediamo una sessione di Telnet per spedire una email, supposto che l'autentica-zione sia già stata fatta, in caratteri monospace e in grassetto i comandi da digita-re e di seguito la risposta del server. Supposto di avere un programma di posta elettronica normale tipo Mozilla, Thunderbird o OutLook, ci autentichiamo facendo un semplice "get messa-ge"/"scarica la posta" sul nostro account di posta, in alternativa ci si può autenti-care con telnet tramite una sessione di collegamento al POP3 che vedremo più avanti. SESSIONE SMTP: telnet smtp.vega.it 25 Trying 100.99.198.97... Connected to vega.it. Escape character is '^]'. 220 vega.it ESMTP Sendmail 8.12.9 ready at Sun, 01 Sep 2003 00:00:00 +0200 (CEST) helo vega.it 250 vega.it Hello <Nome del proprio pc> [<IP del proprio pc>], pleased to meet you help

214-2.0.0 This is sendmail version 8.12.9

214-2.0.0 Topics:

214-2.0.0 HELO EHLO MAIL RCPT DATA

214-2.0.0 RSET NOOP QUIT HELP VRFY

214-2.0.0 EXPN VERB ETRN DSN AUTH

214-2.0.0 STARTTLS

214-2.0.0 For more info use "HELP <topic>".

214-2.0.0 To report bugs in the implementation send

email to

214-2.0.0 [email protected].

214-2.0.0 For local information send email to

82

Postmaster at your site.

214 2.0.0 End of HELP info mail from: <[email protected]> 250 2.1.0 <[email protected]>... Sender ok rcpt to: <[email protected]> 250 2.1.5 <[email protected]>... Recipient ok data

354 Enter mail, end with "." on a line by itself subject: Importante! ciao! Ci vediamo stasera? baci. . 250 2.0.0 <codice del messaggio> Message accepted for delivery quit

221 2.0.0 vega.it closing connection Connection closed by foreign host. Se non abbiamo eseguito l'autenticazione il server ci risponderà con: 550 5.7.1 [email protected]... SMTP relay denied, authenticate via POP/IMAP first Avrete sicuramente notato che siete stati voi a inserire il mittente che può essere così facilmente falsificato. Fate attenzione che il server SMTP comunque ag-giunge agli header dell'email il vostro indirizzo IP. Notate infatti che come risposta del saluto "helo", il server smtp vi dice il nome del vostro computer e anche l'IP, questi dati verranno aggiunti alla vostra email dal server e quindi la ricevente li potrà vedere. Al massimo potete confondere la mittente aggiungendo dei dati fasulli all'interno del comando "data" ma un oc-chio esperto capirà che siete stati voi a spedire la missiva. (Per risalire al compu-ter che ha mandato la email è spesso, ma non sempre, necessario ricorrere a dati sensibili e quindi solo la magistratura può in pratica risalire a voi).

83

Comandi POP3

Connettiamoci al nostro ISP con telnet, esattamente al suo server di posta in en-trata: telnet pop.venus.it 110 la porta 110 è ovviamente quella del server che ci da il sevizio POP3. Ecco la lista dei comandi: user venusia pass segreto (il nostro nome utente e la nostra password.) LIST oppure STAT per ottenere la lista e la dimensione dei messaggi, List da la lista completa men-tre Stat da il valore complessivo. RETR: <nr del messaggio> per leggere il messaggio desiderato. TOP <nr del messaggio> <nr righe da vedere> permette di vedere solo le prime nr righe del messaggio nr. DELE: <nr del messaggio> per cancellare un messaggio. Anche se esso viene effettivamente eliminato solo dopo essere usciti dalla connessione con QUIT. RSET

per eliminare la marcatura fatta con "DELE". All'uscita, "QUIT", non verrà can-cellata alcuna email. QUIT la connessione termina e vengono cancellati i messaggi selezionati con DELE. Ecco una sessione Telnet per prelevare la posta: SESSIONE POP3: telnet pop.venus.it 110 Trying 193.70.192.70... Connected to pop.venus.it. Escape character is '^]'. +OK POP3 server ready (7.0.019) <[email protected]>

84

user venusia +OK Password required pass segreta +OK 4 messages list +OK 1 871 2 6533 3 3980 4 743 . fornisce la lista delle email in ordine di arrivo al server pop3 e la loro lunghezza

in byte retr 4 +OK 743 bytes Return-Path: <[email protected]> Received: .... Date: Sun, 01 Sep 2003 00:00:00 +0200 (CEST) From: [email protected] Message-Id: <<codice del messaggio>@vega.it> subject: Importante! ciao! Ci vediamo stasera? baci. . abbiamo scaricato l'ultimo messaggio che è arrivato al server: il numero 4 da

743 byte. dele 4 +OK message marked for deletion stat +OK 3 11384 3 messaggi rimanenti con la lunghezza complessiva quit +OK POP3 server closing connection Connection closed by foreign host. solo all'uscita i messaggi marcati vengono cancellati

85

Una piccola nota, il server POP3 di Libero.it è popmail.libero.it. Si tenga conto che quasi tutti i server smtp pretendono di inviare solo la posta dei propri utenti e rifiutano gli estranei. Nel caso di libero e altri occorre collegarsi via modem al-l'ISP Libero (cioè "telefonare" a Libero) per spedire la corrispondenza tramite i suoi server. Come può servire oggigiorno o in futuro un sistema così antiquato? Le risposte sono molteplici ma una può essere avere sotto controllo totale la posta. Pratica-mente può essere usato per cancellare i messaggi troppo grandi verificando le prime linee in modo da essere certi che sia spam. Senza dimenticare che tutti i mailer usano una sessione telnet per gestire la posta con i comandi che abbiamo visto anzi con molti meno, quindi l'azione diretta sul server da possibilità di ordine superiore. Ultimamente mi capita di essere bersaglio di computer infetti che mandano virus sul mio server di posta elettronica con nomi a caso e come dominio kensan.it, mi sono arrivate decine di megabyte in poche ore intasandomi la mailbox. In questi casi la soluzione migliore è accedere con una sessione telnet alla casella elettronica, cancellare un po' di messaggi con il comando DELE e poi agire a li-vello di webmail per cancellare la rimanente parte di spam. In questo modo ho evitato di scaricare lo spam per liberare la mia mailbox.

N.B. Il comando Telnet sarà trattato in modo approfondito nel Vol 2°, in quanto è utilizzato dagli hacker.

86

La trasmissione dei dati

Guida TCP/IP Avanzato: Miliardi di bit viaggiano ogni giorno sulla Rete. Vi siete mai chiesti come fanno ad arrivare al corretto destinatario? In questo articolo vi presentiamo "la suite di protocolli TCP/IP" cioè le regole utilizzate per la trasmissione su Internet. Il nome completo è TCP/IP Internet Protocol Suite, ed è un insieme di protocolli di trasmissione di cui i due principali sono appunto il TCP (Transmission Control Protocol) e l'IP (Internet Protocol). Ma che cosa è esattamente un protocollo? Essenzialmente è una serie di regole per comporre dei messaggi e per far sì che essi possano essere scambiati tra due macchine. Non stiamo parlando solo di computer. Anche una centrale telefonica meccanica può ricadere in questa definizione. Un protocollo può contenere rego-le estremamente dettagliate, come quelle che identificano il significato di ogni singolo bit nella costruzione di un messaggio, oppure fornire uno scenario di alto livello, come per esempio definire come avviene il trasferimento di un file da un computer a un altro. OSI MODEL Una generica architettura di trasmissione è formata da una torre a più piani, dove ogni piano rappresenta una precisa responsabilità nella trasmissione dei messag-gi. Alla base della torre sta la porta di accesso alla rete fisica, che potremmo pen-sare come una rete di strade. Ogni piano prende il messaggio che arriva dal piano superiore, lo mette in una busta con alcune informazioni aggiuntive, e lo passa come messaggio al piano inferiore. Le regole di comunicazione tra i vari piani sono dette interfacce. Il messaggio ri-sultante, formato da tante buste una dentro l'altra, viene immesso nella rete dalla porta che si trova alla base della torre. Una volta arrivato al piano terreno infatti, esso viene trasportato alla torre di destinazione e da qui risale un piano dopo l'al-tro fino all'ultimo piano, detto anche livello applicativo. Ogni piano della torre di destinazione apre solo la busta che gli compete e usa le informazioni aggiuntive per recapitare la busta successiva al piano superiore. Le informazioni aggiuntive rappresentano il protocollo di comunicazione. Ogni piano comunica quindi solo con il piano corrispondente. Esempio: il direttore della Pippo e Figli manda una lettera riservata al direttore della Pluto e Consorte. Il modo con cui i due comunicano, per esempio i riferi-menti a lettere precedenti, lo stile della lettera, il modo di salutare alla fine della lettera, e così via, rappresenta il protocollo ad alto livello, cioè quello applicati-

87

vo. Per spedire la lettera il direttore lo passa alla sua segretaria. Ciò avviene se-condo le regole interne della Pippo e figli, ed è perciò un'interfaccia. La segreta-ria prende la lettera, la mette in una busta aggiungendo il nome del destinatario e la scritta RISERVATO. Queste informazioni sono per la sua controparte nella Pluto e consorte, ed è quindi anch'esso un protocollo. La busta viene quindi pas-sata all'Ufficio Posta dell'edificio secondo la procedura ordinaria (altra interfac-cia), il quale aggiunge l'indirizzo completo, il CAP e altre informazioni necessa-rie alla spedizione, e la passa quindi al corriere, che rappresenta il meccanismo fisico di trasferimento del messaggio. Terzo protocollo. Quando la lettera arriva, questa viene gestita dall'Ufficio Posta della Pluto e consorte che, dopo aver but-tato la busta esterna con l'indirizzo dell'edificio, la passa alla segreteria del diret-tore. Questa registra l'arrivo della missiva, la toglie dalla busta più interna, e poi consegna la lettera vera e propria al direttore della Pluto e consorte. È evidente che perché il sistema funzioni bisogna che i vari protocolli siano ri-spettati da entrambe le aziende. Mentre infatti le interfacce possono essere diver-se (ogni azienda ha le sue procedure interne), i protocolli devono essere stati concordati prima, altrimenti alcune informazioni potrebbero andare perse, o ad-dirittura la lettera potrebbe non essere recapitata in tempo. Pensate a una segreta-ria italiana che riceve una busta da una consociata asiatica con sopra scritto UR-GENTE in cinese! Ne nasce una considerazione importante. La base di ogni protocollo è il concetto di standardizzazione. Più vasta è l'accet-tazione dello standard, più forte e diffuso è il protocollo. Gli standard internazio-nali sono in genere i più importanti, ma non sempre. Un esempio è proprio il TCP/IP, nato per volontà dell'agenzia americana DARPA (Defense Advanced Research Projects Agency) e poi diventato di fatto il maggior sistema di proto-colli per l'interconnessione di reti a livello mondiale. Internet Internet è fatta a strati, Internet è basato su tre livelli concettuali: il livello appli-cativo (Application Services), quello del trasporto (Reliable Stream Transport Service) e quello della spedizione dei pacchetti (Connectionless Packet Delivery Service). Per capire il TCP/IP, è necessario a questo punto capire bene che cosa è Internet. Tanto per cominciare Internet non è una rete di comunica-zione. Una rete di comunicazione è in genere legata alle necessità specifiche di chi l'ha disegnata e dell'hardware utilizzato per implementarla. Costruire una rete ideale che vada bene per qualsiasi esigenza, o pensare di poter limitare a un solo tipo di hardware l'implementazione di una qualunque rete non solo non è fattibi-le, ma neanche auspicabile, date le limitazioni delle tecnologie attuali. A volte è necessario far correre i dati molto velocemente in un ambito molto ristretto, co-me per esempio all'interno di un edificio. Altre volte si ha l'esigenza di trasmette-re dati a migliaia di chilometri di distanza in modo molto affidabile, anche se

88

questo può significare un rallentamento nella velocità di trasmissione. Se si cer-casse di utilizzare lo stesso hardware in entrambi i casi, i costi sarebbero assolu-tamente inaccettabili. Internetworking La soluzione è l'interconnessione delle reti, o internetworking. Grazie a ponti di collegamento (detti gateway) e la definizione di opportuni protocolli, si possono collegare fra di loro reti anche molto diverse, fornendone agli utenti una visione comune. Questa è la forza di Internet rispetto alle varie reti proprietarie, e di con-seguenza del TCP/IP sui vari protocolli proprietari. Il TCP/IP è un insieme di regole pubbliche, aperte a tutti, o come si dice nel-l'ambiente, un sistema aperto (open system), che permette l'interconnessione di reti anche molto differenti, indipendentemente dalla tecnologia usata da ogni re-te. I suoi principali vantaggi sono appunto l'indipendenza dalle tecnologie delle sin-gole reti interconnesse, la possibilità di far comunicare fra di loro ogni computer connesso al sistema, la possibilità di trasmettere conferme di ricezione (ackno-wledgement) direttamente dal destinatario al mittente, e soprattutto una notevole quantità di protocolli applicativi per qualunque possibile bisogno, come vedremo più avanti. Il TCP/IP definisce quindi una unità di trasmissione dati chiamata datagram, e le regole da seguire per trasmettere un datagram in una particolare rete. packet-switching Il principio che sta alla base dell'interconnessione è quello di schermare le appli-cazioni dalle caratteristiche fisiche delle reti in modo semplice e flessibile. Que-sto avviene attraverso un livello intermedio che si occupa di spedire e ricevere piccoli pacchetti di dati fra due punti qualsiasi del sistema di reti. Questo mecca-nismo si chiama packet-switching. Esso consiste nella divisione di ogni messaggio in un certo numero di pacchetti di dati. Ogni pacchetto è formato da poche centinaia di byte, e contiene una inte-stazione che fornisce informazioni sul destinatario e su come raggiungerlo. Que-sto meccanismo ha il vantaggio di ottimizzare l'utilizzo della rete, parallelizzan-do la trasmissione di più messaggi contemporaneamente. Lo svantaggio è che ogni nuovo sistema che si aggancia alla rete per trasferire dati riduce la disponi-bilità della rete per tutti gli altri sistemi già connessi. Una rete infatti ha una certa capacità ben definita, che dipende sostanzialmente dalla tecnologia hardware e software che utilizza. Tale capacità viene misurata in bit per second (bps). Que-sta grandezza non rappresenta la velocità dei dati in rete, come si potrebbe pensa-re in prima istanza, bensì dà una misura del numero massimo di bit che possono essere trasmessi nella rete in un secondo. La velocità reale di un singolo messag-gio dipende da tanti fattori, come il numero di sistemi che stanno utilizzando la rete, la qualità delle connessioni e di conseguenza il numero di tentativi necessari

89

per trasferire correttamente i dati, le modalità di trasmissione e i dati aggiuntivi necessari al trasferimento degli stessi. circuit-switching Ci sono altri modi per trasferire dati in una rete: per esempio, quando fate una te-lefonata, la rete stabilisce un collegamento diretto fra il vostro telefono e quello della persona chiamata. A questo punto il telefono incomincia a campionare il microfono della vostra cornetta in modo continuo, trasferendo il segnare al rice-vitore all'altro capo. Il tutto a 64.000 bit per secondo, che è la velocità di cam-pionamento necessaria a digitalizzare la voce. Questo avviene comunque, indi-pendentemente dal fatto che stiate parlando o meno. Anche se state in silenzio la linea è saturata al massimo della sua capacità. Questo meccanismo è detto cir-cuit-switching. Al contrario del meccanismo usato dal TCP/IP, quello cioè a pac-chetti, la linea è completamente assegnata alla comunicazione in atto, per cui il fatto che altri stiano telefonando non riduce la capacità della connessione. D'altra parte la linea è utilizzata completamente indipendentemente dal fatto che ci siano o meno dati da trasferire. Di qui gli elevati costi di tale meccanismo. La telefona-ta, infatti, la pagate lo stesso sia che parliate molto velocemente, sia che stiate completamente in silenzio. Questo meccanismo è troppo costoso per una rete in-formatica, specialmente se si tiene conto che la disponibilità di tecnologie hardware sempre più raffinate e veloci per il trasferimento dei dati bilanciano in buona parte quello che è uno dei punti deboli del sistema a pacchetti, e cioè l'im-possibilità di garantire a ogni utente e in ogni momento una certa capacità di tra-sferimento ben definita. “internet” e “Internet” Torniamo al sistema a pacchetti. Per trasferire dati da un sistema a un altro ogni sistema ha un nome unico ben definito. Non esistono cioè due sistemi con lo stesso nome, anche se in reti diverse, indipendentemente da quale è il nome loca-le di un sistema nella sua rete di appartenenza. All'interno di ciascuna rete, i vari computer usano la tecnologia hardware e software specifica di quella rete. Tutta-via, grazie a questo strato intermedio di software, le varie applicazioni hanno una visione unica e globale del sistema interconnesso di reti, detto appunto internet. Notate la "i" minuscola. Il concetto di internet è infatti quello appena descritto. Viceversa Internet con la "I" maiuscola, identifica quel sistema di reti, basato sull'architettura internet, che viene detto anche Connected Internet. internet gateway (IP router) La connessione tra due reti avviene attraverso macchine opportune che sono col-legate fisicamente a entrambe le reti, e hanno la responsabilità di far passare i va-ri pacchetti da una rete all'altra e viceversa. Tali macchine sono dette internet ga-teway, o anche IP router. Sono loro il vero elemento portante di una internet. Ogni router non solo deve sapere che determinati pacchetti vanno passati da una

90

rete a un'altra, ma deve passare dall'altra parte anche pacchetti destinati a ulterio-ri reti connesse attraverso altri router. Essi però ragionano solo in termini di reti, non di destinazione finale. A un router non interessa chi è effettivamente il desti-natario di un pacchetto, ma solo a quale rete appartiene. Questo semplifica molto l'implementazione di un router. Alla base del meccanismo dei router c'è l'indiriz-zo IP, o IP address. IP address Ogni cosa che conosciamo ha un nome. Cane, casa, auto, e via dicendo. Se ci in-teressa specificare meglio ciò di cui stiamo parlando, possiamo assegnare un nome anche a un sottogruppo di cose. Così abbiamo che i cani bassotti sono al-quanto diversi dai San Bernardo, una catapecchia non è certo una villa, e una Ferrari costa un po' più di una Cinquecento. Se poi dobbiamo identificare una cosa in modo chiaro e univoco, è necessario assegnarle un nome che solo quella cosa ha. Già un nome come Mario Rossi non va bene, perché non è unico, e co-munque, anche se scegliessimo oggi un nome veramente strano e originale, non avremmo la garanzia in futuro di non ritrovarci con un caso di omonimia. Ecco allora le targhe per le automobili, i codici fiscali per le persone, i numeri di tele-fono, e via dicendo. Ognuno di questi nomi ha tre caratteristiche. La prima è che esiste un organo competente centrale che li assegna, proprio per garantirne l'uni-vocità. La seconda, è che hanno una struttura a sottogruppi. Esistono cioè degli elementi che garantiscono l'univocità a un certo livello, all'interno del quale esi-ste una certa libertà di scelta, e così via, livello dopo livello. Per esempio, il co-dice fiscale viene costruito in modo che un uomo e una donna non possano mai avere lo stesso codice, anche se fossero nati lo stesso giorno, nella stessa città e si chiamassero nello stesso modo. Similmente, i numeri di telefono di due città diverse si distinguono per il prefisso e se queste si trovano anche in stati diversi, per il prefisso internazionale. Affinché internet possa rappresentare un sistema universale di comunicazione, permetta cioè di far comunicare qualunque macchina connessa a una delle sue re-ti con una qualsivoglia altra macchina connessa alla stessa o a un'altra rete, è ne-cessario fornire ogni macchina di un nome unico a livello globale. Internet forni-sce ogni sistema di un nome, che identifica il sistema stesso, di un indirizzo, che mi dice dove si trova il sistema, e di un cammino, che mi dice come raggiungere il sistema. Ogni macchina connessa a una rete è detta host, nella terminologia internet. Lo stesso termine ha significati differenti in altri contesti informatici, come per esempio in quello client/server, o nel caso di mainframe. Attenzione a non fare confusione quindi. In internet un host può essere anche un vecchio 8088 con 640K di RAM e 10M di disco fisso.

91

IP address, classi L'indirizzo, o IP address, è un campo composto da 32 bit. I primi bit permettono di distinguere 5 forme standard identificate da una lettera dell’ alfabeto, e dette classi. Le prime tre classi dell'IP address contengono sia l'indirizzo di una rete (netid), sia quello di una macchina nella stessa (hostid). In realtà l'indirizzo non identifica necessariamente una macchina, ma una connessione alla rete. Per e-sempio, un router ha almeno due indirizzi, avendo connessioni ad almeno due re-ti. Questo in quanto un router appartiene a entrambe le reti, e quindi sono neces-sari due indirizzi dato che un IP address ha posto per un solo indirizzo di rete. Se l'indirizzo dell'host è 0, allora l'IP address si riferisce alla rete stessa. Se vicever-sa tutti i bit riservati all'indirizzo dell'host sono 1, allora l'indirizzo viene utilizza-to per identificare tutti gli host della rete (broadcasting). Uno speciale indirizzo formato da 32 bit posti a uno (255.255.255.255)è chiamato local network broa-dcast address e serve solo in casi molto particolari. Il concetto di broadcasting è quello della diffusione a tutto raggio, un po' come fa un'emittente radiofonica. In generale internet interpreta i campi formati da tutti uno come all, cioè "tutti", mentre quelli formati da tutti zero come this, cioè "questo", "qui". Questo per quanto riguarda le classi A, B e C. La classe D è usata per un particolare tipo di distribuzione dei dati detto multicasting. La classe E è riservata a usi futuri. Dato che specificare ogni singolo bit di un indirizzo IP sarebbe alquanto poco pratico e di scarsa leggibilità, la convenzione è quella di leggere ogni ottetto, cioè ogni gruppo di 8 bit, come un intero, e di separare i quattro ottetti con un punto. Oltre a i casi speciali già descritti, l'indirizzo di classe A 127.0.0.0(loopback) è riser-vato per un particolare processo di test che rimanda indietro i dati al mittente senza propagarli nella rete. Uno dei vantaggi di questo schema è la possibilità da parte dell'organismo cen-trale che assegna gli indirizzi (Network Information Center) di delegare ai re-sponsabili delle singole reti l'assegnazione di una parte dell'indirizzo all'interno della rete stessa. La cosa avviene un poco come con i numeri di telefono. A livel-lo internazionale ogni stato ha il suo prefisso internazionale. Per esempio, per l'I-talia, è 39. All'interno ogni stato divide il paese in aree geografiche a cui assegna un ulteriore codice. Per esempio, Roma è identificata dal 06, Milano dal 02, Fi-renze da 055, e così via. All'interno poi della provincia o della città possono es-sere definite ulteriormente sottoaree a cui si assegnano due, tre o quattro cifre. Per esempio 529 oppure 7054. Infine ogni telefono in tali aree avrà il suo nume-ro. Così, se Mr. Smith deve chiamare dagli Stati Uniti il signor Mario Rossi abi-tante all'EUR, a Roma, comporrà per esempio il numero 011.39.6.529.4467. In questo caso lo 011 serve per uscire dagli USA, un po' come il nostro 00.

92

Analogamente in internet i numeri di classe C sono assegnati alla piccole reti, quelle cioè con meno di 256 host, quelli di classe B alle reti con al massimo 65536 host, e quelli di classe A alle reti con oltre 16 milioni di host. Ogni rete decide poi come suddividere gli indirizzi che gli sono stati riservati al suo interno come meglio crede. Ovviamente, una internet privata non ha la ne-cessità di seguire queste regole, né a utilizzare indirizzi assegnati dal NIC, ma il non farlo potrebbe impedire in futuro la connessione alla TCP/IP Internet. Name server Dato che l'indirizzo può essere a volte abbastanza ostico da ricordare, è possibili associare a ogni host anche un nome, che può essere utilizzato come mnemonico per un IP address, e la cui risoluzione è responsabilità di particolari macchine chiamate name server. In realtà il name server è un programma software che può girare in qualunque macchina connessa alla rete, e che mantiene l'associazione tra nomi e indirizzi IP, fornendo tali corrispondenze quando richiesto da un altro programma chiamato name resolver. Di fatto, si preferisce far girare il name server su una macchina dedicata, che prende anch'essa, a questo punto, il nome di name server. Potete pensare al name server come a una agenda telefonica elet-tronica, che contiene una lista parziale di nomi e numeri telefonici. In internet in-fatti, non esiste un singolo elenco telefonico, ma tanti name server che cooperano per fornire quello che è un vero e proprio elenco distribuito. In realtà il sistema funziona in modo gerarchico, un po' come se una certa agenda contenesse solo i prefissi internazionali e il puntatore alle agende di ogni singolo stato, le quali a loro volta contengono i prefissi regionali e i puntatori agli elenchi regionali, e così via, fino ad arrivare all'agenda che contiene solo le estensioni telefoniche di un singolo edificio. DNS e domini I nomi Internet sono basati su una serie di regole dette Domain Name System (DNS), che si basa appunto su uno schema gerarchico in cui il nome è suddiviso in varie parti separate fra loro da punti. Per esempio, vnet.ibm.com. Ogni suffis-so è a sua volta un dominio. Quindi, nel nostro esempio, ibm.com è un dominio di secondo livello, mentre com è un dominio di terzo livello. Una rete può ri-chiedere di essere registrata come categoria, oppure usando il dominio geografi-co. Per esempio, l'Italia ha come dominio base it. Supponiamo che il governo de-cida di costruire un insieme di reti cittadine interconesse fra loro e connesse a Internet. Si può pensare di assegnare a ogni provincia un dominio xxxxxx.it. Per esempio, Firenze avrebbe come dominio firenze.it. L'università di Firenze po-trebbe registrare la sue rete come unifi.edu, e in tal caso sarebbe direttamente il NIC a dover dare l'autorizzazione per tale nome, essendo il dominio edu sotto re-sponsabilità dell'organismo centrale di controllo, oppure potrebbe decidere di far parte del dominio cittadino, come unifi.firenze.it, e quindi potrebbe richiedere il permesso di registrare tale nome direttamente all'amministratore del dominio di

93

Firenze. A questo punto, se il dipartimento di Fisica di Arcetri vuole registrare un proprio dominio, deve chiederlo solo all'Università stessa, ricevendo così, per esempio, arcetri.usf.fi.it oppure fisica.usf.fi.it. Esiste una piccola complicazione. Ogni oggetto connesso alla rete ha un tipo. Oggetti di tipo diverso possono avere lo stesso nome. Per cui, per poter risolvere un nome e ottenere indietro l'indirizzo IP, è necessario anche specificare il tipo di oggetto: macchina, utente, casella postale, e via dicendo. Dal solo nome non è possibile evincere il tipo di oggetto. Il DNS definisce anche come associare i nomi agli indirizzi IP, e come ottenere quest'ultimi dal nome. In realtà lo schema è ancora più generale di quanto può sembrare, in quanto permette di estendere la sintassi del nome per usi specifici, sfruttando anche il concetto di tipo. Per esempio, nel caso di una casella postale (tipo MX), il nome sarà del tipo utente@dominio. Per esempio [email protected] Innanzi tutto una internet è un sistema di interconnessione fra reti differenti che utilizza sia sistemi dedicati per la connessione, detti gateway, sia uno strato (la-yer) di protocolli che mostrano alle applicazioni una visione omogenea di una re-te virtuale e che sono basati sulla trasmissione di piccoli pacchetti di dati. Ogni pacchetto porta con sé l'indirizzo del destinatario il quale identifica univocamen-te sia la rete di destinazione che la connessione alla quale deve essere recapitato il pacchetto. Un sistema connesso a più reti della stessa internet avrà quindi più indirizzi IP. Un opportuno software, spesso installato su macchine dedicate, permette di associare a ogni indirizzo un nome di più facile utilizzo da parte de-gli utenti del sistema. Il formato di questo nome si basa su un insieme di regole dette DNS. Quella che è universalmente conosciuta come Internet è di fatto la principale rete interconnessa esistente, che si estende praticamente su tutto il pia-neta. Reti A questo punto i sistemi sono in grado di scambiarsi i dati in modo non equivo-co. Ma come fa a sapere la rete internet che un sistema è collegato, e soprattutto, come avviene l'associazione tra l'IP address e l'indirizzo fisico di rete? Ogni rete fisica infatti ha un suo formato per gli indirizzi fisici assegnati alle connessioni di rete. Nelle reti Ethernet, ogni scheda ha già reimpostato, da parte del costruttore, un indirizzo fisico fisso, per cui non c'è alcun rischio di collisione, ma cambiare la scheda vuol dire dover necessariamente cambiare indirizzo fisico. Inoltre, dato che questo indirizzo è unico non solo fra le schede installate su una certa rete, ma in assoluto fra tutte le schede costruite, esso è generalmente molto lungo. Nel ca-so di Ethernet è di ben 48 bit.

94

ARP Associare un IP address a un sistema con indirizzi formati da piccoli numeri e per giunta tali che a parità di connessione l'indirizzo non cambia mai, come nel caso di una rete proNET-10(rete Token Ring), è molto semplice. Per esempio, per un IP address di classe C, si può usare l'indirizzo fisico come host identifier. Così, se la rete ha IP address del tipo 10.214.32.x, l'host con indirizzo fisico 16 avrà IP address 10.214.32.16. Un altro paio di maniche è gestire indirizzi molto più lunghi dei 32 bit utilizzati per gli indirizzi internet, e per giunta che possono cambiare nel tempo a parità di connessione. Ovviamente si potrebbe tenere da qualche parte una tabella per gli accoppiamenti, e di fatto si fa così, ma non è certo molto pratico pensare che qualcuno la tenga aggiornata a mano. Il proble-ma è stato risolto efficacemente utilizzando un meccanismo di risoluzione dina-mica implementato dal protocollo ARP, o Address Resolution Protocol. ARP funziona più o meno così. Quando un host deve spedire un pacchetto a un certo destinatario, spedisce a tutti gli host nella stessa rete fisica un messaggio in cui chiede chi è l'host con quel ben preciso IP address. Nello stesso messaggio mette anche i propri indirizzi, sia quello fisico che quello IP. Si adopera cioè una tecnica di broadcasting. L'host il cui IP è quello cercato, rimanda indietro al ri-chiedente il proprio indirizzo fisico, permettendo così l'associazione tra i due. Ciò è possibile in quanto esso ha comunque ricevuto anche l'indirizzo fisico del mittente. Ma allora per ogni pacchetto che va spedito a un certo IP address è ne-cessario prima mandare un pacchetto a tutti gli host nella rete? E perché allora non mandare direttamente il pacchetto da trasmettere a tutti, invece di chiedere prima chi è che ha un certo indirizzo IP? Ovviamente la cosa non funziona così, anche perché si rischierebbe di appesantire inutilmente la rete con pacchetti che vengono recapitati ai sistemi sbagliati. Quello che si fa è di mantenere presso ogni host una tabella con tutti gli accoppiamenti già trovati, e di aggiornarla pe-riodicamente per evitare che diventi obsoleta. A questo punto i meccanismi di broadcasting servono ad aggiornare tali tabelle. Per esempio, se un host deve spedire un pacchetto a un certo indirizzo IP, prima controlla nella sua tabella se non ha già l'indirizzo fisico del destinatario. Solo nel caso l'informazioni manchi, l'host spedisce a tutti gli altri host il messaggio di richiesta. Quando questo arriva a un qualunque host, sia esso il vero destinatario o no, ogni host aggiorna la sua tabella con l'indirizzo fisico e quello IP del mittente, tanto per guadagnare tempo. Il destinatario, in più, spedisce indietro anche il suo indirizzo fisico al mittente, così da potergli permettere di aggiornare la sua tabella di indirizzi. Un'ulteriore tecnica che si usa per assicurarsi che tali tabelle siano sempre aggiornate, è quel-la di far distribuire la propria coppia di indirizzi, fisico ed IP, ogni qual volta un sistema si connette alla rete, per esempio al reboot.

95

RARP ARP non viene considerato propriamente un protocollo internet, quanto un mec-canismo della rete fisica. Su ARP si basa il protocollo IP per far comunicare fra loro le varie macchine quando non è possibile risolvere in altro modo gli indiriz-zi IP in indirizzi fisici. Un protocollo analogo è il RARP, o Reverse Address Re-solution Protocol, con il quale una macchina senza disco fisso (diskless) è in grado di conoscere il proprio indirizzo IP a partire da quello fisico. Per far ciò la rete deve avere uno o più RARP Server, i quali contengono una tabella di asso-ciazione fra gli indirizzi IP e quelli fisici di tutte le macchine diskless. Anche questo protocollo si basa su un messaggio mandato in broadcasting. L'esistenza di questo protocollo è legata al fatto che una macchina diskless non può memo-rizzare il proprio indirizzo IP in alcun posto, non avendo memoria secondaria. TCP/IP E veniamo ora al TCP/IP vero e proprio. Come detto prima l'architettura internet è basata su tre livelli. L'Application Services è il livello più alto, cioè quello del-le applicazioni. I programmi che utilizzate quando usate internet ricadono in que-sto livello. Il Reliable Stream Transport Service è il livello intermedio. Esso si occupa dell'affidabilità della comunicazione, gestendo gli errori di trasmissione e la perdita di eventuali dati. Esso inoltre fornisce una visione della comunicazione ad alto livello, in cui esiste una connessione tra i due host che si trasmettono grandi volumi di dati. Il livello più basso, chiamato Connectionless Packet

Delivery Service è quello che effettua la spedizione vera e propria dei singoli pacchetti, senza garantire l'affidabilità sulla singola trasmissione, nella modalità detta connectionless. Il protocollo su cui si basa il livello più basso della torre internet è appunto l'In-ternet Protocol, o IP. Tale protocollo si basa su alcuni concetti fondamentali. In-nanzi tutto il servizio che fornisce è detto unreliable, cioè inaffidabile, in quanto non dà alcun garanzia che il singolo pacchetto arrivi effettivamente a destinazio-ne. In secondo luogo è detto connectionless, cioè senza connessione diretta, in quanto la trasmissione non avviene direttamente verso il destinatario, ma il mes-saggio è lanciato nella rete lasciando poi a questa il compito di portarlo a desti-nazione utilizzando l'indirizzo IP dell'host destinatario. Infine si parla di best-

effort delivery, cioè spedizione al meglio delle possibilità, in quanto la rete fa tutto il possibile per portare comunque a destinazione il pacchetto. In pratica l'IP si comporta come un naufrago su un'isola deserta che lancia nella corrente un messaggio in una bottiglia per un tizio che si trova su di un'altra isola dello stesso arcipelago, contando sul fatto che se la bottiglia arriva sull'isola sbagliata qual-cuno ributterà a mare il messaggio fintanto che non arriverà a destinazione. Detta così c'è quasi da stupirsi che internet funzioni così bene. Anzi, che funzioni del tutto! In realtà non dimentichiamoci che sopra al livello più basso ce n'è un altro che garantisce appunto l'affidabilità della comunicazione. Torniamo comunque

96

all'IP. Esso è formato da tre regole base: come è fatto il pacchetto da trasmettere, detto IP datagram, come avviene la scelta del cammino che il pacchetto segue per raggiungere il destinatario, come gli host e i gateway devono trattare i pac-chetti e in particolare le modalità per l'emissione dei messaggi di errore e quelle per la soppressione dei pacchetti. Prima però di entrare nel dettaglio dei singoli campi, vediamo come si comporta l'IP nella gestione dei pacchetti di dati. Questo ci permetterà più avanti di com-prendere meglio il significato di alcuni campi dell'IP datagram. Ricapitolando Innanzi tutto va ricordato che l'IP è un protocollo unreliable, non dà cioè alcuna garanzia che il singolo pacchetto arrivi effettivamente a destinazione, ed è con-

nectionless, ovverosia il messaggio non viene spedito direttamente al destinata-rio ma viene immesso nella rete lasciando poi a questa il compito di portarlo a destinazione. Esso inoltre è di tipo best-effort delivery, in quanto la rete fa tutto il possibile per portare comunque a destinazione il pacchetto. Trasmissione dei dati (datagram, MTU) Detto questo, vediamo come avviene la trasmissione vera e propria dei dati. L'u-nità fisica di trasferimento dei dati in una rete è la frame. Questa è composta di due parti: l'intestazione (header) e l'area dati (data area). L'unità di misura è inve-ce l'ottetto, formato da otto bit, cioè un byte. Ogni rete fisica ha un limite massi-mo di capacità di trasferimento per un singolo frame, detto Maximum Transfer

Unit (MTU). L'MTU è cioè il massimo numero di ottetti di dati che può essere trasferito in un singolo frame. Per esempio, Ethernet ha generalmente una MTU di 1.500 ottetti (1492 secondo lo standard IEEE 802.3). Questo vuol dire che se si devono spedi-re 2.000 byte di dati via Ethernet, è necessario spezzarli in due blocchi tali che ogni blocco sia minore o uguale a 1.500. A ogni blocco si aggiunge poi l'intesta-zione del frame. Dal punto di vista della rete fisica l'IP datagram è un blocco di dati. La rete fisica ignora cioè come tali dati vengano utilizzati dall'IP. Quindi, il primo compito di IP è quello di decidere come costruire il datagram affinché possa essere trasmesso in un frame fisico. L'ideale sarebbe di poter mettere un singolo datagram in ogni frame, ottimizzando così la trasmissione e semplifican-do la logica. Ma quale frame? Quello della rete di partenza? Quello della rete di arrivo? E se durante la trasmissione il datagram deve passare attraverso più reti con MTU differenti? Il punto è che non c'è modo di fare una scelta che assicuri di avere un datagram per frame. D'altra parte internet ha come obiettivo quello di svincolarsi dalle caratteristiche fisiche delle varie reti interconnesse fra loro. E allora? La soluzione adottata è molto semplice. Le dimensioni del datagram sono scelte convenzionalmente secondo una logica del tutto indipendente dalle MTU

97

delle singole reti fisiche, dopodiché, a seconda della rete in cui il datagram deve passare, questo è spezzato in più pezzi di dimensioni inferiori alla MTU della re-te fisica, detti frammenti (fragment). Il datagram è anch'esso un frame, che potremmo chiamare logico per distinguerla da quello usata da una specifica rete fisica per trasmettere i dati. Come tale an-ch'esso è formato da una intestazione e da un'area dati. All'atto della frammenta-zione, ogni frammento viene costruito replicando l'header del datagram, modifi-candone alcuni campi che vedremo in seguito, e aggiungendo a questo un pezzo dell'area dati originaria. L'aspetto più importante di questo meccanismo è che il riassemblaggio dei frammenti non viene effettuato quando i vari frammenti rien-trano in una rete fisica ad alto MTU, ma sempre e comunque presso l'host di de-stinazione. Così, se due reti con MTU uguale a 1.500 ottetti sono separate da una rete con MTU più bassa, per esempio 500 ottetti, i frammenti che arriveranno a destinazione saranno di soli 500 ottetti. In questo caso la frammentazione avvie-ne nel primo gateway mentre il riassemblaggio avviene solo nell'host di destina-zione. Il protocollo IP richiede che sia gli host che i gateway siano capaci di ge-stire datagram di almeno 576 ottetti. In aggiunta, questi ultimi devono essere ca-paci anche di gestire datagram grandi quanto l'MTU più grande tra quelle delle reti a cui sono connessi. Ricordiamo che un gateway, per definizione, ha almeno due connessioni e quindi almeno due indirizzi IP. Il punto debole di questo meccanismo è che la perdita di anche un solo frammen-to comporta la perdita dell'intero datagram. Dato che ogni frammento è trasmes-so indipendentemente, passare attraverso reti a bassa MTU comporta un'elevata frammentazione anche nelle reti a maggiore MTU e comunque aumenta i rischi di perdita dei dati. Quando un frammento arriva a destinazione, e non è detto che il primo arrivi per primo, l'host fa partire un timer. Se questo scade prima che tut-ti i frammenti siano arrivati, il sistema cancella tutti i frammenti e considera per-duto il datagram. Il concetto di timer e di tempi è estremamente importante per l'IP ed è spesso usato per ottimizzare la rete. Per esempio, ogni datagram ha una scadenza. Se il datagram è ancora all'interno della rete quando il suo tempo è scaduto, esso viene cancellato definitivamente. Lo scopo è quello di evitare che un pacchetto possa restare all'infinito in internet a causa di un errore in una rou-ting table. Queste tabelle infatti servono a gestire il processo di instradamento del pacchetto nella rete. Se una o più tabelle sono sbagliate, si potrebbero creare cammini chiusi in cui i datagram potrebbero rimanere intrappolati.

98

Routing Parliamo ora di due aspetti fin qui solo accennati: i meccanismi di instradamento dei pacchetti (routing) e la gestione degli errori. Incominceremo a salire nella torre dei protocolli internet, introducendo il primo protocollo che si poggia sul-l'IP, e precisamente lo User Datagram Protocol (UDP). Come vedremo si tratta ancora di un protocollo molto legato all'IP, ma comunque considerato al di sopra di questo. Come abbiamo già detto in precedenza, IP è un protocollo connectionless. Que-sto vuol dire che non esiste un collegamento diretto tra i due host che si scam-biano dati, bensì una rete di connessioni attraverso la quale si possono identifica-re vari potenziali cammini da un host all'altro. Il cammino attraverso il quale i dati giungono all'host destinatario è scelto dinamicamente e può variare per ogni singolo pacchetto di dati. Tale scelta non avviene quando il pacchetto parte, ma è il risultato di numerose decisioni prese a ogni singolo gateway. Per questo motivo i gateway sono detti anche router. Tali scelte possono dover tenere conto di molti elementi, quali la priorità del messaggio, il carico di rete, la capacità delle reti intermedie, e via di-cendo. La base tuttavia del meccanismo sono le tabelle di instradamento (routing table). Vediamo di che si tratta. Consideriamo prima una singola rete fisica. Se un host vuole spedire un messag-gio a un altro host nella stessa rete, non deve far altro che incapsulare il messag-gio in un datagramma IP fornendo quindi l'indirizzo IP del destinatario, e passare il tutto al livello inferiore. Questi provvederà a ricavare dall'indirizzo IP l'identi-ficativo del destinatario nella rete fisica, a incapsulare il datagramma in un fra-me, e a spedire direttamente il tutto all'host finale . Questa tecnica si chiama in-stradamento diretto (direct routing). Vediamo adesso quello che succede quando abbiamo due reti interconnesse tra-mite un gateway. L'host mittente si accorge che il destinatario non è nella sua re-te fisica, dato che il network id del suo indirizzo IP è diverso da quello a cui deve spedire il datagramma. Spedisce allora il messaggio al gateway passando sia il datagramma che l'indirizzo IP del gateway al livello inferiore. Il messaggio arri-va quindi direttamente al gateway che estrae l'indirizzo IP del destinatario, si ac-corge che fa parte della seconda rete a cui è connesso, e spedisce quindi il tutto all'host finale attraverso la rete fisica. Questa tecnica si chiama di instradamento indiretto (indirect routing). In questo secondo caso la tabella di instradamento è semplice, dato che il gate-way ritrasmette sempre i messaggi che devono andare da una rete all'altra attra-

99

verso la rete fisica. Se invece abbiamo più gateway tra i due host, ogni gateway, tranne l'ultimo, dovrà spedire il messaggio a un altro gateway. Per far questo userà appunto la tabella di instradamento che fornisce per ogni possibile rete destinataria finale l'indirizzo IP del gateway successivo. È da nota-re che queste tabelle non contengono di solito gli indirizzi IP di tutti i possibili host destinatari, cosa che sarebbe fisicamente impossibile, bensì gli indirizzi del-le reti raggiungibili a partire da quel gateway. Esiste poi la possibilità di specifi-care un gateway di default e cammini specifici per host speciali. La prima cosa è molto comune, mentre la seconda è usata solo in casi eccezionali. La logica di instradamento è quindi quella riportata nel diagramma. ICMP La gestione dei messaggi di errore: Come si può facilmente capire dal meccani-smo di instradamento appena spiegato, non è possibile sapere se il destinatario effettivamente esiste fintanto che il datagramma non arriva all'ultimo gateway. In generale l'IP non contiene grossi meccanismi di verifica, ed è per questo che è detto "inaffidabile". Esso richiede quindi un protocollo ausiliaro per l'emissione di messaggi di errore in rete, che permettano ai protocolli di livello superiore di implementare una logica più affidabile e robusta. Tale protocollo è chiamato Internet Control Message Protocol (ICMP). L'ICMP è considerato parte integrante dell'IP ed è sostanzialmente un protocollo per la segnalazioni di errori il cui utente principale è l'IP stesso. Solo in casi par-ticolari l'ICMP arriva a informare dell'errore eventuali livelli superiori all'IP. In ogni caso cosa fare quando avviene un errore non spetta all'ICMP, ma ai processi che se ne avvalgono. L'ICMP informa sempre l'IP mittente, non i vari gateway intermedi. Questo in quanto del cammino percorso da un datagramma non rima-ne traccia, per cui l'unico possibile destinatario di un messaggio di errore è solo chi ha generato il datagramma. Inoltre, dato che i datagrammi ICMP viaggiano incapsulati in datagrammi IP, come un qualunque messaggio di livello superiore, essi sono soggetti alle stesse limitazioni in termini di affidabilità di qualunque al-tro messaggio spedito via TCP/IP. Non analizzeremo in dettaglio tutti i data-grammi ICMP, anche perché ognuno può avere una struttura differente. Diremo solamente che l'intestazione di un datagramma ICMP contiene sempre almeno tre campi: il tipo di messaggio, un codice di errore, e una somma di controllo. Il livello di Trasporto:Come sicuramente ricorderete, la torre Internet si può schematizzare più o meno su quattro livelli. Alla base della torre sta l'hardware che rappresenta la rete vera e propria. Sopra a questo sta il primo livello, quello cioè di interfaccia alla rete fisica, detto appunto Network Interface o anche Data Link. I protocolli a questo livello si scambiano blocchi di dati chiamati frame, la cui struttura è strettamente legata alle caratteristiche hardware della rete stessa.

100

Al di sopra di questo livello c'è il livello di interconnessione fra reti, ovverosia il livello dell'IP la cui unità di scambio dati è appunto il datagramma IP, mentre il terzo livello è quello detto di Trasporto. Concettualmente è a questo livello che si pongono sia il TCP che appunto l'UDP. L'unità di scambio dati al terzo livello si chiama pacchetto (transport packet). Il quarto livello è infine quello Applicativo, al quale vengono scambiati i messaggi applicativi (message e data stream). Abbiamo visto come l'IP permette di scambiare datagrammi fra host, cioè a livel-lo di macchine. Tuttavia non è certo la macchina il destinatario finale dei dati che fluiscono nella rete, bensì le applicazioni e i programmi che girano su di essa. I moderni sistemi operativi permettono di far girare più processi contemporanea-mente, e comunque questi non hanno le caratteristiche di permanenza che ha in-vece un host. Un programma infatti è un componente dinamico e temporaneo in un sistema. Non è quindi pensabile di poter associare a un processo un identifica-tivo fisso come si fa con gli host e gli indirizzi IP. Un processo infatti non ha un identificativo univoco in un sistema, dato che ogni volta che viene lanciato esso può assumere un identificativo diverso. Inoltre non è detto che gli stessi dati sia-no sempre processati dalla stessa applicazione. Per esempio, oggi potrei voler usare un certo programma per gestire la mia posta elettronica, domani potrei de-cidere di usarne un altro, e non è sicuramente pensabile che si debba informare tutta la rete ogni volta che si decide di cambiare l'applicazione che gestisce un certo tipo di dati. Quindi, più che il processo, quello che è importante identificare è la funzione, come per esempio, trasferire file oppure spedire posta elettronica. Lo scopo dell'UDP è appunto quello di permettere di distinguere in un singolo host più destinatari per i dati che arrivano dalla rete. Ma come? Facciamo un attimo una digressione. Se io devo stampare un file cosa faccio? Collego al mio computer una stampante, attivo il driver corrispondente, e uso una applicazione o un comando del sistema operativo per lanciare l'ordine di stampa. Se ora stacco la stampante e ne attacco un'altra alla stessa porta non devo far altro che cambiare il driver per continuare a lavorare senza che il sistema si sia accorto di niente. Se poi le due stampanti usano lo stesso driver generico de-vo solo staccare e riattaccare fisicamente le stampanti senza modificare il siste-ma. In generale, tutto lo scambio di dati da e verso un computer avviene attraver-so porte di I/O. Ogni applicazione accede la porta che gli serve in modo dinami-co. La periferica di I/O non ha bisogno di sapere con quale applicazione sta par-lando: la porta fa da schermo fra i due. L'UDP fa una cosa analoga. Esso permet-te di associare a un indirizzo IP più punti di ingresso e di uscita virtuali, detti protocol port. Queste porte si comportano un po' come quelle di I/O di un com-puter. Ogni porta è identificata da un numero intero positivo e i processi possono chiedere al sistema l'accesso a tali porte. Quando un processo accede una porta,

101

esso si mette in attesa dei dati sulla stessa. Il meccanismo è cioè sincrono. Inol-tre, se dei dati arrivano a una porta alla quale non si è agganciato ancora un pro-cesso, questi vengono mantenuti in memoria nell'ordine di arrivo. Si dice cioè che le porte hanno un buffer. A questo punto, sia il processo mittente che quello destinatario sono univocamente identificati dall'indirizzo IP dell'host su cui gira-no e dal numero di porta che utilizzano per la trasmissione in rete. Tale associa-zione è tuttavia dinamica, e così come più applicazioni possono stampare sulla stessa stampante purché non contemporaneamente, così più processi possono at-taccarsi uno alla volta alla stessa porta ed essere visti come lo stesso destinatario dalla controparte mittente. Questo permette di spedire un file di testo con un word processor, e subito dopo spedire un file binario, per esempio un file ZIP, con un comando di sistema. Il tutto sempre attraverso la stessa porta e con lo stesso destinatario in termini di host e di processo. UDP Come abbiamo visto nel caso dell'IP e dei vari protocolli di rete, anche il data-gramma UDP è formato da una intestazione (header) e da una parte dati. Esso è inoltre incapsulato in un datagramma IP il quale a sua volta è contenuto in un frame della rete fisica. Al contrario tuttavia di quello IP, l'header UDP è molto più semplice. Esso è formato dal numero di porta del mittente, da quello del destinatario, dalla lun-ghezza del messaggio UDP, sia dei dati che dell'intestazione, e da una somma di controllo (checksum) per la verifica dell'integrità dei dati. Infatti, anche l'UDP, come l'IP, è un protocollo cosiddetto "inaffidabile". Questo vuol dire che un messaggio UDP può andare perso, essere duplicato, o arrivare nell'ordine sba-gliato. L'UDP non fa alcun controllo al riguardo. L'affidabilità della comunica-zione è infatti affidata a i protocolli di livello più elevato. Tutti i campi dell'inte-stazione sono lunghi 16 bit. Benché il formato del datagramma UDP sia alquanto semplice, la sua gestione può essere un po' più complessa. Il punto riguarda la somma di controllo. Questo valore è opzionale e, al contrario di quello che suc-cedeva con la somma di controllo nel datagramma IP, esso non è relativo solo al-l'intestazione ma a tutto il datagramma, compresa la parte dati. Questo vuol dire che tale campo rappresenta l'unico elemento di controllo a livello IP e UDP del-l'integrità dei dati arrivati. Se esso non viene utilizzato, il campo va posto a zero. Questo in quanto la somma di controllo segue la logica a complemento uno. Il che vuol dire che se la somma calcolata è zero, essa può essere memorizzata co-me 16 bit impostati a uno, dato che in tale logica un valore con tutti i bit a uno e uno con tutti i bit a zero rappresentano lo stesso numero. Quindi: se il campo è a zero, vuol dire che non è stato utilizzato; se viceversa ha tutti i bit ad 1, vuol dire che la somma era zero.

102

La somma di controllo, tuttavia, per ragioni pratiche, non riguarda solo il data-gramma UDP, ma viene calcolata anche utilizzando alcune informazioni addi-zionali. Queste formano il cosiddetto pseudo-header. In pratica, quando si deve calcolare il checksum UDP si mette davanti al data-gramma UDP un altro blocco di dati che contiene l'indirizzo IP del mittente e del destinatario, il codice del protocollo UDP (17), e la lunghezza del datagramma UDP. Il motivo di questa tecnica risiede nel fatto che, per verificare se un mes-saggio UDP è arrivato al giusto destinatario, non basta verificare il numero di porta, ma anche l'indirizzo IP dell'host in cui gira il processo che è collegato a quella porta. Il datagramma UDP contiene tuttavia solo il numero di porta, per cui il controllo fornito da una somma sul solo datagramma non potrebbe real-mente verificare che il destinatario dei dati è quello giusto. Questa tecnica ha tuttavia un prezzo: gli indirizzi IP fanno parte appunto del li-vello internet, non di quello di trasporto. Perché l'UDP conosca tali informazioni è necessario violare una legge fondamentale dei protocolli di comunicazione, e cioè che ogni livello della torre deve gestire i suoi dati senza esportarli agli altri livelli a cui offre, o da cui riceve, servizi. Questo vuol dire che la separazione tra UDP ed IP non è così pulita come dovrebbe essere, ma che i due protocolli sono in qualche modo legati tra loro. D'altra parte i vantaggi in termini di controllo e semplicità di implementazione sono tali che si è deciso di fare un'eccezione ai principi dell'architettura. Da notare che la pseudo-intestazione serve solo a calco-lare la somma di controllo. Essa non viene fisicamente trasmessa con il data-gramma UDP, dato che le informazioni che contiene fanno già parte dell'intesta-zione del datagramma IP in cui quello UDP sarà incapsulato. Se l’IP rappresenta il braccio del TCP/IP, il TCP ne rappresenta la mente. Il pri-mo si limita a spedire rapidamente i dati che gli arrivano senza preoccuparsi troppo se qualcosa va male. Il secondo si occupa invece di controllare che l’informazione passatagli dai livelli superiori arrivi correttamente a destinazione. Insieme sono sicuramente una coppia molto affiatata. In questo articolo useremo il termine applicazioni per indicare tanto i protocolli applicativi come FTP o SMTP, quanto i programmi applicativi veri e propri, sal-vo indicazione contraria. Indicheremo inoltre con il termine utente di un servizio colui che utilizza tale servizio, sia esso direttamente una persona, un’applicazione, o un protocollo. Per esempio, il TCP è un utente dell’IP. API (Application programming Interface) C’è subito da dire due cose importanti sul TCP. La prima è che lo standard del TCP non definisce né l’implementazione dello stesso, né le modalità con cui un’applicazione accede a i servizi di questo proto-

103

collo. Esso definisce solamente le caratteristiche di tali servizi, per cui si possono trovare molte differenti implementazioni del TCP, ognuna con la propria inter-faccia applicativa. Per chi non programma ricordo che un’interfaccia applicativa o API (Application Programming Interface) non è altro che l’insieme delle fun-zioni, delle istruzioni, dei parametri e dei blocchi di controllo che vengono uti-lizzati dai programmatori per accedere ai servizi di un sistema. Per esempio, se ho un sistema di posta elettronica potrei definire un’API basata su due funzioni, una chiamata spedisci, e una chiamata ricevi . La seconda fondamentale è che il TCP è stato definito per funzionare su un qualsiasi sistema di trasmissione dati a pacchetto, e non necessariamente solo sull’IP. Di fatto esso può essere poggiato, per esempio, direttamente sopra una rete Ethernet senza bisogno di un livello Internet intermedio. Ma qual è lo scopo del TCP nell’architettura internet? Il protocollo non fornisce le garanzie di affidabilità e robustezza necessarie per implementare un sistema di trasmissione dati sicuro e di facile gestione. Per avere un protocollo di trasmis-sione affidabile abbiamo bisogno di gestire tutte le possibili situazioni di errore, la duplicazione o la perdita dei pacchetti, la caduta delle connessioni o di un rou-ter, e via dicendo. Vediamo allora quali sono le caratteristiche principali del TCP, eventualmente comparate a quelle dell’IP. Primo punto: il TCP fornisce una visione dei dati di tipo a flusso (data stream), cioè i dati sono ricevuti in sequenza e nello stesso ordine con il quale sono stati trasmessi. A questo livello cioè, l’utente del TCP spedisce i dati come un singolo flusso di byte e nello stesso modo li riceve. Nell’IP avevamo invece la divisione dei dati in pacchetti che potevano subire un’ulteriore frammentazione se si tro-vavano a passare attraverso reti caratterizzate da una soglia molto bassa sulle di-mensioni dei frame fisici. I pacchetti potevano inoltre arrivare in ordine sparso rispetto a quello di trasmissione. Secondo punto: nell’IP non si sa mai a priori il cammino che effettua un pac-chetto. Il TCP fornisce al suo utente una visione del collegamento come se esso fosse una linea dedicata. Ovviamente sotto sotto il meccanismo è ancora quello a pacchetti, ma la cosa è schermata agli utilizzatori del TCP. Tale caratteristica è detta virtual circuit connection, cioè circuito di connessione virtuale. Il TCP si basi sul concetto di connessione, piuttosto che su quello di indirizzo come fa in-vece l’IP. Una connessione, per definizione, richiede la definizione di due punti piuttosto che di uno solo, detti punti terminali o estremi della connessione (en-dpoint).

104

Terzo punto: abbiamo visto che l’IP divide i dati in pacchetti che vengono co-struiti sulla base di esigenze di trasmissione legate alle varie reti fisiche su cui si poggia il sistema. D’altra parte le applicazioni dividono i dati in funzione delle esigenze applicative. Per esempio, un’applicazione di posta elettronica può con-siderare una lettera da 8.000 caratteri una singola unità dati, mentre un protocollo per la gestione della rete può avere l’esigenza di spedire tanti piccoli messaggi di non più di 16 byte l’uno. Il TCP permette di disaccoppiare il modo di dividere i dati delle applicazioni da quello dell’IP. Così la lettera di cui sopra viene prima spezzata in tante parti, spedita via IP e poi ricomposta dal livello TCP del desti-natario, mentre per i messaggi di controllo avviene il contrario: prima vengono accumulati in un singolo pacchetto, e poi rispezzettati presso il destinatario. Que-sto meccanismo è detto buffered transfer. Naturalmente può sorgere l’esigenza di forzare la trasmissione dei dati anche se il buffer non è pieno. Per esempio, se serve sapere se un certo sistema è attivo o meno manderò prima un messaggio di interrogazione, e solo una volta ricevuta la conferma incomincerò a spedire gli altri dati. Dato che il messaggio di interrogazione è più piccolo del buffer, esso non verrebbe realmente spedito dal TCP fintanto che questi non è stato riempito. È quindi necessario forzare la trasmissione del primo messaggio (push) se si vuole evitare di attendere inutilmente la risposta a un messaggio che in realtà non è mai partito. Quarto punto: per quanto intelligente, il TCP si preoccupa di trasferire i dati che gli vengono passati senza entrare in merito a il loro significato dal punto di vista applicativo. In che modo il flusso di dati vada interpretato semanticamente è re-sponsabilità delle due applicazioni che utilizzano la connessione TCP per coope-rare. Questo vuol dire che se un’applicazione manda alla sua controparte una se-rie di indirizzi, questi arriveranno uno di seguito all’altro nel giusto ordine, ma senza alcuna garanzia che ogni buffer contenga un numero intero di indirizzi. Sta all’applicazione ricomporre un indirizzo capitato a cavallo di due buffer consecu-tivi. Si parla quindi di flusso senza struttura (Unstructured Stream). Quinto e ultimo punto: le connessioni TCP permettono il trasferimento contem-poraneo dei dati in entrambe le direzioni, quello che nel gergo delle comunica-zioni si chiama una connessione full-duplex. Si hanno cioè due flussi che scorro-no indipendentemente in direzioni opposte, senza interagire fra loro. Le applica-zioni hanno comunque la possibilità di passare alla modalità half duplex sempli-cemente bloccando uno dei due flussi di dati. Ma in che modo il TCP garantisce quella affidabilità che manca all’IP? Il mec-canismo di base utilizzato sia dal TCP che da molti altri protocolli cosiddetti "af-fidabili" è quello della ritrasmissione in caso di mancata conferma (positive a-cknowledgement with retrasmission). Si tratta di un meccanismo concettualmen-te semplice: ogni qual volta uno dei due interlocutori di una connessione spedi-

105

sce dei dati, questi attende una conferma dell’avvenuta ricezione. Se questa arri-va entro un tempo stabilito viene spedito il pacchetto successivo, altrimenti l’applicazione rispedisce quello precedente. Tale tempo viene misurato con un timer che viene fatto partire ogni volta che un pacchetto è spedito. Questo mec-canismo risolve il problema dei pacchetti persi o danneggiati, ma può crearne un altro. Supponiamo che a causa di problemi di saturazione della rete un pacchetto ci metta molto più tempo del previsto ad arrivare. A questo punto il mittente, non vedendosi arrivare indietro la conferma ne rispedisce una copia. Succede così che il destinatario riceve a una certa distanza l’uno dall’altro due copie dello stesso pacchetto. Il problema della duplicazione dei pacchetti viene risolto fa-cendo numerare sequenzialmente al mittente tutti i pacchetti da spedire e facendo verificare al destinatario la sequenza ricevuta. Naturalmente questo non vale solo per i messaggi ma anche per le conferme agli stessi. Infatti anche una conferma potrebbe venire erroneamente duplicata. Per evitare questo ogni conferma riporta il numero di sequenza del messaggio a cui si riferisce, permettendo così al mit-tente di verificare che a ogni messaggio spedito corrisponda una e solo una con-ferma di ricezione. È un po' lo stesso meccanismo di una raccomandata con rice-vuta di ritorno. In realtà gli algoritmi utilizzati dal TCP sono un po' più complicati, e tengono conto di tutta una serie di situazioni che si possono verificare. Senza contare che il tempo di attesa prima della ritrasmissione è un punto chiave di tutto il discorso. Se si attende troppo poco si rischia di generare un sacco di duplicati inutili, satu-rando per giunta la rete, mentre se si attende troppo si rischia di abbassare note-volmente e inutilmente le prestazioni della trasmissione dei dati, rallentando le applicazioni alle estremità della connessione. Il meccanismo della conferma di ricezione con ritrasmissione ha inoltre un gros-so svantaggio. Anche se i tempi di attesa sono scelti in modo ottimale, esso causa un notevole sottoutilizzo della rete. Infatti, indipendentemente dalla capacità del-la rete, i due interlocutori passano la maggior parte del tempo attendendo le varie conferme. È un po' come avere un tubo nel quale vengono fatte cadere una a una delle palline numerate in sequenza. All’altra estremità del tubo c’è una cesta poggiata su un prato, un po' distante dal foro di uscita. Se la pallina cade nella cesta fa rumore, altrimenti cade nel prato e non si sente niente. Se ogni volta che metto una pallina nel tubo aspetto di sentire il rumore che mi conferma che la pallina è caduta nel cesto, il tubo resta per la maggior parte del tempo vuoto. Una tecnica di ottimizzazione usata dal TCP per rendere più efficiente il meccanismo appena descritto è quella delle finestre di scorrimento (sliding window). Funzio-na più o meno in questo modo. Immaginate di immettere nel tubo una sequenza di dieci palline senza attendere che la prima sia arrivata. Come si sente il primo flop si aggiunge un’undicesima pallina, e poi una dodicesima e così via. Se si salta un flop si reinserisce una pallina con lo stesso numero di quella che non è

106

arrivata, tanto il destinatario può comunque riordinare le palline utilizzando i numeri scritti sopra. Il numero di palline che compongono il trenino da spedire indipendentemente dalla ricezione del flop si chiama dimensione della finestra di scorrimento (sliding window size). Se si sceglie una dimensione tale da riempire tutto il tubo nella sua lunghezza si sfrutta al massimo la capacità dello stesso. In pratica questo sistema divide la sequenza di pacchetti in tre fasce. La prima è rappresentata dai pacchetti spediti e di cui si è avuta la conferma di ricezione. La seconda è formata dai pacchetti spediti ma dei quali non si sa ancora niente, e la terza è formata dai pacchetti ancora da spedire. Con questa tecnica il TCP man-tiene un timer per ogni singolo pacchetto che appartiene alla seconda fascia. Il nome "Finestra di scorrimento" deriva dal fatto che è come se ci fosse una fine-stra ampia quanto il trenino di pacchetti che possono essere spediti senza atten-dere la conferma dell’avvenuta ricezione che scorre in avanti un pacchetto alla volta ogni qual volta arriva una conferma. Anche in questo caso, come in quello del tempo di attesa prima di ritrasmettere un pacchetto, le dimensioni della fine-stra di scorrimento rappresentano un fattore critico per determinare l’efficenza del sistema. In generale, se le dimensioni della finestra sono maggiori del tempo di attesa per il singolo pacchetto, allora la finestra continua a scorrere regolar-mente senza interruzioni, salvo nel caso di ritrasmissioni, e la capacità di carico della rete viene sfruttata al massimo. Affinché infatti due applicazioni possano comunicare fra di loro esse debbono conoscersi e il sistema di trasmissione che le serve deve sapere a chi effettiva-mente vanno recapitati i dati. È evidente che non basta l'indirizzo IP, che identi-fica univocamente un host nella rete. Basti pensare che un PC collegato in rete ha in genere un solo indirizzo IP, a meno che non sia collegato a più reti fisiche, come per esempio un gateway. Se una lettera viene spedita via rete a un certo in-dirizzo come fa TCP a sapere a quale applicazione deve far arrivare i dati? Un si-stema potrebbe essere quello di assegnare un identificativo a ogni singola appli-cazione, ma come garantire allora l'univocità dell'identificativo? Senza contare che questo costringerebbe la controparte a sapere a priori tale valore per ogni possibile destinatario. Non è inoltre detto che un utente utilizzi sempre lo stesso programma per spedire o ricevere la posta elettronica. In realtà, più che la speci-fica applicazione, quello che è importante identificare è la funzione, come per esempio trasferire file oppure spedire posta elettronica. Le Porte La soluzione è quella di definire dei punti di ingresso e di uscita virtuali chiamati porte. Ogni porta rappresenta di fatto un punto di accesso a un'applicazione nel sistema. Si tratta in pratica di un'estensione del concetto di porta hardware. Un PC moderno, per esempio, può avere porte hardware parallele, seriali, video, au-dio e di vari altri tipi. Ad ogni porta possono essere attaccati dispositivi molto

107

differenti. Per esempio, a una porta parallela è possibile attaccare una stampante, uno scanner, un'unità Cd-Rom oppure un'unità disco ad alta capacità. Tutti questi dispositivi non hanno bisogno di una porta specifica, ma possono utilizzare la stessa porta perché gestiscono flussi di dati simili, possono cioè usare lo stesso protocollo di base per la trasmissione dei dati. Ovviamente, a livello applicativo, ogni periferica darà ai propri dati una struttura differente. Questo vuol dire che i dati costruiti per una stampante non possono certo essere mandati a uno scanner. D'altra parte anche TCP non entra in merito della struttura applicativa dei dati, ma solo alle modalità di trasmissione degli stessi. Ogni porta TCP è identificata da un numero. I numeri sotto il 256 sono utilizzati per le cosiddette "porte conosciute", cioè porte alle quali è stata assegnata una re-sponsabilità ben precisa, mentre quelli al di sopra sono utilizzati per le assegna-zioni dinamiche. Avremo per esempio una porta per i servizi di posta elettronica X.400 chiamata appunto X400 (103) alla quale faranno riferimento tutte le appli-cazioni che utilizzano tali servizi, oppure le due porte per il trasferimento dei file via FTP, una per il controllo (FTP, 21) e una per i dati (FTP-DATA, 20). Una li-sta delle porte conosciute attualmente assegnate è riportata nella RFC 1060, repe-ribile a ftp://ds.internic.net/rfc/rfc1060.txt Mentre in UDP la porta rappresenta un elemento sufficiente alla comunicazione, per cui il protocollo non fa altro che smistare i vari datagrammi nelle code dati (queue) associate alle varie porte . Una connessione è l'insieme di due punti, detti estremi della connessione (endpoint), ognuno identificato univocamente da due coordinate: l'indirizzo IP e il numero di porta. Una connessione è quindi rappresentata da ben quattro identificativi: gli indirizzi IP delle due macchine su cui girano le due applicazioni che si scambia-no i dati, e i rispettivi numeri di porta. È importante capire che l'identificazione della connessione richiede tutti e quattro i valori, per cui la stessa porta con lo stesso indirizzo IP può essere condivisa simultaneamente da più connessioni senza creare alcun problema o ambiguità. Ecco perché in TCP si pensa in termini di linea dedicata. È come se ci fosse un filo che lega univocamente i due interlocutori. Ogni interlocutore può avere più connessioni aperte nello stesso momento a partire dallo stesso capo purché non ce ne siano due con la stessa controparte. Il vantaggio è che una singola applica-zione, per esempio di posta elettronica, necessita di una sola porta TCP per forni-re servizi a molte macchine contemporaneamente attraverso differenti connes-sioni che condividono uno stesso estremo. Va tenuto presente che, anche se UDP e TCP usano gli stessi numeri per le porte, non esiste possibilità di confusione, dato che i pacchetti IP portano con sé l'identificativo del protocollo utilizzato che è ovviamente diverso per i due protocolli. Affinché la connessione venga stabilita, entrambi gli estremi devono dare la loro autorizzazione. L'aggancio avviene nel seguente modo. Una delle due applica-

108

zioni che si vogliono connettere effettua un'apertura passiva (passive open), cioè informa il suo sistema che è disposta ad accettare una richiesta di connessione. TCP assegna all'applicazione un numero di porta. L'altra applicazione deve inve-ce effettuare un'apertura attiva (active open), specificando l'indirizzo IP e la porta con la quale si vuole connettere. A questo punto i due livelli TCP stabiliscono la connessione e verificano che tutto sia a posto. La gestione dei dati: Vediamo adesso come TCP gestisce i dati. Innanzi tutto, come già detto, TCP vede i dati come una sequenza non strutturata di ottetti, cioè byte, detto flusso di dati (data stream). Questo flusso viene diviso in segmenti ognuno dei quali viaggia di solito in un singolo pacchetto IP. Per aumentare l'ef-ficienza della trasmissione, TCP utilizza una versione particolare del meccani-smo a finestre di scorrimento spiegato sopra. Ricordo che questo meccanismo consiste nel mandare un gruppetto di dati prima di aver ricevuto la conferma di ricezione di ogni singolo pacchetto, in modo da tenere costantemente sotto carico la linea. Se infatti si dovesse attendere la conferma di ricezione per ogni singolo pacchetto prima di spedire il successivo la linea resterebbe per la maggior parte del tempo inutilizzata. Si dà insomma fiducia alla rete, partendo dal presupposto che la perdita di dati sia l'eccezione piuttosto che la regola. Esistono tuttavia due importanti differenze tra il meccanismo base presentato prima e quello più sofisticato utilizzato effettivamente da TCP.

La prima è che l'unità base per i dati non è né il segmento né il pacchetto IP ma il singolo ottetto. Ogni ottetto viene numerato e TCP mantiene tre puntatori per ogni flusso di dati in uscita: uno che separa gli ottetti già spediti e arrivati feli-cemente a destinazione da quelli di cui non si hanno ancora notizie, uno che se-para quelli già spediti da quelli che devono ancora essere spediti senza attendere la conferma di ricezione per i precedenti ottetti, e uno che separa questi ultimi da quelli che non possono essere spediti fintanto che la finestra non scorre in avanti. Una serie di informazioni speculari è mantenuta dal destinatario che deve ov-viamente ricostruire il flusso di dati nel modo corretto indipendentemente dal-l'ordine di arrivo dei dati. Dato che una connessione è full-duplex, TCP manterrà quindi per ogni connessione due finestre di scorrimento, una per i dati in uscita e una per quelli in ingresso: un totale di quattro finestre per connessione conside-rando entrambi gli estremi. Esiste quindi un'asimmetria rispetto al meccanismo base dove l'unità dati utilizzata nella finestra di scorrimento era la stessa utilizza-ta nella trasmissione. Qui TCP utilizza il segmento come unità dati da trasmette-re, mentre ragiona in termini di ottetti per quello che riguarda il meccanismo di ritrasmissione. La seconda differenza è che le dimensioni della finestra di scorrimento non sono fisse ma variano nel tempo in funzione della capacità di ricezione del destinata-

109

rio. Ogni conferma di ricezione che ritorna al mittente contiene una soglia di ca-pacità (window advertisement) che contiene il numero di ulteriori ottetti che il destinatario è in grado di ricevere. In pratica questo meccanismo permette di a-dattare la finestra di spedizione alle dimensioni del buffer di ricezione. Si tratta cioè di un meccanismo di controllo del flusso dei dati che limita il numero dei dati in ingresso man mano che il buffer di ricezione si riempie, fino a poter inter-rompere momentaneamente la trasmissione nel caso che si sia raggiunta la mas-sima capacità di ricezione del destinatario. Basta infatti che il destinatario mandi una soglia uguale a zero perché il mittente interrompa la spedizione degli ottetti fino all'arrivo di una conferma di ricezione contenente di nuovo una soglia mag-giore di zero. In realtà il mittente non smette del tutto di mandare dati. Innanzi tutto, se ci sono dati urgenti da spedire, il mittente informa comunque il destinatario di tale ne-cessità trasmettendo un segmento con un indicatore di urgenza al suo interno. Questo permette al destinatario di prendere delle contromisure per ricevere co-munque i dati urgenti, per esempio aumentando le dimensioni del buffer. In se-condo luogo, è sempre possibile che la conferma con soglia positiva che dovreb-be far ripartire la trasmissione dei dati vada perduta. Per questo motivo il mitten-te prova ogni tanto a far partire un segmento per vedere se per caso il destinatario è di nuovo pronto a ricevere i dati. Il controllo di flusso: Il controllo del flusso dei dati è un aspetto estremamente importante in un sistema in cui sono collegate macchine anche molto differenti fra loro per dimensioni e capacità di trasmissione . Per controllo del flusso si in-tende la possibilità di regolare dinamicamente la quantità di dati che vengono immessi nella rete. Non solo è importante che il destinatario possa regolare la ve-locità di spedizione in funzione della sua capacità di ricezione, ma è fondamenta-le che ogni gateway intermedio possa frenare il flusso dei dati che riceve per evi-tare di entrare in saturazione. Il meccanismo appena descritto della soglia di ca-pacità permette di risolvere il primo problema, non il secondo. Quest'ultimo è detto congestione, ed è estremamente importante perché non tenerne conto vuol dire mandare in tilt la rete. Lo standard TCP non prevede alcun meccanismo di controllo della congestione, lasciando agli implementatori di tale protocollo il non banale compito di svilup-pare una logica capace di evitare questo tipo di problemi. Per quello che riguarda i segmenti, il fatto che TCP sia libero di dividere il flusso in segmenti può a volte causare problemi dal punto di vista applicativo. Per e-sempio, supponiamo di implementare via TCP/IP un terminale remoto. Questo vuol dire che tutte le operazioni effettuate con la tastiera e il mouse su di una macchina (chiamiamola locale) saranno visibili su di un'altra macchina (remota)

110

come se esse fossero state effettuate dalla tastiera e dal mouse della macchina remota. Non solo: sarà possibile vedere lo schermo della macchina remota all'in-terno di una finestra della macchina locale . Questo tipo di applicazioni è molto utile per esempio se per un qualche motivo la macchina da controllare non ha una sua tastiera oppure si trova in un locale non generalmente accessibile all'ope-ratore. È evidente che affinché l'applicazione funzioni essa debba lavorare in tempo reale. Se cioè si preme il tasto T sulla tastiera locale, la lettera T deve ap-parire immediatamente sullo schermo della macchina remota, e quindi apparire anche all'interno della finestra locale che riproduce tale schermo. Lo stesso se si fa click sul pulsante di chiusura di una finestra. Ovviamente se TCP fosse libero di accumulare questi comandi per poi spedirli tutti in una volta l'applicazione sa-rebbe di difficile utilizzo. Infatti, se l'operatore decidesse di chiudere una finestra dello schermo remoto per accedere un'icona sottostante e TCP non spedisse il comando fintanto che il buffer di partenza non fosse pieno, non sarebbe possibile eseguire l'operazione successiva, cioè aprire l'icona sulla scrivania del sistema. Per questo motivo TCP prevede la possibilità di forzare la spedizione del buffer (push). Questo tuttavia non è sufficiente. Se infatti TCP che riceve i dati accumu-lasse gli stessi nel buffer di ricezione prima di passarli all'applicazione destinata-ria saremmo punto e da capo. Per questo motivo, quando un segmento è forzato in uscita, TCP imposta a uno un certo bit nell'intestazione del segmento in modo che questi possa venire riconosciuto e immediatamente passato all'applicazione remota. Abbiamo detto che il TCP utilizza il metodo della finestra di scorrimento per te-nere la rete sempre impegnata al massimo della sua capacità e che esiste un'im-portante differenza tra il meccanismo generale e quello più sofisticato utilizzato effettivamente dal TCP. Tale differenza consiste in un'asimmetria rispetto al meccanismo base dove l'unità dati utilizzata nella finestra di scorrimento era la stessa utilizzata nella trasmissione. Il TCP utilizza il segmento come unità dati da trasmettere, mentre ragiona in termini di ottetti per quello che riguarda il mecca-nismo di ritrasmissione. Questo comporta una complicazione nella gestione delle conferme di ricezione (acknowledgement). A causa dell'asimmetria suddetta, la ritrasmissione in caso di mancata ricezione non avviene per segmenti, ma a livello di ottetti. Questo vuol dire che un seg-mento può contenere contemporaneamente sia nuovi dati sia una parte dei dati persi in precedenza. Ovviamente a queste condizioni ha poco senso numerare semplicemente i segmenti e usare questo identificativo nelle conferme di ricezio-ne. Né è pensabile di usare i datagrammi IP a tale scopo, dato che questi sono generalmente di lunghezza fissa mentre i vari segmenti TCP sono di lunghezza variabile. Ne consegue che l'unico modo per gestire le conferme è quello di ra-gionare in termini di cursore all'interno del flusso di dati. Come dire "ho ricevuto i primi 300 caratteri della lettera che mi hai spedito".

111

Ecco che cosa accade: ogni segmento contiene la posizione dell'area dati del segmento TCP all'interno del flusso di dati. Tale posizione si chiama numero di sequenza (sequence number) ed è calcolata in byte. Il destinatario estrae i vari ot-tetti dai segmenti ricevuti e li ricompone per ricostruire il flusso dei dati, utiliz-zando i numeri di sequenza per riordinare i vari segmenti. Questi possono infatti arrivare in qualunque ordine, o essere andati persi. A que-sto punto, chi sta ricevendo i dati, avrà ricostruito in modo completo una parte del messaggio originario e si ritroverà alcuni dati in eccesso che non sono conti-gui alla parte di flusso ricostruito. Ogni volta che il destinatario riceve un seg-mento, manda indietro nella conferma di ricezione il numero di sequenza dell'ot-tetto che si aspetta di ricevere per continuare la ricostruzione, cioè il valore del-l'ultimo ottetto della parte contigua ricostruita più uno. Immaginate di dover spedire una lettera a un vostro amico. Il TCP negozia con la controparte la lunghezza massima del segmento, come vedremo più avanti. Quindi inizia a riempire il primo segmento un carattere alla volta. Quando il segmento è pieno viene spedito e viene fatto partire il contatore a tempo per quel segmento. Quindi il TCP inizia a riempire il secondo segmento, che parte rego-larmente, e così dicendo. Man mano che i segmenti partono arrivano dalla con-troparte le conferme di ricezione. Supponiamo che a un certo punto, dopo aver spedito 450 ottetti, arrivi per due volte al mittente la conferma che il destinatario è riuscito a ricostruire il flusso fino al 300° carattere e che si aspetta il 301°. È evidente che qualcosa è andato storto e che si sono persi dei dati. Il TCP allora spedisce un segmento che contiene di nuovo dal 301° carattere in poi, diciamo fino al 400°. Dato che i caratteri dal 370° al 450° erano comunque arrivati rego-larmente, il successivo messaggio di conferma richiederà direttamente il 451° ca-rattere, e non il 401°. Vantaggi e svantaggi: un vantaggio è che il valore di conferma è estremamente semplice da calcolare e di immediata comprensione. Inoltre, se una conferma di ricezione va persa, non è detto che questo causi automaticamente la ritrasmissio-ne dei dati. Ci sarà comunque la conferma successiva che fornirà l'indicazione esatta del punto a cui è arrivato il destinatario nel ricostruire il flusso. Lo svantaggio più grosso è che il mittente non ha modo di sapere quanti dati sia-no effettivamente arrivati con successo al destinatario, dato che basta un buco nel flusso per far segnalare come validi un numero di byte molto inferiore a quelli effettivamente ricevuti. Questo crea seri problemi al mittente, che non sa se ritra-smettere tutti i dati successivi, e quindi sprecare tempo a ritrasmettere dati già ar-rivati, o trasmettere solo una piccola parte e aspettare la conferma che il poten-ziale buco si è chiuso.

112

Entrambi gli schemi sono alquanto inefficienti. Sta allo sviluppatore dello stack TCP/IP decidere quali algoritmi utilizzare, tenendo presente che un algoritmo troppo complesso ha comunque lo svantaggio di avere potenzialmente basse pre-stazioni. Un altro punto importante è il calcolo della lunghezza ottimale del segmento. Abbiamo detto più sopra che ogni conferma di ricezione contiene una soglia di capacità (window advertisement) la quale specifica il numero di ulteriori ottetti che il destinatario è in grado di ricevere. Questo meccanismo permette di adatta-re la finestra di spedizione alle dimensioni del buffer di ricezione. Tuttavia è an-che necessario definire la lunghezza del segmento oltre che in funzione delle ca-pacità di trasmissione del mittente e di ricezione del destinatario, anche e soprat-tutto in funzione delle caratteristiche della rete, come per esempio la grandezza massima del frame fisico, o Maximum Transfer Unit (MTU). La lunghezza mas-sima di un segmento, o Maximum Segment Size (MSS), viene calcolata appunto sulla base dell'MTU se entrambi gli estremi della connessione si trovano nella stessa rete fisica, altrimenti lo standard raccomanda di utilizzare un valore di 536 byte, equivalente alla dimensione normale di un datagramma IP meno le dimen-sioni standard delle intestazioni IP e TCP sommate insieme, 40 byte appunto. Tale calcolo è ovviamente solo un primo tentativo di ottimizzare l'utilizzo della rete da parte del TCP. Durante la trasmissione il TCP può modificare tale valore in funzione della situazione contingente. Non esiste tuttora un algoritmo standard per definire il giusto valore per l'MSS, data la complessità del problema. Una cattiva definizione dell'MSS può seriamente penalizzare la comunicazione. Se il segmento è troppo piccolo, il rapporto tra i dati trasmessi e quelli utilizzati nella trasmissione stessa è sfavorevole. Per esempio, un segmento di cinque byte uti-lizza solo un ottavo della larghezza di banda (bandwidth) disponibile, dato che per ogni cinque byte di dati ce ne sono ben quaranta di intestazione. Viceversa, se il segmento è molto grande, altrettanto è il datagramma IP. Se il datagramma è più grande dell'MTU, verrà spezzato in più frammenti non indipendenti fra loro, per cui basta che si perda un solo frammento per perdere tutto il datagramma e di conseguenza il segmento TCP. Esiste poi la possibilità che il TCP debba spedire dei dati che non fanno parte del flusso normale e che vanno immediatamente gestiti dalla controparte indipenden-temente dallo stato in cui si trova la ricostruzione del messaggio originario. Tali dati sono detti urgenti, e anche in questo caso esiste un bit nell'intestazione del segmento che informa il destinatario del fatto che il segmento va gestito imme-diatamente. Il concetto è analogo a quello del BREAK da tastiera. Se avete lan-ciato un programma che va in loop è necessario poterlo interrompere senza dover

113

far ripartire il sistema. Su molti sistemi operativi basta premere una sequenza di tasti, come per esempio Control-C (^C) per bloccare l'esecuzione del program-ma. Similarmente, se un estremo della connessione deve bloccare (o sbloccare) l'elaborazione del flusso di dati dall'altra parte, dovrà poter mandare un messag-gio urgente che abbia la precedenza rispetto ai normali segmenti di dati. Si dice che tale messaggio è fuori banda (out of band). Segmento Benché il TCP presenti all’utente una visione continua dei dati, detta flusso, l’unità di trasferimento dei dati del TCP è il segmento. Un segmento è formato come al solito da una intestazione e da un’area dati. Al contrario del datagramma IP, il segmento ha dimensioni variabili nel tempo, cioè i vari segmenti spediti a fronte di uno stesso flusso possono avere lunghezze differenti. I segmenti sono utilizzati dal TCP per aprire e chiudere una connessione, trasferire dati, spedire conferme di ricezione e modificare la finestra di spedizione, quel meccanismo che garantisce un utilizzo ottimale della rete, come spiegato in precedenza. Due caratteristiche peculiari del TCP sono che lo stesso segmento può portare con-temporaneamente sia dati veri e propri sia dati di controllo, e che le informazioni di controllo possono riferirsi sia allo stesso flusso dell’area dati, sia al flusso op-posto (piggybacking). L’intestazione: Innanzitutto abbiamo i numeri di porta del mittente e del desti-natario, esattamente come nell’UDP. Come già nell’UDP, infatti, gli indirizzi IP delle due controparti sono contenuti nell’intestazione del datagramma IP. Al con-trario di quanto avveniva nell’UDP, tuttavia, la conoscenza da parte del TCP de-gli indirizzi IP non rompe il paradigma che vuole un certo isolamento fra le re-sponsabilità dei vari livelli dello stack. Il TCP infatti, architetturalmente, ragiona in termini di connessioni, e queste comprendono sia l’informazione relativa alle porte, sia quella relativa agli indirizzi IP. Anzi, ogni qual volta l’IP consegna un segmento al TCP, gli passa anche gli indirizzi IP contenuti nell’intestazione del datagramma. Anche nel caso del segmento TCP la verifica della correttezza dell’intestazione da parte del destinatario viene effettuata utilizzando un meccanismo di somma di controllo con pseudointestazione. All’interno dell’intestazione TCP, infatti, esi-ste un campo chiamato somma di controllo (checksum). Il TCP imposta inizial-mente tale campo di 16 bit a zero. Costruisce quindi una psedointestazione che contiene gli indirizzi IP del mittente e del destinatario, il numero di protocollo del sottosistema di trasmissione (nel caso del TCP basato su IP è sei) e la lun-ghezza del segmento TCP compresa l’intestazione. A questo punto appende alla pseudo intestazione il segmento IP e aggiunge alla fine dello stesso tanti zeri quanti ne servono per far sì che il blocco risultante sia un multiplo di parole da 16 bit (padding). Divide quindi il blocco in parole da 16 bit e ne calcola la som-

114

ma a complemento uno. Il risultato viene quindi salvato nel campo apposito dell’intestazione e sia la pseudointestazione sia i bit aggiunti in fondo vengono rimossi prima di spedire il segmento. Il destinatario ovviamente effettuerà un calcolo analogo per verificare che il valore di controllo così ottenuto corrisponda con quello arrivato nell’intestazione del segmento. Nell’intestazione ci sono tre campi calcolati in ottetti. Il primo è il numero di se-quenza (sequence number), che rappresenta la posizione dell’area dati del seg-mento TCP all’interno del flusso di dati. Il secondo è il numero di conferma (a-

cknowledgement number), ovverosia il numero di sequenza dell’ottetto che il mittente si aspetta di ricevere per continuare la ricostruzione. Da notare che tale valore corrisponde al flusso opposto rispetto a quello in cui viaggia il segmento che lo contiene. Il terzo campo è il puntatore ai dati "urgenti". Come detto prima, è possibile che il TCP debba spedire dei dati urgenti che vanno elaborati indi-pendentemente dal flusso normale di dati, e con priorità rispetto a quest’ultimo. In questo caso il segmento contiene un segnalatore (flag) che informa il destina-tario della presenza d’informazioni urgenti nell’area dati. I dati urgenti sono po-sizionati all’inizio dell’area dati, e il puntatore in questione indica dove tali dati finiscono e dove ricominciano i dati normali, se ce ne sono. I segnalatori: Separati da un’area riservata per usi futuri c’è il campo che con-tiene la posizione dell’area dati nel segmento e un blocco di sei segnalatori. Il primo, misurato in parole da 32 bit, indica di fatto la lunghezza dell’intestazione del segmento in tale unità di misura. questo campo è necessario in quanto in fon-do all’intestazione esiste una zona riservata a eventuali opzioni che rende la lun-ghezza dell’intestazione non fissata a priori. Il secondo campo contiene invece sei indicatori. Data infatti nel segmento la presenza contemporanea, almeno in potenza, sia di dati di controllo sia di dati applicativi normali e urgenti, è neces-sario utilizzare dei segnalatori per informare il destinatario su cosa effettivamen-te contiene il segmento. Tutti i segnalatori sono attivi se impostati a uno, inattivi altrimenti. Il primo segnalatore indica se l’area dati contiene dati urgenti. Il se-condo indica la presenza nel segmento di una conferma di ricezione valida. Dato infatti che il campo corrispondente esiste sempre e comunque nell’intestazione, se il segmento non trasporta alcuna conferma di ricezione è necessario informare in qualche modo il destinatario che tale campo va ignorato. Il terzo bit è posto a uno quando si vuole forzare la trasmissione dei dati all’utente finale indipenden-temente dal fatto che il buffer di ricezione sia o meno completamente riempito. Il quarto segnalatore serve per interrompere immediatamente la connessione (reset). Tale evento avviene solo in situazioni eccezionali e causa l’interruzione immediata delle trasmissioni da ambo le parti e il rilascio del contenuto dei buffer di ricezione. Il quinto bit è detto di sincronizzazione, ed è utilizzato duran-te la fase iniziale di negoziazione della connessione, detta in gergo handshake. In pratica, i segmenti scambiati quando questo bit è impostato a uno servono a

115

sincronizzare i numeri di sequenza delle due controparti prima d’iniziare la tra-smissione vera e propria dei dati. L’ultimo bit serve a informare il destinatario che il mittente intende terminare in modo pulito la connessione e che non ha più dati da spedire. All’apertura e alla chiusura della connessione il TCP utilizza un algoritmo chiamato saluto a tre vie (three-way handshake) che garantisce la cor-retta sincronizzazione delle due operazioni. L’ultimo campo fisso è quello relativo alla soglia di capacità del mittente (window advertisement) che contiene il numero di ulteriori ottetti che esso è in grado di ricevere. A questo punto è di nuovo importante ricordare il concetto di piggybacking, a cui già si è accennato. Ovverosia, ogni segmento può portare contemporaneamente informazioni in cui una controparte è vista sia come chi spedisce i dati contenuti nel segmento, cioè come mittente, sia come chi ha rice-vuto o deve ricevere dati dall’altro capo della connessione, cioè come destinata-rio. Quando noi parliamo di mittente, per evitare confusione, ci riferiamo sempre al mittente del segmento di cui stiamo parlando. È importante comunque tenere sempre presente che alcuni dati del segmento hanno senso solo se si considera il mittente quale destinatario di dati precedenti o ancora da venire. In fondo all’intestazione c’è un’area opzionale che può essere utilizzata a vari scopi. In genere essa contiene opzioni che permettono alle due controparti di ne-goziare alcuni aspetti della comunicazione. Un esempio è il calcolo della lun-ghezza ottimale del segmento. L’implementazione del protocollo TCP: Abbiamo visto che tutto il meccanismo funziona ed è affidabile grazie alle conferme di ricezione e alla ritrasmissione dei pacchetti probabilmente andati perduti. Ma come fa a sapere il mittente che un pacchetto è andato effettivamente perduto? Ovviamente perché non è arrivata la conferma di ricezione, direte voi. Va bene, ma quanto devo aspettare tale con-ferma prima di assumere che sia necessaria una ritrasmissione? E qui son dolori. Se aspetto troppo rischio di rallentare la comunicazione in modo inaccettabile. Se aspetto troppo poco rischio di ritrasmettere inutilmente troppi segmenti, ma-gari semplicemente un po’ in ritardo. Il timeout Tutto il sistema si basa sul calcolo del tempo di attesa massimo, o timeout. Il TCP calcola il timeout sulla base del tempo intercorso fra la spedizione di un segmento e l’arrivo della conferma corrispondente. Sembra facile, ma non è così. Vediamo rapidamente i punti chiave del discorso. Il TCP calcola continuamente il timeout, ogni volta che arriva una conferma di ricezione. In questo modo il sistema è sempre aggiornato in funzione dello stato effettivo della connessione e della rete. Il timeout è calcolato come media pesata dei tempi intercorsi fra la spedizione del segmento e la ricezione della conferma. Chiamiamo quest’ultimo tempo rile-vato di andata e ritorno (Round Trip Sample) o RTS. Il tempo stimato di andata e ritorno (Round Trip Time) è calcolato utilizzando una specifica formula. In pra-

116

tica ogni nuovo RTS pesa più o meno sul calcolo dell’RTT in base al valore di alfa. Se alfa è molto vicina a zero, l’RTT varia rapidamente a ogni cambiamento dell’RTS, per cui il sistema risponde rapidamente alle variazioni. Se viceversa alfa è vicina a uno, è necessario che la nuova RTS rimanga stabile più a lungo per avere effetto sull’RTT. A questo punto il timeout viene calcolato moltiplicando l’RTT per un valore maggiore di uno. Se il valore di beta è troppo vicino a uno la perdita di un pac-chetto viene immediatamente rilevata, ma si rischia di ritrasmettere più pacchetti del necessario. Se viceversa beta è troppo alto si rischia di aspettare troppo a lungo prima di ritrasmettere un pacchetto perso, abbassando così le prestazioni della connessione. In genere si raccomanda per beta un valore di due. Una scelta difficile: La scelta di alfa e di beta sembra dunque essere critica, ma i problemi non sono ancora finiti. Infatti, se un segmento è trasmesso due volte, quando arriva la conferma di ricezione, a chi si riferisce? Al pacchetto originale o a quello ritrasmesso? Se usiamo il primo pacchetto per il calcolo dell’RTS ri-schiamo di far crescere esponenzialmente il valore di timeout. Infatti un pacchet-to è ritrasmesso quando scade il timeout precedente. Di conseguenza il nuovo RTS è ovviamente più grande del vecchio timeout. Se viene perso un nuovo pac-chetto l’RTS cresce ancora, e così via. Se usiamo il pacchetto ritrasmesso ab-biamo il problema opposto, cioè il timeout rischia di ridursi sempre di più, o al-meno si è dimostrato sperimentalmente che si stabilizza su valori alquanto bassi. Supponiamo infatti di avere un ritardo in rete: la conferma di ricezione arriva conseguentemente in ritardo. Nel frattempo il mittente ha rispedito il pacchetto che credeva perso. Appena arriva la conferma questa è associata al segmento ri-trasmesso generando così un RTS molto piccolo. Il timeout si riduce, aumentan-do il rischio di considerare persi pacchetti la cui conferma di ricezione arriva in ritardo, e così via. P. Karn propose nel 1987 d’ignorare i pacchetti ritrasmessi nel calcolo del time-out. Questo evitava il problema suddetto, ma ne creava un altro. Se un pacchetto è ritrasmesso perché si è avuto un repentino calo di prestazioni della rete, il timeout rimarrà sempre troppo basso, in quanto il mittente continuerà a ritra-smettere pacchetti le cui conferme arrivano in ritardo rispetto al timeout calcola-to prima del calo di prestazioni. Dato che tali conferme vengono regolarmente ignorate per il calcolo dell’RTT, il timeout non viene più aggiornato almeno fin-tanto che la rete non torna normale, cosa per giunta complicata dal sovraccarico dovuto all’inutile ritrasmissione dei pacchetti. La soluzione consiste nell’aumentare il timeout precedente a una ritrasmissione di un fattore arbitrario, diciamo gamma, fino a un limite massimo ragionevole calcolato sulla base dei possibili cammini all’interno della rete . In genere gamma non è minore di due.

117

Questa tecnica è detta di backoff. Conclusione: Implementare il protocollo TCP non è certo banale. Il che tra l’altro fa capire come non tutti i pacchetti TCP siano uguali: anzi, è proprio il contrario. Una scelta oculata degli algoritmi implementativi può fare seriamente la differenza fra un prodotto e un altro. Il fatto che essi implementino lo stesso standard non dà alcuna indicazione sulla qualità delle prestazioni dello stack che state utilizzando. Se poi alcuni parametri possono essere personalizzati dall’utente, una opportuna calibrazione del programma studiata sulle caratteristi-che specifiche della vostra rete, può modificare significativamente i tempi di ri-sposta del sistema. Naturalmente non è fra gli scopi di questi articoli entrare nel dettaglio di tutte le problematiche TCP/IP

Come avviene la trasmissione di un messaggio di

e-mail PC coinvolti: Un primo computer che non si vede è quello ove risiede la casella del destinata-rio. POP server Il computer del mittente dispone solamente di un client di posta elettronica Inoltre se una stessa e-mail deve essere inviata in copia a tanti destinatari che hanno le caselle su vari POP server sparsi per la terra, il mittente passerà al pro-prio server di spedizione una unica copia del mail: sarà il server a "fare le copie" e contattare tutti i computer destinatari. Pertanto, è consuetudine di tutti i provi-der mettere a disposizione dei propri clienti anche un server della posta in par-tenza, di solito chiamato SMTP server.

Capita, in qualche caso, che POP server e SMTP server siano la stessa macchina: ciò è possibile in quanto i due servizi vengono svolti attraverso porte distinte. I grossi provider, con decine o centinaia di migliaia di utenti, avranno con ogni probabilità molti POP server e, a seconda del traffico, anche più SMTP server. Sapendo questo, passiamo a vedere come è fatto un normale messaggio di e-mail e quali vicissitudini subisce, dal momento in cui il mail client del mittente lo immette in rete, al momento in cui viene consegnato al mail client del destinata-rio.

Gli header di un messaggio di e-mail From: [email protected] (Mario Rossi)

To: [email protected]

Date: Wed, 15 Apr 1998 14:24:06 +0200

118

X-Mailer: Gorilla 3.2 (Win95; I)

Subject: Richiesta informazioni sulle vs. iniziative

Le sarei grato se mi facesse pervenire il programma

delle

In questo esempio è importante osservare che, prima del testo del messaggio ve-ro e proprio, si hanno alcune righe scritte nella forma: nome-header: valore-testuale Ciascuna di queste righe è un header, e gli standard di rete prescrivono, tra le al-tre cose, i nomi degli header e la forma in cui deve essere espresso il corrispon-dente valore testuale. Dunque, il mail client prepara tutte le righe di testo, header e messaggio, come abbiamo visto sopra, e li passa al server SMTP prescelto Chi mette gli header in testa al messaggio da trasmettere è, come abbiamo detto, il mail client, ossia un programma in esecuzione sul computer del mittente. Tale programma è quindi sotto il completo controllo del mittente: questo sceglie quale programma adottare e come configurarlo. Anzi, potrebbe farsi realizzare da qual-cuno un programma su misura per le sue esigenze (quando non farselo addirittu-ra lui stesso). Questo in concreto cosa significa: che i valori forniti in tutti quegli header non significano nulla. Normalmente nel campo From: il mittente mette il proprio vero indirizzo, perché normalmente non si manda spam, ma si comunica con qualcuno che si desidera possa rispondere. Lo spammer, nella maggior parte dei casi, non desidera affatto che le sue vittime gli possano rispondere, quindi di solito se ne guarderà bene dal fornire un campo From: autentico. Anche il campo To: non ha valore, poiché non è in base al suo contenuto che si determina la de-stinazione del messaggio. Date: Mon, 09 Feb 1998 23:27:13 -0500 (EST) From: [email protected] Subject: Important Message To: [email protected] Reply-To: [email protected] Message-Id: <<209.133.27.38> [email protected]> X-Pmflags: 6336476446536565465365 Comments: Authenticated sender is <Mail.INS.com> X-UIDL: <209.133.27.38> Thank-you, for visiting www.aaaaa.com. ....... Here is the information you requested. Notiamo alcune cose. Tanto per incominciare il campo From:, in cui hanno mes-so un indirizzo di fantasia attestato niente meno che presso il mio stesso provi-

119

der; quanto al campo To:, compare un destinatario (probabilmente inesistente) presso una università americana. Probabilmente lo spammer mi vuole indurre a pensare che il messaggio sia giunto a me per errore; simili errori, però, nella real-tà della rete non si verificano. Vorrei far notare quello che dice: "Authenticated sender is ...": è tutto fumo negli occhi; quando vedete frasi tipo Authenticated sender o simili, non c'è proprio niente di autentico. Questo header, così come quello precedente (X-Pmflags:) viene inserito da Pegasus Mail, un famoso programma mail client. Non è detto però che questo messaggio sia effettivamente stato inviato usando Pegasus, più probabilmente è stato usato un client costruito apposta per spammer (ne esisto-no), che cerca di simulare l'uso di Pegasus. Possiamo anche dare un'occhiata alle prime righe del messaggio: notate il tenta-tivo di far passare l'e-mail come sollecitata ("grazie per aver visitato il nostro si-to", che io ovviamente non avevo visitato affatto, "ecco l'informazione che avevi richiesto" eccetera). Tutti questi trucchi non valgono nulla: l'importante è non farsene confondere. Quindi, di regola, lo spammer configurerà il proprio software in modo da na-scondere il più possibile ogni sua traccia e, in molti casi, cercherà addirittura di inserire degli header fasulli per trarre in inganno chi cercasse di individuarlo. Ora vediamo che fa il nostro SMTP server dopo aver accettato il messaggio per l'inoltro. Cercherà di contattare il mail server destinatario e, una volta riuscito a stabilire una sessione con esso, gli passerà il messaggio usando lo stesso identico meccanismo che abbiamo appena visto applicare da parte del mail client. Che succedesse questo, in effetti, potevamo aspettarcelo; la novità è che, al nuovo server, il messaggio non verrà passato identico a come era stato preparato dal mail client nel passo precedente: al messaggio verranno aggiunti nuovi header (generalmente un paio), per lasciare traccia del fatto che sia transitato da quel server. Vediamo come diventa: Received: from mariorossi (ppp26-milano.prima-rete-esempio.com [194.188.15.26]) by mail.prima-rete-esempio.com (8.8.5/8.8.5) with SMTP id RU387493 for <[email protected]>; Wed, 15 Apr 1998 14:26:32 +0200 (METDST) From: [email protected] (Mario Rossi) To: [email protected] Date: Wed, 15 Apr 1998 14:24:06 +0200 Message-ID: <[email protected]> X-Mailer: Gorilla 3.2 (Win95; I) Subject: Richiesta informazioni sulle vs. iniziative

120

Vediamo dunque che è stato inserito nel mezzo un header 'Message-ID:', mentre è stato inserito in testa un header 'Received:'. Ben diverso è il discorso a proposito dell'header 'Received:': questo header ha fi-nalmente un valore oggettivo, ed è ciò su cui dobbiamo contare per riuscire a in-dividuare il nostro spammer. Aggiungendo l'header Received: il server che ha veicolato il messaggio dice, in sostanza: "questo messaggio l'ho trasportato io, che lo avevo ricevuto dal seguente indirizzo". A pensarci bene, è stato una fortu-na il fatto che, quando la rete nacque, fosse una rete militare: nell'impostazione architetturale e dei protocolli entrò così anche una speciale attenzione alla trac-

ciabilità degli eventi di rete, al fatto che si potesse individuare dove si erano ge-nerati e per dove erano passati. Così oggi abbiamo ottime possibilità di risalire allo spammer: i protocolli di rete stanno dalla nostra parte, e questo gli spammer sembrano non volerlo capire (peggio per loro!). Ma prendiamo in esame il nostro header Received: Received: from mariorossi (ppp26-milano.prima-rete-esempio.com [194.188.15.26]) by mail.prima-rete-esempio.com (8.8.5/8.8.5) with SMTP id RU387493 for <[email protected]>; Wed, 15 Apr 1998 14:26:32 +0200 (METDST) Il server che ha inserito l'header dichiara il proprio nome dopo la parola 'by'. Nel-la sostanza, l'header va letto come segue: "Questo messaggio è stato ricevuto su mail.prima-rete-esempio.com, proveniente da qualcuno che si è presentato come mariorossi e che comunque aveva l'indiriz-zo IP 194.188.15.26. Tale indirizzo risulta corrispondere alla risorsa di nome ppp26-milano.prima-rete-esempio.com" Si noti che qui è presente una parola from non seguita dai due punti. Dopo que-sto from c'è il nome con cui chi ha passato il messaggio al server si è presentato, per mezzo del comando HELO. Quindi, se questo fosse un messaggio di spam e dovessimo scoprire da dove viene, potremmo ignorare tranquillamente il mario-

rossi indicato qui. Ciò che c'è tra parentesi è invece quel che si deve guardare: il server che ha messo questo header ci assicura di avere ricevuto il messaggio dal-la risorsa il cui indirizzo IP è indicato tra parentesi quadre, e di cui è dato anche il nome.

121

Protocolli di posta per scaricare i propri messaggi dal server

POP3(Post Office Protocol) : i messaggi vengono scaricati completi di al-legati in un solo computer locale e cancellati dal server. E’ possibile deci-dere se conservare una copia sul server. IMAP(Internet Message Access Protocol): i messaggi rimangono sul server, si può accedere alla propria posta da locazioni diverse, si scaricano inizialmente solo le intestazioni (poco pesanti) e poi decidere se scaricare tutto il contenuto. MUA:un client di posta (o Mail User Agent, client di e-mail, ecc.) è un programma che consente di gestire la composizione, la trasmissione, la ri-cezione e l'organizzazione di e-mail (i messaggi di posta elettronica) da e verso un server di posta.

MTA:un mail server (Mail Transfer Agent ) è un programma, e per e-stensione il computer su cui viene eseguito, che si occupa dello smista-mento da un computer a un altro della posta elettronica.

Normalmente un mail server risiede su un sistema dedicato ma può essere eseguito su computer ove risiedano altri server o che vengano utilizzati anche per altri scopi. Si può installare un mail server anche su un normale personal computer.

MDA:un Mail Delivery Agent è un software che accetta in entrata mes-saggi e-mail e li distribuisce alle mailbox destinatarie (se la destinazione è un account nella macchina locale) o li inoltra a un altro server SMTP (se la destinazione è in un server remoto).

Un mail delivery agent non è necessariamente un mail transfer agent (MTA), anche se in molti sistemi le due funzioni sono implementate nello stesso programma.

122

SERVIZI E CONNESSIONI

Introduzione a Internet

Lo scopo di questa lezione è quello di dare una panoramica su alcuni servizi di base che le reti usano per fornire e scambiare informazioni e di discutere alcuni metodi con cui personal computers e reti locali si connettono ad altre reti all'in-terno di Internet.

Servizi Chiunque possiede un computer sa che in esso ci sono informazioni utili e sa come accedervi. Milioni di altre persone possiedono a loro volta dei computer e possiamo presumere che questi altri computer contengano una grande quantità di informazioni che sarebbero molto interessanti. L'unico problema è come accede-re a tali informazioni.I computer comunicano tra loro facilmente, attraverso por-te, utilizzando vari protocolli, ma questi non ci aiutano realmente. Non è infatti facile capire il flusso di dati binari che i computer si scambiano tra loro. E' ne-cessario disporre di un meccanismo con cui un computer possa interpretare le in-formazioni che riceve da altri computer in maniera tale da poterle utilizzare. I programmi che i computer utilizzano per convertire i dati che si scambiano in una forma comprensibile, sono chiamati servizi. Questi servizi consentono di e-saminare pagine web, scambiare e-mail, effettuare chat e interagire con computer remoti in molti altri modi. Il vostro computer, il computer locale usa programmi chiamati clients (clienti) per interpretare le informazioni che riceve. Gli altri computer, i computer remoti, usano programmi chiamati server (serventi) per fornire queste informazioni al vostro computer. HTTP e il Web Quando si parla di ‘Internet,’ la maggior parte delle persone pensano al World Wide Web. Il World Wide Web, o semplicemente il Web, non è Internet. Al contrario, è un metodo di utilizzo di Internet per scambiare informazioni tra computer. Il Web usa http o hypertext transfer protocol e servizi noti come i browser web e server web per permettere lo scambio di informazioni nella forma di pagine web tra computer locali e remoti. Localmente ciò che si vede è il browser web. Le informazioni presenti sul com-puter remoto vengono inviate al vostro computer locale utilizzando il protocollo http. Il browser web interpreta tali informazioni e le visualizza sul vostro compu-ter locale sotto forma di pagine web.

Ipertesto La parte di ipertesto del protocollo http si riferisce ad un metodo non-lineare di

123

presentare le informazioni. Il testo viene normalmente letto in modalità lineare: la parola 2 segue la parola 1; la frase 3 segue la frase 2; il paragrafo 5 segue il paragrafo 4. L’idea di ipertesto consente alle informazioni di essere esaminate in maniera non-lineare. Questa è la differenza principale tra un ipertesto e i metodi meno recenti per visualizzare le informazioni in modo lineare. Con gli ipertesti, le parole e le idee possono essere connessi non solo con le pa-role che li circondano direttamente, ma anche con altre parole, idee o immagini. L’ipertesto non è limitato al Web. I word processor più completi consentono di creare pagine memorizzate localmente in formato web o http. Queste pagine vengono lette utilizzando un browser web e si comportano come farebbe una qualunque pagina web, con la sola differenza che si trovano sul vostro computer locale e non su un computer remoto. Browser Sul computer locale si utilizza un programma client chiamato browser web. Al contrario di quando si creda, esiste attualmente un vasto numero di browser web disponibili sia per Windows che per Linux. Questi includono i browser Internet Explorer della Microsoft, Netscape Navigator, Mozilla e Mozilla Firefox. E’ anche possibile creare pagine web personali. (anche con office) Una volta progettate le pagine, è necessario un computer su cui caricarle, in mo-do tale che possano essere viste dalle altre persone. Questo è chiamato web ho-

sting. Il computer che ospita le pagine risiede su un server web. E' possibile attivare uno di questi server in casa vostra, utilizzando il vostro computer, ma ci sono va-ri inconvenienti, il primo di questi è la disponibilità continua dell’informazione. L'informazione memorizzata su un server web è disponibile solo quando il server è attivo, perfettamente funzionante ed ha una connessione aperta. Così, se volete rendere disponibile un server web dalla vostra camera, dovete lasciare sempre acceso il computer, essere sicuri che il programma web server operi correttamen-te per tutto il tempo (questo include l'individuazione di problemi hardware, il controllo dei virus, worms e altri attacchi, e altri inevitabili errori all'interno del programma stesso) e dovete tenere aperta la connessione ad Internet. Questo è il motivo per cui la maggior parte delle persone pagano qualcun altro per effettuare tutto questo. Una società di hosting memorizza le pagine web sul proprio computer. Una società di web hosting perfetta avrà più server ridondati e una politica di backup regolare in modo tale che il servizio non venga mai inter-rotto per problemi hardware, uno staff di supporto per mantenere il server attivo nonostante gli attacchi degli hackers e gli errori del programma, in modo tale che tutto ciò che si deve fare è realizzare le pagine web, caricarle (upload) sul server della compagnia di hosting, staccare il telefono, spegnere il computer e andare a dormire, e le pagine web saranno disponibili al mondo intero.

E-Mail – POP e SMTP Il secondo aspetto più noto di Internet è probabilmente l'e-mail. Sul vostro com-

124

puter, usate un client di e-mail che si connette ad un server (mail server). Quando attivate un account e-mail vi viene dato un nome univoco con il formato uten-te@dominio. Vi viene anche chiesto di fornire una password da usare per scari-care le vostre e-mail. Il protocollo SMTP, che è utilizzato per inviare e-mail, non richiede password. Questo poteva non essere un difetto quando è stato sviluppato il protocollo e Internet era un piccolo mondo abitato da persone con le stesse i-dee, ma ora è diventato una breccia che consente l'uso non autorizzato di server di posta e vari altri trucchi, come 'e-mail spoofing', in cui qualcuno invia un'e-mail che appare proveniente da un altro indirizzo. Tuttavia, alcuni server di posta minimizzano questo implementando un passo di autenticazione, in cui si deve provare la propria identità prima di inviare un'e-mail.

Una cosa importante da ricordare è che l'e-mail, nonostante sia protetta da password, non è un mezzo sicuro per inviare informazioni. La maggior parte dei clients e server POP richiedono che la vostra password sia comunicata – non crit-tata – al vostro server di posta. Questo non significa che chiunque riceve un'e-mail da voi riceva anche la vostra password; ma significa che qualcuno con le conoscenze e i mezzi adatti può facilmente 'sniffare' la vostra

IRC IRC, o Internet relay chat, è il luogo in cui si esprime più chiaramente la natura non regolata di Internet. Su IRC, chiunque abbia qualcosa da dire ha l'opportuni-tà di farlo. Probabilmente conoscerete le chat room utilizzate da certi servizi on-line. IRC è come una chat room, solo che non ci sono regole e non ci sono stan-dard. Su un canale IRC potete trovare esattamente ciò che state cercando, o qual-cosa che avete già, o ancora qualcosa che non avete mai saputo esistesse. Tutte le regole di cui avete sentito parlare circa le chat room sono applicabili ai canali IRC. Non dite a nessuno il vostro vero nome. Non date il vostro numero di tele-fono, il vostro indirizzo o i numeri del vostro conto bancario.

FTP

FTPè acronimo di file transfer protocol. Come suggerito dal nome, consente di trasmettere files tra un computer locale ed uno remoto. Può essere usato per tra-sferimenti privati di file, ma è generalmente associato a server liberi ed anonimi che offrono accesso pubblico a collezioni di files. L'ftp anonimo era una volta il mezzo con cui la maggior parte computer si scambiavano file su Internet. Mentre molti server ftp anonimi vengono usati per distribuire file che sono disponibili il-legalmente (e che possono essere infettati da virus), ce ne sono anche molti usati legalmente per distribuire programmi e file. I server che offrono servizi ftp ano-nimi possono essere trovati con vari mezzi, inclusi i motori di ricerca di Internet.

125

La maggior parte dei server ftp ora consentono di accedere ai loro file usando il protocollo ftp attraverso un browser

Telnet e SSH

Telnet consente ad un utente locale di inviare una grande varietà di comandi ad un computer remoto. Questo consente all'utente locale di comandare al computer remoto di effettuare funzioni e restituire dati sul computer locale, quasi come se foste seduti alla tastiera di fronte al computer remoto. SSH, o secure shell, non è altro che la versione sicura di telnet, ovverosia i dati transitanti sono cifrati. Nuovamente, sia Windows sia Linux hanno una linea di comando per client tel-net; per accedervi, aprite il prompt di comando e una finestra terminale e digita-te: telnet.

Per accedere ad un server mediante telnet, avrete bisogno di un account e di una password impostata per voi dall'amministratore del server remoto, perchè telnet consente di effettuare una grande varietà di azioni, alcune delle quali possono compromettere seriamente il computer remoto.

Telnet era usato nel passato per consentire agli amministratori di un computer di controllare remotamente i server e fornire all'utente supporto a distanza.

Telnet può anche essere usato per numerose altre funzioni, come inviare e rice-vere e-mail ed esaminare il codice sorgente di pagine web (nonostante telnet sia uno degli strumenti più difficili per effettuare queste cose). Telnet può essere u-sato per effettuare molte cose illegali e immorali, ma ci sono anche ragioni legit-time per utilizzarlo. Potete usare telnet per verificare le vostre e-mail, ed esami-nare, non solo la linea dell'oggetto, ma le prime linee di un'e-mail, cosa che vi consentirà di decidere se cancellare o meno l'e-mail senza scaricare completa-mente l'intero messaggio.

DNS Quando volete chiamare un amico al telefono, dovete conoscere il numero cor-retto; anche quando volete connettervi ad un computer remoto, dovete conoscere il suo numero. Ricorderete dalle lezioni precedenti che, per computer su Internet, questo numero è chiamato indirizzo IP.

Come numeri, questi indirizzi IP sono facilmente gestibili dai computer, ma le persone preferiscono usare quelli che vengono chiamati nomi di dominio. Ad e-sempio, per connetterci alle pagine web dell'Hacker Highschool, digitiamo 'www.hackerhighschool.org' nella barra dell'indirizzo del browser web. Tuttavia, il browser web non può utilizzare questo nome per connetterci al server che ospi-

126

ta le pagine web della Hacker Highschool – deve utilizzare un indirizzo IP. Que-sto significa che il vostro computer locale deve avere un meccanismo per tradur-re i nomi di dominio in indirizzi IP. Se ci fossero solo centinaia, od anche mi-gliaia di computer su Internet, sarebbe possibile memorizzare sul proprio compu-ter una semplice tabella per cercare tali indirizzi, ma non sono ci sono milioni di computer su Internet e le relazioni tra nomi di dominio e indirizzi IP possono cambiare giornalmente.

Per questa ragione viene usato il DNS o Domain Name Service per tradurre i nomi di dominio in indirizzi IP. Quando digitate il nome di dominio www.domainname.com nel vostro browser web, questo contatta il server DNS scelto dal vostro ISP. Se tale server DNS contiene www.domainname.com nel proprio database, restituirà l'indirizzo IP al vostro computer, consentendovi la connessione. Se il vostro server DNS non contiene www.domainname.com nel suo database, invierà la richiesta ad un altro server DNS, e continuerà ad inviare la richiesta ad altri server DNS fino a quando non trova l'indirizzo IP corretto o non stabilisce che il nome di dominio non è valido.

DHCP

Il DHCP o Dynamic Host configuration Protocol consente di assegnare dinami-camente indirizzi IP all'interno di una rete. Alla rete è assegnato un intervallo di indirizzi IP. Quando un computer si unisce alla rete, gli viene assegnato un indi-rizzo IP. Quando un computer lascia la rete tale indirizzo diventa disponibile per qualunque altro computer.

Questo è utile per reti di grandi dimensioni, dal momento che non è necessario che ogni computer abbia un indirizzo IP statico assegnato. Al contrario si usa un server DHCP. Quando un nuovo computer si connette alla rete, la prima cosa che fa è richiedere al DHCP server un indirizzo IP. Una volta che questo gli viene assegnato, il computer può accedere a tutti i servizi sulla rete.

127

Connessioni

La maggior parte dei computer si connette ad Internet tramite un modem. I mo-dem traducono i segnali digitali prodotti dai computer in segnali analogici che possono essere trasmessi attraverso le normali linee telefoniche. La velocità dei modem viene misurata in baud o bits al secondo. Velocità alte sono migliori, poichè consentono una trasmissione più veloce dei dati, ma dovete anche consi-derare cosa avete pianificato di fare. Ci sono certe applicazioni – come i MUD -per cui un modem vecchio di vent'anni a 300 baud sarebbe ancora accettabile (presumendo che la vostra velocità di scrittura non sia così buona), mentre appli-cazioni a banda larga come lo streaming video possono spesso sforzare anche i modem più potenti. ISP Quando ci si collega ad Internet è necessario un server che connetta il proprio computer ad Internet. Il server effettua il lavoro pesante, cioè è sempre attivo. Il server è gestito da un ISP o Internet Service Provider.

Un ISP ha un “punto di accesso” su Internet sempre attivo e mette a disposizione dei server con i servizi. E' possibile anche attivare questi servizi per conto vostro. Ad esempio, potete attivare un servizio di posta sul vostro computer locale, ma questo richiede che il vostro computer sia sempre acceso e connesso alla rete, so-lo per aspettare i brevi momenti in cui vengono scambiate le informazioni.

Un ISP, tuttavia, riceve gli accessi di un elevato numero di utenti, in modo tale che il server di posta sia sempre funzionante, invece che fare nulla. Inoltre, i computer di un ISP utilizzano connessioni ad alta velocità per connettersi ad un NAP o Network Access Point. Questi NAP sono inserconnessi tra loro tramite connessioni ultra veloci chiamate backbones.

Questo è Internet.

128

INTERNET

Come viene individuato univocamente ciascun computer nella rete. All'interno di Internet ciascuna macchina è univocamente identificata da un nu-mero binario lungo 32 bit e comunemente detto Indirizzo IP. Questo numero viene di solito presentato "tradotto" sotto forma di quattro cifre decimali separate da punti (es. 151.99.200.2). Poichè è un po' difficile ricordarsi gli indirizzi sotto forma di numeri, è stato tuttavia creato un sistema (il cosiddetto DNS o Domain Name System) per cui ad ogni computer viene assegnato anche un nome lettera-le, in modo univoco, ed esistono poi dei sistemi di "traduzione" automatica che permettono al software di comunicazione di risalire all'indirizzo IP dal nome let-terale e viceversa. Mentre l'elettronica di gestione della rete, per trasmettere i va-ri messaggi, si serve degli IP, gli utenti possono così servirsi di più intuitivi nomi letterali. Dominio:I nomi letterali delle macchine sono costituiti da una o più parole (for-mate da lettere, numeri e altri caratteri come il trattino, ma non da spazi) separate da punti. Il nome più a destra individua il dominio (domain) di appartenenza del-la macchina, ossia un grosso sottoinsieme della rete, che al di fuori degli Stati Uniti tende a coincidere quasi sempre con una nazione.

Alcuni domini nazionali sono ad esempio:

it Italia

uk Regno Unito

fr Francia

de Germania

se Svezia

jp Giappone

Oltre ai domini nazionali, esistono dei domini di tipo organizzativo ossia in cui i siti vengono suddivisi in base al tipo di attività dell'organizzazione a cui appar-tengono. Originariamente questi domini erano riservati agli Stati Uniti, ma di fat-to - tranne alcuni casi - essi sono ormai internazionali, e comprendono siti di tut-to il mondo. Alcuni di essi sono:

edu Università statunitensi

com Operatori commerciali

org Organizzazioni senza scopo di lucro

net Organizzazioni di gestione della rete

129

Proprio all'inizio del 1998 sono stati creati nuovi domini di questo tipo, come ad esempio nom, dedicato alle pagine personali dei singoli utenti; questo in relazio-ne alla continua crescita della richiesta di nomi. Se, fino ad oggi, non pensavate che un nome fosse qualcosa che poteva essere "richiesto" o "comprato", ricrede-tevi: su Internet, i nomi dei domini devono essere registrati - per evitare duplicati e confusioni - e quindi si comprano.

Il nome più a sinistra è invece il "nome proprio" (hostname) del computer; i no-mi che stanno in mezzo rappresentano sottoinsiemi della rete, o più propriamente sottodomini (subdomains), sempre più grandi procedendo da sinistra verso de-stra, e contenuti nell'ordine gli uni dentro gli altri. Si usa talvolta anche parlare di domini di primo livello (top level domains o TLD) per indicare i domini veri e propri, e di domini di secondo, terzo... livello per indicare mano a mano i sotto-domini successivi, utilizzando il termine "dominio" per indicare in generale un qualsiasi sottoinsieme della rete caratterizzato dalla stessa parte finale nei nomi dei computer. In particolare, con il termine domain suffix si intende normalmen-te tutto ciò che sta a destra del primo punto del nome di un computer.

Poichè probabilmente tutto ciò non è molto chiaro, si può ad esempio considera-re il nome:

lennon.engr.wisc.edu

Questo nome indica il computer denominato lennon situato all'interno del sot-todominio engr (Ingegneria) del sottodominio wisc (Università del Wiscon-sin) del dominio edu (Università americane). Si noti quindi come edu sia un dominio di primo livello, wisc un dominio di secondo livello, engr un domi-nio di terzo livello e lennon un semplice computer; inoltre, si potrebbe anche dire che lennon appartiene sia al dominio edu, sia al (sotto)dominio wisc.edu, sia al (sotto)dominio engr.wisc.edu. Il domain suffix è in que-sto caso proprio engr.wisc.edu. In alcuni paesi extra-USA (ad esempio nel Regno Unito) è stato adottato un si-stema misto, per cui il dominio è unico e uguale per tutti (in quel caso, uk) ma i domini di secondo livello ricalcano la suddivisione americana, sebbene con sigle diverse: pertanto i nomi che terminano con .co.uk si riferiscono a computer di aziende commerciali inglesi, quelli che terminano con .ac.uk a computer di università inglesi, eccetera. Si noti infine che, poichè i nomi "letterali" sono soltanto una comodità introdotta per noi poveri esseri umani, non vi è in realtà alcun vincolo geografico che indi-vidui i vari domini: sebbene in Italia quasi tutti i computer appartengano al do-

130

minio it, esistono anche computer situati fisicamente in Italia ma appartenenti ai domini com, net...

Normalmente, ogni computer ha uno e un solo nome; tuttavia, è possibile defini-re degli alias (più precisamente, alias DNS), ossia ulteriori nomi per lo stesso computer. Questa possibilità è utilizzata normalmente per concentrare un certo numero di servizi sullo stesso computer: ad esempio, poichè per ragioni di con-venienza generale si è soliti porre il sito FTP di un'ente sullo stesso computer in cui è posto il suo sito WWW, il nome ftp.azienda.com e il nome www.azienda.com individuano solitamente lo stesso computer! In realtà, non vi è alcun obbligo di mettere in piedi alias di questo tipo, in quanto il nome di un computer è completamente scorrelato dai servizi che sono posti su di esso (in al-tre parole, è possibile realizzare siti WWW anche su computer il cui "nome pro-prio" non è www, e così via); tuttavia, si cerca normalmente di assegnare nomi in-tuitivi, anche sfruttando gli alias, ai computer che svolgono determinati servizi (come mail per i server di posta elettronica, o news per i server per i ne-wsgroup).

HTTP e HTML

Entrambe queste sigle riguardano gli ipertesti. L'HTML (HyperText Markup Language) è il "linguaggio di programmazione", estremamente semplice, per creare gli ipertesti, ed è costantemente in via di sviluppo. Dal punto di vista in-formatico, infatti, un ipertesto è semplicemente un normale file di testo (ASCII) contenente, in mezzo al testo del documento e racchiuse tra i caratteri < e >, al-cune istruzioni particolari, dette tag, che permettono di inserire immagini, creare rimandi, eccetera, e che sono appunto definite nell'HTML.

Non bisogna allora confondere l'HTML (che è una specie di rudimentale lin-guaggio di programmazione) con l'HTTP (HyperText Transfer Protocol), che è invece il protocollo di comunicazione usato per trasferire sulla rete gli ipertesti, e più in generale gli iperoggetti del World Wide Web, dal computer dove sono memorizzati a quello dell'utente che vuole leggerli. L'HTTP, difatti, permette di trasferire qualsiasi tipo di file; sarà poi il computer dell'utente, in base al tipo MIME del file, a decidere che cosa farsene. Ad esempio Netscape permette di configurare una azione predefinita per ciascun possibile file in arrivo; mentre i fi-le HTML vengono visualizzati come ipertesti, i file di immagini vengono visua-lizzati come tali, i file audio vengono spediti alla scheda sonora (se disponibile), eccetera. Nel caso che il browser non sappia come trattare il tipo del file, nor-malmente esso chiederà all'utente che cosa fare.

131

Il tipo MIME (Multipurpose Internet Mail Extensions) è uno standard che è stato proposto dai laboratori Bell Communications nel 1991 per estendere le pos-sibilità della posta elettronica (mail), cioè permettere di inserire dei documenti (immagini, suoni, testo,…) in un messaggio.

Da allora, il tipo MIME è usato da una parte per tipare i documenti allegati ad una mail ma anche per tipare i documenti trasferiti con il protocollo HTTP. Quindi durante una transazione fra un server web e un navigatore internet, il server web invia in primo luogo il tipo MIME del file inviato al navigatore, af-finché quest'ultimo possa sapere come visualizzare il documento.

Un tipo MIME è costituito nel seguente modo :

Content-type: type_mime_principale/su_type_mime Ad esempio, un'immagine GIF ha il seguente tipo MIME : Content-type: image/gif

Elenco dei tipi MIME

Tipo MIME Tipo di file Estensione associa-

ta

application/acad File AutoCAD dwg

application/clariscad File ClarisCAD ccad

application/drafting File MATRA Prelude drafting drw

application/dxf File AutoCAD dxf

application/i-deas File SDRCI-deas unv

application/iges Formato di scambio CAO IGES igs,iges

application/octet-stream File binari non interpretati bin

application/oda File ODA oda

application/pdf File Adobe Acrobat pdf

application/postscript File PostScript ai,eps,ps

application/pro_eng File ProEngineer prt

application/rtf Formato di testo rich rtf

application/set File CAO SET set

application/sla File stereolitografici stl

application/solids File MATRA Solids dwg

application/step File di dati STEP step

application/vda File di superficie vda

application/x-mif File Framemaker mif

132

application/x-csh Script C-Shell (UNIX) dwg

application/x-dvi File di testo dvi dvi

application/hdf File di dati hdf

application/x-latex File LaTEX latex

application/x-netcdf File netCDF nc,cdf

application/x-sh Script Bourne Shell dwg

application/x-tcl Script Tcl tcl

application/x-tex File Tex tex

application/x-texinfo File eMacs texinfo,texi

application/x-troff File Troff t,tr,troff

application/x-troff-man File Troff/macro man man

application/x-troff-me File Troff/macro ME me

application/x-troff-ms File Troff/macro MS ms

application/x-wais-source

Sorgente Wais src

application/x-bcpio CPIO binario bcpio

application/x-cpio CPIO Posix cpio

application/x-gtar Tar GNU gtar

application/x-shar Archives Shell shar

application/x-sv4cpio CPIO SVR4n sv4cpio

application/x-sv4crc CPIO SVR4 con CRC sc4crc

application/x-tar File compresso tar tar

application/x-ustar File compressi tar Posix man

application/zip File compressi ZIP man

audio/basic File audio basici au,snd

audio/x-aiff File audio AIFF aif,aiff,aifc

audio/x-wav File audio Wave wav

image/gif Immagini gif man

image/ief Immagini exchange format ief

image/jpeg Immagini Jpeg jpg,jpeg,jpe

image/tiff Immagini Tiff tiff,tif

image/x-cmu-raster Raster cmu cmu

image/x-portable-anymap

File Anymap PBM pnm

image/x-portable-bitmap File Bitmap PBM pbm

133

image/x-portable-graymap

File Graymap PBM pgm

image/x-portable-pixmap File Pixmap PBM ppm

image/x-rgb Immagine RGB rgb

image/x-xbitmap Immagini Bitmap X xbm

image/x-xpixmap Immagini Pixmap X xpm

image/x-xwindowdump Immagini dump X Window man

multipart/x-zip File archivio zip zip

multipart/x-gzip File archivio GNU zip gz,gzip

text/html File HTML htm,html

text/plain File texte senza messa in forma txt,g,h,c,cc,hh,m,f90

text/richtext File di testo rich rtx

text/tab-separated-value File di testo con separazione di valori

tsv

text/x-setext File di testo Struct etx

video/mpeg Video MPEG mpeg,mpg,mpe

video/quicktime Video QuickTime qt,mov

video/msvideo Video Microsoft Windows avi

video/x-sgi-movie Video MoviePlayer movie

Che cos'è e come è fatto un URL?

Come visto, per poter recuperare un qualsiasi oggetto posto in rete è necessario conoscere:

1. Dove è situato (ossia il nome della macchina, il percorso sull'hard disk della macchina e il nome del file);

2. Con che protocollo esso può essere recuperato.

Per racchiudere in un unico "indirizzo" tutte queste informazioni è stato creato uno schema detto URL (Uniform Resource Locator, ossia Localizzatore Unifor-

me di Risorse). Un URL assume normalmente la forma seguente:

metodo://nomemacchina:porta/nomeoggetto

dove il metodo (di accesso alla risorsa, anche detto schema) può valere solita-mente http, ftp, telnet, news, mailto o file a seconda del protocollo

134

che si deve utilizzare; il nomemacchina è il nome (letterale o IP) del computer su cui si trova l'oggetto; la porta (solitamente sottintesa, nel qual caso si assu-me un valore standard che varia a seconda del protocollo scelto) è il numero del-la porta con cui si intende comunicare con la macchina (argomento tecnico che potete al momento tralasciare); il nomeoggetto è il nome completo (percorso e nome del file) dell'oggetto. Anche qui, non preoccupatevi se non avete afferra-to subito tutto: nel resto del capitolo troverete vari esempi di URL, e comunque la pratica vi sarà di grande aiuto.

La stragrande maggioranza delle macchine collegate alla rete - almeno, quelle su cui vengono realizzati gli ipertesti, gli archivi di software... - sono grossi calcola-tori che funzionano con il sistema operativo Unix; pertanto i nomeoggetto se-guono per definizione (e anche quando la macchina a cui ci si collega è un PC) le convenzioni dello Unix, e non, ad esempio, dell'MS-DOS. Nella pratica, questo significa alcune cose importanti da tenere a mente:

1. Le barre che compaiono negli URL sono diritte (cioè / ) e non rove-sciate ( \ ) come quelle dell'MS-DOS!

2. Mentre per quanto riguarda il metodo e il nomemacchina non c'è differenza tra maiuscole e minuscole (sebbene comunemente si usino solo minuscole), per quanto riguarda il nomeoggetto la differenza c'è: scrivere i nomi dei file o delle directory in maiuscolo, in minuscolo, o con l'iniziale maiuscola e il resto minuscolo fa differenza, e può im-pedirvi di recuperare l'oggetto!

In realtà, lo schema dell'URL varia leggermente a seconda del protocollo scelto, per cui può essere utile esaminare alcuni esempi:

http://www.cl.ais.net/mkurth/atsfaq.html Questo indirizzo corrisponde all'ipertesto atsfaq.html (gli ipertesti sono in-dividuati dall'estensione .html o .htm) posto nella directory mkurth situata nella directory radice (root) del computer www.cl.ais.net (ossia, il compu-ter www situato nel sottoinsieme cl del sottoinsieme ais del dominio net), da trasferire seguendo il protocollo HTTP.

http://www.polito.it/~bertola/ Questo indirizzo, simile al precedente, presenta però alcuni aspetti particolari. Per prima cosa, vi è indicato un percorso (/~bertola/) ma non un nome di fi-le; in questo caso, e solo per il protocollo HTTP, viene sottinteso il nome di file index.html (notare l'estensione di quattro caratteri: nello Unix non c'è la li-mitazione a tre caratteri!); se questo file c'è, esso viene letto come ipertesto (vista

135

la sua estensione .html, che indica appunto un ipertesto); se questo file non vi fosse, a seconda della configurazione del sito, viene presentato un elenco dei file contenuti nella directory indicata e l'utente può sceglierne uno, o viene restituito un messaggio d'errore. Va inoltre notato il carattere speciale ~ (se non l'avete sulla tastiera del vostro PC, potete realizzarlo tenendo premuto il tasto Alt sinistro, digitando il numero 126 sul tastierino numerico, e quindi rilasciando Alt). Esso indica che il nome seguente è il nome di un "utente" del computer, e non un normale percorso sul-l'hard disk. Di fatto, la scrittura /~bertola/ è un altro modo per indicare la directory public_html (è un nome convenzionale, che significa "ipertesti pubblici"!) posta all'interno dell'area dell'utente bertola. Per farla breve, indi-rizzi contenenti ~ corrispondono solitamente a pagine scritte da singoli utenti nel proprio tempo libero (home page), mentre gli indirizzi senza ~ si riferiscono soli-tamente a pagine ufficiali dell'ente o dell'azienda possessori del computer. Si noti infine la barra ( / ) finale: con molti browser non è necessaria, ma è utile abituarsi a metterla in quanto indica e permette di sapere immediatamente che l'ultimo nome scritto prima (nel nostro caso, ~bertola) rappresenta una directory e non un file.

ftp://ftp.coast.net/SimTel/win3/sysutil/3dk24.zip Questo indirizzo individua il file 3dk24.zip (che, come dice l'estensione, è un archivio realizzato con PkZip) situato nella directory /SimTel/win3/sysutil/ (sono tre directory una dentro l'altra: notare che SimTel è diverso da simtel!) del computer ftp.coast.net e da trasferire mediante il protocollo FTP e da un sito FTP anonimo. L'inserimento dell'URL di un file su di un browser provocherà lo scaricamento del file (ossia la copia dal computer remoto al proprio) e una azione che varierà a seconda dell'estensione del file, che può essere configurata dall'utente e che ge-neralmente sarà poi il salvataggio su disco.

ftp://ftp.sunet.se/pub/pc/ Questo indirizzo individua la directory (come si desume dalla barra finale: se non ci fosse, individuerebbe un file) denominata pc e contenuta nella directory pub della root directory del computer ftp.sunet.se, alla quale si vuole ac-cedere tramite il protocollo FTP usato in modo anonimo. L'inserimento in un browser dell'URL di una directory con protocollo FTP pro-voca la visualizzazione dell'elenco dei file contenuti in essa, preceduto in certi casi da messaggi informativi predisposti dall'amministratore del sito remoto.

telnet://165.113.211.4:4801 Questo indirizzo individua un collegamento mediante il protocollo TELNET con

136

il computer 165.113.211.4 (individuato non mediante il suo nome letterale, ma mediante il suo indirizzo IP) usando la porta numero 4801.

gopher://gopher.polito.it/ Questo indirizzo determina un collegamento con il gopher del Politecnico di To-rino. Verranno presentati una serie di menu che permetteranno di scaricare file di vario tipo.

mailto:[email protected] Sui browser che supportano la spedizione di posta, ossia tutti quelli pubblicati negli ultimi due anni, l'immissione di questo indirizzo provoca l'apertura di una finestra nella quale è possibile inserire un messaggio. Il messaggio viene succes-sivamente spedito, seguendo il protocollo SMTP, all'utente bertola del com-puter o dominio athena.polito.it (si veda la sezione sugli E-mail per il significato di @!).

news:it.faq Questo indirizzo individua il newsgroup it.faq, sottintendendo il "nomemac-china" (che sarà quindi quello specificato come default nella configurazione del programma che si sta usando per leggere le news). Per altre informazioni sugli URL delle news, si legga la sezione sui newsgroup.

file:///C|/Doc/inizio.htm Il metodo file serve per recuperare file direttamente dal proprio hard disk, sen-za usare la rete; in questo caso, l'indirizzo corrisponde al file inizio.htm po-sto nella directory C:\Doc di un PC con Windows. Si noti che l'indirizzo rispet-ta comunque le convenzioni Unix sopra citate: le barre sono state convertite da rovesciate a diritte, e i due punti - carattere che negli URL, come visto, indica il numero di porta - sono stati convertiti nella barra verticale (quella che, sulle ta-stiere italiane, è normalmente posta sull'ultimo tasto in alto a sinistra). Le barre iniziali sono tre e non due, in quanto dovrebbero esserci le due barre iniziali, poi il nome della macchina, poi un'altra barra, ma il nome della macchina è sottinte-so! Sono stati presentati esempi relativi a tutti i metodi di accesso normalmente usa-ti; in realtà, molti browser recenti utilizzano internamente altri metodi non stan-dard per indicare altri tipi di risorse, che comunque l'utente non dovrebbe utiliz-zare direttamente.

In conclusione, va detto che non tutti i programmi usati in rete si servono degli URL per individuare l'oggetto che l'utente desidera. Tipicamente, l'uso degli URL è associato all'uso di un browser: in essi è possibile chiedere al programma di recuperare un oggetto fornendo direttamente l'URL. Invece, se si utilizzano al-

137

tri programmi, ad esempio per la posta, o per il trasferimento di file, o per la let-tura delle news, normalmente verrà chiesto di identificare l'oggetto fornendo le stesse informazioni (nome del computer, nome del file...) in un modo diverso e variabile da programma a programma. La grande innovazione degli URL, che è alla base dell'esplosione di Internet avvenuta negli ultimi due anni, è proprio quella di racchiudere in un unico insieme di caratteri tutte le informazioni neces-sarie per individuare un oggetto messo in rete!

A cosa servono quegli URL contenenti strani simboli come #, ?, +, % ?

Allo scopo di rendere gli URL estremamente flessibili, è possibile includere al loro interno una serie di dati che non riguardano direttamente l'individuazione dell'iperoggetto che con essi si vuole recuperare, ma sono piuttosto informazioni ulteriori che devono essere comunicate dal browser al server e viceversa. In par-ticolare:

• Il carattere #, posto al termine di un indirizzo che individua un ipertesto, serve ad individuare una particolare posizione (un capitolo, un titolo, una voce di glossario...) al suo interno; mentre un normale URL iperte-stuale provoca da parte del browser la visualizzazione dell'inizio della pagina, un URL di questo tipo farà sì che la pagina venga visualizzata a partire da un punto del testo individuato dalla parola che segue il carat-tere #, grazie ad una particolare tag inserita in tale punto dell'ipertesto. Un esempio sono gli URL che corrispondono alle singole domande in questa guida!

• Il carattere ?, posto al termine di un indirizzo che individua - normal-mente - un

programma CGI, indica che la stringa seguente costituisce una serie di argomenti da passare al programma suddetto: un caso tipico sono i pro-grammi di ricerca nei database, in cui la parte dopo ? tipicamente indica gli argomenti da cercare e altre caratteristiche della ricerca, ed è spesso generata da una form precedentemente riempita. In alcuni particolari URL, dopo ? può essere posta semplicemente una parola, che viene ri-cercata all'interno dell'iperoggetto indicato dall'URL (questa possibilità deve essere predisposta dal server; in generale, l'utente non dovrà mai inserire a mano un URL contenente un punto interrogativo).

• Il carattere + è stato introdotto in quanto l'URL non può contenere spa-zi, mentre spesso gli argomenti di ricerca posti dopo un punto interroga-tivo li contengono (si pensi ad esempio ad un nome e cognome, o a più

138

parole...): pertanto il + sostituisce gli spazi all'interno di questi argo-menti.

• Il carattere % serve per inserire negli URL alcuni caratteri speciali che normalmente non potrebbero essere inseriti, ed è seguito dal codice ASCII del carattere in oggetto, scritto in esadecimale.

In generale, a parte forse #, gli utenti non avranno mai la necessità di scrivere un URL contenente questi caratteri: saranno il browser e/o altri iperoggetti a genera-re questi indirizzi.

newsgroup

Un newsgroup (gruppo di discussione) è qualcosa di molto simile ad una mailing list: un "giornale" sul quale chiunque voglia intervenire può farlo spe-dendo (postando) un "articolo", che può essere un vero e proprio brano o (molto più spesso) un messaggio di poche righe. I newsgroup presentano tre grandi van-taggi rispetto alle mailing list:

1. Per leggere o scrivere in un newsgroup non è necessario essere iscritti ad esso;

2. Gli articoli dei newsgroup sono conservati una volta per tutte in appositi news server, e non intasano quindi la vostra casella postale (per quanto sia possibile decidere di copiare sul proprio hard disk gli articoli dei gruppi a cui si è interessati, in modo da poterli leggere e rileggere con calma);

139

3. I newsgroup sono facilmente accessibili semplicemente digitando un URL, e comunque utilizzando il vostro browser (sebbene sia solitamen-te meglio usare un programma apposito).

In realtà, per ovvi motivi di spazio, i server per le news conservano soltanto gli articoli più recenti; regolarmente si provvede a cancellare gli articoli più vecchi. Il numero di articoli e il tempo di conservazione, e anche il numero di newsgroup conservati, varia da server a server. Per lo stesso motivo, quando si scrive un ar-ticolo in un newsgroup esso non viene pubblicato immediatamente in tutto il mondo, ma deve trascorrere un certo periodo di tempo - di solito qualche ora - perchè esso venga trasmesso ai vari server. L'iscrizione ad un newsgroup, comunque, non va notificata a nessuno e non è necessaria per poter leggere il gruppo (è solo una opzione di configurazione del programma che usate). Ogni gruppo di discussione (o "giornale", proseguendo nel paragone con la carta stampata) è identificato univocamente da un nome. Anche il nome di un ne-wsgroup è formato da una serie di parole separate da punti; tuttavia, la "gerar-chia" funziona in modo inverso rispetto ai nomi dei computer: la parola più a sinistra indica un grosso sottoinsieme di tutti i gruppi esistenti, mentre procedendo verso destra le varie parole indicano sottoinsiemi sempre più piccoli, fino all'ultima che rappresenta il nome del gruppo. Ad esempio il gruppo

soc.culture.italian

corrisponde al gruppo italian (italiano) del sottoinsieme culture (gruppi di discussione sulle culture nazionali) del sottoinsieme soc (gruppi di discussione ad argomento sociale) di tutti i newsgroup esistenti. I sottoinsiemi di primo livello - talvolta detti anche gerarchie (hierarchies) - più comuni sono:

alt Gruppi di discussione amatoriali

bionet Discussioni sulla biologia a livello professionale

comp Gruppi di discussione sul computer

it Gruppi di discussione in italiano

misc Gruppi di argomento vario

news Informazioni e discussioni su Usenet stessa

rec Discussione sulle attività ricreative (sport, spettacolo...)

sci Discussioni scientifiche a livello professionale

soc Discussioni sociali e politiche

talk Dibattiti (spesso lunghi e inutili...)

140

Che cosa sono le FAQ

Le FAQ (Frequently Asked Questions) sono una raccolta delle domande più co-muni su di un dato argomento e delle relative risposte. Normalmente sono colle-gate ad una mailing list o ad un newsgroup che discute sullo stesso argomento: generalmente uno dei frequentatori più assidui della discussione si prende il compito di scrivere e aggiornare periodicamente un file, in formato testuale o i-pertestuale, contenente tale raccolta. In questo modo, le persone meno esperte dell'argomento possono "farsi una cultura di base" o anche solo trovare la rispo-sta ad un problema urgente senza dover disturbare le persone che discutono nel newsgroup o nella mailing list, spesso ad un livello molto più approfondito. È quindi buona abitudine, oltre che buona educazione, ricercare e leggere le FAQ di un certo argomento prima di mettersi a spedire messaggi a destra e a manca per ottenere aiuto. Molto spesso nelle FAQ si trovano informazioni che non sono reperibili nemmeno in pubblicazioni ufficiali sull'argomento!

Le FAQ possono essere reperite in vari modi. Innanzi tutto, esse sono spesso in-serite sul WWW in apposite pagine (che possono essere reperite mediante una normale ricerca di rete). Esistono anche numerosi siti FTP che conservano una copia delle FAQ di tutti o parte dei newsgroup esistenti. Inoltre, nella maggior parte dei newsgroup e delle mailing list le FAQ vengono pubblicate ad intervalli regolari, oppure viene pubblicato l'indirizzo al quale sono reperibili. Se poi il newsgroup o la lista dispone di un proprio spazio in un sito FTP, certamente le FAQ saranno reperibili anche lì. In generale, gli aderenti ai gruppi di discussione cercheranno di pubblicizzare le FAQ il più possibile!

Inoltre, il newsgroup news.answers è stato istituito proprio allo scopo di pubblicare al suo interno le FAQ degli altri gruppi. Tutte le FAQ pubblicate su questo gruppo sono archiviate in alcuni siti, accessibili (al momento) a partire dagli URL:

http://www.lib.ox.ac.uk/internet/news/faq/by_group.index.html http://www.cis.ohio-state.edu/hypertext/faq/usenet/FAQ-List.html http://www.cs.ruu.nl/cgi-bin/faqwais/ ftp://rtfm.mit.edu/pub/usenet/

Sono inoltre accessibili per posta elettronica, utilizzando il server [email protected] (provate a spedire a questo indirizzo un messaggio conte-nente nel corpo la sola parola help).

141

Qualcosa di simile esiste anche in Italia: il gruppo it.faq pubblica regolar-mente guide in italiano a Internet e agli argomenti trattati nella gerarchia it.*. Esiste inoltre un Archivio delle FAQ italiane, mantenuto dall'autore di questa guida agli indirizzi:

http://www.poli.studenti.to.it/~bertola/faq/ http://www.polito.it/~bertola/faq/

e accessibile anche per FTP anonimo agli indirizzi:

ftp://ftp.poli.studenti.to.it/pub/people/bertola/faq/ ftp://ftp.polito.it/pub/people/bertola/faq/

Infine, il GCN (il gruppo di persone che coordina i gruppi italiani) ha predispo-sto un sito FTP contenente tutti gli articoli pubblicati su it.faq, all'indirizzo:

ftp://beatles.cselt.stet.it/GCN/FAQ/

Tale gruppo mantiene inoltre guide all'uso dei gruppi italiani all'interno dei pro-pri siti WWW.

All'interno delle FAQ si trovano spesso raccolte di altri siti WWW riguardanti l'argomento o argomenti simili. Inoltre viene anche pubblicato l'indirizzo di E-mail del curatore, da contattare nel caso si abbiano aggiunte o correzioni. Le FAQ vengono periodicamente aggiornate e migliorate: per questo motivo può essere utile dare un'occhiata una volta ogni tanto nel newsgroup o mailing list a cui appartengono (dove vengono pubblicate con regolarità) o nel sito Web su cui vengono pubblicate (normalmente esiste un URL presso cui è sempre disponibile la versione più recente, ed è indicato nelle prime righe della FAQ).

Cosa sono un "client" e un "server"?

Come già detto in precedenza, i dialoghi tra computer su Internet si basano sul modello "client-server". In poche parole, il dialogo avviene essenzialmente tra due computer alla volta, dei quali uno (tipicamente quello su cui lavora l'utente) assume il ruolo di client (cliente) e l'altro (quello remoto, sul quale è posto l'og-getto a cui l'utente vuole accedere) assume il ruolo di server (servitore). Analo-gamente, si dice che il programma che, venendo eseguito sul computer cliente, gestisce il dialogo è a sua volta il "programma cliente", mentre il programma che gestisce il dialogo venendo eseguito sul computer remoto è il "programma servi-tore". Per poter fare sì che i due computer dialoghino secondo uno qualsiasi dei

142

protocolli di alto livello descritti in precedenza (HTTP, FTP, TELNET...) è allo-ra necessario che:

• Sul computer dell'utente sia in esecuzione un programma cliente del protocollo specificato;

• Sul computer remoto sia in esecuzione un programma servitore del pro-tocollo specificato.

Questo significa che non è sufficiente che un oggetto, ad esempio un ipertesto, esista fisicamente su un computer connesso alla rete e in un'area aperta al pubbli-co perchè sia possibile recuperarlo; è anche necessario che stia venendo eseguito su tale computer un programma server per il protocollo con il quale si desidera leggere l'oggetto. Per questo motivo non è possibile recuperare, ad esempio, un file posto in un sito FTP tramite il protocollo HTTP: difatti normalmente nei siti FTP è in esecuzione solo un programma server FTP e non un programma server HTTP. Per lo stesso motivo, anche avendo uno spazio su di un computer connes-so in rete, non è possibile creare propri ipertesti visibili a tutta la comunità di rete se sul computer non è stato messo in funzione un server HTTP. Sempre per que-sto motivo, se volete avere un programma di FTP da far girare sul vostro compu-ter oltre al browser dovete cercare un "cliente FTP" e non un "server FTP", che è una cosa ben diversa (anche come dimensioni) e che non vi serve a niente, a me-no che voi stessi non vogliate installare un archivio FTP sul vostro computer!

Una volta stabilita la connessione tra il client e il server, il client prende il con-trollo del server, che esegue tutte le operazioni che il client richiede. In molti protocolli questo dialogo viene mostrato all'utente tradotto sotto forma di co-mandi letterali: ad esempio molti programmi di posta elettronica permettono al-l'utente di leggere sotto forma di un vero e proprio dialogo ciò che avviene tra il client (ossia il programma stesso) e il server (ossia il programma situato sulla macchina dove si ha la propria casella postale).

Va infine notato che i browser comunemente usati sono programmi sviluppati per poter essere clienti di più protocolli, a seconda dell'URL che viene inserito.

Ho trovato un file in formato... ma cosa diavolo è?

Sulla rete si trovano una quantità immensa di oggetti, memorizzate in una quanti-tà altrettanto immensa di modi. Molti di questi modi sono quasi sconosciuti a chi si affaccia sulla rete con la sola esperienza di un personal computer MS-DOS, per cui è utile avere qualche indicazione su di essi. Qui di seguito è riportata una breve lista di formati, riconoscibili dalla relativa estensione, e con qualche indi-cazione su come trattarli. Un elenco più completo di estensioni e tipi di file :

143

Estensione Descrizione

.htm

.html Ipertesti realizzati tramite HTML

.txt

.asc Testi in formato ASCII (leggibili ad esempio con il Blocco Note di Windows)

.ps

.eps Documenti in formato PostScript

.tex

.latex

.dvi

Documenti realizzati con TeX o LaTeX. Per i file DVI esistono anche lettori per Windows.

.pdf Documenti di testo in formato PDF.

.zip Archivi realizzati con PkZip e decomprimibili con PkUnzip o WinZip.

.arj Archivi realizzati e decomprimibili con ARJ.

.gz Archivi realizzati e decomprimibili con GZip / GUnzip (GNU Zip).

.z Archivi realizzati con Compress per Unix e decomprimibili con Compress o con GZip / GUnzip.

.lzh Archivi realizzati e decomprimibili con LHA.

.tar Archivi realizzati e "decomprimibili" (in realtà, TAR incolla, non comprime) con TAR (Tape Archive).

.tar.z

.tz

.tar.gz

.tgz

Archivi realizzati prima incollando vari file in uno solo con TAR e poi comprimendo il tutto con Compress o GZip: per po-terli usare, bisogna prima decomprimere il file con GZip / GUn-zip e poi spezzarlo con TAR.

.uu

.uue File codificati con UUEncode per essere trasmissibili via posta elettronica.

.gif

.jpg

.png

Immagini (questi formati di immagine, GIF, JPEG e PNG, sono pressochè gli unici usati in rete, anche perchè sono quelli con cui le immagini risultano memorizzate in file di dimensione mi-nore).

144

.wav File audio ascoltabili con il Lettore Multimediale degli Accesso-ri di Windows (o programmi migliori, se li avete...)

.au File audio in formato standard Unix (le versioni recenti di Ne-tscape li riproducono)

.avi

.mpg

.mov

"Film" (serie animata di immagini). Il formato MPEG è il mi-gliore; lettori shareware per MPEG sono reperibili in rete. Il formato MOV appartiene al programma QuickTime (origina-riamente per Macintosh, esiste anche per Windows).

Come posso trovare l'indirizzo E-mail o altre informazioni ri-guardo una persona?

Al momento, questo è uno dei punti dolenti della rete: non esistono sistemi com-pleti e di facile uso per associare un nome ad un indirizzo di E-mail o ad altre in-formazioni personali. Comunque, se si desiderano informazioni su uno specifico utente o dominio della rete. esistono alcuni sistemi di ricerca sviluppati a questo scopo: FINGER, WHOIS e NETFIND, di cui si parlerà nei paragrafi successivi. In particolare, Finger è il più utile, ed è molto comodo per conoscere il nome del-la persona associata ad un determinato E-mail. Whois, invece, può servirvi per trovare i nomi e gli E-mail dei responsabili di un determinato sottodominio o provider, a cui rivolgersi per eventuali problemi o lamentele riguardanti le co-municazioni con persone di tale sottodominio. Netfind, infine, è un sistema or-mai abbastanza in disuso per via dell'interfaccia piuttosto complessa, che potete però sperimentare specialmente per cercare indirizzi E-mail di persone in ambito universitario o all'estero.

Esistono comunque alcuni comodi sistemi accessibili tramite WWW, come Internet Address Finder (http://www.iaf.net/), WhoWhere? (http://www.whowhere.com/) e Four11 (http://www.four11.com/), che permet-tono di cercare l'E-mail di persone di cui è noto il nome e viceversa. Si tratta co-munque di archivi di dati ben lontani dall'essere completi. In Italia, la Telecom ha lanciato un servizio simile, denominato Mailory (http://mailory.tin.it/). E' comunque opportuno, prima di inserire il proprio indirizzo di E-mail in uno di questi archivi, controllare la politica di garanzia della privacy applicata dal sito, al fine di evitare che i proprietari dell'archivio possano poi farvi spedire junk mail indesiderata.

145

Che cos'è Finger?

Finger è un programma originariamente pensato per "suonare il campanello" di un utente della rete che dispone di una propria area su una macchina collegata a Internet, fornendo al programma semplicemente l'indirizzo dell'utente sotto for-ma di nomeutente@nomemacchina. Il computer che va indicato con il no-memacchina è quello su cui l'utente dispone dell'area, per cui l'indirizzo di Finger può non coincidere con quello di posta elettronica dell'utente, in quanto spesso la casella postale non è posta sullo stesso computer in cui è posta l'area dell'utente. Il computer dell'utente "fingerato" (verbo orribile e da non usare, an-che se in inglese to finger viene usato tra gli utenti della rete con questo signifi-cato) risponderà alla persona che ha "suonato" con alcuni dati, tra cui il nome completo dell'utente, se egli è attualmente collegato o no, nonchè tipicamente da-ta e ora dell'ultimo collegamento e dell'ultima lettura della posta elettronica. Cia-scun utente, inoltre, può fare in modo che ad una richiesta di Finger venga rispo-sto anche con un testo personalizzato (plan), che, per gli utenti che lavorano con un sistema operativo Unix, è convenzionalmente contenuto in un file denominato .plan o .project posto nella home directory dell'utente. In assenza di questi file, la persona che ha eseguito Finger riceverà, oltre ai dati sull'utente, un mes-saggio del tipo "No plan".

Fornendo a Finger un'indirizzo del tipo @nomemacchina (ossia senza no-meutente) viene invece presentata una lista di tutti gli utenti attualmente col-legati alla macchina. In questo modo, ad esempio, quando si vuole parlare con una determinata persona tramite Talk si può vedere se egli è collegato in quel momento.

Esistono anche alcuni utenti o enti che forniscono servizi tramite Finger - ad e-sempio le previsioni del tempo o un elenco di fatti storici e nascite avvenute nel giorno - modificando opportunamente e regolarmente il loro file .plan.

Gli utenti che si collegano via modem non possono essere fatti oggetto di una ri-chiesta di Finger diretta, in quanto il loro PC non è permanentemente connesso alla rete e comunque non dispone normalmente del software adatto. Tuttavia, quando un utente di questo tipo telefona per collegarsi egli effettua in realtà un login tramite una macchina che è collegata permanentemente alla rete, e che po-trete scoprire ad esempio osservando il percorso dei vostri dati mediante Trace-route: è il primo computer dopo il vostro. In questo caso, è possibile ottenere i vostri dati mediante un Finger a tale macchina, usando come nomeutente quello che voi inserite per collegarvi a Internet. Tuttavia, molti provider disabili-tano questa possibilità per motivi di sicurezza. Per questo motivo, Finger è ormai usato soltanto in congiunzione con aree Unix.

146

Che cos'è WHOIS?

WHOIS è un programma che ricerca informazioni su di un determinato utente o sottodominio della rete, interrogando un determinato database. Questo database contiene normalmente informazioni sui domini di secondo livello e sui relativi amministratori, per i quali fornisce dati come l'indirizzo di E-mail e dell'ufficio e il telefono dell'ufficio. Questi dati possono quindi essere utili nel caso dobbiate contattare i responsabili di un determinato dominio (ad esempio per lamentarvi delle azioni maleducate di un loro utente...).

I nomi di alcuni database (host) che possono essere interrogati sono:

whois.nis.garr.it Database italiano

whois.ripe.net Database europeo

whois.internic.net Database mondiale

nic.ddn.mil Database della rete del-l'esercito statunitense

Il database WHOIS italiano può essere interrogato anche tramite WAIS (all'indi-rizzo wais.nis.garr.it, sia tramite un proprio cliente WAIS, sia collegan-dosi ad esso con TELNET e fornendo come login wais) o tramite WWW (a partire dall'URL http://www.nis.garr.it/cgi-bin/nisdb-query).

Che cos'è NETFIND?

NETFIND è un servizio simile a WHOIS, ma più potente in quanto effettua una ricerca diretta sul momento, invece di accedere ad un database precostituito. Per lo stesso motivo, NETFIND permette di ritrovare informazioni praticamente su qualsiasi utente della rete, anche se non è l'amministratore di un sito e quindi non sarebbe reperibile con WHOIS. Sfortunatamente, comunque, il suo uso è possibi-le soltanto con utenti di domini che siano stati censiti dal suo database; ciò è ve-ro, in Italia, quasi esclusivamente per utenti universitari.

Per usare NETFIND è necessario collegarsi tramite TELNET a uno dei computer su cui è installato tale programma, inserendo come login netfind. Il principale host europeo a cui collegarsi è netfind.fnet.fr.

Dopo essersi collegati, viene proposto un menu dal quale è possibile richiamare un breve manuale oppure iniziare la ricerca vera e propria. Selezionando l'opzio-ne per la ricerca viene richiesto di inserire il nome della persona cercata e le

147

chiavi di ricerca (keys). Il nome specificato (uno solo) può essere quello reale (il nome o il cognome) oppure un nome di utente (login); le chiavi di ricerca posso-no essere parti di un nome di sottodominio (sostituendo eventuali punti con spa-zi; non può essere specificato il nome del computer vero e proprio), oppure paro-le vere e proprie, come ad esempio la città di residenza o il tipo o nome dell'or-ganizzazione per cui lavora ("university", "politecnico", "fiat"...). Il nome e le chiavi devono essere separate da spazi; verranno individuati solo gli utenti che possiedono un accesso all'interno di sottodomini che rispettano tutte le chiavi specificate (per cui se non ottenete niente provate ad eliminarne alcune). Ad e-sempio, se doveste ricercare l'indirizzo di E-mail dell'autore di questa guida, sa-pendo che si chiama Bertola e che studia in un Politecnico in Italia, potreste inse-rire le seguenti chiavi (ricordate che il nome va per primo):

bertola politecnico it

Per prima cosa, NETFIND ricerca all'interno di un proprio database (seed

database) tutti i sottodomini che contengono nel proprio indirizzo Internet o nel-la loro descrizione le chiavi specificate. Ad esempio, per il sottodominio del Po-litecnico di Torino NETFIND possiede la seguente descrizione:

polito.it (politecnico di torino, italy)

che effettivamente contiene sia politecnico sia it. Dopo questa fase, NE-TFIND restituisce all'utente una lista di tutti i sottodomini che contengono le chiavi indicate e gli chiede di sceglierne al più tre in cui effettuare la ricerca. A questo punto, il programma contatta in tempo reale i computer che gestiscono i sottodomini scelti e ricerca l'utente. Se l'intero processo va a buon fine, normal-mente viene restituito un indirizzo di posta elettronica presso il quale contattare l'utente ricercato.

Come posso accedere a Internet da casa? Cosa sono SLIP e PPP?

Negli ultimi anni si è diffuso l'accesso diretto su linea commutata, ossia il colle-gamento diretto del proprio computer alla rete via telefono. Questo tipo di colle-gamento presenta difficoltà tecniche, in quanto le linee telefoniche, rispetto ai normali cavi usati nelle reti locali di calcolatori, permettono velocità di trasmis-sione molto minori e risultano molto più "sporche", ossia provocano più facil-mente errori di trasmissione. È stato allora necessario studiare alcuni particolari protocolli di comunicazione che permettessero il dialogo tra computer secondo le convenzioni Internet (ossia quell'insieme di protocolli che va sotto il nome di TCP/IP) anche sfruttando le linee telefoniche.

148

La prima risposta a questo problema è il protocollo SLIP (Serial Line Internet Protocol). L'efficienza del collegamento può essere migliorata sfruttando il pro-tocollo CSLIP, ossia lo SLIP a cui è stato aggiunto l'algoritmo di compressione di Van Jacobson, e che quindi, comprimendo i dati, permette una maggior velo-cità di trasmissione. Infine, è stato sviluppato il protocollo PPP (Point to Point Protocol), che aggiunge alla compressione dei dati un algoritmo di correzione degli errori di trasmissione, e include inoltre alcuni protocolli (il più diffuso è PAP o Password Authentication Protocol, ma esiste anche CHAP o Challenge Authentication Protocol) per l'autenticazione dell'utenza, ossia la verifica di u-sername e password nel momento in cui si stabilisce il collegamento.

Lo SLIP è il primo sistema sviluppato, ma il PPP include anche alcune funziona-lità più avanzate, come la negoziazione automatica per l'assegnazione dinamica degli IP: mentre con gli accessi SLIP è necessario inserire a mano o leggere me-diante uno script dati come l'indirizzo IP del proprio computer o del server DNS, con gli accessi PPP queste assegnazioni possono essere effettuate in modo auto-matico, eliminando la necessità di utilizzare uno script. Il collegamento con PPP è quindi più efficiente e più semplice da gestire per l'utente, e del resto PPP è sta-to scelto come standard sia per Internet che per i sistemi Microsoft: di fatto, le connessioni SLIP sono quasi sparite. Ad esempio, Windows 95 supporta diret-tamente il PPP e i protocolli PAP e CHAP, mentre lo SLIP è supportato soltanto installando una apposita espansione.

Per poter collegare direttamente il proprio computer tramite telefono è allora ne-cessario eseguire in "sottofondo" un programma che si occupi di effettuare la connessione telefonica (dial-up connection: difatti la parte di programma che e-segue questa funzione è denominata dialer) e di trasmettere i dati sulla linea tele-fonica e sulla rete secondo uno di questi protocolli (facendo le funzioni di TCP/IP stack). Uno dei più noti programmi di questo tipo, per Windows 3.1, è Trumpet Winsock, mentre in Windows 95 questo tipo di applicazione è fornita con il sistema operativo e denominata Accesso Remoto. Senza un programma di questo tipo è assolutamente impossibile far funzionare i programmi di "alto livel-lo" come i browser!

Quando l'utente si collega da casa via telefono utilizza la rete telefonica per tutto il tratto tra il proprio modem e il modem del fornitore di accessi. Pertanto dovrà anche pagare, per tutto il tempo di collegamento a Internet, la bolletta telefonica, secondo la tariffa relativa a tale tratto (ossia la tariffa urbana se il proprio telefo-no e quello del fornitore sono nella stessa rete urbana telefonica, altrimenti l'op-portuna tariffa interurbana).

149

Quali pericoli corro mentre sono collegato?

La semplice conoscenza del vostro indirizzo IP numerico (che peraltro può esse-re individuato in vari modi, ad esempio esaminando l'header NNTP-Posting-Host: dei vostri articoli di newsgroup o mediante una richiesta /WHOIS quan-do siete collegati con IRC) fornisce ad una persona che ce l'abbia con voi alcune armi potenziali.

Ad esempio, è possibile far resettare a distanza un PC collegato alla rete: sfrut-tando un bug di Windows 95 (un sistema operativo ben fatto...), basta un sempli-ce Ping fatto in un certo modo per mandare in tilt il vostro PC. Questa operazio-ne è nota come nuke. In particolare, accade molto spesso di essere nukati da qualche "buontempone" mentre si sta dialogando su un canale affollato di IRC. In questo caso, conviene scaricare e installare l'upgrade Winsock 2.2 e un pro-gramma che sorveglia i tentativi di nuke, come ad esempio NukeNabber (http://www.dynamsol.com/puppet/).

Inoltre, l'innocente e utile Finger può fornire molte informazioni che preferireste non rendere pubbliche, come il vostro login per la connessione, il vostro indiriz-zo e numero di telefono, e simili. I provider previdenti disattivano Finger sulle macchine su cui accedono via telefono gli utenti, in modo da non rispondere a ri-chieste Finger fatte su di voi.

Quali altri rischi posso incontrare su Internet?

Uno dei rischi più comuni è legato alla sicurezza dei pagamenti elettronici, che richiedono normalmente l'invio di un numero di carta di credito. Anche ammet-tendo l'affidabilità dell'azienda da cui acquistate, il vostro numero di carta di cre-dito - così come qualsiasi dato che voi inseriate in un modulo del WWW - viag-gia in chiaro e può essere intercettato in modo molto semplice lungo la rete. Per questo motivo, è bene inviare dati importanti soltanto se essi possono essere co-municati in modo cifrato - ad esempio, usando un protocollo di navigazione ci-frato come HTTPS.

Comunque, la sicurezza non è soltanto legata agli aspetti tecnici. Ad esempio, pensate al caso seguente: voi volete acquistare via Internet un prodotto da una nota multinazionale, pagando con carta di credito. A questo scopo, vi collegate con un motore di ricerca, trovate l'indirizzo del sito ufficiale dell'azienda, vi col-legate con esso, trovate il modulo per gli acquisti, e inserite il vostro numero di carta di credito, fidandovi del fatto che si tratta di una azienda molto nota e che

150

avrà preso tutte le opportune precauzioni per garantire la sicurezza del pagamen-to. Tutto a posto?

Ad alcune persone che hanno messo in pratica questa procedura è capitata una brutta sorpresa: difatti, una persona piuttosto furba aveva realizzato una copia au-tomatica del sito ufficiale della multinazionale, l'aveva messa ad un indirizzo si-mile a quello del sito originale, e aveva pubblicizzato la pagina nei motori di ri-cerca. Gli utenti, senza prestare troppa attenzione, si erano quindi collegati con quella pagina, anzichè con quella ufficiale (peraltro identica nell'aspetto), e ave-vano così fornito il proprio numero di carta di credito ad un malintenzionato. In-somma, anche su Internet si possono riproporre tutte le truffe più tradizionali, a partire dalla falsificazione dei siti WWW (Web spoofing), indipendentemente dalla sicurezza intrinseca delle comunicazioni.

Alle volte le truffe sono particolarmente ingegnose: ad esempio mi è successo di vedere un sito americano di hacker che, mediante un linguaggio da spie e una grafica da film di fantascienza, proponeva una form per "cancellare la propria e-sistenza dagli elenchi dell'FBI". Inutile dire che in questo modulo bisognava in-serire una serie di dati personali che sarebbero stati di grande aiuto a chi volesse falsificare un documento o impersonare qualcun altro. State attenti...

Che cosa sono SSL e HTTPS?

SSL (Secure Sockets Layer) è un insieme di protocolli sviluppato dalla Netscape per proteggere le comunicazioni tra browser e siti WWW, criptando i messaggi in entrambe le direzioni. Esso è particolarmente utile per il commercio elettroni-co, che richiede la trasmissione senza pericoli di dati personali e numeri di carta di credito. Tale insieme di protocolli, inoltre, garantisce un ulteriore controllo sull'integrità dei dati, e inoltre dispone di tecniche per l'autenticazione del sito remoto (ossia, per controllare che il sito che sta dialogando con l'utente sia pro-prio quello desiderato, e non un impostore che si spaccia per esso).

A livello tecnico, i protocolli di SSL si inseriscono tra l'HTTP (il protocollo di trasmissione degli iperoggetti) e il TCP (il protocollo che cura la trasmissione vera e propria dei dati); l'insieme dell'HTTP e dell'SSL è denominato HTTPS, e il suo uso è individuato da URL aventi come metodo https. Ad esempio, l'indi-rizzo

https://home.netscape.com/

151

indica una connessione HTTP al sito home.netscape.com effettuata crip-tando le comunicazioni secondo quanto stabilito dall'SSL. Solitamente, l'utente non inserisce direttamente un indirizzo di questo tipo, ma esso è richiamato a partire da un'altra pagina o da un modulo. Inoltre, per poter effettuare una con-nessione di questo tipo anche il server del sito deve essere opportunamente at-trezzato.

Che cos'è SSH?

SSH (Secure Shell) è un sistema di collegamento remoto, analogo a Telnet, che però cripta la comunicazione tra il terminale e il computer utilizzato, utilizzando vari sistemi (di base, alcune varianti del già citato DES, a cui però può essere ag-giunta una cifratura sulla base di chiavi RSA). In questo modo non è possibile in-tercettare la vostra comunicazione - inclusi i dati di login e password - mediante un semplice sniffer. Questo sistema, inoltre, permette di porre limitazioni sui computer che possono essere utilizzati come terminale: il computer su cui è po-sto l'account accetterà collegamenti SSH soltanto da un elenco di computer pre-definito.

Che cosa vuol dire "shareware", "PD"... ?

Ciascun programma disponibile in rete viene distribuito insieme ad opportune condizioni di licenza, che stabiliscono chi e come è autorizzato ad usarlo e se egli deve corrispondere un prezzo d'acquisto o no. Talvolta queste condizioni so-no contenute in un file a parte, ad esempio LICENSE.TXT o REGISTER.TXT, ma dovreste comunque trovare indicazioni nel file README. È quindi opportu-no, prima ancora di installare il prodotto, leggere questo file per capire a quali condizioni potrete usarlo. Alcuni programmi, comunque, vi presentano le condi-zioni di licenza durante l'installazione o al primo caricamento, e vi richiedono di accettarle "esplicitamente" premendo un bottone identificato da scritte come I Agree o Accept License. In questo caso, premendo il bottone accettate ai fini legali tutte le condizioni di licenza e vi impegnate a rispettarle (cosa che co-munque vale anche per i programmi che non richiedono l'accettazione esplici-ta...)

Nel corso del tempo sono entrati nell'uso comune alcuni nomi particolari per in-dicare alcune condizioni di licenza più o meno standardizzate.

1. Public Domain (PD): i programmi distribuiti come PD sono liberi da ogni vincolo di copyright: l'autore li mette gratuitamente a disposizione di chiunque rinunciando ai propri diritti. Qualunque persona può non

152

solo copiare e utilizzare il programma, ma anche modificarlo (spesso nel pacchetto di distribuzione sono acclusi anche i sorgenti del pro-gramma), riutilizzarlo, inserirlo in altri programmi anche commerciali.

2. Freeware: questi programmi sono copiabili e utilizzabili gratuitamente da chiunque, ma l'autore mantiene su di essi i propri diritti: il program-ma non può essere modificato e il codice non può essere utilizzato senza il suo consenso.

3. Cardware: questi programmi sono copiabili e utilizzabili da chiunque a patto che egli invii una cartolina all'autore. (Alcuni autori richiedono cartoline di argomento specifico; dipende dalla licenza). L'autore man-tiene i propri diritti: il programma non può essere modificato e il codice non può essere utilizzato senza il suo consenso.

4. Shareware: questa è la categoria più grande, ed indica che il program-ma può essere copiato liberamente (molti autori incoraggiano a farlo) ma può essere utilizzato esclusivamente allo scopo di valutarne la vali-dità in vista di un eventuale acquisto. Le condizioni esatte sotto le quali è ammesso l'uso a tale scopo sono indicate nella licenza. I casi più tipici sono:

1. Il programma può essere utilizzato solo per un determinato pe-riodo di tempo, e quindi deve essere cancellato;

2. Il programma è incompleto, e per poterne usare tutte le poten-zialità deve essere acquistato (modalità anche detta cripplewa-re);

3. Il programma "disturba" l'utente in vari modi (ad esempio co-stringendolo ad una lunga attesa prima di mettersi in moto, compiendo operazioni indesiderate, modificando parzialmente i dati che si stanno trattando...), che verranno eliminati solo dopo l'acquisto (modalità anche detta nagware).

(Esistono poi molte combinazioni dei casi suddetti; quasi ogni autore si inventa una propria modalità per scoraggiare l'uso non autorizzato).

Comunque sia, per poter usare un programma shareware in permanenza e nel pieno delle sue funzionalità esiste l'obbligo (perlomeno dal punto di vista legale e morale) di acquistarlo, ossia di registrarsi (to register) come utente autorizzato. La registrazione avviene in modo diverso da programma a programma, ma comporta normalmente il pagamento di una somma di denaro all'autore. Se il programma è crippleware o na-gware, in cambio l'autore provvederà - inviando un dischetto con un nuovo archivio o una password - ad eliminare le limitazioni o le azioni di disturbo.

153

Un caso particolare è quello del progetto GNU (la sigla GNU è definita "ricorsi-vamente": significa GNU's Not Unix), promosso dalla FSF (Free Software Foundation). Si tratta di un lavoro collettivo, portato avanti da centinaia di pro-grammatori, teso a creare un insieme di programmi gratuitamente disponibili in rete, e insieme a diffondere la programmazione. I programmi realizzati nell'am-bito di questo progetto sono posti sotto la cosiddetta GNU GPL (General Public License), e possono essere distribuiti e utilizzati gratuitamente (come per il free-ware) con in più l'obbligo di accludere alla distribuzione il codice dei program-mi. Sotto licenza GNU sono disponibili programmi molto famosi, come il com-pilatore per il linguaggio C GCC e il programma Ghostscript per la lettura di fi-le PostScript; per maggiori informazioni potete consultare http://www.gnu.org/. Il software GNU è princpalmente per sistemi Unix, e lo troverete nei siti FTP del progetto; tuttavia, esistono delle versioni per PC dei programmi GNU (incluso il compilatore C) disponibili nei siti Simtel.Net.

Esistono anche programmi con licenze di tipo particolare, diversificate a seconda di classi di utenti: ad esempio Netscape Communicator 4 è freeware per studenti e docenti universitari, è shareware ma con un periodo di valutazione illimitato per gli utenti domestici, è shareware e va registrato entro 90 giorni per l'uso in azienda o a fini commerciali.

Può capitare anche di trovare in vendita a basso prezzo, ad esempio su CD-ROM, raccolte di software PD, freeware o shareware. Normalmente, difatti, le li-cenze di questi programmi prevedono che essi, sebbene di copia e uso parzial-mente o totalmente gratuito, possano essere inseriti in raccolte di software per le quali viene richiesto un compenso in denaro, a patto che il prezzo richiesto sia ta-le da coprire esclusivamente le spese di pubblicazione (stampa dei CD, distribu-zione...) più un piccolo margine. Tuttavia, acquistando una raccolta di questo ti-po si acquista soltanto la possibilità di leggere e copiare gli archivi in essa con-

tenuti; se essi contengono programmi shareware che si desidera utilizzare, biso-gnerà poi provvedere ad "acquistarli" in senso vero e proprio, registrandosi e cor-rispondendo direttamente all'autore il relativo prezzo.

In generale, la "libertà di copia" concessa vale soltanto a patto che l'archivio sia mantenuto integro e non modificato (ossia, è possibile copiare l'archivio origina-le ma non i singoli file in esso contenuti).

Che cos'è Gopher? E Veronica?

Gopher è stato il primo tentativo di unificazione dei vari protocolli esistenti sul-la rete, sebbene sia stato dopo poco tempo dalla sua creazione soppiantato dal più potente World Wide Web. Un programma Gopher presenta all'utente una se-

154

rie di menu testuali, la cui selezione può portare ad un altro menu (situato sullo stesso computer o su di un altro, proprio come nel WWW), alla visualizzazione di un file di testo, oppure alla copia di un file, o persino ad un collegamento Tel-net o di altro tipo.

Questo servizio, dopo aver avuto un enorme "boom" al momento della sua idea-zione, sta sparendo e venendo rimpiazzato dal sistema a ipertesti; tuttavia si pos-sono ancora trovare su Gopher un buon numero di risorse. Inoltre, esso presenta il vantaggio di disporre di un comodo e potente sistema di ricerca, denominato Veronica; collegandosi ad esso si può inserire una stringa e ricevere, al termine della ricerca, un menu testuale che presenta tutte le voci di menu, situate nei vari gopher sparsi per il mondo, che contengono la stringa indicata. In realtà, ciascun computer di ricerca pone un tetto al numero di voci da restituire (un valore tipico è 200), per evitare menu chilometrici ed illeggibili. Nel caso che il computer al quale si è presentata la richiesta sia troppo occupato, inoltre, esso girerà la richie-sta ad un altro, segnalando ciò all'interno di una particolare voce di menu posta all'inizio dei risultati della ricerca.

Alcuni indirizzi a cui si può trovare Veronica sono:

gopher://veronica.unipi.it:2347/7 (per l'Europa) gopher://veronica.scs.unr.edu:70/11/veronica (sito base mondiale)

Spesso ci si dimentica dell'esistenza dei Gopher e di Veronica; tuttavia, può vale-re la pena di usarli (anche tramite un browser, mediante URL che iniziano per gopher:, per effettuare ricerche relativamente veloci e semplici.

Che cos'è un proxy?

Un proxy server è un programma (e, per estensione, il computer su cui esso vie-ne eseguito) che svolge la funzione di "agente" per gli utenti di altri computer. Difatti, configurando i propri programmi di comunicazione perchè sfruttino un proxy - tipicamente situato su un computer diverso dal proprio - tutte le richieste di comunicazione, come ad esempio la richiesta di caricamento di un ipertesto, non saranno fatte dal proprio computer direttamente al sito remoto, ma verranno fatte al proxy server; il programma di proxy si occuperà poi di contattare il sito remoto, farsi spedire l'oggetto desiderato, e "girarlo" al computer dell'utente. Ap-parentemente, questa può sembrare una perdita di tempo (e talvolta lo è, se il si-stema non è ben studiato); tuttavia, l'operazione può presentare molti vantaggi: ad esempio il proxy dispone solitamente di una propria "cache", nella quale me-morizza tutti gli oggetti recuperati negli ultimi tempi; se un utente richiede di ca-ricare un oggetto, ad esempio un ipertesto, che è già stato richiesto qualche tem-

155

po prima da un altro utente, e si trova quindi memorizzato sul proxy, esso prov-vede a spedirglielo direttamente, senza dover ricontattare il sito remoto, e quindi molto più velocemente di quanto succederebbe se il computer dovesse attendere la lunga e lenta connessione con il sito remoto.

Spesso il proxy viene utilizzato in congiunzione con un firewall, sullo stesso computer; difatti nel caso del firewall tutti i messaggi provenienti dalla zona pro-tetta devono comunque passare e venire esaminati da quel computer, per cui tan-to vale aggiungere su di esso anche funzioni, come quella della cache, tipiche del proxy; in questo caso, la presenza del proxy insieme al firewall non provocherà nessun rallentamento rispetto alla presenza del solo firewall; tuttavia, non sarà possibile navigare senza utilizzare il proxy (provando a navigare senza proxy, nessuna connessione verrà stabilita).

Nella configurazione dei browser più recenti, è possibile configurare i proxy in modo manuale oppure automatico. Nella configurazione manuale, è necessario specificare il proxy per i differenti protocolli di comunicazione; normalmente i proxy sono attivi per i protocolli HTML, FTP e Gopher. Un altro parametro ri-chiesto è il numero di porta; i valori più frequenti sono 80, 1080, 8080 o 3128.

Che cos'è Java?

Java è il nome di un linguaggio di programmazione sviluppato dalla Sun e re-centemente proposto come principale strumento di sviluppo per applicazioni pensate per funzionare su reti di calcolatori. Tramite questo linguaggio è possibi-le sviluppare programmi che possono essere eseguiti senza problemi su qualsiasi computer che soddisfi a certi requisiti, indipendentemente dalle caratteristiche particolari del computer stesso: questo significa che, per un programma scritto in Java, non è necessario produrre versioni diverse per i vari computer, ma lo stesso identico programma potrà tranquillamente essere eseguito su un PC, un Macin-tosh, un computer Unix... Java suppone di non avere a che fare con un particolare modello di computer, ma con una macchina virtuale (virtual machine) dalle ca-ratteristiche standardizzate.

D'altra parte, per ottenere una simile versatilità è stato necessario rinunciare a va-rie altre cose: Java è un linguaggio estremamente povero (il che, d'altra parte, può anche essere un vantaggio), e soprattutto è interpretato invece che compila-

to. In parole povere, per eseguire un qualsiasi programma scritto in Java è neces-sario disporre di un altro programma (l'interprete) al quale "dare in pasto" il co-dice: difatti, questo programma deve occuparsi di realizzare le funzioni standard della macchina virtuale sul particolare computer usato dall'utente. Per questo mo-

156

tivo, i programmi in Java saranno tendenzialmente più lenti e meno efficienti dei normali file eseguibili, che non necessitano di interprete.

Inoltre, per poter scrivere un codice funzionante su computer molto diversi tra loro è necessario che il programma si limiti a sfruttare solo le potenzialità hardware comuni a tutti loro. Per questo motivo, si è scelto di "limitare" Java a sistemi con una certa potenza minima, e in particolare a sistemi operativi a 32 bit capaci di un vero multitasking. Pertanto, inizialmente sono stati disponibili inter-preti Java esclusivamente per Windows 95 / NT e per alcune particolari versioni di Unix prodotte dalla Sun; soltanto recentemente il linguaggio è stato portato su Windows 3.x., e comunque con applicazioni molto limitate.

Oltre a veri e propri programmi eseguibili tramite l'interprete, è possibile in Java scrivere degli applet, ossia programmi che vengono inseriti in pagine WWW ed eseguiti quando l'utente carica tali pagine. Anche qui, per poter utilizzare questi programmi è necessario disporre di un browser con incorporate le capacità di un interprete Java; su Windows 95 tali caratteristiche sono possedute da Netscape Navigator 2.0 e superiori, mentre per usare gli applet Java su Windows 3.x è ne-cessario disporre di Netscape Communicator 4.

Le caratteristiche "orientate alla rete" di Java rendono anche possibile la realiz-zazione di normali applicazioni (word processor, fogli di calcolo...) che vengono governate dal computer dell'utente, ma eseguite su computer remoti, che funzio-nano da server; in questo caso il computer dell'utente potrebbe essere un termina-le di scarsa potenza e basso costo (si ipotizza una cifra intorno a 500 dollari): un network computer (NC), che non può funzionare se non attaccato ad una rete. Sebbene questo tipo di realizzazioni sia ancora di là da venire, questo sembra es-sere il vero futuro di questo linguaggio di programmazione...

Che cos'è Javascript?

Javascript è un linguaggio di scripting pensato appositamente per realizzare programmi da inserire in pagine WWW. Si tratta in sostanza di un insieme di comandi, abbastanza simile al C e a Java, che vengono interpretati in tempo reale dal browser ed eseguiti sul momento dal computer dell'utente.

Rispetto a Java, Javascript è molto più semplice da usare, anche se meno potente. Permette tuttavia lo svolgimento di semplici operazioni dal lato cliente della connessione: ad esempio il controllo della validità dei dati inseriti in una form, in precedenza affidato ad un programma CGI, o semplici realizzazioni grafiche come quella della scritta che scorre nella barra inferiore del browser, visibile in molti siti. È quindi un ideale complemento dell'HTML, che permette un incre-

157

mento della flessibilità per gli autori di pagine Web senza però richiedere l'ac-quisizione di un linguaggio di programmazione complesso come Java e l'utilizzo di strumenti come compilatori o interpreti.

Al momento, Javascript è supportato da Netscape versione 2 o superiore, per qualsiasi sistema operativo; inoltre è supportato da Internet Explorer 3 o superio-re. Si tratta comunque di un linguaggio in forte evoluzione, per cui alcune carat-teristiche sono supportate soltanto da versioni più recenti dei browser; svilup-pando un programma è opportuno fare attenzione ai problemi di compatibilità. La documentazione completa sul linguaggio può essere recuperata dal sito della Netscape, all'indirizzo http://developer.netscape.com/library/documentation/javascript.html.

Che cos'è MPEG?

MPEG (Motion Pictures Expert Group) è il nome di un gruppo di lavoro dell'I-SO - il maggiore organismo mondiale di standardizzazione - che si occupa di produrre standard per la codifica di audio e video, e, per estensione, è anche il nome degli standard da esso prodotti.

Scopo della codifica audio-video è essenzialmente quello di comprimere il se-gnale prodotto dalla digitalizzazione di un'immagine o di un brano sonoro, per-mettendo di trasmetterlo e riprodurlo col miglior rapporto possibile tra qualità e dimensioni del file (o velocità di trasmissione richiesta per la spedizione dei dati dalla sorgente all'utente). In questo modo, diventa più semplice ed economico fornire servizi multimediali sulle reti di telecomunicazioni e distribuire audio e video in forma digitale.

Esistono tre diversi standard MPEG:

• MPEG-1, il primo sviluppato, è nato per applicazioni a qualità relati-vamente bassa (video di livello VHS, per intenderci), e per la registra-zione su CD (CD-video);

• MPEG-2 è invece mirato in generale alla trasmissione e memorizzazio-ne di audio-video su reti digitali, con grande scalabilità, ossia con la possibilità di avere qualità diversa a seconda delle necessità;

• MPEG-4, in corso di sviluppo, dovrebbe introdurre una codifica per oggetti, e non più semplicemente per immagini.

158

MPEG-3 doveva essere lo standard per la TV ad alta definizione, ma si è visto che le prestazioni di MPEG-2 erano sufficienti a inglobare anche queste applica-zioni.

La codifica MPEG si basa in gran parte sulla tecnica delle trasformate spaziali: l'immagine viene divisa in blocchetti, e di ogni blocchetto viene calcolato lo spettro in termini di variazione delle componenti dell'immagine nello spazio: poichè tipicamente pixel vicini hanno colori molto simili, si riesce a buttar via una parte dei dati - quelli relativi alle forti variazioni di colore - senza perdere molto in qualità. Esistono poi altre tecniche: ad esempio, i vari fotogrammi di un filmato possono essere trasmessi interamente (i cosiddetti frame I), ma anche es-sere trasmessi come differenza rispetto al fotogramma precedente (frame P) o come differenza rispetto all'interpolazione lineare tra il fotogramma precedente e il successivo (frame B): in generale, le differenze hanno un valore molto piccolo, il che permette di trasmetterle bene utilizzando pochi bit. In questo modo, si ot-tiene un flusso di dati estremamente compresso, che può essere anche salvato in un file (tipicamente distinto dall'estensione .MPG) e riprodotto in seguito.

Per quanto riguarda l'audio, normalmente si sfruttano le caratteristiche dell'orec-chio umano, e in particolare la sua incapacità di sentire suoni deboli se vicino ad essi, in frequenza o nel tempo, vi è un suono molto forte, per eliminare una parte dei dati da trasmettere. La codifica dell'audio è distinta in livelli (layer); sono abbastanza diffusi i file audio MPEG Layer 2 (normalmente con estensione .MP2), e hanno conosciuto recentemente una grande diffusione i file audio MPEG Layer 3 (.MP3); questi ultimi file garantiscono, rispetto a formati larga-mente diffusi come i .WAV, una compressione anche di 10 - 15 volte senza una significativa perdita di qualità: un brano musicale di tre minuti può essere tran-quillamente ridotto fino a stare su un normale dischetto.

Sia i file MPEG video che i file MPEG audio necessitano, per essere riprodotti, di appositi programmi, che sono normalmente reperibili in rete.

Che cos'è una Intranet?

Anche le aziende si sono dimostrate interessate alla grande quantità di informa-zioni e di servizi disponibili gratuitamente su Internet. Mentre in passato l'acces-so a Internet degli utenti aziendali era limitato ed avveniva tramite postazioni de-dicate oppure tramite un gateway che convertiva i dati dal formato della rete lo-cale dell'azienda a quello di Internet, il desiderio di una maggiore interazione ha portato al concetto di Intranet: una rete locale interna all'azienda, realizzata però con i protocolli e gli standard di Internet. In questo modo, gli utenti della rete a-ziendale potranno usare i sistemi e i programmi della grande rete non solo per

159

navigare all'esterno, ma anche per la normale comunicazione interna; contempo-raneamente, i dati e i messaggi prodotti all'interno saranno già pronti per essere "esportati" nel grande mare di Internet, e le informazioni reperite all'esterno po-tranno essere immediatamente inserite nel circuito aziendale.

Inoltre, è possibile sfruttare i normali canali di comunicazione di Internet, dispo-nibili in modo sostanzialmente gratuito, per le trasmissioni tra le varie sedi del-l'azienda, costruendo quindi, a bassissimo costo, quella che spesso viene chiama-ta una Extranet. Se immaginate di avere sedi in tutto il mondo, il risparmio non è indifferente, anche se viene pagato in termini di velocità dei collegamenti e so-prattutto di sicurezza.

Dal punto di vista della sicurezza, difatti, bisogna stare ben attenti a proteggere le parti nevralgiche della propria rete locale dall'ingresso di possibili sbirciatori non desiderati, solitamente tramite un firewall, e inoltre è necessario crittografare op-portunamente tutto il traffico che transita sui canali di comunicazione comuni.

La scelta del modello Internet per la rete locale di un'azienda comporta anche conseguenze sull'organizzazione del lavoro interno: difatti, come visto, Internet è basata sul modello client-server. Questo significa che, solitamente, vengono cre-ati nella rete locale uno o più information server, su cui vengono conservate tutte le informazioni che devono essere condivise tra più utenti. I computer degli uten-ti saranno quindi in costante collegamento con l'information server, che diventerà il cuore della rete locale. Un modello di questo tipo semplifica la cooperazione e la supervisione del lavoro e il reperimento delle informazioni, ma rende necessa-ria una assoluta sicurezza negli accessi al server e una buona efficienza della re-te.

Che cos'è ISDN?

La sigla ISDN (Integrated Services Digital Network) indica una generica rete per la trasmissione di dati binari, mirata all'integrazione di servizi, ossia alla possi-bilità di offrire contemporaneamente servizi diversi sulla stessa rete (ad esempio, il telefono, la trasmissione dati, l'accesso a videoteche in rete, il teleacquisto, la videoconferenza, e tutto quello che può venirvi in mente). Difatti, mentre le tra-dizionali reti di comunicazione, come quella telefonica, si preoccupavano di for-nire un singolo servizio, con l'avvento della digitalizzazione è diventato possibile trasformare qualsiasi cosa in dati binari, e quindi, attraverso la trasmissione a pacchetti, far convivere sullo stesso mezzo di trasmissione più comunicazioni di-verse e più servizi.

160

In parole povere, su una rete ISDN è possibile far viaggiare contemporaneamen-te, ad esempio, la voce (telefono) e i dati; in realtà, essi non viaggiano veramente in contemporanea, ma invece la voce viene campionata e trasformata anch'essa in una serie di dati binari, e poi tali dati vengono inframmezzati agli altri, per-mettendo di mandare avanti entrambe le comunicazioni. Per l'utente, comunque, l'effetto è quello di più comunicazioni contemporanee, proprio come se esse av-venissero su due linee separate.

Nell'uso commerciale attuale, ISDN indica un collegamento digitale a banda stretta, ossia relativamente lento: l'offerta di base si fonda su due canali a 64 Kb/s, dei quali uno sostituisce la normale linea telefonica (difatti, 64 Kb/s è la velocità necessaria per trasmettere senza compressione i dati vocali generati dal telefono) mentre l'altro può essere utilizzato, ad esempio, per collegarsi a Internet.

L'obiettivo, tuttavia, è quello di realizzare reti ISDN a larga banda, ossia con ve-locità di trasmissione dai 2 Mb/s (per ciascun utente) in su. Reti di questo tipo ri-chiedono in pratica di realizzare una nuova rete di telecomunicazioni, basata in gran parte sulla fibra ottica, ed è proprio questo che la Telecom sta facendo in I-talia. Mentre 64 Kb/s sono di gran lunga troppo pochi per trasmettervi del video di qualità decente, e sono appena sufficienti a trasmettere della musica compres-sa di buona qualità, con qualche Mb/s diventa (quasi) possibile realizzare appli-cazioni come il video on demand: l'utente si collega con un server, sceglie il film che desidera vedere, e riceve via rete il flusso di immagini che saranno proiettate dal suo televisore. Resta da vedere quanti saranno interessati a spende-re cifre non indifferenti per un servizio di questo tipo: i primi esperimenti sono stati abbastanza deludenti.

Tutte le realizzazioni già esistenti di rete a larga banda si basano sulla tecnica ATM (Asynchronous Transfer Mode), che è stata sviluppata proprio allo scopo di garantire una elevata velocità di trasmissione unita ad una garanzia sulla quali-tà del servizio offerto, che diventa fondamentale nel momento in cui si devono offrire servizi in tempo reale come il telefono o il video on demand: non può cer-to succedere che, a causa del traffico, la telefonata si interrompa, così come oggi si interrompono i collegamenti su Internet!

Che cos'è una BBS? Posso collegarmi a una BBS via Internet?

Una BBS (Bulletin Board System) è semplicemente un computer dotato di uno o più modem e su cui viene eseguito un apposito programma di gestione. Questo programma permette a tutti gli utenti autorizzati (ossia dotati di un proprio login e una propria password) di entrare nel sistema tramite un proprio modem, chia-

161

mando un numero di telefono che è collegato ai modem della BBS. Nel sistema sono posti archivi di file, aree messaggi, giochi interattivi, e tutto quanto il gesto-re della BBS (detto SysOp o System Operator) vuole mettere a disposizione de-gli utenti autorizzati. Ciascun utente dispone generalmente di un tempo d'accesso limitato e di un tetto massimo alla quantità di file che si possono prelevare dal-l'archivio della BBS; la quantità precisa varia a seconda del "livello" di parteci-pazione alla BBS. Un nuovo utente, che non possiede un login autorizzato, può generalmente collegarsi, ricevendo però un tempo d'accesso molto ridotto; mano a mano che esso "partecipa" alla BBS, ad esempio copiando file dal proprio computer all'archivio della BBS, sale di livello e riceve privilegi maggiori.

In buona sostanza, questi sistemi, molto in voga negli anni '80 e ancora adesso molto diffusi, permettevano di fare "in piccolo" e solo tra i loro relativamente pochi utenti quello che si può fare con Internet (dialogare via computer, copiare file); prima dell'avvento di Internet rappresentavano spesso l'unica alternativa ai negozi per il reperimento di software e l'unica possibilità di comunicazione diret-ta tra utenti di computer, specialmente piccoli (PC, Amiga...). Molte BBS, nel tempo, hanno compreso l'utilità di comunicare tra loro, e sono pertanto nate vere e proprie "reti di BBS" (ad esempio FidoNet).

Alcune BBS hanno cominciato a connettersi a Internet in modo da fornire anche questo servizio ai loro utenti autorizzati. Poichè una BBS è semplicemente un computer, a ciascuna BBS connessa a Internet corrisponde quindi un IP numeri-co e un nome letterale; normalmente, noto il nome Internet della BBS, ci si col-lega ad essa tramite Telnet; il computer remoto richiederà login e password, pro-prio come se ci si stesse connettendo direttamente tramite il numero telefonico della BBS, e quindi permetterà l'accesso di conseguenza.

Come è fatto un PC? Come posso valutarne le prestazioni?

Avvertendo che questo paragrafo risulterà particolarmente stupido per molti dei lettori di questa guida, vale la pena di risolvere alcuni dubbi che spesso si hanno quando si tratta di scegliere o di valutare un computer. Per chiarire questi dubbi, ecco una breve lista dei componenti principali di un computer e dei parametri che permettono di valutarne le prestazioni, con l'avvertenza che il mercato dell'e-lettronica è soggetto a sbalzi clamorosi: le indicazioni sotto riportate sono state scritte all'inizio del 1998, e potrebbero diventare obsolete in pochi mesi.

1. Il microprocessore. Esso è il cuore del computer: è quello che compie quasi tutte le operazioni richieste durante l'esecuzione di un programma. I primi PC originali (quelli IBM) erano basati su microprocessori pro-dotti dalla Intel, ma negli ultimi anni sono stati immessi sul mercato

162

computer compatibili basati su processori di altri costruttori. Ovviamen-te, non è detto che un processore non-Intel sia per forza migliore o peg-giore di un processore Intel: dipende dal modello!

Le prestazioni di un microprocessore possono essere valutate dalla sua frequenza di clock e dal suo numero di bit (oltre che dal processore stesso). La frequenza di clock (50 MHz, 66 MHz...3.2 GHz) misura la velocità intrinseca del processore: un processore da 50 MHz (megahertz) può eseguire 50 milioni di "operazioni elementari" al secondo, per cui più alta è questa frequenza maggiore è il numero di operazioni eseguite in un secondo. Poichè oltre qualche decina di MHz, per una serie di motivi fisici, non si riesce ad andare, almeno per quanto riguarda la velocità generale del computer, sono stati inventati vari trucchi per aumentare questo numero e far felici i clienti, il più diffuso dei quali (implementa-to nelle serie "DXn" dei 486, e su tutti i Pentium) è quello di aumentare la velocità interna del processore - il che non è troppo difficile - senza aumentare la velocità con cui il processore comunica con tutte le altre parti del computer - il che sarebbe molto più difficile; in pratica, un pro-cessore "DXn" lavora alla frequenza di clock indicata, ma comunica con l'esterno ad una frequenza che è un ennesimo della frequenza di clock. Per fare un esempio, un processore 486-DX2 a 66 MHz compie inter-namente 66 milioni di operazioni elementari al secondo, ma comunica con il resto del computer a 33 MHz (66 diviso 2), ossia può comunicare un dato all'esterno per 33 milioni di volte al secondo. Insomma, quando vi danno un Pentium a 166 MHz, non pensate che tutte le parti del vo-stro computer lavorino a tale frequenza: quella è la velocità soltanto del-le parti interne del microprocessore! Il numero di bit (16 – 32 – 64) indica quanti bit possono essere trattati dal computer in una volta sola. Ad esempio, un processore a 16 bit può sommare tra loro in un colpo solo due numeri binari di 16 bit ciascuno, ma se deve sommare due numeri di 32 bit ciascuno deve farlo in due passi. Pertanto, maggiore è il numero di bit maggiore è la velocità di calcolo. Anche qui, sono stati inventati vari trucchi, il più diffuso dei quali è quello adottato nelle serie "SX", peraltro ormai praticamente de-funte: in questi processori, il computer lavorava internamente ad un cer-to numero di bit, ma comunicava con l'esterno a "blocchi" di metà di questo numero di bit. Ad esempio il processore 386SX lavorava inter-namente a 32 bit, ma spediva i dati agli altri componenti a 16 bit alla volta (il che ovviamente rallenta le comunicazioni con il resto del com-puter). Poichè le esigenze di marketing non sono quelle della chiarezza, co-munque, varie ditte hanno prodotto processori con caratteristiche leg-

163

germente diverse da quelle che il loro nome farebbe supporre... insom-ma, non prendete le indicazioni sopra esposte come valide sempre e comunque. Ad esempio, ditte concorrenti della Intel hanno lanciato i "processori col più": un processore 586 "166+" funziona in realtà a me-no di 166 MHz, ma grazie ad alcuni accorgimenti riesce ad offrire circa le stesse prestazioni di un Pentium 166. Questi parametri, comunque, servono a confrontare tra loro processori dello stesso tipo (ossia dello stesso numero di serie), ma ovviamente processori diversi, pur andando alla stessa frequenza di clock e avendo lo stesso numero di bit, possono fornire prestazioni radicalmente diver-se. Tanto per chiudere, ecco una lista in ordine di potenza dei vari pro-cessori Intel storicamente montati sui PC: 8088, 8086 (il primo nato), 80286, 80386, 80486, Pentium, Pentium Pro (quest'ultimo è superiore al Pentium solo in determinati ambienti operativi) e Pentium II. Le case concorrenti, come la Cyrix o la AMD, si sono inventati nomi come il 586 o il 6x86 (che in realtà è più o meno della stessa fascia del Pen-tium...) Nel corso del 1997 si sono diffusi i processori Pentium MMX, ossia dei Pentium a cui sono state aggiunte "istruzioni multimediali" che dovrebbero aumentarne la potenza per l'uso grafico.

2. I coprocessori. Un coprocessore è un particolare chip che, una volta montato, interagisce strettamente con il processore centrale, diventan-done una appendice e migliorandone le prestazioni. Famosissimo, fino a qualche anno fa, era il coprocessore matematico (l'80287 per il 286, l'80387 per il 386) che aggiungeva al processore la capacità di eseguire velocemente calcoli con numeri non interi. Tuttavia, a partire dal 486 (che è sostanzialmente formato da un 386 e un 387) queste capacità so-no state integrate direttamente nel processore, per cui i coprocessori ma-tematici a parte si sono estinti.

3. La memoria RAM. La RAM (Random Access Memory) è la memoria usata dal calcolatore per conservare i programmi e i dati con cui sta la-vorando, per tutto il tempo per cui il computer rimane acceso. In realtà, esistono altri tipi di memorie, come vedremo; tuttavia la RAM è fonda-mentale. Nella generazione dei 486, quasi tutti i programmi richiedeva-no almeno 4 MB (megabyte) di RAM per funzionare decentemente, ed era bene non scendere sotto gli 8 MB. Con i Pentium - anche in seguito ad un crollo di circa 8 volte nel prezzo della memoria, avvenuto intorno alla metà del 1996 - il minimo è 16 MB di RAM, e sono consigliati 32 MB.

Esistono vari tipi di chip contenenti memoria RAM: fino ai 486 si usa-vano le SIMM a 30 pin (i pin sono i piedini che collegano un chip alla scheda madre), poi 486 e Pentium si sono diffusi prevalentemente in-

164

sieme alle SIMM a 72 pin, e recentemente si sono diffuse le DIMM. (Le SIMM sono moduli in cui i piedini sono disposti su una singola fila, e i chip sono quindi montati su un rettangolo sottile; le DIMM hanno inve-ce i piedini su due file, e hanno quindi una forma a parallelepipedo.) Un parametro importantissimo per l'efficienza della RAM è il tempo di at-tesa per accedere ad un dato memorizzato; le SIMM a 72 pin avevano tempi dell'ordine dei 60 - 70 nanosecondi, mentre le DIMM hanno tran-quillamente un tempo d'attesa di 10 ns. Per velocizzare l'accesso, le più recenti SIMM a 72 pin utilizzano la modalità EDO (Extended Data Output), che sincronizzava meglio le operazioni accelerando il tutto. Il tipo di memoria che potete montare dipende comunque dagli spazi (slot) disponibili sulla vostra scheda madre; inoltre spesso sono necessarie particolari combinazioni (ad esempio bisogna riempire gli slot a coppie con chip uguali) descritte sul manuale della scheda madre. Poichè comunque la RAM è relativamente costosa, i sistemi operativi moderni permettono di impostare la cosiddetta memoria virtuale, ossia di definire uno spazio sull'hard disk (swap space) che verrà sottratto ai normali file - spesso occupandolo con un grosso file detto appunto swap

file - e utilizzato come ulteriore memoria. Quando la memoria RAM sa-rà tutta occupata, difatti, il sistema operativo provvederà a scrivere tem-poraneamente sull'hard disk parte del suo contenuto, liberando così spa-zio per nuovi dati e programmi; quando sarà necessario ricominciare ad usare il contenuto di memoria spostato sull'hard disk, verrà scritta sul-l'hard disk qualche altra parte della memoria, e quella precedente verrà riletta nella RAM. Ovviamente, questo sistema funziona finchè l'acces-so al disco è veloce e il riempimento della RAM è evento relativamente raro, altrimenti il sistema passa tutto il proprio tempo a copiare blocchi di memoria sull'hard disk e a rileggerli.

4. La memoria cache. Una cache (o memoria tampone) è una parte di memoria molto veloce (come tempi di lettura e scrittura) che viene usa-ta per trattare velocemente piccole quantità di dati: se devo trattare una grossa quantità di dati memorizzati in una memoria lenta (come può es-sere la RAM) è più veloce ed efficiente copiarne un intero blocco in una memoria veloce, e poi operare su di esso. Poichè il costo di una memo-ria è direttamente proporzionale alla velocità, la memoria cache è di e-stensione molto minore della RAM, tipicamente 128, 256 o 512 KB (ki-lobyte). In realtà, questa è la cache esterna (o cache di secondo livello); normalmente esiste anche una cache interna, integrata nel processore (quindi l'utente non può comprarne altra o modificarla: si becca quella che c'è) che funziona a sua volta da cache per la cache esterna. Difatti il concetto di "lento" e "veloce" è relativo: dovunque ci sia una memoria se ne può prendere una più veloce e usarla da cache per quella memoria.

165

Ad esempio, il programma SmartDrive incluso nel DOS utilizzava la RAM da cache per l'hard disk, visto che la RAM è più veloce dell'hard disk! L'efficienza di una memoria cache è misurata dall'hit rate, che misura quanto spesso il dato cercato è stato letto dalla cache invece che dalla memoria originaria: difatti, se sfortunatamente il processore deve leggere un dato che è memorizzato in un punto della memoria originaria che non fa parte del blocco attualmente copiato nella cache, esso dovrà andarselo a leggere nella memoria originaria, più lenta.

5. La memoria di massa. Con questo termine si intendono tutte quelle memorie di grandi dimensioni e capaci di conservare i dati a lungo an-che a computer spento, ma di accesso molto più lento della RAM. L'e-sempio tipico è l'hard disk, la cui capacità influenza essenzialmente la quantità di dati e di programmi che potete installare sul vostro compu-ter. Al giorno d'oggi il minimo consigliato è 1.2 GB (ossia un hard disk che può memorizzare 1.2 gigabyte, ossia più di un miliardo di caratteri), non solo per lo spazio disponibile, ma anche perchè hard disk di dimen-sioni inferiori non permettono risparmi significativi. Di fatto, 2 GB sono oggi un valore sensato.

Esistono sostanzialmente due tipi di hard disk: gli IDE/EIDE e gli SCSI; quest'ultimo è uno standard per l'interazione tra periferiche e PC che garantisce prestazioni superiori, ma ovviamente richiede hardware apposito e periferiche compatibili, generalmente più costose di quelle normali. Il tipo di hard disk che potete usare è determinato dal vostro controller, ossia dall'hardware che si occupa di gestire le comunicazio-ni con l'hard disk stesso. Altri tipi di memoria di massa, a differenza dell'hard disk, sono rimovi-

bili, ossia possono essere facilmente estratti e portati in giro, e possono essere utilizzati dovunque vi sia un lettore. Il più comune tipo di memo-ria di massa rimovibile è attualmente il floppy disk, nel formato univer-sale da 3"1/2 (ma se vi interessate di informatica da un po' di tempo, vi ricorderete senz'altro dei floppy da 5"1/4 e dei "padelloni" da 7 pollici e rotti che si usavano quindici anni fa, e magari anche dei tempi in cui al posto dei PC si usavano gli "home computer" dotati di un efficientissi-mo registratore a cassette). Negli ultimi anni, tuttavia, a causa dell'insuf-ficiente capacità dei dischetti, si sono affermati altri tipi di memoria, primo fra tutti il CD-ROM (la sigla ROM significa Read Only Memory e indica una memoria i cui contenuti vengono impressi una volta per tutte in sede di fabbricazione e non possono più essere modificati), che offre una capacità di memorizzazione pari a quasi 500 dischetti! A pro-posito dei lettori CD-ROM, la sigla nx che li caratterizza, dove al posto di n c'è un numero, ne indica semplicemente la velocità, espressa come multiplo di quella dei primi modelli apparsi sul mercato (8x = otto vol-

166

te). Stanno cominciando a diffondersi i masterizzatori, ossia apparec-chi capaci di scrivere (per una volta sola, ovviamente) i CD-ROM; sono già pronti ad essere lanciati i CD riscrivibili e altri sistemi come il DVD. Sempre per via della scarsa capacità dei dischetti, sono stati sviluppati altri strumenti, come gli streamer, basati sull'uso di nastro magnetico ma lenti e poco affidabili, e i drive Zip o Syquest, che utilizzano car-tucce rimovibili di capacità che va da qualche decina di MB al GB, uti-lizzabili però allo stesso modo dei floppy. In particolare, molto diffuso è il drive Zip, che è facilmente trasportabile, usa cartucce da 100 MB e, a seconda del modello, può essere collegato alla porta parallela o ad un controller SCSI.

Oltre a questi componenti, sono necessarie schede (ossia, piastre contenenti un circuito stampato e alcuni componenti elettronici integrati montati su di esso) aggiuntive, che possono essere inserite in appositi alloggiamenti (slot). Esistono vari standard di schede a seconda del tipo di bus (che è l'"insieme di fili" che mette in comunicazione il processore e i vari componenti del computer) presente sulla motherboard (ossia la scheda base del computer, quella su cui è montato il processore) del vostro computer. Il mercato è attualmente orientato alla diffusio-ne dello standard PCI PCI Express per i bus, sostituendo i precedenti ISA e VESA, ma anche qui le mode cambiano facilmente... Il numero di alloggiamenti disponibili nel computer limita la quantità di schede aggiuntive installabili: una volta che tutti gli slot sono occupati, non potrete installare nuove schede senza togliere una di quelle esistenti. La maggior parte delle schede aggiuntive richiede l'installazione di proprio software, detto driver (letteralmente, autista, ossia pro-gramma che controlla il funzionamento della scheda), per poter essere utilizzata.

Che cosa sono e come funzionano le schede audio e video?

Tra le schede aggiuntive, fondamentale è la scheda video, che deve obbligato-riamente essere presente (altrimenti non potreste vedere un bel niente sul vostro monitor: la sua gestione è affidata a questa scheda). Alcuni costruttori, comun-que, integrano la scheda video sulla motherboard, il che presenta il vantaggio di non occupare uno slot con essa, e lo svantaggio di rendere difficile la sua sostitu-zione (operazione peraltro raramente necessaria, a meno di guasti).

Fino a qualche anno fa, le schede video rispettavano alcuni standard (CGA, E-GA, VGA...). Con la crescita delle capacità grafiche dei computer, comunque, il numero di produttori è aumentato, ed ha portato ad una notevole anarchia nel mercato, che spesso offre pochi punti di riferimento.

167

Ciascuna scheda video è caratterizzata in generale dalle risoluzioni visualizzabi-li. Una risoluzione, o meglio modo video, è caratterizzata da due dimensioni (larghezza e altezza) e da un numero di colori. Le dimensioni indicano il numero di colonne e righe in cui viene diviso il monitor; il loro prodotto dà il numero di pixel (ossia, puntini elementari) sullo schermo: maggiore è il numero di pixel, migliore sarà l'immagine, in quanto essa sarà composta da puntini di dimensioni minori, mentre se il numero di pixel è basso si avrà l'effetto "quadratoso" tipico dei computer di qualche anno fa. Il numero di colori è il massimo numero di co-lori diversi che possono essere mostrati contemporaneamente sullo schermo, e viene talvolta dato sotto forma di numero di bit, nel qual caso il numero dei colo-ri è pari a 2 elevato al numero di bit. Le modalità a 16 milioni di colori (24 bit) vengono indicate come truecolor. Ad esempio, alla risoluzione 800x600 in 256 colori (o anche 800x600x8 bit, visto che 256 = 2 all'ottava) lo schermo viene di-viso in 800 colonne e 600 righe (ossia in 480.000 puntini) e vengono visualizzati al più 256 colori.

Le risoluzioni visualizzabili sono limitate dalla memoria disponibile sulla sche-

da video (e non dalla RAM del computer; ciascuna scheda attinge dalla propria memoria video (VRAM)). Ad esempio, nella risoluzione 800x600x8 bit (256 colori), ciascun pixel può assumere 256 valori diversi a seconda del suo colore, per cui per ciascun pixel sono necessari 8 bit per memorizzare il suo colore, ossia un byte. Essendoci 480.000 puntini sullo schermo, saranno necessari 480.000 byte per poter memorizzare l'intera schermata, per cui la scheda dovrà disporre di una propria memoria di almeno 480.000 byte per poter funzionare a quella riso-luzione. Le schede attuali hanno tipicamente una memoria di 1, 2 o 4 megabyte.

Oltre alla scheda video, comunque, perchè la risoluzione possa essere utilizzata anche il monitor deve supportarla: scegliendo un monitor è bene informarsi di quali sono le sue risoluzioni massime. Molti monitor riescono a raggiungere riso-luzioni maggiori tramite la tecnica dell'interlacciamento: se si deve visualizzare una schermata ad esempio di 1024 righe, il monitor divide il proprio schermo in 512 righe (la metà), accoppia le 1024 righe della schermata a due a due, accop-piando righe tra loro adiacenti, e visualizza alternativamente l'una e l'altra delle righe di ciascuna coppia sulla stessa riga delle 512 disponibili; in questo modo, se l'alternanza delle due righe della schermata sulla stessa riga del video è suffi-cientemente rapida, si riesce a creare l'illusione della presenza di entrambe le ri-ghe. Tuttavia, in questo modo si ottengono immagini che, come normalmente si dice, "ballano", e alla lunga stancano gli occhi molto più di un video normale: pertanto non conviene adottare modalità video alle quali il proprio monitor adot-ta l'interlacciamento, ed è bene informarsi all'atto dell'acquisto su quali siano le risoluzioni interlacciate.

168

La scheda audio è un componente meno diffuso, che permette al software che la supporta di generare e registrare suono. Al momento la scheda più diffusa è la Sound Blaster nelle sue varie versioni: la Pro (che genera suoni in modulazione di frequenza (FM) a 8 bit), la 16 (suoni in FM a 16 bit) e le AWE 32/64/64 Gold (che si servono anche di suoni campionati, che presentano una qualità migliore di quelli in FM). Un'altra scheda, meno diffusa e quindi meno supportata, è la Gra-vis Ultrasound.

Tra le caratteristiche più importanti di una scheda audio vi sono le sue capacità di comunicazione: la scheda può essere half duplex - e in questo caso non può re-gistrare suono mentre ne riproduce - o full duplex - e in questo caso può regi-strare e riprodurre contemporaneamente. Quest'ultima caratteristica - posseduta ad esempio dalle SoundBlaster AWE 64, ma non dalla 16 - è fondamentale per usare il PC per telefonare in rete o come studio di registrazione audio casalingo. Inoltre, può essere utile la compatibilità con lo standard General MIDI, ossia la capacità della scheda di riprodurre brani MIDI utilizzando un set di strumenti standard di buona qualità.

Che cos'è TRACEROUTE (o HOP) e a cosa serve?

Traceroute è un programma di diagnostica e statistica diffuso sui grossi server Unix, che ha come scopo quello di individuare il percorso compiuto dai pacchetti di dati per giungere dal computer dell'utente ad un computer remoto. Quando l'u-tente fornisce a Traceroute il nome di un computer remoto, il programma spedi-sce ad esso un particolare pacchetto di dati, che provoca la spedizione di un mes-saggio interpretabile come segnale di "ricevuto" da ciascuno dei computer incon-trati lungo il percorso. In questo modo, il programma restituisce all'utente l'elen-co di tutti i computer tramite cui è passato il pacchetto e dei tempi di percorrenza di ciascuna tratta, cosa che può essere di grande interesse per gli amministratori di rete, ma può anche soddisfare le curiosità degli utenti comuni. In genere, per ciascun nodo del percorso vengono effettuate tre prove, e sono quindi restituiti tre valori di tempo.

Questo è il tipico output di un Traceroute:

Tracing route to menelao.polito.it [130.192.3.30] over a maximum of 30 hops: 1 215 ms 232 ms 234 ms dial02.dialup.csi.it [158.102.23.254] 2 162 ms 213 ms 526 ms csi-policy.csi.it [158.102.255.62] 3 187 ms 423 ms 178 ms 192.168.255.62 4 * * * Request timed out. 5 304 ms 297 ms 221 ms 130.192.80.1

169

6 207 ms 185 ms 194 ms LAN-gw.polito.it [130.192.2.254] 7 213 ms 213 ms 193 ms menelao.polito.it [130.192.3.30] Trace complete.

Per raggiungere dal computer dell'utente il server desiderato (in questo caso, menelao.polito.it) sono necessari sette passaggi; per ognuno, sono ripor-tati il nome e/o l'indirizzo IP, e i tempi di risposta nei tre tentativi. Come vedete, i tempi non sono affatto crescenti man mano che ci si allontana, come ci si aspet-terebbe: difatti il tempo di risposta è fortemente influenzato anche dalle presta-zioni del server. Si noti anche che il quarto host intermedio non ha risposto alle richieste (probabilmente questa attività è stata disabilitata per motivi di sicurezza o prestazioni).

170

Proxy :Anonimato con Proxy

Cos'è un proxy? Semplicemente il server proxy è un dispositivo che intercetta le richieste che arrivano dai client, per procurare dai vari siti le pagine Html e replicarle in locale In pratica, è un server che vi permette di accedere a un servizio senza mostrare il vostro IP address. Se inseriamo un indirizzo nel nostro Browser (Internet Explorer, Firefox, Opera ecc) questo si collega alla pagina da voi richiesta e le scarica sul vostro PC. Ovviamente l'amministratore di sistema del sito avrà il vostro IP e molte altre in-formazioni su di voi. Se invece è attivo il servizio proxy, l'IP address registrato dal sito sarà quello del proxy, in quanto è stato il proxy server a collegarsi al sito, non voi.I proxy server registrano comunque il vostro IP address,se proprio volete un maggiore grado di sicurezza, concatenate più server proxy.Più lunga e` la ca-tena, più difficile sarà rintracciarvi. Concatenare piu proxy vuol dire arrivare al sito d'interesse passando per vari proxy in modo che è solo il primo a sapere chi siete veramente la concatenazione deve essere effettuata in questo modo: http://Proxy1:Porta1/ http://Proxy2:Porta2/ http://www.Sito.it/ Nei servizi di Anonimato vi è un elenco di proxy e un esempio di concatenazione piu semplice E' possibile anche usare programmi come 4proxy, MultiProxy ecc.. MultiProxy è Free e lo si trova all'indirizzo http://www.multiproxy.org/ Buoni Motivi per utilizzare i Proxy Server I proxy non sono solo una soluzione per navigare in anonimato, ma spesso rap-presentano anche un modo per aggirare i limiti geografici imposti da certi siti che limitano gli indirizzi ip in base a determinati stati, in questo modo se il sito è vi-sibile ad esempio esclusivamente per la Germania utilizzando un proxy tedesco si riesce a visualizzare il sito. Le limitazioni geografiche per gli ip sono spesso relativi a contratti per i diritti d'autore e ancora più spesso queste censure per ip address vengono utilizzate dai governi alcuni come fa l'Italia per un'attività di tu-tela dei cittadini da frodi per bloccare i siti di gioco d'azzardo non riconosciuti dallo stato, per altri governi invece si tratta di vera è propria censura dell'infor-mazione. Quali Proxy Server scelgo ? I proxy sono classificati in base alla loro velocità e soprattutto livello di anoni-mato che restituiscono:

• Proxy di tipologia Trasparent ( proxy trasparenti ) sono proxy molto veloci, ma lasciano con semplici tecniche scoprire il vero indirizzo ip di chi naviga rendendo la navigazione non più anonima . Si usano soprat-

171

tutto in attività di concatenazione proxy inserendo ovviamente un proxy elite all'inizio della concatenazione e poi una serie di proxy trasparent in questo modo si crea un pò di confusione in caso si voglia risalire al mit-tente.

• Proxy di tipologia Anonimus ( proxy anonimi ) sono server proxy me-no veloci dei trasparent, ma che consentono un livello discreto di ano-nimato, ma con particolari tecniche è possibile comprendere che si sta utilizzando un proxy quindi in teoria si potrebbe bloccare l'accesso al si-to, ed è possibile alcune volte risalire al mittente anche se la procedura di identificazione del ip reale è più complessa.

• Proxy di tipologia Elite ( proxy migliori ) si tratta di proxy che con-sentono un ottimo livello di anonimato, molto difficili da essere indivi-duati come proxy.

Usare un proxy server

Il proxy server è lo strumento migliore per navigare in Internet in modo anoni-mo, senza lasciare traccia e visitare siti, inviare posta, andare in chat od in IRQ senza che tutti sappiano chi siamo.

Un Proxy server è un computer che si interpone fra il proprio computer e Internet, facendo da intermediario per tutto il traffico di dati sia in uscita che in entrata.

Quando il computer vuole visualizzare una pagina Internet, l’indirizzo richiesto viene mandato al proxy invece che al server DNS (che è il server collegato alla rete esterna). Il server proxy, a sua volta, chiede la pagina inviando l’indirizzo al server DNS.

Quando la pagina arriva al server DNS, questo la invia al server proxy, e questo al computer che l’ha chiesta inizialmente.

In pratica, se un server proxy è utilizzato in una rete locale, i singoli computer non avranno accesso diretto alla rete esterna, ma solamente il proxy. Il che vuol dire che non saranno le identità dei singoli computer a viaggiare in rete, ma so-lamente quella del proxy.

Siccome ogni computer collegato alla rete ha un indirizzo IP, e questo indirizzo (che ha la forma xxx.xxx.xxx.xxx, tipo 151.21.136.51) accompagna tutta l’attività in rete (invio di posta, ingresso in siti, chat, download di programmi…) e rende identificabile qualsiasi nostro movimento, navigare utilizzando un proxy vuol dire poter navigare con una identità generica, e solamente andando a vedere le registrazioni del proxy sarà possibile sapere il nostro vero IP.

172

Quindi, solamente un computer che naviga da dietro un proxy non è identificabi-le dall’esterno, quindi in effetti è anonimo sia quando è in chat che quando è in IRQ, quando visita un sito o quando scarica un file. Chi navighi senza utilizzare proxy è sempre subito identificabile e lascia traccia del suo passaggio (il numero IP) dovunque vada. Anche se i server proxy sono in genere utilizzati nelle LAN private, esistono un certo numero di server proxy che sono pubblicamente utilizzabili (volontaria-mente o per caso) anche dall’esterno. Usando Internet Explorer, ad esempio, attraverso “Strumenti”/”Opzioni Internet”/”Connessioni”/”Impostazioni LAN…” si può settare “Utilizza un server proxy” con l’indirizzo e la porta di uno di questi proxy pubblici. Riav-viando Explorer, adesso tutto quello che faremo in Internet passerà attraverso il server proxy.Il che vuol dire che se andremo in chat, spediremo posta… qualun-que cosa facciamo, gli altri ci vedranno con l’identità (il numero IP) del server proxy.Se si tratta di un server proxy in Romania, ad esempio, tutti ci vedranno come se fossimo un computer romeno, ad esempio, e nessuno potrà sapere dove e chi siamo, l’IP del nostro computer. Unico difetto: la navigazione sarà legger-mente più lenta.

TOR

Tor è una rete di tunnel virtuali che permette alle persone ed alle organizzazioni di aumentare la propria privacy e sicurezza su Internet. Tor aiuta a ridurre i rischi derivati dall'analisi del traffico, sia semplice che sofisticata, distribuendo le tran-sazioni attraverso molti nodi della rete Internet, in modo che nessun singolo pun-to possa collegare una transazione alla sua destinazione.

Tor è scaricabile da : http://www.torproject.org/easy-download.html.it Sostanzialmente si scarica un eseguibile che installa un software per gestire TOR, un Proxy e un Toolbar per Firefox che lo configura e, tramite una finestra ci permette di attivare o disattivare il proxy. Per la configurazione visitare http://www.geekissimo.com/2008/01/15/come-installare-e-navigare-anonimi-con-tor-utilizzando-firefox-video-by-shor/

173

INDICE UTILITY WINDOWS Programmi eseguibili dal prompt dei comandi I comandi di WinXP più usati da linea di comando (Esegui) Esecuzione programmi e file disinstallazione di Messeger maggiore potenza del processore Recovery Console bloccare il pc da intrusioni Come si utilizza l'utility SFC di Microsoft Shutdown.exe per chiudere/riavviare il sistema Spegnere il pc in remoto Disabilitare la richiesta password Terminare le applicazioni bloccate Password caching Windows: tracciare i problemi di avvio/chiusura Come Cambiare il product-key di XP da registro Ho perso la product key di windows: come posso ritrovarla Disabilitare la memorizzazione di password Windows: disabilitare le condivisioni amministratore Il file di Paging Svuotare il file di paging al reboot Eliminare il file di paging all'uscita di windows Proteggere la propria privacy cancellando il file di paging all'uscita Cambiare la lettera d'unità del disco di boot. Forzare Windows a scaricare dalla memoria le DLL Controllo sui crash/blue-screen del sistema Creare una copia di backup delle connessioni remote Come disabilitare la segnalazione e l'invio di errori Non visualizzare l'ultimo login Blocco allo spegnimento di WindowsXP Come 'bloccare' la home page Impedire la modifica della password esistente Far risultare effettuata la registrazione Potenzialità dei Criteri di Gruppo (Local Group Policy Editor) Rendere il computer invisibile in rete Servizi di Windows disattivabili Servizi che possono essere modificati per ottimizzare le prestazioni La Management Console di Windows XP Eliminare i contenuti di una cartella Come faccio per avere configurazioni multiple di rete su Windows 2000/XP ? Come faccio a sapere quali porte sono in uso in questo momento sul mio pc? Accesso ai file personali Ripristino delle funzionalità di Windows Svuotare regolarmente la cartella Prefetch Migliorare le impostazioni di Prefetch Convertire la FAT32 in NTFS Bloccare le Proprietà dello schermo Eliminazione automatica dei file temporanei Ripristinare la schermata di login classica Problemi col Service Pack 2 (Firewall e Centro Sicurezza PC) Messaggio all'avvio (Windows XP) Eliminare la modalità grafica all'avvio (Windows 2000/XP) Ripristino di account utenti bloccati (Windows XP)

174

Modificare la password dimenticata Registro di sistema

• memorizzare una qualsiasi chiave (e sottochiave) da voi specificata in un file .reg. • backup di una chiave • Come aggiornare il registro senza riavviarlo • Modifica del registro

Guida rapida ai "DWORD" del menu Avvio Utility nascoste (Windows XP/2000) Come cambiare le informazioni sul sistema in XP Eliminare le copie di backup dei service pack Problemi d'avvio del sistema (Windows 2000/XP) Ripristino dei driver (Windows XP) I principali processi di sistema di Windows 2000/XP Disabilitare la segnalazione e l'invio di errori Velocizzare la navigazione tramite browser Non riesco ad accedere a Windows XP: un messaggio mi informa che \WINDOWS\SYSTEM32\CONFIG\SYSTEM è corrotto! Non riesco a cancellare un file memorizzato su disco fisso: Windows XP segnala che è in uso Migliorare le prestazioni caricando il nucleo di Windows in RAM Controllare i problemi allo spegnimento Visualizzare le periferiche nascoste Copiare il sistema operativo su un nuovo Hard Disk Reinstallazione del sistema operativo Ottimizzare la cache del processore Disinstallare i componenti non necessari di Windows XP Ripulire il computer dai files inutili Leggere i DVD con Windows Media Player Nascondere i propri files Togliere le voci inutili dal menu "installazione applicazione" Diritti di accesso alle cartelle (*********) Non mostrare il nome di un computer all'interno della finestra Risorse di rete Un suggerimento per condividere in rete locale una serie di cartelle Come Accedere a Windows senza dover immettere la password Alla scoperta dell'utility NETSH: tutte le informazioni su hardware e connessioni di rete Risolvere i problemi che impediscono l'avvio del sistema operativo -- Soluzioni pratiche per proble-mi comuni Risolvere i problemi con NTLDR e NTDETECT.COM Quando NTOSKRNL sembra danneggiato o mancante HAL.DLL danneggiato o mancante Pag 38 batchRun - HijackThis Pag 42 reti Pag 53 wireless lan Pag 59 nove modi per proteggere la rete wireless Pag 61 Come Recuperare e Craccare la Chiave WPA su Xp Pag 68 Il provetto ricercatore(utility :tracert ping whois telnet) Pag 79 Telnet per spedire posta

Pag 86 La trasmissione dei dati

Guida TCP/IP Avanzato OSI MODEL Internet

175

Internetworking packet-switching circuit-switching “internet” e “Internet” internet gateway (IP router) IP address Name server DNS e domini Reti ARP RARP TCP/IP Trasmissione dei dati (datagram, MTU) Routing ICMP UDP API (Application programming Interface) Le Porte La gestione dei dati Il controllo di flusso Segmento L’intestazione I segnalatori Il timeout Pag 117 Come avviene la trasmissione di un messaggio di e-mail Gli header di un messaggio di e-mail Protocolli di posta per scaricare i propri messaggi dal server Pag 122 servizi e connessioni (introduzione a Internet) Pag.128 INTERNET Come viene individuato univocamente ciascun computer nella rete. HTTP e HTML

Che cos'è e come è fatto un URL? A cosa servono quegli URL contenenti strani simboli come #, ?, +, % ? newsgroup Che cosa sono le FAQ Cosa sono un "client" e un "server"? Ho trovato un file in formato... ma cosa diavolo è? Come posso trovare l'indirizzo E-mail o altre informazioni riguardo una persona? Che cos'è Finger? Che cos'è WHOIS? Che cos'è NETFIND? Come posso accedere a Internet da casa? Cosa sono SLIP e PPP? Quali pericoli corro mentre sono collegato? Quali altri rischi posso incontrare su Internet? Che cos'è NETFIND? Che cosa sono SSL e HTTPS? Che cos'è SSH? Che cosa vuol dire "shareware", "PD"... ? Che cos'è Gopher? E Veronica? Che cos'è un proxy?

176

Che cos'è Java? Che cos'è Javascript? Che cos'è MPEG? Che cos'è una Intranet? Che cos'è ISDN? Che cos'è una BBS? Posso collegarmi a una BBS via Internet? Come è fatto un PC? Come posso valutarne le prestazioni? Il microprocessore. I coprocessori La memoria RAM. La memoria cache La memoria di massa Che cosa sono e come funzionano le schede audio e video? Che cos'è TRACEROUTE (o HOP) e a cosa serve? Pag 170 : anonimato con il proxy, JAP e TOR