ITUB20154062A1 - Metodo di scambio dati e comandi sicurizzato. - Google Patents

Metodo di scambio dati e comandi sicurizzato. Download PDF

Info

Publication number
ITUB20154062A1
ITUB20154062A1 ITUB2015A004062A ITUB20154062A ITUB20154062A1 IT UB20154062 A1 ITUB20154062 A1 IT UB20154062A1 IT UB2015A004062 A ITUB2015A004062 A IT UB2015A004062A IT UB20154062 A ITUB20154062 A IT UB20154062A IT UB20154062 A1 ITUB20154062 A1 IT UB20154062A1
Authority
IT
Italy
Prior art keywords
data
peripheral
computer
file
scrambling
Prior art date
Application number
ITUB2015A004062A
Other languages
English (en)
Inventor
Antonio Carbonera
Paolo Forlani
Roberto Garavaglia
Original Assignee
Prb S R L
Hermes Comm S R L S
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Prb S R L, Hermes Comm S R L S filed Critical Prb S R L
Priority to ITUB2015A004062A priority Critical patent/ITUB20154062A1/it
Publication of ITUB20154062A1 publication Critical patent/ITUB20154062A1/it

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Description

“METODO DI SCAMBIO DATI E COMANDI SICURIZZATO”
Campo delPinvenzione
La presente invenzione riguarda i sistemi di codifica ed in dettaglio riguarda un metodo di scambio di dati e comandi sicurizzato.
Tecnica Nota
La tecnica descritta nel brevetto RM2013A000728 può essere usata per trasferire nei due sensi tra un computer e una periferica qualsiasi sequenza di comandi e qualsiasi tipo di dati, I dati possono rappresentare qualsiasi oggetto informatico, anche soggetto a diritti d’autore (ad esempio, musica o filmati) oppure a riservatezza (ad esempio, dati relativi a pagamenti).
Nel brevetto RM2013A000728 la periferica veniva vista come una memoria di massa, e non come una periferica vera e propria. Più nel dettaglio, nell’ allora brevetto, nella particolare realizzazione che si riporta come esempio, il disco è realizzato all’ interno della periferica di firma e sfrutta lo stesso microcontrollore che realizza le altre funzioni della periferica: acquisizione della firma, visualizzazione nel display, visualizzazione di tasti ed acquisizione del loro azionamento.
Il disco è realizzato secondo la normale tecnica informatica comune a tutte le unità di memoria di massa di tipo USB, comunemente denominate “Pen Drive” o “USB Disk” o, in italiano, “Chiavetta USB”. Non si descrive nel dettaglio tale tecnica perché ampiamente diffusa e supportata da tutti i normali sistemi operativi quali Windows e quelli di tipo simile a Unix (Linux, Mac OS, Andrai d).
EDP/2Q0pl5
Questi dispositivi realizzano la USB Mass Storage Device class o MSD class che si basa su MSD protocol, una realizzazione per mezzo di comunicazione USB del protocollo SCSI, Tutti questi protocolli sono universalmente noti, sono normati da standard ufficiali e supportati dai sistemi operativi senza necessità di configurazioni o installazioni particolari. Lo stesso vale per i sistemi operativi “remotizzati” o “virtuali”, che supportano immediatamente le unità di memoria di massa su porta USB.
Quella che è stata realizzata in modo originale è invece la struttura interna del disco, che aderisce dal punto di vista logico allo standard FAT in uso da molti anni e regolato dalla normativa ISO/IEC 9293, ma è realizzato fisicamente in modo originale, allo scopo di risolverne alcuni problemi e da migliorarne le prestazioni.
In particolare, nei sistemi operativi esiste la possibilità di modificare le dimensioni di un file su disco, di cancellarlo o di formattare completamente il disco stesso. L’uso di una di queste funzioni, anche accidentale, avrebbe conseguenze disastrose sul funzionamento del sistema di comunicazioni sopra descritto, perché la cancellazione del file toglierebbe ogni possibilità di comunicazione tra il computer e la periferica, mentre anche solo una variazione della sua dimensione durante il funzionamento comprometterebbe la sincronizzazione tra la funzione di trasmissione e quella di ricezione.
In una normale memoria di massa USB il connettore USB 31 comunica con il blocco d’interfaccia USB 32, il quale a sua volta comunica con il blocco che gestisce il protocollo MSD verso il computer e realizza anche il file System che normalmente è di tipo FAT (File Allocation Table) esistente nelle varianti FAT 12, FAT 16 e FAT 32, I blocchi sono realizzati totalmente in hardware oppure possono anche essere, in tutto o in parte, realizzati per mezzo di un microcontrollore programmato con un apposito firmware. La memoria che contiene fisicamente i dati è attualmente realizzata per mezzo di una memoria di tipo Flash (cancellabile e riscrivibile a blocchi), indicata in figura con il numero 35; in passato tale memoria era invece realizzata con un supporto magnetico quale ad esempio un floppy disk.
Il file System di tipo FAT è stato concepito per permettere tutte le normali funzioni di una memoria a disco, quindi prevede anche la creazione e cancellazione di file, la variazione di dimensioni dei file, la formattazione completa del disco. In particolare, la tabella di allocazione chiamata FAT, che dà anche il nome a tutto il file System che la realizza, è realizzata in modo da permettere lo sfruttamento di tutte le aree del disco anche in caso di cancellazione di file, di aumento delle dimensioni di un file già presente, di generazione di nuovi file di dimensioni incompatibili con gli spazi vuoti esistenti: un file infatti può essere “sparpagliato” in diverse zone del disco, in base alla tecnica delle cancellazioni e delle riutilizzazioni dei vari settori in cui il disco è suddiviso. Se i file sono sparpagliati nel disco, si parla di “frammentazione” del file System.
La memoria di massa colloca in memoria Flash tutte le strutture del file System FAT, denominate MBR, Boot Sector, FAT, Root Directory e infine la memoria che contiene i dati veri e propri, chiamata DATA. Se, ad esempio, il computer collegato alla porta USB richiede la variazione delle dimensioni di un file, il gestore 33 della funzione FAT provvede, tramite il gestore di memoria 34, a modificare il settore FAT per riflettere la nuova allocazione dei dati del file all’ interno della sezione DATA. Se è richiesta la cancellazione di un file, il gestore provvede, a riscrivere il settore contenente la Root Directory con il nome del file invalidato e provvede a riscrivere il settore FAT in modo da indicare come libero lo spazio che prima era occupato dal file cancellato.
Volendo usare il disco per realizzare uno scambio di comandi, le funzioni di cancellazione, formattazione ed ogni variazione dell’ allocazione del file all’ interno della zona DATA sono da evitare assolutamente.
In detto brevetto la memoria fisica era realizzata in due distinti blocchi: il blocco che è realizzato con una memoria di sola lettura ROM e il blocco che è realizzato con una memoria RAM (a lettura/scrittura di tipo volatile). I settori MBR, BOOT SECTOR, FAT e ROOT DIRECTORY sono scritti una volta per tutte in una memoria di tipo ROM, quindi ogni operazione che ne comporta la variazione (anche accidentale) non ha alcuna conseguenza e il disco mantiene sempre la stessa struttura, lo stesso elenco di file e la stessa allocazione. La zona DATA è invece realizzata con una memoria di tipo RAM. Una memoria RAM è normalmente molto più veloce di una Flash, sia in lettura, sia, di gran lunga di più, in riscrittura; infatti la Flash richiede la cancellazione del settore prima di poterlo riscrivere mentre la RAM può essere riscritta anche un byte alla volta. Quindi l’uso di RAM velocizza enormemente la risposta del disco, requisito indispensabile volendolo usare per la trasmissione di comandi.
Inoltre tutte le memorie di tipo Flash hanno, nella loro vita, un numero massimo di cicli di cancellazione, dopo il quale possono essere inutilizzabili per sempre. Il numero di cancellazioni, dell’ordine da centomila a un milione, è sufficiente per una memoria di massa, ma è molto basso per una interfaccia di comandi in cui sono possibili centinaia o migliaia di riscritture al secondo. L’uso della RAM è quindi l’unica possibilità per rendere fattibile questo particolare uso della memoria di massa; il fatto che la RAM è volatile, cioè perde il contenuto se si toglie tensione, non dà nessun problema perché i dati hanno breve durata temporale. Anzi, il fatto che il disco torni “pulito” ad ogni accensione è positivo perché elimina certamente ogni possibile residuo di operazioni precedenti che potrebbero non essere andate a buon fine.
Va notato che il blocco, anziché con memoria ROM, può anche essere realizzato con una memoria di tipo Flash; in tal caso, per evitarne assolutamente la possibilità di riscrittura, si disabilita permanentemente (ad hardware o a firmware) la funzione di cancellazione dei settori in cui è collocata, ottenendo un comportamento uguale a quello di una ROM e mantenendo il vantaggio di potere scrivere la memoria, una sola volta in produzione, con un normale programmatore esterno o con uno speciale firmware di prima programmazione.
Nel caso dell’ interfaccia di comandi qui descritta, si era deciso di usare per lo scambio di comandi e di dati un solo file della massima dimensione disponibile nella RAM utilizzata (nel caso dell’esempio, 32k o 32768 byte). La tabella FAT è quindi stata preparata, una sola volta all’atto della progettazione, in modo da allocare il file in maniera lineare su tutta la RAM. Quindi i settori del disco si trovano nella RAM uno dopo l’altro in esatta successione crescente; se l’allocazione del file non fosse fissa in ROM, i settori potrebbero invece trovarsi in ordine più o meno sparso in base alla storia delle cancellazioni e riscritture effettuate in precedenza.
Per accedere ai dati del disco, che come si è detto è condiviso tra computer e periferica di firma, sia il computer sia la periferica debbono essere dotati di un gestore di file System FAT. Il gestore è piuttosto complesso e richiede una discreta quantità di risorse di elaborazione, che sono certamente disponibili nel computer, ma sono piuttosto onerose da realizzare con il piccolo microcontrollore di cui è dotata la periferica grafica; oltre allo sforzo iniziale per la loro realizzazione, l’effettuazione delle funzioni FAT da parte della periferica comporterebbe grande lentezza di esecuzione. Ma l’allocazione lineare dei settori del disco nella memoria RAM permette, dal lato della periferica, di fare completamente a meno di un gestore di file System: per accedere a un qualsiasi settore il microcontrollore esegue solo l’accesso diretto alla RAM, dopo aver calcolato con una semplice moltiplicazione l’indirizzo del settore all’ interno della RAM. Ad esempio, nel caso di settori da 512 byte ognuno numerati da zero in avanti, l’indirizzo del settore in RAM è semplicemente dato da: Indirizzo = Numero di settore x 512.
In detto brevetto, dunque, la particolare allocazione adottata permetteva un enorme risparmio nella complessità della soluzione e una velocità di risposta migliore. Una prova fatta nella particolare realizzazione portata come esempio ha dimostrato che, usando una memoria Flash e un file System anche dal lato della periferica, una operazione elementare (scrittura e lettura di un settore da ambo i lati) richiedeva 120 millisecondi mentre, con memoria RAM e senza file System lato periferica, la stessa operazione richiede 3 millisecondi.
La tecnica del brevetto citato non trasferisce i dati in modo diretto, ma attraverso comandi di lettura e scrittura di settori di un file; una eventuale intercettazione dello scambio di informazioni tra computer e periferica o viceversa non porta a ricostruire direttamente l’oggetto informatico trasferito, come avviene invece nella tecnica precedente, ma questo rappresenta solo un piccolo ostacolo per chi voglia appropriarsi del contenuto trasferito: infatti conoscendo la tecnica di scambio dati e comandi tramite file è possibile comunque ricostruire i dati simulando il comportamento della parte (computer o periferica) che li deve ricevere.
Il problema, comune d’altra parte a tutte le modalità di trasmissione di dati, è quindi quello della possibilità di intercettazione, sia con mezzi software (ad esempio, con un programma “sniffer” installato nascostamente nel computer), sia con mezzi hardware (con un collegamento fisico al cavo di trasmissione, se non è adeguatamente protetto).
Lo stesso brevetto RM2013A000728 descrive una modalità di scambio di chiavi secondo il noto protocollo Diffie-Hellman; con questa modalità il computer e la periferica possono generare una chiave crittografica condivisa, che viene usata per cifrare i dati trasmessi.
Il brevetto 102015000043174 descrive, tra l’altro, un’estensione del brevetto RM2013A000728 in cui si parla di “funzionamento disconnesso”. Questo avviene quando il file di scambio dati e comandi è posizionato nel computer e non nella periferica, e si opera una trasmissione di dati dal computer alla periferica mentre la periferica è disconnessa dal computer.
Il file di scambio, in questa modalità operativa, accumula al suo interno i dati e i comandi, che verranno attuati in un momento successivo quando la periferica viene collegata oppure riceve il file tramite un qualsiasi sistema di trasmissione. Si pensi ad esempio ad una stampa 3D: il computer prepara un file di dati e comandi che poi viene trasmesso alla stampante 3D che effettua la stampa in un momento successivo. Questa funzionalità è molto utile perché permette di effettuare la stampa a distanza senza dover inviare il file grafico originale in formato tridimensionale (leggibile e modificabile) e senza la necessità di disporre di capacità di elaborazione tridimensionale dal lato della stampante.
Quindi una prima protezione dei diritti dell’autore dell’oggetto stampato è data dalla assenza della trasmissione del file originale dal sito di elaborazione a quello di stampa; questo è un vantaggio intrinseco della tecnologia descritta nei brevetti citati.
D’altra parte la tecnica di funzionamento disconnesso rende impossibile lo scambio di chiavi crittografiche tramite il già richiamato protocollo Diffie-Hellman: infatti esso richiede una connessione attiva tra le due parti della trasmissione, perché sono necessarie due trasmissioni di dati nei due sensi per generare la chiave crittografica segreta e comune. La tecnica descritta nei due brevetti citati non permette quindi una efficace protezione dei dati in caso di funzionamento disconnesso.
Lo scopo della presente invenzione è quello di descrivere un metodo di scambio dati e comandi sicurizzato che consenta di risolvere gli inconvenienti sopra descritti.
Sommario dell’invenzione
Secondo la presente invenzione viene descritto un metodo implementato su computer per la codifica e decodifica di file e comandi trasmessi e/o ricevuti tra un computer ed una periferica agenti alternativamente e rispettivamente come dispositivo ricevente e dispositivo trasmittente e senza necessità di driver, il detto metodo essendo caratterizzato dal fatto di comprendere:
- un passo di generazione di un file di scambio di dati e comandi a scambiare tra detto computer e detta periferica, in cui il detto file di scambio di dati e comandi comprende una pluralità di settori;
- un passo di scrambling del detto file di scambio di dati e comandi, in cui i detti settori del detto file di scambio di dati e comandi vengono mescolati sulla base di un processo di codifica generato a partire da almeno una chiave di scrambling condivisa tra detto computer e detta periferica, in cui la detta chiave di scrambling benché condivisa è mantenuta segreta;
- un passo di trasmissione di un file di scambio di dati e comandi scramblerato verso la detta periferica;
- un passo di descrambling del detto file di scambio di dati e comandi scramblerato da parte della detta periferica utilizzando la detta almeno una chiave di scrambling.
In un aspetto della presente invenzione, il detto passo di scrambling utilizza Γ algoritmo Diffie-Hellmann per la generazione della chiave di scrambling segreta.
In un aspetto della presente invenzione, si ha un passo di scrambling applicato all’ interno di ogni settore, all’allocazione dei singoli byte che compongono ognuno dei detti settori del detto file di scambio di dati e comandi.
In un aspetto della presente invenzione, il detto computer e la detta periferica non sono tra loro connessi all’atto del detto passo di scrambling ed operano in modalità disconnessa, ed in cui sono presenti:
- un passo di trasmissione in condivisione tra detto computer e detta periferica di una pluralità di chiavi di cifratura asimmetrica di cui una delle dette chiavi di cifratura asimmetrica è una chiave di scrambling pubblica;
- un passo di generazione da parte di un mittente selezionato tra detto computer e detta periferica di una pluralità di chiavi segrete per mezzo di un generatore software di numeri casuali;
- un passo di codifica delle dette chiavi segrete mediante un codificatore di tipo RSA, alimentato in ingresso con detta chiave di scrambling pubblica e detta pluralità di chiavi segrete;
- un passo di memorizzazione entro un settore predeterminato del detto file di scambio di dati e comandi dei chiavi segrete codificate e prodotte in uscita dal detto codificatore di tipo RSA;
- un passo di invio del detto file di scambio di dati e comandi verso un dispositivo ricevente, in cui il detto dispositivo ricevente conosce preventivamente Γ ubicazione entro detto file di scambio di dati e comandi della posizione del detto settore predeterminato.
In un aspetto della presente invenzione, il detto dispositivo ricevente estrae dal detto file di scambio di dati e comandi le dette chiavi segrete e le pone su di un primo ingresso di un decodificatore di tipo RSA alimentato su di un suo secondo ingresso da detta chiave pubblica, e dal fatto che a seguito di detta estrazione il detto decodificatore di tipo RSA genera su di una sua uscita la pluralità di chiavi segrete decodificate e il dispositivo ricevente esegue il detto passo di descrambling.
Vantaggiosamente, il detto settore predeterminato presenta una posizione generata per mezzo di un generatore di numeri casuali ed in cui detta posizione è condivisa tra detto computer e detta periferica mediante uno ricetrasmissione preventiva allo scambio del detto file di dati e comandi.
Segnatamente, la detta periferica viene vista dal detto computer come un dispositivo di memoria di massa.
Descrizione delle figure
L’invenzione verrà ora descritta facendo riferimento alle figure annesse in una sua forma di realizzazione preferita e non limitativa.
- La figura 1 illustra una pluralità di file con settori scambiati e ordine di scambio;
- La figura 2 illustra un ordine di scambio dei settori dei detti file;
- La figura 3 illustra un diagramma di codifica di un file;
- La figura 4 illustra un diagramma di decodifica di un file.
Descrizione dettagliata dell’invenzione
Con riferimento alle figure annesse, viene descritto un metodo di scambio di dati e comandi sicurizzato, tra due dispositivi uno ricevente ed uno trasmittente che sono visti, in particolare per quanto riguarda una periferica, come una memoria di massa e dunque possono operare con uno scambio di dati e comandi in modalità driverless.
Come si è detto, conoscendo la tecnica di scambio dati e comandi tramite file descritta nel brevetto RM2013A000728 è possibile, con uno sforzo limitato, leggere i dati trasmessi. Infatti, anche non conoscendo le reali posizioni dei byte di controllo (ad esempio quelli che contengono i puntatori ai settori in lettura e scrittura) e le reali posizioni dei settori in cui sono allocati i dati da scambiare, è possibile ricavare tali posizioni per mezzo di un’attenta osservazione, eventualmente automatizzata, dei dati e settori interessati ad uno scambio.
Infatti i settori che contengono i byte di controllo della trasmissione (i puntatori) sono letti e scritti ad ogni operazione di lettura e scrittura dei settori di dati, quindi ad un settore di questo tipo si fa accesso molto più frequentemente che a quelli che contengono i dati: è quindi possibile capire quali sono i settori relativi ai byte di controllo.
Un successivo esame del contenuto dei byte all’ interno di un settore di controllo permette di individuare quali sono i puntatori, perché essi si incrementano regolarmente fino a puntare all’ ultimo settore di dati e poi tornano indietro a puntare al primo settore di dati e riprendono quindi ad incrementarsi. I settori di dati sono anch’essi facilmente riconoscibili perché vi si accede sequenzialmente, uno dopo l’altro, prima in scrittura e poi in lettura. Quindi si può affermare che, per mezzo dell’analisi di una certa quantità di dati trasmessi, è possibile ricavare l’organizzazione dei dati nel disco di scambio e quindi è possibile estrarre tutti i dati scambiati in seguito con lo stesso protocollo.
La tecnica che è oggetto della presente invenzione si basa sul fatto che la decodifica dei dati scambiati è di gran lunga più difficile se la posizione dei dati all’interno del file di scambio cambia frequentemente, ad esempio ad ogni nuovo scambio di dati.
Con riferimento alla figura 1, è indicata l’organizzazione logica dei settori del file 100 di scambio dati e comandi (che per semplicità è rappresentato come formato da soli 8 settori). Il primo settore, indicato con 0 e tratteggiato, è quello che contiene i byte di controllo della comunicazione (byte di stato e puntatori). Ognuno dei settori dei file è, secondo il presente metodo, in realtà allocato nel disco in una diversa posizione: il settore 0 è allocato nel settore fisico 3, il settore 1 nel 6 e così via. Per stabilire la posizione dei settori si usa un “algoritmo di scrambling” 200, che è un procedimento matematico che, a partire da un insieme finito di numeri interi, genera un secondo insieme o file 101 formato dagli stessi numeri, ma scambiati tra loro secondo una legge apparentemente casuale.
Con riferimento alla figura 2, la quale illustra il detto algoritmo di scrambling, si vede che i numeri interi appartenenti ad un insieme ordinato di A, per mezzo della trasformazione C, detta scrambling 200, sono collegati ad altrettanti numeri interi del secondo insieme B in modo apparentemente casuale. In realtà l’algoritmo di scrambling si basa su una chiave di scrambling D, che è un grande numero intero e opera in modo tale che la stessa chiave, applicata in momenti o luoghi diversi, produce sempre la stessa corrispondenza tra i due insiemi di numeri.
Quindi, analogamente ad un algoritmo di crittografia, il possesso della chiave di scrambling D permette a due soggetti di costruire la stessa corrispondenza. Detta chiave di scrambling è mantenuta segreta.
Nella tecnica oggetto del presente brevetto, la chiave di scrambling viene scambiata, per ogni nuovo trasferimento di dati, con l’algoritmo Diffie-Hellman secondo la tecnica già descritta nel brevetto RM2013A000728, quindi l’allocazione dei settori del disco cambia con legge apparentemente casuale ad ogni nuova comunicazione tra il computer e la periferica e/o viceversa.
Un ulteriore livello di sicurezza può essere ottenuto per mezzo dello scrambling applicato, all’ interno di ogni settore, all’allocazione dei singoli byte che lo compongono. La chiave usata può essere la stessa usata per lo scrambling dei settori oppure una seconda chiave anch’essa concordata in anticipo tramite Diffie-Hellman.
La Richiedente fa notare che, usando la tecnica qui descritta, è anche possibile usare contemporaneamente la cifratura a blocchi dei dati contenuti nei settori, con un algoritmo simmetrico “tradizionale” quali ad esempio DES, 3DES o AES. Il vantaggio della protezione per mezzo dello scrambling è duplice: prima di tutto, non permette a chi intercetta la comunicazione di leggere i byte di controllo della comunicazione e quindi di seguirne (o eventualmente modificarne) l’andamento; in secondo luogo lo scrambling è meno oneroso dal punto di vista computazionale rispetto ad un algoritmo crittografico tradizionale, quindi è più facilmente realizzabile nel caso di periferiche dotate di piccoli microcontrollori con limitate capacità di elaborazione.
Viceversa, nel caso in cui si desideri la massima sicurezza possibile, è possibile usare la tecnica di scrambling, ma cifrando anche i blocchi di dati con un algoritmo simmetrico tradizionale. La chiave di cifratura simmetrica può essere una seconda o terza chiave scambiata sempre all’ inizio di ogni nuova comunicazione.
Sia nel caso di uso dello scrambling da solo, sia nel caso di uso congiunto scrambling+cifratura simmetrica, le chiavi possono essere scambiate con qualsiasi periodicità, secondo il livello di sicurezza desiderato: solo una volta; ad ogni nuova sessione; ad ogni nuovo scambio di dati; periodicamente anche all’ interno dello stesso scambio di dati.
Tutti i metodi finora descritti si basano su uno scambio, più o meno frequente, di chiavi segrete e condivise per mezzo del noto metodo Diffie-Hellman ma, come scritto sopra, tale metodo non è utilizzabile nel caso in cui il computer e la periferica non sono connessi tra loro e il file di scambio dati e comandi è usato per accumulare una sessione di lavoro da effettuare in diversi tempi e luoghi. Nel caso del funzionamento disconnesso si usa una tecnica addizionale descritta nel seguito.
Il destinatario di un file di scambio dati e comandi (persona fisica, organizzazione oppure macchina periferica, ad esempio stampante 3D), viene preventivamente dotato di una coppia di chiavi di cifratura asimmetrica, ad esempio secondo il metodo RSA. La chiave privata resta segreta all’ interno della periferica mentre quella pubblica è inviata al mittente (persona fisica, organizzazione oppure computer) con qualsiasi mezzo a disposizione, ad esempio tramite Internet oppure con l’invio di un file su mezzo fisico.
Come indicato in figura 3, il dispositivo che genera il file di scambio dati e comandi 100 (computer mittente) genera, per mezzo di un generatore di numeri casuali, le chiavi segrete 300. Le chiavi segrete 300 sono: la eventuale chiave di crittografia simmetrica K1 usata per cifrare i dati (con algoritmo DES, 3DES, AES o simili); la chiave di scrambling dei settori K2; la eventuale chiave di scrambling dei byte all’ interno dei settori K3. Il numero di chiavi segrete 300 qui descritto come tre non è da considerarsi limitativo al fine dell’ambito di protezione fornito dalle rivendicazioni.
Il computer mittente provvede quindi, per mezzo del codificatore RSA 402, a cifrare le chiavi segrete 300 con la chiave pubblica 400 del destinatario. Il codificatore RSA 402 presenta dunque un primo ed un secondo ingresso 402’, 402” rispettivamente alimentati con le chiavi segrete 300 e con la chiave pubblica 400, e produce il messaggio codificato sulla sua uscita 403. Il risultato prodotto sull’ uscita 403 del codificatore RSA 402, cioè Γ insieme delle chiavi segrete 300, viene scritto in uno dei settori del file di scambio 101, indicato con E nella figura 3. Il settore E è allocato in una posizione predeterminata; se la lunghezza delle chiavi è tale da richiedere più di un settore, è allocato un numero sufficiente di settori contigui o separati 404. Eventualmente la detta posizione predeterminata è generata a sua volta da un generatore di numeri casuali, e il numero corrispondente al detto settore E viene condiviso tra computer e periferica. In questo modo la sicurezza della trasmissione viene aumentata di volta in volta. Il file così protetto viene memorizzato ed inviato alla periferica che lo dovrà attuare.
Con riferimento alla figura 4, la periferica, allorquando ha ricevuto il file 100 di scambio di dati e comandi, dapprima estrae dal file di scambio le chiavi segrete E dal detto file 100 e per mezzo di un decodificatore RSA 502 provvede a decifrare le chiavi usando la propria chiave privata 500. Analogamente al caso del codificatore, il decodificatore RSA comprende un primo ed un secondo ingresso 502’, 502” alimentati rispettivamente dalle chiavi E e dalla chiave privata 500 e produce in uscita le chiavi decodificate K1-K3 600.
A questo punto sono disponibili le chiavi segrete K1-K3 per la decifratura e per il “descrambling” dei dati e il processo di esecuzione dei comandi contenuti nel file e di estrazione dei dati avviene come prima descritto per il caso in cui le chiavi sono scambiate con Γ algoritmo Diffie-Hellman.
I vantaggi del metodo descritto nella presente invenzione sono chiari alla luce della descrizione che precede. Segnatamente, il detto metodo consente - tramite l’ordine cambiato dei byte all’ interno dei settori - di impedire l’estrazione indesiderata dei dati e dei comandi da parte di utenza non autorizzata.
È infine chiaro che all’oggetto della presente invenzione possono essere applicate aggiunte, modifiche o varianti ovvie per un tecnico del ramo senza per questo fuoriuscire dall’ambito di tutela fornito dalle rivendicazioni annesse.

