This project is useful only to Italian people, but feel free to take a look if you want.
ArubaOTP seed extractor
Aruba è uno dei fornitori di SPID in Italia, il cui livello 2, necessario per accedere a molti dei servizi che offrono questo metodo di login, richiede l'attivazione dell'autenticazione 2FA. Aruba la implementa con la sua app (ArubaOTP) che al suo interno utilizza un 'implementazione standard di TOTP, ma il seed (la chiave segreta per effettuare la generazione) non viene mai esposta direttamente all'utente, visto che l'associazione in app avviene attraverso un qr code, che contiene solamente un numero, che viene scambiato con il server al fine di ottenere il seed vero e proprio.
Questo piccolo script permette l'estrazione del seed TOTP, in modo da poterlo utilizzare in un'altra app (magari quella che usi normalmente per il 2FA), ed evitare di installare un'altra app inutile nel telefono.
Oltre che per la 2FA relativa allo SPID, l'estrazione del seed TOTP funziona anche per la 2FA relativa alla firma digitale remota di Aruba.
NOTA BENE Alcune app non supportano l'algoritmo
HMAC-SHA256
per il TOTP.
- Google Authenticator supporta solamente codici a 6 cifre (inoltre su android non supporta l'algorimo specificato, mentre su apple si)
- Authy non supporta l'algoritmo, ma non fornisce alcun avvertimento a riguardo. Leggendo il qr non darà errore, ma fornirà codici sbagliati.
Se volete un suggerimento, io ho trovato ed utilizzo tuttora Aegis Authenticator
pip install -r requirements.txt
per installare le dipendenze richiesteNon scansionare il QR con l'app aruba, altrimenti lo script non potrà fare il suo lavoro
python ./scripts/main.py extract <validation_code> -q
per estrarre il codice, che verrà stampato a schermo in caso di successo.In alternativa puoi usare il comando
python ./scripts/main.py generate
per ottenere il codice per l'associazione ed il comandopython ./scripts/main.py printqr
in un secondo momento per generare il qr per salvare il codice sul telefono
Ricorda di fare un backup del seed, altrimenti rischi di rimanere chiuso fuori dal tuo account! (Ovvio ci sono le procedure di recupero ma comunque...)
Non mi assumo alcuna responsabilità per danni derivanti dall'uso di questo script.