Gestione script e password

Da un po’ di tempo a questa parte uso script python per gestire piccole attività ripetitive su database. Un tempo avevamo database in locale o presso i clienti, protetti da reti locali per cui non ci si poneva grandi problemi sulla gestione delle password e della sicurezza dell’accesso, salvo qualche rara eccezione. Ora i tempi sono cambiati, la mia azienda è cresciuta e sempre di più lavoriamo sul “cloud”. Questo ha portato a una moltiplicazione di destinazioni e alla complicazione di piccole attività come fare dump da un database all’altro. Da questa aumentata complessità è nato il mio bisogno di utilizzare script di automazione e un paio d’anni fa (forse anche prima…) ho iniziato a lavorare con python e devo dire che per questo tipo di cose è molto comodo, facile da imparare e usare e al tempo stesso potente e completo.

Siccome ancora non ho a disposizione uno strumento “comodo” di gestione delle password ho deciso di fare un passo ulteriore, rispetto al dover andare a recuperare la password e copiarla come parametro ogni volta che devo eseguire uno script. Un primo passo è stato usare un file di testo in chiaro sul pc, d’altra parte il pc è già protetto di suo da un accesso controllato, il che garantisce già un minimo livello di sicurezza.

L’argomento sicurezza è serio e complesso, secondo me in molti lo prendono seriamente, alcuni sono al limite della patologia, molti hanno un approccio serio ma pragmatico, altri secondo me non ne capiscono molto. Poi ci sono quelli che invece non se ne preoccupano, però sono sempre meno perché l’evoluzione dell’informatica, la diffusione dell’uso del cloud e dei servizi accessibili su internet costringe a fare attenzione. Io confesso di essere molto critico rispetto ai molti che ritengono ed esibiscono esperienza di sicurezza, sono spesso gli stessi che ti fanno mettere simboli del dollaro, punti esclamativi e maiuscole nelle password che però possono essere lunghe otto caratteri. Certamente, se uso come password la parola “password” mi espongo a un grosso rischio, ma non è che usando “Pa$sword1” possa essere molto più sicuro.

Premesso rapidamente il pensiero sull’argomento (era tanto che volevo esporlo), come dicevo che mi sono posto il problema di come gestire in sicurezza le password di accesso a sistemi sul mio pc per poter lanciare gli script in modo quanto più automatico e veloce. Si tratta di un piccolo pezzo di gestione della sicurezza su cui mi sono chiesto quali sono le buone pratiche standard (“best practice” come direbbero quelli che ne sanno) per gestire questa cosa. Alla fin fine queste password devono essere salvate da qualche parte, anche sia un password manager in piena regola è sempre un sistema a cui io devo poter accedere tramite una password. Il fatto di averle sul mio pc limita la gestione in quanto non è condivisa, ma questo è un passo ulteriore che per ora tralascio, altrimenti non si fa nulla.

Facendo una rapida ricerca su google qualche cosa di trova, la cosa più interessante che ho trovato è stata questa, da cui ho preso spunto. La prima cosa che ho voluto fare è quindi informarmi un po’ sulla libreria usata: criptography. Il link dell’articolo manda a una versione piuttosto vecchia ma in realtà la libreria pare essere ancora aggiornata ed attiva e ne ho trovato vari riferimenti in giro. Per la verità non ho trovato altre librerie analoghe per python…. Il caso descritto nell’articolo è un po’ basilare perché gestisce una sola password, la mia ambizione è gestire diverse, non tantissime, parliamo di una decina al momento. In ogni caso, andando sul sito della documentazione si trovano anche un po’ di esempi interessanti. La mia idea è di usare un sistema con una password più o meno mnemonica, altrimenti sono al punto di partenza e la c’è un esempio che si basa sull’uso di PBKDF2 che io sinceramente non conosco e su cui quindi mi devo informare, anche perché sulla documentazione stessa consigliano di usare “Scrypt“. Quindi mi rimane da fare qualche prova e trovare qualche informazione chiara sul livello di sicurezza di queste soluzioni, a quel punto spero di poter fare un nuovo post con i risultati di queste mie ricerche

Lascia un commento