Sistemi e Reti

I sistemi e le reti sono concetti fondamentali in vari campi, tra cui l’informatica, la tecnologia, la biologia e le scienze sociali. Anche se il significato di questi termini può variare a seconda del contesto, entrambi si riferiscono all’organizzazione di componenti interconnessi che lavorano insieme per un obiettivo comune

livello delle applicazioni

Architettura delle applicazioni di rete

Le architetture delle applicazioni di rete descrivono il modo in cui i componenti di un’applicazione sono organizzati e come interagiscono attraverso una rete. Ci sono diverse tipologie di architetture, ognuna con caratteristiche distintive per soddisfare esigenze specifiche. Ecco una breve panoramica delle principali:

1. Architettura Client-Server:

L’architettura Client-Server è la struttura di rete più comune, dove le funzioni dell’applicazione sono distribuite tra due entità principali: client e server.

  • Client: È il dispositivo che invia richieste al server. Può essere un computer, uno smartphone o un altro dispositivo in grado di connettersi a una rete. Il client solitamente non gestisce dati in modo autonomo, ma si affida al server per ricevere risposte.

  • Server: È il sistema che elabora le richieste ricevute dal client e restituisce i risultati. Il server può essere un computer centralizzato con elevate risorse di elaborazione e archiviazione, come un database server o un web server.

Flusso di comunicazione:

  • Il client invia una richiesta al server attraverso una rete (Internet o intranet).
  • Il server riceve la richiesta, la elabora e restituisce i dati al client.
  • Il client riceve i dati e li presenta all’utente.

Caratteristiche:

  • Centralizzazione: La gestione dei dati e delle risorse è centralizzata sul server, che può garantire maggiore sicurezza, controllo e affidabilità.
  • Scalabilità: Il server può essere potenziato per supportare un numero maggiore di client, ma la scalabilità orizzontale (aggiungere più server) può richiedere complessità aggiuntive.
  • Manutenzione: La manutenzione e l’aggiornamento dell’applicazione sono centralizzati sul server, semplificando la gestione.
  • Esempi: Applicazioni web (browser e server web), sistemi di gestione database, servizi cloud.

Limitazioni:

  • Dipendenza dal server: Se il server va offline o ha problemi, tutti i client che dipendono da esso ne risentono.
  • Congestione del server: Un server troppo sollecitato può diventare un collo di bottiglia, riducendo le prestazioni.

2. Architettura Peer-to-Peer (P2P):

L’architettura Peer-to-Peer è un modello distribuito dove ogni nodo (peer) è sia client che server, consentendo a ciascun dispositivo di scambiarsi dati direttamente con altri senza un server centrale.

  • Peer: Ogni dispositivo nella rete P2P è un “peer”, che può inviare, ricevere e gestire richieste e risposte. Ogni peer è indipendente e ha uguali diritti, a differenza dei client nella struttura Client-Server.

Flusso di comunicazione:

  • I peer si connettono direttamente tra di loro per scambiare dati o risorse, spesso attraverso una rete distribuita.
  • Non esiste un server centrale che gestisce le comunicazioni: ogni peer gestisce autonomamente le richieste.

Caratteristiche:

  • Decentralizzazione: Non c’è un server centrale, quindi il carico di lavoro è distribuito tra tutti i peer.
  • Resilienza: Se un peer fallisce, gli altri possono continuare a funzionare, e la rete non subisce interruzioni significative.
  • Scalabilità: La rete P2P è altamente scalabile, poiché ogni nuovo peer aggiunge risorse e capacità.
  • Esempi: File sharing (es. BitTorrent), chat decentralizzate, blockchain, applicazioni di streaming peer-to-peer.

Vantaggi:

  • Affidabilità: Poiché non c’è un server centrale, la rete può continuare a funzionare anche se alcuni peer si disconnettono.
  • Scalabilità: Man mano che nuovi peer entrano nella rete, la capacità di carico aumenta senza richiedere infrastrutture aggiuntive.

Limitazioni:

  • Gestione della sicurezza: Senza un controllo centrale, può essere più difficile garantire la sicurezza e proteggere la rete da attacchi.
  • Prestazioni: Le prestazioni possono dipendere dalla disponibilità e dalla qualità della connessione dei singoli peer, che potrebbero non avere le stesse risorse di un server centrale.

