SistemaOperRetiInternet

Transcription

SistemaOperRetiInternet
U
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, proprietario, 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'utilizzo di wildcards (es. *.*), dunque indicando il nome preciso di un file.
3) Digitare driverquery, (da cmd)comparirà una schermata riassuntiva con l'elenco 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 consentiranno 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 attivi sul sistema affiancati dai relativi servizi da cui dipendono. Utile nel caso si
voglia conoscere in maniera approfondita l'origine di un programma in esecuzione.
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 gestire i programmi da usare all'Avvio;
*services.msc = richiama la finestra di gestione dei Servizi di sistema;
1
*mailto: = serve per scrivere direttamente una mail serza il client di posta predefinito;
*bootcfg = Configurare, interrogare o modificare le impostazioni del file Boot.ini;
*driverquery = Visualizzazione di un elenco dei drivers di tutte le periferiche installate 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 peridicamente 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 advapi32.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.
2
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ò installare 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 esegue una scasione immediata per inserire i nuovi dati
/cachesize=x - delimita i parametri , in Mb, della cache del Windows File Protection
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 negli 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
3
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, disabilitando 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 modo che Windows forzi automaticamente la chiusura dell'applicazione, è sufficiente modificare la seguente chiave di registro:
1 - Aprite il registro di configurazione (regedit.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 caselle 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 Registry.
Basta impostare al valore 1 la seguente chiave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\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-
4
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 denominato VerboseStatus.
Impostatene il valore a 1 per attivare la funzione. Successivamente potrete riportarne 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 cliccando 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 configurazione.
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
5
cui valore sarà quello richiesto dall'istallazione di windows.
Se il vostro sistema operativo è windows 2000 o xp, il procedimento sarà lo stesso, 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 memorizzazione 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 DisableDomainCreds, e settarla a 1.
Windows: disabilitare le condivisioni amministratore
I sistemi operativi Windows (XP/2000/2003) in fase di installazione creano automaticamente, per partizione presente sul sistema, delle condivisione amministrative 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\LanmanSer
ver\Parameters
Impostate la chiave DWORD AutoShareServer o AutoShareWks (a seconda della 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 avvio).
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 memorizzare dati vitale per il funzionamento del sistema operativo, e della applicazioni che
6
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, svuotare 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 'Arresto del sistema: Cancella il file di paging della memoria virtuale' andiamo a selezionare 'Abilitato'.
Cambiare la lettera d'unità del disco di boot.
Questa procedura permette di cambiare la lettera d'unità assegnata al disco di boot di windows (per default C) con un' altra lettera d'unità libera. Questa operazione è consigliata solo in casi di reale necessita e comunque si consiglia di effettuare sempre prima un backup totale del server compreso il system state.In questo 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 Administrators abbiano i permessi di Full-Control (tasto dx > permissions), nel caso impostarli.
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-
7
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 riportarle allo stato originario sempre con l' utility regedit32.exe
P.s. Questa operazione va effettuata con un account che abbia i diritti amministrativi.
Forzare Windows a scaricare dalla memoria le DLL
Ecco come impedire che WindowsXP metta in cache tutte le librerie DLL in precedentemente 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 settarla 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, è sufficiente fare come segue: copiare il file rasphone.pbk, contenuto nella cartella and
SettingUsersapplicazionisu un floppy o su un'altro dispositivo di backup. Nel caso in cui vogliate reinstallare il sistema o ripristinare le connessioni, basta riprendere 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.
8
Ebbene, vediamo come rimuovere dal Pannello di Controllo questa segnalazione...
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 Criteri 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 corso e il computer si blocca.
Accedi a Regedit, quindi cerca la chiave di registro:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Exp
lorer
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 Explorer\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 seguente chiave del registro di configurazione:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Polici
es
9
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 modifica 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\LanManSer
ver\Parameters e, se non esiste già, creiamo un valore DWORD con nome "Hidden" (senza le virgolette), assegnandogli il valore a '1'.
Per rendere il computer nuovamente visibile basta impostare Hidden a 0.
•
Servizi di Windows disattivabili Start
ces.msc
Nome
Descrizione Consiglio
Accesso a
periferiche
come tastieAccesso Perire, telecoDisattivare
ferica / Human
mandi e altre
Interface
periferiche
multimediali
non std.
Aggiornamenti Donwload e
Disattivare
automatici
installazione
10
Esegui... digitare servi-
di aggiornamenti critici
da Windows
Update
Avvisi
ClipBook
Compatibilità
di Cambio rapido utente
Condivisione
Desktop Remoto di NetMeeting
Guida in linea
e supporto
tecnico
Abilita il Visualizzatore
Disattivare
Cartella Appunti
Gestione
delle applicazioni che
richiedono Disattivare su pc fuori
assistenza in rete o utente singolo
un ambiente
con più utenti
Consente di
accedere al
desktop di
Disattivare
Windows da
postazione
remota
Consente l'esecuzione di
Guida in li- Didattivare
nea e supporto tecnico
Gestione applicazione
Gestione sessione di assistenza mediante desktop remoto
Supporto per
precedenti
Helper Smart versioni di
Disattivare
Card
lettori di
Smart Card
non PnP
Host di perife- Fornisce il Disattivare / Rischio di
11
riche PnP uni- supporto per sicurezza
versali
ospitare periferiche universali
Messenger
Sincronizza
data e ora su
Ora di
Disattivare su pc fuori
tutti i client e
Windows
rete
i server della
rete
Protezione
per i proProvider sup- grammi con
porto prote- chiamate a Disattivare
zione LM NT procedure
remote
(RPC)
Registro di sistema remoto
Rileva modiRilevamento
Automatico/Disattivare
fiche
hardware shell
per prova
hardware
Servizi di
Routing e Ac- routing in
Disattivare
cesso Remoto ambiente
Lan e Wan
Condivisione
in rete di fi- Disattivare su pc fuori
Server
le, stampa e rete
named-pipe
Gestisce le
firme dei file
Servizi di crit- di Windows Disattivare / Avvio
tografia
e i certificati manuale
delle fonti
attendibili
Consente a
più utenti di
Server
connettersi
Disattivare
terminal
in modo interattivo al
computer
12
Servizio COM
Gestisce la
di masterizzaregistrazione Disattivare
zione CD Idi cd-Rom
MAPI
Indicizza
contenuti e
Servizio di in- proprietà di
Disattivare
dicizzazione file su computer locali e
remoti
Servizio di ri- Rileva le peDisattivare / Rischio di
levamento
riferiche Usicurezza
SSDP
niversal PnP
Segnalazione
di errori per
Servizio di se- servizi e apDisattivare
gnalazione er- plicazioni
eseguiti in
rori
ambienti non
standard
Notifica eSistema di eventi di si- Avvio manuale
venti COM+
stema
Gestisce l'accesso alle
Smart Card
Smart Card Disattivare
lette dal
computer
Supporto di
telefonia TaTelefonia
pi per telefo- Disattivare
nia basata su
IP
Consente
l'accesso da
Telnet
Disattivare
remoto al
computer
Gestione dei
temi d'inter- Disattivare
Temi
faccia
Abilita i proWebClient
Disattivare
grammi per
13
creare, accedere e modificare i file
basati su
internet
Servizi che possono essere modificati per ottimizzare le prestazioni
Servizi
Impostazioni
Funzione
Aggiornamenti
Disabilitato
automatici
Download e installazione
automatici degli aggiornamenti. Potete sempre aggiornarli manualmente
Clipbook
Serve per la condivisione in
rete degli appunti. Inutile su
postazione singola
Disabilitato
Servizio segnalazione er- Disabilitato
rori
COnsente la segnalazione
di errori in ambienti non
standard. Inutile
Fax
Consente di inviare fax utilizzando il fax/modem.
Manuale
Servizio COM
di masterizzaDisabilitato
zione CD IMAPI
Disabilitate questa opzione
solo se non avete un masterizzatore CD.
Condivisione
Desktop remoDisabilitato
to di Netmeeting
Inutile in ambiente domestico.
DDE di rete
Manuale
Ancora impostazioni di rete
che probabilmente non occorro in ambiente domestico
Servizio di
supporto Driver nVidia
Disabilitato
Presente se avete una scheda video di questa marca,
ma cmq non necessario
Avvisi e registri di prestazioni
Disabilitato
Riunisce e memorizza dati
sulle prestazioni, ma infastidisce la maggior parte
14
degli utenti.
Numero di serie del suppor- Disabilitato
to portatile
Disabilitate se non avete un
lettore MP3
Gestione sessione di assistenza median- Disabilitato
te Desktop
Remoto
Consente ad altri utenti di
collegarsi al vostro PC in
remoto per fornirvi aiuto
Smart Card
Disabilitato
Utilizzato soprattutto nei
computer portatili e raramente dai PC desktop
Helper smart
card
Disabilitato
Utilizzato soprattutto nei
computer portatili e raramente 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
Gestione certificati elettronici, di cui vengono
muniti per esempio dricertmgr.msc
ver o add-in di Internet
Explorer come conferma
di fonte affidabile del
programma.
amministrazione del
computer, richiamabile
dal Pannello di controllo
tramite Prestazioni e
Compmgmt.msc Manutenzione
/Strumenti di Amm.ne In
questa console sono integrati numerosi snap-in
quali la deframmenta-
15
zione e la gestione periferiche
gestione periferiche (integrato in gestione comDevmgmt.msc puter) per la gestion dei
singoli componenti
hardware del pc.
Strumento per la deDfrg.msc
frammentazione
Gestione disco, per la
configurazione (partizionamento, formattaDiskmgmt.msc
zione ecc.) degli hard
disk e per l'assegnazione
delle lettere di drive.
Eventvwr.msc Visualizzatore eventi
Questa console serve a
controllare le cartelle
Fsmgmt.msc
condivise e i files aperti
sul pc da altri utenti.
La console Utenti e
gruppi locali serve per la
gestione dei diritti di tutti gli utenti e gruppi conLusrmgr.msc
figurati sul pc; può essere utilizzata solo in
Windows XP Professional.
La console dei supporti
rimovibili gestisce e cataloga supporti di memorizzazione diversi, quali
Ntmsmrg.msc
unità a nastro. Qui si
possono creare pool di
supporti e code di attesa
per l'uso degli archivi.
Visualizzatore di prestaPerfmon.msc
zioni
Services.msc
16
Questo snap-in gestisce tutti i servizi: è possibile attivare/disattivare le voci di
questo elenco e determinare
il loro stato all'avvio di
Windows. La gestione servizi 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 Automatica.
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 locali\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ù computer 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 puntano queste porte, se sono attive o in ascolto, ecc...se volete che la lista sia inserita
in un file di testo, potete digitare:
17
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 lista 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 miosno.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 rete. 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 controllo e fare doppio clic sull'icona Opzioni cartella; nella scheda Visualizzazione togliere la spunta alla voce Utilizza condivisione semplice. Selezionare ora la cartella e richiamare le sue proprietà. Premere il pulsante e poi Avanzate per aprire
la finestra delle impostazioni avanzate di protezione. Scegliere la scheda proprietario, mettere il segno di spunta nella casella Sostituisci proprietario in sottocontenitori 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 sistema 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
18
> 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 lavoro. Per modificare le impostazioni di Prefetch entrare nel Registry e cercare la
chiave
HKEY_Local_Machine\System\CurrentControlSet\Control\SessionManager\Me
mory Management\Prefetch Parameters. Lo stato dell'applicazione è riconoscibile 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, scrivere 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 Invio per avviare il processo. Premi "S" quando compare il messaggio "vuoi utilizzare 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 delle cose che crea più fastidio è tornare e trovarsi le proprietà dello schermo modificate.
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\Polici
es\System
Nel caso non fosse presente dovremo creare noi, all'interno di "Policies", la
19
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, eliminando 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 cartelle temporanee di windows: se avete eseguito correttamente la procedura, il documento verrà eliminato automaticamente.
Ripristinare la schermata di login classica
Se avete disabilitato la schermata di benvenuto "Welcome Screen" e volete ripristinare lo stile di login classico, fate così.
Aprite innanzitutto l'editor del registro (regedit) e portatevi su
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\The
meManager
Modificate il valore DllName in %SystemRoot%\Resources\themes\Windows
Classic.theme
Chiudete regedit e disconnettetevi per verificare che tutto abbia funzionato correttamente.
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
20
bisogna accedere, tramite Regedit, alla voce:
HKEY_Local_Machine\Software\Microsoft\WindowsNT\CurrentVersion\Winlo
gon
La chiave LegalNoticeCaption contiene il nome della finestra di pop-up; la chiave 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 messaggi 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 paramtro /fastdetect. Dopo questo bisogna, al termina della riga aggiungere l'ulteriore 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 Professional" /fastdetect /noguiboot
Questa modifica si può apportare a tutti i sistemi operativi installati. Dopo il salvataggio del file modificato e il riavvio non si avrà più la comparsa del logo iniziale. Si noti che l'accelerazione dell'avvio ottenibile con questa modifica dipende molto dalle prestazioni del processore e della scheda video; in ogni caso diventa così possibile meglio eventuali segnalazioni di errore, che di solito vengono nascoste dalla grafica, il che può essere importante nel caso di problemi dovuti 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.
21
Ripristino di account utenti bloccati (Windows XP)
D: Ho bloccato accidentalmente tutti gli account utente di WIndows XP. QUando 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 installazione, premere il tasto R (riparazione). Fornire la password dell'Amministratore 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). Confermare premendo S la richiesta di sovrascrittura del file Sam nella cartella di destinazione. 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 riportano gli account nello stato in cui erano immediatamente dopo l'installazione
di Windows. Si perdono però le informazioni sugli account creati successivamente 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 sarebbe comodo sostituirla con una nuova anche senza dover immettere la vecchia.
Questo è possibile solo se si dispone di un altro account con diritti di Administrator: 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 utili aiuti sull'utilizzo dell'editor. I comandi sono query, add, delete, copy, save, restore, load, unload, compare, export e import. Per vedere come utilizzare un comando specifico, scrivete "reg comando /?". Se volete provare questo editor del
registro, un comando sicuro da sperimentare è export, che memorizza una qual-
22
siasi chiave (e sottochiave) da voi specificata in un file .reg. Non modifica il registro 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\Polici
es\Explorer, dovreste inserire
reg export
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Polici
es\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 senza riavviare: di solito quando si applicano alcune modifiche al sistema, come
l'installazione di un nuovo software, potrebbe essere necessario riavviare. Tuttavia 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 EXPLORER.EXE (tasto desto sul processo e fate clic su termina processo).
Successivamente andiamo sul menu File e selezioniamo Nuova Operazione (Esegui): digitiamo Explorer (con la E maiuscola). E a questo punto abbiamo aggiornato 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 versione classica
NoStartMenuPinnedList
Rimuove la lista dei programmi
aggiunti dal menu Start
Rimuove la lista dei programmi
NoStartMenuMFUprogramsList usati più di frequente dal menu
Start
NoWindowsUpdate
Rimuove il collegamento a
WindowsUpdate dalla lista Programmi e blocca l'accesso a
23
"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 modificare il menu Start trascinando
gli oggetti al suo interno
NoUserNameInStartMenu
Rimuove il nome utente dal menu 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 <testo>, per indicare un messaggio durante i trenta secondi di ritardo che intercorrono 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>
24
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 Version
Ora create (o modificate) i valori Stringa RegisteredOwner e RegisteredOrganization con il testo che volete far apparire.
Se questa modifica non dovesse avere effetto, provate a rifare le stesse operazioni 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ù Strumenti/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 "NtServicePackUninstall".
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 eliminarli: 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 cercare di risolverlo utilizzando la "console di ripristino d'emergenza". La funzione
è accessibile e utilizzabile facendo il boot dal cd di windows, oppure installandola 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-
25
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. Apriamo 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 pulsante 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
Terminazione
possibile
Nome
Descrizione
Ciclo idel del
sistema
Serve soltanto a visualizzare il
tempo del processore che non viene impegnato da altri thread e proNO
cessi. Nel normale funzionamento,
nel Task Manager segnala un utilizzo e tempo CPU notevole
csrss
csrss.exe (client/server runtime
subsystem). Gestisce i prompt dei
comandi, la creazione e l'eliminazione di thread, nonchè parti dell'ambiente virtuale MS-DOS a
NO
16bit. Appartiene alla modalità utente del sottosistema Win32
(mentre win32.sys fa parte della
modalità kernel) e deve sempre
essere attivo
explorer.exe L'interfaccia utente di
Windows, comprende componenti
quali barra delle applicazioni,
explorer
SI
desktop, icone e simili. Può essere
terminata, se necessario, senza effetti negativi e poi riavviata.
internat
26
internat.exe Permette di scegliere
il layout di tastiera in uso. Nella
barra della applicazioni è visibile
SI
come simbolo della tastiera in uso
(per esempio IT o EN) con il quale
si cambia layout. Tramite il Pannello di controllo si può disattivare
permanentemente, nel caso non
serva
lsass
lsass.exe Server di autenticazione
locale, gestisce le direttive di protezione del protocollo ip (internet
protocol) e avvia il driver di protezione IP. Genera il processo per la
notifica dell'utente al sistema. Se
l'autenticazione ha esito positivo NO
viene generato un "biglietto" (token) di accesso, una sorta di marca
di riconoscimento, per l'utente che
si è notificato. Gli altri processi
avviati dall'utente ereditano questo
token
mstask
mstask.exe Servizio di pianificazione
delle attività, che avvia automaticaNO
mente le operazioni programmate dall'utente.
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 operazioni, tra cui l'avvio dei processi
NO
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
spoolsv
spoolsv.exe E' la coda di stampa, gestisce 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 contemporaneamente più istanze di svchost.
L'utility Tlist, scaricabile dal sito
Microsoft, permette di vedere quali
processi accedono a svchost
NO
27
==°°==
Quando apro il task manager vedo ben
quattro processi SVCHOST.EXE in
esecuzione, che occupano molta memoria. Di che si tratta? Posso chiuderli?
Il file svchost.exe, che si trova generalmente nella cartella
c:\windows\system32 serve per verificare, all'avvio del computer, la porzione 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 essere 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 visualizzare 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 processo
system
Processo che esegue i thread in modaNO
lità kernel.
taskmgr
taskmgr.exe Processo di gestione delle
operazioni, visualizzato dalla finestra SI
aperta
NO
winlogon.exe Gestisce l'accesso e la
disconnessione degli utenti ed è attivo
winlogon come finestra di dialogo, Protezione di NO
Windows quando un utente preme
ctrl+alt+canc
winmgmt.exe Un componente della
gestioneclient di Windows; il processo
si avvia con la connessione del primo
client, oppure viene sempre eseguito
winmgmt quando applicazione di amministraNO
zione richiedere dei servizi. Sotto XP
si avvia come client di un processo
Svchost
28
Disabilitare la segnalazione e l'invio di errori
Quando un programma si blocca e siamo costretti a chiuderlo in malo modo, appare 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 'Avanzate' e clicchiamo su 'Segnalazione Errori'. A questo punto si aprirà una finestra 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 durante la navigazione in uno stesso sito.
Ecco il pezzo di registro da aggiungere.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\
Parameters] "CacheHashTableBucketSize"=dword:00000001 "CacheHashTableSize"=dword:00000180 "MaxCacheEntryTtlLimit"=dword:0000fa00 "MaxSOACacheEntryTtlLimit"=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 ripristinare 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 (accertandovi che il BIOS del vostro pc sia regolato per il boot da CD). 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 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 seguono.
Nel caso di "SYSTEM":
ren system system.bad
copy \windows\repair\system
Nel caso di "SOFTWARE":
29
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 segnala che è in uso.
Questo tipo di problema in genere si verifica quando si tenta di cancellare dal disco fisso file di grosse dimensioni (generalmente filmati in formato MPEG, video 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 Termina 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 nomefile.ext, il file di cui de desiderate sbarazzarvi). Tornate ora al Task Manager, cliccate 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) "DisablePagingExecutive" e gli assegnamo come valore 1. Per tornare alle impostazioni originali 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 è possibile spegnere il computer", con una semplice modifica al registro si può automatizzare l'operazione.
Basta andare nel registro di configurazione (Start -> Esegui -> regedit) e cercare
la chiave
30
[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 (tipo 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 sulla 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 eseguire qualsiasi operazione di copia e/o formattazione.
Reinstallazione del sistema operativo
Certe volte è necessario reinstallare il sistema operativo conservando le impostazioni 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 parametro /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
31
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 disinstallare.
* Salvare il file sysoc.inf e riavviare il PC.
Adesso nel pannello Rimuovi/aggiungi applicazioni non necessarie potranno essere 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.
32
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' nell'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 risultera'
inaccessibile. Avete creato una cartella che in pratica non esiste, non si puo' cancellare, 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\ CurrentVersion \ 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.
33
Il programma in questione ha un'apposita voce (ADD/REMOVE) che vi permette 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 impostare, sulle singole cartelle presenti su di un computer in rete, criteri di protezione 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 dialogo 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. Facciamo clic sul menu "Strumenti - Opzioni cartella". Qui facciamo clic sulla scheda "Visualizzazione". Nel riquadro sottostante, spuntiamo l'opzione "Utilizza
condivisione file semplice (scelta consigliata)" e DISABILITIAMOLA. Facciamo di nuovo clic con il tasto destro su una cartella e, dal menu contestuale, selezioniamo "Proprietà". Facciamo clic sulla scheda Condivisione. Qui spuntiamo
l'opzione "Condividi cartella" specificando un nome. Per impostare le autorizzazioni per gli utenti che accedono alla cartella in rete, facciamo clic sul pulsante
"Autorizzazioni". Possiamo specificare quali utenti possono accedere alla cartella 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 visualizzato 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 della 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:
34
- selezionare la cartella che desiderate condividere in rete locale (pulsante "Sfoglia...");
- impostare un nome per la condivisione;
- inserire una descrizione per la condivisione stessa;
Cliccando sul pulsante "Avanti", potrete quindi configurare i diritti di accesso alla 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 piacimento 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 potrete 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 connessioni 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'effettuazione 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 potranno essere salvati, infine, se lo si desidera, su file di testo.
Avevamo già incontrato in passato NETSH in un altro nostro tip dedicato al ripristino della configurazione iniziale del protocollo TCP/IP. Potete documentarvi, in proposito, in questa pagina.
35
Risolvere i problemi che impediscono l'avvio del sistema operativo -- 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'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 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 nuovamente 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 sistema 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 mancante. 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).
36
Infine, copiate i tre file BOOT.INI, NTLDR e NTDETECT.COM nella cartella
principale della partizione contenente Windows XP. Il sistema operativo dovrebbe 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 informa su un problema riscontrato sul file NTOSKRNL (file danneggiato o mancante), ecco la soluzione per "far resuscitare" il vostro Windows XP.
Inserite il CD ROM d'installazione di Windows 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'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 avviare la Console di ripristino del sistema (sarà necessario indicare l'installazione di Windows che si desidera riparare e la password dell'amministratore).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:) quindi, 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 precedenza, 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 digitare: 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:
37
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 file batch o comando batch è un file di testo che contiene una sequenza di comandi 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 concetto 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 costrutti 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, Batchrun, che permette di creare files batch utilizzando una comoda interfaccia
grafica.Con l’utilizzo dei files batch .brs generati ed eseguibili solo con Batchrun, è 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 possono essere eseguiti da esplora risorse o inseriti in Esecuzione Automatica piuttosto che iconizzati sul desktop.
38
HijackThis
HijackThis è senza dubbio un tool indispensabile per la corretta manutenzione del vostro pc. Con un semplice click vengono infatti rilevate tutte le impostazioni e i settaggi del registro di sistema, dell'esecuzione automatica e dei programmi 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 è nuovamente 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 registro 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 appositamente 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 cancelleranno 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 maggiornaza 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
39
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 direttamente 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 vediamo 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 sigla 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 checked. Il backup della chiave è creato in automatico, perché la voce Make backups 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, aggiungete 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
40
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.
41
R
ETI
Concetti base delle reti : PORTE E PROTOCOLLI
Componenti
Per comprendere la trattazione delle porte e i protocolli, è necessario familiarizzare 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
42
vengono condivise tali risorse.
In una topologia a bus, tutti i computer sono connessi ad un singolo mezzo trasmissivo 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 centrale è 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 estesa 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 gerarchica.
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 utilizzabile 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 indipendenti in cui dividere il processo di comunicazione
tra due dispositivi. I livelli attraverso cui transita l'informazione scambiata tra due dispositivi sono:
43
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 flusso, 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 attraverso le reti che formano Internet. Usa indirizzi IP (Internet Protocol) per determinare l'ubicazione del destinatario. Non assicura l'affidabilità della connessione, perchè è già compito del livello di trasporto, ma è responsabile di selezionare 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 informazioni 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.
44
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 dispositivi. Usa TCP per creare una connessione virtuale per il controllo dell'informazione, 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 posta 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 affidabilità. 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 consegnare 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 destinatario invia un pacchetto di conferma detto SYN/ACK (acknowledge).
45
Infine il dispositivo sorgente invia un pacchetto chiamato ACK, che è una conferma della conferma. A questo punto, entrambi i dispositivi sorgente e destinatario 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'accettazione o meno dei pacchetti.
I protocolli del livello Internet sono:
-Internet Protocol (IP) Un protocollo frequentemente usato dal livello di accesso 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 remoto. 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 garantisce 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 indirizzo 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'interno della rete.
46
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'interno 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 Authority, 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 singolo computer.
47
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 esistenti sono:
-Classe A: il primo bit è sempre zero, di conseguenza la classe comprende gli indirizzi 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 classe comprende gli indirizzi compresi tra 224.0.0.0 e 239.255.255.255. Questi indirizzi 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 questo 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 dispositivo 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 indirizzi del sistema locale, essi cioè si riferiscono direttamente al computer locale. Ogni computer ha un indirizzo locale 127.0.0.1, quindi quell'indirizzo non può essere 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.
48
L'indirizzo di broadcast è un indirizzo in cui la parte dell'indirizzo che normalmente identifica il dispositivo è tutto 1. Questo indirizzo non può essere usato per identificare un dispositivo specifico, perchè è usato per inviare informazioni 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 arriverà all'edificio corretto, ma senza il numero dell'appartamento non verrà consegnata 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 servizio in esecuzione su un computer remoto può determinare che tipo di informazione 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 esecuzione sulla porta 80, il computer locale si connetterebbe a quello remoto utilizzando l'indirizzo (socket address ):
62.80.122.203:80
Per mantenere un livello di standardizzazione tra le porte più comunemente usate, 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
49
o servizi particolari. Le porte più comunemente utilizzate – come assegnate da
IANA – sono elencate nella tabella seguente.
Port Assignments Keywords Description
Decimals
Reserved
0
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
50
43 nicname
Who Is
53 domain
Domain Name Server
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 applicazione genera i dati che vengono inviati al livello di trasporto. Il livello di
trasporto prende queste informazioni e vi aggiunge un'intestazione. L'intestazione consiste in informazioni quali l'indirizzo IP dei computer sorgente e destinatario, che specifica cosa debba essere fatto ai dati per inviarli alla corretta destinazione. Il livello successivo aggiunge un'altra intestazione e così via. Questa procedura ricorsiva è nota come incapsulamento.
51
Ogni livello dopo il primo incapsula i dati del livello precedente fino a che si arriva al livello finale in cui viene effettuata la reale trasmissione dei dati. La figura 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, questo rimuove le informazioni non necessarie contenute nell'intestazione costruita
dal livello precedente.
52
WIRELESS LAN
Una wireless local area network ,WLan, è un sistema di comunicazione flessibile 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, supportando 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 cablata, come abbiamo detto, mentre i wireless terminal sono dei dispostivi che
usufruiscono dei servizi di rete. Gli AP possono essere implementati in hardware
53
(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 alle possibilità consentita dai terminali mobili
comuni.Tra i possibili
vantaggi offerti da una
Wlan, possiamo elencare :
•
•
•
•
•
installazione
veloce e semplice , 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 configurazione, 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.
54
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 utenze 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 tecnologia 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 compatibilità 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' obiettivo della certificazione, dell' interoperabilità e compatibilità tra i prodotti.
55
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 occupata
la possibilità di scelta automatica dell'access point in funzione della potenza del segnale e del traffico di rete
di creare un numero arbitrario di celle parzialmente sovrapposte permettendo 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 pertrasmissioni 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 applicazioni 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 ferenze 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.
56
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 attraverso 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 rilevamento 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 stazioni 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 identifica ogni dispositivo collegato a una rete TCP/IP come Internet
57
LAN
Local Area Network o rete locale
MAC
Medium Access Control, il sottostrato dello strato Data Link del modello ISO/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 misurata 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 direttamente 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
58
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 classiche reti ethernet sono due argomenti fortissimi a favore del networking wireless.
Naturalmente oltre a questi grandi benefici ci sono anche dei problemi: 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 consapevoli 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 fronteggiare 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. Lasciare la password standard è un suicidio!Di seguito presento alcuni link dove
possono essere trovate le password di default di router e dispositivi vari, probabilmente 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
59
2. Prevenzione
Come tutti i software anche il sistema operativo del Router / Access point necessita 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 verificare 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. Nella 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-topeer.
4. Disabilitare il SSID Broadcasting
In un a rete wi-fi esiste un codice di identificazione detto SSID (Service Set Identifier). Un computer che vuole comunicare con una rete deve conoscere questo codice; infatti ogni pacchetto di dati scambiato in una rete wi-fi contiene questo 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 annunciare pubblicamente la presenza della rete (cosa inutile per una rete domestica).
Questo accorgimento non è determinante (come nessun accorgimento preso singolarmente) 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 analisi 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 indirizzo, il famoso Ip (Internet Protocol). In realtà ogni dispositivo di rete ha un altro 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
60
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 criptografia 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 generazione (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 sensibilmente 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 facilmente 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) derivato 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;
61
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
9BEA00D070CDC6F6712A6CE941F20EB488C7156A88F43A607B6798EC11
3070F3. 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. Possono 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 (pazienza e fortuna) sono le uniche due vere alleate dell’hacker in qualsiasi operazione di password cracking.
Recuperare la Chiave WEP/WPA con WirelessKeyView
Può succedere che ci si dimentichi la password (o meglio la key) per la connessione 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 comodamente memorizzato su di una chiave USB.
62
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 craccare 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 decodificare l’intera connessione, ma è in grado di decifrare singoli pacchetti, senza 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, preceduta 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 istituito un gruppo di lavoro, chiamato "Task Group i", per correggere i noti problemi 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 sviluppo 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
63
Key Integrity Protocol), sempre basato sull'algoritmo RC4, che aggiunge un
meccanismo di cifratura software preliminare a quello utilizzato dal WEP (eseguito invece in hardware) per ogni pacchetto inviato.
WPA si basa su TKIP per la codifica dei messaggi, mentre si è aggiunto un meccanismo 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 richiede 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'autenticazione avvenga sia in fase di primo accesso alla rete sia ad intervalli periodici di tempo. Per l'autenticazione l'access point si deve appoggiare ad un server
esterno tramite il protocollo RADIUS (Remote Authentication Dial-In User Service).
L'architettura 802.1x applicata alla tecnologia wireless prevede quindi la presenza delle seguenti entità:
Supplicant = client che intende accedere alla rete
Authenticator = punto di accesso alla rete (access-point)
64
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 quest'ultimo venisse scoperta una qualche vulnerabilità.
Metodi di autenticazione
Tra i vari metodi di autenticazione impiegati in EAP (oltre 40) è possibile segnalare:
•
EAP-MD5: (MD5-Challenge), equivalente al PPP, richiede username/password. Non prevede mutua autenticazione o scambio di chiavi
quindi è poco adatto in ambiente wireless.
65
•
•
•
•
•
66
LEAP: (Lightweight EAP) sviluppato da Cisco, prevede l'invio di username/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'Authentication 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 è possibile 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 è fondamentalmente un'incapsulamento dell'MS-CHAP-v2 in EAP.
WPA-Cracking tra Cloud Computing e Personal Supercomputers
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 identifica 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 contrastati 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 successo, inizia a presentare delle crepe. Comunque sia WPA (TKIP), sia WPA (AES/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 tramite 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.
67
IL PROVETTO RICERCATORE
Internet è un immensa fonte di informazioni e muoversi all'interno di essa è come entrare in un labirinto dove, senza un filo di Arianna che ci guidi, non potremmo 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 bisogno 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 sulla ricerca di ogni dettaglio riguardo l'administrator del server per poterne identificare 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 intuitivamente 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 !!
68
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 mandare 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
•
-h
ne.
•
-j
•
-w
• nome_dest.
Non risolve gli indirizzi in nome host.
Numero massimo di hops per ricercare la destinazioLibera route di origine lungo l'elenco host.
Intervallo di timeout in millisecondi per ogni risposta.
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 massimo 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
69
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 tentativo 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 valutarne la velocità.
Viene inviato all'host in questione una serie di pacchetti "echo" di 64 byte aspettando i pacchetti di risposta.
Non è certo utile ai nostri scopi usarlo in questo modo, ma se invece lo utilizziamo 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.
70
•-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 conoscere 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 incominciare 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)
71
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 appartengo 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 caricando 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 appartiene, in futuro potremo sempre intercettarlo (se sarà online, ovviamente) facendo una scansione degli indirizzi da 196.41.197.1 a 196.41.197.249 controllando
72
se apparirà il suo nome!Normalmente basta una scansione dei primi 50/90 n°, visto che difficilmente gli utenti della stessa rete si collegano nello stesso momento, inoltre una volta trovato e attaccato,se dovesse riconnettersi il server gli assegnerà 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 come "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 controllare 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 primo 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, usate uno scanner) che come risposta ci darà il nome del server a cui è collegato.Se abbiamo il suo nome o alias possiamo comportarci come ho descritto prima, cioè usando un dns-scanner e verificare se il suo nome host coincide con
quello che abbiamo.
73
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 tenuto visibile il suo vero e-mail address nelle proprietà di almeno un msg. In pratica 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);
mail-server@rtmf.mit.edu
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 informazioni 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
74
vicino alle voci: Telnet Client,Telnet Server (opzionale). A questo punto, confermate 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 sono 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 servizio. Se per esempio vogliamo collegarci ad un servizio mail (SMTP) la porta sarà 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 intendono 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
13
15
21
23
25
39
43
53
70
79
80
110
[systat]
[daytime]
[netstat]
[ftp]
[telnet]
[smpt]
[rlp]
[whois]
[domain]
[gopher]
[finger]
[http]
[pop]
Molte info sugli utenti
Ora e data dell'host locale
Informazioni sul Networks (!)
Servizio trasferimento files
Il tuo log in.
Servizio mail (spedizione)
Risorse dell'ubicazione
Info su host e reti
Nome del server
Servizio gopher
Informazioni sugli utenti
Sevizio Web
Servizio mail (ricevente)
75
119
443
512
513
[nntp]
[shttp]
[biff]
[rlogin]
[who]
514 [shell]
[syslog]
520 [route]
Servizio Usenet
Altro servizio Web
Notificazione della posta
Login remoto
Who remoto
Comandi in remoto, nessuna pwd
Logging del sys remoto
Protocollo di instradamento.
Bene, chiusa questa piccola parentesi sul funzionamento di Telnet, possiamo incominciare......
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'interno 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 digiteremo 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 cercando. Ovviamente per avere maggiori probabilità di riuscita è essenziale utilizzare il server whois più vicino alla vittima (e questo vale anche per gli altri servizi che tratterò di seguito)...Potreste provare addirittura (se siete fortunati) a veri-
76
ficare se il provider della persona che cerchiamo abbia attivo questo tipo di servizio, 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 possibilità 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 consentono 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 ricerca, 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 normalmente viene utilizzato l'indirizzo e-mail della vittima...
: kevin@netware.net
...dategli tempo di elaborare e (se saranno presenti) vi troverete davanti le informazioni riguardanti l'utente, sarete anche avvisati (sempre che il server lo permetta) se l'utente è collegato in rete!!
In alternativa se la chive di ricerca è incerta potrete utilizzare finger in questo
modo..
: finger@netware.net
..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).
77
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 nell'help del server.E' ovvio quindi che netfind è un servizio utile solo per una ricerca più mirata, ovvero se siamo già a conoscenza di alcune info sul nostro bersaglio.Per utilizzare questo servizio sarà sufficiente collegarsi con telnet ad un
server netfind, entrare con "netfind" quando chiede il login e dare un'invio quando 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 ricerca;
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 parola chiave che possa identificare la persona...ecco tutto quello che dovrete fare.
Netfind si preoccuperà di effettuare una ricerca nel dominio da voi indicato, riferendovi tutte le informazioni disponibili e , come per finger, se l'utente da voi selezionato è attualmente in rete.
Interessante no?!
(Ricordatevi che le chiavi di ricerca vanno divise da spazi e non da punteggiature).
Più la ricerca sarà precisa e più sarà veloce ed efficace il risultato, se invece dovrete 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 paesi, eccone alcuni che ho potuto verificare:
netfind.fnet.fr
netfind.uni-essen.de
ds.internic.net
netfind.elte.hu
netfind.icm.edu.pl
nic.uakom.sk
bruno.cs.colorado.edu
netfind.vslib.cz
78
(Francia)
(germania)
(USA)
(Ungheria)
(Polonia)
(Slovenia)
(USA)
(Rep.Ceca)
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 tramite 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: tecnicamente 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 mandano le email, con un server POP3, invece, si ricevono le email sul proprio computer 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 alfanumerico 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 passaggi.
Supponiamo che actarus@vega.it mandi una mail a venusia@venus.it, il computer client di actarus apre una sessione Telnet e manda la mail attraverso il server
79
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 negli 'Headers'. Fatta questa breve descrizione generale di come avviene la spedizione 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 libero.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 nostro IP. Il server SMTP non permette l'autenticazione, per questa funzione accorre usare il server POP3 che vedremo più avanti.
MAIL FROM: <nick_proprio@provider.it>
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: <nick_destinatario@provider.it>
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-
80
stro messaggio, per terminare l'inserimento è sufficiente una riga contenete il solo punto: ".".
VRFY: <nick@provider.it>
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'autenticazione sia già stata fatta, in caratteri monospace e in grassetto i comandi da digitare 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 message"/"scarica la posta" sul nostro account di posta, in alternativa ci si può autenticare 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
214-2.0.0
214-2.0.0
214-2.0.0
214-2.0.0
214-2.0.0
214-2.0.0
214-2.0.0
email to
214-2.0.0
214-2.0.0
This is sendmail version 8.12.9
Topics:
HELO
EHLO
MAIL
RCPT
DATA
RSET
NOOP
QUIT
HELP
VRFY
EXPN
VERB
ETRN
DSN
AUTH
STARTTLS
For more info use "HELP <topic>".
To report bugs in the implementation send
sendmail-bugs@sendmail.org.
For local information send email to
81
Postmaster at your site.
214 2.0.0 End of HELP info
mail from: <actarus@vega.it>
250 2.1.0 <actarus@vega.it>... Sender ok
rcpt to: <venusia@venus.it>
250 2.1.5 <venusia@venus.it>... 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 actarus@vega.it... 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 aggiunge 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 occhio esperto capirà che siete stati voi a spedire la missiva. (Per risalire al computer 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).
82
Comandi POP3
Connettiamoci al nostro ISP con telnet, esattamente al suo server di posta in entrata:
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 mentre 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à cancellata 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) <xxx@pop.venus.it>
83
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: <actarus@vega.it>
Received: ....
Date: Sun, 01 Sep 2003 00:00:00 +0200 (CEST)
From: actarus@vega.it
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
84
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 all'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. Praticamente 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 livello 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.
85
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 regole 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 messaggi. Alla base della torre sta la porta di accesso alla rete fisica, che potremmo pensare 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 risultante, 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'altro 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 riferimenti 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-
86
vo. Per spedire la lettera il direttore lo passa alla sua segretaria. Ciò avviene secondo le regole interne della Pippo e figli, ed è perciò un'interfaccia. La segretaria 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 passata all'Ufficio Posta dell'edificio secondo la procedura ordinaria (altra interfaccia), il quale aggiunge l'indirizzo completo, il CAP e altre informazioni necessarie 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 buttato la busta esterna con l'indirizzo dell'edificio, la passa alla segreteria del direttore. 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 rispettati da entrambe le aziende. Mentre infatti le interfacce possono essere diverse (ogni azienda ha le sue procedure interne), i protocolli devono essere stati
concordati prima, altrimenti alcune informazioni potrebbero andare perse, o addirittura la lettera potrebbe non essere recapitata in tempo. Pensate a una segretaria italiana che riceve una busta da una consociata asiatica con sopra scritto URGENTE in cinese! Ne nasce una considerazione importante.
La base di ogni protocollo è il concetto di standardizzazione. Più vasta è l'accettazione dello standard, più forte e diffuso è il protocollo. Gli standard internazionali 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 protocolli per l'interconnessione di reti a livello mondiale.
Internet
Internet è fatta a strati, Internet è basato su tre livelli concettuali: il livello applicativo (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 comunicazione. 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 è fattibile, ma neanche auspicabile, date le limitazioni delle tecnologie attuali. A volte è
necessario far correre i dati molto velocemente in un ambito molto ristretto, come per esempio all'interno di un edificio. Altre volte si ha l'esigenza di trasmettere dati a migliaia di chilometri di distanza in modo molto affidabile, anche se
87
questo può significare un rallentamento nella velocità di trasmissione. Se si cercasse di utilizzare lo stesso hardware in entrambi i casi, i costi sarebbero assolutamente 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 conseguenza del TCP/IP sui vari protocolli proprietari.
Il TCP/IP è un insieme di regole pubbliche, aperte a tutti, o come si dice nell'ambiente, un sistema aperto (open system), che permette l'interconnessione di
reti anche molto differenti, indipendentemente dalla tecnologia usata da ogni rete.
I suoi principali vantaggi sono appunto l'indipendenza dalle tecnologie delle singole reti interconnesse, la possibilità di far comunicare fra di loro ogni computer
connesso al sistema, la possibilità di trasmettere conferme di ricezione (acknowledgement) 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 applicazioni dalle caratteristiche fisiche delle reti in modo semplice e flessibile. Questo 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 meccanismo 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 intestazione che fornisce informazioni sul destinatario e su come raggiungerlo. Questo meccanismo ha il vantaggio di ottimizzare l'utilizzo della rete, parallelizzando la trasmissione di più messaggi contemporaneamente. Lo svantaggio è che
ogni nuovo sistema che si aggancia alla rete per trasferire dati riduce la disponibilità 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). Questa grandezza non rappresenta la velocità dei dati in rete, come si potrebbe pensare 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 messaggio 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
88
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 telefonata, 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 ricevitore all'altro capo. Il tutto a 64.000 bit per secondo, che è la velocità di campionamento necessaria a digitalizzare la voce. Questo avviene comunque, indipendentemente dal fatto che stiate parlando o meno. Anche se state in silenzio la
linea è saturata al massimo della sua capacità. Questo meccanismo è detto circuit-switching. Al contrario del meccanismo usato dal TCP/IP, quello cioè a pacchetti, 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 telefonata, infatti, la pagate lo stesso sia che parliate molto velocemente, sia che stiate
completamente in silenzio. Questo meccanismo è troppo costoso per una rete informatica, 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'impossibilità di garantire a ogni utente e in ogni momento una certa capacità di trasferimento 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 locale 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. Tuttavia, 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 collegate fisicamente a entrambe le reti, e hanno la responsabilità di far passare i vari pacchetti da una rete all'altra e viceversa. Tali macchine sono dette internet gateway, 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
89
rete a un'altra, ma deve passare dall'altra parte anche pacchetti destinati a ulteriori 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 destinatario 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'indirizzo IP, o IP address.
IP address
Ogni cosa che conosciamo ha un nome. Cane, casa, auto, e via dicendo. Se ci interessa specificare meglio ciò di cui stiamo parlando, possiamo assegnare un
nome anche a un sottogruppo di cose. Così abbiamo che i cani bassotti sono alquanto 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 comunque, 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 telefono, 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'univocità. La seconda, è che hanno una struttura a sottogruppi. Esistono cioè degli
elementi che garantiscono l'univocità a un certo livello, all'interno del quale esiste una certa libertà di scelta, e così via, livello dopo livello. Per esempio, il codice 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 reti con una qualsivoglia altra macchina connessa alla stessa o a un'altra rete, è necessario fornire ogni macchina di un nome unico a livello globale. Internet fornisce 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.
90
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 esempio, un router ha almeno due indirizzi, avendo connessioni ad almeno due reti. Questo in quanto un router appartiene a entrambe le reti, e quindi sono necessari 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 viceversa tutti i bit riservati all'indirizzo dell'host sono 1, allora l'indirizzo viene utilizzato 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 broadcast 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) è riservato 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 centrale che assegna gli indirizzi (Network Information Center) di delegare ai responsabili 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 livello internazionale ogni stato ha il suo prefisso internazionale. Per esempio, per l'Italia, è 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, Firenze da 055, e così via. All'interno poi della provincia o della città possono essere 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 numero. Così, se Mr. Smith deve chiamare dagli Stati Uniti il signor Mario Rossi abitante 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.
91
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 necessità 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 elettronica, che contiene una lista parziale di nomi e numeri telefonici. In internet infatti, 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 suffisso è 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ò richiedere di essere registrata come categoria, oppure usando il dominio geografico. Per esempio, l'Italia ha come dominio base it. Supponiamo che il governo decida 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 potrebbe 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 responsabilità 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
92
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 ddejudicibus@tecnet.it
Innanzi tutto una internet è un sistema di interconnessione fra reti differenti che
utilizza sia sistemi dedicati per la connessione, detti gateway, sia uno strato (layer) di protocolli che mostrano alle applicazioni una visione omogenea di una rete virtuale e che sono basati sulla trasmissione di piccoli pacchetti di dati. Ogni
pacchetto porta con sé l'indirizzo del destinatario il quale identifica univocamente 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 degli 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 pianeta.
Reti
A questo punto i sistemi sono in grado di scambiarsi i dati in modo non equivoco. 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 caso di Ethernet è di ben 48 bit.
93
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 problema è stato risolto efficacemente utilizzando un meccanismo di risoluzione dinamica 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 richiedente 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 è necessario 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 periodicamente 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, è quella di far distribuire la propria coppia di indirizzi, fisico ed IP, ogni qual volta un
sistema si connette alla rete, per esempio al reboot.
94
RARP
ARP non viene considerato propriamente un protocollo internet, quanto un meccanismo 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 indirizzi IP in indirizzi fisici. Un protocollo analogo è il RARP, o Reverse Address Resolution 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 associazione 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ò memorizzare 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 delle applicazioni. I programmi che utilizzate quando usate internet ricadono in questo 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'Internet Protocol, o IP. Tale protocollo si basa su alcuni concetti fondamentali. Innanzi tutto il servizio che fornisce è detto unreliable, cioè inaffidabile, in quanto
non dà alcun garanzia che il singolo pacchetto arrivi effettivamente a destinazione. In secondo luogo è detto connectionless, cioè senza connessione diretta, in
quanto la trasmissione non avviene direttamente verso il destinatario, ma il messaggio è lanciato nella rete lasciando poi a questa il compito di portarlo a destinazione utilizzando l'indirizzo IP dell'host destinatario. Infine si parla di besteffort 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 qualcuno 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
95
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 pacchetti 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 comprendere 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 è connectionless, ovverosia il messaggio non viene spedito direttamente al destinatario 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'unità 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 è invece l'ottetto, formato da otto bit, cioè un byte. Ogni rete fisica ha un limite massimo 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 spedire 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'intestazione 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 semplificando 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
96
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 rete 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 anch'esso è formato da una intestazione e da un'area dati. All'atto della frammentazione, ogni frammento viene costruito replicando l'header del datagram, modificandone 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 rientrano in una rete fisica ad alto MTU, ma sempre e comunque presso l'host di destinazione. 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 avviene nel primo gateway mentre il riassemblaggio avviene solo nell'host di destinazione. Il protocollo IP richiede che sia gli host che i gateway siano capaci di gestire datagram di almeno 576 ottetti. In aggiunta, questi ultimi devono essere capaci 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 frammento comporta la perdita dell'intero datagram. Dato che ogni frammento è trasmesso 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 tutti i frammenti siano arrivati, il sistema cancella tutti i frammenti e considera perduto 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 routing 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.
97
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 sull'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. Questo vuol dire che non esiste un collegamento diretto tra i due host che si scambiano dati, bensì una rete di connessioni attraverso la quale si possono identificare 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 dicendo. 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 messaggio a un altro host nella stessa rete, non deve far altro che incapsulare il messaggio 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'identificativo del destinatario nella rete fisica, a incapsulare il datagramma in un frame, e a spedire direttamente il tutto all'host finale . Questa tecnica si chiama instradamento diretto (direct routing).
Vediamo adesso quello che succede quando abbiamo due reti interconnesse tramite un gateway. L'host mittente si accorge che il destinatario non è nella sua rete 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 arriva quindi direttamente al gateway che estrae l'indirizzo IP del destinatario, si accorge 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 gateway ritrasmette sempre i messaggi che devono andare da una rete all'altra attra-
98
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 notare che queste tabelle non contengono di solito gli indirizzi IP di tutti i possibili
host destinatari, cosa che sarebbe fisicamente impossibile, bensì gli indirizzi delle reti raggiungibili a partire da quel gateway. Esiste poi la possibilità di specificare 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 meccanismo 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 particolari 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 rimane 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 altro messaggio spedito via TCP/IP. Non analizzeremo in dettaglio tutti i datagrammi 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.
99
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 livello 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 contemporaneamente, e comunque questi non hanno le caratteristiche di permanenza che ha invece un host. Un programma infatti è un componente dinamico e temporaneo in
un sistema. Non è quindi pensabile di poter associare a un processo un identificativo 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 siano sempre processati dalla stessa applicazione. Per esempio, oggi potrei voler
usare un certo programma per gestire la mia posta elettronica, domani potrei decidere 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 devo solo staccare e riattaccare fisicamente le stampanti senza modificare il sistema. In generale, tutto lo scambio di dati da e verso un computer avviene attraverso porte di I/O. Ogni applicazione accede la porta che gli serve in modo dinamico. La periferica di I/O non ha bisogno di sapere con quale applicazione sta parlando: la porta fa da schermo fra i due. L'UDP fa una cosa analoga. Esso permette 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 computer. 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,
100
esso si mette in attesa dei dati sulla stessa. Il meccanismo è cioè sincrono. Inoltre, se dei dati arrivano a una porta alla quale non si è agganciato ancora un processo, 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 girano e dal numero di porta che utilizzano per la trasmissione in rete. Tale associazione è tuttavia dinamica, e così come più applicazioni possono stampare sulla
stessa stampante purché non contemporaneamente, così più processi possono attaccarsi 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 datagramma 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 lunghezza 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 sbagliato. L'UDP non fa alcun controllo al riguardo. L'affidabilità della comunicazione è infatti affidata a i protocolli di livello più elevato. Tutti i campi dell'intestazione 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 succedeva con la somma di controllo nel datagramma IP, esso non è relativo solo all'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 dell'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 come 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.
101
La somma di controllo, tuttavia, per ragioni pratiche, non riguarda solo il datagramma UDP, ma viene calcolata anche utilizzando alcune informazioni addizionali. Queste formano il cosiddetto pseudo-header.
In pratica, quando si deve calcolare il checksum UDP si mette davanti al datagramma 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 messaggio 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 realmente verificare che il destinatario dei dati è quello giusto.
Questa tecnica ha tuttavia un prezzo: gli indirizzi IP fanno parte appunto del livello 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 calcolare la somma di controllo. Essa non viene fisicamente trasmessa con il datagramma UDP, dato che le informazioni che contiene fanno già parte dell'intestazione 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 primo 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, salvo 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-
102
collo. Esso definisce solamente le caratteristiche di tali servizi, per cui si possono
trovare molte differenti implementazioni del TCP, ognuna con la propria interfaccia applicativa. Per chi non programma ricordo che un’interfaccia applicativa
o API (Application Programming Interface) non è altro che l’insieme delle funzioni, delle istruzioni, dei parametri e dei blocchi di controllo che vengono utilizzati 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 trasmissione 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 router, 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 trovavano a passare attraverso reti caratterizzate da una soglia molto bassa sulle dimensioni 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 pacchetto. 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 invece l’IP. Una connessione, per definizione, richiede la definizione di due punti
piuttosto che di uno solo, detti punti terminali o estremi della connessione (endpoint).
103
Terzo punto: abbiamo visto che l’IP divide i dati in pacchetti che vengono costruiti 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ò considerare 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 destinatario, mentre per i messaggi di controllo avviene il contrario: prima vengono
accumulati in un singolo pacchetto, e poi rispezzettati presso il destinatario. Questo 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 è responsabilità delle due applicazioni che utilizzano la connessione TCP per cooperare. Questo vuol dire che se un’applicazione manda alla sua controparte una serie 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 consecutivi. Si parla quindi di flusso senza struttura (Unstructured Stream).
Quinto e ultimo punto: le connessioni TCP permettono il trasferimento contemporaneo dei dati in entrambe le direzioni, quello che nel gergo delle comunicazioni si chiama una connessione full-duplex. Si hanno cioè due flussi che scorrono indipendentemente in direzioni opposte, senza interagire fra loro. Le applicazioni hanno comunque la possibilità di passare alla modalità half duplex semplicemente bloccando uno dei due flussi di dati.
Ma in che modo il TCP garantisce quella affidabilità che manca all’IP? Il meccanismo di base utilizzato sia dal TCP che da molti altri protocolli cosiddetti "affidabili" è quello della ritrasmissione in caso di mancata conferma (positive acknowledgement with retrasmission). Si tratta di un meccanismo concettualmente semplice: ogni qual volta uno dei due interlocutori di una connessione spedi-
104
sce dei dati, questi attende una conferma dell’avvenuta ricezione. Se questa arriva 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 meccanismo 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 facendo 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 mittente di verificare che a ogni messaggio spedito corrisponda una e solo una conferma di ricezione. È un po' lo stesso meccanismo di una raccomandata con ricevuta 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, saturando per giunta la rete, mentre se si attende troppo si rischia di abbassare notevolmente 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 grosso svantaggio. Anche se i tempi di attesa sono scelti in modo ottimale, esso causa
un notevole sottoutilizzo della rete. Infatti, indipendentemente dalla capacità della 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). Funziona 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 è
105
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 mantiene 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 finestra ampia quanto il trenino di pacchetti che possono essere spediti senza attendere 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 finestra 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 regolarmente 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 effettivamente vanno recapitati i dati. È evidente che non basta l'indirizzo IP, che identifica 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 indirizzo come fa TCP a sapere a quale applicazione deve far arrivare i dati? Un sistema potrebbe essere quello di assegnare un identificativo a ogni singola applicazione, 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 specifica 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, audio e di vari altri tipi. Ad ogni porta possono essere attaccati dispositivi molto
106
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 responsabilità ben precisa, mentre quelli al di sopra sono utilizzati per le assegnazioni dinamiche. Avremo per esempio una porta per i servizi di posta elettronica
X.400 chiamata appunto X400 (103) alla quale faranno riferimento tutte le applicazioni 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 lista delle porte conosciute attualmente assegnate è riportata nella RFC 1060, reperibile 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 scambiano 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 applicazione, per esempio di posta elettronica, necessita di una sola porta TCP per fornire servizi a molte macchine contemporaneamente attraverso differenti connessioni 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-
107
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 invece 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'efficienza della trasmissione, TCP utilizza una versione particolare del meccanismo 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 felicemente a destinazione da quelli di cui non si hanno ancora notizie, uno che separa 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 ovviamente ricostruire il flusso di dati nel modo corretto indipendentemente dall'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 considerando entrambi gli estremi. Esiste quindi un'asimmetria rispetto al meccanismo
base dove l'unità dati utilizzata nella finestra di scorrimento era la stessa utilizzata nella trasmissione. Qui TCP utilizza il segmento come unità dati da trasmettere, 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-
108
rio. Ogni conferma di ricezione che ritorna al mittente contiene una soglia di capacità (window advertisement) che contiene il numero di ulteriori ottetti che il
destinatario è in grado di ricevere. In pratica questo meccanismo permette di adattare 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 interrompere momentaneamente la trasmissione nel caso che si sia raggiunta la massima 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 maggiore 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 necessità trasmettendo un segmento con un indicatore di urgenza al suo interno.
Questo permette al destinatario di prendere delle contromisure per ricevere comunque i dati urgenti, per esempio aumentando le dimensioni del buffer. In secondo luogo, è sempre possibile che la conferma con soglia positiva che dovrebbe far ripartire la trasmissione dei dati vada perduta. Per questo motivo il mittente 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 intende la possibilità di regolare dinamicamente la quantità di dati che vengono
immessi nella rete. Non solo è importante che il destinatario possa regolare la velocità di spedizione in funzione della sua capacità di ricezione, ma è fondamentale che ogni gateway intermedio possa frenare il flusso dei dati che riceve per evitare di entrare in saturazione. Il meccanismo appena descritto della soglia di capacità 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 sviluppare 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 esempio, 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)
109
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'interno 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'operatore. È 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 apparire 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 sarebbe 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 accumulasse gli stessi nel buffer di ricezione prima di passarli all'applicazione destinataria 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 tenere la rete sempre impegnata al massimo della sua capacità e che esiste un'importante 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 meccanismo 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 segmento 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 ricezione. 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 ragionare in termini di cursore all'interno del flusso di dati. Come dire "ho ricevuto
i primi 300 caratteri della lettera che mi hai spedito".
110
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 ottetti dai segmenti ricevuti e li ricompone per ricostruire il flusso dei dati, utilizzando i numeri di sequenza per riordinare i vari segmenti.
Questi possono infatti arrivare in qualunque ordine, o essere andati persi. A questo 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 contigui alla parte di flusso ricostruito. Ogni volta che il destinatario riceve un segmento, manda indietro nella conferma di ricezione il numero di sequenza dell'ottetto che si aspetta di ricevere per continuare la ricostruzione, cioè il valore dell'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 regolarmente, e così dicendo. Man mano che i segmenti partono arrivano dalla controparte 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 regolarmente, il successivo messaggio di conferma richiederà direttamente il 451° carattere, 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 ritrasmissione 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 siano 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 ritrasmettere tutti i dati successivi, e quindi sprecare tempo a ritrasmettere dati già arrivati, o trasmettere solo una piccola parte e aspettare la conferma che il potenziale buco si è chiuso.
111
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 prestazioni.
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 adattare la finestra di spedizione alle dimensioni del buffer di ricezione. Tuttavia è anche necessario definire la lunghezza del segmento oltre che in funzione delle capacità di trasmissione del mittente e di ricezione del destinatario, anche e soprattutto in funzione delle caratteristiche della rete, come per esempio la grandezza
massima del frame fisico, o Maximum Transfer Unit (MTU). La lunghezza massima 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 dimensioni 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 utilizza 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 indipendentemente 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 immediatamente. Il concetto è analogo a quello del BREAK da tastiera. Se avete lanciato un programma che va in loop è necessario poterlo interrompere senza dover
112
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 programma. Similarmente, se un estremo della connessione deve bloccare (o sbloccare)
l'elaborazione del flusso di dati dall'altra parte, dovrà poter mandare un messaggio 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 contemporaneamente 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 opposto (piggybacking).
L’intestazione: Innanzitutto abbiamo i numeri di porta del mittente e del destinatario, esattamente come nell’UDP. Come già nell’UDP, infatti, gli indirizzi IP
delle due controparti sono contenuti nell’intestazione del datagramma IP. Al contrario di quanto avveniva nell’UDP, tuttavia, la conoscenza da parte del TCP degli indirizzi IP non rompe il paradigma che vuole un certo isolamento fra le responsabilità 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, esiste un campo chiamato somma di controllo (checksum). Il TCP imposta inizialmente 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 lunghezza 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-
113
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 sequenza (sequence number), che rappresenta la posizione dell’area dati del segmento TCP all’interno del flusso di dati. Il secondo è il numero di conferma (acknowledgement 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 indipendentemente dal flusso normale di dati, e con priorità rispetto a quest’ultimo.
In questo caso il segmento contiene un segnalatore (flag) che informa il destinatario della presenza d’informazioni urgenti nell’area dati. I dati urgenti sono posizionati 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 contiene 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 fondo all’intestazione esiste una zona riservata a eventuali opzioni che rende la lunghezza 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, è necessario utilizzare dei segnalatori per informare il destinatario su cosa effettivamente 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 secondo 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 indipendentemente 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 durante la fase iniziale di negoziazione della connessione, detta in gergo handshake.
In pratica, i segmenti scambiati quando questo bit è impostato a uno servono a
114
sincronizzare i numeri di sequenza delle due controparti prima d’iniziare la trasmissione 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 corretta 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 ricevuto o deve ricevere dati dall’altro capo della connessione, cioè come destinatario. 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 negoziare alcuni aspetti della comunicazione. Un esempio è il calcolo della lunghezza 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 conferma 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, magari 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 rilevato 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-
115
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 pacchetto 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 rischiamo di far crescere esponenzialmente il valore di timeout. Infatti un pacchetto è ritrasmesso quando scade il timeout precedente. Di conseguenza il nuovo
RTS è ovviamente più grande del vecchio timeout. Se viene perso un nuovo pacchetto l’RTS cresce ancora, e così via. Se usiamo il pacchetto ritrasmesso abbiamo il problema opposto, cioè il timeout rischia di ridursi sempre di più, o almeno 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 ritrasmesso generando così un RTS molto piccolo. Il timeout si riduce, aumentando 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 timeout. 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 ritrasmettere pacchetti le cui conferme arrivano in ritardo rispetto al timeout calcolato prima del calo di prestazioni. Dato che tali conferme vengono regolarmente
ignorate per il calcolo dell’RTT, il timeout non viene più aggiornato almeno fintanto 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.
116
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 caratteristiche specifiche della vostra rete, può modificare significativamente i tempi di risposta 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 destinatario. 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 proprio 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 provider mettere a disposizione dei propri clienti anche un server della posta in partenza, 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 destinatario.
Gli header di un messaggio di e-mail
From: mario.rossi@prima-rete-esempio.com (Mario Rossi)
To: fverdi@seconda-rete-esempio.com
Date: Wed, 15 Apr 1998 14:24:06 +0200
117
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 vero 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 altre cose, i nomi degli header e la forma in cui deve essere espresso il corrispondente 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 qualcuno un programma su misura per le sue esigenze (quando non farselo addirittura 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 destinazione del messaggio.
Date: Mon, 09 Feb 1998 23:27:13 -0500 (EST)
From: Internet.Services@mio-isp.it
Subject: Important Message
To: Tim@rhodes.edu
Reply-To: Friend@public.net
Message-Id: <<209.133.27.38> MAIL@earlthling.com>
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 messo un indirizzo di fantasia attestato niente meno che presso il mio stesso provi-
118
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 realtà 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 esistono), che cerca di simulare l'uso di Pegasus.
Possiamo anche dare un'occhiata alle prime righe del messaggio: notate il tentativo di far passare l'e-mail come sollecitata ("grazie per aver visitato il nostro sito", 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 nascondere 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 <fverdi@seconda-rete-esempio.com>; Wed, 15 Apr 1998 14:26:32
+0200 (METDST)
From: mario.rossi@prima-rete-esempio.com (Mario Rossi)
To: fverdi@seconda-rete-esempio.com
Date: Wed, 15 Apr 1998 14:24:06 +0200
Message-ID: <3754F6E5.BA67D052@prima-rete-esempio.com>
X-Mailer: Gorilla 3.2 (Win95; I)
Subject: Richiesta informazioni sulle vs. iniziative
119
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 finalmente un valore oggettivo, ed è ciò su cui dobbiamo contare per riuscire a individuare 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 fortuna il fatto che, quando la rete nacque, fosse una rete militare: nell'impostazione
architetturale e dei protocolli entrò così anche una speciale attenzione alla tracciabilità degli eventi di rete, al fatto che si potesse individuare dove si erano generati 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 <fverdi@seconda-rete-esempio.com>; Wed, 15 Apr 1998 14:26:32
+0200 (METDST)
Il server che ha inserito l'header dichiara il proprio nome dopo la parola 'by'. Nella 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'indirizzo 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 questo 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 mariorossi 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 dalla risorsa il cui indirizzo IP è indicato tra parentesi quadre, e di cui è dato anche
il nome.
120
Protocolli di posta per scaricare i propri messaggi
dal server
POP3(Post Office Protocol) : i messaggi vengono scaricati completi di allegati in un solo computer locale e cancellati dal server. E’ possibile decidere 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 ricezione 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 estensione il computer su cui viene eseguito, che si occupa dello smistamento 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 messaggi 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.
121
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'interno 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 accedere a tali informazioni.I computer comunicano tra loro facilmente, attraverso porte, 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' necessario disporre di un meccanismo con cui un computer possa interpretare le informazioni 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 esaminare 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 computer remoto vengono inviate al vostro computer locale utilizzando il protocollo
http. Il browser web interpreta tali informazioni e le visualizza sul vostro computer locale sotto forma di pagine web.
Ipertesto
La parte di ipertesto del protocollo http si riferisce ad un metodo non-lineare di
122
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 parole 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 modo tale che possano essere viste dalle altre persone. Questo è chiamato web hosting.
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 vari 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 correttamente 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 interrotto 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-
123
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 utente@dominio. Vi viene anche chiesto di fornire una password da usare per scaricare 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 idee, 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'email 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 crittata – al vostro server di posta. Questo non significa che chiunque riceve un'email 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'opportunità di farlo. Probabilmente conoscerete le chat room utilizzate da certi servizi online. IRC è come una chat room, solo che non ci sono regole e non ci sono standard. Su un canale IRC potete trovare esattamente ciò che state cercando, o qualcosa 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 telefono, 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 trasferimenti 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 illegalmente (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 anonimi possono essere trovati con vari mezzi, inclusi i motori di ricerca di Internet.
124
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 telnet; per accedervi, aprite il prompt di comando e una finestra terminale e digitate: 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 ricevere 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 usato per effettuare molte cose illegali e immorali, ma ci sono anche ragioni legittime per utilizzarlo. Potete usare telnet per verificare le vostre e-mail, ed esaminare, 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 completamente l'intero messaggio.
DNS
Quando volete chiamare un amico al telefono, dovete conoscere il numero corretto; 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 esempio, 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-
125
ta le pagine web della Hacker Highschool – deve utilizzare un indirizzo IP. Questo significa che il vostro computer locale deve avere un meccanismo per tradurre i nomi di dominio in indirizzi IP. Se ci fossero solo centinaia, od anche migliaia di computer su Internet, sarebbe possibile memorizzare sul proprio computer 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 dinamicamente 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 indirizzo 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.
126
Connessioni
La maggior parte dei computer si connette ad Internet tramite un modem. I modem 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 considerare 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 applicazioni 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, solo 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.
127
INTERNET
Come viene individuato univocamente ciascun computer
nella rete.
All'interno di Internet ciascuna macchina è univocamente identificata da un numero 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 letterale, in modo univoco, ed esistono poi dei sistemi di "traduzione" automatica che
permettono al software di comunicazione di risalire all'indirizzo IP dal nome letterale e viceversa. Mentre l'elettronica di gestione della rete, per trasmettere i vari 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 (formate 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 della 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:
Italia
it
Regno Unito
uk
Francia
fr
Germania
de
Svezia
se
Giappone
jp
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 appartengono. Originariamente questi domini erano riservati agli Stati Uniti, ma di fatto - tranne alcuni casi - essi sono ormai internazionali, e comprendono siti di tutto il mondo. Alcuni di essi sono:
edu
com
org
net
128
Università statunitensi
Operatori commerciali
Organizzazioni senza scopo di lucro
Organizzazioni di gestione della rete
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 relazione alla continua crescita della richiesta di nomi. Se, fino ad oggi, non pensavate
che un nome fosse qualcosa che poteva essere "richiesto" o "comprato", ricredetevi: 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 nomi che stanno in mezzo rappresentano sottoinsiemi della rete, o più propriamente
sottodomini (subdomains), sempre più grandi procedendo da sinistra verso destra, 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 sottodomini 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 normalmente 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 considerare il nome:
lennon.engr.wisc.edu
Questo nome indica il computer denominato lennon situato all'interno del sottodominio engr (Ingegneria) del sottodominio wisc (Università del Wisconsin) del dominio edu (Università americane). Si noti quindi come edu sia un
dominio di primo livello, wisc un dominio di secondo livello, engr un dominio 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 questo caso proprio engr.wisc.edu.
In alcuni paesi extra-USA (ad esempio nel Regno Unito) è stato adottato un sistema 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 individui i vari domini: sebbene in Italia quasi tutti i computer appartengano al do-
129
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 definire 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 convenienza 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 altre parole, è possibile realizzare siti WWW anche su computer il cui "nome proprio" non è www, e così via); tuttavia, si cerca normalmente di assegnare nomi intuitivi, 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 newsgroup).
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 informatico, infatti, un ipertesto è semplicemente un normale file di testo (ASCII)
contenente, in mezzo al testo del documento e racchiuse tra i caratteri < e >, alcune 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 linguaggio 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 file HTML vengono visualizzati come ipertesti, i file di immagini vengono visualizzati 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, normalmente esso chiederà all'utente che cosa fare.
130
Il tipo MIME (Multipurpose Internet Mail Extensions) è uno standard che è
stato proposto dai laboratori Bell Communications nel 1991 per estendere le possibilità 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, affinché 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
Estensione associata
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
Tipo MIME
Tipo di file
131
application/x-csh
application/x-dvi
application/hdf
application/x-latex
application/x-netcdf
application/x-sh
application/x-tcl
application/x-tex
application/x-texinfo
application/x-troff
application/x-troff-man
application/x-troff-me
application/x-troff-ms
application/x-waissource
application/x-bcpio
application/x-cpio
application/x-gtar
application/x-shar
application/x-sv4cpio
application/x-sv4crc
application/x-tar
application/x-ustar
application/zip
audio/basic
audio/x-aiff
audio/x-wav
image/gif
image/ief
image/jpeg
image/tiff
image/x-cmu-raster
image/x-portableanymap
image/x-portable-bitmap
132
Script C-Shell (UNIX)
File di testo dvi
File di dati
File LaTEX
File netCDF
Script Bourne Shell
Script Tcl
File Tex
File eMacs
File Troff
File Troff/macro man
File Troff/macro ME
File Troff/macro MS
dwg
dvi
hdf
latex
nc,cdf
dwg
tcl
tex
texinfo,texi
t,tr,troff
man
me
ms
Sorgente Wais
src
CPIO binario
CPIO Posix
Tar GNU
Archives Shell
CPIO SVR4n
CPIO SVR4 con CRC
File compresso tar
File compressi tar Posix
File compressi ZIP
File audio basici
File audio AIFF
File audio Wave
Immagini gif
Immagini exchange format
Immagini Jpeg
Immagini Tiff
Raster cmu
bcpio
cpio
gtar
shar
sv4cpio
sc4crc
tar
man
man
au,snd
aif,aiff,aifc
wav
man
ief
jpg,jpeg,jpe
tiff,tif
cmu
File Anymap PBM
pnm
File Bitmap PBM
pbm
image/x-portablegraymap
image/x-portable-pixmap
image/x-rgb
image/x-xbitmap
image/x-xpixmap
image/x-xwindowdump
multipart/x-zip
multipart/x-gzip
text/html
text/plain
text/richtext
File Graymap PBM
File Pixmap PBM
Immagine RGB
Immagini Bitmap X
Immagini Pixmap X
Immagini dump X Window
File archivio zip
File archivio GNU zip
File HTML
File texte senza messa in forma
File di testo rich
File di testo con separazione di
text/tab-separated-value
valori
text/x-setext
File di testo Struct
video/mpeg
Video MPEG
video/quicktime
Video QuickTime
video/msvideo
Video Microsoft Windows
video/x-sgi-movie
Video MoviePlayer
pgm
ppm
rgb
xbm
xpm
man
zip
gz,gzip
htm,html
txt,g,h,c,cc,hh,m,f90
rtx
tsv
etx
mpeg,mpg,mpe
qt,mov
avi
movie
Che cos'è e come è fatto un URL?
Come visto, per poter recuperare un qualsiasi oggetto posto in rete è necessario
conoscere:
1.
2.
Dove è situato (ossia il nome della macchina, il percorso sull'hard disk
della macchina e il nome del file);
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 Uniforme 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 solitamente http, ftp, telnet, news, mailto o file a seconda del protocollo
133
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 assume un valore standard che varia a seconda del protocollo scelto) è il numero della 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 afferrato 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 calcolatori che funzionano con il sistema operativo Unix; pertanto i nomeoggetto seguono 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.
2.
Le barre che compaiono negli URL sono diritte (cioè / ) e non rovesciate ( \ ) come quelle dell'MS-DOS!
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ò impedirvi 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 individuati dall'estensione .html o .htm) posto nella directory mkurth situata
nella directory radice (root) del computer www.cl.ais.net (ossia, il computer 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 file; 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 limitazione a tre caratteri!); se questo file c'è, esso viene letto come ipertesto (vista
134
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 sull'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, indirizzi contenenti ~ corrispondono solitamente a pagine scritte da singoli utenti nel
proprio tempo libero (home page), mentre gli indirizzi senza ~ si riferiscono solitamente 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 generalmente 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 accedere tramite il protocollo FTP usato in modo anonimo.
L'inserimento in un browser dell'URL di una directory con protocollo FTP provoca 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
135
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 Torino. Verranno presentati una serie di menu che permetteranno di scaricare file di
vario tipo.
mailto:bertola@athena.polito.it
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 successivamente spedito, seguendo il protocollo SMTP, all'utente bertola del computer 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 "nomemacchina" (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, senza usare la rete; in questo caso, l'indirizzo corrisponde al file inizio.htm posto nella directory C:\Doc di un PC con Windows. Si noti che l'indirizzo rispetta 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 tastiere 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 è sottinteso!
Sono stati presentati esempi relativi a tutti i metodi di accesso normalmente usati; in realtà, molti browser recenti utilizzano internamente altri metodi non standard per indicare altri tipi di risorse, che comunque l'utente non dovrebbe utilizzare 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-
136
tri programmi, ad esempio per la posta, o per il trasferimento di file, o per la lettura 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 necessarie 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 particolare:
•
•
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 ipertestuale 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 carattere #, 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 - normalmente - un
programma CGI, indica che la stringa seguente costituisce una serie di
argomenti da passare al programma suddetto: un caso tipico sono i programmi 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 ricercata 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 spazi, mentre spesso gli argomenti di ricerca posti dopo un punto interrogativo li contengono (si pensi ad esempio ad un nome e cognome, o a più
137
•
parole...): pertanto il + sostituisce gli spazi all'interno di questi argomenti.
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 generare 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 spedendo (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 vantaggi rispetto alle mailing list:
1.
2.
138
Per leggere o scrivere in un newsgroup non è necessario essere iscritti
ad esso;
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);
3.
I newsgroup sono facilmente accessibili semplicemente digitando un
URL, e comunque utilizzando il vostro browser (sebbene sia solitamente 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 articolo 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 newsgroup è formato da una serie di parole separate da punti; tuttavia, la "gerarchia" 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
bionet
comp
it
misc
news
rec
sci
soc
talk
Gruppi di discussione amatoriali
Discussioni sulla biologia a livello professionale
Gruppi di discussione sul computer
Gruppi di discussione in italiano
Gruppi di argomento vario
Informazioni e discussioni su Usenet stessa
Discussione sulle attività ricreative (sport, spettacolo...)
Discussioni scientifiche a livello professionale
Discussioni sociali e politiche
Dibattiti (spesso lunghi e inutili...)
139
Che cosa sono le FAQ
Le FAQ (Frequently Asked Questions) sono una raccolta delle domande più comuni su di un dato argomento e delle relative risposte. Normalmente sono collegate 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 ipertestuale, contenente tale raccolta. In questo modo, le persone meno esperte
dell'argomento possono "farsi una cultura di base" o anche solo trovare la risposta 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 inserite 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 mailserver@rtfm.mit.edu (provate a spedire a questo indirizzo un messaggio contenente nel corpo la sola parola help).
140
Qualcosa di simile esiste anche in Italia: il gruppo it.faq pubblica regolarmente 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 predisposto 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 propri 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 Email 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'oggetto a cui l'utente vuole accedere) assume il ruolo di server (servitore). Analogamente, 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 servitore". Per poter fare sì che i due computer dialoghino secondo uno qualsiasi dei
141
protocolli di alto livello descritti in precedenza (HTTP, FTP, TELNET...) è allora 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 protocollo 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 pubblico 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 connesso 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 questo motivo, se volete avere un programma di FTP da far girare sul vostro computer 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 meno 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 controllo del server, che esegue tutte le operazioni che il client richiede. In molti
protocolli questo dialogo viene mostrato all'utente tradotto sotto forma di comandi letterali: ad esempio molti programmi di posta elettronica permettono all'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 quantità 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 indicazione su come trattarli. Un elenco più completo di estensioni e tipi di file :
142
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 poterli usare, bisogna prima decomprimere il file con GZip / GUnzip 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 minore).
143
.wav
File audio ascoltabili con il Lettore Multimediale degli Accessori di Windows (o programmi migliori, se li avete...)
.au
File audio in formato standard Unix (le versioni recenti di Netscape li riproducono)
.avi
.mpg
.mov
"Film" (serie animata di immagini). Il formato MPEG è il migliore; lettori shareware per MPEG sono reperibili in rete. Il
formato MOV appartiene al programma QuickTime (originariamente per Macintosh, esiste anche per Windows).
Come posso trovare l'indirizzo E-mail o altre informazioni riguardo una persona?
Al momento, questo è uno dei punti dolenti della rete: non esistono sistemi completi e di facile uso per associare un nome ad un indirizzo di E-mail o ad altre informazioni 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 della 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 comunicazioni con persone di tale sottodominio. Netfind, infine, è un sistema ormai 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 permettono di cercare l'E-mail di persone di cui è noto il nome e viceversa. Si tratta comunque 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.
144
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 forma di nomeutente@nomemacchina. Il computer che va indicato con il nomemacchina è 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, anche se in inglese to finger viene usato tra gli utenti della rete con questo significato) risponderà alla persona che ha "suonato" con alcuni dati, tra cui il nome
completo dell'utente, se egli è attualmente collegato o no, nonchè tipicamente data e ora dell'ultimo collegamento e dell'ultima lettura della posta elettronica. Ciascun utente, inoltre, può fare in modo che ad una richiesta di Finger venga risposto 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 messaggio del tipo "No plan".
Fornendo a Finger un'indirizzo del tipo @nomemacchina (ossia senza nomeutente) viene invece presentata una lista di tutti gli utenti attualmente collegati 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 esempio 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 richiesta 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 potrete scoprire ad esempio osservando il percorso dei vostri dati mediante Traceroute: è 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 disabilitano questa possibilità per motivi di sicurezza. Per questo motivo, Finger è ormai
usato soltanto in congiunzione con aree Unix.
145
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
whois.ripe.net
whois.internic.net
nic.ddn.mil
Database italiano
Database europeo
Database mondiale
Database della rete dell'esercito statunitense
Il database WHOIS italiano può essere interrogato anche tramite WAIS (all'indirizzo wais.nis.garr.it, sia tramite un proprio cliente WAIS, sia collegandosi 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 è possibile soltanto con utenti di domini che siano stati censiti dal suo database; ciò è vero, 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'opzione per la ricerca viene richiesto di inserire il nome della persona cercata e le
146
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 possono essere parti di un nome di sottodominio (sostituendo eventuali punti con spazi; non può essere specificato il nome del computer vero e proprio), oppure parole vere e proprie, come ad esempio la città di residenza o il tipo o nome dell'organizzazione 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 esempio, se doveste ricercare l'indirizzo di E-mail dell'autore di questa guida, sapendo che si chiama Bertola e che studia in un Politecnico in Italia, potreste inserire 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 nella loro descrizione le chiavi specificate. Ad esempio, per il sottodominio del Politecnico di Torino NETFIND possiede la seguente descrizione:
polito.it (politecnico di torino, italy)
che effettivamente contiene sia politecnico sia it. Dopo questa fase, NETFIND 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, normalmente 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 collegamento diretto del proprio computer alla rete via telefono. Questo tipo di collegamento presenta difficoltà tecniche, in quanto le linee telefoniche, rispetto ai
normali cavi usati nelle reti locali di calcolatori, permettono velocità di trasmissione molto minori e risultano molto più "sporche", ossia provocano più facilmente 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.
147
La prima risposta a questo problema è il protocollo SLIP (Serial Line Internet
Protocol). L'efficienza del collegamento può essere migliorata sfruttando il protocollo CSLIP, ossia lo SLIP a cui è stato aggiunto l'algoritmo di compressione
di Van Jacobson, e che quindi, comprimendo i dati, permette una maggior velocità 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 username e password nel momento in cui si stabilisce il collegamento.
Lo SLIP è il primo sistema sviluppato, ma il PPP include anche alcune funzionalità più avanzate, come la negoziazione automatica per l'assegnazione dinamica
degli IP: mentre con gli accessi SLIP è necessario inserire a mano o leggere mediante 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 automatico, 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 è stato scelto come standard sia per Internet che per i sistemi Microsoft: di fatto, le
connessioni SLIP sono quasi sparite. Ad esempio, Windows 95 supporta direttamente 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 necessario eseguire in "sottofondo" un programma che si occupi di effettuare la
connessione telefonica (dial-up connection: difatti la parte di programma che esegue questa funzione è denominata dialer) e di trasmettere i dati sulla linea telefonica 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 livello" 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 telefono e quello del fornitore sono nella stessa rete urbana telefonica, altrimenti l'opportuna tariffa interurbana).
148
Quali pericoli corro mentre sono collegato?
La semplice conoscenza del vostro indirizzo IP numerico (che peraltro può essere individuato in vari modi, ad esempio esaminando l'header NNTP-PostingHost: dei vostri articoli di newsgroup o mediante una richiesta /WHOIS quando 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: sfruttando un bug di Windows 95 (un sistema operativo ben fatto...), basta un semplice Ping fatto in un certo modo per mandare in tilt il vostro PC. Questa operazione è 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 programma 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 indirizzo 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 richieste 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 ammettendo l'affidabilità dell'azienda da cui acquistate, il vostro numero di carta di credito - così come qualsiasi dato che voi inseriate in un modulo del WWW - viaggia 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 comunicati in modo cifrato - ad esempio, usando un protocollo di navigazione cifrato 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 collegate 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
149
avrà preso tutte le opportune precauzioni per garantire la sicurezza del pagamento. 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 automatica del sito ufficiale della multinazionale, l'aveva messa ad un indirizzo simile a quello del sito originale, e aveva pubblicizzato la pagina nei motori di ricerca. Gli utenti, senza prestare troppa attenzione, si erano quindi collegati con
quella pagina, anzichè con quella ufficiale (peraltro identica nell'aspetto), e avevano così fornito il proprio numero di carta di credito ad un malintenzionato. Insomma, 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 esistenza dagli elenchi dell'FBI". Inutile dire che in questo modulo bisognava inserire 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 elettronico, 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 proprio 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'indirizzo
https://home.netscape.com/
150
indica una connessione HTTP al sito home.netscape.com effettuata criptando 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 connessione di questo tipo anche il server del sito deve essere opportunamente attrezzato.
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 aggiunta una cifratura sulla base di chiavi RSA). In questo modo non è possibile intercettare 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 è posto l'account accetterà collegamenti SSH soltanto da un elenco di computer predefinito.
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 sono contenute in un file a parte, ad esempio LICENSE.TXT o REGISTER.TXT,
ma dovreste comunque trovare indicazioni nel file README. È quindi opportuno, prima ancora di installare il prodotto, leggere questo file per capire a quali
condizioni potrete usarlo. Alcuni programmi, comunque, vi presentano le condizioni 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 comunque vale anche per i programmi che non richiedono l'accettazione esplicita...)
Nel corso del tempo sono entrati nell'uso comune alcuni nomi particolari per indicare 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
151
2.
3.
4.
solo copiare e utilizzare il programma, ma anche modificarlo (spesso
nel pacchetto di distribuzione sono acclusi anche i sorgenti del programma), riutilizzarlo, inserirlo in altri programmi anche commerciali.
Freeware: questi programmi sono copiabili e utilizzabili gratuitamente
da chiunque, ma l'autore mantiene su di essi i propri diritti: il programma non può essere modificato e il codice non può essere utilizzato senza
il suo consenso.
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 mantiene i propri diritti: il programma non può essere modificato e il codice
non può essere utilizzato senza il suo consenso.
Shareware: questa è la categoria più grande, ed indica che il programma può essere copiato liberamente (molti autori incoraggiano a farlo)
ma può essere utilizzato esclusivamente allo scopo di valutarne la validità 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 periodo di tempo, e quindi deve essere cancellato;
2. Il programma è incompleto, e per poterne usare tutte le potenzialità deve essere acquistato (modalità anche detta crippleware);
3. Il programma "disturba" l'utente in vari modi (ad esempio costringendolo 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 nagware, in cambio l'autore provvederà - inviando un dischetto con un
nuovo archivio o una password - ad eliminare le limitazioni o le azioni
di disturbo.
152
Un caso particolare è quello del progetto GNU (la sigla GNU è definita "ricorsivamente": significa GNU's Not Unix), promosso dalla FSF (Free Software
Foundation). Si tratta di un lavoro collettivo, portato avanti da centinaia di programmatori, teso a creare un insieme di programmi gratuitamente disponibili in
rete, e insieme a diffondere la programmazione. I programmi realizzati nell'ambito di questo progetto sono posti sotto la cosiddetta GNU GPL (General Public
License), e possono essere distribuiti e utilizzati gratuitamente (come per il freeware) con in più l'obbligo di accludere alla distribuzione il codice dei programmi. Sotto licenza GNU sono disponibili programmi molto famosi, come il compilatore per il linguaggio C GCC e il programma Ghostscript per la lettura di file 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 CDROM, raccolte di software PD, freeware o shareware. Normalmente, difatti, le licenze di questi programmi prevedono che essi, sebbene di copia e uso parzialmente 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 tale da coprire esclusivamente le spese di pubblicazione (stampa dei CD, distribuzione...) più un piccolo margine. Tuttavia, acquistando una raccolta di questo tipo si acquista soltanto la possibilità di leggere e copiare gli archivi in essa contenuti; se essi contengono programmi shareware che si desidera utilizzare, bisognerà poi provvedere ad "acquistarli" in senso vero e proprio, registrandosi e corrispondendo 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 originale ma non i singoli file in esso contenuti).
Che cos'è Gopher? E Veronica?
Gopher è stato il primo tentativo di unificazione dei vari protocolli esistenti sulla 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-
153
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 Telnet o di altro tipo.
Questo servizio, dopo aver avuto un enorme "boom" al momento della sua ideazione, sta sparendo e venendo rimpiazzato dal sistema a ipertesti; tuttavia si possono 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 richiesta 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ò valere 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 viene 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. Apparentemente, questa può sembrare una perdita di tempo (e talvolta lo è, se il sistema non è ben studiato); tuttavia, l'operazione può presentare molti vantaggi:
ad esempio il proxy dispone solitamente di una propria "cache", nella quale memorizza tutti gli oggetti recuperati negli ultimi tempi; se un utente richiede di caricare un oggetto, ad esempio un ipertesto, che è già stato richiesto qualche tem-
154
po prima da un altro utente, e si trova quindi memorizzato sul proxy, esso provvede 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 protetta devono comunque passare e venire esaminati da quel computer, per cui tanto 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 richiesto è 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 recentemente proposto come principale strumento di sviluppo per applicazioni
pensate per funzionare su reti di calcolatori. Tramite questo linguaggio è possibile 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 Macintosh, 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 caratteristiche standardizzate.
D'altra parte, per ottenere una simile versatilità è stato necessario rinunciare a varie altre cose: Java è un linguaggio estremamente povero (il che, d'altra parte,
può anche essere un vantaggio), e soprattutto è interpretato invece che compilato. In parole povere, per eseguire un qualsiasi programma scritto in Java è necessario disporre di un altro programma (l'interprete) al quale "dare in pasto" il codice: difatti, questo programma deve occuparsi di realizzare le funzioni standard
della macchina virtuale sul particolare computer usato dall'utente. Per questo mo-
155
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 interpreti 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 è necessario disporre di Netscape Communicator 4.
Le caratteristiche "orientate alla rete" di Java rendono anche possibile la realizzazione di normali applicazioni (word processor, fogli di calcolo...) che vengono
governate dal computer dell'utente, ma eseguite su computer remoti, che funzionano da server; in questo caso il computer dell'utente potrebbe essere un terminale 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 essere 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-
156
mento della flessibilità per gli autori di pagine Web senza però richiedere l'acquisizione 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 superiore. Si tratta comunque di un linguaggio in forte evoluzione, per cui alcune caratteristiche sono supportate soltanto da versioni più recenti dei browser; sviluppando 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'ISO - 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 segnale prodotto dalla digitalizzazione di un'immagine o di un brano sonoro, permettendo 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à relativamente bassa (video di livello VHS, per intenderci), e per la registrazione su CD (CD-video);
MPEG-2 è invece mirato in generale alla trasmissione e memorizzazione 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.
157
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 applicazioni.
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 essere 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 ottiene 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'orecchio 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 largamente 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 tranquillamente 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 informazioni e di servizi disponibili gratuitamente su Internet. Mentre in passato l'accesso a Internet degli utenti aziendali era limitato ed avveniva tramite postazioni dedicate oppure tramite un gateway che convertiva i dati dal formato della rete locale 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 aziendale potranno usare i sistemi e i programmi della grande rete non solo per
158
navigare all'esterno, ma anche per la normale comunicazione interna; contemporaneamente, 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 potranno essere immediatamente inserite nel circuito aziendale.
Inoltre, è possibile sfruttare i normali canali di comunicazione di Internet, disponibili in modo sostanzialmente gratuito, per le trasmissioni tra le varie sedi dell'azienda, costruendo quindi, a bassissimo costo, quella che spesso viene chiamata 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 soprattutto 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 opportunamente 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 creati 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 utenti 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 necessaria una assoluta sicurezza negli accessi al server e una buona efficienza della rete.
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 possibilità 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 tradizionali reti di comunicazione, come quella telefonica, si preoccupavano di fornire 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 diverse e più servizi.
159
In parole povere, su una rete ISDN è possibile far viaggiare contemporaneamente, 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, permettendo di mandare avanti entrambe le comunicazioni. Per l'utente, comunque,
l'effetto è quello di più comunicazioni contemporanee, proprio come se esse avvenissero 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 velocità di trasmissione dai 2 Mb/s (per ciascun utente) in su. Reti di questo tipo richiedono 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 Italia. 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 compressa di buona qualità, con qualche Mb/s diventa (quasi) possibile realizzare applicazioni 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 spendere 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 qualità 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ò certo 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-
160
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 gestore della BBS (detto SysOp o System Operator) vuole mettere a disposizione degli 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 dall'archivio della BBS; la quantità precisa varia a seconda del "livello" di partecipazione 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 diretta 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 numerico e un nome letterale; normalmente, noto il nome Internet della BBS, ci si collega ad essa tramite Telnet; il computer remoto richiederà login e password, proprio 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'elettronica è 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 prodotti dalla Intel, ma negli ultimi anni sono stati immessi sul mercato
161
computer compatibili basati su processori di altri costruttori. Ovviamente, non è detto che un processore non-Intel sia per forza migliore o peggiore 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 (implementato 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 processore "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 internamente 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 vostro computer lavorino a tale frequenza: quella è la velocità soltanto delle 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 defunte: in questi processori, il computer lavorava internamente ad un certo numero di bit, ma comunicava con l'esterno a "blocchi" di metà di
questo numero di bit. Ad esempio il processore 386SX lavorava internamente 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 computer).
Poichè le esigenze di marketing non sono quelle della chiarezza, comunque, varie ditte hanno prodotto processori con caratteristiche leg-
162
germente diverse da quelle che il loro nome farebbe supporre... insomma, 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 meno 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 diverse. Tanto per chiudere, ecco una lista in ordine di potenza dei vari processori 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 Pentium...) 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.
3.
I coprocessori. Un coprocessore è un particolare chip che, una volta
montato, interagisce strettamente con il processore centrale, diventandone 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à sono state integrate direttamente nel processore, per cui i coprocessori matematici a parte si sono estinti.
La memoria RAM. La RAM (Random Access Memory) è la memoria
usata dal calcolatore per conservare i programmi e i dati con cui sta lavorando, per tutto il tempo per cui il computer rimane acceso. In realtà,
esistono altri tipi di memorie, come vedremo; tuttavia la RAM è fondamentale. Nella generazione dei 486, quasi tutti i programmi richiedevano 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 usavano 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-
163
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 invece i piedini su due file, e hanno quindi una forma a parallelepipedo.) Un
parametro importantissimo per l'efficienza della RAM è il tempo di attesa per accedere ad un dato memorizzato; le SIMM a 72 pin avevano
tempi dell'ordine dei 60 - 70 nanosecondi, mentre le DIMM hanno tranquillamente 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 sarà tutta occupata, difatti, il sistema operativo provvederà a scrivere temporaneamente sull'hard disk parte del suo contenuto, liberando così spazio per nuovi dati e programmi; quando sarà necessario ricominciare ad
usare il contenuto di memoria spostato sull'hard disk, verrà scritta sull'hard disk qualche altra parte della memoria, e quella precedente verrà
riletta nella RAM. Ovviamente, questo sistema funziona finchè l'accesso 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.
164
La memoria cache. Una cache (o memoria tampone) è una parte di
memoria molto veloce (come tempi di lettura e scrittura) che viene usata per trattare velocemente piccole quantità di dati: se devo trattare una
grossa quantità di dati memorizzati in una memoria lenta (come può essere 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 memoria è direttamente proporzionale alla velocità, la memoria cache è di estensione molto minore della RAM, tipicamente 128, 256 o 512 KB (kilobyte). 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.
5.
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.
La memoria di massa. Con questo termine si intendono tutte quelle
memorie di grandi dimensioni e capaci di conservare i dati a lungo anche a computer spento, ma di accesso molto più lento della RAM. L'esempio tipico è l'hard disk, la cui capacità influenza essenzialmente la
quantità di dati e di programmi che potete installare sul vostro computer. 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 dimensioni 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 comunicazioni con l'hard disk stesso.
Altri tipi di memoria di massa, a differenza dell'hard disk, sono rimovibili, ossia possono essere facilmente estratti e portati in giro, e possono
essere utilizzati dovunque vi sia un lettore. Il più comune tipo di memoria di massa rimovibile è attualmente il floppy disk, nel formato universale 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 efficientissimo registratore a cassette). Negli ultimi anni, tuttavia, a causa dell'insufficiente 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 proposito 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-
165
te). Stanno cominciando a diffondersi i masterizzatori, ossia apparecchi 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 cartucce rimovibili di capacità che va da qualche decina di MB al GB, utilizzabili 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 diffusione 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 programma 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 obbligatoriamente essere presente (altrimenti non potreste vedere un bel niente sul vostro
monitor: la sua gestione è affidata a questa scheda). Alcuni costruttori, comunque, 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 sostituzione (operazione peraltro raramente necessaria, a meno di guasti).
Fino a qualche anno fa, le schede video rispettavano alcuni standard (CGA, EGA, 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.
166
Ciascuna scheda video è caratterizzata in generale dalle risoluzioni visualizzabili. 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 colori diversi che possono essere mostrati contemporaneamente sullo schermo, e
viene talvolta dato sotto forma di numero di bit, nel qual caso il numero dei colori è 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 diviso 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 scheda 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 risoluzione. 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 risoluzioni 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, accoppiando 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 è sufficientemente rapida, si riesce a creare l'illusione della presenza di entrambe le righe. 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 adotta l'interlacciamento, ed è bene informarsi all'atto dell'acquisto su quali siano le
risoluzioni interlacciate.
167
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 Gravis 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ò registrare suono mentre ne riproduce - o full duplex - e in questo caso può registrare 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'utente fornisce a Traceroute il nome di un computer remoto, il programma spedisce ad esso un particolare pacchetto di dati, che provoca la spedizione di un messaggio interpretabile come segnale di "ricevuto" da ciascuno dei computer incontrati lungo il percorso. In questo modo, il programma restituisce all'utente l'elenco 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
2
3
4
5
215 ms 232 ms
162 ms 213 ms
187 ms 423 ms
*
*
*
304 ms 297 ms
168
234 ms dial02.dialup.csi.it [158.102.23.254]
526 ms csi-policy.csi.it [158.102.255.62]
178 ms 192.168.255.62
Request timed out.
221 ms 130.192.80.1
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 riportati 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 aspetterebbe: difatti il tempo di risposta è fortemente influenzato anche dalle prestazioni 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).
169
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 informazioni 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 catena, 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 rappresentano 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 è visibile 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 tutela 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'informazione.
Quali Proxy Server scelgo ?
I proxy sono classificati in base alla loro velocità e soprattutto livello di anonimato che restituiscono:
•
170
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-
•
•
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 mittente.
Proxy di tipologia Anonimus ( proxy anonimi ) sono server proxy meno veloci dei trasparent, ma che consentono un livello discreto di anonimato, ma con particolari tecniche è possibile comprendere che si sta
utilizzando un proxy quindi in teoria si potrebbe bloccare l'accesso al sito, 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 consentono un ottimo livello di anonimato, molto difficili da essere individuati come proxy.
Usare un proxy server
Il proxy server è lo strumento migliore per navigare in Internet in modo anonimo, 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 solamente 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.
171
Quindi, solamente un computer che naviga da dietro un proxy non è identificabile 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 (volontariamente 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. Riavviando Explorer, adesso tutto quello che faremo in Internet passerà attraverso il
server proxy.Il che vuol dire che se andremo in chat, spediremo posta… qualunque 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à leggermente 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 transazioni attraverso molti nodi della rete Internet, in modo che nessun singolo punto 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/comeinstallare-e-navigare-anonimi-con-tor-utilizzando-firefox-video-by-shor/
172
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)
173
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 problemi 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
174
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
Pag 122 servizi e connessioni (introduzione a Internet)
Pag.128
INTERNET
Come
viene
HTTP e HTML
individuato
univocamente
propri
ciascun
messaggi
computer
dal
nella
server
rete.
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?
175
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
176