Tavola-disegno-6@8x-100-scaled
Tavola-disegno-5-copia-3@8x-100-scaled
Tavola-disegno-5-copia-5@8x-100-scaled
Tavola-disegno-5-copia-6@8x-100-scaled
Tavola-disegno-5-copia@8x-100-scaled
Tavola-disegno-5-copia-8@8x-100-scaled
Tavola-disegno-3@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
previous arrow
next arrow

Tavola-disegno-6@8x-100-scaled
Tavola-disegno-5-copia-3@8x-100-scaled
Tavola-disegno-5-copia-5@8x-100-scaled
Tavola-disegno-5-copia-6@8x-100-scaled
Tavola-disegno-5-copia@8x-100-scaled
Tavola-disegno-5-copia-8@8x-100-scaled
Tavola-disegno-3@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
previous arrow
next arrow

Tavola-disegno-6@8x-100-scaled
Tavola-disegno-5-copia-3@8x-100-scaled
Tavola-disegno-5-copia-5@8x-100-scaled
Tavola-disegno-5-copia-6@8x-100-scaled
Tavola-disegno-5-copia@8x-100-scaled
Tavola-disegno-5-copia-8@8x-100-scaled
Tavola-disegno-3@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
previous arrow
next arrow

Si può evitare la riproduzione indesiderata dei propri progetti elettronici?

da | 10 Gen, 20 | Tutorial |

Hai realizzato un progetto elettronico a livello hobbistico e non vuoi farlo copiare agli amici? Temi che il tuo cliente duplichi la tua idea, rivendendola a tua insaputa? Vuoi costruire e distribuire un circuito elettrico ma non vuoi che gli altri replichino le sue funzionalità? Scopriamo assieme se esistono tecniche che consentano di preservare, il più possibile, i segreti del progettista e che ostacolino le concorrenze a carpire le più profonde funzionalità del suo lavoro.

Introduzione

A livello software è abbastanza semplice “offuscare” il proprio lavoro. Esistono programmi di utilità che eseguono proprio questa funzione. Essi “sporcano” volutamente il codice per rendere la vita meno facile agli ingegneri del software per risalire al listato sorgente. Anche lo stesso programmatore può rendere il suo software più oscuro e misterioso andando, appunto, a complicare gli algoritmi, inserendo routines inutili e ridondanti. A ogni modo, è sempre possibile risalire al lavoro iniziale e non esiste procedura che renda inutile ogni tentativo. Anche a livello hardware, a volte, si ha la stessa necessità. A livello industriale e commerciale i produttori hanno l’obbligo di immettere sul mercato i propri prodotti “in chiaro” proprio per poter essere valutabili e controllabili ai fini delle norme di sicurezza. Nei piccoli ambiti, invece, si può tentare di camuffare lo schema elettrico proprio per evitare che l’amico di turno eviti di copiare, a proprio vantaggio, il lavoro altrui o che qualche “smanettone” possa andare a sbirciare laddove non dovrebbe. Per molti è infatti molto più semplice “copiare” che cercare di produrre da creare un progetto di sana pianta. Le procedure di offuscamento, in altre parole, modificano o celano il design in modo che l’architettura diventi poco chiara per un eventuale osservatore.

Il Reverse Engineering

Il Reverse Engineering è il processo con cui un oggetto o un software viene scomposto e sezionato per smascherare i suoi segreti, la sua architettura o, in generale, conoscerlo approfonditamente. Il nostro articolo si riferisce, ovviamente, a progetti in ambito casalingo e hobbistico per i quali, spesso, il progettista cerca il più possibile di mantenere intatti i suoi sacrifici, i suoi artifici tecnici e informatici, pur distribuendo ad altri il suo circuito elettronico. Molto spesso, infatti, i furbetti acquistano per pochi euro un bel progetto, magari realizzato in casa, per poi studiarlo a ritroso, speculando immeritatamente sul lavoro altrui. Studiamo adesso alcune tecniche per distribuire, non a livello professionale ovviamente, un proprio circuito elettrico, in modo che esso continui a funzionare normalmente e in tutta sicurezza. Chi tenterà di risalire agli schemi elettrici d’origine troverà parecchi ostacoli ricordando, tuttavia, che i veri esperti di elettronica dotati di strumentazione adatta, saranno in grado di risalire al progetto iniziale abbastanza facilmente.

Protezione e offuscamento del codice nel microcontrollore

Alcune MCU possono essere protetti da scrittura o lettura durante la fase di programmazione. Questo è un primo ostacolo da porre sui propri progetti. Inoltre il codice sorgente può essere volutamente reso più complicato inserendo algoritmi e procedure del tutto inutili. A ogni modo, se i compilatori sono di ottima qualità, essi stessi provvedono a ottimizzare il codice binario finale, eliminando eventuali ridondanze del programma.

Cancellazione delle caratteristiche del componente

