CAMBIA STILE

CAMBIA TEXTURE

CAMBIA COLORE

I LIVELLI DI SESSIONE E DI PRESENTAZIONE



SERVIZI DEL LIVELLO DI SESSIONE

Il compito più importante di questo livello è quello di dare la possibilità ai propri utenti di stabilire le cosiddette sessioni logiche di lavoro. Una sessione può essere utilizzata, ad esempio, per il trasferimento di file o per operazioni finanziarie che necessitano di accedere dal proprio PC di casa al computer di una banca. Si consideri, ad esempio, il caso delle agenzie per le prenotazione dei voli aerei, quando l'agente locale interroga il server remoto della compagnia, apre una sessione di lavoro e al termine effettua la chiusura.

Un altro servizio di questo strato è la sincronizzazione che serve a stabilire punti di ripristino per ritrovare una situazione di partenza in caso di problemi in fase di comunicazione.

SERVIZI DEL LIVELLO DI PRESENTAZIONE

Ogni computer può avere il proprio modo di rappresentare i dati al proprio interno, occorrono dunque delle opportune conversioni per fare in modo che il significato dell'informazione trasportata si conservi e che i computer possano comprendere tale significato. Occorre quindi codificare i dati in modo che possano essere trasmessi e decodificarli in ricezione secondo la struttura adottata dalla stazione destinataria. Per far comunicare più sistemi che utilizzano codifiche diverse per i dati, è possibile affidare quindi il compito di conversione al trasmettitore o al ricevitore.

Le entità di questo livello si occupano anche della compressione dei dati, cioè la modalità di ridurre i bit necessari a immagazzinare e trasmettere l'informazione cercando di lasciare inalterata l'informazione ad essi associata.

ALGORITMI DI COMPRESSIONE

È possibile suddividere le tecniche di compressione in due categorie: lossy, che utilizzano processi con perdita di informazioni, e lossless, che utilizzano processi senza perdita di informazioni (sono detti anche non distruttivi). In quest'ultimo caso, l'informazione decompressa è esattamente identica a quella prima della compressione, mentre nel primo caso ciò non è più vero.

Esistono delle applicazioni in cui la perdita di alcune informazioni poco rilevanti può risultare non drammatica se viene fatta una scelta opportuna sulle informazioni da "tagliare". Ad esempio, se si comprime una brano audio con la codifica MP3, non vengono memorizzati i suoni che hanno frequenza che non rientra nella banda in cui è sensibile l'orecchio umano, pertanto è possibile ridurre lo spazio occupato dall'informazione, in termini di bit, senza una perdita eccessiva della qualità del suono. Esistono delle applicazioni, invece, per le quali non è accettabile la perdita di informazioni, è sufficiente pensare alla compressione di testi, per cui la perdita potrebbe comportare la mancanza di leggibilità. In questi casi è adottata la compressione lossless (ad esempio nei formati ZIP, RAR, ecc..).

Tali compressioni possono adottare algoritmi che si basano sulla misura della frequenza con cui si presentano i simboli da codificare: in un testo italiano le lettere "Z" e "Q" si presentano con probabilità minore rispetto alla lettera "A", mentre in un testo inglese la lettera "E" si presenta con frequenza cento volte maggiore rispetto alla lettera "Q". È possibile allora associare ai simboli più comuni, quelli che si presentano con maggiore frequenza, un codice più breve rispetto a quello adottato per i simboli meno comuni.

