Progetto Locuz – Password board

locuz board

Grazie al Web 2.0 rispetto a diversi anni fà che per eseguire delle operazioni bisognava essere fisicamente presenti in un determinato posto, oggi è possibile eseguire delle operazioni specifiche come ad esempio controllare il conto corrente, effettuare degli acquisti, e quant’altro in pochi minuti tramite l’ausilio di un computer.
In questo articolo verranno trattati alcuni tra i problemi relativi ai dati di accesso e verrà presentata una possibile soluzione: Il Locuz Project.

Da questo punto di vista tutto sembra essere più semplice da eseguire, ma da un altra prospettiva al giorno d’oggi la nostra vita è resa più complicata a causa di username e password da ricordare.

Infatti, per interagire con il proprio sito preferito, che esso sia un Blog o un sito di E-commerce, bisogna inserire un nome utente e una password per autenticarsi.

Fin quì tutto ok, ma che succede quando ci si deve ricordare:

  • Il nome utente e la password per accedere al proprio computer;
  • Il nome utente e la password per accedere alla casella di Posta
  • Elettronica;

  • Il nome utente e la password dell’account di Google;
  • Il nome utente e la password degli account dei Social Network;
  • Il nome utente e la password di tutti i siti a cui ci si è registrati;
  • ……

Ve lo dico io, principalmente possono accadere due casi:

  • Caso 1. Si utilizza lo stesso nome utente e la stessa password per tutti i siti a cui ci registra. In questo caso agevolate ed anzi invogliate chi vuole impossessarsi dei vostri dati, visto che gli basterà avere un unico nome utente ed un unica password per accedere al vostro intero mondo potendo utilizzare la vostra identità e i vostri dati sensibili.
  • Caso 2. Dato che avete tanti nomi utente e tante password da ricordare, molto probabilmente li dimenticherete presto o li confonderete tra di loro non potendo così avere accesso ai vostri account.

E’ vero, potreste anche scrivere da qualche parte, magari su un file word, tutte le credenziali di accesso, ma anche allora non sarebbero al sicuro visto che un file tira l’altro.

Per proteggere al meglio i propri account dovrebbero essere utilizzate delle password lunghe e complesse, che però non velocizzerebbero il processo di autenticazione dato che prima di accedere al proprio account in un momento di fretta si dovrà impiegare un pò di tempo per digitare una password lunga, complessa e senz’altro difficile da ricordare.

Quello che voglio presentare in quest’articolo è un progetto che può essere una soluzione al nostro problema: Il Progetto Locuz.

Il Progetto Locuz è un pocket password hardware basato su Arduino tramite il quale non è più necessario ricordare i propri dati di accesso principali dato che basta collegare il dispositivo alla porta USB del computer e premere un tasto (da programmare in fase di programmazione) per inserire i nostri dati di accesso in modo totalmente automatico.

Proprio così!

Grazie a questo progetto non dovrai più cercare il bigliettino sul quale hai scritto i dati di accesso – che quando si cerca non si trova mai- o temere per la sicurezza dei tuo account.

Come ho già scritto, questo progetto è basato sul sistema Arduino che tramite la libreria UsbKeyboard svolge la funzione di emulatore di tastiera USB.
E’ una libreria abbastanza semplice da utilizzare dato che come potrete vedere nel codice basta indicare la lettera da stampare.
I pin di default preimpostati per il connettore USB sono quelli che ho utilizzato.

Come potrai vedere è un dispositivo davvero semplice ma utile da creare ed inoltre può assumere una dimensione abbastanza piccola da poter essere tenuto in tasca.

Vediamo lo Schema Elettrico basato su Arduino Pro Mini:

Ecco la LISTA DELLE PARTI necessarie per realizzare questo progetto:

Codice: Componente
R1
Resistenza da 10K
R2
Resistenza da 10K
R3
Resistenza da 10K
R4
Resistenza 10K
R5
Resistenza da 10K
R6
Resistenza da 68 Ohm
R7
Resistenza da 68 Ohm
R8
Resistenza da 2k2K
D1
Diodo da 3V6
D2
Diodo da 3V6
B1
Pulsante da circuito stampato
B2
Pulsante da circuito stampato
B3
Pulsante da circuito stampato
B4
Pulsante da circuito stampato
B5
Pulsante da circuito stampato

