Click to Rate and Give Feedback
Tips
Windows 7 allows you to turn off the various system messages and notifications that pop up on the Taskbar. Find out how. ...

Read more!

You can manage SQL Server from a command line just as you would any other service. Here are the commands you need to know. ...

Read more!

Windows Server 2008 simplifies the Disk Management user interface by using one set of dialog boxes and wizards for both partitions and volumes. ...

Read more!

This tip shows you how to hide a share from users. Pretty sneaky stuff! ...

Read more!

Are you familiar with the Wbadmin Backup Command Line Utility? Wbadmin is the command-line counterpart to Windows Server Backup. You use Wbadmin to manage all aspects of backup configuration that you would otherwise manage in Windows Server Backup. For more info, read on. ...

Read more!

Related Articles

Matt Steele

TechNet Magazine July 2006

...

Read more!

Who decided that Virtual Private Networks, or VPNs, were a good idea? With VPNs, we could let armies of mobile workers with "legitimate" business needs connect to our nice corporate

David Conrad

TechNet Magazine July 2006

...

Read more!

Jeremy Moskowitz

TechNet Magazine May • June 2006

...

Read more!

Randy Muller

TechNet Magazine August 2006

...

Read more!

Active Directory provides a great deal of flexibility for supporting a large or decentralized environment, but maintaining the integrity of your data can be challenging. Active Directory replication defines how updates are communicated throughout your environment and how conflicts are resolved. Here's what you need to know to meet the challenge.

Laura E. Hunter

TechNet Magazine October 2007

...

Read more!

Also by this Author

Some of the major changes in IIS 6.0, the latest Web server from Microsoft, are happening in the metabase. In IIS 4.0 and IIS 5.0, the metabase, which functions as a hierarchical storage facility for configuration information and schema,

Randy Muller

TechNet Magazine November • December 2005

...

Read more!

Trying to maintain security and identity information in a large, heterogeneous network can be difficult and complicated. And this can put your network at risk. Fortunately, Microsoft Identity

Randy Muller

TechNet Magazine July 2006

...

Read more!

Randy Muller

TechNet Magazine August 2006

...

Read more!

Randy Muller

TechNet Magazine October 2006

...

Read more!

Popular Articles

Discover how to use the Excel.Application automation model for a more powerful way to process data from your servers and take advantage of the analysis and charting tools built into Excel.

The Microsoft Scripting Guys

TechNet Magazine January 2009

...

Read more!

Security principals underlie so much of Windows security that it is essential for any administrator to have at least a basic understanding of how the various types of Security principals work and how they are used. Here's what you need to know.

Jesper M. Johansson

TechNet Magazine January 2009

...

Read more!

See how the free Microsoft USB Flash Drive Manager can help you easily copy, delete, and back up files from a flash drive, as well as perform other useful tasks.

Lance Whitney

TechNet Magazine January 2009

...

Read more!

Without too much effort, you can deploy a terminal server to host the applications you need in your environment. But there are some important decisions you’ll need to make to ensure your implementation meets user expectations. Greg Shields discusses the various options you have and explains how they will affect you.

Greg Shields

TechNet Magazine January 2009

...

Read more!

The new Group Policy Preferences feature found in Windows Server 2008 and Windows Vista provides more than 3,000 settings, greatly expanding what administrators can do with Group Policy. Here’s a guide to using Group Policy Preferences to manage your environment.

Derek Melber

TechNet Magazine January 2009

...

Read more!

Our Blog

NAP monitors the health of specified computers when they attempt to connect to a network and includes a number of mechanisms to enforce health requirements. In this article, Geek of All Trades Greg Shields gives readers an overview of these enforcement mechanisms and, as an example, takes a closer look at setting ...

Read more!

Use Windows PowerShell to Manage Virtual Machines Here are a few examples of how you can use Windows PowerShell scripts to manage virtual machines running on a Server Core installation. Note that these scripts are presented as samples and may need to be customized to work in your environment.

Create a New ...

Read more!

