Skip to main content

Sicurezza informatica

Quali risorse vogliamo proteggere?

  • Hardware, ovvero la sicurezza fisica
  • Software, quindi sistema operativo e applicativi installati
  • Dati, quindi file e database
  • Rete, collegamenti fisici e apparati di rete

Cosa significa "proteggere"?

Significa garantire almeno le seguenti proprietà:

  • Confidenzialità, assicurarsi che i documenti abbiano la giusta visibilità, privata o pubblica
  • Integrità, è necessario assicurare che il documento non sia compromesso da modifiche non autorizzate durante tutta la sua vita
  • Disponibilità, assicurarsi che il documento abbia la disponibilità necessaria (es: il server viene messo offline da un attacco)
  • Tracciabilità, è fondamentale sapere dove è stato / quali modifiche ha ricevuto un documento. Questo aiuta a scoprire se possono esserci state eventuali modifiche da un malintenzionato.
  • Autenticità, assicurarsi che l'operatore che svolge operazioni sul documento sia effettivamente la persona autorizzata, e non un malintenzionato che ha rubato le credenziali tramite un accesso non autorizzato.

Dettaglio di "confidenzialità"

  • Nessun utente deve poter ottenere o dedurre dal sistema informazioni che non è autorizzato a conoscere, implementando quindi la riservatezza dei dati
  • L'utente può avere il controllo su quali informazioni possono essere collezionate e quali no

Si nota che non tutte le informazioni devono per forza essere nascote, es: il nome e cognome di un utente alle forze dell'ordine.

Si cerca quindi anche di evitare il tracciamento non autorizzato di un qualsiasi utente.

Dettaglio di "integrità"

  • Impedire l'alterazione diretta o indiretta delle informazioni, sia da parte di utenti e processi non autorizzati, che a seguito di eventi occidentali
  • Garantire il funzionamento di un sistema non compromesso

Dettaglio di "disponibilità"

  • Rendere disponibili a ciascun utente abilitato le informazioni alle quali ha il diritto di accedere, nei tempi e nei modi previsti
  • Nei sistemi informatici, i requisiti di disponibilità includono prestazioni e robustezza / resistenza del sistema ad eventuali attacchi o eventi esterni.

Dettaglio di "autenticità"

  • Ciascun utente deve poter verificare la veridicità delle informazioni ricevute, ovvero i reali mittenti
  • Di conseguenza, può essere utile per capire se una informazione è stata manipolata

Questi requisiti sono validi anche per informazioni non confidenziali.

Dettaglio di "tracciabilità"

  • Le azioni di una entità devono essere tracciate in modo univoco, e in modo tale da non poter essere negate e / o modificate successivamente, cercando di ripugnare in tempi successivi le informazioni trasmesse in precedenza.

Differenza tra minaccia, vulnerabilità e attacco

  • La minaccia è una possibile violazione della sicurezza (es: sapere di poter prendere un virus)
  • La vulnerabilità è lasciare scoperta una possibile minaccia (es: sapendo di poter prendere un virus, si decide di non installare un anti-virus)
  • La violazione è una effettiva breccia della sicurezza, chiamata anche attacco (es: il virus ha infettato il computer)

Tipologie di attacchi

  • Attivi, tentativi di alterare le risorse o modificare il funzionamento del sistema
  • Passivi, tentativi di carpire informazioni e utilizzarle senza intaccare le risorse (es: leggere delle credenziali non protette)
  • Interni al sistema, iniziati da una entità interna al sistema (es: dipendente di una azienda)
  • Esterni al sistema, iniziati da una entità esterna al sistema, tipicamente attraverso la rete (es: hacker remoto)

Come contrastare gli attacchi?

Purtroppo, non esiste una risposta unica o un metodo plug-and-play per sistemare ogni problema di sicurezza.

Va inoltre tenuto in mente che più il sistema è complesso, e più sono le vulnerabilità a cui si espone.

Infine, essendo l'informatica sempre in continua evoluzione, l'ingresso di nuove tecnologie comporta anche la creazione di minacce e conseguenti vulnerabilità.

