4.3. Sicurezza della password

Le password rappresentano il metodo primario di Red Hat Enterprise Linux per la verifica dell'identità degli utenti. Ecco perchè la sicurezza della password è di importanza fondamentale, per poter proteggere l'utente, la workstation e la rete.

Per sicurezza, il programma di installazione configura il sistema in modo da usare il Message-Digest Algorithm (MD5) e le password shadow. È altamente consigliato non alterare queste impostazioni.

Se non selezionate le password MD5 durante l'installazione, viene usato il formato Data Encryption Standard (DES) più vecchio. Questo formato, limita le password a soli otto caratteri alfanumerici (non abilitando punti e altri caratteri speciali) e fornisce un livello modesto di codifica di 56-bit.

Se non sono selezionate le password shadow, tutte la password sono conservate come un one-way hash nel file /etc/passwd, il quale rende il sistema vulnerabile agli attacchi del tipo password offline. Se un aggressore riesce ad ottenere un accesso come un utente normale, egli sarà in grado di copiare il file /etc/passwd nella sua macchina, e di eseguire un certo numero di programmi capaci di decifrare le password. Se è presente nel file una password non sicura,sarà solo questione di tempo prima che tale programma non trovi la password corretta.

Le password shadow, eliminano questo tipo di attacco conservando le password cifrate, nel file /etc/shadow, il quale può essere letto solo dall'utente root.

Tutto questo, forza un potenziale aggressore a cercare di decifrare una password in modo remoto, effettuando un log in in un servizio della rete di una macchina, come ad esempio SSH o FTP. Questo tentativo di attacco, è più lento e lascia traccia di sè sui file del sistema, a causa dei numerosi tentativi di registrazione falliti. Ovviamente se l'aggressore effettua un tentativo di attacco nel mezzo di una notte, e se avete delle password deboli, egli sarà in grado di ottenere un accesso, prima che si faccia giorno.

Il problema del contenuto, và oltre il problema del formato e della capacità di conservazione dati. La cosa più importante che un utente possa fare per proteggere il proprio account contro un attacco di decodifica della password, è quello di creare una password molto resistente.

4.3.1. Creazione di password resistenti

Quando si crea una password, è consigliabile seguire le seguenti istruzioni:

Non effettuate quanto di seguito riportato:

  • Non usate solo parole o numeri — Non dovete mai usare in una password solo numeri o parole.

    Alcuni esempi 'non sicuri' includono quanto segue:

    • 8675309

    • juan

    • hackme

  • Non usare parole comuni — Parole come ad esempio nomi, parole del dizionario, oppure termini usati in programmi televisivi o in romanzi famosi, anche se terminano con dei numeri.

    Alcuni esempi 'non sicuri' includono quanto segue:

    • john1

    • DS-9

    • mentat123

  • Non usate parole di un'altra lingua — I programmi di decodifica della password, spesso vanno alla ricerca di elenchi di parole straniere. Fare affidamento all'uso di termini di una lingua straniera per poter assicurare la sicurezza delle password, può dimostrarsi un errore.

    Alcuni esempi 'non sicuri' includono quanto segue:

    • cheguevara

    • bienvenido1

    • 1dumbKopf

  • Non usate una terminologia Hacker — Se credete di essere bravi solo perchè usate una terminologia usata dagli Hacker, — chiamata anche l337 (LEET) —, ripensateci. Molti elenchi usati dai programmi di decodifica delle password, fanno parte della terminologia LEET.

    Alcuni esempi 'non sicuri' includono quanto segue:

    • H4X0R

    • 1337

  • Non usate informazioni personali — State lontani dalle informazioni personali. Se l'aggressore è un vostro conoscente, non farete altro che facilitargli il compito di decodifica della vostra password. Il seguente è un elenco del tipo di informazione da evitare quando si crea una password:

    Alcuni esempi 'non sicuri' includono quanto segue:

    • Il vostro nome

    • Il nome di animali domestici

    • Il nome di uno dei componenti della famiglia

    • Data di nascita

    • Il vostro numero di telefono o codice di avviamento postale

  • Non usare parole all'incontrario — Un buon sistema di controllo, effettua un controllo inverso delle parole più comuni, quindo l'uso di questa tecnica non vi garantirà un aumento della sicurezza.

    Alcuni esempi 'non sicuri' includono quanto segue:

    • R0X4H

    • nauj

    • 9-DS

  • Non trascrivere in qualsiasi luogo la vostra password — Non conservate mai la vostra password su di un pezzo di carta. È molto meglio cercare di ricordarsela.

  • Non usare la stessa password per più macchine — È importante usare password diverse per ogni macchina. In questo modo, se una macchina viene compromessa, la sicurezza di altre macchine non sarà messa a rischio.

