Protezione hardware per 328p-pu (standalone)

Ciao a tutti, spero di aver scelto la sezione giusta, è il mio primo messaggio sul Forum :slight_smile:
Vi spiego di cosa avrei bisogno:

praticamente sto usando un arduino per realizzare un circuito che mi comanda attraverso un relè la chiusura di un contatto e quindi di conseguenza si dovrebbe azionare un motore per sollevare le tapparelle.
Sul relè nessun problema, anche sul motore tutto ok.

Ma mi è venuta la bizzarra idea di aggiungere al circuito una protezione hardware anticopia (che successivamente realizzerò su una breadboard) e cioè inserendo un “chip/integrato/microcontrollore” che abbia al suo interno alcuni pin (piu sono e piu alta è la protezione) collegati tra di loro (contatti NC) e questi collegati ad uno o piu ingressi di arduino.
Programmando le uscite in maniera tale che se uno o piu ingressi risulta aperto, il motore non si avvia.
Ovviamente potrei adoperare un selettore dipswitch o dei normali ponti o dei normali jump, ma sarebbero a vista e quindi guardando le piste si puo risalire a quanti e quali contatti sono chiusi e in quali pin del atmega328p sono collegati.
Invece utilizzando un chip/integrato/microcontrollore (che abbia al suo interno una struttura elettronica con contatti NC) la protezione sarebbe affidabile. Quindi il nuovo circuito sarebbe clonabile solo per la parte delle piste a “vista”. Magari poi uno smanettone puo riuscire dopo bvari tentativi a clonarlo, ma almeno ci perderà piu tempo ma sopratutto io avrò fatto esperienza.

Il mio è un modo per maneggiare hardware e software, far esperimenti e capire anche sbagliado :slight_smile:

Per questo vi chiedo di postarmi qualche sigla di qualche chip/integrato/microcontrollore che abbiano i pin al suo interno collegati tra di loro NC) [vedi schema di esempio modificato da me]

images.jpg

Se sono NC, non sono collegati a nulla ... ma ho capito cosa intendi ... e temo non sarebbe un gran che efficente come sistema, anche se una cosa del genere esistesse ...

La soluzione piu semplice potrebbe essere di collegarli dal lato componenti, tenendo le piste completamente sotto il 328 in modo che non siano visibili, ed ovviamente collegarne alcuni al VCC ed altri al GND, e magari altri ancora ad uno o due pin settati come uscita che abiliti tu alti e/o bassi quando fai il controllo, soluzione molto semplice se usi il chip SMD, perche' dovresti dissaldarlo per seguire le piste, un po meno ma sempre efficace se usi il DIP ...

Oppure ci puoi mettere una mini.eprom one-wire o roba simile esterna che contenga un codice da andare a leggere per controllare se e' tutto ok ...

varistor: Il mio è un modo per maneggiare hardware e software, far esperimenti e capire anche sbagliado :)

Dato che senza firmware un mcu/micro è solo un pezzo di plastica con dei pin metallici il modo più semplice per "proteggere" il proprio lavoro è attivare le protezioni hardware anticopia delle mcu/micro. Su gli AVR la protezione si attiva tramite fuse, una volta attivata non c'è modo di copiare l'eseguibile contenuto al loro interno senza dover ricorrere ad attrezzature molto particolari a disposizione solo dei produttori di integrati e grandi laboratori di ricerca. Attenzione che se attivi la protezione hardware poi non è più possibile caricare il firmware tramite bootloader, si può fare solo tramite programmatore hardware ISP, è consentita solo la cancellazione della flash e la sua riscrittura, non è consentita la lettura.

Ciao Etemenanki,