E' necessario quindi effettuare delle analisi profondite per studiare sia le probabili minacce, sia le minacce teoriche (improbabili ma possibili).

Quali sono le sfide poste alla sicurezza?

Anche se vengono implementate le migliori tecniche di sicurezza ed algoritmi di protezione, non è mai da escludere il fattore di responsabilità dell'utente, ovvero che ogni utente a conoscenza / in possesso di informazioni, confidenziali o meno, ne diventa automaticamente responsabile.

Tramite attacchi di pishing è quindi possibile indurre gli utenti nel commettere errori, e rivelare involontariamente delle informazioni potenzialmente confidenziali a delle entità malevoli.

Vi sono inoltre delle politiche di gestione interna, dove un datore di lavoro può decidere di non investire nella sicurezza di un sistema perchè comporta un investimento economico importante da parte dell'azienda. Di conseguenza, questa decisione va a creare delle vere e proprie vulnerabilità.

Differenza tra politica di sicurezza e meccanismo di sicurezza

  • Politica di sicurezza, è una regola che si applica a qualsiasi operatore voglia usufruire del sistema (es: non tenere la stessa password per più sistemi)
  • Meccanismo di sicurezza, è l'applicazione di alcune misure restrittive per favorire la sicurezza (es: autenticazione a due fattori)

Cosa si intende con crittografia ?

La crittografia è una scienza composta da tante tecniche diverse, che ha come obbiettivo la protezione dell'informazione, per fare in modo che un utente malevolo che riesce ad avere accesso non autorizzato a dei file criptati, non sia in grado di comprenderli grazie alla crittografia.

La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, nel tentativo di trovare problemi alla crittografia e poterli risolvere.

L'insieme di crittografia e crittoanalisi è detta crittologia.

Elementi del processo crittografico

  • Se le chiavi sono uguali, siamo di fronte ad un algoritmo di cifratura simmetrico dove la chiave deve essere tenuta segreta

  • Se le chiavi sono diverse, siamo di fronte ad un algoritmo asimmetrico, dove ogni entità ha una chiave pubblica e una chiave privata.

Se il mittente A, vuole inviare informazioni crittografate al mittente B, può cifrare le informazioni con la chiave pubblica di B, spedirle, e quando B le riceverà, avendo solo lui la chiave privata abbinata alla sua chiave pubblica, solo lui può decifrare le informazioni ricevute tramite la chiave privata.

Quando un algoritmo è robusto?

  • Dato un testo cifrato, non deve essere possibile ottenere il corrispondente testo in chiaro senza conoscere la chiave di decifratura
  • Dato un testo cifrato e il corrispondente testo in chiaro, non deve essere possibile ottenere la chiave di decifratura, questo perchè se fosse possibile ottenere la chiave, significherebbe riuscire a decifrare anche tutti gli altri testi cifrati con questa chiave

Quando un algoritmo di cifratura è computazionalmente sicuro ?

  • Il costo necessario a violare l'algoritmo è superiore al valore dell'informazione cifrata
  • Il tempo necessario a violare l'algoritmo è superiore al tempo di vita utile dell'informazione cifrata

Quali sono le tecniche moderne di cifratura ?

  • Cifratura a blocchi, dove non vengono più permutate i singoli byte, ma su un insieme di byte. Più la dimensione del blocco è grande, più è difficile risalire al significato originale di quel blocco.

Cos'è la firma digitale ?

La firma digitale è l'equivalente della firma tradizionale fatta su carta.

Sfruttando RSA, si effettuano le seguenti procedure:

  • L'utente che vuole firmare un documento, utilizza la sua chiave privata per cifrare il documento.
  • L'utente che riceve il documento firmato, e vuole verificarne l'autenticità, decifra il documento con la chiave pubblica del mittente.

In questo modo, essendo il mittente l'unico in possesso della propria chiave privata, è possibile firmare e verificare i documenti.

Che cos'è un hash?

TODO: Guardarsi le funzioni di hash ed i loro usi