Claims (7)

  1. Rivendicazioni 1. Metodo implementato su computer per la codifica e decodifica di file e comandi trasmessi e/o ricevuti tra un computer ed una periferica agenti alternativamente e rispettivamente come dispositivo ricevente e dispositivo trasmittente e senza necessità di driver, il detto metodo essendo caratterizzato dal fatto di comprendere: - un passo di generazione di un file di scambio di dati e comandi (100) da scambiare tra detto computer e detta periferica, in cui il detto file di scambio di dati e comandi comprende una pluralità di settori; - un passo di scrambling del detto file di scambio di dati e comandi, in cui i detti settori del detto file di scambio di dati e comandi (100) vengono mescolati sulla base di un processo di codifica generato a partire da almeno una chiave di scrambling (D; 400) condivisa tra detto computer e detta periferica; - un passo di trasmissione di un file di scambio di dati e comandi (101) scramblerato verso la detta periferica; - un passo di descrambling del detto file di scambio di dati e comandi scramblerato (101) da parte della detta periferica utilizzando la detta almeno una chiave di scrambling (D; 400).
  2. 2. Metodo secondo la rivendicazione 1, caratterizzato dal fatto che il detto passo di scrambling utilizza una o più chiavi segrete generate con Γ algoritmo Diff ie-Hellmann .
  3. 3. Metodo secondo una qualsiasi delle precedenti rivendicazioni 1 o 2, caratterizzato dal fatto di comprendere un passo di scrambling applicato all’ interno di ogni settore, all’allocazione dei singoli byte che compongono ognuno dei detti settori del detto file di scambio di dati e comandi (100).
  4. 4. Metodo secondo una qualsiasi delle precedenti rivendicazioni, in cui il detto computer e la detta periferica non sono tra loro connessi all’atto del detto passo di scrambling ed operano in modalità disconnessa, ed in cui sono presenti: - un passo di trasmissione in condivisione tra detto computer e detta periferica di una pluralità di chiavi di cifratura asimmetrica di cui una delle dette chiavi di cifratura asimmetrica è una chiave di scrambling (400) pubblica; - un passo di generazione da parte di un mittente selezionato tra detto computer e detta periferica di una pluralità di chiavi segrete (300) per mezzo di un generatore software di numeri casuali; - un passo di codifica delle dette chiavi segrete (300) mediante un codificatore di tipo RSA (402), alimentato in ingresso con detta chiave di scrambling (400) pubblica e detta pluralità di chiavi segrete (300); - un passo di memorizzazione entro un settore predeterminato (E) del detto file di scambio di dati e comandi (100) dei chiavi segrete (300) codificate e prodotte in uscita (403) dal detto codificatore di tipo RSA (402); - un passo di invio del detto file di scambio di dati e comandi (100) verso un dispositivo ricevente, in cui il detto dispositivo ricevente conosce preventivamente l’ubicazione entro detto file di scambio di dati e comandi (100) della posizione del detto settore predeterminato (E).
  5. 5. Metodo secondo la rivendicazione 4, caratterizzato dal fatto che il detto dispositivo ricevente estrae dal detto file di scambio di dati e comandi (100) le dette chiavi segrete (300) e le pone su di un primo ingresso di un decodificatore di tipo RSA (502) alimentato su di un suo secondo ingresso da detta chiave di scrambling (400), e dal fatto che a seguito di detta estrazione il detto decodificatore di tipo RSA (502) genera su di una sua uscita la pluralità di chiavi segrete (600) decodificate e il dispositivo ricevente esegue il detto passo di de-scrambling,
  6. 6. Metodo secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che il detto settore predeterminato (E) presenta una posizione generata per mezzo di un generatore di numeri casuali ed in cui detta posizione è condivisa tra detto computer e detta periferica mediante uno ricetrasmissione preventiva allo scambio del detto file di dati e comandi (100).
  7. 7. Metodo secondo una qualsiasi delle precedenti rivendicazioni, in cui la detta periferica viene vista dal detto computer come un dispositivo di memoria di massa.
