sabato 3 ottobre 2009

Windows dove salva le password degli account del sistema e quelle che si settano una volta sola e poi vengono memorizzate e inserite automaticamente?

In Windows 9.x queste informazioni erano contenute nei file .pwl (pwl = PassWord List). Da Windows NT in poi invece le coppie user/password vengono memorizzate in file di database chiamati SAM (System Account Manager).

Normalmente situati in c:\windows, i file .pwl includevano tutte le password del sistema, appositamente occultate. Utili agli utenti che non volevano riscrivere le password ogni volta, questi file però erano davvero poco sicuri e molto vulnerabili ad attacchi di cracking locale contro i quali Windows 9x non aveva nessuna sorta di difesa: la conseguenza era che qualsiasi user con accesso locale a una macchina altrui con Windows 95 o 98 poteva facilmente crackare o decrittare i file pwl.

Il file SAM (solitamente memorizzato in C:\Winnt\System32\Config\Sam) ha la stessa funzione dei file pwl, ma rispetto ad essi e' più sicuro perchè utilizza un algoritmo di codifica dei
dati che racchiude (Il database SAM di Microsoft Windows 2000, Microsoft Windows XP e Microsoft Windows 2003 memorizza le copie con hash delle password degli utenti. Questo database è crittografato con una chiava di sistema memorizzata localmente). Detto in maniera piu' specifica, nessun utente puo' accedere al file SAM tramite explorer mentre il sistema operativo e' in esecuzione. Anche se questo meccanismo di difesa sembra abbastanza efficace, eppure il file SAM risulta vulnerabile a due tipi di attacchi: il primo consiste nell'avviare il pc da un un floppy DOS o da un live cd, copiare il file SAM e crackarlo su un altro pc. Il secondo metodo consiste nel craccare il file con appositi tool quali L0phtCrack o Pwdump.

Per rendere piu' sicuro il file SAM si può utilizzare l'utilità SysKey che permette di spostare la chiave di crittografia del database - memorizzata localmente - lontano dal computer.
Inoltre sempre attraverso l'utilità SysKey, su Windows 2000 e XP è possibile creare un floppy disk contenente una chiave crittografica, senza la quale il sistema non potrà essere avviato. Si tratta di una protezione supplementare rispetto all'inserimento di una password per l'accesso del singolo utente o dell'amministratore.

Di seguito descrivo come utilizzare SysKey per proteggere il database SAM di Windows.

Al prompt dei comandi digitare syskey e premere INVIO



Notare che nella finestra di dialogo Protezione del database di account di Windows l'unica opzione disponibile, oltretutto già selezionata, è Crittografia abilitata. Quando questa opzione è selezionata, il database SAM viene sempre crittografato.



Scegliere Aggiorna. A questo punto si apre la seguente finestra:



Scegliere Avvio mediante password se si desidera che venga richiesta una password per avviare Windows. La password deve contenere almeno 12 caratteri e può arrivare fino a 128 caratteri di lunghezza. Può contenere lettere maiuscole e minuscole, numeri e simboli.
Se non si desidera che venga richiesta una password di avvio, fare clic su Password generata dal sistema.
Selezionare una delle seguenti opzioni:

- Fare clic su Archivia chiave di avvio su disco floppy per memorizzare la password di avvio del sistema su un disco floppy.
- Fare clic su Archivia chiave di avvio a livello locale per memorizzare la chiave di crittografia sul disco rigido del computer locale. Si tratta dell'opzione predefinita.

Scegliere OK due volte per completare la procedura.

Da questo momento in poi, si potrà portare sempre con sè la chiave indispensabile per avviare Windows 2000 o XP: senza quel floppy di avvio il sistema risulterà inservibile in modalità GUI. Per tornare all'impostazione normale, ma conservando la crittografia irreversibile del database, basterà selezionare Archivia chiave di avvio a livello locale.

Consiglio Microsoft: rimuovere la chiave di crittografia SAM dal disco rigido locale utilizzando l'opzione Archivia chiave di avvio su disco floppy per una protezione ottimale. In questo modo è possibile ottenere il più elevato livello di protezione per il database SAM.

Per maggiori informazioni:
1.
Utilizzo di SysKey per proteggere il database di Gestione account di protezione (SAM) di Windows:
http://support.microsoft.com/kb/310105/it