Cryptoprocessor: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m top: smistamento lavoro sporco e fix vari
Botcrux (discussione | contributi)
m Bot: Aggiungo template {{interprogetto}} (FAQ)
 
(4 versioni intermedie di 4 utenti non mostrate)
Riga 1:
{{F|hardware|maggio 2018}}
 
Il '''cryptoprocessor''' è un [[microprocessore]] progettato per gestire le chiavi di crittografia e dati in situazioni ad alto rischio. Il cryptoprocessor è nato perché convenzionalmente i [[Sistema operativo|sistemi operativi]] sono troppo pieni di [[bug]] e talvolta anche fisicamente inaffidabili con informazioni di alto valore. Un [[microprocessore]] normale è racchiuso all'interno di un ambiente resistente alle intrusioni, in modo che le informazioni riservate possano essere alterate o rilasciate attraverso un'interfaccia software strettamente definita da un set di transizioni. In combinazione con il controllo dell'accesso, l'insieme delle transizioni deve evitare l'abuso di informazioni sensibili. Tuttavia, come la funzionalità e la flessibilità del set di transizioni siano portati dai produttori e dai [[client]] ai massimi della complessità, ciò ha portato inevitabilmente a [[bug]] nel set di transizioni.
 
== Tour dell'interfaccia di un cryptoproccessor ==
 
L'interfaccia di un cryptoprocessor è un set di transizioni ossia un gruppo di comandi supportati da un processore che manipola e gestisce le informazioni sensibili, usualmente crittografati da chiavi. Gli utenti sono limitati al set di transizioni che riflettono l'esigenza di usare l'accesso al sistema di controllo. Il previsto [[input/output|input e output]] dei comandi in un set di transizioni sono descritti in termini di un ''type system'', che descrive il contenuto di ogni tipo e viene assegnato per ogni input e output di comandi. Le chiavi vengono archiviate in una struttura gerarchica, in modo che grandi quantità di informazioni possano essere condivise in modo sicuro.
 
Riga 19 ⟶ 18:
=== Sistemi a chiavi digitante ===
 
L'assegnazione sul tipo di chiavi sono necessari per il controllo di accesso. Questo perché molte transazioni hanno le stesse funzionalità di base e senza chiave da poter digitare un utente malintenzionato potrebbe ottenere il materiale in esecuzione, durante un'operazione in cui non è autorizzato, pur utilizzando un equivalente consenso alle transazioni. Un sistema ben protetto è progettato per evitare l'abuso delle similitudini tra le transazioni. Un esempio importante è la distinzione di tipo tra comunicazioni dati chiave e PIN di elaborazione nei sistemi finanziari. Codici PIN cliente vengono calcolati crittografando il numero di conto con una chiave di derivazione PIN, quindi i comandi utilizzati con questi tasti sono attentamente controllati. Tuttavia, qualsiasi utente con accesso alle operazioni di manipolazione dei dati potrebbe calcolare i numeri PIN dai conti: entrambi impiegano lo stesso DES ([[Data Encryption Standard]]) o Triple-DES ([[3DES]]) un [[algoritmo]] di crittografia per raggiungere il loro scopo. Prodotti finanziari di [[IBM]] utilizzano la comune architettura Cryptographic (CCA) un set di transazioni standardizzati. Il nome CCA per le informazioni sul tipo di una chiave è un vettore di controllo. I controlli ai vettori sono vincolati alle chiavi crittografate XORing, un controllo vettoriale che è utilizzato per l'autenticazione e include una copia non protetta di riferimento. Il controllo vettoriale è semplicemente un bitpattern scelto per indicare un tipo particolare. Se un utente malintenzionato ingenuo cambia il tipo di chiave assegnata, quando viene utilizzata la chiave, un'operazione di decrittografia del ''cryptoprocessor'' produce semplicemente un messaggio di errore a cui non è possibile rimediare.
 
== Attacchi al controllo ==
 
Questa sezione descrive i nuovi attacchi di nuova costruzione, alcuni intuitivamente pericolose di per sé, altri che combinati sanno trarre il massimo danno. Il set completo comprende applicazioni dalle tecniche esistenti in altri settori, per un utente intenzionato ad un attacco al sistema.
 
Riga 37 ⟶ 35:
 