Disabling an Unused Part of Group Policy Objects One way to disable a policy is to disable an unused part of the GPO. By disabling part of a policy that isn’t used, the application of GPOs and security will be faster.

Administer Windows Server 2008 Server Core from the Command Prompt ...

Read more!

In the August 2008 issue of TechNet Magazine, Paul Randal wrote an article Top Tips for Effective Database Maintenance.  It was geared toward "involuntary  DBAs" (IT pros who inadvertently wind up responsible for a SQL Server instance).  The article had a great response from our readers so Paul has written another ...

Read more!

Microsoft Forefront is designed to deliver an integrated security solution that makes it much easier to deploy and manage security across an organization’s IT infrastructure. In this, our annual security issue, we feature two articles that describe how Forefront Security protects instant messaging and e-mail.

Protect ...

Read more!

How It Works Encrypting File System
Randy Muller


Mobile users can be a pain in the neck for the IT pro. The convenience and portability of laptops must be weighed against the potential for data loss and the possible compromise of confidential company information. You can use NTFS permissions to control access to files and folders, and this usually works quite well, although there is always the potential for secure, confidential material to be accessed and released, either maliciously or unintentionally.
One way to control access to confidential material is to use the Encrypting File System (EFS). EFS is included with Windows® 2000, Windows XP, and Windows Server™ 2003; in fact, it is already enabled by default on all of them. You can use EFS in either a standalone or domain environment, although typically EFS is used in a domain environment where you can have defined auto-enrollment procedures as well as recovery agents (discussed later) in case of lost user keys. EFS should be used with caution in a standalone environment, as there is no mechanism for key recovery (and hence file recovery) outside users backing up their own keys. For the purposes of this article, I will limit my discussion to using EFS in a domain environment.

Encrypting a File
To encrypt a file, simply open the Properties of the file, click Advanced, and select "Encrypt contents to secure data," as shown in Figure 1. You can compress or encrypt a file, but not both. If the file was previously compressed and you now wish to encrypt it, the file will be uncompressed first. Once you have encrypted the file, Windows Explorer changes its display color to green (see Figure 2). If you mark an entire folder for encryption, a dialog box appears asking if you would like to apply changes to that folder only or to apply the changes to that folder, and its subfolders and files.
Figure 1 Encrypting Files 
What actually happens programmatically when you encrypt files, and how exactly does this prevent unauthorized individuals from accessing the data? EFS performs a series of steps to encrypt a file. First, EFS generates a File Encryption Key (FEK). It then employs a symmetric algorithm using the FEK to encrypt the file. The algorithm used depends on the version of the operating system. All versions of Windows 2000 use only the Expanded Data Encryption Standard (DESX). Windows XP RTM can use either DESX (the default) or Triple-DES (3DES). Windows XP Service Pack 1 (and later) and Windows Server 2003 support the Advanced Encryption Standard (AES) as well as DESX and 3DES, though AES is the default. Next, EFS extracts the public key from the EFS certificate contained in the user’s profile. If no such certificate is present, Windows enrolls a Basic EFS certificate from an enterprise certificate authority (CA) in the domain. EFS encrypts the FEK with the user’s public EFS key and stores it in the Data Decryption Field (DDF) in the header of the file.
Also in the header of each encrypted file is a Data Recovery Field (DRF). The DRF contains an encrypted key created using the recovery certificate from each recovery agent. Thus, there are two separate fields in each file—the DDF and the DRF. When a user opens an encrypted file, the user’s private key decrypts the FEK in the DDF; then the FEK decrypts the file. Only the private key from the user who encrypted the file can decrypt the FEK, ensuring the file remains secure. If necessary, a recovery agent can also decrypt the file using the encrypted FEK in the DRF. So only the user who encrypted the file and any designated recovery agents can access the file.
Figure 2 Encrypted Files 
Understand that encrypting a folder is much better than encrypting individual files. Actually, it’s a bit of a misnomer to state that you’re encrypting a folder; instead, the folder is marked such that each file currently in the folder is encrypted and any file subsequently placed in the folder is also automatically encrypted. Each file in the folder is encrypted with a unique FEK; there is no concept of "folder-wide" encryption. Why is folder-level encryption better? When you encrypt an individual file, Windows makes a backup copy of the file, encrypts the original, and then deletes the backup. Of course, "deleting" doesn’t really happen—instead, the disk clusters are simply released and can be reused for storing other data. The actual data is still present on the drive; this is called "slack space." An attacker could easily read this space using commonly available disk sector editing tools. Marking a folder for encryption changes this process. All files stored in the folder are immediately encrypted; no backup versions ever exist on the drive.
It’s also important to understand how EFS affects file moves and copies. If you copy or move an unencrypted file (or folder not marked for encryption) into a folder that is marked for encryption, that file (or all of the files in that folder) will become encrypted. Once encrypted, files will remain so no matter where you move them within the local file system—whether to folders not marked for encryption or to completely different partitions. The individual files themselves are not automatically decrypted. However, if a user has the permission to decrypt a file, and that user copies or moves an encrypted file to a file allocation table (FAT) or FAT32 partition, the destination file will be unencrypted.