Il File Transfer Protocol (FTP) è un protocollo di rete utilizzato per trasferire file tra un client e un server su una rete TCP/IP. Funziona tramite due canali: uno per il controllo (porta 21) e uno per i dati (dinamico). FTP permette il trasferimento bidirezionale di file (upload e download) e può operare in modalità attiva o passiva. Supporta l’autenticazione tramite nome utente e password, ma offre scarsa sicurezza, poiché trasmette i dati in chiaro. Per una maggiore sicurezza, si usano varianti come FTPS o SFTP, che criptano la comunicazione.

Domain Name System (DNS) è un protocollo che traduce i nomi di dominio (es. www.example.com) in indirizzi IP, permettendo ai client di connettersi ai server web. Funziona tramite server DNS che risolvono le richieste e restituiscono l’indirizzo IP corrispondente. I principali record DNS includono A (IPv4), AAAA (IPv6) e MX (posta). DNS è essenziale per la navigazione su Internet e offre scalabilità e affidabilità, ma può essere vulnerabile a attacchi come DNS spoofing, per cui esistono versioni sicure come DNSSEC

Il servizio di posta elettronica (email) consente l’invio, la ricezione e la gestione dei messaggi tramite Internet. Utilizza protocolli come SMTP per inviare messaggi e IMAP o POP3 per riceverli. Il client di posta elettronica permette agli utenti di gestire la propria posta, mentre i server di posta gestiscono l’invio e la ricezione. I principali vantaggi includono la comunicazione rapida, l’archiviazione e l’accesso remoto, ma presenta limitazioni come la sicurezza e la gestione della capacità di archiviazione.

HTTP (HyperText Transfer Protocol) è un protocollo di comunicazione utilizzato per trasferire dati tra un client (come un browser) e un server web. Funziona tramite richieste e risposte, con metodi come GET (per ottenere risorse) e POST (per inviare dati). È stateless, cioè ogni richiesta è indipendente dalle precedenti. La versione sicura di HTTP è HTTPS, che usa crittografia per proteggere i dati. HTTP è semplice, scalabile e ampiamente supportato, ma non offre sicurezza intrinseca, motivo per cui si preferisce HTTPS per la protezione dei dati.

VLAN

Le VLAN (Virtual Local Area Network) sono una tecnologia di rete che permette di segmentare logicamente una rete fisica in più reti virtuali indipendenti. Questo migliora la sicurezza, la gestione del traffico e riduce il dominio di broadcast.

Caratteristiche delle VLAN:
  • Isolamento del traffico: Host in VLAN diverse non possono comunicare direttamente senza un router.

  • Riduzione del broadcast: Ogni VLAN è un dominio di broadcast separato.

  • Flessibilità: I dispositivi possono essere assegnati a VLAN indipendentemente dalla loro posizione fisica.

  • Tipi di VLAN:

    • VLAN di dati (per traffico utente)

    • VLAN di gestione (per amministrazione)

    • VLAN nativa (usata per traffico non taggato in trunking)


Protocollo VTP (VLAN Trunking Protocol)

Il VTP è un protocollo Cisco proprietario che sincronizza le informazioni delle VLAN tra switch nella stessa rete, semplificando la gestione.

Modalità VTP:
  1. Server: Può creare, modificare ed eliminare VLAN. Propaga le modifiche agli altri switch.

  2. Client: Riceve gli aggiornamenti VLAN dal server ma non può modificarle.

  3. Trasparente: Non partecipa al dominio VTP ma inoltra i messaggi VTP. Può gestire VLAN localmente.

Problemi comuni del VTP:
  • Se uno switch in modalità Server con una revisione più alta si connette, può sovrascrivere le VLAN esistenti.

  • Soluzione: Usare password VTP o impostare switch non critici in modalità Trasparente.

Nota: Oggi molti preferiscono disabilitare VTP e configurare manualmente le VLAN per maggiore controllo.


Inter-VLAN Routing

Poiché le VLAN isolano il traffico, per far comunicare dispositivi in VLAN diverse serve un router o uno switch Layer 3. Questo processo è chiamato Inter-VLAN Routing.