ITUB2015A004062A 2015-09-30 2015-09-30 Metodo di scambio dati e comandi sicurizzato. ITUB20154062A1 (it)

Priority Applications (1)

Application Number Priority Date Filing Date Title
ITUB2015A004062A ITUB20154062A1 (it) 2015-09-30 2015-09-30 Metodo di scambio dati e comandi sicurizzato.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ITUB2015A004062A ITUB20154062A1 (it) 2015-09-30 2015-09-30 Metodo di scambio dati e comandi sicurizzato.

Publications (1)

Publication Number Publication Date
ITUB20154062A1 true ITUB20154062A1 (it) 2017-03-30

Family

ID=55070081

Family Applications (1)

Application Number Title Priority Date Filing Date
ITUB2015A004062A ITUB20154062A1 (it) 2015-09-30 2015-09-30 Metodo di scambio dati e comandi sicurizzato.

Country Status (1)

Country Link
IT (1) ITUB20154062A1 (it)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020071553A1 (en) * 2000-10-20 2002-06-13 Taizo Shirai Data storage device, data recording method, data playback method, and program providing medium
US20020108035A1 (en) * 2001-02-06 2002-08-08 Cormac Herley Method and apparatus for partial encryption of content
US20060039554A1 (en) * 2004-08-18 2006-02-23 Roxio, Inc. High security media encryption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020071553A1 (en) * 2000-10-20 2002-06-13 Taizo Shirai Data storage device, data recording method, data playback method, and program providing medium
US20020108035A1 (en) * 2001-02-06 2002-08-08 Cormac Herley Method and apparatus for partial encryption of content
US20060039554A1 (en) * 2004-08-18 2006-02-23 Roxio, Inc. High security media encryption