== Attacchi contro la NSM (A Visa Security Module Clone) ==
La Visa Security Module (VSM) è un cryptoprocessor progettato nei primi anni ottanta per proteggere i numeri PIN trasmessi su banca privata ATM, e sul sistema di collegamenti bancari sostenuti da VISA, la NSM invece è un software ''clone compatibile''. VSM ha due stati di autorizzazione (utente e autorizzati) attivata utilizzando password. La NSM migliora su questo, dividendo lo stato autorizzato in due stadi: Supervisore e amministratore, selezionati da due interruttori a chiave sulla carcassa. Lo stato utente consente di accedere alle operazioni per verificare PIN clienti e tradurre le chiavi di crittografia per l'invio di richieste da e verso altre banche in rete. Lo stato utente contiene anche le operazioni per consentire la generazione e/o di aggiornamento per le chiavi di sessione. L'autorità di vigilanza è stato attivato solo su particolari controlli procedurali e consente operazioni per l'estrazione dei numeri PIN ad una [[stampante]] collegata a una porta dedicata sul cryptoprocessor. L'autorizzazione di 'amministratore' permette la generazione di chiavi master di alto livello ma è raramente utilizzato. Esso riconosce nove tipi distinti in totale: al vertice della gerarchia ci sono cinque 3DES Master Keys, memorizzata in registri all'interno del '''cryptoprocessor'''. Questi proteggono i cinque tipi fondamentali, e tutti gli altri tipi sono dedotti implicitamente dalla posizione di una chiave all'interno della gerarchia. A parte il 3DES chiavi master, tutti gli altri tasti sono standard DES, e quindi devono essere cambiati regolarmente. Le chiavi di derivazione PIN sono un'eccezione alle variazioni regolari, ma godono di una protezione aggiuntiva da misure volte a garantire che un noto testo cifrato, sia disponibile a un utente malintenzionato.
 
'''Terminal Master Keys (TMKs)''' sono copie di quelli usati in ATM, a disposizione della VSM in modo che possa preparare scorciatoie da tastiera che permette l'ATM di verificare i PIN stessi. TMKs e Chiavi PIN occupano lo stesso tipo nel VSM, anche se sono concettualmente diversi. La zona di controllo Master Keys (ZCMKs) sono dei reparti in cui delle chiavi possono essere condivise con altre reti bancarie, utilizzato per proteggere lo scambio di chiavi di lavoro. I tasti Terminal Communications (TC) sono per proteggere le informazioni di controllo che vanno a presso gli sportelli automatici.
La Visa Security Module (VSM) è un cryptoprocessor progettato nei primi anni ottanta per proteggere i numeri PIN trasmessi su banca privata ATM, e sul sistema di collegamenti bancari sostenuti da VISA, la NSM invece è un software ''clone compatibile''. VSM ha due stati di autorizzazione (utente e autorizzati) attivata utilizzando password. La NSM migliora su questo, dividendo lo stato autorizzato in due stadi: Supervisore e amministratore, selezionati da due interruttori a chiave sulla carcassa. Lo stato utente consente di accedere alle operazioni per verificare PIN clienti e tradurre le chiavi di crittografia per l'invio di richieste da e verso altre banche in rete. Lo stato utente contiene anche le operazioni per consentire la generazione e/o di aggiornamento per le chiavi di sessione. L'autorità di vigilanza è stato attivato solo su particolari controlli procedurali e consente operazioni per l'estrazione dei numeri PIN ad una stampante collegata a una porta dedicata sul cryptoprocessor. L'autorizzazione di 'amministratore' permette la generazione di chiavi master di alto livello ma è raramente utilizzato. Esso riconosce nove tipi distinti in totale: al vertice della gerarchia ci sono cinque 3DES Master Keys, memorizzata in registri all'interno del '''cryptoprocessor'''. Questi proteggono i cinque tipi fondamentali, e tutti gli altri tipi sono dedotti implicitamente dalla posizione di una chiave all'interno della gerarchia. A parte il 3DES chiavi master, tutti gli altri tasti sono standard DES, e quindi devono essere cambiati regolarmente. Le chiavi di derivazione PIN sono un'eccezione alle variazioni regolari, ma godono di una protezione aggiuntiva da misure volte a garantire che un noto testo cifrato, sia disponibile a un utente malintenzionato.
'''Terminal Master Keys (TMKs)''' sono copie di quelli usati in ATM, a disposizione della VSM in modo che possa preparare scorciatoie da tastiera che permette l'ATM di verificare i PIN stessi. TMKs e Chiavi PIN occupano lo stesso tipo nel VSM, anche se sono concettualmente diversi. La zona di controllo Master Keys (ZCMKs) sono dei reparti in cui delle chiavi possono essere condivise con altre reti bancarie, utilizzato per proteggere lo scambio di chiavi di lavoro. I tasti Terminal Communications (TC) sono per proteggere le informazioni di controllo che vanno a presso gli sportelli automatici.
 
== Attacchi contro la IBM 4758 CCA ==
 
Il '''Common Cryptographic Architecture (CCA)''' è un'operazione standardizzata, attuata dalla maggior parte dei prodotti IBM per la sicurezza finanziaria. Il [[IBM 4758|4758]] è un PC con processore crittografico che implementa il CCA. Il controllo del set operazione è abbastanza flessibile: ruoli base e controlli d'accesso sono disponibili, e gli utenti comunicano attraverso percorsi protetti di fiducia con sessione di chiavi 3DES. L'operazione è ampia e complessa, con tutte le tipiche operazioni descritte nella sezione. La memorizzazione nelle architetture CCA, sono quasi tutte al di fuori del cryptoprocessor, con una singola chiave master da 168 bit alla radice della sua gerarchia di chiavi. Un controllo vettore è sinonimo di un tipo, ed è legato alle chiavi criptate da XOR, il vettore di controllo con la chiave utilizzata per cifrare, e anche una non protetta copia per riferimento.
 
=== 4758 CCA Importazione di chiavi d'attacco ===
 
Uno degli attacchi più semplici sui [[IBM 4758|4758]] è quello di eseguire un cast di tipo non autorizzato, utilizzando un metodo di fusione di tipo. Un tipico caso può essere quello di importare una chiave PIN di derivazione come dati fondamentali, i comandi potrebbero essere utilizzati per calcolare i numeri PIN, o per importare una chiave di dati al fine di consentire le intercettazioni sulle trasmissioni future. Il Key-Import è un comando che richiede il permesso di importazione e il cifrato chiave da importare. L'attaccante deve avere la necessaria autorizzazione nella sua [[lista di controllo degli accessi]] alle importazioni per il tipo di destinazione, ma la chiave originale può avere qualsiasi tipo. Tuttavia, con questo attacco, tutte le informazioni condivise da un altro cryptoprocessor si presta ad abusi. Cambiamenti più sottili di tipo sono degni di menzione, come ad esempio digitando nuovamente la metà destra di una chiave 3DES come una metà sinistra. Un attacco di successo richiede l'elusione dei controlli procedurali della banca, l'attaccante ha la capacità di interferire con il suo ruolo chiave. Scopo di IBM è di adottare misure per impedire a un utente malintenzionato di ottenere le chiavi necessarie connesse. La configurazione ottimale del sistema di controllo di accesso può effettivamente evitare l'attacco, ma spetta alle banche di avere stretti controlli procedurali. Una soluzione a lungo termine è quello di cambiare il vettore di controllo in modo tale che la differenza necessaria tra chiavi per il cambiamento tra i tipi, non può essere calcolato e le loro informazioni di tipo non possono essere non associati.
 
== Voci correlate ==
 
* [[analog-hole]]
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
 
* {{cita web|https://www.ibm.com/security/cryptocards/|IBMs homepage for its cryptoprocessors}}
* {{cita web|https://www.cl.cam.ac.uk/~rnc1/descrack/|Extracting a 3DES key from an IBM 4758}}
* {{cita web | 1 = http://www.safenet-inc.com/products/chips/index.asp | 2 = SafeNet security processors | accesso = 10 marzo 2010 | dataarchivio = 29 aprile 2009 | urlarchivio = https://web.archive.org/web/20090429020955/http://www.safenet-inc.com/products/chips/index.asp | urlmorto = sì }}
* {{cita web|https://computerhardwareebooks.blogspot.com/2007/05/attacks-on-cryptoprocessor-transaction.html|Attacks on Cryptoprocessor Transaction Sets}}