Anteprima
Vedrai una selezione di 13 pagine su 60
CyberSecurity Pag. 1 CyberSecurity Pag. 2
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 6
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 11
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 16
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 21
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 26
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 31
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 36
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 41
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 46
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 51
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
CyberSecurity Pag. 56
1 su 60
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

RSA

Il funzionamento di RSA è basato sui numeri primi, e può essere schematizzato nei seguenti punti: 1. Si scelgono due numeri primi (P e Q) 2. Si calcola il loro prodotto chiamato modulo (dato che tutta l'aritmetica seguente è modulo N) 3. Si sceglie poi un numero (chiamato esponente pubblico), tale che sia primo rispetto a E e che sia (P-1)(Q-1) < E < P*Q 4. Si calcola il numero (chiamato esponente privato) tale che D = E mod (P-1)(Q-1) Così facendo si ottengono una chiave pubblica (N, E) e una chiave privata (N, D). RSA può cifrare solo dati il cui valore sia inferiore al modulo di N (è una sorta di algoritmo a blocchi); il plaintext deve essere minore di N (p < N) e viene cifrato tramite la formula: E * c = p mod N Mentre la decifratura avviene tramite la formula: D * p = c mod N Solitamente le chiavi pubbliche hanno E = 3, 17, 65537... perché sono numeri primi.

binari composti=da solamente due 1, quindi l'elevamento a potenza richiede meno tempo per cui si ottiene una velocità in cifratura e di verifica della firma maggiore.

Debolezze di RSA:

  • Scelta di piccoli esponenti della chiave pubblica
  • Uso della stessa chiave per firma e cifratura
  • Uso dell'utente come se fosse un "oracolo"

Soluzioni alle debolezze:

  • Con la codifica PKCS#1 v1.5, usare E 0x10001=
  • Aggiungere sempre del padding random fresco (il "sale", almeno 8 byte) prima di cifrare il messaggio
  • Usare chiavi RSA diverse per cifratura e firma
  • Applicare uno specifico formato all'input prima di cifrarlo o firmarlo (non accettare di cifrare o firmare dati grezzi)
  • In decifratura, controllare il formato del blocco decifrato; se diverso da quello atteso restituire un errore e non il blocco decifrato
  • In verifica di una firma, se c'è un qualunque errore segnalare solo genericamente "firma"

"nonvalida" 152.3.2 Distribuzione delle chiavi con Diffie-Hellman

L’algoritmo permette di scambiare le chiavi senza la necessità che le due parti si siano scambiate informazioni in precedenza, le chiavi vengono calcolate tramite i seguenti passi:

  1. A e B scelgono due interi pubblici (generatore) e (numero primo grande) tali che 1 < g < pg p
  2. A sceglie un intero grande e calcola x> 0 = g mod px X
  3. B sceglie un intero grande e calcola y> 0 = g mod py Y
  4. A e B si scambiano X e Y
  5. A calcola x= Y mod pK
  6. B calcola y= X mod pK
  7. Si ottengono xK = K = g mod p

12.3.3 Integrità dei messaggi

Una persona che intercetta una comunicazione cifrata non può leggerla ma può comunque modificarla, quindi per garantire l’integrità dei dati si utilizza un ovvero è un "riassunto" a digest, lunghezza fissa del messaggio da proteggere; viene calcolato tramite una funzione di hash univoca.

L’importante durante la creazione

Dei digest è evitare l'aliasing (collisioni), occorrono quindi digest con molti bit.

2.4 Autenticazione tramite cifratura simmetrica

2.4.1 Introduzione

Key Derivation Function (KDF)

Una chiave per essere sicura deve essere scelta randomicamente, ovvero ogni bit deve avere il 50% di probabilità di essere 0 o 1, solitamente gli utenti scelgono password prevedibili che diminuiscono la sicurezza di un sistema.

Caratteristiche per avere una password efficace:

  • password o passphrase che l'utente deve ricordare
  • salt, sequenza di valori randomici che associati alla password ne derivano la complessità
  • numero di iterazioni delle funzioni base (per rallentare chi attacca)

itc: MIC, MAC, MID

  • (Message Integrity Code): si aggiunge per garantire l'integrità dei messaggi
  • (Message Authentication Code): si aggiunge per garantire l'autenticazione
  • (Message IDentifier): si aggiunge per evitare attacchi di tipo replay

MID

162.4.2 Funzionamento

In questo caso non interessa che il messaggio venga letto da altri infatti può essere inviato in chiaro, l'importante è che il destinatario sia sicuro della sorgente del messaggio; per essere sicuri che questo accada si invia anche una copia cifrata dei dati:

  • Il mittente cifra M (M' = enc(K, M))
  • Si trasmettono M e M'
  • Il ricevente riceve i messaggi e decifra M' (X = dec(K, M'))
  • Il ricevente verifica che X sia uguale a M

Il vantaggio di questo metodo è che ho una verifica dell'integrità mentre gli svantaggi sono: operazioni più complesse, raddoppio dei dati trasmessi e tempo di trasmissione più che raddoppiato.

2.4.3 Autenticazione tramite cifratura simmetrica con digest

Per velocizzare la trasmissione dei dati invece che una copia cifrata viene inviato un che digest, ha dimensioni minori rispetto al messaggio.