infatti ciò che interessa a me è trovare un chip che al suo interno abbia gia dei contatti NC, così io da FUORI posso realizzare delle piste che terminano sugli ingressi del MCU (poi tramite programmazione si possono settare come "interruttori" e decidere di far ruotare il motorino soltanto se i contatti in questione sono chiusi. Peremessa: il chip inserito avrà la sigla sopra cancellata.......

Quindi se qualcuno avesse la felice idea di replicare la mia board... non saprebbe quali contatti sono in "NC" e come sia sviluppato il collegamento. Quindi mi occorre qualche sigla di chip che abbiamo questi contatti NC al suo interno.

Ciao Astro,

ottima la tua soluzione!! Però di fuse non ne capisco nulla :( ho soltanto dato un'occhiata a qualche post ma non saprei da dove cominciare. Se sei così gentile da indicarmi come fare potrei pure provarci. Ho appena acquistato avr-dragon dietro consiglio di un amico (spero che questo possa fare cio che mi occorre), ma mi servirebbe una GRANDE MANO su come impostare i valori. Ho gia letto molte discussioni ma si parla di tante opzioni tra software e hadware e faccio fatica a comprendere il settaggio dei fuse (sono vome un bambino a cui bisogna insegnare le tabelline :) :) :) )

Quindi se qualcubno di voi mi insegna passo passo su come settare i fuse, vorrei provarci molto volentieri.

Quella dei fuse è la soluzione migliore. Considera anche che qualcuno con le competenze e la tecnologia necessarie per copiarti il circuito... fa prima a farselo da solo :) quindi conviene solo se stai facendo qualcosa di realmente innovativo.

Scusa, ma... Basta un tester per vedere quali pin stanno su e quali stanno giù!!! :-) Qualcosa puoi fare con una sonda DS18B20: ciascun esemplare ha un codice univoco che puoi verificare con lo sketch: se la sonda ha un codice diverso, il 328 rimane bloccato e visualizza un messaggio sul display.

Ciao Datman,

Basta un tester per vedere quali pin stanno su e quali stanno giù!!! :-)

No se monto un integrato che abbia molti piedini. Occorrerebbe molto tempo a capire quali contatti sono aperti e quali sono chiusi (troppe combinazioni da provare...)

Ma è possibile che non ci sia un integrato (chip, ,microcontrollore...) che abbia dei contatti NC al suo interno?

varistor: Occorrerebbe molto tempo a capire quali contatti sono aperti e quali sono chiusi (troppe combinazioni da provare...)

Ma scherzi ? ... con una bella serie di proble collegati in parallelo ... pochi secondi anche su un 40 pin !!!

NON inventatevi [u]inutili[/u] sistemi di protezione che credete sicurissimi, NON avete l'esperienza per farlo ! Mi ricordate quelli che inventano "segretissimi sistemi di criptografia" ... che, chiunque abbia un minimo di basi matematiche, gli decripta in pochi minuti :D :D :D

Se vuoi proteggere qualche cosa, ci sono, nei Fuse, i Lock Bit nati e progettati apposta ... [u]studiati[/u] il datasheet del ATmega328P ed avrai risolto il tuo problema di proteggere.

Guglielmo

gpb01: ... "segretissimi sistemi di criptografia" ... che, chiunque abbia un minimo di basi matematiche, gli decripta in pochi minuti :D :D :D ...

Heheh ... mi ricordi il mio ... che per decrittarlo bastano un paio di tabelle ed un foglio di carta, ma che negli ultimi 35 anni nessuno e' mai riuscito a decifrare, a meno che non gli dicessi io prima come fare ... :P

Seriamente, varistor, il sistema con i pin NA o NC come dice Guglielmo e' inutile, chiunque si colleghi al chip con un probe te lo "decifra" in pochi secondi ... gia invece il suggerimento di Datman e' migliore, dato che se ci colleghi un chip che ha un seriale univoco, il programma funzionera' solo con quel chip collegato ... questo per il "pro", mentre invece il "contro" e' che ovviamente dovresti programmare ogni singola MCU con il seriale univoco del chip connesso, quindi in pratica uno sketch, o una modifica allo sketch, per ogni singola MCU che installi (oppure la possibilita' di registrare un nuovo seriale mediante una combinazione di tasti specifica, ma se qualcuno la scopre, sei daccapo) ...

Il sistema migliore rimane quello di bloccare la MCU in lettura con i fuse ...

C'è un'altra possibilità: che il processore entri in modalità di apprendimento solo se, appena acceso, trova un DS18B20 che manda il codice giusto, che poi viene sostituito con quello da apprendere... Oppure il seriale del DS18B20 "Master" può essere inviato in parallelo a qualcosa come un pulsante o a un LED o... ... ... :-)

Datman: trova un DS18B20 che manda il codice giusto... :-)

Anche con questo non è certo un problema trovare il codice, con il più economico analizzatore di stati logici, volendo un secondo Arduino, si può leggere l'invio e ottenere il codice che può essere facilmente riprodotto usando una qualunque mcu da pochi decine di cent. :) Per farla breve, il solo modo per proteggere il codice di un AVR, indirettamente anche il circuito su cui è montato, è usare la relativa protezione hardware tramite i fuse Lock Bit che esistono apposta per questo scopo e garantiscono una protezione di alto livello a costo zero, una protezione quasi invalicabile e che comunque richiede mezzi che solo un produttore di ic, o un laboratorio di microelettronica di altissimo livello, dispone. Per capirci, per violare la protezione dei Lock Bit servono attrezzature per un costo complessivo di oltre 200000E, a meno che non si tratta del sistema di guida di un ICBM costa molto meno rifare il tutto. :)