Fate quanto segue:

  • Create una password con almeno otto caratteri — Più lunga è la password, e meglio è. Se state utilizzando delle password MD5, allora dovrebbe essere composta da almeno 15 o più caratteri. Con password DES, usate la lunghezza massima di otto caratteri.

  • Usate sia lettere maiuscole che minuscole — Red Hat Enterprise Linux riconosce i caratteri delle lettere, maiuscole e minuscole, quindi per aumentare la resistenza della vostra password, vi consigliamo di usare una combinazione tra lettere maiuscole e lettere minuscole.

  • Usate sia lettere che numeri — Aggiungendo dei numeri ,soprattutto quando li aggiungete nel mezzo di una parola (non solo all'inizio o alla fine), vi aiuterà ad aumentare la resistenza della vostra password.

  • Usate caratteri non alfanumerici — Caratteri speciali come ad esempio & $ e >, possono aumentare di molto, la resistenza della vostra password (ciò non è possibile usando le password DES).

  • Scegliete una password facile da ricordare — La migliore password del mondo non vi sarà d'aiuto se non la potete ricordare. Per questo motivo, vi consigliamo di usare acronimi o altri metodi per poterle ricordare.

Con tutte queste regole, la creazione di una password idonea può sembrare difficoltosa. Fortunatamente, ci sono delle fasi molto semplici da seguire, per poter creare una password sicura e facile da ricordare.

4.3.1.1. Metodologia per la creazione di una password sicura

Vengono usati svariati metodi per la creazione di password sicure. Uno dei quali, ed è anche il più diffuso, è quello dell'uso di acronimi. Per esempio:

  • Pensate ad una frase memorabile, come ad esempio:

    "attraverso il fiume e il bosco, a casa della nonna noi andiam"

  • Successivamente, trasformatelo in un acronimo (includendo i punti).

    aifeib,acdnna.

  • Aumentare la difficoltà sostituendo alcune lettere nell'acronimo, con numeri e simboli. Per esempio, sostituire b con 7 e la letterad (@):

    o7r@77w,7ghwg.

  • Aumentate ancora la difficoltà, inserendo una lettera maiuscola, come ad esempio la L.

    o7r@77w,7gHwg.

  • Per finire, non usate l'esempio sopra riportato o qualsiasi altro esempio, per il vostro sistema.

Mentre la creazione di una password risulta essere imperativa, è anche importante una gestione idonea, soprattutto da parte degli amministratori del sistema, all'interno di grandi organizzazioni. La sezione successiva, riporta la fasi più idonee per la creazione e la gestione delle password all'interno di una organizzazione.

4.3.2. Creazione di password per utenti di una organizzazione

Se vi è un gran numero di utenti in una organizzazione, gli amministratori del sistema hanno due opzioni di base per poter forzare l'uso di password idonee. Essi possono creare delle password per gli utenti in questione, oppure lasciare agli utenti il compito di creare le proprie password, mantenendo però il controllo della loro qualità.

Creare delle password per gli utenti, rappresenta un metodo per assicurare la qualità delle stesse, questo compito però, può essere impegnativo in base alla grandezza dell'organizzazione. Tale metodo aumenta il rischio che gli utenti possano scrivere la propria password su di un pezzo di carta.

Per queste ragioni, gli amministratori di sistema preferiscono far creare le password direttamente agli utenti, verificandone la qualità e in alcuni casi, facendo cambiare le stesse password dopo un determinato periodo.

4.3.2.1. Imporre delle password resistenti

Per proteggere la rete da potenziali aggressori, è consigliabile che gli amministratori del sistema siano in grado di verificare che le password usate all'interno di una organizzazione siano forti e resistenti. Quando gli utenti creano o cambiano password, essi possono usare l'applicazione della linea di comando passwd, la quale è un Pluggable Authentication Manager (PAM)-aware, capace di verificare se la password sia facile da decifrare o se è troppo corta, usando il modulo PAM pam_cracklib.so. Poichè PAM può essere personalizzato, è possibile aggiungere controllori supplementari dell'integrità della password, come ad esempio pam_passwdqc (disponibile su http://www.openwall.com/passwdqc/) oppure scrivere un nuovo modulo. Per un elenco di moduli PAM disponibili, controllare http://www.kernel.org/pub/linux/libs/pam/modules.html. Per maggiori informazioni su PAM, controllare il capitolo intitolato Pluggable Authentication Modules (PAM) nella Red Hat Enterprise Linux Reference Guide.

Da notare comunque, che il controllo effettuato sulle password al momento della creazione, non è efficace tanto quanto possa esserlo un programma interno di decodifica (cracking).

Sono disponibili diversi programmi di decodifica che possono essere eseguiti con Red Hat Enterprise Linux, tuttavia nessuno di essi è presente con il sistema operativo. Di seguito viene riportato, in breve, un elenco dei programmi di decodifica della password più diffusi:

NotaNota
 

Nessuno di questi strumenti è presente con Red Hat Enterprise Linux e non sono supportati in alcun modo da Red Hat, Inc..

  • John The Ripper — Un programma veloce e flessibile di decodifica della password. Consente l'uso di elenchi di parole multiple ed è in grado di forzare la decodifica della passwrod. Esso è disponibile su http://www.openwall.com/john/.

  • Crack — Forse il software di decodifica più conosciuto, Crack è anche molto veloce, ma non è facile da usare come lo può essere John The Ripper. Può essere trovato online su http://www.crypticide.com/users/alecm/.

  • SlurpieSlurpie è simile a John The Ripper e Crack ma al contrario dei precedenti, esso è stato creato per essere eseguito simultaneamente su più computer, creando un attacco distribuito di decodifica della password. Può essere trovato insieme con altri tool di verifica, su http://www.ussrback.com/distributed.htm.

AttenzioneAvviso
 

Ottenere sempre una autorizzazione scritta, prima di eseguire un programma di decodifica della password all'interno di una organizzazione.

4.3.2.2. Invecchiamento della password

L'invecchiamento della password rappresenta un'altra tecnica usata dagli amministratori di sistema, per prevenire il verificarsi di password non idonee all'interno di una organizzazione. Tale termine implica che dopo un tempo ben determinato (generalmente 90 giorni), viene richiesto all'utente di creare una nuova password. Questa tecnica fa si che se un utente viene obbligato a cambiare periodicamente la propria password, ne consegue che un aggressore in grado di decodificarla, avrà un periodo di tempo limitato entro il quale è in grado di godere di una certa libertà all'interno di una organizzazione. Anche in questo caso, il lato negativo è rappresentato dal fatto che un continuo cambiamento, può portare l'utente a trascrivere la propria password.

Sono presenti due programmi principali con Red Hat Enterprise Linux usati in modo specifico per questo metodo di verifica, essi sono il comando chage o l'applicazione grafica Utente Manager (system-config-users)

L'opzione -M del comando chage specifica il numero massimo di giorni, entro i quali una password risulta essere valida. Per esempio, se desiderate che la password di un utente scada dopo 90 giorni, inserite il seguente comando:

chage -M 90 <username>

Nel comando sopra indicato, sostituire <nome utente> con il nome dell'utente. Se non desiderate far scadere la password, usate un valore di 99999 dopo l'opzione -M (questa opzione equivale a circa 273 anni).

Potete usare l'applicazione grafica Utente Manager per creare delle policy di invecchiamento della password.Per accedere a questa applicazione, andate su Menu principale (sul pannello) => Impostazioni del sistema => Utenti & Gruppi oppure digitate il comando system-config-users in un prompt della shell (per esempio, in un terminale XTerm o GNOME). Fate clic sulla tabella Utenti, selezionate l'utente dall'elenco, e fate clic su Proprietà dal menù (o scegliere File => Proprietà dal menù a tendina).

Successivamente fate clic sulla scheda informazioni della password e inserite il numero di giorni entro i quali la password risulta essere valida, come mostrato in Figura 4-1.

Figura 4-1. Schermata Informazioni della Password

Per maggiori informazioni sulla configurazione dell'utente o del gruppo (incluso le istruzioni su come forzare le password), consultate il capitolo intitolato Configurazione dell'utente e del gruppo nella Red Hat Enterprise Linux System Administration Guide. Per una panoramica della gestione della risorsa e dell'utente, consultare il capitolo Gestione degli account dell'utente e dell'accesso alla risorsa nella Red Hat Enterprise Linux Introduzione al System Administration.