Metodi principali:
  1. Router-on-a-Stick:

    • Un router viene connesso a uno switch via un collegamento trunk.

    • Le interfacce logiche (subinterfacce) sul router sono associate a VLAN diverse.

    • Esempio di configurazione (Cisco):

      interface GigabitEthernet0/0.10
       encapsulation dot1Q 10  # Tag VLAN 10
       ip address 192.168.10.1 255.255.255.0
  2. Switch Layer 3:

    • Switch avanzati (es. Cisco Catalyst) possono fare routing tra VLAN senza router esterno.

    • Si abilita l’SVNI (Switch Virtual Interface) per ogni VLAN:

      interface Vlan10
       ip address 192.168.10.1 255.255.255.0
Protocolli utilizzati:
  • IEEE 802.1Q: Standard per il trunking (aggiunge tag VLAN ai frame Ethernet).

  • Dot1Q: Formato di incapsulamento per il traffico inter-VLAN.

Crittografia

Principi di Crittografia

La crittografia è la scienza che rende un messaggio (testo in chiaro) illeggibile a chi non è autorizzato, trasformandolo in un testo cifrato attraverso algoritmi matematici.

Obiettivi fondamentali (CIA Triad):

  • Riservatezza (Confidentiality): Solo il destinatario autorizzato può leggere il messaggio.

  • Integrità (Integrity): Il messaggio non può essere alterato senza essere rilevato.

  • Disponibilità (Availability): I dati devono essere accessibili agli utenti autorizzati.

  • Autenticazione (Authentication): Verifica dell’identità del mittente/destinatario.

  • Non ripudio (Non-repudiation): Impossibilità di negare l’invio/ricezione di un messaggio.

Tipi di crittografia:

  • Crittografia simmetrica: Usa la stessa chiave per cifrare e decifrare (es. AES, DES).

  • Crittografia asimmetrica: Usa una coppia di chiavi (pubblica e privata) (es. RSA, ECC).

  • Funzioni di hash: Trasformazione irreversibile per verificare l’integrità (es. SHA-256, MD5).


Sicurezza nelle Reti

La crittografia è essenziale per proteggere i dati trasmessi in rete. Ecco alcuni protocolli e tecniche:

Protocolli crittografici nelle reti:

  • SSL/TLS: Protegge le comunicazioni web (HTTPS, email, VPN).

  • IPSec: Crittografia a livello di rete (usato in VPN).

  • SSH: Accesso sicuro a dispositivi remoti.

  • WPA2/WPA3: Crittografia per reti Wi-Fi.

Minacce comuni:

  • Eavesdropping: Intercettazione dei dati non cifrati.

  • Man-in-the-Middle (MITM): Attaccante modifica/scambia chiavi.

  • DoS/DDoS: Attacchi che compromettono la disponibilità.


Crittografia e Crittoanalisi

  • Crittografia: Processo di rendere illeggibile un messaggio (cifratura) e ripristinarlo (decifratura).

  • Crittoanalisi: Studio delle tecniche per rompere i sistemi crittografici senza avere la chiave.

Tipi di attacchi crittoanalitici:

  1. Brute Force: Provare tutte le possibili chiavi.

  2. Attacco a dizionario: Usare parole comuni come chiavi.

  3. Attacco a testo in chiaro noto: L’attaccante conosce parti del testo originale.

  4. Attacco a testo cifrato noto: L’attaccante analizza solo il testo cifrato.

  5. Side-Channel Attack: Sfrutta debolezze nell’implementazione (es. consumo di energia, tempo di esecuzione).

Robustezza di un algoritmo:

  • Dipende dalla lunghezza della chiave (es. AES-256 è più sicuro di AES-128).

  • Vulnerabilità agli attacchi quantistici (Shor’s algorithm minaccia RSA e ECC).


Cifrari e Chiavi

Cifrari (Algoritmi di cifratura):

  • Simmetrici (veloci, usati per grandi volumi di dati):

    • AES (Advanced Encryption Standard): Standard moderno (128/192/256 bit).

    • DES (Data Encryption Standard): Obsoleto per chiavi corte (56 bit).

    • 3DES: Triplo DES, più sicuro ma lento.

  • Asimmetrici (lenti, usati per scambio chiavi e firme digitali):

    • RSA: Basato sulla fattorizzazione di numeri primi.

    • ECC (Elliptic Curve Cryptography): Più efficiente con chiavi più corte.

    • Diffie-Hellman: Scambio sicuro di chiavi su canali non sicuri.