Similar Documents

Publication Publication Date Title
CN107346401B (zh) 用于安全地执行程序的信息保障系统
AU2012204448B2 (en) System and method for in-place encryption
EP2016525B1 (en) Encryption apparatus and method for providing an encrypted file system
KR101742364B1 (ko) 저장 디바이스와 호스트 사이에서의 데이터 전달의 보호를 위한 저장 제어기 버스 인터페이스의 사용
CN100403281C (zh) 一种基于动态密钥的硬盘数据加密方法及其装置
TWI552017B (zh) 安全資料儲存裝置、系統及其資料寫入與讀取方法
US20120255030A1 (en) Secret sharing apparatus, sharing apparatus and secret sharing method
AU2012204448A1 (en) System and method for in-place encryption
Khati et al. Full disk encryption: bridging theory and practice
EP2722787A1 (en) Method and apparatus for writing and reading encrypted hard disk data
CN109657497B (zh) 安全文件系统及其方法
US20150074426A1 (en) Generating and Using an Enhanced Initialization Vector
CN205302294U (zh) 一种嵌入式系统
ITRM20130728A1 (it) Metodo di scambio comandi tramite disco usb e relativi dispositivi che ne permettono l¿implementazione.
ITUB20154062A1 (it) Metodo di scambio dati e comandi sicurizzato.
US20160156468A1 (en) Content management system, host device and content key access method
CN110113151A (zh) 一种对elf格式程序的非侵入式实时加解密方法
CN102110066A (zh) 一种税控加密卡的控制方法
CN114401081A (zh) 数据加密传输方法、应用及系统
CN106934305A (zh) 一种嵌入式系统
CN102930229B (zh) 用于提高数据安全性的办公系统
ITUB20159567A1 (it) Metodo di protezione di file multimediali da copia e distribuzione non autorizzata e file multimediale associato.
JP6168894B2 (ja) システム、エミュレータ、デバッグシステムおよびデバッグシステムにおける方法
JP2008205753A (ja) 信号処理装置
CN109598155A (zh) 一种ssd数据加密装置以及方法