Origine degli attacchi ai canali laterali

9

Qual è l'origine degli attacchi ai canali laterali? È legato all'algoritmo o all'implementazione? In altre parole, il software è responsabile dell'attacco o dell'hardware?

Esiste un algoritmo crittografico resistente agli attacchi del canale laterale sul sistema A, ma non sul sistema B?

Possiamo definire resistenti al canale laterale degli algoritmi?

    
posta TheGoodUser 10.02.2015 - 11:58
fonte

5 risposte

10

Gli attacchi di Side Channel sfruttano le informazioni acquisite dall'osservazione o dall'interazione con un sistema in un modo diverso da quello previsto dai suoi creatori. Spesso questo viene fatto per dedurre informazioni sulle chiavi di crittografia o altre informazioni segrete.

Alcuni dei più comuni vettori di attacco del canale laterale sono:

  1. Timing
  2. Monitoraggio dell'alimentazione
  3. Analisi della gestione degli errori

Esempi per il citato includono:

  1. Attacco di temporizzazione della cache AES per determinare le chiavi di crittografia ( ottimo documento di DJ Bernstein )
  2. Analisi di potenza differenziale contro DES per determinare le chiavi di crittografia ( famoso documento di P Kocher )
  3. La gestione degli errori dei passaporti RFID viene sfruttata per inferire la nazionalità - > violazione della privacy ( link )

Mentre Wikipedia afferma che:

... a side-channel attack is any attack based on information gained from the physical implementation of a cryptosystem ...

Direi (insieme a Bernstein e altri) che le debolezze del canale laterale potrebbero emergere anche dal design. Nell'esempio AES ciò è dovuto al fatto che è praticamente impossibile scrivere codice di esecuzione costante per l'elaborazione generale mantenendo l'efficienza.

Quindi, per tornare alla tua domanda; mentre si sfrutta un attacco di canale laterale in un sistema implementato, la causa principale della sua esistenza non può essere generalmente essere attribuita solo all'implementazione. Dovrai esaminare un sistema specifico e le sue implementazioni e potresti scoprire che la risposta alla domanda dipende in gran parte da dove posizioni il confine tra progettazione e implementazione.

