Protezione codice

Salve!

So che chiedo qualcosa che va contro la filosofia Arduino, volendo proteggere il codice inserito nel microcontrollore per non farlo leggere, ci sono procedure da fare? normalmente ci sono dei fuse ma da ambiente Arduino si puo' fare?

Il ATmega ha dei Fuse da settare per bloccare la possibilitá di leggere il codice programmato. Per questo devi settarli con un programmattore ISP.
Sappi comunque che il codice letto non é il Sketch scritto!!
Ciao Uwe

uwefed:
Per questo devi settarli con un programmattore ISP.
Sappi comunque che il codice letto non é il Sketch scritto!!
Ciao Uwe

Questo lo sapevo, lo Sketch e' il sorgente, nel microcontrollore c'e' l'eseguibile, la mia curiosita' era dovuta la fatto che se facessi una scheda su piattaforma Arduino tutti potrebbero replicare hardware e con la lettura del micro potrebbero fare dei perfetti cloni della scheda realizzata da me

Sì.
Però come ti ha detto Uwe, serve un programmatore "serio", non l'USBtiny per capirsi. Qualcosa che possa operare anche sui fuse che normalmente non sono impostabili con avrdude. Una volta protetta la flash, un tentativo di leggerla la resetterà, mettendo al sicuro il tuo programma.

Altrimenti l'operazione di copiatura del firmware e della successiva scrittura su altri micro è sempre possibile (="clonatura", come hai detto tu).

Questo lo sapevo, lo Sketch e' il sorgente, nel microcontrollore c'e' l'eseguibile, la mia curiosita' era dovuta la fatto che se facessi una scheda su piattaforma Arduino tutti potrebbero replicare hardware e con la lettura del micro potrebbero fare dei perfetti cloni della scheda realizzata da me

Questo è un problema di licenza che devi approfondire. Il core di arduino è rilasciato sotto i termini della licenza LGP che ti permette di realizzare il tuo programma closed sources.

Mentre il bootloader di Arduino è rilasciato sotto GPL che è virale. Tuttavia possiamo considerare il bootloader come un kernel che ha una sua licenza che non dovrebbe impedirti di realizzare hardware + software proprietari.

Tuttavia considera che ci vuole poco a replicare le funzioni del tuo hardware e software e mettere in commercio una scheda simile alla tua magari anche migliore. Considera anche che un progetto rilasciato Open Hardware e Open Software ti permette comunque di guadagnare, l'esempio lampante è Arduino stesso, che anche se copiato a destra e a manca, sai sempre qual'è l'originale.

Ciao.

MauroTec:
Tuttavia considera che ci vuole poco a replicare le funzioni del tuo hardware e software e mettere in commercio una scheda simile alla tua magari anche migliore.

Si.. hai ragone.. ma almeno ci hanno perso del tempo per riscrivere il tutto! ]:smiley:

Io credo (astrobeed magari lo confermi) che anche l'AVR Dragon possa modificare tali fuse particolari, e l'AVR Dragon costa poche decine di euro.

leo72:
l'AVR Dragon costa poche decine di euro

Abbastanza decine di euro.. poi dipende dal paragone di tasca $)
Se lo devi comprare apposta, il gioco vale la candela? :roll_eyes:

Tu hai parlato di ipotesi. Se mai arrivassi alla realizzazione di un prodotto commerciale e se mai decidessi di chiudere il sorgente del firmware, io dico che l'AVR Dragon tu lo compreresti senz'altro :wink:
Altrimenti non ti ponevi neanche la domanda di come proteggere il tuo codice :stuck_out_tongue:

Io credo (astrobeed magari lo confermi) che anche l'AVR Dragon possa modificare tali fuse particolari, e l'AVR Dragon costa poche decine di euro.

Io credo proprio che lo possa fare, ma mi pare di ricordare che Menniti lo ha ordinato, poi lo puoi fare anche con AVRISP mkii che costa poco più di Arduino Uno.

Abbastanza decine di euro.. poi dipende dal paragone di tasca smiley-money
Se lo devi comprare apposta, il gioco vale la candela?

Ma io ricordo il costo in dollari mi pare $59 che considero molto economico anche perchè c'è su della Ram, una SD e puoi fare debug.

Ciao.

MauroTec:
Tuttavia considera che ci vuole poco a replicare le funzioni del tuo hardware e software e mettere in commercio una scheda simile alla tua magari anche migliore. Considera anche che un progetto rilasciato Open Hardware e Open Software ti permette comunque di guadagnare, l'esempio lampante è Arduino stesso, che anche se copiato a destra e a manca, sai sempre qual'è l'originale.

Ciao.