Quì di seguito il codice di esempio del progetto LOCUZ (presente anche nella cartella compressa in allegato):

#include "UsbKeyboard.h" // INCLUDO LA LIBRERIA UsbKeyboard

#define BUTTON_PIN 10 // DEFINISCO IL PIN SUL QUALE E' COLLEGATO IL PULSANTE

// SE IL TIMER ISR E' CORRETTO FACCIO RISPARMIARE TEMPO CAMBIANDO IL VALORE A 0
#define BYPASS_TIMER_ISR 1

void setup() {
  pinMode(BUTTON_PIN, INPUT);
  digitalWrite(BUTTON_PIN, HIGH);
  
#if BYPASS_TIMER_ISR
  // DISATTIVO IL TIMER 0 DI OVERFLOW INTERRUPT (rimuovere le virgolette)
  TIMSK0&=!(1<<"TOIE0"); // ++
#endif
}

#if BYPASS_TIMER_ISR
void delayMs(unsigned int ms) {
   /*
  */ 
  for (int i = 0; i < ms; i++) {
    delayMicroseconds(1000);
  }
}
#endif

void loop() {
  
  UsbKeyboard.update();

  digitalWrite(13, !digitalRead(13));

  if (digitalRead(BUTTON_PIN) == 0) {
    
  // DA QUI' COMINCIO A DIGITARE LA FRASE DEMO LOCUS PROJECT BY IVAN SCORDATO
    
    UsbKeyboard.sendKeyStroke(KEY_L);
    UsbKeyboard.sendKeyStroke(KEY_O);
    UsbKeyboard.sendKeyStroke(KEY_C);
    UsbKeyboard.sendKeyStroke(KEY_U);
    UsbKeyboard.sendKeyStroke(KEY_Z);

    UsbKeyboard.sendKeyStroke(KEY_SPACE);

    UsbKeyboard.sendKeyStroke(KEY_P);
    UsbKeyboard.sendKeyStroke(KEY_R);
    UsbKeyboard.sendKeyStroke(KEY_O);
    UsbKeyboard.sendKeyStroke(KEY_J);
    UsbKeyboard.sendKeyStroke(KEY_E);
    UsbKeyboard.sendKeyStroke(KEY_C);
    UsbKeyboard.sendKeyStroke(KEY_T);
    UsbKeyboard.sendKeyStroke(KEY_SPACE);
    UsbKeyboard.sendKeyStroke(KEY_B);
    UsbKeyboard.sendKeyStroke(KEY_Y);
    UsbKeyboard.sendKeyStroke(KEY_SPACE);
    UsbKeyboard.sendKeyStroke(KEY_I);
    UsbKeyboard.sendKeyStroke(KEY_V);
    UsbKeyboard.sendKeyStroke(KEY_A);
    UsbKeyboard.sendKeyStroke(KEY_N);
    UsbKeyboard.sendKeyStroke(KEY_SPACE);
    UsbKeyboard.sendKeyStroke(KEY_S);
    UsbKeyboard.sendKeyStroke(KEY_C);
    UsbKeyboard.sendKeyStroke(KEY_O);
    UsbKeyboard.sendKeyStroke(KEY_R);
    UsbKeyboard.sendKeyStroke(KEY_D);
    UsbKeyboard.sendKeyStroke(KEY_A);
    UsbKeyboard.sendKeyStroke(KEY_T);
    UsbKeyboard.sendKeyStroke(KEY_O);


    UsbKeyboard.sendKeyStroke(KEY_ENTER);
#if BYPASS_TIMER_ISR  // CONTROLLO SE IL TIMER ISR E' FISSATO.
    delayMs(20);
#else
    delay(20);
#endif
    
   }

}

Nell'immagine seguente potete vedere il progetto ultimato in fase di Test.

