lunedì 8 dicembre 2014

netToken - parte 2 - il codice

Veniamo all'implementazione software di netToken.


Il codice è composto da un loop principale dove viene verificata la chiamata da un client esterno, cioè dal browser. Il microservo agisce semplicemente quando la pagina web generata da Arduino viene chiamata in HTTP GET, senza alcuna necessità di passare parametri nell'url.
Ovviamente questa tecnica è molto primitiva, ma non avendo altra necessità oltre a quella di far muovere il braccetto fino a premere il pulsante del token per poi farlo ritornare in posizione iniziale, non ho previsto la possibilità di interpretare comandi inviati dal client.

netToken - parte 1: il progetto

Questo strano progetto nasce dall'esigenza di condividere tra più persone un token crittografico. Cos'è un token crittografico si fa presto a dirlo: è un piccolo dispositivo dotato di un display numerico che in modo temporizzato offre all'utente un numero valido per pochi secondi, che deve essere utilizzato per le operazioni di internet banking (cioè una one-time-password).
E' tipicamente usati sia dai siti di onbanking che dalle molte app mobile che ormai tutte le banche mettono a disposizione ai clienti in un'ottica di multicanalità.



Tale numero è univoco e viene generato in un certo istante da quel particolare token con una validità di pochissimi secondi, il che permette alla banca di garantire che chi usa quel numero per accedere sia per forza fisicamente in possesso di quel token, che tradotto in criteri di sicurezza significa avere una certezza in più che la persona che accede è probabilmente il cliente che possiede il token crittografico.
Per chi ne volesse sapere di più, passo la palla a wikipedia, non era questo l'argomento che volevo approfondire. Sappiate solo che il token non comunica con alcunchè ed è semplicemente sincronizzato alla nascita con un server.
Completo il quadro dicendo che la mia azienda si occupa tra l'altro proprio di sviluppo di app mobile per il settore internet banking.
Ebbene, proprio per questo nel mio ufficio ci sono più programmatori che lavorano sulla stessa app contemporaneamente (su due piattaforme: iOS ed Android) e per testare quello che scrivono utilizzano un ambiente di test che la banca ha messo a disposizione con delle credenziali di prova che simulano in tutto e per tutto l'ambiente reale. E come non poteva mancare il token crittografico dato che il tutto deve essere il più realistico possibile?
Immaginate ora queste persone che devono continuamente passarsi l'un l'altro il token per fare test diversi sulla stessa utenza! Semplicemente scomodo ed inefficiente.
Come risolvere il problema? Con questo semplice "coso", che ho chiamato semplicemente netToken.


netToken serve per controllare remotamente via web il token, in modo da permettere la pressione del tastino che lo fa accendere e mostrare per qualche secondo un nuovo numero, catturandone l'immagine remota via webcam, il tutto utilizzabile sia dal un browser desktop che dal un dispositivo mobile.