Gestione delle chiavi:

  • Key Exchange: Protocolli come Diffie-Hellman o RSA per scambiare chiavi simmetriche.

  • Key Storage: Le chiavi private devono essere protette (es. HSM – Hardware Security Module).

  • Key Rotation: Cambio periodico delle chiavi per limitare i danni in caso di compromissione.


Esempio di flusso crittografico (HTTPS):

  1. Il client richiede una connessione sicura al server.

  2. Il server invia un certificato digitale (con chiave pubblica).

  3. Il client verifica il certificato e genera una chiave simmetrica (es. AES).

  4. La chiave simmetrica viene cifrata con la chiave pubblica del server e inviata.

  5. Server e client comunicano usando la crittografia simmetrica (veloce).

Crittografia Simmetrica

Generalità

  • Definizione: Utilizza una sola chiave (segreta) sia per cifrare che per decifrare.

  • Vantaggi:

    • Elevata velocità (ideale per grandi volumi di dati).

    • Minore overhead computazionale rispetto all’asimmetrica.

  • Svantaggi:

    • Problema dello scambio sicuro della chiave (key distribution problem).

    • Non offre non ripudio (entrambe le parti condividono la stessa chiave).

Algoritmi principali

DES (Data Encryption Standard)
  • Lunghezza chiave: 56 bit (obsoleta per attacchi brute-force).

  • Blocchi: 64 bit.

  • Modalità operative: ECB, CBC, CFB, OFB.

  • Debolezze: Vulnerabile a attacchi a testo chiaro noto e differential cryptanalysis.

3DES (Triple DES)
  • Funzionamento: Applica DES tre volte (Cifra-Decifra-Cifra) con 2 o 3 chiavi.

  • Lunghezza chiave effettiva: 112 o 168 bit.

  • Usi: Bancari (es. ATM), sostituito da AES in molte applicazioni.

IDEA (International Data Encryption Algorithm)
  • Lunghezza chiave: 128 bit.

  • Blocchi: 64 bit.

  • Usato in: PGP (Pretty Good Privacy) per la cifratura email.

  • Sicurezza: Resistente a crittoanalisi differenziale/lineare.

AES (Advanced Encryption Standard)
  • Standard moderno (NIST, 2001).

  • Lunghezza chiave: 128, 192, o 256 bit.

  • Blocchi: 128 bit.

  • Algoritmo: Rijndael (sostituzioni, permutazioni, mix di colonne).

  • Robustezza: Resistente a attacchi side-channel se ben implementato.

Crittografia Asimmetrica

Generalità

  • Definizione: Usa due chiavi (pubblica e privata).

    • Chiave pubblica: Per cifrare o verificare firme.

    • Chiave privata: Per decifrare o firmare.

  • Vantaggi:

    • Risolve il problema dello scambio chiavi.

    • Abilita firme digitali e non ripudio.

  • Svantaggi:

    • Lenta (1000x più lenta della simmetrica).

    • Richiede gestione certificati (PKI).

Algoritmi principali

  • RSA: Basato sulla fattorizzazione di numeri primi grandi (chiavi tipiche: 2048/4096 bit).

  • ECC (Elliptic Curve Cryptography): Stessa sicurezza di RSA con chiavi più corte (es. 256 bit).

  • Diffie-Hellman: Scambio sicuro di chiavi su canali non sicuri.

Certificati e Firma Digitale

Generalità

  • Certificato digitale: Documento elettronico che associa una chiave pubblica a un’identità (es. persona, server).

  • Autorità di Certificazione (CA): Ente fidato che emette certificati (es. DigiCert, Let’s Encrypt).

Firma Digitale

  • Funzionamento:

    1. Il mittente calcola l’hash del messaggio.

    2. Cifra l’hash con la sua chiave privata (= firma).

    3. Il destinatario decifra la firma con la chiave pubblica del mittente e verifica l’hash.

  • Standard:

    • RSA-PSS, ECDSA (per firme basate su elliptic curve).

    • DSA (obsoleto).

Certificati e Riferimenti Normativi

Standard e Formati
  • X.509: Standard ITU-T per certificati (usato in SSL/TLS, S/MIME).

  • Estensioni:

    • SAN (Subject Alternative Name): Multipli domini in un certificato.

    • EV (Extended Validation): Verifica rigorosa dell’identità.

