mercoledì 30 marzo 2022

Come creare una password sicura

 Per creare una password sicura possiamo affidarci a :

-generatori online 

-applicazioni in esecuzione sul nostro pc

- oppure possiamo costruirla sommando caratteri che derivano dalle varie possibilità di cui sopra

  vediamole una categoria alla volta :

I generatori online  : esistono diversi siti che offrono di generare una password forte :

a) https://passwordsgenerator.net/  sito di uso immediato permette di fare parecchie scelte,dalla lunghezza della password ai tipi di caratteri da utilizzare,si può scegliere di non farsi trasmettere la password su internet ed invece generarla sul nostro dispositivo (flaggare checkbox "Generate On Your Device") , la connessione è comunque in httpS (quindi Sicura)


b) https://www.lastpass.com/it/features/password-generator : altro sito molto ben fatto ed immediato

    


si può scegliere la lunghezza della password, dopo si può scegliere un radio botton con 3 scelte:

Facile da dire: evita i numeri ed i caratteri speciali 

Facile da leggere: evita i caratteri ambigui : ad esempio 1 ed l oppure 0 ed O

Tutti i caratteri : in questo caso vengono utilizzati tutti i caratteri compresi quelli ambigui , i numeri, i simboli e tutti i caratteri compresi quelli maiuscoli e quelli minuscoli 

in seguito si può scegliere tra i check box quali insiemi di caratteri selezionare tra :

        Lettere maiuscole

        Lettere minuscole

        Numeri

        Simboli

c)   https://www.nexcess.net/web-tools/secure-password-generator/

     



Questo sito offre oltre alle password classiche anche le word based password in cui si scelgono quante parole devono comporre la password e quanti numeri devono essere presenti. Purtroppo il servizio è in sola lingua inglese quindi le parole "casuali" sono inglesi :-( .


Le applicazioni locali per generare password:  

a)Free password generator ,si tratta di un applicazione per windows 


Quest'applicazione ha il pregio di essere eseguita sul nostro computer localmente il che visto che si tratta di password magari "delicate", non guasta.

b) Un'altra applicazione gratuita è Advanced Password generator , 
     permette di generare una sola password alla volta
    

ma scorrendo sulla barra possiamo aggiornare la password alla lunghezza scelta e scorrendo avanti ed indietro le password sono sempre nuove , interessanti le "password options" che ci permettono anche di creare un insieme customizzato dei caratteri da usare per la costruzione delle password    


Ora che abbiamo visto alcune applicazioni web ed alcune applicazioni installabili sul nostro pc vediamo alcune tecniche per craccare le password in modo da essere consapevoli quando scegliamo una password rispetto alla possibilità che venga individuata.

-Attacco "Brute Force" : l' attacco di forza bruta esegue tutte le permutazioni possibili fino a trovare la password "giusta", in realtà questo tipo di attacco non è spesso utilizzato poichè una password robusta potrebbe richiedere secoli e secoli di cpu al 100% prima di trovare la password giusta , questo attacco è inefficace nel caso ci siano più parole ,oltre a caratteri casuali, che aumentino la "massa" della password

-Attacco dizionario: in questo caso l'attaccante dispone di un dizionario composto da un elenco di parole possibili e le prova,questo tipo di attacco è inefficace nel caso in cui facciano parte della password anche un pò di caratteri casuali 

Questi sono due tipi di attacco diretti , che cercano di trovare ognuno a sua modo la password . Se ad una password di 16 caratteri casuali aggiungiamo anche un paio di parole "casuali" (ad esempio "pizza4stagioni") magari inserendole dopo il terzo carattere (uno a caso va comunque bene ovviamente)  abbiamo una password praticamente inattaccabile con un attacco di forza bruta ed altrettanto resistente ad un attacco dizionario .

 Le parole servono a renderci più facile ricordare la password che non se fosse tutta di caratteri casuali, dobbiamo però evitare di usare scorciatoie che ci permettano di ricordare facilmente la password ma che siano a conoscenza anche di altri , un esempio: la data di nascita . 

In ogni caso è meglio cambiare la password spesso , al massimo ogni due-tre mesi.

Altra regola sempre valida non usare la stessa password per diversi siti-applicazioni poichè nel caso uno di questi ultimi fosse crackato sarebbero in pericolo anche gli altri nostri servizi che condividono quella password , i quali magari per l'accesso chiedono l'email oltre alla password e l'email è a volte molto facile da reperire.

Ovviamente fate attenzione alle cosiddette tecniche di social engineering : tra queste le più comuni consistono nel farsi dire dalla vittima le credenziali chiedendole tramite email o sms, potete avere una password "perfetta" ma se la consegnate ad un hacker serve a poco . 

Altro problema è dove custodire in sicurezza le password : 

una risposta a questa domanda possono essere i password manager : questo tipo di programmi salvano in modo crittografato le password che noi inseriamo utilizzando una password da noi impostata (detta generalmente master password) e le riportano in chiaro quando re-inseriamo la password.

Andiamo ad analizzare KeePass  password manager(https://keepass.info/):

 si tratta di un programma gratuito ed opensource(linguaggio c#) :  permette di utilizzare come algoritmo di cifratura AES-256 (https://it.wikipedia.org/wiki/Advanced_Encryption_Standard ),si tratta di un algoritmo di crittografia simmetrica quindi viene utilizzata la stessa password sia per crittografare che per decrittografare. I dati vengono salvati in locale sul nostro pc , è quindi fondamentale che il nostro disco non venga danneggiato per evitare di perdere tutto, è meglio aggiungere il backup del database di KeePass "nomefile.kdbx" ai nostri backup fatti su  un disco diverso , può andar bene anche una pendrive per salvare il db anche se i dischi sono generalmente meno soggetti a rottura rispetto alle pendrive. Fondamentale ricordare la master password ,se la dimentichiamo non possiano recuperare l'elenco di password che abbiamo inserito. Quando impostiamo la master password il programma può produrre un pdf da stampare su sui salvare locazione della copia di backup e master password : 


 Il pdf soprastante deve essere letto completamente ed una volta compilato deve essere riposto in un luogo sicuro come specifica il documento stesso.

L'interfaccia del programma è piuttosto    semplice.All'indirizzo https://keepass.info/help/base/index.html trovate l'help ed i numerosi link portano a puntuali help specifici  ,ad esempio KeePass può importare/esportare elenchi di password da altri gestori di password https://keepass.info/help/base/importexport.html oppure da file csv 


KeePass consente di compilare i form di login trascinando username e password salvate nei suoi elenchi, qui un immagine d'esempio: https://keepass.info/help/base/usingpws.html#dragdrop , usando questa comoda utilità evitiamo inoltre che un possibile keylogger possa memorizzare i caratteri immessi da tastiera. 

Questo software ha anche un sofisticato generatore di password :

per quanto io conosca è il miglior software per gestire le password in locale gratuito ed opensource.





Crittografia e WCF per passare una password ( od una qualsiasi altra stringa (xml,json, etc.etc.) ) da un applicazione ad un' altra in relativa sicurezza

 Il codice che segue è da considerarsi in alpha e da non utilizzare in un ambiente di produzione , qui potete trovare il  "progetto&quo...