Per Locuz Project ho scelto di utilizzare la board Arduino Pro Mini principalmente perchè permette di avere un vero e proprio Arduino completo di stabilizzatori di tensione soltanto in 3 x 1,5 cm di superfice.
Grazie alla sua ridotta dimensione è possibile assemblare definitivamente (nulla vieta il fatto di poter impiegare per altri scopi la board) i propri progetti e posizionarli in meno spazio di quanto occupasse un Arduino Stand-Alone.

Non c’è molto da dire, soltanto che questo appena presentato è sicuramente un progetto che può senz’altro aiutare a risolvere diversi problemi riguardo la sicurezza e a tutelare la propria identità sul Web.

Inoltre, questo che ho presentato è solo un esempio di quello che può essere realizzato con Arduino che svolge la funzione di simulatore di periferica USB in quanto ad esempio può essere realizzato un gamepad, un datalogger di sensori, un ricevitore IR, e tutto ciò che si può immaginare.

Prospettive Future
Sicuramente, questo progetto può essere modificato, ampliato, potenziato e migliorato.
Infatti, in base all'utilizzo che se ne vuole fare, può essere utilizzato un altro microcontrollore come ad esempio un Attiny85.
Così facendo è possibile ridurre ancor di più le dimensioni dell board ed il suo consumo.
Oppure potrebbe essere addirittura aggiunto un modulo bluetooth per realizzare un dispositivo senza fili.

Non fra molto tempo, questo dispositivo potrebbe anche diventare un decriptatore delle proprie password criptate con il proprio algoritmo.

Nel file allegato è presente tutta la documentazione ed il materiale necessario per realizzare e programmare il dispositivo comprese le librerie.

Sulla board Arduino Pro mini non è presente un convertitore USB-SERIALE per cui, per programmarla è necessario munirsi di un convertitore, oppure può essere seguita la mia stessa strada: programmarla tramite connessione ISP con un altra board.

Adesso la parola a voi:Cosa ne pensate?
Pensate che questo progetto possa essere migliorato?
Se si, Come?
Quale potrebbe essere un suo ulteriore utilizzo?

Sono a disposizione nei commenti per ogni approfondimento.

34 Comments

  1. Marven 6 dicembre 2013
  2. Tiziano.Pigliacelli 6 dicembre 2013
  3. Ivan Scordato 6 dicembre 2013
  4. Tiziano.Pigliacelli 6 dicembre 2013
  5. Piero Boccadoro 6 dicembre 2013
  6. Piero Boccadoro 6 dicembre 2013
  7. Ivan Scordato 6 dicembre 2013
  8. Piero Boccadoro 6 dicembre 2013
  9. Ivan Scordato 6 dicembre 2013
  10. Marven 6 dicembre 2013
  11. Ivan Scordato 6 dicembre 2013
  12. Ivan Scordato 6 dicembre 2013
  13. Piero Boccadoro 6 dicembre 2013
  14. Piero Boccadoro 6 dicembre 2013
  15. Piero Boccadoro 6 dicembre 2013
  16. Ivan Scordato 6 dicembre 2013
  17. Ivan Scordato 6 dicembre 2013
  18. Ivan Scordato 6 dicembre 2013
  19. Piero Boccadoro 4 dicembre 2013
  20. Tiziano.Pigliacelli 4 dicembre 2013
  21. Ivan Scordato 4 dicembre 2013
  22. Ivan Scordato 4 dicembre 2013
  23. Tiziano.Pigliacelli 4 dicembre 2013
  24. delfino_curioso delfino_curioso 5 dicembre 2013
  25. Marven 5 dicembre 2013
  26. Ivan Scordato 5 dicembre 2013
  27. Ivan Scordato 5 dicembre 2013
  28. Ivan Scordato 5 dicembre 2013
  29. Marven 5 dicembre 2013
  30. Ivan Scordato 5 dicembre 2013
  31. delfino_curioso delfino_curioso 5 dicembre 2013
  32. Ivan Scordato 5 dicembre 2013
  33. Ivan Scordato 5 dicembre 2013
  34. Tiziano.Pigliacelli 5 dicembre 2013

Leave a Reply