Normative
  • eIDAS (UE): Regolamento sui servizi fiduciari (firme elettroniche qualificate).

  • GDPR: Protezione dati personali in contesti crittografici.

  • NIST SP 800-57: Linee guida per la gestione delle chiavi.

Esempi d’uso
  • SSL/TLS: Certificati per siti web (HTTPS).

  • S/MIME: Firma e cifratura email.

  • Code Signing: Firma di software (es. driver Windows).

Sicurezza della rete

Generalità sulla Sicurezza delle Reti

La sicurezza delle reti è l’insieme di politiche, tecnologie e procedure progettate per proteggere l’infrastruttura di rete da accessi non autorizzati, attacchi informatici e perdita di dati.

Obiettivi principali (CIA Triad)

  • Confidenzialità: Garantire che i dati siano accessibili solo agli utenti autorizzati.

  • Integrità: Assicurare che i dati non vengano alterati in modo non autorizzato.

  • Disponibilità: Mantenere i servizi e i dati accessibili quando richiesto.

Approcci alla sicurezza

  • Prevenzione: Firewall, crittografia, autenticazione.

  • Rilevamento: IDS/IPS (Intrusion Detection/Prevention Systems).

  • Risposta: Piani di disaster recovery e incident response.


Sicurezza in un Sistema Informatico

La sicurezza informatica si basa su livelli di protezione multipli:

Livelli di difesa

  1. Fisico: Controllo accessi ai data center (badge, biometrica).

  2. Logico:

    • Autenticazione (password, MFA, certificati digitali).

    • Autorizzazione (controllo degli accessi, RBAC).

  3. Reti: Segmentazione VLAN, VPN, firewall.

  4. Applicativo: Patch di sicurezza, sandboxing.

Principi fondamentali

  • Least Privilege: Concedere solo i permessi necessari.

  • Defense in Depth: Stratificare le difeSe (es. firewall + IDS + crittografia).


Valutazione dei Rischi

Processo per identificare e mitigare le vulnerabilità:

Fasi della valutazione

  1. Identificazione delle risorse (dati, server, applicazioni critiche).

  2. Analisi delle minacce (malware, phishing, insider threat).

  3. Valutazione delle vulnerabilità (scan con tool come Nessus, OpenVAS).

  4. Stima dell’impatto (danni finanziari, reputazionali).

  5. Pianificazione delle contromisure (patch, firewall, backup).

Standard di riferimento

  • ISO/IEC 27001: Standard per la gestione della sicurezza informatica.

  • NIST SP 800-30: Guida alla risk assessment.


Principali Tipologie di Minacce

Tipo di Minaccia Descrizione
Malware Virus, worm, trojan, ransomware (es. WannaCry).
Phishing/Social Engineering Inganno per rubare credenziali (es. email false).
DDoS (Distributed Denial of Service) Sovraccarico di risorse con traffico falso (es. botnet Mirai).
Man-in-the-Middle (MITM) Intercettazione comunicazioni (es. attacchi ARP spoofing).
SQL Injection Sfruttamento di vulnerabilità in database (es. query malevole).
Zero-Day Exploit Sfruttamento di vulnerabilità non ancora patchate.

La Difesa Perimetrale con Firewall

I Firewall

  • Funzione: Filtrano il traffico in base a regole predefinite (allow/deny).

  • Tipi:

    • Packet-Filtering Firewall: Analizza intestazioni (IP, porta, protocollo).

    • Application-Level Firewall: Ispeziona traffico a livello applicativo (es. HTTP).

Stateful Firewall

  • Funzionamento: Tiene traccia dello stato delle connessioni (es. TCP handshake).

    • Esempio: Permette traffico di ritorno solo se la connessione è stata avviata internamente.

  • Vantaggi: Più sicuro dei firewall stateless (blocca traffico anomalo).

Proxy Server

  • Funzione: Agisce da intermediario tra client e server.

  • Tipi:

    • Forward Proxy: Maschera l’identità dei client (usato in aziende per filtrare il web).

    • Reverse Proxy: Protegge i server backend (es. Nginx, Cloudflare).

  • Vantaggi:

    • Filtraggio contenuti (blocco siti malware).

    • Caching (migliora le prestazioni).

    • Anonimato (nasconde IP interni).