Introduzione agli standard di sicurezza
Martedì 4 giugno 2019 10:05
Standard di sicurezza
Gli standard di sicurezza includono IETF, ITU, ISO, NIST, e RSA. ITU - X.800 è un modo sistematico per definire requisiti di sicurezza e per caratterizzare gli approcci che soddisfano i requisiti. Si focalizza su tre aspetti principali: attacchi alla sicurezza, servizi di sicurezza e meccanismi di sicurezza.
Attacchi alla sicurezza
- Azione che compromette la sicurezza delle informazioni in possesso.
- Prevenire gli attacchi e scoprirli nel minor tempo possibile.
- Due tipi di attacchi:
- Attacchi passivi (accedere ai dati senza modificarli, monitorarli)
- Attacchi attivi (accedere e modificare dati)
Servizi di sicurezza
- Migliorano la sicurezza delle informazioni.
- Contrastare attacchi di sicurezza.
- X.800 include:
- Autenticità: assicurare comunicazione con due autenticati.
- Confidenzialità: protezione dati da letture non autorizzate.
- Segretezza dei dati: protezione dati durante trasmissione.
- Integrità dei dati: assicura la protezione dei dati da modifiche non autorizzate.
- Non ripudiabilità: protegge che uno neghi di aver inviato o ricevuto messaggi.
- Disponibilità: assicura che agli autorizzati non sia negato accesso.
Meccanismi di sicurezza
- Ogni meccanismo per prevenire, scoprire o ripristinare il sistema da attacco.
- Adottati uno o più servizi.
- I servizi citati prima sono garantiti da:
- Confidenzialità: controllo dell'accesso.
- Segretezza: tecniche di cifratura.
- Integrità: controllo accesso, vincoli d'integrità, tecniche di cifratura.
- Disponibilità: tecniche di recovery.
- Autenticità: firma digitale, protocolli di autenticazione.
- Non ripudiabilità: firma digitale, protocolli di autenticazione.
Fondamenti di sicurezza: cifratura
Martedì 4 giugno 2019 10:55
Concetti base
- Plaintext (testo in chiaro)
- Ciphertext (testo cifrato)
- Cipher (algoritmo di cifratura)
- Chiave
- Algoritmo di decifratura
Sistemi crittografici
Caratterizzati da:
- Numero di chiavi utilizzate:
- Unica chiave (simmetrica): ogni utente genera una coppia di chiavi, una pubblica (distribuita) e una privata (tenuta segreta). Il messaggio cifrato con una chiave pubblica può essere decifrato solo con la chiave privata corrispondente.
- Due chiavi (asimmetrica)
- Operazioni usate per la cifratura:
- Sostituzione
- Trasposizione
- Funzioni matematiche
- Metodo con cui viene elaborato il testo in chiaro:
- A blocchi: plaintext suddiviso in blocchi e criptato in blocchi. Utilizzata da DES, AES, e RSA.
- A flussi: elabora il messaggio bit a bit.
Sicurezza dei sistemi crittografici
- Incondizionatamente sicuro: il testo cifrato non contiene informazioni sufficienti sul testo in chiaro.
- Computazionalmente sicuro: non si può risalire alla chiave in un tempo utile per attacco.
Tipi di attacchi
Scopo: ricostruire la chiave utilizzata.
Crittoanalisi
- Sfrutta le caratteristiche dell'algoritmo e conoscenza di testi in chiaro e cifrati per cercare di capire la chiave.
- Chipertext only (si conosce solo algoritmo e testo cifrato)
- Known plaintext (si conoscono coppie di testo in chiaro e cifrato)
- Chosen plaintext (si conoscono coppie di testo in chiaro/cifrato, quello in chiaro è scelto dall'attaccante)
Brute force
- Si tenta ogni possibile chiave su un frammento di testo cifrato fino alla traduzione corretta.
- Sempre possibile
- Tempo proporzionale alla dimensione della chiave
Cifratura simmetrica
Mittente e destinatario condividono la stessa chiave. Requisiti:
- Algoritmo di cifratura:
- Deve essere pubblico
- Deve essere forte
- Chiave segreta conosciuta solo dal mittente e dal ricevente
- Necessità di un canale sicuro per distribuire la chiave
Algoritmi si basano su due operazioni: sostituzioni e trasposizioni.
Sostituzioni
- Ogni simbolo sostituito con un altro
- Cifratura di Cesare:
- Ogni lettera sostituita con quella a 3 posizioni di distanza
- Assegnato ad ogni lettera un valore numerico
- C = E(p,k) = (p+k) mod (26)
- p = D(C,k) = (p-k) mod (26)
- Cifratura monoalfabetica:
- Unico alfabeto per le sostituzioni
- Non è sicuro:
- Perché è possibile effettuare degli attacchi che sfruttano le regolarità presenti nel linguaggio
- Perché è possibile analizzare il testo e capire in base alle lettere più utilizzate nel linguaggio (e/t in inglese)
- Alternativa: sostituire la stessa lettera con più sostituti
- Attacchi sempre possibili analizzando frequenze
Trasposizioni
- Cifratura basata su una permutazione delle lettere del testo in chiaro
- Non cambia la frequenza delle lettere da testo in chiaro a testo cifrato
- Rail Fence:
- Testo in chiaro viene scritto come una sequenza di diagonali e poi letto come una sequenza di righe
- Le trasposizioni aiutano a togliere le strutture all'interno del testo in chiaro, gli schemi possono essere più sicuri eseguendo la trasposizione in più fasi
Cifratura classica II
Martedì 4 giugno 2019 11:22
Riprendiamo dagli appunti di prima.
Associare più omofoni
Playfair (crittografare più lettere insieme) (Poligrammi)
- Plaintext cifrato due lettere alla volta
- Ogni lettera ha più sostituzioni scelti in base al diagramma di appartenenza
- Utilizza una matrice 5x5 di lettere:
- Si scrive la parola da sinistra a destra, riempiendo la matrice con le lettere dell'alfabeto
- Come cifrare:
- Se entrambe le lettere cadono nella stessa riga si sostituiscono con quelle che seguono a destra
- Se entrambe le lettere cadono nella stessa colonna si sostituiscono con quelle sottostanti
- Ogni lettera ha più sostituti, scelti in base al diagramma
- Sicurezza migliorata
Vigenere (utilizzare più alfabeti) (Poliafabetica)
- Diverse sostituzioni monoalfabetiche, ogni lettera cifrata con un monoalfabetico diverso
- Due componenti:
- Insieme di sostituzioni monoalfabetiche
- Utilizzo chiave per determinare quale sostituzione applicare
- Vigenere Chiper:
- Si considerano 26 cifrari di Cesare
- N-esima lettera della chiave indica quale alfabeto bisogna usare
- Chiave lunga quanto il plaintext (ripetendola fino alla lunghezza desiderata)
- Problema:
- Se scopro lunghezza della chiave
- Ripetizione della stessa sostituzione
OTP - One Time Pad
- Lettere combinate in XOR con corrispondenti lettere della chiave
- Lavora sui bit
- Unico cifrario che ha la sicurezza incondizionata
- Casualità della chiave garantisce che il chipertext non mantenga informazioni sulle correlazioni interne
- Inviolabile anche da attacchi a forza bruta
Cifratura simmetrica Feistel
Martedì 4 giugno 2019 15:42
Rete di Feistel
Cifratura basata sulla rete S-P (Sostituzioni-Permutazioni) proponendo la struttura di Feistel. Cifrario del prodotto: cifratura eseguita in più fasi, dove si eseguono stesse operazioni con chiavi diverse. Cifratura e decifratura molto simile. Molti algoritmi ad oggi si basano su Feistel (DES).
Rete di Feistel
- Input è un blocco di dati ed una chiave
- Blocco in input viene diviso in due:
- Fasi di elaborazione e poi si ricombinano
- Ogni fase ha un input il blocco generato e una sottochiave
- Ogni fase ha la stessa struttura
- Ogni sottochiave è diversa
- L'output di ogni fase è:
- Li = Ri-1
- Ri = Li-1 XOR F(Ri-1,Ki)
Algoritmo di decifratura in Feistel è uguale a quello di cifratura solamente che le sottochiavi si utilizzano in ordine inverso.
DES (Data Encryption Standard)
Schema di cifratura a blocchi più utilizzato, adottato nel 1977 dal NBS. Usa blocchi di 64 bit con chiave di 56 bit.
Permutazione iniziale (IP)
- Primo passo della cifratura DES
- Dopo le 16 iterazioni dell'algoritmo, il blocco viene diviso in due metà che vengono scambiate (blocco pre-output)
- Al blocco pre-output viene applicata una permutazione inversa a quella iniziale
Funzione F
- L'input Ri-1 viene espanso da 32 bit a 48 bit utilizzando una tabella che definisce una permutazione più un'espansione
- Il risultato viene combinato in XOR con Ki
- Il risultato viene passato in input a una funzione di sostituzione (S-Box) per ottenere 32 bit
- I 32 bit vengono permutati prima di essere composti in XOR con Li-1
- S-Box: tabella 4x16 elementi dove ogni riga contiene valori da 0 a 15, dove vengono scambiati i valori con il valore corrispondente alla coppia di righe e colonna scelte
Permutazione finale
- Per garantire che alla fase successiva la S-Box coinvolga quanti più valori possibili
AES (Cifratura Simmetrica)
Martedì 4 giugno 2019 12:05
Non è basato sul cifrario di Feistel, ma prevede un numero variabile di fasi:
- Ogni fase usa uno sottochiave
- Ogni fase elabora l'intero blocco
- L'elaborazione prevede 3 sostituzioni e 1 permutazione
Differenze con Rijndael
- Rijndael AES
- Plaintext è un blocco di n bits
- Plaintext è un blocco di solo 128 bit
- Rappresentato come matrice di byte
- Stato riempito per colonna
Rijndael - Schema algoritmo
- AddRoundKey (XOR dello stato con sottochiave)
- 9/11/13 Fasi uguali:
- Ogni fase prevede 3 sostituzioni e 1 permutazione:
- SubstituteByte - sostituzione sui byte
- ShiftRow - scorrimento delle righe dello stato
- MixColumn - trasformazione sulle colonne
- AddRoundKey - XOR con sottochiave
- Ogni fase prevede 3 sostituzioni e 1 permutazione:
- 10/12/14 Fase finale
- Uguale a fasi precedenti senza MixColumn
SubstituteByte
- Utilizza una tabella (S-box) di 16x16 bytes contenente una permutazione di tutti i byte possibili.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Fondamenti di sicurezza - autenticatori
-
Fondamenti di sicurezza - RSA
-
Fondamenti di informatica
-
Fondamenti di automatica