Calcolo del digest:

  • Il mittente calcola l'Hash
    • (H enc(K, hash(M))=• Si trasmettono M e H
    • • Il ricevente riceve i dati e decifra l'Hash (X dec(K, H))
    • • Il ricevente verifica che X sia uguale all'Hash di M
    • 172.4.4 Autenticazione tramite keyed-digest
    • Questo metodo invia un digest calcolato non solo sui dati ma anche su una chiave:
    • • Il mittente calcola il digest (d digest(K, M))
    • • Si trasmettono M e d
    • • Il ricevente riceve i dati e calcola il proprio digest (d' digest(K, M))
    • • Il ricevente verifica che il digest ricevuto corrisponda al proprio digest
    • Possibili errori
    • Se il keyed-digest è calcolato su H (K || M) si può cambiare il messaggio post-ponendo uno o più blocchi: kd' H (K || M || M') f(kd, M')
    • mentre se il keyed-digest è calcolato su H (M || K) si può cambiare il messaggio premettendo un opportuno blocco: kd H (M' || M || K) scegliendo=M' t.c. IV f (IV, M')
    • Per risolvere questo problema si possono utilizzare

    tre metodi:

    • Inserire tra i dati la lunghezza di M
    • Definire kd H (K || M || K)
    • Usare un keyed-digest standard2.4.5 CBC-MAC

    Frutta un algoritmo di cifratura simmetrico a blocchi, in modalità CBC con IV nullo, prendendo come MAC la cifratura dell'ultimo blocco; questo metodo di cifratura garantisce confidenzialità e integrità.

    182.5 Integrità e riservatezza

    2.5.1 Authenticate and encrypt (A&E)

    In questo caso si fa prima l'autenticazione e successivamente si cifra (enc(K , p) || mac(K , p)). L'integrità deve essere sempre verificata prima di decifrare.

    2.5.2 Authenticate then encrypt (AtE)

    In questo caso si concatena il testo in chiaro con il mac e successivamente si cifra tutto il messaggio (enc(K , p || mac(K , p))). L'integrità deve essere verificata dopo la decifratura.

    Sia A&E che AtE sono soggette ad attacchi di tipo DoS, perché l'attaccante può cambiare il messaggio, ma il

    ricevente prima di scoprirlo deve decifrare, perdendo tempo.

    2.5.3 Encrypt then Authenticate (EtA)

    Si calcola la cifratura e poi si fa l'autenticazione (enc(K , p) || mac(K , (enc(K , p))). Il ricevente

    1 2 1può verificare subito se il mac è errato, quindi non si perde tempo a decifrare.

    2.5.4 Authenticated encryption

    Fa un'unica operazione per riservatezza, autenticazione e integrità:

    • Una sola chiave ed un solo algoritmo
    • Maggiore velocità
    • Meno probabilità di errori nel combinare le funzioni

    2.6 Autenticazione tramite digest e cifratura asimmetrica

    2.6.1 Firma digitale

    Come si cifra e decifra quando si utilizza la firma digitale:

    • Il mittente calcola l'hash dei dati da inviare e lo cifra con la chiave privata
    • Il mittente invia il messaggio
    • Il ricevente riceve il messaggio in chiaro e ne calcola l'hash
    • Il ricevente verifica che i messaggi siano uguali

    2.6.2 Firma e verifica

    • Il firmatario

    calcola l'hash dei dati e cifra con la chiave privata• Viene trasmesso il dato con la concatenazione della firma• Il verificatore riceve il messaggio e con la chiave pubblica decifra la firma e calcola l'hash del dato

    Chapter 3

    Certificati

    3.1 Certificato a chiave pubblica

    Un certificato è una struttura dati per legare in modo sicuro una chiave pubblica ad alcuni attributi, tipicamente lega chiave a identità, ma sono possibili altre associazioni; un certificato è firmato in modo elettronico dall'emettitore (autorità ha una scadenza temporale di certificazione); può essere revocato prima della scadenza sia dall'utente che dall'emettitore.

    Verifica di un certificato

    3.1.1 Public-Key Infrastructure (PKI)

    È l'infrastruttura tecnica ed organizzativa predisposta alla creazione, distribuzione e revoca dei certificati a chiave pubblica. La verifica dei certificati a chiave pubblica ha una struttura gerarchica in

    cui ogni certificato è firmato da una CA di livello più alto.

    Autorità di certificazione

    213.1.2 Struttura di un certificato X.509

    • Version
    • Serial number
    • Signature algorithm
    • Issuer
    • Validity
    • Subject
    • Subject public key info
    • CA digital signature

    3.2 Revoca dei certificati

    Un certificato può essere revocato prima della sua scadenza quando non è più valido, su richiesta del titolare o autonomamente dall'emettitore.

    3.2.1 Meccanismi di revoca

    • (Certificate Revocation List): elenco dei certificati revocati, firmato dalla CA o da un CRL delegato
    • (On-line Certificate Status Protocol): permette di verificare un certificato in tempo reale, sfruttando l'interrogazione da parte del client usando il numero di serie del certificato per indicare al richiedente se tale certificato è stato revocato oppure no

    3.2.2 Certificate Revocation List (CRL)

    • Version
    • Signature

    algorithm• Issuer• thisUpdate• userCertificate revocationDate• userCertificate revocationDate• CA digital signature

    Estensioni critiche

    Un’estensione può essere definita critica o non critica; nel processo di verifica devono essere rifiutati i certificati che contengono un’estensione critica non riconosciuta mentre un’estensione non critica può essere ignorata se sconosciuta.

Dettagli
A.A. 2021-2022
60 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ChristianBruni di informazioni apprese con la frequenza delle lezioni di Cybersecurity e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Piemonte Orientale Amedeo Avogadro - Unipmn o del prof Valenza Fulvio.