Sharing Files
EFS in Windows 2000 didn’t provide a way to share your encrypted files with anybody else. The Data Recovery Agent (DRA) helps in cases of lost keys, but only the original user who encrypted the file and the DRA would be allowed access. Windows XP and Windows Server 2003 overcome this limitation by allowing multiple users (but not groups) to be added to each file. If both Alice and Bob are allowed to access a file, then that file’s DDF contains two copies of the FEK: one encrypted with Alice’s EFS key and one encrypted with Bob’s EFS key. To add an additional user to a file, open the Properties | Advanced | Details window for the file and click Add (see Figure 3). Then click Find User and search for the user you wish to add to the file.
Figure 3 Adding a Certificate for Another User 
One thing to keep in mind here is that each user who receives access to this file can then grant access to others—each allowed user is essentially considered an owner of the file. You can only add users who have valid EFS certificates to an encrypted file. If you try to add a user who doesn’t have a certificate, you will receive the error message shown in Figure 4.
Figure 4 No Certificates Available 

Recovery Agents
On domain-joined machines, the workstation inherits its data recovery policy from the domain. However, on workgroup machines running Windows XP or later, a data recovery agent must be created manually using the CIPHER tool (discussed later). Regardless, you should create a recovery plan and designate specific recovery agents. One of the major differences in EFS between Windows 2000 and Windows XP or Windows Server 2003 is that if you try to create a data recovery policy in Windows 2000 without specifying a recovery certificate, EFS is disabled. This is not true for Windows XP and Windows Server 2003. So if you do not limit a user’s ability to encrypt files and you haven’t created a data recovery agent plan, users could lose their work if their account is compromised or their keys lost. If you are going to use EFS with Windows XP or Windows Server 2003, you should have a recovery plan with designated DRAs established before users are allowed to use EFS.
One decision you will have to make is whether you are going to have separate key recovery agents and data recovery agents. If you choose to have separate roles, you will need to decide which users will have which roles. If you are going to combine roles, then you will again need to specify which user (or users) will be your data recovery agents. Obviously, whoever you designate to be your recovery agents should be trustworthy, reliable individuals!
Figure 5 Requesting an EFS Recovery Agent Certificate 
Typically, you create special accounts to be used only for recovery, then delete the domain administrator from the list of recovery agents. This allows you to audit the use of these accounts and eliminates the rather anonymous access that "Administrator" entails. Each recovery agent must be enrolled with an appropriate certificate issued to them from an enterprise certificate authority (see Figure 5). Once your recovery agent has a certificate, you will then have to add this recovery agent to the Group Policy Object (GPO) that you have applied to the container. To do so, right-click the Computer Configuration\Windows Settings\Public Key Policies\Encrypting File System setting of the policy and Add Data Recovery Agent. Then you will have to Select Recovery Agents and browse either through folders or through the directory to find the certificate and assign a recovery agent (see Figure 6).
Figure 6 Assigning a Recovery Agent 

