Password per connessione ad Arduino uno in usb

Buongiorno. Desideravo sapere se possibile inserire una password quando con il cavo usb mi connetto ad Arduino uno, con uno sketch già inserito. Grazie

... con lo scopo di ? Che Arduino ?

Guglielmo

No, non credo proprio che si possa, la seriale (virtuale) è gestita dal driver di conversione USB-Seriale, devi gestire la cosa nello sketch stesso.

@docdoc: dipende da COSA vuole fare e da CHE Arduino usa ... :roll_eyes:

Guglielmo

Ciao, Ale.

Grazie, non avevo notato ...
... allora dipende solo da COSA vuole fare, perché ... sulla programmazione/riprogrammazione della scheda si può fare molto poco (al limite può proteggere il codice dalla lettura/riprogrammazione con i LOCK BIT), ma, se il suo programma comunica via seriale ed è quello che vuole proteggere, allora si può fare ... :roll_eyes:

Guglielmo

Sì, puoi inserire una password da tastiera, che viene letta tramite seriale via USB dal programma che hai caricato sulla scheda Arduino.

Scusa ma non ho capito. Ci sono board che permettono di proteggere la connessione seriale tramite password, senza modificare lo sketch?

Ancora una volta ripeto dipende da COSA vuoi proteggere ... la programmazione/riprogrammazione o il colloquio con il tuo programma via seriale?

Nel primo caso SI, ci sono MCU in cui puoi proteggere con meccanismi di cifratura (e quindi con password) il firmware, nel secondo caso è banale implementare un controllo degli accessi da seriale da programma con un meccanismo di password.

Guglielmo

Io avevo inteso questo dall'OP. Per questo dicevo che non è possibile, ma deve implementare la cosa direttamente nello sketch.

Finché l'OP non ci spiega COSA vuole fare ...
... noi possiamo anche continuare a fantasticare, ma ... :roll_eyes:

Guglielmo

1 Like

Allora cerco di spiegare meglio; collego il mio pc tramite usb ad Arduino uno con Arduino ide; mi si apre uno sketch. Voglio impedire tramite una password che qualcuno entri su Arduino uno. Spero di aver chiarito. Grazie

Che io sappia non è possibile. Ma il problema è che si può scrivere nella memoria di programma di arduino UNO anche senza usare la IDE.

Ciao.

Decisamente no.

E fin qui tutto normale...

Qui già non capisco : cosa ti si "apre"?

Entri come? Per fare cosa? Interagire con lo sketch già caricato? Questo dipende solo da come hai scritto il tuo sketch.
Caricare uno sketch diverso? Questo volendo lo puoi anche impedire, settando gli appositi fuse, solo che dopo non la puoi riprogrammare nemmeno te.
Comunque mi sa che ti conviene di più usare una MCU standalone, così hai già eliminato l'USB. Una volta caricato il bootloader (ma puoi anche acquistare un ATMega 328 con già installato il bootloader) la programmi con un'interfaccia USB->Seriale (TTL).

Ciao, Ale.

Beh, non "si apre uno sketch" ma "si apre il codice sorgente dell'ultimo sketch che hai caricato nell'IDE".
Arduino non è mica come una pennetta USB, che quando la colleghi ne vedi il contenuto. Quindi quello che vedi nell'IDE non dipende da cosa hai su Arduino (anche perché quello che vedi è il codice sorgente, mentre su Arduino viene caricato l'eseguibile).

Se per "qualcuno" intendi "altri utenti del mio stesso PC", devi allora proteggere l'intero IDE ed i sorgenti dei tuoi programmi. Supponendo che si parli di Windows ad esempio, intanto devi installare l'IDE solo nel il tuo account locale e non per tutti gli utenti del sistema. Per farlo, o lo specifichi durante l'installazione oppure, meglio, usa la versione "portable" ed usa come directory del programma una per la quale hai solo tu i diritti di accesso. Anche i sorgenti mettili in una cartella riservata (es. "Documenti\Arduino"). Fatto questo, solamente chi conosce la tua password Windows può accedere all'IDE e di conseguenza ai sorgenti ed a programmare Arduino.

Se invece per "qualcuno" intendi dire che nessuno deve poter accedere al codice caricato su Arduino (quindi altre persone a cui tu dai un Arduino) ma devono gli altri solo usarlo e non vedere, scaricare e modificare il tuo codice, intanto considera che i codici sorgenti che tu vedi NON si trovano su Arduino, dove c'è solamente del codice binario.
Si può anche estrarre e da questo "decompilarlo" per ottenere un codice sorgente (in genere comunque ben poco leggibile), ma è abbastanza complicato da fare e, come per qualsiasi analisi dei rischi, va valutato il rischio in base al valore delle informazioni eventualmente estraibili: se hai un codice che costa (ossia ti sei fatto pagare) migliaia di Euro allora certo che ne vale la pena, in caso contrario direi che è fatica sprecata. In ogni caso puoi cercare di interpretare ed usare i consigli di @gpb01, dai "lock bit" ai metodi di cifratura del firmware (ma non per UNO).

Scusatemi ma io non ho capito una cosa perché non l'ho provata; quando mi connetto con il mio pc si apre il codice che ho inserito in arduino uno; se dovessi cambiare pc ritengo che con arduino ide mi connetto lo stesso e leggo il codice inserito su arduino ide; allora se possibile mi interesserebbe mettere un blocco in modo che solo io potrei leggere quel codice. Se non fosse possibile farlo allora lascerò il tutto come é sempre stato. Grazie

Si tratta di una funzionalità che tutti gli IDE hanno, ma in verità ti apre l'ultimo progetto a cui hai lavorato. Prova ad aprire arduino IDE senza collegare alcuna scheda.

Ciao.

1 Like

NO, forse non ti è chiaro che il codice che tu scrivi, così com'è, NON viene caricato in Arduino ... in Arduino viene caricato il codice macchina generato dal compilatore quando dici all'IDE di caricare il programma (codice eseguibile), ma quello che tu hai scritto (codice sorgente) si trova solo sul disco della macchina su cui lo hai scritto (o sul cloud se usi l'IDE sul cloud) e NON è recuperabile dall'Arduino su cui hai caricato l'eseguibile.

Guglielmo

L'IDE non legge il contenuto della scheda Arduino! Visualizza l'ultimo codice che hai usato.

Si ok per tutto quello che avete detto; allora riformulo la domanda: si può impedire di leggere il codice sorgente inserito su Arduino uno? Grazie