Un valido tentativo di protezione del circuito potrebbe essere quello di cancellare i valori dei componenti elettronici saldati sul PCB. Con l’uso di diverse tecniche (pennarelli, carta abrasiva, acidi, fusione plastica o incollaggio superficiale) si può tentare di rimuovere le caratteristiche di resistenze, condensatori, chip e altri. Per i condensatori sarà sufficiente eliminare il valore della capacità e le eventuali polarità, per le resistenze si potrà tentare di nascondere o sporcare indelebilmente le bande colorate mentre per i chip basterà offuscare le sigle. Queste operazioni devono essere compiute, ovviamente, prima della brasatura degli stessi sul PCB. E’ possibile anche tentare di rimuovere le serigrafie dei componenti sul top layer, specialmente quelle relative ai riferimenti (R1, R2, C1, ecc). La figura 1 ne mostra chiaramente il concetto. E’ un lavoro abbastanza complicato e noioso ma se ben eseguito può regalare tante soddisfazioni.

Figura 1: la cancellazione dei valori dei componenti aumenta la difficoltà di decodifica del circuito elettrico

Manipolare i valori dei componenti

Un’altra buona tecnica è quella di creare una serie di componenti elettronici (resistori e condensatori, per esempio) che mostrano un valore altamente diverso da quello che effettivamente viene utilizzato. Questa tecnica è davvero efficace poiché se si adottano particolari valori, chi cerca di clonare il lavoro rischia seriamente di danneggiare il circuito. Ad esempio, si potrebbero sfalsare i valori in un partitore resistivo, stravolgendo completamente i punti di lavoro di un Mosfet, oppure si potrebbe usare un resistore di basso valore, polarizzando la base di un transistor in modo che esso riceva una corrente eccessiva di base, distruggendolo. Oppure ancora, si possono realizzare falsi diodi con la banda colorata sull’anodo invece che sul catodo. Anche la sigla dei chip può essere modificata, con opportuni accorgimenti.

Complicazione del PCB

Le piste di un circuito stampato potrebbero essere rese estremamente complicate e intricate, allungandole sulla piastra. Ovviamente tale operazione rende difficile la vita anche al legittimo proprietario, in caso di guasto. La figura 2 mostra come far divenire quasi decodificabili le linee dei dati di un PCB. Si rammenti che tale procedura può essere eseguita solo sui circuiti non critici, che lavorano in corrente continua o in bassa frequenza, nei quali la forma e la disposizione delle tracce non comportano alcun effetto sul funzionamento del circuito. Nella illustrazione si possono notare quattro elementi:

  1. lo schema elettrico di un semplice alimentatore stabilizzato a 12 V;
  2. il prototipo 3D del montaggio dei componenti;
  3. lo sbroglio più semplice e naturale (e facilmente copiabile e duplicabile) del circuito;
  4. lo sbroglio in doppia faccia ed estremamente critico dello stesso circuito.

Figura 2: rendendo più complicato e critico il circuito stampato le probabilità di copia del proprio progetto diminuiscono

Creazione e aggiunta di falsi componenti

Un’ulteriore tecnica consiste nell’aggiungere componenti elettronici e chip al circuito senza che essi siano effettivamente utili al progetto. Essi possono essere abilmente connessi tra loro senza, per questo, influire minimamente con funzionamento del circuito originario, dal quale sono elettricamente scollegati. E’ consigliabile, in questo caso, aggiungere componenti dal basso costo, per non influire negativamente sull’importo finale del prototipo. Un esempio di tale tecnica è illustrata in figura 3. Si tratta dello stesso schema precedente, nel quale sono stati aggiunti alcuni componenti assolutamente inutili.

Figura 3: l’aggiunta di componenti superflui rende il circuito più difficile da comprendere

Immersione del circuito nella bachelite

Una tecnica estrema e (quasi) definitiva è quella d’immergere l’intero circuito nella bachelite, inizialmente in forma liquida. Dopo l’asciugatura si ottiene un unico blocco compatto, omogeneo e opaco, che racchiude in forma stagna il prototipo, come visibile in figura 4. Ovviamente l’insieme ottenuto può essere sottoposto ai raggi X per poter liberamente essere esaminato, almeno nelle parti metalliche.

Figura 4: un circuito elettrico potrebbe essere immerso in un blocco compatto di bachelite

Se il circuito funziona in bassa frequenza è possibile anche rivestirlo con dei fogli di alluminio, scongiurando anche gli effetti delle radiografie.

Conclusioni

Sicuramente vi sono altri metodi di protezione del layout del proprio hardware. Non esistono tecniche assolute e perfette ma si può tentare di rendere la vita più complicata a chi intende impadronirsi dei segreti di un circuito. Unendo tra di loro le diverse tecniche esaminate prima e altri metodi efficaci si può innalzare di molto la protezione dei prototipi. Per fortuna, d’altro canto, esistono casi in cui gli sviluppatori sono ben lieti di distribuire e condividere gratuitamente le loro fatiche, dando vita a quel fantastico mondo collettivo di scambio globale: l’Open Source.

Condividi questo articolo

Categorie

Archivi

Apri la chat
1
Ciao come possiamo aiutarti?
Ciao come possiamo aiutarti?