EFS on Remote Servers
So far I’ve examined only the local use of EFS on a system that is joined to a domain. You can use EFS to encrypt files to provide access for users from remote locations, too. But how will users access these files remotely and how will the files be secured in transit to and from the remote server? Two methods for providing remote access to encrypted files are Server Message Block (SMB) file shares and WebDAV (Web-Based Distributed Authoring and Versioning).
There are a few inherent problems with using SMB file shares. Encrypted files are first decrypted before being delivered over the network, and then re-encrypted on the destination server. Therefore, you should use some other method to secure the traffic in-flight, such as IPsec.
The other issue is preparing the server for remote encryption. You must authorize the computer to perform the encryption/decryption on behalf of the user; a concept known as "trusted for delegation." To enable this delegation, open the properties for the server’s computer account in Active Directory Users and Computers, and select Trust computer for delegation (see Figure 7). Once you enable delegation, a dialog box appears informing you that this action carries a potential security risk. You also need to enable each user account for delegation. You should go to the account properties for each user, click the Account tab, and then select Account is trusted for Delegation.
Figure 7 Trusted Computer 
The other method of providing remote access to encrypted files is WebDAV. The advantage of WebDAV is that all encryption and decryption is performed at the local machine, not at the server. Files remain encrypted in transit, so it isn’t necessary to implement additional in-flight encryption. The server is not required to be trusted for delegation and it doesn’t store any encryption keys. You will have to install IIS and configure the remote server to support WebDAV.

Prohibiting EFS
Because of the serious risk of losing keys (and therefore losing access to encrypted files) with standalone EFS, some organizations choose to disable EFS until they can implement an enterprise certificate authority and domain-based EFS. EFS is enabled by default, so you will have to create a GPO to disable it. To disable EFS in an organizational unit, or as a domain-wide policy, simply clear the "Allow users to encrypt files using Encrypting File System (EFS)" checkbox in the Computer Configuration\Security Settings\Public Key Policies\Encrypting File System policy.
If you need to prohibit the use of EFS on a standalone computer or on a single computer in a domain, you can either modify the local machine policy or make a registry change. To disable EFS through a local policy, clear the same selection just discussed, "Allow users to encrypt files using Encrypting File System (EFS)", in the machine’s local security policy.
To implement this restriction via the registry, add a DWORD value of EfsConfiguration to the registry in the HKLM\SOFTWARE\Microsoft\WindowsNT \CurrentVersion\EFS. To disable EFS, change the value to 1; to enable it, change the value to 0 (see Figure 8).
Figure 8 Prohibiting EFS through the Registry 

CIPHER and EFSINFO
Two command-line tools are available to use with EFS: CIPHER.EXE and EFSINFO.EXE. Cipher, which is available in Windows 2000, Windows XP, and Windows Server 2003, encrypts or decrypts files, creates or backs up recovery keys, and creates new recovery agents on NTFS volumes. In Windows XP and Windows 2003, Cipher can also clear any slack space on the drive; this is important if you’ve encrypted individual files rather than marked entire folders for encryption.
Type "cipher" at a command prompt. The utility displays the encrypted state of the folder and any files or folders contained within that folder (see Figure 9).
Figure 9 Output of Cipher 
EFSINFO reports encryption information on various files. It is a useful tool for verifying and determining user information in the data decryption field or recovery agent information in the data recovery field of the specified file. It also displays your EFS certificate thumbnail on the local machine. I hope that this column helps you to better understand EFS, and its ability to help mitigate the threat of data theft associated with mobile computers.

Randy Muller, MCT, MCSE, MCSA, MCDST, teaches a variety of networking, security, and other computer classes. He is a former Army Signal Corp Officer and has been teaching since 2000. You can contact Randy at randy@randymuller.org.
© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; reproduction in part or in whole without permission is prohibited.
Page view tracker