(Se il design di AES avesse garantito tempi di calcolo statici, l'attacco di temporizzazione non sarebbe stato possibile su qualsiasi implementazione corretta come un esempio ...)

Potresti, tuttavia, avere implementazioni differenti di AES che sono o non sono vulnerabili ad un attacco di temporizzazione, per rispondere alla tua domanda sui sistemi A & B (Il sistema A può imporre tempi di calcolo statici mentre B non lo fa) .

Con un modello di attaccante ben definito direi che è possibile definire un algoritmo resistente ai canali laterali. Per favore, chiarisci questa domanda: non sono sicuro di averti compreso appieno ..

Modifica: Un'altra lettura più divertente e interessante in questo breve e facilmente leggibile articolo . :)

risposta data 10.02.2015 - 15:10
fonte
2

Il termine "canale laterale" può riferirsi a due cose diverse: una è suggerita dalle altre risposte (dettagli accidentali di implementazione che filtrano attraverso un flusso di dati non intenzionale). Il termine può anche riferirsi a un'inclusione potenzialmente deliberata di segreti crittografici all'interno di quelle che dovrebbero essere parti casuali di un flusso di dati. Ad esempio, un programma che dovrebbe riempire un piccolo segreto (ad esempio una chiave AES) con dati casuali e crittografarlo RSA potrebbe, se progettato in modo malevolo, modificare leggermente l'implementazione:

Loop:
  Pad secret with random data
  Encrypt it
  Interpret bits 151..181 of the resulting crypto stream as a number I
  Examine bit (I mod RSA_keylength) of the RSA secret key
  If the aforementioned bit doesn't match bit 504 of the crypto stream, goto Loop

Se questa malvagia implementazione viene utilizzata per scambiare molti segreti, un utente malintenzionato sarà in grado di scoprire la maggior parte dei bit della chiave segreta RSA interamente attraverso semplici osservazioni passive. Qualcuno che non sapeva del canale laterale nascosto, tuttavia, non avrebbe notato nulla di insolito nei messaggi. In effetti, anche qualcuno che sapeva del canale laterale non sarebbe in grado di stabilire se un messaggio particolare lo includesse. Solo esaminando molti messaggi il canale laterale potrebbe essere rilevato anche per qualcuno che sapeva cosa cercare .

    
risposta data 10.02.2015 - 19:01
fonte
1

Gli attacchi a canali laterali sono quelli basati sullo sfruttamento di determinati aspetti dell'implementazione e non a causa di debolezze matematiche negli algoritmi crittografici.

Alcuni sono esposti a causa delle scelte di implementazione dell'hardware. Ad esempio, una CPU può attirare più potenza in un determinato punto dell'esecuzione nel caso in cui il bit 1 della chiave sia true e meno energia quando il bit 1 della chiave è falso.

Altri potrebbero essere esposti a causa delle scelte temporali che si verificano nell'implementazione del software dell'algoritmo crittografico. Si è verificato un attacco di successo all'implementazione di TLS di Bouncy Castle perché l'implementazione di un algoritmo MAC ha richiesto un percorso più rapido attraverso il codice nel caso in cui un determinato bit fosse impostato su un determinato valore. (Penso che questa fosse la causa principale di CVE-2013-1624.)

In molti casi, specialmente quelli dovuti ai tempi, un modo comune per affrontare un attacco di canale laterale è cambiando l'implementazione del software. Garantendo che tutti i rami impieghino una quantità costante di tempo indipendentemente dal valore dei bit, tale perdita di informazioni può essere prevenuta. In un'implementazione linguistica di alto livello, le ottimizzazioni del compilatore possono essere una causa involontaria di perdita, che è un altro motivo per cui un approccio "roll-your-own" alla crittografia può essere un problema.

    
risposta data 10.02.2015 - 15:37
fonte
0

L'attacco al canale laterale è sicuramente dovuto all'implementazione (chiarimento, non intendo che l'implementazione sia sbagliata, vedi sotto).

Provengono dal fatto che un calcolo matematico ha bisogno di un computer per elaborare le cose. Per così dire, le informazioni sul canale laterale di un processo di crittografia sono l'impatto delle attività fisiche che vengono distribuite per calcolarlo. Sono una conseguenza del mondo fisico.

Per resistere agli attacchi dei canali laterali devi:

  • riduci la quantità di dati trapelati
  • rende i dati trapelati non correlati ai dati segreti

E questo può essere fatto sia da hardware che da software. Alla fine, tutto si riferisce alla particolarità fisica del sistema utilizzato.

Esempio : misurazione del consumo energetico durante la generazione della chiave.

La potenza in eccesso necessaria per elaborare un 1 (anziché uno 0) è un effetto collaterale degli strumenti utilizzati per eseguire i calcoli. Come se usassi un EEG per vedere se stai pensando ad un 1 o uno 0. Sono problemi che non provengono dal design dell'algoritmo, ma dalla realtà.

    
risposta data 10.02.2015 - 13:18
fonte
0

Come ho sottolineato, le bande laterali / laterali sono effetti collaterali che derivano dalla principale banda portante / implementazione. Il termine deriva da trasmissioni radio e amp; comunicazioni, quindi senza cercare di attaccare il problema affrontando l'implementazione principale, si analizzano invece i canali laterali per ottenere informazioni dettagliate sul problema.

È un po 'come il modo in cui è possibile tenere traccia del consumo di energia per determinare se il giro di decifrazione in più significhi che la prova della password forza bruta funzioni.

    
risposta data 10.02.2015 - 14:36
fonte

Leggi altre domande sui tag