venerdì 25 settembre 2020

Implementazione EFS

 

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.

 

APPENDICE


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.



 Si aprira’ una console che mostra tutti i certificati disponibili. Selezionare il template da duplicare, tasto DX – duplica modello. Effettuare le modifiche necessarie, nel tab sicurezza inserire gruppi e utenti che devono poter richiedere il certificato, modificare eventuali altri parametri. Se il template del certificato deve rimpiazzarne un altro nel tab Modelli sostituiti – premere aggiungi e scegliere il vecchio modello.



 

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.




 COMANDI UTILI

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nessun commento:

Posta un commento