Ho fatto la domanda, perche' nel mio piccolo mi sono trovato di fronte ad una situazione di questo tipo:
Premetto che sono un appassionato di elettronica e non professionista, mi diletto quando capita a scrivere qualche programmino, fino a poco tempo fa ho usato i microcontrollori della Microchip programmati con il PicBasic Pro della Melabs; su richiesta di un amico circa 1 anno fa ho realizzato una piccola automazione per un cancello scorrevole, per fare le cose bene mi feci fare da una ditta specializzata 10 stampati (era il numero minimo), il mio amico fu contentissimo, mi rimasero pero' sullo stomaco altri 9 stampati e cosi' decisi di provare a vendere sul noto sito di aste, devo dire con grosso stupore che c'era chi comprava, duro' fino a che un utente dopo avere comprato la mia scheda si mise a vendere la stessa cosa, con la differenza che lui ha una ditta alle spalle e puo' permettersi fra l'altro di emettere la fattura, ha la partita iva, inoltre gli utenti che guardano le inserzioni si sentono piu' sicuri quando alle spalle c'e' un negozio ed un sito internet, comunque per togliermi lo sfizio comprai una sua scheda, indovina l'amico cosa aveva fatto? sempliemente aveva rifatto lo stampato sullo stesso mio hardware ed aveva letto il file hex che c'era nel PIC che io maldestramente per ingenuita' non avevo protetto, come faccio a dirlo? semplice ci sono delle funzioni che non ho publicizzato da nessuna parte ed un vistoso bug riguardante antirimblazo su un ingresso del micro.

Fortunatamente in Italia esiste il "diritto d'autore" e non i copyright.
Il diritto d'autore si applica anche ai software e nasce spontaneamente nel momento in cui l'opera viene creata, per cui non si deve registrare nulla obbligatoriamente.
Tu hai tutti i diritti sull'opera nel momento in cui puoi dimostrare di esserne il creatore.

Ora in questo caso io credo che la dimostrazione sia semplice: tu hai i sorgenti, lui dovrebbe non averli. Tu hai messo una specie di "firma digitale" nel software, ossia una funzione nascosta che solo l'autore dello stesso conosce. Se la scheda ha un certo valore e smercio perché non sentire un avvocato?

Io fossi in te non giocherei con le utomazioni di cancelli, ci sono normative tanto severe che fanno passare la voglia a chiunque di farli, se si fa male qualcuno con un impianto CE sono guai seri, figurati con una centralina non conforme, ti devi vendere casa solo se uno si rompe un unghia. Se poi l'elettronica non prevede il controllo delle forze applicate tramite letture delle pressioni dell'olio e assorbimenti di corrente peggio ancora.
Pericoli provocati da guasti nei dispositivi elettronici di comando, Direttiva 98/37/CE, la quale costituisce il testo unificato della Direttiva Macchine, riportando le disposizioni contenute nelle direttive 89/392, 91/368, 93/44 e 93/68.

Non si fa male quasi mai nessuno, ma se per caso succede, ci mettono 3 secondi a puntare il dito su chi ha fatto la centralina.
Lo dico per te, magari non sai con precisione la severità che è stata applicata in questi ultimi anni.

ciao

pablos71
Ok. Hai ragione, ma in questo caso chi ci va di mezzo in caso di infortunio? L' autore o la ditta che lo comercilizza (non rispettando i diritti d' autore)?
Ciao Uwe

so che sono passati molti anni ma volevo dire la mia.
al posto di proteggere da lettura e copia basta utilizzare una scheda in SMD, tirare fuori e segnali utilizzati ed inserire il tutto in un a bella colata di resina....oppure usare direttamente il solo chip e rasare il codice scritto sopra...hai voglia a cercare di cosa si tratta.
Fabio
]:slight_smile:

osairit:
so che sono passati molti anni ma volevo dire la mia.
al posto di proteggere da lettura e copia basta utilizzare una scheda in SMD, tirare fuori e segnali utilizzati ed inserire il tutto in un a bella colata di resina....oppure usare direttamente il solo chip e rasare il codice scritto sopra...hai voglia a cercare di cosa si tratta.
Fabio
]:slight_smile:

:fearful:

.......e che cos'è la NASA......

Anch'io vorrei dire la mia, giusto perché di questo argomento se ne "discuteva" non più di un mese fa con dei miei colleghi.
Partendo dal presupposto che ignoro completamente cosa dice la licenza di arduino e sinceramente non sono nemmeno interessato a conoscerne il contenuto, reputo che chi si vuol basare su questo tipo di piattaforma e ne vuole nascondere a tutti il codice commette, dal mio punto di vista, un'azione "ideologicamente" scorretta e del tutto opinabile!

Come dicevo prima ne "discutevo" con una persona che in seguito ad un progetto realizzato, il tester per valvole proporzionali, ne voleva nasconder il codice! A parte che un programmatore anche di medio-basso livello che si mette a leggere quel codice probabilmente si mette a ridere, ma non è questo il punto, se siamo riusciti ad ottenere un minimo di risultato è stato grazie alla condivisione che altri utenti hanno fornito dei loro codici. Codici che magari in alcuni punti ho copiato o leggermente modificato, ma che senza di essi non sarei riuscito a combinare nulla, perciò rimango sempre molto basito quando vedo che qualcuno utilizzando arduino vuole tracciare qualsivoglia segreto!
Senza tener conto del fatto che uno dei principi che sta alla base della nascita di questo favolo prodotto è la didattica!!

So che l'utente "volcane" ha lui stesso affermato di chiedere qualcosa che va contro la fisolofia vigente e ribadisco il fatto che questa opinione si riferisce solo ad arduino e non alla disavventura dalla lui raccontata, però ci tenevo particolarmente ad intervenire.

Meluino