Etemenanki: Heheh ... mi ricordi il mio ... che per decrittarlo bastano un paio di tabelle ed un foglio di carta, ma che negli ultimi 35 anni nessuno e' mai riuscito a decifrare, a meno che non gli dicessi io prima come fare ...

Perché non lo hai mai dato a qualche matematico che fa quello di mestiere e che te lo decifra in 10 minuti ... ;)

Per non parlare poi di quelli della NSA che te lo decifrano in ... quale microsecondo :D :D :D

Guglielmo

gpb01: Perché non lo hai mai dato a qualche matematico che fa quello di mestiere e che te lo decifra in 10 minuti ... ;)

Per non parlare poi di quelli della NSA che te lo decifrano in ... quale microsecondo :D :D :D

Guglielmo

Eh, ed invece ci hanno provato pure un paio di matematici di professione, amici miei con cui ci ho scommesso una pizza (perche' mi sentivo buono :P) ... uno insegna in universita', e l'altro lavora in una compagnia dove risolve roba che io manco capisco cos'e' anche se me la spiega ... e dopo un paio di settimane, quando si sono arresi e gli ho spiegato il sistema, si sarebbero dati dei calci a vicenda per non esserci arrivati, tanto e' semplice il principio ... non e' un'algoritmo di cifratura particolare a renderlo difficile da decrittare, e' solo che se non conosci gia in anticipo alcuni elementi chiave, non c'e' modo di arrivarci dal messaggio, non importa quanti messaggi puoi avere in mano per esaminarli ...

Pero' se conosci qualche matematico che vuole provarci ...

C44905CC 11F03EB4 EEC01CDC 7C8EBCC6 9FE15F2

Etemenanki: Pero' se conosci qualche matematico che vuole provarci ...

C44905CC 11F03EB4 EEC01CDC 7C8EBCC6 9FE15F2

Al primo "contest" dove si occupano di queste cose glie lo passo ... ... però quello è un po' poco, dovresti mandarmi almeno un po' di messaggi di senso compiuto ;)

Guglielmo

Eh... Senza aver modo di provare di volta in volta il risultato e senza sapere almeno che sono 5 parole di senso compiuto, le soluzioni sono infinite...

Guglielmo: una decina bastano ?

Datman: non serve a nulla sapere il numero delle parole di senso compiuto, con questo sistema di codifica ;)

Etemenanki:

Guglielmo: una decina bastano ?

Si, ma siamo da parecchio OT ... manda il tutto via MP e fermiamoci da sporcare ulteriormente questo thread. :)

Guglielmo

Ok ... hai ragione scusa, mi sono fatto prendere un po la mano ;)

Buongiorno ragazzi, si lo so che la protezione con gli NC e NA non è una soluzione sicura, era solo per "disorientare" la lettura delle piste sulla scheda. C'è da dire che tra noi che abbiamo letto questo thread..sappiamo che si tratta di un chip con all'interno contatti NC e NA.. ma uno che non ne sa nulla della mia idea ed vuol capire che utilizzo abbia quel chip... e quali contatti son collegati al atmega328.. non sarebbe cosa facile. infatti come gia specificato, la sigla del chip io la cancellerei (con opportuna carta abrasiva...) quindi chiunque penserebbe che quel chup è collegato con l'atmega328 e che serva pr trasmettere o ricevere segnali o altro... Insomma, aiuterebbe a scoraggiare quelli che vedono il circuito a vista. Una cosa è vedere le piste il percorso netto che fanno, una cosa è impelagarsi e studiare di che chip si tratti, a cosa serva, come è collegato all'atmega.. Io vorrei provarci, ma non so quale micro/chip abbia questi dannati NC e NA al suo interno...

Come gia detto, a quanto ne so nessun chip ha questi "contatti" al suo interno ... a meno che tu non voglia usare una PGA sprecandola per fargli fare solo dei contatti, ma non so se il costo ne varrebbe la pena, considerando che non ti servono solo le PGA ma anche tutta l'attrezzatura hardware e software per programmarle ... a quel punto fai prima a resinare il circuito in un blocchetto di FT0610 oppure MC183 o una qualsiasi altra resina bicomponente epossidica caricata con inerti abrasivi, cosi diventa impossibile per chiunque anche solo vederlo ...