EFS – Encrypted file system
Nei sistemi Windows con file system NTFS consente di
crittografare cartelle e file, con alcune limitazioni:
-
Non funziona su FAT/FAT32
-
Non si possono cifrare i file compressi
-
Non si possono cifrare i file di sistema
La funzionalità è disponibile per il file system locale. Con
EFS non è possibile, ad esempio, cifrare file e cartelle in rete/unità di rete mappate.
Se anche fosse possibile, lo sconsiglierei.
Dal mio punto di vista, ha senso usare EFS soprattutto sui
portatili, ed eventualmente sui desktop degli utenti.
Sempre per come la vedo io, la prima domanda da porsi su
EFS, è se davvero si vuole consentire agli utenti di usarlo. Se la risposta è SI,
occorre “attrezzarsi”, altrimenti bisogna disattivarlo.
La prima operazione da fare se si vuole usare EFS è creare
uno o più DRA (Data recovery agent).
Se vi vuole disattivare l’EFS occorre cancellare DRA
precedenti e, tramite GPO, disattivarne l’utilizzo.
Tutto quanto riportato sotto e’ applicabile anche a macchine
in gruppo di lavoro, con i conseguenti limiti: tutte le operazioni
vanno effettuate su ogni singola macchina e la console da utilizzare e’ quella
delle policy locali (gpedit.msc).
EFS – COME FUNZIONA?
Per cifrare un file/cartella, EFS usa un mix di chiavi
simmetriche/asimmetriche.
Usa una chiave simmetrica generata casualmente (FEK) per
cifrare il file ed una chiave pubblica (asimmetrica) per cifrare la FEK.
Il motivo di tutto questo risiede nella velocita delle
operazioni. La cifratura simmetrica è circa 1000 volte più veloce di quella
asimmetrica.
Quando EFS deve cifrare la FEK crea un Data Decryption Field
(DDF) per l'utente corrente dove inserisce la FEK criptata usando la sua chiave
pubblica. Se è presente un data recovery agent (DRA), viene creato un campo DRF
in cui viene inserita la FEK criptata con la rispettiva chiave pubblica.
In questo modo sarà possibile decriptare il file da
qualunque chiave privata la cui corrispondente chiave pubblica sia stata usata
per cifrare i campi DDF o DRF. I certificati che contengono la chiave
pubblica/privata sono associati agli utenti. Solitamente, i file .cer contengono
solo la chiave pubblica, mentre i file .pfx contengono chiave pubblica e
privata e sono solitamente protetti da password. Dopo aver cifrato un file, a
questo viene aggiunto l’attributo “cifrato”.
CIFRATURA DI CARTELLE E FILES
Come fare a cifrare una cartella o un file?
Tasto dx sul file, tab GENERALE, pulsante avanzate, mettere
un flag sulla casella “crittografa… “
Fatto!
Di solito si crittografa una cartella. Tutti i file creati
all’interno di essa vengono automaticamente crittografati. Se un file viene
copiato/spostato al suo interno, viene automaticamente crittografato. Se sposto
un file all’esterno di essa NON viene automaticamente de-crittografato.
Ricordate inoltre che permessi di acceso ai file e cifratura viaggiano su piani
differenti e sono cose differenti.
ABILITAZIONE E DISATTIVAZIONE EFS
La prima decisione da prendere in merito all’EFS è se consentire
di usarlo. È possibile farlo tramite GPO.
Di solito, al primo accesso del primo amministratore di
dominio viene creato un DRA nella “Default domain policy”. Il primo passaggio,
quindi, deve essere quello di rimuovere DRA e disattivare impostazioni specifiche
relative all’EFS.
Se nella parte DX della schermata trovate elencato uno o più
certificati al posto del simbolo di attenzione, allora sono presenti dei DRA. Se
non li avete creati voi in precedenza, vanno rimossi, perché di solito sono auto-generati.
A questo punto potete creare una nuova policy (EFS_DRA), impostare
la priorità sulle altre (enforced/imposto) ed effettuarne la configurazione (chi preferisce può continuare
ad usare la default domain policy!).
Andando in Computer
Configuration > Policies > Windows Settings > Security Settings >
Public Key Policies > Encrypting File System
E’ possibile decidere se usare o meno l’EFS. Come potete
vedere in figura, io ho scelto di abilitarlo.
DRA – DATA RECOVERY AGENT
Una delle cose più importanti di cui preoccuparci in caso di
utilizzo di EFS, è come poter recuperare i file in caso di problemi/cancellazione/corruzione/perdita
della chiave privata Il meccanismo di recupero si basa sulla creazione di un
DRA (data recovery agent) che è una coppia di chiavi pubbliche/private
aggiuntive con cui è possibile cifrare/decifrare il file. E’ la prima
operazione da fare, ancora prima di dare la possibilità di usare EFS agli
utenti. È possibile creare più di un DRA. Di solito il DRA è associato ad un
utente amministratore. Per designare un utente come DRA è sufficiente fargli ottenere
il certificato necessario (OID , tramite CA o tramite il comando Cipher. In
sintesi un DRA è una coppia di certificati (.cer e .pfx). Il . cer contiene
solo la chiave pubblica, e viene distribuita tramite GPO a tutti i client,
mentre il .pfx è la chiave privata, che dovremo conservare con molta cura e assolutamente
non perdere.
Anche in questo caso e’ necessario qualche ragionamento
preliminare su come generare il certificato DRA. Per poter funzionare un DRA non
deve essere scaduto, ma può essere self-signed, ovvero emesso da una CA non
validata dal computer dove viene utilizzata. Uno dei punti cruciali è la durata.
Se il certificato del DRA viene emesso da una CA di dominio, la sua durata non può
superare quella della CA (max 5 anni di default). Se viene emessa tramite il
comando cipher, ha una durata di 100 anni.
Ogni volta che il DRA scade, va rinnovato, ridistribuito a
tutti i client e vanno aggiornati TUTTI i file cifrati con la nuova chiave.
Per questo motivo ho scelto di usare quello generato usando cipher.
Conto che tra 100 anni dovrà fare tutto questo al posto mio 😊.
Per creare il certificato di DRA occorre accedere con l’utente
a cui si vuole attribuire questo ruolo occorre aprire un prompt dei comandi
come amministratore, portarsi nella cartella in cui creare i certificato e digitare
il seguente comando:
cipher /r:xxx
ES: cipher /r:DRA_Administrator o cipher /r:DRA_superadmin
ecc. ecc.
A questo punto dovete inserire e confermare una password,
che serve per proteggere il .pfx.
Nella cartella verranno creati un file .cer ed un file .pfx.
Salvate entrambi in un posto sicuro. Non devono andare perduti per nessun
motivo.
Per creare più DRA, effettuare l’operazione sopra,
loggandosi con altri utenti amministratori.
Aprite la Group policy console (gpmc.msc), selezionate la
policy EFS_DRA, o quella scelta da voi per l’EFS, e modificatela.
Andate nel seguente percorso:
Computer
Configuration > Policies > Windows Settings > Security Settings >
Public Key Policies > Encrypting File System
Tasto DX su Crittografia file system – Aggiungi agente recupero
dati
Si aprirà una finestra da cui è possibile scegliere sfoglia
directory (per scegliere un utente AD, a cui tramite CA è associato un
certificato) oppure sfoglia cartelle da cui andare a cercare il file. Cer (e
quindi la chiave pubblica) da distribuire.
Confermare, ok e chiudere. Eseguire un gpupdate /force sul
server e quindi sui client. (potete mettere il comando nello script di logon,
eseguirlo direttamente da console gpmc, da console remota e via dicendo).
Il vostro lavoro per implementare l’EFS è finito.
Per verificare che tutto abbia funzionato come deve, provate
a cifrare un file su un client, premete sul pulsante dettagli e verificate che
nella parte inferiore della finestra appaiano i DRA.
Come nel mio caso ho implementato 2 DRA.
La parte di implementazione è terminata.
RECUPERO TRAMITE DRA
Il primo dubbio che ho avuto, dopo aver fatto tutto questo è
stato quello di come fare a recuperare l’accesso ad un file cifrato, poiché non
mi era molto chiaro il meccanismo. Per recuperare l’accesso ad un file cifrato
su di un client occorre accedere con utente designato come DRA ed importare il .pfx
(vi verrà chiesta la pwd inserita durante l’esecuzione del comando cipher /r:xxx).
Poiché sul client adesso è a disposizione la chiave privata si potrà accedere ai
file, e decidere di decriptarli, ad esempio.
Per importare i file dovete accedere alla console degli
store dei certificati locali.
MMC – file – aggiungi rimuovi snap-in – certificati –
aggiungi per utente
Selezionare lo store personale – tasto dx – tutte le attività
– importa
Dopo aver premuto importa partirà il wizard di importazione.
Di solito il compito del DRA è quello di disattivare la
cifratura dei file per renderli nuovamente disponibili.
Notate anche che da “tutte le attività è disponibile “richiedi
nuovo certificato”. Usando questa voce di menu è possibile richiedere nuovi
certificati alla CA del dominio. In base ai permessi impostati sui template,
ogni utente può richiedere differenti tipi di certificato. I certificati che un
utente amministratore può richiedere sono differenti da quelli che può
richiedere un domain user.
CERTIFICATO - SCOPI DEL CERTIFICATO
Uno delle caratteristiche di un certificato e' lo scopo,
ovvero per che cosa viene usato.
Parlando di EFS abbiamo a che fare con principalmente due
tipologie di certificato
Encrypting File System - usato dall'utente per cifrare i
file
File Recovery - usato per il DRA, serve per recuperare
l'accesso ai file cifrati nel caso in cui vada perduto quello principale usato
dall'utente.
A ciascuno di questi scopi viene assegnato un OID, ovvero un
numero univoco che definisce lo scopo del certificato:
Encrypting
File System (1.3.6.1.4.1.311.10.3.4)
File
Recovery (1.3.6.1.4.1.311.10.3.4.1)
Come potete vedere il certificato per cifrare e quello per
recuperarli sono certificati con scopi ed OID differenti.
CERTIFICATO – DUPLICAZIONE TEMPLATE
Ci sono situazioni in cui si rende necessario modificare
alcuni settaggi dei certificati emessi (ad esempio la durata di default). Per farlo
e’ necessario modificare il template. Il consiglio e’ sempre quello di
duplicare il template ed agire su quello, lasciando l’originale intatto. Per
arrivare alla gestione dei template di certificato, aprire la console dei certificati
– modelli di certificato – tasto DX – gestisci.
Adesso e’ possibile chiudere questa console. Nella console
certificati (precedente) occorre effettuare un ultimo passaggio, ovvero rendere
disponibile per il rilascio il nuovo template appena creato. Seleziona Modello
di certificato - Tasto DX – Nuovo – Modello di certificato da rilasciare. Scegliere
il nuovo template appena creato. Dopo questa operazione il template deve
apparire nell’elenco a DX. Ricordate sempre che a prescindere la durata
temporale specificata nel template, la durata del certificato non potrà mai
essere superiore a quella della CA che lo emette.
Dopo aver emesso il certificato è
possibile quale template sia stato utilizzato per emetterlo, controllando il
campo Nome modello del certificato
RICHIESTA NUOVO CERTIFICATO
Se usate una CA di dominio, e’ possibile richiedere un
certificato dalla console dello store dei certificati
MMC – file – aggiungi rimuovi snap-in – certificati –
aggiungi per utente. Selezionare lo store dove mettere il certificato, (solitamente
personale). Tasto DX sulla cartella – tutte le attività – richiedi nuovo
certificato.
Se presente una CA di dominio, occorre selezionarla, andare
avanti e quindi scegliere il tipo di certificato.
cipher c:\* /u
/n /h - trova tutti i file cifrati in nel disco c:\
cipher c:\* /u
aggiorna i certificati di tutti i file
cipher /u /n /h >
%UserProfile%\Desktop\MyEncryptedFiles.txt
cipher /y -
mostra certificati x cifratura
cipher /x -
esegue il backup delle chiavi per la cifratura
cipher /r:xxxxxx
(qualsiasi nome, senza estensione) - genera il .cer ed il .pfx
I comandi sopra
possono essere utili per uno script di login nel caso in cui i certificati
siano stati rinnovati a seguito della scadenza.
PERCORSI
Le chiavi di
cifratura sono memorizzate nel seguente percorso
%appdata%\Microsoft\Crypto\RSA
%appdata%\Microsoft\Crypto\
REFERENCE:
https://docs.microsoft.com/en-us/archive/blogs/sbs/help-secure-your-business-information-using-encrypting-file-system
https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc875821(v=technet.10)?redirectedfrom=MSDN
https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc162507(v=msdn.10)?redirectedfrom=MSDN
https://www.itsfullofstars.de/2016/01/microsoft-ca-create-a-new-certificate-template/
https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c00811633
http://07.net/e/EFS/
http://www.idc-online.com/technical_references/pdfs/information_technology/An_Overview_of_Efs.pdf
http://ntfs.com/internals-encrypted-files.htm