A quest'idea s'ispira uno degli algoritmi di compressione più diffusi, noto come algoritmo di Huffman:

  • 1) si predispone la tabella dei simboli da comprimere con la frequenza di comparsa relativa a ciascuno di essi. Se, ad esempio, si vuole comprimere la frase "Simone Sbordone":

    Simb.
    Freq.
    Simb.
    Freq.
    Simb.
    Freq.
    Simb.
    Freq.
    B
    1
    I
    1
    O
    3
    Spazio
    1
    D
    1
    M
    1
    R
    1
    E
    2
    N
    2
    S
    2

    • 2) per codificare la frase occorrerebbero, con una codifica ASCII ad 8 bit, un totale di 120 bit;
    • Il secondo passo dell'algoritmo consiste nel costruire un albero ascendente binario, ordinato in base alla frequenza, così come riportato nell'esempio in alto.

    • 3) si predispone inizialmente una lista, ordinata in base alla frequenza, dei caratteri che costituiranno i nodi dell'albero. L'albero binario si costruisce partendo dalle foglie verso la radice, unendo per primi tra loro i due caratteri con frequenza minore per dare origine al nodo genitore che avrà il valore della somma delle due frequenze; man mano che si uniscono, a due a due, i nodi con minor frequenza, questi sono depennati dalla lista. In questo modo i nodi (caratteri) che hanno frequenza maggiore si troveranno più in alto, verso la radice, rispetto a quelli con frequenza più bassa.
      Costruito l'albero, può essere effettuata la codifica di ogni carattere partendo dalla radice ed assegnando un bit "0" per ogni ramificazione a sinistra ed un bit "1" per ogni ramificazione a destra incontrata per raggiungere il carattere. Ad esempio, per raggiungere il carattere "e" dalla radice, viene effettuata prima una ramificazione a sinistra ("0") e poi due diramazioni consecutive a destra ("11"), pertanto la codifica del carattere "e" sarà "011". Nella seguente tabella sono riportate le codifiche di tutti i caratteri della frase ottenute dall'albero.


    Simb.
    Codif.
    Simb.
    Codif.
    Simb.
    Codif.
    Simb.
    Codif.
    B
    0000
    I
    0010
    O
    11
    Spazio
    0101
    D
    0001
    M
    0011
    R
    0100
    E
    001
    N
    100
    S
    101


    La codifica dell'intera frase è dunque composta da 48 bit, che rispetto ai 120 bit necessari per una normale codifica ASCII, equivale ad una compressione del 40 %.

    CRITTOGRAFIA

    La sicurezza delle reti comprende una molteplicità di problematiche quali la riservatezza dei messaggi spediti, i controlli sui servizi in rete, il riconoscimento dell'identità personale nella rete ecc... Gli attacchi più comuni sono i worm, la scansione delle porte e quelli basati sul rifiuto del servizio:

    • - un worm è un processo che genera continuamente copie di se stesso mettendo in crisi le risorse del sistema;
    • - la scansione delle porte è un metodo impiegato per tenere sotto controllo i punti deboli di un sistema;
    • - il rifiuto del servizio impedisce in qualche modo l'utilizzo legittimo del sistema.

    È possibile proteggere il sistema attraverso le tecniche di protezione come la crittografia dei dati, che permette di modificare l'informazione da trasmettere attraverso un codice opportuno.
    Un algoritmo di cifratura è il "Cifrario di Cesare", un particolare algoritmo in cui una lettera dell'alfabeto viene sostituita con un'altra a tre posti da esso: a = e, b = f ... z = c.

    Un altro algoritmo di cifratura è il "Cifrario a trasposizione". Con tale metodo si utilizza una matrice la cui prima riga corrisponde alla chiave che non deve avere lettere ripetute. Nelle altre righe si scrive, in orizzontale, il testo in chiaro da cifrare. Le lettere che compongono la chiave indicano, prese in ordine alfabetico, l'ordine in cui devono essere considerate le colonne per la trasposizione del testo. Le sequenze così ottenute vengono unite per avere il testo cifrato.



    Chiave di codifica :

    Carattere di riempimento:

    Testo cifrato:

    Un altro algoritmo di cifratura è la "Crittografia simmetrica". Con questa cifratura viene utilizzata un'unica chiave che serve sia a codificare che a decodificare il messaggio. Uno degli algoritmi che sfruttano la crittografia a chiave simmetrica, è l'algoritmo DES (Data Encryption Standard) con chiave a 56 bit. Il grosso problema di questo approccio è però la distribuzione delle chiavi: se due interlocutori vogliono usare un algoritmo di questo tipo per comunicare in modo sicuro, devono prima accordarsi, in qualche modo, sulla chiave, per esempio vedendosi di persona.



    Un ultimo tipo di algoritmo di cifratura è la "Crittografia asimmetrica a chiave pubblica". Con algoritmi di questo tipo ognuno ha due chiavi: una pubblica da distribuire a tutti quelli con cui si vuole comunicare, e una privata da tenere segreta. Ciò che viene cifrato con la chiave pubblica può essere decifrato solo con la chiave privata corrispondente. In questo modo non c'è più il problema di comunicare segretamente la chiave, perché questa è nota a tutti. Facendo un esempio pratico, se Alice vuole spedire un messaggio a Bob e non vuole che altri all'infuori di Bob possano leggerlo, Alice cercherà sull'elenco la chiave pubblica di Bob e con quella potrà cifrare il messaggio. Essendo Bob l'unico a possedere la chiave inversa, sarà anche l'unico a poter decifrare il messaggio, che rimarrà così segreto per tutti gli altri, compresa Alice. Un algoritmo che si basa su questa cifratura è l'RSA (il cui nome riprende le iniziali dei creatori di tale algoritmo).

    Per semplificare il funzionamento immaginiamo che A debba spedire un messaggio segreto a B:

    • 1. B sceglie due numeri primi molto grandi (per esempio di 300 cifre) e li moltiplica (impiegando meno di un secondo);
    • 2. B invia il numero che ha ottenuto ad A. Chiunque può vedere questo numero;
    • 3. A usa questo numero per cifrare il messaggio;
    • 4. A manda il messaggio cifrato a B, chiunque può vederlo, ma non decifrarlo;
    • 5. B riceve il messaggio e utilizzando i due fattori primi che solo lui conosceva, lo decifra.




    SICUREZZA DELLA RETE

    Ogni connessione apre la porta a molte applicazioni che spesso sono finalizzate ad arrecare danni. Queste applicazioni possono essere virus, worm, spam, trojan, spyware o dialer:

    • - gli spyware sono programmi che una volta attivati, forniscono a sistemi remoti, attraverso Internet, informazioni sull'utente, sul software in uso, sulle abitudini di navigazioni ed altro. A questa categoria appartengono:

      • - i cookie: piccoli file di testo usati per tenere traccia delle preferenze dell'utente durante la navigazione nel sito. Spesso i cookie non vengono utilizzati in modo idoneo, ma permettono l'accesso da parti di terzi ad informazioni sull'utente;

      • - gli Adware (ADvertisement softWARE): programmi installati dall'utente con i quali si accetta la visualizzazione di banner pubblicitari. Spesso gli adware non si limitano alla visualizzazione dei banner, ma raccolgono informazioni sull'utente;

      • - i Key Logger sono programmi che tengono traccia di tutte le attività svolte in un computer per mezzo della tastiera e possono quindi catturare codici delle password, numeri delle carte di credito e quanto altro viene digitato;

    • - i dialer sono programmi che una volta entrati in esecuzione disconnettono l'utente dal provider ed effettuano un collegamento con un numero diverso da quello con cui si sta operando. In genere il nuovo collegamento è a pagamento.