2023 Getting Started Windows Security
2023 Getting Started Windows Security
2023 Getting Started Windows Security
This article was partially created with the help of AI. An author reviewed and revised
the content as needed. Read more.
The acceleration of digital transformation and the expansion of both remote and hybrid
work brings new opportunities to organizations, communities, and individuals. This
expansion introduces new threats and risks.
Organizations worldwide are adopting a Zero Trust security model based on the
premise that no person or device anywhere can have access until safety and integrity is
proven. Windows 11 is built on Zero Trust principles to enable hybrid productivity and
new experiences anywhere, without compromising security. Windows 11 raises the
security baselines with new requirements for advanced hardware and software
protection that extends from chip to cloud.
1. Reduce risk by explicitly verifying data points such as user identity, location, and
device health for every access request, without exception
2. When verified, give people and devices access to only necessary resources for the
necessary amount of time
3. Use continuous analytics to drive threat detection and improve defenses
For Windows 11, the Zero Trust principle of verify explicitly applies to risks introduced by
both devices and people. Windows 11 provides chip-to-cloud security, enabling IT
administrators to implement strong authorization and authentication processes with
features like Windows Hello for Business. IT administrators also gain attestation and
measurements for determining if a device meets requirements and can be trusted.
Windows 11 works out-of-the-box with Microsoft Intune and Azure Active Directory,
which enables timely and seamless access decisions. Furthermore, IT administrators can
easily customize Windows to meet specific user and policy requirements for access,
privacy, compliance, and more.
Security, by default
Windows 11 is a natural evolution of its predecessor, Windows 10. We have collaborated
with our manufacturer and silicon partners to incorporate extra hardware security
measures that address the increasingly complex security threats of today. These
measures not only enable the hybrid work and learning that many organizations now
embrace but also help bolster our already strong foundation and resilience against
attacks.
In Windows 11, hardware and software work together to protect the operating system.
For example, new devices come with Virtualization-based security (VBS) and Secure Boot
built-in and enabled by default to contain and limit malware exploits.
Secured identities
Passwords have been an important part of digital security for a long time, and they're
also a top target for cybercriminals. Windows 11 provides powerful protection against
credential theft with chip-level hardware security. Credentials are protected by layers of
hardware and software security such as TPM 2.0, VBS, and/or Credential Guard, making
it harder for attackers to steal credentials from a device. With Windows Hello for
Business, users can quickly sign in with face, fingerprint, or PIN for passwordless
protection. Windows 11 also supports FIDO2 security keys for passwordless
authentication.
Next steps
To learn more about the security features included in Windows 11, download the
Windows 11 Security Book: Powerful security from chip to cloud .
Windows security features licensing and
edition requirements
Article • 06/22/2023 • Applies to: ✅ Windows 11
This article lists the security features that are available in Windows.
Select one of the two tabs to learn about licensing requirements to use the security
features, or to learn about the Windows edition requirements that support them:
Licensing requirements
Microsoft Defender ❌ ❌ ❌ ❌ ❌
Application Guard
(MDAG) for Microsoft
Office
For more information about Windows licensing, see Windows Commercial Licensing
overview.
Windows security foundations
Article • 08/01/2023
Our strong security foundation uses Microsoft Security Development Lifecycle (SDL) Bug
Bounty, support for product security standards and certifications, and Azure Code
signing. As a result, we improve security by producing software with fewer defects and
vulnerabilities instead of relying on applying updates after vulnerabilities have been
identified.
Use the links in the following table to learn more about the security foundations:
Offensive research
Feature name Description
Microsoft Security The Microsoft Security Development Lifecycle (SDL) introduces security best
Development practices, tools, and processes throughout all phases of engineering and
Lifecycle (SDL) development.
OneFuzz service A range of tools and techniques - such as threat modeling, static analysis,
fuzz testing, and code quality checks - enable continued security value to
be embedded into Windows by every engineer on the team from day one.
Through the SDL practices, Microsoft engineers are continuously provided
with actionable and up-to-date methods to improve development
workflows and overall product security before the code has been released.
Microsoft As part of our secure development process, the Microsoft Windows Insider
Windows Insider Preview bounty program invites eligible researchers across the globe to
Preview bounty find and submit vulnerabilities that reproduce in the latest Windows Insider
program Preview (WIP) Dev Channel. The goal of the Windows Insider Preview
bounty program is to uncover significant vulnerabilities that have a direct
and demonstrable impact on the security of customers using the latest
version of Windows.
Through this collaboration with researchers across the globe, our teams
identify critical vulnerabilities that were not previously found during
development and quickly fix the issues before releasing the final Windows.
Certification
Feature name Description
Federal The Federal Information Processing Standard (FIPS) Publication 140 is a U.S.
Information government standard that defines the minimum security requirements for
Processing cryptographic modules in IT products. Microsoft maintains an active
Standard (FIPS) commitment to meeting the requirements of the FIPS 140 standard, having
140 validation validated cryptographic modules against FIPS 140-2 since it was first
established in 2001. Multiple Microsoft products, including Windows 11,
Windows 10, Windows Server, and many cloud services, use these
cryptographic modules.
Software Bill of SBOMs are leveraged to provide the transparency and provenance of the
Materials (SBOM) content as it moves through various stages of the Windows supply chain.
This enables trust between each supply chain segment, ensures that
tampering has not taken place during ingestion and along the way, and
provides a provable chain of custody for the product that we ship to
customers.
The service is managed just as any other Azure resource and integrates
easily with the leading development and CI/CD toolsets.
Organizations need a security model that more effectively adapts to the complexity of
the modern work environment. IT admins need to embrace the hybrid workplace, while
protecting people, devices, apps, and data wherever they're located. Implementing a
Zero Trust model for security helps address today's complex environments.
Verify explicitly. Always authenticate and authorize based on all available data
points, including user identity, location, device health, service or workload, data
classification, and monitor anomalies.
Use least-privileged access. Limit user access with just-in-time and just-enough-
access, risk-based adaptive policies, and data protection to help secure data and
maintain productivity.
The Zero Trust concept of verify explicitly applies to the risks introduced by both
devices and users. Windows enables device health attestation and conditional access
capabilities, which are used to grant access to corporate resources.
Conditional access evaluates identity signals to confirm that users are who they say they
are before they're granted access to corporate resources.
Windows 11 supports device health attestation, helping to confirm that devices are in a
good state and haven't been tampered with. This capability helps users access corporate
resources whether they're in the office, at home, or when they're traveling.
Attestation helps verify the identity and status of essential components and that the
device, firmware, and boot process haven't been altered. Information about the
firmware, boot process, and software, is used to validate the security state of the device.
This information is cryptographically stored in the security co-processor Trusted
Platform Module (TPM). Once the device is attested, it can be granted access to
resources.
These determinations are made with the help of a secure root of trust using the Trusted
Platform Module (TPM). Devices can attest that the TPM is enabled, and that the device
hasn't been tampered with.
Windows includes many security features to help protect users from malware and
attacks. However, trusting the Windows security components can only be achieved if the
platform boots as expected and wasn't tampered with. Windows relies on Unified
Extensible Firmware Interface (UEFI) Secure Boot, Early-launch antimalware (ELAM),
Dynamic Root of Trust for Measurement (DRTM), Trusted Boot, and other low-level
hardware and firmware security features. When you power on your PC until your anti-
malware starts, Windows is backed with the appropriate hardware configuration to help
keep you safe. Measured and Trusted boot, implemented by bootloaders and BIOS,
verifies and cryptographically records each step of the boot in a chained manner. These
events are bound to a security coprocessor (TPM) that acts as the Root of Trust. Remote
Attestation is the mechanism by which these events are read and verified by a service to
provide a verifiable, unbiased, and tamper resilient report. Remote attestation is the
trusted auditor of your system's boot, allowing specific entities to trust the device.
A summary of the steps involved in attestation and Zero Trust on the device side are as
follows:
1. During each step of the boot process, such as a file load, update of special
variables, and more, information such as file hashes and signature are measured in
the TPM PCRs. The measurements are bound by a Trusted Computing Group
specification (TCG) that dictates what events can be recorded and the format of
each event.
2. Once Windows has booted, the attestor/verifier requests the TPM to fetch the
measurements stored in its Platform Configuration Register (PCR) alongside a TCG
log. The measurements in both these components together form the attestation
evidence that is then sent to the attestation service.
Verify the integrity of the evidence. This verification is done by validating the
PCRs that match the values recomputed by replaying the TCG log.
Verify that the TPM has a valid Attestation Identity Key issued by the
authenticated TPM.
Verify that the security features are in the expected states.
7. The device then sends the report to the Microsoft Intune cloud to assess the
trustworthiness of the platform according to the admin-configured device
compliance rules.
Other Resources
Learn more about Microsoft Zero Trust solutions in the Zero Trust Guidance Center.
Microsoft Security Development
Lifecycle
Article • 08/01/2023
The Security Development Lifecycle (SDL) is a security assurance process that is focused
on software development. As a Microsoft-wide initiative and a mandatory policy since
2004, the SDL has played a critical role in embedding security and privacy in software
and culture at Microsoft.
With the help of the combination of a holistic and practical approach, the SDL aims to
reduce the number and severity of vulnerabilities in software. The SDL introduces
security and privacy throughout all phases of the development process.
Education
Continuous process improvement
Accountability
To learn more about the SDL, visit the Security Engineering site .
The Cryptographic Module Validation Program (CMVP) ) is a joint effort of the U.S.
National Institute of Standards and Technology (NIST) and the Canadian Centre for
Cyber Security (CCCS). It validates cryptographic modules against the Security
Requirements for Cryptographic Modules (part of FIPS 140-2) and related FIPS
cryptography standards. The FIPS 140-2 security requirements cover 11 areas related to
the design and implementation of a cryptographic module. The NIST Information
Technology Laboratory operates a related program that validates the FIPS approved
cryptographic algorithms in the module.
information
Windows Resume [1] 10.0.15063 #3091 FIPS approved algorithms: AES (Certs.
#4624 and #4625 ); RSA (Cert.
#2523 ); SHS (Cert. #3790 )
Code Integrity (ci.dll) 10.0.15063 #3093 FIPS approved algorithms: AES (Cert.
#4624 ); RSA (Certs. #2522 and
#2523 ); SHS (Cert. #3790
Secure Kernel Code 10.0.15063 #3096 FIPS approved algorithms: AES (Cert.
Integrity (skci.dll)[3] #4624 ); RSA (Certs. #2522 and
Cryptographic Version (link FIPS Algorithms
Module to Security Certificate
Policy) #
[1]
Applies only to Home, Pro, Enterprise, Education, and S.
[2]
Applies only to Pro, Enterprise, Education, S, Mobile, and Surface Hub
[3]
Applies only to Pro, Enterprise, Education, and S
Windows 10, version 1607
Code Integrity (ci.dll) 10.0.14393 #2935 FIPS approved algorithms: RSA (Cert.
#2193 ); SHS (Cert. #3347 )
Secure Kernel Code 10.0.14393 #2938 FIPS approved algorithms: RSA (Certs.
Integrity (skci.dll)[3] #2193 ); SHS (Certs. #3347 )
[1]
Applies only to Home, Pro, Enterprise, and Enterprise LTSB
[2]
Applies only to Pro, Enterprise, Enterprise LTSB, and Mobile
Validated Editions: Home, Pro, Enterprise, Enterprise LTSB, Mobile, Surface Hub
Boot Manager [4] 10.0.10586 #2700 FIPS approved algorithms: AES (Certs.
#3653 ); HMAC (Cert. #2381 ); PBKDF
(vendor affirmed); RSA (Cert. #1871 );
SHS (Certs. #3047 and #3048 )
Cryptographic Version (link FIPS Algorithms
Module to Security Certificate
Policy) #
Code Integrity (ci.dll) 10.0.10586 #2604 FIPS approved algorithms: RSA (Certs.
#1871 ); SHS (Certs. #3048 )
Secure Kernel Code 10.0.10586 #2607 FIPS approved algorithms: RSA (Certs.
Integrity (skci.dll)[8] #1871 ); SHS (Certs. #3048 )
[4]
Applies only to Home, Pro, Enterprise, Mobile, and Surface Hub
[5]
Applies only to Home, Pro, Enterprise, Mobile, and Surface Hub
[6]
Applies only to Home, Pro, and Enterprise
[8]
Applies only to Enterprise and Enterprise LTSB
Windows 10, version 1507
Validated Editions: Home, Pro, Enterprise, Enterprise LTSB, Mobile, and Surface Hub
Code Integrity (ci.dll) 10.0.10240 #2604 FIPS approved algorithms: RSA (Certs.
#1784 ); SHS (Certs. #2871 )
Secure Kernel Code 10.0.10240 #2607 FIPS approved algorithms: RSA (Certs.
Integrity (skci.dll)[13] #1784 ); SHS (Certs. #2871 )
Cryptographic Version (link FIPS Algorithms
Module to Security Certificate
Policy) #
[9]
Applies only to Home, Pro, Enterprise, and Enterprise LTSB
[11]
Applies only to Home, Pro, Enterprise, and Enterprise LTSB
[13]
Applies only to Enterprise and Enterprise LTSB
Windows 8.1
Code Integrity (ci.dll) 6.3.9600 #2355 FIPS approved algorithms: RSA (Cert.
6.3.9600.17031 #1494 ); SHS (Cert. # 2373 )
BitLocker® Dump Filter 6.2.9200 #1899 FIPS approved algorithms: AES (Certs.
(DUMPFVE.SYS) #2196 and #2198 )
Code Integrity (CI.DLL) 6.2.9200 #1897 FIPS approved algorithms: RSA (Cert.
#1132 ); SHS (Cert. #1903 )
Enhanced DSS and Diffie- 6.2.9200 #1893 FIPS approved algorithms: DSA (Cert.
Hellman Cryptographic #686 ); SHS (Cert. #1902 ); Triple-DES
Provider (DSSENH.DLL) (Cert. #1386 ); Triple-DES MAC (Triple-
DES Cert. #1386 , vendor affirmed)
[15]
Applies only to Home and Pro
Windows 7
Other algorithms:
AES (Cert.
#1168 , key
wrapping; key
establishment
methodology
provides between
128 bits and 256
bits of encryption
strength); DES;
Diffie-Hellman
(key agreement;
key establishment
methodology
provides between
112 bits and 150
bits of encryption
strength; non-
compliant less
than 112 bits of
encryption
strength); MD2;
MD4; MD5; HMAC
MD5; RC2;
Cryptographic Module Version (link to Security Policy) FIPS Algorithms
Certificate
#
RC4#559 and);
SHS (Cert.); Triple-
DES (Cert.)
Other algorithms:
AES (Certificate,
key wrapping; key
establishment
methodology
provides between
128 bits and 256
bits of encryption
strength); DES;
Diffie-Hellman
(key agreement;
key establishment
methodology
provides between
112 bits and 150
bits of encryption
strength; non-
compliant less
than 112 bits of
encryption
strength); MD2;
MD4; MD5; HMAC
MD5; RC2; RC4
establishment
methodology
provides 80 bits
to 256 bits of
encryption
strength); RNG
(Cert. #649 );
RSA (Certs.
#559 and
#560 ); SHS
(Cert. #1081 );
Triple-DES (Cert.
#846 )
Other algorithms:
AES (Cert.
#1168 , key
wrapping; key
establishment
methodology
provides between
128 bits and 256
bits of encryption
strength); DES;
Diffie-Hellman
(key agreement;
key establishment
methodology
provides between
112 bits and 150
bits of encryption
strength; non-
compliant less
than 112 bits of
encryption
strength); MD2;
MD4; MD5; HMAC
MD5; RC2; RC4
SHS (Cert.
#1081 )
Other algorithms:
MD5#1168 and);
HMAC (Cert.); RSA
(Cert.); SHS (Cert.)
Other algorithms:
MD5
6.1.7601.21655
6.1.7601.21675
6.1.7600.20916
6.1.7601.17514
6.1.7601.17556
6.1.7601.21634
6.1.7601.21655
6.1.7601.21675
Cryptographic Module Version (link to Security Policy) FIPS Algorithms
Certificate
#
Other algorithms:
DES; DES MAC;
DES40; DES40
MAC; Diffie-
Hellman; MD5;
RC2; RC2 MAC;
RC4
Other algorithms:
DES; MD2; MD4;
MD5; RC2; RC4;
RSA (key
Cryptographic Module Version (link to Security Policy) FIPS Algorithms
Certificate
#
wrapping; key
establishment
methodology
provides between
112 bits and 256
bits of encryption
strength; non-
compliant less
than 112 bits of
encryption
strength)
Windows Vista
Enhanced DSS and 6.0.6000.16386 894 FIPS approved algorithms: DSA (Cert.
Diffie-Hellman #226 ); RNG (Cert. #321 ); SHS (Cert.
Cryptographic #618 ); Triple-DES (Cert. #549 );
Provider (DSSENH) Triple-DES MAC (Triple-DES Cert.
#549 , vendor affirmed)
Windows XP SP3
Enhanced DSS and 5.1.2600.5507 990 FIPS approved algorithms: DSA (Cert.
Diffie-Hellman #292 ); RNG (Cert. #448 ); SHS
Cryptographic (Cert. #784 ); Triple-DES (Cert.
Provider (DSSENH) #676 ); Triple-DES MAC (Triple-DES
Cert. #676 , vendor affirmed)
Windows XP SP2
Windows XP SP1
Windows XP
Cryptographic Version (link to FIPS Algorithms
Module Security Policy) Certificate
#
(Enh:
5.0.2195.2228
[SP2])
Windows 2000
Cryptographic Module Version (link FIPS Algorithms
to Security Certificate
Policy) #
Windows NT 4.0
Code Integrity (ci.dll) 10.0.14393 2935 FIPS approved algorithms: RSA (Cert.
#2193 ); SHS (Cert. #3347 )
Cryptographic Version (link FIPS Algorithms
Module to Security Certificate
Policy) #
Secure Kernel Code 10.0.14393 2938 FIPS approved algorithms: RSA (Certs.
Integrity (skci.dll) #2193 ); SHS (Certs. #3347 )
StorSimple 8000 Series, Azure StorSimple Virtual Array Windows Server 2012 R2
Code Integrity (ci.dll) 6.3.9600 2355 FIPS approved algorithms: RSA (Cert.
6.3.9600.17031 #1494 ); SHS (Cert. # 2373 )
[16] Doesn't apply to Azure StorSimple Virtual Array Windows Server 2012 R2
[17] Doesn't apply to Azure StorSimple Virtual Array Windows Server 2012 R2
Windows Server 2012
BitLocker® Dump Filter 6.2.9200 1899 FIPS approved algorithms: AES (Certs.
(DUMPFVE.SYS) #2196 and #2198 )
Code Integrity (CI.DLL) 6.2.9200 1897 FIPS approved algorithms: RSA (Cert.
#1132 ); SHS (Cert. #1903 )
Enhanced DSS and Diffie- 6.2.9200 1893 FIPS approved algorithms: DSA (Cert.
Hellman Cryptographic #686 ); SHS (Cert. #1902 ); Triple-DES
Provider (DSSENH.DLL) (Cert. #1386 ); Triple-DES MAC (Triple-
DES Cert. #1386 , vendor affirmed)
Cryptographic Module Version FIPS Algorithms
(link to Certificate
Security #
Policy)
Code Integrity 6.0.6001.18000 and 1006 FIPS approved algorithms: RSA (Cert.
(ci.dll) 6.0.6002.18005 #355 ); SHS (Cert. #753 )
Enhanced DSS 6.0.6001.18000 and 1009 FIPS approved algorithms: DSA (Cert.
and Diffie- 6.0.6002.18005 #282 ); RNG (Cert. #435 ); SHS
Hellman (Cert. #753 ); Triple-DES (Cert.
Cryptographic #656 ); Triple-DES MAC (Triple-DES
Provider Cert. #656 , vendor affirmed)
(DSSENH)
Other algorithms: DES; DES MAC;
DES40; DES40 MAC; Diffie-Hellman
(key agreement; key establishment
methodology provides between 112
bits and 150 bits of encryption
Cryptographic Version (link to FIPS Algorithms
Module Security Policy) Certificate
#
Enhanced DSS and 5.2.3790.3959 875 FIPS approved algorithms: DSA (Cert.
Diffie-Hellman #221 ); RNG (Cert. #314 ); RSA
Cryptographic (Cert. #245 ); SHS (Cert. #611 );
Provider (DSSENH) Triple-DES (Cert. #543 )
[1] x86
[1] x86
[1] x86
[1] x86
[1] x86
[1] x86
Other Products
For more details, expand each product section.
Enhanced 6.00.1937 [1] 825 FIPS approved algorithms: AES (Certs. #516
Cryptographic and [1] and #2024 [2]); HMAC (Certs. #267 [1]
Provider 7.00.1687 [2] and #1227 [2]); RNG (Certs. #292 [1] and
#1060 [2]); RSA (Cert. #230 [1] and
#1052 [2]); SHS (Certs. #589 [1] and #1774
[2]); Triple-DES (Certs. #526 [1] and #1308
[2])
Cryptographic algorithms
The following tables are organized by cryptographic algorithms with their modes, states,
and key sizes. For each algorithm implementation (operating system / platform), there is
a link to the Cryptographic Algorithm Validation Program (CAVP) issued certificate.
For more details, expand each algorithm section.
Advanced Encryption Standard (AES)
AES-128:
Block Sizes: Full, Partial
Message Length: 0-65536
Tag Length: 16-16
AES-192:
Block Sizes: Full, Partial
Message Length: 0-65536
Tag Length: 16-16
AES-256:
Block Sizes: Full, Partial
Message Length: 0-65536
Tag Length: 16-16
AES-CTR:
AES-128:
Block Sizes: Full, Partial
Message Length: 0-65536
Tag Length: 16-16
AES-192:
Block Sizes: Full, Partial
Message Length: 0-65536
Tag Length: 16-16
AES-256:
Block Sizes: Full, Partial
Message Length: 0-65536
Tag Length: 16-16
AES-CTR:
Plain Text Lengths: 128, 192, 256, 320, 2048 Version 10.0.15254
(bits)
AES validation number 4901
CBC (e/d; 128, 192, 256); Windows 10 Creators Update (version 1703)
Pro, Enterprise, Education Virtual TPM
CFB128 (e/d; 128, 192, 256); Implementations #4627
KW (AE, AD, AES-128, AES-192, AES-256, FWD, Windows 10 Creators Update (version 1703)
128, 256, 192, 320, 2048) Home, Pro, Enterprise, Education, Windows
10 S, Windows 10 Mobile Cryptography Next
AES validation number 4624 Generation (CNG) Implementations #4626
Modes / States / Key Sizes Algorithm Implementation and Certificate #
Version 10.0.15063
CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) Windows 10 Creators Update (version 1703)
(Payload Length Range: 0 - 32 (Nonce Length(s): Home, Pro, Enterprise, Education, Windows
12 (Tag Length(s): 16) 10 S, Windows 10 Mobile BitLocker(R)
Cryptographic Implementations #4625
AES validation number 4624
Version 10.0.15063
ECB (e/d; 128, 192, 256); Windows 10 Creators Update (version 1703)
Home, Pro, Enterprise, Education, Windows
CBC (e/d; 128, 192, 256); 10 S, Windows 10 Mobile SymCrypt
Cryptographic Implementations #4624
CFB8 (e/d; 128, 192, 256);
Version 10.0.15063
CFB128 (e/d; 128, 192, 256);
GMAC supported
Version 10.0.14393
ECB (e/d; 128, 192, 256); CBC (e/d; 128, 192, 256); Microsoft Windows 10 Anniversary Update,
CFB8 (e/d; 128, 192, 256); Windows Server 2016, Windows Storage
Server 2016; Microsoft Surface Book, Surface
CFB128 (e/d; 128, 192, 256); CTR (int only; 128, Pro 4, Surface Pro 3 and Surface 3 w/
192, 256) Windows 10 Anniversary Update; Microsoft
Lumia 950 and Lumia 650 w/ Windows 10
CCM (KS: 128, 192, 256) (Assoc. Data Len Range:
Mobile Anniversary Update SymCrypt
0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce
Cryptographic Implementations #4064
Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8
10 12 14 16) Version 10.0.14393
GMAC supported
Version 10.0.14393
KW (AE, AD, AES-128, AES-192, AES-256, FWD, Microsoft Windows 10 Anniversary Update,
128, 192, 256, 320, 2048) Windows Server 2016, Windows Storage
Server 2016; Microsoft Surface Book, Surface
AES validation number 4064 Pro 4, Surface Pro 3 and Surface 3 w/
Windows 10 Anniversary Update; Microsoft
Lumia 950 and Lumia 650 w/ Windows 10
Mobile Anniversary Update Cryptography
Next Generation (CNG) Implementations
#4062
Version 10.0.14393
CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) Microsoft Windows 10 Anniversary Update,
(Payload Length Range: 0 - 32 (Nonce Length(s): Windows Server 2016, Windows Storage
12 (Tag Length(s): 16) Server 2016; Microsoft Surface Book, Surface
Pro 4, Surface Pro 3 and Surface 3 w/
AES validation number 4064 Windows 10 Anniversary Update; Microsoft
Lumia 950 and Lumia 650 w/ Windows 10
Mobile Anniversary Update BitLocker®
Cryptographic Implementations #4061
Version 10.0.14393
KW (AE, AD, AES-128, AES-192, AES-256, FWD, Microsoft Windows 10 November 2015
128, 256, 192, 320, 2048) Update; Microsoft Surface Book, Surface Pro
4, Surface Pro 3, Surface 3, Surface Pro 2, and
AES validation number 3629 Surface Pro w/ Windows 10 November 2015
Update; Windows 10 Mobile for Microsoft
Lumia 950 and Microsoft Lumia 635;
Modes / States / Key Sizes Algorithm Implementation and Certificate #
Version 10.0.10586
CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) Microsoft Windows 10 November 2015
(Payload Length Range: 0 - 32 (Nonce Length(s): Update; Microsoft Surface Book, Surface Pro
12 (Tag Length(s): 16) 4, Surface Pro 3, Surface 3, Surface Pro 2, and
Surface Pro w/ Windows 10 November 2015
AES validation number 3629 Update; Windows 10 Mobile for Microsoft
Lumia 950 and Microsoft Lumia 635;
Windows 10 for Microsoft Surface Hub 84"
and Surface Hub 55" BitLocker®
Cryptographic Implementations #3653
Version 10.0.10586
Version 10.0.10586
ECB (e/d; 128, 192, 256); CBC (e/d; 128, 192, 256); Microsoft Windows 10 November 2015
CFB8 (e/d; 128, 192, 256); Update; Microsoft Surface Book, Surface Pro
4, Surface Pro 3, Surface 3, Surface Pro 2, and
CFB128 (e/d; 128, 192, 256); CTR (int only; 128, Surface Pro w/ Windows 10 November 2015
192, 256) Update; Windows 10 Mobile for Microsoft
Lumia 950 and Microsoft Lumia 635;
CCM (KS: 128, 192, 256) (Assoc. Data Len Range:
Windows 10 for Microsoft Surface Hub 84"
0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce
and Surface Hub 55" SymCrypt
Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8
Cryptographic Implementations #3629
10 12 14 16)
Version 10.0.10586
CMAC (Generation/Verification) (KS: 128; Block
Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16;
Tag Len(s) Min: 0 Max: 16) (KS: 192; Block Size(s):
Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag
Len(s) Min: 0 Max: 16) (KS: 256; Block Size(s):
Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag
Len(s) Min: 0 Max: 16)
Modes / States / Key Sizes Algorithm Implementation and Certificate #
GMAC supported
KW (AE, AD, AES-128, AES-192, AES-256, FWD, Microsoft Windows 10 Anniversary Update,
128, 256, 192, 320, 2048) Windows Server 2016, Windows Storage
Server 2016; Microsoft Surface Book, Surface
AES validation number 3497 Pro 4, Surface Pro 3 and Surface 3 w/
Windows 10 Anniversary Update; Microsoft
Lumia 950 and Lumia 650 w/ Windows 10
Mobile Anniversary Update Cryptography
Next Generation (CNG) Implementations
#3507
Version 10.0.10240
CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) Microsoft Windows 10, Microsoft Surface Pro
(Payload Length Range: 0 - 32 (Nonce Length(s): 3 with Windows 10, Microsoft Surface 3 with
12 (Tag Length(s): 16) Windows 10, Microsoft Surface Pro 2 with
Windows 10, Microsoft Surface Pro with
AES validation number 3497 Windows 10 BitLocker® Cryptographic
Implementations #3498
Version 10.0.10240
ECB (e/d; 128, 192, 256); CBC (e/d; 128, 192, 256); Microsoft Windows 10, Microsoft Surface Pro
CFB8 (e/d; 128, 192, 256); 3 with Windows 10, Microsoft Surface 3 with
Windows 10, Microsoft Surface Pro 2 with
CFB128 (e/d; 128, 192, 256); CTR (int only; 128, Windows 10, Microsoft Surface Pro with
192, 256) Windows 10 SymCrypt Cryptographic
Implementations #3497
CCM (KS: 128, 192, 256) (Assoc. Data Len Range:
0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Version 10.0.10240
Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8
10 12 14 16)
GMAC supported
ECB (e/d; 128, 192, 256); Microsoft Windows 10, Microsoft Surface Pro
3 with Windows 10, Microsoft Surface 3 with
CBC (e/d; 128, 192, 256); Windows 10, Microsoft Surface Pro 2 with
Windows 10, Microsoft Surface Pro with
CFB8 (e/d; 128, 192, 256);
Windows 10 RSA32 Algorithm
Implementations #3476
Version 10.0.10240
ECB (e/d; 128, 192, 256); Microsoft Windows 8.1, Microsoft Windows
Server 2012 R2, Microsoft Windows Storage
CBC (e/d; 128, 192, 256); Server 2012 R2, Microsoft Windows RT 8.1,
Microsoft Surface with Windows RT 8.1,
CFB8 (e/d; 128, 192, 256);
Microsoft Surface Pro with Windows 8.1,
Microsoft Surface 2, Microsoft Surface Pro 2,
Microsoft Surface Pro 3, Microsoft Windows
Phone 8.1, Microsoft Windows Embedded
8.1 Industry RSA32 Algorithm
Implementations #2853
Version 6.3.9600
CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) Microsoft Windows 8.1, Microsoft Windows
(Payload Length Range: 0 - 32 (Nonce Length(s): Server 2012 R2, Microsoft Windows Storage
12 (Tag Length(s): 16) Server 2012 R2, Microsoft Windows RT 8.1,
Microsoft Surface with Windows RT 8.1,
AES validation number 2832 Microsoft Surface Pro with Windows 8.1,
Microsoft Surface 2, Microsoft Surface Pro 2,
Microsoft Surface Pro 3, Microsoft Windows
Phone 8.1, Microsoft Windows Embedded
Modes / States / Key Sizes Algorithm Implementation and Certificate #
Version 6.3.9600
CCM (KS: 128, 192, 256) (Assoc. Data Len Range: Windows Storage Server 2012 R2, Microsoft
0-0, 2^16) (Payload Length Range: 0 - 0 (Nonce Windows RT 8.1, Microsoft Surface with
Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 Windows RT 8.1, Microsoft Surface Pro with
10 12 14 16) Windows 8.1, Microsoft Surface 2, Microsoft
Surface Pro 2, Microsoft Surface Pro 3,
CMAC (Generation/Verification) (KS: 128; Block Microsoft Windows Phone 8.1, Microsoft
Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Windows Embedded 8.1 Industry, and
Tag Len(s) Min: 0 Max: 16) (KS: 192; Block Size(s): Microsoft StorSimple 8100 SymCrypt
Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Cryptographic Implementations #2832
Len(s) Min: 0 Max: 16) (KS: 256; Block Size(s):
Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Version 6.3.9600
Len(s) Min: 0 Max: 16)
OtherIVLen_Supported
GMAC supported
CCM (KS: 128, 192, 256) (Assoc. Data Len Range: Windows 8, Windows RT, Windows Server
0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce 2012, Surface Windows RT, Surface Windows
Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 8 Pro, and Windows Phone 8 Cryptography
10 12 14 16) Next Generation (CNG) Implementations
#2216
AES validation number 2197
GMAC supported
CCM (KS: 256) (Assoc. Data Len Range: 0 - 0, Windows 8, Windows RT, Windows Server
2^16) (Payload Length Range: 0 - 32 (Nonce 2012, Surface Windows RT, Surface Windows
Length(s): 12 (Tag Length(s): 16) 8 Pro, and Windows Phone 8 BitLocker®
Cryptographic Implementations #2198
AES validation number 2196
ECB (e/d; 128, 192, 256); Windows 8, Windows RT, Windows Server
2012, Surface Windows RT, Surface Windows
CBC (e/d; 128, 192, 256); 8 Pro, and Windows Phone 8 Next
Generation Symmetric Cryptographic
CFB8 (e/d; 128, 192, 256);
Algorithms Implementations (SYMCRYPT)
CFB128 (e/d; 128, 192, 256); #2197
ECB (e/d; 128, 192, 256); Windows 8, Windows RT, Windows Server
2012, Surface Windows RT, Surface Windows
CBC (e/d; 128, 192, 256); 8 Pro, and Windows Phone 8 Symmetric
Algorithm Implementations (RSA32) #2196
CFB8 (e/d; 128, 192, 256);
CCM (KS: 128, 192, 256) (Assoc. Data Len Range: Windows Server 2008 R2 and SP1 CNG
0 - 0, 2^16) (Payload Length Range: 0 - 32 algorithms #1187
(Nonce Length(s): 7 8 9 10 11 12 13 (Tag
Length(s): 4 6 8 10 12 14 16) Windows 7 Ultimate and SP1 CNG
algorithms #1178
AES validation number 1168
CCM (KS: 128, 256) (Assoc. Data Len Range: 0 - Windows 7 Ultimate and SP1 and Windows
8) (Payload Length Range: 4 - 32 (Nonce Server 2008 R2 and SP1 BitLocker Algorithm
Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16) Implementations #1177
ECB (e/d; 128, 192, 256); Windows 7 and SP1 and Windows Server
2008 R2 and SP1 Symmetric Algorithm
CBC (e/d; 128, 192, 256); Implementation #1168
CFB8
Modes(e/d; 128, 192,
/ States / Key256);
Sizes Algorithm Implementation and Certificate #
CCM (KS: 128, 256) (Assoc. Data Len Range: 0 - Windows Vista Ultimate SP1 and Windows
8) (Payload Length Range: 4 - 32 (Nonce Server 2008 BitLocker Algorithm
Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16) Implementations #760
CCM (KS: 128, 192, 256) (Assoc. Data Len Range: Windows Server 2008 CNG algorithms #757
0 - 0, 2^16) (Payload Length Range: 1 - 32
(Nonce Length(s): 7 8 9 10 11 12 13 (Tag Windows Vista Ultimate SP1 CNG algorithms
Length(s): 4 6 8 10 12 14 16**)** #756
ECB (e/d; 128, 192, 256); Windows Vista Ultimate SP1 and Windows
Server 2008 Symmetric Algorithm
CBC (e/d; 128, 192, 256); Implementation #739
Component
ECDSA SigGen: Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft
P-256 SHA: Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft
SHA-256 Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1,
P-384 SHA: Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3,
SHA-384 Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry,
P-521 SHA: and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations
SHA-512 #1540
Prerequisite: DRBG
#489 Version 6.3.9600
Pre-shared Key
Length: 64-2048
Diffie-Hellman
shared secrets:
Length: 2048
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Length: 256
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Length: 384
(bits)
SHA Functions:
SHA-384
Prerequisite: SHS
#4011 , HMAC
#3269
IKEv2:
Derived Keying
Material length:
192-1792
Diffie-Hellman
shared secret:
Length: 2048
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Length: 256
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Length: 384
(bits)
Publication / Implementation and Certificate #
Component
Validated /
Description
SHA Functions:
SHA-384
Prerequisite: SHS
#4011 , HMAC
#3269
TLS:
Supports TLS
1.0/1.1
Supports TLS
1.2:
SHA Functions:
SHA-256, SHA-384
Prerequisite: SHS
#4011 , HMAC
#3269
Pre-shared Key
Length: 64-2048
Diffie-Hellman
shared secret:
Length: 2048
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Length: 256
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Length: 384
(bits)
SHA Functions:
SHA-384
Prerequisite: SHS
#4010 , HMAC
#3268
IKEv2:
Derived Keying
Material length:
192-1792
Diffie-Hellman
shared secret:
Length: 2048
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Length: 256
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Length: 384
(bits)
Publication / Implementation and Certificate #
Component
Validated /
Description
SHA Functions:
SHA-384
Prerequisite: SHS
#4010 , HMAC
#3268
TLS:
Supports TLS
1.0/1.1
Supports TLS
1.2:
SHA Functions:
SHA-256, SHA-384
Prerequisite: SHS
#4010 , HMAC
#3268
ECDSA SigGen: Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators
P-256 SHA: Update; Windows Server, Windows Server Datacenter (version 1709);
SHA-256 MsBignum Cryptographic Implementations #1503
P-384 SHA:
SHA-384 Version 10.0.16299
Publication / Implementation and Certificate #
Component
Validated /
Description
P-521 SHA:
SHA-512
Prerequisite: DRBG
#1730
Version 10.0.16299
ECDSA SigGen: Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators
P-256 SHA: Update; Windows Server, Windows Server Datacenter (version 1709);
SHA-256 SymCrypt Cryptographic Implementations #1499
P-384 SHA:
SHA-384 Version 10.0.16299
P-521 SHA:
SHA-512
Prerequisite: DRBG
#1730
Version 10.0.16299
IKEv2:
Derived Keying
Material length:
192-1792
Diffie-Hellman
shared secret:
Length: 2048
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Length: 256
(bits)
SHA Functions:
SHA-256
Diffie-Hellman
shared secret:
Publication / Implementation and Certificate #
Component
Validated /
Description
Length: 384
(bits)
SHA Functions:
SHA-384
Prerequisite: SHS
#4009 , HMAC
#3267
TLS:
Supports TLS
1.0/1.1
Supports TLS
1.2:
SHA Functions:
SHA-256, SHA-384
Prerequisite: SHS
#4009 , HMAC
#3267
FIPS186-4 ECDSA Windows 10 Creators Update (version 1703) Home, Pro, Enterprise,
Signature Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic
Generation of hash Implementations #1284
sized messages
Version 10.0. 15063
ECDSA SigGen
Component: Windows 10 Creators Update (version 1703) Home, Pro, Enterprise,
CURVES(P-256 P- Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic
384 P-521) Implementations #1279
Version 10.0.14393
for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for
Microsoft Surface Hub 84" and Surface Hub 55" MsBignum Cryptographic
Implementations #666
Version 10.0.10586
Version 6.3.9600
FIPS186-4 RSA; Windows 10 Creators Update (version 1703) Pro, Enterprise, Education
PKCS#1 v2.1 Virtual TPM Implementations #1285
RSASP1 Signature
Primitive Version 10.0.15063
RSASP1: (Mod2048: Windows 10 Creators Update (version 1703) Home, Pro, Enterprise,
PKCS1.5 PKCSPSS) Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic
Implementations #1282
Version 10.0.15063
Version 10.0.15063
Version 10.0.14393
Version 10.0.14393
Publication / Implementation and Certificate #
Component
Validated /
Description
Version 10.0.10586
Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft
Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10,
Microsoft Surface Pro with Windows 10 MsBignum Cryptographic
Implementations #572
Version 10.0.10240
Version 6.3.9600
FIPS186-4 RSA; Windows 10 Creators Update (version 1703) Home, Pro, Enterprise,
RSADP Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic
RSADP Primitive Implementations #1283
Version 10.0.15063
Version 10.0.14393
Version 10.0.14393
Version 10.0.10586
Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft
Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10,
Microsoft Surface Pro with Windows 10 Cryptography Next Generation
(CNG) Implementations #576
Version 10.0.10240
Version 10.0.15063
Version 7.00.2872
Version 8.00.6246
Version 10.0.14393
Publication / Implementation and Certificate #
Component
Validated /
Description
Version 10.0.10586
Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft
Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10,
Microsoft Surface Pro with Windows 10 BCryptPrimitives and NCryptSSLp
#575
Version 10.0.10240
Version 6.3.9600
Version 10.0.14393
Version 10.0.14393
Version 10.0.10586
Version 10.0.10240
Version 6.3.9600
KeyPair:
L = 2048, N = 256
L = 3072, N = 256
Prerequisite: SHS #4009 , DRBG
#1730
**SIG(gen)**PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)]
**SIG(gen)**PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)]
**SIG(ver)**PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)]
**SIG(ver)**PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)]
**SIG(gen)**PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)] **SIG(ver)**PARMS
TESTED: [(2048,256) SHA(256);
(3072,256) SHA(256)]
**SIG(gen)**PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)]
**SIG(ver)**PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)]
SIG(ver) MOD(1024);
SHS: #1903
DRBG: #258
FIPS186-4: PQG(gen)PARMS
TESTED: [(2048,256)SHA(256);
(3072,256) SHA(256)]
PQG(ver)PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)]
Modes / States / Key Sizes Algorithm Implementation and Certificate #
SIG(gen)PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)]
SIG(ver)PARMS TESTED:
[(2048,256) SHA(256); (3072,256)
SHA(256)]
SHS: #1903
DRBG: #258
SHS: #1902
DRBG: #258
SHS: validation number 1081 Windows 7 Ultimate and SP1 Enhanced DSS (DSSENH) #385
PQG(ver) MOD(1024);
KEYGEN(Y) MOD(1024);
SIG(gen) MOD(1024);
SIG(ver) MOD(1024);
PQG(ver) MOD(1024);
KEYGEN(Y) MOD(1024);
SIG(gen) MOD(1024);vSIG(ver)
MOD(1024);vSHS: validation
number 385
KEYGEN(Y) MOD(1024);vSIG(gen)
MOD(1024);
SIG(ver) MOD(1024);
FIPS186-2: PRIME; Windows NT 4.0 SP4 Microsoft Enhanced DSS and Diffie-
FIPS186-2: Hellman Cryptographic Provider #17
SIG(gen):SIG(ver) MOD(1024);
FIPS186-2: Windows 8,
PKG: CURVES(P-256 P-384 P-521) Windows RT, Windows Server 2012, Surface Windows
RT, Surface Windows 8 Pro, and Windows Phone 8
SHS: #1903 Cryptography Next Generation (CNG) Implementations
#341
DRBG: #258
SHS: #1903
DRBG: #258
FIPS186-4:
PKG: CURVES(P-256 P-384 P-521
ExtraRandomBits)
SHS: #1903
DRBG: #258 .
Modes / States / Key Sizes Algorithm Implementation and Certificate #
FIPS186-4:
PKG: CURVES(P-256 P-384 P-521
ExtraRandomBits)
HMAC-SHA2-256:
Version 10.0.16299
Key Sizes
Modes > Block
/ States / Algorithm Implementation and Certificate #
SizeKey Sizes
Key Sizes = Block
Size
HMAC-SHA2-256:
Key Sizes < Block
Size
Key Sizes > Block
Size
Key Sizes = Block
Size
HMAC-SHA2-384:
Key Sizes < Block
Size
Key Sizes > Block
Size
Key Sizes = Block
Size
Prerequisite: SHS #4009
HMAC-SHA1 (Key Sizes Windows 10 Creators Update (version 1703) Pro, Enterprise, Education
Ranges Tested: KSBS) Virtual TPM Implementations #3062
SHS validation number
3790 Version 10.0.15063
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3790
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3790
HMAC-SHA1(Key Sizes Windows 10 Creators Update (version 1703) Home, Pro, Enterprise,
Ranges Tested: KSBS) Education, Windows 10 S, Windows 10 Mobile SymCrypt
SHS validation number Cryptographic Implementations #3061
3790
Version 10.0.15063
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3790
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3790
HMAC-SHA512 (Key
Size Ranges Tested:
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3652
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3652
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHSvalidation
number 3652
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3651
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3651
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHSvalidation
number 3651
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3649
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3649
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHSvalidation
number 3649
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3648
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3648
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHSvalidation
number 3648
HMAC-SHA1 (Key Sizes Microsoft Windows 10 Anniversary Update, Windows Server 2016,
Ranges Tested: KSBS) Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4,
and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM
SHS validation number Implementations #2661
3347
Version 10.0.14393
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3347
HMAC-SHA384 (Key
Size Ranges Tested:
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
HMAC-SHA1 (Key Sizes Microsoft Windows 10 Anniversary Update, Windows Server 2016,
Ranges Tested: KSBS) Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4,
SHS validation number Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update;
3347 Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile
Anniversary Update SymCrypt Cryptographic Implementations #2651
HMAC-SHA256 (Key
Size Ranges Tested: Version 10.0.14393
KSBS) SHS validation
number 3347
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3347
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 3347
HMAC-SHA1 (Key Sizes Microsoft Windows 10 November 2015 Update; Microsoft Surface
Ranges Tested: KSBS) Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and
SHS validation number Surface Pro w/ Windows 10 November 2015 Update; Windows 10
3047 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10
for Microsoft Surface Hub 84" and Surface Hub 55" SymCrypt
HMAC-SHA256 (Key Cryptographic Implementations #2381
Size Ranges Tested:
KSBS) Version 10.0.10586
SHS validation number
3047
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS)
SHS validation number
3047
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS)
SHS validation number
3047
HMAC-SHA1 (Key Sizes Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10,
Ranges Tested: KSBS) Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
SHSvalidation number Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt
2886 Cryptographic Implementations #2233
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS)
SHSvalidation number
2886
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS)
SHSvalidation number
2886
HMAC-SHA1 (Key Sizes Windows Storage Server 2012 R2, Microsoft Windows RT 8.1,
Ranges Tested: KSBS) Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with
SHS validation number Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft
2373 Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows
Embedded 8.1 Industry, and Microsoft StorSimple 8100 SymCrypt
HMAC-SHA256 (Key Cryptographic Implementations #1773
Size Ranges Tested:
KSBS) Version 6.3.9600
SHS validation number
2373
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS)
SHS validation number
2373
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS)
SHS validation number
2373
HMAC-SHA1 (Key Sizes Windows CE and Windows Mobile, and Windows Embedded Handheld
Ranges Tested: KSBS) Enhanced Cryptographic Provider (RSAENH) #2122
SHS validation number
2764 Version 5.2.29344
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 2764
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 2764
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 2764
HMAC-SHA1 (Key Sizes Windows 8, Windows RT, Windows Server 2012, Surface Windows RT,
Ranges Tested: KS#1902 Surface Windows 8 Pro, and Windows Phone 8 BitLocker®
Cryptographic Implementations #1347
HMAC-SHA256 (Key
Size Ranges Tested:
KS#1902
HMAC-SHA1 (Key Sizes Windows 8, Windows RT, Windows Server 2012, Surface Windows RT,
Ranges Tested: KSBS) Surface Windows 8 Pro, and Windows Phone 8 Enhanced
SHS#1902 Cryptographic Provider (RSAENH) #1346
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS#1902
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS#1902
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS#1902
HMAC-SHA1 (Key Sizes Windows 8, Windows RT, Windows Server 2012, Surface Windows RT,
Ranges Tested: KSBS) Surface Windows 8 Pro, and Windows Phone 8 Next Generation
SHS#1903 Symmetric Cryptographic Algorithms Implementations (SYMCRYPT)
#1345
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS)
SHS#1903
HMAC-SHA384 (Key
Size Ranges Tested:
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
KSBS)
SHS#1903
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS)
SHS#1903
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 1773
Tinker HMAC-SHA384
(Key Size Ranges
Tested: KSBS) SHS
validation number 1773
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 1773
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 1774
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 1774
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 1774
HMAC-SHA1 (Key Sizes Windows Server 2008 R2 and SP1 CNG algorithms #686
Ranges Tested: KSBS)
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 1081
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 1081
HMAC-SHA1(Key Sizes Windows 7 and SP1 and Windows Server 2008 R2 and SP1 BitLocker
Ranges Tested: Algorithm Implementations #675
KSvalidation number
1081
HMAC-SHA256 (Key
Size Ranges Tested:
KSvalidation number
1081
HMAC-SHA1 (Key Sizes Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH)
Ranges Tested: KSBS) #452
SHS validation number
816
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 816
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 816
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 816
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
HMAC-SHA1 (Key Sizes Windows Vista Ultimate SP1 and Windows Server 2008 BitLocker
Ranges Tested: Algorithm Implementations #415
KSvalidation number
753
HMAC-SHA256 (Key
Size Ranges Tested:
KSvalidation number
753
HMAC-SHA1 (Key Sizes Windows Server 2008 Enhanced Cryptographic Provider (RSAENH)
Ranges Tested: KSBS) #408
SHS validation number
753 Windows Vista Enhanced Cryptographic Provider (RSAENH) #407
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 753
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 753
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 753
HMAC-SHA1 (Key Sizes Windows Vista Enhanced Cryptographic Provider (RSAENH) #297
Ranges Tested:
KSBS)SHS validation
number 618
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 618
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 618
HMAC-SHA512 (Key
Size Ranges Tested:
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
HMAC-SHA1 (Key Sizes Windows XP Professional SP3 Kernel Mode Cryptographic Module
Ranges Tested: KSBS) (fips.sys) #429
SHS validation number
785 Windows XP, vendor-affirmed
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 783
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 783
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 783
HMAC-SHA1 (Key Sizes Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH)
Ranges Tested: KSBS) #289
SHS validation number
613
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 613
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 613
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 613
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
HMAC-SHA1 (Key Sizes Windows Server 2003 SP2 Kernel Mode Cryptographic Module
Ranges Tested: KSBS) (fips.sys) #287
SHS validation number
610
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 753
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 753
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 753
HMAC-SHA1 (Key Sizes Windows Vista Ultimate BitLocker Drive Encryption #386
Ranges Tested:
KSvalidation number
737
HMAC-SHA256 (Key
Size Ranges Tested:
KSvalidation number
737
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 618
HMAC-SHA384 (Key
Size Ranges Tested:
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 618
HMAC-SHA1 (Key Sizes Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile
Ranges Tested: KSBS) Enhanced Cryptographic Provider (RSAENH) #267
SHS validation number
589
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS)SHS validation
number 589
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 589
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 589
HMAC-SHA1 (Key Sizes Windows CE and Windows Mobile 6.0 and Windows Mobil 6.5
Ranges Tested: KSBS) Enhanced Cryptographic Provider (RSAENH) #260
SHS validation number
578
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 578
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 578
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 578
Modes / States / Algorithm Implementation and Certificate #
Key Sizes
HMAC-SHA256 (Key
Size Ranges Tested:
KSvalidation number
495
HMAC-SHA1 (Key Sizes Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH)
Ranges Tested: KSBS) #99
SHS validation number
364 Windows XP, vendor-affirmed
HMAC-SHA1 (Key Sizes Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic
Ranges Tested: KSBS) Provider (RSAENH) #31
SHS validation number
305
HMAC-SHA256 (Key
Size Ranges Tested:
KSBS) SHS validation
number 305
HMAC-SHA384 (Key
Size Ranges Tested:
KSBS) SHS validation
number 305
HMAC-SHA512 (Key
Size Ranges Tested:
KSBS) SHS validation
number 305
Schemes:
Full Unified:
Modes / States / Key Sizes Algorithm Implementation and Certificate #
Full Unified:
Key Agreement Roles: Initiator,
Responder
KDFs: Concatenation
Parameter Sets:
EC:
Curve: P-256
SHA: SHA-256
MAC: HMAC
ED:
Curve: P-384
SHA: SHA-384
MAC: HMAC
Prerequisite: SHS #4009 , ECDSA #1252 ,
DRBG #1733
Schemes:
Ephemeral Unified:
Modes / States / Key Sizes Algorithm Implementation and Certificate #
Curve: P-384
SHA: SHA-384
MAC: HMAC
EE:
Curve: P-521
SHA: SHA-512
Modes / States / Key Sizes Algorithm Implementation and Certificate #
MAC: HMAC
Prerequisite: SHS #4011 , ECDSA #1250 ,
DRBG #1732
KAS FFC:
Functions: Domain Parameter Generation,
Domain Parameter Validation, Key Pair
Generation, Partial Public Key Validation
Schemes:
dhEphem:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
FB:
SHA: SHA-256
MAC: HMAC
FC:
SHA: SHA-256
MAC: HMAC
dhOneFlow:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
FB:
SHA: SHA-256
MAC: HMAC
FC
SHA: SHA-256
MAC: HMAC
dhStatic:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
FB:
SHA: SHA-256
MAC: HMAC
FC:
SHA: SHA-256
MAC: HMAC
Prerequisite: SHS #4011 , DSA #1303 ,
DRBG #1732
Schemes:
Ephemeral Unified:
Key Agreement Roles: Initiator,
Responder
KDFs: Concatenation
Parameter Sets:
EC:
Curve: P-256
SHA: SHA-256
MAC: HMA
ED:
Curve: P-384
SHA: SHA-384
MAC: HMAC
EE:
Curve: P-521
SHA: SHA-512
MAC: HMAC
One-Pass DH:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
EC:
Curve: P-256
SHA: SHA-256
MAC: HMAC
ED:
Curve: P-384
SHA: SHA-384
MAC: HMAC
EE:
Curve: P-521
SHA: SHA-512
MAC: HMAC
Static Unified:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
EC:
Curve: P-256
SHA: SHA-256
MAC: HMAC
ED:
Curve: P-384
SHA: SHA-384
MAC: HMAC
EE:
Modes / States / Key Sizes Algorithm Implementation and Certificate #
Curve: P-521
SHA: SHA-512
MAC: HMAC
Prerequisite: SHS #4010 , ECDSA #1249 ,
DRBG #1731
KAS FFC:
Functions: Domain Parameter Generation,
Domain Parameter Validation, Key Pair
Generation, Partial Public Key Validation
Schemes:
dhEphem:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
FB:
SHA: SHA-256
MAC: HMAC
FC:
SHA: SHA-256
MAC: HMAC
dhOneFlow:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
FB:
SHA: SHA-256
MAC: HMAC
FC
SHA: SHA-256
MAC: HMAC
dhStatic:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
FB:
SHA: SHA-256
MAC: HMAC
FC:
SHA: SHA-256
MAC: HMAC
Prerequisite: SHS #4010 , DSA #1302 ,
DRBG #1731
Schemes:
Ephemeral Unified:
Key Agreement Roles: Initiator,
Responder
KDFs: Concatenation
Parameter Sets:
EC:
Curve: P-256
SHA: SHA-256
MAC: HMAC
ED:
Curve: P-384
SHA: SHA-384
MAC: HMAC
EE:
Curve: P-521
SHA: SHA-512
MAC: HMAC
One-Pass DH:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:EC:
Curve: P-256
SHA: SHA-256
MAC: HMAC
ED
Curve: P-384
SHA: SHA-384
MAC: HMAC
EE:
Curve: P-521
SHA: SHA-512
MAC: HMAC
Static Unified:
MAC: HMAC
ED:
Curve: P-384
SHA: SHA-384
MAC: HMAC
EE:
Curve: P-521
SHA: SHA-512
MAC: HMAC
Prerequisite: SHS #4009 , ECDSA #1246 ,
DRBG #1730
KAS FFC:
Functions: Domain Parameter Generation,
Domain Parameter Validation, Key Pair
Generation, Partial Public Key Validation
Schemes:
dhEphem:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
FB:
SHA: SHA-256
MAC: HMAC
FC:
SHA: SHA-256
MAC: HMAC
dhOneFlow:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
FB:
SHA: SHA-256
MAC: HMAC
FC:
SHA: SHA-256
MAC: HMAC
dhStatic:
Key Agreement Roles: Initiator,
Responder
Parameter Sets:
FB:
SHA: SHA-256
MAC: HMAC
FC:
SHA: SHA-256
Modes / States / Key Sizes Algorithm Implementation and Certificate #
MAC: HMAC
Prerequisite: SHS #4009 , DSA #1301 ,
DRBG #1730
SHS #1903
Key Agreement: Key establishment Windows Server 2008 R2 and SP1, vendor-
methodology provides 80 bits to 256 bits of affirmed
encryption strength
Version 10.0.14393
Version 10.0.14393
Version 10.0.10586
Version 6.3.9600
FIPS 186-2 General Windows 8, Windows RT, Windows Server 2012, Surface Windows RT,
Purpose Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next
[(x-Original); (SHA-1)] Generation (CNG) Implementations #1110
FIPS 186-2 Windows 7 and SP1 and Windows Server 2008 R2 and SP1 RNG
[(x-Change Notice); Library #649
(SHA-1)]; FIPS 186-2
General Purpose Windows Vista Ultimate SP1 and Windows Server 2008 RNG
[(x-Change Notice); Implementation #435
(SHA-1)]
Windows Vista RNG implementation #321
FIPS 186-2 General Windows Server 2003 SP2 Enhanced Cryptographic Provider
Purpose (RSAENH) #470
[(x-Change Notice);
(SHA-1)] Windows XP Professional SP3 Kernel Mode Cryptographic Module
(fips.sys) #449
RSA
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
Mod 3072:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
Modes / States / Key Sizes Algorithm Implementation and
Certificate #
Mod 2048:
SHA-1: Salt Length: 240 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
Mod 1024
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
Prerequisite: SHS #4009 , DRBG #1733
SHA-1,
SHA-256,
SHA-384,
SHA-512
Mod 2048 SHA:
SHA-1,
SHA-256
SHA-384,
SHA-512
Mod 3072 SHA:
SHA-1,
SHA-256,
SHA-384,
SHA-512
Prerequisite: SHS #4011 , DRBG #1732
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 3072
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Modes / States / Key Sizes Algorithm Implementation and
Certificate #
Mod 1024
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 496 (bits
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 3072:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Prerequisite: SHS #4011 , DRBG #1732
Primality Tests: C 2
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 3072:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 1024:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
Modes / States / Key Sizes Algorithm Implementation and
Certificate #
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits
SHA-512: Salt Length: 512 (bits)
Mod 3072:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Modes / States / Key Sizes Algorithm Implementation and
Certificate #
Mod 1024:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 496 (bits)
Mod 2048
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 3072:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Prerequisite: SHS #4010 , DRBG #1731
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 3072
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 1024
Modes / States / Key Sizes Algorithm Implementation and
Certificate #
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 3072
Modes / States / Key Sizes Algorithm Implementation and
Certificate #
Mod 1024
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 496 (bits)
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 3072:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Prerequisite: SHS #4009 , DRBG #1730
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 3072:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 1024:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 496 (bits)
Mod 2048:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Mod 3072:
SHA-1: Salt Length: 160 (bits)
SHA-256: Salt Length: 256 (bits)
SHA-384: Salt Length: 384 (bits)
SHA-512: Salt Length: 512 (bits)
Prerequisite: SHS #4009 , DRBG #1730
384, 512)) (3072 SHA(1, 256, 384, 512))SIG(gen) with Version 10.0.15063
SHA-1 affirmed for use with protocols only.
FIPS186-4:
ALG[ANSIX9.31] Sig(Gen): (2048 SHA(1)) (3072
SHA(1))SIG(gen) with SHA-1 affirmed for use with
protocols only.SIG(ver): (1024 SHA(1)) (2048 SHA(1))
(3072 SHA(1))
ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256,
384, 512)) (3072 SHA(1, 256, 384, 512)) **SIG(gen) with
SHA-1 affirmed for use with protocols only
FIPS186-4:
ALG[ANSIX9.31] Sig(Gen): (2048 SHA(1)) (3072
SHA(1))SIG(gen) with SHA-1 affirmed for use with
protocols only. SIG(ver): (1024 SHA(1)) (2048 SHA(1))
(3072 SHA(1))
ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256,
384, 512)) (3072 SHA(1, 256, 384, 512)) **SIG(gen) with
SHA-1 affirmed for use with protocols only.
Modes / States / Key Sizes Algorithm Implementation and
Certificate #
FIPS186-4:
FIPS186-4:
Version 10.0.14393
Version 10.0.14393
Modes / States / Key Sizes Algorithm Implementation and
Certificate #
Version 10.0.14393
Version 10.0.10586
Version 10.0.10586
Version 10.0.10586
Version 10.0.10240
Version 10.0.10240
Version 6.3.9600
Version 6.3.9600
Version 6.3.9600
Version 6.3.9600
SHA-256:
Supports Empty
Message
SHA-384:
Supports Empty
Message
SHA-512:
Supports Empty
Message
SHA-256:
Supports Empty
Message
SHA-384:
Supports Empty
Message
SHA-512:
Supports Empty
Message
SHA-384:
Supports Empty
Message
SHA-512:
Supports Empty
Message
SHA-1 (BYTE-only) Windows 10 Creators Update (version 1703) Home, Pro, Enterprise,
SHA-256 (BYTE- Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic
only) Implementations #3790
SHA-384 (BYTE-
only) Version 10.0.15063
SHA-512 (BYTE-
only)
SHA-512 (BYTE-
only)
SHA-1 (BYTE-only) Microsoft Windows 10 November 2015 Update; Microsoft Surface Book,
SHA-256 (BYTE- Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/
only) Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft
SHA-384 (BYTE- Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface
only) Hub and Surface Hub RSA32 Algorithm Implementations #3048
SHA-512 (BYTE-
only) Version 10.0.10586
SHA-1 (BYTE-only) Microsoft Windows 10 November 2015 Update; Microsoft Surface Book,
SHA-256 (BYTE- Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/
only) Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft
SHA-384 (BYTE- Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface
only) Hub and Surface Hub SymCrypt Cryptographic Implementations #3047
Modes / States / Key Algorithm Implementation and Certificate #
Sizes
SHA-1 (BYTE-only) Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10,
SHA-256 (BYTE- Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with
only) Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt
SHA-384 (BYTE- Cryptographic Implementations #2886
only)
SHA-512 (BYTE- Version 10.0.10240
only)
SHA-1 (BYTE-only) Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10,
SHA-256 (BYTE- Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with
only) Windows 10, Microsoft Surface Pro with Windows 10 RSA32 Algorithm
SHA-384 (BYTE- Implementations #2871
only)
SHA-512 (BYTE- Version 10.0.10240
only)
SHA-1 (BYTE-only) Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft
SHA-256 (BYTE- Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft
only) Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1,
SHA-384 (BYTE- Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3,
only) Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1
SHA-512 (BYTE- Industry RSA32 Algorithm Implementations #2396
only)
Version 6.3.9600
SHA-1 (BYTE-only) Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft
SHA-256 (BYTE- Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1,
only) Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3,
SHA-384 (BYTE- Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1
only) Industry, and Microsoft StorSimple 8100 SymCrypt Cryptographic
SHA-512 (BYTE- Implementations #2373
only)
Version 6.3.9600
SHA-1 (BYTE-only) Windows 8, Windows RT, Windows Server 2012, Surface Windows RT,
SHA-256 (BYTE- Surface Windows 8 Pro, and Windows Phone 8 Next Generation
only) Symmetric Cryptographic Algorithms Implementations (SYMCRYPT)
SHA-384 (BYTE- #1903
only)
SHA-512 (BYTE- Windows 8, Windows RT, Windows Server 2012, Surface Windows RT,
only) Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm
Implementations (RSA32) #1902
Implementation does
not support zero-
Modes / States / Key Algorithm Implementation and Certificate #
Sizes
length (null)
messages.
SHA-1 (BYTE-only) Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric
SHA-256 (BYTE- Algorithm Implementation #1081
only)
SHA-384 (BYTE- Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH)
only) #816
SHA-512 (BYTE-
only)
SHA-1 (BYTE-only) Windows Vista SP1 and Windows Server 2008 Symmetric Algorithm
SHA-256 (BYTE- Implementation #753
only)
SHA-384 (BYTE- Windows Vista Symmetric Algorithm Implementation #618
only)
SHA-512 (BYTE-
only)
SHA-1 (BYTE-only) Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH)
SHA-256 (BYTE- #613
only)
Modes / States / Key Algorithm Implementation and Certificate #
Sizes
SHA-384 (BYTE- Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH)
only) #364
SHA-512 (BYTE-
only)
SHA-1 (BYTE-only) Windows Server 2003 SP2 Enhanced DSS and Diffie-Hellman
Cryptographic Provider #611
SHA-1 (BYTE-only) Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced
SHA-256 (BYTE- Cryptographic Provider (RSAENH) #589
only)
SHA-384 (BYTE- Windows CE and Windows Mobile 6 and Windows Mobile 6.5 Enhanced
only) Cryptographic Provider (RSAENH) #578
SHA-512 (BYTE-
Windows CE 5.00 and Windows CE 5.01 Enhanced
only)
Cryptographic Provider (RSAENH) #305
PBKDF Kernel Mode Cryptographic Primitives Library (cng.sys) in Microsoft Windows 10,
(vendor Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10
affirmed) Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter,
Windows Storage Server 2016 #2936
(Software Version: 10.0.14393)
Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface
Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG),
vendor-affirmed
Triple DES
Modes: Decrypt,
Encrypt
Keying Option: 1
TECB(KO 1 e/d); Windows 10 Creators Update (version 1703) Home, Pro, Enterprise,
TCBC(KO 1 e/d); Education, Windows 10 S, Windows 10 Mobile SymCrypt
TCFB8(KO 1 e/d); Cryptographic Implementations #2459
TCFB64(KO 1 e/d)
Version 10.0.15063
Version 8.00.6246
Version 8.00.6246
Version 7.00.2872
Version 8.00.6246
Version 10.0.14393
Version 10.0.10586
TECB(KO 1 e/d);TCBC(KO Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10,
1 e/d);TCFB8(KO 1 Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with
e/d);TCFB64(KO 1 e/d) Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt
Cryptographic Implementations #1969
Version 10.0.10240
TECB(KO 1 e/d);TCBC(KO Windows Storage Server 2012 R2, Microsoft Windows RT 8.1,
1 e/d);TCFB8(KO 1 Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with
e/d);TCFB64(KO 1 e/d) Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft
Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows
Embedded 8.1 Industry, and Microsoft StorSimple 8100 SymCrypt
Cryptographic Implementations #1692
Version 6.3.9600
Modes / States / Key Algorithm Implementation and Certificate #
Sizes
TECB(e/d; KO 1, Windows 8, Windows RT, Windows Server 2012, Surface Windows RT,
2);TCBC(e/d; KO 1, Surface Windows 8 Pro, and Windows Phone 8 Next Generation
2);TCFB8(e/d; KO 1, Symmetric Cryptographic Algorithms Implementations (SYMCRYPT)
2);TCFB64(e/d; KO 1, 2) #1387
TECB(e/d; KO 1, Windows 8, Windows RT, Windows Server 2012, Surface Windows RT,
2);TCBC(e/d; KO 1, Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm
2);TCFB8(e/d; KO 1, 2) Implementations (RSA32) #1386
TECB(e/d; KO 1, Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric
2);TCBC(e/d; KO 1, Algorithm Implementation #846
2);TCFB8(e/d; KO 1, 2)
TECB(e/d; KO 1, Windows Vista SP1 and Windows Server 2008 Symmetric Algorithm
2);TCBC(e/d; KO 1, Implementation #656
2);TCFB8(e/d; KO 1, 2)
Triple DES MAC Windows 8, Windows RT, Windows Server 2012, Surface Windows RT,
Surface Windows 8 Pro, and Windows Phone 8 #1386 , vendor-
affirmedWindows 7 and SP1 and Windows Server 2008 R2 and SP1
#846 , vendor-affirmed
Contact
fips@microsoft.com
References
FIPS 140-2, Security Requirements for Cryptographic Modules )
Cryptographic Module Validation Program (CMVP) FAQ
SP 800-57 - Recommendation for Key Management - Part 1: General (Revised)
SP 800-131A - Transitions: Recommendation for Transitioning the Use of
Cryptographic Algorithms and Key Lengths
Frequently asked questions
Microsoft is committed to optimizing the security of its products and services. As part of
that commitment, Microsoft supports the Common Criteria Certification Program,
ensures that products incorporate the features and functions required by relevant
Common Criteria Protection Profiles, and completes Common Criteria certifications of
Microsoft Windows products. This topic lists the current and archived certified Windows
products, together with relevant documentation from each certification.
Certified products
The product releases below are currently certified against the cited Protection Profile, as
listed on the Common Criteria Portal :
The Security Target describes the product edition(s) in scope, the security
functionality in the product, and the assurance measures from the Protection
Profile used as part of the evaluation
The Administrative Guide provides guidance on configuring the product to match
the evaluated configuration
The Certification Report or Validation Report documents the results of the
evaluation by the validation team, with the Assurance Activity Report providing
details on the evaluator's actions
Security Target
Administrative Guide
Assurance Activity Report
Validation Report
Security Target
Administrative Guide
Validation Report
Assurance Activity Report
Security Target
Administrative Guide
Validation Report
Assurance Activities Report
Security Target
Administrative Guide
Certification Report
Assurance Activity Report
Security Target
Administrative Guide
Certification Report
Assurance Activity Report
Security Target
Administrative Guide
Certification Report
Assurance Activity Report
Security Target
Administrative Guide
Certification Report
Assurance Activity Report
Security Target
Administrative Guide
Certification Report
Assurance Activity Report
Security Target
Administrative Guide
Certification Report
Assurance Activity Report
Windows 10, version 1607, Windows Server 2016
Certified against the Protection Profile for General Purpose Operating Systems.
Security Target
Administrative Guide
Validation Report
Assurance Activity Report
Security Target
Administrative Guide
Certification Report
Assurance Activity Report
The Security Target describes the product edition(s) in scope, the security
functionality in the product, and the assurance measures from the Protection
Profile used as part of the evaluation
The Administrative Guide provides guidance on configuring the product to match
the evaluated configuration
The Certification Report or Validation Report documents the results of the
evaluation by the validation team, with the Assurance Activity Report providing
details on the evaluator's actions
Security Target
Administrative Guide
Validation Report
Assurance Activity Report
Windows 10, version 1607, Windows 10 Mobile, version
1607
Certified against the Protection Profile for Mobile Device Fundamentals.
Security Target
Administrative Guide
Validation Report
Assurance Activity Report
Security Target
Administrative Guide
Validation Report
Assurance Activity Report
Security Target
Administrative Guide
Validation Report
Assurance Activity Report
Security Target
Administrative Guide
Validation Report
Assurance Activity Report
Security Target
Administrative Guide
Validation Report
Security Target
Administrative Guide
Validation Report
Security Target
Administrative Guide
Validation Report
Security Target
Administrative Guide
Validation Report
Windows 8, Windows RT
Certified against the Protection Profile for General Purpose Operating Systems.
Security Target
Administrative Guide
Validation Report
Security Target
Administrative Guide
Validation Report
Security Target
Administrative Guide
Validation Report
Security Target
Administrative Guide
Validation Report
Hardware Root-Of-Trust
Security Features & Capabilities
Measures
Windows In Secured-core PCs, Windows Defender System Guard Secure Launch protects
Defender bootup with a technology known as the Dynamic Root of Trust for Measurement
System (DRTM). With DRTM, the system initially follows the normal UEFI Secure Boot
Guard process. However, before launching, the system enters a hardware-controlled
trusted state that forces the CPU(s) down a hardware-secured code path. If a
malware rootkit/bootkit has bypassed UEFI Secure Boot and resides in memory,
DRTM will prevent it from accessing secrets and critical code protected by the
virtualization-based security environment. Firmware Attack Surface Reduction
technology can be used instead of DRTM on supporting devices such as Microsoft
Surface.
Trusted TPMs provide security and privacy benefits for system hardware, platform owners,
Platform and users. Windows Hello, BitLocker, Windows Defender System Guard, and other
Module Windows features rely on the TPM for capabilities such as key generation, secure
(TPM) 2.0 storage, encryption, boot integrity measurements, and attestation. The 2.0 version
of the specification includes support for newer algorithms, which can improve
driver signing and key generation performance.
Starting with Windows 10, Microsoft's hardware certification requires all new
Windows PCs to include TPM 2.0 built in and enabled by default. With Windows 11,
both new and upgraded devices must have TPM 2.0.
Microsoft Microsoft Pluton security processors are designed by Microsoft in partnership with
Pluton silicon partners. Pluton enhances the protection of Windows devices with a
security hardware root-of-trust that provides additional protection for cryptographic keys
processor and other secrets. Pluton is designed to reduce the attack surface as it integrates
the security chip directly into the processor. It can be used with a discreet TPM 2.0,
or as a standalone security processor. When root of trust is located on a separate,
discrete chip on the motherboard, the communication path between the root-of-
trust and the CPU can be vulnerable to physical attack. Pluton supports the TPM
2.0 industry standard, allowing customers to immediately benefit from the
enhanced security in Windows features that rely on TPMs including BitLocker,
Windows Hello, and Windows Defender System Guard.
Starting with Windows 10, all new devices are required to ship with firmware
support for VBS and HCVI enabled by default in the BIOS. Customers can then
enable the OS support in Windows.
With new installs of Windows 11, OS support for VBS and HVCI is turned on
by default for all devices that meet prerequisites.
Hypervisor- Hypervisor-protected code integrity (HVCI), also called memory integrity, uses
protected Code VBS to run Kernel Mode Code Integrity (KMCI) inside the secure VBS
Integrity (HVCI) environment instead of the main Windows kernel. This helps to prevent
attacks that attempt to modify kernel mode code, such as drivers. The KMCI
role is to check that all kernel code is properly signed and hasn't been
tampered with before it is allowed to run. HVCI helps to ensure that only
validated code can be executed in kernel-mode.
Starting with Windows 10, all new devices are required to ship with firmware
support for VBS and HCVI enabled by default in the BIOS. Customers can then
enable the OS support in Windows.
With new installs of Windows 11, OS support for VBS and HVCI is turned on
by default for all devices that meet prerequisites.
protect against exploit techniques that try to hijack return addresses on the
stack.
Secured-core PC Microsoft has worked with OEM partners to offer a special category of
devices called Secured-core PCs. The devices ship with additional security
measures enabled at the firmware layer, or device core, that underpins
Windows. Secured-core PCs help prevent malware attacks and minimize
firmware vulnerabilities by launching into a clean and trusted state at startup
with a hardware-enforced root of trust. Virtualization-based security comes
enabled by default. And with built-in hypervisor protected code integrity
(HVCI) shielding system memory, Secured-core PCs ensure that all
executables are signed by known and approved authorities only. Secured-
core PCs also protect against physical threats such as drive-by Direct Memory
Access (DMA) attacks.
Kernel Direct Kernel DMA Protection protects against external peripherals from gaining
Memory Access unauthorized access to memory. Physical threats such as drive-by Direct
(DMA) Memory Access (DMA) attacks typically happen quickly while the system
protection owner isn't present. PCIe hot plug devices such as Thunderbolt, USB4, and
CFexpress allow users to attach new classes of external peripherals, including
graphics cards or other PCI devices, to their PCs with the plug-and-play ease
of USB. Because PCI hot plug ports are external and easily accessible, devices
are susceptible to drive-by DMA attacks.
Windows Defender System Guard: How
a hardware-based root of trust helps
protect Windows
Article • 07/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
To protect critical resources such as the Windows authentication stack, single sign-on
tokens, the Windows Hello biometric stack, and the Virtual Trusted Platform Module, a
system's firmware and hardware must be trustworthy.
Windows Defender System Guard reorganizes the existing Windows system integrity
features under one roof and sets up the next set of investments in Windows security. It's
designed to make these security guarantees:
With Windows 10 running on modern hardware (that is, Windows 8-certified or greater)
a hardware-based root of trust helps ensure that no unauthorized firmware or software
(such as a bootkit) can start before the Windows bootloader. This hardware-based root
of trust comes from the device's Secure Boot feature, which is part of the Unified
Extensible Firmware Interface (UEFI). This technique of measuring the static early boot
UEFI components is called the Static Root of Trust for Measurement (SRTM).
As there are thousands of PC vendors that produce many models with different UEFI
BIOS versions, there becomes an incredibly large number of SRTM measurements upon
bootup. Two techniques exist to establish trust here—either maintain a list of known
'bad' SRTM measurements (also known as a blocklist), or a list of known 'good' SRTM
measurements (also known as an allowlist).
A list of known 'bad' SRTM measurements allows a hacker to change just 1 bit in a
component to create an entirely new SRTM hash that needs to be listed. This
means that the SRTM flow is inherently brittle - a minor change can invalidate the
entire chain of trust.
A list of known 'good' SRTM measurements requires each new BIOS/PC
combination measurement to be carefully added, which is slow. Also, a bug fix for
UEFI code can take a long time to design, build, retest, validate, and redeploy.
Secure Launch simplifies management of SRTM measurements because the launch code
is now unrelated to a specific hardware configuration. This means the number of valid
code measurements is small, and future updates can be deployed more widely and
quickly.
System Management Mode (SMM) protection
System Management Mode (SMM) is a special-purpose CPU mode in x86
microcontrollers that handles power management, hardware configuration, thermal
monitoring, and anything else the manufacturer deems useful. Whenever one of these
system operations is requested, a non-maskable interrupt (SMI) is invoked at runtime,
which executes SMM code installed by the BIOS. SMM code executes in the highest
privilege level and is invisible to the OS, which makes it an attractive target for malicious
activity. Even if System Guard Secure Launch is used to late launch, SMM code can
potentially access hypervisor memory and change the hypervisor.
SMM protection is built on top of the Secure Launch technology and requires it to
function. In the future, Windows 10 will also measure this SMI Handler's behavior and
attest that no OS-owned memory has been tampered with.
After the system boots, Windows Defender System Guard signs and seals these
measurements using the TPM. Upon request, a management system like Intune or
Microsoft Configuration Manager can acquire them for remote analysis. If Windows
Defender System Guard indicates that the device lacks integrity, the management
system can take a series of actions, such as denying the device access to resources.
Windows Defender System Guard license entitlements are granted by the following
licenses:
Windows Pro/Pro Windows Windows Windows Windows
Education/SE Enterprise E3 Enterprise E5 Education A3 Education A5
For more information about Windows licensing, see Windows licensing overview.
Name Description
64-bit CPU A 64-bit computer with minimum four cores (logical processors) is required
for hypervisor and virtualization-based security (VBS). For more information
about Hyper-V, see Hyper-V on Windows Server 2016 or Introduction to
Hyper-V on Windows 10. For more information about hypervisor, see
Hypervisor Specifications.
Trusted Platform Platforms must support a discrete TPM 2.0. Integrated/firmware TPMs
Module (TPM) 2.0 aren't supported, except Intel chips that support Platform Trust Technology
(PTT), which is a type of integrated hardware TPM that meets the TPM 2.0
spec.
Windows DMA Platforms must meet the Windows DMA Protection Specification (all
Protection external DMA ports must be off by default until the OS explicitly powers
them).
SMM Page Tables Must NOT contain any mappings to EfiConventionalMemory (for example
no OS/VMM owned memory).
Must NOT contain any mappings to code sections within
EfiRuntimeServicesCode.
Must NOT have execute and write permissions for the same page
Must allow ONLY that TSEG pages can be marked executable and the
Name Description
TPM AUX Index Platform must set up a AUX index with index, attributes, and policy that
exactly corresponds to the AUX index specified in the TXT DG with a data
size of exactly 104 bytes (for SHA256 AUX data). (NameAlg = SHA256)
Platforms must set up a PS (Platform Supplier) index with:
TPM NV Index Platform firmware must set up a TPM NV index for use by the OS with:
Handle: 0x01C101C0
Attributes:
TPMA_NV_POLICYWRITE
TPMA_NV_PPREAD
TPMA_NV_OWNERREAD
TPMA_NV_AUTHREAD
TPMA_NV_POLICYREAD
Name Description
TPMA_NV_NO_DA
TPMA_NV_PLATFORMCREATE
TPMA_NV_POLICY_DELETE
A policy of:
A = TPM2_PolicyAuthorize(MSFT_DRTM_AUTH_BLOB_SigningKey)
B=
TPM2_PolicyCommandCode(TPM_CC_NV_UndefineSpaceSpecial)
authPolicy = {A} OR {{A} AND {B}}
Digest value of 0xcb, 0x45, 0xc8, 0x1f, 0xf3, 0x4b, 0xcf, 0x0a, 0xfb,
0x9e, 0x1a, 0x80, 0x29, 0xfa, 0x23, 0x1c, 0x87, 0x27, 0x30, 0x3c,
0x09, 0x22, 0xdc, 0xce, 0x68, 0x4b, 0xe3, 0xdb, 0x81, 0x7c, 0x20,
0xe1
Platform firmware Platform firmware must carry all code required to execute an Intel® Trusted
Execution Technology secure launch:
Intel® SINIT ACM must be carried in the OEM BIOS
Platforms must ship with a production ACM signed by the correct
production Intel® ACM signer for the platform
Name Description
64-bit CPU A 64-bit computer with minimum four cores (logical processors) is required
for hypervisor and virtualization-based security (VBS). For more information
about Hyper-V, see Hyper-V on Windows Server 2016 or Introduction to
Hyper-V on Windows 10. For more information about hypervisor, see
Hypervisor Specifications.
Trusted Platform Platforms must support a discrete TPM 2.0 OR Microsoft Pluton TPM.
Module (TPM) 2.0
Windows DMA Platforms must meet the Windows DMA Protection Specification (all
Protection external DMA ports must be off by default until the OS explicitly powers
them).
SMM Page Tables Must NOT contain any mappings to EfiConventionalMemory (for example
no OS/VMM owned memory).
Must NOT contain any mappings to code sections within
EfiRuntimeServicesCode.
Must NOT have execute and write permissions for the same page
BIOS SMI handler must be implemented such that SMM page tables are
locked on every SMM entry.
TPM NV Index Platform firmware must set up a TPM NV index for use by the OS with:
Handle: 0x01C101C0
Attributes:
TPMA_NV_POLICYWRITE
TPMA_NV_PPREAD
TPMA_NV_OWNERREAD
TPMA_NV_AUTHREAD
TPMA_NV_POLICYREAD
TPMA_NV_NO_DA
TPMA_NV_PLATFORMCREATE
TPMA_NV_POLICY_DELETE
A policy of:
A = TPM2_PolicyAuthorize(MSFT_DRTM_AUTH_BLOB_SigningKey)
B=
TPM2_PolicyCommandCode(TPM_CC_NV_UndefineSpaceSpecial)
authPolicy = {A} OR {{A} AND {B}}
Digest value of 0xcb, 0x45, 0xc8, 0x1f, 0xf3, 0x4b, 0xcf, 0x0a, 0xfb,
0x9e, 0x1a, 0x80, 0x29, 0xfa, 0x23, 0x1c, 0x87, 0x27, 0x30, 0x3c,
0x09, 0x22, 0xdc, 0xce, 0x68, 0x4b, 0xe3, 0xdb, 0x81, 0x7c, 0x20,
0xe1
Platform firmware Platform firmware must carry all code required to execute Secure Launch:
AMD® Secure Launch platforms must ship with AMD® DRTM driver
devnode exposed and the AMD® DRTM driver installed
Monitor Mode All Monitor Mode communication buffers must be implemented in either
Communication EfiRuntimeServicesData (recommended), data sections of
EfiRuntimeServicesCode as described by the Memory Attributes Table,
EfiACPIMemoryNVS, or EfiReservedMemoryType memory types
Platform firmware Platform firmware must carry all code required to launch.
Topic Description
Trusted Platform Module Provides an overview of the Trusted Platform Module (TPM) and how
Overview Windows uses it for access control and authentication.
TPM fundamentals Provides background about how a TPM can work with cryptographic
keys. Also describes technologies that work with the TPM, such as
TPM-based virtual smart cards.
TPM Group Policy Describes TPM services that can be controlled centrally by using
settings Group Policy settings.
Back up the TPM For Windows 10, version 1511 and Windows 10, version 1507 only,
recovery information to describes how to back up a computer's TPM information to Active
AD DS Directory Domain Services.
Troubleshoot the TPM Describes actions you can take through the TPM snap-in, TPM.msc:
view TPM status, troubleshoot TPM initialization, and clear keys from
the TPM. Also, for TPM 1.2 and Windows 10, version 1507 or 1511, or
Windows 11, describes how to turn the TPM on or off.
Understanding PCR Provides background about what happens when you switch PCR banks
banks on TPM 2.0 on TPM 2.0 devices.
devices
TPM recommendations Discusses aspects of TPMs such as the difference between TPM 1.2
and 2.0, and the Windows features for which a TPM is required or
recommended.
Trusted Platform Module Technology
Overview
Article • 07/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article describes the Trusted Platform Module (TPM) and how Windows uses it for
access control and authentication.
Feature description
The Trusted Platform Module (TPM) technology is designed to provide hardware-based,
security-related functions. A TPM chip is a secure crypto-processor that is designed to
carry out cryptographic operations. The chip includes multiple physical security
mechanisms to make it tamper-resistant, and malicious software is unable to tamper
with the security functions of the TPM. Some of the advantages of using TPM
technology are:
The most common TPM functions are used for system integrity measurements and for
key creation and use. During the boot process of a system, the boot code that is loaded
(including firmware and the operating system components) can be measured and
recorded in the TPM. The integrity measurements can be used as evidence for how a
system started and to make sure that a TPM-based key was used only when the correct
software was used to boot the system.
TPM-based keys can be configured in a variety of ways. One option is to make a TPM-
based key unavailable outside the TPM. This is good to mitigate phishing attacks
because it prevents the key from being copied and used without the TPM. TPM-based
keys can also be configured to require an authorization value to use them. If too many
incorrect authorization guesses occur, the TPM will activate its dictionary attack logic
and prevent further authorization value guesses.
Different versions of the TPM are defined in specifications by the Trusted Computing
Group (TCG). For more information, see the TCG Web site .
Automatic initialization of the TPM with Windows
Starting with Windows 10 and Windows 11, the operating system automatically
initializes and takes ownership of the TPM. This means that in most cases, we
recommend that you avoid configuring the TPM through the TPM management
console, TPM.msc. There are a few exceptions, mostly related to resetting or performing
a clean installation on a PC. For more information, see Clear all the keys from the TPM.
We're no longer actively developing the TPM management console beginning with
Windows Server 2019 and Windows 10, version 1809.
In certain specific enterprise scenarios limited to Windows 10, versions 1507 and 1511,
Group Policy might be used to back up the TPM owner authorization value in Active
Directory. Because the TPM state persists across operating system installations, this TPM
information is stored in a location in Active Directory that is separate from computer
objects.
Practical applications
Certificates can be installed or created on computers that are using the TPM. After a
computer is provisioned, the RSA private key for a certificate is bound to the TPM and
can't be exported. The TPM can also be used as a replacement for smart cards, which
reduces the costs associated with creating and disbursing smart cards.
Anti-malware software can use the boot measurements of the operating system start
state to prove the integrity of a computer running Windows 10 or Windows 11 or
Windows Server 2016. These measurements include the launch of Hyper-V to test that
datacenters using virtualization aren't running untrusted hypervisors. With BitLocker
Network Unlock, IT administrators can push an update without concerns that a
computer is waiting for PIN entry.
The TPM has several Group Policy settings that might be useful in certain enterprise
scenarios. For more info, see TPM Group Policy Settings.
Trusted Platform Module (TPM) license entitlements are granted by the following
licenses:
For more information about Windows licensing, see Windows licensing overview.
Some security issues that you can check on the device include the following:
7 Note
Windows supports Device Health Attestation with TPM 2.0. TPM 2.0 requires UEFI
firmware. A device with legacy BIOS and TPM 2.0 won't work as expected.
Supported versions for device health
attestation
TPM Windows Windows Windows Windows Windows
version 11 10 Server 2022 Server 2019 Server 2016
This article provides a description of the Trusted Platform Module (TPM 1.2 and TPM 2.0)
components, and explains how they're used to mitigate dictionary attacks.
Devices that incorporate a TPM can create cryptographic keys and encrypt them, so that
the keys can only be decrypted by the TPM. This process, often called wrapping or
binding a key, can help protect the key from disclosure. Each TPM has a master wrapping
key, called the storage root key, which is stored within the TPM itself. The private portion
of a storage root key, or endorsement key, that is created in a TPM is never exposed to
any other component, software, process, or user.
You can specify whether encryption keys that are created by the TPM can be migrated
or not. If you specify that they can be migrated, the public and private portions of the
key can be exposed to other components, software, processes, or users. If you specify
that encryption keys can't be migrated, the private portion of the key is never exposed
outside the TPM.
Devices that incorporate a TPM can also create a key wrapped and tied to certain
platform measurements. This type of key can be unwrapped only when those platform
measurements have the same values that they had when the key was created. This
process is referred to as sealing the key to the TPM. Decrypting the key is called
unsealing. The TPM can also seal and unseal data that is generated outside the TPM.
With sealed key and software, such as BitLocker Drive Encryption, data can be locked
until specific hardware or software conditions are met.
With a TPM, private portions of key pairs are kept separate from the memory that is
controlled by the operating system. Keys can be sealed to the TPM, and certain
assurances about the state of a system (assurances that define the trustworthiness of a
system) can be made before the keys are unsealed and released for use. The TPM uses
its own internal firmware and logic circuits to process instructions. Hence, it doesn't rely
on the operating system and it isn't exposed to vulnerabilities that might exist in the
operating system or application software.
For information about which versions of Windows support which versions of the TPM,
see Trusted Platform Module technology overview. The features that are available in the
versions are defined in specifications by the Trusted Computing Group (TCG). For more
information, see the Trusted Platform Module page on the Trusted Computing Group
website: Trusted Platform Module .
The following sections provide an overview of the technologies that support the TPM:
The following article describes the TPM services that can be controlled centrally by using
Group Policy settings: TPM Group Policy Settings.
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
The Virtual Smart Card emulates the functionality of traditional smart cards. Virtual
Smart Cards use the TPM chip, rather than using a separate physical smart card and
reader. This greatly reduces the management and deployment cost of smart cards in an
enterprise. To the end user, the Virtual Smart Card is always available on the device. If a
user needs to use more than one device, a Virtual Smart Card must be issued to the user
for each device. A computer that is shared among multiple users can host multiple
Virtual Smart Cards, one for each user.
TPM Cmdlets
You can manage the TPM using Windows PowerShell. For details, see TPM Cmdlets in
Windows PowerShell.
Endorsement keys
A trusted application can use TPM only if the TPM contains an endorsement key, which
is an RSA key pair. The private half of the key pair is held inside the TPM and it's never
revealed or accessible outside the TPM.
Key attestation
TPM key attestation allows a certification authority to verify that a private key is
protected by a TPM and that the TPM is one that the certification authority trusts.
Endorsement keys proven valid are used to bind the user identity to a device. The user
certificate with a TPM-attested key provides higher security assurance backed up by
non-exportability, anti-hammering, and isolation of keys provided by a TPM.
Anti-hammering
When a TPM processes a command, it does so in a protected environment. For example
a dedicated micro controller on a discrete chip, or a special hardware-protected mode
on the main CPU. A TPM is used to create a cryptographic key that isn't disclosed
outside the TPM. It's used in the TPM after the correct authorization value is provided.
TPMs have anti-hammering protection that is designed to prevent brute force attacks,
or more complex dictionary attacks, that attempt to determine authorization values for
using a key. The basic approach is for the TPM to allow only a limited number of
authorization failures before it prevents more attempts to use keys and locks. Providing
a failure count for individual keys isn't technically practical, so TPMs have a global
lockout when too many authorization failures occur.
Because many entities can use the TPM, a single authorization success can't reset the
TPM's anti-hammering protection. This prevents an attacker from creating a key with a
known authorization value and then using it to reset the TPM's protection. TPMs are
designed to forget about authorization failures after a period of time so the TPM
doesn't enter a lockout state unnecessarily. A TPM owner password can be used to reset
the TPM's lockout logic.
For systems with TPM 2.0, the TPM is configured by Windows to lock after 32
authorization failures and to forget one authorization failure every 10 minutes. This
means that a user could quickly attempt to use a key with the wrong authorization value
32 times. For each of the 32 attempts, the TPM records if the authorization value was
correct or not. This inadvertently causes the TPM to enter a locked state after 32 failed
attempts.
Attempts to use a key with an authorization value for the next 10 minutes wouldn't
return success or failure. Instead, the response indicates that the TPM is locked.
After 10 minutes, one authorization failure is forgotten and the number of authorization
failures remembered by the TPM drops to 31. The TPM leaves the locked state and
returns to normal operation.
With the correct authorization value, keys could be used normally if no authorization
failures occur during the next 10 minutes. If a period of 320 minutes elapses with no
authorization failures, the TPM doesn't remember any authorization failures, and 32
failed attempts could occur again.
Windows doesn't require TPM 2.0 systems to forget about authorization failures when
the system is fully powered off or when the system has hibernated.
Windows requires that authorization failures are forgotten when the system is running
normally, in a sleep mode, or in low power states other than off. If a Windows system
with TPM 2.0 is locked, the TPM leaves lockout mode if the system is left on for 10
minutes.
The anti-hammering protection for TPM 2.0 can be fully reset immediately by sending a
reset lockout command to the TPM, and providing the TPM owner password. By default,
Windows automatically provisions TPM 2.0 and stores the TPM owner password for use
by system administrators.
TPM 2.0 allows some keys to be created without an authorization value associated with
them. These keys can be used when the TPM is locked. For example, BitLocker with a
default TPM-only configuration is able to use a key in the TPM to start Windows, even
when the TPM is locked.
Windows 10, version 1607 and earlier used Dictionary Attack Prevention parameters. The
Dictionary Attack Prevention Parameters provide a way to balance security needs with
usability. For example, when BitLocker is used with a TPM + PIN configuration, the
number of PIN guesses is limited over time. A TPM 2.0 in this example could be
configured to allow only 32 PIN guesses immediately, and then only one more guess
every two hours. This totals a maximum of about 4415 guesses per year. If the PIN is
four digits, all 9999 possible PIN combinations could be attempted in a little over two
years.
Staring in Windows 10, version 1703, the minimum length for the BitLocker PIN was
increased to six characters, to better align with other Windows features that use TPM
2.0, including Windows Hello. Increasing the PIN length requires a greater number of
guesses for an attacker. Therefore, the lockout duration between each guess was
shortened to allow legitimate users to retry a failed attempt sooner while maintaining a
similar level of protection. In case the legacy parameters for lockout threshold and
recovery time need to be used, make sure that GPO is enabled and configure the system
to use legacy Dictionary Attack Prevention Parameters setting for TPM 2.0.
Physical smart cards can enforce lockout for only the physical smart card PIN, and
they can reset the lockout after the correct PIN is entered. With a virtual smart
card, the TPM's anti-hammering protection isn't reset after a successful
authentication. The allowed number of authorization failures before the TPM
enters lockout includes many factors
Hardware manufacturers and software developers can use the security features of
the TPM to meet their requirements
The intent of selecting 32 failures as the lock-out threshold is to avoid users to lock
the TPM (even when learning to type new passwords or if they frequently lock and
unlock their computers). If users lock the TPM, they must wait 10 minutes or use
other credentials to sign in, such as a user name and password
How Windows uses the Trusted Platform
Module
Article • 07/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
The Windows operating system places hardware-based security deeper inside many
features, maximizing platform security while increasing usability. To achieve many of
these security enhancements, Windows makes extensive use of the Trusted Platform
Module (TPM). This article offers an overview of the TPM, describes how it works, and
discusses the benefits that TPM brings to Windows and the cumulative security impact
of running Windows on a device with a TPM.
TPM Overview
The TPM is a cryptographic module that enhances computer security and privacy.
Protecting data through encryption and decryption, protecting authentication
credentials, and proving which software is running on a system are basic functionalities
associated with computer security. The TPM helps with all these scenarios and more.
Historically, TPMs have been discrete chips soldered to a computer's motherboard. Such
implementations allow the computer's original equipment manufacturer (OEM) to
evaluate and certify the TPM separate from the rest of the system. Although discrete
TPM implementations are still common, they can be problematic for integrated devices
that are small or have low power consumption. Some newer TPM implementations
integrate TPM functionality into the same chipset as other platform components while
still providing logical separation similar to discrete TPM chips.
TPMs are passive: they receive commands and return responses. To realize the full
benefit of a TPM, the OEM must carefully integrate system hardware and firmware with
the TPM to send it commands and react to its responses. TPMs were originally designed
to provide security and privacy benefits to a platform's owner and users, but newer
versions can provide security and privacy benefits to the system hardware itself. Before it
can be used for advanced scenarios, a TPM must be provisioned. Windows automatically
provisions a TPM, but if the operating system is reinstalled, the TPM may be required to
be explicitly reprovisioned before it can use all the TPM's features.
The Trusted Computing Group (TCG) is the nonprofit organization that publishes and
maintains the TPM specification. The TCG exists to develop, define, and promote
vendor-neutral, global industry standards that support a hardware-based root of trust
for interoperable trusted computing platforms. The TCG also publishes the TPM
specification as the international standard ISO/IEC 11889, using the Publicly Available
Specification Submission Process that the Joint Technical Committee 1 defines between
the International Organization for Standardization (ISO) and the International
Electrotechnical Commission (IEC).
The TCG designed the TPM as a low-cost, mass-market security solution that addresses
the requirements of different customer segments. There are variations in the security
properties of different TPM implementations just as there are variations in customer and
regulatory requirements for different sectors. In public-sector procurement, for example,
some governments have clearly defined security requirements for TPMs, whereas others
don't.
TPM in Windows
The security features of Windows combined with the benefits of a TPM offer practical
security and privacy benefits. The following sections start with major TPM-related
security features in Windows and go on to describe how key technologies use the TPM
to enable or increase security.
Although CNG sounds like a mundane starting point, it illustrates some of the
advantages that a TPM provides. Underneath the CNG interface, Windows or third
parties supply a cryptographic provider (that is, an implementation of an algorithm)
implemented as software libraries alone or in a combination of software and available
system hardware or third-party hardware. If implemented through hardware, the
cryptographic provider communicates with the hardware behind the software interface
of CNG.
The Platform Crypto Provider, introduced in the Windows 8 operating system, exposes
the following special TPM properties, which software-only CNG providers can't offer or
can't offer as effectively:
Key protection. The Platform Crypto Provider can create keys in the TPM with
restrictions on their use. The operating system can load and use the keys in the
TPM without copying the keys to system memory, where they're vulnerable to
malware. The Platform Crypto Provider can also configure keys that a TPM protects
so that they aren't removable. If a TPM creates a key, the key is unique and resides
only in that TPM. If the TPM imports a key, the Platform Crypto Provider can use
the key in that TPM, but that TPM isn't a source for making more copies of the key
or enabling the use of copies elsewhere. In sharp contrast, software solutions that
protect keys from copying are subject to reverse-engineering attacks, in which
someone figures out how the solution stores keys or makes copies of keys while
they are in memory during use.
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
Smart cards are physical devices that typically store a single certificate and the
corresponding private key. Users insert a smart card into a built-in or USB card reader
and enter a PIN to unlock it. Windows can then access the card's certificate and use the
private key for authentication or to unlock BitLocker protected data volumes. Smart
cards are popular because they provide two-factor authentication that requires both
something the user has (that is, the smart card) and something the user knows (such as
the smart card PIN). However, smart cards can be expensive because they require
purchase and deployment of both smart cards and smart card readers.
In Windows, the Virtual Smart Card feature allows the TPM to mimic a permanently
inserted smart card. The TPM becomes something the user has but still requires a PIN.
While physical smart cards limit the number of PIN attempts before locking the card and
requiring a reset, a virtual smart card relies on the TPM's dictionary attack protection to
prevent too many PIN guesses.
For TPM-based virtual smart cards, the TPM protects the use and storage of the
certificate private key, so that it can't be copied when it is in use or stored and used
elsewhere. Using a component that is part of the system rather than a separate physical
smart card, can reduce total cost of ownership. The lost card or card left at home
scenarios are not applicable, and the benefits of smart card-based multifactor
authentication is preserved. For users, virtual smart cards are simple to use, requiring
only a PIN to unlock. Virtual smart cards support the same scenarios that physical smart
cards support, including signing in to Windows or authenticating for resource access.
The adoption of new authentication technology requires that identity providers and
organizations deploy and use that technology. Windows Hello for Business lets users
authenticate with their existing Microsoft account, an Active Directory account, a
Microsoft Azure Active Directory account, or even non-Microsoft Identity Provider
Services or Relying Party Services that support Fast ID Online V2.0 authentication .
Identity providers have flexibility in how they provision credentials on client devices. For
example, an organization might provision only those devices that have a TPM so that
the organization knows that a TPM protects the credentials. The ability to distinguish a
TPM from malware acting like a TPM requires the following TPM capabilities (see Figure
1):
Endorsement key. The TPM manufacturer can create a special key in the TPM
called an endorsement key. An endorsement key certificate, signed by the
manufacturer, says that the endorsement key is present in a TPM that the
manufacturer made. Solutions can use the certificate with the TPM containing the
endorsement key to confirm a scenario really involves a TPM from a specific TPM
manufacturer (instead of malware acting like a TPM).
Attestation identity key. To protect privacy, most TPM scenarios do not directly
use an actual endorsement key. Instead, they use attestation identity keys, and an
identity certificate authority (CA) uses the endorsement key and its certificate to
prove that one or more attestation identity keys actually exist in a real TPM. The
identity CA issues attestation identity key certificates. More than one identity CA
will generally see the same endorsement key certificate that can uniquely identify
the TPM, but any number of attestation identity key certificates can be created to
limit the information shared in other scenarios.
Figure 1: TPM Cryptographic Key Management
For Windows Hello for Business, Microsoft can fill the role of the identity CA. Microsoft
services can issue an attestation identity key certificate for each device, user, and identify
provider to ensure that privacy is protected and to help identity providers ensure that
device TPM requirements are met before Windows Hello for Business credentials are
provisioned.
Key used only when boot measurements are accurate. BitLocker creates a key in
the TPM that can be used only when the boot measurements match an expected
value. The expected value is calculated for the step in the startup process when
Windows Boot Manager runs from the operating system volume on the system
hard drive. Windows Boot Manager, which is stored unencrypted on the boot
volume, needs to use the TPM key so that it can decrypt data read into memory
from the operating system volume and startup can proceed using the encrypted
operating system volume. If a different operating system is booted or the
configuration is changed, the measurement values in the TPM will be different, the
TPM will not let Windows Boot Manager use the key, and the startup process can't
proceed normally because the data on the operating system can't be decrypted. If
someone tries to boot the system with a different operating system or a different
device, the software or configuration measurements in the TPM will be wrong and
the TPM will not allow use of the key needed to decrypt the operating system
volume. As a failsafe, if measurement values change unexpectedly, the user can
always use the BitLocker recovery key to access volume data. Organizations can
configure BitLocker to store the recovery key-in Active Directory Domain Services
(AD DS).
Device hardware characteristics are important to BitLocker and its ability to protect data.
One consideration is whether the device provides attack vectors when the system is at
the logon screen. For example, if the Windows device has a port that allows direct
memory access so that someone can plug in hardware and read memory, an attacker
can read the operating system volume's decryption key from memory while at the
Windows logon screen. To mitigate this risk, organizations can configure BitLocker so
that the TPM key requires both the correct software measurements and an authorization
value. The system startup process stops at Windows Boot Manager, and the user is
prompted to enter the authorization value for the TPM key or insert a USB device with
the value. This process stops BitLocker from automatically loading the key into memory
where it might be vulnerable, but has a less desirable user experience.
Newer hardware and Windows work better together to disable direct memory access
through ports and reduce attack vectors. The result is that organizations can deploy
more systems without requiring users to enter additional authorization information
during the startup process. The right hardware allows BitLocker to be used with the
"TPM-only" configuration giving users a single sign-on experience without having to
enter a PIN or USB key during boot.
Device Encryption
Device Encryption is the consumer version of BitLocker, and it uses the same underlying
technology. How it works is if a customer logs on with a Microsoft account and the
system meets Modern Standby hardware requirements, BitLocker Drive Encryption is
enabled automatically in Windows. The recovery key is backed up in the Microsoft cloud
and is accessible to the consumer through his or her Microsoft account. The Modern
Standby hardware requirements inform Windows that the hardware is appropriate for
deploying Device Encryption and allows use of the "TPM-only" configuration for a
simple consumer experience. In addition, Modern Standby hardware is designed to
reduce the likelihood that measurement values change and prompt the customer for the
recovery key.
Measured Boot
Windows 8 introduced Measured Boot as a way for the operating system to record the
chain of measurements of software components and configuration information in the
TPM through the initialization of the Windows operating system. In previous Windows
versions, the measurement chain stopped at the Windows Boot Manager component
itself, and the measurements in the TPM were not helpful for understanding the starting
state of Windows.
The Windows boot process happens in stages and often involves third-party drivers to
communicate with vendor-specific hardware or implement antimalware solutions. For
software, Measured Boot records measurements of the Windows kernel, Early-Launch
Anti-Malware drivers, and boot drivers in the TPM. For configuration settings, Measured
Boot records security-relevant information such as signature data that antimalware
drivers use and configuration data about Windows security features (e.g., whether
BitLocker is on or off).
Measured Boot ensures that TPM measurements fully reflect the starting state of
Windows software and configuration settings. If security settings and other protections
are set up correctly, they can be trusted to maintain the security of the running
operating system thereafter. Other scenarios can use the operating system's starting
state to determine whether the running operating system should be trusted.
The TPM provides the following way for scenarios to use the measurements recorded in
the TPM during boot:
Remote Attestation. Using an attestation identity key, the TPM can generate and
cryptographically sign a statement (orquote) of the current measurements in the
TPM. Windows can create unique attestation identity keys for various scenarios to
prevent separate evaluators from collaborating to track the same device.
Additional information in the quote is cryptographically scrambled to limit
information sharing and better protect privacy. By sending the quote to a remote
entity, a device can attest which software and configuration settings were used to
boot the device and initialize the operating system. An attestation identity key
certificate can provide further assurance that the quote is coming from a real TPM.
Remote attestation is the process of recording measurements in the TPM,
generating a quote, and sending the quote information to another system that
evaluates the measurements to establish trust in a device. Figure 2 illustrates this
process.
When new security features are added to Windows, Measured Boot adds security-
relevant configuration information to the measurements recorded in the TPM. Measured
Boot enables remote attestation scenarios that reflect the system firmware and the
Windows initialization state.
Figure 2: Process used to create evidence of boot software and configuration using a TPM
Health Attestation
Some Windows improvements help security solutions implement remote attestation
scenarios. Microsoft provides a Health Attestation service, which can create attestation
identity key certificates for TPMs from different manufacturers as well as parse
measured boot information to extract simple security assertions, such as whether
BitLocker is on or off. The simple security assertions can be used to evaluate device
health.
Mobile device management (MDM) solutions can receive simple security assertions from
the Microsoft Health Attestation service for a client without having to deal with the
complexity of the quote or the detailed TPM measurements. MDM solutions can act on
the security information by quarantining unhealthy devices or blocking access to cloud
services such as Microsoft Office 365.
Credential Guard
Credential Guard is a new feature in Windows that helps protect Windows credentials in
organizations that have deployed AD DS. Historically, a user's credentials (such as a
logon password) were hashed to generate an authorization token. The user employed
the token to access resources that he or she was permitted to use. One weakness of the
token model is that malware that had access to the operating system kernel could look
through the computer's memory and harvest all the access tokens currently in use. The
attacker could then use harvested tokens to log on to other machines and collect more
credentials. This kind of attack is called a "pass the hash" attack, a malware technique
that infects one machine to infect many machines across an organization.
Similar to the way Microsoft Hyper-V keeps virtual machines (VMs) separate from one
another, Credential Guard uses virtualization to isolate the process that hashes
credentials in a memory area that the operating system kernel can't access. This isolated
memory area is initialized and protected during the boot process so that components in
the larger operating system environment can't tamper with it. Credential Guard uses the
TPM to protect its keys with TPM measurements, so they are accessible only during the
boot process step when the separate region is initialized; they are not available for the
normal operating system kernel. The local security authority code in the Windows kernel
interacts with the isolated memory area by passing in credentials and receiving single-
use authorization tokens in return.
The resulting solution provides defense in depth, because even if malware runs in the
operating system kernel, it can't access the secrets inside the isolated memory area that
actually generates authorization tokens. The solution does not solve the problem of key
loggers because the passwords such loggers capture actually pass through the normal
Windows kernel, but when combined with other solutions, such as smart cards for
authentication, Credential Guard greatly enhances the protection of credentials in
Windows.
Conclusion
The TPM adds hardware-based security benefits to Windows. When installed on
hardware that includes a TPM, Window delivers remarkably improved security benefits.
The following table summarizes the key benefits of the TPM's major features.
Platform Crypto If the machine is compromised, the private key associated with the
Provider certificate can't be copied off the device.
The TPM's dictionary attack mechanism protects PIN values to use a
certificate.
Virtual Smart Achieve security similar to that of physical smart cards without
Card deploying physical smart cards or card readers.
BitLocker Drive Multiple options are available for enterprises to protect data at rest
Encryption while balancing security requirements with different device hardware.
Device With a Microsoft account and the right hardware, consumers' devices
Encryption seamlessly benefit from data-at-rest protection.
Measured Boot A hardware root of trust contains boot measurements that help detect
malware during remote attestation.
Health MDM solutions can easily perform remote attestation and evaluate
Attestation client health before granting access to resources or cloud services such
as Office 365.
This article for the IT professional describes how to manage which Trusted Platform
Module (TPM) commands are available to domain users and to local users.
After a computer user takes ownership of the TPM, the TPM owner can limit which TPM
commands can be run by creating a list of blocked TPM commands. The list can be
created and applied to all computers in a domain by using Group Policy, or a list can be
created for individual computers by using the TPM MMC. Because some hardware
vendors might provide additional commands or the Trusted Computing Group may
decide to add commands in the future, the TPM MMC also supports the ability to block
new commands.
The following procedures describe how to manage the TPM command lists. You must be
a member of the local Administrators group.
7 Note
4. In the details pane, double-click Configure the list of blocked TPM commands.
7 Note
7. After you have added numbers for each command that you want to block, select
OK twice.
2. If the User Account Control dialog box appears, confirm that the action it displays
is what you want, and then select Yes.
If the User Account Control dialog box appears, confirm that the action it displays
is what you want, and then select Yes.
3. In the Action pane, select Block New Command. The Block New Command dialog
box is displayed.
4. In the Command Number text box, type the number of the new command that
you want to block, and then select OK. The command number you entered is
added to the blocked list.
Related articles
Trusted Platform Module
Manage TPM lockout
Article • 07/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article for the IT professional describes how to manage the lockout feature for the
Trusted Platform Module (TPM) in Windows.
Windows takes ownership of the TPM ownership upon first boot. By default, Windows
doesn't retain the TPM owner password.
In some cases, encryption keys are protected by a TPM by requiring a valid authorization
value to access the key. A common example is configuring BitLocker Drive Encryption to
use the TPM plus PIN key protector. In this scenario, the user must type the correct PIN
during the boot process to access the volume encryption key protected by the TPM. To
prevent malicious users or software from discovering authorization values, TPMs
implement protection logic. The protection logic is designed to slow or stop responses
from the TPM if it detects that an entity might be trying to guess authorization values.
TPM 1.2
The industry standards from the Trusted Computing Group (TCG) specify that TPM
manufacturers must implement some form of protection logic in TPM 1.2 and TPM 2.0
chips. TPM 1.2 devices implement different protection mechanisms and behavior. In
general, the TPM chip takes exponentially longer to respond if incorrect authorization
values are sent to the TPM. Some TPM chips may not store failed attempts over time.
Other TPM chips may store every failed attempt indefinitely. Therefore, some users may
experience increasingly longer delays when they mistype an authorization value that is
sent to the TPM. These delays can prevent them from using the TPM for a period of
time.
TPM 2.0
TPM 2.0 devices have standardized lockout behavior which Windows configures. TPM
2.0 devices have a maximum count threshold and a healing time. Windows configures
the maximum count to be 32 and the healing time to be 10 minutes. This configuration
means that every continuous 10 minutes of powered on operation without an event
causes the counter to decrease by 1.
If your TPM has entered lockout mode or is responding slowly to commands, you can
reset the lockout value by using the following procedures. Resetting the TPM lockout
requires the TPM owner's authorization. This value is no longer retained by default
starting with Windows 10 version 1607 and higher.
7 Note
This procedure is only available if you have configured Windows to retain the TPM
Owner Password. By default, this password isn't available in Windows 10 starting
with version 1607 and higher.
The following procedure explains the steps to reset the TPM lockout by using the TPM
MMC.
1 In the Action pane, select Reset TPM Lockout to start the Reset TPM Lockout Wizard.
1. Choose one of the following methods to enter the TPM owner password:
If you saved your TPM owner password to a .tpm file, select I have the owner
password file, and then type the path to the file, or select Browse to navigate
to the file location.
If you want to manually enter your TPM owner password, select I want to
enter the owner password, and then type the password in the text box
provided.
7 Note
If you enabled BitLocker and your TPM at the same time, and you printed
your BitLocker recovery password when you turned on BitLocker, your TPM
owner password may have printed with it.
Computer Configuration > Administrative Templates > System > Trusted Platform
Module Services
This policy setting allows you to manage the duration in minutes for counting
standard user authorization failures for TPM commands that require authorization.
An authorization failure occurs each time a user sends a command to the TPM and
receives an error message that indicates an authorization failure occurred.
Authorization failures that are older than the duration you set are ignored. If the
number of TPM commands with an authorization failure within the lockout
duration equals a threshold, the user is prevented from sending commands to the
TPM that require authorization.
This policy setting allows you to manage the maximum number of authorization
failures for the TPM for each user. This value is the maximum number of
authorization failures that each user can have before the user isn't allowed to send
commands to the TPM that require authorization. If the number of authorization
failures equals the duration that is set for the policy setting, the user is prevented
from sending commands to the TPM that require authorization.
This policy setting allows you to manage the maximum number of authorization
failures for the TPM for all standard users. If the total number of authorization
failures for all users equals the duration that is set for the policy, all users are
prevented from sending commands to the TPM that require authorization.
For information about mitigating dictionary attacks that use the lockout settings, see
TPM fundamentals.
Use the TPM cmdlets
You can manage the TPM using Windows PowerShell. For details, see TPM Cmdlets in
Windows PowerShell.
Related articles
Trusted Platform Module
Change the TPM owner password
Article • 07/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article for the IT professional describes how to change the password or PIN for the
owner of the Trusted Platform Module (TPM) that is installed on your system.
) Important
Although the TPM owner password isn't retained starting with Windows 10, version
1607, you can change a default registry key to retain it. However, we strongly
recommend that you don't make this change. To retain the TPM owner password,
under the registry key of
HKLM\Software\Policies\Microsoft\TPM
For Windows versions newer than Windows 10 1703, the default value for this key
is 5. A value of 5 means:
Unless the registry key value is changed from 5 to 4 before the TPM is provisioned,
the owner password isn't saved.
Only one owner password exists for each TPM. The TPM owner password allows the
ability to enable, disable, or clear the TPM without having physical access to the
computer, for example, by using the command-line tools remotely. The TPM owner
password also allows manipulation of the TPM dictionary attack logic. Windows takes
ownership of the TPM as part of the provisioning process on each boot. Ownership can
change when you share the password or clear your ownership of the TPM so someone
else can initialize it.
Without the owner password, you can still perform all the preceding actions with a
physical presence confirmation from UEFI.
Clear the TPM - If you want to invalidate all of the existing keys that have been
created since you took ownership of the TPM, you can clear it. For important
precautions for this process, and instructions for completing it, see Clear all the
keys from the TPM.
Turn off the TPM - With TPM 1.2 and Windows 10, versions 1507 and 1511, you
can turn off the TPM. Turn off the TPM if you want to keep all existing keys and
data intact and disable the services that are provided by the TPM. For more info,
see Turn off the TPM.
To change to a new TPM owner password, in TPM.msc , select Change Owner Password,
and follow the instructions. It prompts to provide the owner password file or to type the
password. Then you can create a new password, either automatically or manually, and
save the password in a file or as a printout.
Related articles
Trusted Platform Module
TPM Group Policy settings
Article • 07/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic describes the Trusted Platform Module (TPM) Services that can be controlled
centrally by using Group Policy settings.
The Group Policy settings for TPM services are located at:
) Important
Beginning with Windows 10 version 1703, the default value is 5. This value is
implemented during provisioning so that another Windows component can either
delete it or take ownership of it, depending on the system configuration. For TPM
2.0, a value of 5 means keep the lockout authorization. For TPM 1.2, it means
discard the Full TPM owner authorization and retain only the Delegated
authorization.
This policy setting configured which TPM authorization values are stored in the registry
of the local computer. Certain authorization values are required in order to allow
Windows to perform certain actions.
TPM 1.2 value TPM 2.0 value Purpose Kept Kept Kept
at at at
level level level
0? 2? 4?
There are three TPM owner authentication settings that are managed by the Windows
operating system. You can choose a value of Full, Delegate, or None.
Full This setting stores the full TPM owner authorization, the TPM administrative
delegation blob, and the TPM user delegation blob in the local registry. With this
setting, you can use the TPM without requiring remote or external storage of the
TPM owner authorization value. This setting is appropriate for scenarios that do
not require you to reset the TPM anti-hammering logic or change the TPM owner
authorization value. Some TPM-based applications may require that this setting is
changed before features that depend on the TPM anti-hammering logic can be
used. Full owner authorization in TPM 1.2 is similar to lockout authorization in TPM
2.0. Owner authorization has a different meaning for TPM 2.0.
Delegated This setting stores only the TPM administrative delegation blob and the
TPM user delegation blob in the local registry. This setting is appropriate for use
with TPM-based applications that depend on the TPM antihammering logic. This is
the default setting in Windows prior to version 1703.
None This setting provides compatibility with previous operating systems and
applications. You can also use it for scenarios when TPM owner authorization
cannot be stored locally. Using this setting might cause issues with some TPM-
based applications.
7 Note
If the operating system managed TPM authentication setting is changed from Full
to Delegated, the full TPM owner authorization value will be regenerated, and any
copies of the previously set TPM owner authorization value will be invalid.
Registry information
DWORD: OSManagedAuthLevel
The following table shows the TPM owner authorization values in the registry.
0 None
2 Delegated
4 Full
If you enable this policy setting, the Windows operating system will store the TPM
owner authorization in the registry of the local computer according to the TPM
authentication setting you choose.
On Windows 10 prior to version 1607, if you disable or do not configure this policy
setting, and the Turn on TPM backup to Active Directory Domain Services policy
setting is also disabled or not configured, the default setting is to store the full TPM
authorization value in the local registry. If this policy is disabled or not configured, and
the Turn on TPM backup to Active Directory Domain Services policy setting is enabled,
only the administrative delegation and the user delegation blobs are stored in the local
registry.
The TPM is designed to protect itself against password guessing attacks by entering a
hardware lockout mode when it receives too many commands with an incorrect
authorization value. When the TPM enters a lockout mode, it is global for all users
(including administrators) and for Windows features such as BitLocker Drive Encryption.
This setting helps administrators prevent the TPM hardware from entering a lockout
mode by slowing the speed at which standard users can send commands that require
authorization to the TPM.
For each standard user, two thresholds apply. Exceeding either threshold prevents the
user from sending a command that requires authorization to the TPM. Use the following
policy settings to set the lockout duration:
Standard User Individual Lockout Threshold This value is the maximum number of
authorization failures that each standard user can have before the user is not
allowed to send commands that require authorization to the TPM.
Standard User Total Lockout Threshold This value is the maximum total number of
authorization failures that all standard users can have before all standard users are
not allowed to send commands that require authorization to the TPM.
An administrator with the TPM owner password can fully reset the TPM's hardware
lockout logic by using the Windows Defender Security Center. Each time an
administrator resets the TPM's hardware lockout logic, all prior standard user TPM
authorization failures are ignored. This allows standard users to immediately use the
TPM normally.
If you do not configure this policy setting, a default value of 480 minutes (8 hours) is
used.
This setting helps administrators prevent the TPM hardware from entering a lockout
mode by slowing the speed at which standard users can send commands that require
authorization to the TPM.
An authorization failure occurs each time a standard user sends a command to the TPM
and receives an error response indicating an authorization failure occurred.
Authorization failures older than the duration are ignored.
An administrator with the TPM owner password can fully reset the TPM's hardware
lockout logic by using the Windows Defender Security Center. Each time an
administrator resets the TPM's hardware lockout logic, all prior standard user TPM
authorization failures are ignored. This allows standard users to immediately use the
TPM normally.
If you do not configure this policy setting, a default value of 4 is used. A value of zero
means that the operating system will not allow standard users to send commands to the
TPM, which might cause an authorization failure.
This setting helps administrators prevent the TPM hardware from entering a lockout
mode because it slows the speed standard users can send commands requiring
authorization to the TPM.
An authorization failure occurs each time a standard user sends a command to the TPM
and receives an error response indicating an authorization failure occurred.
Authorization failures older than the duration are ignored.
An administrator with the TPM owner password can fully reset the TPM's hardware
lockout logic by using the Windows Defender Security Center. Each time an
administrator resets the TPM's hardware lockout logic, all prior standard user TPM
authorization failures are ignored. This allows standard users to immediately use the
TPM normally.
If you do not configure this policy setting, a default value of 9 is used. A value of zero
means that the operating system will not allow standard users to send commands to the
TPM, which might cause an authorization failure.
The TPM was originally prepared using a version of Windows after Windows
10 Version 1607
The system has a TPM 2.0.
7 Note
Enabling this policy will only take effect after the TPM maintenance task runs (which
typically happens after a system restart). Once this policy has been enabled on a
system and has taken effect (after a system restart), disabling it will have no impact
and the system's TPM will remain configured using the legacy Dictionary Attack
Prevention parameters, regardless of the value of this group policy. The only ways
for the disabled setting of this policy to take effect on a system where it was once
enabled are to either:
Related topics
Trusted Platform Module
TPM Cmdlets in Windows PowerShell
Prepare your organization for BitLocker: Planning and Policies - TPM configurations
Back up the TPM recovery information
to AD DS
Article • 07/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
In Windows 11, you can back up a device's Trusted Platform Module (TPM) information
to Active Directory Domain Services (AD DS), enabling remote management of the TPM.
For more information, see Back up the TPM Recovery Information to AD DS.
Troubleshoot the TPM
Article • 07/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article provides information how to troubleshoot the Trusted Platform Module
(TPM):
With TPM 1.2 and Windows 11, you can also take the following actions:
For information about the TPM cmdlets, see TPM Cmdlets in Windows PowerShell.
TPM initialization
If you find that Windows isn't able to initialize the TPM automatically, review the
following information:
You can try clearing the TPM to the factory default values, allowing Windows to
reinitialize it. For important precautions for this process, and instructions for
completing it, see Clear all the keys from the TPM
If the TPM is a TPM 2.0 and isn't detected by Windows, verify that your computer
hardware contains a Unified Extensible Firmware Interface (UEFI) that is Trusted
Computing Group-compliant. Also, ensure that in the UEFI settings, the TPM hasn't
been disabled or hidden from the operating system
If you have TPM 1.2 with Windows 11, the TPM might be turned off, and need to
be turned back on, as described in Turn on the TPM. When it's turned back on,
Windows will reinitialize it
If you're attempting to set up BitLocker with the TPM, check which TPM driver is
installed on the computer. We recommend always using one of the TPM drivers
that is provided by Microsoft and is protected with BitLocker. If a non-Microsoft
TPM driver is installed, it may prevent the default TPM driver from loading and
cause BitLocker to report that a TPM isn't present on the computer. If you have a
non-Microsoft driver installed, remove it, and then allow the operating system to
initialize the TPM
If these issues occur, an error message appears, and you can't complete the initialization
process. To avoid the issue, allow Windows to initialize the TPM while you're connected
to the corporate network, and you can contact a domain controller.
For example, toggling TPMs will cause BitLocker to enter recovery mode. We strongly
recommend that, on systems with two TPMs, one TPM is selected to be used and the
selection isn't changed.
Clearing the TPM resets it to an unowned state. After you clear the TPM, the Windows
operating system will automatically reinitialize it and take ownership again.
2 Warning
Clearing the TPM can result in data loss. For more information, see the next section,
"Precautions to take before clearing the TPM."
Clearing the TPM causes you to lose all created keys associated with the TPM, and
data protected by those keys, such as a virtual smart card or a sign-in PIN. Make
sure that you have a backup and recovery method for any data that is protected or
encrypted by the TPM
Don't clear the TPM on a device you don't own, such as a work or school PC,
without being instructed to do so by your IT administrator
If you want to temporarily suspend TPM operations on Windows 11, you can turn
off the TPM. For more information, see Turn off the TPM
Always use functionality in the operating system (such as TPM.msc) to the clear the
TPM. Don't clear the TPM directly from UEFI
Because your TPM security hardware is a physical part of your computer, before
clearing the TPM, you might want to read the manuals or instructions that came
with your computer, or search the manufacturer's website
After the device restarts, but before you sign in to Windows, you'll be prompted to
accept the reconfiguration of the TPM. The acceptance ensures that the user has
physical access to the computer and that malicious software isn't attempting to make
changes to the TPM.
If you saved your TPM owner password on a removable storage device, insert
it, and then select I have the owner password file. In the Select backup file
with the TPM owner password dialog box, select Browse to locate the .tpm
file that is saved on your removable storage device, select Open, and then
select Turn TPM Off.
If you don't have the removable storage device with your saved TPM owner
password, select I want to enter the password. In the Type your TPM owner
password dialog box, type your password (including hyphens), and then
select Turn TPM Off.
If you didn't save your TPM owner password or no longer know it, select I do
not have the TPM owner password, and follow the instructions that are
provided in the dialog box and subsequent UEFI screens to turn off the TPM
without entering the password.
For steps on how to switch PCR banks on TPM 2.0 devices on your PC, you should
contact your OEM or UEFI vendor. This article provides background about what happens
when you switch PCR banks on TPM 2.0 devices.
A Platform Configuration Register (PCR) is a memory location in the TPM that has some
unique properties. The size of the value that can be stored in a PCR is determined by the
size of a digest generated by an associated hashing algorithm. A SHA-1 PCR can store
20 bytes - the size of a SHA-1 digest. Multiple PCRs associated with the same hashing
algorithm are referred to as a PCR bank.
To store a new value in a PCR, the existing value is extended with a new value as follows:
PCR[N] = HASHalg( PCR[N] || ArgumentOfExtend)
The existing value is concatenated with the argument of the TPM Extend operation. The
resulting concatenation is then used as input to the associated hashing algorithm, which
computes a digest of the input. The computed digest becomes the new value of the
PCR.
The TCG PC Client Platform TPM Profile Specification defines the inclusion of at least
one PCR bank with 24 registers. The only way to reset the first 16 PCRs is to reset the
TPM itself. This restriction helps to ensure that the value of those PCRs can only be
modified via the TPM Extend operation.
Some TPM PCRs are used as checksums of log events. The log events are extended in
the TPM as the events occur. Later, an auditor can validate the logs by computing the
expected PCR values from the log and comparing them to the PCR values of the TPM.
Since the first 16 TPM PCRs can't be modified arbitrarily, a match between an expected
PCR value in that range and the actual TPM PCR value provides assurance of an
unmodified log.
It's important to note that this binding to PCR values also includes the hashing
algorithm used for the PCR. For instance, a key can be bound to a specific value of the
SHA-1 PCR[12] , if using the SHA-256 PCR bank, even with the same system
As a result, if the currently used PCR bank is switched all keys that have been bound to
the previous PCR values will no longer work. For example, if you had a key bound to the
SHA-1 value of PCR[12] and subsequently changed the PCR bank to SHA-256, the banks
wouldn't match, and you would be unable to use that key. The BitLocker key is secured
using the PCR banks and Windows won't be able to unseal it if the PCR banks are
switched while BitLocker is enabled.
DWORD: TPMActivePCRBanks
Defines which PCR banks are currently active. (This value should be interpreted as
a bitmap for which the bits are defined in the TCG Algorithm Registry Table 21 of
Revision 1.27.)
Windows checks which PCR banks are active and supported by the BIOS. Windows also
checks if the measured boot log supports measurements for all active PCR banks.
Windows will prefer the use of the SHA-256 bank for measurements and will fall back to
SHA1 PCR bank if one of the pre-conditions isn't met.
You can identify which PCR bank is currently used by Windows by looking at the
registry:
Registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IntegrityServices
DWORD: TPMDigestAlgID
Algorithm ID of the PCR bank that Windows is currently using. (This value
represents an algorithm identifier as defined in the TCG Algorithm Registry Table
3 of Revision 1.27.)
Windows only uses one PCR bank to continue boot measurements. All other active PCR
banks will be extended with a separator to indicate that they aren't used by Windows
and measurements that appear to be from Windows shouldn't be trusted.
TPM recommendations
Article • 07/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic provides recommendations for Trusted Platform Module (TPM) technology for
Windows.
For a basic feature description of TPM, see the Trusted Platform Module Technology
Overview.
TPMs are passive: they receive commands and return responses. To realize the full
benefit of a TPM, the OEM must carefully integrate system hardware and firmware with
the TPM to send it commands and react to its responses. TPMs were originally designed
to provide security and privacy benefits to a platform's owner and users, but newer
versions can provide security and privacy benefits to the system hardware itself. Before it
can be used for advanced scenarios, however, a TPM must be provisioned. Windows
automatically provisions a TPM, but if the user is planning to reinstall the operating
system, he or she may need to clear the TPM before reinstalling so that Windows can
take full advantage of the TPM.
The Trusted Computing Group (TCG) is the nonprofit organization that publishes and
maintains the TPM specification. The TCG exists to develop, define, and promote
vendor-neutral, global industry standards. These standards support a hardware-based
root of trust for interoperable trusted computing platforms. The TCG also publishes the
TPM specification as the international standard ISO/IEC 11889, using the Publicly
Available Specification Submission Process that the Joint Technical Committee 1 defines
between the International Organization for Standardization (ISO) and the International
Electrotechnical Commission (IEC).
OEMs implement the TPM as a component in a trusted computing platform, such as a
PC, tablet, or phone. Trusted computing platforms use the TPM to support privacy and
security scenarios that software alone cannot achieve. For example, software alone
cannot reliably report whether malware is present during the system startup process.
The close integration between TPM and platform increases the transparency of the
startup process and supports evaluating device health by enabling reliable measuring
and reporting of the software that starts the device. Implementation of a TPM as part of
a trusted computing platform provides a hardware root of trust-that is, it behaves in a
trusted way. For example, if a key stored in a TPM has properties that disallow exporting
the key, that key truly cannot leave the TPM.
The TCG designed the TPM as a low-cost, mass-market security solution that addresses
the requirements of different customer segments. There are variations in the security
properties of different TPM implementations just as there are variations in customer and
regulatory requirements for different sectors. In public-sector procurement, for example,
some governments have clearly defined security requirements for TPMs whereas others
do not.
The TPM 1.2 spec only allows for the use of RSA and the SHA-1 hashing algorithm.
For security reasons, some entities are moving away from SHA-1. Notably, NIST
has required many federal agencies to move to SHA-256 as of 2014, and
technology leaders, including Microsoft and Google have announced they will
remove support for SHA-1 based signing or certificates in 2017.
TPM 2.0 enables greater crypto agility by being more flexible with respect to
cryptographic algorithms.
TPM 2.0 supports newer algorithms, which can improve drive signing and key
generation performance. For the full list of supported algorithms, see the TCG
Algorithm Registry . Some TPMs don't support all algorithms.
For the list of algorithms that Windows supports in the platform cryptographic
storage provider, see CNG Cryptographic Algorithm Providers.
Use of TPM 2.0 may help eliminate the need for OEMs to make exception to
standard configurations for certain countries and regions.
TPM 1.2 implementations vary in policy settings. This may result in support
issues as lockout policies vary.
While TPM 1.2 parts are discrete silicon components, which are typically soldered
on the motherboard, TPM 2.0 is available as a discrete (dTPM) silicon component
in a single semiconductor package, an integrated component incorporated in one
or more semiconductor packages - alongside other logic units in the same
package(s), and as a firmware (fTPM) based component running in a trusted
execution environment (TEE) on a general purpose SoC.
7 Note
TPM 2.0 is not supported in Legacy and CSM Modes of the BIOS. Devices with TPM
2.0 must have their BIOS mode configured as Native UEFI only. The Legacy and
Compatibility Support Module (CSM) options must be disabled. For added security
Enable the Secure Boot feature.
Installed Operating System on hardware in legacy mode will stop the OS from
booting when the BIOS mode is changed to UEFI. Use the tool MBR2GPT before
changing the BIOS mode which will prepare the OS and the disk to support UEFI.
Integrated TPM solution, using dedicated hardware integrated into one or more
semiconductor packages alongside, but logically separate from, other components
Firmware TPM solution, running the TPM in firmware in a Trusted Execution mode
of a general purpose computation unit
Windows uses any compatible TPM in the same way. Microsoft does not take a position
on which way a TPM should be implemented and there is a wide ecosystem of available
TPM solutions, which should suit all needs.
IoT Core
TPM is optional on IoT Core.
Measured Boot Yes Yes Yes Measured Boot requires TPM 1.2 or 2.0
and UEFI Secure Boot. TPM 2.0 is
recommended since it supports newer
cryptographic algorithms. TPM 1.2 only
supports the SHA-1 algorithm which is
being deprecated.
BitLocker No Yes Yes TPM 1.2 or 2.0 are supported but TPM
2.0 is recommended. Automatic Device
Encryption requires Modern Standby
including TPM 2.0 support
Credential Guard No Yes Yes Windows 10, version 1507 (End of Life
as of May 2017) only supported TPM
2.0 for Credential Guard. Beginning with
Windows 10, version 1511, TPM 1.2 and
2.0 are supported. Paired with Windows
Defender System Guard, TPM 2.0
provides enhanced security for
Credential Guard. Windows 11 requires
TPM 2.0 by default to facilitate easier
enablement of this enhanced security
for customers.
Microsoft Pluton is currently available on devices with Ryzen 6000 and Qualcomm
Snapdragon® 8cx Gen 3 series processors. Microsoft Pluton can be enabled on devices
with Pluton capable processors running Windows 11, version 22H2.
Microsoft Pluton is designed to provide the functionality of the Trusted Platform Module
as well as deliver other security functionality beyond what is possible with the TPM 2.0
specification, and allows for additional Pluton firmware and OS features to be delivered
over time via Windows Update. For more information, see Microsoft Pluton as TPM.
Pluton is built on proven technology used in Xbox and Azure Sphere, and provides
hardened integrated security capabilities to Windows 11 devices in collaboration with
leading silicon partners. For more information, see Meet the Microsoft Pluton processor
– The security chip designed for the future of Windows PCs .
Description
Hardware Pluton Security Processor is a secure element tightly integrated into the SoC
subsystem. It provides a trusted execution environment while delivering
cryptographic services required for protecting sensitive resources and critical items
like keys, data, etc.
Firmware Microsoft authorized firmware provides required secure features and functionality,
and exposes interfaces that operating system software and applications can use to
interact with Pluton. The firmware is stored in the flash storage available on the
motherboard. When the system boots, the firmware is loaded as a part of Pluton
Hardware initialization. During Windows startup, a copy of this firmware (or the latest
firmware obtained from Windows Update, if available) is loaded in the operating
system. For additional information, see Firmware load flow
Software Operating system drivers and applications available to an end user to allow seamless
usage of the hardware capabilities provided by the Pluton security subsystem.
For more information about Windows licensing, see Windows licensing overview.
Related topics
Microsoft Pluton as TPM
Microsoft Pluton as Trusted Platform
Module
Article • 07/31/2023 • Applies to: ✅ Windows 11
Microsoft Pluton is designed to provide the functionality of the Trusted Platform Module
(TPM) thereby establishing the silicon root of trust. Microsoft Pluton supports the TPM
2.0 industry standard allowing customers to immediately benefit from the enhanced
security in Windows features that rely on TPM including BitLocker, Windows Hello, and
Windows Defender System Guard.
As with other TPMs, credentials, encryption keys, and other sensitive information cannot
be easily extracted from Pluton even if an attacker has installed malware or has
complete physical possession of the device. Storing sensitive data like encryption keys
securely within the Pluton processor, which is isolated from the rest of the system, helps
ensure that emerging attack techniques such as speculative execution cannot access key
material.
Pluton also solves the major security challenge of keeping its own root-of-trust firmware
up to date across the entire PC ecosystem, by delivering firmware updates from
Windows Update. Today customers receive updates to their security firmware from a
variety of different sources, which may make it difficult for them to apply these updates.
To learn more about the TPM related scenarios that benefit from Pluton, see TPM and
Windows Features.
Pluton is integrated within the SoC subsystem, and provides a flexible, updatable
platform for running firmware that implements end-to-end security functionality
authored, maintained, and updated by Microsoft. We encourage users owning devices
that are Pluton capable, to enable Microsoft Pluton as the default TPM.
UEFI setup options differ from product to product, visit the product website and check
for guidance to enable Pluton as TPM.
2 Warning
Windows Hello must be re-configured after switching the TPM. Setup alternate
login methods before changing the TPM configuration to prevent any login issues.
Tip
On most Lenovo devices, entering the UEFI options requires pressing Enter key at
startup followed by pressing F1. In the UEFI Setup menu, select Security option,
then on the Security page, select Security Chip option, to see the TPM
configuration options. Under the drop-down list for Security Chip selection, select
MSFT Pluton and click F10 to Save and Exit.
Related topics
Microsoft Pluton security processor
Virtualization-based Security (VBS)
Article • 03/20/2023
One such example security solution is memory integrity, which protects and hardens
Windows by running kernel mode code integrity within the isolated virtual environment
of VBS. Kernel mode code integrity is the Windows process that checks all kernel mode
drivers and binaries before they're started, and prevents unsigned or untrusted drivers
or system files from being loaded into system memory. Memory integrity also restricts
kernel memory allocations that could be used to compromise the system, ensuring that
kernel memory pages are only made executable after passing code integrity checks
inside the secure runtime environment, and executable pages themselves are never
writable. That way, even if there are vulnerabilities like a buffer overflow that allow
malware to attempt to modify memory, executable code pages cannot be modified, and
modified memory cannot be made executable.
7 Note
Please notice that TPM is not a must requirement, but we highly recommend to
implement TPM.
Hardware Details
requirement
Hardware Details
requirement
64-bit CPU Virtualization-based security (VBS) requires the Windows hypervisor, which is only
supported on 64-bit IA processors with virtualization extensions, including Intel
VT-X and AMD-v.
Second Level VBS also requires that the processor’s virtualization support includes Second Level
Address Address Translation (SLAT), either Intel VT-X2 with Extended Page Tables (EPT), or
Translation AMD-v with Rapid Virtualization Indexing (RVI).
(SLAT)
IOMMUs or All I/O devices capable of DMA must be behind an IOMMU or SMMU. An IOMMU
SMMUs can be used to enhance system resiliency against memory attacks.
(Intel VT-D,
AMD-Vi,
Arm64
SMMUs)
Trusted TPMs, either discrete or firmware, will suffice. For more information, see Trusted
Platform Platform Module (TPM) 2.0.
Module
(TPM) 2.0
Firmware System firmware must adhere to the recommendations for hardening SMM code
support for described in the Windows SMM Security Mitigations Table (WMST) specification.
SMM The WSMT specification contains details of an ACPI table that was created for use
protection with Windows operating systems that support VBS features. Firmware must
implement the protections described in the WSMT specification, and set the
corresponding protection flags as described in the specification to report
compliance with these requirements to the operating system.
Hardware Details
requirement
Unified UEFI firmware must adhere to the following memory map reporting format and
Extensible memory allocation guidelines in order for firmware to ensure compatibility with
Firmware VBS.
Interface
(UEFI) UEFI v2.6 Memory Attributes Table (MAT) - To ensure compatibility with VBS,
Memory firmware must cleanly separate EFI runtime memory ranges for code and data,
Reporting and report this to the operating system. Proper segregation and reporting of EFI
runtime memory ranges allows VBS to apply the necessary page protections to EFI
runtime services code pages within the VBS secure region. Conveying this
information to the OS is accomplished using the
EFI_MEMORY_ATTRIBUTES_TABLE. To implement the UEFI MAT, follow these
guidelines:
Secure Secure MOR v2 is enhanced to protect the MOR lock setting using a UEFI secure
Memory variable. This helps guard against advanced memory attacks. For details, see
Overwrite Secure MOR implementation.
Request
(MOR)
revision 2
Memory Ensure all system drivers have been tested and verified to be compatible with
integrity- memory integrity. The Windows Driver Kit and Driver Verifier contain tests for
compatible driver compatibility with memory integrity. There are three steps to verify driver
drivers compatibility:
1. Use Driver Verifier with the Code Integrity compatibility checks enabled.
2. Run the Hypervisor Code Integrity Readiness Test in the Windows HLK.
3. Test the driver on a system with VBS and memory integrity enabled. This
step is imperative to validate the driver's behavior with memory integrity, as
static code analysis tools simply aren't capable of detecting all memory
integrity violations possible at runtime.
VBS works on VMs that have nested virtualization support. This includes all Gen2 VMs,
and Gen1 VMs that support nested virtualization. A list of supported VM series is
detailed in the table below.
B No 1 and 2
Dsv2/Dv2/Dv3/Ev3 Yes 1
Fx Yes 2
Related topics
For more info about Hyper-V, see Hyper-V on Windows Server 2016 or Introduction to
Hyper-V on Windows 10. For more info about hypervisor, see Hypervisor Specifications.
Enable virtualization-based protection
of code integrity
Article • 07/11/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
7 Note
Memory integrity works better with Intel Kabylake and higher processors with
Mode-Based Execution Control, and AMD Zen 2 and higher processors with Guest
Mode Execute Trap capabilities. Older processors rely on an emulation of these
features, called Restricted User Mode, and will have a bigger impact on performance.
2 Warning
Some applications and hardware device drivers may be incompatible with memory
integrity. This incompatibility can cause devices or software to malfunction and in
rare cases may result in a boot failure (blue screen). Such issues may occur after
memory integrity has been turned on or during the enablement process itself. If
compatibility issues occur, see Troubleshooting for remediation steps.
7 Note
Windows Security
Memory integrity can be turned on in Windows Security settings and found at
Windows Security > Device security > Core isolation details > Memory integrity. For
more information, see Device protection in Windows Security .
To proactively dismiss the memory integrity warning, you can set the
Hardware_HVCI_Off (DWORD) registry value under HKLM\SOFTWARE\Microsoft\Windows
Security Health\State to 0. After you change the registry value, you must restart the
4. Select Enabled and under Virtualization Based Protection of Code Integrity, select
Enabled without UEFI lock. Only select Enabled with UEFI lock if you want to
prevent memory integrity from being disabled remotely or by policy update. Once
enabled with UEFI lock, you must have access to the UEFI BIOS menu to turn off
Secure Boot if you want to turn off memory integrity.
To apply the new policy on a domain-joined computer, either restart or run gpupdate
/force in an elevated command prompt.
Use registry keys to enable memory integrity
Set the following registry keys to enable memory integrity. These keys provide exactly
the same set of configuration options provided by Group Policy.
) Important
Among the commands that follow, you can choose settings for Secure Boot
and Secure Boot with DMA. In most situations, we recommend that you
choose Secure Boot. This option provides Secure Boot with as much
protection as is supported by a given computer's hardware. A computer with
input/output memory management units (IOMMUs) will have Secure Boot
with DMA protection. A computer without IOMMUs will simply have Secure
Boot enabled.
If you select Secure Boot with DMA, memory integrity and the other VBS
features will only be turned on for computers that support DMA. That is, for
computers with IOMMUs only. Any computer without IOMMUs will not have
VBS or memory integrity protection.
For Windows 10 version 1607 and later and for Windows 11 version
21H2
Console
reg add
"HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnfor
cedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 1 /f
reg add
"HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnfor
cedCodeIntegrity" /v "Locked" /t REG_DWORD /d 0 /f
If you want to customize the preceding recommended settings, use the following
registry keys.
Console
Console
Console
Console
Console
Console
reg add
"HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnfor
cedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 1 /f
Console
reg add
"HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnfor
cedCodeIntegrity" /v "Locked" /t REG_DWORD /d 0 /f
Console
reg add
"HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnfor
cedCodeIntegrity" /v "Locked" /t REG_DWORD /d 1 /f
To gray out the memory integrity UI and display the message "This setting is
managed by your administrator"
Console
reg delete
HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforc
edCodeIntegrity /v "WasEnabledBy" /f
Console
reg add
HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforc
edCodeIntegrity /v "WasEnabledBy" /t REG_DWORD /d 2 /f
If you want to customize the preceding recommended settings, use the following
settings.
Console
Console
Console
Console
1. Use the WDAC Wizard to create or edit your WDAC policy and select the option
Hypervisor-protected Code Integrity on the Policy Rules page of the Wizard.
2. Use the Set-HVCIOptions PowerShell cmdlet.
3. Edit your WDAC policy XML and modify the value set for the <HVCIOptions>
element.
7 Note
If your WDAC policy is set to turn memory integrity on, it will be turned on even if
the policy is in audit mode.
PowerShell
7 Note
Mode Based Execution Control property will only be listed as available starting with
Windows 10 version 1803 and Windows 11 version 21H2. This value is reported for
both Intel's Mode-Based Execution Control and AMD's Guest Mode Execute Trap
capabilities.
The output of this command provides details of the available hardware-based security
features and those features that are currently enabled.
AvailableSecurityProperties
This field helps to enumerate and report state on the relevant security properties for
VBS and memory integrity.
Value Description
InstanceIdentifier
A string that is unique to a particular device and set by WMI.
RequiredSecurityProperties
This field describes the required security properties to enable VBS.
Value Description
0. Nothing is required.
SecurityServicesConfigured
This field indicates whether Credential Guard or memory integrity has been configured.
Value Description
SecurityServicesRunning
Value Description
0. No services running.
Version
This field lists the version of this WMI class. The only valid value now is 1.0.
VirtualizationBasedSecurityStatus
This field indicates whether VBS is enabled and running.
Value Description
PSComputerName
This field lists the computer name. All valid values for computer name.
Another method to determine the available and enabled VBS features is to run
msinfo32.exe from an elevated PowerShell session. When you run this program, the VBS
features are displayed at the bottom of the System Summary section.
Troubleshooting
If a device driver fails to load or crashes at runtime, you may be able to update the
driver using Device Manager.
If you experience a critical error during boot or your system is unstable after
turning on memory integrity, you can recover using the Windows Recovery
Environment (Windows RE).
1. First, disable any policies that are used to enable VBS and memory integrity,
for example Group Policy.
3. After logging in to Windows RE, set the memory integrity registry key to off:
Console
reg add
"HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\Hyper
visorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f
7 Note
If you turned on memory integrity with UEFI lock, you will need to disable Secure
Boot to complete the Windows RE recovery steps.
Memory integrity protects against malware running in the guest virtual machine. It
doesn't provide extra protection from the host administrator. From the host, you can
disable memory integrity for a virtual machine:
PowerShell
Memory integrity is a virtualization-based security (VBS) feature available in Windows 10, Windows
11, and Windows Server 2016 or higher. Memory integrity and VBS improve the threat model of
Windows and provide stronger protections against malware trying to exploit the Windows kernel.
VBS uses the Windows hypervisor to create an isolated virtual environment that becomes the root
of trust of the OS that assumes the kernel can be compromised. Memory integrity is a critical
component that protects and hardens Windows by running kernel mode code integrity within the
isolated virtual environment of VBS. Memory integrity also restricts kernel memory allocations that
could be used to compromise the system, ensuring that kernel memory pages are only made
executable after passing code integrity checks inside the secure runtime environment, and
executable pages themselves are never writable.
7 Note
See Virtualization Based Security System Resource Protections for more details on these protections.
Default enablement
Memory integrity is turned on by default on clean installs of Windows 11, and previously only on
clean installs of Windows 10 in S mode, on compatible hardware as described in this article. It's also
turned on by default on all Secured-core PCs. On other systems that don't meet the memory
integrity auto-enablement requirements, customers can opt in using any of the methods described
in how to enable memory integrity. IT Pros and end users always have the final control of whether
memory integrity is enabled.
Component Detail
Processor Intel 8th generation or later starting with Windows 11, version 22H2 (11th generation
Core processors and newer only for Windows 11, version 21H2)
AMD Zen 2 architecture and newer
Qualcomm Snapdragon 8180 and newer
Component Detail
Drivers Memory integrity-compatible drivers must be installed. See Driver compatibility with memory
integrity for more information about drivers.
If you're building an image that won't automatically enable memory integrity, you can still configure
your image so that it's turned on by default.
7 Note
7 Note
The China and Korea markets are excluded, to avoid known compatibility issues with software
prevalent in those geographies.
7 Note
Intel 11th generation Core desktop processors are not included in current default enablement
logic. However, they are a recommended platform for memory integrity and it can be enabled
by the OEM.
Recommended configuration
Set the following two registry keys in your image to ensure memory integrity is turned on.
Registry key Value
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity Enabled=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity WasEnabledBy=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity EnabledBootId=
<Current
BootId>
The BootId is a counter that increments on each successful boot and can be found at the registry
key: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory
Management\PrefetchParameters\BootId The WasEnabledBy and EnabledBootId registry keys
control a setting that safeguards against having an unbootable device. When set, the device will
automatically turn off memory integrity if the system crashes during boot, potentially caused by
memory integrity blocking an incompatible boot-critical driver. This auto-disablement feature is
only available while BootId is less than EnabledBootId + 3. In some versions of Windows, the auto-
disable functionality is designed to revert if the boot failures continue even after memory integrity
was turned off, indicating that memory integrity was not the root cause of the failures.
7 Note
For high security systems, WasEnabledBy and EnabledBootId should NOT be set.
Troubleshooting
HKLM\System\CurrentControlSet\Control\CI\State HVCIEnabled
Other ways of checking memory integrity state are to look at MsInfo32 under Virtualization-based
Security Services Running or refer to the Core isolation settings page in the Windows Security app
to see the value of Memory integrity. There is also a WMI interface for checking using management
tools, see Validate enabled VBS and memory integrity features.
Memory integrity not enabled: SYSPRP HVCI: OS does not meet HVCI auto-enablement requirements.
Exiting now.
If the device was opted out of memory integrity enablement via the regkey method detailed earlier,
then this will be the only log from memory integrity's sysprep. If the device had a compatibility
issue, it should be identified in the preceding logs with the error message:
The following is an enumeration of the potential VBS or memory integrity Compat Issues. Each issue
is represented by a single index in a bit array, and the error message outputs the hex value resulting
from each error bit being present.
9 Deprecated
12 Deprecated
13 Device failing to meet 64GB minimum required volume size 0x00002000 x64, ARM64
0x000000C0 -> 0x00000080 AND 0x00000040 -> UEFI WX Memory Attributes Table required, ACPI
WSMT table required
Windows 11 Secured-core PCs
Article • 07/25/2022
Microsoft works closely with OEM partners to help ensure that all certified Windows
systems deliver a secure operating environment. Windows integrates closely with the
hardware to deliver protections that take advantage of available hardware capabilities:
Baseline Windows security – recommended baseline for all individual systems that
provides foundational system integrity protections. Leverages TPM 2.0 for a
hardware root of trust, secure boot and BitLocker drive encryption.
Virtualization-based security enabled – leverages virtualization capabilities from
hardware and the hypervisor to provide additional protection for critical
subsystems and data.
Secured-core – recommended for the most sensitive systems and industries like
financial, healthcare, and government agencies. Builds on the previous layers and
leverages advanced processor capabilities to provide protection from firmware
attacks.
Secured-core PCs
Microsoft is working closely with OEM partners and silicon vendors to build Secured-
core PCs that features deeply integrated hardware, firmware and software to ensure
enhanced security for devices, identities and data.
Secured-core PCs provide protections that are useful against sophisticated attacks and
can provide increased assurance when handling mission-critical data in some of the
most data-sensitive industries, such as healthcare workers that handle medical records
and other personally identifiable information (PII), commercial roles that handle high
business impact and highly sensitive data, such as a financial controller with earnings
data.
For general purpose laptops, tablets, 2-in-1's, mobile workstations, and desktops,
Microsoft recommends using Security baselines for optimal configuration. For more
info, see Windows security baselines.
For more information about Windows licensing, see Windows licensing overview.
Configuration Flow
After a secured-core PCs reaches the desktop, config lock will prevent configuration drift
by detecting if the device is a secured-core PC or not. When the device isn't a secured-
core PC, the lock doesn't apply. If the device is a secured-core PC, config lock locks the
policies listed under List of locked policies.
The steps to turn on config lock using Microsoft Intune are as follows:
1. Ensure that the device to turn on config lock is enrolled in Microsoft Intune.
2. In the Intune admin center , select Devices > Configuration Profiles > Create a
profile.
5. When you reach the Configuration Settings step, select "Add" and add the
following information:
OMA-URI:
./Vendor/MSFT/DMClient/Provider/MS%20DM%20Server/ConfigLock/Lock
6. Select the devices to turn on config lock. If you're using a test tenant, you can
select "+ Add all devices".
7. You don't need to set any applicability rules for test purposes.
9. After the device syncs with the Microsoft Intune server, you can confirm if the
config lock was successfully enabled.
Configuring secured-core PC features
Config lock is designed to ensure that a secured-core PC isn't unintentionally
misconfigured. You keep the ability to enable or disable SCPC features, for example,
firmware protection. You can make these changes with group policies or MDM services
like Microsoft Intune.
FAQ
Can I disable config lock? Yes. You can use MDM to turn off config lock completely
or put it in temporary unlock mode for helpdesk activities.
BitLocker
PassportForWork
WindowsDefenderApplicationGuard
ApplicationControl
DataProtection/AllowDirectMemoryAccess No
DataProtection/LegacySelectiveWipeID No
DeviceGuard/ConfigureSystemGuardLaunch Yes
DeviceGuard/EnableVirtualizationBasedSecurity Yes
DeviceGuard/LsaCfgFlags Yes
MDM policies Supported
by Group
Policy
DeviceGuard/RequirePlatformSecurityFeatures Yes
DeviceInstallation/AllowInstallationOfMatchingDeviceIDs Yes
DeviceInstallation/AllowInstallationOfMatchingDeviceInstanceIDs Yes
DeviceInstallation/AllowInstallationOfMatchingDeviceSetupClasses Yes
DeviceInstallation/PreventDeviceMetadataFromNetwork Yes
DeviceInstallation/PreventInstallationOfDevicesNotDescribedByOtherPolicySettings Yes
DeviceInstallation/PreventInstallationOfMatchingDeviceIDs Yes
DeviceInstallation/PreventInstallationOfMatchingDeviceInstanceIDs Yes
DeviceInstallation/PreventInstallationOfMatchingDeviceSetupClasses Yes
DmaGuard/DeviceEnumerationPolicy Yes
WindowsDefenderSecurityCenter/CompanyName Yes
WindowsDefenderSecurityCenter/DisableAccountProtectionUI Yes
WindowsDefenderSecurityCenter/DisableAppBrowserUI Yes
WindowsDefenderSecurityCenter/DisableClearTpmButton Yes
WindowsDefenderSecurityCenter/DisableDeviceSecurityUI Yes
WindowsDefenderSecurityCenter/DisableEnhancedNotifications Yes
WindowsDefenderSecurityCenter/DisableFamilyUI Yes
WindowsDefenderSecurityCenter/DisableHealthUI Yes
WindowsDefenderSecurityCenter/DisableNetworkUI Yes
WindowsDefenderSecurityCenter/DisableNotifications Yes
WindowsDefenderSecurityCenter/DisableTpmFirmwareUpdateWarning Yes
WindowsDefenderSecurityCenter/DisableVirusUI Yes
WindowsDefenderSecurityCenter/DisallowExploitProtectionOverride Yes
WindowsDefenderSecurityCenter/Email Yes
WindowsDefenderSecurityCenter/EnableCustomizedToasts Yes
MDM policies Supported
by Group
Policy
WindowsDefenderSecurityCenter/EnableInAppCustomization Yes
WindowsDefenderSecurityCenter/HideRansomwareDataRecovery Yes
WindowsDefenderSecurityCenter/HideSecureBoot Yes
WindowsDefenderSecurityCenter/HideTPMTroubleshooting Yes
WindowsDefenderSecurityCenter/HideWindowsSecurityNotificationAreaControl Yes
WindowsDefenderSecurityCenter/Phone Yes
WindowsDefenderSecurityCenter/URL Yes
SmartScreen/EnableAppInstallControl Yes
SmartScreen/EnableSmartScreenInShell Yes
SmartScreen/PreventOverrideForFilesInShell Yes
Kernel DMA Protection
Article • 07/31/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Kernel DMA Protection is a Windows security feature that protects against external
peripherals from gaining unauthorized access to memory.
PCIe hot plug devices such as Thunderbolt, USB4, and CFexpress allow users to attach
classes of external peripherals, including graphics cards, to their devices with the plug-
and-play ease of USB.
These devices are DMA-capable, and can access system memory and perform read and
write operations without the need for the system processor's involvement. This
capability is the reason behind the exceptional performance of PCI devices, but it also
makes them susceptible to drive-by DMA attacks.
Drive-by DMA attacks are attacks that occur while the owner of the system isn't present
and usually take just a few minutes, with simple-to-moderate attacking tools (affordable,
off-the-shelf hardware and software), that don't require the disassembly of the device.
For example, attackers can plug in a USB-like device while the device owner is on a
break, and walk away with all the secrets on the machine, or inject a malware that allows
them to have full control over the device remotely while bypassing the lock screen.
7 Note
Kernel DMA Protection feature doesn't protect against DMA attacks via
1394/FireWire, PCMCIA, CardBus, or ExpressCard.
By default, peripherals with DMA Remapping incompatible drivers will be blocked from
starting and performing DMA until an authorized user signs into the system or unlocks
the screen. IT administrators can modify the default behavior applied to devices with
DMA Remapping incompatible drivers using MDM or group policies.
User experience
When Kernel DMA Protection is enabled:
Kernel Direct Memory Access (DMA) protection license entitlements are granted by the
following licenses:
For more information about Windows licensing, see Windows licensing overview.
System compatibility
Kernel DMA Protection requires UEFI firmware support, and Virtualization-based
Security (VBS) isn't required.
Kernel DMA Protection isn't compatible with other BitLocker DMA attacks
countermeasures. It's recommended to disable the BitLocker DMA attacks
countermeasures if the system supports Kernel DMA Protection. Kernel DMA Protection
provides higher security bar for the system over the BitLocker DMA attack
countermeasures, while maintaining usability of external peripherals.
7 Note
DMA remapping support for graphics devices was added in Windows 11 with the
WDDM 3.0 driver model; Windows 10 doesn't support this feature.
You can use the Windows Security settings to check if Kernel DMA Protection is enabled:
Alternatively, you can use the System Information desktop app ( msinfo32.exe ). If the
system supports Kernel DMA Protection, the Kernel DMA Protection value will be set to
ON.
If the current state of Kernel DMA Protection is OFF and Hyper-V - Virtualization
Enabled in Firmware is NO:
7 Note
If the Hyper-V Windows feature is enabled, all the Hyper-V-related features will be
hidden, and A hypervisor has been detected. Features required for Hyper-V will
not be displayed entity will be shown at the bottom of the list. It means that
Hyper-V - Virtualization Enabled in Firmware is set to YES.
If the state of Kernel DMA Protection remains Off, then the system doesn't support
Kernel DMA Protection.
For systems that don't support Kernel DMA Protection, refer to the BitLocker
countermeasures or Thunderbolt 3 and Security on Microsoft Windows Operating
system for other means of DMA protection.
Frequently asked questions
Kernel DMA Protection is a policy that allows or blocks devices to perform DMA, based
on their remapping state and capabilities.
This topic explains how to configure System Guard Secure Launch and System
Management Mode (SMM) protection to improve the startup security of Windows 10
and Windows 11 devices. The information below is presented from a client perspective.
7 Note
System Guard Secure Launch feature requires a supported processor. For more
information, see System requirements for System Guard.
Group Policy
1. Click Start > type and then click Edit group policy.
2. Click Computer Configuration > Administrative Templates > System > Device
Guard > Turn On Virtualization Based Security > Secure Launch Configuration.
Windows Security
Click Start > Settings > Update & Security > Windows Security > Open Windows
Security > Device security > Core isolation > Firmware protection.
Registry
1. Open Registry editor.
3. Right-click Scenarios > New > Key and name the new key SystemGuard.
4. Right-click SystemGuard > New > DWORD (32-bit) Value and name the new
DWORD Enabled.
7 Note
To enable System Guard Secure launch, the platform must meet all the baseline
requirements for System Guard, Device Guard, Credential Guard, and
Virtualization Based Security.
7 Note
For more information around AMD processors, see Microsoft Security Blog: Force
firmware code to be measured and attested by Secure Launch on Windows 10 .
Windows operating system security
Article • 08/02/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Security and privacy depend on an operating system that guards your system and
information from the moment it starts up, providing fundamental chip-to-cloud
protection. Windows 11 is the most secure Windows yet with extensive security
measures designed to help keep you safe. These measures include built-in advanced
encryption and data protection, robust network and system security, and intelligent
safeguards against ever-evolving threats.
Watch the latest Microsoft Mechanics Windows 11 security video that shows off some
of the latest Windows 11 security technology.
Use the links in the following sections to learn more about the operating system security
features and capabilities in Windows.
System security
Feature name Description
Secure Boot Secure Boot and Trusted Boot help to prevent malware and corrupted
and Trusted components from loading when a device starts.
Boot
Secure Boot starts with initial boot-up protection, and then Trusted Boot picks
up the process. Together, Secure Boot and Trusted Boot help to ensure the
system boots up safely and securely.
Measured Measured Boot measures all important code and configuration settings during
boot the boot of Windows. This includes: the firmware, boot manager, hypervisor,
kernel, secure kernel and operating system. Measured Boot stores the
measurements in the TPM on the machine, and makes them available in a log
that can be tested remotely to verify the boot state of the client.
Device health The Windows device health attestation process supports a zero-trust paradigm
attestation that shifts the focus from static, network-based perimeters, to users, assets, and
service resources. The attestation process confirms the device, firmware, and boot
Feature name Description
process are in a good state and have not been tampered with before they can
access corporate resources. The determinations are made with data stored in the
TPM, which provides a secure root of trust. The information is sent to an
attestation service, such as Azure Attestation, to verify the device is in a trusted
state. Then, an MDM tool like Microsoft Intune reviews device health and
connects this information with Azure Active Directory for conditional access.
Windows Microsoft provides a robust set of security settings policies that IT administrators
security can use to protect Windows devices and other resources in their organization.
policy
settings and
auditing
Local Security Windows has several critical processes to verify a user's identity. Verification
Authority processes include Local Security Authority (LSA), which is responsible for
(LSA) authenticating users and verifying Windows logins. LSA handles tokens and
Protection credentials such as passwords that are used for single sign-on to a Microsoft
account and Azure services. To help protect these credentials, additional LSA
protection only allows loading of trusted, signed code and provides significant
protection against Credential theft.
Attack surface Attack surface reduction (ASR) rules help to prevent software behaviors that are
reduction often abused to compromise your device or network. By reducing the number
(ASR) of attack surfaces, you can reduce the overall vulnerability of your organization.
Feature name Description
Administrators can configure specific ASR rules to help block certain behaviors,
such as launching executable files and scripts that attempt to download or run
files, running obfuscated or otherwise suspicious scripts, performing behaviors
that apps don't usually initiate during normal day-to-day work.
Tamper Tamper protection is a capability in Microsoft Defender for Endpoint that helps
protection protect certain security settings, such as virus and threat protection, from being
settings for disabled or changed. During some kinds of cyber attacks, bad actors try to
MDE disable security features on devices. Disabling security features provides bad
actors with easier access to your data, the ability to install malware, and the
ability to exploit your data, identity, and devices. Tamper protection helps guard
against these types of activities.
Controlled You can protect your valuable information in specific folders by managing app
folder access access to specific folders. Only trusted apps can access protected folders, which
are specified when controlled folder access is configured. Commonly used
folders, such as those used for documents, pictures, downloads, are typically
included in the list of controlled folders. Controlled folder access works with a
list of trusted apps. Apps that are included in the list of trusted software work as
expected. Apps that are not included in the trusted list are prevented from
making any changes to files inside protected folders.
Controlled folder access helps to protect user's valuable data from malicious
apps and threats, such as ransomware.
Network security
Feature name Description
Transport layer Transport Layer Security (TLS) is a cryptographic protocol designed to provide
security (TLS) communications security over a network. TLS 1.3 is the latest version of the
protocol and is enabled by default in Windows 11. This version eliminates
obsolete cryptographic algorithms, enhances security over older versions, and
aims to encrypt as much of the TLS handshake as possible. The handshake is
more performant with one fewer round trip per connection on average, and
supports only five strong cipher suites which provide perfect forward secrecy
and less operational risk.
WiFi Security Wi-Fi Protected Access (WPA) is a security certification programs designed to
secure wireless networks. WPA3 is the latest version of the certification and
provides a more secure and reliable connection method as compared to
WPA2 and older security protocols. Windows supports three WPA3 modes:
WPA3 personal with the Hash-to-Element (H2E) protocol, WPA3 Enterprise,
and WPA3 Enterprise 192-bit Suite B.
With its integration with Internet Protocol Security (IPsec), Windows Firewall
provides a simple way to enforce authenticated, end-to-end network
communications. It provides scalable, tiered access to trusted network
resources, helping to enforce integrity of the data, and optionally helping to
protect the confidentiality of the data. Windows Firewall is a host-based
firewall that is included with the operating system, there is no additional
hardware or software required. Windows Firewall is also designed to
complement existing non-Microsoft network security solutions through a
documented application programming interface (API).
Virtual private The Windows VPN client platform includes built in VPN protocols,
network (VPN) configuration support, a common VPN user interface, and programming
support for custom VPN protocols. VPN apps are available in the Microsoft
Store for both enterprise and consumer VPNs, including apps for the most
popular enterprise VPN gateways.
In Windows 11, the most commonly used VPN controls are integrated right
into the Quick Actions pane. From the Quick Actions pane, users can see the
status of their VPN, start and stop the VPN tunnels, and access the Settings
app for more controls.
Always On VPN With Always On VPN, you can create a dedicated VPN profile for the device.
(device tunnel) Unlike User Tunnel, which only connects after a user logs on to the device,
Device Tunnel allows the VPN to establish connectivity before a user sign-in.
Both Device Tunnel and User Tunnel operate independently with their VPN
profiles, can be connected at the same time, and can use different
authentication methods and other VPN configuration settings as appropriate.
Direct Access DirectAccess allows connectivity for remote users to organization network
resources without the need for traditional Virtual Private Network (VPN)
connections.
Server Message SMB Encryption provides end-to-end encryption of SMB data and protects
Block (SMB) file data from eavesdropping occurrences on internal networks. In Windows 11,
service the SMB protocol has significant security updates, including AES-256 bits
encryption, accelerated SMB signing, Remote Directory Memory Access
(RDMA) network encryption, and SMB over QUIC for untrusted networks.
Windows 11 introduces AES-256-GCM and AES-256-CCM cryptographic suites
for SMB 3.1.1 encryption. Windows administrators can mandate the use of
Feature name Description
more advanced security or continue to use the more compatible, and still-
safe, AES-128 encryption.
Server Message SMB Direct (SMB over remote direct memory access) is a storage protocol
Block Direct that enables direct memory-to-memory data transfers between device and
(SMB Direct) storage, with minimal CPU usage, while using standard RDMA-capable
network adapters.
SMB Direct supports encryption, and now you can operate with the same
safety as traditional TCP and the performance of RDMA. Previously, enabling
SMB encryption disabled direct data placement, making RDMA as slow as TCP.
Now data is encrypted before placement, leading to relatively minor
performance degradation while adding AES-128 and AES-256 protected
packet privacy.
BitLocker The BitLocker CSP allows an MDM solution, like Microsoft Intune, to manage
management the BitLocker encryption features on Windows devices. This includes OS
volumes, fixed drives and removeable storage, and recovery key management
into Azure AD.
BitLocker BitLocker Drive Encryption is a data protection feature that integrates with the
enablement operating system and addresses the threats of data theft or exposure from lost,
stolen, or inappropriately decommissioned computers. BitLocker uses AES
algorithm in XTS or CBC mode of operation with 128-bit or 256-bit key length
to encrypt data on the volume. Cloud storage on Microsoft OneDrive or Azure
can be used to save recovery key content. BitLocker can be managed by any
MDM solution such as Microsoft Intune, using a configuration service provider
(CSP).
BitLocker provides encryption for the OS, fixed data, and removable data drives
leveraging technologies like hardware security test interface (HSTI), Modern
Standby, UEFI Secure Boot and TPM.
Encrypted hard Encrypted hard drives are a class of hard drives that are self-encrypted at the
drive hardware level and allow for full disk hardware encryption while being
transparent to the device user. These drives combine the security and
management benefits provided by BitLocker Drive Encryption with the power of
self-encrypting drives.
Personal data Personal data encryption (PDE) works with BitLocker and Windows Hello for
encryption Business to further protect user documents and other files, including when the
(PDE) device is turned on and locked. Files are encrypted automatically and
seamlessly to give users more security without interrupting their workflow.
Windows Hello for Business is used to protect the container which houses the
encryption keys used by PDE. When the user signs in, the container gets
authenticated to release the keys in the container to decrypt user content.
Email Email encryption enables users to encrypt outgoing email messages and
Encryption attachments, so only intended recipients with a digital ID (certificate) can read
(S/MIME) them. Users can digitally sign a message, which verifies the identity of the
sender and confirms the message has not been tampered with. The encrypted
messages can be sent by a user to other users within their organization or
external contacts if they have proper encryption certificates.
Secure the Windows boot process
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Windows has many features to help protect you from malware, and it does an amazingly
good job. Except for apps that businesses develop and use internally, all Microsoft Store
apps must meet a series of requirements to be certified and included in the Microsoft
Store. This certification process examines several criteria, including security, and is an
effective means of preventing malware from entering the Microsoft Store. Even if a
malicious app does get through, Windows includes a series of security features that can
mitigate the effect. For instance, Microsoft Store apps are sandboxed and lack the
privileges necessary to access user data or change system settings.
Windows has multiple levels of protection for desktop apps and data, too. Windows
Defender Antivirus uses cloud-powered real-time detection to identify and quarantine
apps that are known to be malicious. Windows Defender SmartScreen warns users
before allowing them to run an untrustworthy app, even if it's recognized as malware.
Before an app can change system settings, the user would have to grant the app
administrative privileges by using User Account Control.
Those components are just some of the ways that Windows protects you from malware.
However, those security features protect you only after Windows starts. Modern
malware, and bootkits specifically, are capable of starting before Windows, completely
bypassing OS security, and remaining hidden.
To begin, let's take a closer look at rootkits and their functioning. Following that, we'll
illustrate how Windows can ensure your protection.
Different types of rootkits load during different phases of the startup process:
Firmware rootkits. These kits overwrite the firmware of the PC's basic input/output
system or other hardware so the rootkit can start before Windows.
Bootkits. These kits replace the OS's bootloader (the small piece of software that
starts the OS) so that the PC loads the bootkit before the OS.
Kernel rootkits. These kits replace a portion of the OS kernel so the rootkit can
start automatically when the OS loads.
Driver rootkits. These kits pretend to be one of the trusted drivers that Windows
uses to communicate with the PC hardware.
The countermeasures
Windows supports four features to help prevent rootkits and bootkits from loading
during the startup process:
Secure Boot. PCs with UEFI firmware and a Trusted Platform Module (TPM) can be
configured to load only trusted OS bootloaders.
Trusted Boot. Windows checks the integrity of every component of the startup
process before loading it.
Early Launch Anti-Malware (ELAM). ELAM tests all drivers before they load and
prevents unapproved drivers from loading.
Measured Boot. The PC's firmware logs the boot process, and Windows can send
it to a trusted server that can objectively assess the PC's health.
Secure Boot and Measured Boot are only possible on PCs with UEFI 2.3.1 and a TPM
chip. Fortunately, all Windows 10 and Windows 11 PCs that meet Windows Hardware
Compatibility Program requirements have these components, and many PCs designed
for earlier versions of Windows have them as well.
The sections that follow describe Secure Boot, Trusted Boot, ELAM, and Measured Boot.
Secure Boot
When a PC starts, it first finds the OS bootloader. PCs without Secure Boot run whatever
bootloader is on the PC's hard drive. There's no way for the PC to tell whether it's a
trusted OS or a rootkit.
When a PC equipped with UEFI starts, the PC first verifies that the firmware is digitally
signed, reducing the risk of firmware rootkits. If Secure Boot is enabled, the firmware
examines the bootloader's digital signature to verify that it hasn't been modified. If the
bootloader is intact, the firmware starts the bootloader only if one of the following
conditions is true:
The bootloader was signed using a trusted certificate. For PCs certified for
Windows, the Microsoft certificate is trusted.
The user has manually approved the bootloader's digital signature. This action
allows the user to load non-Microsoft operating systems.
All x86-based Certified For Windows PCs must meet several requirements related to
Secure Boot:
These requirements help protect you from rootkits while allowing you to run any OS you
want. You have three options for running non-Microsoft operating systems:
Use an OS with a certified bootloader. Because all Certified For Windows PCs
must trust Microsoft's certificate, Microsoft offers a service to analyze and sign any
non-Microsoft bootloader so that it will be trusted by all Certified For Windows
PCs. In fact, an open source bootloader capable of loading Linux is already
available. To begin the process of obtaining a certificate, go to
https://partner.microsoft.com/dashboard .
Configure UEFI to trust your custom bootloader. All Certified For Windows PCs
allow you to trust a non-certified bootloader by adding a signature to the UEFI
database, allowing you to run any OS, including homemade operating systems.
Turn off Secure Boot. All Certified For Windows PCs allow you to turn off Secure
Boot so that you can run any software. This action doesn't help protect you from
bootkits, however.
To prevent malware from abusing these options, the user must manually configure the
UEFI firmware to trust a non-certified bootloader or to turn off Secure Boot. Software
can't change the Secure Boot settings.
The default state of Secure Boot has a wide circle of trust, which can result in customers
trusting boot components they may not need. Since the Microsoft 3rd Party UEFI CA
certificate signs the bootloaders for all Linux distributions, trusting the Microsoft 3rd
Party UEFI CA signature in the UEFI database increase s the attack surface of systems. A
customer who intended to only trust and boot a single Linux distribution will trust all
distributions - much more than their desired configuration. A vulnerability in any of the
bootloaders exposes the system and places the customer at risk of exploit for a
bootloader they never intended to use, as seen in recent vulnerabilities, for example
with the GRUB bootloader or firmware-level rootkit affecting boot components.
Secured-core PCs require Secure Boot to be enabled and configured to distrust the
Microsoft 3rd Party UEFI CA signature, by default, to provide customers with the most
secure configuration of their PCs possible.
To trust and boot operating systems, like Linux, and components signed by the UEFI
signature, Secured-core PCs can be configured in the BIOS menu to add the signature in
the UEFI database by following these steps:
Boot the PC, and press the manufacturer's key to open the menus. Common
keys used: Esc, Delete, F1, F2, F10, F11, or F12. On tablets, common buttons
are Volume up or Volume down. During startup, there's often a screen that
mentions the key. If there's not one, or if the screen goes by too fast to see it,
check your manufacturer's site.
Or, if Windows is already installed, from either the Sign on screen or the Start
menu, select Power ( ) > hold Shift while selecting Restart. Select
Troubleshoot > Advanced options > UEFI Firmware settings.
2. From the firmware menu, navigate to Security > Secure Boot and select the option
to trust the "3rd Party CA".
3. Save changes and exit.
Microsoft continues to collaborate with Linux and IHV ecosystem partners to design
least privileged features to help you stay secure and opt-in trust for only the publishers
and components you trust.
Like most mobile devices, Arm-based devices, such as the Microsoft Surface RT device,
are designed to run only Windows 8.1. Therefore, Secure Boot can't be turned off, and
you can't load a different OS. Fortunately, there's a large market of ARM processor
devices designed to run other operating systems.
Trusted Boot
Trusted Boot takes over where Secure Boot ends. The bootloader verifies the digital
signature of the Windows kernel before loading it. The Windows kernel, in turn, verifies
every other component of the Windows startup process, including the boot drivers,
startup files, and ELAM. If a file has been modified, the bootloader detects the problem
and refuses to load the corrupted component. Often, Windows can automatically repair
the corrupted component, restoring the integrity of Windows and allowing the PC to
start normally.
An ELAM driver isn't a full-featured anti-malware solution; that loads later in the boot
process. Windows Defender (included with Windows) supports ELAM, as does several
non-Microsoft anti-malware apps.
Measured Boot
If a PC in your organization does become infected with a rootkit, you need to know
about it. Enterprise anti-malware apps can report malware infections to the IT
department, but that doesn't work with rootkits that hide their presence. In other words,
you can't trust the client to tell you whether it's healthy.
As a result, PCs infected with rootkits appear to be healthy, even with anti-malware
running. Infected PCs continue to connect to the enterprise network, giving the rootkit
access to vast amounts of confidential data and potentially allowing the rootkit to
spread across the internal network.
Measured Boot works with the TPM and non-Microsoft software in Windows. It allows a
trusted server on the network to verify the integrity of the Windows startup process.
Measured Boot uses the following process:
1. The PC's UEFI firmware stores in the TPM a hash of the firmware, bootloader, boot
drivers, and everything that is loaded before the anti-malware app.
2. At the end of the startup process, Windows starts the non-Microsoft remote
attestation client. The trusted attestation server sends the client a unique key.
3. The TPM uses the unique key to digitally sign the log recorded by the UEFI.
4. The client sends the log to the server, possibly with other security information.
Depending on the implementation and configuration, the server can now determine
whether the client is healthy. It can grant the client access to either a limited quarantine
network or to the full network.
Measured Boot uses the power of UEFI, TPM, and Windows to give you a way to
confidently assess the trustworthiness of a client PC across the network.
Summary
Secure Boot, Trusted Boot, and Measured Boot create an architecture that is
fundamentally resistant to bootkits and rootkits. In Windows, these features have the
potential to eliminate kernel-level malware from your network. With Windows, you can
trust the integrity of your OS.
Secure Boot and Trusted Boot
Article • 08/11/2023 • Applies to: ✅ Windows 11
This article describes Secure Boot and Trusted Boot, security measures built into Windows
11.
Secure Boot and Trusted Boot help prevent malware and corrupted components from
loading when a Windows 11 device is starting. Secure Boot starts with initial boot-up
protection, and then Trusted Boot picks up the process. Together, Secure Boot and
Trusted Boot help to ensure your Windows 11 system boots up safely and securely.
Secure Boot
The first step in protecting the operating system is to ensure that it boots securely after
the initial hardware and firmware boot sequences have safely finished their early boot
sequences. Secure Boot makes a safe and trusted path from the Unified Extensible
Firmware Interface (UEFI) through the Windows kernel's Trusted Boot sequence.
Malware attacks on the Windows boot sequence are blocked by the signature-
enforcement handshakes throughout the boot sequence between the UEFI, bootloader,
kernel, and application environments.
As the PC begins the boot process, it first verifies that the firmware is digitally signed,
reducing the risk of firmware rootkits. Secure Boot then checks all code that runs before
the operating system and checks the OS bootloader's digital signature to ensure that it's
trusted by the Secure Boot policy and hasn't been tampered with.
Trusted Boot
Trusted Boot picks up the process that started with Secure Boot. The Windows
bootloader verifies the digital signature of the Windows kernel before loading it. The
Windows kernel, in turn, verifies every other component of the Windows startup
process, including boot drivers, startup files, and your anti-malware product's early-
launch anti-malware (ELAM) driver. If any of these files were tampered, the bootloader
detects the problem and refuses to load the corrupted component. Tampering or
malware attacks on the Windows boot sequence are blocked by the signature-
enforcement handshakes between the UEFI, bootloader, kernel, and application
environments.
Often, Windows can automatically repair the corrupted component, restoring the
integrity of Windows and allowing the Windows 11 device to start normally.
Windows edition and licensing requirements
The following table lists the Windows editions that support Secure Boot and Trusted
Boot:
Secure Boot and Trusted Boot license entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
See also
Secure the Windows boot process
Measured Boot
Article11/17/2021
Platforms
Clients - Windows 8 Servers - Windows Server 2012
Description
As antimalware (AM) software has become better and better at detecting runtime
malware, attackers are also becoming better at creating rootkits that can hide from
detection. Detecting malware that starts early in the boot cycle is a challenge that most
AM vendors address diligently. Typically, they create system hacks that are not
supported by the host operating system and can actually result in placing the computer
in an unstable state. Up to this point, Windows has not provided a good way for AM to
detect and resolve these early boot threats. Windows 8 introduces a new feature called
Measured Boot, which measures each component, from firmware up through the boot
start drivers, stores those measurements in the Trusted Platform Module (TPM) on the
machine, and then makes available a log that can be tested remotely to verify the boot
state of the client.
Manifestation
The Measured Boot feature provides AM software with a trusted (resistant to spoofing
and tampering) log of all boot components that started before AM software. AM
software can use the log to determine whether components that ran before it are
trustworthy or if they are infected with malware. The AM software on the local machine
can send the log to a remote sever for evaluation. The remote server may initiate
remediation actions either by interacting with software on the client or through out-of-
band mechanisms, as appropriate.
Mitigation
In enterprise scenarios, the system administrator has control of how Measured Boot info
is used. In end-user scenarios for example, online banking), the consumer must opt in to
use Measured Boot for the specific service.
Solution
A white paper is being prepared that details the APIs and function calls that must be
made for various Measured Boot scenarios.
Control the health of Windows devices
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
This article details an end-to-end solution that helps you protect high-value assets by
enforcing, controlling, and reporting the health of Windows devices.
Introduction
For Bring Your Own Device (BYOD) scenarios, employees bring commercially available
devices to access both work-related resources and their personal data. Users want to
use the device of their choice to access the organization's applications, data, and
resources not only from the internal network but also from anywhere. This phenomenon
is also known as the consumerization of IT.
Users want to have the best productivity experience when accessing corporate
applications and working on organization data from their devices. That means they
don't tolerate being prompted to enter their work credentials each time they access an
application or a file server. From a security perspective, it also means that users
manipulate corporate credentials and corporate data on unmanaged devices.
With the increased use of BYOD, there will be more unmanaged and potentially
unhealthy systems accessing corporate services, internal resources, and cloud apps.
Even managed devices can be compromised and become harmful. Organizations need
to detect when security has been breached and react as early as possible in order to
protect high-value assets.
With the BYOD phenomena, a poorly maintained device represents a target of choice.
For an attacker, it's an easy way to breach the security network perimeter, gain access to,
and then steal high-value assets.
The attackers target individuals, not specifically because of who they are, but because of
who they work for. An infected device brings malware into an organization, even if the
organization has hardened the perimeter of networks or has invested in its defensive
posture. A defensive strategy isn't sufficient against these threats.
A different approach
Rather than the traditional focus on the prevention of compromise, an effective security
strategy assumes that determined adversaries will successfully breach any defenses. It
means that it's necessary to shift focus away from preventative security controls to
detection of, and response to, security issues. The implementation of the risk
management strategy, therefore, balances investment in prevention, detection, and
response.
Because mobile devices are increasingly being used to access corporate information,
some way to evaluate device security or health is required. This section describes how to
provision device health assessment in such a way that high-value assets can be
protected from unhealthy devices.
Devices that are used to access corporate resources must be trusted. An efficient end-
to-end security approach is able to evaluate device health and use the current security
state when granting access to a high-value asset.
A robust design needs to establish the user's identity, strengthen the authentication
method if needed, and learn behavior like the network location the user regularly
connects from. Also, a modern approach must be able to release sensitive content only
if user devices are determined to be healthy and secure.
The following figure shows a solution built to assess device health from the cloud. The
device authenticates the user through a connection to an identity provider in the cloud.
If the managed asset contains highly confidential information, the conditional access
engine of the identity provider may elect to verify the security compliance of the mobile
device before access is granted. The user's device is able to prove its health status that
can be sent at any time or when mobile device management (MDM) requests it.
Windows devices can be protected from low-level rootkits and bootkits by using low-
level hardware technologies such as Unified Extensible Firmware Interface (UEFI) Secure
Boot.
Secure Boot is a firmware validation process that helps prevent rootkit attacks; it's part
of the UEFI specification. The intent of UEFI is to define a standard way for the operating
system to communicate with modern hardware, which can perform faster and with more
efficient input/output (I/O) functions than older, software interrupt-driven BIOS systems.
A device health attestation module can communicate measured boot data that is
protected by a Trusted Platform Module (TPM) to a remote service. After the device
successfully boots, boot process measurement data is sent to a trusted cloud service
(Health Attestation Service) using a more secure and tamper-resistant communication
channel.
An MDM solution evaluates the health assertions and, depending on the health rules
belonging to the organization, can decide if the device is healthy. If the device is healthy
and compliant, MDM passes that information to the identity provider so the
organization's access control policy can be invoked to grant access.
Access to content is then authorized to the appropriate level of trust for whatever the
health status and other conditional elements indicate.
Depending on the requirements and the sensitivity of the managed asset, device health
status can be combined with user identity information when processing an access
request. Access to content is then authorized to the appropriate level of trust. The
Conditional Access engine may be structured to allow more verification as needed by
the sensitivity of the managed asset. For example, if access to high-value data is
requested, further security authentication may need to be established by querying the
user to answer a phone call before access is granted.
Secure identities. Microsoft is part of the FIDO alliance that aims to provide an
interoperable method of secure authentication by moving away from the use of
passwords for authentication, both on the local system and for services like on-
premises resources and cloud resources.
Information protection. Microsoft is making investments to allow organizations to
have better control over who has access to important data and what they can do
with that data. With Windows, organizations can take advantage of policies that
specify which applications are considered to be corporate applications and can be
trusted to access secure data.
Threat resistance. Microsoft is helping organizations to better secure enterprise
assets against the threats of malware and attacks by using security defenses
relying on hardware.
1 Windows- The first time a Windows-based device is powered on, the out-of-
based device box experience (OOBE) screen is displayed. During setup, the device
can be automatically registered into Azure Active Directory (AD) and
enrolled in MDM.
A Windows-based device with TPM can report health status at any
time by using the Health Attestation Service available with all
supported editions of Windows.
3 Mobile device Windows has MDM support that enables the device to be managed
management out-of-box without deploying any agent.
MDM can be Microsoft Intune or any third-party MDM solution that
is compatible with Windows.
4 Remote health The Health Attestation Service is a trusted cloud service operated by
attestation Microsoft that performs a series of health checks and reports to
MDM what Windows security features are enabled on the device.
Security verification includes boot state (WinPE, Safe Mode,
Number Part of the Description
solution
The combination of Windows-based devices, identity provider, MDM, and remote health
attestation creates a robust end-to-end-solution that provides validation of health and
compliance of devices that access high-value assets.
A TPM implements controls that meet the specification described by the Trusted
Computing Group (TCG). At the time of this writing, there are two versions of TPM
specification produced by TCG that aren't compatible with each other:
The first TPM specification, version 1.2, was published in February 2005 by the
TCG and standardized under ISO / IEC 11889 standard.
The latest TPM specification, referred to as TPM 2.0, was released in April 2014
and has been approved by the ISO/IEC Joint Technical Committee (JTC) as
ISO/IEC 11889:2015.
Windows uses the TPM for cryptographic calculations as part of health attestation
and to protect the keys for BitLocker, Windows Hello, virtual smart cards, and other
public key certificates. For more information, see TPM requirements in Windows.
Windows recognizes versions 1.2 and 2.0 TPM specifications produced by the TCG.
For the most recent and modern security features, Windows supports only TPM
2.0.
TPM 2.0 provides a major revision to the capabilities over TPM 1.2:
Secure Boot. Devices with UEFI firmware can be configured to load only trusted
operating system bootloaders. Secure Boot doesn't require a TPM.
The most basic protection is the Secure Boot feature, which is a standard part of
the UEFI 2.2+ architecture. On a PC with conventional BIOS, anyone who can take
control of the boot process can boot by using an alternative OS loader, and
potentially gain access to system resources. When Secure Boot is enabled, you can
boot using only an OS loader that's signed using a certificate stored in the UEFI
Secure Boot DB. Naturally, the Microsoft certificate used to digitally sign the
Windows OS loaders are in that store, which allows UEFI to validate the certificate
as part of its security policy. Secure Boot must be enabled by default on all
computers that are certified for Windows under the Windows Hardware
Compatibility Program.
Secure Boot is a UEFI firmware-based feature, which allows for the signing and
verification of critical boot files and drivers at boot time. Secure Boot checks
signature values of the Windows Boot Manager, BCD store, Windows OS loader
file, and other boot critical DLLs at boot time before the system is allowed to fully
boot into a usable operating system by using policies that are defined by the OEM
at build time. Secure Boot prevents many types of boot-based rootkit, malware,
and other security-related attacks against the Windows platform. Secure Boot
protects the operating system boot process whether booting from local hard disk,
USB, PXE, or DVD, or into full Windows or Windows Recovery Environment (RE).
Secure Boot protects the boot environment of a Windows installation by verifying
the signatures of the critical boot components to confirm malicious activity didn't
compromise them. Secure Boot protection ends after the Windows kernel file
(ntoskrnl.exe) has been loaded.
7 Note
Secure Boot protects the platform until the Windows kernel is loaded. Then
protections like ELAM take over.
The Secure Boot configuration policy must be signed by a private key that
corresponds to one of the public keys stored in the Key Exchange Key (KEK) list.
The Microsoft Certificate Authority (CA) will be present in the KEK list of all
Windows certified Secure Boot systems. By default, a policy signed by the
Microsoft KEK shall be work on all Secure Boot systems. BootMgr must verify the
signature against the KEK list before applying a signed policy. With Windows, the
default Secure Boot configuration policy is embedded in bootmgr.
The bootloader verifies the digital signature of the Windows kernel before loading
it. The Windows kernel, in turn, verifies every other component of the Windows
startup process, including the boot drivers, startup files, and the ELAM component.
This step is important and protects the rest of the boot process by verifying that all
Windows boot components have integrity and can be trusted.
Early Launch Antimalware (ELAM). ELAM tests all drivers before they load and
prevents unapproved drivers from loading.
Traditional antimalware apps don't start until after the boot drivers have been
loaded, which gives a rootkit that is disguised as a driver the opportunity to work.
ELAM is a Windows mechanism introduced in a previous version of Windows that
allows antimalware software to run early in the boot sequence. Thus, the
antimalware component is the first third-party component to run and control the
initialization of other boot drivers until the Windows operating system is
operational. When the system is started with a complete runtime environment
(network access, storage, and so on), then a full-featured antimalware is loaded.
ELAM can load a Microsoft or non-Microsoft antimalware driver before all non-
Microsoft boot drivers and applications, thus continuing the chain of trust
established by Secure Boot and Trusted Boot. Because the operating system hasn't
started yet, and because Windows needs to boot as quickly as possible, ELAM has
a simple task: Examine every boot driver and determine whether it is on the list of
trusted drivers. If it's not trusted, Windows won't load it.
7 Note
The ELAM signed driver is loaded before any other third-party drivers or
applications, which allows the antimalware software to detect and block any
attempts to tamper with the boot process by trying to load unsigned or untrusted
code.
The ELAM driver is a small driver with a small policy database that has a narrow
scope, focused on drivers that are loaded early at system launch. The policy
database is stored in a registry hive that is also measured to the TPM, to record the
operational parameters of the ELAM driver. An ELAM driver must be signed by
Microsoft and the associated certificate must contain the complementary EKU
(1.3.6.1.4.1.311.61.4.1).
When enabled and configured, Windows can start the Hyper-V virtualization-based
security services. HVCI helps protect the system core (kernel), privileged drivers,
and system defenses, like antimalware solutions, by preventing malware from
running early in the boot process, or after startup.
HVCI uses virtualization-based security to isolate Code Integrity, the only way
kernel memory can become executable is through a Code Integrity verification.
This dependency on verification means that kernel memory pages can never be
Writable and Executable (W+X) and executable code can't be directly modified.
7 Note
Device Guard devices that run Kernel Mode Code Integrity with virtualization-
based security must have compatible drivers. For additional information,
please read the Driver compatibility with Device Guard in Windows blog
post.
The Device Guard Code Integrity feature lets organizations control what code is
trusted to run into the Windows kernel and what applications are approved to run
in user mode. It's configurable by using a policy. Device Guard Code Integrity
policy is a binary file that Microsoft recommends you sign. The signing of the Code
Integrity policy aids in the protection against a malicious user with Administrator
privileges trying to modify or remove the current Code Integrity policy.
This attack-free state is accomplished by using Hyper-V and the new virtualization-
based security feature to create a protected container where trusted code and
secrets are isolated from the Windows kernel. This accomplishment means that
even if the Windows kernel is compromised, an attacker has no way to read and
extract the data required to initiate a PtH attack. Credential Guard prevents this
unauthorized access because the memory where secrets are stored is no longer
accessible from the regular OS, even in kernel mode - the hypervisor controls who
can access the memory.
Health attestation. The device's firmware logs the boot process, and Windows can
send it to a trusted server that can check and assess the device's health.
Windows takes measurements of the UEFI firmware and each of the Windows and
antimalware components are made as they load during the boot process.
Additionally, they're taken and measured sequentially, not all at once. When these
measurements are complete, their values are digitally signed and stored securely in
the TPM and can't be changed unless the system is reset.
For more information, see Secured Boot and Measured Boot: Hardening Early Boot
Components Against Malware.
During each subsequent boot, the same components are measured, which allows
comparison of the measurements against an expected baseline. For more security,
the values measured by the TPM can be signed and transmitted to a remote
server, which can then perform the comparison. This process, called remote device
health attestation, allows the server to verify health status of the Windows device.
Virtualization-based security
Virtualization-based security provides a new trust boundary for Windows and uses
Hyper-V hypervisor technology to enhance platform security. Virtualization-based
security provides a secure execution environment to run specific Windows trusted code
(trustlet) and to protect sensitive data.
7 Note
Credential Guard
In Windows, when Credential Guard is enabled, Local Security Authority Subsystem
Service (lsass.exe) runs a sensitive code in an Isolated user mode to help protect data
from malware that may be running in the normal user mode. This code execution helps
ensure that protected data isn't stolen and reused on remote machines, which mitigates
many PtH-style attacks.
Credential Guard helps protect credentials by encrypting them with either a per-boot or
persistent key:
The per-boot key is used for any in-memory credentials that don't require
persistence. An example of such a credential would be a ticket-granting ticket
(TGT) session key. This key is negotiated with a Key Distribution Center (KDC) every
time authentication occurs and is protected with a per-boot key.
The persistent key, or some derivative, is used to help protect items that are
stored and reloaded after a reboot. Such protection is intended for long-term
storage, and must be protected with a consistent key. Credential Guard is activated
by a registry key and then enabled by using a UEFI variable. This activation is done
to protect against remote modifications of the configuration. The use of a UEFI
variable implies that physical access is required to change the configuration. When
lsass.exe detects that credential isolation is enabled, it then spawns LsaIso.exe as
an isolated process, which ensures that it runs within isolated user mode. The
startup of LsaIso.exe is performed before initialization of a security support
provider, which ensures that the secure mode support routines are ready before
any authentication begins.
Device Guard
Device Guard is a feature of Windows Enterprise that allows organizations to lock down
a device to help protect it from running untrusted software. In this configuration, the
only applications allowed to run are those applications that are trusted by the
organization.
The trust decision to execute code is performed by using Hyper-V Code Integrity, which
runs in virtualization-based security, a Hyper-V protected container that runs alongside
regular Windows.
Hyper-V Code Integrity is a feature that validates the integrity of a driver or system file
each time it's loaded into memory. Code integrity detects whether an unsigned driver or
system file is being loaded into the kernel, or whether a system file has been modified
by malicious software that is being run by a user account with Administrator privileges.
On x64-based versions of Windows, kernel-mode drivers must be digitally signed.
7 Note
With Device Guard, organizations are now able to define their own Code Integrity policy
for use on x64 systems running Windows Enterprise. Organizations have the ability to
configure the policy that determines what is trusted to run. These include drivers and
system files, and traditional desktop applications and scripts. The system is then locked
down to only run applications that the organization trusts.
Device Guard is a built-in feature of Windows Enterprise that prevents the execution of
unwanted code and applications. Device Guard can be configured using two rule actions
- allow and deny:
At the time of this writing, and according to Microsoft's latest research, more than 90
percent of malware is unsigned completely. So implementing a basic Device Guard
policy can simply and effectively help block malware. In fact, Device Guard has the
potential to go further, and can also help block signed malware.
Device Guard needs to be planned and configured to be truly effective. It isn't just a
protection that is enabled or disabled. Device Guard is a combination of hardware
security features and software security features that, when configured together, can lock
down a computer to help ensure the most secure and resistant system possible.
There are three different parts that make up the Device Guard solution in Windows:
The first part is a base set of hardware security features introduced with the
previous version of Windows. TPM for hardware cryptographic operations and UEFI
with modern firmware, along with Secure Boot, allows you to control what the
device is running when the systems start.
After the hardware security feature, there's the code integrity engine. In Windows,
Code Integrity is now fully configurable and now resides in Isolated user mode, a
part of the memory that is protected by virtualization-based security.
The last part of Device Guard is manageability. Code Integrity configuration is
exposed through specific Group Policy Objects, PowerShell cmdlets, and MDM
configuration service providers (CSPs).
For more information on how to deploy Device Guard in an enterprise, see the Device
Guard deployment guide.
Device Guard is useful and applicable on fixed workloads systems like cash registers,
kiosk machines, Secure Admin Workstations (SAWs), or well managed desktops. Device
Guard is highly relevant on systems that have a well-defined software that are expected
to run and don't change too frequently. It could also help protect Information Workers
(IWs) beyond just SAWs, as long as what they need to run is known and the set of
applications isn't going to change on a daily basis.
SAWs are computers that are built to help significantly reduce the risk of compromise
from malware, phishing attacks, bogus websites, and PtH attacks, among other security
risks. Although SAWs can't be considered a "silver bullet" security solution to these
attacks, these types of clients are helpful as part of a layered, defense-in-depth
approach to security.
To protect high-value assets, SAWs are used to make secure connections to those assets.
Before you can benefit from the protection included in Device Guard, Code Integrity
policy must be created by using tools provided by Microsoft, but the policy can be
deployed with common management tools, like Group Policy. The Code Integrity policy
is a binary-encoded XML document that includes configuration settings for both the
User and Kernel-modes of Windows, along with restrictions on Windows script hosts.
Device Guard Code Integrity policy restricts what code can run on a device.
7 Note
Device Guard policy can be signed in Windows, which adds additional protection
against administrative users changing or removing this policy.
Signed Device Guard policy offers stronger protection against a malicious local
administrator trying to defeat Device Guard.
When the policy is signed, the GUID of the policy is stored in a UEFI pre-OS secure
variable that offers tampering protection. The only way to update the Device Guard
policy later is to provide a new version of the policy signed by the same signer or from a
signer specified as part of the Device Guard policy into the UpdateSigner section.
In organizations today, many LOB applications are unsigned. Code signing is frequently
viewed as a tough problem to solve for various reasons, like the lack of code signing
expertise. Even if code signing is a best practice, many internal applications aren't
signed.
Windows includes tools that allow IT pros to take applications that have been already
packaged and run them through a process to create more signatures that can be
distributed along with existing applications.
To combat these threats, patching is the single most effective control, with antimalware
software forming complementary layers of defense.
Most application software has no facility for updating itself, so even if the software
vendor publishes an update that fixes the vulnerability, the user may not know that the
update is available or how to obtain it, and therefore remains vulnerable to attack.
Organizations still need to manage devices and to patch vulnerabilities.
For Windows-based devices, Microsoft introduces a new public API that will allow MDM
software to access a remote attestation service called Windows Health Attestation
Service. A health attestation result, in addition with other elements, can be used to allow
or deny access to networks, apps, or services, based on whether devices prove to be
healthy.
For more information on device health attestation, see the Detect an unhealthy
Windows-based device section.
Windows edition and licensing requirements
The following table lists the Windows editions that support Device health attestation
service:
Device health attestation service license entitlements are granted by the following
licenses:
For more information about Windows licensing, see Windows licensing overview.
Hardware requirements
The following table details the hardware requirements for both virtualization-based
security services and the health attestation feature. For more information, see Minimum
hardware requirements.
Hardware Motivation
UEFI 2.3.1 or Required to support UEFI Secure Boot. UEFI Secure Boot ensures that the device
later firmware boots only authorized code. Additionally, Boot Integrity (Platform Secure Boot)
with Secure must be supported following the requirements in Hardware Compatibility
Boot enabled Specification for Systems for Windows under the subsection:
"System.Fundamentals.Firmware.CS.UEFISecureBoot.ConnectedStandby"
X64 processor Required to support virtualization-based security that uses Windows Hypervisor.
Hyper-V is supported only on x64 processor (and not on x86). Direct Memory
Access (DMA) protection can be enabled to provide extra memory protection
but requires processors to include DMA protection technologies.
IOMMU, such Support for the IOMMU in Windows enhances system resiliency against DMA
as Intel VT-d, attacks.
AMD-Vi
Hardware Motivation
Trusted Required to support health attestation and necessary for other key protections
Platform for virtualization-based security. TPM 2.0 is supported. Support for TPM 1.2 was
Module (TPM) added beginning in Windows 10, version 1607 (RS1)
This section presented information about several closely related controls in Windows .
The multi-layer defenses and in-depth approach help to eradicate low-level malware
during boot sequence. Virtualization-based security is a fundamental operating system
architecture change that adds a new security boundary. Device Guard and Credential
Guard respectively help to block untrusted code and protect corporate domain
credentials from theft and reuse. This section also briefly discussed the importance of
managing devices and patching vulnerabilities. All these technologies can be used to
harden and lock down devices while limiting the risk of attackers compromising them.
The biggest challenge with rootkits is that they can be undetectable to the client.
Because they start before antimalware, and they have system-level privileges, they can
completely disguise themselves while continuing to access system resources. As a result,
traditional computers infected with rootkits appear to be healthy, even with antimalware
running.
As previously discussed, the health attestation feature of Windows uses the TPM
hardware component to securely record a measurement of every boot-related
component, including firmware, Windows kernel, and even early boot drivers. Because
health attestation uses the hardware-based security capabilities of TPM, the log of all
boot measured components remains out of the reach of any malware.
After the devices attest a trusted boot state, they can prove that they aren't running
low-level malware that could spoof later compliance checks. TPM-based health
attestation provides a reliable anchor of trust for assets that contain high-value data.
The health of the device isn't binary and depends on the organization's security
implementation. The Health Attestation Service provides information back to the MDM
on which security features are enabled during the boot of the device by using
trustworthy hardware TPM.
But health attestation only provides information, which is why an MDM solution is
needed to take and enforce a decision.
This approach is the most secure one available for Windows-based devices to detect
when security defenses are down. During the boot process, the TCG log and PCRs'
values are sent to a remote Microsoft cloud service. Logs are then checked by the
Health Attestation Service to determine what changes have occurred on the device.
A relying party like an MDM can inspect the report generated by the remote health
attestation service.
7 Note
To use the health attestation feature of Windows, the device must be equipped
with a discrete or firmware TPM. There is no restriction on any particular edition of
Windows.
Windows supports health attestation scenarios by allowing applications access to the
underlying health attestation configuration service provider (CSP) so that applications
can request a health attestation token. The measurement of the boot sequence can be
checked at any time locally by an antimalware or an MDM agent.
In the case where malicious code is running on the device, the use of a remote server is
required. If a rootkit is present on the device, the antimalware is no longer reliable, and
its behavior can be hijacked by a malicious code running early in the startup sequence.
This reason is what makes it important to use Secure Boot and Device Guard, to control
which code is loaded during the boot sequence.
The antimalware software can search to determine whether the boot sequence contains
any signs of malware, such as a rootkit. It can also send the TCG log and the PCRs to a
remote health attestation server to provide a separation between the measurement
component and the verification component.
When you start a device equipped with TPM, a measurement of different components is
performed. These components include firmware, UEFI drivers, CPU microcode, and also
all the Windows drivers whose type is Boot Start. The raw measurements are stored in
the TPM PCR registers while the details of all events (executable path, authority
certification, and so on) are available in the TCG log.
7 Note
By default, the last 100 system boot logs and all associated resume logs are
archived in the %SystemRoot%\logs\measuredboot folder. The number of retained
logs may be set with the registry REG_DWORD value PlatformLogRetention under
the HKLM\SYSTEM\CurrentControlSet\Services\TPM key. A value of 0 will turn off
log archival and a value of 0xffffffff will keep all logs.
The following process describes how health boot measurements are sent to the health
attestation service:
1. The client (a Windows-based device with TPM) initiates the request with the
remote device health attestation service. Because the health attestation server is
expected to be a Microsoft cloud service, the URI is already pre-provisioned in the
client.
2. The client then sends the TCG log, the AIK signed data (PCR values, boot counter)
and the AIK certificate information.
4. The client stores the health encrypted blob in its local store. The device health
token contains device health status, a device ID (the Windows AIK), and the boot
counter.
Device health attestation components
The device health attestation solution involves different components that are TPM,
Health Attestation CSP, and the Windows Health Attestation Service. Those components
are described in this section.
In a simplified manner, the TPM is a passive component with limited resources. It can
calculate random numbers, RSA keys, decrypt short data, store hashes taken when
booting the device.
The endorsement key public key is used for sending securely sensitive parameters, such
as when taking possession of the TPM that contains the defining hash of the owner
password. The EK private key is used when creating secondary keys like AIKs.
The endorsement key acts as an identity card for the TPM. For more information, see
Understand the TPM endorsement key.
7 Note
Secure Boot protects the platform until the Windows kernel is loaded. Then
protections like Trusted Boot, Hyper-V Code Integrity and ELAM take over. A device
that uses Intel TPM or Qualcomm TPM gets a signed certificate online from the
manufacturer that has created the chip and then stores the signed certificate in
TPM storage. For the operation to succeed, if you are filtering Internet access from
your client devices, you must authorize the following URLs:
7 Note
Before the device can report its health using the TPM attestation functions, an AIK
certificate must be provisioned in conjunction with a third-party service like the
Microsoft Cloud CA service. After it is provisioned, the AIK private key can be used
to report platform configuration. Windows creates a signature over the platform
log state (and a monotonic counter value) at each boot by using the AIK.
The AIK is an asymmetric (public/private) key pair that is used as a substitute for the EK
as an identity for the TPM for privacy purposes. The private portion of an AIK is never
revealed or used outside the TPM and can only be used inside the TPM for a limited set
of operations. Furthermore, it can only be used for signing, and only for limited, TPM-
defined operations.
Windows creates AIKs protected by the TPM, if available, that are 2048-bit RSA signing
keys. Microsoft is hosting a cloud service called Microsoft Cloud CA to establish
cryptographically that it's communicating with a real TPM and that the TPM possesses
the presented AIK. After the Microsoft Cloud CA service has established these facts, it
will issue an AIK certificate to the Windows-based device.
Many existing devices that will upgrade to Windows 10 won't have a TPM, or the TPM
won't contain an endorsement certificate. To accommodate those devices, Windows 10
allows the issuance of AIK certificates without the presence of an endorsement
certificate. Such AIK certificates aren't issued by Microsoft Cloud CA. These certificates
aren't as trustworthy as an endorsement certificate that is burned into the device during
manufacturing, but it will provide compatibility for advanced scenarios like Windows
Hello for Business without TPM.
In the issued AIK certificate, a special OID is added to attest that endorsement certificate
was used during the attestation process. This information can be used by a relying party
to decide whether to reject devices that are attested using AIK certificates without an
endorsement certificate or accept them. Another scenario can be to not allow access to
high-value assets from devices that are attested by an AIK certificate that isn't backed by
an endorsement certificate.
Storage root key
The storage root key (SRK) is also an asymmetric key pair (RSA with a minimum of 2048-
bits length). The SRK has a major role and is used to protect TPM keys, so that these
keys can't be used without the TPM. The SRK key is created when the ownership of the
TPM is taken.
The measurement of the boot sequence is based on the PCR and TCG log. To establish a
static root of trust, when the device is starting, the device must be able to measure the
firmware code before execution. In this case, the Core Root of Trust for Measurement
(CRTM) is executed from the boot, calculates the hash of the firmware, then stores it by
expanding the register PCR[0] and transfers execution to the firmware.
PCRs are set to zero when the platform is booted, and it's the job of the firmware that
boots the platform to measure components in the boot chain and to record the
measurements in the PCRs. Typically, boot components take the hash of the next
component that is to be run and record the measurements in the PCRs. The initial
component that starts the measurement chain is implicitly trusted. This component is
the CRTM. Platform manufacturers are required to have a secure update process for the
CRTM or not permit updates to it. The PCRs record a cumulative hash of the
components that have been measured.
The value of a PCR on its own is hard to interpret (it's just a hash value), but platforms
typically keep a log with details of what has been measured, and the PCRs merely
ensure that the log hasn't been tampered with. The logs are referred as a TCG log. Each
time a register PCR is extended, an entry is added to the TCG log. Thus, throughout the
boot process, a trace of the executable code and configuration data is created in the
TCG log.
TPM provisioning
For the TPM of a Windows-based device to be usable, it must first be provisioned. The
process of provisioning differs based on TPM versions, but, when successful, it results in
the TPM being usable and the owner authorization data (ownerAuth) for the TPM being
stored locally on the registry.
When the TPM is provisioned, Windows will first attempt to determine the EK and locally
stored ownerAuth values by looking in the registry at the following location:
HKLM\SYSTEM\CurrentControlSet\Services\TPM\WMI\Endorsement
If the TPM ownership isn't known but the EK exists, the client library will provision the
TPM and will store the resulting ownerAuth value into the registry if the policy allows it
will store the SRK public portion at the following location:
HKLM\SYSTEM\CurrentControlSet\Services\TPM\WMI\Admin\SRKPub
As part of the provisioning process, Windows will create an AIK with the TPM. When this
operation is performed, the resulting AIK public portion is stored in the registry at the
following location:
HKLM\SYSTEM\CurrentControlSet\Services\TPM\WMI\WindowsAIKPub
7 Note
For provisioning AIK certificates and filtering Internet access, you must authorize
the following wildcard URL: https://\*.microsoftaik.azure.net
The following list is that of the functions performed by the Windows Health Attestation
CSP:
During a health attestation session, the Health Attestation CSP forwards the TCG logs
and PCRs' values that are measured during the boot, by using a secure communication
channel to the Health Attestation Service.
When an MDM server validates that a device has attested to the Health Attestation
Service, it will be given a set of statements and claims about how that device booted,
with the assurance that the device didn't reboot between the time that it attested its
health and the time that the MDM server validated it.
7 Note
Both device and MDM servers must have access to has.spserv.microsoft.com using
the TCP protocol on port 443 (HTTPS).
Checking that a TPM attestation and the associated log are valid takes several steps:
1. First, the server must check that the reports are signed by trustworthy AIKs. This
verification might be done by checking that the public part of the AIK is listed in a
database of assets, or perhaps that a certificate has been checked.
2. After the key has been checked, the signed attestation (a quote structure) should
be checked to see whether it's a valid signature over PCR values.
3. Next the logs should be checked to ensure that they match the PCR values
reported.
4. Finally, the logs themselves should be examined by an MDM solution to see
whether they represent known or valid security configurations. For example, a
simple check might be to see whether the measured early OS components are
known to be good, that the ELAM driver is as expected, and that the ELAM driver
policy file is up to date. If all of these checks succeed, an attestation statement can
be issued that later can be used to determine whether or not the client should be
granted access to a resource.
The Health Attestation Service provides the following information to an MDM solution
about the health of the device:
Secure Boot enablement
Boot and kernel debug enablement
BitLocker enablement
VSM enabled
Signed or unsigned Device Guard Code Integrity policy measurement
ELAM loaded
Safe Mode boot, DEP enablement, test signing enablement
Device TPM has been provisioned with a trusted endorsement certificate
The following list shows some key items that can be reported back to MDM for
Windows-based devices:
PCR0 measurement
Secure Boot Enabled
Secure Boot db matches Expected
Secure Boot dbx is up to date
Secure Boot policy GUID matches Expected
BitLocker enabled
Virtualization-based security enabled
ELAM was loaded
Code Integrity version is up to date
Code Integrity policy hash matches expected
A solution that uses MDM and the Health Attestation Service consists of three main
parts:
1. A device with health attestation enabled. This enablement will be done as a part of
enrollment with an MDM provider (health attestation will be disabled by default).
2. After this service is enabled, and every boot thereafter, the device will send health
measurements to the Health Attestation Service hosted by Microsoft, and it will
receive a health attestation blob in return.
3. At any point after this cycle, an MDM server can request the health attestation
blob from the device and ask Health Attestation Service to decrypt the content and
validate that it's been attested.
Interaction between a Windows-based device, the Health Attestation Service, and MDM
can be performed as follows:
1. The client initiates a session with the MDM server. The URI for the MDM server
would be part of the client app that initiates the request. The MDM server at this
time could request the health attestation data by using the appropriate CSP URI.
3. The client then sends the AIK quoted nonce + the boot counter and the health
blob information. This health blob is encrypted with a Health Attestation Service
public key that only the Health Attestation Service can decrypt.
The MDM server (relying party) never performs the quote or boot counter
validation itself. It gets the quoted data and the health blob (which is encrypted)
and sends the data to the Health Attestation Service for validation. This way, the
AIK is never visible to the MDM, which thereby addresses privacy concerns.
Setting the requirements for device compliance is the first step to ensure that registered
devices that don't meet health and compliance requirements are detected, tracked, and
have actions enforced by the MDM solution.
Devices that attempt to connect to resources must have their health evaluated so that
unhealthy and noncompliant devices can be detected and reported. To be fully efficient,
an end-to-end security solution must impose a consequence for unhealthy devices like
refusing access to high-value assets. That consequence for an unhealthy device is the
purpose of conditional access control, which is detailed in the next section.
The remote device health attestation process uses measured boot data to verify the
health status of the device. The health of the device is then available for an MDM
solution like Intune.
7 Note
For the latest information on Intune and Windows features support, see What's
new in Microsoft Intune.
The figure below shows how the Health Attestation Service is expected to work with
Microsoft's cloud-based Intune MDM service.
An MDM solution can then use health state statements and take them to the next level
by coupling with client policies that will enable conditional access to be granted based
on the device's ability to prove that it's malware free, its antimalware system is
functional and up to date, the firewall is running, and the devices patch state is
compliant.
Finally, resources can be protected by denying access to endpoints that are unable to
prove they're healthy. This feature is much needed for BYOD devices that need to access
organizational resources.
7 Note
MDM servers do not need to create or download a client to manage Windows. For
more information, see Mobile device management.
The third-party MDM server will have the same consistent first-party user experience for
enrollment, which also provides simplicity for Windows users.
For more information on how to manage Windows security and system settings with an
MDM solution, see Custom URI settings for Windows devices.
If the device isn't registered, the user will get a message with instructions on how to
register (also known as enrolling). If the device isn't compliant, the user will get a
different message that redirects them to the MDM web portal where they can get more
information on the compliance problem and how to resolve it.
Azure AD authenticates the user and the device, MDM manages the compliance and
conditional access policies, and the Health Attestation Service reports about the health
of the device in an attested way.
Office 365 conditional access control
Azure AD enforces conditional access policies to secure access to Office 365 services. A
tenant admin can create a conditional access policy that blocks a user on a non-
compliant device from accessing an Office 365 service. The user must conform to the
company's device policies before access can be granted to the service. Alternately, the
admin can also create a policy that requires users to just enroll their devices to gain
access to an Office 365 service. Policies may be applied to all users of an organization, or
limited to a few target groups and enhanced over time to include more target groups.
When a user requests access to an Office 365 service from a supported device platform,
Azure AD authenticates the user and device from which the user launches the request;
and grants access to the service only when the user conforms to the policy set for the
service. Users that don't have their device enrolled are given remediation instructions on
how to enroll and become compliant to access corporate Office 365 services.
When a user enrolls, the device is registered with Azure AD, and enrolled with a
compatible MDM solution like Intune.
7 Note
The user will be denied access to services when sign-in credentials are changed, a device
is lost/stolen, or the compliance policy isn't met at the time of request for renewal.
Depending on the type of email application that employees use to access Exchange
online, the path to establish secured access to email can be slightly different. However,
the key components: Azure AD, Office 365/Exchange Online, and Intune, are the same.
The IT experience and end-user experience also are similar.
Clients that attempt to access Office 365 will be evaluated for the following properties:
At the present time, conditional access policies are selectively enforced on users on
iOS and Android devices. For more information, see the Azure AD, Microsoft
Intune and Windows - Using the cloud to modernize enterprise mobility! blog
post.
IT pros can configure conditional access control policies for cloud SaaS applications
secured by Azure AD and even on-premises applications. Access rules in Azure AD use
the conditional access engine to check device health and compliance state reported by a
compatible MDM solution like Intune in order to determine whether to allow access.
For more information about conditional access, see Azure Conditional Access Preview
for SaaS Apps.
7 Note
For on-premises applications there are two options to enable conditional access control
based on a device's compliance state:
For on-premises applications that are published through the Azure AD Application
Proxy, you can configure conditional access control policies as you would for cloud
applications. For more information, see Using Azure AD Application Proxy to
publish on-premises apps for remote users.
Additionally, Azure AD Connect will sync device compliance information from
Azure AD to on-premises AD. ADFS on Windows Server 2016 will support
conditional access control based on a device's compliance state. IT pros will
configure conditional access control policies in ADFS that use the device's
compliance state reported by a compatible MDM solution to secure on-premises
applications.
1. User has already enrolled with MDM through Workplace Access/Azure AD join,
which registers device with Azure AD.
2. When the device boots or resumes from hibernate, a task "Tpm-HASCertRetr" is
triggered to request in background a health attestation blob. Device sends TPM
boot measurements to the Health Attestation Service.
3. Health Attestation Service validates device state and issues an encrypted blob to
the device based on the health state with details on failed checks (if any).
4. User logs on and the MDM agent contacts the Intune/MDM server.
5. MDM server pushes down new policies if available and queries health blob state
and other inventory state.
6. Device sends a health attestation blob previously acquired and also the value of
the other state inventory requested by the Intune/MDM server.
7. Intune/MDM server sends the health attestation blob to Health Attestation Service
to be validated.
8. Health Attestation Service validates that the device that sent the health attestation
blob is healthy, and returns this result to Intune/MDM server.
9. Intune/MDM server evaluates compliance based on the compliance and the
queried inventory/health attestation state from device.
10. Intune/MDM server updates compliance state against device object in Azure AD.
11. User opens app, attempts to access a corporate managed asset.
12. Access gated by compliance claim in Azure AD.
13. If the device is compliant and the user is authorized, an access token is generated.
14. User can access the corporate managed asset.
For more information about Azure AD join, see Azure AD & Windows: Better Together
for Work or School , a white paper.
Conditional access control is a topic that many organizations and IT pros may not know
and they should. The different attributes that describe a user, a device, compliance, and
context of access are powerful when used with a conditional access engine. Conditional
access control is an essential step that helps organizations secure their environment.
If determined adversaries with malicious intent gain physical access to the device,
they could eventually break through its security layers and control it.
Devices that attempt to connect to high-value assets must have their health
evaluated so that unhealthy and noncompliant devices can be detected, reported,
and eventually blocked.
Device Guard is a real advance in security and an effective way to help protect
against malware. The Device Guard feature in Windows blocks untrusted apps
(apps not authorized by your organization).
Signed Device Guard policy helps protect against a user with administrator
privileges trying to defeat the current policy. When a policy is signed, the only way
to modify Device Guard later is to provide a new version of the policy signed by
the same signer or from a signer specify as part of the Device Guard policy.
Deploy Device Guard policy to targeted computers and devices in Audit mode.
Monitor the Code Integrity event log that indicates a program or a driver would
have been blocked if Device Guard was configured in Enforcement mode. Adjust
Device Guard rules until a high level of confidence has been reached. After the
testing phase has been completed, Device Guard policy can be switched to
Enforcement mode.
Because the corporate network can contain malware, you should start to configure
a reference environment that is isolated from your main corporate network. After
that, you can create a code integrity policy that includes the trusted applications
you want to run on your protected devices.
After Windows is installed, lock down firmware boot options access. This lockdown
prevents a user with physical access from modifying UEFI settings, disabling Secure
Boot, or booting other operating systems. Also, in order to protect against an
administrator trying to disable Device Guard, add a rule in the current Device
Guard policy that will deny and block execution of the
C:\Windows\System32\SecConfig.efi tool.
Health attestation is a key feature of Windows that includes client and cloud
components to control access to high-value assets based on a user and their device's
identity and compliance with corporate governance policy. Organizations can choose to
detect and report unhealthy devices, or to configure health enforcement rules based on
their needs. Health attestation provides an end-to-end security model and integration
points, which vendors and software developers can use to build and integrate a
customized solution.
Related topics
Protect derived domain credentials with Credential Guard
Device Guard deployment guide
Trusted Platform Module technology overview
Cryptography and Certificate
Management
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Cryptography
Cryptography uses code to convert data so that only a specific recipient can read it by
using a key. Cryptography enforces privacy to prevent anyone except the intended
recipient from reading data, integrity to ensure data is free of tampering, and
authentication that verifies identity to ensure that communication is secure. The
cryptography stack in Windows extends from the chip to the cloud enabling Windows,
applications, and services protect system and user secrets.
These modules are natively exposed on Windows through the Crypto API (CAPI) and the
Cryptography Next Generation API (CNG) which is powered by Microsoft's open-source
cryptographic library SymCrypt. Application developers can use these APIs to perform
low-level cryptographic operations (BCrypt), key storage operations (NCrypt), protect
static data (DPAPI), and securely share secrets (DPAPI-NG).
Certificate management
Windows offers several APIs to operate and manage certificates. Certificates are crucial
to public key infrastructure (PKI) as they provide the means for safeguarding and
authenticating information. Certificates are electronic documents used to claim
ownership of a public key. Public keys are used to prove server and client identity,
validate code integrity, and used in secure emails. Windows offers users the ability to
autoenroll and renew certificates in Active Directory with Group Policy to reduce the risk
of potential outages due to certificate expiration or misconfiguration. Windows validates
certificates through an automatic update mechanism that downloads certificate trust
lists (CTL) daily. Trusted root certificates are used by applications as a reference for
trustworthy PKI hierarchies and digital certificates. The list of trusted and untrusted
certificates are stored in the CTL and can be updated by administrators. In the case of
certificate revocation, a certificate is added as an untrusted certificate in the CTL causing
it to be revoked globally across user devices immediately.
Applies to
Windows 10
Windows 11
This reference topic describes the common scenarios, architecture, and processes for
security settings.
To manage security configurations for multiple devices, you can use one of the following
options:
For more info about managing security configurations, see Administer security policy
settings.
The Security Settings extension of the Local Group Policy Editor includes the following
types of security policies:
Account Policies. These policies are defined on devices; they affect how user
accounts can interact with the computer or domain. Account policies include the
following types of policies:
Password Policy. These policies determine settings for passwords, such as
enforcement and lifetimes. Password policies are used for domain accounts.
Account Lockout Policy. These policies determine the conditions and length of
time that an account will be locked out of the system. Account lockout policies
are used for domain or local user accounts.
Kerberos Policy. These policies are used for domain user accounts; they
determine Kerberos-related settings, such as ticket lifetimes and enforcement.
Local Policies. These policies apply to a computer and include the following types
of policy settings:
Audit Policy. Specify security settings that control the logging of security events
into the Security log on the computer, and specifies what types of security
events to log (success, failure, or both).
7 Note
User Rights Assignment. Specify the users or groups that have sign-in rights or
privileges on a device
Windows Firewall with Advanced Security. Specify settings to protect the device
on your network by using a stateful firewall that allows you to determine which
network traffic is permitted to pass between your device and the network.
Network List Manager Policies. Specify settings that you can use to configure
different aspects of how networks are listed and displayed on one device or on
many devices.
Public Key Policies. Specify settings to control Encrypting File System, Data
Protection, and BitLocker Drive Encryption in addition to certain certificate paths
and services settings.
Software Restriction Policies. Specify settings to identify software and to control
its ability to run on your local device, organizational unit, domain, or site.
Application Control Policies. Specify settings to control which users or groups can
run particular applications in your organization based on unique identities of files.
Advanced Audit Policy Configuration. Specify settings that control the logging of
security events into the security log on the device. The settings under Advanced
Audit Policy Configuration provide finer control over which activities to monitor as
opposed to the Audit Policy settings under Local Policies.
Windows Security policy settings and auditing license entitlements are granted by the
following licenses:
For more information about Windows licensing, see Windows licensing overview.
You can define and apply security settings policies to users, groups, and network servers
and clients through Group Policy and Active Directory Domain Services (AD DS). A group
of servers with the same functionality can be created (for example, a Microsoft Web (IIS)
server), and then Group Policy Objects can be used to apply common security settings
to the group. If more servers are added to this group later, many of the common
security settings are automatically applied, reducing deployment and administrative
labor.
As part of your security strategy, you can create GPOs with security settings policies
configured specifically for the various roles in your organization, such as domain
controllers, file servers, member servers, clients, and so on.
You can create an organizational unit (OU) structure that groups devices according to
their roles. Using OUs is the best method for separating specific security requirements
for the different roles in your network. This approach also allows you to apply
customized security templates to each class of server or computer. After creating the
security templates, you create a new GPO for each of the OUs, and then import the
security template (.inf file) into the new GPO.
Importing a security template to a GPO ensures that any accounts to which the GPO is
applied automatically receive the template's security settings when the Group Policy
settings are refreshed. On a workstation or server, the security settings are refreshed at
regular intervals (with a random offset of at most 30 minutes), and, on a domain
controller, this process occurs every few minutes if changes have occurred in any of the
GPO settings that apply. The settings are also refreshed every 16 hours, whether or not
any changes have occurred.
7 Note
These refresh settings vary between versions of the operating system and can be
configured.
Group Policy
A hierarchical naming system used for locating domain names on the Internet and
on private TCP/IP networks. DNS provides a service for mapping DNS domain
names to IP addresses, and IP addresses to domain names. This service allows
users, computers, and applications to query DNS to specify remote systems by fully
qualified domain names rather than by IP addresses.
Winlogon
A part of the Windows operating system that provides interactive logon support.
Winlogon is designed around an interactive logon model that consists of three
components: the Winlogon executable, a credential provider, and any number of
network providers.
Setup
Security configuration interacts with the operating system setup process during a
clean installation or upgrade from earlier versions of Windows Server.
A Windows service used during the sign-in process. SAM maintains user account
information, including groups to which a user belongs.
Local Security Authority (LSA)
A protected subsystem that authenticates and signs in users to the local system.
LSA also maintains information about all aspects of local security on a system,
collectively known as the Local Security Policy of the system.
An enhanced Group Policy infrastructure that uses WMI in order to make it easier
to plan and debug policy settings. RSoP provides public methods that expose what
an extension to Group Policy would do in a what-if situation, and what the
extension has done in an actual situation. These public methods allow
administrators to easily determine the combination of policy settings that apply to,
or will apply to, a user or device.
Registry
File system
Security is set when an administrator converts a file system from FAT to NTFS.
The user interface for the Security Settings tool is an extension of the Local Group
Policy Editor MMC snap-in.
Security settings policies and Group Policy
The Security Settings extension of the Local Group Policy Editor is part of the Security
Configuration Manager tool set. The following components are associated with Security
Settings: a configuration engine; an analysis engine; a template and database interface
layer; setup integration logic; and the secedit.exe command-line tool. The security
configuration engine is responsible for handling security configuration editor-related
security requests for the system on which it runs. The analysis engine analyzes system
security for a given configuration and saves the result. The template and database
interface layer handles reading and writing requests from and to the template or
database (for internal storage). The Security Settings extension of the Local Group Policy
Editor handles Group Policy from a domain-based or local device. The security
configuration logic integrates with setup and manages system security for a clean
installation or upgrade to a more recent Windows operating system. Security
information is stored in templates (.inf files) or in the Secedit.sdb database.
Scesrv.dll
Scecli.dll
Provides the client-side interfaces to the security configuration engine and
provides data to Resultant Set of Policy (RSoP).
Wsecedit.dll
The Security Settings extension of Local Group Policy Editor. scecli.dll is loaded into
wsecedit.dll to support the Security Settings user interface.
Gpedit.dll
The security settings configuration and analysis tools include a security configuration
engine, which provides local computer (non-domain member) and Group Policy−based
configuration and analysis of security settings policies. The security configuration engine
also supports the creation of security policy files. The primary features of the security
configuration engine are scecli.dll and scesrv.dll.
The following list describes these primary features of the security configuration engine
and other Security Settings−related features.
scesrv.dll
This .dll file is hosted in services.exe and runs under local system context. scesrv.dll
provides core Security Configuration Manager functionality, such as import,
configure, analyze, and policy propagation.
Scesrv.dll exposes APIs such as import, export, configure, and analyze. It checks
that the request is made over LRPC (Windows XP) and fails the call if it isn't.
Scecli.dll
Scesrv.dll uses scecli.dll to download applicable Group Policy files from SYSVOL in
order to apply Group Policy security settings to the local device.
Scesrv.dll policy filter uses scecli.dll to update Default Domain Controller Policy
GPO when changes are made to SAM and LSA.
Wsecedit.dll
The Security Settings extension of the Group Policy Object Editor snap-in. You use
this tool to configure security settings in a Group Policy Object for a site, domain,
or organizational unit. You can also use Security Settings to import security
templates to a GPO.
Secedit.sdb
User databases
A user database is any database other than the system database created by
administrators for the purposes of configuration or analysis of security.
.Inf Templates
These templates are text files that contain declarative security settings. They're
loaded into a database before configuration or analysis. Group Policy security
policies are stored in .inf files on the SYSVOL folder of domain controllers, where
they're downloaded (by using file copy) and merged into the system database
during policy propagation.
1. The network starts. Remote Procedure Call System Service (RPCSS) and Multiple
Universal Naming Convention Provider (MUP) start.
2. An ordered list of Group Policy Objects is obtained for the device. The list might
depend on these factors:
3. Computer policy is applied. These settings are the ones under Computer
Configuration from the gathered list. This process is a synchronous one by default
and occurs in the following order: local, site, domain, organizational unit, child
organizational unit, and so on. No user interface appears while computer policies
are processed.
4. Startup scripts run. These scripts are hidden and synchronous by default; each
script must complete or time out before the next one starts. The default time-out
is 600 seconds. You can use several policy settings to modify this behavior.
6. After the user is validated, the user profile loads; it's governed by the policy
settings that are in effect.
7. An ordered list of Group Policy Objects is obtained for the user. The list might
depend on these factors:
Whether the user is part of a domain and, therefore, subject to Group Policy
through Active Directory.
Whether loopback policy processing is enabled, and if so, the state (Merge or
Replace) of the loopback policy setting.
The location of the user in Active Directory.
Whether the list of Group Policy Objects has changed. If the list of Group
Policy Objects hasn't changed, no processing is done.
8. User policy is applied. These settings are the ones under User Configuration from
the gathered list. These settings are synchronous by default and in the following
order: local, site, domain, organizational unit, child organizational unit, and so on.
No user interface appears while user policies are processed.
9. Logon scripts run. Group Policy−based logon scripts are hidden and asynchronous
by default. The user object script runs last.
10. The operating system user interface that is prescribed by Group Policy appears.
The Group Policy container is an Active Directory container that contains GPO
properties, such as version information, GPO status, plus a list of other component
settings.
The Group Policy template is a file system folder that includes policy data specified
by .admx files, security settings, script files, and information about applications that
are available for installation. The Group Policy template is located in the SYSVOL
folder in the <domain>\Policies subfolder.
Each device running a Windows operating system beginning with Windows XP has
exactly one Group Policy Object that is stored locally.
2. Site.
Any Group Policy Objects that have been linked to the site are processed next.
Processing is synchronous and in an order that you specify.
3. Domain.
4. Organizational units.
Group Policy Objects that are linked to the organizational unit that is highest in the
Active Directory hierarchy are processed first, then Group Policy Objects that are
linked to its child organizational unit, and so on. Finally, the Group Policy Objects
that are linked to the organizational unit that contains the user or device are
processed.
At the level of each organizational unit in the Active Directory hierarchy, one, many, or
no Group Policy Objects can be linked. If several Group Policy Objects are linked to an
organizational unit, their processing is synchronous and in an order that you specify.
This order means that the local Group Policy Object is processed first, and Group Policy
Objects that are linked to the organizational unit of which the computer or user is a
direct member are processed last, which overwrites the earlier Group Policy Objects.
This order is the default processing order and administrators can specify exceptions to
this order. A Group Policy Object that is linked to a site, domain, or organizational unit
(not a local Group Policy Object) can be set to Enforced with respect to that site,
domain, or organizational unit, so that none of its policy settings can be overridden. At
any site, domain, or organizational unit, you can mark Group Policy inheritance
selectively as Block Inheritance. Group Policy Object links that are set to Enforced are
always applied, however, and they can't be blocked. For more information, see Group
Policy Basics – Part 2: Understanding Which GPOs to Apply.
1. During Group Policy processing, the Group Policy engine determines which
security settings policies to apply.
2. If security settings policies exist in a GPO, Group Policy invokes the Security
Settings client-side extension.
3. The Security Settings extension downloads the policy from the appropriate
location such as a specific domain controller.
4. The Security Settings extension merges all security settings policies according to
precedence rules. The processing is according to the Group Policy processing
order of local, site, domain, and organizational unit (OU), as described earlier in the
"Group Policy processing order" section. If multiple GPOs are in effect for a given
device and there are no conflicting policies, then the policies are cumulative and
are merged.
This example uses the Active Directory structure shown in the following figure. A
given computer is a member of OU2, to which the GroupMembershipPolGPO GPO
is linked. This computer is also subject to the UserRightsPolGPO GPO, which is
linked to OU1, higher in the hierarchy. In this case, no conflicting policies exist so
the device receives all of the policies contained in both the UserRightsPolGPO and
the GroupMembershipPolGPO GPOs.
5. The resultant security policies are stored in secedit.sdb, the security settings
database. The security engine gets the security template files and imports them to
secedit.sdb.
6. The security settings policies are applied to devices. The following figure illustrates
the security settings policy processing.
Another mechanism exists that allows security policy changes made by administrators
by using net accounts to be merged into the Default Domain Policy GPO. User rights
changes that are made by using Local Security Authority (LSA) APIs are filtered into the
Default Domain Controllers Policy GPO.
All settings applied through local policy or through a Group Policy Object are stored in a
local database on your computer. Whenever a security setting is modified, the computer
saves the security setting value to the local database, which retains a history of all the
settings that have been applied to the computer. If a policy first defines a security
setting and then no longer defines that setting, then the setting takes on the previous
value in the database. If a previous value doesn't exist in the database, then the setting
doesn't revert to anything and remains defined as is. This behavior is sometimes
referred to as "tattooing".
Registry and file security settings will maintain the values applied through Group Policy
until that setting is set to other values.
7 Note
Do not use security policy filtering on a domain controller as this would prevent
security policy from applying to it.
Data for a single GPO is stored in multiple locations and in various formats; some data is
contained in Active Directory and other data is stored on the SYSVOL share on the
domain controllers. Certain policy data might be valid in one domain but might be
invalid in the domain to which the GPO is being copied. For example, Security Identifiers
(SIDs) stored in security policy settings are often domain-specific. So copying GPOs isn't
as simple as taking a folder and copying it from one device to another.
The following security policies can contain security principals and might require some
more work to successfully move them from one domain to another.
In this section
Topic Description
Administer This article discusses different methods to administer security policy settings on
security policy a local device or throughout a small- or medium-sized organization.
settings
Configure Describes steps to configure a security policy setting on the local device, on a
security policy domain-joined device, and on a domain controller.
settings
Security policy This reference of security settings provides information about how to
settings implement and manage security policies, including setting options and security
reference considerations.
Security auditing
Article • 12/09/2022
Topics in this section are for IT professionals and describes the security auditing features
in Windows and how your organization can benefit from using these technologies to
enhance the security and manageability of your network.
Security auditing is one of the most powerful tools that you can use to maintain the
integrity of your system. As part of your overall security strategy, you should determine
the level of auditing that is appropriate for your environment. Auditing should identify
attacks (successful or not) that pose a threat to your network, and attacks against
resources that you've determined to be valuable in your risk assessment.
In this section
Topic Description
Basic security Before you implement auditing, you must decide on an auditing policy. A basic
audit policies audit policy specifies categories of security-related events that you want to audit.
When this version of Windows is first installed, all auditing categories are
disabled. By enabling various auditing event categories, you can implement an
auditing policy that suits the security needs of your organization.
Advanced Advanced security audit policy settings are found in Security Settings\Advanced
security audit Audit Policy Configuration\System Audit Policies and appear to overlap with
policies basic security audit policies, but they're recorded and applied differently.
Configure kiosks and digital signs on
Windows desktop editions
Article • 05/11/2023
2 Warning
Applies to
Windows 10
Windows 11
Some desktop devices in an enterprise serve a special purpose. For example, a PC in the
lobby that customers use to see your product catalog. Or, a PC displaying visual content
as a digital sign. Windows client offers two different locked-down experiences for public
or specialized use:
A single-app kiosk: Runs a single Universal Windows Platform (UWP) app in full
screen above the lock screen. People using the kiosk can see only that app. When
the kiosk account (a local standard user account) signs in, the kiosk app will launch
automatically, and you can configure the kiosk account to sign in automatically as
well. If the kiosk app is closed, it will automatically restart.
A single-app kiosk is ideal for public use. Using Shell Launcher, you can configure a
kiosk device that runs a Windows desktop application as the user interface. The
application that you specify replaces the default shell (explorer.exe) that usually
runs when a user logs on. This type of single-app kiosk doesn't run above the lock
screen.
A multi-app kiosk: Runs one or more apps from the desktop. People using the
kiosk see a customized Start that shows only the tiles for the apps that are allowed.
With this approach, you can configure a locked-down experience for different
account types.
7 Note
A multi-app kiosk is appropriate for devices that are shared by multiple people.
When you configure a multi-app kiosk, specific policies are enforced that will affect
all non-administrator users on the device.
Kiosk configurations are based on Assigned Access, a feature in Windows client that
allows an administrator to manage the user's experience by limiting the application
entry points exposed to the user.
There are several kiosk configuration methods that you can choose from, depending on
your answers to the following questions.
Your kiosk can run a Universal Windows Platform (UWP) app or a Windows
desktop application. For digital signage, select a digital sign player as your kiosk
app. Check out the guidelines for kiosk apps.
All of the configuration methods work for Windows client Enterprise and
Education; some of the methods work for Windows Pro. Kiosk mode isn't available
on Windows Home.
The kiosk account can be a local standard user account, a local administrator
account, a domain account, or an Azure Active Directory (Azure AD) account,
depending on the method that you use to configure the kiosk. If you want people
to sign in and authenticate on the device, you should use a multi-app kiosk
configuration. The single-app kiosk configuration doesn't require people to sign in
to the device, although they can sign in to the kiosk app if you select an app that
has a sign-in method.
) Important
Single-app kiosk mode isn't supported over a remote desktop connection. Your
kiosk users must sign in on the physical device that is set up as a kiosk.
Assigned Access (kiosk mode) license entitlements are granted by the following licenses:
Windows Pro/Pro Windows Windows Windows Windows
Education/SE Enterprise E3 Enterprise E5 Education A3 Education A5
For more information about Windows licensing, see Windows licensing overview.
The kiosk wizard in Windows Pro (version Local standard user, Active
Configuration Designer 1709), Ent, Edu Directory, Azure AD
Microsoft Intune or other mobile device Pro (version Local standard user, Azure AD
management (MDM) 1709), Ent, Edu
The kiosk wizard in Windows Ent, Edu Local standard user, Active
Configuration Designer Directory, Azure AD
Microsoft Intune or other mobile device Pro (version Local standard user, Azure AD
management (MDM) 1709), Ent, Edu
XML in a provisioning package Pro, Ent, Edu Local standard user, Active Directory, Azure
AD
Microsoft Intune or other Pro, Ent, Edu Local standard user, Azure AD
MDM
MDM WMI Bridge Provider Pro, Ent, Edu Local standard user, Active Directory, Azure
AD
7 Note
For devices running Windows client Enterprise and Education, you can also use
Windows Defender Application Control or AppLocker to lock down a device to
specific apps.
Windows Security
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
In Windows 10, version 1709 and later, the settings also show information from third-
party antivirus and firewall apps.
In Windows 10, version 1803, the settings have two new areas: Account protection and
Device security.
7 Note
Windows Security is a client interface on Windows 10, version 1703 and later. It is
not the Microsoft Defender Security Center web portal console that is used to
review and manage Microsoft Defender for Endpoint.
You can't uninstall Windows Security, but you can do one of the following actions:
Disable the interface on Windows Server 2016.
Hide all of the sections on client computers.
Disable Microsoft Defender Antivirus, if needed. For more information, see Enable
and configure Microsoft Defender Antivirus always-on protection in group policy.
For more information about each section, options for configuring the sections, and how
to hide each of them, see the following articles:
Virus & threat protection, which has information and access to antivirus
ransomware protection settings and notifications, including Controlled folder
access, and sign-in to Microsoft OneDrive.
Account protection, which has information and access to sign-in and account
protection settings.
Firewall & network protection, which has information and access to firewall
settings, including Windows Defender Firewall.
App & browser control, covering Windows Defender SmartScreen settings and
Exploit protection mitigations.
Device security, which provides access to built-in device security settings.
Device performance & health, which has information about drivers, storage space,
and general Windows Update issues.
Family options, which include access to parental controls along with tips and
information for keeping kids safe online.
7 Note
If you hide all sections then Windows Security will show a restricted interface, as in
the following screenshot:
Settings configured with management tools, such as group policy, Microsoft Intune,
or Microsoft Configuration Manager, will generally take precedence over the
settings in the Windows Security.
) Important
Microsoft Defender Antivirus and Windows Security use similarly named services
for specific purposes.
These services don't affect the state of Microsoft Defender Antivirus. Disabling or
modifying these services won't disable Microsoft Defender Antivirus. It will lead to a
lowered protection state on the endpoint, even if you're using a third-party
antivirus product.
Disabling the Windows Security Center Service won't disable Microsoft Defender
Antivirus or Windows Defender Firewall.
2 Warning
If you disable the Windows Security Center Service, or configure its associated
group policy settings to prevent it from starting or running, Windows Security may
display stale or inaccurate information about any antivirus or firewall products you
have installed on the device.
It may also prevent Microsoft Defender Antivirus from enabling itself if you have an
old or outdated third-party antivirus, or if you uninstall any third-party antivirus
products you may have previously installed.
This will significantly lower the protection of your device and could lead to malware
infection.
Windows Security operates as a separate app or process from each of the individual
features, and displays notifications through the Action Center.
It acts as a collector or single place to see the status and perform some configuration
for each of the features.
If you disable any of the individual features, it prevents that feature from reporting its
status in Windows Security. For example, if you disable a feature through group policy
or other management tools, such as Microsoft Configuration Manager, Windows
Security itself still runs and shows status for the other security features.
) Important
If you individually disable any of the services, it won't disable the other services or
Windows Security itself.
The Virus & threat protection section contains information and settings for antivirus
protection from Microsoft Defender Antivirus and third-party AV products.
In Windows 10, version 1803, this section also contains information and settings for
ransomware protection and recovery. These settings include Controlled folder access
settings to prevent unknown apps from changing files in protected folders, plus
Microsoft OneDrive configuration to help you recover from a ransomware attack. This
area also notifies users and provides recovery instructions if there's a ransomware
attack.
IT administrators and IT pros can get more configuration information from these articles:
You can hide the Virus & threat protection section or the Ransomware protection area
from users of the machine. This option can be useful if you don't want employees in
your organization to see or have access to user-configured options for these features.
) Important
You must have Windows 10, version 1709 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In Group Policy Management Editor, go to Computer configuration and select
Administrative templates.
3. Expand the tree to Windows components > Windows Security > Virus and threat
protection.
4. Open the Hide the Virus and threat protection area setting and set it to Enabled.
Select OK.
5. Deploy the updated GPO as you normally do.
7 Note
If you hide all sections then Windows Security will show a restricted interface, as in
the following screenshot:
) Important
You must have Windows 10, version 1709 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In Group Policy Management Editor, go to Computer configuration and select
Administrative templates.
3. Expand the tree to Windows components > Windows Security > Virus and threat
protection.
4. Open the Hide the Ransomware data recovery area setting and set it to Enabled.
Select OK.
5. Deploy the updated GPO as you normally do.
Account protection
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
The Account protection section contains information and settings for account
protection and sign-in. You can get more information about these capabilities from the
following list:
Microsoft Account
Windows Hello for Business
Lock your Windows 10 PC automatically when you step away from it
You can also choose to hide the section from users of the device, if you don't want your
employees to access or view user-configured options for these features.
) Important
You must have Windows 10, version 1803 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In the Group Policy Management Editor, go to Computer configuration and
select Administrative templates.
3. Expand the tree to Windows components > Windows Security > Account
protection.
4. Open the Hide the Account protection area setting and set it to Enabled. Select
OK.
5. Deploy the updated GPO as you normally do.
7 Note
If you hide all sections then Windows Security will show a restricted interface, as in
the following screenshot:
Firewall and network protection
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
The Firewall & network protection section contains information about the firewalls and
network connections used by the machine, including the status of Windows Defender
Firewall and any other third-party firewalls. IT administrators and IT pros can get
configuration guidance from the Windows Defender Firewall with Advanced Security
documentation library.
This section can be hidden from users of the machine. This information is useful if you
don't want employees in your organization to see or have access to user-configured
options for the features shown in the section.
) Important
You must have Windows 10, version 1709 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In Group Policy Management Editor, go to Computer configuration and select
Administrative templates.
3. Expand the tree to Windows components > Windows Security > Firewall and
network protection.
4. Open the Hide the Firewall and network protection area setting and set it to
Enabled. Select OK.
5. Deploy the updated GPO as you normally do.
7 Note
If you hide all sections then Windows Security will show a restricted interface, as in
the following screenshot:
App and browser control
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
The App and browser control section contains information and settings for Windows
Defender SmartScreen. IT administrators and IT pros can get configuration guidance
from the Windows Defender SmartScreen documentation library.
In Windows 10, version 1709 and later, the section also provides configuration options
for Exploit protection. You can prevent users from modifying these specific options with
Group Policy. IT administrators can get more information at Exploit protection.
You can also choose to hide the section from users of the machine. This option can be
useful if you don't want employees in your organization to see or have access to user-
configured options for the features shown in the section.
You can only prevent users from modifying Exploit protection settings by using Group
Policy.
) Important
You must have Windows 10, version 1709 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In the Group Policy Management Editor, go to Computer configuration, select
Policies and then Administrative templates.
3. Expand the tree to Windows components > Windows Security > App and
browser protection.
4. Open the Prevent users from modifying settings setting and set it to Enabled.
Select OK.
5. Deploy the updated GPO as you normally do.
) Important
You must have Windows 10, version 1709 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In the Group Policy Management Editor go to Computer configuration, select
Policies and then Administrative templates.
3. Expand the tree to Windows components > Windows Security > App and
browser protection.
4. Open the Hide the App and browser protection area setting and set it to Enabled.
Select OK.
5. Deploy the updated GPO as you normally do.
7 Note
If you hide all sections then Windows Security will show a restricted interface, as in
the following screenshot:
Device security
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
The Device security section contains information and settings for built-in device
security.
You can choose to hide the section from users of the machine. This option can be useful
if you don't want employees in your organization to see or have access to user-
configured options for the features shown in the section.
) Important
You must have Windows 10, version 1803 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In Group Policy Management Editor, go to Computer configuration and then
select Administrative templates.
3. Expand the tree to Windows components > Windows Security > Device security.
4. Open the Hide the Device security area setting and set it to Enabled. Select OK.
5. Deploy the updated GPO as you normally do.
7 Note
If you hide all sections then Windows Security will show a restricted interface, as in
the following screenshot:
Disable the Clear TPM button
If you don't want users to be able to select the Clear TPM button in Windows Security,
you can disable it.
) Important
You must have Windows 10, version 1809 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management computer, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In Group Policy Management Editor, go to Computer configuration and then
select Administrative templates.
3. Expand the tree to Windows components > Windows Security > Device security.
4. Open the Disable the Clear TPM button setting and set it to Enabled. Select OK.
5. Deploy the updated GPO as you normally do.
1. On your Group Policy management computer, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In Group Policy Management Editor, go to Computer configuration and then
select Administrative templates.
3. Expand the tree to Windows components > Windows Security > Device security.
4. Open the Hide the TPM Firmware Update recommendation setting and set it to
Enabled. Select OK.
5. Deploy the updated GPO as you normally do.
Device performance and health
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
The Device performance & health section contains information about hardware,
devices, and drivers related to the machine. IT administrators and IT pros should
reference the appropriate documentation library for the issues they're seeing, such as
the configure the Load and unload device drivers security policy setting and how to
deploy drivers during Windows 10 deployment using Microsoft Configuration Manager.
This section can be hidden from users of the machine. This option can be useful if you
don't want employees in your organization to see or have access to user-configured
options for the features shown in the section.
) Important
You must have Windows 10, version 1709 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In Group Policy Management Editor, go to Computer configuration and select
Administrative templates.
3. Expand the tree to Windows components > Windows Security > Device
performance and health.
4. Open the Hide the Device performance and health area setting and set it to
Enabled. Select OK.
5. Deploy the updated GPO as you normally do.
7 Note
If you hide all sections then Windows Security will show a restricted interface, as in
the following screenshot:
Family options
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
The Family options section contains links to settings and further information for parents
of a Windows PC. It isn't intended for enterprise or business environments.
Home users can learn more at the Help protection your family online in Windows
Security article at support.microsoft.com
This section can be hidden from users of the machine. This option can be useful if you
don't want employees in your organization to see or have access to this section.
) Important
You must have Windows 10, version 1709 or later. The ADMX/ADML template files
for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
2. In Group Policy Management Editor, go to Computer configuration and select
Administrative templates.
3. Expand the tree to Windows components > Windows Security > Family options.
4. Open the Hide the Family options area setting and set it to Enabled. Select OK.
5. Deploy the updated GPO as you normally do.
7 Note
If you hide all sections then Windows Security will show a restricted interface, as in
the following screenshot:
Customize the Windows Security
settings for your organization
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
You can add information about your organization in a contact card in Windows
Security. You can include a link to a support site, a phone number for a help desk, and
an email address for email-based support.
Select Call or the phone number to open Skype to start a call to the displayed
number.
Select Email or the email address to create a new email in the machine's default
email app addressed to the displayed email.
Select Help portal or the website URL to open the machine's default web browser
and go to the displayed address.
Requirements
You must have Windows 10, version 1709 or later. The ADMX/ADML template files for
earlier versions of Windows don't include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
3. Expand the tree to Windows components > Windows Security > Enterprise
Customization.
4. Enable the contact card and the customized notifications by configuring two
separate Group Policy settings. They'll both use the same source of information
(explained in Steps 5 and 6). You can enable both, or select one or the other:
7 Note
5. After you've enabled the contact card or the customized notifications (or both),
you must configure the Specify contact company name to Enabled. Enter your
company or organization's name in the field in the Options section. Select OK.
6. To ensure the custom notifications or contact card appear, you must also configure
at least one of the following settings. Open the setting, select Enabled, and then
add the contact information in the field under Options:
a. Specify contact email address or Email ID
b. Specify contact phone number or Skype ID
c. Specify contact website
7 Note
To enable the customized notifications and add the contact information in Intune, see
these articles:
) Important
You must specify the contact company name and at least one contact method -
email, phone number, or website URL. If you do not specify the contact name and a
contact method the customization will not apply, the contact card will not show,
and notifications will not be customized.
Hide Windows Security notifications
Article • 07/31/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
In some cases, it may not be appropriate to show these notifications, for example, if you
want to hide regular status updates, or if you want to hide all notifications to the
employees in your organization.
1. Hide non-critical notifications, such as regular updates about the number of scans
Microsoft Defender Antivirus ran in the past week
2. Hide all notifications
If you set Hide all notifications to Enabled, changing the Hide non-critical notifications
setting has no effect.
) Important
You must have Windows 10, version 1903 or higher. The ADMX/ADML template
files for earlier versions of Windows do not include these Group Policy settings.
1. Download the latest Administrative Templates (.admx) for Windows 10, v2004 .
2. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
3. In Group Policy Management Editor, go to Computer configuration and select
Administrative templates.
4. Expand the tree to Windows components > Windows Security > Notifications.
For Windows 10 version 1803 and below, the path would be Windows
components > Windows Defender Security Center > Notifications
5. Open the Hide non-critical notifications setting and set it to Enabled. Select OK.
6. Deploy the updated GPO as you normally do.
) Important
You must have Windows 10, version 1903 or higher. The ADMX/ADML template
files for earlier versions of Windows do not include these Group Policy settings.
1. On your Group Policy management machine, open the Group Policy Management
Console, right-click the Group Policy Object you want to configure and select Edit.
3. Expand the tree to Windows components > Windows Security > Notifications.
For Windows 10 version 1803 and below, the path would be Windows
components > Windows Defender Security Center > Notifications.
7 Note
For Windows 10 version 2004 and above the path would be Windows
components > Windows Security > Notifications.
4. Open the Hide all notifications setting and set it to Enabled. Select OK.
You can use the following registry key and DWORD value to Hide all notifications.
text
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender
Security Center\Notifications]
"DisableNotifications"=dword:00000001
You can use the following registry key and DWORD value to Hide not-critical
notifications.
text
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender
Security Center\Notifications]
"DisableEnhancedNotifications"=dword:00000001
Notifications
Purpose Notification Toast Identifier Critical? Notification
text Toggle
number, email
address, url.
can improve
how Microsoft
Defender
Antivirus helps
protect your
device.
actions on
your device.
NoPa or No Account
federated no protection
hello notification
NoPa or No Account
federated protection
hello broken notification
BitLocker overview
Article • 08/03/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
BitLocker provides maximum protection when used with a Trusted Platform Module
(TPM). A TPM is a hardware component installed in many devices and it works with
BitLocker to help protect user data and to ensure that a computer hasn't been tampered
with while the system is offline.
On devices that don't have a TPM, BitLocker can still be used to encrypt the Windows
operating system drive. However, this implementation requires the user to insert a USB
startup key to start the device or resume from hibernation. An operating system volume
password can be used to protect the operating system volume on a computer without
TPM. Both options don't provide the pre-startup system integrity verification offered by
BitLocker with a TPM.
In addition to the TPM, BitLocker offers the option to lock the normal startup process
until the user supplies a personal identification number (PIN) or inserts a removable
device (such as a USB flash drive) that contains a startup key. These additional security
measures provide multifactor authentication and assurance that the computer won't
start or resume from hibernation until the correct PIN or startup key is presented.
Practical applications
Data on a lost or stolen device is vulnerable to unauthorized access, either by running a
software-attack tool against it or by transferring the computer's hard drive to a different
computer. BitLocker helps mitigate unauthorized data access by enhancing file and
system protections. BitLocker also helps render data inaccessible when BitLocker-
protected devices are decommissioned or recycled.
System requirements
BitLocker has the following hardware requirements:
For BitLocker to use the system integrity check provided by a TPM, the computer
must have TPM 1.2 or later versions. If a computer doesn't have a TPM, saving a
startup key on a removable drive, such as a USB flash drive, becomes mandatory
when enabling BitLocker
A device with a TPM must also have a Trusted Computing Group (TCG)-compliant
BIOS or UEFI firmware. The BIOS or UEFI firmware establishes a chain of trust for
the pre-operating system startup, and it must include support for TCG-specified
Static Root of Trust Measurement. A computer without a TPM doesn't require TCG-
compliant firmware
The system BIOS or UEFI firmware (for TPM and non-TPM computers) must
support the USB mass storage device class, including reading small files on a USB
flash drive in the pre-operating system environment
7 Note
TPM 2.0 is not supported in Legacy and Compatibility Support Module (CSM)
modes of the BIOS. Devices with TPM 2.0 must have their BIOS mode
configured as native UEFI only. The Legacy and CSM options must be
disabled. For added security, enable the secure boot feature.
) Important
When installed on a new device, Windows automatically creates the partitions that
are required for BitLocker.
7 Note
For more information about Windows licensing, see Windows licensing overview.
Overview of BitLocker device encryption
Article • 06/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article explains how BitLocker Device Encryption can help protect data on devices
running Windows. See BitLocker for a general overview and list of articles.
When users travel, their organization's confidential data goes with them. Wherever
confidential data is stored, it must be protected against unauthorized access. Windows
has a long history of providing at-rest data-protection solutions that guard against
nefarious attackers, beginning with the Encrypting File System in the Windows 2000
operating system. More recently, BitLocker has provided encryption for full drives and
portable drives. Windows consistently improves data protection by improving existing
options and providing new strategies.
When BitLocker is used with a PIN Modern Windows devices are increasingly protected with
to protect startup, PCs such as BitLocker Device Encryption out of the box and support
kiosks can't be restarted remotely. SSO to seamlessly protect the BitLocker encryption keys
from cold boot attacks.
When BitLocker is enabled, the BitLocker pre-provisioning, encrypting hard drives, and
provisioning process can take Used Space Only encryption allow administrators to enable
several hours. BitLocker quickly on new computers.
There's no support for using BitLocker supports offloading encryption to encrypted hard
BitLocker with self-encrypting drives.
drives (SEDs).
Administrators have to use separate BitLocker supports encrypted hard drives with onboard
tools to manage encrypted hard encryption hardware built in, which allows administrators
drives.
Windows 7 Windows 11 and Windows 10
Encrypting a new flash drive can Used Space Only encryption in BitLocker To Go allows users
take more than 20 minutes. to encrypt removable data drives in seconds.
BitLocker could require users to BitLocker requires the user to enter a recovery key only
enter a recovery key when system when disk corruption occurs or when the PIN or password
configuration changes occur. is lost.
Users need to enter a PIN to start Modern Windows devices are increasingly protected with
the PC, and then their password to BitLocker Device Encryption out of the box and support
sign in to Windows. SSO to help protect the BitLocker encryption keys from
cold boot attacks.
TPM pre-provisioning
In Windows 7, preparing the TPM offered a few challenges:
Turning on the TPM required going into the BIOS or UEFI firmware of the device.
Turning on the TPM at the device requires someone to either physically go into the
BIOS or UEFI firmware settings of the device to turn on the TPM, or to install a
driver in Windows to turn on the TPM from within Windows.
When the TPM is enabled, it may require one or more restarts.
This made preparing the TPM in Windows 7 problematic. If IT staff are provisioning new
PCs, they can handle the required steps for preparing a TPM. However, if BitLocker
needed to be enabled on devices that are already in users' hands, those users would
probably struggle with the technical challenges. The user would then either call to IT for
support or leave BitLocker disabled.
Microsoft includes instrumentation in Windows 11 and Windows 10 that enable the
operating system to fully manage the TPM. There's no need to go into the BIOS, and all
scenarios that required a restart have been eliminated.
With earlier versions of Windows, administrators had to enable BitLocker after Windows
had been installed. Although this process could be automated, BitLocker would need to
encrypt the entire drive, a process that could take anywhere from several hours to more
than a day depending on drive size and performance, which delayed deployment.
Microsoft has improved this process through multiple features in Windows 11 and
Windows 10.
Microsoft expects that most devices in the future will pass the requirements for
BitLocker Device Encryption that will make BitLocker Device Encryption pervasive across
modern Windows devices. BitLocker Device Encryption further protects the system by
transparently implementing device-wide data encryption.
If the device isn't domain joined, a Microsoft account that has been granted
administrative privileges on the device is required. When the administrator uses a
Microsoft account to sign in, the clear key is removed, a recovery key is uploaded
to the online Microsoft account, and a TPM protector is created. Should a device
require the recovery key, the user will be guided to use an alternate device and
navigate to a recovery key access URL to retrieve the recovery key by using their
Microsoft account credentials.
If the user uses a domain account to sign in, the clear key isn't removed until the
user joins the device to a domain, and the recovery key is successfully backed up
to Active Directory Domain Services (AD DS). The following Group Policy settings
must be enabled for the recovery key to be backed up to AD DS:
With this configuration, the recovery password is created automatically when the
computer joins the domain, and then the recovery key is backed up to AD DS, the
TPM protector is created, and the clear key is removed.
Similar to signing in with a domain account, the clear key is removed when the
user signs in to an Azure AD account on the device. As described in the bullet
point above, the recovery password is created automatically when the user
authenticates to Azure AD. Then, the recovery key is backed up to Azure AD, the
TPM protector is created, and the clear key is removed.
Subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BitLocker
Type: REG_DWORD
Value: PreventDeviceEncryption equal to 1 (True)
Administrators can manage domain-joined devices that have BitLocker Device
Encryption enabled through Microsoft BitLocker Administration and Monitoring
(MBAM). In this case, BitLocker Device Encryption automatically makes additional
BitLocker options available. No conversion or encryption is required, and MBAM can
manage the full BitLocker policy set if any configuration changes are required.
7 Note
To reduce encryption time, BitLocker in Windows 11 and Windows 10 let users choose to
encrypt just the areas of the disk that contain data. Areas of the disk that don't contain
data and are empty won't be encrypted. Any new data is encrypted as it's created.
Depending on the amount of data on the drive, this option can reduce the initial
encryption time by more than 99 percent.
Exercise caution when encrypting only used space on an existing volume on which
confidential data may have already been stored in an unencrypted state. When using
used space encryption, sectors where previously unencrypted data are stored can be
recovered through disk-recovery tools until they're overwritten by new encrypted data.
In contrast, encrypting only used space on a brand-new volume can significantly
decrease deployment time without the security risk because all new data will be
encrypted as it's written to the disk.
For more information about encrypted hard drives, see Encrypted hard drive.
It's crucial that organizations protect information on their PCs regardless of the state of
the computer or the intent of users. This protection shouldn't be cumbersome to users.
One undesirable and previously commonplace situation is when the user is prompted
for input during preboot, and then again during Windows sign-in. Challenging users for
input more than once should be avoided.
Windows 11 and Windows 10 can enable a true SSO experience from the preboot
environment on modern devices and in some cases even on older devices when robust
information protection configurations are in place. The TPM in isolation is able to
securely protect the BitLocker encryption key while it is at rest, and it can securely
unlock the operating system drive. When the key is in use and thus in memory, a
combination of hardware and Windows capabilities can secure the key and prevent
unauthorized access through cold-boot attacks. Although other countermeasures like
PIN-based unlock are available, they aren't as user-friendly; depending on the devices'
configuration they may not offer additional security when it comes to key protection.
For more information, see BitLocker Countermeasures.
Windows 11 and Windows 10 users can update their BitLocker PINs and passwords
themselves, without administrator credentials. Not only will this feature reduce support
costs, but it could improve security, too, because it encourages users to change their
PINs and passwords more often. In addition, Modern Standby devices don't require a
PIN for startup: They're designed to start infrequently and have other mitigations in
place that further reduce the attack surface of the system.
For more information about how startup security works and the countermeasures that
Windows 11 and Windows 10 provide, see Protect BitLocker from pre-boot attacks.
Client PCs that have Unified Extensible Firmware Interface (UEFI) firmware version
2.3.1 or later, which supports Dynamic Host Configuration Protocol (DHCP)
A server running at least Windows Server 2012 with the Windows deployment
services (WDS) role
For more information about how to configure Network unlock feature, see BitLocker:
How to enable Network Unlock.
Reduces the workload on the help desk to assist end users with BitLocker recovery
requests.
Enables end users to recover encrypted devices independently by using the Self-
Service Portal.
Enforces the BitLocker encryption policy options that are set for the enterprise.
Enterprises could use MBAM to manage client computers with BitLocker that are
domain-joined on-premises until mainstream support ended in July 2019, or they
could receive extended support until April 2026.
Enterprises not using Configuration Manager can use the built-in features of Azure AD
and Microsoft Intune for administration and monitoring. For more information, see
Monitor device encryption with Intune.
BitLocker Countermeasures
Article • 06/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
Windows uses technologies including trusted platform module (TPM), secure boot, and
measured boot to help protect BitLocker encryption keys against attacks. BitLocker is
part of a strategic approach to securing data against offline attacks through encryption
technology. Data on a lost or stolen computer is vulnerable. For example, there could be
unauthorized access, either by running a software attack tool against the computer or
by transferring the computer's hard disk to a different computer.
BitLocker helps mitigate unauthorized data access on lost or stolen computers before
the authorized operating system is started. This mitigation is done by:
Ensuring the integrity of early boot components and boot configuration data.
On devices that have a TPM version 1.2 or higher, BitLocker uses the enhanced
security capabilities of the TPM to make data accessible only if the computer's
BIOS firmware code and configuration, original boot sequence, boot components,
and BCD configuration all appear unaltered and the encrypted disk is located in
the original computer. On systems that use TPM PCR[7], BCD setting changes
deemed safe are permitted to improve usability.
The next sections provide more details about how Windows protects against various
attacks on the BitLocker encryption keys in Windows 11, Windows 10, Windows 8.1, and
Windows 8.
For more information about how to enable the best overall security configuration for
devices beginning with Windows 10 version 1803, see Standards for a highly secure
Windows device.
The UEFI specification defines a firmware execution authentication process called Secure
Boot. Secure Boot blocks untrusted firmware and bootloaders (signed or unsigned) from
being able to start on the system.
By default, BitLocker provides integrity protection for Secure Boot by utilizing the TPM
PCR[7] measurement. An unauthorized EFI firmware, EFI boot application, or bootloader
can't run and acquire the BitLocker key.
7 Note
This does not protect against physical attacks where an attacker opens the case and
attacks the hardware.
Security policies
The next sections cover pre-boot authentication and DMA policies that can provide
additional protection for BitLocker.
Pre-boot authentication
Pre-boot authentication with BitLocker is a policy setting that requires the use of either
user input, such as a PIN, a startup key, or both to authenticate prior to making the
contents of the system drive accessible. The Group Policy setting is Require additional
authentication at startup and the corresponding setting in the BitLocker CSP is
SystemDrivesRequireStartupAuthentication.
BitLocker accesses and stores the encryption keys in memory only after pre-boot
authentication is completed. If Windows can't access the encryption keys, the device
can't read or edit the files on the system drive. The only option for bypassing pre-boot
authentication is entering the recovery key.
Pre-boot authentication is designed to prevent the encryption keys from being loaded
to system memory without the trusted user supplying another authentication factor
such as a PIN or startup key. This feature helps mitigate DMA and memory remanence
attacks.
On computers with a compatible TPM, operating system drives that are BitLocker-
protected can be unlocked in four ways:
TPM-only. Using TPM-only validation doesn't require any interaction with the user
to unlock and provide access to the drive. If the TPM validation succeeds, the user
sign-in experience is the same as a standard sign-in. If the TPM is missing or
changed or if BitLocker detects changes to the BIOS or UEFI code or configuration,
critical operating system startup files, or the boot configuration, BitLocker enters
recovery mode, and the user must enter a recovery password to regain access to
the data. This option is more convenient for sign-in but less secure than the other
options, which require an additional authentication factor.
TPM with startup key. In addition to the protection that the TPM-only provides,
part of the encryption key is stored on a USB flash drive, referred to as a startup
key. Data on the encrypted volume can't be accessed without the startup key.
TPM with PIN. In addition to the protection that the TPM provides, BitLocker
requires that the user enters a PIN. Data on the encrypted volume can't be
accessed without entering the PIN. TPMs also have anti-hammering protection that
is designed to prevent brute force attacks that attempt to determine the PIN.
TPM with startup key and PIN. In addition to the core component protection that
the TPM-only provides, part of the encryption key is stored on a USB flash drive,
and a PIN is required to authenticate the user to the TPM. This configuration
provides multifactor authentication so that if the USB key is lost or stolen, it can't
be used for access to the drive, because the correct PIN is also required.
In the following group policy example, TPM + PIN is required to unlock an operating
system drive:
Pre-boot authentication with a PIN can mitigate an attack vector for devices that use a
bootable eDrive because an exposed eDrive bus can allow an attacker to capture the
BitLocker encryption key during startup. Pre-boot authentication with a PIN can also
mitigate DMA port attacks during the window of time between when BitLocker unlocks
the drive and Windows boots to the point that Windows can set any port-related
policies that have been configured.
To address these issues, BitLocker Network Unlock can be deployed. Network Unlock
allows systems within the physical enterprise security perimeter that meet the hardware
requirements and have BitLocker enabled with TPM+PIN to boot into Windows without
user intervention. It requires direct ethernet connectivity to an enterprise Windows
Deployment Services (WDS) server.
You can use the System Information desktop app MSINFO32.exe to check if a device has
kernel DMA protection enabled:
If kernel DMA protection isn't enabled, follow these steps to protect Thunderbolt™ 3
enabled ports:
2. Intel Thunderbolt Security must be set to User Authorization in BIOS settings. Refer
to Intel Thunderbolt™ 3 and Security on Microsoft Windows® 10 Operating
System documentation
Group Policy: Disable new DMA devices when this computer is locked (This
setting isn't configured by default.)
Attack countermeasures
This section covers countermeasures for specific types of attacks.
7 Note
DMA attacks
See Protecting Thunderbolt and other DMA ports earlier in this article.
Memory remanence
Enable secure boot and mandatorily prompt a password to change BIOS settings. For
customers requiring protection against these advanced attacks, configure a TPM+PIN
protector, disable Standby power management, and shut down or hibernate the device
before it leaves the control of an authorized user.
An attacker might also replace the entire operating system disk while preserving the
platform hardware and firmware and could then extract a protected BitLocker key blob
from the metadata of the victim OS partition. The attacker could then attempt to unseal
that BitLocker key blob by calling the TPM API from an operating system under their
control. This will not succeed because when Windows seals the BitLocker key to the
TPM, it does it with a PCR 11 value of 0, and to successfully unseal the blob, PCR 11 in
the TPM must have a value of 0. However, when the boot manager passes the control to
any boot loader (legitimate or rogue) it always changes PCR 11 to a value of 1. Since the
PCR 11 value is guaranteed to be different after exiting the boot manager, the attacker
can't unlock the BitLocker key.
Attacker countermeasures
The following sections cover mitigations for different types of attackers.
Mitigation:
-And-
Disable Standby power management and shut down or hibernate the device
before it leaves the control of an authorized user. This configuration can be set
using the following Group Policy:
) Important
For some systems, bypassing TPM-only may require opening the case, and may require
soldering, but could possibly be done for a reasonable cost. Bypassing a TPM with a PIN
protector would cost much more, and require brute forcing the PIN. With a
sophisticated enhanced PIN, it could be nearly impossible. The Group Policy setting for
enhanced PIN is:
Related articles
Blocking the SBP-2 driver and Thunderbolt controllers to reduce 1394 DMA and
Thunderbolt DMA threats to BitLocker
BitLocker Group Policy settings
BitLocker CSP
Winlogon automatic restart sign-on (ARSO)
Prepare an organization for BitLocker:
Planning and policies
Article • 06/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article for the IT professional explains how to plan BitLocker deployment.
When BitLocker deployment strategy is defined, define the appropriate policies and
configuration requirements based on the business requirements of the organization.
The following sections will help with collecting information. Use this information to help
with the decision-making process about deploying and managing BitLocker systems.
To help document the organization's current disk encryption security policies, answer
the following questions:
1. Are there policies to determine which computers will use BitLocker and which
computers won't use BitLocker?
2. What policies exist to control recovery password and recovery key storage?
3. What are the policies for validating the identity of users who need to perform
BitLocker recovery?
4. What policies exist to control who in the organization has access to recovery data?
The trusted platform module (TPM) is a hardware component installed in many newer
computers by the computer manufacturers. It works with BitLocker to help protect user
data. And, help make sure a computer hasn't been tampered with while the system was
offline.
Also, BitLocker can lock the normal startup process until the user supplies a personal
identification number (PIN) or inserts a removable USB device that contains a startup
key. These extra security measures provide multifactor authentication. They also make
sure that the computer won't start or resume from hibernation until the correct PIN or
startup key is presented.
On computers that don't have a TPM version 1.2 or higher, BitLocker can still be used to
encrypt the Windows operating system volume. However, this implementation requires
the user to insert a USB startup key to start the computer or resume from hibernation. It
doesn't provide the pre-startup system integrity verification offered by BitLocker
working with a TPM.
Key Description
protector
TPM A hardware device used to help establish a secure root-of-trust. BitLocker only
supports TPM 1.2 or higher versions.
PIN A user-entered numeric key protector that can only be used in addition to the
TPM.
Enhanced A user-entered alphanumeric key protector that can only be used in addition to
PIN the TPM.
Startup key An encryption key that can be stored on most removable media. This key protector
can be used alone on non-TPM computers, or with a TPM for added security.
Recovery A 48-digit number used to unlock a volume when it is in recovery mode. Numbers
password can often be typed on a regular keyboard. If the numbers on the normal keyboard
aren't responding, the function keys (F1-F10) can be used to input the numbers.
Recovery key An encryption key stored on removable media that can be used for recovering
data encrypted on a BitLocker volume.
TPM + PIN Yes TPM validates early boot components. The user must enter
the correct PIN before the start-up process can continue, and
before the drive can be unlocked. The TPM enters lockout if
the incorrect PIN is entered repeatedly, to protect the PIN
from brute force attacks. The number of repeated attempts
that will trigger a lockout is variable.
TPM + Network No The TPM successfully validates early boot components, and a
key valid encrypted network key has been provided from the
WDS server. This authentication method provides automatic
unlock of operating system volumes at system reboot while
still maintaining multifactor authentication.
TPM + startup Yes The TPM successfully validates early boot components, and a
key USB flash drive containing the startup key has been inserted.
Startup key only Yes The user is prompted for the USB flash drive that has the
recovery key and/or startup key, and then reboot the
computer.
The TPM-only authentication method provides the most transparent user experience for
organizations that need a baseline level of data protection to meet security policies. It
has the lowest total cost of ownership. TPM-only might also be more appropriate for
computers that are unattended or that must reboot unattended.
However, TPM-only authentication method offers the lowest level of data protection.
This authentication method protects against attacks that modify early boot components.
But, the level of protection can be affected by potential weaknesses in hardware or in
the early boot components. BitLocker's multifactor authentication methods significantly
increase the overall level of data protection.
Endorsement keys
For a TPM to be usable by BitLocker, it must contain an endorsement key, which is an
RSA key pair. The private half of the key pair is held inside the TPM and is never revealed
or accessible outside the TPM. If the TPM doesn't have an endorsement key, BitLocker
will force the TPM to generate one automatically as part of BitLocker setup.
An endorsement key can be created at various points in the TPM's lifecycle, but needs to
be created only once for the lifetime of the TPM. If an endorsement key doesn't exist for
the TPM, it must be created before TPM ownership can be taken.
For more information about the TPM and the TCG, see the Trusted Computing Group:
Trusted Platform Module (TPM) Specifications (https://go.microsoft.com/fwlink/p/?
linkid=69584 ).
Use the following questions to identify issues that might affect the deployment in a
non-TPM configuration:
Test the individual hardware platforms with the BitLocker system check option while
enabling BitLocker. The system check makes sure that BitLocker can read the recovery
information from a USB device and encryption keys correctly before it encrypts the
volume. CD and DVD drives can't act as a block storage device and can't be used to
store the BitLocker recovery material.
The operating system partition contains the operating system and its support files;
it must be formatted with the NTFS file system
The system partition (or boot partition) includes the files needed to load Windows
after the BIOS or UEFI firmware has prepared the system hardware. BitLocker isn't
enabled on this partition. For BitLocker to work, the system partition must not be
encrypted, and must be on a different partition than the operating system. On UEFI
platforms, the system partition must be formatted with the FAT 32-file system. On
BIOS platforms, the system partition must be formatted with the NTFS file system.
It should be at least 350 MB in size.
Windows setup automatically configures the disk drives of computers to support
BitLocker encryption.
Windows RE can also be used from boot media other than the local hard disk. If
Windows RE isn't installed on the local hard disk of BitLocker-enabled computers, then
different methods can be used to boot Windows RE. For example, Windows Deployment
Services (WDS), CD-ROM, or USB flash drive can be used for recovery.
BitLocker provisioning
In Windows Vista and Windows 7, BitLocker was provisioned after the installation for
system and data volumes. It used the manage-bde command line interface or the Control
Panel user interface. With newer operating systems, BitLocker can be provisioned before
the operating system is installed. Preprovisioning requires the computer have a TPM.
To check the BitLocker status of a particular volume, administrators can look at the drive
status in the BitLocker control panel applet or Windows Explorer. The "Waiting For
Activation" status with a yellow exclamation icon means that the drive was
preprovisioned for BitLocker. This status means that there was only a clear protector
used when encrypting the volume. In this case, the volume isn't protected, and needs to
have a secure key added to the volume before the drive is considered fully protected.
Administrators can use the control panel options, the manage-bde tool, or WMI APIs to
add an appropriate key protector. The volume status will be updated.
When using the control panel options, administrators can choose to Turn on BitLocker
and follow the steps in the wizard to add a protector, such as a PIN for an operating
system volume (or a password if no TPM exists), or a password or smart card protector
to a data volume. Then the drive security window is presented before changing the
volume status.
Administrators can enable BitLocker before to operating system deployment from the
Windows Pre-installation Environment (WinPE). This step is done with a randomly
generated clear key protector applied to the formatted volume. It encrypts the volume
before running the Windows setup process. If the encryption uses the Used Disk Space
Only option, then this step takes only a few seconds. And, it incorporates into the
regular deployment processes.
Launching the BitLocker Setup wizard prompts for the authentication method to be
used (password and smart card are available for data volumes). Once the method is
chosen and the recovery key is saved, the wizard asks to choose the drive encryption
type. Select Used Disk Space Only or Full drive encryption.
With Used Disk Space Only, just the portion of the drive that contains data will be
encrypted. Unused space will remain unencrypted. This behavior causes the encryption
process to be much faster, especially for new PCs and data drives. When BitLocker is
enabled with this method, as data is added to the drive, the portion of the drive used is
encrypted. So, there's never unencrypted data stored on the drive.
With Full drive encryption, the entire drive is encrypted, whether data is stored on it or
not. This option is useful for drives that have been repurposed, and may contain data
remnants from their previous use.
By default, only Domain Admins have access to BitLocker recovery information, but
access can be delegated to others.
With this key package and the recovery password, portions of a BitLocker-
protected volume can be decrypted if the disk is severely damaged. Each key
package works only with the volume it was created on, which is identified by the
corresponding volume ID.
7 Note
The United States Federal Information Processing Standard (FIPS) defines security
and interoperability requirements for computer systems that are used by the U.S.
Federal Government. The FIPS-140 standard defines approved cryptographic
algorithms. The FIPS-140 standard also sets forth requirements for key generation
and for key management. The National Institute of Standards and Technology
(NIST) uses the Cryptographic Module Validation Program (CMVP) to determine
whether a particular implementation of a cryptographic algorithm is compliant with
the FIPS-140 standard. An implementation of a cryptographic algorithm is
considered FIPS-140-compliant only if it has been submitted for and has passed
NIST validation. An algorithm that has not been submitted cannot be considered
FIPS-compliant even if the implementation produces identical data as a validated
implementation of the same algorithm.
Before these supported versions of Windows, when Windows was in FIPS mode,
BitLocker prevented the creation or use of recovery passwords and instead forced the
user to use recovery keys. For more information about these issues, see the support
article The recovery password for Windows BitLocker isn't available when FIPS compliant
policy is set in Windows.
The BitLocker Group Policy settings for recovery passwords work the same for all
Windows versions that support BitLocker, whether in FIPS mode or not.
On Windows Server 2012 R2 and Windows 8.1 and older, recovery passwords generated
on a system in FIPS mode can't be used. Recovery passwords created on Windows
Server 2012 R2 and Windows 8.1 are incompatible with BitLocker on operating systems
older than Windows Server 2012 R2 and Windows 8.1. So, recovery keys should be used
instead.
Related articles
BitLocker frequently asked questions (FAQ)
BitLocker
BitLocker Group Policy settings
BitLocker basic deployment
BitLocker basic deployment
Article • 06/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article for the IT professional explains how BitLocker features can be used to protect
data through drive encryption.
If the drive was prepared as a single contiguous space, BitLocker requires a new volume
to hold the boot files. BdeHdCfg.exe can create these volumes.
7 Note
For more info about using this tool, see Bdehdcfg in the Command-Line Reference.
BitLocker encryption can be enabled and managed using the following methods:
1. When the BitLocker Drive Encryption Wizard first launches, it verifies the
computer meets the BitLocker system requirements for encrypting an operating
system volume. By default, the system requirements are:
Requirement Description
Hardware The computer must meet the minimum requirements for the supported
configuration Windows versions.
File system One FAT32 partition for the system drive and one NTFS partition for the
operating system drive. This requirement is applicable for computers that
boot natively with UEFI firmware.
For computers with legacy BIOS firmware, at least two NTFS disk partitions,
one for the system drive and one for the operating system drive.
For either firmware, the system drive partition must be at least 350
megabytes (MB) and set as the active partition.
Hardware To use a hardware encrypted drive as the boot drive, the drive must be in
encrypted the uninitialized state and in the security inactive state. In addition, the
drive system must always boot with native UEFI version 2.3.1 or higher and the
prerequisites CSM (if any) disabled.
(optional)
If the volume doesn't pass the initial configuration for BitLocker, the user is
presented with an error dialog describing the appropriate actions to be taken.
2. Upon passing the initial configuration, users may be prompted to enter a password
for the volume, for example, if a TPM isn't available. If a TPM is available, the
password screen will be skipped.
A recovery key can also be used to gain access to the files and folders on a
removable data drive (such as an external hard drive or USB flash drive) that is
encrypted using BitLocker To Go, if for some reason the password is forgotten or
the computer can't access the drive.
Tip
7 Note
After a recovery key is created, the BitLocker control panel can be used to
make additional copies of the recovery key.
4. The BitLocker Drive Encryption Wizard will then prompt how much of the drive to
encrypt. The BitLocker Drive Encryption Wizard will have two options that
determine how much of the drive is encrypted:
Encrypt used disk space only - Encrypts only disk space that contains data.
Encrypt entire drive - Encrypts the entire volume including free space. Also
known as full disk encryption.
) Important
Deleted files appear as free space to the file system, which isn't encrypted by
used disk space only. Until they are wiped or overwritten, deleted files hold
information that could be recovered with common data forensic tools.
5. The BitLocker Drive Encryption Wizard will then prompt for an encryption mode:
Normally New encryption mode should be chosen, but if the drive will be
potentially moved to another computer with an older Windows operating system,
then select Compatible mode.
6. After selecting an encryption mode, the BitLocker Drive Encryption Wizard will
give the option of running a BitLocker system check via the option Run BitLocker
system check. This system check will ensure that BitLocker can properly access the
recovery and encryption keys before the volume encryption begins. it's
recommended run this system check before starting the encryption process. If the
system check isn't run and a problem is encountered when the operating system
attempts to start, the user will need to provide the recovery key to start Windows.
After completing the system check (if selected), the BitLocker Drive Encryption Wizard
will begin encryption. A reboot may be initiated to start encryption. If a reboot was
initiated, if there was no TPM and a password was specified, the password will need to
be entered to boot into the operating system volume.
Users can check encryption status by checking the system notification area or the
BitLocker control panel.
Until encryption is completed, the only available options for managing BitLocker involve
manipulation of the password protecting the operating system volume, backing up the
recovery key, and turning off BitLocker.
Data volume
Encrypting data volumes using the BitLocker control panel works in a similar fashion to
encryption of the operating system volumes. Users select Turn on BitLocker within the
BitLocker control panel to begin the BitLocker Drive Encryption Wizard.
1. Upon launching the BitLocker Drive Encryption Wizard, unlike for operating
system volumes, data volumes aren't required to pass any configuration tests for
the BitLocker Drive Encryption Wizard to proceed
3. The BitLocker Drive Encryption Wizard presents options for storage of the
recovery key. These options are the same as for operating system volumes:
Encrypt used disk space only - Encrypts only disk space that contains data.
Encrypt entire drive - Encrypts the entire volume including free space. Also
known as full disk encryption.
5. The BitLocker Drive Encryption Wizard will then prompt for an encryption mode:
Normally New encryption mode should be chosen, but if the drive will be
potentially moved to another computer with an older Windows operating system,
then select Compatible mode.
6. The BitLocker Drive Encryption Wizard will display a final confirmation screen
before the encryption process begins. Selecting Start encrypting begins
encryption.
Encryption status displays in the notification area or within the BitLocker control panel.
OneDrive option
There's an option for storing the BitLocker recovery key using OneDrive. This option
requires that computers aren't members of a domain and that the user is using a
Microsoft Account. Local accounts don't give the option to use OneDrive. Using the
OneDrive option is the default recommended recovery key storage method for
computers that aren't joined to a domain.
Users can verify whether the recovery key was saved properly by checking OneDrive for
the BitLocker folder. The BitLocker folder on OneDrive is created automatically during
the save process. The folder will contain two files, a readme.txt and the recovery key.
For users storing more than one recovery password on their OneDrive, they can identify
the required recovery key by looking at the file name. The recovery key ID is appended
to the end of the file name.
Down-level compatibility
The following table shows the compatibility matrix for systems that have been BitLocker
enabled and then presented to a different version of Windows.
Table 1: Cross compatibility for Windows 11, Windows 10, Windows 8.1, Windows 8, and
Windows 7 encrypted volumes
Partially encrypted Windows 11, Windows 10, and Windows 8 will N/A
volume from Windows 8.1 will complete complete encryption
Windows 7 encryption regardless of policy regardless of policy
Manage-bde.exe offers a multitude of wider options for configuring BitLocker. Using the
command syntax may require care. For example, using just the manage-bde.exe -on
command on a data volume will fully encrypt the volume without any authenticating
protectors. A volume encrypted in this manner still requires user interaction to turn on
BitLocker protection, even though the command successfully completed. For the volume
to be fully protected, an authentication method needs to also be added to the volume
in addition to running the manage-bde.exe command.
Command-line users need to determine the appropriate syntax for a given situation. The
following section covers general encryption for operating system volumes and data
volumes.
manage-bde.exe -status
This command returns the volumes on the target, current encryption status, and volume
type (operating system or data) for each volume. Using this information, users can
determine the best encryption method for their environment.
flash drive is drive letter E: , then the following manage-bde.exe commands would be
used t create the startup key and start the BitLocker encryption:
PowerShell
manage-bde.exe -on C:
This command will encrypt the drive using the TPM as the protector. If users are unsure
of the protector for a volume, they can use the -protectors option in manage-bde.exe to
list this information by executing the following command:
Another example is a user on a non-TPM hardware who wishes to add a password and
SID-based protector to the operating system volume. In this instance, the user adds the
protectors first. Adding the protectors is done with the command:
This command requires the user to enter and then confirm the password protectors
before adding them to the volume. With the protectors enabled on the volume, the user
just needs to turn on BitLocker.
A common protector for a data volume is the password protector. In the example below,
a password protector is added to the volume and turn on BitLocker.
PowerShell
Name Parameters
Add-BitLockerKeyProtector ADAccountOrGroup
ADAccountOrGroupProtector
Confirm
MountPoint
Password
PasswordProtector
Pin
RecoveryKeyPath
RecoveryKeyProtector
RecoveryPassword
RecoveryPasswordProtector
Service
StartupKeyPath
StartupKeyProtector
TpmAndPinAndStartupKeyProtector
TpmAndPinProtector
TpmAndStartupKeyProtector
TpmProtector
WhatIf
Name Parameters
Backup-BitLockerKeyProtector Confirm
KeyProtectorId
MountPoint
WhatIf
Disable-BitLocker Confirm
MountPoint
WhatIf
Disable-BitLockerAutoUnlock Confirm
MountPoint
WhatIf
Enable-BitLocker AdAccountOrGroup
AdAccountOrGroupProtector
Confirm
EncryptionMethod
HardwareEncryption
Password
PasswordProtector
Pin
RecoveryKeyPath
RecoveryKeyProtector
RecoveryPassword
RecoveryPasswordProtector
Service
SkipHardwareTest
StartupKeyPath
StartupKeyProtector
TpmAndPinAndStartupKeyProtector
TpmAndPinProtector
TpmAndStartupKeyProtector
TpmProtector
UsedSpaceOnly
WhatIf
Enable-BitLockerAutoUnlock Confirm
MountPoint
WhatIf
Get-BitLockerVolume MountPoint
Lock-BitLocker Confirm
ForceDismount
MountPoint
WhatIf
Name Parameters
Remove-BitLockerKeyProtector Confirm
KeyProtectorId
MountPoint
WhatIf
Resume-BitLocker Confirm
MountPoint
WhatIf
Suspend-BitLocker Confirm
MountPoint
RebootCount
WhatIf
Unlock-BitLocker AdAccountOrGroup
Confirm
MountPoint
Password
RecoveryKeyPath
RecoveryPassword
RecoveryPassword
WhatIf
A good initial step is to determine the current state of the volume(s) on the computer.
You can do this using the Get-BitLocker volume PowerShell cmdlet. The output from
this cmdlet displays information on the volume type, protectors, protection status, and
other useful information.
Occasionally, all protectors may not be shown when using Get-BitLockerVolume due to
lack of space in the output display. If all of the protectors for a volume aren't seen, the
Windows PowerShell pipe command ( | ) can be used to format a listing of the
protectors.
7 Note
In the event that there are more than four protectors for a volume, the pipe
command may run out of display space. For volumes with more than four
protectors, use the method described in the section below to generate a listing of
all protectors with protector ID.
PowerShell
Get-BitLockerVolume C: | fl
PowerShell
$vol = Get-BitLockerVolume
$keyprotectors = $vol.KeyProtector
Using this script, the information in the $keyprotectors variable can be displayed to
determine the GUID for each protector. This information can then be used to remove
the key protector for a specific volume using the command:
PowerShell
7 Note
The BitLocker cmdlet requires the key protector GUID (enclosed in quotation
marks) to execute. Ensure the entire GUID, with braces, is included in the command.
flexibility. For example, users can add the desired protector as part command for
encrypting the volume. Below are examples of common user scenarios and steps to
accomplish them using the BitLocker cmdlets for Windows PowerShell.
To enable BitLocker with just the TPM protector, use this command:
PowerShell
Enable-BitLocker C:
The example below adds one additional protector, the StartupKey protectors, and
chooses to skip the BitLocker hardware test. In this example, encryption starts
immediately without the need for a reboot.
PowerShell
PowerShell
2 Warning
The SID-based protector requires the use of an additional protector such as TPM,
PIN, recovery key, etc. when used on operating system volumes.
To add an ADAccountOrGroup protector to a volume, either the domain SID is needed
or the group name preceded by the domain and a backslash. In the example below, the
CONTOSO\Administrator account is added as a protector to the data volume G.
PowerShell
For users who wish to use the SID for the account or group, the first step is to determine
the SID associated with the account. To get the specific SID for a user account in
Windows PowerShell, use the following command:
PowerShell
7 Note
Tip
In the example below, the user wishes to add a domain SID-based protector to the
previously encrypted operating system volume. The user knows the SID for the user
account or group they wish to add and uses the following command:
PowerShell
7 Note
Status Description
Waiting for BitLocker is enabled with a clear protector key and requires further action to
Activation be fully protected
Using the control panel, administrators can choose Turn on BitLocker to start the
BitLocker Drive Encryption wizard and add a protector, like PIN for an operating system
volume (or password if no TPM exists), or a password or smart card protector to a data
volume. The drive security window displays prior to changing the volume status.
Selecting Activate BitLocker will complete the encryption process.
To check the status of a volume using manage-bde.exe , use the following command:
PowerShell
7 Note
If no volume letter is associated with the -status command, all volumes on the
computer display their status.
Using the Get-BitLockerVolume cmdlet, each volume on the system displays its current
BitLocker status. To get information that is more detailed on a specific volume, use the
following command:
PowerShell
This command displays information about the encryption method, volume type, key
protectors, and more.
The control panel doesn't report decryption progress but displays it in the notification
area of the task bar. Selecting the notification area icon will open a modal dialog with
progress.
Once decryption is complete, the drive updates its status in the control panel and
becomes available for encryption.
Manage-bde uses the -off command to start the decryption process. A sample
command for decryption is:
PowerShell
manage-bde.exe -off C:
This command disables protectors while it decrypts the volume and removes all
protectors when decryption is complete. If users wish to check the status of the
decryption, they can use the following command:
PowerShell
manage-bde.exe -status C:
the example below, the user has three encrypted volumes, which they wish to decrypt.
Using the Disable-BitLocker command, they can remove all protectors and encryption at
the same time without the need for more commands. An example of this command is:
PowerShell
Disable-BitLocker
If a user didn't want to input each mount point individually, using the -MountPoint
parameter in an array can sequence the same command into one line without requiring
additional user input. An example command is:
PowerShell
Related articles
Prepare your organization for BitLocker: Planning and policies
BitLocker recovery guide
BitLocker: How to enable Network Unlock
BitLocker overview
BitLocker deployment comparison
Article • 07/25/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
Server components ✅ ✅
required?
Administrative portal ✅ ✅
installation required
Requirements Microsoft Intune Microsoft Microsoft BitLocker
Configuration Administration and
Manager Monitoring (MBAM)
Compliance reporting ✅ ✅ ✅
capabilities
Force encryption ✅ ✅ ✅
Manage startup ✅ ✅ ✅
authentication
Store recovery password Yes (Active Yes (Active Yes (Active Directory
for operating system and Directory and Directory only) only)
fixed drives to Azure AD Azure AD)
or Active Directory
Customize preboot ✅ ✅ ✅
message and recovery
link
Can be administered ✅ ✅
outside company network
unique IDs
Wait to complete ✅
encryption until recovery
information is backed up
to Azure AD
Wait to complete ✅ ✅
encryption until recovery
information is backed up
to Active Directory
Prevent memory ✅ ✅
overwrite on restart
Manage auto-unlock ✅ ✅
functionality
BitLocker management
Article • 06/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
The ideal solution for BitLocker management is to eliminate the need for IT
administrators to set management policies using tools or other mechanisms by having
Windows perform tasks that are more practical to automate. This vision leverages
modern hardware developments. The growth of TPM 2.0, secure boot, and other
hardware improvements, for example, have helped to alleviate the support burden on
help desks and a decrease in support-call volumes, yielding improved user satisfaction.
Windows continues to be the focus for new features and improvements for built-in
encryption management, such as automatically enabling encryption on devices that
support Modern Standby beginning with Windows 8.1.
For more information about Windows licensing, see Windows licensing overview.
Managing domain-joined computers and
moving to cloud
Companies that image their own computers using Configuration Manager can use an
existing task sequence to pre-provision BitLocker encryption while in Windows
Preinstallation Environment (WinPE) and can then enable protection. These steps during
an operating system deployment can help ensure that computers are encrypted from
the start, even before users receive them. As part of the imaging process, a company
could also decide to use Configuration Manager to pre-set any desired BitLocker Group
Policy.
) Important
For hardware that is compliant with Modern Standby and HSTI, when using either of
these features, BitLocker Device Encryption is automatically turned on whenever the user
joins a device to Azure AD. Azure AD provides a portal where recovery keys are also
backed up, so users can retrieve their own recovery key for self-service, if necessary. For
older devices that aren't yet encrypted, beginning with Windows 10 version 1703,
admins can use the BitLocker CSP to trigger encryption and store the recovery key in
Azure AD. This process and feature is applicable to Azure Hybrid AD as well.
Managing servers
Servers are often installed, configured, and deployed using PowerShell; therefore, the
recommendation is to also use PowerShell to enable BitLocker on a server, ideally as
part of the initial setup. BitLocker is an Optional Component (OC) in Windows Server;
therefore, follow the directions in BitLocker: How to deploy on Windows Server 2012
and later to add the BitLocker OC.
The Minimal Server Interface is a prerequisite for some of the BitLocker administration
tools. On a Server Core installation, the necessary GUI components must be added first.
The steps to add shell components to Server Core are described in Using Features on
Demand with Updated Systems and Patched Images and How to update local source
media to add roles and features.
If a server is being installed manually, such as a stand-alone server, then choosing Server
with Desktop Experience is the easiest path because it avoids performing the steps to
add a GUI to Server Core.
Additionally, lights-out data centers can take advantage of the enhanced security of a
second factor while avoiding the need for user intervention during reboots by optionally
using a combination of BitLocker (TPM+PIN) and BitLocker Network Unlock. BitLocker
Network Unlock brings together the best of hardware protection, location dependence,
and automatic unlock, while in the trusted location. For the configuration steps, see
BitLocker: How to enable Network Unlock. For more information, see the BitLocker FAQs
article and other useful links in Related Articles.
PowerShell examples
For Azure AD-joined computers, including virtual machines, the recovery password
should be stored in Azure AD.
Example: Use PowerShell to add a recovery password and back it up to Azure AD before
enabling BitLocker
PowerShell
PowerShell
PowerShell
PowerShell
Related Articles
BitLocker: FAQs
Microsoft BitLocker Administration and Management (MBAM)
Overview of BitLocker Device Encryption in Windows
BitLocker Group Policy Reference
Microsoft Intune (Overview)
Configuration Settings Providers (Policy CSP: See Security-RequireDeviceEncryption)
BitLocker CSP
PowerShell
BitLocker cmdlets for Windows PowerShell
BitLocker: How to deploy on Windows
Server
Article • 06/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article explains how to deploy BitLocker on Windows Server. For all Windows Server
editions, BitLocker can be installed using Server Manager or Windows PowerShell
cmdlets. BitLocker requires administrator privileges on the server on which it's to be
installed.
Installing BitLocker
2. Select Manage from the Server Manager Navigation bar and select Add Roles
and Features to start the Add Roles and Features Wizard.
3. With the Add Roles and Features wizard open, select Next at the Before you
begin pane (if shown).
4. Select Role-based or feature-based installation on the Installation type pane of
the Add Roles and Features wizard and select Next to continue.
5. Select the Select a server from the server pool option in the Server Selection
pane and confirm the server on which the BitLocker feature is to be installed.
6. Select Next on the Server Roles pane of the Add Roles and Features wizard to
proceed to the Features pane.
7 Note
Server roles and features are installed by using the same wizard in Server
Manager.
7. Select the check box next to BitLocker Drive Encryption within the Features pane
of the Add Roles and Features wizard. The wizard shows the extra management
features available for BitLocker. If the extra management features aren't needed
and/or don't need to be installed, deselect the Include management tools.
7 Note
8. Select Add Features. Once optional features selection is complete, select Next to
proceed in the wizard.
9. Select Install on the Confirmation pane of the Add Roles and Features wizard to
begin BitLocker feature installation. The BitLocker feature requires a restart for its
installation to be complete. Selecting the Restart the destination server
automatically if required option in the Confirmation pane forces a restart of the
computer after installation is complete.
10. If the Restart the destination server automatically if required check box isn't
selected, the Results pane of the Add Roles and Features wizard displays the
success or failure of the BitLocker feature installation. If necessary, a notification of
other action necessary to complete the feature installation, such as the restart of
the computer, will be displayed in the results text.
7 Note
uses the Install-WindowsFeature cmdlet. The feature name for BitLocker in the
servermanager module is BitLocker .
PowerShell
The results of this command show that only the BitLocker Drive Encryption feature is
installed using this command.
To see what would be installed with the BitLocker feature, including all available
management tools and subfeatures, use the following command:
PowerShell
The result of this command displays the following list of all the administration tools for
BitLocker, which would be installed along with the feature, including tools for use with
Active Directory Domain Services (AD DS) and Active Directory Lightweight Directory
Services (AD LDS).
The command to complete a full installation of the BitLocker feature with all available
subfeatures and then to reboot the server at completion is:
PowerShell
) Important
Installing the BitLocker feature using Windows PowerShell does not install the
Enhanced Storage feature. Administrators wishing to support Encrypted Hard
Drives in their environment will need to install the Enhanced Storage feature
separately.
feature names for the dism.exe module, use the Get-WindowsOptionalFeatures cmdlet.
The following command lists all of the optional features in an online (running) operating
system.
PowerShell
Get-WindowsOptionalFeature -Online | ft
From this output, there are three BitLocker-related optional feature names: BitLocker,
BitLocker-Utilities and BitLocker-NetworkUnlock. To install the BitLocker feature, the
BitLocker and BitLocker-Utilities features are the only required items.
To install BitLocker using the dism.exe module, use the following command:
PowerShell
PowerShell
Related articles
BitLocker overview
BitLocker frequently asked questions (FAQ)
Prepare your organization for BitLocker: Planning and policies
BitLocker: How to enable Network Unlock
How to use the BitLocker drive
encryption tools to manage BitLocker
Article • 07/25/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
The tools can be used to perform any tasks that can be accomplished through the
BitLocker control panel and are appropriate to use for automated deployments and
other scripting scenarios.
Manage-bde
Manage-bde is a command-line tool that can be used for scripting BitLocker operations.
Manage-bde offers additional options not displayed in the BitLocker control panel. For a
complete list of the manage-bde.exe options, see the Manage-bde command-line
reference.
Manage-bde includes fewer default settings and requires greater customization for
configuring BitLocker. For example, using just the manage-bde.exe -on command on a
data volume will fully encrypt the volume without any authenticating protectors. A
volume encrypted in this manner still requires user interaction to turn on BitLocker
protection, even though the command successfully completed because an
authentication method needs to be added to the volume for it to be fully protected. The
following sections provide examples of common usage scenarios for manage-bde.
A good practice when using manage-bde.exe is to determine the volume status on the
target system. Use the following command to determine volume status:
Windows Command Prompt
manage-bde.exe -status
This command returns the volumes on the target, current encryption status, encryption
method, and volume type (operating system or data) for each volume:
The following example illustrates enabling BitLocker on a computer without a TPM chip.
Before beginning the encryption process, the startup key needed for BitLocker must be
created and saved to a USB drive. When BitLocker is enabled for the operating system
volume, BitLocker will need to access the USB flash drive to obtain the encryption key. In
this example, the drive letter E represents the USB drive. Once the commands are run, it
will prompt to reboot the computer to complete the encryption process.
7 Note
After the encryption is completed, the USB startup key must be inserted before the
operating system can be started.
An alternative to the startup key protector on non-TPM hardware is to use a password
and an ADaccountorgroup protector to protect the operating system volume. In this
scenario, the protectors are added first. To add the protectors, enter the following
command:
The above command will require the password protector to be entered and confirmed
before adding them to the volume. With the protectors enabled on the volume,
BitLocker can then be turned on.
On computers with a TPM, it's possible to encrypt the operating system volume without
defining any protectors using manage-bde.exe . To enable BitLocker on a computer with a
TPM without defining any protectors, enter the following command:
manage-bde.exe -on C:
The above command encrypts the drive using the TPM as the default protector. If verify
if a TPM protector is available, the list of protectors available for a volume can be listed
by running the following command:
or additional protectors can be added to the volume first. It's recommended to add at
least one primary protector plus a recovery protector to a data volume.
A common protector for a data volume is the password protector. In the example below,
a password protector is added to the volume and then BitLocker is turned on.
Windows Command Prompt
The BitLocker Repair Tool (repair-bde.exe) is useful for disaster recovery scenarios, in
which a BitLocker protected drive can't be unlocked normally or using the recovery
console.
The Repair Tool can reconstruct critical parts of the drive and salvage recoverable data,
as long as a valid recovery password or recovery key is used to decrypt the data. If the
BitLocker metadata data on the drive is corrupt, the backup key package in addition to
the recovery password or recovery key must be supplied. The key package is backed up
in Active Directory Domain Services (AD DS) if the default settings for AD DS backup are
used. With the key package and either the recovery password or recovery key, portions
of a corrupted BitLocker-protected drive can be decrypted. Each key package works only
for a drive that has the corresponding drive identifier. The BitLocker Recovery Password
Viewer can be used to obtain this key package from AD DS.
Tip
manage-bde.exe -KeyPackage
The Repair Tool is intended for use when the operating system doesn't start or when the
BitLocker Recovery Console can't be started. Use Repair-bde in the following conditions:
7 Note
Damage to the drive may not be related to BitLocker. Therefore, it is recommended
to try other tools to help diagnose and resolve the problem with the drive before
using the BitLocker Repair Tool. The Windows Recovery Environment (Windows RE)
provides additional options to repair computers.
The Repair-bde command-line tool can't repair a drive that failed during the
encryption or decryption process.
The Repair-bde command-line tool assumes that if the drive has any encryption,
then the drive has been fully encrypted.
Name Parameters
Add-BitLockerKeyProtector ADAccountOrGroup
ADAccountOrGroupProtector
Confirm
MountPoint
Password
PasswordProtector
Pin
RecoveryKeyPath
RecoveryKeyProtector
RecoveryPassword
RecoveryPasswordProtector
Service
StartupKeyPath
StartupKeyProtector
TpmAndPinAndStartupKeyProtector
TpmAndPinProtector
TpmAndStartupKeyProtector
TpmProtector
WhatIf
Backup-BitLockerKeyProtector Confirm
KeyProtectorId
Name Parameters
MountPoint
WhatIf
Disable-BitLocker Confirm
MountPoint
WhatIf
Disable-BitLockerAutoUnlock Confirm
MountPoint
WhatIf
Enable-BitLocker AdAccountOrGroup
AdAccountOrGroupProtector
Confirm
EncryptionMethod
HardwareEncryption
Password
PasswordProtector
Pin
RecoveryKeyPath
RecoveryKeyProtector
RecoveryPassword
RecoveryPasswordProtector
Service
SkipHardwareTest
StartupKeyPath
StartupKeyProtector
TpmAndPinAndStartupKeyProtector
TpmAndPinProtector
TpmAndStartupKeyProtector
TpmProtector
UsedSpaceOnly
WhatIf
Enable-BitLockerAutoUnlock Confirm
MountPoint
WhatIf
Get-BitLockerVolume MountPoint
Lock-BitLocker Confirm
ForceDismount
MountPoint
WhatIf
Remove-BitLockerKeyProtector Confirm
KeyProtectorId
MountPoint
WhatIf
Name Parameters
Resume-BitLocker Confirm
MountPoint
WhatIf
Suspend-BitLocker Confirm
MountPoint
RebootCount
WhatIf
Unlock-BitLocker AdAccountOrGroup
Confirm
MountPoint
Password
RecoveryKeyPath
RecoveryPassword
RecoveryPassword
WhatIf
A good initial step is to determine the current state of the volume(s) on the computer.
Determining the current state of the volume(s) can be done using the Get-
BitLockerVolume cmdlet.
Tip
Get-BitLockerVolume C: | fl
To remove the existing protectors prior to provisioning BitLocker on the volume, use the
Remove-BitLockerKeyProtector cmdlet. Running this cmdlet requires the GUID
PowerShell
$vol = Get-BitLockerVolume
$keyprotectors = $vol.KeyProtector
By using this script, the information in the $keyprotectors variable can be displayed to
determine the GUID for each protector.
By using this information, the key protector for a specific volume can be removed using
the command:
PowerShell
7 Note
The BitLocker cmdlet requires the key protector GUID enclosed in quotation marks
to execute. Ensure the entire GUID, with braces, is included in the command.
The following example shows how to enable BitLocker on an operating system drive
using only the TPM protector:
PowerShell
Enable-BitLocker C:
In the example below, adds one additional protector, the StartupKey protector and
chooses to skip the BitLocker hardware test. In this example, encryption starts
immediately without the need for a reboot.
PowerShell
PowerShell
2 Warning
To add an ADAccountOrGroup protector to a volume, use either the actual domain SID
or the group name preceded by the domain and a backslash. In the example below, the
CONTOSO\Administrator account is added as a protector to the data volume G.
PowerShell
For users who wish to use the SID for the account or group, the first step is to determine
the SID associated with the account. To get the specific SID for a user account in
Windows PowerShell, use the following command:
7 Note
PowerShell
Tip
PowerShell
7 Note
Related articles
BitLocker overview
BitLocker frequently asked questions (FAQ)
Prepare your organization for BitLocker: Planning and policies
BitLocker: How to enable Network Unlock
BitLocker: How to deploy on Windows Server 2012
How to use BitLocker Recovery
Password Viewer
Article • 07/25/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
BitLocker Recovery Password Viewer is an optional tool included with the Remote Server
Administration Tools (RSAT). With Recovery Password Viewer you can view the BitLocker
recovery passwords that are stored in Active Directory Domain Services (AD DS). The
tool is an extension for the Active Directory Users and Computers Microsoft Management
Console (MMC) snap-in.
Check the Active Directory computer object's properties to find the associated
BitLocker recovery passwords
Search Active Directory for BitLocker recovery password across all the domains in
the Active Directory forest. Passwords can also be searched by password identifier
(ID)
Requirements
To complete the procedures in this scenario, the following requirements must be met:
The following procedures describe the most common tasks performed by using the
BitLocker Recovery Password Viewer.
Organizations can use BitLocker recovery information saved in Active Directory Domain
Services (AD DS) to access BitLocker-protected data. It's recommended to create a
recovery model for BitLocker while planning for BitLocker deployment.
This article assumes that it's understood how to set up AD DS to back up BitLocker
recovery information automatically, and what types of recovery information are saved to
AD DS.
This article doesn't detail how to configure AD DS to store the BitLocker recovery
information.
The user can supply the recovery password. If the organization allows users to
print or store recovery passwords, the users can enter in the 48-digit recovery
password that they printed or stored on a USB drive or with a Microsoft account
online. Saving a recovery password with a Microsoft account online is only allowed
when BitLocker is used on a PC that isn't a member of a domain.
Data recovery agents can use their credentials to unlock the drive. If the drive is
an operating system drive, the drive must be mounted as a data drive on another
computer for the data recovery agent to unlock it.
A domain administrator can obtain the recovery password from AD DS and use
it to unlock the drive. Storing recovery passwords in AD DS is recommended to
provide a way for IT professionals to be able to obtain recovery passwords for
drives in an organization if needed. This method makes it mandatory to enable this
recovery method in the BitLocker group policy setting Choose how BitLocker-
protected operating system drives can be recovered located at Computer
Configuration > Administrative Templates > Windows Components > BitLocker
Drive Encryption > Operating System Drives in the Local Group Policy Editor. For
more information, see BitLocker Group Policy settings.
On devices with TPM 1.2, changing the BIOS or firmware boot device order causes
BitLocker recovery. However, devices with TPM 2.0 don't start BitLocker recovery in
this case. TPM 2.0 doesn't consider a firmware change of boot device order as a
security threat because the OS Boot Loader isn't compromised.
Having the CD or DVD drive before the hard drive in the BIOS boot order and then
inserting or removing a CD or DVD.
Failing to boot from a network drive before booting from the hard drive.
Changes to the NTFS partition table on the disk including creating, deleting, or
resizing a primary partition.
Entering the personal identification number (PIN) incorrectly too many times so
that the anti-hammering logic of the TPM is activated. Anti-hammering logic is
software or hardware methods that increase the difficulty and cost of a brute force
attack on a PIN by not accepting PIN entries until after a certain amount of time
has passed.
Turning off the support for reading the USB device in the pre-boot environment
from the BIOS or UEFI firmware if using USB-based keys instead of a TPM.
Adding or removing hardware; for example, inserting a new card in the computer,
including some PCMIA wireless cards.
Hiding the TPM from the operating system. Some BIOS or UEFI settings can be
used to prevent the enumeration of the TPM to the operating system. When
implemented, this option can make the TPM hidden from the operating system.
When the TPM is hidden, BIOS and UEFI secure startup are disabled, and the TPM
doesn't respond to commands from any software.
Using a different keyboard that doesn't correctly enter the PIN or whose keyboard
map doesn't match the keyboard map assumed by the pre-boot environment. This
problem can prevent the entry of enhanced PINs.
Modifying the Platform Configuration Registers (PCRs) used by the TPM validation
profile. For example, including PCR[1] would result in BitLocker measuring most
changes to BIOS settings, causing BitLocker to enter recovery mode even when
non-boot critical BIOS settings change.
7 Note
Some computers have BIOS settings that skip measurements to certain PCRs,
such as PCR[2]. Changing this setting in the BIOS would cause BitLocker to
enter recovery mode because the PCR measurement will be different.
Losing the USB flash drive containing the startup key when startup key
authentication has been enabled.
Having a BIOS, UEFI firmware, or an option ROM component that isn't compliant
with the relevant Trusted Computing Group standards for a client computer. For
example, a non-compliant implementation may record volatile data (such as time)
in the TPM measurements, causing different measurements on each startup and
causing BitLocker to start in recovery mode.
Changing the usage authorization for the storage root key of the TPM to a non-
zero value.
7 Note
The BitLocker TPM initialization process sets the usage authorization value to
zero, so another user or process must explicitly have changed this value.
Disabling the code integrity check or enabling test signing on Windows Boot
Manager (Bootmgr).
Using a BIOS hot key during the boot process to change the boot order to
something other than the hard drive.
7 Note
7 Note
Recovery has been described within the context of unplanned or undesired behavior.
However, recovery can also be caused as an intended production scenario, for example
in order to manage access control. When desktop or laptop computers are redeployed
to other departments or employees in the enterprise, BitLocker can be forced into
recovery before the computer is given to a new user.
Testing recovery
Before a thorough BitLocker recovery process is created, it's recommended to test how
the recovery process works for both end users (people who call the helpdesk for the
recovery password) and administrators (people who help the end user get the recovery
password). The -forcerecovery command of manage-bde.exe is an easy way to step
through the recovery process before users encounter a recovery situation.
7 Note
After a BitLocker recovery has been initiated, users can use a recovery password to
unlock access to encrypted data. Consider both self-recovery and recovery password
retrieval methods for the organization.
Determine a series of steps for post-recovery, including analyzing why the recovery
occurred and resetting the recovery password. See:
Post-recovery analysis
Self-recovery
In some cases, users might have the recovery password in a printout or a USB flash drive
and can perform self-recovery. It's recommended that the organization creates a policy
for self-recovery. If self-recovery includes using a password or recovery key stored on a
USB flash drive, the users must be warned not to store the USB flash drive in the same
place as the PC, especially during travel. For example, if both the PC and the recovery
items are in the same bag it would be easy for access to be gained to the PC by an
unauthorized user. Another policy to consider is having users contact the Helpdesk
before or after performing self-recovery so that the root cause can be identified.
7 Note
If the PCs are part of a workgroup, users are advised to save their BitLocker
recovery password with their Microsoft account online. Having an online copy of
the BitLocker recovery password is recommended to help ensure access to data is
not lost in the event of a recovery being required.
The BitLocker Recovery Password Viewer for Active Directory Users and Computers tool
allows domain administrators to view BitLocker recovery passwords for specific
computer objects in Active Directory.
The following list can be used as a template for creating a recovery process for recovery
password retrieval. This sample process uses the BitLocker Recovery Password Viewer for
Active Directory Users and Computers tool.
To make sure the correct password is provided and/or to prevent providing the incorrect
password, ask the user to read the eight character password ID that is displayed in the
recovery console.
Since the password ID is a unique value that is associated with each recovery password
stored in AD DS, running a query using this ID finds the correct password to unlock the
encrypted volume.
7 Note
Post-recovery analysis
When a volume is unlocked using a recovery password, an event is written to the event
log, and the platform validation measurements are reset in the TPM to match the
current configuration. Unlocking the volume means that the encryption key has been
released and is ready for on-the-fly encryption when data is written to the volume, and
on-the-fly decryption when data is read from the volume. After the volume is unlocked,
BitLocker behaves the same way, regardless of how the access was granted.
1. Which BitLocker protection mode is in effect (TPM, TPM + PIN, TPM + startup key,
startup key only)? Which PCR profile is in use on the PC?
2. Did the user merely forget the PIN or lose the startup key? If a token was lost,
where might the token be?
3. If TPM mode was in effect, was recovery caused by a boot file change?
4. If recovery was caused by a boot file change, is the boot file change due to an
intended user action (for example, BIOS upgrade), or a malicious software?
5. When was the user last able to start the computer successfully, and what might
have happened to the computer since then?
6. Might the user have encountered malicious software or left the computer
unattended since the last successful startup?
To help answer these questions, use the BitLocker command-line tool to view the
current configuration and protection mode:
manage-bde.exe -status
Scan the event log to find events that help indicate why recovery was initiated (for
example, if a boot file change occurred). Both of these capabilities can be performed
remotely.
The details of this reset can vary according to the root cause of the recovery. If root
cause can't be determined, or if a malicious software or a rootkit might have infected
the computer, Helpdesk should apply best-practice virus policies to react appropriately.
7 Note
BitLocker validation profile reset can be performed by suspending and resuming
BitLocker.
Unknown PIN
Lost startup key
Changes to boot files
Unknown PIN
If a user has forgotten the PIN, the PIN must be reset while signed on to the computer
in order to prevent BitLocker from initiating recovery each time the computer is
restarted.
a. Select and hold the drive and then select Change PIN
b. In the BitLocker Drive Encryption dialog, select Reset a forgotten PIN. If the
signed in account isn't an administrator account, administrative credentials must
be provided at this time.
c. In the PIN reset dialog, provide and confirm the new PIN to be used and then
select Finish.
3. The new PIN can be used the next time the drive needs to be unlocked.
3. Select Duplicate start up key, insert the clean USB drive where the key will be
written, and then select Save.
Changes to boot files
This error occurs if the firmware is updated. As a best practice, BitLocker should be
suspended before making changes to the firmware. Protection should then be resumed
after the firmware update has completed. Suspending BitLocker prevents the computer
from going into recovery mode. However, if changes were made when BitLocker
protection was on, the recovery password can be used to unlock the drive and the
platform validation profile will be updated so that recovery won't occur the next time.
Windows RE will also ask for a BitLocker recovery key when a Remove everything reset
from Windows RE is started on a device that uses TPM + PIN or Password for OS drive
protectors. If BitLocker recovery is started on a keyboardless device with TPM-only
protection, Windows RE, not the boot manager, will ask for the BitLocker recovery key.
After the key is entered, Windows RE troubleshooting tools can be accessed, or
Windows can be started normally.
The BitLocker recovery screen that's shown by Windows RE has the accessibility tools
like narrator and on-screen keyboard to help enter the BitLocker recovery key. If the
BitLocker recovery key is requested by the Windows boot manager, those tools might
not be available.
To activate the narrator during BitLocker recovery in Windows RE, press Windows +
CTRL + Enter. To activate the on-screen keyboard, tap on a text input control.
BitLocker recovery screen
During BitLocker recovery, Windows displays a custom recovery message and a few
hints that identify where a key can be retrieved from. These improvements can help a
user during BitLocker recovery.
This policy can be configured using GPO under Computer Configuration >
Administrative Templates > Windows Components > BitLocker Drive Encryption >
Operating System Drives > Configure pre-boot recovery message and URL.
It can also be configured using mobile device management (MDM), including in Intune,
using the BitLocker CSP:
<LocURI>./Device/Vendor/MSFT/BitLocker/SystemDrivesRecoveryMessage</LocURI>
) Important
It is not recommend to print recovery keys or saving them to a file. Instead, use
Active Directory backup or a cloud-based backup. Cloud-based backup includes
Azure Active Directory (Azure AD) and Microsoft account.
There are rules governing which hint is shown during the recovery (in the order of
processing):
1. Always display custom recovery message if it has been configured (using GPO or
MDM).
3. If multiple recovery keys exist on the volume, prioritize the last-created (and
successfully backed up) recovery key.
4. Prioritize keys with successful backup over keys that have never been backed up.
5. Prioritize backup hints in the following order for remote backup locations:
Microsoft Account > Azure AD > Active Directory.
6. If a key has been printed and saved to file, display a combined hint, "Look for a
printout or a text file with the key," instead of two separate hints.
7. If multiple backups of the same type (remove vs. local) have been performed for
the same recovery key, prioritize backup info with latest backed-up date.
8. There's no specific hint for keys saved to an on-premises Active Directory. In this
case, a custom message (if configured) or a generic message, "Contact your
organization's help desk," is displayed.
9. If two recovery keys are present on the disk, but only one has been successfully
backed up, the system asks for a key that has been backed up, even if another key
is newer.
Saved to Azure AD No
Printed No
Custom URL Yes
Saved to file No
Result: The hints for the Microsoft account and custom URL are displayed.
Saved to Azure AD No
Printed No
Saved to file No
Custom URL No
Printed Yes
Custom URL No
Saved to Azure AD No
Printed No
Key ID A564F193
Custom URL No
Saved to Azure AD No
Printed No
Saved to file No
Key ID T4521ER5
Result: Only the hint for a successfully backed up key is displayed, even if it isn't the
most recent key.
Example 5 (multiple recovery passwords)
Custom URL No
Printed No
Saved to file No
Key ID 99631A34
Custom URL No
Printed No
Saved to file No
Key ID 9DF70931
Result: The hint for the most recent key is displayed.
7 Note
The BitLocker Repair tool repair-bde.exe must be used to use the BitLocker key
package.
The BitLocker key package isn't saved by default. To save the package along with the
recovery password in AD DS, the Backup recovery password and key package option
must be selected in the group policy settings that control the recovery method. The key
package can also be exported from a working volume. For more information on how to
export key packages, see Retrieving the BitLocker Key Package.
Run a script: A script can be run to reset the password without decrypting the
volume. The sample script in the procedure illustrates this functionality. The sample
script creates a new recovery password and invalidates all other passwords.
3. Get the ID of the new recovery password. From the screen, copy the ID of the
recovery password.
2 Warning
ResetPassword.vbs .
cscript.exe ResetPassword.vbs
) Important
This sample script is configured to work only for the C volume. If necessary,
customize the script to match the volume where the password reset needs to
be tested.
7 Note
To manage a remote computer, specify the remote computer name rather than the
local computer name.
The following sample VBScript can be used to reset the recovery passwords:
Expand to view sample recovery password VBscript to reset the recovery passwords
VB
Export a previously saved key package from AD DS. Read access is required to
BitLocker recovery passwords that are stored in AD DS.
2. At the command prompt, enter a command similar to the following sample script:
cscript.exe GetBitLockerKeyPackageADDS.vbs -?
The following sample script can be used to create a VBScript file to retrieve the BitLocker
key package from AD DS:
Expand to view sample key package retrieval VBscript that exports all previously saved
key packages from AD DS
VB
' --------------------------------------------------------------------------
------
' Usage
' --------------------------------------------------------------------------
------
Sub ShowUsage
Wscript.Echo "USAGE: GetBitLockerKeyPackageADDS [Path To Save Key
Package] [Optional Computer Name]"
Wscript.Echo "If no computer name is specified, the local computer is
assumed."
Wscript.Echo
Wscript.Echo "Example: GetBitLockerKeyPackageADDS E:\bitlocker-ad-key-
package mycomputer"
WScript.Quit
End Sub
' --------------------------------------------------------------------------
------
' Parse Arguments
' --------------------------------------------------------------------------
------
Set args = WScript.Arguments
Select Case args.Count
Case 1
If args(0) = "/?" Or args(0) = "-?" Then
ShowUsage
Else
strFilePath = args(0)
' Get the name of the local computer
Set objNetwork = CreateObject("WScript.Network")
strComputerName = objNetwork.ComputerName
End If
Case 2
If args(0) = "/?" Or args(0) = "-?" Then
ShowUsage
Else
strFilePath = args(0)
strComputerName = args(1)
End If
Case Else
ShowUsage
End Select
' --------------------------------------------------------------------------
------
' Get path to Active Directory computer object associated with the computer
name
' --------------------------------------------------------------------------
------
Function GetStrPathToComputer(strComputerName)
' Uses the global catalog to find the computer in the forest
' Search also includes deleted computers in the tombstone
Set objRootLDAP = GetObject("LDAP://rootDSE")
namingContext = objRootLDAP.Get("defaultNamingContext") ' e.g. string
dc=fabrikam,dc=com
strBase = "<GC://" & namingContext & ">"
cscript.exe GetBitLockerKeyPackage.vbs -?
Expand to view sample VBscript that exports a new key package from an unlocked,
encrypted volume
VB
' --------------------------------------------------------------------------
------
' Usage
' --------------------------------------------------------------------------
------
Sub ShowUsage
Wscript.Echo "USAGE: GetBitLockerKeyPackage [VolumeLetter/DriveLetter:]
[Path To Save Key Package]"
Wscript.Echo
Wscript.Echo "Example: GetBitLockerKeyPackage C: E:\bitlocker-backup-key-
package"
WScript.Quit
End Sub
' --------------------------------------------------------------------------
------
' Parse Arguments
' --------------------------------------------------------------------------
------
Set args = WScript.Arguments
Select Case args.Count
Case 2
If args(0) = "/?" Or args(0) = "-?" Then
ShowUsage
Else
strDriveLetter = args(0)
strFilePath = args(1)
End If
Case Else
ShowUsage
End Select
' --------------------------------------------------------------------------
------
' Other Inputs
' --------------------------------------------------------------------------
------
' Target computer name
' Use "." to connect to the local computer
strComputerName = "."
' Default key protector ID to use. Specify "" to let the script choose.
strDefaultKeyProtectorID = ""
' strDefaultKeyProtectorID = "{001298E0-870E-4BA0-A2FF-FC74758D5720}" '
sample
' --------------------------------------------------------------------------
------
' Connect to the BitLocker WMI provider class
' --------------------------------------------------------------------------
------
strConnectionStr = "winmgmts:" _
& "
{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" _
& strComputerName _
& "\root\cimv2\Security\MicrosoftVolumeEncryption"
Applies to:
This article describes the procedure to protect cluster shared volumes (CSVs) and
storage area networks (SANs) by using BitLocker.
BitLocker protects both physical disk resources and cluster shared volumes version 2.0
(CSV2.0). BitLocker on clustered volumes provides an extra layer of protection that can
be used by administrators wishing to protect sensitive, highly available data. The
administrators use this extra layer of protection to increase the security to resources.
Only certain user accounts provided access to unlock the BitLocker volume.
) Important
SANs used with BitLocker must have obtained Windows Hardware Certification. For
more info, see Windows Hardware Lab Kit.
Instead, the volume can be a cluster-shared volume. Windows Server 2012 expanded
the CSV architecture, now known as CSV2.0, to enable support for BitLocker. The
volumes that are designated for a cluster must do the following tasks:
It must turn on BitLocker—only after this task is done, can the volumes be added
to the storage pool.
It must put the resource into maintenance mode before BitLocker operations are
completed.
7 Note
Mount points can be used to support remote mount points on SMB-based network
shares. This type of share is not supported for BitLocker encryption.
If there's a thinly provisioned storage, such as a dynamic virtual hard disk (VHD),
BitLocker runs in Used Disk Space Only encryption mode. The manage-bde.exe -
WipeFreeSpace command can't be used to transition the volume to full-volume
occupy the entire backing store while wiping the unoccupied (free) space.
BitLocker service interrupts the request and uses the BitLocker protect/unprotect
APIs to unlock or deny the request.
1. Clear key
2. Driver-based auto-unlock key
3. ADAccountOrGroup protector
b. User protector
7 Note
A Windows Server 2012 or later domain controller is required for this feature to
work properly.
7 Note
The advantage of The Bitlocker encryption can even be made available for disks
after they are added to a cluster storage pool. The advantage of encrypting
volumes prior to adding them to a cluster is that the disk resource need not be
suspended to complete the operation. To turn on BitLocker for a disk before adding
it to a cluster:
2. Ensure the disk is an NTFS-formatted one and has a drive letter assigned to it.
PowerShell
Get-Cluster
2 Warning
PowerShell
3. Put the physical disk resource into maintenance mode using Windows PowerShell.
PowerShell
PowerShell
Get-Cluster
5. Enable BitLocker a volume with an ADAccountOrGroup protector, using the cluster
name. For example, use a command such as:
PowerShell
2 Warning
PowerShell
Manage-bde.exe can also be used to enable BitLocker on clustered volumes. The steps
needed to add a physical disk resource or CSV2.0 volume to an existing cluster are:
1. Verify that the BitLocker drive encryption feature is installed on the computer.
3. Encrypt the volume, add a recovery key and add the cluster administrator as a
protector key using manage-bde.exe in a command prompt window. For example:
a. BitLocker will check to see if the disk is already part of a cluster. If it is,
administrators will encounter a hard block. Otherwise, the encryption continues.
b. Using the -sync parameter is optional. However, using the -sync parameter has
the advantage of ensuring the command waits until the encryption for the
volume is completed. The volume is then released for use in the cluster storage
pool.
4. Open the Failover Cluster Manager snap-in or cluster PowerShell cmdlets to enable
the disk to be clustered.
5. During the resource online operation, cluster checks whether the disk is BitLocker
encrypted.
a. If the volume isn't BitLocker enabled, traditional cluster online operations occur.
6. Once the disk is online in the storage pool, it can be added to a CSV by right-
clicking the disk resource, and choosing "Add to cluster shared volumes".
CSVs include both encrypted and unencrypted volumes. To check the status of a
particular volume for BitLocker encryption run the manage-bde.exe -status command as
an administrator with a path to the volume. The path must be one that is inside the CSV
namespace. For example:
7 Note
If an administrator needs to decrypt a CSV volume, remove the volume from the
cluster or put it into disk maintenance mode. The CSV can be added back to the
cluster while waiting for decryption to complete.
If conversion is paused with encryption in progress and the CSV volume is offline
from the cluster, the cluster thread (health check) automatically resumes
conversion when the volume is online to the cluster.
If conversion is paused with encryption in progress, while the disk resource volume
is in maintenance mode, the BitLocker driver automatically resumes conversion
when the volume is moved back from maintenance mode.
BitLocker: How to enable Network
Unlock
Article • 06/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article describes how BitLocker Network Unlock works and how to configure it.
Network Unlock is a BitLocker protector option for operating system volumes. Network
Unlock enables easier management for BitLocker-enabled desktops and servers in a
domain environment by providing automatic unlock of operating system volumes at
system reboot when connected to a wired corporate network. This feature requires the
client hardware to have a DHCP driver implemented in its UEFI firmware. Without
Network Unlock, operating system volumes protected by TPM+PIN protectors require a
PIN to be entered when a computer reboots or resumes from hibernation (for example,
by Wake on LAN). Requiring a PIN after a reboot can make it difficult to enterprises to
roll out software patches to unattended desktops and remotely administered servers.
Network Unlock allows BitLocker-enabled systems that have a TPM+PIN and that meet
the hardware requirements to boot into Windows without user intervention. Network
Unlock works in a similar fashion to the TPM+StartupKey at boot. Rather than needing
to read the StartupKey from USB media, however, the Network Unlock feature needs the
key to be composed from a key stored in the TPM and an encrypted network key that is
sent to the server, decrypted and returned to the client in a secure session.
7 Note
To properly support DHCP within UEFI, the UEFI-based system should be in native
mode and shouldn't have a compatibility support module (CSM) enabled.
For Network Unlock to work reliably on computers, the first network adapter on the
computer, usually the onboard adapter, must be configured to support DHCP. This first
network adapter must be used for Network Unlock. This configuration is especially
worth noting when the device has multiple adapters, and some adapters are configured
without DHCP, such as for use with a lights-out management protocol. This
configuration is necessary because Network Unlock stops enumerating adapters when it
reaches one with a DHCP port failure for any reason. Thus, if the first enumerated
adapter doesn't support DHCP, isn't plugged into the network, or fails to report
availability of the DHCP port for any reason, then Network Unlock fails.
The network key is stored on the system drive along with an AES 256 session key and
encrypted with the 2048-bit RSA public key of the Unlock server certificate. The network
key is decrypted with the help of a provider on a supported version of Windows Server
running WDS, and returned encrypted with its corresponding session key.
On the server side, the WDS server role has an optional plugin component, like a PXE
provider, which is what handles the incoming Network Unlock requests. The provider
can also be configured with subnet restrictions, which would require that the IP address
provided by the client in the Network Unlock request belong to a permitted subnet to
release the network key to the client. In instances where the Network Unlock provider is
unavailable, BitLocker fails over to the next available protector to unlock the drive. In a
typical configuration, the standard TPM+PIN unlock screen is presented to unlock the
drive.
The server side configuration to enable Network Unlock also requires provisioning a
2048-bit RSA public/private key pair in the form of an X.509 certificate, and distributing
the public key certificate to the clients. This certificate must be managed and deployed
through the Group Policy editor directly on a domain controller with at least a Domain
Functional Level of Windows Server 2012. This certificate is the public key that encrypts
the intermediate network key (which is one of the two secrets required to unlock the
drive; the other secret is stored in the TPM).
Manage and deploy this certificate through the Group Policy editor directly on a domain
controller that has a domain functional level of at least Windows Server 2012. This
certificate is the public key that encrypts the intermediate network key. The intermediate
network key is one of the two secrets that are required to unlock the drive; the other
secret is stored in the TPM.
The Network Unlock process follows these phases:
1. The Windows boot manager detects a Network Unlock protector in the BitLocker
configuration.
2. The client computer uses its DHCP driver in the UEFI to get a valid IPv4 IP address.
a. A network key (a 256-bit intermediate key) that is encrypted by using the 2048-
bit RSA Public Key of the Network Unlock certificate from the WDS server.
4. The Network Unlock provider on the WDS server recognizes the vendor-specific
request.
5. The provider decrypts the request by using the WDS server's BitLocker Network
Unlock certificate RSA private key.
6. The WDS provider returns the network key encrypted with the session key by using
its own vendor-specific DHCP reply to the client computer. This key is an
intermediate key.
7. The returned intermediate key is combined with another local 256-bit intermediate
key. This key can be decrypted only by the TPM.
8. This combined key is used to create an AES-256 key that unlocks the volume.
To install the role by using Windows PowerShell, use the following command:
PowerShell
Install-WindowsFeature WDS-Deployment
The WDS server must be configured so that it can communicate with DHCP (and
optionally AD DS) and the client computer. The WDS server can be configured using the
WDS management tool, wdsmgmt.msc , which starts the Windows Deployment Services
Configuration wizard.
To confirm that the service is running using Windows PowerShell, use the following
command:
PowerShell
Get-Service WDSServer
To install the feature by using Windows PowerShell, use the following command:
PowerShell
Install-WindowsFeature BitLocker-NetworkUnlock
4. Select the General tab of the template. The Template display name and Template
name should clearly identify that the template will be used for Network Unlock.
Clear the check box for the Publish certificate in Active Directory option.
5. Select the Request Handling tab. Select Encryption from the Purpose drop-down
menu. Ensure that the Allow private key to be exported option is selected.
6. Select the Cryptography tab. Set the Minimum key size to 2048. Any Microsoft
cryptographic provider that supports RSA can be used for this template, but for
simplicity and forward compatibility, it is recommended to use Microsoft Software
Key Storage Provider.
7. Select the Requests must use one of the following providers option and clear all
options except for the cryptography provider selected, such as Microsoft Software
Key Storage Provider.
8. Select the Subject Name tab. Select Supply in the request. Select OK if the
certificate templates pop-up dialog appears.
10. Select the Extensions tab. Select Application Policies and choose Edit….
11. In the Edit Application Policies Extension options dialog box, select Client
Authentication, Encrypting File System, and Secure Email and choose Remove.
12. On the Edit Application Policies Extension dialog box, select Add.
13. On the Add Application Policy dialog box, select New. In the New Application
Policy dialog box, enter the following information in the space provided and then
select OK to create the BitLocker Network Unlock application policy:
14. Select the newly created BitLocker Network Unlock application policy and select
OK.
15. With the Extensions tab still open, select the Edit Key Usage Extension dialog.
Select the Allow key exchange only with key encryption (key encipherment)
option. Select the Make this extension critical option.
16. Select the Security tab. Confirm that the Domain Admins group has been granted
Enroll permission.
To add the Network Unlock template to the certificate authority, open the certificate
authority snap-in ( certsrv.msc ). Right-click Certificate Templates, and then choose
New, Certificate Template to issue. Select the previously created BitLocker Network
Unlock certificate.
After the Network Unlock template is added to the certificate authority, this certificate
can be used to configure BitLocker Network Unlock.
6. Choose the certificate template that was created for Network Unlock on the
domain controller. Then select Enroll.
7. When prompted for more information, select Subject Name and provide a friendly
name value. The friendly name should include information for the domain or
organizational unit for the certificate. For example:
8. Create the certificate. Ensure the certificate appears in the Personal folder.
c. Select DER encoded binary X.509 and complete exporting the certificate to a
file.
10. Export the public key with a private key for Network Unlock.
Windows PowerShell:
PowerShell
certreq.exe:
notepad.exe BitLocker-NetworkUnlock.inf
ini
[NewRequest]
Subject="CN=BitLocker Network Unlock certificate"
ProviderType=0
MachineKeySet=True
Exportable=true
RequestType=Cert
KeyUsage="CERT_KEY_ENCIPHERMENT_KEY_USAGE"
KeyUsageProperty="NCRYPT_ALLOW_DECRYPT_FLAG |
NCRYPT_ALLOW_SIGNING_FLAG"
KeyLength=2048
SMIME=FALSE
HashAlgorithm=sha512
[Extensions]
1.3.6.1.4.1.311.21.10 = "{text}"
_continue_ = "OID=1.3.6.1.4.1.311.67.1.1"
2.5.29.37 = "{text}"
_continue_ = "1.3.6.1.4.1.311.67.1.1"
3. Open an elevated command prompt and use the certreq.exe tool to create a new
certificate. Use the following command, specifying the full path to the file that was
created previously along with the file name:
6. Create a .pfx file by following the below steps the Certificates - Local Computer
console:
b. Right-click the previously imported certificate, select All Tasks, and then select
Export
3. In the File to Import dialog, choose the .pfx file created previously.
4. Enter the password used to create the .pfx and complete the wizard.
The following steps describe how to enable the group policy setting that is a
requirement for configuring Network Unlock.
The following steps describe how to deploy the required group policy setting:
7 Note
The group policy settings Allow Network Unlock at startup and Add Network
Unlock Certificate were introduced in Windows Server 2012.
1. Copy the .cer file that was created for Network Unlock to the domain controller.
3. Create a new Group Policy Object or modify an existing object to enable the Allow
Network Unlock at startup setting.
Computer Configuration > Policies > Windows Settings > Security Settings >
Public Key Policies > BitLocker Drive Encryption Network Unlock Certificate.
c. Follow the wizard steps and import the .cer file that was copied earlier.
7 Note
7 Note
The Network (Certificate Based) protector will be added only after a reboot,
with the policy enabled and a valid certificate present in the FVE_NKP store.
The subnet policy configuration file must use a [SUBNETS] section to identify the
specific subnets. The named subnets may then be used to specify restrictions in
certificate subsections. Subnets are defined as simple name-value pairs, in the common
INI format, where each subnet has its own line, with the name on the left of the equal-
sign, and the subnet identified on the right of the equal-sign as a Classless Inter-Domain
Routing (CIDR) address or range. The key word ENABLED is disallowed for subnet
names.
ini
[SUBNETS]
SUBNET1=10.185.250.0/24 ; a comment about this subrange could be here, after
the semicolon
SUBNET2=10.185.252.200/28
SUBNET3= 2001:4898:a:2::/64 ; an IPv6 subnet
SUBNET4=2001:4898:a:3::/64; in production, the admin would likely give more
useful names, like BUILDING9-EXCEPT-RECEP.
Following the [SUBNETS] section, there can be sections for each Network Unlock
certificate, identified by the certificate thumbprint formatted without any spaces, which
define the subnets clients that can be unlocked from that certificate.
7 Note
When specifying the certificate thumbprint, do not include any spaces. If spaces are
included in the thumbprint, the subnet configuration fails because the thumbprint
will not be recognized as valid.
Subnet restrictions are defined within each certificate section by denoting the allowed
list of permitted subnets. If any subnets are listed in a certificate section, then only those
subnets are permitted for that certificate. If no subnet is listed in a certificate section,
then all subnets are permitted for that certificate. If a certificate doesn't have a section in
the subnet policy configuration file, then no subnet restrictions are applied for unlocking
with that certificate. For restrictions to apply to every certificate, there must be a
certificate section for every Network Unlock certificate on the server, and an explicit
allowed list set for each certificate section.
Subnet lists are created by putting the name of a subnet from the [SUBNETS] section on
its own line below the certificate section header. Then, the server will only unlock clients
with this certificate on the subnet(s) specified as in the list. For troubleshooting, a subnet
can be quickly excluded without deleting it from the section by commenting it out with
a prepended semi-colon.
ini
[2158a767e1c14e88e27a4c0aee111d2de2eafe60]
;Comments could be added here to indicate when the cert was issued, which
Group Policy should get it, and so on.
;This list shows this cert is allowed to unlock clients only on the SUBNET1
and SUBNET3 subnets. In this example, SUBNET2 is commented out.
SUBNET1
;SUBNET2
SUBNET3
To disallow the use of a certificate altogether, add a DISABLED line to its subnet list.
7 Note
Removing the FVE_NKP certificate store that contains the Network Unlock
certificate and key on the WDS server will also effectively disable the server's ability
to respond to unlock requests for that certificate. However, this is seen as an error
condition and is not a supported or recommended method for turning off the
Network Unlock server.
7 Note
Servers that don't receive the Group Policy Object (GPO) will require a PIN when
they boot. In such cases, find out why the server didn't receive the GPO to update
the certificate.
Troubleshoot Network Unlock
Troubleshooting Network Unlock issues begins by verifying the environment. Many
times, a small configuration issue can be the root cause of the failure. Items to verify
include:
Verify that the client hardware is UEFI-based and is on firmware version 2.3.1 and
that the UEFI firmware is in native mode without a Compatibility Support Module
(CSM) for BIOS mode enabled. Verification can be done by checking that the
firmware doesn't have an option enabled such as "Legacy mode" or "Compatibility
mode" or that the firmware doesn't appear to be in a BIOS-like mode.
Public and private certificates have been published and are in the proper certificate
containers. The presence of the Network Unlock certificate can be verified in the
Microsoft Management Console (MMC.exe) on the WDS server with the certificate
snap-ins for the local computer enabled. The client certificate can be verified by
checking the registry key
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\SystemCertificates\FVE_NKP on
Group policy for Network Unlock is enabled and linked to the appropriate
domains.
Verify whether group policy is reaching the clients properly. Verification of group
policy can be done using the GPRESULT.exe or RSOP.msc utilities.
Verify whether the clients were rebooted after applying the policy.
Verify whether the Network (Certificate Based) protector is listed on the client.
Verification of the protector can be done using either manage-bde or Windows
PowerShell cmdlets. For example, the following command will list the key
protectors currently configured on the C: drive of the local computer:
PowerShell
7 Note
Use the output of manage-bde.exe along with the WDS debug log to
determine whether the proper certificate thumbprint is being used for
Network Unlock.
The Windows event logs. Specifically, get the BitLocker event logs and the
Microsoft-Windows-Deployment-Services-Diagnostics-Debug log.
Debug logging is turned off by default for the WDS server role. To retrieve WDS
debug logs, the WDS debug logs first need to be enabled. Use either of the
following two methods to turn on WDS debug logging.
Start an elevated command prompt, and then run the following command:
wevtutil.exe sl Microsoft-Windows-Deployment-Services-
Diagnostics/Debug /e:true
1. In the left pane, navigate to Applications and Services Logs > Microsoft >
Windows > Deployment-Services-Diagnostics > Debug.
2. In the right pane, select Enable Log.
The output of the BitLocker status on the volume. Gather this output into a text file
by using manage-bde.exe -status . Or in Windows PowerShell, use Get-
BitLockerVolume .
The Network Monitor capture on the server that hosts the WDS role, filtered by
client IP address.
Related articles
BitLocker overview
BitLocker frequently asked questions (FAQ)
Prepare your organization for BitLocker: Planning and policies
BitLocker group policy settings
Article • 06/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article for IT professionals describes the function, location, and effect of each Group
Policy setting that is used to manage BitLocker Drive Encryption.
Group Policy administrative templates or local computer policy settings can be used to
control what BitLocker drive encryption tasks and configurations can be performed by
users, for example through the BitLocker Drive Encryption control panel. Which of
these policies are configured and how they're configured depends on how BitLocker is
implemented and what level of interaction is desired for end users.
7 Note
A separate set of Group Policy settings supports the use of the Trusted Platform
Module (TPM). For details about those settings, see TPM Group Policy settings.
BitLocker Group Policy settings can be accessed using the Local Group Policy Editor and
the Group Policy Management Console (GPMC) under Computer Configuration >
Administrative Templates > Windows Components > BitLocker Drive Encryption.
Most of the BitLocker Group Policy settings are applied when BitLocker is initially turned
on for a drive. If a computer isn't compliant with existing Group Policy settings, BitLocker
may not be turned on, or BitLocker configuration may be modified until the computer is
in a compliant state. When a drive becomes out of compliance with Group Policy
settings, only changes to the BitLocker configuration that will bring it into compliance
are allowed. This scenario could occur, for example, if a previously encrypted drive was
brought out of compliance by change in Group Policy settings.
If multiple changes are necessary to bring the drive into compliance, BitLocker
protection may need to be suspended, the necessary changes made, and then
protection resumed. This situation could occur, for example, if a removable drive is
initially configured for unlock with a password but then Group Policy settings are
changed to disallow passwords and require smart cards. In this situation, BitLocker
protection needs to be suspended by using the Manage-bde command-line tool, delete
the password unlock method, and add the smart card method. After this process is
complete, BitLocker is compliant with the Group Policy setting, and BitLocker protection
on the drive can be resumed.
In other scenarios, to bring the drive into compliance with a change in Group Policy
settings, BitLocker may need to be disabled and the drive decrypted followed by
reenabling BitLocker and then re-encrypting the drive. An example of this scenario is
when the BitLocker encryption method or cipher strength is changed. The Manage-bde
command-line can also be used in this scenario to help bring the device into
compliance.
7 Note
The following sections provide a comprehensive list of BitLocker group policy settings
that are organized by usage. BitLocker group policy settings include settings for specific
drive types (operating system drives, fixed data drives, and removable data drives) and
settings that are applied to all drives.
The following policy settings can be used to determine how a BitLocker-protected drive
can be unlocked.
Allow devices with Secure Boot and protected DMA ports to opt out of preboot
PIN
Allow network unlock at startup
Require additional authentication at startup
Allow enhanced PINs for startup
Configure minimum PIN length for startup
Disable new DMA devices when this computer is locked
Disallow standard users from changing the PIN or password
Configure use of passwords for operating system drives
Require additional authentication at startup (Windows Server 2008 and Windows
Vista)
Configure use of smart cards on fixed data drives
Configure use of passwords on fixed data drives
Configure use of smart cards on removable data drives
Configure use of passwords on removable data drives
Validate smart card certificate usage rule compliance
Enable use of BitLocker authentication requiring preboot keyboard input on slates
The following policy settings are used to control how users can access drives and how
they can use BitLocker on their computers.
The following policy settings determine the encryption methods and encryption types
that are used with BitLocker.
The following policy settings define the recovery methods that can be used to restore
access to a BitLocker-protected drive if an authentication method fails or is unable to be
used.
Item Info
Policy description With this policy setting, TPM-only protection can be allowed for newer,
more secure devices, such as devices that support Modern Standby or HSTI,
while requiring PIN on older devices.
Policy path Computer Configuration > Administrative Templates > Windows Components
> BitLocker Drive Encryption > Operating System Drives
Conflicts This setting overrides the Require startup PIN with TPM option of the
Require additional authentication at startup policy on compliant hardware.
When enabled Users on Modern Standby and HSTI compliant devices will have the choice
to turn on BitLocker without preboot authentication.
When disabled or The options of the Require additional authentication at startup policy apply.
not configured
The preboot authentication option Require startup PIN with TPM of the Require
additional authentication at startup policy is often enabled to help ensure security for
older devices that don't support Modern Standby. But visually impaired users have no
audible way to know when to enter a PIN. This setting enables an exception to the PIN-
required policy on secure hardware.
This policy is used with the BitLocker Drive Encryption Network Unlock Certificate
security policy (located in the Public Key Policies folder of Local Computer Policy) to
allow systems that are connected to a trusted network to properly utilize the Network
Unlock feature.
Item Info
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts None
When enabled Clients configured with a BitLocker Network Unlock certificate can create and
use Network Key Protectors.
When disabled Clients can't create and use Network Key Protectors.
or not
configured
For reliability and security, computers should also have a TPM startup PIN that can
be used when the computer is disconnected from the wired network or can't
connect to the domain controller at startup.
For more information about Network Unlock feature, see BitLocker: How to enable
Network Unlock.
Item Info
Policy With this policy setting, it can be configured whether BitLocker requires
description additional authentication each time the computer starts and whether
BitLocker will be used with a Trusted Platform Module (TPM). This policy
setting is applied when BitLocker is turned on.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts If one authentication method is required, the other methods can't be allowed.
Use of BitLocker with a TPM startup key or with a TPM startup key and a PIN
must be disallowed if the Deny write access to removable drives not
protected by BitLocker policy setting is enabled.
When enabled Users can configure advanced startup options in the BitLocker Setup Wizard.
When disabled Users can configure only basic options on computers with a TPM.
or not
configured Only one of the additional authentication options can be required at startup;
otherwise, a policy error occurs.
Item Info
Policy description With this policy setting, it can be configured whether enhanced startup
PINs are used with BitLocker.
Item Info
Conflicts None
When enabled All new BitLocker startup PINs that are set will be enhanced PINs. Existing
drives that were protected by using standard startup PINs aren't affected.
) Important
Not all computers support enhanced PIN characters in the preboot environment.
It's strongly recommended that users perform a system check during the BitLocker
setup to verify that enhanced PIN characters can be used.
Item Info
Policy With this policy setting, it can be configured a minimum length for a TPM
description startup PIN. This policy setting is applied when BitLocker is turned on. The
startup PIN must have a minimum length of four digits, and it can have a
maximum length of 20 digits. By default, the minimum PIN length is 6.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts None
When enabled The required minimum length of startup PINs set by users can be set between
4 and 20 digits.
When disabled Users can configure a startup PIN of any length between 6 and 20 digits.
or not
configured
Originally, BitLocker allowed a length from 4 to 20 characters for a PIN. Windows Hello
has its own PIN for sign-in, length of which can be 4 to 127 characters. Both BitLocker
and Windows Hello use the TPM to prevent PIN brute-force attacks.
The TPM can be configured to use Dictionary Attack Prevention parameters (lockout
threshold and lockout duration to control how many failed authorizations attempts are
allowed before the TPM is locked out, and how much time must elapse before another
attempt can be made.
The Dictionary Attack Prevention Parameters provide a way to balance security needs
with usability. For example, when BitLocker is used with a TPM + PIN configuration, the
number of PIN guesses is limited over time. A TPM 2.0 in this example could be
configured to allow only 32 PIN guesses immediately, and then only one more guess
every two hours. This number of attempts totals to a maximum of about 4415 guesses
per year. If the PIN is four digits, all 9999 possible PIN combinations could be attempted
in a little over two years.
Increasing the PIN length requires a greater number of guesses for an attacker. In that
case, the lockout duration between each guess can be shortened to allow legitimate
users to retry a failed attempt sooner, while maintaining a similar level of protection.
Beginning with Windows 10, version 1703, the minimum length for the BitLocker PIN
was increased to six characters to better align with other Windows features that use
TPM 2.0, including Windows Hello. To help organizations with the transition, beginning
with Windows 10, version 1709 and Windows 10, version 1703 with the October 2017
cumulative update installed, the BitLocker PIN length is six characters by default, but it
can be reduced to four characters. If the minimum PIN length is reduced from the
default of six characters, then the TPM 2.0 lockout period will be extended.
Item Info
Policy description This setting helps prevent attacks that use external PCI-based devices
to access BitLocker keys.
Conflicts None
When enabled Every time the user locks the screen, DMA will be blocked on hot
pluggable PCI ports until the user signs in again.
When disabled or not DMA is available on hot pluggable PCI devices if the device is turned
configured on, regardless of whether a user is signed in.
This policy setting is only enforced when BitLocker or device encryption is enabled. As
explained in the Microsoft Security Guidance blog, in some cases when this setting is
enabled, internal, PCI-based peripherals can fail, including wireless network drivers and
input and audio peripherals. This problem is fixed in the April 2018 quality update .
Item Info
Policy description With this policy setting, it can be configured whether standard users are
allowed to change the PIN or password used to protect the operating
Item Info
system drive.
Conflicts None
When enabled Standard users aren't allowed to change BitLocker PINs or passwords.
When disabled or Standard users are permitted to change BitLocker PINs or passwords.
not configured
Item Info
Policy With this policy setting, the constraints for passwords that are used to unlock
description operating system drives that are protected with BitLocker can be specified.
Policy path Computer Configuration > Administrative Templates > Windows Components >
Item Info
When enabled Users can configure a password that meets the defined requirements. To
enforce complexity requirements for the password, select Require complexity.
When disabled The default length constraint of eight characters will apply to operating system
or not drive passwords and no complexity checks will occur.
configured
7 Note
These settings are enforced when turning on BitLocker, not when unlocking a
volume. BitLocker allows unlocking a drive with any of the protectors that are
available on the drive.
When this policy setting is enabled, the option Configure password complexity for
operating system drives can be set to:
Item Info
Policy With this policy setting, it can be controlled whether the BitLocker Setup
description Wizard on computers running Windows Vista or Windows Server 2008 can
set up an additional authentication method that is required each time the
computer starts.
Drive type Operating system drives (Windows Server 2008 and Windows Vista)
Policy path Computer Configuration > Administrative Templates > Windows Components
> BitLocker Drive Encryption > Operating System Drives
When enabled The BitLocker Setup Wizard displays the page that allows the user to
configure advanced startup options for BitLocker. Setting options can be
further configured for computers with or without a TPM.
When disabled The BitLocker Setup Wizard displays basic steps that allow users to enable
or not BitLocker on computers with a TPM. In this basic wizard, no additional startup
configured key or startup PIN can be configured.
A USB drive that contains a startup key is needed on computers without a compatible
TPM. Without a TPM, BitLocker-encrypted data is protected solely by the key material
that is on this USB drive.
These options are mutually exclusive. If a startup key is required, a startup PIN isn't
allowed. If startup PIN is required, startup key isn't allowed. If these policies are in
conflict, a policy error will occur.
To hide the advanced page on a TPM-enabled computer or device, set these options to
Do not allow for the startup key and for the startup PIN.
Item Info
Policy This policy setting can be used to specify whether smart cards can be used to
description authenticate user access to the BitLocker-protected fixed data drives on a
computer.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Fixed Data Drives
Item Info
Conflicts To use smart cards with BitLocker, the object identifier setting in the Computer
Configuration\Administrative Templates\BitLocker Drive Encryption\Validate
smart card certificate usage rule compliance policy setting may need to be
modified to match the object identifier of the smart card certificates.
When Smart cards can be used to authenticate user access to the drive. Smart card
enabled authentication can be required by selecting the Require use of smart cards on
fixed data drives check box.
When Users can't use smart cards to authenticate their access to BitLocker-protected
disabled fixed data drives.
When not Smart cards can be used to authenticate user access to a BitLocker-protected
configured drive.
7 Note
These settings are enforced when turning on BitLocker, not when unlocking a drive.
BitLocker allows unlocking a drive by using any of the protectors that are available
on the drive.
Item Info
Policy With this policy setting, it can be specified whether a password is required to
description unlock BitLocker-protected fixed data drives.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Fixed Data Drives
When Users can configure a password that meets the defined requirements. To require
enabled the use of a password, select Require password for fixed data drive. To enforce
complexity requirements on the password, select Require complexity.
When not Passwords are supported with the default settings, which don't include password
configured complexity requirements and require only eight characters.
Passwords must be at least eight characters. To configure a greater minimum length for
the password, enter the desired number of characters in the Minimum password length
box.
7 Note
These settings are enforced when turning on BitLocker, not when unlocking a drive.
BitLocker allows unlocking a drive with any of the protectors that are available on
the drive.
For the complexity requirement setting to be effective, the Group Policy setting
Computer Configuration > Windows Settings > Security Settings > Account Policies >
Password Policy > Password must meet complexity requirements must also be
enabled. This policy setting is configured on a per-computer basis. The policy setting
also applies to both local user accounts and domain user accounts. Because the
password filter that's used to validate password complexity is located on the domain
controllers, local user accounts can't access the password filter because they're not
authenticated for domain access. When this policy setting is enabled, if a local user
account signs in, and a drive is attempted to be encrypted or a password changed on an
existing BitLocker-protected drive, an Access denied error message is displayed. In this
situation, the password key protector can't be added to the drive.
Enabling this policy setting requires that a device is connected to a domain before
adding a password key protector to a BitLocker-protected drive. Users who work
remotely and have periods of time in which they can't connect to the domain should be
made aware of this requirement so that they can schedule a time when they'll be
connected to the domain to turn on BitLocker or to change a password on a BitLocker-
protected data drive.
) Important
Item Info
Policy This policy setting can be used to specify whether smart cards can be used to
description authenticate user access to BitLocker-protected removable data drives on a
computer.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Removable Data Drives
Conflicts To use smart cards with BitLocker, the object identifier setting in the Computer
Configuration > Administrative Templates > BitLocker Drive Encryption >
Validate smart card certificate usage rule compliance policy setting may also
need to be modified to match the object identifier of the smart card
certificates.
When enabled Smart cards can be used to authenticate user access to the drive. Smart card
authentication can be required by selecting the Require use of smart cards on
removable data drives check box.
Item Info
When disabled Users aren't allowed to use smart cards to authenticate their access to
or not BitLocker-protected removable data drives.
configured
When not Smart cards are available to authenticate user access to a BitLocker-protected
configured removable data drive.
7 Note
These settings are enforced when turning on BitLocker, not when unlocking a drive.
BitLocker allows unlocking a drive with any of the protectors that are available on
the drive.
Item Info
Policy With this policy setting, it can be specified whether a password is required to
description unlock BitLocker-protected removable data drives.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Removable Data Drives
Conflicts To use password complexity, the Password must meet complexity requirements
policy setting, which is located at Computer Configuration\Windows
Settings\Security Settings\Account Policies\Password Policy must also be
enabled.
When Users can configure a password that meets the defined requirements. To require
enabled the use of a password, select Require password for removable data drive. To
enforce complexity requirements on the password, select Require complexity.
When not Passwords are supported with the default settings, which don't include password
configured complexity requirements and require only eight characters.
7 Note
These settings are enforced when turning on BitLocker, not when unlocking a drive.
BitLocker allows unlocking a drive with any of the protectors that are available on
the drive.
Passwords must be at least eight characters. To configure a greater minimum length for
the password, enter the wanted number of characters in the Minimum password length
box.
7 Note
Item Info
Policy description With this policy setting, an object identifier from a smart card certificate
can be associated to a BitLocker-protected drive.
Conflicts None
When enabled The object identifier that is specified in the Object identifier setting
must match the object identifier in the smart card certificate.
The object identifier is specified in the extended key usage (EKU) of a certificate.
BitLocker can identify which certificates can be used to authenticate a user certificate to
a BitLocker-protected drive by matching the object identifier in the certificate with the
object identifier that is defined by this policy setting.
7 Note
BitLocker doesn't require that a certificate have an EKU attribute; however, if one is
configured for the certificate, it must be set to an object identifier that matches the
object identifier configured for BitLocker.
Enable use of BitLocker authentication requiring preboot
keyboard input on slates
Item Info
Policy description With this policy setting, users can be allowed to enable authentication
options that require user input from the preboot environment, even if the
platform indicates a lack of preboot input capability.
Policy path Computer Configuration > Administrative Templates > Windows Components
> BitLocker Drive Encryption > Operating System Drives
Conflicts None
When enabled Devices must have an alternative means of preboot input (such as an
attached USB keyboard).
When disabled or The Windows Recovery Environment must be enabled on tablets to support
not configured entering the BitLocker recovery password.
The Windows touch keyboard (such as used by tablets) isn't available in the preboot
environment where BitLocker requires additional information, such as a PIN or
password.
It's recommended that administrators enable this policy only for devices that are verified
to have an alternative means of preboot input, such as attaching a USB keyboard.
When the Windows Recovery Environment (WinRE) isn't enabled and this policy isn't
enabled, BitLocker can't be turned on a device that uses the Windows touch keyboard.
If this policy setting isn't enabled, the following options in the Require additional
authentication at startup policy might not be available:
Item Info
Policy description With this policy setting, it can be set whether BitLocker protection is
required for fixed data drives to be writable on a computer.
When enabled All fixed data drives that aren't BitLocker-protected are mounted as Read-
only. If the drive is protected by BitLocker, it's mounted with Read and
Write access.
When disabled or All fixed data drives on the computer are mounted with Read and Write
not configured access.
1. When this policy setting is enabled, users receive Access denied error messages
when they try to save data to unencrypted fixed data drives. See the Reference
section for additional conflicts.
If it was attempted to shrink a drive to create the system drive, the drive size
is successfully reduced, and a raw partition is created. However, the raw
partition isn't formatted. The following error message is displayed: The new
active drive cannot be formatted. You may need to manually prepare your
drive for BitLocker.
If it was attempted to use unallocated space to create the system drive, a raw
partition will be created. However, the raw partition won't be formatted. The
following error message is displayed: The new active drive cannot be
formatted. You may need to manually prepare your drive for BitLocker.
If it was attempted to merge an existing drive into the system drive, the tool
fails to copy the required boot file onto the target drive to create the system
drive. The following error message is displayed: BitLocker setup failed to
copy boot files. You may need to manually prepare your drive for BitLocker.
3. If this policy setting is enforced, a hard drive can't be repartitioned because the
drive is protected. If computers are being upgrading in an organization from a
previous version of Windows, and those computers were configured with a single
partition, the required BitLocker system partition should be created before
applying this policy setting to the computers.
Item Info
Policy description With this policy setting, it can be configured whether BitLocker protection
is required for a computer to be able to write data to a removable data
drive.
When enabled All removable data drives that aren't BitLocker-protected are mounted as
Read-only. If the drive is protected by BitLocker, it's mounted with Read
and Write access.
When disabled or All removable data drives on the computer are mounted with Read and
not configured Write access.
Reference: Deny write access to removable drives not protected by
BitLocker
7 Note
This policy setting can be overridden with the policy settings under User
Configuration > Administrative Templates > System > Removable Storage
Access. If the Removable Disks: Deny write access policy setting is enabled, this
policy setting will be ignored.
1. Use of BitLocker with the TPM plus a startup key or with the TPM plus a PIN and
startup key must be disallowed if the Deny write access to removable drives not
protected by BitLocker policy setting is enabled.
2. Use of recovery keys must be disallowed if the Deny write access to removable
drives not protected by BitLocker policy setting is enabled.
3. The Provide the unique identifiers for your organization policy setting must be
enabled if Write access needs to be denied to drives that were configured in
another organization.
Item Info
Policy With this policy setting, it can be controlled the use of BitLocker on removable
description data drives.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Removable Data Drives
Conflicts None
When enabled Property settings can be selected that control how users can configure
BitLocker.
For information about suspending BitLocker protection, see BitLocker Basic Deployment.
The options for choosing property settings that control how users can configure
BitLocker are:
Allow users to apply BitLocker protection on removable data drives Enables the
user to run the BitLocker Setup Wizard on a removable data drive.
Allow users to suspend and decrypt BitLocker on removable data drives Enables
the user to remove BitLocker from the drive or to suspend the encryption while
performing maintenance.
Item Info
Policy description With this policy setting, it can be controlled the encryption method and
strength for drives.
Conflicts None
When enabled An encryption algorithm and key cipher strength for BitLocker can be
chosen to use to encrypt drives.
When disabled or Beginning with Windows 10, version 1511, BitLocker uses the default
not configured encryption method of XTS-AES 128-bit or the encryption method that is
specified by the setup script.
If this setting is enabled, it can be configured an encryption algorithm and key cipher
strength for fixed data drives, operating system drives, and removable data drives
individually.
For fixed and operating system drives, it's recommended to use the XTS-AES
algorithm.
For removable drives, AES-CBC 128-bit or AES-CBC 256-bit should be used if the
drive will be used in other devices that aren't running Windows 10, version 1511 or
later.
Changing the encryption method has no effect if the drive is already encrypted or if
encryption is in progress. In these cases, this policy setting is ignored.
2 Warning
This policy doesn't apply to encrypted drives. Encrypted drives utilize their own
algorithm, which is set by the drive during partitioning.
When this policy setting is disabled or not configured, BitLocker will use the default
encryption method of XTS-AES 128-bit or the encryption method that is specified in the
setup script.
Item Info
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Fixed Data Drives
Conflicts None
When Additional options can be specified that control whether BitLocker software-
enabled based encryption is used instead of hardware-based encryption on computers
that don't support hardware-based encryption. It can also be specified to restrict
the encryption algorithms and cipher suites that are used with hardware-based
encryption.
When BitLocker can't use hardware-based encryption with fixed data drives, and
disabled BitLocker software-based encryption is used by default when the drive in
encrypted.
7 Note
The Choose drive encryption method and cipher strength policy setting doesn't
apply to hardware-based encryption.
The encryption algorithm that is used by hardware-based encryption is set when the
drive is partitioned. By default, BitLocker uses the algorithm that is configured on the
drive to encrypt the drive. The Restrict encryption algorithms and cipher suites allowed
for hardware-based encryption option of this setting enables restriction of the
encryption algorithms that BitLocker can use with hardware encryption. If the algorithm
that is set for the drive isn't available, BitLocker disables the use of hardware-based
encryption. Encryption algorithms are specified by object identifiers (OID), for example:
Advanced Encryption Standard (AES) 128 in Cipher Block Chaining (CBC) mode
OID: 2.16.840.1.101.3.4.1.2
AES 256 in CBC mode OID: 2.16.840.1.101.3.4.1.42
Item Info
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts None
When Additional options can be specified that control whether BitLocker software-
enabled based encryption is used instead of hardware-based encryption on computers
that don't support hardware-based encryption. It can also be specified to restrict
the encryption algorithms and cipher suites that are used with hardware-based
encryption.
When BitLocker can't use hardware-based encryption with operating system drives, and
disabled BitLocker software-based encryption is used by default when the drive in
encrypted.
7 Note
The Choose drive encryption method and cipher strength policy setting doesn't
apply to hardware-based encryption.
The encryption algorithm that is used by hardware-based encryption is set when the
drive is partitioned. By default, BitLocker uses the algorithm that is configured on the
drive to encrypt the drive. The Restrict encryption algorithms and cipher suites allowed
for hardware-based encryption option of this setting enables restriction of the
encryption algorithms that BitLocker can use with hardware encryption. If the algorithm
that is set for the drive isn't available, BitLocker disables the use of hardware-based
encryption. Encryption algorithms are specified by object identifiers (OID), for example:
Advanced Encryption Standard (AES) 128 in Cipher Block Chaining (CBC) mode
OID: 2.16.840.1.101.3.4.1.2
AES 256 in CBC mode OID: 2.16.840.1.101.3.4.1.42
Item Info
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Removable Data Drives
Conflicts None
When Additional options can be specified that control whether BitLocker software-
enabled based encryption is used instead of hardware-based encryption on computers
that don't support hardware-based encryption. It can also be specified to restrict
Item Info
the encryption algorithms and cipher suites that are used with hardware-based
encryption.
When BitLocker can't use hardware-based encryption with removable data drives, and
disabled BitLocker software-based encryption is used by default when the drive in
encrypted.
7 Note
The Choose drive encryption method and cipher strength policy setting doesn't
apply to hardware-based encryption.
The encryption algorithm that is used by hardware-based encryption is set when the
drive is partitioned. By default, BitLocker uses the algorithm that is configured on the
drive to encrypt the drive. The Restrict encryption algorithms and cipher suites allowed
for hardware-based encryption option of this setting enables restriction of the
encryption algorithms that BitLocker can use with hardware encryption. If the algorithm
that is set for the drive isn't available, BitLocker disables the use of hardware-based
encryption. Encryption algorithms are specified by object identifiers (OID), for example:
Advanced Encryption Standard (AES) 128 in Cipher Block Chaining (CBC) mode
OID: 2.16.840.1.101.3.4.1.2
AES 256 in CBC mode OID: 2.16.840.1.101.3.4.1.42
Policy description With this policy setting, it can be configured the encryption type that is
used by BitLocker.
Conflicts None
When enabled This policy defines the encryption type that BitLocker uses to encrypt
drives, and the encryption type option isn't presented in the BitLocker
Setup Wizard.
When disabled or The BitLocker Setup Wizard asks the user to select the encryption type
not configured before turning on BitLocker.
7 Note
This policy is ignored when a volume is being shrunk or expanded and the
BitLocker drive uses the current encryption method. For example, when a drive that
is using Used Space Only encryption is expanded, the new free space isn't wiped as
it would be for a drive that is using Full encryption. The user could wipe the free
space on a Used Space Only drive by using the following command: manage-bde.exe
-w . If the volume is shrunk, no action is taken for the new free space.
For more information about the tool to manage BitLocker, see Manage-bde.
Item Info
Policy description With this policy setting, it can be configured the encryption type that is
used by BitLocker.
Conflicts None
When enabled The encryption type that BitLocker uses to encrypt drives is defined by this
policy, and the encryption type option isn't presented in the BitLocker
Setup Wizard.
When disabled or The BitLocker Setup Wizard asks the user to select the encryption type
not configured before turning on BitLocker.
This policy setting is applied when BitLocker is turned on. Changing the encryption type
has no effect if the drive is already encrypted or if encryption is in progress. Choose Full
encryption to make it mandatory for the entire drive to be encrypted when BitLocker is
turned on. Choose Used Space Only encryption to make it mandatory to encrypt only
that portion of the drive that is used to store data when BitLocker is turned on.
7 Note
This policy is ignored when shrinking or expanding a volume, and the BitLocker
driver uses the current encryption method. For example, when a drive that is using
Used Space Only encryption is expanded, the new free space isn't wiped as it would
be for a drive that uses Full encryption. The user could wipe the free space on a
Used Space Only drive by using the following command: manage-bde.exe -w . If the
volume is shrunk, no action is taken for the new free space.
For more information about the tool to manage BitLocker, see Manage-bde.
Item Info
Policy description With this policy setting, it can be configured the encryption type that is
used by BitLocker.
Conflicts None
When enabled The encryption type that BitLocker uses to encrypt drives is defined by this
policy, and the encryption type option isn't presented in the BitLocker
Setup Wizard.
When disabled or The BitLocker Setup Wizard asks the user to select the encryption type
not configured before turning on BitLocker.
7 Note
This policy is ignored when shrinking or expanding a volume, and the BitLocker
driver uses the current encryption method. For example, when a drive that is using
Used Space Only encryption is expanded, the new free space isn't wiped as it would
be for a drive that is using Full Encryption. The user could wipe the free space on a
Used Space Only drive by using the following command: manage-bde.exe -w . If the
volume is shrunk, no action is taken for the new free space.
For more information about the tool to manage BitLocker, see Manage-bde.
Choose how BitLocker-protected operating system drives
can be recovered
This policy setting is used to configure recovery methods for operating system drives.
Item Info
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts The use of recovery keys must be disallowed if the Deny write access to
removable drives not protected by BitLocker policy setting is enabled.
When using data recovery agents, the Provide the unique identifiers for your
organization policy setting must be enabled.
When enabled it can be controlled the methods that are available to users to recover data
from BitLocker-protected operating system drives.
When disabled The default recovery options are supported for BitLocker recovery. By default,
or not a data recovery agent is allowed, the recovery options can be specified by the
configured user (including the recovery password and recovery key), and recovery
information isn't backed up to AD DS.
The Allow data recovery agent check box is used to specify whether a data recovery
agent can be used with BitLocker-protected operating system drives. Before a data
recovery agent can be used, it must be added from Public Key Policies, which is located
in the Group Policy Management Console (GPMC) or in the Local Group Policy Editor.
For more information about adding data recovery agents, see BitLocker basic
deployment.
In Configure user storage of BitLocker recovery information, select whether users are
allowed, required, or not allowed to generate a 48-digit recovery password.
Select Omit recovery options from the BitLocker setup wizard to prevent users from
specifying recovery options when they enable BitLocker on a drive. This policy setting
means that which recovery option to use when BitLocker is enabled can't be specified.
Instead, BitLocker recovery options for the drive are determined by the policy setting.
Select the Do not enable BitLocker until recovery information is stored in AD DS for
operating system drives check box if users need to be prevented from enabling
BitLocker unless the computer is connected to the domain and the backup of BitLocker
recovery information to AD DS succeeds.
7 Note
Item Info
Policy With this policy setting, it can be controlled whether the BitLocker Setup Wizard
description can display and specify BitLocker recovery options.
Drive type Operating system drives and fixed data drives on computers running Windows
Server 2008 and Windows Vista
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption
Item Info
Conflicts This policy setting provides an administrative method of recovering data that is
encrypted by BitLocker to prevent data loss due to lack of key information. If the
Do not allow option is chosen for both user recovery options, the Store
BitLocker recovery information in Active Directory Domain Services (Windows
Server 2008 and Windows Vista) policy setting must be enabled to prevent a
policy error.
When enabled The options that the BitLocker Setup Wizard displays to users for recovering
BitLocker encrypted data can be configured.
When disabled The BitLocker Setup Wizard presents users with ways to store recovery options.
or not
configured
This policy is only applicable to computers running Windows Server 2008 or Windows
Vista. This policy setting is applied when BitLocker is turned on.
Two recovery options can be used to unlock BitLocker-encrypted data in the absence of
the required startup key information. Users can type a 48-digit numerical recovery
password, or they can insert a USB drive that contains a 256-bit recovery key.
Saving the recovery password to a USB drive stores the 48-digit recovery password
as a text file and the 256-bit recovery key as a hidden file.
Saving the recovery password to a folder stores the 48-digit recovery password as
a text file.
Printing the recovery password sends the 48-digit recovery password to the
default printer.
For example, not allowing the 48-digit recovery password prevents users from printing
or saving recovery information to a folder.
) Important
) Important
To prevent data loss, there must be a way to recover BitLocker encryption keys. If
both recovery options are not allowed, backup of BitLocker recovery information to
AD DS must be enabled. Otherwise, a policy error occurs.
Item Info
Drive type Operating system drives and fixed data drives on computers running
Windows Server 2008 and Windows Vista.
Conflicts None
BitLocker recovery information includes the recovery password and unique identifier
data. A package that contains an encryption key for a BitLocker-protected drive can also
be included. This key package is secured by one or more recovery passwords, and it can
help perform specialized recovery when the disk is damaged or corrupted.
For more information about this setting, see TPM Group Policy settings.
Item Info
Policy With this policy setting, the default path that is displayed when the BitLocker
description Setup Wizard prompts the user to enter the location of a folder in which to save
the recovery password can be specified.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption
Conflicts None
When enabled The path that will be used as the default folder location when the user chooses
the option to save the recovery password in a folder can be specified. A fully
qualified path can be specified. The target computer's environment variables
Item Info
can also be included in the path. If the path isn't valid, the BitLocker Setup
Wizard displays the computer's top-level folder view.
When disabled The BitLocker Setup Wizard displays the computer's top-level folder view when
or not the user chooses the option to save the recovery password in a folder.
configured
7 Note
This policy setting doesn't prevent the user from saving the recovery password in
another folder.
Item Info
Policy With this policy setting, it can be controlled how BitLocker-protected fixed
description data drives are recovered in the absence of the required credentials.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Fixed Data Drives
Conflicts The use of recovery keys must be disallowed if the Deny write access to
removable drives not protected by BitLocker policy setting is enabled.
When using data recovery agents, the Provide the unique identifiers for your
organization policy setting must be enabled.
When enabled it can be controlled the methods that are available to users to recover data
from BitLocker-protected fixed data drives.
When disabled The default recovery options are supported for BitLocker recovery. By default,
or not a data recovery agent is allowed, the recovery options can be specified by the
Item Info
configured user (including the recovery password and recovery key), and recovery
information isn't backed up to AD DS.
The Allow data recovery agent check box is used to specify whether a data recovery
agent can be used with BitLocker-protected fixed data drives. Before a data recovery
agent can be used, it must be added from Public Key Policies, which is located in the
Group Policy Management Console (GPMC) or in the Local Group Policy Editor.
In Configure user storage of BitLocker recovery information, select whether users can
be allowed, required, or not allowed to generate a 48-digit recovery password or a 256-
bit recovery key.
Select Omit recovery options from the BitLocker setup wizard to prevent users from
specifying recovery options when they enable BitLocker on a drive. This policy setting
means that which recovery option to use when BitLocker is enabled can't be specified.
Instead, BitLocker recovery options for the drive are determined by the policy setting.
For more information about the BitLocker repair tool, see Repair-bde.
Select the Do not enable BitLocker until recovery information is stored in AD DS for
fixed data drives check box if users should be prevented from enabling BitLocker unless
the computer is connected to the domain and the backup of BitLocker recovery
information to AD DS succeeds.
7 Note
Item Info
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Removable Data Drives
Conflicts The use of recovery keys must be disallowed if the Deny write access to
removable drives not protected by BitLocker policy setting is enabled.
When using data recovery agents, the Provide the unique identifiers for your
organization policy setting must be enabled.
When enabled it can be controlled the methods that are available to users to recover data
from BitLocker-protected removable data drives.
When disabled The default recovery options are supported for BitLocker recovery. By default,
or not a data recovery agent is allowed, the recovery options can be specified by the
configured user (including the recovery password and recovery key), and recovery
information isn't backed up to AD DS.
The Allow data recovery agent check box is used to specify whether a data recovery
agent can be used with BitLocker-protected removable data drives. Before a data
recovery agent can be used, it must be added from Public Key Policies , which is
accessed using the GPMC or the Local Group Policy Editor.
In Configure user storage of BitLocker recovery information, select whether users can
be allowed, required, or not allowed to generate a 48-digit recovery password.
Select Omit recovery options from the BitLocker setup wizard to prevent users from
specifying recovery options when they enable BitLocker on a drive. This policy setting
means that which recovery option to use when BitLocker is enabled can't be specified.
Instead, BitLocker recovery options for the drive are determined by the policy setting.
Select the Do not enable BitLocker until recovery information is stored in AD DS for
removable data drives check box if users should be prevented from enabling BitLocker
unless the computer is connected to the domain and the backup of BitLocker recovery
information to AD DS succeeds.
7 Note
Item Info
Policy With this policy setting, it can be configured the BitLocker recovery screen to
description display a customized message and URL.
Introduced Windows
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives > Configure pre-boot
recovery message and URL
Conflicts None
When enabled The customized message and URL are displayed on the pre-boot recovery
screen. If a custom recovery message and URL has been previously enabled
Item Info
and the message and URL need to be reverted back to the default message
and URL, the policy setting must be enabled and the Use default recovery
message and URL option selected.
When disabled If the setting hasn't been previously enabled, then the default pre-boot
or not recovery screen is displayed for BitLocker recovery. If the setting previously was
configured enabled and is later disabled, then the last message in Boot Configuration Data
(BCD) is displayed whether it was the default recovery message or the custom
message.
If the Use default recovery message and URL option is selected, the default
BitLocker recovery message and URL will be displayed on the pre-boot recovery
screen.
If the Use custom recovery message option is selected, enter the custom message
in the Custom recovery message option text box. The message that is entered in
the Custom recovery message option text box is displayed on the pre-boot
recovery screen. If a recovery URL is available, include it in the message.
If the Use custom recovery URL option is selected, enter the custom message URL
in the Custom recovery URL option text box. The URL that is entered in the
Custom recovery URL option text box replaces the default URL in the default
recovery message, which is displayed on the pre-boot recovery screen.
) Important
Not all characters and languages are supported in the pre-boot environment. It is
strongly recommended to verify the correct appearance of the characters that are
used for the custom message and URL on the pre-boot recovery screen.
) Important
Because BCDEdit commands can be altered manually before Group Policy settings
have been set, the policy setting can't be returned to the default setting by
selecting the Not Configured option after this policy setting has been configured.
To return to the default pre-boot recovery screen leave the policy setting enabled
and select the Use default message options from the Choose an option for the
pre-boot recovery message drop-down list box.
Item Info
Policy With this policy setting, it can be configured whether Secure Boot will be
description allowed as the platform integrity provider for BitLocker operating system
drives.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts If Allow Secure Boot for integrity validation is enabled, make sure the
Configure TPM platform validation profile for native UEFI firmware
configurations Group Policy setting isn't enabled, or include PCR 7 to allow
BitLocker to use Secure Boot for platform or BCD integrity validation.
For more information about PCR 7, see About the Platform Configuration
Register (PCR) in this article.
When enabled BitLocker uses Secure Boot for platform integrity if the platform is capable of
or not Secure Boot-based integrity validation.
configured
When disabled BitLocker uses legacy platform integrity validation, even on systems that are
capable of Secure Boot-based integrity validation.
Secure boot ensures that the computer's pre-boot environment loads only firmware that
is digitally signed by authorized software publishers. Secure boot also started providing
more flexibility for managing pre-boot configurations than BitLocker integrity checks
prior to Windows Server 2012 and Windows 8.
When this policy is enabled and the hardware is capable of using secure boot for
BitLocker scenarios, the Use enhanced Boot Configuration Data validation profile
group policy setting is ignored, and secure boot verifies BCD settings according to the
secure boot policy setting, which is configured separately from BitLocker.
2 Warning
Item Info
Policy With this policy setting, unique organizational identifiers can be associated to
description a new drive that is enabled with BitLocker.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption
When enabled The identification field on the BitLocker-protected drive and any allowed
identification field that is used by an organization can be configured.
For more information about the tool to manage BitLocker, see Manage-bde.
The allowed identification field is used in combination with the Deny write access to
removable drives not protected by BitLocker policy setting to help control the use of
removable drives in an organization. It's a comma-separated list of identification fields
from an internal organization or external organizations.
The identification fields on existing drives can be configured by using the Manage-bde
command-line tool.
Multiple values separated by commas can be entered in the identification and allowed
identification fields. The identification field can be any value upto 260 characters.
Item Info
Policy description With this policy setting, it can be controlled computer restart performance
at the risk of exposing BitLocker secrets.
Conflicts None
When enabled The computer won't overwrite memory when it restarts. Preventing
memory overwrite may improve restart performance, but it increases the
risk of exposing BitLocker secrets.
When disabled or BitLocker secrets are removed from memory when the computer restarts.
not configured
Item Info
Policy With this policy setting, it can be configured how the computer's TPM security
description hardware secures the BitLocker encryption key.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts None
When enabled The boot components that the TPM validates before unlocking access to the
BitLocker-encrypted operating system drive can be configured. If any of these
components change while BitLocker protection is in effect, then the TPM doesn't
release the encryption key to unlock the drive. Instead, the computer displays
the BitLocker Recovery console and requires that the recovery password or the
recovery key is provided to unlock the drive.
Item Info
When The TPM uses the default platform validation profile or the platform validation
disabled or profile that is specified by the setup script.
not
configured
This policy setting doesn't apply if the computer doesn't have a compatible TPM or if
BitLocker has already been turned on with TPM protection.
) Important
This Group Policy setting only applies to computers with BIOS configurations or to
computers with UEFI firmware with the CSM enabled. Computers that use a native
UEFI firmware configuration store different values in the Platform Configuration
Registers (PCRs). Use the Configure TPM platform validation profile for native
UEFI firmware configurations Group Policy setting to configure the TPM PCR
profile for computers that use native UEFI firmware.
A platform validation profile consists of a set of PCR indices that range from 0 to 23. The
default platform validation profile secures the encryption key against changes to the
following PCRs:
Core Root of Trust of Measurement (CRTM), BIOS, and Platform Extensions (PCR 0)
Option ROM Code (PCR 2)
Master Boot Record (MBR) Code (PCR 4)
NTFS Boot Sector (PCR 8)
NTFS Boot Block (PCR 9)
Boot Manager (PCR 10)
BitLocker Access Control (PCR 11)
7 Note
Changing from the default platform validation profile affects the security and
manageability of a computer. BitLocker's sensitivity to platform modifications
(malicious or authorized) is increased or decreased depending on inclusion or
exclusion (respectively) of the PCRs.
The following list identifies all of the available PCRs:
Item Info
Policy With this policy setting, it can be configured how the computer's TPM security
description hardware secures the BitLocker encryption key.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts None
When enabled The boot components that the TPM validates before unlocking access to the
BitLocker-encrypted operating system drive can be configured. If any of these
components change while BitLocker protection is in effect, the TPM doesn't
release the encryption key to unlock the drive. Instead, the computer displays
the BitLocker Recovery console and requires that the recovery password or the
recovery key is provided to unlock the drive.
Item Info
When The TPM uses the default platform validation profile or the platform validation
disabled or profile that is specified by the setup script.
not
configured
This policy setting doesn't apply if the computer doesn't have a compatible TPM or if
BitLocker is already turned on with TPM protection.
A platform validation profile consists of a set of PCR indices that range from 0 to 23. The
default platform validation profile secures the encryption key against changes to the
following PCRs:
Core Root of Trust of Measurement (CRTM), BIOS, and Platform Extensions (PCR 0)
Option ROM Code (PCR 2)
Master Boot Record (MBR) Code (PCR 4)
NTFS Boot Sector (PCR 8)
NTFS Boot Block (PCR 9)
Boot Manager (PCR 10)
BitLocker Access Control (PCR 11)
7 Note
The default TPM validation profile PCR settings for computers that use an
Extensible Firmware Interface (EFI) are the PCRs 0, 2, 4, and 11 only.
PCR 0: Core root-of-trust for measurement, EFI boot and run-time services, EFI
drivers embedded in system ROM, ACPI static tables, embedded SMM code, and
BIOS code
PCR 1: Platform and motherboard configuration and data. Hand-off tables and EFI
variables that affect system configuration
PCR 2: Option ROM code
PCR 3: Option ROM data and configuration
PCR 4: Master Boot Record (MBR) code or code from other boot devices
PCR 5: Master Boot Record (MBR) partition table. Various EFI variables and the GPT
table
PCR 6: State transition and wake events
PCR 7: Computer manufacturer-specific
PCR 8: NTFS boot sector
PCR 9: NTFS boot block
PCR 10: Boot manager
PCR 11: BitLocker access control
PCR 12 - 23: Reserved for future use
2 Warning
Changing from the default platform validation profile affects the security and
manageability of a computer. BitLocker's sensitivity to platform modifications
(malicious or authorized) is increased or decreased depending on inclusion or
exclusion (respectively) of the PCRs.
Item Info
Policy With this policy setting, it can be configured how the computer's Trusted
description Platform Module (TPM) security hardware secures the BitLocker encryption key.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts Setting this policy with PCR 7 omitted overrides the Allow Secure Boot for
integrity validation Group Policy setting, and it prevents BitLocker from using
Secure Boot for platform or Boot Configuration Data (BCD) integrity validation.
If an environment uses TPM and Secure Boot for platform integrity checks, this
policy is configured.
For more information about PCR 7, see About the Platform Configuration
Register (PCR) in this article.
Item Info
When Before BitLocker is turned on, the boot components that the TPM validates
enabled before it unlocks access to the BitLocker-encrypted operating system drive can
be configured. If any of these components change while BitLocker protection is
in effect, the TPM doesn't release the encryption key to unlock the drive. Instead,
the computer displays the BitLocker Recovery console and requires that the
recovery password or the recovery key is provided to unlock the drive.
When BitLocker uses the default platform validation profile or the platform validation
disabled or profile that is specified by the setup script.
not
configured
This policy setting doesn't apply if the computer doesn't have a compatible TPM or if
BitLocker is already turned on with TPM protection.
) Important
This group policy setting only applies to computers with a native UEFI firmware
configuration. Computers with BIOS or UEFI firmware with a Compatibility Support
Module (CSM) enabled store different values in the Platform Configuration
Registers (PCRs). Use the Configure TPM platform validation profile for BIOS-
based firmware configurations Group Policy setting to configure the TPM PCR
profile for computers with BIOS configurations or for computers with UEFI firmware
with a CSM enabled.
A platform validation profile consists of a set of PCR indices ranging from 0 to 23. The
default platform validation profile secures the encryption key against changes to the
core system firmware executable code (PCR 0), extended or pluggable executable code
(PCR 2), boot manager (PCR 4), and the BitLocker access control (PCR 11).
For more information about this PCR, see About the Platform Configuration
Register (PCR) in this article.
2 Warning
Changing from the default platform validation profile affects the security and
manageability of a computer. BitLocker's sensitivity to platform modifications
(malicious or authorized) is increased or decreased depending on inclusion or
exclusion (respectively) of the PCRs.
Item Info
Policy With this policy setting, it can be controlled whether platform validation data is
description refreshed when Windows is started following a BitLocker recovery.
Item Info
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts None
When enabled Platform validation data is refreshed when Windows is started following a
BitLocker recovery.
When disabled Platform validation data isn't refreshed when Windows is started following a
BitLocker recovery.
When not Platform validation data is refreshed when Windows is started following a
configured BitLocker recovery.
Item Info
Policy With this policy setting, Boot Configuration Data (BCD) settings to verify during
description platform validation can be specified.
Policy path Computer Configuration > Administrative Templates > Windows Components >
BitLocker Drive Encryption > Operating System Drives
Conflicts When BitLocker is using Secure Boot for platform and Boot Configuration Data
integrity validation, the Use enhanced Boot Configuration Data validation
profile Group Policy setting is ignored (as defined by the Allow Secure Boot for
integrity validation Group Policy setting).
Item Info
When Additional BCD settings can be added and specified BCD settings can be
enabled excluded. Also a customized BCD validation profile can be created by combining
inclusion and exclusion lists. The customized BCD validation profile gives the
ability to verify BCD settings.
When The computer reverts to a BCD profile validation similar to the default BCD
disabled profile that is used by Windows 7.
When not The computer verifies the default BCD settings in Windows.
configured
7 Note
The setting that controls boot debugging (0x16000010) is always validated, and it
has no effect if it's included in the inclusion or the exclusion list.
Item Info
Policy With this policy setting, it can be configured whether fixed data drives that
description are formatted with the FAT file system can be unlocked and viewed on
computers running Windows Vista, Windows XP with Service Pack 3 (SP3), or
Windows XP with Service Pack 2 (SP2).
Policy path Computer Configuration > Administrative Templates > Windows Components
> BitLocker Drive Encryption > Fixed Data Drives
Conflicts None
Item Info
When enabled Fixed data drives that are formatted with the FAT file system can be unlocked
and When not on computers running Windows Server 2008, Windows Vista, Windows XP
configured with SP3, or Windows XP with SP2, and their content can be viewed. These
operating systems have Read-only access to BitLocker-protected drives.
When disabled Fixed data drives that are formatted with the FAT file system and are
BitLocker-protected can't be unlocked on computers running Windows Vista,
Windows XP with SP3, or Windows XP with SP2. BitLocker To Go Reader
(bitlockertogo.exe) isn't installed.
7 Note
This policy setting doesn't apply to drives that are formatted with the NTFS file
system.
When this policy setting is enabled, select the Do not install BitLocker To Go Reader on
FAT formatted fixed drives check box to help prevent users from running BitLocker To
Go Reader from their fixed drives. If BitLocker To Go Reader (bitlockertogo.exe) is
present on a drive that doesn't have an identification field specified, or if the drive has
the same identification field as specified in the Provide unique identifiers for your
organization policy setting, the user is prompted to update BitLocker, and BitLocker To
Go Reader is deleted from the drive. In this situation, for the fixed drive to be unlocked
on computers running Windows Vista, Windows XP with SP3, or Windows XP with SP2,
BitLocker To Go Reader must be installed on the computer. If this check box isn't
selected, then BitLocker To Go Reader will be installed on the fixed drive to enable users
to unlock the drive on computers running Windows Vista, Windows XP with SP3, or
Windows XP with SP2.
Policy description With this policy setting, it can be configured whether removable data drives
that are formatted with the FAT file system can be unlocked and viewed on
computers running Windows Vista, Windows XP with SP3, or Windows XP
with SP2.
Policy path Computer Configuration > Administrative Templates > Windows Components
> BitLocker Drive Encryption > Removable Data Drives
Conflicts None
When enabled Removable data drives that are formatted with the FAT file system can be
and When not unlocked on computers running Windows Vista, Windows XP with SP3, or
configured Windows XP with SP2, and their content can be viewed. These operating
systems have Read-only access to BitLocker-protected drives.
When disabled Removable data drives that are formatted with the FAT file system that are
BitLocker-protected can't be unlocked on computers running Windows Vista,
Windows XP with SP3, or Windows XP with SP2. BitLocker To Go Reader
(bitlockertogo.exe) isn't installed.
7 Note
This policy setting doesn't apply to drives that are formatted with the NTFS file
system.
When this policy setting is enabled, select the Do not install BitLocker To Go Reader on
FAT formatted removable drives check box to help prevent users from running
BitLocker To Go Reader from their removable drives. If BitLocker To Go Reader
(bitlockertogo.exe) is present on a drive that doesn't have an identification field
specified, or if the drive has the same identification field as specified in the Provide
unique identifiers for your organization policy setting, the user will be prompted to
update BitLocker, and BitLocker To Go Reader is deleted from the drive. In this situation,
for the removable drive to be unlocked on computers running Windows Vista, Windows
XP with SP3, or Windows XP with SP2, BitLocker To Go Reader must be installed on the
computer. If this check box isn't selected, then BitLocker To Go Reader will be installed
on the removable drive to enable users to unlock the drive on computers running
Windows Vista or Windows XP that don't have BitLocker To Go Reader installed.
FIPS setting
The Federal Information Processing Standard (FIPS) setting for FIPS compliance can be
configured. As an effect of FIPS compliance, users can't create or save a BitLocker
password for recovery or as a key protector. The use of a recovery key is permitted.
Item Info
Policy path Local Policies > Security Options > System cryptography: Use FIPS compliant
algorithms for encryption, hashing, and signing
Conflicts Some applications, such as Terminal Services, don't support FIPS-140 on all
operating systems.
When enabled Users will be unable to save a recovery password to any location. This policy
setting includes AD DS and network folders. Also, WMI or the BitLocker Drive
Encryption Setup wizard can't be used to create a recovery password.
The optional recovery key can be saved to a USB drive. Because recovery passwords
can't be saved to AD DS when FIPS is enabled, an error is caused if AD DS backup is
required by Group Policy.
The FIPS setting can be edited by using the Security Policy Editor ( Secpol.msc ) or by
editing the Windows registry. Only administrators can perform these procedures.
For more information about setting this policy, see System cryptography: Use FIPS
compliant algorithms for encryption, hashing, and signing.
Power management group policy settings:
Sleep and Hibernate
PCs default power settings for a computer will cause the computer to enter Sleep mode
frequently to conserve power when idle and to help extend the system's battery life.
When a computer transitions to Sleep, open programs and documents are persisted in
memory. When a computer resumes from Sleep, users aren't required to reauthenticate
with a PIN or USB startup key to access encrypted data. Not needing to reauthenticate
when resuming from Sleep might lead to conditions where data security is
compromised.
However, when a computer hibernates the drive is locked, and when it resumes from
hibernation the drive is unlocked, which means that users will need to provide a PIN or a
startup key if using multifactor authentication with BitLocker. Therefore, organizations
that use BitLocker may want to use Hibernate instead of Sleep for improved security.
This setting doesn't have an impact on TPM-only mode, because it provides a
transparent user experience at startup and when resuming from the Hibernate states.
To disable all available sleep states, disable the Group Policy settings located in
Computer Configuration > Administrative Templates > System > Power Management
:
Changing from the default platform validation profile affects the security and
manageability of a computer. BitLocker's sensitivity to platform modifications (malicious
or authorized) is increased or decreased depending on inclusion or exclusion
(respectively) of the PCRs.
About PCR 7
PCR 7 measures the state of Secure Boot. With PCR 7, BitLocker can use Secure Boot for
integrity validation. Secure Boot ensures that the computer's preboot environment loads
only firmware that is digitally signed by authorized software publishers. PCR 7
measurements indicate whether Secure Boot is on and which keys are trusted on the
platform. If Secure Boot is on and the firmware measures PCR 7 correctly per the UEFI
specification, BitLocker can bind to this information rather than to PCRs 0, 2, and 4,
which have the measurements of the exact firmware and Bootmgr images loaded. This
process reduces the likelihood of BitLocker starting in recovery mode as a result of
firmware and image updates, and it provides with greater flexibility to manage the
preboot configuration.
PCR 7 measurements must follow the guidance that is described in Appendix A Trusted
Execution Environment EFI Protocol.
PCR 7 measurements are a mandatory logo requirement for systems that support
Modern Standby (also known as Always On, Always Connected PCs), such as the
Microsoft Surface RT. On such systems, if the TPM with PCR 7 measurement and secure
boot are correctly configured, BitLocker binds to PCR 7 and PCR 11 by default.
Related articles
Trusted Platform Module
TPM Group Policy settings
BitLocker frequently asked questions (FAQ)
BitLocker overview
Prepare your organization for BitLocker: Planning and policies
Boot Configuration Data settings and
BitLocker
Article • 06/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article for IT professionals describes the Boot Configuration Data (BCD) settings that
are used by BitLocker.
When protecting data at rest on an operating system volume, during the boot process
BitLocker verifies that the security sensitive BCD settings haven't changed since
BitLocker was last enabled, resumed, or recovered.
In Windows 8, Windows Server 2012, and later operating systems, BitLocker narrows the
set of BCD settings validated to reduce the chance of benign changes causing a BCD
validation problem. If it's believed that there's a risk in excluding a particular BCD setting
from the validation profile, include that BCD setting in the BCD validation coverage to
suit the preferences for validation. If a default BCD setting is found to persistently
trigger a recovery for benign changes, exclude that BCD setting from the validation
coverage.
One of the benefits of using secure boot is that it can correct BCD settings during boot
without triggering recovery events. Secure boot enforces the same BCD settings as
BitLocker. Secure boot BCD enforcement isn't configurable from within the operating
system.
Customizing BCD validation settings
To modify the BCD settings that are validated by BitLocker, the administrator will add or
exclude BCD settings from the platform validation profile by enabling and configuring
the Use enhanced Boot Configuration Data validation profile group policy setting.
For the purposes of BitLocker validation, BCD settings are associated with a specific set
of Microsoft boot applications. These BCD settings can also be applied to the other
Microsoft boot applications that aren't part of the set to which the BCD settings are
already applicable for. This setting can be done by attaching any of the following
prefixes to the BCD settings that are being entered in the group policy settings dialog:
winload
winresume
memtest
all of the above
All BCD settings are specified by combining the prefix value with either a hexadecimal
(hex) value or a "friendly name."
The BCD setting hex value is reported when BitLocker enters recovery mode and is
stored in the event log (event ID 523). The hex value uniquely identifies the BCD setting
that caused the recovery event.
You can quickly obtain the friendly name for the BCD settings on a computer by using
the command bcdedit.exe /enum all .
Not all BCD settings have friendly names; for those settings without a friendly name, the
hex value is the only way to configure an exclusion policy.
When specifying BCD values in the Use enhanced Boot Configuration Data validation
profile group policy setting, use the following syntax:
For example, either " winload:hypervisordebugport " or " winload:0x250000f4 " yields the
same value.
A setting that applies to all boot applications may be applied only to an individual
application. However, the reverse isn't true. For example, one can specify either
" all:locale " or " winresume:locale ", but as the BCD setting " win-pe " doesn't apply to
all boot applications, " winload:winpe " is valid, but " all:winpe " isn't valid. The setting
that controls boot debugging (" bootdebug " or 0x16000010) will always be validated and
will have no effect if it's included in the provided fields.
7 Note
Take care when configuring BCD entries in the Group Policy setting. The Local
Group Policy Editor does not validate the correctness of the BCD entry. BitLocker
will fail to be enabled if the Group Policy setting specified is invalid.
0x25000020 winload nx
Hex Value Prefix Friendly Name
7 Note
Additional BCD settings exist that have hex values but do not have friendly names.
These settings are not included in this list.
0x1600001e all vm
BitLocker Can be used to mitigate unauthorized data access on lost or stolen computers
by encrypting all user files and system files on the operating system drive, including the
swap files and hibernation files, and checking the integrity of early boot components
and boot configuration data.
BitLocker can be used to encrypt the entire contents of a data drive. Group Policy can be
used to require BitLocker be enabled on a drive before the computer can write data to
the drive. BitLocker can be configured with various unlock methods for data drives, and
a data drive supports multiple unlock methods.
7 Note
Dynamic disks aren't supported by BitLocker. Dynamic data volumes won't be
displayed in the Control Panel. Although the operating system volume will always
be displayed in the Control Panel, regardless of whether it's a Dynamic disk, if it's a
dynamic disk it can't be protected by BitLocker.
7 Note
TPM 2.0 isn't supported in Legacy and CSM Modes of the BIOS. Devices with TPM
2.0 must have their BIOS mode configured as Native UEFI only. The Legacy and
Compatibility Support Module (CSM) options must be disabled. For added security,
enable the Secure Boot feature.
Installed Operating System on hardware in legacy mode will stop the OS from
booting when the BIOS mode is changed to UEFI. Use the tool MBR2GPT before
changing the BIOS mode that will prepare the OS and the disk to support UEFI.
Suspend keeps the data encrypted but encrypts the BitLocker volume master key with a
clear key. The clear key is a cryptographic key stored unencrypted and unprotected on
the disk drive. By storing this key unencrypted, the Suspend option allows for changes
or upgrades to the computer without the time and cost of decrypting and re-encrypting
the entire drive. After the changes are made and BitLocker is again enabled, BitLocker
will reseal the encryption key to the new values of the measured components that
changed as a part of the upgrade, the volume master key is changed, the protectors are
updated to match and the clear key is erased.
Some TPM firmware updates if these updates clear the TPM outside of the
Windows API. Not every TPM firmware update will clear the TPM. Users don't have
to suspend BitLocker if the TPM firmware update uses Windows API to clear the
TPM because in this case, BitLocker will be automatically suspended. It's
recommended that users test their TPM firmware updates if they don't want to
suspend BitLocker protection.
Non-Microsoft application updates that modify the UEFI\BIOS configuration.
Manual or third-party updates to secure boot databases (only if BitLocker uses
Secure Boot for integrity validation).
Updates to UEFI\BIOS firmware, installation of additional UEFI drivers, or UEFI
applications without using the Windows update mechanism (only if BitLocker
doesn't use Secure Boot for integrity validation during updates).
BitLocker can be checked if it uses Secure Boot for integrity validation with the
command line manage-bde.exe -protectors -get C: . If Secure Boot for integrity
validation is being used, it will be report Uses Secure Boot for integrity validation.
7 Note
If BitLocker has been suspended, BitLocker protection can be resumed after the
upgrade or update has been installed. Upon resuming protection, BitLocker will
reseal the encryption key to the new values of the measured components that
changed as a part of the upgrade or update. If these types of upgrades or updates
are applied without suspending BitLocker, the computer will enter recovery mode
when restarting and will require a recovery key or password to access the
computer.
When BitLocker is enabled, BitLocker can also be set to encrypt the entire drive or just
the used space on the drive. On a new hard drive, encrypting just the used spaced can
be considerably faster than encrypting the entire drive. When this encryption option is
selected, BitLocker automatically encrypts data as it is saved, ensuring that no data is
stored unencrypted.
Changing the BIOS boot order to boot another drive in advance of the hard drive.
Adding or removing hardware, such as inserting a new card in the computer.
Removing, inserting, or completely depleting the charge on a smart battery on a
portable computer.
In BitLocker, recovery consists of decrypting a copy of the volume master key using
either a recovery key stored on a USB flash drive or a cryptographic key derived from a
recovery password. The TPM isn't involved in any recovery scenarios, so recovery is still
possible if the TPM fails boot component validation, malfunctions, or is removed.
Key Management
How can I authenticate or unlock my removable
data drive?
Removable data drives can be unlocked using a password or a smart card. An SID
protector can also be configured to unlock a drive by using user domain credentials.
After encryption has started, the drive can also be automatically unlocked on a specific
computer for a specific user account. System administrators can configure which options
are available for users including password complexity and minimum length
requirements. To unlock by using a SID protector, use manage-bde.exe :
For removable data drives, the recovery password and recovery key can be saved to a
folder, saved to a Microsoft Account, or printed. By default, a recovery key for a
removable drive can't be stored on a removable drive.
) Important
This storage process ensures that the volume master key is never stored unencrypted
and is protected unless BitLocker is disabled. The keys are also saved to two additional
locations on the drive for redundancy. The keys can be read and processed by the boot
manager.
When using an enhanced PIN, users should run the optional system check during the
BitLocker setup process to ensure that the PIN can be entered correctly in the pre-boot
environment.
The TPM has the built-in ability to detect and react to these types of attacks. Because
different manufacturers' TPMs may support different PIN and attack mitigations, contact
the TPM's manufacturer to determine how the computer's TPM mitigates PIN brute
force attacks. After the TPM's manufacturer has been determined, contact the
manufacturer to gather the TPM's vendor-specific information. Most manufacturers use
the PIN authentication failure count to exponentially increase lockout time to the PIN
interface. However, each manufacturer has different policies regarding when and how
the failure counter is decreased or reset.
BitLocker To Go
What is BitLocker To Go?
BitLocker To Go is BitLocker Drive Encryption on removable data drives. This feature
includes the encryption of:
Drive partitioning must meet the BitLocker Drive Encryption Partitioning Requirements.
As with BitLocker, drives that are encrypted by BitLocker To Go can be opened by using
a password or smart card on another computer. In Control Panel, use BitLocker Drive
Encryption.
Hash of the TPM Beginning with Windows 10, the password hash isn't stored in AD DS
owner password by default. The password hash can be stored only if the TPM is owned
and the ownership was taken by using components of Windows 8.1 or
earlier, such as the BitLocker Setup Wizard or the TPM snap-in.
BitLocker The recovery password allows unlocking of and access to the drive
recovery after a recovery incident. Domain administrators can view the BitLocker
password recovery password by using the BitLocker Recovery Password Viewer.
For more information about this tool, see BitLocker: Use BitLocker
Recovery Password Viewer.
BitLocker key The key package helps to repair damage to the hard disk that would
package otherwise prevent standard recovery. Using the key package for
recovery requires the BitLocker Repair Tool, Repair-bde .
) Important
Joining a computer to the domain should be the first step for new computers
within an organization. After computers are joined to a domain, storing the
BitLocker recovery key to AD DS is automatic (when enabled in Group Policy).
When an administrator selects the Require BitLocker backup to AD DS check box of the
Store BitLocker recovery information in Active Directory Domain Service (Windows
2008 and Windows Vista) policy setting, or the equivalent Do not enable BitLocker
until recovery information is stored in AD DS for (operating system | fixed data |
removable data) drives check box in any of the Choose how BitLocker-protected
operating system drives can be recovered, Choose how BitLocker-protected fixed data
drives can be recovered, and Choose how BitLocker-protected removable data drives
can be recovered policy settings, users can't enable BitLocker unless the computer is
connected to the domain and the backup of BitLocker recovery information to AD DS
succeeds. With these settings configured if the backup fails, BitLocker can't be enabled,
ensuring that administrators will be able to recover BitLocker-protected drives in the
organization.
When an administrator clears these check boxes, the administrator is allowing a drive to
be BitLocker-protected without having the recovery information successfully backed up
to AD DS; however, BitLocker won't automatically retry the backup if it fails. Instead,
administrators can create a backup script, as described earlier in What if BitLocker is
enabled on a computer before the computer has joined the domain? to capture the
information after connectivity is restored.
Security
What form of encryption does BitLocker use? Is
it configurable?
BitLocker uses Advanced Encryption Standard (AES) as its encryption algorithm with
configurable key lengths of 128 bits or 256 bits. The default encryption setting is AES-
128, but the options are configurable by using Group Policy.
What is the best practice for using BitLocker on
an operating system drive?
The recommended practice for BitLocker configuration on an operating system drive is
to implement BitLocker on a computer with a TPM version 1.2 or higher, and a Trusted
Computing Group (TCG)-compliant BIOS or UEFI firmware implementation, along with a
PIN. By requiring a PIN that was set by the user in addition to the TPM validation, a
malicious user that has physical access to the computer can't start the computer.
7 Note
To use Network Unlock, a PIN must be configured for the computer. When the computer
isn't connected to the network, a PIN will need to be provided to unlock it.
BitLocker Network Unlock has software and hardware requirements for both client
computers, Windows Deployment services, and domain controllers that must be met
before it can be used.
Network Unlock uses two protectors - the TPM protector and the protector provided by
the network or by the PIN. Automatic unlock uses a single protector - the one stored in
the TPM. If the computer is joined to a network without the key protector, it will prompt
to enter a PIN. If the PIN isn't available, the recovery key will need to be used to unlock
the computer if it can't be connected to the network.
The computer's BIOS or UEFI firmware can't read USB flash drives.
The computer's BIOS, uEFI firmware, or boot menu doesn't have reading USB flash
drives enabled.
There are multiple USB flash drives inserted into the computer.
The PIN wasn't entered correctly.
The computer's BIOS or UEFI firmware only supports using the function keys (F1-
F10) to enter numerals in the pre-boot environment.
The startup key was removed before the computer finished rebooting.
The TPM has malfunctioned and fails to unseal the keys.
7 Note
Ensure all data is saved to the drive before locking it. Once locked, the drive will
become inaccessible.
Outside of using this command, data drives will be locked on shutdown and restart of
the operating system. A removable data drive will also be locked automatically when the
drive is removed from the computer.
BitLocker is also supported on data volume VHDs, such as those used by clusters, if
running Windows 10, Windows 8.1, Windows 8, Windows Server 2016, Windows Server
2012 R2, or Windows Server 2012.
BitLocker-API. Review the Management log, the Operational log, and any other
logs that are generated in this folder. The default logs have the following unique
names:
Microsoft-Windows-BitLocker-API/Management
Microsoft-Windows-BitLocker-API/Operational
Microsoft-Windows-BitLocker-API/Tracing - only displayed when Show
Analytic and Debug Logs is enabled
Additionally, review the Windows Logs > System log for events that were produced by
the TPM and TPM-WMI event sources.
To filter and display or export logs, the wevtutil.exe command-line tool or the Get-
WinEvent PowerShell cmdlet can be used.
For example, to use wevtutil.exe to export the contents of the operational log from the
BitLocker-API folder to a text file that is named BitLockerAPIOpsLog.txt, open a
Command Prompt window, and run the following command:
To use the Get-WinEvent cmdlet to export the same log to a comma-separated text file,
open a Windows PowerShell window and run the following command:
PowerShell
PowerShell
PowerShell
PowerShell
PowerShell
7 Note
Get-Tpm > PowerShell cmdlet that exports information about the Get-Tpm
C:\TPM.txt local computer's Trusted Platform Module (TPM). This
cmdlet shows different values depending on whether the
TPM chip is version 1.2 or 2.0. This cmdlet isn't supported
in Windows 7.
gpresult.exe /h Exports the Resultant Set of Policy information, and saves gpresult.exe
<Filename> the information as an HTML file.
2. Open Registry Editor, and export the entries in the following subkeys:
HKLM\SOFTWARE\Policies\Microsoft\FVE
HKLM\SYSTEM\CurrentControlSet\Services\TPM\
The TPM must be unlocked. Check the output of the get-tpm PowerShell cmdlet
command for the status of the TPM.
Windows RE must be enabled. Check the output of the reagentc.exe command for
the status of WindowsRE.
For more information about the BitLocker prerequisites, see BitLocker basic deployment:
Using BitLocker to encrypt volumes
Next steps
If the information examined so far indicates a specific issue (for example, WindowsRE
isn't enabled), the issue may have a straightforward fix.
Resolving issues that don't have obvious causes depends on exactly which components
are involved and what behavior is being see. The gathered information helps narrow
down the areas to investigate.
If BitLocker doesn't start or can't encrypt a drive and errors or events that are
related to the TPM are occurring, see BitLocker cannot encrypt a drive: known TPM
issues.
If BitLocker doesn't start or can't encrypt a drive, see BitLocker cannot encrypt a
drive: known issues.
It's recommended to keep the gathered information handy in case Microsoft Support is
contacted for help with resolving the issue.
Feedback
Was this page helpful? ツ Yes ト No
This article describes common issues that prevent BitLocker from encrypting a drive. This
article also provides guidance to address these issues.
7 Note
If it is determined that the BitLocker issue involves the trusted platform module
(TPM), see BitLocker cannot encrypt a drive: known TPM issues.
) Important
Follow the steps in this section carefully. Serious problems might occur if the
registry is modified incorrectly. Before modifying the registry, back up the registry
for restoration in case problems occur.
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\FVE
OSPlatformValidation_BIOS
OSPlatformValidation_UEFI
PlatformValidation
Feedback
Was this page helpful? ツ Yes ト No
This article helps troubleshooting issues that may be experienced if using Microsoft
Intune policy to manage silent BitLocker encryption on devices. The Intune portal
indicates whether BitLocker has failed to encrypt one or more managed devices.
To start narrowing down the cause of the problem, review the event logs as described in
Troubleshoot BitLocker. Concentrate on the Management and Operations logs in the
Applications and Services logs > Microsoft > Windows > BitLocker-API folder. The
following sections provide more information about how to resolve the indicated events
and error messages:
Event ID 853: Error: A compatible Trusted Platform Module (TPM) Security Device
cannot be found on this computer
Event ID 853: Error: BitLocker Drive Encryption detected bootable media (CD or
DVD) in the computer
Event ID 854: WinRE is not configured
Event ID 851: Contact manufacturer for BIOS upgrade
Error message: The UEFI variable 'SecureBoot' could not be read
Event ID 846, 778, and 851: Error 0x80072f9a
Error message: There are conflicting group policy settings for recovery options on
operating system drives
If there's no clear trail of events or error messages to follow, other areas to investigate
include the following areas:
For information about the procedure to verify whether Intune policies are enforcing
BitLocker correctly, see Verifying that BitLocker is operating correctly.
Event ID 853: Error: A compatible Trusted
Platform Module (TPM) Security Device cannot
be found on this computer
Event ID 853 can carry different error messages, depending on the context. In this case,
the Event ID 853 error message indicates that the device doesn't appear to have a TPM.
The event information will be similar to the following event:
To avoid this situation, the provisioning process stops if it detects a removable bootable
media.
Error: This PC cannot support device encryption because WinRE is not properly
configured.
The provisioning process enables BitLocker drive encryption on the operating system
drive during the Windows PE phase of provisioning. This action makes sure that the
drive is protected before the full operating system is installed. The provisioning process
also creates a system partition for WinRE to use if the system crashes.
diskpart.exe
list volume
If the status of any of the volumes isn't healthy or if the recovery partition is missing,
Windows may need to be reinstalled. Before reinstalling Windows, check the
configuration of the Windows image that is being provisioned. Make sure that the
image uses the correct disk configuration. The image configuration should resemble the
following (this example is from Microsoft Configuration Manager):
Step 2: Verify the status of WinRE
To verify the status of WinRE on the device, open an elevated Command Prompt window
and run the following command:
reagentc.exe /info
reagentc.exe /enable
If the partition status is healthy, but the reagentc.exe /enable command results in an
error, verify whether the Windows Boot Loader contains the recovery sequence GUID by
running the following command in an elevated Command Prompt window:
Error: BitLocker Drive Encryption cannot be enabled on the operating system drive.
Contact the computer manufacturer for BIOS upgrade instructions.
2. Verify that the BIOS Mode setting is UEFI and not Legacy.
3. If the BIOS Mode setting is Legacy, the UEFI firmware needs to be switched to
UEFI or EFI mode. The steps for switching to UEFI or EFI mode are specific to the
device.
7 Note
If the device supports only Legacy mode, Intune can't be used to manage
BitLocker Device Encryption on the device.
Error: BitLocker cannot use Secure Boot for integrity because the UEFI variable
'SecureBoot' could not be read. A required privilege is not held by the client.
In the TPM section of the output of this command, verify whether the PCR Validation
Profile setting includes 7, as follows:
If PCR Validation Profile doesn't include 7 (for example, the values include 0, 2, 4, and
11, but not 7), then secure boot isn't turned on.
2: Verify the secure boot state
To verify the secure boot state, use the System Information application by following
these steps:
3. If the Secure Boot State setting is Unsupported, Silent BitLocker Encryption can't
be used on the device.
7 Note
PowerShell
Confirm-SecureBootUEFI
If the computer supports Secure Boot and Secure Boot is enabled, this cmdlet
returns "True."
If the computer supports secure boot and secure boot is disabled, this cmdlet
returns "False."
If the computer does not support Secure Boot or is a BIOS (non-UEFI) computer,
this cmdlet returns "Cmdlet not supported on this platform."
Intune policy is being deployed to encrypt a Windows 10, version 1809 device, and the
recovery password is being stored in Azure Active Directory (Azure AD). As part of the
policy configuration, the Allow standard users to enable encryption during Azure AD
Join option has been selected.
The policy deployment fails and the failure generates the following events in Event
Viewer in the Applications and Services Logs > Microsoft > Windows > BitLocker API
folder:
Event ID:846
Event: Failed to backup BitLocker Drive Encryption recovery information for volume
C: to your Azure AD.
Event ID:778
For more information about GPOs and BitLocker, see BitLocker Group Policy Reference.
Automatic (Enforced when the device joins Azure AD during the provisioning
process. This option is available in Windows 10 version 1703 and later.)
Silent (Endpoint protection policy. This option is available in Windows 10 version
1803 and later.)
Interactive (Endpoint policy for Windows versions that are older than Windows 10
version 1803.)
If the device runs Windows 10 version 1703 or later, supports Modern Standby (also
known as Instant Go) and is HSTI-compliant, joining the device to Azure AD triggers
automatic device encryption. A separate endpoint protection policy isn't required to
enforce device encryption.
OMA-URI: ./Device/Vendor/MSFT/BitLocker/RequireDeviceEncryption
Value Type: Integer
Value: 1 (1 = Require, 0 = Not Configured)
OMA-URI:
./Device/Vendor/MSFT/BitLocker/AllowWarningForOtherDiskEncryption
Value Type: Integer
Value: 0 (0 = Blocked, 1 = Allowed)
7 Note
Because of an update to the BitLocker Policy CSP, if the device uses Windows 10
version 1809 or later, an endpoint protection policy can be used to enforce silent
BitLocker Device Encryption even if the device is not HSTI-compliant.
7 Note
If the Warning for other disk encryption setting is set to Not configured, the
BitLocker drive encryption wizard has to be manually started.
If the device doesn't support Modern Standby but is HSTI-compliant, and it uses a
version of Windows that is earlier than Windows 10, version 1803, an endpoint
protection policy that has the settings that are described in this article delivers the
policy configuration to the device. However, Windows then notifies the user to manually
enable BitLocker Drive Encryption. When the user selects the notification, it will start the
BitLocker Drive Encryption wizard.
Intune provides settings that can be used to configure automatic device encryption for
Autopilot devices for standard users. Each device must meet the following requirements:
Be HSTI-compliant
Support Modern Standby
Use Windows 10 version 1803 or later
OMA-URI: ./Device/Vendor/MSFT/BitLocker/AllowStandardUserEncryption
Value Type: Integer Value: 1
7 Note
RequireDeviceEncryption to 1
AllowStandardUserEncryption to 1
AllowWarningForOtherDiskEncryption to 0
Intune enforces silent BitLocker encryption for Autopilot devices that have standard
user profiles.
On the device, check the Registry Editor to verify the policy settings on the device. Verify
the entries under the following subkeys:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\BitLocker
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device
Feedback
Was this page helpful? ツ Yes ト No
By using the BitLocker Network Unlock feature, computers can be managed remotely
without having to enter a BitLocker PIN when each computer starts up. To configure this
behavior, the environment needs to meet the following requirements:
For general guidelines about how to troubleshoot BitLocker Network Unlock, see How
to enable Network Unlock: Troubleshoot Network Unlock.
This article describes several known issues that may be encountered when BitLocker
Network Unlock is used and provides guidance to address these issues.
Tip
1. Open an elevated command prompt window and run the following command:
For example:
a. The following registry key exists and has the following value:
Subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\FVE
Type: REG_DWORD
Value: OSManageNKP equal to 1 (True)
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SystemCertificates\FVE_
NKP\Certificates
has an entry whose name matches the name of the certificate thumbprint
of the BitLocker Network Unlock key protector that was found in step 1.
BitLocker Network Unlock has been configured as described in BitLocker: How to enable
Network Unlock. UEFI of a Surface Pro 4 has been configured to use DHCP. However,
when the Surface Pro 4 is restarted, it still prompts for a BitLocker PIN.
When testing another device, such as a different type of tablet or laptop PC that's
configured to use the same infrastructure, the device restarts as expected, without
prompting for the BitLocker PIN. This test confirms that the infrastructure is correctly
configured, and the issue is specific to the device.
If SEMM can't be used, the Surface Pro 4 may be able to use BitLocker Network
Unlock by configuring the Surface Pro 4 to use the network as its first boot option.
BitLocker Network Unlock has been configured as described in BitLocker: How to enable
Network Unlock. A Windows 8 client computer is connected to the internal network with
an ethernet cable. However, when the device is restarted, the device still prompts for the
BitLocker PIN.
DHCP servers may send any DHCP options to a BOOTP client as allowed by the DHCP
options and BOOTP vendor extensions. This behavior means that because a DHCP server
supports BOOTP clients, the DHCP server replies to BOOTP requests.
The manner in which a DHCP server handles an incoming message depends in part on
whether the message uses the Message Type option:
The first two messages that the BitLocker Network Unlock client sends are DHCP
DISCOVER\REQUEST messages. They use the Message Type option, so the DHCP
server treats them as DHCP messages.
The third message that the BitLocker Network Unlock client sends doesn't have the
Message Type option. The DHCP server treats the message as a BOOTP request.
A DHCP server that supports BOOTP clients must interact with those clients according to
the BOOTP protocol. The server must create a BOOTP BOOTREPLY message instead of a
DHCP DHCPOFFER message. In other words, the server must not include the DHCP
message option type and must not exceed the size limit for BOOTREPLY messages. After
the server sends the BOOTP BOOTREPLY message, the server marks a binding for a
BOOTP client as BOUND. A non-DHCP client doesn't send a DHCPREQUEST message,
nor does that client expect a DHCPACK message.
For more information about DHCP and BitLocker Network Unlock, see BitLocker: How to
enable Network Unlock: Network Unlock sequence.
Feedback
Was this page helpful? ツ Yes ト No
This article describes common issues that may prevent BitLocker from behaving as
expected when a drive is recovered, or that may cause BitLocker to start recovery
unexpectedly. The article also provides guidance to address these issues.
7 Note
In this article, "recovery password" refers to the 48-digit recovery password and
"recovery key" refers to 32-digit recovery key. For more information, see BitLocker
key protectors.
What if BitLocker is enabled on a computer before the computer has joined the
domain?
What happens if the backup initially fails? Will BitLocker retry the backup?
The hard disk of a Windows 11 or Windows 10 laptop has to be recovered. The disk was
encrypted by using BitLocker Driver Encryption. However, the BitLocker recovery
password wasn't backed up, and the usual user of the laptop isn't available to provide
the password.
For example, to back up all of the recovery information for the C: drive to AD DS,
open an elevated Command Prompt window and run the following command:
7 Note
However, after entering the recovery password, the device can't start.
) Important
Tablet devices do not support the manage-bde.exe -forcerecovery command.
This issue occurs because the Windows Boot Manager can't process touch-input during
the pre-boot phase of startup. If Boot Manager detects that the device is a tablet, it
redirects the startup process to the Windows Recovery Environment (WinRE), which can
process touch-input.
If WindowsRE detects the TPM protector on the hard disk, it does a PCR reseal.
However, the manage-bde.exe -forcerecovery command deletes the TPM protectors on
the hard disk. Therefore, WinRE can't reseal the PCRs. This failure triggers an infinite
BitLocker recovery cycle and prevents Windows from starting.
You experience one or more of the following symptoms on the Surface device:
At startup, the Surface device prompts for a BitLocker recovery password. The
correct recovery password is entered, but Windows doesn't start up.
Startup progresses directly into the Surface device's Unified Extensible Firmware
Interface (UEFI) settings.
Devices that support Connected Standby (also known as InstantGO or Always On,
Always Connected PCs), including Surface devices, must use PCR 7 of the TPM. In its
default configuration on such systems, BitLocker binds to PCR 7 and PCR 11 if PCR 7 and
Secure Boot are correctly configured. For more information, see the BitLocker Group
Policy Settings: About the Platform Configuration Register (PCR).
To resolve this issue and repair the device, follow these steps:
To use the BitLocker recovery password and a Surface recovery image to remove the
TPM protectors from the boot drive, follow these steps:
1. Obtain the BitLocker recovery password from the Surface user's Microsoft.com
account . If BitLocker is managed by a different method, such as Microsoft
BitLocker Administration and Monitoring (MBAM), Configuration Manager
BitLocker Management, or Intune, contact the administrator for help.
2. Use another computer to download the Surface recovery image from Surface
Recovery Image Download . Use the downloaded image to create a USB recovery
drive.
3. Insert the USB Surface recovery image drive into the Surface device, and start the
device.
where:
<Password> is the BitLocker recovery password that was obtained in Step 1
<DriveLetter> is the drive letter that is assigned to the operating system drive
7 Note
For more information about how to use this command, see manage-bde
unlock.
8. When prompted, enter the BitLocker recovery password that was obtained in Step
1.
7 Note
After the TPM protectors are disabled, BitLocker drive encryption no longer
protects the device. To re-enable BitLocker drive encryption, select Start, type
Manage BitLocker, and then press Enter. Follow the steps to encrypt the drive.
Step 2: Use Surface BMR to recover data and reset the Surface
device
To recover data from the Surface device if Windows doesn't start, follow steps 1 through
5 of the section Step 1: Disable the TPM protectors on the boot drive to get to a
Command Prompt window. Once a Command Prompt window is open, follow these
steps:
2. After the drive is unlocked, use the copy or xcopy.exe command to copy the user
data to another drive.
7 Note
For more information about the these commands, see the Windows
commands article.
3. To reset the device by using a Surface recovery image, follow the instructions in the
article Creating and using a USB recovery drive for Surface .
PowerShell
2. Restart the device, and then edit the UEFI settings to set the Secure Boot option to
Microsoft Only.
4. Open an elevated PowerShell window and run the following PowerShell cmdlet:
PowerShell
1. Disable any Group Policy Objects that configure the PCR settings, or remove the
device from any groups that enforce such policies.
PowerShell
You can avoid this scenario when installing updates to system firmware or TPM firmware
by temporarily suspending BitLocker before applying such updates.
) Important
TPM and UEFI firmware updates may require multiple restarts while they install. To
keep BitLocker suspended during this process, the PowerShell cmdlet Suspend-
BitLocker must be used and the Reboot Count parameter must be set to either of
the following values:
2 or greater: This value sets the number of times the device will restart before
BitLocker Device Encryption resumes. For example, setting the value to 2 will
cause BitLocker to resume after the device restarts twice.
1. Open an elevated Windows PowerShell window and run the following PowerShell
cmdlet:
PowerShell
3. After installing the firmware updates, restart the computer, open an elevated
PowerShell window, and then run the following PowerShell cmdlet:
PowerShell
A device uses TPM 1.2 and runs Windows 10, version 1809. The device also uses
Virtualization-based Security features such as Device Guard and Credential Guard. Every
time the device is started, the device enters BitLocker Recovery mode and an error
message similar to the following error message is displayed:
Recovery
You'll need to use recovery tools. If you don't have any installation media (like a disc
or USB device), contact your PC administrator or PC/Device manufacturer.
Remove any device that uses TPM 1.2 from any group that is subject to GPOs that
enforce secure launch.
Edit the Turn On Virtualization Based Security GPO to set Secure Launch
Configuration to Disabled.
Feedback
Was this page helpful? ツ Yes ト No
This article describes common issues that affect BitLocker's configuration and general
functionality. This article also provides guidance to address these issues.
To compensate for these changes, BitLocker uses a conversion model called Encrypt-On-
Write. This model makes sure that any new disk writes are encrypted as soon as
BitLocker is enabled. This behavior happens on all client editions and for any internal
drives.
) Important
By using the new conversion model, sensitive data can be stored on the drive as soon as
BitLocker is turned on. The encryption process doesn't need to finish first, and
encryption doesn't adversely affect performance. The tradeoff is that the encryption
process for pre-existing data takes more time.
Other BitLocker enhancements
Several other areas of BitLocker were improved in versions of Windows released after
Windows 7:
Integration with Azure Active Directory (Azure AD) - BitLocker can store recovery
information in Azure AD to make it easier to recover.
Direct memory access (DMA) Port Protection - By using MDM policies to manage
BitLocker, a device's DMA ports can be blocked which secures the device during its
startup.
Support for Encrypted Hard Drives - Encrypted Hard Drives are a new class of
hard drives that are self-encrypting at a hardware level and allow for full disk
hardware encryption. By taking on that workload, Encrypted Hard Drives increase
BitLocker performance and reduce CPU usage and power consumption.
Support for classes of HDD/SSD hybrid disks - BitLocker can encrypt a disk that
uses a small SSD as a non-volatile cache in front of the HDD, such as Intel Rapid
Storage Technology.
Hyper-V Gen 2 VM: Can't access the volume
after BitLocker encryption
Consider the following scenario:
The encrypted volume isn't accessible, and the computer lists the volume's
file system as Unknown.
You need to format the disk in <drive_letter:> drive before you can use
it
A Windows Server 2019 or 2016 Hyper-V Server is hosting VMs (guests) that are
configured as Windows domain controllers. On a domain controller guest VM, BitLocker
has encrypted the disks that store the Active Directory database and log files. When a
"production snapshot" of the domain controller guest VM is attempted, the Volume
Snap-Shot (VSS) service doesn't correctly process the backup.
This issue occurs regardless of any of the following variations in the environment:
In the guest VM domain controller Windows Logs > Application Event Viewer log, the
VSS event source records event ID 8229:
ID: 8229
Level: Warning
Source: VSS
Message: A VSS writer has rejected an event with error 0x800423f4. The writer
experienced a non-transient error. If the backup process is retried, the error is likely
to reoccur.
Changes that the writer made to the writer components while handling the event
will not be available to the requester.
Check the event log for related events from the application hosting the VSS writer.
Operation:
PostSnapshot Event
Context:
Execution Context: Writer
Writer Class Id: {b2014c9e-8711-4c5c-a5a9-3cf384484757}
Writer Name: NTDS
Writer Instance ID: {d170b355-a523-47ba-a5c8-732244f70e75}
Command Line: C:\Windows\system32\lsass.exe
In the guest VM domain controller Applications and Services Logs > Directory Service
Event Viewer log, there's an event logged similar to the following event:
7 Note
The internal ID of this event may differ based on the operating system release
version and patch level.
When this issue occurs, the Active Directory Domain Services (NTDS) VSS Writer will
display the following error when the vssadmin.exe list writers command is run:
Error
More information
When the VSS NTDS writer requests access to the encrypted drive, the Local Security
Authority Subsystem Service (LSASS) generates an error entry similar to the following
error:
Console
Console
Feedback
Was this page helpful? ツ Yes ト No
This article describes common issues that affect the Trusted Platform Module (TPM) that
might prevent BitLocker from encrypting a drive. This article also provides guidance to
address these issues.
7 Note
If it's been determined that the BitLocker issue does not involve the TPM, see
BitLocker cannot encrypt a drive: known issues.
PowerShell
2. Restart the computer. If a prompt is displayed confirming the clearing of the TPM,
agree to clear the TPM.
2 Warning
1. Enter the UEFI/BIOS configuration screens of the device by restarting the device
and hitting the appropriate key combination as the device boots. Consult with the
device manufacturer for the appropriate key combination for entering into the
UEFI/BIOS configuration screens.
2. Once in the UEFI/BIOS configuration screens, disable the TPM. Consult with the
device manufacturer for instructions on how to disable the TPM in the UEFI/BIOS
configuration screens.
3. Save the UEFI/BIOS configuration with the TPM disabled and restart the device to
boot into Windows.
4. Once signed into Windows, return to the TPM management console. An error
message similar to the following error message is displayed:
This message is expected since the TPM is currently disabled in the UEFI
firmware/BIOS of the device.
5. Restart the device and enter the UEFI/BIOS configuration screens again.
7. Save the UEFI/BIOS configuration with the TPM enabled and restart the device to
boot into Windows.
If the TPM still can't be prepared, clear the existing TPM keys by following the
instructions in the article Troubleshoot the TPM: Clear all the keys from the TPM.
2 Warning
This issue appears to be limited to computers that run versions of Windows that are
earlier than Windows 10.
Disable the policy or remove the computer from the domain followed by trying to
turn on BitLocker drive encryption again. If the operation succeeds, then the issue
was caused by the policy.
Use LDAP and network trace tools to examine the LDAP exchanges between the
client and the AD DS domain controller to identify the cause of the Access Denied
or Insufficient Rights error. In this case, an error should be displayed when the
client tries to access its object in the CN=TPM Devices,DC=<domain>,DC=com container.
1. To review the TPM information for the affected computer, open an elevated
Windows PowerShell window and run the following command:
PowerShell
2. To resolve the issue, use a tool such as dsacls.exe to ensure that the access control
list of msTPM-TPMInformationForComputer grants both Read and Write
permissions to NTAUTHORITY/SELF.
It's attempted to turn on BitLocker drive encryption on a device but it fails. While
troubleshooting, the TPM management console (tpm.msc) is used to attempt to prepare
the TPM on the device. The operation fails with an error message similar to the
following error message:
0x80072030 There is no such object on the server when a policy to back up TPM
information to active directory is enabled
1. Upgrade the functional level of the domain and forest to Windows Server 2012 R2.
2. Download Add-TPMSelfWriteACE.vbs.
cscript.exe <Path>\Add-TPMSelfWriteACE.vbs
Feedback
Was this page helpful? ツ Yes ト No
This article describes common issues that relate directly to the trusted platform module
(TPM), and provides guidance to address these issues.
Additionally, in Event Viewer, the computer logs the following Event ID 1026 event
under Windows Logs > System:
Additionally, the behavior indicates that the client computer can't obtain a Primary
Refresh Token (PRT).
1. Open the TPM management console (tpm.msc) by selecting Start and entering
tpm.msc in the Search box.
2. If a notice is displayed to either unlock the TPM or reset the lockout, contact the
hardware vendor to determine whether there's a known fix for the issue.
3. If the issue is still not resolved after contacting the hardware vendor, clear and
reinitialize the TPM by following the instructions in the article Troubleshoot the
TPM: Clear all the keys from the TPM.
2 Warning
If in Step 2 there's no notice to either unlock the TPM or reset the lockout, review the
UEFI firmware/BIOS settings of the computer for any setting that can be used to reset or
disable the lockout.
Loading the management console failed. The device that is required by the
cryptographic provider is not ready for use.
HRESULT 0x800900300x80090030 - NTE_DEVICE_NOT_READY
The device that is required by this cryptographic provider is not ready for use.
TPM Spec version: TPM v1.2
On a different device that is running the same version of Windows, the TPM
management console can be opened.
Switch the TPM operating mode from version 1.2 to version 2.0 if the device has
this option available.
If switching the TPM from version 1.2 to version 2.0 doesn't resolve the issue, or if
the device doesn't have TPM version 2.0 available, contact the hardware vendor to
determine whether there's a UEFI firmware update/BIOS update/TPM update for
the device. If there's an update available, install the update to see if it resolves the
issue.
2 Warning
To verify that the join succeeded, use the dsregcmd /status command. In the tool
output, the following attributes indicate that the join succeeded:
AzureAdJoined: YES
DomainName: <on-prem Domain name>
TPM_E_PCP_INTERNAL_ERROR Generic If the device returns this error, disable its TPM.
(0x80290407/-2144795641) TPM error. Windows 10, version 1809 and later versions,
automatically detect TPM failures and finish
the hybrid Azure AD join without using the
TPM.
TPM_E_NOTFIPS The FIPS If the device gives this error, disable its TPM.
(0x80280036/-2144862154) mode of Windows 10, version 1809 and later versions,
the TPM is automatically detect TPM failures and finish
currently the hybrid Azure AD join without using the
not TPM.
supported.
NTE_AUTHENTICATION_IGNORED The TPM is This error is transient. Wait for the cooldown
(0x80090031/-2146893775) locked out. period, and then retry the join operation.
For more information about TPM issues, see the following articles:
Feedback
Was this page helpful? ツ Yes ト No
Platform Configuration Registers (PCRs) are memory locations in the Trusted Platform
Module (TPM). BitLocker and its related technologies depend on specific PCR
configurations. Additionally, specific change in PCRs can cause a device or computer to
enter BitLocker recovery mode.
By tracking changes in the PCRs, and identifying when they changed, insight can be
gained into issues that occur or learn why a device or computer entered BitLocker
recovery mode. The Measured Boot logs record PCR changes and other information.
These logs are located in the *C:\Windows\Logs\MeasuredBoot* folder.
This article describes tools that can be used to decode these logs:
TBSLogGenerator.exe
PCPTool.exe
For more information about Measured Boot and PCRs, see the following articles:
A computer that is running Windows Server 2016 or newer and that has a TPM
enabled
A Gen 2 virtual machine running on Hyper-V that is running Windows Server 2016
or newer and is using a virtual TPM.
1. Download the Windows Hardware Lab Kit from Windows Hardware Lab Kit.
2. After downloading, run the installation file from the path where the install was
downloaded to.
3. Accept the default installation path.
4. Under Select the features you want to install, select Windows Hardware Lab Kit—
Controller + Studio.
1. After the installation finishes, open an elevated Command Prompt window and
navigate to the following folder:
For example, the following figure shows Measured Boot logs that were collected
from a Windows 10 computer and put into the C:\MeasuredBoot\ folder. The figure
also shows a Command Prompt window and the command to decode the
0000000005-0000000000.log file:
7 Note
PCPTool.exe is a Visual Studio solution, but executable needs to be built before tool
can be used.
PCPTool.exe is part of the TPM Platform Crypto-Provider Toolkit . The tool decodes a
Measured Boot log file and converts it into an XML file.
To download and install PCPTool.exe, go to the Toolkit page, select Download, and
follow the instructions.
<LogFolderPath> = the path to the folder that contains the file to be decoded
<LogFileName> = the name of the file to be decoded
<DestinationFolderName> = the name of the folder for the decoded text file
<DecodedFileName> = the name of the decoded text file
The content of the XML file will be similar to the following XML:
Feedback
Was this page helpful? ツ Yes ト No
Encrypted hard drive uses the rapid encryption that is provided by BitLocker drive
encryption to enhance data security and management.
Encrypted hard drives are a new class of hard drives that are self-encrypting at a
hardware level and allow for full disk hardware encryption. You can install Windows to
encrypted hard drives without additional modification, beginning with Windows 8 and
Windows Server 2012.
Encrypted hard drives are supported natively in the operating system through the
following mechanisms:
Identification: The operating system identifies that the drive is an Encrypted hard
drive device type.
Activation: The operating system disk management utility activates, creates and
maps volumes to ranges/bands as appropriate.
Configuration: The operating system creates and maps volumes to ranges/bands
as appropriate.
API: API support for applications to manage Encrypted hard drives independent of
BitLocker drive encryption (BDE).
BitLocker support: Integration with the BitLocker Control Panel provides a
seamless BitLocker end-user experience.
2 Warning
Self-encrypting hard drives and encrypted hard drives for Windows are not the
same type of devices. Encrypted hard drives for Windows require compliance for
specific TCG protocols as well as IEEE 1667 compliance; Self-encrypting hard drives
do not have these requirements. It is important to confirm that the device type is
an encrypted hard drive for Windows when planning for deployment.
If you're a storage device vendor who is looking for more info on how to implement
Encrypted Hard Drive, see the Encrypted Hard Drive Device Guide.
Encrypted hard drive license entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
System Requirements
To use encrypted hard drives, the following system requirements apply:
2 Warning
Technical overview
Rapid encryption in BitLocker directly addresses the security needs of enterprises while
offering improved performance. In versions of Windows earlier than Windows Server
2012, BitLocker required a two-step process to complete read/write requests. In
Windows Server 2012, Windows 8, or later versions, encrypted hard drives offload the
cryptographic operations to the drive controller for much greater efficiency. When the
operating system identifies an encrypted hard drive, it activates the security mode. This
activation lets the drive controller generate a media key for every volume that the host
computer creates. This media key, which is never exposed outside the disk, is used to
rapidly encrypt or decrypt every byte of data that is sent or received from the disk.
The Data Encryption Key is the key used to encrypt all of the data on the drive. The drive
generates the DEK and it never leaves the device. It's stored in an encrypted format at a
random location on the drive. If the DEK is changed or erased, data encrypted using the
DEK is irrecoverable.
The AK is the key used to unlock data on the drive. A hash of the key is stored on the
drive and requires confirmation to decrypt the DEK.
When a computer with an encrypted hard drive is in a powered-off state, the drive locks
automatically. As a computer powers on, the device remains in a locked state and is only
unlocked after the AK decrypts the DEK. Once the AK decrypts the DEK, read-write
operations can take place on the device.
When writing data to the drive, it passes through an encryption engine before the write
operation completes. Likewise, reading data from the drive requires the encryption
engine to decrypt the data before passing that data back to the user. If the AK needs to
be changed or erased, the data on the drive doesn't need to be re-encrypted. A new
Authentication Key needs to be created and it will re-encrypt the DEK. Once completed,
the DEK can now be unlocked using the new AK, and read-writes to the volume can
continue.
Starting in Windows 11, version 22H2, Personal Data Encryption (PDE) is a security
feature that provides file-based data encryption capabilities to Windows.
PDE utilizes Windows Hello for Business to link data encryption keys with user
credentials. When a user signs in to a device using Windows Hello for Business,
decryption keys are released, and encrypted data is accessible to the user.
When a user logs off, decryption keys are discarded and data is inaccessible, even if
another user signs into the device.
The use of Windows Hello for Business offers the following advantages:
It reduces the number of credentials to access encrypted content: users only need
to sign-in with Windows Hello for Business
The accessibility features available when using Windows Hello for Business extend
to PDE protected content
PDE differs from BitLocker in that it encrypts files instead of whole volumes and disks.
PDE occurs in addition to other encryption methods such as BitLocker.
Unlike BitLocker that releases data encryption keys at boot, PDE doesn't release data
encryption keys until a user signs in using Windows Hello for Business.
Prerequisites
To use PDE, the following prerequisites must be met:
) Important
If you sign in with a password or a security key, you can't access PDE protected
content.
No Yes No Yes
Personal data encryption (PDE) license entitlements are granted by the following
licenses:
For more information about Windows licensing, see Windows licensing overview.
PDE protected data is accessible at Yes Data is accessible for one minute
Windows lock screen after lock, then it's no longer
available
Decryption keys used by PDE discarded After user signs One minute after Windows lock
out of Windows screen is engaged or after user
signs out of Windows
Scenarios where a user will be denied access to PDE protected content include:
User has signed into Windows via a password instead of signing in with Windows
Hello for Business biometric or PIN
If protected via level 2 protection, when the device is locked
When trying to access content on the device remotely. For example, UNC network
paths
Remote Desktop sessions
Other users on the device who aren't owners of the content, even if they're signed
in via Windows Hello for Business and have permissions to navigate to the PDE
protected content
Authentication to Windows Hello for Business When BitLocker with TPM + PIN is
access protected enabled, BitLocker PIN plus
content Windows sign-in
For PDE protected files, under Protection status: there will be an item listed as Personal
Data Encryption is: and it will have the attribute of On.
For EFS protected files, under Users who can access this file:, there will be a Certificate
thumbprint next to the users with access to the file. There will also be a section at the
bottom labeled Recovery certificates for this file as defined by recovery policy:.
Encryption information including what encryption method is being used to protect the
file can be obtained with the cipher.exe /c command.
Enable BitLocker Drive Encryption. Although PDE works without BitLocker, it's
recommended to enable BitLocker. PDE is meant to work alongside BitLocker for
increased security at it isn't a replacement for BitLocker
Backup solution such as OneDrive in Microsoft 365. In certain scenarios, such as
TPM resets or destructive PIN resets, the keys used by PDE to protect content will
be lost making any PDE-protected content inaccessible. The only way to recover
such content is from a backup. If the files are synced to OneDrive, to regain access
you must re-sync OneDrive
Windows Hello for Business PIN reset service. Destructive PIN resets will cause keys
used by PDE to protect content to be lost, making any content protected with PDE
inaccessible. After a destructive PIN reset, content protected with PDE must be
recovered from a backup. For this reason, Windows Hello for Business PIN reset
service is recommended since it provides non-destructive PIN resets
Windows Hello Enhanced Sign-in Security offers additional security when
authenticating with Windows Hello for Business via biometrics or PIN
Next steps
Learn about the available options to configure Personal Data Encryption (PDE) and
how to configure them via Microsoft Intune or configuration Service Provider
(CSP): PDE settings and configuration
Review the Personal Data Encryption (PDE) FAQ
PDE settings and configuration
Article • 08/25/2023 • Applies to: ✅ Windows 11
This article describes the Personal Data Encryption (PDE) settings and how to configure them
via Microsoft Intune or Configuration Service Providers (CSP).
7 Note
PDE can be configured using MDM policies. The content to be protected by PDE can be
specified using PDE APIs. There is no user interface in Windows to either enable PDE or
protect content using PDE.
The PDE APIs can be used to create custom applications and scripts to specify which
content to protect and at what level to protect the content. Additionally, the PDE APIs
can't be used to protect content until the PDE policy has been enabled.
PDE settings
The following table lists the required settings to enable PDE.
Enable Personal Data Encryption PDE isn't enabled by default. Before PDE can be used, you
must enable it.
Sign-in and lock last interactive user Winlogon automatic restart sign-on (ARSO) isn't supported
automatically after a restart for use with PDE. To use PDE, ARSO must be disabled.
Kernel-mode crash Kernel-mode crash dumps and live dumps can potentially cause the keys
dumps and live dumps used by PDE to protect content to be exposed. For greatest security, disable
kernel-mode crash dumps and live dumps.
Windows Error Disabling Windows Error Reporting prevents user-mode crash dumps. User-
Reporting (WER)/user- mode crash dumps can potentially cause the keys used by PDE to protect
mode crash dumps content to be exposed. For greatest security, disable user-mode crash
dumps.
Setting name Description
Hibernation Hibernation files can potentially cause the keys used by Personal Data
Encryption (PDE) to protect content to be exposed. For greatest security,
disable hibernation.
Allow users to select When this policy isn't configured on Azure AD joined devices, users on a
when a password is Connected Standby device can change the amount of time after the device´s
required when screen turns off before a password is required to wake the device. During
resuming from the time when the screen turns off but a password isn't required, the keys
connected standby used by PDE to protect content could potentially be exposed. It's
recommended to explicitly disable this policy on Azure AD joined devices.
Administrative Templates > Windows Sign-in and lock last interactive user Disabled
Components > Windows Logon automatically after a restart
Options
Administrative Templates > System > Allow users to select when a password is Disabled
Logon required when resuming from connected
standby
Assign the policy to a group that contains as members the devices or users that you want to
configure.
Tip
Use the following Graph call to automatically create the settings catalog policy in your
tenant without assignments nor scope tags.
When using this call, authenticate to your tenant in the Graph Explorer window. If it's
the first time using Graph Explorer, you may need to authorize the application to access
your tenant or to modify the existing permissions. This graph call requires
DeviceManagementConfiguration.ReadWrite.All permissions.
HTTP
POST https://graph.microsoft.com/beta/deviceManagement/configurationPolicies
Content-Type: application/json
./User/Vendor/MSFT/PDE/EnablePersonalDataEncryption int 1
./Device/Vendor/MSFT/Policy/Config/MemoryDump/AllowCrashDump int 0
./Device/Vendor/MSFT/Policy/Config/MemoryDump/AllowLiveDump int 0
./Device/Vendor/MSFT/Policy/Config/Power/AllowHibernate int 0
Disable PDE
Once PDE is enabled, it isn't recommended to disable it. However if you need to disable PDE,
you can do so using the following steps.
PDE Enable Personal Data Encryption (User) Disable Personal Data Encryption
Assign the policy to a group that contains as members the devices or users that you want to
configure.
./User/Vendor/MSFT/PDE/EnablePersonalDataEncryption int 0
PDE-protected files can also be decrypted using cipher.exe, which can be helpful in the
following scenarios:
cipher.exe /d /s:<path_to_directory>
Decrypt a single file or all of the files in the specified directory, but not any
subdirectories:
) Important
Once a user selects to manually decrypt a file, the user won't be able to manually
protect the file again using PDE.
Next steps
Review the Personal Data Encryption (PDE) FAQ
Frequently asked questions for
Personal Data Encryption (PDE)
FAQ • Applies to: ✅ Windows 11
Here are some answers to common questions regarding Personal Data Encryption (PDE)
Message encryption
Users can send encrypted message to recipients that have an encryption certificate.
Users can only read encrypted messages if the message is received on their Exchange
account, and they have corresponding decryption keys.
Encrypted messages can be read only by recipients who have a certificate. If you try to
send an encrypted message to recipients whose encryption certificate isn't available, the
app prompts you to remove these recipients before sending the email.
Digital signatures
A digitally signed message reassures the recipient that the message hasn't been
tampered with, and verifies the identity of the sender. Recipients can only verify the
digital signature if they're using an email client that supports S/MIME.
Email Encryption (S/MIME) license entitlements are granted by the following licenses:
Windows Pro/Pro Windows Windows Windows Windows
Education/SE Enterprise E3 Enterprise E5 Education A3 Education A5
For more information about Windows licensing, see Windows licensing overview.
Prerequisites
S/MIME is enabled for Exchange accounts (on-premises and Exchange Online).
Users can't use S/MIME signing and encryption with a personal account such as
Outlook.com
Valid Personal Information Exchange (PFX) certificates are installed on the device
How to Create PFX Certificate Profiles in Configuration Manager
Use certificates for authentication in Microsoft Intune
3. In Select an account, select the account for which you want to configure S/MIME
options
5. (Optional) Select Always sign with S/MIME, Always encrypt with S/MIME, or both,
to automatically digitally sign or encrypt all outgoing messages
7 Note
The option to sign or encrypt can be changed for individual messages, unless
EAS policies prevent it.
2. Use Sign and Encrypt icons to turn on digital signature and encryption for this
message
7 Note
For your data protection needs, Microsoft recommends that you use Microsoft
Purview Information Protection and Microsoft Purview Data Loss Prevention.
Purview simplifies the configuration set-up and provides an advanced set of
capabilities.
Applies to:
Windows 10
Windows 11
) Important
While Windows Information Protection can stop accidental data leaks from honest
employees, it is not intended to stop malicious insiders from removing enterprise
data. For more information about the benefits WIP provides, see Why use WIP?
later in this topic.
Prerequisites
You'll need this software to run Windows Information Protection in your enterprise:
-OR-
As an admin, you can address the question of who gets access to your data by using
access controls, such as employee credentials. However, just because someone has the
right to access your data doesn't guarantee that the data will remain within the secured
locations of the enterprise. So, access controls are a great start, they're not enough.
In the end, all of these security measures have one thing in common: employees will
tolerate only so much inconvenience before looking for ways around the security
restrictions. For example, if you don't allow employees to share files through a protected
system, employees will turn to an outside app that more than likely lacks security
controls.
A set of rules about how the system can identify and categorize the data that
needs to be protected. For example, a rule set might contain a rule that identifies
credit card numbers and another rule that identifies Social Security numbers.
A way to scan company data to see whether it matches any of your defined
rules. Currently, Microsoft Exchange Server and Exchange Online provide this
service for email in transit, while Microsoft SharePoint and SharePoint Online
provide this service for content stored in document libraries.
The ability to specify what happens when data matches a rule, including whether
employees can bypass enforcement. For example, in Microsoft SharePoint and
SharePoint Online, the Microsoft Purview Data Loss Prevention system lets you
warn your employees that shared data includes sensitive info, and to share it
anyway (with an optional audit log entry).
Unfortunately, data loss prevention systems have their own problems. For example, the
less detailed the rule set, the more false positives are created. This behavior can lead
employees to believe that the rules slow down their work and need to be bypassed in
order to remain productive, potentially leading to data being incorrectly blocked or
improperly released. Another major problem is that data loss prevention systems must
be widely implemented to be effective. For example, if your company uses a data loss
prevention system for email, but not for file shares or document storage, you might find
that your data leaks through the unprotected channels. Perhaps the biggest problem
with data loss prevention systems is that it provides a jarring experience that interrupts
the employees' natural workflow. It can stop some operations (such as sending a
message with an attachment that the system tags as sensitive) while allowing others,
often according to subtle rules that the employee doesn't see and can't understand.
After the type of protection is set, the creating app encrypts the document so that only
authorized people can open it, and even then, only in compatible apps. After an
employee opens the document, the app becomes responsible for enforcing the
specified protections. Because protection travels with the document, if an authorized
person sends it to an unauthorized person, the unauthorized person won't be able to
read or change it. However, for this to work effectively information rights management
systems require you to deploy and set up both a server and client environment. And,
because only compatible clients can work with protected documents, an employees'
work might be unexpectedly interrupted if he or she attempts to use a non-compatible
app.
Benefits of WIP
Windows Information Protection provides:
Ability to wipe corporate data from Intune MDM enrolled devices while leaving
personal data alone.
Change the way you think about data policy enforcement. As an enterprise
admin, you need to maintain compliance in your data policy and data access.
Windows Information Protection helps protect enterprise on both corporate and
employee-owned devices, even when the employee isn't using the device. When
employees create content on an enterprise-protected device, they can choose to
save it as a work document. If it's a work document, it becomes locally maintained
as enterprise data.
Using protected apps. Managed apps (apps that you've included on the
Protected apps list in your WIP policy) are allowed to access your enterprise
data and will interact differently when used with unallowed, non-enterprise
aware, or personal-only apps. For example, if WIP management is set to Block,
your employees can copy and paste from one protected app to another
protected app, but not to personal apps. Imagine an HR person wants to copy a
job description from a protected app to the internal career website, an
enterprise-protected location, but makes a mistake and tries to paste into a
personal app instead. The paste action fails and a notification pops up, saying
that the app couldn't paste because of a policy restriction. The HR person then
correctly pastes to the career website without a problem.
Managed apps and restrictions. With WIP you can control which apps can
access and use your enterprise data. After adding an app to your protected
apps list, the app is trusted with enterprise data. All apps not on this list are
stopped from accessing your enterprise data, depending on your WIP
management-mode.
You don't have to modify line-of-business apps that never touch personal data
to list them as protected apps; just include them in the protected apps list.
Deciding your level of data access. WIP lets you block, allow overrides, or audit
employees' data sharing actions. Hiding overrides stops the action immediately.
Allowing overrides lets the employee know there's a risk, but lets him or her
continue to share the data while recording and auditing the action. Silent just
logs the action without stopping anything that the employee could have
overridden while using that setting; collecting info that can help you to see
patterns of inappropriate sharing so you can take educative action or find apps
that should be added to your protected apps list. For info about how to collect
your audit log files, see How to collect Windows Information Protection (WIP)
audit event logs.
Apps such as Microsoft Word work with WIP to help continue your data
protection across local files and removable media. These apps are being
referred to as, enterprise aware. For example, if an employee opens WIP-
encrypted content from Word, edits the content, and then tries to save the
edited version with a different name, Word automatically applies Windows
Information Protection to the new document.
7 Note
Helping control the network and data access and data sharing for apps that aren't
enterprise aware
Enterprise scenarios
Windows Information Protection currently addresses these enterprise scenarios:
You can encrypt enterprise data on employee-owned and corporate-owned
devices.
You can remotely wipe enterprise data off managed computers, including
employee-owned computers, without affecting the personal data.
You can protect specific apps that can access enterprise data that are clearly
recognizable to employees. You can also stop non-protected apps from accessing
enterprise data.
Your employees won't have their work otherwise interrupted while switching
between personal and enterprise apps while the enterprise policies are in place.
Switching environments or signing in multiple times isn't required.
WIP-protection modes
Enterprise data is automatically encrypted after it's loaded on a device from an
enterprise source or if an employee marks the data as corporate. Then, when the
enterprise data is written to disk, Windows Information Protection uses the Windows-
provided Encrypting File System (EFS) to protect it and associate it with your enterprise
identity.
Your Windows Information Protection policy includes a list of trusted apps that are
protected to access and process corporate data. This list of apps is implemented
through the AppLocker functionality, controlling what apps are allowed to run and
letting the Windows operating system know that the apps can edit corporate data. Apps
included on this list don't have to be modified to open corporate data because their
presence on the list allows Windows to determine whether to grant them access.
However, new for Windows 10, app developers can use a new set of application
programming interfaces (APIs) to create enlightened apps that can use and edit both
enterprise and personal data. A huge benefit to working with enlightened apps is that
dual-use apps, like Microsoft Word, can be used with less concern about encrypting
personal data by mistake because the APIs allow the app to determine whether data is
owned by the enterprise or if it's personally owned.
7 Note
For info about how to collect your audit log files, see How to collect Windows
Information Protection (WIP) audit event logs.
You can set your Windows Information Protection policy to use 1 of 4 protection and
management modes:
Mode Description
Block Windows Information Protection looks for inappropriate data sharing practices and
stops the employee from completing the action. This can include sharing enterprise
data to non-enterprise-protected apps in addition to sharing enterprise data
between apps or attempting to share outside of your organization's network.
Allow Windows Information Protection looks for inappropriate data sharing, warning
overrides employees if they do something deemed potentially unsafe. However, this
management mode lets the employee override the policy and share the data,
logging the action to your audit log.
Silent Windows Information Protection runs silently, logging inappropriate data sharing,
without stopping anything that would have been prompted for employee interaction
while in Allow overrides mode. Unallowed actions, like apps inappropriately trying to
access a network resource or WIP-protected data, are still stopped.
Off Windows Information Protection is turned off and doesn't help to protect or audit
your data.
After you turn off WIP, an attempt is made to decrypt any WIP-tagged files on the
locally attached drives. Your previous decryption and policy info isn't automatically
reapplied if you turn Windows Information Protection back on.
Next steps
After you decide to use WIP in your environment, create a Windows Information
Protection (WIP) policy.
Create a Windows Information
Protection (WIP) policy using Microsoft
Intune
Article • 03/09/2023
Applies to:
Microsoft Intune helps you create and deploy your enterprise data protection (WIP)
policy. It also lets you choose your protected apps, your WIP-protection level, and how
to find enterprise data on the network.
In this section
Article Description
Create a Windows Details about how to use Microsoft Intune to create and deploy
Information Protection (WIP) your WIP policy with MDM (Mobile Device Management),
policy using the Azure portal including letting you choose your protected apps, your WIP-
for Microsoft Intune protection level, and how to find enterprise data on the network.
Create and verify an Steps to create, verify, and perform a quick recovery using an
Encrypting File System (EFS) Encrypting File System (EFS) Data Recovery Agent (DRA)
Data Recovery Agent (DRA) certificate.
certificate
Determine the Enterprise Use the Task Manager to determine whether an app is
Context of an app running in considered work, personal or exempt by Windows Information
Windows Information Protection (WIP).
Protection (WIP)
Create a Windows Information
Protection policy in Microsoft Intune
Article • 02/22/2023
7 Note
For your data protection needs, Microsoft recommends that you use Microsoft
Purview Information Protection and Microsoft Purview Data Loss Prevention.
Purview simplifies the configuration set-up and provides an advanced set of
capabilities.
Applies to:
Windows 10
Windows 11
Microsoft Intune has an easy way to create and deploy a Windows Information
Protection (WIP) policy. You can choose which apps to protect, the level of protection,
and how to find enterprise data on the network. The devices can be fully managed by
Mobile Device Management (MDM), or managed by Mobile Application Management
(MAM), where Intune manages only the apps on a user's personal device.
Prerequisites
Before you can create a WIP policy using Intune, you need to configure an MDM or
MAM provider in Azure Active Directory (Azure AD). MAM requires an Azure Active
Directory (Azure AD) Premium license. An Azure AD Premium license is also required for
WIP auto-recovery, where a device can re-enroll and regain access to protected data.
WIP auto-recovery relies on Azure AD registration to back up the encryption keys, which
requires device auto-enrollment with MDM.
2. Select Azure Active Directory > Mobility (MDM and MAM) > Microsoft Intune.
3. Select Restore Default URLs or enter the settings for MDM or MAM user scope
and select Save:
Create a WIP policy
1. Sign in to the Microsoft Intune admin center .
2. Open Microsoft Intune and select Apps > App protection policies > Create policy.
3. In the App policy screen, select Add a policy, and then fill out the fields:
7 Note
An application might return access denied errors after removing it from the list of
protected apps. Rather than remove it from the list, uninstall and reinstall the
application or exempt it from WIP policy.
If you don't know the Store app publisher or product name, you can find them by
following these steps.
1. Go to the Microsoft Store for Business website, and find your app. For example,
Power BI Mobile App.
2. Copy the ID value from the app URL. For example, the Power BI Mobile App ID URL
is https://www.microsoft.com/store/p/microsoft-power-bi/9nblgggzlxn1 , and you'd
copy the ID value, 9nblgggzlxn1 .
3. In a browser, run the Store for Business portal web API, to return a JavaScript
Object Notation (JSON) file that includes the publisher and product name values.
For example, run
https://bspmts.mp.microsoft.com/v1/public/catalog/Retail/Products/9nblgggzlxn1
/applockerdata , where 9nblgggzlxn1 is replaced with your ID value.
The API runs and opens a text editor with the app details.
JSON
{
"packageIdentityName": "Microsoft.MicrosoftPowerBIForWindows",
"publisherCertificateName": "CN=Microsoft Corporation, O=Microsoft
Corporation, L=Redmond, S=Washington, C=US"
}
4. Copy the publisherCertificateName value into the Publisher box and copy the
packageIdentityName value into the Name box of Intune.
) Important
The JSON file might also return a windowsPhoneLegacyId value for both the
Publisher Name and Product Name boxes. This means that you have an app
that's using a XAP package and that you must set the Product Name as
windowsPhoneLegacyId , and set the Publisher Name as CN= followed by the
windowsPhoneLegacyId .
For example:
JSON
{
"windowsPhoneLegacyId": "ca05b3ab-f157-450c-8c49-a1f127f5e71d",
}
Field Manages
All fields marked All files signed by any publisher. (Not recommended and may not work)
as *
Publisher only If you only fill out this field, you'll get all files signed by the named
publisher. This might be useful if your company is the publisher and signer
of internal line-of-business apps.
Publisher and If you only fill out these fields, you'll get all files for the specified product,
Name only signed by the named publisher.
Publisher, Name, If you only fill out these fields, you'll get any version of the named file or
and File only package for the specified product, signed by the named publisher.
Publisher, Name, If you only fill out these fields, you'll get the specified version or newer
File, and Min releases of the named file or package for the specified product, signed by
version only the named publisher. This option is recommended for enlightened apps that
weren't previously enlightened.
Publisher, Name, If you only fill out these fields, you'll get the specified version or older
File, and Max releases of the named file or package for the specified product, signed by
version only the named publisher.
All fields If you fill out all fields, you'll get the specified version of the named file or
completed package for the specified product, signed by the named publisher.
To add another Desktop app, select the ellipsis … . After you've entered the info into the
fields, select OK.
If you're unsure about what to include for the publisher, you can run this PowerShell
command:
PowerShell
Where "<path_of_the_exe>" goes to the location of the app on the device. For example:
PowerShell
Console
Path Publisher
---- ---------
%PROGRAMFILES%\WINDOWS NT\ACCESSORIES\WORDPAD.EXE O=MICROSOFT CORPORATION,
L=REDMOND, S=WASHINGTON, C=US
Regarding to how to get the Product Name for the Apps you wish to Add, contact the
Windows Support Team to request the guidelines
3. Right-click in the right side, and then select Create New Rule.
10. Review the Local Security Policy snap-in to make sure your rule is correct.
11. On the left, right-click on AppLocker, and then select Export policy.
The Export policy box opens, letting you export and save your new policy as XML.
12. In the Export policy box, browse to where the policy should be stored, give the
policy a name, and then select Save.
The policy is saved and you'll see a message that says one rule was exported from
the policy.
<?xml version="1.0"?>
<AppLockerPolicy Version="1">
<RuleCollection EnforcementMode="NotConfigured" Type="Appx">
<FilePublisherRule Action="Allow" UserOrGroupSid="S-1-1-0"
Description="" Name="Microsoft.MicrosoftDynamicsCRMforWindows10,
version 3.2.0.0 and above, from Microsoft Corporation" Id="3da34ed9-
aec6-4239-88ba-0afdce252ab4">
<Conditions>
<FilePublisherCondition BinaryName="*"
ProductName="Microsoft.MicrosoftDynamicsCRMforWindows10"
PublisherName="CN=Microsoft Corporation, O=Microsoft Corporation,
L=Redmond, S=Washington, C=US">
<BinaryVersionRange HighSection="*"
LowSection="3.2.0.0"/>
</FilePublisherCondition>
</Conditions>
</FilePublisherRule>
</RuleCollection>
<RuleCollection EnforcementMode="NotConfigured" Type="Dll"/>
<RuleCollection EnforcementMode="NotConfigured" Type="Exe"/>
<RuleCollection EnforcementMode="NotConfigured" Type="Msi"/>
<RuleCollection EnforcementMode="NotConfigured" Type="Script"/>
</AppLockerPolicy>
13. After you've created your XML file, you need to import it by using Microsoft
Intune.
2. In the left pane, select Application Control Policies > AppLocker > Executable
Rules.
5. On the Permissions page, make sure the Action is set to Allow and the User or
group is set to Everyone, and then select Next.
9. On the Name page, type a name and description for the rule and then select
Create.
11. In the Export policy box, browse to where the policy should be stored, give the
policy a name, and then select Save.
The policy is saved and you'll see a message that says one rule was exported from
the policy.
12. After you've created your XML file, you need to import it by using Microsoft
Intune.
2. Browse to your exported AppLocker policy file, and then select Open.
The file imports and the apps are added to your Protected apps list.
When you exempt apps, they're allowed to bypass the WIP restrictions and access
your corporate data.
3. Fill out the rest of the app info, based on the type of app you're adding:
Import apps
4. Select OK.
We recommend that you start with Silent or Allow Overrides while verifying with a small
group that you have the right apps on your protected apps list. After you're done, you
can change to your final enforcement policy, Block.
1. From App protection policy, select the name of your policy, and then select
Required settings.
Mode Description
Block WIP looks for inappropriate data sharing practices and stops the employee
from completing the action. This can include sharing info across non-
enterprise-protected apps in addition to sharing enterprise data between
other people and devices outside of your enterprise.
Allow WIP looks for inappropriate data sharing, warning employees if they do
Overrides something deemed potentially unsafe. However, this management mode lets
the employee override the policy and share the data, logging the action to
your audit log. For info about how to collect your audit log files, see How to
collect Windows Information Protection (WIP) audit event logs.
Silent WIP runs silently, logging inappropriate data sharing, without blocking
anything that would have been prompted for employee interaction while in
Allow Override mode. Unallowed actions, like apps inappropriately trying to
access a network resource or WIP-protected data, are still stopped.
Off WIP is turned off and doesn't help to protect or audit your data.
After you turn off WIP, an attempt is made to decrypt any WIP-tagged files on
the locally attached drives. Your previous decryption and policy info isn't
automatically reapplied if you turn WIP protection back on. For more
information, see How to disable Windows Information Protection.
2. Select Save.
Define your enterprise-managed corporate
identity
Corporate identity, typically expressed as your primary Internet domain (for example,
contoso.com), helps to identify and tag your corporate data from apps you've marked as
protected by WIP. For example, emails using contoso.com are identified as being
corporate and are restricted by your Windows Information Protection policies.
Starting with Windows 10, version 1703, Intune automatically determines your corporate
identity and adds it to the Corporate identity field.
1. From App policy, select the name of your policy, and then select Required
settings.
2. If the auto-defined identity isn't correct, you can change the info in the Corporate
identity field.
3. To add domains, such your email domain names, select Configure Advanced
settings > Add network boundary and select Protected domains.
Choose where apps can access enterprise data
After you've added a protection mode to your apps, you'll need to decide where those
apps can access enterprise data on your network. Every WIP policy should include your
enterprise network locations.
There are no default locations included with WIP, you must add each of your network
locations. This area applies to any network endpoint device that gets an IP address in
your enterprise's range and is also bound to one of your enterprise domains, including
SMB shares. Local file system locations should just maintain encryption (for example, on
local NTFS, FAT, ExFAT).
To define the network boundaries, select App policy > the name of your policy >
Advanced settings > Add network boundary.
Select the type of network boundary to add from the Boundary type box. Type a name
for your boundary into the Name box, add your values to the Value box, based on the
options covered in the following subsections, and then select OK.
Cloud resources
Specify the cloud resources to be treated as corporate and protected by WIP. For each
cloud resource, you may also optionally specify a proxy server from your Internal proxy
servers list to route traffic for this cloud resource. All traffic routed through your Internal
proxy servers is considered enterprise.
Console
Personal applications can access a cloud resource that has a blank space or an invalid
character, such as a trailing dot in the URL.
To add a subdomain for a cloud resource, use a period (.) instead of an asterisk (*). For
example, to add all subdomains within Office.com, use ".office.com" (without the
quotation marks).
In some cases, such as when an app connects directly to a cloud resource through an IP
address, Windows can't tell whether it's attempting to connect to an enterprise cloud
resource or to a personal site. In this case, Windows blocks the connection by default. To
stop Windows from automatically blocking these connections, you can add the
/*AppCompat*/ string to the setting. For example:
Console
When you use this string, we recommend that you also turn on Azure Active Directory
Conditional Access, using the Domain joined or marked as compliant option, which
blocks apps from accessing any enterprise cloud resources that are protected by
conditional access.
Console
contoso.sharepoint.com,contoso.internalproxy1.com|contoso.visualstudio.com,c
ontoso.internalproxy2.com
Console
contoso.sharepoint.com|contoso.visualstudio.com|contoso.onedrive.com,
Protected domains
Specify the domains used for identities in your environment. All traffic to the fully
qualified domains appearing in this list will be protected. Separate multiple domains
with the "|" delimiter.
Console
exchange.contoso.com|contoso.com|region.contoso.com
Network domains
Specify the DNS suffixes used in your environment. All traffic to the fully qualified
domains appearing in this list will be protected. Separate multiple resources with the ","
delimiter.
Console
corp.contoso.com,region.contoso.com
Proxy servers
Specify the proxy servers your devices will go through to reach your cloud resources.
Using this server type indicates that the cloud resources you're connecting to are
enterprise resources.
This list shouldn't include any servers listed in your Internal proxy servers list. Proxy
servers must be used only for non-WIP-protected (non-enterprise) traffic. Separate
multiple resources with the ";" delimiter.
Console
proxy.contoso.com:80;proxy2.contoso.com:443
This list shouldn't include any servers listed in your Proxy servers list. Internal proxy
servers must be used only for WIP-protected (enterprise) traffic. Separate multiple
resources with the ";" delimiter.
Console
contoso.internalproxy1.com;contoso.internalproxy2.com
IPv4 ranges
Specify the addresses for a valid IPv4 value range within your intranet. These addresses,
used with your Network domain names, define your corporate network boundaries.
Classless Inter-Domain Routing (CIDR) notation isn't supported.
IPv6 ranges
Starting with Windows 10, version 1703, this field is optional.
Specify the addresses for a valid IPv6 value range within your intranet. These addresses,
used with your network domain names, define your corporate network boundaries.
Classless Inter-Domain Routing (CIDR) notation isn't supported.
Neutral resources
Specify your authentication redirection endpoints for your company. These locations are
considered enterprise or personal, based on the context of the connection before the
redirection. Separate multiple resources with the "," delimiter.
Console
sts.contoso.com,sts.contoso2.com
Enterprise Proxy Servers list is authoritative (do not auto-detect). Turn on if you
want Windows to treat the proxy servers you specified in the network boundary
definition as the complete list of proxy servers available on your network. If you
turn this off, Windows will search for more proxy servers in your immediate
network.
Enterprise IP Ranges list is authoritative (do not auto-detect). Turn on if you want
Windows to treat the IP ranges you specified in the network boundary definition as
the complete list of IP ranges available on your network. If you turn this off,
Windows will search for more IP ranges on any domain-joined devices connected
to your network.
) Important
Using a DRA certificate isn't mandatory. However, we strongly recommend it. For
more info about how to find and export your data recovery certificate, see Data
Recovery and Encrypting File System (EFS). For more info about creating and
verifying your EFS DRA certificate, see Create and verify an Encrypting File System
(EFS) Data Recovery Agent (DRA) certificate.
1. From App policy, select the name of your policy, and then select Advanced
settings from the menu that appears.
Off. Stop local encryption keys from being revoked from a device during
unenrollment. For example, if you're migrating between Mobile Device
Management (MDM) solutions.
Show the enterprise data protection icon. Determines whether the Windows
Information Protection icon overlay appears on corporate files in the Save As and File
Explorer views. The options are:
Use Azure RMS for WIP. Determines whether WIP uses Microsoft Azure Rights
Management to apply EFS encryption to files that are copied from Windows 10 to USB
or other removable drives so they can be securely shared with employees. In other
words, WIP uses Azure Rights Management "machinery" to apply EFS encryption to files
when they're copied to removable drives. You must already have Azure Rights
Management set up. The EFS file encryption key is protected by the RMS template's
license. Only users with permission to that template can read it from the removable
drive. WIP can also integrate with Azure RMS by using the AllowAzureRMSForEDP and
the RMSTemplateIDForEDP MDM settings in the EnterpriseDataProtection CSP.
On. Protects files that are copied to a removable drive. You can enter a TemplateID
GUID to specify who can access the Azure Rights Management protected files, and
for how long. The RMS template is only applied to the files on removable media,
and is only used for access control—it doesn't actually apply Azure Information
Protection to the files.
If you don't specify an RMS template, it's a regular EFS file using a default RMS
template that all users can access.
Off, or not configured. Stops WIP from encrypting Azure Rights Management files
that are copied to a removable drive.
7 Note
Regardless of this setting, all files in OneDrive for Business will be encrypted,
including moved Known Folders.
Allow Windows Search Indexer to search encrypted files. Determines whether to allow
the Windows Search Indexer to index items that are encrypted, such as WIP protected
files.
Off, or not configured. Stops Windows Search Indexer from indexing encrypted
files.
General guidance and best practices for Windows Information Protection (WIP)
Applies to:
After you've created your Windows Information Protection (WIP) policy, you'll need to
deploy it to your organization's enrolled devices. Enrollment can be done for business or
personal devices, allowing the devices to use your managed apps and to sync with your
managed content and information.
2. Choose the group you want your policy to apply to, and then click Select to deploy
the policy.
7 Note
Help to make this topic better by providing us with edits, additions, and feedback.
For info about how to contribute to this topic, see Editing Windows IT professional
documentation .
Related topics
General guidance and best practices for Windows Information Protection (WIP)
Associate and deploy a VPN policy for
Windows Information Protection (WIP)
using Microsoft Intune
Article • 03/09/2023
Applies to:
After you've created and deployed your Windows Information Protection (WIP) policy,
you can use Microsoft Intune to associate and deploy your Virtual Private Network
(VPN) policy, linking it to your WIP policy.
4. Select Create.
Name: Enter a descriptive name for the profile. Name your profiles so you
can easily identify them later.
Description: Enter a description for the profile. This setting is optional, but
recommended.
6. Select Next.
Name: Enter a name for your setting. For example, enter EDPModeID .
OMA-URI: Enter ./Vendor/MSFT/VPNv2/YourVPNProfileName/EDPModeId .
Data type: Select String .
Value: Type your fully qualified domain that should be used by the OMA-URI
setting. For example, enter corp.contoso.com .
For more information on these settings, see Use custom settings for Windows
devices in Intune.
8. Select Next, and continue configuring the policy. For the specific steps and
recommendations, see Create a profile with custom settings in Intune.
1. On the App policy blade, select your newly created policy, select User groups from
the menu that appears, and then select Add user group.
A list of user groups, made up of all of the security groups in your Azure Active
Directory, appear in the Add user group blade.
2. Choose the group you want your policy to apply to, and then select Select to
deploy the policy.
7 Note
Help to make this topic better by providing us with edits, additions, and feedback.
For info about how to contribute to this topic, see Editing Windows IT professional
documentation .
Create and verify an Encrypting File
System (EFS) Data Recovery Agent
(DRA) certificate
Article • 12/09/2022
7 Note
For your data protection needs, Microsoft recommends that you use Microsoft
Purview Information Protection and Microsoft Purview Data Loss Prevention.
Purview simplifies the configuration set-up and provides an advanced set of
capabilities.
Applies to:
Windows 10
Windows 11
If you don't already have an EFS DRA certificate, you'll need to create and extract one
from your system before you can use Windows Information Protection (WIP), formerly
known as enterprise data protection (EDP), in your organization. For the purposes of this
section, we'll use the file name EFSDRA; however, this name can be replaced with
anything that makes sense to you.
) Important
If you already have an EFS DRA certificate for your organization, you can skip
creating a new one. Just use your current EFS DRA certificate in your policy. For
more info about when to use a PKI and the general strategy you should use to
deploy DRA certificates, see the Security Watch Deploying EFS: Part 1 article on
TechNet. For more general info about EFS protection, see Protecting Data by Using
EFS to Encrypt Hard Drives.
If your DRA certificate has expired, you won't be able to encrypt your files with it. To
fix this, you'll need to create a new certificate, using the steps in this topic, and then
deploy it through policy.
cipher /r:EFSRA
Where EFSRA is the name of the .cer and .pfx files that you want to create.
3. When prompted, type and confirm a password to help protect your new Personal
Information Exchange (.pfx) file.
The EFSDRA.cer and EFSDRA.pfx files are created in the location you specified in
Step 1.
) Important
Because the private keys in your DRA .pfx files can be used to decrypt any WIP
file, you must protect them accordingly. We highly recommend storing these
files offline, keeping copies on a smart card with strong protection for normal
use and master copies in a secured physical location.
4. Add your EFS DRA certificate to your WIP policy using a deployment tool, such as
Microsoft Intune or Microsoft Configuration Manager.
7 Note
This certificate can be used in Intune for policies both with device enrollment
(MDM) and without device enrollment (MAM).
2. Open an app on your protected app list, and then create and save a file so that it's
encrypted by WIP.
3. Open a command prompt with elevated rights, navigate to where you stored the
file you just created, and then run this command:
cipher /c filename
4. Make sure that your data recovery certificate is listed in the Recovery Certificates
list.
3. Open a command prompt with elevated rights, navigate to the encrypted file, and
then run this command:
cipher /d encryptedfile.extension
) Important
To maintain control over your enterprise data, and to be able to revoke again in the
future, you must only perform this process after the employee has re-enrolled the
device.
1. Have the employee sign in to the unenrolled device, open an elevated command
prompt, and type:
To start Robocopy in S mode, open Task Manager. Click File > Run new task, type
the command, and click Create this task with administrative privileges.
If the employee performed a clean installation and there is no user profile, you
need to recover the keys from the System Volume folder in each drive. Type:
Windows Command Prompt
2. Sign in to a different device with administrator credentials that have access to your
organization's DRA certificate, and perform the file decryption and recovery by
typing:
cipher.exe /D "new_location"
To help make sure employees can always access files, WIP creates an auto-recovery key
that's backed up to their Azure Active Directory (Azure AD) identity.
The employee experience is based on signing in with an Azure AD work account. The
employee can either:
Add a work account through the Windows Settings > Accounts > Access work or
school > Connect menu.
-OR-
Open Windows Settings > Accounts > Access work or school > Connect and
choose the Join this device to Azure Active Directory link, under Alternate
actions.
7 Note
To perform an Azure AD Domain Join from the Settings page, the employee
must have administrator privileges to the device.
After signing in, the necessary WIP key info is automatically downloaded and employees
are able to access the files again.
2. Click Connect.
3. Sign-in to Azure AD as the employee and verify that the files now open
Related topics
Security Watch Deploying EFS: Part 1
Applies to:
Learn more about what features and functionality are supported in each Windows
edition at Compare Windows 10 Editions .
Use Task Manager to check the context of your apps while running in Windows
Information Protection (WIP) to make sure that your organization's policies are applied
and running correctly.
1. Make sure that you have an active Windows Information Protection policy
deployed and turned on in your organization.
2. Open the Task Manager (taskmgr.exe), click the Details tab, right-click in the
column heading area, and click Select columns.
Personal. Shows the text, Personal. This app is considered non-work-related and
can't touch any work data or resources.
Exempt. Shows the text, Exempt. Windows Information Protection policies don't
apply to these apps (such as, system components).
) Important
Enlightened apps can change between Work and Personal, depending on the
data being touched. For example, Microsoft Word 2016 shows as Personal
when an employee opens a personal letter, but changes to Work when that
same employee opens the company financials.
Create a Windows Information
Protection (WIP) policy using Microsoft
Configuration Manager
Article • 03/09/2023
Applies to:
Microsoft Configuration Manager helps you create and deploy your enterprise data
protection (WIP) policy. It lets you choose your protected apps, your WIP-protection
level, and how to find enterprise data on the network.
In this section
Article Description
Create and deploy a Windows Microsoft Configuration Manager helps you create and
Information Protection (WIP) policy deploy your WIP policy. And, lets you choose your
using Microsoft Configuration protected apps, your WIP-protection level, and how to find
Manager enterprise data on the network.
Create and verify an Encrypting File Steps to create, verify, and perform a quick recovery using
System (EFS) Data Recovery Agent an Encrypting File System (EFS) Data Recovery Agent (DRA)
(DRA) certificate certificate.
Determine the Enterprise Context of Use the Task Manager to determine whether an app is
an app running in Windows considered work, personal or exempt by Windows
Information Protection (WIP) Information Protection (WIP).
Create and deploy a Windows
Information Protection policy in
Configuration Manager
Article • 12/09/2022
7 Note
For your data protection needs, Microsoft recommends that you use Microsoft
Purview Information Protection and Microsoft Purview Data Loss Prevention.
Purview simplifies the configuration set-up and provides an advanced set of
capabilities.
Applies to:
Windows 10
Windows 11
Microsoft Configuration Manager helps you create and deploy your Windows
Information Protection (WIP) policy. You can choose your protected apps, your WIP-
protection mode, and how to find enterprise data on the network.
Review the Limitations while using Windows Information Protection (WIP) article
before creating a new configuration item to avoid common issues.
1. Open the Configuration Manager console, select the Assets and Compliance node,
expand the Overview node, expand the Compliance Settings node, and then
expand the Configuration Items node.
4. In the Specify the type of configuration item you want to create area, pick the
option that represents whether you use Configuration Manager for device
management, and then select Next.
-OR-
5. On the Supported Platforms screen, select the Windows 10 box, and then select
Next.
6. On the Device Settings screen, select Windows Information Protection, and then
select Next.
The Configure Windows Information Protection settings page appears, where you'll
configure your policy for your organization.
The steps to add your app rules are based on the type of rule template being applied.
You can add a store app (also known as a Universal Windows Platform (UWP) app), a
signed Windows desktop app, or an AppLocker policy file.
) Important
Care must be taken to get a support statement from the software provider that
their app is safe with Windows Information Protection before adding it to your App
rules list. If you don't get this statement, it's possible that you could experience app
compat issues due to an app losing the ability to access a necessary file after
revocation.
3. Select Allow from the Windows Information Protection mode drop-down list.
Allow turns on WIP, helping to protect that app's corporate data through the
enforcement of WIP restrictions. If you want to exempt an app, you can follow the
steps in the Exempt apps from WIP restrictions section.
5. Type the name of the app and the name of its publisher, and then select OK. For
this UWP app example, the Publisher is CN=Microsoft Corporation, O=Microsoft
Corporation, L=Redmond, S=Washington, C=US and the Product name is
Microsoft.Office.OneNote .
If you don't know the publisher or product name, you can find them for both desktop
devices by following these steps.
To find the Publisher and Product Name values for Store apps without installing them
1. Go to the Microsoft Store website, and find your app. For example, Microsoft
OneNote.
7 Note
If your app is already installed on desktop devices, you can use the AppLocker
local security policy MMC snap-in to gather the info for adding the app to the
protected apps list. For info about how to do this, see the steps in Add an
AppLocker policy file in this article.
2. Copy the ID value from the app URL. For example, Microsoft OneNote's ID URL is
https://www.microsoft.com/store/apps/onenote/9wzdncrfhvjl , and you'd copy the
ID value, 9wzdncrfhvjl .
3. In a browser, run the Store for Business portal web API, to return a JavaScript
Object Notation (JSON) file that includes the publisher and product name values.
For example, run
https://bspmts.mp.microsoft.com/v1/public/catalog/Retail/Products/9wzdncrfhvjl
The API runs and opens a text editor with the app details.
JSON
{
"packageIdentityName": "Microsoft.Office.OneNote",
"publisherCertificateName": "CN=Microsoft Corporation, O=Microsoft
Corporation, L=Redmond, S=Washington, C=US"
}
4. Copy the publisherCertificateName value and paste them into the Publisher
Name box, copy the packageIdentityName value into the Product Name box of
Intune.
) Important
The JSON file might also return a windowsPhoneLegacyId value for both the
Publisher Name and Product Name boxes. This means that you have an app
that's using a XAP package and that you must set the Product Name as
windowsPhoneLegacyId , and set the Publisher Name as "CN=" followed by the
windowsPhoneLegacyId .
For example:
JSON
{
"windowsPhoneLegacyId": "ca05b3ab-f157-450c-8c49-a1f127f5e71d",
}
2. Add a friendly name for your app into the Title box. In this example, it's Internet
Explorer.
3. Select Allow from the Windows Information Protection mode drop-down list.
Allow turns on WIP, helping to protect that app's corporate data through the
enforcement of WIP restrictions. If you want to exempt an app, you can follow the
steps in the Exempt apps from WIP restrictions section.
5. Pick the options you want to include for the app rule (see table), and then select
OK.
Option Manages
All fields left as "*" All files signed by any publisher. (Not recommended.)
Publisher selected All files signed by the named publisher. This might be useful if
your company is the publisher and signer of internal line-of-
business apps.
Publisher and Product All files for the specified product, signed by the named
Name selected publisher.
Publisher, Product Name, Any version of the named file or package for the specified
and Binary name selected product, signed by the named publisher.
Publisher, Product Name, Specified version or newer releases of the named file or
Binary name, and File package for the specified product, signed by the named
Version, and above, publisher. This option is recommended for enlightened apps
selected that weren't previously enlightened.
Publisher, Product Name, Specified version or older releases of the named file or
Binary name, and File package for the specified product, signed by the named
Version, And below publisher.
selected
Publisher, Product Name, Specified version of the named file or package for the
Binary name, and File specified product, signed by the named publisher.
Version, Exactly selected
If you're unsure about what to include for the publisher, you can run this PowerShell
command:
PowerShell
Where "<path of the exe>" goes to the location of the app on the device. For example,
Get-AppLockerFileInformation -Path "C:\Program Files\Internet
Explorer\iexplore.exe" .
Console
Path Publisher
---- ---------
%PROGRAMFILES%\INTERNET EXPLORER\IEXPLORE.EXE O=MICROSOFT CORPORATION,
L=REDMOND, S=WASHINGTON, C=US\INTERNET EXPLOR...
To create an app rule and xml file using the AppLocker tool
2. In the left pane, expand Application Control Policies, expand AppLocker, and then
select Packaged App Rules.
3. Right-click in the right-hand pane, and then select Create New Rule.
5. On the Permissions page, make sure the Action is set to Allow and the User or
group is set to Everyone, and then select Next.
6. On the Publisher page, select Select from the Use an installed packaged app as a
reference area.
7. In the Select applications box, pick the app that you want to use as the reference
for your rule, and then select OK. For this example, we're using Microsoft Photos.
8. On the updated Publisher page, select Create.
9. Review the Local Security Policy snap-in to make sure your rule is correct.
10. In the left pane, right-click on AppLocker, and then select Export policy.
The Export policy box opens, letting you export and save your new policy as XML.
11. In the Export policy box, browse to where the policy should be stored, give the
policy a name, and then select Save.
The policy is saved and you'll see a message that says one rule was exported from
the policy.
XML
<AppLockerPolicy Version="1">
<RuleCollection Type="Exe" EnforcementMode="NotConfigured" />
<RuleCollection Type ="Msi" EnforcementMode="NotConfigured" />
<RuleCollection Type ="Script" EnforcementMode="NotConfigured" />
<RuleCollection Type ="Dll" EnforcementMode="NotConfigured" />
<RuleCollection Type ="Appx" EnforcementMode="NotConfigured">
<FilePublisherRule Id="5e0c752b-5921-4f72-8146-80ad5f582110"
Name="Microsoft.Windows.Photos, version 16.526.0.0 and above, from
Microsoft Corporation" Description="" UserOrGroupSid="S-1-1-0"
Action="Allow">
<Conditions>
<FilePublisherCondition PublisherName="CN=Microsoft
Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
ProductName="Microsoft.Windows.Photos" BinaryName="*">
<BinaryVersionRange LowSection="16.526.0.0"
HighSection="*" />
</FilePublisherCondition>
</Conditions>
</FilePublisherRule>
</RuleCollection>
</AppLockerPolicy>
12. After you've created your XML file, you need to import it by using Configuration
Manager.
To import your Applocker policy file app rule using Configuration Manager
2. Add a friendly name for your app into the Title box. In this example, it's Allowed
app list.
3. Select Allow from the Windows Information Protection mode drop-down list.
Allow turns on WIP, helping to protect that app's corporate data through the
enforcement of WIP restrictions. If you want to exempt an app, you can follow the
steps in the Exempt apps from WIP restrictions section.
4. Pick the AppLocker policy file from the Rule template drop-down list.
The box changes to let you import your AppLocker XML policy file.
5. Select the ellipsis (...) to browse for your AppLocker XML file, select Open, and then
select OK to close the Add app rule box.
The file is imported and the apps are added to your App Rules list.
To exempt a store app, a desktop app, or an AppLocker policy file app rule
2. Add a friendly name for your app into the Title box. In this example, it's Exempt
apps list.
3. Select Exempt from the Windows Information Protection mode drop-down list.
When you exempt apps, they're allowed to bypass the WIP restrictions and access
your corporate data. To allow apps, see Add app rules to your policy in this article.
4. Fill out the rest of the app rule info, based on the type of rule you're adding:
Store app. Follow the Publisher and Product name instructions in the Add a
store app rule to your policy section of this article.
Desktop app. Follow the Publisher, Product name, Binary name, and Version
instructions in the Add a desktop app rule to your policy section of this
article.
AppLocker policy file. Follow the Import instructions in the Add an
AppLocker policy file section of this article, using a list of exempted apps.
5. Select OK.
We recommend that you start with Silent or Override while verifying with a small group
that you have the right apps on your protected apps list. After you're done, you can
change to your final enforcement policy, either Override or Block.
7 Note
For info about how to collect your audit log files, see How to collect Windows
Information Protection (WIP) audit event logs.
Mode Description
Block WIP looks for inappropriate data sharing practices and stops the employee from
completing the action. This can include sharing info across non-enterprise-protected
apps in addition to sharing enterprise data between other people and devices outside
of your enterprise.
Override WIP looks for inappropriate data sharing, warning employees if they do something
deemed potentially unsafe. However, this management mode lets the employee
override the policy and share the data, logging the action to your audit log.
Silent WIP runs silently, logging inappropriate data sharing, without blocking anything that
would have been prompted for employee interaction while in Override mode.
Unallowed actions, like apps inappropriately trying to access a network resource or
WIP-protected data, are still blocked.
Off WIP is turned off and doesn't help to protect or audit your data.
After you turn off WIP, an attempt is made to decrypt any WIP-tagged files on the
locally attached drives. Your previous decryption and policy info isn't automatically
reapplied if you turn WIP protection back on. For more information, see How to
disable Windows Information Protection.
Define your enterprise-managed identity
domains
Corporate identity, usually expressed as your primary internet domain (for example,
contoso.com), helps to identify and tag your corporate data from apps you've marked as
protected by WIP. For example, emails using contoso.com are identified as being
corporate and are restricted by your Windows Information Protection policies.
You can specify multiple domains owned by your enterprise by separating them with the
| character. For example, contoso.com|newcontoso.com . With multiple domains, the first
one is designated as your corporate identity and all of the additional ones as being
owned by the first one. We strongly recommend that you include all of your email
address domains in this list.
There are no default locations included with WIP, you must add each of your network
locations. This area applies to any network endpoint device that gets an IP address in
your enterprise's range and is also bound to one of your enterprise domains, including
SMB shares. Local file system locations should just maintain encryption (for example, on
local NTFS, FAT, ExFAT).
) Important
Every WIP policy should include policy that defines your enterprise network
locations.
Classless Inter-Domain Routing (CIDR) notation isn't supported for WIP
configurations.
To define where your protected apps can find and send enterprise data on your
network
1. Add additional network locations your apps can access by clicking Add.
2. Type a name for your corporate network element into the Name box, and then
pick what type of network element it is, from the Network element drop-down
box. This can include any of the options in the following table.
Enterprise Cloud Resources: Specify the cloud resources to be treated as
corporate and protected by WIP.
For each cloud resource, you may also optionally specify a proxy server from
your internal proxy servers list to route traffic for this cloud resource. All
traffic routed through your internal proxy servers is considered enterprise.
If you have multiple resources, you must separate them using the | delimiter.
If you don't use proxy servers, you must also include the , delimiter just
before the | . For example: URL <,proxy>|URL <,proxy> .
Format examples:
With proxy:
contoso.sharepoint.com,contoso.internalproxy1.com|contoso.visualstudio
.com,contoso.internalproxy2.com
) Important
In some cases, such as when an app connects directly to a cloud
resource through an IP address, Windows can't tell whether it's
attempting to connect to an enterprise cloud resource or to a personal
site. In this case, Windows blocks the connection by default. To stop
Windows from automatically blocking these connections, you can add
the /AppCompat/ string to the setting. For example: URL <,proxy>|URL
<,proxy>|/AppCompat/.
This setting works with the IP ranges settings to detect whether a network
endpoint is enterprise or personal on private networks.
If you have multiple resources, you must separate them using the ","
delimiter.
Proxy servers: Specify the proxy servers your devices will go through to reach
your cloud resources. Using this server type indicates that the cloud resources
you're connecting to are enterprise resources.
This list shouldn't include any servers listed in your Internal proxy servers list.
Internal proxy servers must be used only for WIP-protected (enterprise)
traffic.
If you have multiple resources, you must separate them using the ";"
delimiter.
Internal proxy servers: Specify the internal proxy servers your devices will go
through to reach your cloud resources. Using this server type indicates that
the cloud resources you're connecting to are enterprise resources.
This list shouldn't include any servers listed in your Proxy servers list. Proxy
servers must be used only for non-WIP-protected (non-enterprise) traffic.
If you have multiple resources, you must separate them using the ";"
delimiter.
If you have multiple ranges, you must separate them using the "," delimiter.
Format examples:
Starting IPv4 Address: 3.4.0.1
Ending IPv4 Address: 3.4.255.254
Custom URI: 3.4.0.1-3.4.255.254, 10.0.0.1-10.255.255.254
Enterprise IPv6 Range: Specify the addresses for a valid IPv6 value range
within your intranet. These addresses, used with your Enterprise Network
Domain Names, define your corporate network boundaries.
If you have multiple ranges, you must separate them using the "," delimiter.
Format examples:
Starting IPv6 Address: 2a01:110::
Ending IPv6 Address: 2a01:110:7fff:ffff:ffff:ffff:ffff:ffff
Custom URI: 2a01:110:7fff:ffff:ffff:ffff:ffff:ffff,fd00::-
fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
If you have multiple resources, you must separate them using the ","
delimiter.
4. Decide if you want to Windows to look for additional network settings and if you
want to show the WIP icon on your corporate files while in File Explorer.
Enterprise Proxy Servers list is authoritative (do not auto-detect). Select this
box if you want Windows to treat the proxy servers you specified in the
network boundary definition as the complete list of proxy servers available on
your network. If you clear this box, Windows will search for additional proxy
servers in your immediate network. Not configured is the default option.
5. In the required Upload a Data Recovery Agent (DRA) certificate to allow recovery
of encrypted data box, select Browse to add a data recovery certificate for your
policy.
After you create and deploy your WIP policy to your employees, Windows will
begin to encrypt your corporate data on the employees' local device drive. If
somehow the employees' local encryption keys get lost or revoked, the encrypted
data can become unrecoverable. To help avoid this possibility, the DRA certificate
lets Windows use an included public key to encrypt the local data, while you
maintain the private key that can unencrypt the data.
For more info about how to find and export your data recovery certificate, see Data
Recovery and Encrypting File System (EFS). For more info about creating and
verifying your EFS DRA certificate, see Create and verify an Encrypting File System
(EFS) Data Recovery Agent (DRA) certificate.
Allow Windows Search to search encrypted corporate data and Store apps.
Determines whether Windows Search can search and index encrypted
corporate data and Store apps. The options are:
Yes. Allows Windows Search to search and index encrypted corporate data
and Store apps.
No. Stop local encryption keys from being revoked from a device during
unenrollment. For example, if you're migrating between Mobile Device
Management (MDM) solutions.
Allow Azure RMS. Enables secure sharing of files by using removable media
such as USB drives. For more information about how RMS works with WIP,
see Create a WIP policy using Intune. To confirm what templates your tenant
has, run Get-AadrmTemplate from the AADRM PowerShell module. If you
don't specify a template, WIP uses a key from a default RMS template that
everyone in the tenant will have access to.
2. After you pick all of the settings you want to include, select Summary.
Select the Summary button to review your policy choices, and then select Next to
finish and to save your policy.
A progress bar appears, showing you progress for your policy. After it's done,
select Close to return to the Configuration Items page.
Related articles
How to collect Windows Information Protection (WIP) audit event logs
General guidance and best practices for Windows Information Protection (WIP)
Limitations while using Windows Information Protection (WIP)
Create and verify an Encrypting File
System (EFS) Data Recovery Agent
(DRA) certificate
Article • 12/09/2022
7 Note
For your data protection needs, Microsoft recommends that you use Microsoft
Purview Information Protection and Microsoft Purview Data Loss Prevention.
Purview simplifies the configuration set-up and provides an advanced set of
capabilities.
Applies to:
Windows 10
Windows 11
If you don't already have an EFS DRA certificate, you'll need to create and extract one
from your system before you can use Windows Information Protection (WIP), formerly
known as enterprise data protection (EDP), in your organization. For the purposes of this
section, we'll use the file name EFSDRA; however, this name can be replaced with
anything that makes sense to you.
) Important
If you already have an EFS DRA certificate for your organization, you can skip
creating a new one. Just use your current EFS DRA certificate in your policy. For
more info about when to use a PKI and the general strategy you should use to
deploy DRA certificates, see the Security Watch Deploying EFS: Part 1 article on
TechNet. For more general info about EFS protection, see Protecting Data by Using
EFS to Encrypt Hard Drives.
If your DRA certificate has expired, you won't be able to encrypt your files with it. To
fix this, you'll need to create a new certificate, using the steps in this topic, and then
deploy it through policy.
cipher /r:EFSRA
Where EFSRA is the name of the .cer and .pfx files that you want to create.
3. When prompted, type and confirm a password to help protect your new Personal
Information Exchange (.pfx) file.
The EFSDRA.cer and EFSDRA.pfx files are created in the location you specified in
Step 1.
) Important
Because the private keys in your DRA .pfx files can be used to decrypt any WIP
file, you must protect them accordingly. We highly recommend storing these
files offline, keeping copies on a smart card with strong protection for normal
use and master copies in a secured physical location.
4. Add your EFS DRA certificate to your WIP policy using a deployment tool, such as
Microsoft Intune or Microsoft Configuration Manager.
7 Note
This certificate can be used in Intune for policies both with device enrollment
(MDM) and without device enrollment (MAM).
2. Open an app on your protected app list, and then create and save a file so that it's
encrypted by WIP.
3. Open a command prompt with elevated rights, navigate to where you stored the
file you just created, and then run this command:
cipher /c filename
4. Make sure that your data recovery certificate is listed in the Recovery Certificates
list.
3. Open a command prompt with elevated rights, navigate to the encrypted file, and
then run this command:
cipher /d encryptedfile.extension
) Important
To maintain control over your enterprise data, and to be able to revoke again in the
future, you must only perform this process after the employee has re-enrolled the
device.
1. Have the employee sign in to the unenrolled device, open an elevated command
prompt, and type:
To start Robocopy in S mode, open Task Manager. Click File > Run new task, type
the command, and click Create this task with administrative privileges.
If the employee performed a clean installation and there is no user profile, you
need to recover the keys from the System Volume folder in each drive. Type:
Windows Command Prompt
2. Sign in to a different device with administrator credentials that have access to your
organization's DRA certificate, and perform the file decryption and recovery by
typing:
cipher.exe /D "new_location"
To help make sure employees can always access files, WIP creates an auto-recovery key
that's backed up to their Azure Active Directory (Azure AD) identity.
The employee experience is based on signing in with an Azure AD work account. The
employee can either:
Add a work account through the Windows Settings > Accounts > Access work or
school > Connect menu.
-OR-
Open Windows Settings > Accounts > Access work or school > Connect and
choose the Join this device to Azure Active Directory link, under Alternate
actions.
7 Note
To perform an Azure AD Domain Join from the Settings page, the employee
must have administrator privileges to the device.
After signing in, the necessary WIP key info is automatically downloaded and employees
are able to access the files again.
2. Click Connect.
3. Sign-in to Azure AD as the employee and verify that the files now open
Related topics
Security Watch Deploying EFS: Part 1
Applies to:
Learn more about what features and functionality are supported in each Windows
edition at Compare Windows 10 Editions .
Use Task Manager to check the context of your apps while running in Windows
Information Protection (WIP) to make sure that your organization's policies are applied
and running correctly.
1. Make sure that you have an active Windows Information Protection policy
deployed and turned on in your organization.
2. Open the Task Manager (taskmgr.exe), click the Details tab, right-click in the
column heading area, and click Select columns.
Personal. Shows the text, Personal. This app is considered non-work-related and
can't touch any work data or resources.
Exempt. Shows the text, Exempt. Windows Information Protection policies don't
apply to these apps (such as, system components).
) Important
Enlightened apps can change between Work and Personal, depending on the
data being touched. For example, Microsoft Word 2016 shows as Personal
when an employee opens a personal letter, but changes to Work when that
same employee opens the company financials.
Mandatory tasks and settings required
to turn on Windows Information
Protection (WIP)
Article • 03/09/2023
Applies to:
This list provides all of the tasks and settings that are required for the operating system
to turn on Windows Information Protection (WIP), formerly known as enterprise data
protection (EDP), in your enterprise.
Task Description
Add at least one app You must have at least one Store app and one Desktop app added to
of each type (Store and your Protected apps list. For more info about where this area is and
Desktop) to the how to add apps, see the Add apps to your Protected apps list section
Protected apps list in of the policy creation topics.
your WIP policy.
Choose your Windows You must choose the level of protection you want to apply to your WIP-
Information Protection protected content, including Allow Overrides, Silent, or Block. For more
protection level. info about where this area is and how to decide on your protection
level, see the Manage Windows Information Protection mode for your
enterprise data section of the policy creation topics. For info about how
to collect your audit log files, see How to collect Windows Information
Protection (WIP) audit event logs.
Specify your corporate This field is automatically filled out for you by Microsoft Intune.
identity. However, you must manually correct it if it's incorrect or if you need to
add additional domains. For more info about where this area is and
what it means, see the Define your enterprise-managed corporate
identity section of the policy creation topics.
Specify your network Starting with Windows 10, version 1703, this field is optional.
domain names.
Specify the DNS suffixes used in your environment. All traffic to the fully
qualified domains appearing in this list will be protected. For more info
about where this area is and how to add your suffixes, see the table that
appears in the Choose where apps can access enterprise data section
of the policy creation topics.
Specify your enterprise Starting with Windows 10, version 1703, this field is optional.
IPv4 or IPv6 ranges.
Specify the addresses for a valid IPv4 or IPv6 value range within your
Task Description
Include your Data Starting with Windows 10, version 1703, this field is optional. But we
Recovery Agent (DRA) strongly recommend that you add a certificate.
certificate.
This certificate makes sure that any of your WIP-encrypted data can be
decrypted, even if the security keys are lost. For more info about where
this area is and what it means, see the Create and verify an Encrypting
File System (EFS) Data Recovery Agent (DRA) certificate topic.
7 Note
Help to make this topic better by providing us with edits, additions, and feedback.
For info about how to contribute to this topic, see Editing Windows IT professional
documentation .
Testing scenarios for Windows
Information Protection (WIP)
Article • 03/09/2023
Applies to:
We've come up with a list of suggested testing scenarios that you can use to test
Windows Information Protection (WIP) in your company.
Testing scenarios
You can try any of the processes included in these scenarios, but you should focus on
the ones that you might encounter in your organization.
) Important
If any of these scenarios does not work, first take note of whether WIP has been
revoked. If it has, unenlightened apps will have to be uninstalled and re-installed
since their settings files will remain encrypted.
1. Open File Explorer, right-click a work document, and then click Work from
the File Ownership menu.
Make sure the file is encrypted by right-clicking the file again, clicking
Advanced from the General tab, and then clicking Details from the Compress
or Encrypt attributes area. The file should show up under the heading, This
enterprise domain can remove or revoke access: *
<your_enterprise_identity>* . For example, contoso.com .
2. In File Explorer, right-click the same document, and then click Personal from
the File Ownership menu.
Make sure the file is decrypted by right-clicking the file again, clicking
Advanced from the General tab, and then verifying that the Details button is
unavailable.
Create work documents in enterprise-allowed apps: Start an unenlightened but
allowed app, such as a line-of-business app, and then create a new document,
saving your changes.
Make sure the document is encrypted to your Enterprise Identity. This might take a
few minutes and require you to close and re-open the file.
) Important
Certain file types like .exe and .dll , along with certain file paths, such as
%windir% and %programfiles% are excluded from automatic encryption.
For more info about your Enterprise Identity and adding apps to your allowed apps
list, see either Create a Windows Information Protection (WIP) policy using
Microsoft Intune or Create a Windows Information Protection (WIP) policy using
Microsoft Configuration Manager, based on your deployment system.
1. Start an app that doesn't appear on your allowed apps list, and then try to
open a work-encrypted file.
1. Copy (CTRL+C) content from an app on your allowed apps list, and then try
to paste (CTRL+V) the content into an app that doesn't appear on your
allowed apps list.
You should see a WIP-related warning box, asking you to click either Change
to personal or Keep at work.
2. Click Keep at work. The content isn't pasted into the non-enterprise app.
3. Repeat Step 1, but this time select Change to personal and try to paste the
content again.
1. Drag content from an app on your allowed apps list, and then try to drop the
content into an app that doesn't appear on your allowed apps list.
You should see a WIP-related warning box, asking you to click either Keep at
work or Change to personal.
2. Click Keep at work. The content isn't dropped into the non-enterprise app.
3. Repeat Step 1, but this time select Change to personal and try to drop the
content again.
4. Try dragging and dropping content between apps on your allowed apps list.
The content should move between the apps without any warning messages.
1. Open an app on your allowed apps list, like Microsoft Photos, and try to
share content with an app that doesn't appear on your allowed apps list, like
Facebook.
You should see a WIP-related warning box, asking you to click either Keep at
work or Change to personal.
3. Repeat Step 1, but this time select Change to personal and try to share the
content again.
4. Try sharing content between apps on your allowed apps list. The content
should share between the apps without any warning messages.
1. Start Windows Journal and Internet Explorer 11, creating, editing, and saving
files in both apps.
Make sure that all of the files you worked with are encrypted to your
configured Enterprise Identity. In some cases, you might need to close the file
and wait a few moments for it to be automatically encrypted.
2. Open File Explorer and make sure your modified files are appearing with a
Lock icon.
3. Try copying and pasting, dragging and dropping, and sharing using these
apps with other apps that appear both on and off the allowed apps list.
7 Note
1. Start an app that uses the FAT or exFAT file system (for example an SD card or
USB flash drive), and appears on your allowed apps list.
2. Create, edit, write, save, copy, and move files. Basic file and folder operations
like copy, move, rename, delete, and so on, should work properly on
encrypted files.
1. Download a file from a protected file share, making sure the file is encrypted
by locating the Briefcase icon next to the file name.
2. Open the same file, make a change, save it and then try to upload it back to
the file share. Again, this should work without any warnings.
3. Open an app that doesn't appear on your allowed apps list and attempt to
access a file on the WIP-enabled file share.
1. Add both Internet Explorer 11 and Microsoft Edge to your allowed apps list.
2. Open SharePoint (or another cloud resource that's part of your policy) and
access a WIP-enabled resource by using both IE11 and Microsoft Edge.
Both browsers should respect the enterprise and personal boundary.
3. Remove Internet Explorer 11 from your allowed app list and then try to access
an intranet site or enterprise-related cloud resource.
7 Note
Any file downloaded from your work SharePoint site, or any other WIP-
enabled cloud resource, is automatically marked as Work.
1. Set up your VPN network to start based on the WIPModeID setting. For
specific info, see Create and deploy a VPN policy for Windows Information
Protection (WIP) using Microsoft Intune.
2. Start an app from your allowed apps list. The VPN network should
automatically start.
3. Disconnect from your network and then start an app that isn't on your
allowed apps list.
The VPN shouldn't start and the app shouldn't be able to access your
enterprise network.
Unenroll client devices from WIP: Unenroll a device from WIP by going to
Settings, click Accounts, click Work, click the name of the device you want to
unenroll, and then click Remove.
The device should be removed and all of the enterprise content for that managed
account should be gone.
) Important
On client devices, the data isn't removed and can be recovered. So, you must
make sure the content is marked as Revoked and that access is denied for the
employee.
7 Note
Help to make this topic better by providing us with edits, additions, and feedback.
For info about how to contribute, see Editing Windows IT professional
documentation .
Limitations while using Windows
Information Protection (WIP)
Article • 12/09/2022
Applies to:
Windows 10
Windows 11
This following list provides info about the most common problems you might encounter
while running Windows Information Protection in your organization.
Limitation: Your enterprise data on USB drives might be tied to the device it was
protected on, based on your Azure RMS configuration.
How it appears:
If you're using Azure RMS: Authenticated users can open enterprise data on
USB drives, on computers running Windows 10, version 1703.
If you're not using Azure RMS: Data in the new location remains encrypted,
but becomes inaccessible on other devices and for other users. For example,
the file won't open or the file opens, but doesn't contain readable text.
Workaround: Share files with fellow employees through enterprise file servers
or enterprise cloud locations. If data must be shared via USB, employees can
decrypt protected files, but it will be audited.
How it appears: Direct Access might experience problems with how Windows
Information Protection enforces app behavior and data movement because of
how WIP determines what is and isn't a corporate network resource.
Workaround: We recommend that you use VPN for client access to your
intranet resources.
7 Note
Limitation: Cortana can potentially allow data leakage if it's on the allowed apps
list.
How it appears: If Cortana is on the allowed list, some files might become
unexpectedly encrypted after an employee performs a search using Cortana.
Your employees will still be able to use Cortana to search and provide results on
enterprise documents and locations, but results might be sent to Microsoft.
Limitation: Installers copied from an enterprise network file share might not work
properly.
How it appears: An app might fail to properly install because it can't read a
necessary configuration or data file, such as a .cab or .xml file needed for
installation, which was protected by the copy action.
Workaround: To fix this, you can:
OR
Decrypt the locally copied files needed by the installer.
OR
Mark the file share with the installation media as "personal". To do this, you'll
need to set the Enterprise IP ranges as Authoritative and then exclude the IP
address of the file server, or you'll need to put the file server on the
Enterprise Proxy Server list.
Limitation: Redirected folders with Client-Side Caching are not compatible with
Windows Information Protection.
How it appears: Apps might encounter access errors while attempting to read a
cached, offline file.
7 Note
For more info about Work Folders and Offline Files, see the Work Folders
and Offline Files support for Windows Information Protection blog . If
you're having trouble opening files offline while using Offline Files and
Windows Information Protection, see Can't open files offline when you
use Offline Files and Windows Information Protection.
How it appears:
Data copied from the WIP-managed device is marked as Work.
Data copied to the WIP-managed device is not marked as Work.
Local Work data copied to the WIP-managed device remains Work data.
Work data that is copied between two apps in the same session remains **
data.
Workaround: Disable RDP to prevent access because there is no way to restrict
access to only devices managed by Windows Information Protection. RDP is
disabled by default.
Limitation: Resilient File System (ReFS) isn't currently supported with Windows
Information Protection.
How it appears:Trying to save or transfer Windows Information Protection files
to ReFS will fail.
Workaround: Format drive for NTFS, or use a different drive.
If you currently use redirected folders, we recommend that you migrate to a file
synchronization solution that supports Windows Information Protection, such as
Work Folders or OneDrive for Business. Additionally, if you apply redirected
folders after Windows Information Protection is already in place, you might be
unable to open your files offline.
For more info about these potential access errors, see Can't open files offline
when you use Offline Files and Windows Information Protection.
Unenlighted apps that need to access work using MAM need to be re-compiled
as LOB apps or managed by using MDM with device enrollment.
Workaround: If all apps need to be managed, enroll the device for MDM.
Workaround: OneNote notebooks that are newly copied into the OneDrive for
Business folder from File Explorer should get fixed automatically. To do this,
follow these steps:
Wait a few minutes to allow OneDrive to finish syncing & upgrading the
notebook, and the folder should automatically convert to an Internet Shortcut.
Opening the shortcut will open the notebook in the browser, which can then be
opened in the OneNote client by using the "Open in app" button.
Limitation: Microsoft Office Outlook offline data files (PST and OST files) are not
marked as Work files, and are therefore not protected.
How it appears: If Microsoft Office Outlook is set to work in cached mode
(default setting), or if some emails are stored in a local PST file, the data is
unprotected.
Workaround: It is recommended to use Microsoft Office Outlook in Online
mode, or to use encryption to protect OST and PST files manually.
7 Note
Help to make this topic better by providing us with edits, additions, and
feedback. For info about how to contribute to this topic, see Contributing to
our content .
How to collect Windows Information
Protection (WIP) audit event logs
Article • 03/09/2023
Applies to:
Windows Information Protection (WIP) creates audit events in the following situations:
If an employee changes the File ownership for a file from Work to Personal.
If data is marked as Work, but shared to a personal app or webpage. For example,
through copying and pasting, dragging and dropping, sharing a contact,
uploading to a personal webpage, or if the user grants a personal app provides
temporary access to a work file.
7 Note
The Data element in the response includes the requested audit logs in an XML-
encoded format.
UserID String The security identifier (SID) of the user corresponding to this audit
report.
Attribute Value Description
type
TimeStamp Int Uses the FILETIME structure to represent the time that
the event happened.
Policy String How the work data was shared to the personal location:
CopyPaste. Work data was pasted into a personal
location or app.
ProtectionRemoved. Work data was changed to be
unprotected.
DragDrop. Work data was dropped into a personal
location or app.
Share. Work data was shared with a personal
location or app.
NULL. Any other way work data could be made
personal beyond the options above. For example,
when a work file is opened using a personal
application (also known as, temporary access).
Note
Reserved for future use to collect the user justification for
changing from Work to Personal.
Attribute/Element Value Description
type
DataInfo String Any additional info about how the work file changed:
A file path. If an employee uploads a work file to a
personal website by using Microsoft Edge or
Internet Explorer, the file path is included here.
Clipboard data types. If an employee pastes work
data into a personal app, the list of clipboard data
types provided by the work app are included here.
For more info, see the Examples section of this
topic.
Action Int Provides info about what happened when the work data
was shared to personal, including:
1. File decrypt.
2. Copy to location.
3. Send to recipient.
4. Other.
FilePath String The file path to the file specified in the audit event. For
example, the location of a file that's been decrypted by
an employee or uploaded to a personal website.
SourceApplicationName String The source app or website. For the source app, this is the
AppLocker identity. For the source website, this is the
hostname.
SourceName String A string provided by the app that's logging the event. It's
intended to describe the source of the work data.
DestinationEnterpriseID String The enterprise ID value for the app or website where the
employee is sharing the data.
DestinationApplicationName String The destination app or website. For the destination app,
this is the AppLocker identity. For the destination
website, this is the hostname.
DestinationName String A string provided by the app that's logging the event. It's
intended to describe the destination of the work data.
Attribute/Element Value Description
type
Application String The AppLocker identity for the app where the audit event
happened.
Examples
Here are a few examples of responses from the Reporting CSP.
XML
<SyncML><SyncHdr/><SyncBody><Status><CmdID>1</CmdID><MsgRef>1</MsgRef>
<CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><Data>200</Data></Status><Status>
<CmdID>2</CmdID><MsgRef>1</MsgRef><CmdRef>2</CmdRef><Cmd>Replace</Cmd>
<Data>200</Data></Status><Status><CmdID>3</CmdID><MsgRef>1</MsgRef>
<CmdRef>4</CmdRef><Cmd>Get</Cmd><Data>200</Data></Status><Results>
<CmdID>4</CmdID><MsgRef>1</MsgRef><CmdRef>4</CmdRef><Item><Source>
<LocURI>./Vendor/MSFT/Reporting/EnterpriseDataProtection/RetrieveByTimeRange
/Logs</LocURI></Source><Meta><Format xmlns="syncml:metinf">xml</Format>
</Meta><Data><?xml version="1.0" encoding="utf-8"?>
<Reporting Version="com.contoso/2.0/MDM/Reporting">
<User UserID="S-1-12-1-1111111111-1111111111-1111111111-1111111111"
EnterpriseID="corp.contoso.com">
<Log ProviderType="EDPAudit" LogType="ProtectionRemoved"
TimeStamp="131357166318347527">
<Policy>Protection removed</Policy>
<Justification>NULL</Justification>
<FilePath>C:\Users\TestUser\Desktop\tmp\demo\Work
document.docx</FilePath>
</Log>
</User>
</Reporting></Data></Item></Results><Final/></SyncBody></SyncML>
XML
<SyncML><SyncHdr/><SyncBody><Status><CmdID>1</CmdID><MsgRef>1</MsgRef>
<CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><Data>200</Data></Status><Status>
<CmdID>2</CmdID><MsgRef>1</MsgRef><CmdRef>2</CmdRef><Cmd>Replace</Cmd>
<Data>200</Data></Status><Status><CmdID>3</CmdID><MsgRef>1</MsgRef>
<CmdRef>4</CmdRef><Cmd>Get</Cmd><Data>200</Data></Status><Results>
<CmdID>4</CmdID><MsgRef>1</MsgRef><CmdRef>4</CmdRef><Item><Source>
<LocURI>./Vendor/MSFT/Reporting/EnterpriseDataProtection/RetrieveByTimeRange
/Logs</LocURI></Source><Meta><Format xmlns="syncml:metinf">xml</Format>
</Meta><Data><?xml version="1.0" encoding="utf-8"?>
<Reporting Version="com.contoso/2.0/MDM/Reporting">
<User UserID="S-1-12-1-1111111111-1111111111-1111111111-1111111111"
EnterpriseID="corp.contoso.com">
<Log ProviderType="EDPAudit" LogType="DataCopied"
TimeStamp="131357192409318534">
<Policy>CopyPaste</Policy>
<Justification>NULL</Justification>
<SourceApplicationName>NULL</SourceApplicationName>
<DestinationEnterpriseID>NULL</DestinationEnterpriseID>
<DestinationApplicationName>mail.contoso.com</DestinationApplicationName>
<DataInfo>C:\Users\TestUser\Desktop\tmp\demo\Work
document.docx</DataInfo>
</Log>
</User>
</Reporting></Data></Item></Results><Final/></SyncBody></SyncML>
XML
<SyncML><SyncHdr/><SyncBody><Status><CmdID>1</CmdID><MsgRef>1</MsgRef>
<CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><Data>200</Data></Status><Status>
<CmdID>2</CmdID><MsgRef>1</MsgRef><CmdRef>2</CmdRef><Cmd>Replace</Cmd>
<Data>200</Data></Status><Status><CmdID>3</CmdID><MsgRef>1</MsgRef>
<CmdRef>4</CmdRef><Cmd>Get</Cmd><Data>200</Data></Status><Results>
<CmdID>4</CmdID><MsgRef>1</MsgRef><CmdRef>4</CmdRef><Item><Source>
<LocURI>./Vendor/MSFT/Reporting/EnterpriseDataProtection/RetrieveByTimeRange
/Logs</LocURI></Source><Meta><Format xmlns="syncml:metinf">xml</Format>
</Meta><Data><?xml version="1.0" encoding="utf-8"?>
<Reporting Version="com.contoso/2.0/MDM/Reporting">
<User UserID="S-1-12-1-1111111111-1111111111-1111111111-1111111111"
EnterpriseID="corp.contoso.com">
<Log ProviderType="EDPAudit" LogType="DataCopied"
TimeStamp="131357193734179782">
<Policy>CopyPaste</Policy>
<Justification>NULL</Justification>
<SourceApplicationName>O=MICROSOFT CORPORATION, L=REDMOND,
S=WASHINGTON, C=US\MICROSOFT OFFICE
2016\WINWORD.EXE\16.0.8027.1000</SourceApplicationName>
<DestinationEnterpriseID>NULL</DestinationEnterpriseID>
<DestinationApplicationName>mail.contoso.com</DestinationApplicationName>
<DataInfo>EnterpriseDataProtectionId|Object Descriptor|Rich Text
Format|HTML Format|AnsiText|Text|EnhancedMetafile|Embed Source|Link
Source|Link Source Descriptor|ObjectLink|Hyperlink</DataInfo>
</Log>
</User>
</Reporting></Data></Item></Results><Final/></SyncBody></SyncML>
A work file is opened with a personal application
XML
<SyncML><SyncHdr/><SyncBody><Status><CmdID>1</CmdID><MsgRef>1</MsgRef>
<CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><Data>200</Data></Status><Status>
<CmdID>2</CmdID><MsgRef>1</MsgRef><CmdRef>2</CmdRef><Cmd>Replace</Cmd>
<Data>200</Data></Status><Status><CmdID>3</CmdID><MsgRef>1</MsgRef>
<CmdRef>4</CmdRef><Cmd>Get</Cmd><Data>200</Data></Status><Results>
<CmdID>4</CmdID><MsgRef>1</MsgRef><CmdRef>4</CmdRef><Item><Source>
<LocURI>./Vendor/MSFT/Reporting/EnterpriseDataProtection/RetrieveByTimeRange
/Logs</LocURI></Source><Meta><Format xmlns="syncml:metinf">xml</Format>
</Meta><Data><?xml version="1.0" encoding="utf-8"?>
<Reporting Version="com.contoso/2.0/MDM/Reporting">
<User UserID="S-1-12-1-1111111111-1111111111-1111111111-1111111111"
EnterpriseID="corp.contoso.com">
<Log ProviderType="EDPAudit" LogType="ApplicationGenerated"
TimeStamp="131357194991209469">
<Policy>NULL</Policy>
<Justification></Justification>
<Object>C:\Users\TestUser\Desktop\tmp\demo\Work document.docx</Object>
<Action>1</Action>
<SourceName>O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON,
C=US\MICROSOFT® WINDOWS® OPERATING
SYSTEM\WORDPAD.EXE\10.0.15063.2</SourceName>
<DestinationEnterpriseID>Personal</DestinationEnterpriseID>
<DestinationName>O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON,
C=US\MICROSOFT® WINDOWS® OPERATING
SYSTEM\WORDPAD.EXE\10.0.15063.2</DestinationName>
<Application>O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON,
C=US\MICROSOFT® WINDOWS® OPERATING
SYSTEM\WORDPAD.EXE\10.0.15063.2</Application>
</Log>
</User>
</Reporting></Data></Item></Results><Final/></SyncBody></SyncML>
XML
<SyncML><SyncHdr/><SyncBody><Status><CmdID>1</CmdID><MsgRef>1</MsgRef>
<CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><Data>200</Data></Status><Status>
<CmdID>2</CmdID><MsgRef>1</MsgRef><CmdRef>2</CmdRef><Cmd>Replace</Cmd>
<Data>200</Data></Status><Status><CmdID>3</CmdID><MsgRef>1</MsgRef>
<CmdRef>4</CmdRef><Cmd>Get</Cmd><Data>200</Data></Status><Results>
<CmdID>4</CmdID><MsgRef>1</MsgRef><CmdRef>4</CmdRef><Item><Source>
<LocURI>./Vendor/MSFT/Reporting/EnterpriseDataProtection/RetrieveByTimeRange
/Logs</LocURI></Source><Meta><Format xmlns="syncml:metinf">xml</Format>
</Meta><Data><?xml version="1.0" encoding="utf-8"?>
<Reporting Version="com.contoso/2.0/MDM/Reporting">
<User UserID="S-1-12-1-1111111111-1111111111-1111111111-1111111111"
EnterpriseID="corp.contoso.com">
<Log ProviderType="EDPAudit" LogType="DataCopied"
TimeStamp="131357196076537270">
<Policy>CopyPaste</Policy>
<Justification>NULL</Justification>
<SourceApplicationName>O=MICROSOFT CORPORATION, L=REDMOND,
S=WASHINGTON, C=US\MICROSOFT OFFICE
2016\WINWORD.EXE\16.0.8027.1000</SourceApplicationName>
<DestinationEnterpriseID>NULL</DestinationEnterpriseID>
<DestinationApplicationName></DestinationApplicationName>
<DataInfo>EnterpriseDataProtectionId|Object Descriptor|Rich Text
Format|HTML Format|AnsiText|Text|EnhancedMetafile|Embed Source|Link
Source|Link Source Descriptor|ObjectLink|Hyperlink</DataInfo>
</Log>
</User>
</Reporting></Data></Item></Results><Final/></SyncBody></SyncML>
2. In Log Analytics > Advanced Settings, select Data. In Windows Event Logs, add
logs to receive:
Console
Microsoft-Windows-EDP-Application-Learning/Admin
Microsoft-Windows-EDP-Audit-TCB/Admin
7 Note
If using Windows Events Logs, the event log names can be found under
Properties of the event in the Events folder (Application and Services
Logs\Microsoft\Windows, click EDP-Audit-Regular and EDP-Audit-TCB).
4. To get MSI for Intune installation as stated in the Azure Monitor article, extract:
MMASetup-.exe /c /t:
Install Microsoft Monitoring Agent to WIP devices using Workspace ID and Primary
key. More information on Workspace ID and Primary key can be found in Log
Analytics > Advanced Settings.
OPINSIGHTS_WORKSPACE_ID=<WORKSPACE_ID> OPINSIGHTS_WORKSPACE_KEY=
<WORKSPACE_KEY> AcceptEndUserLicenseAgreement=1
7 Note
6. After the agent is deployed, data will be received within approximately 10 minutes.
7. To search for logs, go to Log Analytics workspace > Logs, and type Event in
search.
Example
Console
Applies to:
This section includes info about the enlightened Microsoft apps, including how to add
them to your allowed apps list in Microsoft Intune. It also includes some testing
scenarios that we recommend running through with Windows Information Protection
(WIP).
In this section
Topic Description
Enlightened apps for use with Learn the difference between enlightened and
Windows Information Protection (WIP) unenlightened apps, and then review the list of
enlightened apps provided by Microsoft along with the
text you will need to use to add them to your allowed
apps list.
Unenlightened and enlightened app Learn the difference between enlightened and
behavior while using Windows unenlightened app behaviors.
Information Protection (WIP)
Using Outlook on the web with Options for using Outlook on the web with Windows
Windows Information Protection (WIP) Information Protection (WIP).
7 Note
Help to make this topic better by providing us with edits, additions, and feedback.
For info about how to contribute to this topic, see Editing Windows IT professional
documentation .
List of enlightened Microsoft apps for
use with Windows Information
Protection (WIP)
Article • 03/09/2023
Applies to:
Learn the difference between enlightened and unenlightened apps, and then review the
list of enlightened apps provided by Microsoft along with the text you will need to use
to add them to your allowed apps list.
Enlightened apps can differentiate between corporate and personal data, correctly
determining which to protect, based on your policies.
Unenlightened apps consider all data corporate and encrypt everything. Typically,
you can tell an unenlightened app because:
Windows Save As experiences only allow you to save your files as enterprise.
Microsoft 3D Viewer
Microsoft Edge
Internet Explorer 11
Microsoft People
Mobile Office apps, including Word, Excel, PowerPoint, OneNote, and Outlook Mail
and Calendar
Microsoft 365 Apps for enterprise apps, including Word, Excel, PowerPoint,
OneNote, and Outlook
OneDrive app
Microsoft Photos
Groove Music
Notepad
Microsoft Paint
Microsoft Messaging
Microsoft To Do
7 Note
Microsoft Visio, Microsoft Office Access, Microsoft Project, and Microsoft Publisher
are not enlightened apps and need to be exempted from Windows Information
Protection policy. If they are allowed, there is a risk of data loss. For example, if a
device is workplace-joined and managed and the user leaves the company,
metadata files that the apps rely on remain encrypted and the apps stop
functioning.
7 Note
You can add any or all of the enlightened Microsoft apps to your allowed apps list.
Included here is the Publisher name, Product or File name, and App Type info for both
Microsoft Intune and Microsoft Configuration Manager.
Microsoft 365 Apps Microsoft 365 Apps for enterprise and Office 2019 Professional Plus apps
for enterprise and are set up as a suite. You must use the O365 ProPlus - Allow and Exempt
Office 2019 AppLocker policy files (.zip files) to turn the suite on for Windows
Professional Plus Information Protection.
We don't recommend setting up Office by using individual paths or
publisher rules.
7 Note
Help to make this topic better by providing us with edits, additions, and feedback.
For info about how to contribute to this topic, see Editing Windows IT professional
documentation .
Unenlightened and enlightened app
behavior while using Windows
Information Protection (WIP)
Article • 03/09/2023
Applies to:
Windows Information Protection (WIP) classifies apps into two categories: enlightened
and unenlightened. Enlighted apps can differentiate between corporate and personal
data, correctly determining which to protect based on internal policies. Corporate data is
encrypted on the managed device and attempts to copy/paste or share this information
with non-corporate apps or people will fail. Unenlightened apps, when marked as
corporate-managed, consider all data corporate and encrypt everything by default.
To avoid the automatic encryption of data, developers can enlighten apps by adding
and compiling code using the Windows Information Protection application
programming interfaces. The most likely candidates for enlightenment are apps that:
We strongly suggest that the only unenlightened apps you add to your allowed apps list
are Line-of-Business (LOB) apps.
) Important
After revoking WIP, unenlightened apps will have to be uninstalled and re-installed
since their settings files will remain encrypted. For more info about creating
enlightened apps, see the Windows Information Protection (WIP) topic in the
Windows Dev Center.
Not required. App connects to Name-based policies, without the /*AppCompat*/ string:
enterprise cloud resources App is entirely blocked from both personal and enterprise
directly, using an IP address. cloud resources.
No encryption is applied.
App can't access local Work files.
Not required. App connects to App is blocked from accessing enterprise cloud resources,
enterprise cloud resources, using but can access other network resources.
a hostname. No encryption is applied.
App can't access local Work files.
Allow. App connects to enterprise App can access both personal and enterprise cloud
cloud resources, using an IP resources.
address or a hostname. Auto-encryption is applied.
App can access local Work files.
Exempt. App connects to App can access both personal and enterprise cloud
enterprise cloud resources, using resources.
an IP address or a hostname. No encryption is applied.
App can access local Work files.
Not required. App connects to App is blocked from accessing enterprise cloud
enterprise cloud resources, using an IP resources, but can access other network resources.
address or a hostname. No encryption is applied.
App can't access local Work files.
Allow. App connects to enterprise App can access both personal and enterprise cloud
cloud resources, using an IP address or resources.
a hostname. App protects work data and leaves personal data
unprotected.
App can access local Work files.
Exempt. App connects to enterprise App can access both personal and enterprise cloud
cloud resources, using an IP address or resources.
a hostname. App protects work data and leaves personal data
unprotected.
App can access local Work files.
7 Note
Help to make this topic better by providing us with edits, additions, and feedback.
For info about how to contribute to this topic, see Editing Windows IT professional
documentation .
Recommended Enterprise Cloud
Resources and Neutral Resources
network settings with Windows
Information Protection (WIP)
Article • 03/09/2023
Applies to:
Learn more about what features and functionality are supported in each Windows
edition at Compare Windows 10 Editions .
We recommend that you add the following URLs to the Enterprise Cloud Resources and
Neutral Resources network settings when you create a Windows Information Protection
policy. If you are using Intune, the SharePoint entries may be added automatically.
If your organization Add these entries to your Enterprise Cloud Resources network
uses... setting
(Replace "contoso" with your domain name(s)
Power BI contoso.powerbi.com
You can add other work-only apps to the Cloud Resource list, or you can create a
packaged app rule for the .exe file to protect every file the app creates or modifies.
Depending on how the app is accessed, you might want to add both.
For Office 365 endpoints, see Office 365 URLs and IP address ranges. Office 365
endpoints are updated monthly. Allow the domains listed in section number 46 "Allow
Required" and add also add the apps. Note that apps from officeapps.live.com can also
store personal data.
When multiple files are selected from SharePoint Online or OneDrive, the files are
aggregated and the URL can change. In this case, add an entry for a second-level
domain and use a wildcard such as .svc.ms.
login.microsoftonline.com
login.windows.net
Using Outlook on the web with
Windows Information Protection (WIP)
Article • 03/09/2023
Applies to:
Learn more about what features and functionality are supported in each Windows
edition at Compare Windows 10 Editions .
Because Outlook on the web can be used both personally and as part of your
organization, you have the following options to configure it with Windows Information
Protection (WIP):
Don't configure outlook.office.com in All mailboxes are automatically marked as personal. This
any of your networking settings. means employees attempting to copy work content into
Outlook on the web receive prompts and that files
downloaded from Outlook on the web aren't
automatically protected as corporate data.
7 Note
These limitations don't apply to Outlook 2016, the Mail for Windows 10 app, or the
Calendar for Windows 10 app. These apps will work properly, marking an
employee's mailbox as corporate data, regardless of how you've configured
outlook.office.com in your network settings.
Fine-tune Windows Information
Protection (WIP) with WIP Learning
Article • 02/22/2023
Applies to:
With WIP Learning, you can intelligently tune which apps and websites are included in
your WIP policy to help reduce disruptive prompts and keep it accurate and relevant.
WIP Learning generates two reports: The App learning report and the Website learning
report. Both reports can be accessed from Microsoft Azure Intune.
The App learning report monitors your apps, not in policy, that attempt to access work
data. You can identify these apps using the report and add them to your WIP policies to
avoid productivity disruption before fully enforcing WIP with "Block" mode. Frequent
monitoring of the report will help you continuously identify access attempts so you can
update your policy accordingly.
In the Website learning report, you can view a summary of the devices that have shared
work data with websites. You can use this information to determine which websites
should be added to group and user WIP policies. The summary shows which website
URLs are accessed by WIP-enabled apps so you can decide which ones are cloud or
personal, and add them to the resource list.
2. Select Apps > Monitor > App protection status > Reports.
3. Select either App learning report for Windows Information Protection or Website
learning report for Windows Information Protection.
Once you have the apps and websites showing up in the WIP Learning logging reports,
you can decide whether to add them to your app protection policies.
If you want to configure your environment for Windows Analytics: Device Health, see
Get Started with Device Health for more information.
Once you have WIP policies in place, by using the WIP section of Device Health, you can:
Reduce disruptive prompts by adding rules to allow data sharing from approved
apps.
Tune WIP rules by confirming that certain apps are allowed or denied by current
policy.
1. In Device Health click the app you want to add to your policy and copy the
WipAppId.
In the steps below, you separate the WipAppId by back slashes into the
PUBLISHER, PRODUCT NAME, and FILE fields.
2. In Intune, click App protection policies and then choose the app policy you want
to add an application to.
4. In the Recommended apps drop down menu, choose either Store apps or
Desktop apps, depending on the app you've chosen (for example, an executable
(EXE) is a desktop app).
5. In NAME (optional), type the name of the app, and then in PUBLISHER (required),
paste the publisher information that you copied in step 1 above.
CHROME\CHROME.EXE\74.0.3729.108
6. Type the name of the product in PRODUCT NAME (required) (this will probably be
the same as what you typed for NAME).
the text between the first and second back slashes is the product name:
GOOGLE CHROME
7. Copy the name of the executable (for example, snippingtool.exe) and paste it in
FILE (required).
For example, if the WipAppId is
CHROME\CHROME.EXE\74.0.3729.108
the text between the second and third back slashes is the file:
CHROME.EXE
8. Type the version number of the app into MIN VERSION in Intune (alternately, you
can specify the max version, but one or the other is required), and then select the
ACTION: Allow or Deny
When working with WIP-enabled apps and WIP-unknown apps, it is recommended that
you start with Silent or Allow overrides while verifying with a small group that you have
the right apps on your allowed apps list. After you're done, you can change to your final
enforcement policy, Block. For more information about WIP modes, see: Protect
enterprise data using WIP: WIP-modes
7 Note
Help to make this topic better by providing us with edits, additions, and feedback.
For info about how to contribute to this topic, see Editing Windows IT professional
documentation .
How to disable Windows Information
Protection (WIP)
Article • 02/22/2023
7 Note
For your data protection needs, Microsoft recommends that you use Microsoft
Purview Information Protection and Microsoft Purview Data Loss Prevention.
Purview simplifies the configuration set-up and provides an advanced set of
capabilities.
Applies to:
Windows 10
Windows 11
7 Note
You can create a separate disable policy for WIP (both enrolled and unenrolled) and
deploy that to a new group. You then can stage the transition to this disabled state.
Move devices from the existing group to the new group. This process slowly
migrates devices instead of all at once.
2 Warning
Don't just delete your existing WIP policy. If you delete the old policy,
Configuration Manager stops sending further WIP policy updates, but also leaves
WIP enforced on the devices. To remove WIP from your managed devices, follow
the steps in this section to create a new policy to turn off WIP.
1. Open the Configuration Manager console, select the Assets and Compliance node,
expand the Overview node, expand the Compliance Settings node, and then
expand the Configuration Items node.
2. Select the Create Configuration Item button. The Create Configuration Item
Wizard starts.
3. On the General Information screen, type a name (required) and an optional
description for your policy into the Name and Description boxes.
4. In the Specify the type of configuration item you want to create area, select
Windows 10 or later for devices managed with the Configuration Manager client,
and then select Next.
5. On the Supported Platforms screen, select the Windows 10 box, and then select
Next.
6. On the Device Settings screen, select Windows Information Protection, and then
select Next.
The Configure Windows Information Protection settings page appears, where you'll
configure your policy for your organization. The following sections provide details on
the required settings on this page.
Tip
For more information on filling out the required fields, see Create and deploy a
Windows Information Protection (WIP) policy using Microsoft Configuration
Manager.
Paste the value of your corporate identity into the Corporate identity field. For example,
contoso.com or contoso.com|newcontoso.com .
) Important
This corporate identity value must match the string in the original policy. Copy and
paste the string from your original policy that enables WIP.
) Important
These corporate network definitions must match the original policy. Copy and
paste the strings from your original policy that enables WIP.
Even though Windows and Windows Server are designed to be secure out-of-the-box,
many organizations still want more granular control over their security configurations.
To navigate the large number of controls, organizations need guidance on configuring
various security features. Microsoft provides this guidance in the form of security
baselines.
For more information, see the following blog post: Sticking with well-known and proven
solutions.
For example, there are over 3,000 group policy settings for Windows 10, which doesn't
include over 1,800 Internet Explorer 11 settings. Of these 4,800 settings, only some are
security-related. Although Microsoft provides extensive guidance on different security
features, exploring each one can take a long time. You would have to determine the
security implication of each setting on your own. Then, you would still need to
determine the appropriate value for each setting.
For more information about Windows licensing, see Windows licensing overview.
Baseline principles
Our recommendations follow a streamlined and efficient approach to baseline
definitions. The foundation of that approach is essentially:
Ensure that user and device configuration settings are compliant with the baseline.
Set configuration settings. For example, you can use group policy, Microsoft
Configuration Manager, or Microsoft Intune to configure a device with the setting
values specified in the baseline.
1. You can download the security baselines from the Microsoft Download Center .
This download page is for the Security Compliance Toolkit (SCT), which comprises
tools that can assist admins in managing baselines in addition to the security
baselines. The SCT also includes tools to help you manage the security baselines.
You can also get support for the security baselines
2. Mobile device management (MDM) security baselines function like the Microsoft
group policy-based security baselines and can easily integrate these baselines into
an existing MDM management tool.
Related articles
Microsoft Security Baselines Blog
Microsoft Security Compliance Toolkit
Security Baseline Policy Analyzer
Microsoft Security Compliance Toolkit -
How to use
Article • 07/11/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
The SCT enables administrators to effectively manage their enterprise's Group Policy
Objects (GPOs). Using the toolkit, administrators can compare their current GPOs with
Microsoft-recommended GPO baselines or other baselines, edit them, store them in
GPO backup file format, and apply them broadly through Active Directory or individually
through local policy.
You can download the tools along with the baselines for the relevant Windows
versions. For more information about security baseline recommendations, see the
Microsoft Security Guidance blog .
Policy Analyzer lets you treat a set of GPOs as a single unit. This treatment makes it easy
to determine whether particular settings are duplicated across the GPOs or are set to
conflicting values. Policy Analyzer also lets you capture a baseline and then compare it
to a snapshot taken at a later time to identify changes anywhere across the set.
More information on the Policy Analyzer tool can be found on the Microsoft Security
Guidance blog or by downloading the tool .
Local Group Policy. Using local policy gives administrators a simple way to verify the
effects of Group Policy settings, and is also useful for managing non-domain-joined
systems. LGPO.exe can import and apply settings from Registry Policy (Registry.pol) files,
security templates, Advanced Auditing backup files, and from formatted "LGPO text"
files. It can export local policy to a GPO backup. It can export the contents of a Registry
Policy file to the "LGPO text" format that can then be edited, and can build a Registry
Policy file from an LGPO text file.
Documentation for the LGPO tool can be found on the Microsoft Security Guidance
blog or by downloading the tool .
of Windows securable object, such as files, directories, registry keys, event logs, services,
and SMB shares. For file system and registry objects, you can choose whether to apply
inheritance rules. You can also choose to output the security descriptor in a .reg file
compatible representation of the security descriptor for a REG_BINARY registry value.
Documentation for the Set Object Security tool can be found on the Microsoft Security
Baselines blog or by downloading the tool .
Documentation for the GPO to PolicyRules tool can be found on the Microsoft Security
Baselines blog or by downloading the tool .
Get Support
Article • 07/11/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
The Security Compliance Manager (SCM) is now retired and is no longer supported. The
reason is that SCM was an incredibly complex and large program that needed to be
updated for every Windows release. It has been replaced by the Security Compliance
Toolkit (SCT). To provide a better service for our customers, we've moved to SCT with
which we can publish baselines through the Microsoft Download Center in a lightweight
.zip file that contains GPO Backups, GPO reports, Excel spreadsheets, WMI filters, and
scripts to apply the settings to local policy.
More information about this change can be found on the Microsoft Security Guidance
blog.
Any version of Windows baseline before Windows 10 1703 can still be downloaded
using SCM. Any future versions of Windows baseline will be available through SCT. See
the version matrix in this article to see if your version of Windows baseline is available
on SCT.
The toolkit supports formats created by the Windows GPO backup feature (.pol, .inf, and
.csv). Policy Analyzer saves its data in XML files with a .PolicyRules file extension. LGPO
also supports its own LGPO text file format as a text-based analog for the binary
registry.pol file format. For more information, see the LGPO documentation. Keep in
mind that SCMs' .cab files are no longer supported.
No. PowerShell-based DSC is rapidly gaining popularity, and more DSC tools are coming
online to convert GPOs and DSC and to validate system configuration.
Does SCT support the creation of Microsoft Configuration Manager DCM packs?
Does SCT support the creation of Security Content Automation Protocol (SCAP)-
format policies?
No. SCM supported only SCAP 1.0, which wasn't updated as SCAP evolved. The new
toolkit likewise doesn't include SCAP support.
Version Matrix
Client Versions:
Server Versions:
Microsoft Products:
Microsoft 365 Apps for enterprise, version 2206 SecGuide SCT 1.0
Microsoft Baseline Security Analyzer (MBSA) is used to verify patch compliance. MBSA
also performed several other security checks for Windows, IIS, and SQL Server.
Unfortunately, the logic behind these extra checks hadn't been actively maintained since
Windows XP and Windows Server 2003. Changes in the products since then rendered
many of these security checks obsolete and some of their recommendations
counterproductive.
MBSA was largely used in situations where Microsoft Update a local WSUS or
Configuration Manager server wasn't available, or as a compliance tool to ensure that all
security updates were deployed to a managed environment. While MBSA version 2.3
introduced support for Windows Server 2012 R2 and Windows 8.1, it has since been
deprecated and no longer developed. MBSA 2.3 isn't updated to fully support Windows
10 and Windows Server 2016.
7 Note
Solution
A script can help you with an alternative to MBSA's patch-compliance checking:
Using WUA to Scan for Updates Offline, which includes a sample .vbs script. For a
PowerShell alternative, see Using WUA to Scan for Updates Offline with
PowerShell .
For example:
The preceding scripts use the WSUS offline scan file (wsusscn2.cab) to perform a scan
and get the same information on missing updates as MBSA supplied. MBSA also relied
on the wsusscn2.cab to determine which updates were missing from a given system
without connecting to any online service or server. The wsusscn2.cab file is still available
and there are currently no plans to remove or replace it. The wsusscn2.cab file contains
the metadata of only security updates, update rollups and service packs available from
Microsoft Update; it doesn't contain any information on non-security updates, tools or
drivers.
More information
For security compliance and for desktop/server hardening, we recommend the Microsoft
Security Baselines and the Security Compliance Toolkit.
Applies to:
) Important
The Group Policy settings in this topic are related to three types of process mitigations.
In Windows 10, all three types are on by default for 64-bit applications, but by using the
Group Policy settings described in this topic, you can configure more protections. The
types of process mitigations are:
The following procedure describes how to use Group Policy to override individual
Process Mitigation Options settings.
2. Click Enabled, and then in the Options area, click Show to open the Show
Contents box, where you'll be able to add your apps and the appropriate bit flag
values, as shown in the Setting the bit field and Example sections of this topic.
Important
For each app you want to include, you must include:
Value name. The app file name, including the extension. For example,
iexplore.exe.
Value. A bit field with a series of bit flags in particular positions. Bits can be
set to 0 (where the setting is forced off), 1 (where the setting is forced on), or
? (where the setting retains the previous, existing value).
Note
Setting bit flags in positions not specified here to anything other than ? might
cause undefined behavior.
Where the bit flags are read from right to left and are defined as:
Flag Bit Setting Details
location
overwrite
technique.
includes stack
randomization
options and
causes a
random
location to be
used as the
lowest user
address.
Example
If you want to turn on the PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE and
PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON
settings, turn off the
PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_ALWAYS_OFF setting,
and leave everything else as the default values, you'd want to type a value of
???????????????0???????1???????1 .
Use Windows Event Forwarding to help
with intrusion detection
Article • 03/09/2023
Applies to
Windows 10
Windows Server
Learn about an approach to collect events from devices in your organization. This article
talks about events in both normal operations and when an intrusion is suspected.
Windows Event Forwarding (WEF) reads any operational or administrative event log on a
device in your organization and forwards the events you choose to a Windows Event
Collector (WEC) server.
To accomplish this functionality, there are two different subscriptions published to client
devices - the Baseline subscription and the suspect subscription. The Baseline
subscription enrolls all devices in your organization, and a Suspect subscription only
includes devices that have been added by you. The Suspect subscription collects more
events to help build context for system activity and can quickly be updated to
accommodate new events and/or scenarios as needed without impacting baseline
operations.
This implementation helps differentiate where events are ultimately stored. Baseline
events can be sent to devices with online analytical capability, such as Security Event
Manager (SEM), while also sending events to a MapReduce system, such as HDInsight or
Hadoop, for long-term storage and deeper analysis. Events from the Suspect
subscription are sent directly to a MapReduce system due to volume and lower
signal/noise ratio, they're largely used for host forensic analysis.
An SEM's strength lies in being able to inspect, correlate events, and generate alerts for
known patterns manner and alert security staff at machine speed.
A MapReduce system has a longer retention time (years versus months for an SEM),
larger ingress ability (hundreds of terabytes per day), and the ability to perform more
complex operations on the data like statistical and trend analysis, pattern clustering
analysis, or apply Machine Learning algorithms.
Event generation on a device must be enabled either separately or as part of the GPO
for the baseline WEF implementation, including enabling of disabled event logs and
setting channel permissions. For more info, see Appendix C - Event channel settings
(enable and channel access) methods. This condition is because WEF is a passive system
regarding the event log. It can't change the size of event log files, enable disabled event
channels, change channel permissions, or adjust a security audit policy. WEF only
queries event channels for existing events. Additionally, having event generation already
occurring on a device allows for more complete event collection building a complete
history of system activity. Otherwise, you'll be limited to the speed of GPO and WEF
subscription refresh cycles to make changes to what is being generated on the device.
On modern devices, enabling more event channels and expanding the size of event log
files hasn't resulted in noticeable performance differences.
For the minimum recommended audit policy and registry system ACL settings, see
Appendix A - Minimum recommended minimum audit policy and Appendix B -
Recommended minimum registry system ACL policy.
Note: These are only minimum values need to meet what the WEF subscription
selects.
From a WEF subscription management perspective, the event queries provided should
be used in two separate subscriptions for ease of maintenance; only machines meeting
specific criteria would be allowed access to the targeted subscription, this access would
be determined by an algorithm or an analysts' direction. All devices should have access
to the Baseline subscription.
This system of dual subscription means you would create two base subscriptions:
Baseline WEF subscription. Events collected from all hosts; these events include
some role-specific events, which will only be emitted by those machines.
Targeted WEF subscription. Events collected from a limited set of hosts due to
unusual activity and/or heightened awareness for those systems.
Each using the respective event query below. For the Targeted subscription, enabling the
"read existing events" option should be set to true to allow collection of existing events
from systems. By default, WEF subscriptions will only forward events generated after the
WEF subscription was received by the client.
The HTTPS option is available if certificate based authentication is used, in cases where
the Kerberos based mutual authentication isn't an option. The SSL certificate and
provisioned client certificates are used to provide mutual authentication.
syntax
Normal This option ensures reliable delivery of events and doesn't attempt to
conserve bandwidth. It's the appropriate choice unless you need tighter
control over bandwidth usage or need forwarded events delivered as quickly
Event delivery Description
optimization
options
as possible. It uses pull delivery mode, batches 5 items at a time and sets a
batch timeout of 15 minutes.
Minimize This option ensures that the use of network bandwidth for event delivery is
bandwidth strictly controlled. It's an appropriate choice if you want to limit the
frequency of network connections made to deliver events. It uses push
delivery mode and sets a batch timeout of 6 hours. In addition, it uses a
heartbeat interval of 6 hours.
Minimize latency This option ensures that events are delivered with minimal delay. It's an
appropriate choice if you're collecting alerts or critical events. It uses push
delivery mode and sets a batch timeout of 30 seconds.
For more info about delivery options, see Configure Advanced Subscription Settings.
The primary difference is in the latency which events are sent from the client. If none of
the built-in options meet your requirements, you can set Custom event delivery options
for a given subscription from an elevated command prompt:
syntax
For collector initiated subscriptions: The subscription contains the list of machines from
which the WEC server is to collect events. This list is managed at the WEC server, and the
credentials used for the subscription must have access to read event logs from the WEF
Clients – the credentials can be either the machine account or a domain account.
Can a client communicate to multiple WEF Event
Collectors?
Yes. If you desire a High-Availability environment, configure multiple WEC servers with
the same subscription configuration and publish both WEC Server URIs to WEF clients.
WEF Clients will forward events simultaneously to the configured subscriptions on the
WEC servers, if they have the appropriate access.
Disk I/O. The WEC server doesn't process or validate the received event, but rather
buffers the received event and then logs it to a local event log file (EVTX file). The
speed of logging to the EVTX file is limited by the disk write speed. Isolating the
EVTX file to its own array or using high speed disks can increase the number of
events per second that a single WEC server can receive.
Registry size. For each unique device that connects to a WEF subscription, there's a
registry key (corresponding to the FQDN of the WEF Client) created to store
bookmark and source heartbeat information. If this information isn't pruned to
remove inactive clients, this set of registry keys can grow to an unmanageable size
over time.
When a subscription has >1000 WEF sources connect to it over its operational
lifetime, also known as lifetime WEF sources, Event Viewer can become
unresponsive for a few minutes when selecting the Subscriptions node in the
left-navigation, but will function normally afterwards.
At >50,000 lifetime WEF sources, Event Viewer is no longer an option and
wecutil.exe (included with Windows) must be used to configure and manage
subscriptions.
At >100,000 lifetime WEF sources, the registry won't be readable and the WEC
server will likely have to be rebuilt.
Subscription information
Below lists all of the items that each subscription collects, the actual subscription XML is
available in an Appendix. These items are separated out into Baseline and Targeted. The
intent is to subscribe all hosts to Baseline, and then enroll (and remove) hosts on an as
needed basis to the Targeted subscription.
Baseline subscription
While this subscription appears to be the largest subscription, it really is the lowest
volume on a per-device basis. (Exceptions should be allowed for unusual devices – a
device performing complex developer related tasks can be expected to create an
unusually high volume of process create and AppLocker events.) This subscription
doesn't require special configuration on client devices to enable event channels or
modify channel permissions.
The subscription is essentially a collection of query statements applied to the Event Log.
This subscription means that it's modular in nature and a given query statement can be
removed or changed without impacting other query statement in the subscription.
Additionally, suppress statements that filter out specific events, only apply within that
query statement and aren't to the entire subscription.
Enable disabled event channels and set the minimum size for modern event files.
Currently, there's no GPO template for enabling or setting the maximum size for
the modern event files. This threshold must be defined by using a GPO. For more
info, see Appendix C – Event Channel Settings (enable and Channel Access)
methods.
The annotated event query can be found in the following. For more info, see Appendix F
– Annotated Suspect Subscription Event Query.
AppLocker Process Create events (EXE, script, packaged App installation and
execution).
Service install
Includes what the name of the service, the image path, and who installed the
service.
7 Note
Sign-in sessions
Sign-in success for interactive (local and Remote Interactive/Remote Desktop)
Sign-in success for services for non-built-in accounts, such as LocalSystem,
LocalNetwork, and so on.
Sign-in success for batch sessions
Sign-in session close, which is sign-out events for non-network sessions.
A user was added or removed from the local Administrators security group.
Suspect subscription
This subscription adds some possible intruder-related activity to help analyst further
refine their determinations about the state of the device.
Process exit
Enables checking for processes terminating unexpectedly.
This implication can easily be extended to other Auto-Execution Start Points keys in the
registry.
Use the following figures to see how you can configure those registry keys.
The recommended and most effective way to do this customization is configuring the
baseline GPO to run a scheduled task to configure the event channels (enable, set
maximum size, and adjust channel access). This configuration will take effect at the next
GPO refresh cycle and has minimal impact on the client device.
The following GPO snippet performs the following tasks:
Program/Script Arguments
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational
/ms:102432768
Program/Script Arguments
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational
/ca:"O:BAG:SYD:(A;;0x7;;;BA)(A;;0x2;;;AU)(A;;0x1;;;S-1-5-
32-573)"
%SystemRoot%\System32\wevtutil.exe sl "Microsoft-Windows-DriverFrameworks-
UserMode/Operational" /e:true
%SystemRoot%\System32\wevtutil.exe sl "Microsoft-Windows-DriverFrameworks-
UserMode/Operational" /ms:52432896
<QueryList>
<Query Id="0" Path="System">
<!-- Anti-malware *old* events, but only detect events (cuts down noise)
-->
<Select Path="System">*[System[Provider[@Name='Microsoft Antimalware']
and (EventID >= 1116 and EventID <= 1119)]]</Select>
</Query>
<!-- AppLocker EXE events or Script events -->
<Query Id="1" Path="Microsoft-Windows-AppLocker/EXE and DLL">
<Select Path="Microsoft-Windows-AppLocker/EXE and DLL">*
[UserData[RuleAndFileData[PolicyName="EXE"]]]</Select>
<Select Path="Microsoft-Windows-AppLocker/MSI and Script">*</Select>
</Query>
<Query Id="2" Path="Security">
<!-- Wireless Lan 802.1x authentication events with Peer MAC address -->
<Select Path="Security">*[System[(EventID=5632)]]</Select>
</Query>
<Query Id="3" Path="Microsoft-Windows-TaskScheduler/Operational">
<!-- Task scheduler Task Registered (106), Task Registration Deleted
(141), Task Deleted (142) -->
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*
[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106
or EventID=141 or EventID=142 )]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-
TaskScheduler'] and (EventID=106 or EventID=141 or EventID=142 )]]</Select>
</Query>
<Query Id="4" Path="System">
<!-- System startup (12 - includes OS/SP/Version) and shutdown -->
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-
General'] and (EventID=12 or EventID=13)]]</Select>
</Query>
<Query Id="5" Path="System">
<!-- Service Install (7000), service start failure (7045), new service
(4697) -->
<Select Path="System">*[System[Provider[@Name='Service Control Manager']
and (EventID = 7000 or EventID=7045)]]</Select>
<Select Path="Security">*[System[(EventID=4697)]]</Select>
</Query>
<Query Id="6" Path="Security">
<!-- TS Session reconnect (4778), TS Session disconnect (4779) -->
<Select Path="Security">*[System[(EventID=4778 or EventID=4779)]]
</Select>
</Query>
<Query Id="7" Path="Security">
<!-- Network share object access without IPC$ and Netlogon shares -->
<Select Path="Security">*[System[(EventID=5140)]] and (*
[EventData[Data[@Name="ShareName"]!="\\*\IPC$"]]) and (*
[EventData[Data[@Name="ShareName"]!="\\*\NetLogon"]])</Select>
</Query>
<Query Id="8" Path="Security">
<!-- System Time Change (4616) -->
<Select Path="Security">*[System[(EventID=4616)]]</Select>
</Query>
<Query Id="9" Path="System">
<!-- Shutdown initiate requests, with user, process and reason (if
supplied) -->
<Select Path="System">*[System[Provider[@Name='USER32'] and
(EventID=1074)]]</Select>
</Query>
<!-- AppLocker packaged (Modern UI) app execution -->
<Query Id="10" Path="Microsoft-Windows-AppLocker/Packaged app-Execution">
<Select Path="Microsoft-Windows-AppLocker/Packaged app-Execution">*
</Select>
</Query>
<!-- AppLocker packaged (Modern UI) app installation -->
<Query Id="11" Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">
<Select Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">*
</Select>
</Query>
<Query Id="12" Path="Application">
<!-- EMET events -->
<Select Path="Application">*[System[Provider[@Name='EMET']]]</Select>
</Query>
<Query Id="13" Path="System">
<!-- Event log service events -->
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-
Eventlog']]]</Select>
</Query>
<Query Id="14" Path="Security">
<!-- Local logons without network or service events -->
<Select Path="Security">*[System[(EventID=4624)]] and (*
[EventData[Data[@Name="LogonType"]!="3"]]) and (*
[EventData[Data[@Name="LogonType"]!="5"]])</Select>
</Query>
<Query Id="15" Path="Application">
<!-- WER events for application crashes only -->
<Select Path="Application">*[System[Provider[@Name='Windows Error
Reporting']]] and (*[EventData[Data[3] ="APPCRASH"]])</Select>
</Query>
<Query Id="16" Path="Security">
<!-- Security Log cleared events (1102), EventLog Service shutdown
(1100)-->
<Select Path="Security">*[System[(EventID=1102 or EventID = 1100)]]
</Select>
</Query>
<Query Id="17" Path="System">
<!-- Other Log cleared events (104)-->
<Select Path="System">*[System[(EventID=104)]]</Select>
</Query>
<Query Id="18" Path="Security">
<!-- user initiated logoff -->
<Select Path="Security">*[System[(EventID=4647)]]</Select>
</Query>
<Query Id="19" Path="Security">
<!-- user logoff for all non-network logon sessions-->
<Select Path="Security">*[System[(EventID=4634)]] and (*
[EventData[Data[@Name="LogonType"] != "3"]])</Select>
</Query>
<Query Id="20" Path="Security">
<!-- Service logon events if the user account isn't LocalSystem,
NetworkService, LocalService -->
<Select Path="Security">*[System[(EventID=4624)]] and (*
[EventData[Data[@Name="LogonType"]="5"]]) and (*
[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and (*
[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]]) and (*
[EventData[Data[@Name="TargetUserSid"] != "S-1-5-20"]])</Select>
</Query>
<Query Id="21" Path="Security">
<!-- Network Share create (5142), Network Share Delete (5144) -->
<Select Path="Security">*[System[(EventID=5142 or EventID=5144)]]
</Select>
</Query>
<Query Id="22" Path="Security">
<!-- Process Create (4688) -->
<Select Path="Security">*[System[EventID=4688]]</Select>
</Query>
<Query Id="23" Path="Security">
<!-- Event log service events specific to Security channel -->
<Select Path="Security">*[System[Provider[@Name='Microsoft-Windows-
Eventlog']]]</Select>
</Query>
<Query Id="26" Path="Security">
<!-- Special Privileges (Admin-equivalent Access) assigned to new logon,
excluding LocalSystem-->
<Select Path="Security">*[System[(EventID=4672)]]</Select>
<Suppress Path="Security">*[EventData[Data[1]="S-1-5-18"]]</Suppress>
</Query>
<Query Id="27" Path="Security">
<!-- New user added to local security group-->
<Select Path="Security">*[System[(EventID=4732)]]</Select>
</Query>
<Query Id="28" Path="Security">
<!-- New user added to global security group-->
<Select Path="Security">*[System[(EventID=4728)]]</Select>
</Query>
<Query Id="29" Path="Security">
<!-- New user added to universal security group-->
<Select Path="Security">*[System[(EventID=4756)]]</Select>
</Query>
<Query Id="30" Path="Security">
<!-- User removed from local Administrators group-->
<Select Path="Security">*[System[(EventID=4733)]] and (*
[EventData[Data[@Name="TargetUserName"]="Administrators"]])</Select>
</Query>
<Query Id="31" Path="Microsoft-Windows-TerminalServices-
RDPClient/Operational">
<!-- Log attempted TS connect to remote server -->
<Select Path="Microsoft-Windows-TerminalServices-
RDPClient/Operational">*[System[(EventID=1024)]]</Select>
</Query>
<Query Id="32" Path="Security">
<!-- Certificate Services received certificate request (4886), Approved
and Certificate issued (4887), Denied request (4888) -->
<Select Path="Security">*[System[(EventID=4886 or EventID=4887 or
EventID=4888)]]</Select>
</Query>
<Query Id="34" Path="Security">
<!-- New User Account Created(4720), User Account Enabled (4722), User
Account Disabled (4725), User Account Deleted (4726) -->
<Select Path="Security">*[System[(EventID=4720 or EventID=4722 or
EventID=4725 or EventID=4726)]]</Select>
</Query>
<Query Id="35" Path="Microsoft-Windows-SmartCard-Audit/Authentication">
<!-- Gets all Smart-card Card-Holder Verification (CHV) events (success
and failure) performed on the host. -->
<Select Path="Microsoft-Windows-SmartCard-Audit/Authentication">*
</Select>
</Query>
<Query Id="36" Path="Microsoft-Windows-SMBClient/Operational">
<!-- get all UNC/mapped drive successful connection -->
<Select Path="Microsoft-Windows-SMBClient/Operational">*
[System[(EventID=30622 or EventID=30624)]]</Select>
</Query>
<Query Id="37" Path="Application">
<!-- User logging on with Temporary profile (1511), cannot create
profile, using temporary profile (1518)-->
<Select Path="Application">*[System[Provider[@Name='Microsoft-Windows-
User Profiles Service'] and (EventID=1511 or EventID=1518)]]</Select>
</Query>
<Query Id="39" Path="Microsoft-Windows-Sysmon/Operational">
<!-- Modern SysMon event provider-->
<Select Path="Microsoft-Windows-Sysmon/Operational">*</Select>
</Query>
<Query Id="40" Path="Application">
<!-- Application crash/hang events, similar to WER/1001. These include
full path to faulting EXE/Module.-->
<Select Path="Application">*[System[Provider[@Name='Application Error']
and (EventID=1000)]]</Select>
<Select Path="Application">*[System[Provider[@Name='Application Hang']
and (EventID=1002)]]</Select>
</Query>
<Query Id="41" Path="Microsoft-Windows-Windows Defender/Operational">
<!-- Modern Windows Defender event provider Detection events (1006-1009)
and (1116-1119) -->
<Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[(
(EventID >= 1006 and EventID <= 1009) )]]</Select>
<Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[(
(EventID >= 1116 and EventID <= 1119) )]]</Select>
</Query>
<Query Id="42" Path="Security">
<!-- An account Failed to Log on events -->
<Select Path="Security">*[System[(EventID=4625)]] and (*
[EventData[Data[@Name="LogonType"]!="2"]]) </Select>
</Query>
</QueryList>
<QueryList>
<Query Id="0" Path="Security">
<!-- Network logon events-->
<Select Path="Security">*[System[(EventID=4624)]] and (*
[EventData[Data[@Name="LogonType"]="3"]])</Select>
</Query>
<Query Id="1" Path="System">
<!-- RADIUS authentication events User Assigned IP address (20274), User
successfully authenticated (20250), User Disconnected (20275) -->
<Select Path="System">*[System[Provider[@Name='RemoteAccess'] and
(EventID=20274 or EventID=20250 or EventID=20275)]]</Select>
</Query>
<Query Id="2" Path="Microsoft-Windows-CAPI2/Operational">
<!-- CAPI events Build Chain (11), Private Key accessed (70), X509
object (90)-->
<Select Path="Microsoft-Windows-CAPI2/Operational">*[System[(EventID=11
or EventID=70 or EventID=90)]]</Select>
</Query>
<Query Id="3" Path="Security">
<!-- CA stop/Start events CA Service Stopped (4880), CA Service Started
(4881), CA DB row(s) deleted (4896), CA Template loaded (4898) -->
<Select Path="Security">*[System[(EventID=4880 or EventID = 4881 or
EventID = 4896 or EventID = 4898)]]</Select>
</Query>
<Query Id="4" Path="Microsoft-Windows-LSA/Operational">
<!-- Groups assigned to new login (except for well known, built-in
accounts)-->
<Select Path="Microsoft-Windows-LSA/Operational">*
[System[(EventID=300)]] and (*[EventData[Data[@Name="TargetUserSid"] != "S-
1-5-20"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and
(*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]])</Select>
</Query>
<Query Id="5" Path="Security">
<!-- Logoff events - for Network Logon events-->
<Select Path="Security">*[System[(EventID=4634)]] and (*
[EventData[Data[@Name="LogonType"] = "3"]])</Select>
</Query>
<Query Id="6" Path="Security">
<!-- RRAS events – only generated on Microsoft IAS server -->
<Select Path="Security">*[System[( (EventID >= 6272 and EventID <=
6280) )]]</Select>
</Query>
<Query Id="7" Path="Microsoft-Windows-DNS-Client/Operational">
<!-- DNS Client events Query Completed (3008) -->
<Select Path="Microsoft-Windows-DNS-Client/Operational">*
[System[(EventID=3008)]]</Select>
<!-- suppresses local machine name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*
[EventData[Data[@Name="QueryOptions"]="140737488355328"]]</Suppress>
<!-- suppresses empty name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*
[EventData[Data[@Name="QueryResults"]=""]]</Suppress>
</Query>
<Query Id="8" Path="Security">
<!-- Process Terminate (4689) -->
<Select Path="Security">*[System[(EventID = 4689)]]</Select>
</Query>
<Query Id="9" Path="Security">
<!-- Local credential authentication events (4776), Logon with explicit
credentials (4648) -->
<Select Path="Security">*[System[(EventID=4776 or EventID=4648)]]
</Select>
</Query>
<Query Id="10" Path="Security">
<!-- Registry modified events for Operations: New Registry Value created
(%%1904), Existing Registry Value modified (%%1905), Registry Value Deleted
(%%1906) -->
<Select Path="Security">*[System[(EventID=4657)]] and ((*
[EventData[Data[@Name="OperationType"] = "%%1904"]]) or (*
[EventData[Data[@Name="OperationType"] = "%%1905"]]) or (*
[EventData[Data[@Name="OperationType"] = "%%1906"]]))</Select>
</Query>
<Query Id="11" Path="Security">
<!-- Request made to authenticate to Wireless network (including Peer
MAC (5632) -->
<Select Path="Security">*[System[(EventID=5632)]]</Select>
</Query>
<Query Id="12" Path="Microsoft-Windows-PowerShell/Operational">
<!-- PowerShell execute block activity (4103), Remote Command(4104),
Start Command(4105), Stop Command(4106) -->
<Select Path="Microsoft-Windows-PowerShell/Operational">*
[System[(EventID=4103 or EventID=4104 or EventID=4105 or EventID=4106)]]
</Select>
</Query>
<Query Id="13" Path="Microsoft-Windows-DriverFrameworks-
UserMode/Operational">
<!-- Detect User-Mode drivers loaded - for potential BadUSB detection. -
->
<Select Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">*
[System[(EventID=2004)]]</Select>
</Query>
<Query Id="14" Path="Windows PowerShell">
<!-- Legacy PowerShell pipeline execution details (800) -->
<Select Path="Windows PowerShell">*[System[(EventID=800)]]</Select>
</Query>
</QueryList>
Event Selection
Event Queries and Event XML
Event Query Schema
Windows Event Collector
4625(F): An account failed to log on
Block untrusted fonts in an enterprise
Article • 03/09/2023
Applies to:
Windows 10
Learn more about what features and functionality are supported in each Windows
edition at Compare Windows 10 Editions .
To help protect your company from attacks that may originate from untrusted or
attacker-controlled font files, we've created the Blocking Untrusted Fonts feature. Using
this feature, you can turn on a global setting that stops your employees from loading
untrusted fonts processed using the Graphics Device Interface (GDI) onto your network.
Untrusted fonts are any font installed outside of the %windir%/Fonts directory. Blocking
untrusted fonts helps prevent both remote (web-based or email-based) and local EOP
attacks that can happen during the font file-parsing process.
On. Helps stop any font processed using GDI from loading outside of the
%windir%/Fonts directory. It also turns on event logging.
Audit. Turns on event logging, but doesn't block fonts from loading, regardless of
location. The name of the apps that use untrusted fonts appear in your event log.
7 Note
If you aren't quite ready to deploy this feature into your organization, you can
run it in Audit mode to see if not loading untrusted fonts causes any usability
or compatibility issues.
Exclude apps to load untrusted fonts. You can exclude specific apps, allowing
them to load untrusted fonts, even while this feature is turned on. For instructions,
see Fix apps having problems because of blocked fonts.
Sending a print job to a remote printer server that uses this feature and where the
spooler process hasn't been excluded. In this situation, any fonts that aren't
already available in the server's %windir%/Fonts folder won't be used.
Printing using fonts provided by the installed printer's graphics .dll file, outside of
the %windir%/Fonts folder. For more information, see Introduction to Printer
Graphics DLLs.
Using Internet Explorer to look at websites that use embedded fonts. In this
situation, the feature blocks the embedded font, causing the website to use a
default font. However, not all fonts have all of the characters, so the website might
render differently.
Using desktop Office to look at documents with embedded fonts. In this situation,
content shows up using a default font picked by Office.
To turn on and use the Blocking Untrusted Fonts feature through Group Policy
2. Click Enabled to turn on the feature, and then click one of the following Mitigation
Options:
Block untrusted fonts and log events. Turns on the feature, blocking
untrusted fonts and logging installation attempts to the event log.
Do not block untrusted fonts. Turns on the feature, but doesn't block
untrusted fonts nor does it log installation attempts to the event log.
Log events without blocking untrusted fonts. Turns on the feature, logging
installation attempts to the event log, but not blocking untrusted fonts.
3. Click OK.
To turn on and use the Blocking Untrusted Fonts feature through the registry To turn
this feature on, off, or to use audit mode:
2. If the MitigationOptions key isn't there, right-click and add a new QWORD (64-
bit) Value, renaming it to MitigationOptions.
4. Make sure the Base option is Hexadecimal, and then update the Value data,
making sure you keep your existing value, like in the important note below:
) Important
7 Note
Blocked: true
7 Note
7 Note
In Audit mode, the problem is recorded, but the font isn't blocked.
Fix apps having problems because of blocked
fonts
Your company may still need apps that are having problems because of blocked fonts,
so we suggest that you first run this feature in Audit mode to determine which fonts are
causing the problems.
After you figure out the problematic fonts, you can try to fix your apps in two ways: by
directly installing the fonts into the %windir%/Fonts directory or by excluding the
underlying processes and letting the fonts load. As the default solution, we highly
recommend that you install the problematic font. Installing fonts is safer than excluding
apps because excluded apps can load any font, trusted or untrusted.
On each computer with the app installed, right-click on the font name and click
Install.
Execution Options\<process_image_name> .
For example, if you want to exclude Microsoft Word processes, you'd use
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File
Execution Options\Winword.exe .
2. Add other processes that need to be excluded here, and then turn on the Blocking
untrusted fonts feature, using the steps in Turn on and use the Blocking Untrusted
Fonts feature, earlier in this article.
Related content
Dropping the "Untrusted Font Blocking" setting
TLS/SSL overview (Schannel SSP)
Article • 02/14/2023
Applies to: Windows Server 2022, Windows Server 2019, Windows Server 2016,
Windows 10
This topic for the IT professional introduces the TLS and SSL implementations in
Windows using the Schannel Security Service Provider (SSP) by describing practical
applications, changes in Microsoft's implementation, and software requirements, plus
additional resources for Windows Server 2012 and Windows 8.
Description
Schannel is a Security Support Provider (SSP) that implements the Secure Sockets Layer
(SSL) and Transport Layer Security (TLS) Internet standard authentication protocols.
The Security Support Provider Interface (SSPI) is an API used by Windows systems to
perform security-related functions including authentication. The SSPI functions as a
common interface to several SSPs, including the Schannel SSP.
TLS versions 1.0, 1.1, and 1.2, SSL versions 2.0 and 3.0, as well as the Datagram Transport
Layer Security (DTLS) protocol version 1.0, and the Private Communications Transport
(PCT) protocol are based on public key cryptography. The Schannel authentication
protocol suite provides these protocols. All Schannel protocols use a client/server
model.
Applications
One problem when you administer a network is securing data that is being sent
between applications across an untrusted network. You can use TLS and SSL to
authenticate servers and client computers and then use the protocol to encrypt
messages between the authenticated parties.
Additional References
The Schannel security package
Secure Channel
Transport Layer Security Protocol
Secure DNS Client over HTTPS (DoH)
Article • 03/03/2022
Starting with Windows Server 2022, the DNS client supports DNS-over-HTTPS (DoH).
When DoH is enabled, DNS queries between Windows Server’s DNS client and the DNS
server pass across a secure HTTPS connection rather than in plain text. By passing the
DNS query across an encrypted connection, it's protected from interception by
untrusted third parties.
1. From the Windows Settings control panel, select Network & Internet.
3. On the Ethernet screen, select the network interface that you want to configure for
DoH.
4. On the Network screen, scroll down to DNS settings and select the Edit button.
5. On the Edit DNS settings screen, select Manual from the automatic or manual IP
settings dropdown. This setting allows you to configure the Preferred DNS and
Alternate DNS servers. If the addresses of these servers are present in the list of
known DoH servers, the Preferred DNS encryption dropdown will be enabled. You
can choose between the following settings to set the preferred DNS encryption:
Encrypted only (DNS over HTTPS). When this setting is chosen, all DNS
query traffic will pass across HTTPS. This setting provides the best protection
for DNS query traffic. However, it also means DNS resolution won't occur if
the target DNS server is unable to support DoH queries.
Unencrypted only. All DNS query traffic to the specified DNS server is
unencrypted. This setting configures the DNS client to use traditional plain
text DNS queries.
6. Select Save to apply the DoH settings to the DNS client.
If you're configuring the DNS server address for a client using PowerShell using the Set-
DNSClientServerAddress cmdlet, the DoH setting will depend on whether the server’s
fallback setting is in the list of known DoH servers table. At present you can't configure
DoH settings for the DNS client on Windows Server 2022 using Windows Admin Center
or sconfig.cmd.
Allow DoH. Queries will be performed using DoH if the specified DNS servers
support the protocol. If the servers don't support DoH, non-encrypted queries will
be issued.
Prohibit DoH. Will prevent use of DoH with DNS client queries.
Require DoH. Will require that queries are performed using DoH. If configured
DNS servers don't support DoH, name resolution will fail.
Don't enable the Require DoH option for domain joined computers as Active Directory
Domain Services is heavily reliant on DNS because the Windows Server DNS Server
service does not support DoH queries. If you require DNS query traffic on Active
Directory Domain Services network to be encrypted, consider implementing IPsec based
connection security rules to protect this traffic. See Securing end-to-end IPsec
connections by using IKEv2 for more information.
Determine which DoH servers are on the
known server list
Windows Server ships with a list of servers that are known to support DoH. You can
determine which DNS servers are on this list by using the Get-
DNSClientDohServerAddress PowerShell cmdlet.
Cloudflare 1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
Google 8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844
Quad 9 9.9.9.9
149.112.112.112
2620:fe::fe
2620:fe::fe:9
PowerShell
Applies to: Windows Server 2022, Windows Server 2019, Windows Server 2016,
Windows Server 2012 R2, Windows Server 2012, Windows 11, Windows 10,
Windows 8.1
Authentication methods
EAP authentication methods that are used within tunneled EAP methods are commonly
known as inner methods or EAP types. Methods that are set up as inner methods have
the same configuration settings as they would when used as an outer method. This
article contains configuration information specific to the following authentication
methods in EAP.
EAP-Transport Layer Security (EAP-TLS): Standards-based EAP method that uses TLS
with certificates for mutual authentication. Appears as Smart Card or other Certificate
(EAP-TLS) in Windows. EAP-TLS can be deployed as an inner method for another EAP
method or as a standalone EAP method.
Tip
EAP methods that use EAP-TLS, being certificate-based, generally offer the highest
level of security. For example, EAP-TLS is the only allowed EAP method for WPA3-
Enterprise 192-bit mode.
EAP-Microsoft Challenge Handshake Authentication Protocol version 2 (EAP-MSCHAP
v2): Microsoft-defined EAP method that encapsulates the MSCHAP v2 authentication
protocol , which uses username and password, for authentication. Appears as Secure
password (EAP-MSCHAP v2) in Windows. EAP-MSCHAPv2 can be used as a standalone
method for VPN, but only as an inner method for wired/wireless.
2 Warning
Protected EAP (PEAP): Microsoft-defined EAP method that encapsulates EAP within a
TLS tunnel. The TLS tunnel secures the inner EAP method, which could be unprotected
otherwise. Windows supports EAP-TLS and EAP-MSCHAP v2 as inner methods.
Tunnel EAP (TEAP): Described by RFC 7170 , tunneled EAP method that establishes a
secure TLS tunnel and executes other EAP methods inside that tunnel. Supports EAP
chaining - authenticating the machine and user within one authentication session. In
Windows Server 2022, the inclusion of TEAP only provides support for the client-side -
Windows 10, version 2004 (build 19041). NPS doesn't support TEAP at this time. The
client support enables interoperation with commonly deployed RADIUS servers that
support TEAP. Windows supports EAP-TLS and EAP-MSCHAP v2 as inner methods.
The following table lists some common EAP methods and their IANA assigned method
Type numbers .
EAP method IANA assigned Type Native Windows
number support
MD5-Challenge (EAP-MD5) 4 ❌
EAP-TLS 13 ✅
EAP-SIM 18 ✅
EAP-TTLS 21 ✅
EAP-AKA 23 ✅
PEAP 25 ✅
EAP-MSCHAP v2 26 ✅
EAP-FAST 43 ❌
EAP-IKEv2 49 ❌
EAP-AKA' 50 ✅
EAP-EKE 53 ❌
TEAP 55 ✅
EAP-NOOB 56 ❌
Configuring the Wired Network (IEEE 802.3) Policies and Wireless Network (IEEE
802.11) Policies extensions in Group Policy.
Computer Configuration > Policies > Windows Settings > Security Settings
Using Mobile Device Management (MDM) software, such as Intune (Wi-Fi/Wired)
Wi-Fi CSP
WiredNetwork CSP
Manually configuring wired or wireless connections on client computers.
You can access the EAP properties for virtual private network (VPN) connections in the
following ways:
For more information on configuring EAP properties, see Configure EAP profiles and
settings in Windows.
However, when configured to use EAP, each profile schema has a child element
EapHostConfig element.
7 Note
The various configuration GUIs don't always show every technically possible option.
For example, Windows Server 2019 and earlier are unable to configure TEAP in UI.
However, it is often possible to import an existing XML profile that has previously
been configured.
The remainder of the article is intended to provide a mapping between the EAP
specific portions of the Group Policy/Control Panel UI and the XML configuration
options, as well as providing a description of the setting.
More information about configuring XML profiles can be found in XML Profiles. An
example of using an XML profile containing EAP settings can be found in Provision a Wi-
Fi profile via a website.
Security settings
The following table explains the configurable security settings for a profile that uses
802.1X. These settings map to OneX.
Select a network EAPConfig Allows you to select the EAP method to use for
authentication method: authentication. See Authentication method
configuration settings and Cellular authentication
configuration settings
Cache user information cacheUserData Specifies whether the user's credentials should be
for subsequent cached for subsequent connections to the same
connections to this network, defaulting to true .
network
Max maxStart Specifies the maximum number of EAPOL-Start messages that can
Eapol- be sent to the authenticator (RADIUS server) before the supplicant
Start (Windows client) assumes there's no authenticator present,
Msgs defaulting to 3 .
Start startPeriod Specifies the time period (in seconds) to wait before an EAPOL-
Period Start message is sent to start the 802.1X authentication process,
(seconds) defaulting to 5 .
Held heldPeriod Specifies the time period (in seconds) to wait after a failed
Period authentication attempt to reattempt authentication, defaulting to
(seconds) 1.
Auth authPeriod Specifies the time period (in seconds) to wait for a response from
Period the authenticator (RADIUS server) before assuming there's no
(seconds) authenticator present, defaulting to 18 .
Enable Single Sign On for this singleSignOn Specifies whether SSO is enabled for
network this network, defaulting to false .
Don't use singleSignOn in a profile if
the network doesn't require it.
Setting XML element Description
This network uses different userBasedVirtualLan Specifies whether the virtual LAN
VLAN for authentication with (VLAN) used by the device changes
machine and user credentials based on the user's credentials,
defaulting to false .
U Caution
The following table explains the configurable settings for each authentication method.
EAP-TLS
Server validation
options
The following lists the configuration settings for Configure Certificate Selection.
These settings define the criteria a client uses to select the appropriate certificate
for authentication. This UI maps to TLSExtensions > FilteringInfo.
Root IssuerHash Lists the names of all of the issuers for which
Certification corresponding certification authority (CA)
Authorities certificates are present in the Trusted Root
Certification Authorities or Intermediate
Certification Authorities certificate store of local
computer account. This includes:
All Purpose AllPurposeEnabled When selected, this item specifies that certificates
having the All Purpose EKU are considered valid
certificates for authenticating the client to the
server. The Object Identifier (OID) for All Purpose is
0 or empty.
Add EKUMapping > Opens the Select EKUs dialog box, which enables
EKUMap > you to add standard, custom, or vendor-specific
EKUName/EKUOID EKUs to the Client Authentication or AnyPurpose
list.
Server validation
Many EAP methods include an option for the client to validate the server's certificate. If
the server certificate isn't validated, the client can't be sure that it's communicating with
the correct server. This exposes the client to security risks, including the possibility that
the client might unknowingly connect to a rogue network.
7 Note
Windows requires the server certificate have the Server Authentication EKU. The
object identifier (OID) for this EKU is 1.3.6.1.5.5.7.3.1 .
The following table lists the server validation options applicable to each EAP method.
Windows 11 updated the server validation logic to be more consistent (see Updated
server certificate validation behavior in Windows 11). Should they conflict, the
descriptions in the following table describe the behavior for Windows 10 and earlier.
Setting XML element Description
Verify the EAP-TLS: This item specifies that the client verifies that server
server's PerformServerValidation certificates presented to the client computer have the
identity by correct signatures, haven't expired, and were issued by
validating PEAP: a trusted root certification authority (CA).
the PerformServerValidation Disabling this check box causes client computers to be
certificate unable to verify the identity of your servers during the
authentication process. If server authentication does
not occur, users are exposed to severe security risks,
including the possibility that users might unknowingly
connect to a rogue network.
Trusted EAP-TLS: Lists the trusted root certification authorities. The list is
Root ServerValidation > built from the trusted root CAs that are installed in the
Certification TrustedRootCA computer and in the user certificate stores. You can
Authorities specify which trusted root CA certificates supplicants
PEAP: use to determine whether they trust your servers, such
ServerValidation > as your server running Network Policy Server (NPS) or
TrustedRootCA your provisioning server. If no trusted root CAs are
selected, the 802.1X client verifies that the computer
EAP-TTLS: certificate of the RADIUS server was issued by an
ServerValidation > installed trusted root CA. If one or multiple trusted root
TrustedRootCAHashes CAs are selected, the 802.1X client verifies that the
computer certificate of the RADIUS server was issued by
TEAP: a selected trusted root CA.
ServerValidation > If no trusted root CAs are selected, the client verifies
TrustedRootCAHashes that the RADIUS server certificate was issued by any
trusted root CA.
EAP-TLS
Prevents the user from being prompted to trust a server certificate if that certificate
is incorrectly configured, isn't already trusted, or both (if enabled). To simplify the
user experience and prevent users from mistakenly trusting a server deployed by an
attacker, it's recommended that you select this checkbox.
EAP-SIM
EAP-SIM is defined in RFC 4186 . EAP Subscriber Identity Module (SIM) is used for
authentication and session key distribution using the 2nd generation mobile
network Global System for Mobile Communications (GSM) Subscriber Identity
Module (SIM).
Don't reveal DontRevealPermanentID When enabled, forces the client to fail the
real identity to authentication if server requests for
server when permanent identity though the client have a
pseudonym pseudonym identity with it. Pseudonym
identity is identities are used for identity privacy so that
available the actual or permanent identity of a user isn't
revealed during authentication.
Item XML element Description
Enable usage Realm= true Provides a place to type the realm name. If this
of realms field is left blank with Enable usage of realms
selected, the realm is derived from the
International Mobile Subscriber Identity (IMSI)
using the realm 3gpp.org, as described in the
3rd Generation Partnership Project (3GPP)
standard 23.003 V6.8.0.
The following table lists the algorithms required by the CNSA Suite.
Advanced Encryption Symmetric block cipher used for 256-bit key (AES-256)
Standard (AES) encryption
Elliptic Curve Digital Asymmetric algorithm used for digital 384-bit prime
Signature Algorithm (ECDSA) signatures modulus curve (P-
384)
Aligning with CNSA, WPA3-Enterprise 192-bit mode requires that EAP-TLS is used with
the following cipher suites with restrictions:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
ECDHE and ECDSA using the 384-bit prime modulus curve P-384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 / TLS_DHE_RSA_AES_256_GCM_SHA384
7 Note
P-384 is also known as secp384r1 or nistp384 . Other elliptic curves, such as P-521
are not permitted.
SHA-384 is in the SHA-2 family of hash functions. Other algorithms and variants,
such as SHA-512 or SHA3-384, are not permitted.
TLS 1.3 uses new simplified TLS suites, of which only TLS_AES_256_GCM_SHA384 is
compatible with WPA3-Enterprise 192-bit mode. As TLS 1.3 requires (EC)DHE and allows
ECDSA or RSA certificates, along with the AES-256 AEAD and SHA384 hash,
TLS_AES_256_GCM_SHA384 is equivalent to TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 and
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 . However, RFC 8446 requires that TLS 1.3-
compliant applications support P-256, which is forbidden by CNSA. Therefore, WPA3-
Enterprise 192-bit mode can't be fully compliant with TLS 1.3. However, there are no
known interoperability issues with TLS 1.3 and WPA3-Enterprise 192-bit mode.
To configure a network for WPA3-Enterprise 192-bit mode, Windows requires EAP-TLS
be used with a certificate that meets the requirements described previously.
Additional resources
Managing the New Wireless Network (IEEE 802.11) Policies Settings
Managing the New Wired Network (IEEE 802.3) Policies Settings
Advanced Security Settings for Wired and Wireless Network Policies
Windows Defender Firewall with
Advanced Security
Article • 05/24/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic is an overview of the Windows Defender Firewall with Advanced Security
(WFAS) and Internet Protocol security (IPsec) features.
The Windows Defender Firewall with Advanced Security MMC snap-in is more flexible
and provides much more functionality than the consumer-friendly Windows Defender
Firewall interface found in the Control Panel. Both interfaces interact with the same
underlying services, but provide different levels of control over those services. While the
Windows Defender Firewall Control Panel program can protect a single device in a home
environment, it doesn't provide enough centralized management or security features to
help secure more complex network traffic found in a typical business enterprise
environment.
For more information about Windows licensing, see Windows licensing overview.
Feature description
Windows Defender Firewall with Advanced Security is an important part of a layered
security model. By providing host-based, two-way network traffic filtering for a device,
Windows Defender Firewall blocks unauthorized network traffic flowing into or out of
the local device. Windows Defender Firewall also works with Network Awareness so that
it can apply security settings appropriate to the types of networks to which the device is
connected. Windows Defender Firewall and Internet Protocol Security (IPsec)
configuration settings are integrated into a single Microsoft Management Console
(MMC) named Windows Defender Firewall, so Windows Defender Firewall is also an
important part of your network's isolation strategy.
Practical applications
To help address your organizational network security challenges, Windows Defender
Firewall offers the following benefits:
Reduces the risk of network security threats. Windows Defender Firewall reduces
the attack surface of a device, providing an extra layer to the defense-in-depth
model. Reducing the attack surface of a device increases manageability and
decreases the likelihood of a successful attack.
Safeguards sensitive data and intellectual property. With its integration with
IPsec, Windows Defender Firewall provides a simple way to enforce authenticated,
end-to-end network communications. It provides scalable, tiered access to trusted
network resources, helping to enforce integrity of the data, and optionally helping
to protect the confidentiality of the data.
Extends the value of existing investments. Because Windows Defender Firewall is
a host-based firewall that is included with the operating system, there's no other
hardware or software required. Windows Defender Firewall is also designed to
complement existing non-Microsoft network security solutions through a
documented application programming interface (API).
Windows VPN technical guide
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
This guide walks you through the decisions to make for Windows clients in your
organization's VPN solution, and how to configure your devices. This guide references
the VPNv2 Configuration Service Provider (CSP) and provides mobile device
management (MDM) configuration instructions using Microsoft Intune.
To create a Windows VPN device configuration profile see: Windows device settings to
add VPN connections using Intune.
7 Note
Virtual private network (VPN) license entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
In this guide
Article Description
VPN routing decisions Choose between split tunnel and force tunnel configuration
Article Description
VPN and conditional Use Azure Active Directory policy evaluation to set access policies for
access VPN connections.
VPN security features Configure traffic filtering, connect a VPN profile to Windows
Information Protection (WIP), and more
VPN profile options Combine settings into single VPN profile using XML
Learn more
Create VPN profiles to connect to VPN servers in Intune
VPN connection types
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
VPNs are point-to-point connections across a private or public network, like the
Internet. A VPN client uses special TCP/IP or UDP-based protocols, called tunneling
protocols, to make a virtual call to a virtual port on a VPN server. In a typical VPN
deployment, a client initiates a virtual point-to-point connection to a remote access
server over the Internet. The remote access server answers the call, authenticates the
caller, and transfers data between the VPN client and the organization's private network.
There are many options for VPN clients. In Windows, the built-in plug-in and the
Universal Windows Platform (UWP) VPN plug-in platform are built on top of the
Windows VPN platform. This article focuses on the Windows VPN platform clients and
the features that can be configured.
L2TP: L2TP with pre-shared key (PSK) authentication can be configured using the
L2tpPsk setting in the VPNv2 CSP.
PPTP
SSTP: SSTP can't be configured using MDM, but it's one of the protocols
attempted in the Automatic option
7 Note
When a VPN plug-in is used, the adapter will be listed as an SSTP adapter,
even though the VPN protocol used is the plug-in's protocol.
Automatic: the Automatic option means that the device tries each of the built-in
tunneling protocols until one succeeds. It attempts from most secure to least
secure. Configure Automatic for the NativeProtocolType setting in the VPNv2 CSP.
There are many Universal Windows Platform VPN applications, such as Pulse Secure,
Cisco AnyConnect, F5 Access, Sonicwall Mobile Connect, and Check Point Capsule. If you
want to use a UWP VPN plug-in, work with your vendor for any custom settings needed
to configure your VPN solution.
The following image shows connection options in a VPN Profile configuration policy
using Microsoft Intune:
In Intune, you can also include custom XML for third-party plug-in profiles:
Related articles
VPN technical guide
VPN routing decisions
VPN authentication options
VPN and conditional access
VPN name resolution
VPN auto-triggered profile options
VPN security features
VPN profile options
VPN routing decisions
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Network routes are required for the stack to understand which interface to use for
outbound traffic. One of the most important decision points for VPN configuration is
whether you want to send all the data through VPN (force tunnel) or only some data
through the VPN (split tunnel). The decision impacts the configuration, capacity
planning, and security expectations from the connection.
For each route item in the list, you can configure the following options:
Address: VPNv2/<ProfileName>/RouteList/<routeRowId>/Address
Prefix size: VPNv2/<ProfileName>/RouteList/<routeRowId>/Prefix
Exclusion route: V VPNv2/<ProfileName>/RouteList/<routeRowId>/ExclusionRoute
With Windows VPN, you can specify exclusion routes that shouldn't go over the physical
interface.
Routes can also be added at connect time through the server for UWP VPN apps.
The only implication of force tunnel is the manipulation of routing entries: VPN V4 and
V6 default routes (for example 0.0.0.0/0) are added to the routing table with a lower
metric than ones for other interfaces. This configuration sends traffic through the VPN
as long as there isn't a specific route on the physical interface:
For built-in VPN, the decision is controlled using the MDM setting
VPNv2/ProfileName/NativeProfile/RoutingPolicyType
For a UWP VPN plug-in, the app controls the property. If the VPN plug-in indicates
the default route for IPv4 and IPv6 as the only two Inclusion routes, the VPN
platform marks the connection as Force Tunneled
Configure routing
See VPN profile options and VPNv2 CSP for XML configuration.
When you configure a VPN profile in Microsoft Intune, you can enable split tunnel
configuration:
Once enabled, you can add the routes that should use the VPN connection.
Related articles
VPN technical guide
VPN connection types
VPN authentication options
VPN and conditional access
VPN name resolution
VPN auto-triggered profile options
VPN security features
VPN profile options
VPN authentication options
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Certificate filtering:
Certificate filtering can be enabled to search for a particular certificate to use
to authenticate with
Filtering can be Issuer-based or extended key usage (EKU)-based
Cryptobinding: By deriving and exchanging values from the PEAP phase 1 key
material (Tunnel Key) and from the PEAP phase 2 inner EAP method key
material (Inner Session Key), it's possible to prove that the two authentications
terminate at the same two entities (PEAP peer and PEAP server). This process,
termed "cryptobinding", is used to protect the PEAP negotiation against "Man
in the Middle" attacks.
For a UWP VPN plug-in, the app vendor controls the authentication method to be used.
The following credential types can be used:
Smart card
Certificate
Windows Hello for Business
User name and password
One-time password
Custom credential type
Configure authentication
See EAP configuration for EAP XML configuration.
7 Note
To configure Windows Hello for Business authentication, follow the steps in EAP
configuration to create a smart card certificate. Learn more about Windows Hello
for Business..
The following image shows the field for EAP XML in a Microsoft Intune VPN profile. The
EAP XML field only appears when you select a built-in connection type (automatic,
IKEv2, L2TP, PPTP).
Related topics
VPN technical guide
VPN connection types
VPN routing decisions
VPN and conditional access
VPN name resolution
VPN auto-triggered profile options
VPN security features
VPN profile options
Extensible Authentication Protocol (EAP) for network access
VPN and conditional access
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
The VPN client is now able to integrate with the cloud-based Conditional Access
Platform to provide a device compliance option for remote clients. Conditional Access is
a policy-based evaluation engine that lets you create access rules for any Azure Active
Directory (Azure AD) connected application.
7 Note
Conditional Access Platform components used for Device Compliance include the
following cloud-based services:
After the server side is set up, VPN admins can add the policy settings for conditional
access to the VPN profile using the VPNv2 DeviceCompliance node.
Two client-side configuration service providers are leveraged for VPN device
compliance.
7 Note
It's required that certificates used for obtaining Kerberos tickets to be issued from
an on-premises CA, and that SSO to be enabled in the user's VPN profile. This will
enable the user to access on-premises resources. In the case of AzureAD-only
joined devices (not hybrid joined devices), if the user certificate issued by the on-
premises CA has the user UPN from AzureAD in Subject and SAN (Subject
Alternative Name), the VPN profile must be modified to ensure that the client does
not cache the credentials used for VPN authentication. To do this, after deploying
the VPN profile to the client, modify the Rasphone.pbk on the client by changing
the entry UseRasCredentials from 1 (default) to 0 (zero).
1. The VPN client calls into Windows 10's or Windows 11's Azure AD Token Broker,
identifying itself as a VPN client.
2. The Azure AD Token Broker authenticates to Azure AD and provides it with
information about the device trying to connect. The Azure AD Server checks if the
device is in compliance with the policies.
3. If compliant, Azure AD requests a short-lived certificate.
4. Azure AD pushes down a short-lived certificate to the Certificate Store via the
Token Broker. The Token Broker then returns control back over to the VPN client
for further connection processing.
5. The VPN client uses the Azure AD-issued certificate to authenticate with the VPN
server.
Related articles
VPN technical guide
VPN connection types
VPN routing decisions
VPN authentication options
VPN name resolution
VPN auto-triggered profile options
VPN security features
VPN profile options
VPN name resolution
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
When the VPN client establishes a connection, it receives an IP address and, optionally,
the IP address of one or more DNS servers.
The name resolution setting in the VPN profile determines how name resolution works
on the system when the VPN connection is established:
1. The network stack looks at the Name Resolution Policy table (NRPT) for any
matches, and tries a resolution if a match is found
2. If no match is found, the DNS suffix on the most preferred interface based on the
interface metric is appended to the name (if a short name is used). A DNS query is
sent to the preferred interface
3. If the query times out, the DNS suffix search list is used in order and DNS queries
are sent on all interfaces
There are three types of name matches that can set up for NRPT:
Fully qualified domain name (FQDN) that can be used for direct matching to a
name
Suffix match results in either a comparison of suffixes (for FQDN resolution) or the
appending of the suffix (if using short name)
Any resolution should attempt to first resolve with the proxy server/DNS server
with this entry
DNS suffix
The DNS suffix setting is used to configure the primary DNS suffix for the VPN interface
and the suffix search list after the VPN connection is established.
Primary DNS suffix is set using the VPNv2/<ProfileName>/DnsSuffix node.
The following image shows name resolution options in a VPN Profile configuration
policy using Microsoft Intune.
The fields in Add or edit DNS rule in the Intune profile correspond to the XML settings
shown in the following table.
Field XML
Name VPNv2/ProfileName/DomainNameInformationList/dniRowId/DomainName
Related articles
VPN technical guide
VPN connection types
VPN routing decisions
VPN authentication options
VPN and conditional access
VPN auto-triggered profile options
VPN security features
VPN profile options
VPN auto-triggered profile options
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Windows can use different features to auto-trigger VPN, avoiding users to manually
connect when VPN is needed to access necessary resources. There are three different
types of auto-trigger rules:
Application trigger
Name-based trigger
Always On
7 Note
Application trigger
VPN profiles can be configured to automatically connect on the execution of certain
applications:
You can configure desktop or Universal Windows Platform (UWP) apps to trigger a
VPN connection
You can configure per-app VPN and specify traffic rules for each app
7 Note
The app identifier for a desktop app is a file path. The app identifier for a UWP app
is a package family name.
Name-based trigger
You can configure a domain name-based rule so that a specific domain name triggers
the VPN connection.\ Name-based auto-trigger can be configured using the
VPNv2/<ProfileName>/DomainNameInformationList/dniRowId/AutoTrigger setting in the
Short name: for example, if HRweb is configured as a trigger, and the stack sees a
DNS resolution request for HRweb, the VPN triggers
Fully qualified domain name (FQDN): for example, if HRweb.corp.contoso.com is
configured as a trigger, and the stack sees a DNS resolution request for
HRweb.corp.contoso.com, the VPN triggers
Suffix: for example, if .corp.contoso.com is configured as a trigger, and the stack
sees a DNS resolution request with a matching suffix (such as
HRweb.corp.contoso.com), the VPN triggers. For any short name resolution, VPN
triggers, and the DNS servers are queried for the <ShortName>.corp.contoso.com
All: if used, all DNS resolution triggers VPN
Always On
Always On is a Windows feature that enables the active VPN profile to connect
automatically on the following triggers:
User sign-in
Network change
Device screen on
When the trigger occurs, VPN tries to connect. If an error occurs, or any user input is
needed, the user sees a toast notification for more interaction.
When a device has multiple profiles with Always On triggers, the user can specify the
active profile in Settings > Network & Internet > VPN > <VPN profile> by selecting
the Let apps automatically use this VPN connection checkbox. By default, the first
MDM-configured profile is marked as Active. Devices with multiple users have the same
restriction: only one profile, and therefore only one user, is able to use the Always On
triggers.
If a management tool removes or adds the same profile name back and set AlwaysOn
to true, Windows doesn't check the box if the profile name exists in the following
registry value, in order to preserve user preference.
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Config
Value: AutoTriggerDisabledProfilesList
Type: REG_MULTI_SZ
The following image shows associating apps to a VPN connection in a VPN Profile
configuration policy using Microsoft Intune.
Related articles
VPN technical guide
VPN connection types
VPN routing decisions
VPN authentication options
VPN and conditional access
VPN name resolution
VPN security features
VPN profile options
VPN security features
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
For example, read about the workaround for Cisco AnyConnect VPN: Cisco AnyConnect
Secure Mobility Client Administrator Guide: Connectivity issues with VM-based
subsystems .
Traffic Filters
Traffic Filters enables organizations to decide what traffic is allowed into the corporate
network based on policy. IT admins can use Traffic Filters to apply interface-specific
firewall rules to the VPN Interface.
App-based rules consist of a list of applications that can be marked to only allow
traffic originating from the apps to the VPN interface
Traffic-based rules consist of 5-tuple policies (ports, addresses, protocol) that can
be specified to only allow traffic matching the rules to go through the VPN
interface
There can be sets of rules linked by OR. Within each set, there can be app-based rules
and traffic-based rules.
All the properties within the set are linked by AND. The rules can be applied at a per-
app level or a per-device level.
An HR App is allowed to go through the VPN and only access port 4545
The Finance apps are allowed to through the VPN and only access the Remote IP
ranges of 10.10.0.40 - 10.10.0.201 on port 5889
All other apps on the device can only access ports 80 or 443
Configure traffic filters
See VPN profile options and VPNv2 CSP for XML configuration.
The following image shows the interface to configure traffic rules in a VPN Profile
configuration policy, using Microsoft Intune.
LockDown VPN
A VPN profile configured with LockDown secures the device to only allow network traffic
over the VPN interface. It has the following features:
7 Note
For built-in VPN, LockDown VPN is only available for the Internet Key Exchange
version 2 (IKEv2) connection type.
U Caution
Be careful when deploying LockDown VPN, as the resultant connection won't be
able to send or receive any network traffic without the VPN connection being
established.
Related articles
VPN technical guide
VPN connection types
VPN routing decisions
VPN authentication options
VPN and conditional access
VPN name resolution
VPN auto-triggered profile options
VPN profile options
VPN profile options
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Most of the VPN settings in Windows can be configured in VPN profiles using Microsoft
Intune or Microsoft Configuration Manager. VPN settings can be configured using the
ProfileXML node in the VPNv2 configuration service provider (CSP).
7 Note
The following table lists the VPN settings and whether the setting can be configured in
Intune and Configuration Manager, or can only be configured using ProfileXML.
LockDown No
7 Note
VPN proxy settings are only used on Force Tunnel Connections. On Split Tunnel
Connections, the general proxy settings are used.
The ProfileXML node was added to the VPNv2 CSP to allow users to deploy VPN profile
as a single blob. This node is useful for deploying profiles with features that aren't yet
supported by MDMs. You can get more examples in the ProfileXML XSD article.
XML
<VPNProfile>
<ProfileName>TestVpnProfile</ProfileName>
<NativeProfile>
<Servers>testServer.VPN.com</Servers>
<NativeProtocolType>IKEv2</NativeProtocolType>
<DisableUserPromptForServerValidation>true</DisableUserPromptForServerValida
tion>
<ServerNames></ServerNames>
<TrustedRootCA>d2 d3 8e ba 60 ca a1 c1 20 55 a2 e1 c8 3b
15 ad 45 01 10 c2 </TrustedRootCA>
<TrustedRootCA>d1 76 97 cc 20 6e d2 6e 1a 51 f5 bb 96 e9
35 6d 6d 61 0b 74 </TrustedRootCA>
</ServerValidation>
<FastReconnect>true</FastReconnect>
<InnerEapOptional>false</InnerEapOptional>
<Eap
xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
<Type>13</Type>
<EapType
xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1">
<CredentialsSource>
<CertificateStore>
<SimpleCertSelection>true</SimpleCertSelection>
</CertificateStore>
</CredentialsSource>
<ServerValidation>
<DisableUserPromptForServerValidation>true</DisableUserPromptForServerValida
tion>
<ServerNames></ServerNames>
<TrustedRootCA>d2 d3 8e ba 60 ca a1 c1 20 55 a2 e1
c8 3b 15 ad 45 01 10 c2 </TrustedRootCA>
<TrustedRootCA>d1 76 97 cc 20 6e d2 6e 1a 51 f5 bb
96 e9 35 6d 6d 61 0b 74 </TrustedRootCA>
</ServerValidation>
<DifferentUsername>false</DifferentUsername>
<PerformServerValidation
xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">t
rue</PerformServerValidation>
<AcceptServerName
xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">f
alse</AcceptServerName>
<TLSExtensions
xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">
<FilteringInfo
xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV3">
<EKUMapping>
<EKUMap>
<EKUName>AAD Conditional Access</EKUName>
<EKUOID>1.3.6.1.4.1.311.87</EKUOID>
</EKUMap>
</EKUMapping>
<ClientAuthEKUList Enabled="true">
<EKUMapInList>
<EKUName>AAD Conditional Access</EKUName>
</EKUMapInList>
</ClientAuthEKUList>
</FilteringInfo>
</TLSExtensions>
</EapType>
</Eap>
<EnableQuarantineChecks>false</EnableQuarantineChecks>
<RequireCryptoBinding>true</RequireCryptoBinding>
<PeapExtensions>
<PerformServerValidation
xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">t
rue</PerformServerValidation>
<AcceptServerName
xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">f
alse</AcceptServerName>
</PeapExtensions>
</EapType>
</Eap>
</Config>
</EapHostConfig>
</Configuration>
</Eap>
</Authentication>
<!--Always On is turned off, and triggering VPN for the apps and domain
name specified earlier in the profile will not occur if the user is
connected to the trusted network "contoso.com".-->
<AlwaysOn>false</AlwaysOn>
<DnsSuffix>corp.contoso.com</DnsSuffix>
<TrustedNetworkDetection>contoso.com</TrustedNetworkDetection>
<Proxy>
<Manual>
<Server>HelloServer</Server>
</Manual>
<AutoConfigUrl>Helloworld.Com</AutoConfigUrl>
</Proxy>
XML
<VPNProfile>
<ProfileName>TestVpnProfile</ProfileName>
<PluginProfile>
<ServerUrlList>testserver1.contoso.com;testserver2.contoso..com</ServerUrlLi
st>
<PluginPackageFamilyName>JuniperNetworks.JunosPulseVpn_cw5n1h2txyewy</Plugin
PackageFamilyName>
<CustomConfiguration><pulse-
schema><isSingleSignOnCredential>true</isSingleSignOnCredential&
gt;</pulse-schema></CustomConfiguration>
</PluginProfile>
<Route>
<Address>192.168.0.0</Address>
<PrefixSize>24</PrefixSize>
</Route>
<Route>
<Address>10.10.0.0</Address>
<PrefixSize>16</PrefixSize>
</Route>
<AppTrigger>
<App>
<Id>Microsoft.MicrosoftEdge_8wekyb3d8bbwe</Id>
</App>
</AppTrigger>
<AppTrigger>
<App>
<Id>%ProgramFiles%\Internet Explorer\iexplore.exe</Id>
</App>
</AppTrigger>
<TrafficFilter>
<App>
<Id>%ProgramFiles%\Internet Explorer\iexplore.exe</Id>
</App>
<Protocol>6</Protocol>
<LocalPortRanges>10,20-50,100-200</LocalPortRanges>
<RemotePortRanges>20-50,100-200,300</RemotePortRanges>
<RemoteAddressRanges>30.30.0.0/16,10.10.10.10-
20.20.20.20</RemoteAddressRanges>
<!--<RoutingPolicyType>ForceTunnel</RoutingPolicyType>-->
</TrafficFilter>
<TrafficFilter>
<App>
<Id>Microsoft.MicrosoftEdge_8wekyb3d8bbwe</Id>
</App>
<LocalAddressRanges>3.3.3.3/32,1.1.1.1-2.2.2.2</LocalAddressRanges>
</TrafficFilter>
<TrafficFilter>
<App>
<Id>Microsoft.MicrosoftEdge_8wekyb3d8bbwe</Id>
</App>
<Claims>O:SYG:SYD:(A;;CC;;;AU)</Claims>
<!--<RoutingPolicyType>SplitTunnel</RoutingPolicyType>-->
</TrafficFilter>
<DomainNameInformation>
<DomainName>corp.contoso.com</DomainName>
<DnsServers>1.2.3.4,5.6.7.8</DnsServers>
<WebProxyServers>5.5.5.5</WebProxyServers>
<AutoTrigger>false</AutoTrigger>
</DomainNameInformation>
<DomainNameInformation>
<DomainName>corp.contoso.com</DomainName>
<DnsServers>10.10.10.10,20.20.20.20</DnsServers>
<WebProxyServers>100.100.100.100</WebProxyServers>
</DomainNameInformation>
<!--<EdpModeId>corp.contoso.com</EdpModeId>-->
<RememberCredentials>true</RememberCredentials>
<AlwaysOn>false</AlwaysOn>
<DnsSuffix>corp.contoso.com</DnsSuffix>
<TrustedNetworkDetection>contoso.com,test.corp.contoso.com</TrustedNetworkDe
tection>
<Proxy>
<Manual>
<Server>HelloServer</Server>
</Manual>
<AutoConfigUrl>Helloworld.Com</AutoConfigUrl>
</Proxy>
</VPNProfile>
4. Select Create.
Name: Enter a descriptive name for the profile. Name your profiles so you
can easily identify them later.
Description: Enter a description for the profile. This setting is optional, but
recommended.
6. Select Next.
For more information on these settings, see Use custom settings for Windows
devices in Intune.
8. Select Next, and continue configuring the policy. For the specific steps and
recommendations, see Create a profile with custom settings in Intune.
Learn more
Create VPN profiles to connect to VPN servers in Intune
VPNv2 configuration service provider (CSP) reference
How to Create VPN Profiles in Configuration Manager
Related articles
VPN technical guide
VPN connection types
VPN routing decisions
VPN authentication options
VPN and conditional access
VPN name resolution
VPN auto-triggered profile options
VPN security features
How to configure cryptographic
settings for IKEv2 VPN connections
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
In IKEv2 VPN connections, the default setting for IKEv2 cryptographic settings are:
To secure the connections, update the configuration of VPN servers and clients by
running VPN cmdlets.
VPN server
For VPN servers that run Windows Server 2012 R2 or later, you need to run Set-
VpnServerConfiguration to configure the tunnel type. These settings are effective for all
IKEv2 VPN connections.
PowerShell
PowerShell
Set-VpnServerIPsecConfiguration -CustomPolicy
VPN client
For VPN client, you need to configure each VPN connection. For example, run Set-
VpnConnectionIPsecConfiguration (version 4.0) and specify the name of the connection:
PowerShell
Set-VpnConnectionIPsecConfiguration -ConnectionName <String>
If you need to switch back to the default IKEv2 settings, use this command:
PowerShell
If you need to switch back to the default IKEv2 settings, use this command:
PowerShell
Tip
If you're configuring a all-user VPN connection or a Device Tunnel you must use
the -AllUserConnection parameter in the Set-VpnConnectionIPsecConfiguration
command.
How to use Single Sign-On (SSO) over
VPN and Wi-Fi connections
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
For example, you want to connect to a corporate network and access an internal website
that requires Windows integrated authentication.
The credentials that are used for the connection authentication are placed in Credential
Manager as the default credentials for the logon session. Credential Manager stores
credentials that can be used for specific domain resources. These are based on the
target name of the resource:
For VPN, the VPN stack saves its credential as the session default
For Wi-Fi, Extensible Authentication Protocol (EAP) provides support
A session credential implies that it is valid for the current user session
The credentials are cleaned up when the Wi-Fi or VPN connection is disconnected
7 Note
In Windows 10, version 21H2 and later, the session credential isn't visible in
Credential Manager.
For example, if someone using Microsoft Edge tries to access a domain resource,
Microsoft Edge has the right Enterprise Authentication capability. This allows WinInet to
release the credentials that it gets from Credential Manager to the SSP that is requesting
it. For more information about the Enterprise Authentication capability, see App
capability declarations.
The local security authority will look at the device application to determine if it has the
right capability. This includes items such as a Universal Windows Platform (UWP)
application. If the app isn't a UWP, it doesn't matter. But, if the application is a UWP app,
it will evaluate at the device capability for Enterprise Authentication. If it does have that
capability and if the resource that you're trying to access is in the Intranet zone in the
Internet Options (ZoneMap), then the credential will be released. This behavior helps
prevent credentials from being misused by untrusted third parties.
Intranet zone
For the Intranet zone, by default it only allows single-label names, such as http://finance.
If the resource that needs to be accessed has multiple domain labels, then the
workaround is to use the Registry CSP.
MDM Policy
OMA URI example:
./Vendor/MSFT/Registry/HKU/S-1-5-21-2702878673-795188819-444038987-
2781/Software/Microsoft/Windows/CurrentVersion/Internet%20Settings/ZoneMap/Domains/
<domain name> as an Integer value of 1 for each of the domains that you want to SSO
into from your device. This adds the specified domains to the Intranet Zone of the
Microsoft Edge browser.
Credential requirements
For VPN, the following types of credentials will be added to credential manager after
authentication:
SubjectName The user's distinguished name (DN) where the domain components of
the distinguished name reflect the internal DNS namespace when the
SubjectAlternativeName does not have the fully qualified UPN
required to find the domain controller.
This requirement is relevant in multi-forest environments as it ensures
a domain controller can be located.
SubjectAlternativeName The user's fully qualified UPN where a domain name component of the
user's UPN matches the organizations internal domain's DNS
namespace.
This requirement is relevant in multi-forest environments as it ensures
a domain controller can be located when the SubjectName does not
have the DN required to find the domain controller.
Key Storage Provider If the device is joined to Azure AD, a discrete SSO certificate is used.
(KSP)
SmartCardLogon
id-pkinit-KPClientAuth (1.3.6.1.5.2.3.4)
Otherwise:
Domain controllers must have appropriate KDC certificates for the client to trust them as
domain controllers. Because phones are not domain-joined, the root CA of the KDC's
certificate must be in the Third-Party Root CA or Smart Card Trusted Roots store.
Domain controllers must be using certificates based on the updated KDC certificate
template Kerberos Authentication. This requires that all authenticating domain
controllers run Windows Server 2016, or you'll need to enable strict KDC validation on
domain controllers that run previous versions of Windows Server.
For more information, see Enabling Strict KDC Validation in Windows Kerberos .
Optimize Microsoft 365 traffic for
remote workers with the Windows VPN
client
Article • 08/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
This article describes how to configure the recommendations in the article VPN split
tunneling for Microsoft 365 for the Windows VPN client. This guidance enables VPN
administrators to optimize Microsoft 365 usage while ensuring that all other traffic goes
over the VPN connection and through existing security gateways or tooling.
The recommendations can be implemented for the built-in Windows VPN client using a
Force Tunneling with Exclusions approach, defining IP-based exclusions even when using
force tunneling. Certain traffic can be split to use the physical interface, while still forcing
all other traffic via the VPN interface. Traffic addressed to defined destinations (like
those listed in the Microsoft 365 optimized categories) follows a much more direct and
efficient path, without the need to traverse or hairpin via the VPN tunnel and back out
of the organization's network. For cloud-services like Microsoft 365, this makes a
significant difference in performance and usability for remote users.
7 Note
The term force tunneling with exclusions is sometimes confusingly called split
tunnels by other vendors and in some online documentation. For Windows VPN,
the term split tunneling is defined differently, as described in the article VPN
routing decisions.
Solution Overview
The solution is based upon the use of a VPN Configuration Service Provider Reference
profile (VPNv2 CSP) and the embedded ProfileXML. These are used to configure the
VPN profile on the device. Various provisioning approaches can be used to create and
deploy the VPN profile as discussed in the article Step 6. Configure Windows 10 client
Always On VPN connections.
Typically, these VPN profiles are distributed using a Mobile Device Management
solution like Intune, as described in VPN profile options and Configure the VPN client by
using Intune.
To enable the use of force tunneling in Windows 10 or Windows 11 VPN, the
<RoutingPolicyType> setting is typically configured with a value of ForceTunnel in your
existing Profile XML (or script) by way of the following entry, under the <NativeProfile>
</NativeProfile> section:
XML
<RoutingPolicyType>ForceTunnel</RoutingPolicyType>
In order to define specific force tunnel exclusions, you then need to add the following
lines to your existing Profile XML (or script) for each required exclusion, and place them
outside of the <NativeProfile></NativeProfile> section as follows:
XML
<Route>
<Address>[IP addresses or subnet]</Address>
<PrefixSize>[IP Prefix]</PrefixSize>
<ExclusionRoute>true</ExclusionRoute>
</Route>
Entries defined by the [IP Addresses or Subnet] and [IP Prefix] references will
consequently be added to the routing table as more specific route entries that will use
the Internet-connected interface as the default gateway, as opposed to using the VPN
interface. You must define a unique and separate <Route></Route> section for each
required exclusion.
An example of a correctly formatted Profile XML configuration for force tunnel with
exclusions is the following:
XML
<VPNProfile>
<NativeProfile>
<RoutingPolicyType>ForceTunnel</RoutingPolicyType>
</NativeProfile>
<Route>
<Address>203.0.113.0</Address>
<PrefixSize>24</PrefixSize>
<ExclusionRoute>true</ExclusionRoute>
</Route>
<Route>
<Address>198.51.100.0</Address>
<PrefixSize>22</PrefixSize>
<ExclusionRoute>true</ExclusionRoute>
</Route>
</VPNProfile>
7 Note
The IP addresses and prefix size values in this example are used purely as examples
only and should not be used.
Solution Deployment
For Microsoft 365, it's therefore necessary to add exclusions for all IP addresses
documented within the optimize categories described in Office 365 URLs and IP address
ranges to ensure that they're excluded from VPN force tunneling.
This can be achieved manually by adding the IP addresses defined within the optimize
category entries to an existing Profile XML (or script) file, or alternatively the following
script can be used which dynamically adds the required entries to an existing PowerShell
script, or XML file, based upon directly querying the REST-based web service to ensure
the correct IP address ranges are always used.
An example of a PowerShell script that can be used to update a force tunnel VPN
connection with Microsoft 365 exclusions is provided below.
PowerShell
<#
.SYNOPSIS
Applies or updates recommended Microsoft 365 optimize IP address
exclusions to an existing force tunnel Windows 10 and Windows 11 VPN profile
.DESCRIPTION
Connects to the Microsoft 365 worldwide commercial service instance
endpoints to obtain the latest published IP address ranges
Compares the optimized IP addresses with those contained in the supplied
VPN Profile (PowerShell or XML file)
Adds or updates IP addresses as necessary and saves the resultant file
with "-NEW" appended to the file name
.PARAMETERS
Filename and path for a supplied Windows 10 or Windows 11 VPN profile
file in either PowerShell or XML format
.NOTES
Requires at least Windows 10 Version 1803 with KB4493437, 1809 with
KB4490481, or later
.VERSION
1.0
#>
param (
[string]$VPNprofilefile
)
$usage=@"
VPNprofilefile - The full path and name of the VPN profile PowerShell script
or XML file
EXAMPLES
"@
$usage
exit
}
$FileExtension = [System.IO.Path]::GetExtension($VPNprofilefile)
}
catch [System.Xml.XmlException]
{
Write-Verbose "$VPNprofilefile : $($_.toString())"
Write-Host "`nWARNING: The VPN profile XML file is not a valid
xml file or incorrectly formatted!" -ForegroundColor Red
$usage
exit
}
}else
{
Write-Host "`nWARNING: VPN profile XML file does not exist or cannot
be found!" -ForegroundColor Red
$usage
exit
}
}
# Fetch client ID and version if data file exists; otherwise create new file
#
if (Test-Path $datapath)
{
$content = Get-Content $datapath
$clientRequestId = $content[0]
$lastVersion = $content[1]
}else
{
$clientRequestId = [GUID]::NewGuid().Guid
$lastVersion = "0000000000"
@($clientRequestId, $lastVersion) | Out-File $datapath
}
# Call version method to check the latest version, and pull new data if
version number is different #
$version = Invoke-RestMethod -Uri ($ws + "/version?clientRequestId=" +
$clientRequestId)
Write-Host
Write-Host "A new version of Microsoft 365 worldwide commercial service
instance endpoints has been detected!" -ForegroundColor Cyan
# Invoke endpoints method to get the data for the VPN profile comparison #
$endpointSets = Invoke-RestMethod -Uri ($uri)
$Optimize = $endpointSets | Where-Object { $_.category -eq "Optimize" }
$optimizeIpsv4 = $Optimize.ips | Where-Object { ($_).contains(".") } | Sort-
Object -Unique
$regex = '(?sm).*^*.<VPNProfile>\r?\n(.*?)\r?\n</VPNProfile>.*'
if ($In_Opt_Only.Count -gt 0 )
{
Write-Host "Exclusion route IP addresses are unknown, missing, or
need to be updated in the VPN profile`n" -ForegroundColor Red
[int32]$insline=0
if ( $In_VPN_Only.Count -gt 0 )
{
Write-Host "Unknown exclusion route IP addresses have been found in the
VPN profile`n" -ForegroundColor Yellow
}else
{
Write-Host "`nExclusion route IP address has *NOT* been
removed from the VPN profile`n" -ForegroundColor Green
}
}
}
}
if ($In_Opt_Only.Count -gt 0 )
{
Write-Host "Exclusion route IP addresses are unknown, missing,
or need to be updated in the VPN profile`n" -ForegroundColor Red
}else
{
Write-Host "Exclusion route IP addresses are correct and up to
date in the VPN profile`n" -ForegroundColor Green
$OutFile=$VPNprofilefile
}
if ( $In_VPN_Only.Count -gt 0 )
{
Write-Host "Unknown exclusion route IP addresses found in the
VPN profile`n" -ForegroundColor Yellow
}else
{
Write-Host "`nExclusion route IP address has *NOT*
been removed from the VPN profile`n" -ForegroundColor Green
}
}
}
}
Other Considerations
You should also be able to adapt this approach to include necessary exclusions for other
cloud-services that can be defined by known/static IP addresses; exclusions required for
Cisco WebEx or Zoom are good examples.
Examples
An example of a PowerShell script that can be used to create a force tunnel VPN
connection with Microsoft 365 exclusions is provided below, or refer to the guidance in
Create the ProfileXML configuration files to create the initial PowerShell script:
PowerShell
<#
.SYNOPSIS
Configures an AlwaysOn IKEv2 VPN Connection using a basic script
.DESCRIPTION
Configures an AlwaysOn IKEv2 VPN Connection with proxy PAC information
and force tunneling
.PARAMETERS
Parameters are defined in a ProfileXML object within the script itself
.NOTES
Requires at least Windows 10 Version 1803 with KB4493437, 1809 with
KB4490481, or later
.VERSION
1.0
#>
<#-- Define Key VPN Profile Parameters --#>
$ProfileName = 'Contoso VPN with Microsoft 365 Exclusions'
$ProfileNameEscaped = $ProfileName -replace ' ', '%20'
<AutoConfigUrl>http://webproxy.corp.contoso.com/proxy.pac</AutoConfigUrl>
</Proxy>
</VPNProfile>'
An example of an Intune-ready XML file that can be used to create a force tunnel VPN
connection with Microsoft 365 exclusions is provided below, or refer to the guidance in
Create the ProfileXML configuration files to create the initial XML file.
7 Note
This XML is formatted for use with Intune and cannot contain any carriage returns
or whitespace.
XML
<VPNProfile><RememberCredentials>true</RememberCredentials>
<DnsSuffix>corp.contoso.com</DnsSuffix><AlwaysOn>true</AlwaysOn>
<TrustedNetworkDetection>corp.contoso.com</TrustedNetworkDetection>
<NativeProfile><Servers>edge1.contoso.com</Servers>
<RoutingPolicyType>ForceTunnel</RoutingPolicyType>
<NativeProtocolType>IKEv2</NativeProtocolType><Authentication>
<MachineMethod>Certificate</MachineMethod></Authentication></NativeProfile>
<Route><Address>13.107.6.152</Address><PrefixSize>31</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>13.107.18.10</Address><PrefixSize>31</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>13.107.128.0</Address><PrefixSize>22</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>23.103.160.0</Address><PrefixSize>20</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>40.96.0.0</Address><PrefixSize>13</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>40.104.0.0</Address><PrefixSize>15</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>52.96.0.0</Address><PrefixSize>14</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>131.253.33.215</Address><PrefixSize>32</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>132.245.0.0</Address><PrefixSize>16</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>150.171.32.0</Address><PrefixSize>22</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>191.234.140.0</Address><PrefixSize>22</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>204.79.197.215</Address><PrefixSize>32</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>13.107.136.0</Address><PrefixSize>22</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>40.108.128.0</Address><PrefixSize>17</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>52.104.0.0</Address><PrefixSize>14</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>104.146.128.0</Address><PrefixSize>17</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>150.171.40.0</Address><PrefixSize>22</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>13.107.60.1</Address><PrefixSize>32</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>13.107.64.0</Address><PrefixSize>18</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>52.112.0.0</Address><PrefixSize>14</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Route>
<Address>52.120.0.0</Address><PrefixSize>14</PrefixSize>
<ExclusionRoute>true</ExclusionRoute></Route><Proxy>
<AutoConfigUrl>http://webproxy.corp.contoso.com/proxy.pac</AutoConfigUrl>
</Proxy></VPNProfile>
About Always On VPN
Article • 05/22/2023
Applies to: Windows Server 2022, Windows Server 2019, Windows Server 2016,
Windows 10+
Control your network by creating routing policies at a granular level; even down
to the individual application. For more information, see Networking features.
Configure your VPN settings with a standard XML profile (ProfileXML) which is
defined by an industry standard configuration template. You can deploy and
manage your VPN settings with Windows PowerShell, Microsoft Endpoint
Configuration Manager, Intune, Windows Configuration Designer, or any third-
party mobile device management (MDM) tool.
Supported integrations
Always On VPN supports domain-joined, nondomain-joined (workgroup), or Azure AD–
joined devices to allow for both enterprise and BYOD scenarios. Always On VPN is
available in all Windows editions, and the platform features are available to third parties
by way of UWP VPN plug-in support.
Windows Hello for Business. Always On VPN natively supports Windows Hello for
Business in certificate-based authentication mode. The native Windows Hello
support provides a seamless single sign-on experience for both sign-in to the
machine, as well as connection to the VPN. No secondary authentication (user
credentials) is needed for the VPN connection.
Microsoft Azure conditional access platform. The Always On VPN client can
integrate with the Azure conditional access platform to enforce multifactor
authentication (MFA), device compliance, or a combination of the two. When
compliant with conditional access policies, Azure Active Directory (Azure AD) issues
a short-lived (by default, sixty minutes) IP Security (IPsec) authentication certificate.
The IPSec certificate can then be used to authenticate to the VPN gateway. Device
compliance uses Configuration Manager/Intune compliance policies, which can
include the device health attestation state as part of the connection compliance
check. For more details, see VPN and conditional access
Third-party VPN plug-ins. With the Universal Windows Platform (UWP), third-
party VPN providers can create a single application for the full range of Windows
devices. The UWP provides a guaranteed core API layer across devices, eliminating
the complexity of and problems often associated with writing kernel-level drivers.
Currently, Windows UWP VPN plug-ins exist for Pulse Secure , F5 Access ,
Check Point Capsule VPN , FortiClient , SonicWall Mobile Connect , and
GlobalProtect .
Security features
Always On VPN provides connectivity to corporate resources by using tunnel policies
that require authentication and encryption until they reach the VPN gateway. By default,
the tunnel sessions terminate at the VPN gateway, which also functions as the IKEv2
gateway, providing end-to-edge security.
For details about standard VPN authentication options, see VPN authentication options.
Interoperability with third-party IKEv2 VPN gateways. The Always On VPN client
supports interoperability with third-party IKEv2 VPN gateways. You can also
achieve interoperability with third-party VPN gateways by using a UWP VPN plug-
in combined with a custom tunneling type without sacrificing Always On VPN
platform features and benefits.
7 Note
Fall back to SSTP from IKEv2. You can configure fall back for clients that are
behind firewalls or proxy servers by using the automatic tunnel/protocol type
within the VPN profile.
7 Note
User Tunnel supports SSTP and IKEv2, and Device Tunnel supports IKEv2 only,
with no support for SSTP fallback.
Support for machine certificate authentication. The IKEv2 protocol type available
as part of the Always On VPN platform specifically supports the use of machine or
computer certificates for VPN authentication.
7 Note
IKEv2 is the only supported protocol for Device Tunnel and there is no
support option for SSTP fallback. For more information see, Configure an
Always On VPN device tunnel.
Traffic and app filters. With traffic and app firewall rules, you can specify client-
side policies that determine which traffic and apps are allowed to connect to the
VPN interface.
7 Note
These rules apply only to traffic outbound from the device. Use of traffic filters
blocks inbound traffic from the corporate network to the client.
VPN conditional access. Conditional access and device compliance can require
managed devices to meet standards before they can connect to the VPN. VPN
conditional access allows you to restrict the VPN connections to the devices whose
client authentication certificate contains the Azure AD Conditional Access OID of
1.3.6.1.4.1.311.87 . To learn how to restrict the VPN connections directly on the
NPS server, see Configure VPN conditional access on the Network Policy Server. To
learn how to restrict the VPN connections with Azure Active Directory (Azure AD)
conditional access, see Conditional access for VPN connectivity using Azure AD.
Limit remote access to specific users and devices. You can configure Always On
VPN to support granular authorization when using RADIUS, which includes the use
of security groups to control VPN access.
Define accessible management servers before user sign-in. Use the Device
Tunnel feature (available in version 1709 – for IKEv2 only) in the VPN profile
combined with traffic filters to control which management systems on the
corporate network are accessible through the Device Tunnel.
7 Note
If you turn on traffic filters in the Device Tunnel profile, then the Device
Tunnel denies inbound traffic (from the corporate network to the client).
Per-app VPN. Per-app VPN is like having an app-based traffic filter, but it goes
farther to combine application triggers with an app-based traffic filter so that VPN
connectivity is constrained to a specific application as opposed to all applications
on the VPN client. The feature automatically initiates when the app starts.
Customized IPsec cryptography algorithms. Always On VPN supports the use of
both RSA and elliptic curve cryptography–based custom cryptographic algorithms
to meet stringent government or organizational security policies.
Trusted Platform Module (TPM) Key Attestation. A user certificate that has a
TPM-attested key provides higher security assurance, backed up by non-
exportability, anti-hammering, and isolation of keys provided by the TPM.
For more information about TPM key attestation in Windows 10, see TPM Key
Attestation.
Connectivity features
Always On VPN supports the following connectivity features:
Name-based auto-triggering. With Always On VPN, you can define rules so that
specific domain name queries trigger the VPN connection. Windows devices
support name-based triggering for domain-joined and nondomain-joined
machines (previously, only nondomain-joined machines were supported).
Trusted network detection. Always On VPN includes this feature to ensure that
VPN connectivity isn't triggered if a user is connected to a trusted network within
the corporate boundary. You can combine this feature with any of the triggering
methods mentioned earlier to provide a seamless "only connect when needed"
user experience.
Device Tunnel. Always On VPN gives you the ability to create a dedicated VPN
profile for device or machine. Unlike User Tunnel, which only connects after a user
logs on to the device or machine, Device Tunnel allows the VPN to establish
connectivity before user sign-in. Both Device Tunnel and User Tunnel operate
independently with their VPN profiles, can be connected at the same time, and can
use different authentication methods and other VPN configuration settings as
appropriate. For information on how to configure a device tunnel, including
information on how to use manage-out to dynamically register client IP addresses
in DNS, see Configure an Always On VPN device tunnel.
7 Note
Connectivity Assistant Always On VPN is fully integrated with the native Network
Connectivity Assistant and provides connectivity status from the View All Networks
interface. With the advent of Windows 10 Creators Update (version 1703), VPN
connection status and VPN connection control for User Tunnel are available
through the Network flyout (for the Windows built-in VPN client).
Networking features
Always On VPN supports the following networking features:
Dual-stack support for IPv4 and IPv6. Always On VPN natively supports the use of
both IPv4 and IPv6 in a dual-stack approach. It has no specific dependency on one
protocol over the other, which allows for maximum IPv4/IPv6 application
compatibility combined with support for future IPv6 networking needs.
Exclusion routes. Always On VPN supports the ability to specify exclusion routes
that specifically control routing behavior to define which traffic should traverse the
VPN only and not go over the physical network interface.
7 Note
Exclusion routes work for traffic within the same subnet as the client such as
LinkLocal. Exclusion routes only work in a Split Tunnel setup.
Support for multiple domains and forests. The Always On VPN platform has no
dependency on Active Directory Domain Services (AD DS) forests or domain
topology (or associated functional/schema levels) because it doesn't require the
VPN client to be domain joined to function. Group Policy is therefore not a
dependency to define VPN profile settings because you don't use it during client
configuration. Where Active Directory authorization integration is required, you
can achieve it through RADIUS as part of the EAP authentication and authorization
process.
7 Note
Avoid the use of Global Suffixes as they interfere with shortname resolution
when using Name Resolution Policy tables.
High availability features
The following are more options for high availability.
Server resilience and load balancing. In environments that require high availability or
support large numbers of requests, you can increase the performance and resiliency of
Remote Access by configuring load balancing between Network Policy Servers (NPS)
and by enabling Remote Access server clustering.
Geographic site resilience. For IP-based geolocation, you can use Global Traffic
Manager with DNS in Windows Server. For more robust geographic load balancing, you
can use Global Server Load Balancing solutions, such as Microsoft Azure Traffic
Manager.
Next steps
Install Remote Access as a VPN server
VPN security features: This topic provides an overview of VPN security guidelines
for LockDown VPN, Windows Information Protection (WIP) integration with VPN,
and traffic filters.
VPN auto-triggered profile options: This topic provides an overview of VPN auto-
triggered profile options, such as app trigger, name-based trigger, and Always On.
Applies to: Windows Server 2022, Windows Server 2019, Windows Server 2016
) Important
Microsoft highly recommends that you use Always On VPN instead of DirectAccess
for new deployments. For more information, see Always on VPN.
You can use this topic for a brief overview of DirectAccess, including the server and
client operating systems that support DirectAccess, and for links to additional
DirectAccess documentation for Windows Server.
7 Note
DirectAccess provides support only for domain-joined clients that include operating
system support for DirectAccess.
Windows 11 Enterprise
Windows 10 Enterprise
Applies to: Windows Server 2022, Windows Server 2019, Windows Server 2016,
Windows Server 2012 R2, Windows Server 2012
This topic describes the SMB 3 feature in Windows Server 2019, Windows Server 2016,
Windows Server 2012 R2, and Windows Server 2012—practical uses for the feature, the
most significant new or updated functionality in this version compared to previous
versions, and the hardware requirements. SMB is also a fabric protocol used by
software-defined data center (SDDC) solutions such as Storage Spaces Direct, Storage
Replica, and others. SMB version 3.0 was introduced with Windows Server 2012 and has
been incrementally improved in subsequent releases.
Feature description
The Server Message Block (SMB) protocol is a network file sharing protocol that allows
applications on a computer to read and write to files and to request services from server
programs in a computer network. The SMB protocol can be used on top of its TCP/IP
protocol or other network protocols. Using the SMB protocol, an application (or the user
of an application) can access files or other resources at a remote server. This allows
applications to read, create, and update files on the remote server. SMB can also
communicate with any server program that is set up to receive an SMB client request.
SMB is a fabric protocol that is used by Software-defined Data Center (SDDC)
computing technologies, such as Storage Spaces Direct, Storage Replica. For more
information, see Windows Server software-defined datacenter.
Practical applications
This section discusses some new practical ways to use the new SMB 3.0 protocol.
File storage for virtualization (Hyper-V™ over SMB). Hyper-V can store virtual
machine files, such as configuration, Virtual hard disk (VHD) files, and snapshots, in
file shares over the SMB 3.0 protocol. This can be used for both stand-alone file
servers and clustered file servers that use Hyper-V together with shared file
storage for the cluster.
Microsoft SQL Server over SMB. SQL Server can store user database files on SMB
file shares. Currently, this is supported with SQL Server 2008 R2 for stand-alone
SQL servers. Upcoming versions of SQL Server will add support for clustered SQL
servers and system databases.
Traditional storage for end-user data. The SMB 3.0 protocol provides
enhancements to the Information Worker (or client) workloads. These
enhancements include reducing the application latencies experienced by branch
office users when accessing data over wide area networks (WAN) and protecting
data from eavesdropping attacks.
7 Note
If you need to conserve storage space on an SMB file share, consider using Azure
File Sync with cloud tiering enabled. This allows you to cache your most frequently
accessed files locally and tier your least frequently accessed files to the cloud,
saving local storage space while maintaining performance. For details, see Planning
for an Azure File Sync deployment.
Ability to require New To provide some added assurance that writes to a file share
write-through to disk make it all the way through the software and hardware stack
on file shares that to the physical disk prior to the write operation returning as
aren't continuously completed, you can enable write-through on the file share
available using either the NET USE /WRITETHROUGH command or the
New-SMBMapping -UseWriteThrough PowerShell cmdlet. There's
some amount of performance hit to using write-through; see
the blog post Controlling write-through behaviors in SMB
for further discussion.
Features added in Windows Server, version
1709, and Windows 10, version 1709
Feature/functionality New or Summary
updated
Guest access to file New The SMB client no longer allows the following actions: Guest
shares is disabled account access to a remote server; Fallback to the Guest
account after invalid credentials are provided. For details, see
Guest access in SMB2 disabled by default in Windows .
SMB global mapping New Maps a remote SMB share to a drive letter that is accessible
to all users on the local host, including containers. This is
required to enable container I/O on the data volume to
traverse the remote mount point. Be aware that when using
SMB global mapping for containers, all users on the
container host can access the remote share. Any application
running on the container host also have access to the
mapped remote share. For details, see Container Storage
Support with Cluster Shared Volumes (CSV), Storage Spaces
Direct, SMB Global Mapping .
SMB dialect control New You can now set registry values to control the minimum SMB
version (dialect) and maximum SMB version used. For details,
see Controlling SMB Dialects .
SMB Encryption Improvements New SMB 3.1.1 offers a mechanism to negotiate the
crypto algorithm per connection, with options for
AES-128-CCM and AES-128-GCM. AES-128-GCM is
the default for new Windows versions, while older
versions will continue to use AES-128-CCM.
Rolling cluster upgrade support New Enables rolling cluster upgrades by letting SMB
appear to support different max versions of SMB
for clusters in the process of being upgraded. For
more details on letting SMB communicate using
different versions (dialects) of the protocol, see the
blog post Controlling SMB Dialects .
Native support for New Adds native support for querying the normalized
FileNormalizedNameInformation name of a file. For details, see
API calls FileNormalizedNameInformation.
For additional details, see the blog post What’s new in SMB 3.1.1 in the Windows Server
2016 Technical Preview 2.
Automatic rebalancing New Improves scalability and manageability for Scale-Out File
of Scale-Out File Servers. SMB client connections are tracked per file share
Server clients (instead of per server), and clients are then redirected to the
cluster node with the best access to the volume used by the
file share. This improves efficiency by reducing redirection
traffic between file server nodes. Clients are redirected
following an initial connection and when cluster storage is
reconfigured.
Performance over Updated Windows 8.1 and Windows 10 provide improved CopyFile
WAN SRV_COPYCHUNK over SMB support when you use File
Explorer for remote copies from one location on a remote
machine to another copy on the same server. You will copy
only a small amount of metadata over the network (1/2KiB
per 16MiB of file data is transmitted). This results in a
significant performance improvement. This is an OS-level and
File Explorer-level distinction for SMB.
SMB Direct Updated Improves performance for small I/O workloads by increasing
efficiency when hosting workloads with small I/Os (such as
an online transaction processing (OLTP) database in a virtual
machine). These improvements are evident when using
higher speed network interfaces, such as 40 Gbps Ethernet
and 56 Gbps InfiniBand.
SMB bandwidth limits New You can now use Set-SmbBandwidthLimit to set bandwidth
limits in three categories: VirtualMachine (Hyper-V over SMB
traffic), LiveMigration (Hyper-V Live Migration traffic over
SMB), or Default (all other types of SMB traffic).
For more information on new and changed SMB functionality in Windows Server 2012
R2, see What's New in SMB in Windows Server.
SMB Scale Out New Support for multiple SMB instances on a Scale-Out File
Server. Using Cluster Shared Volumes (CSV) version 2,
administrators can create file shares that provide
simultaneous access to data files, with direct I/O, through all
nodes in a file server cluster. This provides better utilization
of network bandwidth and load balancing of the file server
clients, and optimizes performance for server applications.
SMB Multichannel New Enables aggregation of network bandwidth and network fault
tolerance if multiple paths are available between the SMB
client and server. This enables server applications to take full
advantage of all available network bandwidth and be resilient
to a network failure.
SMB Direct New Supports the use of network adapters that have RDMA
capability and can function at full speed with very low
latency, while using very little CPU. For workloads such as
Hyper-V or Microsoft SQL Server, this enables a remote file
server to resemble local storage.
Performance Counters New The new SMB performance counters provide detailed, per-
for server applications share information about throughput, latency, and I/O per
second (IOPS), allowing administrators to analyze the
performance of SMB file shares where their data is stored.
These counters are specifically designed for server
applications, such as Hyper-V and SQL Server, which store
files on remote file shares.
Feature/functionality New or Summary
updated
Performance Updated Both the SMB client and server have been optimized for
optimizations small random read/write I/O, which is common in server
applications such as SQL Server OLTP. In addition, large
Maximum Transmission Unit (MTU) is turned on by default,
which significantly enhances performance in large sequential
transfers, such as SQL Server data warehouse, database
backup or restore, deploying or copying virtual hard disks.
SMB-specific Windows New With Windows PowerShell cmdlets for SMB, an administrator
PowerShell cmdlets can manage file shares on the file server, end to end, from
the command line.
SMB Encryption New Provides end-to-end encryption of SMB data and protects
data from eavesdropping occurrences on untrusted
networks. Requires no new deployment costs, and no need
for Internet Protocol security (IPsec), specialized hardware, or
WAN accelerators. It may be configured on a per share basis,
or for the entire file server, and may be enabled for a variety
of scenarios where data traverses untrusted networks.
SMB Directory Leasing New Improves application response times in branch offices. With
the use of directory leases, roundtrips from client to server
are reduced since metadata is retrieved from a longer living
directory cache. Cache coherency is maintained because
clients are notified when directory information on the server
changes. Directory leases work with scenarios for
HomeFolder (read/write with no sharing) and Publication
(read-only with sharing).
Performance over New Directory opportunistic locks (oplocks) and oplock leases
WAN were introduced in SMB 3.0. For typical office/client
workloads, oplocks/leases are shown to reduce network
round trips by approximately 15%.
Hardware requirements
SMB Transparent Failover has the following requirements:
A failover cluster running Windows Server 2012 or Windows Server 2016 with at
least two nodes configured. The cluster must pass the cluster validation tests
included in the validation wizard.
File shares must be created with the Continuous Availability (CA) property, which is
the default.
File shares must be created on CSV volume paths to attain SMB Scale-Out.
Client computers must be running Windows® 8 or Windows Server 2012, both of
which include the updated SMB client that supports continuous availability.
7 Note
Down-level clients can connect to file shares that have the CA property, but
transparent failover will not be supported for these clients.
At least two computers running Windows Server 2012 are required. No extra
features need to be installed—the technology is on by default.
For information on recommended network configurations, see the See Also section
at the end of this overview topic.
At least two computers running Windows Server 2012 are required. No extra
features need to be installed—the technology is on by default.
Network adapters with RDMA capability are required. Currently, these adapters are
available in three different types: iWARP, Infiniband, or RoCE (RDMA over
Converged Ethernet).
More information
The following list provides additional resources on the web about SMB and related
technologies in Windows Server 2012 R2, Windows Server 2012, and Windows Server
2016.
Applies to: Windows Server 2022, Windows Server 2019, Windows Server 2016,
Windows Server 2012 R2, Windows Server 2012, Azure Stack HCI version 21H2
Windows Server includes a feature called SMB Direct, which supports the use of network
adapters that have Remote Direct Memory Access (RDMA) capability. Network adapters
that have RDMA can function at full speed with lower latency without compromising
CPU utilization. For workloads such as Hyper-V or Microsoft SQL Server, this enables a
remote file server to resemble local storage. SMB Direct is automatically configured and
enabled by default in Windows Server 2012 and future iterations.
You can use SMB Direct in a failover cluster; however, you need to make sure that the
cluster networks used for client access are adequate for SMB Direct. Failover clustering
supports using multiple networks for client access, along with network adapters that are
RSS (Receive Side Scaling)-capable and RDMA-capable.
7 Note
You can use SMB Direct on the Hyper-V management operating system to support
using Hyper-V over SMB, and to provide storage to a virtual machine that uses the
Hyper-V storage stack. However, RDMA-capable network adapters aren't directly
exposed to a Hyper-V client. If you connect an RDMA-capable network adapter to a
virtual switch, the virtual network adapters from the switch won't be RDMA-
capable.
Requirements
SMB Direct requires the following:
7 Note
Windows 10 and Windows 11 family are restricted to client-only and can't act as an
SMB Direct server.
SMB Multichannel
SMB Multichannel is the feature responsible for detecting the RDMA capabilities of
network adapters to enable SMB Direct. Without SMB Multichannel, SMB uses regular
TCP/IP with the RDMA-capable network adapters (all network adapters provide a TCP/IP
stack along with the new RDMA stack).
With SMB Multichannel, SMB detects whether a network adapter has RDMA capability,
and creates multiple RDMA connections for that single session (two per interface). This
allows SMB to use the high throughput, low latency, and low CPU utilization offered by
RDMA-capable network adapters. It also offers fault tolerance if you're using multiple
RDMA interfaces.
You can team RDMA-capable network adapters using Switch Embedded Teaming (SET)
starting with Windows Server 2016. After at least one RDMA network connection is
created, the TCP/IP connection used for the original protocol negotiation is no longer
used. However, the TCP/IP connection is retained in case the RDMA network
connections fail.
Disabling SMB Multichannel also disables SMB Direct. Since SMB Multichannel detects
network adapter capabilities and determines whether a network adapter is RDMA-
capable, SMB Direct can't be used by the client if SMB Multichannel is disabled.
SMB Encryption
Beginning in Windows Server 2022 and Windows 11, SMB Direct now supports
encryption. Previously, enabling SMB encryption disabled direct data placement, making
RDMA performance as slow as TCP. Now data is encrypted before placement, leading to
relatively minor performance degradation while adding AES-128 and AES-256 protected
packet privacy. For more information on configuring SMB encryption, see SMB security
enhancements.
Disable
Typically, you won't need to disable SMB Direct, however, you can disable it along
with its features, by running the following Windows PowerShell commands.
PowerShell
PowerShell
PowerShell
Disable-NetAdapterRdma <name>
PowerShell
When you disable RDMA on either the client or the server, the systems can't use it.
Network Direct is the internal name for Windows Server basic networking support
for RDMA interfaces.
To verify which state of operability SMB Direct is currently configured to, run the
following cmdlet:
PowerShell
PowerShell
Get-SmbServerNetworkInterface
PowerShell
Get-SmbClientNetworkInterface
Once the network adapter is verified RDMA-capable, perform the following test:
1. Disable RDMA on the network adapter, see Disabling and Enabling SMB Direct
features.
2. Measure the amount of time taken to run a large file copy without using SMB
Direct.
3. Re-enable RDMA on the network adapter, perform the same file copy, and then
compare the two results.
4. To avoid the impact of caching, perform the following:
a. Copy a large amount of data (more data than memory is capable of handling).
b. Copy the data twice, with the first copy as practice and then timing the second
copy.
c. Restart both the server and the client before each test to ensure they operate
under similar conditions.
Additionally, you can observe the performance counters during testing using the same
scenario utilizing the Performance Monitor tool by performing the following:
Tip
To avoid failures of a workload that does not use SMB Direct, make sure there are
no other workloads using the disconnected network path.
Additional references
Server Message Block overview
Increasing Server, Storage, and Network Availability: Scenario Overview
Deploy Hyper-V over SMB
Microsoft Defender Antivirus in
Windows
Article • 03/15/2023
Applies to:
Platforms
Windows
Active mode In active mode, Microsoft Defender Antivirus is used as the primary antivirus app
on the device. Files are scanned, threats are remediated, and detected threats are
listed in your organization's security reports and in your Windows Security app.
Passive mode In passive mode, Microsoft Defender Antivirus is not used as the primary
antivirus app on the device. Files are scanned, and detected threats are reported,
but threats are not remediated by Microsoft Defender Antivirus.
Disabled or When disabled or uninstalled, Microsoft Defender Antivirus is not used. Files are
uninstalled not scanned, and threats are not remediated. In general, we do not recommend
disabling or uninstalling Microsoft Defender Antivirus.
) Important
Beginning with platform version 4.18.2208.0 and later: If a server has been
onboarded to Microsoft Defender for Endpoint, the "Turn off Windows Defender"
group policy setting will no longer completely disable Windows Defender Antivirus
on Windows Server 2012 R2 and later. Instead, it will place it into passive mode. In
addition, the tamper protection feature will allow a switch to active mode but not
to passive mode.
You'll see the name of your antivirus/antimalware solution on the security providers
page.
2. Type Get-MpComputerStatus .
Passive mode means Microsoft Defender Antivirus running, but is not the
primary antivirus/antimalware product on your device. Passive mode is only
available for devices that are onboarded to Microsoft Defender for Endpoint
and that meet certain requirements. To learn more, see Requirements for
Microsoft Defender Antivirus to run in passive mode.
Tip
Tip
You can use the information gathered using Performance analyzer to better assess
performance issues and apply remediation actions. See: Performance analyzer for
Microsoft Defender Antivirus.
Tip
If you're looking for Antivirus related information for other platforms, see:
See also
Performance analyzer for Microsoft Defender Antivirus
Microsoft Defender Antivirus management and configuration
Evaluate Microsoft Defender Antivirus protection
Exclusions for Microsoft Defender for Endpoint and Microsoft Defender Antivirus
Tip
Do you want to learn more? Engage with the Microsoft Security community in our
Tech Community: Microsoft Defender for Endpoint Tech Community .
Attack surface reduction rules overview
Article • 09/29/2023
Applies to:
Platforms
Windows
Attack surface reduction rules target certain software behaviors, such as:
Launching executable files and scripts that attempt to download or run files
Running obfuscated or otherwise suspicious scripts
Performing behaviors that apps don't usually initiate during normal day-to-day
work
Such software behaviors are sometimes seen in legitimate applications. However, these
behaviors are often considered risky because they're commonly abused by attackers
through malware. Attack surface reduction rules can constrain software-based risky
behaviors and help keep your organization safe.
For a sequential, end-to-end process of how to manage attack surface reduction rules,
see:
In the recommendation details pane, check for user impact to determine what
percentage of your devices can accept a new policy enabling the rule in blocking mode
without adversely affecting productivity.
See Requirements in the "Enable attack surface reduction rules" article for information
about supported operating systems and other requirement information.
Audit mode
Use audit mode to evaluate how attack surface reduction rules would affect your
organization if enabled. Run all rules in audit mode first so you can understand how
they affect your line-of-business applications. Many line-of-business applications are
written with limited security concerns, and they might perform tasks in ways that seem
similar to malware.
Exclusions
By monitoring audit data and adding exclusions for necessary applications, you can
deploy attack surface reduction rules without reducing productivity.
Per-rule exclusions
For information about configuring per-rule exclusions, see the section titled Configure
attack surface reduction rules per-rule exclusions in the article Test attack surface
reduction rules.
Warn mode helps your organization have attack surface reduction rules in place without
preventing users from accessing the content they need to perform their tasks.
Microsoft Defender Antivirus must be running with real-time protection in Active mode.
Also, make sure Microsoft Defender Antivirus and antimalware updates are installed.
For more information and to get your updates, see Update for Microsoft Defender
antimalware platform .
Also, warn mode isn't supported on devices running older versions of Windows. In those
cases, attack surface reduction rules that are configured to run in warn mode runs in
block mode.
Also, when certain attack surface reduction rules are triggered, alerts are generated.
Notifications and any alerts that are generated can be viewed in the Microsoft 365
Defender portal .
For specific details about notification and alert functionality, see: Per rule alert and
notification details, in the article Attack surface reduction rules reference.
For example, suppose that an attack surface reduction event occurs on 10 devices
during the 2:00 PM hour. Suppose that the first event occurred at 2:15, and the last at
2:45. With advanced hunting, you see one instance of that event (even though it actually
occurred on 10 devices), and its timestamp will be 2:15 PM.
For more information about advanced hunting, see Proactively hunt for threats with
advanced hunting.
7 Note
Although attack surface reduction rules don't require a Windows E5 license, if you have
Windows E5, you get advanced management capabilities. The advanced capabilities -
available only in Windows E5 - include:
You can query Defender for Endpoint data in Microsoft 365 Defender by using advanced
hunting.
Kusto
DeviceEvents
| where ActionType startswith 'Asr'
1. Download the Evaluation Package and extract the file cfa-events.xml to an easily
accessible location on the device.
2. Enter the words, Event Viewer, into the Start menu to open the Windows Event
Viewer.
4. Select the file cfa-events.xml from where it was extracted. Alternatively, copy the
XML directly.
5. Select OK.
You can create a custom view that filters events to only show the following events, all of
which are related to controlled folder access:
Event ID Description
The "engine version" listed for attack surface reduction events in the event log, is
generated by Defender for Endpoint, not by the operating system. Defender for
Endpoint is integrated with Windows 10 and Windows 11, so this feature works on all
devices with Windows 10 or Windows 11 installed.
See also
Attack surface reduction rules deployment overview
Plan attack surface reduction rules deployment
Test attack surface reduction rules
Enable attack surface reduction rules
Operationalize attack surface reduction rules
Attack surface reduction rules report
Exclusions for Microsoft Defender for Endpoint and Microsoft Defender Antivirus
Tip
If you're looking for Antivirus related information for other platforms, see:
Tip
Do you want to learn more? Engage with the Microsoft Security community in our
Tech Community: Microsoft Defender for Endpoint Tech Community .
Protect security settings with tamper
protection
Article • 06/26/2023
Applies to:
Platforms
Windows
macOS
As of signature release 1.383.1159.0 , due to confusion around the default value for "Allow
Scanning Network Files", tamper protection no longer locks this setting to its default value.
In managed environments, the default value is enabled.
) Important
If you must make changes to a device and those changes are blocked by
tamper protection, you can use troubleshooting mode to temporarily disable
tamper protection on the device.
You can use Intune or Configuration Manager to exclude devices from tamper
protection.
Tamper protection doesn't prevent you from viewing your security settings. And, tamper
protection doesn't affect how non-Microsoft antivirus apps register with the Windows
Security app. If your organization is using Defender for Endpoint, individual users can't
change the tamper protection setting; in those cases, tamper protection is managed by
your security team. For more information, see How do I configure or manage tamper
protection?
Tamper protection is also available for Mac, although it works a little differently than on
Windows. For more information, see Protect macOS security settings with tamper
protection.
Tip
) Important
On Windows Server 2016, the Settings app won't accurately reflect the status of
real-time protection when tamper protection is enabled.
Use the Microsoft Turn tamper protection on (or off), tenant wide. See Manage tamper
365 Defender protection for your organization using Microsoft 365 Defender.
portal .
This method won't override settings that are managed in Microsoft Intune
or Configuration Manager with tenant attach.
Use the Microsoft Turn tamper protection on (or off), tenant wide, or apply tamper
Intune admin protection to some users/devices. You can exclude certain devices from
center . tamper protection. See Manage tamper protection for your organization
using Intune.
Use Configuration Turn tamper protection on (or off), tenant wide, or apply tamper
Manager with tenant protection to some users/devices. You can exclude certain devices from
attach. tamper protection. See Manage tamper protection for your organization
using tenant attach with Configuration Manager, version 2006.
Use the Windows Turn tamper protection on (or off) on an individual device that isn't
Security app. managed by a security team (such as devices for home use). See Manage
tamper protection on an individual device.
This method won't override tamper protection settings that are managed by
the Microsoft 365 Defender portal, Intune, or Configuration Manager, and it
isn't intended to be used by organizations.
Tip
If you're using Group Policy to manage Microsoft Defender Antivirus settings, keep
in mind that any changes made to tamper-protected settings are ignored. If you
must make changes to a device and those changes are blocked by tamper
protection, use troubleshooting mode to temporarily disable tamper protection on
the device. After troubleshooting mode ends, any changes made to tamper-
protected settings are reverted to their configured state.
Protect Microsoft Defender Antivirus exclusions
Under certain conditions, tamper protection can protect exclusions that are defined for
Microsoft Defender Antivirus. For more information, see Tamper protection for
exclusions.
Using endpoint detection and response and advanced hunting capabilities in Microsoft
Defender for Endpoint, your security operations team can investigate and address such
attempts.
See also
Protect macOS security settings with tamper protection
Built-in protection helps guard against ransomware
Frequently asked questions on tamper protection
Troubleshoot problems with tamper protection
Tip
Do you want to learn more? Engage with the Microsoft Security community in our
Tech Community: Microsoft Defender for Endpoint Tech Community .
Protect important folders with
controlled folder access
Article • 01/06/2023
Applies to:
Applies to
Windows
7 Note
Scripting engines are not trusted and you cannot allow them access to controlled
protected folders. For example, PowerShell is not trusted by controlled folder
access, even if you allow with certificate and file indicators.
Controlled folder access works best with Microsoft Defender for Endpoint, which gives
you detailed reporting into controlled folder access events and blocks as part of the
usual alert investigation scenarios.
Tip
Controlled folder access blocks don't generate alerts in the Alerts queue. However,
you can view information about controlled folder access blocks in the device
timeline view, while using advanced hunting, or with custom detection rules.
Controlled folder access works with a list of trusted apps. Apps that are included in the
list of trusted software work as expected. Apps that are not included in the list are
prevented from making any changes to files inside protected folders.
Apps are added to the list based upon their prevalence and reputation. Apps that are
highly prevalent throughout your organization and that have never displayed any
behavior deemed malicious are considered trustworthy. Those apps are added to the list
automatically.
Apps can also be added manually to the trusted list by using Configuration Manager or
Intune. Additional actions can be performed from the Microsoft 365 Defender portal.
The protected folders include common system folders (including boot sectors), and you
can add more folders. You can also allow apps to give them access to the protected
folders.
You can use audit mode to evaluate how controlled folder access would impact your
organization if it were enabled.
The protected folders include common system folders (including boot sectors), and you
can add additional folders. You can also allow apps to give them access to the protected
folders. The Windows systems folders that are protected by default are:
c:\Users\<username>\Documents
c:\Users\Public\Documents
c:\Users\<username>\Pictures
c:\Users\Public\Pictures
c:\Users\Public\Videos
c:\Users\<username>\Videos
c:\Users\<username>\Music
c:\Users\Public\Music
c:\Users\<username>\Favorites
You can configure additional folders as protected, but you cannot remove the
Windows system folders that are protected by default.
Requirements for controlled folder access
Controlled folder access requires enabling Microsoft Defender Antivirus real-time
protection.
You can query Microsoft Defender for Endpoint data by using Advanced hunting. If
you're using audit mode, you can use advanced hunting to see how controlled folder
access settings would affect your environment if they were enabled.
Example query:
PowerShell
DeviceEvents
| where ActionType in
('ControlledFolderAccessViolationAudited','ControlledFolderAccessViolationBl
ocked')
1. Download the Evaluation Package and extract the file cfa-events.xml to an easily
accessible location on the device.
2. Type Event viewer in the Start menu to open the Windows Event Viewer.
3. On the left panel, under Actions, select Import custom view....
4. Navigate to where you extracted cfa-events.xml and select it. Alternatively, copy
the XML directly.
5. Select OK.
7 Note
Windows system folders are protected by default, and you cannot remove them
from the list. Subfolders are also included in protection when you add a new folder
to the list.
Tip
Do you want to learn more? Engage with the Microsoft Security community in our
Tech Community: Microsoft Defender for Endpoint Tech Community .
Protect devices from exploits
Article • 07/18/2023
Applies to:
Exploit protection works best with Defender for Endpoint - which gives you detailed
reporting into exploit protection events and blocks as part of the usual alert
investigation scenarios.
You can enable exploit protection on an individual device, and then use Group Policy to
distribute the XML file to multiple devices at once.
When a mitigation is found on the device, a notification is displayed from the Action
Center. You can customize the notification with your company details and contact
information. You can also enable the rules individually to customize what techniques the
feature monitors.
You can also use audit mode to evaluate how exploit protection would affect your
organization if it were enabled.
Many of the features in the Enhanced Mitigation Experience Toolkit (EMET) are
included in exploit protection. In fact, you can convert and import existing your EMET
configuration profiles into exploit protection. To learn more, see Import, export, and
deploy exploit protection configurations.
) Important
If you are currently using EMET you should be aware that EMET reached end of
support on July 31, 2018 . Consider replacing EMET with exploit protection in
Windows 10.
2 Warning
Some security mitigation technologies may have compatibility issues with some
applications. You should test exploit protection in all target use scenarios by using
audit mode before deploying the configuration across a production environment
or the rest of your network.
You can query Defender for Endpoint data by using Advanced hunting. If you're using
audit mode, you can use advanced hunting to see how exploit protection settings could
affect your environment.
Kusto
DeviceEvents
| where ActionType startswith 'ExploitGuard' and ActionType !contains
'NetworkProtection'
Mitigation comparison
The mitigations available in EMET are included natively in Windows 10 (starting with
version 1709), Windows 11, and Windows Server (starting with version 1803), under
Exploit protection.
The table in this section indicates the availability and support of native mitigations
between EMET and exploit protection.
7 Note
The Advanced ROP mitigations that are available in EMET are superseded by ACG in
Windows 10 and Windows 11, which other EMET advanced settings are enabled by
default, as part of enabling the anti-ROP mitigations for a process. For more
information on how Windows 10 employs existing EMET technology, see the
Mitigation threats by using Windows 10 security features.
See also
Configure and audit exploit protection mitigations
Troubleshoot exploit protection
Optimize ASR rule deployment and detections
Tip
Do you want to learn more? Engage with the Microsoft Security community in our
Tech Community: Microsoft Defender for Endpoint Tech Community .
Microsoft Defender SmartScreen
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10, ✅ Microsoft Edge
Checking downloaded files against a list of reported malicious software sites and
programs known to be unsafe. If it finds a match, Microsoft Defender SmartScreen
shows a warning to let the user know that the site might be malicious.
Checking downloaded files against a list of files that are well known and
downloaded frequently. If the file isn't on that list, Microsoft Defender SmartScreen
shows a warning, advising caution.
) Important
SmartScreen protects against malicious files from the internet. It does not protect
against malicious files on internal locations or network shares, such as shared
folders with UNC paths or SMB/CIFS shares.
For more information about Windows licensing, see Windows licensing overview.
When submitting a file for Microsoft Defender SmartScreen, make sure to select
Microsoft Defender SmartScreen from the product menu.
Related articles
SmartScreen frequently asked questions
Configuration service provider reference
Available Microsoft Defender SmartScreen Group
Policy and mobile device management (MDM) settings
Article • 08/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Microsoft Defender SmartScreen works with Intune, Group Policy, and mobile device management (MDM) settings to
help you manage your organization's computer settings. Based on how you set up Microsoft Defender SmartScreen, you
can show employees a warning page and let them continue to the site, or you can block the site entirely.
See Windows 10 and Windows 11 settings to protect devices using Intune for the controls you can use in Intune.
Windows 10, version 2004: Administrative Windows 10, version 1703: Administrative This policy setting turns on Microsoft
Templates\Windows Components\Windows Templates\Windows Defender SmartScreen.
Defender SmartScreen\Explorer\Configure Components\Windows Defender
Windows Defender SmartScreen SmartScreen\Explorer\Configure Windows If you enable this setting, it turns on
Defender SmartScreen Microsoft Defender SmartScreen and
your employees are unable to turn it
Windows 10, Version 1607 and earlier: off. Additionally, when enabling this
Administrative Templates\Windows feature, you must also pick whether
Components\File Explorer\Configure Microsoft Defender SmartScreen
Windows SmartScreen should Warn your employees or Warn
and prevent bypassing the message
At least Windows Server 2012, Windows (effectively blocking the employee
8 or Windows RT from the site).
Windows 10, version 2004: Administrative Windows 10, version 1703: Administrative This policy setting is intended to
Templates\Windows Components\Windows Templates\Windows prevent malicious content from
Defender SmartScreen\Explorer\Configure App Components\Windows Defender affecting your user's devices when
Install Control SmartScreen\Explorer\Configure App downloading executable content from
Install Control the internet.
Windows 10, version 2004: Administrative Microsoft Edge on Windows 10 or This policy setting turns on Microsoft
Templates\Windows Components\Windows Windows 11 Defender SmartScreen.
Defender SmartScreen\Microsoft
Edge\Configure Windows Defender If you enable this setting, it turns on
SmartScreen (Microsoft Edge version 45 and Microsoft Defender SmartScreen and
earlier) your employees are unable to turn it
off.
Setting Supported on Description
Administrative Templates\Microsoft
Edge\SmartScreen settings\Configure Microsoft If you disable this setting, it turns off
Defender SmartScreen (Microsoft Edge version Microsoft Defender SmartScreen and
77 or later) your employees are unable to turn it
on.
Windows 10, version 1703: Administrative
Templates\Windows Components\Windows If you don't configure this setting, your
Defender SmartScreen\Microsoft employees can decide whether to use
Edge\Configure Windows Defender Microsoft Defender SmartScreen.
SmartScreen (Microsoft Edge version 45 and
earlier)
Administrative Templates\Microsoft
Edge\SmartScreen settings\Configure Microsoft
Defender SmartScreen (Microsoft Edge version
77 or later)
Windows 10, version 2004: Administrative Microsoft Edge on Windows 10, version This policy setting stops employees
Templates\Windows Components\Windows 1511 or later from bypassing the Microsoft
Defender SmartScreen\Microsoft Edge\Prevent Defender SmartScreen warnings about
bypassing Windows Defender SmartScreen potentially malicious files.
prompts for files (Microsoft Edge version 45 and
earlier) If you enable this setting, it stops
employees from bypassing the
Administrative Templates\Microsoft warning, stopping the file download.
Edge\SmartScreen settings\Prevent bypassing
of Microsoft Defender SmartScreen warnings If you disable or don't configure this
about downloads (Microsoft Edge version 77 or setting, your employees can bypass
later) the warnings and continue to
download potentially malicious files.
Windows 10, version 1703: Administrative
Templates\Windows Components\Windows
Defender SmartScreen\Microsoft Edge\Prevent
bypassing Windows Defender SmartScreen
prompts for files (Microsoft Edge version 45 and
earlier)
Administrative Templates\Microsoft
Edge\SmartScreen settings\Prevent bypassing
of Microsoft Defender SmartScreen warnings
about downloads (Microsoft Edge version 77 or
later)
Windows 10, version 2004: Administrative Microsoft Edge on Windows 10, version This policy setting stops employees
Templates\Windows Components\Windows 1511 or later from bypassing the Microsoft
Defender SmartScreen\Microsoft Edge\Prevent Defender SmartScreen warnings about
bypassing Windows Defender SmartScreen potentially malicious sites.
prompts for sites (Microsoft Edge version 45
and earlier) If you enable this setting, it stops
employees from bypassing the
Administrative Templates\Microsoft warning, stopping them from going to
Edge\SmartScreen settings\Prevent bypassing the site.
Microsoft Defender SmartScreen prompts for
sites (Microsoft Edge version 77 or later) If you disable or don't configure this
Setting Supported on Description
Administrative Templates\Microsoft
Edge\SmartScreen settings\Prevent bypassing
Microsoft Defender SmartScreen prompts for
sites (Microsoft Edge version 77 or later)
Administrative Templates\Windows Internet Explorer 9 or later This policy setting prevents the
Components\Internet Explorer\Prevent employee from managing Microsoft
managing SmartScreen Filter Defender SmartScreen.
Administrative Templates\Windows Internet Explorer 8 or later This policy setting determines whether
Components\Internet Explorer\Prevent an employee can bypass warnings
bypassing SmartScreen Filter warnings from Microsoft Defender SmartScreen.
Administrative Templates\Windows Internet Explorer 9 or later This policy setting determines whether
Components\Internet Explorer\Prevent the employee can bypass warnings
bypassing SmartScreen Filter warnings about from Microsoft Defender SmartScreen.
files that aren't commonly downloaded from Microsoft Defender SmartScreen warns
the Internet the employee about executable files
that Internet Explorer users don't
commonly download from the
Internet.
MDM settings
If you manage your policies using Microsoft Intune, use these MDM policy settings. All settings support desktop
computers running Windows 10/11 Pro or Windows 10/11 Enterprise, enrolled with Microsoft Intune.
For Microsoft Defender SmartScreen Microsoft Edge MDM policies, see Policy CSP - Browser.
0 . Turns off Microsoft Defender SmartScreen in Windows for app and file
execution.
1. Turns on Microsoft Defender SmartScreen in Windows for app and file
execution.
To better help you protect your organization, we recommend turning on and using these specific Microsoft Defender
SmartScreen Group Policy and MDM settings.
Administrative Templates\Windows Components\Microsoft Enable. Stops employees from ignoring warning messages
Edge\Prevent bypassing Windows Defender SmartScreen prompts for and continuing to a potentially malicious website.
sites (Microsoft Edge version 45 and earlier)
Administrative Templates\Windows Components\Microsoft Enable. Stops employees from ignoring warning messages
Edge\Prevent bypassing Windows Defender SmartScreen prompts for and continuing to download potentially malicious files.
files (Microsoft Edge version 45 and earlier)
Administrative Templates\Windows Components\File Enable with the Warn and prevent bypass option. Stops
Explorer\Configure Windows Defender SmartScreen employees from ignoring warning messages about
malicious files downloaded from the Internet.
SmartScreen/PreventOverrideForFilesInShell 1. Stops employees from ignoring warning messages about malicious files
downloaded from the Internet.
Related articles
Available Group Policy and Mobile Device Management (MDM) settings for Microsoft Edge
Enhanced Phishing Protection in
Microsoft Defender SmartScreen
Article • 09/25/2023 • Applies to: ✅ Windows 11, version 22H2
If a user signs into Windows using a password, Enhanced Phishing Protection works
alongside Windows security protections, and helps protect typed work or school
password used to sign into Windows 11 in these ways:
If users type or paste their work or school password on any browser, into a site
deemed malicious by Microsoft Defender SmartScreen, Enhanced Phishing
Protection alerts them. It also alerts them to change their password so attackers
can't gain access to their account.
Reusing work or school passwords makes it easy for attackers who compromise a
user's password to gain access to their other accounts. Enhanced Phishing
Protection can warn users if they reuse their work or school Microsoft account
password on sites and apps and alert them to change their password.
Since it's unsafe to store plaintext passwords in text editors, Enhanced Phishing
Protection can warn users if they store their work or school password in Notepad,
Word, or any Microsoft 365 Office app, and recommends they delete their
password from the file.
If users type their work or school password into a website or app that SmartScreen
finds suspicious, Enhanced Phishing Protection can automatically collect
information from that website or app to help identify security threats. For example,
the content displayed, sounds played, and application memory.
7 Note
When a user signs-in to a device using a Windows Hello for Business PIN or
biometric, Enhanced Phishing Protection does not alert the user or send events to
Microsoft Defender for Endpoint.
Enhanced phishing protection with SmartScreen license entitlements are granted by the
following licenses:
For more information about Windows licensing, see Windows licensing overview.
Intune
To configure devices using Microsoft Intune, create a Settings catalog policy, and
use the settings listed under the category SmartScreen > Enhanced Phishing
Protection :
Setting Description
Notify This policy setting determines whether Enhanced Phishing Protection warns
Malicious your users if they type their work or school password into one of the following
malicious scenarios: into a reported phishing site, into a sign-in URL with an
invalid certificate, or into an application connecting to either a reported
phishing site or a sign-in URL with an invalid certificate
If you enable this policy setting, Enhanced Phishing Protection warns your
users if they type their work or school password into one of the malicious
scenarios described above and encourages them to change their password.
If you disable or don't configure this policy setting, Enhanced Phishing
Protection doesn't warn users if they type their work or school password into
one of the malicious scenarios described above.
Notify This policy setting determines whether Enhanced Phishing Protection warns
Password your users if they reuse their work or school password.
Reuse If you enable this policy setting, Enhanced Phishing Protection warns users
if they reuse their work, or school password and encourages them to change
it.
If you disable or don't configure this policy setting, Enhanced Phishing
Protection doesn't warn users if they reuse their work or school password.
Notify This policy setting determines whether Enhanced Phishing Protection warns
Unsafe App your users if they type their work or school passwords in Notepad or
Microsoft 365 Office Apps.
If you enable this policy setting, Enhanced Phishing Protection warns your
users if they store their password in Notepad or Microsoft 365 Office Apps.
If you disable or don't configure this policy setting, Enhanced Phishing
Protection doesn't warn users if they store their password in Notepad or
Microsoft 365 Office Apps.
Assign the policy to a security group that contains as members the devices or users
that you want to configure.
To better help you protect your organization, we recommend turning on and using
these specific Microsoft Defender SmartScreen settings.
Intune
Settings Recommendation
catalog
element
Notify Unsafe Enable: Turns on Enhanced Phishing Protection notifications when users
App type their work or school passwords in Notepad and Microsoft 365 Office
Apps.
Related articles
SmartScreen frequently asked questions
WebThreatDefense CSP
Threat protection
Microsoft Defender for Endpoint
documentation
Microsoft Defender for Endpoint delivers preventative protection, post-breach
detection, automated investigation, and response.
e OVERVIEW
h WHAT'S NEW
q VIDEO
Overview video
b GET STARTED
` DEPLOY
Deployment guide
c HOW-TO GUIDE
Migration guide
q VIDEO
Onboarding video
Security operations
e OVERVIEW
Advanced hunting
Threat analytics
e OVERVIEW
Reference
i REFERENCE
Partner integration
Security administration
e OVERVIEW
Next-generation protection
Windows application security
Article • 08/02/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Smart App Smart App Control prevents users from running malicious applications on
Control Windows devices by blocking untrusted or unsigned applications. Smart App
Control goes beyond previous built-in browser protections, by adding another
layer of security that is woven directly into the core of the OS at the process
level. Using AI, our new Smart App Control only allows processes to run that are
predicted to be safe based on existing and new intelligence processed daily.
Smart App Control builds on top of the same cloud-based AI used in Windows
Defender Application Control (WDAC) to predict the safety of an application, so
people can be confident they're using safe and reliable applications on their new
Windows 11 devices, or Windows 11 devices that have been reset.
AppLocker
Windows Your organization is only as secure as the applications that run on your devices.
Defender With application control, apps must earn trust to run, in contrast to an
Application application trust model where all code is assumed trustworthy. By helping
Control prevent unwanted or malicious code from running, application control is an
(WDAC) important part of an effective security strategy. Many organizations cite
application control as one of the most effective means for addressing the threat
of executable file-based malware.
User Account User Account Control (UAC) helps prevent malware from damaging a device.
Control (UAC) With UAC, apps and tasks always run in the security context of a non-
administrator account, unless an administrator authorizes administrator-level
Feature name Description
access to the system. UAC can block the automatic installation of unauthorized
apps and prevents inadvertent changes to system settings. Enabling UAC helps
to prevent malware from altering device settings and potentially gaining access
to networks and sensitive data. UAC can also block the automatic installation of
unauthorized apps and prevent inadvertent changes to system settings.
Microsoft The Windows kernel is the most privileged software and is therefore a
vulnerable compelling target for malware authors. Since Windows has strict requirements
driver for code running in the kernel, cybercriminals commonly exploit vulnerabilities
blocklist in kernel drivers to get access. Microsoft works with the ecosystem partners to
constantly identify and respond to potentially vulnerable kernel drivers.
Prior to Windows 11, version 22H2, the operating system enforced a block
policy when HVCI is enabled to prevent vulnerable versions of drivers from
running. Starting in Windows 11, version 22H2, the block policy is enabled by
default for all new Windows devices, and users can opt-in to enforce the policy
from the Windows Security app.
Application isolation
Feature name Description
Microsoft Defender Standalone mode allows Windows users to use hardware-isolated browsing
Application Guard sessions without any administrator or management policy configuration. In
(MDAG) for Edge this mode, user must manually start Microsoft Edge in Application Guard
standalone mode from Edge menu for browsing untrusted sites.
Microsoft Defender Microsoft Defender Application Guard protects users' desktop while they
Application Guard browse the Internet using Microsoft Edge browser. Application Guard in
(MDAG) for Edge enterprise mode automatically redirects untrusted website navigation in an
enterprise mode anonymous and isolated Hyper-V based container, which is separate from
and enterprise the host operating system. With Enterprise mode, you can define your
management corporate boundaries by explicitly adding trusted domains and can
customizing the Application Guard experience to meet and enforce your
organization needs on Windows devices.
Microsoft Defender Enable applications using them to be isolated Hyper-V based container,
Application Guard which is separate from the host operating system.
(MDAG) public
APIs
Microsoft Defender Application Guard protects Office files including Word, PowerPoint, and
Application Guard Excel. Application icons have a small shield if Application Guard has been
(MDAG) for enabled and they are under protection.
Microsoft Office
Feature name Description
App containers Universal Windows Platform (UWP) applications run in Windows containers
known as app containers. Processes that run in app containers operate with
low integrity level, meaning they have limited access to resources they
don't own. Because the default integrity level of most resources is medium
integrity level, the UWP app can access only a subset of the filesystem,
registry, and other resources. The app container also enforces restrictions
on network connectivity; for example, access to a local host isn't allowed.
As a result, malware or infected apps have limited footprint for escape.
7 Note
With thousands of new malicious files created every day, using traditional methods like
antivirus solutions-signature-based detection to fight against malware-provides an
inadequate defense against new attacks.
In most organizations, information is the most valuable asset, and ensuring that only
approved users have access to that information is imperative. However, when a user
runs a process, that process has the same level of access to data that the user has. As a
result, sensitive information could easily be deleted or transmitted out of the
organization if a user knowingly or unknowingly runs malicious software.
Application control can help mitigate these types of security threats by restricting the
applications that users are allowed to run and the code that runs in the System Core
(kernel). Application control policies can also block unsigned scripts and MSIs, and
restrict Windows PowerShell to run in Constrained Language Mode.
Application control is a crucial line of defense for protecting enterprises given today's
threat landscape, and it has an inherent advantage over traditional antivirus solutions.
Specifically, application control moves away from an application trust model where all
applications are assumed trustworthy to one where applications must earn trust in order
to run. Many organizations, like the Australian Signals Directorate, understand the
significance of application control and frequently cite application control as one of the
most effective means for addressing the threat of executable file-based malware (.exe,
.dll, etc.).
7 Note
Although application control can significantly harden your computers against
malicious code, we recommend that you continue to maintain an enterprise
antivirus solution for a well-rounded enterprise security portfolio.
Windows 10 and Windows 11 include two technologies that can be used for application
control depending on your organization's specific scenarios and requirements:
Smart App Control is only available on clean installation of Windows 11 version 22H2 or
later, and starts in evaluation mode. Smart App Control is automatically turned off for
enterprise managed devices unless the user has turned it on first. To turn off Smart App
Control across your organization's endpoints, you can set the
VerifiedAndReputablePolicyState (DWORD) registry value under
HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy as shown in the following table. After
you change the registry value, you must either restart the device or use CiTool.exe -r for
the change to take effect.
Value Description
0 Off
1 Enforce
2 Evaluation
) Important
Once you turn Smart App Control off, it can't be turned on without resetting or
reinstalling Windows.
Infdefaultinstall.exe
Microsoft.Build.dll
Microsoft.Build.Framework.dll
Wslhost.dll
Windows Defender Application Control (WDAC) license entitlements are granted by the
following licenses:
For more information about Windows licensing, see Windows licensing overview.
Related articles
WDAC design guide
WDAC deployment guide
WDAC operational guide
AppLocker overview
Application Control for Windows
Article • 08/30/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
7 Note
With thousands of new malicious files created every day, using traditional methods like
antivirus solutions-signature-based detection to fight against malware-provides an
inadequate defense against new attacks.
In most organizations, information is the most valuable asset, and ensuring that only
approved users have access to that information is imperative. However, when a user
runs a process, that process has the same level of access to data that the user has. As a
result, sensitive information could easily be deleted or transmitted out of the
organization if a user knowingly or unknowingly runs malicious software.
Application control can help mitigate these types of security threats by restricting the
applications that users are allowed to run and the code that runs in the System Core
(kernel). Application control policies can also block unsigned scripts and MSIs, and
restrict Windows PowerShell to run in Constrained Language Mode.
Application control is a crucial line of defense for protecting enterprises given today's
threat landscape, and it has an inherent advantage over traditional antivirus solutions.
Specifically, application control moves away from an application trust model where all
applications are assumed trustworthy to one where applications must earn trust in order
to run. Many organizations, like the Australian Signals Directorate, understand the
significance of application control and frequently cite application control as one of the
most effective means for addressing the threat of executable file-based malware (.exe,
.dll, etc.).
7 Note
Although application control can significantly harden your computers against
malicious code, we recommend that you continue to maintain an enterprise
antivirus solution for a well-rounded enterprise security portfolio.
Windows 10 and Windows 11 include two technologies that can be used for application
control depending on your organization's specific scenarios and requirements:
Smart App Control is only available on clean installation of Windows 11 version 22H2 or
later, and starts in evaluation mode. Smart App Control is automatically turned off for
enterprise managed devices unless the user has turned it on first. To turn off Smart App
Control across your organization's endpoints, you can set the
VerifiedAndReputablePolicyState (DWORD) registry value under
HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy as shown in the following table. After
you change the registry value, you must either restart the device or use CiTool.exe -r for
the change to take effect.
Value Description
0 Off
1 Enforce
2 Evaluation
) Important
Once you turn Smart App Control off, it can't be turned on without resetting or
reinstalling Windows.
Infdefaultinstall.exe
Microsoft.Build.dll
Microsoft.Build.Framework.dll
Wslhost.dll
Windows Defender Application Control (WDAC) license entitlements are granted by the
following licenses:
For more information about Windows licensing, see Windows licensing overview.
Related articles
WDAC design guide
WDAC deployment guide
WDAC operational guide
AppLocker overview
Windows Defender Application Control
and virtualization-based protection of
code integrity
Article • 07/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Applies to
Windows 10
Windows 11
Windows Server 2016 and higher
7 Note
WDAC policies and memory integrity are powerful protections that can be used
separately. However, when these two technologies are configured to work together,
they present a strong protection capability for Windows devices.
Using WDAC to restrict devices to only authorized apps has these advantages over other
solutions:
1. The Windows kernel handles enforcement of WDAC policy and requires no other
services or agents.
2. The WDAC policy takes effect early in the boot sequence before nearly all other OS
code and before traditional antivirus solutions run.
3. WDAC lets you set application control policy for any code that runs on Windows,
including kernel mode drivers and even code that runs as part of Windows.
4. Customers can protect the WDAC policy even from local administrator tampering
by digitally signing the policy. Changing signed policy requires both administrative
privilege and access to the organization's digital signing process. Using signed
policies makes it difficult for an attacker, including one who has managed to gain
administrative privilege, to tamper with WDAC policy.
5. You can protect the entire WDAC enforcement mechanism with memory integrity.
Even if a vulnerability exists in kernel mode code, memory integrity greatly reduces
the likelihood that an attacker could successfully exploit it. Without memory
integrity, an attacker who compromises the kernel could normally disable most
system defenses, including application control policies enforced by WDAC or any
other application control solution.
There are no direct dependencies between WDAC and memory integrity. You can deploy
them individually or together and there's no order in which they must be deployed.
Related articles
Windows Defender Application Control
Memory integrity
Driver compatibility with memory integrity
User Account Control overview
Article • 05/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
User Account Control (UAC) is a Windows security feature designed to protect the
operating system from unauthorized changes. When changes to the system require
administrator-level permission, UAC notifies the user, giving the opportunity to approve
or deny the change. UAC improves the security of Windows devices by limiting the
access that malicious code has to execute with administrator privileges. UAC empowers
users to make informed decisions about actions that may affect the stability and security
of their device.
Unless you disable UAC, malicious software is prevented from disabling or interfering
with UAC settings. UAC is enabled by default, and you can configure it if you have
administrative privileges.
Benefits of UAC
UAC allows all users to sign in their devices using a standard user account. Processes
launched using a standard user token may perform tasks using access rights granted to a
standard user. For instance, Windows Explorer automatically inherits standard user level
permissions. Any applications that are started using Windows Explorer (for example, by
opening a shortcut) also run with the standard set of user permissions. Most
applications, including the ones included with the operating system, are designed to
work properly this way.
Other applications, like ones that aren't designed with security settings in mind, may
require more permissions to run successfully. These applications are referred to as
legacy apps.
When a user tries to perform an action that requires administrative privileges, UAC
triggers a consent prompt. The prompt notifies the user that a change is about to occur,
asking for their permission to proceed:
If the user approves the change, the action is performed with the highest available
privilege
If the user doesn't approve the change, the action isn't performed and the
application that requested the change is prevented from running
When an app requires to run with more than standard user rights, UAC allows users to
run apps with their administrator token (that is, with administrative rights and
permissions) instead of their default, standard user token. Users continue to operate in
the standard user security context, while enabling certain apps to run with elevated
privileges, if needed.
User Account Control (UAC) license entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
Next steps
How User Account Control works
User Account Control settings and configuration
How User Account Control works
Article • 05/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
User Account Control (UAC) is a key part of Windows security. UAC reduces the risk of
malware by limiting the ability of malicious code to execute with administrator
privileges. This article describes how UAC works and how it interacts with the end-users.
Windows protects processes by marking their integrity levels. Integrity levels are
measurements of trust:
A high integrity application is one that performs tasks that modify system data,
such as a disk partitioning application
A low integrity application is one that performs tasks that could potentially
compromise the operating system, like as a Web brows
Applications with lower integrity levels can't modify data in applications with higher
integrity levels. When a standard user attempts to run an app that requires an
administrator access token, UAC requires that the user provides valid administrator
credentials.
To better understand how this process works, let's take a closer look at the Windows
sign in process.
Sign in process
The following diagram shows how the sign in process for an administrator differs from
the sign in process for a standard user.
By default, both standard and administrator users access resources and execute apps in
the security context of a standard user.
When a user signs in, the system creates an access token for that user. The access token
contains information about the level of access that the user is granted, including specific
security identifiers (SIDs) and Windows privileges.
When an administrator logs on, two separate access tokens are created for the user: a
standard user access token and an administrator access token. The standard user access
token:
Contains the same user-specific information as the administrator access token, but
the administrative Windows privileges and SIDs are removed
It's used to start applications that don't perform administrative tasks (standard user
apps)
It's used to display the desktop by executing the process explorer.exe. Explorer.exe
is the parent process from which all other user-initiated processes inherit their
access token. As a result, all apps run as a standard user unless a user provides
consent or credentials to approve an app to use a full administrative access token
A user that is a member of the Administrators group can sign in, browse the Web, and
read e-mail while using a standard user access token. When the administrator needs to
perform a task that requires the administrator access token, Windows automatically
prompts the user for approval. This prompt is called an elevation prompt, and its
behavior can be configured via policy or registry.
The default, built-in UAC elevation component for standard users is the credential
prompt.
The default, built-in UAC elevation component for an administrator account in Admin
Approval Mode is called the consent prompt.
Windows
Publisher verified (signed)
Publisher not verified (unsigned)
Shield icon
Some Control Panel items, such as Date and Time, contain a combination of
administrator and standard user operations. Standard users can view the clock and
change the time zone, but a full administrator access token is required to change the
local system time. The following is a screenshot of the Date and Time Control Panel
item.
The shield icon on the Change date and time... button indicates that the process
requires a full administrator access token.
7 Note
Starting in Windows Server 2019, it's not possible to paste the content of the
clipboard on the secure desktop. This is the same behavior of the currently
supported Windows client OS versions.
Malware can present an imitation of the secure desktop, but when the User Account
Control: Behavior of the elevation prompt for administrators in Admin Approval
Mode policy setting is set to Prompt for consent, the malware doesn't gain elevation if
the user selects Yes on the imitation. If the policy setting is set to Prompt for
credentials, malware imitating the credential prompt may be able to gather the
credentials from the user. However, the malware doesn't gain elevated privilege and the
system has other protections that mitigate malware from taking control of the user
interface even with a harvested password.
While malware could present an imitation of the secure desktop, this issue can't occur
unless a user previously installed the malware on the PC. Because processes requiring an
administrator access token can't silently install when UAC is enabled, the user must
explicitly provide consent by selecting Yes or by providing administrator credentials. The
specific behavior of the UAC elevation prompt is dependent upon security policies.
UAC Architecture
The following diagram details the UAC architecture.
To better understand each component, review the following tables:
User
Component Description
User performs If the operation changes the file system or registry, Virtualization is called.
operation requiring All other operations call ShellExecute.
privilege
CreateProcess If the application requires elevation, CreateProcess rejects the call with
ERROR_ELEVATION_REQUIRED.
System
Component Description
Application A system service that helps start apps that require one or more elevated
Information privileges or user rights to run, such as local administrative tasks, and apps that
service require higher integrity levels. The Application Information service helps start
such apps by creating a new process for the application with an administrative
user's full access token when elevation is required. Depending on the
configured policies, the user may give consent.
Elevating an If ActiveX isn't installed, the system checks the UAC slider level. If ActiveX is
ActiveX install installed, the User Account Control: Switch to the secure desktop when
prompting for elevation Group Policy setting is checked.
Check UAC UAC has a slider to select from four levels of notification.
slider level
Always notify will:
Notify you when programs try to install software or make changes to
your computer.
Notify you when you make changes to Windows settings.
Freeze other tasks until you respond.
Not recommended. Choose this only if it takes a long time to dim the
desktop on your computer.
Component Description
Secure desktop The User Account Control: Switch to the secure desktop when prompting for
enabled elevation policy setting is checked:
CreateProcess CreateProcess calls AppCompat, Fusion, and Installer detection to assess if the
app requires elevation. The file is then inspected to determine its requested
execution level, which is stored in the application manifest for the file.
CreateProcess fails if the requested execution level specified in the manifest
doesn't match the access token and returns an error
(ERROR_ELEVATION_REQUIRED) to ShellExecute.
AppCompat The AppCompat database stores information in the application compatibility fix
entries for an application.
Fusion The Fusion database stores information from application manifests that
describe the applications. The manifest schema is updated to add a new
requested execution level field.
Installer Installer detection detects setup files, which helps prevent installations from
detection being run without the user's knowledge and consent.
Kernel
Component Description
Virtualization Virtualization technology ensures that noncompliant apps don't silently fail to
run or fail in a way that the cause can't be determined. UAC also provides file
and registry virtualization and logging for applications that write to protected
areas.
File system and The per-user file and registry virtualization redirects per-computer registry and
registry file write requests to equivalent per-user locations. Read requests are
Component Description
The slider never turns off UAC completely. If you set it to Never notify, it will:
) Important
In order to fully disable UAC you must disable the policy User Account Control:
Run all administrators in Admin Approval Mode.
2 Warning
Some Universal Windows Platform apps may not work when UAC is disabled.
Virtualization
Because system administrators in enterprise environments attempt to secure systems,
many line-of-business (LOB) applications are designed to use only a standard user
access token. As a result, you don't need to replace most apps when UAC is turned on.
Windows includes file and registry virtualization technology for apps that aren't UAC-
compliant and that requires an administrator's access token to run correctly. When an
administrative app that isn't UAC-compliant attempts to write to a protected folder,
such as Program Files, UAC gives the app its own virtualized view of the resource it's
attempting to change. The virtualized copy is maintained in the user's profile. This
strategy creates a separate copy of the virtualized file for each user that runs the
noncompliant app.
Most app tasks operate properly by using virtualization features. Although virtualization
allows most applications to run, it's a short-term fix and not a long-term solution. App
developers should modify their apps to be compliant as soon as possible, rather than
relying on file, folder, and registry virtualization.
All UAC-compliant apps should have a requested execution level added to the
application manifest. If the application requires administrative access to the system,
marking the app with a requested execution level of require administrator ensures that
the system identifies this program as an administrative app, and performs the necessary
elevation steps. Requested execution levels specify the privileges required for an app.
Before a 32-bit process is created, the following attributes are checked to determine
whether it's an installer:
7 Note
The keywords and sequences of bytes were derived from common characteristics
observed from various installer technologies.
7 Note
The User Account Control: Detect application installations and prompt for elevation
policy must be enabled for installer detection to detect installation programs. For
more information, see User Account Control settings list.
Next steps
Learn more about User Account Control settings and configuration.
User Account Control settings and
configuration
Article • 07/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
Admin Approval Controls the behavior of Admin Approval Mode for the built-in
Mode for the Built- Administrator account.
in Administrator
account Enabled: The built-in Administrator account uses Admin Approval Mode. By
default, any operation that requires elevation of privilege prompts the user
to approve the operation.
Disabled (default): The built-in Administrator account runs all applications
with full administrative privilege.
Allow UIAccess Controls whether User Interface Accessibility (UIAccess or UIA) programs
applications to can automatically disable the secure desktop for elevation prompts used by
prompt for a standard user.
elevation without
using the secure Enabled: UIA programs, including Remote Assistance, automatically disable
desktop the secure desktop for elevation prompts. If you don't disable the Switch to
the secure desktop when prompting for elevation policy setting, the
prompts appear on the interactive user's desktop instead of the secure
desktop. This setting allows the remote administrator to provide the
appropriate credentials for elevation. This policy setting doesn't change the
behavior of the UAC elevation prompt for administrators. If you plan to
enable this policy setting, you should also review the effect of the Behavior
of the elevation prompt for standard users policy setting: if it's' configured
as Automatically deny elevation requests, elevation requests aren't
presented to the user.
Disabled (default): The secure desktop can be disabled only by the user of
the interactive desktop or by disabling the Switch to the secure desktop
when prompting for elevation policy setting.
Behavior of the Controls the behavior of the elevation prompt for administrators.
elevation prompt
for administrators Elevate without prompting: Allows privileged accounts to perform an
operation that requires elevation without requiring consent or credentials.
Setting name Description
in Admin Approval Use this option only in the most constrained environments.
Mode Prompt for credentials on the secure desktop: When an operation requires
elevation of privilege, the user is prompted on the secure desktop to enter a
privileged user name and password. If the user enters valid credentials, the
operation continues with the user's highest available privilege.
Prompt for consent on the secure desktop: When an operation requires
elevation of privilege, the user is prompted on the secure desktop to select
either Permit or Deny. If the user selects Permit, the operation continues
with the user's highest available privilege.
Prompt for credentials: When an operation requires elevation of privilege,
the user is prompted to enter an administrative user name and password. If
the user enters valid credentials, the operation continues with the
applicable privilege.
Prompt for consent: When an operation requires elevation of privilege, the
user is prompted to select either Permit or Deny. If the user selects Permit,
the operation continues with the user's highest available privilege.
Prompt for consent for non-Windows binaries (default): When an
operation for a non-Microsoft application requires elevation of privilege,
the user is prompted on the secure desktop to select either Permit or Deny.
If the user selects Permit, the operation continues with the user's highest
available privilege.
Behavior of the Controls the behavior of the elevation prompt for standard users.
elevation prompt
for standard users Prompt for credentials (default): When an operation requires elevation of
privilege, the user is prompted to enter an administrative user name and
password. If the user enters valid credentials, the operation continues with
the applicable privilege.
Automatically deny elevation requests: When an operation requires
elevation of privilege, a configurable access denied error message is
displayed. An enterprise that is running desktops as standard user may
choose this setting to reduce help desk calls.
Prompt for credentials on the secure desktop When an operation requires
elevation of privilege, the user is prompted on the secure desktop to enter a
different user name and password. If the user enters valid credentials, the
operation continues with the applicable privilege.
Detect application Controls the behavior of application installation detection for the computer.
installations and
prompt for Enabled (default): When an app installation package is detected that
elevation requires elevation of privilege, the user is prompted to enter an
administrative user name and password. If the user enters valid credentials,
the operation continues with the applicable privilege.
Disabled: App installation packages aren't detected and prompted for
elevation. Enterprises that are running standard user desktops and use
delegated installation technologies, such as Microsoft Intune, should disable
this policy setting. In this case, installer detection is unnecessary.
Setting name Description
Only elevate Enforces signature checks for any interactive applications that request
executables that elevation of privilege. IT admins can control which applications are allowed
are signed and to run by adding certificates to the Trusted Publishers certificate store on
validated local devices.
Only elevate Controls whether applications that request to run with a User Interface
UIAccess Accessibility (UIAccess) integrity level must reside in a secure location in the
applications that file system. Secure locations are limited to the following folders:
are installed in - %ProgramFiles% , including subfolders
secure locations - %SystemRoot%\system32\
- %ProgramFiles(x86)% , including subfolders
Switch to the This policy setting controls whether the elevation request prompt is
secure desktop displayed on the interactive user's desktop or the secure desktop.
when prompting
for elevation Enabled (default): All elevation requests go to the secure desktop
regardless of prompt behavior policy settings for administrators and
standard users.
Disabled: All elevation requests go to the interactive user's desktop. Prompt
behavior policy settings for administrators and standard users are used.
Virtualize File And Controls whether application write failures are redirected to defined registry
Registry Write and file system locations. This setting mitigates applications that run as
Setting name Description
Failures To Per User administrator and write run-time application data to %ProgramFiles% ,
Locations %Windir% , %Windir%\system32 , or HKLM\Software .
Enabled (default): App write failures are redirected at run time to defined
user locations for both the file system and registry.
Disabled: Apps that write data to protected locations fail.
Microsoft Intune/MDM
Group policy
Registry
The following instructions provide details how to configure your devices. Select the
option that best suits your needs.
Intune/MDM
Assign the policy to a security group that contains as members the devices or users
that you want to configure.
Alternatively, you can configure devices using a custom policy with the
LocalPoliciesSecurityOptions Policy CSP.
The policy settings are located under:
./Device/Vendor/MSFT/Policy/Config/LocalPoliciesSecurityOptions .
Setting
Setting name: Admin Approval Mode for the built-in Administrator account
Policy CSP name: UserAccountControl_UseAdminApprovalMode
Setting name: Allow UIAccess applications to prompt for elevation without using the secure
desktop
Policy CSP name: UserAccountControl_AllowUIAccessApplicationsToPromptForElevation
Setting name: Behavior of the elevation prompt for administrators in Admin Approval Mode
Policy CSP name: UserAccountControl_BehaviorOfTheElevationPromptForAdministrators
Setting name: Only elevate executables that are signed and validated
Policy CSP name:
UserAccountControl_OnlyElevateExecutableFilesThatAreSignedAndValidated
Setting name: Only elevate UIAccess applications that are installed in secure locations
Policy CSP name:
UserAccountControl_OnlyElevateUIAccessApplicationsThatAreInstalledInSecureLocations
Setting name: Switch to the secure desktop when prompting for elevation
Policy CSP name: UserAccountControl_SwitchToTheSecureDesktopWhenPromptingForElevation
Setting name: Virtualize file and registry write failures to per-user locations
Policy CSP name:
UserAccountControl_VirtualizeFileAndRegistryWriteFailuresToPerUserLocations
Microsoft recommended driver block
rules
Article • 08/16/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
7 Note
Microsoft has strict requirements for code running in kernel. So, malicious actors are
turning to exploit vulnerabilities in legitimate and signed kernel drivers to run malware
in kernel. One of the many strengths of the Windows platform is our strong
collaboration with independent hardware vendors (IHVs) and OEMs. Microsoft works
closely with our IHVs and security community to ensure the highest level of driver
security for our customers. When vulnerabilities in drivers are found, we work with our
partners to ensure they're quickly patched and rolled out to the ecosystem. The
vulnerable driver blocklist is designed to help harden systems against third party-
developed drivers across the Windows ecosystem with any of the following attributes:
Drivers can be submitted to Microsoft for security analysis at the Microsoft Security
Intelligence Driver Submission page . For more information about driver submission,
see Improve kernel security with the new Microsoft Vulnerable and Malicious Driver
Reporting Center . To report an issue or request a change to the vulnerable driver
blocklist, including updating a block rule once a driver vulnerability has been patched,
visit the Microsoft Security Intelligence portal or submit feedback on this article.
7 Note
Blocking drivers can cause devices or software to malfunction, and in rare cases,
lead to blue screen. The vulnerable driver blocklist is not guaranteed to block every
driver found to have vulnerabilities. Microsoft attempts to balance the security risks
from vulnerable drivers with the potential impact on compatibility and reliability to
produce the blocklist. As always, Microsoft recommends using an explicit allow list
approach to security wherever possible.
7 Note
Windows Security is updated separately from the OS and ships out of box.
The version with the vulnerable driver blocklist toggle is in the final validation
ring and will ship to all customers very soon. Initially, you will be able to view
the configuration state only and the toggle will appear grayed out. The ability
to turn the toggle on or off will come with a future Windows update.
For Windows Insiders, the option to turn Microsoft's vulnerable driver blocklist
on or off using Windows Security settings is grayed out when HVCI, Smart
App Control, or S mode is enabled. You must disable HVCI or Smart App
Control, or switch the device out of S mode, and restart the device before you
can turn off the Microsoft vulnerable driver blocklist.
The blocklist is updated with each new major release of Windows, typically 1-2 times per
year, including most recently with the Windows 11 2022 update released in September
2022. The most current blocklist is now also available for Windows 10 20H2 and
Windows 11 21H2 users as an optional update from Windows Update. Microsoft will
occasionally publish future updates through regular Windows servicing.
Customers who always want the most up-to-date driver blocklist can also use Windows
Defender Application Control (WDAC) to apply the latest recommended driver blocklist
contained in this article. For your convenience, we've provided a download of the most
up-to-date vulnerable driver blocklist along with instructions to apply it on your
computer at the end of this article. Otherwise, you can use the XML provided below to
create your own custom WDAC policies.
) Important
Microsoft also recommends enabling Attack Surface Reduction (ASR) rule Block
abuse of exploited vulnerable signed drivers to prevent an application from
writing a vulnerable signed driver to disk. The ASR rule doesn't block a driver
already existing on the system from loading, however enabling Microsoft
vulnerable driver blocklist or applying this WDAC policy will prevent the existing
driver from loading.
7 Note
If any vulnerable drivers are already running that would be blocked by the policy,
you must reboot your computer for those drivers to be blocked. Running processes
aren't shutdown when activating a new WDAC policy without reboot.
) Important
The policy listed below contains Allow All rules. If your version of Windows
supports WDAC multiple policies, we recommend deploying this policy alongside
any existing WDAC policies. If you do plan to merge this policy with another policy,
you may need to remove the Allow All rules before merging it if the other policy
applies an explicit allow list. For more information, see Create a WDAC Deny Policy.
7 Note
To use this policy with Windows Server 2016, you must convert the policy XML on a
device running a newer operating system.
XML
</FileRules>
<!--Signers-->
<Signers>
<Signer ID="ID_SIGNER_VERISIGN_2010" Name="VeriSign Class 3 Code Signing
2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<FileAttribRef RuleID="ID_FILEATTRIB_AMDPP" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSP" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASR_AUTOCHECK_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASR_AUTOCHECK_2" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSNX" />
<FileAttribRef RuleID="ID_FILEATTRIB_ATSZIO" />
<FileAttribRef RuleID="ID_FILEATTRIB_CPUZ_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_DRIVER7" />
<FileAttribRef RuleID="ID_FILEATTRIB_ETDSUPPORT" />
<FileAttribRef RuleID="ID_FILEATTRIB_IOMEM" />
<FileAttribRef RuleID="ID_FILEATTRIB_IQVW64" />
<FileAttribRef RuleID="ID_FILEATTRIB_KEVP64" />
<FileAttribRef RuleID="ID_FILEATTRIB_LHA" />
<FileAttribRef RuleID="ID_FILEATTRIB_MONITOR" />
<FileAttribRef RuleID="ID_FILEATTRIB_MTCBSV64" />
<FileAttribRef RuleID="ID_FILEATTRIB_TREND_MICRO" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO64_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RWDRV_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RZPNK" />
<FileAttribRef RuleID="ID_FILEATTRIB_ZEMANA_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_ZEMANA_2" />
<FileAttribRef RuleID="ID_FILEATTRIB_ZEMANA_3" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_2010_2" Name="VeriSign Class 3 Code
Signing 2010 CA">
<CertRoot Type="TBS" Value="4678C6E4A8787A8E6ED2BCE8792B122F6C08AFD8"
/>
<FileAttribRef RuleID="ID_FILEATTRIB_TREND_MICRO" />
</Signer>
<Signer ID="ID_SIGNER_CAPCOM" Name="Symantec Class 3 SHA256 Code Signing
CA">
<CertRoot Type="TBS"
Value="A08E79C386083D875014C409C13D144E0A24386132980DF11FF59737C8489EB1" />
<CertPublisher Value="CAPCOM Co.,Ltd." />
</Signer>
<Signer ID="ID_SIGNER_CHEAT_ENGINE" Name="Microsoft Windows Third Party
Component CA 2014 Cheat Engine OPUS">
<CertRoot Type="TBS"
Value="D8BE9E4D9074088EF818BC6F6FB64955E90378B2754155126FEEBBBD969CF0AE" />
<CertOemID Value="Cheat Engine"/>
</Signer>
<Signer ID="ID_SIGNER_ENE" Name="Microsoft Windows Third Party Component
CA 2014 ENE Tech OPUS">
<CertRoot Type="TBS"
Value="D8BE9E4D9074088EF818BC6F6FB64955E90378B2754155126FEEBBBD969CF0AE" />
<CertOemID Value="ENE Technology Inc." />
</Signer>
<Signer ID="ID_SIGNER_MB_RB_HACKS" Name="Microsoft Windows Third Party
Component CA 2014 MB Rb online OPUS">
<CertRoot Type="TBS"
Value="D8BE9E4D9074088EF818BC6F6FB64955E90378B2754155126FEEBBBD969CF0AE" />
<CertOemID Value="MB Rb online" />
</Signer>
<Signer ID="ID_SIGNER_MAN_MUS" Name="Microsoft Windows Third Party
Component CA 2014 MANUEL OPUS">
<CertRoot Type="TBS"
Value="D8BE9E4D9074088EF818BC6F6FB64955E90378B2754155126FEEBBBD969CF0AE" />
<CertOemID Value="DIGITAL SERVICES OF MANUEL MUSARELLA" />
</Signer>
<Signer ID="ID_SIGNER_DIGICERT_EV" Name="DigiCert EV Code Signing CA
(SHA2)">
<CertRoot Type="TBS"
Value="EEC58131DC11CD7F512501B15FDBC6074C603B68CA91F7162D5A042054EDB0CF" />
<FileAttribRef RuleID="ID_FILEATTRIB_CPUZ_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_EIO64" />
<FileAttribRef RuleID="ID_FILEATTRIB_PCDOC" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO64_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIOW10X64_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIOW8X64_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_ELBY" Name="GlobalSign Primary Object Publishing
CA">
<CertRoot Type="TBS" Value="041750993D7C9E063F02DFE74699598640911AAB"
/>
<CertPublisher Value="Elaborate Bytes AG" />
<FileAttribRef RuleID="ID_FILEATTRIB_ELBY_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_2009" Name="VeriSign Class 3 Code Signing
2009-2 CA">
<CertRoot Type="TBS" Value="4CDC38C800761463749C3CBD94A12F32E49877BF"
/>
<FileAttribRef RuleID="ID_FILEATTRIB_ATSZIO" />
<FileAttribRef RuleID="ID_FILEATTRIB_DRIVER7" />
<FileAttribRef RuleID="ID_FILEATTRIB_IQVW64" />
<FileAttribRef RuleID="ID_FILEATTRIB_LIBNICM_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_NICM_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_NSCM_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_TREND_MICRO" />
<FileAttribRef RuleID="ID_FILEATTRIB_NCHGBIOS2X64" />
<FileAttribRef RuleID="ID_FILEATTRIB_NCPL_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_ZEMANA_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_ZEMANA_2" />
<FileAttribRef RuleID="ID_FILEATTRIB_ZEMANA_3" />
</Signer>
<Signer ID="ID_SIGNER_SANDRA" Name="GeoTrust TrustCenter CodeSigning CA
I">
<CertRoot Type="TBS" Value="172F39BCA3DDA7C6D5169C96B34A5FE7E96FF0BD"
/>
<CertPublisher Value="SiSoftware Ltd" />
<FileAttribRef RuleID="ID_FILEATTRIB_SANDRA" />
<FileAttribRef RuleID="ID_FILEATTRIB_SANDRA_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_SANDRA_THAWTE" Name="Thawte Code Signing CA">
<CertRoot Type="TBS" Value="F6297A00D3B2B4CE4750402B66E7EA018D54F683"
/>
<CertPublisher Value="SiSoftware Ltd" />
<FileAttribRef RuleID="ID_FILEATTRIB_SANDRA" />
<FileAttribRef RuleID="ID_FILEATTRIB_SANDRA_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_MIMIKATZ_KERNEL" Name="GlobalSign CodeSigning CA -
G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="Benjamin Delpy" />
</Signer>
<Signer ID="ID_SIGNER_MIMIKATZ_KERNEL_SHA2" Name="GlobalSign CodeSigning
CA - G2">
<CertRoot Type="TBS"
Value="F6CAE0B028995EB13B1C2CCE5B5107384AB7C77279AE5560933E345061D99CC0" />
<CertPublisher Value="Benjamin Delpy" />
</Signer>
<Signer ID="ID_SIGNER_MIMIKATZ_USER" Name="Certum Code Signing CA SHA2">
<CertRoot Type="TBS"
Value="F7B6EEB3A567223000A61F68C53B458193557C17E5D512D2825BCB13E5FC9BE5" />
<CertPublisher Value="Open Source Developer, Benjamin Delpy" />
</Signer>
<Signer ID="ID_SIGNER_SPEEDFAN" Name="VeriSign Class 3 Code Signing 2004
CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="Sokno S.R.L." />
</Signer>
<Signer ID="ID_SIGNER_RWEVERY" Name="GlobalSign CodeSigning CA - G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="ChongKim Chan" />
</Signer>
<Signer ID="ID_SIGNER_VBOX" Name="GlobalSign Primary Object Publishing
CA">
<CertRoot Type="TBS" Value="041750993D7C9E063F02DFE74699598640911AAB"
/>
<CertPublisher Value="innotek GmbH" />
</Signer>
<Signer ID="ID_SIGNER_REALTEK" Name="DigiCert EV Code Signing CA">
<CertRoot Type="TBS" Value="2D54C16A8F8B69CCDEA48D0603C132F547A5CF75"
/>
<CertPublisher Value="Realtek Semiconductor Corp." />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO64_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIOW10X64_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIOW8X64_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_2009_REALTEK" Name="VeriSign Class 3 Code
Signing 2009-2 CA">
<CertRoot Type="TBS" Value="4CDC38C800761463749C3CBD94A12F32E49877BF"
/>
<CertPublisher Value="Realtek Semiconductor Corp." />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO64_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_WINDOWS_3RD_PARTY_2012" Name="Microsoft Windows
Third Party Component CA 2012">
<CertRoot Type="TBS"
Value="CEC1AFD0E310C55C1DCC601AB8E172917706AA32FB5EAF826813547FDF02DD46" />
<CertPublisher Value="Microsoft Windows Hardware Compatibility
Publisher" />
<FileAttribRef RuleID="ID_FILEATTRIB_AMD_RYZEN" />
<FileAttribRef RuleID="ID_FILEATTRIB_AMDPP" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSNX" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSP" />
<FileAttribRef RuleID="ID_FILEATTRIB_ETDSUPPORT" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWRWDRV" />
<FileAttribRef RuleID="ID_FILEATTRIB_IQVW64" />
<FileAttribRef RuleID="ID_FILEATTRIB_TREND_MICRO" />
<FileAttribRef RuleID="ID_FILEATTRIB_HPPORTIOX64" />
<FileAttribRef RuleID="ID_FILEATTRIB_LV_DIAG" />
<FileAttribRef RuleID="ID_FILEATTRIB_MTCBSV64" />
<FileAttribRef RuleID="ID_FILEATTRIB_PCDOC" />
<FileAttribRef RuleID="ID_FILEATTRIB_PROCEXP" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO64_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_WINRING0" />
</Signer>
<Signer ID="ID_SIGNER_WINDOWS_3RD_PARTY_2014" Name="Microsoft Windows
Third Party Component CA 2014">
<CertRoot Type="TBS"
Value="D8BE9E4D9074088EF818BC6F6FB64955E90378B2754155126FEEBBBD969CF0AE" />
<CertPublisher Value="Microsoft Windows Hardware Compatibility
Publisher" />
<FileAttribRef RuleID="ID_FILEATTRIB_ALSYSIO" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSNX" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_HWMIO64" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_MEM" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_RCIO" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_RCIO_W10" />
<FileAttribRef RuleID="ID_FILEATTRIB_CORSAIRLLACCESS" />
<FileAttribRef RuleID="ID_FILEATTRIB_CPUZ_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_CTIIO" />
<FileAttribRef RuleID="ID_FILEATTRIB_HAXM" />
<FileAttribRef RuleID="ID_FILEATTRIB_HW" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_2" />
<FileAttribRef RuleID="ID_FILEATTRIB_IOBITUNLOCKER" />
<FileAttribRef RuleID="ID_FILEATTRIB_LHA" />
<FileAttribRef RuleID="ID_FILEATTRIB_LIBNICM_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_MSIO" />
<FileAttribRef RuleID="ID_FILEATTRIB_MYDRIVERS" />
<FileAttribRef RuleID="ID_FILEATTRIB_NICM_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_NSCM_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_NVFLASH" />
<FileAttribRef RuleID="ID_FILEATTRIB_PCDOC" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIO_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RTKIOW10X64_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_RZPNK" />
<FileAttribRef RuleID="ID_FILEATTRIB_SYSDRV3S" />
<FileAttribRef RuleID="ID_FILEATTRIB_VIRAGT" />
<FileAttribRef RuleID="ID_FILEATTRIB_VIRAGT64" />
<FileAttribRef RuleID="ID_FILEATTRIB_VMDRV" />
<FileAttribRef RuleID="ID_FILEATTRIB_WISEUNLO" />
</Signer>
<Signer ID="ID_SIGNER_WINDOWS_3RD_PARTY_2010" Name="Microsoft Third Party
Component Windows PCA 2010">
<CertRoot Type="TBS"
Value="90C9669670E75989159E6EEF69625EB6AD17CBA6209ED56F5665D55450A05212" />
<CertPublisher Value="Microsoft Windows Hardware Compatibility
Publisher" />
<FileAttribRef RuleID="ID_FILEATTRIB_HPPORTIOX64" />
<FileAttribRef RuleID="ID_FILEATTRIB_WINRING0" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_2004" Name="VeriSign Class 3 Code Signing
2004 CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<FileAttribRef RuleID="ID_FILEATTRIB_ALSYSIO" />
<FileAttribRef RuleID="ID_FILEATTRIB_CPUZ_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_IQVW64" />
<FileAttribRef RuleID="ID_FILEATTRIB_MTCBSV64" />
<FileAttribRef RuleID="ID_FILEATTRIB_PCDOC" />
<FileAttribRef RuleID="ID_FILEATTRIB_ZEMANA_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_ZEMANA_2" />
<FileAttribRef RuleID="ID_FILEATTRIB_ZEMANA_3" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_2004_BIOSTAR" Name="VeriSign Class 3 Code
Signing 2004 CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="BIOSTAR MICROTECH INT'L CORP" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_I2CIO" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_MEM" />
<FileAttribRef RuleID="ID_FILEATTRIB_BSMI" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_2004_ASUS_BS_DEF" Name="VeriSign Class
3 Code Signing 2004 CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="ASUSTeK Computer Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_DEF" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_DEF_64" />
<FileAttribRef RuleID="ID_FILEATTRIB_WCPU" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_2009_BIOSTAR" Name="VeriSign Class 3 Code
Signing 2009-2 CA">
<CertRoot Type="TBS" Value="4CDC38C800761463749C3CBD94A12F32E49877BF"
/>
<CertPublisher Value="BIOSTAR MICROTECH INT'L CORP" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_MEM" />
<FileAttribRef RuleID="ID_FILEATTRIB_BSMI" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_I2CIO" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_2010_BIOSTAR" Name="VeriSign Class 3 Code
Signing 2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="BIOSTAR MICROTECH INT'L CORP" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_I2CIO" />
<FileAttribRef RuleID="ID_FILEATTRIB_BS_MEM" />
<FileAttribRef RuleID="ID_FILEATTRIB_BSMI" />
</Signer>
<Signer ID="ID_SIGNER_GLOBALSIGN_G2_MICROSTAR" Name="GlobalSign
CodeSigning CA - G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="MICRO-STAR INTERNATIONAL CO., LTD." />
<FileAttribRef RuleID="ID_FILEATTRIB_NTIOLIB" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_TOSHIBA" Name="VeriSign Class 3 Code
Signing 2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="TOSHIBA CORPORATION" />
<FileAttribRef RuleID="ID_FILEATTRIB_NCHGBIOS2X64" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_NOVELL" Name="VeriSign Class 3 Code
Signing 2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Novell, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_LIBNICM_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_NICM_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_NSCM_DRIVER" />
<FileAttribRef RuleID="ID_FILEATTRIB_NCPL_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_GLOBALSIGN_MICROSTAR" Name="GlobalSign Primary
Object Publishing CA">
<CertRoot Type="TBS" Value="041750993D7C9E063F02DFE74699598640911AAB"
/>
<CertPublisher Value="Micro-Star Int'l Co. Ltd." />
<FileAttribRef RuleID="ID_FILEATTRIB_NTIOLIB" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_INSYDE" Name="VeriSign Class 3 Code
Signing 2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Insyde Software Corp." />
<FileAttribRef RuleID="ID_FILEATTRIB_SEGWINDRVX64" />
</Signer>
<Signer ID="ID_SIGNER_SYMANTEC_CLASS_3" Name="Symantec Class 3 SHA256
Code Signing CA">
<CertRoot Type="TBS"
Value="A08E79C386083D875014C409C13D144E0A24386132980DF11FF59737C8489EB1" />
<FileAttribRef RuleID="ID_FILEATTRIB_AMD_RYZEN" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSP" />
<FileAttribRef RuleID="ID_FILEATTRIB_AMDPP" />
<FileAttribRef RuleID="ID_FILEATTRIB_LGCORETEMP" />
<FileAttribRef RuleID="ID_FILEATTRIB_RZPNK" />
<FileAttribRef RuleID="ID_FILEATTRIB_TREND_MICRO" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_AMD" Name="VeriSign Class 3 Code Signing
2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Advanced Micro Devices, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_AMD_RYZEN" />
</Signer>
<Signer ID="ID_SIGNER_VERISIGN_TG_SOFT" Name="VeriSign Class 3 Code
Signing 2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="TG Soft S.a.s. Di Tonello Gianfranco e C." />
<FileAttribRef RuleID="ID_FILEATTRIB_VIRAGT" />
<FileAttribRef RuleID="ID_FILEATTRIB_VIRAGT64" />
</Signer>
<Signer ID="ID_SIGNER_GLOBALSIGN_TG_SOFT" Name="GlobalSign CodeSigning
CA - G3">
<CertRoot Type="TBS" Value="F478F0E790D5C8EC6056A3AB2567404A991D2837"
/>
<CertPublisher Value="TG Soft di Tonello Gianfranco ed Enrico S.r.l."
/>
<FileAttribRef RuleID="ID_FILEATTRIB_VIRAGT" />
<FileAttribRef RuleID="ID_FILEATTRIB_VIRAGT64" />
</Signer>
<Signer ID="ID_SIGNER_HP" Name="DigiCert SHA2 Assured ID Code Signing
CA">
<CertRoot Type="TBS"
Value="E767799478F64A34B3F53FF3BB9057FE1768F4AB178041B0DCC0FF1E210CBA65" />
<CertPublisher Value="HP Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_HPPORTIOX64" />
<FileAttribRef RuleID="ID_FILEATTRIB_WINRING0" />
</Signer>
<Signer ID="ID_SIGNER_GETAC" Name="Symantec Class 3 Extended Validation
Code Signing CA - G2">
<CertRoot Type="TBS"
Value="B3C925B4048C3F7C444D248A2B101186B57CBA39596EB5DCE0E17A4EE4B32F19" />
<CertPublisher Value="Getac Technology Corp." />
<FileAttribRef RuleID="ID_FILEATTRIB_MTCBSV64" />
</Signer>
<Signer ID="ID_SIGNER_GLOBALSIGN_CHEAT_ENGINE" Name="GlobalSign CA Cheat
Engine Publisher">
<CertRoot Type="TBS"
Value="BD1765C56594221373893EF26D97F88C144FB0E5A0111215B45D7239C3444DF7" />
<CertPublisher Value="Cheat Engine" />
</Signer>
<Signer ID="ID_SIGNER_GLOBALSIGN_G2_CHEAT_ENGINE" Name="GlobalSign
CodeSigning CA - G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="Cheat Engine" />
</Signer>
<Signer ID="ID_SIGNER_PHYSMEM" Name="GlobalSign CodeSigning CA - G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="Hilscher Gesellschaft fuer Systemautomation mbH"
/>
<FileAttribRef RuleID="ID_FILEATTRIB_PHYSMEM" />
</Signer>
<Signer ID="ID_SIGNER_VMDRV" Name="DigiCert EV Code Signing CA (SHA2)">
<CertRoot Type="TBS"
Value="EEC58131DC11CD7F512501B15FDBC6074C603B68CA91F7162D5A042054EDB0CF" />
<CertPublisher Value="Voicemod Sociedad Limitada" />
<FileAttribRef RuleID="ID_FILEATTRIB_VMDRV" />
</Signer>
<Signer ID="ID_SIGNER_INTEL_IQVW" Name="Intel External Basic Policy CA">
<CertRoot Type="TBS" Value="53B052BA209C525233293274854B264BC0F68B73"
/>
<FileAttribRef RuleID="ID_FILEATTRIB_IQVW64" />
</Signer>
<Signer ID="ID_SIGNER_COMODO_IQVW" Name="COMODO RSA Certification
Authority">
<CertRoot Type="TBS"
Value="7CE102D63C57CB48F80A65D1A5E9B350A7A618482AA5A36775323CA933DDFCB00DEF8
3796A6340DEC5EBF7596CFD8E5D" />
<FileAttribRef RuleID="ID_FILEATTRIB_IQVW64" />
</Signer>
<Signer ID="ID_SIGNER_AMDPP" Name="USERTrust RSA Certification
Authority">
<CertRoot Type="TBS"
Value="13BAA039635F1C5292A8C2F36AAE7E1D25C025202E9092F5B0F53F5F752DFA9C71B3D
1B8D9A6358FCEE6EC75622FABF9" />
<CertPublisher Value="Advanced Micro Devices Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_AMDPP" />
</Signer>
<Signer ID="ID_SIGNER_AGNITUM_2004" Name="VeriSign Class 3 Code Signing
2004 CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="Agnitum Ltd." />
<FileAttribRef RuleID="ID_FILEATTRIB_SANDBOX" />
</Signer>
<Signer ID="ID_SIGNER_AGNITUM_2009" Name="VeriSign Class 3 Code Signing
2009-2 CA">
<CertRoot Type="TBS" Value="4CDC38C800761463749C3CBD94A12F32E49877BF"
/>
<CertPublisher Value="Agnitum Ltd." />
<FileAttribRef RuleID="ID_FILEATTRIB_SANDBOX" />
</Signer>
<Signer ID="ID_SIGNER_AGNITUM_2010" Name="VeriSign Class 3 Code Signing
2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Agnitum Ltd." />
<FileAttribRef RuleID="ID_FILEATTRIB_SANDBOX" />
</Signer>
<Signer ID="ID_SIGNER_AGNITUM_2010_1" Name="VeriSign Class 3 Code
Signing 2010 CA">
<CertRoot Type="TBS" Value="4678C6E4A8787A8E6ED2BCE8792B122F6C08AFD8"
/>
<CertPublisher Value="Agnitum Ltd." />
<FileAttribRef RuleID="ID_FILEATTRIB_SANDBOX" />
</Signer>
<Signer ID="ID_SIGNER_PHYMEM" Name="VeriSign Class 3 Code Signing 2010
CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Super Micro Computer, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_PHYMEM" />
<FileAttribRef RuleID="ID_FILEATTRIB_SUPERBMC" />
</Signer>
<Signer ID="ID_SIGNER_PHYMEM_1" Name="Symantec Class 3 SHA256 Code
Signing CA">
<CertRoot Type="TBS"
Value="A08E79C386083D875014C409C13D144E0A24386132980DF11FF59737C8489EB1" />
<CertPublisher Value="Super Micro Computer, Inc. Taiwan" />
<FileAttribRef RuleID="ID_FILEATTRIB_PHYMEM" />
</Signer>
<Signer ID="ID_SIGNER_PHYMEM_2" Name="Symantec Class 3 SHA256 Code
Signing CA">
<CertRoot Type="TBS"
Value="A08E79C386083D875014C409C13D144E0A24386132980DF11FF59737C8489EB1" />
<CertPublisher Value="Super Micro Computer, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_PHYMEM" />
<FileAttribRef RuleID="ID_FILEATTRIB_SUPERBMC" />
</Signer>
<Signer ID="ID_SIGNER_NVFLASH" Name="VeriSign Class 3 Code Signing 2010
CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="NVIDIA Corporation" />
<FileAttribRef RuleID="ID_FILEATTRIB_NVFLASH" />
</Signer>
<Signer ID="ID_SIGNER_NVFLASH_2" Name="Symantec Class 3 SHA256 Code
Signing CA - G2">
<CertRoot Type="TBS"
Value="7F25CBD37DCDC0E0D93E0D477C4BC0C54231379E6CAF1023841E1F0D96467A6C" />
<CertPublisher Value="NVIDIA Corporation" />
<FileAttribRef RuleID="ID_FILEATTRIB_NVFLASH" />
</Signer>
<Signer ID="ID_SIGNER_NVFLASH_3" Name="Symantec Class 3 SHA256 Code
Signing CA">
<CertRoot Type="TBS"
Value="A08E79C386083D875014C409C13D144E0A24386132980DF11FF59737C8489EB1" />
<CertPublisher Value="NVIDIA Corporation" />
<FileAttribRef RuleID="ID_FILEATTRIB_NVFLASH" />
</Signer>
<Signer ID="ID_SIGNER_LV_LOGITECH" Name="VeriSign Class 3 Code Signing
2004 CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="Logitech Inc" />
<FileAttribRef RuleID="ID_FILEATTRIB_LV561V64" />
</Signer>
<Signer ID="ID_SIGNER_WISEUNLO" Name="DigiCert EV Code Signing CA">
<CertRoot Type="TBS" Value="2D54C16A8F8B69CCDEA48D0603C132F547A5CF75"
/>
<CertPublisher Value="Beijing Lang Xingda Network Technology Co., Ltd"
/>
<FileAttribRef RuleID="ID_FILEATTRIB_WISEUNLO" />
</Signer>
<Signer ID="ID_SIGNER_WISEUNLO_1" Name="DigiCert EV Code Signing CA
(SHA2)">
<CertRoot Type="TBS"
Value="EEC58131DC11CD7F512501B15FDBC6074C603B68CA91F7162D5A042054EDB0CF" />
<CertPublisher Value="Beijing Lang Xingda Network Technology Co., Ltd"
/>
<FileAttribRef RuleID="ID_FILEATTRIB_WISEUNLO" />
</Signer>
<Signer ID="ID_SIGNER_WISEUNLO_2" Name="VeriSign Class 3 Code Signing
2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Lespeed Technology Ltd." />
<FileAttribRef RuleID="ID_FILEATTRIB_WISEUNLO" />
</Signer>
<Signer ID="ID_SIGNER_LV_DIAG" Name="DigiCert SHA2 Assured ID Code
Signing CA">
<CertRoot Type="TBS"
Value="E767799478F64A34B3F53FF3BB9057FE1768F4AB178041B0DCC0FF1E210CBA65" />
<CertPublisher Value="Lenovo" />
<FileAttribRef RuleID="ID_FILEATTRIB_LV_DIAG" />
</Signer>
<Signer ID="ID_SIGNER_LV_DIAG_2" Name="DigiCert Trusted G4 Code Signing
RSA4096 SHA384 2021 CA1">
<CertRoot Type="TBS"
Value="65B1D4076A89AE273F57E6EEEDECB3EAE129B4168F76FA7671914CDF461D542255C59
D9B85B916AE0CA6FC0FCF7A8E64" />
<CertPublisher Value="Lenovo" />
<FileAttribRef RuleID="ID_FILEATTRIB_LV_DIAG" />
</Signer>
<Signer ID="ID_SIGNER_IOBITUNLOCKER_1" Name="DigiCert EV Code Signing
CA">
<CertRoot Type="TBS" Value="2D54C16A8F8B69CCDEA48D0603C132F547A5CF75"
/>
<CertPublisher Value="IObit CO., LTD" />
<FileAttribRef RuleID="ID_FILEATTRIB_IOBITUNLOCKER" />
<FileAttribRef RuleID="ID_FILEATTRIB_MONITOR" />
</Signer>
<Signer ID="ID_SIGNER_IOBITUNLOCKER_2" Name="VeriSign Class 3 Code
Signing 2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="IObit Information Technology" />
<FileAttribRef RuleID="ID_FILEATTRIB_IOBITUNLOCKER" />
<FileAttribRef RuleID="ID_FILEATTRIB_MONITOR" />
</Signer>
<Signer ID="ID_SIGNER_IOBITUNLOCKER_3" Name="DigiCert EV Code Signing CA
(SHA2)">
<CertRoot Type="TBS"
Value="EEC58131DC11CD7F512501B15FDBC6074C603B68CA91F7162D5A042054EDB0CF" />
<CertPublisher Value="IObit CO., LTD" />
<FileAttribRef RuleID="ID_FILEATTRIB_IOBITUNLOCKER" />
<FileAttribRef RuleID="ID_FILEATTRIB_MONITOR" />
</Signer>
<Signer ID="ID_SIGNER_IOBITUNLOCKER_4" Name="Symantec Class 3 SHA256
Code Signing CA">
<CertRoot Type="TBS"
Value="A08E79C386083D875014C409C13D144E0A24386132980DF11FF59737C8489EB1" />
<CertPublisher Value="IObit Information Technology" />
<FileAttribRef RuleID="ID_FILEATTRIB_IOBITUNLOCKER" />
<FileAttribRef RuleID="ID_FILEATTRIB_MONITOR" />
</Signer>
<Signer ID="ID_SIGNER_ATILLK" Name="VeriSign Class 3 Code Signing 2004
CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="ATI Technologies, Inc" />
<FileAttribRef RuleID="ID_FILEATTRIB_ATILLK" />
</Signer>
<Signer ID="ID_SIGNER_HW_A" Name="GlobalSign">
<CertRoot Type="TBS"
Value="DE1DA11668F0A8D5E13346ED3AB2755F5D25BEBFFCFD1D0BDE5B9F87BC292C91" />
<CertPublisher Value="Marvin Test Solutions, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_HW" />
</Signer>
<Signer ID="ID_SIGNER_HW_B" Name="GlobalSign CodeSigning CA - G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="Marvin Test Solutions, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_HW" />
</Signer>
<Signer ID="ID_SIGNER_HW_C" Name="GlobalSign">
<CertRoot Type="TBS"
Value="BD1765C56594221373893EF26D97F88C144FB0E5A0111215B45D7239C3444DF7" />
<CertPublisher Value="Marvin Test Solutions, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_HW" />
</Signer>
<Signer ID="ID_SIGNER_HW_D" Name="GlobalSign Primary Object Publishing
CA">
<CertRoot Type="TBS" Value="879269F3F467A6D59641960A62FE9CB419355FF6"
/>
<CertPublisher Value="Geotest - Marvin Test Systems, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_HW" />
</Signer>
<Signer ID="ID_SIGNER_HWRWDRV_1" Name="VeriSign Class 3 Code Signing
2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Shuttle Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_HWRWDRV" />
</Signer>
<Signer ID="ID_SIGNER_HWRWDRV_2" Name="Symantec Class 3 Extended
Validation Code Signing CA - G2">
<CertRoot Type="TBS"
Value="B3C925B4048C3F7C444D248A2B101186B57CBA39596EB5DCE0E17A4EE4B32F19" />
<CertPublisher Value="SHUTTLE INC." />
<FileAttribRef RuleID="ID_FILEATTRIB_HWRWDRV" />
</Signer>
<Signer ID="ID_SIGNER_MYDRIVERS_1" Name="VeriSign Class 3 Code Signing
2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Beijing Kingsoft Security software Co.,Ltd" />
<FileAttribRef RuleID="ID_FILEATTRIB_MYDRIVERS" />
</Signer>
<Signer ID="ID_SIGNER_MYDRIVERS_2" Name="GlobalSign">
<CertRoot Type="TBS"
Value="BD1765C56594221373893EF26D97F88C144FB0E5A0111215B45D7239C3444DF7" />
<CertPublisher Value="北京金山安全软件有限公司" />
<FileAttribRef RuleID="ID_FILEATTRIB_MYDRIVERS" />
</Signer>
<Signer ID="ID_SIGNER_MYDRIVERS_3" Name="Symantec Class 3 SHA256 Code
Signing CA">
<CertRoot Type="TBS"
Value="A08E79C386083D875014C409C13D144E0A24386132980DF11FF59737C8489EB1" />
<CertPublisher Value="Beijing Kingsoft Security software Co.,Ltd" />
<FileAttribRef RuleID="ID_FILEATTRIB_MYDRIVERS" />
</Signer>
<Signer ID="ID_SIGNER_PAN" Name="GlobalSign CodeSigning CA - G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="PAN YAZILIM BILISIM TEKNOLOJILERI TICARET LTD.
STI." />
<FileAttribRef RuleID="ID_FILEATTRIB_PANIOMON_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_PANIO_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_PANIOMON_2" />
<FileAttribRef RuleID="ID_FILEATTRIB_PANIO_2" />
</Signer>
<Signer ID="ID_SIGNER_ASWARPOT_1" Name="DigiCert High Assurance Code
Signing CA-1">
<CertRoot Type="TBS" Value="1D7E838ACCD498C2E5BA9373AF819EC097BB955C"
/>
<CertPublisher Value="Avast Software s.r.o." />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWARPOT" />
</Signer>
<Signer ID="ID_SIGNER_ASWARPOT_2" Name="Microsoft Windows Third Party
Component CA 2012">
<CertRoot Type="TBS"
Value="CEC1AFD0E310C55C1DCC601AB8E172917706AA32FB5EAF826813547FDF02DD46" />
<CertPublisher Value="Microsoft Windows Hardware Compatibility
Publisher" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWARPOT" />
</Signer>
<Signer ID="ID_SIGNER_ASWARPOT_3" Name="DigiCert EV Code Signing CA
(SHA2)">
<CertRoot Type="TBS"
Value="EEC58131DC11CD7F512501B15FDBC6074C603B68CA91F7162D5A042054EDB0CF" />
<CertPublisher Value="Avast plc" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWARPOT" />
</Signer>
<Signer ID="ID_SIGNER_ASWARPOT_4" Name="DigiCert SHA2 Assured ID Code
Signing CA">
<CertRoot Type="TBS"
Value="E767799478F64A34B3F53FF3BB9057FE1768F4AB178041B0DCC0FF1E210CBA65" />
<CertPublisher Value="Avast Software s.r.o." />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWARPOT" />
</Signer>
<Signer ID="ID_SIGNER_ASWARPOT_5" Name="DigiCert High Assurance Code
Signing CA-1">
<CertRoot Type="TBS" Value="1D7E838ACCD498C2E5BA9373AF819EC097BB955C"
/>
<CertPublisher Value="AVAST Software s.r.o." />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWARPOT" />
</Signer>
<Signer ID="ID_SIGNER_ASWARPOT_6" Name="DigiCert SHA2 Assured ID Code
Signing CA">
<CertRoot Type="TBS"
Value="E767799478F64A34B3F53FF3BB9057FE1768F4AB178041B0DCC0FF1E210CBA65" />
<CertPublisher Value="AVAST Software s.r.o." />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWARPOT" />
</Signer>
<Signer ID="ID_SIGNER_ASWSNX_1" Name="DigiCert Trusted G4 Code Signing
RSA4096 SHA384 2021 CA1">
<CertRoot Type="TBS"
Value="65B1D4076A89AE273F57E6EEEDECB3EAE129B4168F76FA7671914CDF461D542255C59
D9B85B916AE0CA6FC0FCF7A8E64" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSNX" />
</Signer>
<Signer ID="ID_SIGNER_ASWSNX_2" Name="DigiCert Trusted Root G4">
<CertRoot Type="TBS"
Value="11533EFD6B326A4E065A936DE300FE0586A479F93D569D2403BD62C7AD35F1B2199DA
EE3ADB510F429C4FC97B4B024E3" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSNX" />
</Signer>
<Signer ID="ID_SIGNER_ASWSNX_3" Name="DigiCert High Assurance Code
Signing CA-1">
<CertRoot Type="TBS" Value="1D7E838ACCD498C2E5BA9373AF819EC097BB955C"
/>
<CertPublisher Value="AVAST Software a.s." />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSNX" />
</Signer>
<Signer ID="ID_SIGNER_ASWSNX_4" Name="DigiCert Assured ID Code Signing
CA-1">
<CertRoot Type="TBS" Value="47F4B9898631773231B32844EC0D49990AC4EB1E"
/>
<CertPublisher Value="AVG Technologies USA, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSNX" />
</Signer>
<Signer ID="ID_SIGNER_MS_ELAM" Name="Microsoft Windows Third Party
Component CA 2014">
<CertRoot Type="TBS"
Value="D8BE9E4D9074088EF818BC6F6FB64955E90378B2754155126FEEBBBD969CF0AE" />
<FileAttribRef RuleID="ID_FILEATTRIB_AVGELAM" />
<FileAttribRef RuleID="ID_FILEATTRIB_EELAM" />
<FileAttribRef RuleID="ID_FILEATTRIB_TMEL" />
<FileAttribRef RuleID="ID_FILEATTRIB_SYMELAM" />
</Signer>
<Signer ID="ID_SIGNER_MS_ELAM_1" Name="Microsoft Code Signing PCA 2010">
<CertRoot Type="TBS"
Value="121AF4B922A74247EA49DF50DE37609CC1451A1FE06B2CB7E1E079B492BD8195" />
<FileAttribRef RuleID="ID_FILEATTRIB_AVGELAM" />
<FileAttribRef RuleID="ID_FILEATTRIB_EELAM" />
<FileAttribRef RuleID="ID_FILEATTRIB_TMEL" />
<FileAttribRef RuleID="ID_FILEATTRIB_SYMELAM" />
</Signer>
<Signer ID="ID_SIGNER_AVGELAM_1" Name="DigiCert High Assurance Code
Signing CA-1">
<CertRoot Type="TBS" Value="1D7E838ACCD498C2E5BA9373AF819EC097BB955C"
/>
<CertPublisher Value="AVAST Software s.r.o." />
<FileAttribRef RuleID="ID_FILEATTRIB_AVGELAM" />
</Signer>
<Signer ID="ID_SIGNER_AVGELAM_2" Name="DigiCert SHA2 Assured ID Code
Signing CA">
<CertRoot Type="TBS"
Value="E767799478F64A34B3F53FF3BB9057FE1768F4AB178041B0DCC0FF1E210CBA65" />
<CertPublisher Value="AVAST Software s.r.o." />
<FileAttribRef RuleID="ID_FILEATTRIB_AVGELAM" />
<FileAttribRef RuleID="ID_FILEATTRIB_ASWSNX" />
</Signer>
<Signer ID="ID_SIGNER_GMEREK" Name="GlobalSign CodeSigning CA - G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="GMEREK Systemy Komputerowe Przemyslaw Gmerek" />
</Signer>
<Signer ID="ID_SIGNER_GMER" Name="GlobalSign CodeSigning CA - G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="GMEREK Systemy Komputerowe Przemyslaw Gmerek" />
<FileAttribRef RuleID="ID_FILEATTRIB_GMER" />
</Signer>
<Signer ID="ID_SIGNER_HWINFO_1" Name="GlobalSign CodeSigning CA - G3">
<CertRoot Type="TBS" Value="F478F0E790D5C8EC6056A3AB2567404A991D2837"
/>
<CertPublisher Value="Zhengzhou Heng Kuai Information Technology Co.,
Ltd" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_2" />
</Signer>
<Signer ID="ID_SIGNER_HWINFO_2" Name="Certum Extended Validation Code
Signing 2021 CA">
<CertRoot Type="TBS"
Value="56F431D13FD6F7974905196A6367D252A955C5FE34DB1E48CFA3EB569707809D63DE4
A0FF8FEF57BE69C23284D9144EA" />
<CertPublisher Value="Martin Malik - REALiX" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_3" />
</Signer>
<Signer ID="ID_SIGNER_HWINFO_3" Name="GlobalSign Primary Object
Publishing CA">
<CertRoot Type="TBS" Value="879269F3F467A6D59641960A62FE9CB419355FF6"
/>
<CertPublisher Value="REALiX" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_3" />
</Signer>
<Signer ID="ID_SIGNER_HWINFO_4" Name="DigiCert EV Code Signing CA
(SHA2)">
<CertRoot Type="TBS"
Value="EEC58131DC11CD7F512501B15FDBC6074C603B68CA91F7162D5A042054EDB0CF" />
<CertPublisher Value="Martin Malik - REALiX" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_2" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_3" />
</Signer>
<Signer ID="ID_SIGNER_HWINFO_5" Name="GlobalSign CodeSigning CA - SHA256
- G3">
<CertRoot Type="TBS"
Value="06936BAC8D2F85D9CE6F7348EA421A1A949219182845192667B0E671FE0E4285" />
<CertPublisher Value="Zhengzhou Heng Kuai Information Technology Co.,
Ltd" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_2" />
</Signer>
<Signer ID="ID_SIGNER_HWINFO_6" Name="GlobalSign CodeSigning CA - G2">
<CertRoot Type="TBS" Value="589A7D4DF869395601BA7538A65AFAE8C4616385"
/>
<CertPublisher Value="Martin Malik - REALiX" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_1" />
<FileAttribRef RuleID="ID_FILEATTRIB_HWINFO_2" />
</Signer>
<Signer ID="ID_SIGNER_ASROCK_RWDRV" Name="VeriSign Class 3 Code Signing
2004 CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="ASROCK Incorporation" />
<FileAttribRef RuleID="ID_FILEATTRIB_RWDRV_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_FAIRPLAY_1" Name="Thawte Code Signing CA - G2">
<CertRoot Type="TBS" Value="95795D2AA2A554A423BC8C6E5B0A016D14887D35"
/>
<CertPublisher Value="Hans Roes" />
<FileAttribRef RuleID="ID_FILEATTRIB_FAIRPLAY" />
</Signer>
<Signer ID="ID_SIGNER_FAIRPLAY_2" Name="thawte SHA256 Code Signing CA">
<CertRoot Type="TBS"
Value="C734685D985B8EA13DB4FC1A6DCD26AA0DDE78B4C3B651EA5D58E32E081B2A41" />
<CertPublisher Value="Hans Roes" />
<FileAttribRef RuleID="ID_FILEATTRIB_FAIRPLAY" />
</Signer>
<Signer ID="ID_SIGNER_FAIRPLAY_3" Name="Thawte Code Signing CA - G2">
<CertRoot Type="TBS" Value="95795D2AA2A554A423BC8C6E5B0A016D14887D35"
/>
<CertPublisher Value="Hans Roes" />
<FileAttribRef RuleID="ID_FILEATTRIB_FAIRPLAY" />
</Signer>
<Signer ID="ID_SIGNER_FAIRPLAY_4" Name="thawte SHA256 Code Signing CA">
<CertRoot Type="TBS"
Value="C734685D985B8EA13DB4FC1A6DCD26AA0DDE78B4C3B651EA5D58E32E081B2A41" />
<CertPublisher Value="Hans Roes" />
<FileAttribRef RuleID="ID_FILEATTRIB_FAIRPLAY" />
</Signer>
<Signer ID="ID_SIGNER_HAXM_1" Name="Symantec Class 3 Extended Validation
Code Signing CA - G2">
<CertRoot Type="TBS"
Value="B3C925B4048C3F7C444D248A2B101186B57CBA39596EB5DCE0E17A4EE4B32F19" />
<CertPublisher Value="XM Cyber LTD" />
<FileAttribRef RuleID="ID_FILEATTRIB_HAXM" />
</Signer>
<Signer ID="ID_SIGNER_HAXM_2" Name="COMODO Code Signing CA 2">
<CertRoot Type="TBS" Value="EE6C8048E2AA17A6506ECC99D41B1BA6794C3252"
/>
<CertPublisher Value="XM LTD" />
<FileAttribRef RuleID="ID_FILEATTRIB_HAXM" />
</Signer>
<Signer ID="ID_SIGNER_HAXM_3" Name="Symantec Class 3 Extended Validation
Code Signing CA - G2">
<CertRoot Type="TBS"
Value="B3C925B4048C3F7C444D248A2B101186B57CBA39596EB5DCE0E17A4EE4B32F19" />
<CertPublisher Value="XM LTD" />
<FileAttribRef RuleID="ID_FILEATTRIB_HAXM" />
</Signer>
<Signer ID="ID_SIGNER_PROCEXP_1" Name="VeriSign Class 3 Code Signing
2009-2 CA">
<CertRoot Type="TBS" Value="4CDC38C800761463749C3CBD94A12F32E49877BF"
/>
<CertPublisher Value="Sysinternals" />
<FileAttribRef RuleID="ID_FILEATTRIB_PROCEXP" />
</Signer>
<Signer ID="ID_SIGNER_PROCEXP_2" Name="VeriSign Class 3 Code Signing
2004 CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="Sysinternals" />
<FileAttribRef RuleID="ID_FILEATTRIB_PROCEXP" />
</Signer>
<Signer ID="ID_SIGNER_PROCEXP_3" Name="Microsoft Windows Hardware
Compatibility PCA">
<CertRoot Type="TBS" Value="C5506BEE3C29254DC5B5A0E6E7A14046522708EF"
/>
<CertPublisher Value="Microsoft Windows Hardware Compatibility
Publisher" />
<FileAttribRef RuleID="ID_FILEATTRIB_PROCEXP" />
</Signer>
<Signer ID="ID_SIGNER_PROCEXP_4" Name="VeriSign Class 3 Code Signing
2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Sysinternals" />
<FileAttribRef RuleID="ID_FILEATTRIB_PROCEXP" />
</Signer>
<Signer ID="ID_SIGNER_PROCEXP_5" Name="Microsoft Windows Hardware
Compatibility PCA">
<CertRoot Type="TBS" Value="6B3242A9A639B0DA4D5882C7EEB402BE6615AD0C"
/>
<CertPublisher Value="Microsoft Windows Hardware Compatibility
Publisher" />
<FileAttribRef RuleID="ID_FILEATTRIB_PROCEXP" />
</Signer>
<Signer ID="ID_SIGNER_OPENLIBSYS" Name="GlobalSign Primary Object
Publishing CA">
<CertRoot Type="TBS" Value="041750993D7C9E063F02DFE74699598640911AAB"
/>
<CertPublisher Value="Noriyuki MIYAZAKI" />
<FileAttribRef RuleID="ID_FILEATTRIB_OPENLIBSYS" />
</Signer>
<Signer ID="ID_SIGNER_PCDOC" Name="DigiCert EV Code Signing CA">
<CertRoot Type="TBS" Value="2D54C16A8F8B69CCDEA48D0603C132F547A5CF75"
/>
<CertPublisher Value="PC-Doctor, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_PCDOC" />
</Signer>
<Signer ID="ID_SIGNER_SYSDRV3S" Name="GlobalSign 3S-Smart">
<CertRoot Type="TBS"
Value="BD1765C56594221373893EF26D97F88C144FB0E5A0111215B45D7239C3444DF7" />
<CertPublisher Value="3S-Smart Software Solutions GmbH" />
<FileAttribRef RuleID="ID_FILEATTRIB_SYSDRV3S" />
</Signer>
<Signer ID="ID_SIGNER_PAVEL_Y_1" Name="DigiCert SHA2 Assured ID Code
Signing CA">
<CertRoot Type="TBS"
Value="E767799478F64A34B3F53FF3BB9057FE1768F4AB178041B0DCC0FF1E210CBA65" />
<CertPublisher Value="Pavel Yosifovich" />
</Signer>
<Signer ID="ID_SIGNER_PAVEL_Y_2" Name="DigiCert SHA2 High Assurance Code
Signing CA">
<CertRoot Type="TBS"
Value="0BF095B845B69928B5D7DFD1C42AE4F90FEB8DC97F7830598C93E848877021FB" />
<CertPublisher Value="Pavel Yosifovich" />
</Signer>
<Signer ID="ID_SIGNER_ALSYSIO_1" Name="COMODO RSA Code Signing CA">
<CertRoot Type="TBS"
Value="4805A7E23D6C8FF5E149F197B744BCB2346E73F19A48835A2F64129183981109256B7
5EA371A331746D01FD4E135AB6E" />
<CertPublisher Value="ALCPU" />
<FileAttribRef RuleID="ID_FILEATTRIB_ALSYSIO" />
</Signer>
<Signer ID="ID_SIGNER_ALSYSIO_2" Name="UTN-USERFirst-Object">
<CertRoot Type="TBS" Value="C45627B5584BF62327DF60D6185744A2D2F2BCBF"
/>
<CertPublisher Value="ALCPU" />
<FileAttribRef RuleID="ID_FILEATTRIB_ALSYSIO" />
</Signer>
<Signer ID="ID_SIGNER_MICKS" Name="Microsoft Windows Third Party
Component CA 2014">
<CertRoot Type="TBS"
Value="D8BE9E4D9074088EF818BC6F6FB64955E90378B2754155126FEEBBBD969CF0AE" />
<CertOemID Value="Micks Auto Transport" />
</Signer>
<Signer ID="ID_SIGNER_ETDSUPPORT" Name="DigiCert Trusted G4 Code Signing
RSA4096 SHA384 2021 CA1">
<CertRoot Type="TBS"
Value="65B1D4076A89AE273F57E6EEEDECB3EAE129B4168F76FA7671914CDF461D542255C59
D9B85B916AE0CA6FC0FCF7A8E64" />
<CertPublisher Value="HP Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_ETDSUPPORT" />
</Signer>
<Signer ID="ID_SIGNER_CPUZ_1" Name="DigiCert EV Code Signing CA">
<CertRoot Type="TBS" Value="2D54C16A8F8B69CCDEA48D0603C132F547A5CF75"
/>
<CertPublisher Value="CPUID S.A.R.L.U." />
<FileAttribRef RuleID="ID_FILEATTRIB_CPUZ_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_CPUZ_2" Name="Certum Extended Validation Code
Signing 2021 CA">
<CertRoot Type="TBS"
Value="56F431D13FD6F7974905196A6367D252A955C5FE34DB1E48CFA3EB569707809D63DE4
A0FF8FEF57BE69C23284D9144EA" />
<CertPublisher Value="CPUID" />
<FileAttribRef RuleID="ID_FILEATTRIB_CPUZ_DRIVER" />
</Signer>
<Signer ID="ID_SIGNER_BAOJI" Name="VeriSign Class 3 Code Signing 2010 CA
- Baoji zhihengtaiye co.,ltd">
<CertRoot Type="TBS" Value="ED37AD43BC52426943019F77F35ED1A6B063B5B7"
/>
</Signer>
<Signer ID="ID_SIGNER_BEIJING_CHUNBAI" Name="VeriSign Class 3 Code
Signing 2010 CA - Beijing Chunbai Technology Development Co., Ltd">
<CertRoot Type="TBS" Value="C4CD7D2A3E12022BCFE2852A14438C7F2BD3A959"
/>
</Signer>
<Signer ID="ID_SIGNER_BEIJING_VSK" Name="Symantec Class 3 Code - Beijing
VSK Soft Development Co.,Ltd; Thumbprint:
49B76C0AD6085E2F7385644F36CECC09F320BCF4">
<CertRoot Type="TBS"
Value="399B4EC286EC1963F1BB36206F3200C23DBF1717E24CF0868335FF3E13A45EA0" />
</Signer>
<Signer ID="ID_SIGNER_GEOTRUST_SRL_2009" Name="HT Srl Digital ID Class 3
- Microsoft Software Validation v2">
<CertRoot Type="TBS" Value="D70EDFA009A76BD8250D74E9EE92EB9EAD7D4CB3"
/>
</Signer>
<Signer ID="ID_SIGNER_GEOTRUST_SRL_2010" Name="HT Srl Digital ID Class 3
- Microsoft Software Validation v2">
<CertRoot Type="TBS" Value="E5BA2ABBD1DC89F143A66A3CDCDA26D968758E2D"
/>
</Signer>
<Signer ID="ID_SIGNER_GLOBAL_SOFT" Name="Symantec Class 3 SHA256 Code
Signing CA - Global Software, LLC">
<CertRoot Type="TBS"
Value="A79C023D3452B2F27E7BC36D2588C28564B2ABABBF78AFAC844152B8DD3A89D4" />
</Signer>
<Signer ID="ID_SIGNER_GOOD_WEI" Name="thawte SHA256 Code Signing CA - 善
君 韦">
<CertRoot Type="TBS"
Value="8438D529DC1D87E288CE3C8830A782BB167E20A6E1FD37624D5DF21340FF6B25" />
</Signer>
<Signer ID="ID_SIGNER_HANDAN" Name="Handan City Congtai District LiKang
Daily Goods Department">
<CertRoot Type="TBS" Value="CCCAE21FBC083F5D1AF6997BB3F29ED9915E7324"
/>
</Signer>
<Signer ID="ID_SIGNER_HYPERTECH" Name="VeriSign Class 3 Code Signing
2010 CA - HYPER TECH CO., LTD.">
<CertRoot Type="TBS" Value="5CBF0640A92AB3779F2AF481DAF0ADFEF9BD99F5"
/>
</Signer>
<Signer ID="ID_SIGNER_NANJING" Name="Nanjing Zhixiao Information
Technology Co.,Ltd">
<CertRoot Type="TBS" Value="F5E1C4D98F9CE552EAD3776C16F3AD91FE5F3984"
/>
</Signer>
<Signer ID="ID_SIGNER_TRUST_ASIA" Name="上海域联软件技术有限公司">
<CertRoot Type="TBS" Value="232A71B4D1734EAC2CFC6EA554C86DE34F9F8B72"
/>
</Signer>
<Signer ID="ID_SIGNER_JEROMIN_CODY_ERIC" Name="Jeromin Cody Eric">
<CertRoot Type="TBS"
Value="DFA6171201B51A2EC174310E8FB9F4C0FDE2D365235E589DED0213C5279BEA6E" />
</Signer>
<Signer ID="ID_SIGNER_SAASAME" Name="SaaSaMe Ltd.">
<CertRoot Type="TBS" Value="A86DE66D8198E4272859881476A6F9936034A482"
/>
</Signer>
<Signer ID="ID_SIGNER_JCOS_1" Name="JCOS Media srvnetbus">
<CertRoot Type="TBS" Value="06530FA1FA2D0954A87C4AA1891699E7C81AB2CA"
/>
</Signer>
<Signer ID="ID_SIGNER_JCOS_2" Name="JCOS Media pshedmp">
<CertRoot Type="TBS" Value="8A3994CC7AA70F5480166A96A32EB10BAB0A7A36"
/>
</Signer>
<Signer ID="ID_SIGNER_HERMETICWIPER_1" Name="DigiCert Assured ID Code
Signing CA-1">
<CertRoot Type="TBS" Value="47F4B9898631773231B32844EC0D49990AC4EB1E"
/>
<CertPublisher Value="CHENGDU YIWO Tech Development Co., Ltd." />
</Signer>
<Signer ID="ID_SIGNER_HERMETICWIPER_2" Name="Symantec Class 3 Extended
Validation Code Signing CA - G2">
<CertRoot Type="TBS"
Value="B3C925B4048C3F7C444D248A2B101186B57CBA39596EB5DCE0E17A4EE4B32F19" />
<CertPublisher Value="Chengdu Yiwo Tech Development Co., Ltd." />
</Signer>
<Signer ID="ID_SIGNER_HERMETICWIPER_3" Name="VeriSign Class 3 Code
Signing 2004 CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="CHENGDU YIWO Tech Development Co., Ltd." />
</Signer>
<Signer ID="ID_SIGNER_HERMETICWIPER_4" Name="VeriSign Class 3 Code
Signing 2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="CHENGDU YIWO Tech Development Co., Ltd." />
</Signer>
<Signer ID="ID_SIGNER_NVIDIA_2007" Name="Leaked 2007 NVIDIA Corporation
Verisign Class 3 Code Signing 2004 CA">
<CertRoot Type="TBS" Value="80854F578E2A3B5552EA839BA4F98DDFE94B2381"
/>
</Signer>
<Signer ID="ID_SIGNER_NVIDIA_2011" Name="Leaked 2011 NVIDIA Corporation
Verisign Class 3 Code Signing 2010 CA">
<CertRoot Type="TBS" Value="15C37DBEBE6FCC77108E3D7AD982676D3D5E77F7"
/>
</Signer>
<Signer ID="ID_SIGNER_NVIDIA_2015" Name="Leaked 2015 NVIDIA Corporation
Verisign Class 3 Code Signing 2010 CA">
<CertRoot Type="TBS" Value="F049A238763D4A90B148AB10A500F96EBF1DC436"
/>
</Signer>
<Signer ID="ID_SIGNER_VBOX_ORCALE" Name="VeriSign Class 3 Code Signing
2010 CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Oracle Corporation" />
<FileAttribRef RuleID="ID_FILEATTRIB_VBOX" />
</Signer>
<Signer ID="ID_SIGNER_VBOX_SUN" Name="VeriSign Class 3 Code Signing 2004
CA">
<CertRoot Type="TBS" Value="C7FC1727F5B75A6421A1F95C73BBDB23580C48E5"
/>
<CertPublisher Value="Sun Microsystems, Inc." />
<FileAttribRef RuleID="ID_FILEATTRIB_VBOX" />
</Signer>
<Signer ID="ID_SIGNER_ZEMANA_1" Name="DigiCert High Assurance Code
Signing CA-1">
<CertRoot Type="TBS" Value="1D7E838ACCD498C2E5BA9373AF819EC097BB955C"
/>
<CertPublisher Value="Zemana Ltd." />
</Signer>
<Signer ID="ID_SIGNER_ZEMANA_2" Name="VeriSign Class 3 Code Signing 2010
CA">
<CertRoot Type="TBS" Value="4843A82ED3B1F2BFBEE9671960E1940C942F688D"
/>
<CertPublisher Value="Zemana Ltd." />
</Signer>
<Signer ID="ID_SIGNER_ZEMANA_3" Name="Microsoft Windows Third Party
Component CA 2014">
<CertRoot Type="TBS"
Value="D8BE9E4D9074088EF818BC6F6FB64955E90378B2754155126FEEBBBD969CF0AE" />
<CertOemID Value="ZEMANA A.Ş." />
</Signer>
</Signers>
<!--Driver Signing Scenarios-->
<SigningScenarios>
<SigningScenario Value="131"
ID="ID_SIGNINGSCENARIO_DENIED_VULN_MAL_SIGNERS" FriendlyName="Signers of
known vulnerable or malicious drivers">
<ProductSigners>
<DeniedSigners>
<DeniedSigner SignerId="ID_SIGNER_AGNITUM_2004" />
<DeniedSigner SignerId="ID_SIGNER_AGNITUM_2009" />
<DeniedSigner SignerId="ID_SIGNER_AGNITUM_2010" />
<DeniedSigner SignerId="ID_SIGNER_AGNITUM_2010_1" />
<DeniedSigner SignerId="ID_SIGNER_ALSYSIO_1" />
<DeniedSigner SignerId="ID_SIGNER_ALSYSIO_2" />
<DeniedSigner SignerId="ID_SIGNER_AMDPP" />
<DeniedSigner SignerId="ID_SIGNER_ATILLK" />
<DeniedSigner SignerId="ID_SIGNER_ASROCK_RWDRV" />
<DeniedSigner SignerId="ID_SIGNER_ASWARPOT_1" />
<DeniedSigner SignerId="ID_SIGNER_ASWARPOT_2" />
<DeniedSigner SignerId="ID_SIGNER_ASWARPOT_3" />
<DeniedSigner SignerId="ID_SIGNER_ASWARPOT_4" />
<DeniedSigner SignerId="ID_SIGNER_ASWARPOT_5" />
<DeniedSigner SignerId="ID_SIGNER_ASWARPOT_6" />
<DeniedSigner SignerId="ID_SIGNER_ASWSNX_1" />
<DeniedSigner SignerId="ID_SIGNER_ASWSNX_2" />
<DeniedSigner SignerId="ID_SIGNER_ASWSNX_3" />
<DeniedSigner SignerId="ID_SIGNER_ASWSNX_4" />
<DeniedSigner SignerId="ID_SIGNER_AVGELAM_1" />
<DeniedSigner SignerId="ID_SIGNER_AVGELAM_2" />
<DeniedSigner SignerId="ID_SIGNER_BAOJI" />
<DeniedSigner SignerId="ID_SIGNER_BEIJING_CHUNBAI" />
<DeniedSigner SignerId="ID_SIGNER_BEIJING_VSK" />
<DeniedSigner SignerId="ID_SIGNER_CAPCOM" />
<DeniedSigner SignerId="ID_SIGNER_CHEAT_ENGINE" />
<DeniedSigner SignerId="ID_SIGNER_COMODO_IQVW" />
<DeniedSigner SignerId="ID_SIGNER_CPUZ_1" />
<DeniedSigner SignerId="ID_SIGNER_CPUZ_2" />
<DeniedSigner SignerId="ID_SIGNER_DIGICERT_EV" />
<DeniedSigner SignerId="ID_SIGNER_ELBY" />
<DeniedSigner SignerId="ID_SIGNER_ENE" />
<DeniedSigner SignerId="ID_SIGNER_ETDSUPPORT" />
<DeniedSigner SignerId="ID_SIGNER_FAIRPLAY_1" />
<DeniedSigner SignerId="ID_SIGNER_FAIRPLAY_2" />
<DeniedSigner SignerId="ID_SIGNER_FAIRPLAY_3" />
<DeniedSigner SignerId="ID_SIGNER_FAIRPLAY_4" />
<DeniedSigner SignerId="ID_SIGNER_GEOTRUST_SRL_2009" />
<DeniedSigner SignerId="ID_SIGNER_GEOTRUST_SRL_2010" />
<DeniedSigner SignerId="ID_SIGNER_GETAC" />
<DeniedSigner SignerId="ID_SIGNER_GLOBAL_SOFT" />
<DeniedSigner SignerId="ID_SIGNER_GLOBALSIGN_CHEAT_ENGINE" />
<DeniedSigner SignerId="ID_SIGNER_GLOBALSIGN_G2_CHEAT_ENGINE" />
<DeniedSigner SignerId="ID_SIGNER_GLOBALSIGN_G2_MICROSTAR" />
<DeniedSigner SignerId="ID_SIGNER_GLOBALSIGN_MICROSTAR" />
<DeniedSigner SignerId="ID_SIGNER_GLOBALSIGN_TG_SOFT" />
<DeniedSigner SignerId="ID_SIGNER_GMER" />
<DeniedSigner SignerId="ID_SIGNER_GMEREK" />
<DeniedSigner SignerId="ID_SIGNER_GOOD_WEI" />
<DeniedSigner SignerId="ID_SIGNER_HANDAN" />
<DeniedSigner SignerId="ID_SIGNER_HAXM_1" />
<DeniedSigner SignerId="ID_SIGNER_HAXM_2" />
<DeniedSigner SignerId="ID_SIGNER_HAXM_3" />
<DeniedSigner SignerId="ID_SIGNER_HYPERTECH" />
<DeniedSigner SignerId="ID_SIGNER_HP" />
<DeniedSigner SignerId="ID_SIGNER_HW_A" />
<DeniedSigner SignerId="ID_SIGNER_HW_B" />
<DeniedSigner SignerId="ID_SIGNER_HW_C" />
<DeniedSigner SignerId="ID_SIGNER_HW_D" />
<DeniedSigner SignerId="ID_SIGNER_HWINFO_1" />
<DeniedSigner SignerId="ID_SIGNER_HWINFO_2" />
<DeniedSigner SignerId="ID_SIGNER_HWINFO_3" />
<DeniedSigner SignerId="ID_SIGNER_HWINFO_4" />
<DeniedSigner SignerId="ID_SIGNER_HWINFO_5" />
<DeniedSigner SignerId="ID_SIGNER_HWINFO_6" />
<DeniedSigner SignerId="ID_SIGNER_HWRWDRV_1" />
<DeniedSigner SignerId="ID_SIGNER_HWRWDRV_2" />
<DeniedSigner SignerId="ID_SIGNER_INTEL_IQVW" />
<DeniedSigner SignerId="ID_SIGNER_IOBITUNLOCKER_1" />
<DeniedSigner SignerId="ID_SIGNER_IOBITUNLOCKER_2" />
<DeniedSigner SignerId="ID_SIGNER_IOBITUNLOCKER_3" />
<DeniedSigner SignerId="ID_SIGNER_IOBITUNLOCKER_4" />
<DeniedSigner SignerId="ID_SIGNER_JCOS_1" />
<DeniedSigner SignerId="ID_SIGNER_JCOS_2" />
<DeniedSigner SignerId="ID_SIGNER_JEROMIN_CODY_ERIC" />
<DeniedSigner SignerId="ID_SIGNER_LV_DIAG" />
<DeniedSigner SignerId="ID_SIGNER_LV_DIAG_2" />
<DeniedSigner SignerId="ID_SIGNER_LV_LOGITECH" />
<DeniedSigner SignerId="ID_SIGNER_MAN_MUS" />
<DeniedSigner SignerId="ID_SIGNER_MB_RB_HACKS" />
<DeniedSigner SignerId="ID_SIGNER_MICKS" />
<DeniedSigner SignerId="ID_SIGNER_MIMIKATZ_KERNEL" />
<DeniedSigner SignerId="ID_SIGNER_MIMIKATZ_KERNEL_SHA2" />
<DeniedSigner SignerId="ID_SIGNER_MIMIKATZ_USER" />
<DeniedSigner SignerId="ID_SIGNER_MS_ELAM" />
<DeniedSigner SignerId="ID_SIGNER_MS_ELAM_1" />
<DeniedSigner SignerId="ID_SIGNER_MYDRIVERS_1" />
<DeniedSigner SignerId="ID_SIGNER_MYDRIVERS_2" />
<DeniedSigner SignerId="ID_SIGNER_MYDRIVERS_3" />
<DeniedSigner SignerId="ID_SIGNER_NANJING" />
<DeniedSigner SignerId="ID_SIGNER_NVFLASH" />
<DeniedSigner SignerId="ID_SIGNER_NVFLASH_2" />
<DeniedSigner SignerId="ID_SIGNER_NVFLASH_3" />
<DeniedSigner SignerId="ID_SIGNER_OPENLIBSYS"/>
<DeniedSigner SignerId="ID_SIGNER_PAN" />
<DeniedSigner SignerId="ID_SIGNER_PAVEL_Y_1" />
<DeniedSigner SignerId="ID_SIGNER_PAVEL_Y_2" />
<DeniedSigner SignerId="ID_SIGNER_PHYSMEM" />
<DeniedSigner SignerId="ID_SIGNER_PCDOC"/>
<DeniedSigner SignerId="ID_SIGNER_PROCEXP_1" />
<DeniedSigner SignerId="ID_SIGNER_PROCEXP_2" />
<DeniedSigner SignerId="ID_SIGNER_PROCEXP_3" />
<DeniedSigner SignerId="ID_SIGNER_PROCEXP_4" />
<DeniedSigner SignerId="ID_SIGNER_PROCEXP_5" />
<DeniedSigner SignerId="ID_SIGNER_REALTEK" />
<DeniedSigner SignerId="ID_SIGNER_RWEVERY" />
<DeniedSigner SignerId="ID_SIGNER_SAASAME" />
<DeniedSigner SignerId="ID_SIGNER_SANDRA" />
<DeniedSigner SignerId="ID_SIGNER_SANDRA_THAWTE" />
<DeniedSigner SignerId="ID_SIGNER_SPEEDFAN" />
<DeniedSigner SignerId="ID_SIGNER_SYSDRV3S" />
<DeniedSigner SignerId="ID_SIGNER_PHYMEM" />
<DeniedSigner SignerId="ID_SIGNER_PHYMEM_1" />
<DeniedSigner SignerId="ID_SIGNER_PHYMEM_2" />
<DeniedSigner SignerId="ID_SIGNER_SYMANTEC_CLASS_3" />
<DeniedSigner SignerId="ID_SIGNER_TRUST_ASIA" />
<DeniedSigner SignerId="ID_SIGNER_VBOX" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_2004" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_2004_BIOSTAR" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_2004_ASUS_BS_DEF" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_2009" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_2009_BIOSTAR" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_2009_REALTEK" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_2010" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_2010_2" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_2010_BIOSTAR" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_AMD" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_INSYDE" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_NOVELL" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_TG_SOFT" />
<DeniedSigner SignerId="ID_SIGNER_VERISIGN_TOSHIBA" />
<DeniedSigner SignerId="ID_SIGNER_VMDRV" />
<DeniedSigner SignerId="ID_SIGNER_WINDOWS_3RD_PARTY_2010" />
<DeniedSigner SignerId="ID_SIGNER_WINDOWS_3RD_PARTY_2012" />
<DeniedSigner SignerId="ID_SIGNER_WINDOWS_3RD_PARTY_2014" />
<DeniedSigner SignerId="ID_SIGNER_WISEUNLO" />
<DeniedSigner SignerId="ID_SIGNER_WISEUNLO_1" />
<DeniedSigner SignerId="ID_SIGNER_WISEUNLO_2" />
<DeniedSigner SignerId="ID_SIGNER_HERMETICWIPER_1" />
<DeniedSigner SignerId="ID_SIGNER_HERMETICWIPER_2" />
<DeniedSigner SignerId="ID_SIGNER_HERMETICWIPER_3" />
<DeniedSigner SignerId="ID_SIGNER_HERMETICWIPER_4" />
<DeniedSigner SignerId="ID_SIGNER_NVIDIA_2007" />
<DeniedSigner SignerId="ID_SIGNER_NVIDIA_2011" />
<DeniedSigner SignerId="ID_SIGNER_NVIDIA_2015" />
<DeniedSigner SignerId="ID_SIGNER_VBOX_ORCALE" />
<DeniedSigner SignerId="ID_SIGNER_VBOX_SUN" />
<DeniedSigner SignerId="ID_SIGNER_ZEMANA_1" />
<DeniedSigner SignerId="ID_SIGNER_ZEMANA_2" />
<DeniedSigner SignerId="ID_SIGNER_ZEMANA_3" />
</DeniedSigners>
<FileRulesRef>
<FileRuleRef RuleID="ID_ALLOW_ALL_1" />
<FileRuleRef RuleID="ID_DENY_AGENT64_SHA1" />
<FileRuleRef RuleID="ID_DENY_AGENT64_SHA256" />
<FileRuleRef RuleID="ID_DENY_AGENT64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_AGENT64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA1" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA256" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA1_1" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA256_1" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA1_PAGE_1" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA256_PAGE_1" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA1_2" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA256_2" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA1_PAGE_2" />
<FileRuleRef RuleID="ID_DENY_ASIO_32_SHA256_PAGE_2" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA1" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA256" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA1_1" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA256_1" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA1_PAGE_1" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA256_PAGE_1" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA1_2" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA256_2" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA1_PAGE_2" />
<FileRuleRef RuleID="ID_DENY_ASIO_64_SHA256_PAGE_2" />
<FileRuleRef RuleID="ID_DENY_ASRDRV10_SHA1" />
<FileRuleRef RuleID="ID_DENY_ASRDRV10_SHA256" />
<FileRuleRef RuleID="ID_DENY_ASRDRV10_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASRDRV10_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASRDRV101_SHA1" />
<FileRuleRef RuleID="ID_DENY_ASRDRV101_SHA256" />
<FileRuleRef RuleID="ID_DENY_ASRDRV101_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASRDRV101_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASRDRV102_SHA1" />
<FileRuleRef RuleID="ID_DENY_ASRDRV102_SHA256" />
<FileRuleRef RuleID="ID_DENY_ASRDRV102_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASRDRV102_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASRDRV103_SHA1" />
<FileRuleRef RuleID="ID_DENY_ASRDRV103_SHA256" />
<FileRuleRef RuleID="ID_DENY_ASRDRV103_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASRDRV103_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_5A" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_5B" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_5C" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_5D" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_5E" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_5F" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_60" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_61" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_62" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_63" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_64" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_65" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_66" />
<FileRuleRef RuleID="ID_DENY_ASRDRV104_67" />
<FileRuleRef RuleID="ID_DENY_ASRSETUPDRV103_39" />
<FileRuleRef RuleID="ID_DENY_ASRSETUPDRV103_3A" />
<FileRuleRef RuleID="ID_DENY_ASRSETUPDRV103_3B" />
<FileRuleRef RuleID="ID_DENY_ASRSETUPDRV103_3C" />
<FileRuleRef RuleID="ID_DENY_ASRSETUPDRV103_3D" />
<FileRuleRef RuleID="ID_DENY_ASRSETUPDRV103_3E" />
<FileRuleRef RuleID="ID_DENY_ASRSETUPDRV103_3F" />
<FileRuleRef RuleID="ID_DENY_ASRSETUPDRV103_40" />
<FileRuleRef RuleID="ID_DENY_ATILLK_2" />
<FileRuleRef RuleID="ID_DENY_ATILLK_3" />
<FileRuleRef RuleID="ID_DENY_ATILLK_4" />
<FileRuleRef RuleID="ID_DENY_ATILLK_5" />
<FileRuleRef RuleID="ID_DENY_ATILLK_6" />
<FileRuleRef RuleID="ID_DENY_ATILLK_7" />
<FileRuleRef RuleID="ID_DENY_ATILLK_8" />
<FileRuleRef RuleID="ID_DENY_ATILLK_9" />
<FileRuleRef RuleID="ID_DENY_ATILLK_A" />
<FileRuleRef RuleID="ID_DENY_ATILLK_B" />
<FileRuleRef RuleID="ID_DENY_ATILLK_C" />
<FileRuleRef RuleID="ID_DENY_ATILLK_D" />
<FileRuleRef RuleID="ID_DENY_ATILLK_E" />
<FileRuleRef RuleID="ID_DENY_ATILLK_F" />
<FileRuleRef RuleID="ID_DENY_ATILLK_10" />
<FileRuleRef RuleID="ID_DENY_ATILLK_11" />
<FileRuleRef RuleID="ID_DENY_ATILLK_12" />
<FileRuleRef RuleID="ID_DENY_ATILLK_13" />
<FileRuleRef RuleID="ID_DENY_ATILLK_14" />
<FileRuleRef RuleID="ID_DENY_ATILLK_15" />
<FileRuleRef RuleID="ID_DENY_ATILLK_16" />
<FileRuleRef RuleID="ID_DENY_ATILLK_17" />
<FileRuleRef RuleID="ID_DENY_ATILLK_18" />
<FileRuleRef RuleID="ID_DENY_ATILLK_19" />
<FileRuleRef RuleID="ID_DENY_ATILLK_1A" />
<FileRuleRef RuleID="ID_DENY_ATILLK_1B" />
<FileRuleRef RuleID="ID_DENY_ATILLK_1C" />
<FileRuleRef RuleID="ID_DENY_ATILLK_1D" />
<FileRuleRef RuleID="ID_DENY_ATILLK_1E" />
<FileRuleRef RuleID="ID_DENY_ATILLK_1F" />
<FileRuleRef RuleID="ID_DENY_BANDAI_SHA1" />
<FileRuleRef RuleID="ID_DENY_BANDAI_SHA256" />
<FileRuleRef RuleID="ID_DENY_BANDAI_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_BANDAI_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO64_SHA1" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO64_SHA256" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_2" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_3" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_4" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_5" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_6" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_7" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_8" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_9" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_A" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_B" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_C" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_D" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_E" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_F" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_10" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_11" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_12" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_13" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_14" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_15" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_16" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_17" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_18" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_19" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_1A" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_1B" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_1C" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_1D" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_1E" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_1F" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_20" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_21" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_22" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_23" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_24" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_25" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_26" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_27" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_28" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_29" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_2A" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_2B" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_2C" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_2D" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_2E" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_2F" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_30" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_31" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_32" />
<FileRuleRef RuleID="ID_DENY_IOBITUNLOCKER_33" />
<FileRuleRef RuleID="ID_DENY_CAPCOM_SHA1" />
<FileRuleRef RuleID="ID_DENY_CAPCOM_SHA256" />
<FileRuleRef RuleID="ID_DENY_CAPCOM_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_CAPCOM_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_DBUTIL_32_SHA1" />
<FileRuleRef RuleID="ID_DENY_DBUTIL_32_SHA256" />
<FileRuleRef RuleID="ID_DENY_DBUTIL_32_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_DBUTIL_32_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_DBUTIL_64_SHA1" />
<FileRuleRef RuleID="ID_DENY_DBUTIL_64_SHA256" />
<FileRuleRef RuleID="ID_DENY_DBUTIL_64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_DBUTIL_64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_FIDDRV_SHA1" />
<FileRuleRef RuleID="ID_DENY_FIDDRV_SHA256" />
<FileRuleRef RuleID="ID_DENY_FIDDRV_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_FIDDRV_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_FIDDRV64_SHA1" />
<FileRuleRef RuleID="ID_DENY_FIDDRV64_SHA256" />
<FileRuleRef RuleID="ID_DENY_FIDDRV64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_FIDDRV64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_FIDPCIDRV_SHA1" />
<FileRuleRef RuleID="ID_DENY_FIDPCIDRV_SHA256" />
<FileRuleRef RuleID="ID_DENY_FIDPCIDRV_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_FIDPCIDRV_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_FIDPCIDRV64_SHA1" />
<FileRuleRef RuleID="ID_DENY_FIDPCIDRV64_SHA256" />
<FileRuleRef RuleID="ID_DENY_FIDPCIDRV64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_FIDPCIDRV64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_GLCKIO2_SHA1" />
<FileRuleRef RuleID="ID_DENY_GLCKIO2_SHA256" />
<FileRuleRef RuleID="ID_DENY_GLCKIO2_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_GLCKIO2_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_GMER_1" />
<FileRuleRef RuleID="ID_DENY_GMER_2" />
<FileRuleRef RuleID="ID_DENY_GMER_3" />
<FileRuleRef RuleID="ID_DENY_GMER_4" />
<FileRuleRef RuleID="ID_DENY_GMER_5" />
<FileRuleRef RuleID="ID_DENY_GMER_6" />
<FileRuleRef RuleID="ID_DENY_GVCIDRV64_SHA1" />
<FileRuleRef RuleID="ID_DENY_GVCIDRV64_SHA256" />
<FileRuleRef RuleID="ID_DENY_GVCIDRV64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_GVCIDRV64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_WINFLASH64_SHA1" />
<FileRuleRef RuleID="ID_DENY_WINFLASH64_SHA256" />
<FileRuleRef RuleID="ID_DENY_WINFLASH64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_WINFLASH64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_1" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_2" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_3" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_4" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_5" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_6" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_7" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_8" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_9" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_A" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_B" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_C" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_11" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_12" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_13" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_14" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_15" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_16" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_17" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_18" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_19" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_1A" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_1B" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_1C" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_1D" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_1E" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_1F" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_20" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_21" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_22" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_23" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_24" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_25" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_26" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_27" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_28" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_29" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_2A" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_2B" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_2C" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_2D" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_2E" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_2F" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_30" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_31" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_32" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_33" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_34" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_35" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_36" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_37" />
<FileRuleRef RuleID="ID_DENY_AMIFLDRV_38" />
<FileRuleRef RuleID="ID_DENY_ASIO_1"/>
<FileRuleRef RuleID="ID_DENY_ASIO_2"/>
<FileRuleRef RuleID="ID_DENY_ASIO_3"/>
<FileRuleRef RuleID="ID_DENY_ASIO_4"/>
<FileRuleRef RuleID="ID_DENY_ASIO_5"/>
<FileRuleRef RuleID="ID_DENY_ASIO_6"/>
<FileRuleRef RuleID="ID_DENY_ASUPIO64_SHA1" />
<FileRuleRef RuleID="ID_DENY_ASUPIO64_SHA256" />
<FileRuleRef RuleID="ID_DENY_ASUPIO64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_ASUPIO64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_22" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_23" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_24" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_25" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_26" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_27" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_28" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_29" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_2A" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_2B" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_2C" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_2D" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_2E" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_2F" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_30" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_31" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_32" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_33" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_34" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_35" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_36" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_37" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_38" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_39" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_3A" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_3B" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_3C" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_3D" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_3E" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_3F" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_40" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_41" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_42" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_43" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_44" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_45" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_46" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_47" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_48" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_49" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_4A" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_4B" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_4C" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_4D" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_4E" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_4F" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_50" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_51" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_52" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_53" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_54" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_55" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_56" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_57" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_58" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_59" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_5A" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_5B" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_5C" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_5D" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_5E" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_5F" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_60" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_61" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_62" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_63" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_64" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_65" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_66" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_67" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_68" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_69" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_6A" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_6B" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_6C" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_6D" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_6E" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_6F" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_70" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_71" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_72" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_73" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_74" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_75" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_76" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_77" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_78" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_79" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_7A" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_7B" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_7C" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_7D" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_7E" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_7F" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_80" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_81" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_82" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_83" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_84" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_85" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_86" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_87" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_88" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_89" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_8A" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_8B" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_8C" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_8D" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_8E" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_8F" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_90" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_91" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_92" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_93" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_94" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_95" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_96" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_97" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_98" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_99" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_9A" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_9B" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_9C" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_9D" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_9E" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_9F" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A0" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A1" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A2" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A3" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A4" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A5" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A6" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A7" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A8" />
<FileRuleRef RuleID="ID_DENY_BEDAISY_A9" />
<FileRuleRef RuleID="ID_DENY_BSFLASH64_SHA1" />
<FileRuleRef RuleID="ID_DENY_BSFLASH64_SHA256" />
<FileRuleRef RuleID="ID_DENY_BSFLASH64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_BSFLASH64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_BSHWMIO64_SHA1" />
<FileRuleRef RuleID="ID_DENY_BSHWMIO64_SHA256" />
<FileRuleRef RuleID="ID_DENY_BSHWMIO64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_BSHWMIO64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_BSHWMIO64_SHA1_1" />
<FileRuleRef RuleID="ID_DENY_BSHWMIO64_SHA256_1" />
<FileRuleRef RuleID="ID_DENY_BSHWMIO64_SHA1_PAGE_1" />
<FileRuleRef RuleID="ID_DENY_BSHWMIO64_SHA256_PAGE_1" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_08" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_09" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_10" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_11" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_12" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_13" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_14" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_15" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_16" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_17" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_18" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_19" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_1A" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_1B" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_1C" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_1D" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_1E" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_1F" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_20" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_21" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_22" />
<FileRuleRef RuleID="ID_DENY_BS_RCIO_23" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_1" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_2" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_3" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_4" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_5" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_6" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_8" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_9" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_10"/>
<FileRuleRef RuleID="ID_DENY_DHKERNEL_11" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_12" />
<FileRuleRef RuleID="ID_DENY_DHKERNEL_13" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_12" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_13" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_14" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_15" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_16" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_17" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_18" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_19" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_1A" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_1B" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_1C" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_1D" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_1E" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_1F" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_20" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_21" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_22" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_23" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_24" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_25" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_26" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_27" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_28" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_29" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_2A" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_2B" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_2C" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_2D" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_2E" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_2F" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_30" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_31" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_32" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_33" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_34" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_35" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_36" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_37" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_38" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_39" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_3A" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_3B" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_42" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_43" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_44" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_45" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_46" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_47" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_48" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_49" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_4A" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_4B" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_4C" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_4D" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_4E" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_4F" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_50" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_51" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_52" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_53" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_54" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_55" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_56" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_57" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_58" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_59" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_5A" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_5B" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_5C" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_5D" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_5E" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_5F" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_60" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_61" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_62" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_63" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_64" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_65" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_66" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_67" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_68" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_69" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_6A" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_6B" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_6C" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_6D" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_6E" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_6F" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_70" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_71" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_72" />
<FileRuleRef RuleID="ID_DENY_DIRECTIO_73" />
<FileRuleRef RuleID="ID_DENY_ECHO_1" />
<FileRuleRef RuleID="ID_DENY_ECHO_2" />
<FileRuleRef RuleID="ID_DENY_ECHO_3" />
<FileRuleRef RuleID="ID_DENY_ECHO_4" />
<FileRuleRef RuleID="ID_DENY_ECHO_5" />
<FileRuleRef RuleID="ID_DENY_ECHO_6" />
<FileRuleRef RuleID="ID_DENY_ECHO_7" />
<FileRuleRef RuleID="ID_DENY_ECHO_8" />
<FileRuleRef RuleID="ID_DENY_ECHO_9" />
<FileRuleRef RuleID="ID_DENY_ECHO_A" />
<FileRuleRef RuleID="ID_DENY_ECHO_B" />
<FileRuleRef RuleID="ID_DENY_ECHO_C" />
<FileRuleRef RuleID="ID_DENY_EIO64_1" />
<FileRuleRef RuleID="ID_DENY_EIO64_2" />
<FileRuleRef RuleID="ID_DENY_EIO64_3" />
<FileRuleRef RuleID="ID_DENY_EIO64_4" />
<FileRuleRef RuleID="ID_DENY_EIO64_5" />
<FileRuleRef RuleID="ID_DENY_EIO64_6" />
<FileRuleRef RuleID="ID_DENY_EIO64_7" />
<FileRuleRef RuleID="ID_DENY_EIO64_8" />
<FileRuleRef RuleID="ID_DENY_HW_22" />
<FileRuleRef RuleID="ID_DENY_HW_23" />
<FileRuleRef RuleID="ID_DENY_HW_24" />
<FileRuleRef RuleID="ID_DENY_HW_25" />
<FileRuleRef RuleID="ID_DENY_HWRWDRV_2" />
<FileRuleRef RuleID="ID_DENY_HWRWDRV_3" />
<FileRuleRef RuleID="ID_DENY_HWRWDRV_4" />
<FileRuleRef RuleID="ID_DENY_HWRWDRV_5" />
<FileRuleRef RuleID="ID_DENY_HWRWDRV_6" />
<FileRuleRef RuleID="ID_DENY_HWRWDRV_7" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_11" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_12" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_13" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_14" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_15" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_16" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_17" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_18" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_19" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_1A" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_1B" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_1C" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_1D" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_1E" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_1F" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_20" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_21" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_22" />
<FileRuleRef RuleID="ID_DENY_INPOUTX_23" />
<FileRuleRef RuleID="ID_DENY_KLMD" />
<FileRuleRef RuleID="ID_DENY_LGCORETEMP_1" />
<FileRuleRef RuleID="ID_DENY_LGCORETEMP_2" />
<FileRuleRef RuleID="ID_DENY_LGCORETEMP_3" />
<FileRuleRef RuleID="ID_DENY_LGCORETEMP_4" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_1" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_2" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_3" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_4" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_5" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_6" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_7" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_8" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_9" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_A" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_B" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_C" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_D" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_E" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_F" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_10" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_11" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_12" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_13" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_14" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_15" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_16" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_17" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_18" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_19" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_1A" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_1B" />
<FileRuleRef RuleID="ID_DENY_MHYPROT2_1C" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_11" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_12" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_13" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_14" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_15" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_16" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_17" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_18" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_19" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_1A" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_1B" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_1C" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_1D" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_1E" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_1F" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_20" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_21" />
<FileRuleRef RuleID="ID_DENY_MHYPROT3_22" />
<FileRuleRef RuleID="ID_DENY_MHYPROTECT_1" />
<FileRuleRef RuleID="ID_DENY_MHYPROTECT_2" />
<FileRuleRef RuleID="ID_DENY_MHYPROTECT_3" />
<FileRuleRef RuleID="ID_DENY_MHYPROTECT_4" />
<FileRuleRef RuleID="ID_DENY_MHYPROTECT_5" />
<FileRuleRef RuleID="ID_DENY_MHYPROTECT_6" />
<FileRuleRef RuleID="ID_DENY_MHYPROTECT_7" />
<FileRuleRef RuleID="ID_DENY_MHYPROTECT_8" />
<FileRuleRef RuleID="ID_DENY_MHYPROTNAP_1" />
<FileRuleRef RuleID="ID_DENY_MHYPROTNAP_2" />
<FileRuleRef RuleID="ID_DENY_MHYPROTNAP_3" />
<FileRuleRef RuleID="ID_DENY_MHYPROTNAP_4" />
<FileRuleRef RuleID="ID_DENY_MHYPROTRG_1" />
<FileRuleRef RuleID="ID_DENY_MHYPROTRG_2" />
<FileRuleRef RuleID="ID_DENY_MHYPROTRG_3" />
<FileRuleRef RuleID="ID_DENY_MHYPROTRG_4" />
<FileRuleRef RuleID="ID_DENY_MHYPROTRG_5" />
<FileRuleRef RuleID="ID_DENY_MHYPROTRG_6" />
<FileRuleRef RuleID="ID_DENY_MHYPROTRG_7" />
<FileRuleRef RuleID="ID_DENY_MHYPROTRG_8" />
<FileRuleRef RuleID="ID_DENY_MSIO_1" />
<FileRuleRef RuleID="ID_DENY_MSIO_2" />
<FileRuleRef RuleID="ID_DENY_MSIO_3" />
<FileRuleRef RuleID="ID_DENY_MSIO_4" />
<FileRuleRef RuleID="ID_DENY_MSIO_5" />
<FileRuleRef RuleID="ID_DENY_MSIO_6" />
<FileRuleRef RuleID="ID_DENY_MSIO_7" />
<FileRuleRef RuleID="ID_DENY_MSIO_8" />
<FileRuleRef RuleID="ID_DENY_MSIO_9" />
<FileRuleRef RuleID="ID_DENY_MSIO_10" />
<FileRuleRef RuleID="ID_DENY_MSIO_11" />
<FileRuleRef RuleID="ID_DENY_MSIO_12" />
<FileRuleRef RuleID="ID_DENY_MSR_1" />
<FileRuleRef RuleID="ID_DENY_MSR_2" />
<FileRuleRef RuleID="ID_DENY_MSR_3" />
<FileRuleRef RuleID="ID_DENY_MSR_4" />
<FileRuleRef RuleID="ID_DENY_MSR_5" />
<FileRuleRef RuleID="ID_DENY_MSR_6" />
<FileRuleRef RuleID="ID_DENY_MSR_7" />
<FileRuleRef RuleID="ID_DENY_MSR_8" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_1" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_2" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_3" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_4" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_5" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_6" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_7" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_8" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_9" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_A" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_B" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_C" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_D" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_E" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_F" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_10" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_11" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_12" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_13" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_14" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_15" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_16" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_17" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_18" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_19" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_1A" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_1B" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_1C" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_1D" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_1E" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_1F" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_20" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_21" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_22" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_23" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_24" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_25" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_26" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_27" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_28" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_29" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_2A" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_2B" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_2C" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_2D" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_2E" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_2F" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_30" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_31" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_32" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_33" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_34" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_35" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_36" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_37" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_38" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_39" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_3A" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_3B" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_3C" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_3D" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_3E" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_3F" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_40" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_41" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_42" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_43" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_44" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_45" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_46" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_47" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_48" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_49" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_4A" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_4B" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_4C" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_4D" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_4E" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_4F" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_50" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_51" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_52" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_53" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_54" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_55" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_56" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_57" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_58" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_59" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_5A" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_5B" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_5C" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_5D" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_5E" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_5F" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_60" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_61" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_62" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_63" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_64" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_65" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_66" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_67" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_68" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_69" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_6A" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_6B" />
<FileRuleRef RuleID="ID_DENY_NVFLASH_6C" />
<FileRuleRef RuleID="ID_DENY_OTIPCIBUS_1" />
<FileRuleRef RuleID="ID_DENY_OTIPCIBUS_2" />
<FileRuleRef RuleID="ID_DENY_OTIPCIBUS_3" />
<FileRuleRef RuleID="ID_DENY_OTIPCIBUS_4" />
<FileRuleRef RuleID="ID_DENY_PCHUNTER_3" />
<FileRuleRef RuleID="ID_DENY_PCHUNTER_4" />
<FileRuleRef RuleID="ID_DENY_PCHUNTER_5" />
<FileRuleRef RuleID="ID_DENY_PCHUNTER_6" />
<FileRuleRef RuleID="ID_DENY_PIDDRV_SHA1" />
<FileRuleRef RuleID="ID_DENY_PIDDRV_SHA256" />
<FileRuleRef RuleID="ID_DENY_PIDDRV_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_PIDDRV_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_PIDDRV64_SHA1" />
<FileRuleRef RuleID="ID_DENY_PIDDRV64_SHA256" />
<FileRuleRef RuleID="ID_DENY_PIDDRV64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_PIDDRV64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_PHYDMACC_1" />
<FileRuleRef RuleID="ID_DENY_PHYDMACC_2" />
<FileRuleRef RuleID="ID_DENY_PHYDMACC_3" />
<FileRuleRef RuleID="ID_DENY_PHYDMACC_4" />
<FileRuleRef RuleID="ID_DENY_PHYDMACC_5" />
<FileRuleRef RuleID="ID_DENY_PHYDMACC_6" />
<FileRuleRef RuleID="ID_DENY_PHYMEMX64_SHA1" />
<FileRuleRef RuleID="ID_DENY_PHYMEMX64_SHA256" />
<FileRuleRef RuleID="ID_DENY_PHYMEMX64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_PHYMEMX64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_SEMAV6MSR64_SHA1" />
<FileRuleRef RuleID="ID_DENY_SEMAV6MSR64_SHA256" />
<FileRuleRef RuleID="ID_DENY_SEMAV6MSR64_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_SEMAV6MSR64_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_WINRING0_SHA1" />
<FileRuleRef RuleID="ID_DENY_WINRING0_SHA256" />
<FileRuleRef RuleID="ID_DENY_WINRING0_SHA1_PAGE" />
<FileRuleRef RuleID="ID_DENY_WINRING0_SHA256_PAGE" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_1" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_2" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_3" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_4" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_5" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_6" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_7" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_8" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_9" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_10" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_11" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_12" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_13" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_14" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_15" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_16" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_17" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_18" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_19" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_20" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_21" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_22" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_23" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_24" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_25" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_26" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_27" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_28" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_29" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_30" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_31" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_32" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_33" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_34" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_35" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_36" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_37" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_38" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_39" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_40" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_41" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_42" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_43" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_44" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_45" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_46" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_47" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_48" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_49" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_50" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_51" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_52" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_53" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_54" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_55" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_56" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_57" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_58" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_59" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_60" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_61" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_62" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_63" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_64" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_65" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_66" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_67" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_68" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_69" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_70" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_71" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA1_72" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_1" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_2" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_3" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_4" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_5" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_6" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_7" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_8" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_9" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_10" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_11" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_12" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_13" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_14" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_15" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_16" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_17" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_18" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_19" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_20" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_21" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_22" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_23" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_24" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_25" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_26" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_27" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_28" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_29" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_30" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_31" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_32" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_33" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_34" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_35" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_36" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_37" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_38" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_39" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_40" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_41" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_42" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_43" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_44" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_45" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_46" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_47" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_48" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_49" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_50" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_51" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_52" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_53" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_54" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_55" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_56" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_57" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_58" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_59" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_60" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_61" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_62" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_63" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_64" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_65" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_66" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_67" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_68" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_69" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_70" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_71" />
<FileRuleRef RuleID="ID_DENY_RETLIFTEN_SHA256_72" />
<FileRuleRef RuleID="ID_DENY_RTCORE_29" />
<FileRuleRef RuleID="ID_DENY_RTCORE_2A" />
<FileRuleRef RuleID="ID_DENY_RTCORE_2B" />
<FileRuleRef RuleID="ID_DENY_RTCORE_2C" />
<FileRuleRef RuleID="ID_DENY_RTCORE_2D" />
<FileRuleRef RuleID="ID_DENY_RTCORE_2E" />
<FileRuleRef RuleID="ID_DENY_RTCORE_2F" />
<FileRuleRef RuleID="ID_DENY_RTCORE_30" />
<FileRuleRef RuleID="ID_DENY_RTCORE_31" />
<FileRuleRef RuleID="ID_DENY_RTCORE_32" />
<FileRuleRef RuleID="ID_DENY_RTCORE_33" />
<FileRuleRef RuleID="ID_DENY_RTCORE_34" />
<FileRuleRef RuleID="ID_DENY_RTCORE_35" />
<FileRuleRef RuleID="ID_DENY_RTCORE_36" />
<FileRuleRef RuleID="ID_DENY_RTCORE_37" />
<FileRuleRef RuleID="ID_DENY_RTCORE_38" />
<FileRuleRef RuleID="ID_DENY_RTCORE_39" />
<FileRuleRef RuleID="ID_DENY_RTCORE_3A" />
<FileRuleRef RuleID="ID_DENY_RTCORE_3B" />
<FileRuleRef RuleID="ID_DENY_RTCORE_3C" />
<FileRuleRef RuleID="ID_DENY_RTCORE_3D" />
<FileRuleRef RuleID="ID_DENY_RTCORE_3E" />
<FileRuleRef RuleID="ID_DENY_RTCORE_3F" />
<FileRuleRef RuleID="ID_DENY_RTCORE_40" />
<FileRuleRef RuleID="ID_DENY_RTCORE_41" />
<FileRuleRef RuleID="ID_DENY_RTCORE_42" />
<FileRuleRef RuleID="ID_DENY_RTCORE_43" />
<FileRuleRef RuleID="ID_DENY_RTCORE_44" />
<FileRuleRef RuleID="ID_DENY_RTCORE_45" />
<FileRuleRef RuleID="ID_DENY_RTCORE_46" />
<FileRuleRef RuleID="ID_DENY_RTCORE_47" />
<FileRuleRef RuleID="ID_DENY_RTCORE_48" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_2" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_3" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_4" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_5" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_6" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_7" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_8" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_9" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_A" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_B" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_C" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_D" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_E" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_F" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_10" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_11" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_12" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_13" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_14" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_15" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_16" />
<FileRuleRef RuleID="ID_DENY_SUPERBMC_17" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_1" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_2" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_3" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_4" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_5" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_6" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_7" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_8" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_9" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_A" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_B" />
<FileRuleRef RuleID="ID_DENY_SYSDRV3S_C" />
<FileRuleRef RuleID="ID_DENY_SYSINFO_1" />
<FileRuleRef RuleID="ID_DENY_SYSINFO_2" />
<FileRuleRef RuleID="ID_DENY_SYSINFO_3" />
<FileRuleRef RuleID="ID_DENY_SYSINFO_4" />
<FileRuleRef RuleID="ID_DENY_SYSINFO_5" />
<FileRuleRef RuleID="ID_DENY_SYSINFO_6" />
<FileRuleRef RuleID="ID_DENY_SYSINFO_7" />
<FileRuleRef RuleID="ID_DENY_SYSINFO_8" />
<FileRuleRef RuleID="ID_DENY_WINIO_1" />
<FileRuleRef RuleID="ID_DENY_WINIO_2" />
<FileRuleRef RuleID="ID_DENY_WINIO_3" />
<FileRuleRef RuleID="ID_DENY_WINIO_4" />
<FileRuleRef RuleID="ID_DENY_WINIO_5" />
<FileRuleRef RuleID="ID_DENY_WINIO_6" />
<FileRuleRef RuleID="ID_DENY_WINIO_7" />
<FileRuleRef RuleID="ID_DENY_WINIO_8" />
<FileRuleRef RuleID="ID_DENY_WINIO_9" />
<FileRuleRef RuleID="ID_DENY_WINIO_10" />
<FileRuleRef RuleID="ID_DENY_WINIO_11" />
<FileRuleRef RuleID="ID_DENY_WINIO_12" />
<FileRuleRef RuleID="ID_DENY_WINIO_13" />
<FileRuleRef RuleID="ID_DENY_WINIO_14" />
<FileRuleRef RuleID="ID_DENY_WINIO_15" />
<FileRuleRef RuleID="ID_DENY_WINIO_16" />
<FileRuleRef RuleID="ID_DENY_WINIO_17" />
<FileRuleRef RuleID="ID_DENY_WINIO_18" />
<FileRuleRef RuleID="ID_DENY_WINIO_19" />
<FileRuleRef RuleID="ID_DENY_WINIO_20" />
<FileRuleRef RuleID="ID_DENY_WINIO_21" />
<FileRuleRef RuleID="ID_DENY_WINIO_22" />
<FileRuleRef RuleID="ID_DENY_WINIO_23" />
<FileRuleRef RuleID="ID_DENY_WINIO_24" />
<FileRuleRef RuleID="ID_DENY_WINIO_25" />
<FileRuleRef RuleID="ID_DENY_WINIO_26" />
<FileRuleRef RuleID="ID_DENY_WINIO_27" />
<FileRuleRef RuleID="ID_DENY_WINIO_28" />
<FileRuleRef RuleID="ID_DENY_WINIO_29" />
<FileRuleRef RuleID="ID_DENY_WINIO_30" />
<FileRuleRef RuleID="ID_DENY_WINIO_31" />
<FileRuleRef RuleID="ID_DENY_WINIO_32" />
<FileRuleRef RuleID="ID_DENY_WINIO_33" />
<FileRuleRef RuleID="ID_DENY_WINIO_34" />
<FileRuleRef RuleID="ID_DENY_PROCESSHACKER" />
<FileRuleRef RuleID="ID_DENY_AMP" />
<FileRuleRef RuleID="ID_DENY_ASMMAP" />
<FileRuleRef RuleID="ID_DENY_ASMMAP_64" />
<FileRuleRef RuleID="ID_DENY_DBK_32" />
<FileRuleRef RuleID="ID_DENY_DBK_64" />
<FileRuleRef RuleID="ID_DENY_GDRV" />
<FileRuleRef RuleID="ID_DENY_PCHUNTER_1" />
<FileRuleRef RuleID="ID_DENY_PCHUNTER_2" />
<FileRuleRef RuleID="ID_DENY_PHYMEMX_64" />
</FileRulesRef>
</ProductSigners>
</SigningScenario>
<SigningScenario Value="12" ID="ID_SIGNINGSCENARIO_WINDOWS"
FriendlyName="Auto generated policy on 09-19-2022">
<ProductSigners>
<FileRulesRef>
<FileRuleRef RuleID="ID_ALLOW_ALL_2" />
</FileRulesRef>
</ProductSigners>
</SigningScenario>
</SigningScenarios>
<UpdatePolicySigners />
<CiSigners />
<HvciOptions>0</HvciOptions>
<Settings>
<Setting Provider="PolicyInfo" Key="Information" ValueName="Name">
<Value>
<String>Microsoft Windows Driver Policy</String>
</Value>
</Setting>
<Setting Provider="PolicyInfo" Key="Information" ValueName="Id">
<Value>
<String>10.0.25930.0</String>
</Value>
</Setting>
</Settings>
<PolicyTypeID>{A244370E-44C9-4C06-B551-F6016E563076}</PolicyTypeID>
</SiPolicy>
More information
Merge Windows Defender Application Control policies
Microsoft Defender Application Guard
overview
Article • 07/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Microsoft Defender Application Guard (MDAG) is designed to help prevent old and
newly emerging attacks to help keep employees productive. Using our unique hardware
isolation approach, our goal is to destroy the playbook that attackers use by making
current attack methods obsolete.
For Microsoft Office, Application Guard helps prevents untrusted Word, PowerPoint and
Excel files from accessing trusted resources. Application Guard opens untrusted files in
an isolated Hyper-V-enabled container. The isolated Hyper-V container is separate from
the host operating system. This container isolation means that if the untrusted site or
file turns out to be malicious, the host device is protected, and the attacker can't get to
your enterprise data. For example, this approach makes the isolated container
anonymous, so an attacker can't get to your employee's enterprise credentials.
What types of devices should use Application Guard?
Application Guard has been created to target several types of devices:
Enterprise mobile laptops. These laptops are domain-joined and managed by your
organization. Configuration management is primarily done through Microsoft
Configuration Manager or Microsoft Intune. Employees typically have Standard
User privileges and use a high-bandwidth, wireless, corporate network.
Bring your own device (BYOD) mobile laptops. These personally owned laptops
aren't domain-joined, but are managed by your organization through tools, such
as Microsoft Intune. The employee is typically an admin on the device and uses a
high-bandwidth wireless corporate network while at work and a comparable
personal network while at home.
Personal devices. These personally owned desktops or mobile laptops aren't
domain-joined or managed by an organization. The user is an admin on the device
and uses a high-bandwidth wireless personal network while at home or a
comparable public network while outside.
Microsoft Defender Application Guard (MDAG) for Edge standalone mode license
entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
For more information about Microsoft Defender Application Guard (MDAG) for Edge
enterprise mode, Configure Microsoft Defender Application Guard policy settings.
Related articles
Article Description
System requirements for Microsoft Specifies the prerequisites necessary to install and use
Defender Application Guard Application Guard.
Prepare and install Microsoft Provides instructions about determining which mode to
Defender Application Guard use, either Standalone or Enterprise-managed, and how to
install Application Guard in your organization.
Configure the Group Policy settings Provides info about the available Group Policy and MDM
for Microsoft Defender Application settings.
Guard
Testing scenarios using Microsoft Provides a list of suggested testing scenarios that you can
Defender Application Guard in your use to test Application Guard in your organization.
business or organization
Article Description
Microsoft Defender Application Describes the Application Guard extension for Chrome
Guard Extension for web browsers and Firefox, including known issues, and a
troubleshooting guide
Use a network boundary to add Network boundary, a feature that helps you protect your
trusted sites on Windows devices in environment from sites that aren't trusted by your
Microsoft Intune organization.
Microsoft Defender Application Guard
overview
Article • 07/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Microsoft Defender Application Guard (MDAG) is designed to help prevent old and
newly emerging attacks to help keep employees productive. Using our unique hardware
isolation approach, our goal is to destroy the playbook that attackers use by making
current attack methods obsolete.
For Microsoft Office, Application Guard helps prevents untrusted Word, PowerPoint and
Excel files from accessing trusted resources. Application Guard opens untrusted files in
an isolated Hyper-V-enabled container. The isolated Hyper-V container is separate from
the host operating system. This container isolation means that if the untrusted site or
file turns out to be malicious, the host device is protected, and the attacker can't get to
your enterprise data. For example, this approach makes the isolated container
anonymous, so an attacker can't get to your employee's enterprise credentials.
What types of devices should use Application Guard?
Application Guard has been created to target several types of devices:
Enterprise mobile laptops. These laptops are domain-joined and managed by your
organization. Configuration management is primarily done through Microsoft
Configuration Manager or Microsoft Intune. Employees typically have Standard
User privileges and use a high-bandwidth, wireless, corporate network.
Bring your own device (BYOD) mobile laptops. These personally owned laptops
aren't domain-joined, but are managed by your organization through tools, such
as Microsoft Intune. The employee is typically an admin on the device and uses a
high-bandwidth wireless corporate network while at work and a comparable
personal network while at home.
Personal devices. These personally owned desktops or mobile laptops aren't
domain-joined or managed by an organization. The user is an admin on the device
and uses a high-bandwidth wireless personal network while at home or a
comparable public network while outside.
Microsoft Defender Application Guard (MDAG) for Edge standalone mode license
entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
For more information about Microsoft Defender Application Guard (MDAG) for Edge
enterprise mode, Configure Microsoft Defender Application Guard policy settings.
Related articles
Article Description
System requirements for Microsoft Specifies the prerequisites necessary to install and use
Defender Application Guard Application Guard.
Prepare and install Microsoft Provides instructions about determining which mode to
Defender Application Guard use, either Standalone or Enterprise-managed, and how to
install Application Guard in your organization.
Configure the Group Policy settings Provides info about the available Group Policy and MDM
for Microsoft Defender Application settings.
Guard
Testing scenarios using Microsoft Provides a list of suggested testing scenarios that you can
Defender Application Guard in your use to test Application Guard in your organization.
business or organization
Article Description
Microsoft Defender Application Describes the Application Guard extension for Chrome
Guard Extension for web browsers and Firefox, including known issues, and a
troubleshooting guide
Use a network boundary to add Network boundary, a feature that helps you protect your
trusted sites on Windows devices in environment from sites that aren't trusted by your
Microsoft Intune organization.
Microsoft Edge support for Microsoft
Defender Application Guard
Article • 08/21/2023
7 Note
Microsoft Edge for Business is now available in Edge stable version 116! Learn
more about the new, dedicated work experience with native enterprise grade
security, productivity, manageability, and AI built in.
This article describes how Microsoft Edge supports Microsoft Defender Application
Guard (Application Guard).
7 Note
Overview
Security architects in the enterprise must deal with the tension that exists between
productivity and security. It's relatively easy to lock down a browser and only allow a
handful of trusted sites to load. This approach will improve the overall security posture
but is arguably less productive. If you make it less restrictive to improve productivity,
you increase the risk profile. It's a hard balance to strike!
It's even harder to keep up with new emerging threats in this constantly changing threat
landscape. Browsers remain the primary attack surface on client devices because the
browser's basic job is to let users access, download, and open untrusted content from
untrusted sources. Malicious actors are constantly working to social engineer new forms
of attacks against the browser. Security incident prevention or detection/response
strategies can't guarantee 100% safety.
A key security strategy to consider is the Assume Breach Methodology, which means
there's an acceptance that an attack is going to succeed at least once regardless of
efforts to prevent it. This mindset requires building defenses to contain the damage,
which ensures that corporate network and other resources remain protected in this
scenario. Deploying Application Guard for Microsoft Edge fits right into this strategy.
About Application Guard
Designed for Windows 10 and Microsoft Edge, Application Guard uses a hardware
isolation approach. This approach lets untrusted site navigation launch inside a
container. Hardware isolation helps enterprises safeguard their corporate network and
data in case users visit a site that is compromised or is malicious.
The enterprise administrator defines what are trusted sites, cloud resources, and internal
networks. Everything that's not in the trusted sites list is considered untrusted. These
sites are isolated from the corporate network and data on the user's device.
watch our video Microsoft Edge browser isolation using Application Guard
read What is Application Guard and how does it work?
The next screenshot shows an example of Application Guard's message showing that
the user is browsing in a safe space.
What's new
Application Guard support in the new Microsoft Edge browser has functional parity with
Microsoft Edge Legacy and includes several improvements.
Enable Upload Blocking
Starting from Microsoft Edge 96, admins now have the option to block uploads while in
the container, meaning that users cannot upload files from their local device to their
Application Guard instance. This support can be controlled via policy. You can update
the Edge policy ApplicationGuardUploadBlockingEnabled to enable or disable uploads
in the container.
7 Note
This policy ONLY impacts Edge, so navigations from other browsers might get
redirected to the Application Guard Container if you have the corresponding
extensions enabled.
This support can be controlled via policy. You can update the Edge policy
ApplicationGuardFavoritesSyncEnabled to enable or disable favorites sync.
7 Note
For security reasons, favorites sync is only possible from the host to the container
and not the other way around. To ensure a unified list of favorites across the host
and the container, we have disabled favorites management inside the container.
Starting with Microsoft Edge version 91, there's built in support to tag network traffic
originating from Application Guard containers, allowing enterprises to use proxy to filter
out traffic and apply specific policies. You can use the header to identify which traffic is
through the container or the host using ApplicationGuardTrafficIdentificationEnabled.
Extension installs in the container is now supported, starting from Microsoft Edge
version 81. This support can be controlled via policy. The updateURL that gets used in
ExtensionInstallForcelist policy should be added as Neutral Resources in the Network
Isolation policies used by Application Guard.
7 Note
It's also possible to manually install individual extensions inside the container from
the extension store. Manually installed extensions will only persist in the container
when Allow Persistence policy is enabled.
The next screenshot shows a multiple tab diagnostics page to help diagnose user
reported issues on the device.
Microsoft Edge updates in the container
Microsoft Edge Legacy updates in the container are part of the Windows OS update
cycle. Because the new version of Microsoft Edge updates itself independent of the
Windows OS, there is no longer any dependency on container updates. The channel and
version of the host Microsoft Edge is replicated inside the container.
Prerequisites
The following requirements apply to devices using Application Guard with Microsoft
Edge:
7 Note
See also
Microsoft Edge Enterprise landing page
Microsoft Defender Advanced Threat Protection
Video: Microsoft Edge browser isolation using Application Guard
WindowsDefenderApplicationGuard
CSP
Article • 08/14/2023
No Yes No Yes
Microsoft Defender Application Guard (MDAG) configure via MDM license entitlements
are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard
Audit
AuditApplicationGuard
InstallWindowsDefenderApplicationGuard
PlatformStatus
Settings
AllowCameraMicrophoneRedirection
AllowPersistence
AllowVirtualGPU
AllowWindowsDefenderApplicationGuard
BlockNonEnterpriseContent
CertificateThumbprints
ClipboardFileType
ClipboardSettings
PrintingSettings
SaveFilesToHost
Status
Audit
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Audit
Format node
Audit/AuditApplicationGuard
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Audit/AuditApplicationG
uard
This policy setting allows you to decide whether auditing events can be collected from
Application Guard.
Format int
Default Value 0
Allowed values:
Value Description
1 Application Guard inherits its auditing policies from system and starts to audit
security events for Application Guard container.
Name Value
Name AppHVSI_AuditApplicationGuardConfig
InstallWindowsDefenderApplicationGuard
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/InstallWindowsDefenderA
pplicationGuard
Allowed values:
Value Description
PlatformStatus
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/PlatformStatus
Returns bitmask that indicates status of Application Guard platform installation and
prerequisites on the device. Bit 0 - Set to 1 when Application Guard is enabled into
enterprise manage mode. Bit 1 - Set to 1 when the client machine is Hyper-V capable.
Bit 2 - Reserved for Microsoft. Bit 3 - Set to 1 when Application Guard is installed on the
client machine. Bit 4 - Reserved for Microsoft. Bit 5 - Set to 1 when the client machine
meets minimum hardware requirements.
Format int
Settings
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings
Format node
Settings/AllowCameraMicrophoneRedirection
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/AllowCameraMic
rophoneRedirection
This policy setting allows you to determine whether applications inside Microsoft
Defender Application Guard can access the device's camera and microphone when these
settings are enabled on the user's device.
If you enable this policy setting, applications inside Microsoft Defender Application
Guard will be able to access the camera and microphone on the user's device.
If you disable or don't configure this policy setting, applications inside Microsoft
Defender Application Guard will be unable to access the camera and microphone
on the user's device.
Format int
Default Value 0
Allowed values:
Value Description
0 Microsoft Defender Application Guard can't access the device’s camera and
(Default) microphone. When the policy isn't configured, it's the same as disabled (0).
Name AppHVSI_AllowCameraMicrophoneRedirectionConfig
Friendly Name Allow camera and microphone access in Microsoft Defender Application
Guard
Settings/AllowPersistence
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/AllowPersisten
ce
This policy setting allows you to decide whether data should persist across different
sessions in Application Guard.
Format int
Allowed values:
Value Description
0 Application Guard discards user-downloaded files and other items (such as, cookies,
Favorites, and so on) during machine restart or user log-off.
1 Application Guard saves user-downloaded files and other items (such as, cookies,
Favorites, and so on) for use in future Application Guard sessions.
Name Value
Name AppHVSI_AllowPersistence
Friendly Name Allow data persistence for Microsoft Defender Application Guard
Settings/AllowVirtualGPU
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/AllowVirtualGP
U
This policy setting allows you to determine whether Application Guard can use the
virtual Graphics Processing Unit (GPU) to process graphics. If you enable this setting,
Microsoft Defender Application Guard uses Hyper-V to access supported, high-security
rendering graphics hardware (GPUs). These GPUs improve rendering performance and
battery life while using Microsoft Defender Application Guard, particularly for video
playback and other graphics-intensive use cases. If you enable this setting without
connecting any high-security rendering graphics hardware, Microsoft Defender
Application Guard will automatically revert to software-based (CPU) rendering.
2 Warning
Format int
Default Value 0
Allowed values:
Value Description
0 Cannot access the vGPU and uses the CPU to support rendering graphics. When the
(Default) policy isn't configured, it's the same as disabled (0).
1 Turns on the functionality to access the vGPU offloading graphics rendering from the
CPU. This can create a faster experience when working with graphics intense websites
or watching video within the container.
Name Value
Name AppHVSI_AllowVirtualGPU
Settings/AllowWindowsDefenderApplicationGuard
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/AllowWindowsDe
fenderApplicationGuard
Format int
Allowed values:
Value Description
2 Enable Microsoft Defender Application Guard for isolated Windows environments ONLY.
3 Enable Microsoft Defender Application Guard for Microsoft Edge AND isolated Windows
environments.
Name AllowAppHVSI
Settings/BlockNonEnterpriseContent
7 Note
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/BlockNonEnterp
riseContent
This policy setting allows you to decide whether websites can load non-enterprise
content in Microsoft Edge and Internet Explorer.
7 Note
This policy setting is no longer supported in the new Microsoft Edge browser. The
policy will be deprecated and removed in a future release. Webpages that contain
mixed content, both enterprise and non-enterprise, may load incorrectly or fail
completely if this feature is enabled.
Format int
Default Value 0
Allowed values:
Value Description
Name Value
Name AppHVSI_BlockNonEnterpriseContentConfig
Friendly Name Prevent enterprise websites from loading non-enterprise content in Microsoft
Edge and Internet Explorer
Settings/CertificateThumbprints
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/CertificateThu
mbprints
This policy setting allows certain device level Root Certificates to be shared with the
Microsoft Defender Application Guard container.
If you enable this setting, certificates with a thumbprint matching the ones
specified will be transferred into the container. Multiple certificates can be
specified by using a comma to separate the thumbprints for each certificate you
want to transfer. Here's an example:
b4e72779a8a362c860c36a6461f31e3aa7e58c14,1b1d49f06d2a697a544a1059bd59
a7b058cda924.
If you disable or don't configure this setting, certificates aren't shared with the
Microsoft Defender Application Guard container.
7 Note
Name Value
Name AppHVSI_CertificateThumbprints
Friendly Name Allow Microsoft Defender Application Guard to use Root Certificate Authorities
from the user’s device
Settings/ClipboardFileType
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/ClipboardFileT
ype
Determines the type of content that can be copied from the host to Application Guard
environment and vice versa.
Format int
Allowed values:
Value Description
Name AppHVSI_ClipboardConfig
Settings/ClipboardSettings
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/ClipboardSetti
ngs
This policy setting allows you to decide how the clipboard behaves while in Application
Guard.
Format int
Default Value 0
Allowed values:
Value Description
0 (Default) Completely turns Off the clipboard functionality for the Application Guard.
Name Value
Name AppHVSI_ClipboardConfig
Settings/PrintingSettings
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/PrintingSettin
gs
This policy setting allows you to decide how the print functionality behaves while in
Application Guard.
Format int
Default Value 0
Allowed values:
Value Description
Name Value
Name AppHVSI_PrintingConfig
Settings/SaveFilesToHost
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Settings/SaveFilesToHos
t
This policy setting allows you to determine whether users can elect to download files
from Edge in the container and persist files them from container to the host operating
system.
Format int
Default Value 0
Allowed values:
Value Description
0 The user can't download files from Edge in the container to the host file system.
(Default) When the policy isn't configured, it's the same as disabled (0).
Value Description
1 Turns on the functionality to allow users to download files from Edge in the container
to the host file system.
Name Value
Name AppHVSI_SaveFilesToHost
Friendly Name Allow files to download and save to the host operating system from Microsoft
Defender Application Guard
Status
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/WindowsDefenderApplicationGuard/Status
Returns bitmask that indicates status of Application Guard installation and pre-requisites
on the device. Bit 0 - Set to 1 when Application Guard is enabled into enterprise manage
mode. Bit 1 - Set to 1 when the client machine is Hyper-V capable. Bit 2 - Set to 1 when
the client machine has a valid OS license and SKU. Bit 3 - Set to 1 when Application
Guard installed on the client machine. Bit 4 - Set to 1 when required Network Isolation
Policies are configured. Bit 5 - Set to 1 when the client machine meets minimum
hardware requirements. Bit 6 - Set to 1 when system reboot is required.
Format int
Related articles
Configuration service provider reference
Windows and containers
Article • 03/20/2023
Applies to: Windows Server 2022, Windows Server 2019, Windows Server 2016
Containers are a technology for packaging and running Windows and Linux applications
across diverse environments on-premises and in the cloud. Containers provide a
lightweight, isolated environment that makes apps easier to develop, deploy, and
manage. Containers start and stop quickly, making them ideal for apps that need to
rapidly adapt to changing demand. The lightweight nature of containers also make
them a useful tool for increasing the density and utilization of your infrastructure.
To view a roadmap of planned and currently available features, see the Windows Server
containers roadmap . Also, see Events to view recent video presentations and blog
posts for Windows Containers.
Publish your apps as container images to the public DockerHub for others to use,
or to a private Azure Container Registry for your org's own development and
deployment, pushing and pulling directly from within Visual Studio and Visual
Studio Code.
Deploy containers on-premises by using AKS on Azure Stack HCI, Azure Stack with
the AKS Engine, or Azure Stack with OpenShift. You can also set up Kubernetes
yourself on Windows Server (see Kubernetes on Windows), and we're working on
support for running Windows containers on RedHat OpenShift Container
Platform as well.
Container Container
OS Kernel
Hardware
While a container shares the host operating system's kernel, the container doesn't get
unfettered access to it. Instead, the container gets an isolated–and in some cases
virtualized–view of the system. For example, a container can access a virtualized version
of the file system and registry, but any changes affect only the container and are
discarded when it stops. To save data, the container can mount persistent storage such
as an Azure Disk or a file share (including Azure Files ).
A container builds on top of the kernel, but the kernel doesn't provide all of the APIs
and services an app needs to run–most of these are provided by system files (libraries)
that run above the kernel in user mode. Because a container is isolated from the host's
user mode environment, the container needs its own copy of these user mode system
files, which are packaged into something known as a base image. The base image serves
as the foundational layer upon which your container is built, providing it with operating
system services not provided by the kernel. But we'll talk more about container images
later.
Virtual Machine
OS Kernel OS Kernel
Hardware
Containers and virtual machines each have their uses–in fact, many deployments of
containers use virtual machines as the host operating system rather than running
directly on the hardware, especially when running containers in the cloud.
Container images
All containers are created from container images. A container image is a bundle of files
organized into a stack of layers that resides on your local machine or in a remote
container registry. The container image consists of the user mode operating system files
needed to support your app, any runtimes or dependencies of your app, and any other
miscellaneous configuration file your app needs to run properly.
Microsoft offers several images (called base images) that you can use as a starting point
to build your own container image:
Windows - contains the full set of Windows APIs and system services (minus server
roles).
Windows Server - contains the full set of Windows APIs and system services.
Windows Server Core - a smaller image that contains a subset of the Windows
Server APIs–namely the full .NET framework. It also includes most but not all server
roles (for example Fax Server is not included).
Nano Server - the smallest Windows Server image and includes support for the
.NET Core APIs and some server roles.
As mentioned earlier, container images are composed of a series of layers. Each layer
contains a set of files that, when overlaid together, represent your container image.
Because of the layered nature of containers, you don't have to always target a base
image to build a Windows container. Instead, you could target another image that
already carries the framework you want. For example, the .NET team publishes a .NET
core image that carries the .NET core runtime. It saves users from needing to
duplicate the process of installing .NET core–instead they can reuse the layers of this
container image. The .NET core image itself is built based upon Nano Server.
Container users
Containers are portable and versatile, can run apps written in any language, and they're
compatible with any machine running Windows 10, version 1607 or later, or Windows
Server 2016 or later. Developers can create and test a container locally on their laptop or
desktop, and then deploy that same container image to their company's private cloud,
public cloud, or service provider. The natural agility of containers supports modern app
development patterns in large-scale, virtualized cloud environments. The most useful
benefit to developers is perhaps the ability to isolate your environment so that your app
always gets the version of libraries that you specify, avoiding conflicts with
dependencies.
You can also use the interactive mode of containers to run conflicting instances of a
command line tool on the the same system.
Container orchestration
Orchestrators are a critical piece of infrastructure when setting up a container-based
environment. While you can manage a few containers manually using Docker and
Windows, apps often make use of five, ten, or even hundreds of containers, which is
where orchestrators come in.
Orchestrators help you grow containerized apps at scale, providing functionality for:
Deploying at scale
Workload scheduling
Health monitoring
Failing over when a node fails
Scaling up or down
Networking
Service discovery
Coordinating app upgrades
Cluster node affinity
There are many different orchestrators that you can use with Windows containers; here
are the options Microsoft provides:
For help deciding which Azure services are right for your scenario, see Azure container
services and Choosing what Azure services to use to host your application.
Resources
To view resources for using Windows Server containers:
For current issues and planned feature upgrades, see the Windows Server
containers roadmap .
To view container events, see Windows container and the Azure Kubernetes
Service} and other recent containers events and slideshows.
A sandbox is temporary. When it's closed, all the software and files and the state are
deleted. You get a brand-new instance of the sandbox every time you open the
application. Note, however, that as of Windows 11, version 22H2, your data will persist
through a restart initiated from inside the virtualized environment—useful for installing
applications that require the OS to reboot.
Software and applications installed on the host aren't directly available in the sandbox. If
you need specific applications available inside the Windows Sandbox environment, they
must be explicitly installed within the environment.
) Important
For more information about Windows licensing, see Windows licensing overview.
Prerequisites
ARM64 (for Windows 11, version 22H2 and later) or AMD64 architecture
Virtualization capabilities enabled in BIOS
At least 4 GB of RAM (8 GB recommended)
At least 1 GB of free disk space (SSD recommended)
At least two CPU cores (four cores with hyper-threading recommended)
7 Note
Installation
1. Ensure that your machine is using Windows 10 Pro or Enterprise, build version
18305 or Windows 11.
PowerShell
3. Use the search bar on the task bar and type Turn Windows Features on or off to
access the Windows Optional Features tool. Select Windows Sandbox and then
OK. Restart the computer if you're prompted.
If the Windows Sandbox option is unavailable, your computer doesn't meet the
requirements to run Windows Sandbox. If you think this analysis is incorrect,
review the prerequisite list and steps 1 and 2.
7 Note
PowerShell
4. Locate and select Windows Sandbox on the Start menu to run it for the first time.
7 Note
Windows Sandbox does not adhere to the mouse settings of the host system,
so if the host system is set to use a left-handed mouse, you must apply these
settings in Windows Sandbox manually when Windows Sandbox starts.
Alternatively, you can use a sandbox configuration file to run a logon
command to swap the mouse setting. For an example, see Example 3.
Usage
1. Copy an executable file (and any other files needed to run the application) from
the host and paste them into the Windows Sandbox window.
3. When you're finished experimenting, close the sandbox. A dialog box will state
that all sandbox content will be discarded and permanently deleted. Select Ok.
4. Confirm that your host machine doesn't exhibit any of the modifications that you
made in Windows Sandbox.
Windows Sandbox architecture
Article • 05/25/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Most OS files are immutable and can be freely shared with Windows Sandbox. A small
subset of operating system files are mutable and can't be shared, so the sandbox base
image contains pristine copies of them. A complete Windows image can be constructed
from a combination of the sharable immutable files on the host and the pristine copies
of the mutable files. With the help of this scheme, Windows Sandbox has a full Windows
installation to boot from without needing to download or store an extra copy of
Windows.
Before Windows Sandbox is installed, the dynamic base image package is stored as a
compressed 30-MB package. Once it's installed, the dynamic base image occupies about
500 MB of disk space.
Memory management
Traditional VMs apportion statically sized allocations of host memory. When resource
needs change, classic VMs have limited mechanisms for adjusting their resource needs.
On the other hand, containers collaborate with the host to dynamically determine how
host resources are allocated. This method is similar to how processes normally compete
for memory on the host. If the host is under memory pressure, it can reclaim memory
from the container much like it would with a process.
Memory sharing
Because Windows Sandbox runs the same operating system image as the host, it has
been enhanced to use the same physical memory pages as the host for operating
system binaries via a technology referred to as "direct map." For example, when ntdll.dll
is loaded into memory in the sandbox, it uses the same physical pages as those pages of
the binary when loaded on the host. Memory sharing between the host and the
sandbox results in a smaller memory footprint when compared to traditional VMs,
without compromising valuable host secrets.
This feature allows programs running inside the sandbox to compete for GPU resources
with applications that are running on the host.
To take advantage of these benefits, a system with a compatible GPU and graphics
drivers (WDDM 2.5 or newer) is required. Incompatible systems will render apps in
Windows Sandbox with Microsoft's CPU-based rendering technology, Windows
Advanced Rasterization Platform (WARP).
Battery pass-through
Windows Sandbox is also aware of the host's battery state, which allows it to optimize
its power consumption. This functionality is critical for technology that is used on
laptops, where battery life is often critical.
Windows Sandbox configuration
Article • 05/25/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Windows Sandbox supports simple configuration files, which provide a minimal set of
customization parameters for Sandbox. This feature can be used with Windows 10 build
18342 or Windows 11. Windows Sandbox configuration files are formatted as XML and
are associated with Sandbox via the .wsb file extension.
A configuration file enables the user to control the following aspects of Windows
Sandbox:
vGPU (virtualized GPU): Enable or disable the virtualized GPU. If vGPU is disabled,
the sandbox will use Windows Advanced Rasterization Platform (WARP).
Networking: Enable or disable network access within the sandbox.
Mapped folders: Share folders from the host with read or write permissions.
Exposing host directories may allow malicious software to affect the system or
steal data.
Logon command: A command that's executed when Windows Sandbox starts.
Audio input: Shares the host's microphone input into the sandbox.
Video input: Shares the host's webcam input into the sandbox.
Protected client: Places increased security settings on the RDP session to the
sandbox.
Printer redirection: Shares printers from the host into the sandbox.
Clipboard redirection: Shares the host clipboard with the sandbox so that text and
files can be pasted back and forth.
Memory in MB: The amount of memory, in megabytes, to assign to the sandbox.
7 Note
1. Open a plain text editor or source code editor (for example, Notepad, Visual Studio
Code, etc.)
<Configuration>
</Configuration>
3. Add appropriate configuration text between the two lines. For details, see the
correct syntax and the examples below.
4. Save the file with the desired name, but make sure its filename extension is .wsb .
In Notepad, you should enclose the filename and the extension inside double
quotation marks, for example, "My config file.wsb" .
batch
C:\Temp> MyConfigFile.wsb
vGPU
Enables or disables GPU sharing.
<vGPU>value</vGPU>
Supported values:
7 Note
Enabling virtualized GPU can potentially increase the attack surface of the sandbox.
Networking
Enables or disables networking in the sandbox. You can disable network access to
decrease the attack surface exposed by the sandbox.
<Networking>value</Networking>
Supported values:
7 Note
Mapped folders
An array of folders, each representing a location on the host machine that will be shared
into the sandbox at the specified path. At this time, relative paths aren't supported. If no
path is specified, the folder will be mapped to the container user's desktop.
XML
<MappedFolders>
<MappedFolder>
<HostFolder>absolute path to the host folder</HostFolder>
<SandboxFolder>absolute path to the sandbox folder</SandboxFolder>
<ReadOnly>value</ReadOnly>
</MappedFolder>
<MappedFolder>
...
</MappedFolder>
</MappedFolders>
HostFolder: Specifies the folder on the host machine to share into the sandbox. The
folder must already exist on the host, or the container will fail to start.
SandboxFolder: Specifies the destination in the sandbox to map the folder to. If the
folder doesn't exist, it will be created. If no sandbox folder is specified, the folder will be
mapped to the container desktop.
ReadOnly: If true, enforces read-only access to the shared folder from within the
container. Supported values: true/false. Defaults to false.
7 Note
Files and folders mapped in from the host can be compromised by apps in the
sandbox or potentially affect the host.
Logon command
Specifies a single command that will be invoked automatically after the sandbox logs
on. Apps in the sandbox are run under the container user account. The container user
account should be an administrator account.
XML
<LogonCommand>
<Command>command to be invoked</Command>
</LogonCommand>
Command: A path to an executable or script inside the container that will be executed
after signing in.
7 Note
Audio input
Enables or disables audio input to the sandbox.
<AudioInput>value</AudioInput>
Supported values:
Enable: Enables audio input in the sandbox. If this value is set, the sandbox will be
able to receive audio input from the user. Applications that use a microphone may
require this capability.
Disable: Disables audio input in the sandbox. If this value is set, the sandbox can't
receive audio input from the user. Applications that use a microphone may not
function properly with this setting.
Default: This value is the default value for audio input support. Currently, this
default value denotes that audio input is enabled.
7 Note
There may be security implications of exposing host audio input to the container.
Video input
Enables or disables video input to the sandbox.
<VideoInput>value</VideoInput>
Supported values:
7 Note
There may be security implications of exposing host video input to the container.
Protected client
When Protected Client mode is enabled, Sandbox adds a new layer of security boundary
by running inside an AppContainer Isolation execution environment.
AppContainer Isolation provides Credential, Device, File, Network, Process, and Window
isolation.
<ProtectedClient>value</ProtectedClient>
Supported values:
Enable: Runs Windows sandbox in Protected Client mode. If this value is set, the
Sandbox runs in AppContainer Isolation.
Disable: Runs the Sandbox in the standard mode without extra security mitigations.
Default: This value is the default value for Protected Client mode. Currently, this
default value denotes that the sandbox doesn't run in Protected Client mode.
7 Note
This setting may restrict the user's ability to copy/paste files in and out of the
sandbox.
Printer redirection
Enables or disables printer sharing from the host into the sandbox.
<PrinterRedirection>value</PrinterRedirection>
Supported values:
Clipboard redirection
Enables or disables sharing of the host clipboard with the sandbox.
<ClipboardRedirection>value</ClipboardRedirection>
Supported values:
Memory in MB
Specifies the amount of memory that the sandbox can use in megabytes (MB).
<MemoryInMB>value</MemoryInMB>
Example 1
The following config file can be used to easily test the downloaded files inside the
sandbox. To achieve this testing, networking and vGPU are disabled, and the sandbox is
allowed read-only access to the shared downloads folder. For convenience, the logon
command opens the downloads folder inside the sandbox when it's started.
Downloads.wsb
XML
<Configuration>
<VGpu>Disable</VGpu>
<Networking>Disable</Networking>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\Users\Public\Downloads</HostFolder>
<SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>explorer.exe C:\users\WDAGUtilityAccount\Downloads</Command>
</LogonCommand>
</Configuration>
Example 2
The following config file installs Visual Studio Code in the sandbox, which requires a
slightly more complicated LogonCommand setup.
Two folders are mapped into the sandbox; the first (SandboxScripts) contains
VSCodeInstall.cmd, which will install and run Visual Studio Code. The second folder
(CodingProjects) is assumed to contain project files that the developer wants to modify
using Visual Studio Code.
With the Visual Studio Code installer script already mapped into the sandbox, the
LogonCommand can reference it.
VSCodeInstall.cmd
Download vscode to downloads folder and run from downloads folder.
batch
VSCode.wsb
XML
<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SandboxScripts</HostFolder>
<SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads\sandbox</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
<MappedFolder>
<HostFolder>C:\CodingProjects</HostFolder>
<SandboxFolder>C:\Users\WDAGUtilityAccount\Documents\Projects</SandboxFolder
>
<ReadOnly>false</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>C:\Users\WDAGUtilityAccount\Downloads\sandbox\VSCodeInstall.cmd</Co
mmand>
</LogonCommand>
</Configuration>
Example 3
The following config file runs a PowerShell script as a logon command to swap the
primary mouse button for left-handed users.
C:\sandbox folder on the host is mapped to the C:\sandbox folder in the sandbox, so
SwapMouse.ps1
Create a powershell script using the following code, and save it in the C:\sandbox
directory as SwapMouse.ps1 .
PowerShell
[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-
Null
$SwapButtons::SwapMouseButton(!
([System.Windows.Forms.SystemInformation]::MouseButtonsSwapped))
SwapMouse.wsb
XML
<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\sandbox</HostFolder>
<SandboxFolder>C:\sandbox</SandboxFolder>
<ReadOnly>True</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>powershell.exe -ExecutionPolicy Bypass -File
C:\sandbox\SwapMouse.ps1</Command>
</LogonCommand>
</Configuration>
Windows identity protection
Article • 07/27/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
Passwordless Sign In
Security Features & Capabilities
Measures
Windows Hello Windows 11 devices can protect user identities by removing the need to use
for Business passwords from day one. It's easy to get started with the method that's right for
your organization. A password may only need to be used once during the
provisioning process, after which people use a PIN, face, or fingerprint to unlock
credentials and sign into the device.
Windows Hello for Business replaces the username and password by combining
a security key or certificate with a PIN or biometrics data, and then mapping the
credentials to a user account during setup. There are multiple ways to deploy
Windows Hello for Business, depending on your organization's needs.
Organizations that rely on certificates typically use on-premises public key
infrastructure (PKI) to support authentication through Certificate Trust.
Organizations using key trust deployment require root-of-trust provided by
certificates on domain controllers.
Windows Windows presence sensing provides another layer of data security protection
presence for hybrid workers. Windows 11 devices can intelligently adapt to your presence
sensing to help you stay secure and productive, whether you're working at home, the
office, or a public environment. Windows presence sensing combines presence
detection sensors with Windows Hello facial recognition to automatically lock
your device when you leave, and then unlock your device and sign you in using
Windows Hello facial recognition when you return. Requires OEM supporting
hardware.
Security Features & Capabilities
Measures
Windows Hello Windows Hello biometrics also supports enhanced sign-in security, which uses
for Business specialized hardware and software components to raise the security bar even
Enhanced higher for biometric sign in.
Security Sign-
in (ESS) Enhanced sign-in security biometrics uses VBS and the TPM to isolate user
authentication processes and data and secure the pathway by which the
information is communicated. These specialized components protect against a
class of attacks that include biometric sample injection, replay, tampering, and
more.
Fast Identity Fast Identity Online (FIDO) defined CTAP and WebAuthN specifications are
Online (FIDO2) becoming the open standard for providing strong authentication that is non-
security key phishable, user-friendly, and privacy-respecting with implementations from
major platform providers and relying parties. FIDO standards and certifications
are becoming recognized as the leading standard for creating secure
authentication solutions across enterprises, governments, and consumer
markets.
Windows 11 can use external FIDO2 security keys for authentication alongside
or in addition to Windows Hello which is also a FIDO2 certified passwordless
solution. Windows 11 can be used as a FIDO authenticator for many popular
identity management services.
Smart Cards Organizations also have the option of using smart cards, an authentication
for Windows method that pre-dates biometric sign in. Smart cards are tamper-resistant,
Service portable storage devices that can enhance Windows security when
authenticating clients, signing code, securing e-mail, and signing in with
Windows domain accounts. Smart cards can only be used to sign into domain
accounts, not local accounts. When a password is used to sign into a domain
account, Windows uses the Kerberos version 5 (v5) protocol for authentication.
If you use a smart card, the operating system uses Kerberos v5 authentication
with X.509 v3 certificates.
Account Lockout
Policy
Enhanced Users who are still using passwords can benefit from powerful credential
phishing protection. Microsoft Defender SmartScreen includes enhanced phishing
protection with protection to automatically detect when a user enters their Microsoft
SmartScreen password into any app or website. Windows then identifies if the app or site
is securely authenticating to Microsoft and warns if the credentials are at risk.
Since users are alerted at the moment of potential credential theft, they can
take preemptive action before their password is used against them or their
organization.
Access Control Access control in Windows ensures that shared resources are available to
(ACLs/SCALS) users and groups other than the resource's owner and are protected from
unauthorized use. IT administrators can manage users', groups', and
computers' access to objects and assets on a network or computer. After a
user is authenticated, the Windows operating system implements the second
phase of protecting resources by using built-in authorization and access
control technologies to determine if an authenticated user has the correct
permissions.
Access Control Lists (ACL) describe the permissions for a specific object and
can also contain System Access Control Lists (SACL). SACLs provide a way to
audit specific system level events, such as when a user attempt to access file
system objects. These events are essential for tracking activity for objects that
are sensitive or valuable and require extra monitoring. Being able to audit
when a resource attempts to read or write part of the operating system is
critical to understanding a potential attack.
Windows Window Defender Remote Credential Guard helps you protect your
Defender Remote credentials over a Remote Desktop connection by redirecting the Kerberos
Credential Guard requests back to the device that is requesting the connection. It also provides
single sign-on experiences for Remote Desktop sessions.
This article describes Windows' password-less strategy and how Windows Hello for
Business implements this strategy.
Deploying Windows Hello for Business is the first step towards a password-less
environment. Windows Hello for Business coexists nicely with existing password-based
security. Users are likely to use Windows Hello for Business because of its convenience,
especially when combined with biometrics. However, some workflows and applications
may still need passwords. This early stage is about implementing an alternative and
getting users used to it.
2. Reduce user-visible password surface area
With Windows Hello for Business and passwords coexisting in your environment, the
next step is to reduce the password surface. The environment and workflows need to
stop asking for passwords. The goal of this step is to achieve a state where the users
know they have a password, but they never use it. This state helps decondition users
from providing a password anytime a password prompt shows on their computer. This
behavior is how passwords are phished. Users who rarely, if at all, use their password are
unlikely to provide it. Password prompts are no longer the norm.
In this world, the user signs in to Windows using Windows Hello for Business and enjoys
single sign-on to Azure and Active Directory resources. If the user is forced to
authenticate, their authentication uses Windows Hello for Business.
Methodology
Four steps to password freedom provide an overall view of how Microsoft envisions the
road to eliminating passwords. But this road is frequently traveled and derailed by many.
The scope of work is vast and filled with many challenges and frustrations. Nearly
everyone wants the instant gratification of achieving a password-less environment, but
can easily become overwhelmed by any of the steps. You aren't alone and Microsoft
understands. While there are many ways to accomplish freedom from passwords, here's
one recommendation based on several years of research, investigation, and customer
conversations.
Prepare for the journey
The road to being password-less is a journey. The duration of that journey varies for
each organization. It's important for IT decision-makers to understand the criteria
influencing the length of that journey.
The most intuitive answer is the size of the organization, and that would be correct.
However, what exactly determines size? One way to break down the size of the
organization is by creating a summary of the following components:
Number of departments
Organization or department hierarchy
Number and type of applications and services
Number of work personas
Organization's IT structure
Number of departments
You need to know all the departments within your organization and you need to know
which departments use computers and which ones don't. It's fine if a department
doesn't use computers (probably rare, but acceptable). This circumstance means there's
one less department with which you need to concern yourself. Nevertheless, ensure this
department is in your list and you've assessed that it's not applicable.
Your count of the departments must be thorough and accurate, as well as knowing the
stakeholders for those departments that will put you and your staff on the road to
password freedom. Realistically, many of us lose sight of our organizational chart and
how it grows or shrinks over time. This realization is why you need to inventory all of
them. Also, don't forget to include external departments such as vendors or federated
partners. If your organization goes password-free, but your partners continue to use
passwords and then access your corporate resources, you should know about it and
include them in your password-less strategy.
Capturing the number of applications used is easier once you have the departments,
their hierarchy, and their stakeholders. In this approach, you should have an organized
list of departments and the hierarchy in each. You can now associate the applications
that are used by all levels within each department. You'll also want to document whether
the application is internally developed or commercially available off-the-shelf (COTS). If
the latter, document the manufacturer and the version. Also, don't forget web-based
applications or services when inventorying applications.
Ultimately, create a naming convention that doesn't require your stakeholders and
partners to read through a long list of tables or a secret decoder ring. Also, if possible,
try to keep the references as names of people. After all, you're talking about a person
who is in that department and who uses that specific software.
Organization's IT structure
IT department structures can vary more than the organization. Some IT departments are
centralized while others are decentralized. Also, the road to password freedom will
probably have you interacting with the client authentication team, the deployment
team, the security team, the PKI team, the Active Directory team, the cloud team, and
the list continues. Most of these teams will be your partner on your journey to password
freedom. Ensure there's a password-less stakeholder on each of these teams, and that
the effort is understood and funded.
You have a ton of information. You've created your work personas, you've identified
your stakeholders throughout the different IT groups. Now what?
By now you can see why it's a journey and not a weekend project. You need to
investigate user-visible password surfaces for each of your work personas. Once you've
identified the password surfaces, you need to mitigate them. Resolving some password
surfaces are simple - meaning a solution already exists in the environment and it's only a
matter of moving users to it. Resolution to some passwords surfaces may exist, but
aren't deployed in your environment. That resolution results in a project that must be
planned, tested, and then deployed. That project is likely to span multiple IT
departments with multiple people, and potentially one or more distributed systems.
Those types of projects take time and need dedicated cycles. This same sentiment is true
with in-house software development. Even with agile development methodologies,
changing the way someone authenticates to an application is critical. Without the
proper planning and testing, it has the potential to severely affect productivity.
How long does it take to become password-less? The answer is "it depends". It depends
on the organizational alignment of a password-less strategy. Top-down agreement that
a password-less environment is the organization's goal makes conversations much
easier. Easier conversations mean less time spent convincing people and more time
spent moving forward toward the goal. Top-down agreement, as a priority within the
ranks of other on-going IT projects, helps everyone understand how to prioritize
existing projects. Agreeing on priorities should reduce and minimize manager and
executive level escalations. After these organizational discussions, modern project
management techniques are used to continue the password-less effort. The
organization allocates resources based on the priority (after they've agreed on the
strategy). Those resources will:
Your organization's journey to password freedom may take some time. Counting the
number of work personas and the number of applications is probably a good indicator
of the investment. Hopefully, your organization is growing, which means that the list of
personas and the list of applications is unlikely to shrink. If the work to go password-less
today is n, then it's likely that to go password-less tomorrow is n x 2 or more, n x n.
Don't let the size or duration of the project be a distraction. As you progress through
each work persona, the actions and tasks will become more familiar for you and your
stakeholders. Scope the project to sizable, realistic phases, pick the correct work
personas, and soon you'll see parts of your organization transition to a password-less
state.
Where to start?
What's the best guidance for kicking off the journey to password freedom? You'll want
to show your management a proof of concept as soon as possible. Ideally, you want to
show it at each step of your password-less journey. Keeping your password-less strategy
top of mind and showing consistent progress keeps everyone focused.
Work persona
You begin with your work personas. These were part of your preparation process. They
have a persona name, such as Abby Accounting II, or any other naming convention your
organization defined. That work persona includes a list of all the applications Abby uses
to perform her assigned duties in the accounting department. To start, you need to pick
a work persona. It's the targeted work persona you'll enable so that you can climb the
steps to password freedom.
) Important
Avoid using any work personas from your IT department. This method is probably
the worst way to start the password-less journey. IT roles are very difficult and time
consuming. IT workers typically have multiple credentials, run a multitude of scripts
and custom applications, and are the worst offenders of password usage. It is
better to save these work personas for the middle or end of your journey.
Review your collection of work personas. Early in your password-less journey, identify
personas with the fewest applications. These work personas could represent an entire
department or two. These roles are the perfect work personas for your proof-of-concept
or pilot.
Most organizations host their proof of concept in a test lab or environment. If you do
that test with a password-free strategy, it may be more challenging and take more time.
To test in a lab, you must first duplicate the environment of the targeted persona. This
process could take a few days or several weeks, depending on the complexity of the
targeted work persona.
You'll want to balance lab testing with providing results to management quickly.
Continuing to show forward progress on your journey to password freedom is always a
good thing. If there are ways you can test in production with low or no risk, it may be
advantageous to your timeline.
The process
The journey to password freedom is to take each work persona through each step of the
process. In the beginning, we encourage working with one persona at a time to ensure
team members and stakeholders are familiar with the process. Once comfortable with
the process, you can cover as many work personas in parallel as resources allow. The
process looks something like this:
1. Password-less replacement offering (step 1)
a. Identify test users representing the targeted work persona.
b. Deploy Windows Hello for Business to test users.
c. Validate that passwords and Windows Hello for Business work.
2. Reduce user-visible password surface (step 2)
a. Survey test user workflow for password usage.
b. Identify password usage and plan, develop, and deploy password mitigations.
c. Repeat until all user password usage is mitigated.
d. Remove password capabilities from Windows.
e. Validate that none of the workflows need passwords.
3. Transition into a password-less scenario (step 3)
a. Awareness campaign and user education.
b. Include remaining users who fit the work persona.
c. Validate that none of the users of the work personas need passwords.
d. Configure user accounts to disallow password authentication.
After successfully moving a work persona to password freedom, you can prioritize the
remaining work personas and repeat the process.
A successful transition relies on user acceptance testing. It's impossible for you to know
how every work persona goes about their day-to-day activities, or how to accurately
validate them. You need to enlist the help of users who fit the targeted work persona.
You only need a few users from the targeted work persona. As you cycle through step 2,
you may want to change a few of the users (or add a few) as part of your validation
process.
Next, you'll want to plan your Windows Hello for Business deployment. Your test users
will need an alternative way to sign-in during step 2 of the journey to becoming
password-less. Use the Windows Hello for Business planning guide to help learning
which deployment is best suited for your environment. Next, use the Windows Hello for
Business deployment guides to deploy Windows Hello for Business.
With the Windows Hello for Business infrastructure in place, you can limit Windows
Hello for Business enrollments to the targeted work personas. The great news is that
you'll only need to deploy the infrastructure once. When other targeted work personas
need to start using Windows Hello for Business, add them to a group. You'll use the first
work persona to validate your Windows Hello for Business deployment.
7 Note
There are many different ways to connect a device to Azure. Deployments may vary
based on how the device is joined to Azure Active Directory. Review your planning
guide and deployment guide to ensure additional infrastructure is not needed for
an additional Azure joined devices.
In this first step, passwords and Windows Hello for Business must coexist. You want to
validate that while your targeted work personas can sign in and unlock using Windows
Hello for Business, but they can also sign-in, unlock, and use passwords as needed.
Reducing the user-visible password surface too soon can create frustration and
confusion with your targeted user personas.
Now is the time to learn more about the targeted work persona. You have a list of
applications they use, but you don't know what, why, when, and how frequently. This
information is important as you further your progress through step 2.
Test users create the workflows associated with the targeted work persona. Their initial
goal is to do one simple task: Document password usage. This list isn't a comprehensive
one, but it gives you an idea of the type of information you want. The general idea is to
learn about all the scenarios in which that work persona encounters a password. A good
approach is to ask yourself the following set of questions:
Some organizations will empower their users to write this information while some may
insist on having a member of the IT department shadow them. An objective viewer may
notice a password prompt that the user overlooks simply because of muscle memory. As
previously mentioned, this information is critical. You could miss one password prompt
that could delay the transition to being password-less.
Create a list of the scenarios. Each scenario should have a clear problem statement.
Name the scenario with a one-sentence summary of the problem statement. Include in
the scenario the results of your team's investigation as to why the user is prompted by a
password. Include relevant, but accurate details. If it's policy or procedure driven, then
include the name and section of the policy that dictates why the workflow uses a
password.
Keep in mind your test users won't uncover all scenarios. Some scenarios you'll need to
force on your users because they're low percentage scenarios. Remember to include the
following scenarios:
Start mitigating password usages based on the workflows of your targeted personas.
Document the mitigation as a solution to your scenario. Don't worry about the
implementation details for the solution. An overview of the changes needed to reduce
the password usages is all you need. If there are technical changes needed, either
infrastructure or code changes, the exact details will likely be included in the project
documentation. However your organization tracks projects, create a new project in that
system. Associate your scenario to that project and start the processes needed to get
that project funded.
Mitigating password usage with applications is one of the more challenging obstacles in
the password-less journey. If your organization develops the application, then you are in
better shape the common-off-the-shelf software (COTS).
The ideal mitigation for applications that prompt the user for a password is to enable
those applications to use an existing authenticated identity, such as Azure Active
Directory or Active Directory. Work with the applications vendors to have them add
support for Azure identities. For on-premises applications, have the application use
Windows integrated authentication. The goal for your users should be a seamless single
sign-on experience where each user authenticates once when they sign-in to Windows.
Use this same strategy for applications that store their own identities in their own
databases.
Each scenario on your list should now have a problem statement, an investigation as to
why the password was used, and a mitigation plan on how to make the password usage
go away. Armed with this data, one-by-one, close the gaps on user-visible passwords.
Change policies and procedures as needed, make infrastructure changes where possible.
Convert in-house applications to use federated identities or Windows integrated
authentication. Work with third-party software vendors to update their software to
support federated identities or Windows integrated authentication.
Some or all of your mitigations are in place. You need to validate that your solutions
have solved their problem statements. This stage is where you rely on your test users.
You want to keep a good portion of your first test users, but this point is a good
opportunity to replace a few or add a few. Survey test users workflow for password
usage. If all goes well, you've closed most or all of the gaps. A few are likely to remain.
Evaluate your solutions and what went wrong, change your solution as needed until you
reach a solution that removes your user's need to type a password. If you're stuck,
others might be too. Use the forums from various sources or your network of IT
colleagues to describe your problem and see how others are solving it. If you're out of
options, contact Microsoft for assistance.
You believe you've mitigated all the password usage for the targeted work persona.
Now comes the true test: configure Windows so the user can't use a password.
Windows provides two ways to prevent your users from using passwords. You can use
an interactive logon security policy to only allow Windows Hello for Business sign-in and
unlocks, or you can exclude the password credential provider.
Security policy
You can use Group Policy to deploy an interactive logon security policy setting to the
computer. This policy setting is found under Computer Configuration > Policies >
Windows Settings > Local Policy > Security Options. The name of the policy setting
depends on the version of the operating systems you use to configure Group Policy.
Windows Server 2016 and earlier The policy name for these operating systems is
Interactive logon: Require smart card.
Windows 10, version 1703 or later using Remote Server Administrator Tools The policy
name for these operating systems is Interactive logon: Require Windows Hello for
Business or smart card.
When you enable this security policy setting, Windows prevents users from signing in or
unlocking with a password. The password credential provider remains visible to the user.
If a user tries to use a password, Windows informs the user they must use Windows
Hello for Business or a smart card.
This stage is the significant moment. You have identified password usage, developed
solutions to mitigate password usage, and have removed or disabled password usage
from Windows. In this configuration, your users won't be able to use a password. Users
will be blocked if any of their workflows ask them for a password. Ideally, your test users
should be able to complete all the work flows of the targeted work persona without any
password usage. Don't forget those low percentage work flows, such as provisioning a
new user or a user that forgot their PIN or can't use their strong credential. Ensure those
scenarios are validated as well.
Transition into a password-less deployment (step 3)
Congratulations! You're ready to transition one or more portions of your organization to
a password-less deployment. You've validated that the targeted work persona is ready
to go where the user no longer needs to know or use their password. You're just a few
steps away from declaring success.
In this last step, you're going to include the remaining users that fit the targeted work
persona to the wonderful world of password freedom. Before you do this step, you want
to invest in an awareness campaign.
An awareness campaign introduces the users to the new way of authenticating to their
device, such as using Windows Hello for Business. The idea of the campaign is to
positively promote the change to the users in advance. Explain the value and why your
company is changing. The campaign should provide dates and encourage questions and
feedback. This campaign can coincide with user education, where you can show the
users the changes and, if your environment allows, enable the users to try out the
experience.
You've successfully transitioned all users for the targeted work persona to being
password-less. Monitor the users within the work persona to ensure they don't
encounter any issues while working in a password-less environment.
Track all reported issues. Set priority and severity to each reported issue and have your
team triage the issues appropriately. As you triage issues, consider the following
questions:
Each organization's priority and severity will differ. However, most organizations
consider work stoppages to be fairly significant. Your team should predefine levels of
priority and severity. With each of these levels, create service level agreements (SLAs) for
each combination of severity and priority, and hold everyone accountable to those
agreements. Reactive planning enables people to spend more time on the issue and
resolving it, and less time on the process.
Resolve the issues per your service level agreements. Higher severity items may require
returning some or all of the user's password surface. Clearly this outcome isn't the end
goal, but don't let it slow down your momentum towards becoming password-less.
Refer to how you reduced the user's password surface in step 2 and progress forward to
a solution, deploying that solution and validating it.
You transitioned all the users for the targeted work persona to a password-less
environment and you've successfully validated all their workflows. The last step to
complete the password-less transition is to remove the user's knowledge of the
password and prevent the authenticating authority from accepting passwords.
You can change the user's password to random data and prevent domain controllers
from allowing users to use passwords for interactive sign-ins using an account
configuration on the user object.
The account options on a user account include the option Smart card is required for
interactive logon, also known as SCRIL.
7 Note
Do not confuse the Interactive Logon security policy for SCRIL. Security policies are
enforced on the client (locally). A user account configured for SCRIL is enforced at
the domain controller.
The following image shows the SCRIL setting for a user in Active Directory Users and
Computers:
When you configure a user account for SCRIL, Active Directory changes the affected
user's password to a random 128 bits of data. Additionally, domain controllers hosting
the user account don't allow the user to sign-in interactively with a password. Users will
no longer need to change their password when it expires, because passwords for SCRIL
users don't expire. The users are effectively password-less because:
The following image shows the SCRIL setting for a user in Active Directory
Administrative Center on Windows Server 2012:
7 Note
Although a SCRIL user's password never expires in early domains, you can toggle
the SCRIL configuration on a user account to generate a new random 128 bit
password. Use the following process to toggle this configuration:
When you upgrade the domain functional level to Windows Server 2016 or later,
the domain controller automatically does this action for you.
The following image shows the SCRIL setting for a user in Active Directory
Administrative Center on Windows Server 2016:
Tip
Domains configured for Windows Server 2016 or later domain functional level can
further secure the unknown password for SCRIL-enabled users by configuring the
domain to automatically change the password for SCRIL users.
Some components within Windows 10, such as Data Protection APIs and NTLM
authentication, still need artifacts of a user possessing a password. This
configuration provides interoperability by reducing the usage surface while
Microsoft continues to close the gaps to remove the password completely.
Windows Hello for Business Overview
Article • 07/27/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Windows Hello for Business replaces passwords with strong two-factor authentication
on devices. This authentication consists of a type of user credential that is tied to a
device and uses a biometric or PIN.
7 Note
When Windows 10 first shipped, it included Microsoft Passport and Windows Hello,
which worked together to provide multi-factor authentication. To simplify
deployment and improve supportability, Microsoft has combined these
technologies into a single solution under the Windows Hello name. Customers who
have already deployed these technologies will not experience any change in
functionality. Customers who have yet to evaluate Windows Hello will find it easier
to deploy due to simplified policies, documentation, and semantics.
Strong passwords can be difficult to remember, and users often reuse passwords
on multiple sites.
Server breaches can expose symmetric network credentials (passwords).
Passwords are subject to replay attacks.
Users can inadvertently expose their passwords due to phishing attacks.
A Microsoft account.
An Active Directory account.
A Microsoft Azure Active Directory (Azure AD) account.
Identity Provider Services or Relying Party Services that support Fast ID Online
(FIDO) v2.0 authentication.
After an initial two-step verification of the user during enrollment, Windows Hello is set
up on the user's device and Windows asks the user to set a gesture, which can be a
biometric, such as a fingerprint, or a PIN. The user provides the gesture to verify their
identity. Windows then uses Windows Hello to authenticate users.
Facial recognition. This type of biometric recognition uses special cameras that see
in IR light, which allows them to reliably tell the difference between a photograph
or scan and a living person. Several vendors are shipping external cameras that
incorporate this technology, and major laptop manufacturers are incorporating it
into their devices, as well.
Fingerprint recognition. This type of biometric recognition uses a capacitive
fingerprint sensor to scan your fingerprint. Fingerprint readers have been available
for Windows computers for years, but the current generation of sensors is more
reliable and less error-prone. Most existing fingerprint readers work with Windows
10 and Windows 11, whether they're external or integrated into laptops or USB
keyboards.
Iris Recognition. This type of biometric recognition uses cameras to perform scan
of your iris. HoloLens 2 is the first Microsoft device to introduce an Iris scanner.
These iris scanners are the same across all HoloLens 2 devices.
Windows stores biometric data that is used to implement Windows Hello securely on
the local device only. The biometric data doesn't roam and is never sent to external
devices or servers. Because Windows Hello only stores biometric identification data on
the device, there's no single collection point an attacker can compromise to steal
biometric data. For more information about biometric authentication with Windows
Hello for Business, see Windows Hello biometrics in the enterprise.
You may wonder how a PIN can help protect a device better than a password. Passwords
are shared secrets; they're entered on a device and transmitted over the network to the
server. An intercepted account name and password can be used by anyone, anywhere.
Because they're stored on the server, a server breach can reveal those stored credentials.
In Windows 10 and later, Windows Hello replaces passwords. When an identity provider
supports keys, the Windows Hello provisioning process creates a cryptographic key pair
bound to the Trusted Platform Module (TPM), if a device has a TPM 2.0, or in software.
Access to these keys and obtaining a signature to validate user possession of the private
key is enabled only by the PIN or biometric gesture. The two-step verification that takes
place during Windows Hello enrollment creates a trusted relationship between the
identity provider and the user when the public portion of the public/private key pair is
sent to an identity provider and associated with a user account. When a user enters the
gesture on the device, the identity provider knows that it's a verified identity, because of
the combination of Windows Hello keys and gestures. It then provides an authentication
token that allows Windows to access resources and services.
7 Note
Imagine that someone is looking over your shoulder as you get money from an ATM
and sees the PIN that you enter. Having that PIN won't help them access your account
because they don't have your ATM card. In the same way, learning your PIN for your
device doesn't allow that attacker to access your account because the PIN is local to
your specific device and doesn't enable any type of authentication from any other
device.
Windows Hello helps protect user identities and user credentials. Because the user
doesn't enter a password (except during provisioning), it helps circumvent phishing and
brute force attacks. It also helps prevent server breaches because Windows Hello
credentials are an asymmetric key pair, which helps prevent replay attacks when these
keys are protected by TPMs.
Windows Hello for Business license entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
How Windows Hello for Business works: key
points
Windows Hello credentials are based on certificate or asymmetrical key pair.
Windows Hello credentials can be bound to the device, and the token that is
obtained using the credential is also bound to the device.
An identity provider validates the user identity and maps the Windows Hello public
key to a user account during the registration step. Example providers are Active
Directory, Azure AD, or a Microsoft account.
Keys can be generated in hardware (TPM 1.2 or 2.0 for enterprises, and TPM 2.0 for
consumers) or software, based on the policy. To guarantee that keys are generated
in hardware, you must set policy.
The private key never leaves a device when using TPM. The authenticating server
has a public key that is mapped to the user account during the registration
process.
PIN entry and biometric gesture both trigger Windows 10 and later to use the
private key to cryptographically sign data that is sent to the identity provider. The
identity provider verifies the user's identity and authenticates the user.
Certificate private keys can be protected by the Windows Hello container and the
Windows Hello gesture.
Windows Hello for Business with a key, including cloud Kerberos trust, doesn't support
supplied credentials for RDP. RDP doesn't support authentication with a key or a self
signed certificate. RDP with Windows Hello for Business is supported with certificate
based deployments as a supplied credential. Windows Hello for Business with a key
credential can be used with Remote Credential Guard.
Learn more
Implementing strong user authentication with Windows Hello for Business
Windows Hello for Business: Authentication : In this video, learn about Windows Hello
for Business and how it's used to sign-in and access resources.
Related articles
How Windows Hello for Business works
Manage Windows Hello for Business in your organization
Why a PIN is better than a password
Prepare people to use Windows Hello
Windows Hello and password changes
Windows Hello errors during PIN creation
Event ID 300 - Windows Hello successfully created
Windows Hello biometrics in the enterprise
Why a PIN is better than an online
password
Article • 03/16/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Windows Hello enables users to sign in to their device using a PIN. How is a PIN
different from (and better than) a local password? On the surface, a PIN looks much like
a password. A PIN can be a set of numbers, but enterprise policy might enforce complex
PINs that include special characters and letters, both upper-case and lower-case.
Something like t758A! could be an account password or a complex Hello PIN. It isn't the
structure of a PIN (length, complexity) that makes it better than an online password, it's
how it works. First, we need to distinguish between two types of passwords: local
passwords are validated against the machine's password store, whereas online passwords
are validated against a server. This article mostly covers the benefits a PIN has over an
online password, and also why it can be considered even better than a local password.
Watch Dana Huang explain why a Windows Hello for Business PIN is more secure than
an online password.
https://www.youtube-nocookie.com/embed/cC24rPBvdhA
The PIN can't be used anywhere except on that specific device. If you want to sign in on
multiple devices, you have to set up Hello on each device.
7 Note
For details on how Hello uses asymmetric key pairs for authentication, see
Windows Hello for Business.
User key material is generated and available within the TPM of the device. The TPM
protects the key material from attackers who want to capture and reuse it. Since Hello
uses asymmetric key pairs, users credentials can't be stolen in cases where the identity
provider or websites the user accesses have been compromised.
The TPM protects against various known and potential attacks, including PIN brute-
force attacks. After too many incorrect guesses, the device is locked.
1. Open the Local Group Policy Editor (gpedit.msc) and enable the policy: Computer
Configuration > Administrative Templates > Windows Components > BitLocker
Drive Encryption > Operating System Drives > Require additional authentication
at startup
2. In the policy option, select Allow BitLocker without a compatible TPM > OK
3. On the device, open Control Panel > System and Security > BitLocker Drive
Encryption
4. Select the operating system drive to protect
1. Open the Local Group Policy Editor (gpedit.msc) and enable the policy: Computer
Configuration > Windows Settings > Security Settings > Account Policies >
Account Lockout Policy > Account lockout threshold
2. Set the number of invalid logon attempts to allow, and then select OK
If you only had a biometric sign-in configured and, for any reason, were unable to use
that method to sign in, you would have to sign in using your account and password,
which doesn't provide you with the same level of protection as Hello.
Windows Hello biometrics in the
enterprise
Article • 02/21/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
7 Note
When Windows 10 first shipped, it included Microsoft Passport and Windows Hello,
which worked together to provide multi-factor authentication. To simplify
deployment and improve supportability, Microsoft has combined these
technologies into a single solution under the Windows Hello name. Customers who
have already deployed these technologies will not experience any change in
functionality. Customers who have yet to evaluate Windows Hello will find it easier
to deploy due to simplified policies, documentation, and semantics.
Because we realize your employees are going to want to use this new technology in
your enterprise, we've been actively working with the device manufacturers to create
strict design and performance recommendations that help to ensure that you can more
confidently introduce Windows Hello biometrics into your organization.
The Windows Hello authenticator works to authenticate and allow employees onto your
enterprise network. Authentication doesn't roam among devices, isn't shared with a
server, and can't easily be extracted from a device. If multiple employees share a device,
each employee will use his or her own biometric data on the device.
Support for Windows Hello is built into the operating system so you can add
additional biometric devices and policies as part of a coordinated rollout or to
individual employees or groups using Group Policy or Mobile Device Management
(MDM) configurations service provider (CSP) policies.
For more info about the available Group Policies and MDM CSPs, see the
Implement Windows Hello for Business in your organization topic.
7 Note
Each sensor on a device will have its own biometric database file where template
data is stored. Each database has a unique, randomly generated key that is
encrypted to the system. The template data for the sensor will be encrypted with
this per-database key using AES with CBC chaining mode. The hash is SHA256.
Some fingerprint sensors have the capability to complete matching on the
fingerprint sensor module instead of in the OS. These sensors will store biometric
data on the fingerprint module instead of in the database file.
7 Note
Windows Hello face authentication does not currently support wearing a mask
during enrollment or authentication. Wearing a mask to enroll is a security concern
because other users wearing a similar mask may be able to unlock your device. The
product group is aware of this behavior and is investigating this topic further.
Please remove a mask if you are wearing one when you enroll or unlock with
Windows Hello face authentication. If your working environment doesn't allow you
to remove a mask temporarily, please consider unenrolling from face
authentication and only using PIN or fingerprint.
Related topics
Windows Hello for Business
How Windows Hello for Business works
Manage Windows Hello for Business in your organization
Why a PIN is better than a password
Prepare people to use Windows Hello
Windows Hello and password changes
Windows Hello errors during PIN creation
Event ID 300 - Windows Hello successfully created
How Windows Hello for Business works
in Windows Devices
Article • 02/21/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Windows Hello for Business is a two-factor credential that is a more secure alternative to
passwords. Whether you are cloud or on-premises, Windows Hello for Business has a
deployment option for you. For cloud deployments, you can use Windows Hello for
Business with Azure Active Directory-joined, Hybrid Azure Active Directory-joined, or
Azure AD registered devices. Windows Hello for Business also works for domain joined
devices.
Watch this quick video where Pieter Wigleven gives a simple explanation of how
Windows Hello for Business works and some of its supporting features.
https://www.youtube-nocookie.com/embed/G-GJuDWbBE8
Device Registration
Registration is a fundamental prerequisite for Windows Hello for Business. Without
registration, Windows Hello for Business provisioning cannot start. Registration is where
the device registers its identity with the identity provider. For cloud and hybrid
deployments, the identity provider is Azure Active Directory and the device registers
with the Azure Device Registration Service (ADRS). For on-premises deployments, the
identity provider is Active Directory Federation Services (AD FS), and the device registers
with the enterprise device registration service hosted on the federation servers (AD FS).
Provisioning
Provisioning is when the user uses one form of authentication to request a new
Windows Hello for Business credential. Typically the user signs in to Windows using user
name and password. The provisioning flow requires a second factor of authentication
before it will create a strong, two-factor Windows Hello for Business credential.
Watch Matthew Palko and Ravi Vennapusa explain how Windows Hello for Business
provisioning works.
https://www.youtube-nocookie.com/embed/RImGsIjSJ1s
Authentication
With the device registered and provisioning complete, users can sign-in to Windows
using biometrics or a PIN. PIN is the most common gesture and is available on all
computers unless restricted by policy requiring a TPM. Regardless of the gesture used,
authentication occurs using the private portion of the Windows Hello for Business
credential. Neither the PIN nor the private portion of the credential are ever sent to the
identity provider, and the PIN is not stored on the device. It is user provided entropy
when performing operations that use the private portion of the credential.
Watch Matthew Palko and Ravi Vennapusa explain how Windows Hello for Business
authentication works.
https://www.youtube-nocookie.com/embed/WPmzoP_vMek
Related topics
Technology and Terminology
Windows Hello for Business
Manage Windows Hello for Business in your organization
Why a PIN is better than a password
Prepare people to use Windows Hello
Windows Hello and password changes
Windows Hello errors during PIN creation
Event ID 300 - Windows Hello successfully created
Windows Hello biometrics in the enterprise
Windows Hello for Business
Deployment Overview
Article • 02/21/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Windows Hello for Business is the springboard to a world without passwords. It replaces
username and password sign-in to Windows with strong user authentication based on
an asymmetric key pair.
This deployment overview is to guide you through deploying Windows Hello for
Business. Your first step should be to use the Passwordless Wizard in the Microsoft 365
admin center or the Planning a Windows Hello for Business Deployment guide to
determine the right deployment model for your organization.
Once you've chosen a deployment model, the deployment guide for that model will
provide you with the information needed to successfully deploy Windows Hello for
Business in your environment. Read the Windows Hello for Business Deployment
Prerequisite Overview for a summary of the prerequisites for each different Windows
Hello for Business deployment model.
Assumptions
This guide assumes that baseline infrastructure exists which meets the requirements for
your deployment. For either hybrid or on-premises deployments, it is expected that you
have:
If you are installing a server role for the first time, ensure the appropriate server
operating system is installed, updated with the latest patches, and joined to the domain.
This document provides guidance to install and configure the specific roles on that
server.
Do not begin your deployment until the hosting servers and infrastructure (not roles)
identified in your prerequisite worksheet are configured and properly working.
Hybrid deployments are for enterprises that use Azure Active Directory. On-premises
deployments are for enterprises who exclusively use on-premises Active Directory.
Remember that the environments that use Azure Active Directory must use the hybrid
deployment model for all domains in that forest.
The trust model determines how you want users to authenticate to the on-premises
Active Directory:
The key-trust model is for enterprises who do not want to issue end-entity
certificates to their users and have an adequate number of 2016 domain
controllers in each site to support authentication. This still requires Active Directory
Certificate Services for domain controller certificates.
The cloud-trust model is also for hybrid enterprises who do not want to issue end-
entity certificates to their users and have an adequate number of 2016 domain
controllers in each site to support authentication. This trust model is simpler to
deploy than key trust and does not require Active Directory Certificate Services. We
recommend using cloud Kerberos trust instead of Key Trust if the clients in your
enterprise support it.
The certificate-trust model is for enterprises that do want to issue end-entity
certificates to their users and have the benefits of certificate expiration and
renewal, similar to how smart cards work today.
The certificate trust model also supports enterprises which are not ready to deploy
Windows Server 2016 Domain Controllers.
7 Note
RDP does not support authentication with Windows Hello for Business Key Trust or
cloud Kerberos trust deployments as a supplied credential. RDP is only supported
with certificate trust deployments as a supplied credential at this time. Windows
Hello for Business Key Trust and cloud Kerberos trust can be used with Remote
Credential Guard.
Following are the various deployment guides and models included in this topic:
For Windows Hello for Business hybrid certificate trust prerequisites and key trust
prerequisites deployments, you will need Azure Active Directory Connect to synchronize
user accounts in the on-premises Active Directory with Azure Active Directory. For on-
premises deployments, both key and certificate trust, use the Azure MFA server where
the credentials are not synchronized to Azure Active Directory. Learn how to deploy
Multifactor Authentication Services (MFA) for key trust and for certificate trust
deployments.
Provisioning
Windows Hello for Business provisioning begins immediately after the user has signed
in, after the user profile is loaded, but before the user receives their desktop. Windows
only launches the provisioning experience if all the prerequisite checks pass. You can
determine the status of the prerequisite checks by viewing the User Device Registration
in the Event Viewer under Applications and Services Logs\Microsoft\Windows.
Note that you need to allow access to the URL account.microsoft.com to initiate
Windows Hello for Business provisioning. This URL launches the subsequent steps in the
provisioning process and is required to successfully complete Windows Hello for
Business provisioning. This URL does not require any authentication and as such, does
not collect any user data.
Planning a Windows Hello for Business
Deployment
Article • 02/21/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Congratulations! You are taking the first step forward in helping move your
organizations away from password to a two-factor, convenience authentication for
Windows — Windows Hello for Business. This planning guide helps you understand the
different topologies, architectures, and components that encompass a Windows Hello
for Business infrastructure.
This guide explains the role of each component within Windows Hello for Business and
how certain deployment decisions affect other aspects of the infrastructure. Armed with
your planning worksheet, you'll use that information to select the correct deployment
guide for your needs.
7 Note
If you have an Azure tenant, you can use our online, interactive Passwordless
Wizard which walks through the same choices instead of using our manual guide
below. The Passwordless Wizard is available in the Microsoft 365 admin center .
This guide removes the appearance of complexity by helping you make decisions on
each aspect of your Windows Hello for Business deployment and the options you'll need
to consider. Using this guide also identifies the information needed to help you make
decisions about the deployment that best suits your environment. Download the
Windows Hello for Business planning worksheet from the Microsoft Download Center
to help track your progress and make your planning easier.
How to Proceed
Read this document and record your decisions on the worksheet. When finished, your
worksheet has all the necessary information for your Windows Hello for Business
deployment.
There are six major categories you need to consider for a Windows Hello for Business
deployment. Those categories are:
Deployment Options
Client
Management
Active Directory
Public Key Infrastructure
Cloud
Baseline Prerequisites
Windows Hello for Business has a few baseline prerequisites with which you can begin.
These baseline prerequisites are provided in the worksheet.
Deployment Options
The goal of Windows Hello for Business is to enable deployments for all organizations of
any size or scenario. To provide this type of granular deployment, Windows Hello for
Business offers a diverse choice of deployment options.
Deployment models
There are three deployment models from which you can choose: cloud only, hybrid, and
on-premises.
Cloud only
The cloud only deployment model is for organizations who only have cloud identities
and do not access on-premises resources. These organizations typically join their
devices to the cloud and exclusively use resources in the cloud such as SharePoint,
OneDrive, and others. Also, because these users do not use on-premises resources, they
do not need certificates for things like VPN because everything they need is hosted in
Azure.
Hybrid
) Important
Hybrid deployments support non-destructive PIN reset that works with both the
certificate trust and key trust models.
Requirements:
Microsoft PIN Reset Service - Windows 10, versions 1709 to 1809, Enterprise
Edition. There is no licensing requirement for this service since version 1903
Reset above lock screen (I forgot my PIN link) - Windows 10, version 1903
On-premises
The on-premises deployment model is for organizations that do not have cloud
identities or use applications hosted in Azure Active Directory.
) Important
On-premises deployments support destructive PIN reset that works with both the
certificate trust and the key trust models.
Requirements:
7 Note
Windows Hello for Business introduced a new trust model called cloud Kerberos
trust, in early 2022. This model enables deployment of Windows Hello for Business
using the infrastructure introduced for supporting security key sign-in on Hybrid
Azure AD-joined devices and on-premises resource access on Azure AD Joined
devices. For more information, see Hybrid Cloud Kerberos Trust Deployment.
The key trust type does not require issuing authentication certificates to end users.
Users authenticate using a hardware-bound key created during the built-in provisioning
experience. This requires an adequate distribution of Windows Server 2016 or later
domain controllers relative to your existing authentication and the number of users
included in your Windows Hello for Business deployment. Read the Planning an
adequate number of Windows Server 2016 or later Domain Controllers for Windows
Hello for Business deployments to learn more.
The certificate trust type issues authentication certificates to end users. Users
authenticate using a certificate requested using a hardware-bound key created during
the built-in provisioning experience. Unlike key trust, certificate trust does not require
Windows Server 2016 domain controllers (but still requires Windows Server 2016 or later
Active Directory schema). Users can use their certificate to authenticate to any Windows
Server 2008 R2, or later, domain controller.
7 Note
RDP does not support authentication with Windows Hello for Business key trust
deployments as a supplied credential. RDP is only supported with certificate trust
deployments as a supplied credential at this time. Windows Hello for Business key
trust can be used with Remote Credential Guard.
Device registration
All devices included in the Windows Hello for Business deployment must go through
device registration. Device registration enables devices to authenticate to identity
providers. For cloud only and hybrid deployment, the identity provider is Azure Active
Directory. For on-premises deployments, the identity provider is the on-premises server
running the Windows Server 2016 Active Directory Federation Services (AD FS) role.
Key registration
The built-in Windows Hello for Business provisioning experience creates a hardware
bound asymmetric key pair as their user's credentials. The private key is protected by
the device's security modules; however, the credential is a user key (not a device key).
The provisioning experience registers the user's public key with the identity provider. For
cloud only and hybrid deployments, the identity provider is Azure Active Directory. For
on-premises deployments, the identity provider is the on-premises server running
Windows Server 2016 Active Directory Federation Services (AD FS) role.
Multifactor authentication
) Important
As of July 1, 2019, Microsoft will no longer offer MFA Server for new deployments.
New customers who require multi-factor authentication for their users should use
cloud-based Azure AD Multi-Factor Authentication. Existing customers who have
activated MFA Server prior to July 1, 2019 will be able to download the latest
version, future updates and generate activation credentials as usual. See Getting
started with the Azure AD Multi-Factor Authentication Server for more details.
The goal of Windows Hello for Business is to move organizations away from passwords
by providing them a strong credential that provides easy two-factor authentication. The
built-in provisioning experience accepts the user's weak credentials (username and
password) as the first factor authentication; however, the user must provide a second
factor of authentication before Windows provisions a strong credential.
Cloud only and hybrid deployments provide many choices for multi-factor
authentication. On-premises deployments must use a multi-factor authentication that
provides an AD FS multi-factor adapter to be used in conjunction with the on-premises
Windows Server 2016 AD FS server role. Organizations can use the on-premises Azure
AD Multi-Factor Authentication server, or choose from several third parties (Read
Microsoft and third-party additional authentication methods for more information).
7 Note
Azure AD Multi-Factor Authentication is available through:
Directory synchronization
Hybrid and on-premises deployments use directory synchronization, however, each for a
different purpose. Hybrid deployments use Azure Active Directory Connect to
synchronize Active Directory identities or credentials between itself and Azure Active
Directory. This helps enable single sign-on to Azure Active Directory and its federated
components. On-premises deployments use directory synchronization to import users
from Active Directory to the Azure MFA Server, which sends data to the Azure MFA
cloud service to perform the verification.
Management
Windows Hello for Business provides organizations with a rich set of granular policy
settings with which they can use to manage their devices and users. There are three
ways in which you can manage Windows Hello for Business: Group Policy, Modern
Management, and Mixed.
Group Policy
Group Policy is the easiest and most popular way to manage Windows Hello for
Business on domain joined devices. Simply create a Group Policy object with the settings
you desire. Link the Group Policy object high in your Active Directory and use security
group filtering to target specific sets of computers or users. Or, link the GPO directly to
the organizational units.
Modern management
Modern management is an emerging device management paradigm that leverages the
cloud for managing domain joined and non-domain joined devices. Organizations can
unify their device management into one platform and apply policy settings using a
single platform
Client
Windows Hello for Business is an exclusive Windows 10 and Windows 11 feature. As part
of the Windows as a Service strategy, Microsoft has improved the deployment,
management, and user experience with each new release of Windows and introduced
support for new scenarios.
Most deployment scenarios require a minimum of Windows 10, version 1511, also
known as the November Update. The client requirement may change based on different
components in your existing infrastructure, or other infrastructure choices made later in
planning your deployment. Those components and choices may require a minimum
client running Windows 10, version 1703, also known as the Creators Update.
Active Directory
Hybrid and on-premises deployments include Active Directory as part of their
infrastructure. Most of the Active Directory requirements, such as schema, and domain
and forest functional levels are predetermined. However, your trust type choice for
authentication determines the version of domain controller needed for the deployment.
Cloud
Some deployment combinations require an Azure account, and some require Azure
Active Directory for user identities. These cloud requirements may only need an Azure
account while other features need an Azure Active Directory Premium subscription. The
planning process identifies and differentiates the components that are needed from
those that are optional.
Planning a Deployment
Planning your Windows Hello for Business deployment begins with choosing a
deployment type. Like all distributed systems, Windows Hello for Business depends on
multiple components within your organization's infrastructure.
Use the remainder of this guide to help with planning your deployment. As you make
decisions, write the results of those decisions in your planning worksheet. When
finished, you'll have all the information needed to complete the planning process and
the appropriate deployment guide that best helps you with your deployment.
Deployment Model
Choose the deployment model based on the resources your users access. Use the
following guidance to make your decision.
If your organization does not have on-premises resources, write Cloud Only in box 1a on
your planning worksheet.
If your organization is federated with Azure or uses any service, such as AD Connect,
Office365 or OneDrive, or your users access cloud and on-premises resources, write
Hybrid in box 1a on your planning worksheet.
If your organization does not have cloud resources, write On-Premises in box 1a on your
planning worksheet.
7 Note
Trust type
Hybrid Azure AD-joined devices managed by Group Policy need the Windows Server
2016 AD FS role to issue certificates. Hybrid Azure AD-joined devices and Azure AD-
joined devices managed by Intune or a compatible MDM need the Windows Server
NDES server role to issue certificates.
Choose a trust type that is best suited for your organizations. Remember, the trust type
determines two things. Whether you issue authentication certificates to your users and if
your deployment needs Windows Server 2016 domain controllers.
One trust model is not more secure than the other. The major difference is based on the
organization comfort with deploying Windows Server 2016 domain controllers and not
enrolling users with end entity certificates (key-trust) against using existing domain
controllers and needing to enroll certificates for all their users (certificate trust).
Because the certificate trust types issues certificates, there is more configuration and
infrastructure needed to accommodate user certificate enrollment, which could also be a
factor to consider in your decision. Additional infrastructure needed for certificate-trust
deployments includes a certificate registration authority. In a federated environment,
you need to activate the Device Writeback option in Azure AD Connect.
If your organization wants to use the key trust type, write key trust in box 1b on your
planning worksheet. Write Windows Server 2016 in box 4d. Write N/A in box 5b.
If your organization wants to use the certificate trust type, write certificate trust in box
1b on your planning worksheet. Write Windows Server 2008 R2 or later in box 4d. In
box 5c, write smart card logon under the Template Name column and write users
under the Issued To column on your planning worksheet.
Device Registration
A successful Windows Hello for Business requires all devices to register with the identity
provider. The identity provider depends on the deployment model.
If box 1a on your planning worksheet reads cloud only or hybrid, write Azure in box 1c
on your planning worksheet.
Key Registration
All users provisioning Windows Hello for Business have their public key registered with
the identity provider. The identity provider depends on the deployment model.
If box 1a on your planning worksheet reads cloud only or hybrid, write Azure in box 1d
on your planning worksheet.
If box 1a on your planning worksheet reads cloud only, write N/A in box 1e. User
information is written directly to Azure Active Directory and there is not another
directory with which the information must be synchronized.
If box 1a on your planning worksheet reads hybrid, then write Azure AD Connect in box
1e on your planning worksheet.
If box 1a on your planning worksheet reads on-premises, then write Azure MFA Server.
This deployment exclusively uses Active Directory for user information with the
exception of the multi-factor authentication. The on-premises Azure MFA server
synchronizes a subset of the user information, such as phone number, to provide multi-
factor authentication while the user's credentials remain on the on-premises network.
Multifactor Authentication
The goal of Windows Hello for Business is to move user authentication away from
passwords to a strong, key-based user authentication. Passwords are weak credentials
and cannot be trusted by themselves as an attacker with a stolen password could be
attempting to enroll in Windows Hello for Business. To keep the transition from a weak
to a strong credential secure, Windows Hello for Business relies on multi-factor
authentication during provisioning to have some assurances that the user identity
provisioning a Windows Hello for Business credential is the proper identity.
If box 1a on your planning worksheet reads cloud only, then your only option is to use
the Azure MFA cloud service. Write Azure MFA in box 1f on your planning worksheet.
If box 1a on your planning worksheet reads hybrid, then you have a few options, some
of which depend on your directory synchronization configuration. The options from
which you may choose include:
You can configure your on-premises Windows Server 2016 AD FS role to use the Azure
MFA service adapter. In this configuration, users are redirected to the on premises AD FS
server (synchronizing identities only). The AD FS server uses the MFA adapter to
communicate to the Azure MFA service to perform the second factor of authentication.
If you choose to use AD FS with the Azure MFA cloud service adapter, write AD FS with
Azure MFA cloud adapter in box 1f on your planning worksheet.
Alternatively, you can use AD FS with an on-premises Azure MFA server adapter. Rather
than AD FS communicating directly with the Azure MFA cloud service, it communicates
with an on-premises Azure MFA server that synchronizes user information with the on-
premises Active Directory. The Azure MFA server communicates with Azure MFA cloud
services to perform the second factor of authentication. If you choose to use AD FS with
the Azure MFA server adapter, write AD FS with Azure MFA server adapter in box 1f on
your planning worksheet.
The last option is for you to use AD FS with a third-party adapter as the second factor of
authentication. If you choose to use AD FS with a third-party MFA adapter, write AD FS
with third party in box 1f on your planning worksheet.
If box 1a on your planning worksheet reads on-premises, then you have two second
factor authentication options. You must use Windows Server 2016 AD FS with your
choice of the on-premises Azure MFA server or with a third-party MFA adapter.
If you choose to use AD FS with the Azure MFA server adapter, write AD FS with Azure
MFA server adapter in box 1f on your planning worksheet. If you choose to use AD FS
with a third-party MFA adapter, write AD FS with third party in box 1f on your planning
worksheet.
Management
Windows Hello for Business provides organizations with many policy settings and
granular control on how these settings may be applied to both computers and users.
The type of policy management you can use depends on your selected deployment and
trust models.
If box 1a on your planning worksheet reads cloud only, write N/A in box 2a on your
planning worksheet. You have the option to manage non-domain joined devices. If you
choose to manage Azure Active Directory-joined devices, write modern management in
box 2b on your planning worksheet. Otherwise, write** N/A** in box 2b.
7 Note
Managing hybrid deployments includes two categories of devices to consider for your
Windows Hello for Business deployment—domain joined and non-domain joined. All
devices are registered, however, not all devices are domain joined. You have the option
of using Group Policy for domain joined devices and modern management for non-
domain joined devices. Or, you can use modern management for both domain and non-
domain joined devices.
If you use Group Policy to manage your domain joined devices, write GP in box 2a on
your planning worksheet. Write modern management in box 2b if you decide to
manage non-domain joined devices; otherwise, write N/A.
If you use modern management for both domain and non-domain joined devices, write
modern management in box 2a and 2b on your planning worksheet.
Client
Windows Hello for Business is a feature exclusive to Windows 10 and Windows 11. Some
deployments and features are available using earlier versions of Windows 10. Others
need the latest versions.
If box 1a on your planning worksheet reads cloud only, write N/A in box 3a on your
planning worksheet. Optionally, you may write 1511 or later in box 3b on your planning
worksheet if you plan to manage non-domain joined devices.
7 Note
Write 1511 or later in box 3a on your planning worksheet if any of the following are true.
Write 1703 or later in box 3a on your planning worksheet if any of the following are
true.
Active Directory
The Active Directory portion of the planning guide should be complete. Most of the
conditions are baseline prerequisites except for your domain controllers. The domain
controllers used in your deployment are decided by the chosen trust type.
Review the trust type portion of this section if box 4d on your planning worksheet
remains empty.
If box 1b on your planning worksheet reads key trust, write N/A in box 5b on your
planning worksheet. Key trust doesn't require any change in public key infrastructure,
skip this part and go to Cloud section.
The registration authority only relates to certificate trust deployments and the
management used for domain and non-domain joined devices. Hybrid Azure AD-joined
devices managed by Group Policy need the Windows Server 2016 AD FS role to issue
certificates. Hybrid Azure AD-joined devices and Azure AD-joined devices managed by
Intune or a compatible MDM need the Windows Server NDES server role to issue
certificates.
If box 2a reads GP and box 2b reads modern management, write AD FS RA and NDES
in box 5b on your planning worksheet. In box 5c, write the following certificate
templates names and issuances:
Web Server AD FS RA
If box 2a reads GP and box 2b reads N/A, write AD FS RA in box 5b and write the
following certificate template names and issuances in box 5c on your planning
worksheet.
Web Server AD FS RA
If box 2a or 2b reads modern management, write NDES in box 5b and write the
following certificate template names and issuances in box 5c on your planning
worksheet.
Certificate Template Name Issued To
Cloud
Nearly all deployments of Windows Hello for Business require an Azure account.
If box 1a on your planning worksheet reads cloud only or hybrid, write Yes in boxes 6a
and 6b on your planning worksheet.
If box 1a on your planning worksheet reads on-premises, and box 1f reads AD FS with
third party, write No in box 6a on your planning worksheet. Otherwise, write Yes in box
6a as you need an Azure account for per-consumption MFA billing. Write No in box 6b
on your planning worksheet—on-premises deployments do not use the cloud directory.
Windows Hello for Business does not require an Azure AD premium subscription.
However, some dependencies, such as MDM automatic enrollment and Conditional
Access do.
If box 1a on your planning worksheet reads hybrid and box 1b reads key trust, write No
in box 6c on your planning worksheet. You can deploy Windows Hello for Business using
the Azure Active Directory free tier. All Azure Active Directory free accounts can use
Azure AD Multi-Factor Authentication through the use of security defaults. Some Azure
AD Multi-Factor Authentication features require a license. For more details, see Features
and licenses for Azure AD Multi-Factor Authentication.
If box 5b on your planning worksheet reads AD FS RA, write Yes in box 6c on your
planning worksheet. Enrolling a certificate using the AD FS registration authority
requires devices to authenticate to the AD FS server, which requires device write-back,
an Azure AD Premium feature.
This article lists the infrastructure requirements for the different deployment models for
Windows Hello for Business.
Hybrid Deployments
The table shows the minimum requirements for each deployment. For key trust in a
multi-domain/multi-forest deployment, the following requirements are applicable for
each domain/forest that hosts Windows Hello for business components or is involved in
the Kerberos referral process.
Domain and Windows Server Windows Server Windows Server Windows Server
Forest 2008 R2 2008 R2 2008 R2 2008 R2
Requirement Cloud Kerberos Key trust Certificate Trust Certificate Trust
trust Group Policy or Mixed managed Modern
Group Policy or Modern managed
Modern managed
managed
On-premises Deployments
The table shows the minimum requirements for each deployment.
Any supported Windows client versions Any supported Windows client versions
Key trust Certificate trust
Group Policy managed Group Policy managed
Any supported Windows Server versions Any supported Windows Server versions
Any supported Windows Server versions Any supported Windows Server versions
Any supported Windows Server versions Any supported Windows Server versions
AD FS with 3rd Party MFA Adapter AD FS with 3rd Party MFA Adapter
Cloud-only deployment
Article • 10/03/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Introduction
When you Microsoft Entra join a Windows device, the system prompts you to enroll in
Windows Hello for Business by default. If you want to use Windows Hello for Business in
a cloud-only environment, there's no additional configuration needed.
You may wish to disable the automatic Windows Hello for Business enrollment prompts
if you aren't ready to use it in your environment. This article describes how to disable
Windows Hello for Business enrollment in a cloud only environment.
7 Note
During the out-of-box experience (OOBE) flow of an Microsoft Entra join, you will
see a provisioning PIN when you don't have Intune. You can always cancel the PIN
screen and set this cancellation with registry keys to prevent future prompts.
Prerequisites
Cloud only deployments will use Microsoft Entra multifactor authentication (MFA)
during Windows Hello for Business enrollment, and there's no additional MFA
configuration needed. If you aren't already registered in MFA, you'll be guided through
the MFA registration as part of the Windows Hello for Business enrollment process.
The necessary Windows Hello for Business prerequisites are located at Cloud Only
Deployment.
It's possible for federated domains to configure the FederatedIdpMfaBehavior flag. The
flag instructs Microsoft Entra ID to accept, enforce, or reject the MFA challenge from the
federated IdP. For more information, see federatedIdpMfaBehavior values. To check this
setting, use the following PowerShell command:
PowerShell
Connect-MgGraph
$DomainId = "<your federated domain name>"
Get-MgDomainFederationConfiguration -DomainId $DomainId |fl
To reject the MFA claim from the federated IdP, use the following command. This
change impacts all MFA scenarios for the federated domain.
PowerShell
2. Go to Devices > Enrollment > Enroll devices > Windows enrollment > Windows
Hello for Business. The Windows Hello for Business pane opens.
3. If you don't want to enable Windows Hello for Business during device enrollment,
select Disabled for Configure Windows Hello for Business.
When disabled, users can't provision Windows Hello for Business. When set to
Disabled, you can still configure the subsequent settings for Windows Hello for
Business even though this policy won't enable Windows Hello for Business.
7 Note
This policy is only applied during new device enrollments. For currently enrolled
devices, you can set the same settings in a device configuration policy.
ID>\Device\Policies
To look up your Tenant ID, see How to find your Microsoft Entra tenant ID or try the
following, ensuring to sign-in with your organization's account:
HTTP
GET https://graph.microsoft.com/v1.0/organization?$select=id
These registry settings are pushed from Intune for user policies:
ID>\UserSid\Policies
DWORD: UsePassportForWork
Value = 0 for Disable, or Value = 1 for Enable
DWORD: Enabled
Value = 0 for Disable or Value = 1 for Enable
If there's a conflicting Device policy and User policy, the User policy would take
precedence. We don't recommend creating Local/GPO registry settings that could
conflict with an Intune policy. This conflict could lead to unexpected results.
Cloud Kerberos trust deployment
Article • 06/20/2023 • Applies to: ✅ Windows 10, version 21H2 and later
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business replaces password sign-in with strong authentication, using
an asymmetric key pair. This deployment guide provides the information to deploy
Windows Hello for Business in a cloud Kerberos trust scenario.
Windows Hello for Business cloud Kerberos trust uses Azure AD Kerberos, which enables
a simpler deployment when compared to the key trust model:
7 Note
Windows Hello for Business cloud Kerberos trust is the recommended deployment
model when compared to the key trust model. It is also the preferred deployment
model if you do not need to support certificate authentication scenarios.
Azure AD Kerberos and cloud Kerberos trust
authentication
Key trust and certificate trust use certificate authentication-based Kerberos for
requesting kerberos ticket-granting-tickets (TGTs) for on-premises authentication. This
type of authentication requires a PKI for DC certificates, and requires end-user
certificates for certificate trust.
Cloud Kerberos trust uses Azure AD Kerberos, which doesn't require a PKI to request
TGTs.
With Azure AD Kerberos, Azure AD can issue TGTs for one or more AD domains.
Windows can request a TGT from Azure AD when authenticating with Windows Hello for
Business, and use the returned TGT for sign-in or to access AD-based resources. The on-
premises domain controllers are still responsible for Kerberos service tickets and
authorization.
Appears as a Read Only Domain Controller (RODC) object, but isn't associated with
any physical servers
Is only used by Azure AD to generate TGTs for the Active Directory domain
7 Note
Similar rules and restrictions used for RODCs apply to the AzureADKerberos
computer object. For example, users that are direct or indirect members of
priviliged built-in security groups won't be able to use cloud Kerberos trust.
For more information about how Azure AD Kerberos enables access to on-premises
resources, see enabling passwordless security key sign-in to on-premises resources.
For more information about how Azure AD Kerberos works with Windows Hello for
Business cloud Kerberos trust, see Windows Hello for Business authentication technical
deep dive.
) Important
When implementing the cloud Kerberos trust deployment model, you must ensure
that you have an adequate number of read-write domain controllers in each Active
Directory site where users will be authenticating with Windows Hello for Business.
For more information, see Capacity planning for Active Directory.
Prerequisites
Requirement Notes
Multi-factor This requirement can be met using Azure AD multi-factor authentication, multi-
Authentication factor authentication provided through AD FS, or a comparable solution.
Windows 10, If you're using Windows 10 21H2, KB5010415 must be installed. If you're using
version 21H2 Windows 11 21H2, KB5010414 must be installed. There's no Windows version
or Windows 11 support difference between Azure AD joined and Hybrid Azure AD-joined
and later devices.
Requirement Notes
Windows If you're using Windows Server 2016, KB3534307 must be installed. If you're
Server 2016 or using Server 2019, KB4534321 must be installed.
later Domain
Controllers
Azure AD This module is used for enabling and managing Azure AD Kerberos. It's
Kerberos available through the PowerShell Gallery .
PowerShell
module
Device Windows Hello for Business cloud Kerberos trust can be managed with group
management policy or through mobile device management (MDM) policy. This feature is
disabled by default and must be enabled using policy.
Unsupported scenarios
The following scenarios aren't supported using Windows Hello for Business cloud
Kerberos trust:
7 Note
Next steps
Once the prerequisites are met, deploying Windows Hello for Business with a cloud
Kerberos trust model consists of the following steps:
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Deployment steps
Deploying Windows Hello for Business cloud Kerberos trust consists of two steps:
If you haven't deployed Azure AD Kerberos, follow the instructions in the Enable
passwordless security key sign-in to on-premises resources by using Azure AD
documentation. This page includes information on how to install and use the Azure AD
Kerberos PowerShell module. Use the module to create an Azure AD Kerberos Server
object for the domains where you want to use Windows Hello for Business cloud
Kerberos trust.
For devices managed by Intune, you can use Intune policies to configure Windows
Hello for Business.
There are different ways to enable and configure Windows Hello for Business in
Intune:
If the tenant-wide policy is enabled and configured to your needs, you can skip to
Configure cloud Kerberos trust policy. Otherwise, follow the instructions below to
create a policy using an account protection policy.
Tip
If you want to enforce the use of digits for your Windows Hello for Business
PIN, use the settings catalog and choose Digits or Digits (User) instead of
using the Account protection template.
Assign the policy to a security group that contains as members the devices or users
that you want to configure.
2. Select Devices > Windows > Configuration Profiles > Create profile.
3. For Profile Type, select Templates and select the Custom Template.
4. Name the profile with a familiar name, for example, "Windows Hello for
Business cloud Kerberos trust".
) Important
Tenant ID in the OMA-URI must be replaced with the tenant ID for your
Azure AD tenant. See How to find your Azure AD tenant ID for
instructions on looking up your tenant ID.
6. Assign the policy to a security group that contains as members the devices or
users that you want to configure.
) Important
You can determine the status of the prerequisite check by viewing the User Device
Registration admin log under Applications and Services Logs > Microsoft > Windows.
This information is also available using the dsregcmd /status command from a console.
For more information, see dsregcmd.
The cloud Kerberos trust prerequisite check detects whether the user has a partial TGT
before allowing provisioning to start. The purpose of this check is to validate whether
Azure AD Kerberos is set up for the user's domain and tenant. If Azure AD Kerberos is
set up, the user will receive a partial TGT during sign-in with one of their other unlock
methods. This check has three states: Yes, No, and Not Tested. The Not Tested state is
reported if cloud Kerberos trust isn't being enforced by policy or if the device is Azure
AD joined.
7 Note
The cloud Kerberos trust prerequisite check isn't done on Azure AD-joined devices.
If Azure AD Kerberos isn't provisioned, a user on an Azure AD joined device will still
be able to sign in, but won't have SSO to on-premises resources secured by Active
Directory.
PIN Setup
After a user signs in, this is the process that occurs to enroll in Windows Hello for
Business:
1. The user is prompted with a full screen page to use Windows Hello with the
organization account. The user selects OK.
2. The provisioning flow proceeds to the multi-factor authentication portion of the
enrollment. Provisioning informs the user that it's actively attempting to contact
the user through their configured form of MFA. The provisioning process doesn't
proceed until authentication succeeds, fails or times out. A failed or timeout MFA
results in an error and asks the user to retry.
3. After a successful MFA, the provisioning flow asks the user to create and validate a
PIN. This PIN must observe any PIN complexity policies configured on the device.
Sign-in
Once a user has set up a PIN with cloud Kerberos trust, it can be used immediately for
sign-in. On a Hybrid Azure AD joined device, the first use of the PIN requires line of
sight to a DC. Once the user has signed in or unlocked with the DC, cached sign-in can
be used for subsequent unlocks without line of sight or network connectivity.
7 Note
For hybrid Azure AD joined devices, users must perform the first sign in with new
credentials while having line of sight to a DC.
) Important
If you deployed Windows Hello for Business using the certificate trust model, and want
to use the cloud Kerberos trust model, you must redeploy Windows Hello for Business
by following these steps:
7 Note
For hybrid Azure AD joined devices, users must perform the first sign-in with new
credentials while having line of sight to a DC.
Frequently Asked Questions
For a list of frequently asked questions about Windows Hello for Business cloud
Kerberos trust, see Windows Hello for Business Frequently Asked Questions.
Hybrid key trust deployment
Article • 01/24/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Hybrid environments are distributed systems that enable organizations to use on-
premises and Azure AD-protected resources. Windows Hello for Business uses the
existing distributed system as a foundation on which organizations can provide two-
factor authentication and single sign-on to modern resources.
This deployment guide describes how to deploy Windows Hello for Business in a hybrid
key trust scenario.
) Important
Windows Hello for Business cloud Kerberos trust is the recommended deployment
model when compared to the key trust model. For more information, see cloud
Kerberos trust deployment.
It is recommended that you review the Windows Hello for Business planning guide prior
to using the deployment guide. The planning guide helps you make decisions by
explaining the available options with each aspect of the deployment and explains the
potential outcomes based on each of these decisions.
Prerequisites
The following prerequisites must be met for a hybrid key trust deployment:
The two directories must be synchronized with Azure AD Connect Sync, which
synchronizes user accounts from the on-premises Active Directory to Azure AD.
During the Window Hello for Business provisioning process, users register the public
portion of their Windows Hello for Business credential with Azure AD. Azure AD Connect
Sync synchronizes the Windows Hello for Business public key to Active Directory.
7 Note
Windows Hello for Business hybrid key trust is not supported if the users' on-
premises UPN suffix cannot be added as a verified domain in Azure AD.
Authentication to Azure AD
Authentication to Azure AD can be configured with or without federation:
Device registration
The Windows devices must be registered in Azure AD. Devices can be registered in
Azure AD using either Azure AD join or hybrid Azure AD join.
For hybrid Azure AD joined devices, review the guidance on the Plan your hybrid Azure
Active Directory join implementation page.
Device management
To configure Windows Hello for Business, devices can be configured through a mobile
device management (MDM) solution like Intune, or via group policy.
Next steps
Once the prerequisites are met, deploying Windows Hello for Business with a hybrid key
trust model consists of the following steps:
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business must have a Public Key Infrastructure (PKI) when using the
key trust model. The domain controllers must have a certificate, which serves as a root of
trust for clients. The certificate ensures that clients don't communicate with rogue
domain controllers.
Lab-based PKI
The following instructions may be used to deploy simple public key infrastructure that is
suitable for a lab environment.
7 Note
PowerShell
PowerShell
Install-AdcsCertificationAuthority
) Important
The certificates issued to the domain controllers must meet the following
requirements:
The Certificate Revocation List (CRL) distribution point extension must point to
a valid CRL, or an Authority Information Access (AIA) extension that points to
an Online Certificate Status Protocol (OCSP) responder
Optionally, the certificate Subject section could contain the directory path of
the server object (the distinguished name)
The certificate Key Usage section must contain Digital Signature and Key
Encipherment
Optionally, the certificate Basic Constraints section should contain: [Subject
Type=End Entity, Path Length Constraint=None]
The certificate extended key usage section must contain Client Authentication
( 1.3.6.1.5.5.7.3.2 ), Server Authentication ( 1.3.6.1.5.5.7.3.1 ), and KDC
Authentication ( 1.3.6.1.5.2.3.5 )
The certificate Subject Alternative Name section must contain the Domain
Name System (DNS) name
The certificate template must have an extension that has the value
DomainController , encoded as a BMPstring. If you are using Windows Server
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the lab.
Select the Build from this Active Directory information button if it isn't
already selected
Select None from the Subject name format list
Select DNS name from the Include this information in alternate subject list
Clear all other items
8. Select OK
9. Close the console
7 Note
Install the root CA certificate in the device's trusted root certificate store. See
how to deploy a trusted certificate profile via Intune
Publish your certificate revocation list to a location that is available to Azure
AD-joined devices, such as a web-based URL
The Kerberos Authentication certificate template is the most current certificate template
designated for domain controllers, and should be the one you deploy to all your domain
controllers.
The autoenrollment feature allows you to replace the domain controller certificates. Use
the following configuration to replace older domain controller certificates with new
ones, using the Kerberos Authentication certificate template.
The certificate template is configured to supersede all the certificate templates provided
in the superseded templates list.
However, the certificate template and the superseding of certificate templates isn't
active until the template is published to one or more certificate authorities.
7 Note
The domain controller's certificate must chain to a root in the NTAuth store. By
default, the Active Directory Certificate Authority's root certificate is added to the
NTAuth store. If you are using a third-party CA, this may not be done by default. If
the domain controller certificate does not chain to a root in the NTAuth store, user
authentication will fail. To see all certificates in the NTAuth store, use the following
command:
) Important
If you plan to deploy Azure AD joined devices, and require single sign-on (SSO) to
on-premises resources when signing in with Windows Hello for Business, follow the
procedures to update your CA to include an http-based CRL distribution point.
Confirm your domain controllers enroll the correct certificates and not any superseded
certificate templates. Check that each domain controller completed the certificate
autoenrollment.
Use the event logs
Sign in to domain controller or management workstations with Domain Administrator
equivalent credentials.
1. Using the Event Viewer, navigate to the Application and Services > Microsoft >
Windows > CertificateServices-Lifecycles-System event log
2. Look for an event indicating a new certificate enrollment (autoenrollment):
The details of the event include the certificate template on which the
certificate was issued
The name of the certificate template used to issue the certificate should
match the certificate template name included in the event
The certificate thumbprint and EKUs for the certificate are also included in the
event
The EKU needed for proper Windows Hello for Business authentication is
Kerberos Authentication, in addition to other EKUs provide by the certificate
template
Certificate Manager
You can use the Certificate Manager console to validate the domain controller has the
properly enrolled certificate based on the correct certificate template with the proper
EKUs. Use certlm.msc to view certificate in the local computers certificate stores. Expand
the Personal store and view the certificates enrolled for the computer. Archived
certificates don't appear in Certificate Manager.
Certutil.exe
You can use certutil.exe command to view enrolled certificates in the local computer.
Certutil shows enrolled and archived certificates for the local computer. From an
elevated command prompt, run certutil.exe -q -store my to view locally enrolled
certificates.
To view detailed information about each certificate in the store, use certutil.exe -q -v
-store my to validate automatic certificate enrollment enrolled the proper certificates.
Troubleshooting
Windows triggers automatic certificate enrollment for the computer during boot, and
when Group Policy updates. You can refresh Group Policy from an elevated command
prompt using gpupdate.exe /force .
Use the event logs to monitor certificate enrollment and archive. Review the
configuration, such as publishing certificate templates to issuing certification authority
and the allow auto enrollment permissions.
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
After the prerequisites are met and the PKI configuration is validated, Windows Hello for
business must be enabled on the Windows devices. Follow the instructions below to
configure your devices using either Microsoft Intune or group policy (GPO).
Intune
There are different ways to enable and configure Windows Hello for Business in
Intune:
If the tenant-wide policy is enabled and configured to your needs, you can skip to
Enroll in Windows Hello for Business. Otherwise, follow the instructions below to
create a policy using an account protection policy.
8. Select Next
9. Optionally, add scope tags > Next
10. Assign the policy to a security group that contains as members the devices or
users that you want to configure > Next
11. Review the policy configuration and select Create
You can determine the status of the prerequisite checks by viewing the User Device
Registration admin log under Applications and Services Logs > Microsoft > Windows.
This information is also available using the dsregcmd /status command from a console.
For more information, see dsregcmd.
PIN Setup
The following process occurs after a user signs in, to enroll in Windows Hello for
Business:
1. The user is prompted with a full screen page to use Windows Hello with the
organization account. The user selects OK
2. The enrollment flow proceeds to the multi-factor authentication phase. The
process informs the user that there's an MFA contact attempt, using the configured
form of MFA. The provisioning process doesn't proceed until authentication
succeeds, fails or times out. A failed or timeout MFA results in an error and asks the
user to retry
3. After a successful MFA, the provisioning flow asks the user to create and validate a
PIN. This PIN must observe any PIN complexity policies configured on the device
4. The remainder of the provisioning includes Windows Hello for Business requesting
an asymmetric key pair for the user, preferably from the TPM (or required if
explicitly set through policy). Once the key pair is acquired, Windows
communicates with Azure Active Directory to register the public key. When key
registration completes, Windows Hello for Business provisioning informs the user
they can use their PIN to sign-in. The user may close the provisioning application
and see their desktop. While the user has completed provisioning, Azure AD
Connect synchronizes the user's key to Active Directory
) Important
The minimum time needed to synchronize the user's public key from Azure Active
Directory to the on-premises Active Directory is 30 minutes. The Azure AD Connect
scheduler controls the synchronization interval. This synchronization latency
delays the user's ability to authenticate and use on-premises resources until the
user's public key has synchronized to Active Directory. Once synchronized, the
user can authenticate and use on-premises resources. Read Azure AD Connect
sync: Scheduler to view and adjust the synchronization cycle for your organization.
Configure single sign-on for Azure AD
joined devices
Article • 02/22/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business combined with Azure AD-joined devices makes it easy for
users to securely access cloud-based resources using a strong, two-factor credential.
Some resources may remain on-premises as enterprises transition resources to the
cloud and Azure AD-joined devices may need to access these resources. With additional
configurations to the hybrid deployment, you can provide single sign-on to on-premises
resources for Azure AD-joined devices using Windows Hello for Business, using a key or
a certificate.
7 Note
These steps are not needed when using the cloud Kerberos trust model.
Prerequisites
Unlike hybrid Azure AD-joined devices, Azure AD-joined devices don't have a
relationship with your Active Directory domain. This factor changes the way in which
users authenticate to Active Directory. Validate the following configurations to ensure
they support Azure AD-joined devices:
The preceding domain controller certificate shows a CRL distribution point (CDP) in
Active Directory. The value in the URL begins with ldap. Using Active Directory for
domain joined devices provides a highly available CRL distribution point. However,
Azure AD joined devices can't read data from Active Directory, and certificate validation
doesn't provide an opportunity to authenticate prior to reading the CRL. The
authentication becomes a circular problem: the user is attempting to authenticate, but
must read Active Directory to complete the authentication, but the user can't read
Active Directory because they haven't authenticated.
To resolve this issue, the CRL distribution point must be a location accessible by Azure
AD joined devices that doesn't require authentication. The easiest solution is to publish
the CRL distribution point on a web server that uses HTTP (not HTTPS).
If your CRL distribution point doesn't list an HTTP distribution point, then you need to
reconfigure the issuing certificate authority to include an HTTP CRL distribution point,
preferably first, in the list of distribution points.
7 Note
If your CA has published both the Base and the Delta CRL, make sure to publish the
Delta CRL in the HTTP path. Include web server to fetch the Delta CRL by allowing
double escaping in the (IIS) web server.
The domain controller has the private key for the certificate provided
The root CA that issued the domain controller's certificate is in the device's Trusted
Root Certificate Authorities
Use the Kerberos Authentication certificate template instead of any other older
template
The domain controller's certificate has the KDC Authentication extended key usage
(EKU)
The domain controller's certificate's subject alternate name has a DNS Name that
matches the name of the domain
The domain controller's certificate's signature hash algorithm is sha256
The domain controller's certificate's public key is RSA (2048 Bits)
Authenticating from a Hybrid Azure AD joined device to a domain using Windows Hello
for Business doesn't enforce that the domain controller certificate includes the KDC
Authentication EKU. If you're adding Azure AD-joined devices to an existing domain
environment, make sure to verify that your domain controller certificate has been
updated to include the KDC Authentication EKU.
) Important
Do not configure the IIS server hosting your CRL distribution point to use https or a
server authentication certificate. Clients should access the distribution point using
http.
2. Expand the navigation pane to show Default Web Site. Select and then right-click
Default Web site and select Add Virtual Directory...
3. In the Add Virtual Directory dialog box, type cdp in alias. For physical path, type
or browse for the physical file location where you'll host the certificate revocation
list. For this example, the path c:\cdp is used. Select OK
7 Note
Make note of this path as you will use it later to configure share and file
permissions.
4. Select CDP under Default Web Site in the navigation pane. Open Directory
Browsing in the content pane. Select Enable in the details pane
5. Select CDP under Default Web Site in the navigation pane. Open Configuration
Editor
6. In the Section list, navigate to system.webServer/security/requestFiltering
Tip
Disable Caching
1. On the web server, open Windows Explorer and navigate to the cdp folder you
created in step 3 of Configure the Web Server
2. Right-click the cdp folder and select Properties. Select the Sharing tab. Select
Advanced Sharing
3. Select Caching. Select No files or programs from the shared folder are available
offline
4. Select OK
5. In the Select Users, Computers, Service Accounts, or Groups dialog box, select
Object Types. In the Object Types dialog box, select Computers. Select OK
6. In the Select Users, Computers, Service Accounts, or Groups dialog box, in Enter
the object names to select, type the name of the certificate authority, and then
select Check Names. Select OK
7. In the Permissions for cdp dialog box, select the name of the certificate authority
from the Group or user names list. In the Permissions for section, select Allow for
Full control. Select OK
8. Select Close in the cdp Properties dialog box
5. Select <CaName> from the Variable list and select Insert. Select
<CRLNameSuffix> from the Variable list and select Insert. Select
<DeltaCRLAllowed> from the Variable list and select Insert
6. Type .crl at the end of the text in Location. Select OK
7. Select the CDP you just created
8. Select Include in CRLs. Clients use this to find Delta CRL locations
9. Select Include in the CDP extension of issued certificates
10. Select Apply save your selections. Select No when ask to restart the service
7 Note
Optionally, you can remove unused CRL distribution points and publishing
locations.
With the CA properly configured with a valid HTTP-based CRL distribution point, you
need to reissue certificates to domain controllers as the old certificate doesn't have the
updated CRL distribution point.
4. Right-click the selected certificate. Hover over All Tasks and then select Renew
Certificate with New Key.... In the Certificate Enrollment wizard, select Next
5. In the Request Certificates page of the wizard, verify the selected certificate has
the correct certificate template and ensure the status is available. Select Enroll
6. After the enrollment completes, select Finish to close the wizard
7. Repeat this procedure on all your domain controllers
7 Note
You can configure domain controllers to automatically enroll and renew their
certificates. Automatic certificate enrollment helps prevent authentication outages
due to expired certificates. Refer to the Windows Hello Deployment Guides to
learn how to deploy automatic certificate enrollment for domain controllers.
) Important
If you are not using automatic certificate enrollment, create a calendar reminder to
alert you two months before the certificate expiration date. Send the reminder to
multiple people in the organization to ensure more than one or two people know
when these certificates expire.
5. In the new Certificate dialog box, select the Details tab. Select Copy to File
9. Select OK two times to return to the Certificate Manager for the local computer.
Close the Certificate Manager
If you plan on using certificates for on-premises single-sign on, perform the additional
steps in Using Certificates for On-premises Single-sign On. Otherwise, you can sign in to
an Azure AD joined device with Windows Hello for Business and test SSO to an on-
premises resource.
Hybrid certificate trust deployment
Article • 03/16/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Hybrid environments are distributed systems that enable organizations to use on-
premises and Azure AD-protected resources. Windows Hello for Business uses the
existing distributed system as a foundation on which organizations can provide two-
factor authentication and single sign-on to modern resources.
This deployment guide describes how to deploy Windows Hello for Business in a hybrid
certificate trust scenario.
) Important
Windows Hello for Business cloud Kerberos trust is the recommended deployment
model when compared to the key trust model. It is also the recommended
deployment model if you don't need to deploy certificates to the end users. For
more information, see cloud Kerberos trust deployment.
It's recommended that you review the Windows Hello for Business planning guide prior
to using the deployment guide. The planning guide helps you make decisions by
explaining the available options with each aspect of the deployment and explains the
potential outcomes based on each of these decisions.
Prerequisites
The following prerequisites must be met for a hybrid certificate trust deployment:
The two directories must be synchronized with Azure AD Connect Sync, which
synchronizes user accounts from the on-premises Active Directory to Azure AD. The
hybrid-certificate trust deployment needs an Azure Active Directory Premium
subscription because it uses the device write-back synchronization feature.
7 Note
Windows Hello for Business hybrid certificate trust is not supported if the users' on-
premises UPN suffix cannot be added as a verified domain in Azure AD.
) Important
Windows Hello for Business is tied between a user and a device. Both the user and
device object must be synchronized between Azure Active Directory and Active
Directory.
The AD FS farm used with Windows Hello for Business must be Windows Server 2016
with minimum update of KB4088889 (14393.2155) .
Refer to the Configure hybrid Azure Active Directory join for federated domains guide to
learn more about using Azure AD Connect Sync to configure Azure AD device
registration.
For a manual configuration of your AD FS farm to support device registration, review
the Configure AD FS for Azure AD device registration guide.
7 Note
Windows Hello for Business is tied between a user and a device. Both the user and
device need to be synchronized between Azure Active Directory and Active
Directory. Device write-back is used to update the msDS-KeyCredentialLink
attribute on the computer object.
If you manually configured AD FS, or if you ran Azure AD Connect Sync using Custom
Settings, you must ensure that you have configured device write-back and device
authentication in your AD FS farm. For more information, see Configure Device Write
Back and Device Authentication.
During Windows Hello for Business provisioning, users receive a sign-in certificate
through the CRA.
Multi-factor authentication
The Windows Hello for Business provisioning process lets a user enroll in Windows Hello
for Business using their user name and password as one factor, but requires a second
factor of authentication.
Hybrid deployments can use:
Device management
To configure Windows Hello for Business, devices can be configured through a mobile
device management (MDM) solution like Intune, or via group policy.
Next steps
Once the prerequisites are met, deploying Windows Hello for Business with a hybrid key
trust model consists of the following steps:
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business must have a Public Key Infrastructure (PKI) when using the
key trust or certificate trust models. The domain controllers must have a certificate, which
serves as a root of trust for clients. The certificate ensures that clients don't communicate
with rogue domain controllers.
Hybrid certificate trust deployments issue users a sign-in certificate, enabling them to
authenticate to Active Directory using Windows Hello for Business credentials.
Additionally, hybrid certificate trust deployments issue certificates to registration
authorities to provide defense-in-depth security when issuing user authentication
certificates.
Lab-based PKI
The following instructions may be used to deploy simple public key infrastructure that is
suitable for a lab environment.
Sign in using Enterprise Administrator equivalent credentials on a Windows Server where
you want the certification authority (CA) installed.
7 Note
PowerShell
PowerShell
Install-AdcsCertificationAuthority
By default, the Active Directory CA provides and publishes the Kerberos Authentication
certificate template. The cryptography configuration included in the template is based
on older and less performant cryptography APIs. To ensure domain controllers request
the proper certificate with the best available cryptography, use the Kerberos
Authentication certificate template as a baseline to create an updated domain controller
certificate template.
) Important
The certificates issued to the domain controllers must meet the following
requirements:
The Certificate Revocation List (CRL) distribution point extension must point to
a valid CRL, or an Authority Information Access (AIA) extension that points to
an Online Certificate Status Protocol (OCSP) responder
Optionally, the certificate Subject section could contain the directory path of
the server object (the distinguished name)
The certificate Key Usage section must contain Digital Signature and Key
Encipherment
Optionally, the certificate Basic Constraints section should contain: [Subject
Type=End Entity, Path Length Constraint=None]
The certificate extended key usage section must contain Client Authentication
( 1.3.6.1.5.5.7.3.2 ), Server Authentication ( 1.3.6.1.5.5.7.3.1 ), and KDC
Authentication ( 1.3.6.1.5.2.3.5 )
The certificate Subject Alternative Name section must contain the Domain
Name System (DNS) name
The certificate template must have an extension that has the value
DomainController , encoded as a BMPstring. If you are using Windows Server
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the lab.
Select the Build from this Active Directory information button if it isn't
already selected
Select None from the Subject name format list
Select DNS name from the Include this information in alternate subject list
Clear all other items
8. Select OK
9. Close the console
7 Note
) Important
The Kerberos Authentication certificate template is the most current certificate template
designated for domain controllers, and should be the one you deploy to all your domain
controllers.
The autoenrollment feature allows you to replace the domain controller certificates. Use
the following configuration to replace older domain controller certificates with new
ones, using the Kerberos Authentication certificate template.
7 Note
The domain controller's certificate must chain to a root in the NTAuth store. By
default, the Active Directory Certificate Authority's root certificate is added to the
NTAuth store. If you are using a third-party CA, this may not be done by default. If
the domain controller certificate does not chain to a root in the NTAuth store, user
authentication will fail. To see all certificates in the NTAuth store, use the following
command:
The CRA enrolls for an enrollment agent certificate. Once the CRA verifies the certificate
request, it signs the certificate request using its enrollment agent certificate and sends it
to the CA. The Windows Hello for Business Authentication certificate template is
configured to only issue certificates to certificate requests that have been signed with an
enrollment agent certificate. The CA only issues a certificate for that template if the
registration authority signs the certificate request.
) Important
Follow the procedures below based on the AD FS service account used in your
environment.
6. On the Subject tab, select the Supply in the request button if it isn't already
selected
7 Note
Group Managed Service Accounts (GMSA) do not support the Build from this
Active Directory information option and will result in the AD FS server failing
to enroll the enrollment agent certificate. You must configure the certificate
template with Supply in the request to ensure that AD FS servers can perform
the automatic enrollment and renewal of the enrollment agent certificate.
9. Select Object Types and select the Service Accounts check box. Select OK
10. Type adfssvc in the Enter the object names to select text box and select OK
11. Select the adfssvc from the Group or users names list. In the Permissions for
adfssvc section:
In the Permissions for adfssvc section, select the Allow check box for the
Enroll permission
Excluding the adfssvc user, clear the Allow check box for the Enroll and
Autoenroll permissions for all other items in the Group or users names list
Select OK
In the Permissions for adfssvc section, select the Allow check box for the
Enroll permission
Excluding the adfssvc user, clear the Allow check box for the Enroll and
Autoenroll permissions for all other items in the Group or users names list
Select OK
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the deployment.
7. On the Extensions tab, verify the Application Policies extension includes Smart
Card Logon
8. On the Issuance Requirements tab,
Select the This number of authorized signatures check box. Type 1 in the
text box
Select Application policy from the Policy type required in signature
Select Certificate Request Agent from in the Application policy list
Select the Valid existing certificate option
10. On the Request Handling tab, select the Renew with same key check box
11. On the Security tab, select Add. Target an Active Directory security group that
contains the users that you want to enroll in Windows Hello for Business. For
example, if you have a group called Window Hello for Business Users, type it in the
Enter the object names to select text box and select OK
12. Select the Windows Hello for Business Users from the Group or users names list.
In the Permissions for Windows Hello for Business Users section:
13. If you previously issued Windows Hello for Business sign-in certificates using
Configuration Manger and are switching to an AD FS registration authority, then
on the Superseded Templates tab, add the previously used Windows Hello for
Business Authentication template(s), so they'll be superseded by this template for
the users that have Enroll permission for this template
14. Select on the Apply to save changes and close the console
If the template was changed successfully, the output of the command will contain old
and new values of the template parameters. The new value must contain the
CTPRIVATEKEY_FLAG_HELLO_LOGON_KEY parameter. Example:
Old Value:
msPKI-Private-Key-Flag REG_DWORD = 5050080 (84213888)
CTPRIVATEKEY_FLAG_REQUIRE_SAME_KEY_RENEWAL -- 80 (128)
CTPRIVATEKEY_FLAG_ATTEST_NONE -- 0
TEMPLATE_SERVER_VER_WINBLUE<<CTPRIVATEKEY_FLAG_SERVERVERSION_SHIFT -- 50000
(327680)
TEMPLATE_CLIENT_VER_WINBLUE<<CTPRIVATEKEY_FLAG_CLIENTVERSION_SHIFT --
5000000 (83886080)
New Value:
msPKI-Private-Key-Flag REG_DWORD = 5250080 (86311040)
CTPRIVATEKEY_FLAG_REQUIRE_SAME_KEY_RENEWAL -- 80 (128)
CTPRIVATEKEY_FLAG_ATTEST_NONE -- 0
TEMPLATE_SERVER_VER_WINBLUE<<CTPRIVATEKEY_FLAG_SERVERVERSION_SHIFT -- 50000
(327680)
CTPRIVATEKEY_FLAG_HELLO_LOGON_KEY -- 200000 (2097152)
TEMPLATE_CLIENT_VER_WINBLUE<<CTPRIVATEKEY_FLAG_CLIENTVERSION_SHIFT --
5000000 (83886080)
CertUtil: -dsTemplate command completed successfully."
7 Note
If you gave your Windows Hello for Business Authentication certificate template a
different name, then replace WHFBAuthentication in the above command with the
name of your certificate template. It's important that you use the template name
rather than the template display name. You can view the template name on the
General tab of the certificate template using the Certificate Template management
console (certtmpl.msc). Or, you can view the template name using the Get-
CATemplate ADCS Administration Windows PowerShell cmdlet on your certification
authority.
) Important
If you plan to deploy Azure AD joined devices, and require single sign-on (SSO) to
on-premises resources when signing in with Windows Hello for Business, follow the
procedures to update your CA to include an http-based CRL distribution point.
Confirm your domain controllers enroll the correct certificates and not any superseded
certificate templates. Check that each domain controller completed the certificate
autoenrollment.
1. Using the Event Viewer, navigate to the Application and Services > Microsoft >
Windows > CertificateServices-Lifecycles-System event log
2. Look for an event indicating a new certificate enrollment (autoenrollment):
The details of the event include the certificate template on which the
certificate was issued
The name of the certificate template used to issue the certificate should
match the certificate template name included in the event
The certificate thumbprint and EKUs for the certificate are also included in the
event
The EKU needed for proper Windows Hello for Business authentication is
Kerberos Authentication, in addition to other EKUs provide by the certificate
template
Certificate Manager
You can use the Certificate Manager console to validate the domain controller has the
properly enrolled certificate based on the correct certificate template with the proper
EKUs. Use certlm.msc to view certificate in the local computers certificate stores. Expand
the Personal store and view the certificates enrolled for the computer. Archived
certificates don't appear in Certificate Manager.
Certutil.exe
You can use certutil.exe command to view enrolled certificates in the local computer.
Certutil shows enrolled and archived certificates for the local computer. From an
elevated command prompt, run certutil.exe -q -store my to view locally enrolled
certificates.
To view detailed information about each certificate in the store, use certutil.exe -q -v
-store my to validate automatic certificate enrollment enrolled the proper certificates.
Troubleshooting
Windows triggers automatic certificate enrollment for the computer during boot, and
when Group Policy updates. You can refresh Group Policy from an elevated command
prompt using gpupdate.exe /force .
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
7 Note
In order for AD FS to verify user certificate requests for Windows Hello for Business,
it needs to be able to access the https://enterpriseregistration.windows.net
endpoint.
PowerShell
Set-AdfsCertificateAuthority -EnrollmentAgent -
EnrollmentAgentCertificateTemplate WHFBEnrollmentAgent -
WindowsHelloCertificateTemplate WHFBAuthentication -
WindowsHelloCertificateProxyEnabled $true
7 Note
If you gave your Windows Hello for Business Enrollment Agent and Windows Hello
for Business Authentication certificate templates different names, then replace
WHFBEnrollmentAgent and WHFBAuthentication in the above command with the
name of your certificate templates. It's important that you use the template name
rather than the template display name. You can view the template name on the
General tab of the certificate template by using the Certificate Template
management console (certtmpl.msc). Or, you can view the template name by using
the Get-CATemplate PowerShell cmdlet on a CA.
Tip
7 Note
For AD FS 2019 in a hybrid certificate trust model, a PRT issue exists. You may
encounter this error in the AD FS Admin event logs: Received invalid Oauth request.
The client 'NAME' is forbidden to access the resource with scope 'ugs'. To remediate
this error:
7a316988d93b :
PowerShell
(Get-AdfsApplicationPermission -ServerRoleIdentifiers
'http://schemas.microsoft.com/ws/2009/12/identityserver/selfscope' | ?{
$_.ClientRoleIdentifier -eq '38aa3b87-a06d-4817-b275-7a316988d93b'
}).ObjectIdentifier
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Policy Configuration
After the prerequisites are met and the PKI and AD FS configurations are validated,
Windows Hello for business must be enabled on the Windows devices. Follow the
instructions below to configure your devices using either Microsoft Intune or group
policy (GPO).
GPO
) Important
The information in this section applies to hybrid Azure AD joined devices only.
For hybrid Azure AD joined devices, you can use group policies to configure
Windows Hello for Business. It is suggested to create a security group (for example,
Windows Hello for Business Users) to make it easy to deploy Windows Hello for
Business in phases. You assign the Group Policy and Certificate template
permissions to this group to simplify the deployment by adding the users to the
group. This provides users with the proper permissions to provision Windows Hello
for Business and to enroll in the Windows Hello for Business authentication
certificate.
If both user and computer policy settings are deployed, the user policy setting has
precedence.
The process requires no user interaction, provided the user signs-in using Windows
Hello for Business. The certificate is renewed in the background before it expires.
7 Note
Windows Hello for Business can be configured using different policies. These
policies are optional to configure, but it's recommended to enable Use a
hardware security device.
For more information about these policies, see Group Policy settings for
Windows Hello for Business.
PIN Setup
This is the process that occurs after a user signs in, to enroll in Windows Hello for
Business:
1. The user is prompted with a full screen page to use Windows Hello with the
organization account. The user selects OK
2. The provisioning flow proceeds to the multi-factor authentication portion of the
enrollment. Provisioning informs the user that it's actively attempting to contact
the user through their configured form of MFA. The provisioning process doesn't
proceed until authentication succeeds, fails or times out. A failed or timeout MFA
results in an error and asks the user to retry
3. After a successful MFA, the provisioning flow asks the user to create and validate a
PIN. This PIN must observe any PIN complexity policies configured on the device
4. The remainder of the provisioning includes Windows Hello for Business requesting
an asymmetric key pair for the user, preferably from the TPM (or required if
explicitly set through policy). Once the key pair is acquired, Windows
communicates with Azure Active Directory to register the public key. When key
registration completes, Windows Hello for Business provisioning informs the user
they can use their PIN to sign-in. The user may close the provisioning application
and see their desktop. While the user has completed provisioning, Azure AD
Connect synchronizes the user's key to Active Directory
) Important
The following is the enrollment behavior prior to Windows Server 2016 update
KB4088889 (14393.2155) .
The minimum time needed to synchronize the user's public key from Azure Active
Directory to the on-premises Active Directory is 30 minutes. The Azure AD Connect
scheduler controls the synchronization interval. This synchronization latency
delays the user's ability to authenticate and use on-premises resources until the
user's public key has synchronized to Active Directory. Once synchronized, the
user can authenticate and use on-premises resources. Read Azure AD Connect
sync: Scheduler to view and adjust the synchronization cycle for your organization.
7 Note
After a successful key registration, Windows creates a certificate request using the same
key pair to request a certificate. Windows send the certificate request to the AD FS
server for certificate enrollment.
The AD FS registration authority verifies the key used in the certificate request matches
the key that was previously registered. On a successful match, the AD FS registration
authority signs the certificate request using its enrollment agent certificate and sends it
to the certificate authority.
7 Note
In order for AD FS to verify the key used in the certificate request, it needs to be
able to access the https://enterpriseregistration.windows.net endpoint.
The certificate authority validates the certificate was signed by the registration authority.
On successful validation of the signature, it issues a certificate based on the request and
returns the certificate to the AD FS registration authority. The registration authority
returns the certificate to Windows where it then installs the certificate in the current
user's certificate store. Once this process completes, the Windows Hello for Business
provisioning workflow informs the user that they can use their PIN to sign-in through
the Windows Action Center.
Configure single sign-on for Azure AD
joined devices
Article • 02/22/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business combined with Azure AD-joined devices makes it easy for
users to securely access cloud-based resources using a strong, two-factor credential.
Some resources may remain on-premises as enterprises transition resources to the
cloud and Azure AD-joined devices may need to access these resources. With additional
configurations to the hybrid deployment, you can provide single sign-on to on-premises
resources for Azure AD-joined devices using Windows Hello for Business, using a key or
a certificate.
7 Note
These steps are not needed when using the cloud Kerberos trust model.
Prerequisites
Unlike hybrid Azure AD-joined devices, Azure AD-joined devices don't have a
relationship with your Active Directory domain. This factor changes the way in which
users authenticate to Active Directory. Validate the following configurations to ensure
they support Azure AD-joined devices:
The preceding domain controller certificate shows a CRL distribution point (CDP) in
Active Directory. The value in the URL begins with ldap. Using Active Directory for
domain joined devices provides a highly available CRL distribution point. However,
Azure AD joined devices can't read data from Active Directory, and certificate validation
doesn't provide an opportunity to authenticate prior to reading the CRL. The
authentication becomes a circular problem: the user is attempting to authenticate, but
must read Active Directory to complete the authentication, but the user can't read
Active Directory because they haven't authenticated.
To resolve this issue, the CRL distribution point must be a location accessible by Azure
AD joined devices that doesn't require authentication. The easiest solution is to publish
the CRL distribution point on a web server that uses HTTP (not HTTPS).
If your CRL distribution point doesn't list an HTTP distribution point, then you need to
reconfigure the issuing certificate authority to include an HTTP CRL distribution point,
preferably first, in the list of distribution points.
7 Note
If your CA has published both the Base and the Delta CRL, make sure to publish the
Delta CRL in the HTTP path. Include web server to fetch the Delta CRL by allowing
double escaping in the (IIS) web server.
The domain controller has the private key for the certificate provided
The root CA that issued the domain controller's certificate is in the device's Trusted
Root Certificate Authorities
Use the Kerberos Authentication certificate template instead of any other older
template
The domain controller's certificate has the KDC Authentication extended key usage
(EKU)
The domain controller's certificate's subject alternate name has a DNS Name that
matches the name of the domain
The domain controller's certificate's signature hash algorithm is sha256
The domain controller's certificate's public key is RSA (2048 Bits)
Authenticating from a Hybrid Azure AD joined device to a domain using Windows Hello
for Business doesn't enforce that the domain controller certificate includes the KDC
Authentication EKU. If you're adding Azure AD-joined devices to an existing domain
environment, make sure to verify that your domain controller certificate has been
updated to include the KDC Authentication EKU.
) Important
Do not configure the IIS server hosting your CRL distribution point to use https or a
server authentication certificate. Clients should access the distribution point using
http.
2. Expand the navigation pane to show Default Web Site. Select and then right-click
Default Web site and select Add Virtual Directory...
3. In the Add Virtual Directory dialog box, type cdp in alias. For physical path, type
or browse for the physical file location where you'll host the certificate revocation
list. For this example, the path c:\cdp is used. Select OK
7 Note
Make note of this path as you will use it later to configure share and file
permissions.
4. Select CDP under Default Web Site in the navigation pane. Open Directory
Browsing in the content pane. Select Enable in the details pane
5. Select CDP under Default Web Site in the navigation pane. Open Configuration
Editor
6. In the Section list, navigate to system.webServer/security/requestFiltering
Tip
Disable Caching
1. On the web server, open Windows Explorer and navigate to the cdp folder you
created in step 3 of Configure the Web Server
2. Right-click the cdp folder and select Properties. Select the Sharing tab. Select
Advanced Sharing
3. Select Caching. Select No files or programs from the shared folder are available
offline
4. Select OK
5. In the Select Users, Computers, Service Accounts, or Groups dialog box, select
Object Types. In the Object Types dialog box, select Computers. Select OK
6. In the Select Users, Computers, Service Accounts, or Groups dialog box, in Enter
the object names to select, type the name of the certificate authority, and then
select Check Names. Select OK
7. In the Permissions for cdp dialog box, select the name of the certificate authority
from the Group or user names list. In the Permissions for section, select Allow for
Full control. Select OK
8. Select Close in the cdp Properties dialog box
5. Select <CaName> from the Variable list and select Insert. Select
<CRLNameSuffix> from the Variable list and select Insert. Select
<DeltaCRLAllowed> from the Variable list and select Insert
6. Type .crl at the end of the text in Location. Select OK
7. Select the CDP you just created
8. Select Include in CRLs. Clients use this to find Delta CRL locations
9. Select Include in the CDP extension of issued certificates
10. Select Apply save your selections. Select No when ask to restart the service
7 Note
Optionally, you can remove unused CRL distribution points and publishing
locations.
With the CA properly configured with a valid HTTP-based CRL distribution point, you
need to reissue certificates to domain controllers as the old certificate doesn't have the
updated CRL distribution point.
4. Right-click the selected certificate. Hover over All Tasks and then select Renew
Certificate with New Key.... In the Certificate Enrollment wizard, select Next
5. In the Request Certificates page of the wizard, verify the selected certificate has
the correct certificate template and ensure the status is available. Select Enroll
6. After the enrollment completes, select Finish to close the wizard
7. Repeat this procedure on all your domain controllers
7 Note
You can configure domain controllers to automatically enroll and renew their
certificates. Automatic certificate enrollment helps prevent authentication outages
due to expired certificates. Refer to the Windows Hello Deployment Guides to
learn how to deploy automatic certificate enrollment for domain controllers.
) Important
If you are not using automatic certificate enrollment, create a calendar reminder to
alert you two months before the certificate expiration date. Send the reminder to
multiple people in the organization to ensure more than one or two people know
when these certificates expire.
5. In the new Certificate dialog box, select the Details tab. Select Copy to File
9. Select OK two times to return to the Certificate Manager for the local computer.
Close the Certificate Manager
If you plan on using certificates for on-premises single-sign on, perform the additional
steps in Using Certificates for On-premises Single-sign On. Otherwise, you can sign in to
an Azure AD joined device with Windows Hello for Business and test SSO to an on-
premises resource.
Using Certificates for AADJ On-premises
Single-sign On
Article • 02/22/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
If you plan to use certificates for on-premises single-sign on, then follow these
additional steps to configure the environment to enroll Windows Hello for Business
certificates for Azure AD-joined devices.
) Important
Ensure you have performed the configurations in Azure AD-joined devices for On-
premises Single-Sign On before you continue.
Requirements
You need to install and configure additional infrastructure to provide Azure AD-joined
devices with on-premises single-sign on.
The architecture of the NDES server prevents it from being clustered or load balanced
for high availability. To provide high availability, you need to install more than one
identically configured NDES servers, and use Microsoft Intune to load balance then (in
round-robin fashion).
The Network Device Enrollment Service (NDES) server role can issue up to three unique
certificate templates. The server role accomplishes this by mapping the purpose of the
certificate request to a configured certificate template. The certificate request purpose
has three options:
Signature
Encryption
Signature and Encryption
If you need to deploy more than three types of certificates to the Azure AD joined
device, you need additional NDES servers. Alternatively, consider consolidating
certificate templates to reduce the number of certificate templates.
Network Requirements
All communication occurs securely over port 443.
Most environments change the user principal name suffix to match the organization's
external domain name (or vanity domain), which prevents the user principal name as a
hint to locate a domain controller. Therefore, the certificate needs the user's on-
premises distinguished name in the subject to properly locate a domain controller.
To include the on-premises distinguished name in the certificate's subject, Azure AD
Connect must replicate the Active Directory distinguishedName attribute to the Azure
Active Directory onPremisesDistinguishedName attribute. Azure AD Connect version
1.1.819 includes the proper synchronization rules needed for these attributes.
2. In the Synchronization Service Manager, select Help and then select About.
3. If the version number isn't 1.1.819 or later, then upgrade Azure AD Connect to the
latest version.
7 Note
3. Select Modify permissions (Preview). Scroll down and locate User.Read.All (or any
other required permission) and select Consent. You'll now be prompted for
delegated permissions consent.
[userid] is the user principal name of a user in Azure Active Directory. Select Run
query.
7 Note
Because the v1.0 endpoint of the Graph API only provides a limited set of
parameters, we will use the $select Optional OData query parameter. For
convenience, it is possible to switch the API version selector from v1.0 to beta
before performing the query. This will provide all available user information, but
remember, beta endpoint queries should not be used in production scenarios.
Request
HTTP
Response
HTTP
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":
"https://graph.microsoft.com/v1.0/$metadata#users(displayName,userPrincipalN
ame,onPremisesDistinguishedName)/$entity",
"displayName": "Nestor Wilke",
"userPrincipalName": "NestorW@contoso.com",
"onPremisesDistinguishedName" : "CN=Nestor
Wilke,OU=Operations,DC=contoso,DC=com"
}
3. Right-click the Users container. Hover over New and select Group.
5. Select OK.
3. Select Computers from the navigation pane. Right-click the name of the NDES
server that will host the NDES server role. Select Add to a group.
4. Type NDES Servers in Enter the object names to select. Select OK. Select OK on
the Active Directory Domain Services success dialog.
7 Note
For high-availability, you should have more than one NDES server to service
Windows Hello for Business certificate requests. You should add additional
Windows Hello for Business NDES servers to this group to ensure they receive the
proper configuration.
1. In the navigation pane, expand the node that has your domain name. Select Users.
2. Right-click the Users container. Hover over New and then select User. Type
NDESSvc in Full Name and User logon name. Select Next.
4. Select Finish.
) Important
2. Expand the domain and select the Group Policy Object node in the navigation
pane.
4. Type NDES Service Rights in the name box and select OK.
5. In the content pane, right-click the NDES Service Rights Group Policy object and
select Edit.
7. Expand Windows Settings > Security Settings > Local Policies. Select User Rights
Assignments.
8. In the content pane, double-click Allow log on locally. Select Define these policy
settings and select OK. Select Add User or Group.... In the Add User or Group
dialog box, select Browse. In the Select Users, Computers, Service Accounts, or
Groups dialog box, type Administrators;Backup
Operators;DOMAINNAME\NDESSvc;Users where DOMAINNAME is the NetBios
name of the domain (Example CONTOSO\NDESSvc) in User and group names.
Select OK twice.
9. In the content pane, double-click Log on as a batch job. Select Define these policy
settings and select OK. Select Add User or Group.... In the Add User or Group
dialog box, select Browse. In the Select Users, Computers, Service Accounts, or
Groups dialog box, type Administrators;Backup
Operators;DOMAINNAME\NDESSvc;Performance Log Users where
DOMAINNAME is the NetBios name of the domain (Example CONTOSO\NDESSvc)
in User and group names. Select OK twice.
10. In the content pane, double-click Log on as a service. Select Define these policy
settings and select OK. Select Add User or Group.... In the Add User or Group
dialog box, select Browse. In the Select Users, Computers, Service Accounts, or
Groups dialog box, type NT SERVICE\ALL SERVICES;DOMAINNAME\NDESSvc
where DOMAINNAME is the NetBios name of the domain (Example
CONTOSO\NDESSvc) in User and group names. Select OK three times.
2. Expand the domain and select the Group Policy Object node in the navigation
pane.
4. In the Security Filtering section of the content pane, select Add. Type NDES
Servers or the name of the security group you previously created and select OK.
5. Select the Delegation tab. Select Authenticated Users and select Advanced.
6. In the Group or User names list, select Authenticated Users. In the Permissions for
Authenticated Users list, clear the Allow check box for the Apply Group Policy
permission. Select OK.
2. In the navigation pane, expand the domain and right-click the node that has your
Active Directory domain name and select Link an existing GPO
3. In the Select GPO dialog box, select NDES Service User Rights or the name of the
Group Policy object you previously created and select OK.
) Important
Linking the NDES Service User Rights Group Policy object to the domain ensures
the Group Policy object is in scope for all computers. However, not all computers
will have the policy settings applied to them. Only computers that are members of
the NDES Servers global security group receive the policy settings. All others
computers ignore the Group Policy object.
Prepare Active Directory Certificate Authority
You must prepare the public key infrastructure and the issuing certificate authority to
support issuing certificates using Microsoft Intune and the Network Devices Enrollment
Services (NDES) server role. In this task, you'll
7 Note
Skip this step if you do not want to enable Microsoft Intune to specify the validity
period of the certificate. Without this configuration, the certificate request uses the
validity period configured in the certificate template.
Sign-in to the issuing certificate authority with access equivalent to local administrator.
Console
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the lab.
8. Select Object Types, then in the window that appears, choose Computers and
select OK.
9. Type NDES server in the Enter the object names to select text box and select OK.
10. Select NDES server from the Group or users names list. In the Permissions for
section, select the Allow check box for the Enroll permission. Clear the Allow check
box for the Enroll and Autoenroll permissions for all other items in the Group or
users names list if the check boxes aren't already cleared. Select OK.
11. Select on the Apply to save changes and close the console.
4. On the Compatibility tab, clear the Show resulting changes check box. Select
Windows Server 2012 or Windows Server 2012 R2 from the Certification
Authority list. Select Windows Server 2012 or Windows Server 2012 R2 from the
Certificate Recipient list.
5. On the General tab, type AADJ WHFB Authentication in Template display name.
Adjust the validity and renewal period to meet your enterprise's needs.
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the deployment.
6. On the Cryptography tab, select Key Storage Provider from the Provider
Category list. Select RSA from the Algorithm name list. Type 2048 in the
Minimum key size text box. Select SHA256 from the Request hash list.
7. On the Extensions tab, verify the Application Policies extension includes Smart
Card Logon.
9. On the Request Handling tab, select Signature and encryption from the Purpose
list. Select the Renew with same key check box. Select Enroll subject without
requiring any user input.
10. On the Security tab, select Add. Type NDESSvc in the Enter the object names to
select text box and select OK.
11. Select NDESSvc from the Group or users names list. In the Permissions for NDES
Servers section, select the Allow check box for Read and Enroll. Clear the Allow
check box for the Enroll and Autoenroll permissions for all other entries in the
Group or users names section if the check boxes aren't already cleared. Select OK.
) Important
Ensure you publish the AADJ WHFB Authentication certificate templates to the
certificate authority that Microsoft Intune uses by way of the NDES servers. The
NDES configuration asks you to choose a certificate authority from which it
requests certificates. You need to publish that certificate templates to that issuing
certificate authority. The NDES-Intune Authentication certificate is directly enrolled
and can be published to any certificate authority.
4. Right-click the Certificate Templates node. Select New, and select Certificate
Template to issue.
3. In the Add Roles and Features Wizard, on the Before you begin page, select Next.
Select Role-based or feature-based installation on the Select installation type
page. Select Next. Select Select a server from the server pool. Select the local
server from the Server Pool list. Select Next.
4. On the Select server roles page, select Active Directory Certificate Services from
the Roles list.
Select Add Features on the Add Roles and Feature Wizard dialog box. Select
Next.
5. On the Features page, expand .NET Framework 3.5 Features. Select HTTP
Activation. Select Add Features on the Add Roles and Feature Wizard dialog box.
Expand .NET Framework 4.5 Features. Expand WCF Services. Select HTTP
Activation. Select Add Features on the Add Roles and Feature Wizard dialog box.
Select Next.
6. On the Select role services page, clear the Certificate Authority check box. Select
the Network Device Enrollment Service. Select Add Features on the Add Roles
and Features Wizard dialog box. Select Next.
9. Select Install. When the installation completes, continue with the next procedure.
Do not click Close.
) Important
.NET Framework 3.5 is not included in the typical installation. If the server is
connected to the Internet, the installation attempts to get the files using
Windows Update. If the server is not connected to the Internet, you need to
Specify an alternate source path such as <driveLetter>:\Sources\SxS\
Configure the NDES service account
This task adds the NDES service account to the local IIS_USRS group. The task also
configures the NDES service account for Kerberos authentication and delegation
2. Select Groups from the navigation pane. Double-click the IIS_IUSRS group.
3. In the IIS_IUSRS Properties dialog box, select Add. Type NDESSvc or the name of
your NDES service account. Select Check Names to verify the name and then select
OK. Select OK to close the properties dialog box.
Console
where [FqdnOfNdesServer] is the fully qualified domain name of the NDES server
and [DomainName\NdesServiceAccount] is the domain name and NDES service
account name separated by a backslash (\). An example of the command looks like
the following:
Console
7 Note
If you use the same service account for multiple NDES Servers, repeat the following
task for each NDES server under which the NDES service runs.
The NDES service enrolls certificates on behalf of users. Therefore, you want to limit the
actions it can perform on behalf of the user. You do this through delegation.
5. Select Add.
6. Select Users or Computers... Type the name of the NDES Server you use to issue
Windows Hello for Business authentication certificates to Azure AD-joined devices.
From the Available services list, select HOST. Select OK.
7. Repeat steps 5 and 6 for each NDES server using this service account. Select Add.
8. Select Users or computers... Type the name of the issuing certificate authority this
NDES service account uses to issue Windows Hello for Business authentication
certificates to Azure AD-joined devices. From the Available services list, select
dcom. Hold the CTRL key and select HOST. Select OK.
9. Repeat steps 8 and 9 for each issuing certificate authority from which one or more
NDES servers request certificates.
7 Note
If you closed Server Manger from the last set of tasks, start Server Manager and
click the action flag that shows a yellow exclamation point.
4. On the Service Account for NDES page, select Specify service account
(recommended). Select Select.... Type the user name and password for the NDES
service account in the Windows Security dialog box. Select Next.
5. On the CA for NDES page, select CA name. Select Select.... Select the issuing
certificate authority from which the NDES server requests certificates. Select Next.
A single NDES server can request a maximum of three certificate templates. The NDES
server determines which certificate to issue based on the incoming certificate request
that is assigned in the Microsoft Intune SCEP certificate profile. The Microsoft Intune
SCEP certificate profile has three values.
Digital Signature
Key Encipherment
Key Encipherment, Digital Signature
Each value maps to a registry value name in the NDES server. The NDES server translates
an incoming SCEP provided value into the corresponding certificate template. The table
below shows the SCEP profile values of the NDES certificate template registry value
names.
Ideally, you should match the certificate request with the registry value name to keep
the configuration intuitive (encryption certificates use the encryption template, signature
certificates use the signature template, etc.). A result of this intuitive design is the
potential exponential growth in the NDES server. Imagine an organization that needs to
issue nine unique signature certificates across their enterprise.
If the need arises, you can configure a signature certificate in the encryption registry
value name or an encryption certificate in the signature registry value to maximize the
use of your NDES infrastructure. This unintuitive design requires current and accurate
documentation of the configuration to ensure the SCEP certificate profile is configured
to enroll the correct certificate, regardless of the actual purpose. Each organization
needs to balance ease of configuration and administration with additional NDES
infrastructure and the management overhead that comes with it.
2. Using the table above, decide which registry value name you'll use to request
Windows Hello for Business authentication certificates for Azure AD-joined
devices.
Console
where registryValueName is one of the three value names from the above table
and where certificateTemplateName is the name of the certificate template you
created for Windows Hello for Business Azure AD-joined devices. Example:
Console
4. Type Y when the command asks for permission to overwrite the existing value.
5. Close the command prompt.
) Important
Use the name of the certificate template; not the display name. The certificate
template name does not include spaces. You can view the certificate names by
looking at the General tab of the certificate template's properties in the Certificates
Templates management console ( certtmpl.msc ).
Ideally, you configure your Microsoft Intune SCEP certificate profile to use multiple
external NDES URLs. This enables Microsoft Intune to round-robin load balance the
certificate requests to identically configured NDES Servers (each NDES server can
accommodate approximately 300 concurrent requests). Microsoft Intune sends these
requests to Azure AD Application Proxies.
2. Select All Services. Type Azure Active Directory to filter the list of services. Under
SERVICES, select Azure Active Directory.
4. Select Download connector service. Select Accept terms & Download. Save the
file (AADApplicationProxyConnectorInstaller.exe) in a location accessible by others
on the domain.
5. Sign-in the computer that will run the connector with access equivalent to a
domain user.
) Important
Install a minimum of two Azure Active Directory Proxy connectors for each
NDES Application Proxy. Strategically locate Azure AD application proxy
connectors throughout your organization to ensure maximum availability.
Remember, devices running the connector must be able to communicate with
Azure and the on-premises NDES servers.
6. Start AADApplicationProxyConnectorInstaller.exe.
7. Read the license terms and then select I agree to the license terms and
conditions. Select Install.
8. Sign-in to Microsoft Azure with access equivalent to Global Administrator.
9. When the installation completes. Read the information regarding outbound proxy
servers. Select Close.
10. Repeat steps 5 - 10 for each device that will run the Azure AD Application Proxy
connector for Windows Hello for Business certificate deployments.
2. Select All Services. Type Azure Active Directory to filter the list of services. Under
SERVICES, select Azure Active Directory.
5. Select each connector agent in the Connectors list that will service Windows Hello
for Business certificate enrollment requests.
6. Select Save.
2. Select All Services. Type Azure Active Directory to filter the list of services. Under
SERVICES, select Azure Active Directory.
5. Under Basic Settings next to Name, type WHFB NDES 01. Choose a name that
correlates this Azure AD Application Proxy setting with the on-premises NDES
server. Each NDES server must have its own Azure AD Application Proxy as two
NDES servers can't share the same internal URL.
6. Next to Internal URL, type the internal, fully qualified DNS name of the NDES
server associated with this Azure AD Application Proxy. For example,
https://ndes.corp.mstepdemo.net . You need to match the primary host name (AD
Computer Account name) of the NDES server, and prefix the URL with https.
7. Under Internal URL, select https:// from the first list. In the text box next to
https://, type the hostname you want to use as your external hostname for the
Azure AD Application Proxy. In the list next to the hostname you typed, select a
DNS suffix you want to use externally for the Azure AD Application Proxy. It's
recommended to use the default, -[tenantName].msapproxy.net where
[tenantName] is your current Azure Active Directory tenant name (-
mstephendemo.msappproxy.net).
10. Under Additional Settings, select Default from Backend Application Timeout.
Under the Translate URLs In section, select Yes next to Headers and select No next
to Application Body.
) Important
Write down the internal and external URLs. You will need this information
when you enroll the NDES-Intune Authentication certificate.
7. Select the More information is required to enroll for this certificate. Click here to
configure settings link
8. Under Subject name, select Common Name from the Type list. Type the internal
URL used in the previous task (without the https://, for example
ndes.corp.mstepdemo.net) and then select Add.
9. Under Alternative name, select DNS from the Type list. Type the internal URL used
in the previous task (without the https://, for example ndes.corp.mstepdemo.net).
Select Add. Type the external URL used in the previous task (without the https://,
for example ndes-mstephendemo.msappproxy.net). Select Add. Select OK when
finished.
11. Repeat these steps for all NDES Servers used to request Windows Hello for
Business authentication certificates for Azure AD-joined devices.
2. Expand the node that has the name of the NDES server. Expand Sites and select
Default Web Site.
5. Select the certificate you previously enrolled from the SSL certificate list. Select
OK.
https
https://[fqdnHostName]/certsrv/mscep/mscep.dll
where [fqdnHostName] is the fully qualified internal DNS host name of the NDES
server.
A web page similar to the following should appear in your web browser. If you don't see
a similar page, or you get a 503 Service unavailable message, ensure the NDES Service
account has the proper user rights. You can also review the Application event log for
events with the NetworkDeviceEnrollmentService source.
2. Expand the node that has the name of the NDES server. Expand Sites and select
Default Web Site.
3. In the content pane, double-click Request Filtering. Select Edit Feature Settings...
in the action pane.
Console
To learn how to download, install, and configure the Intune Certificate Connector, see
Install the Certificate Connector for Microsoft Intune.
1. Sign in the certificate authority used by the NDES Connector with access
equivalent to domain administrator.
3. In the navigation pane, right-click the name of the certificate authority and select
Properties.
4. Select the Security tab, then select Add. In the Enter the object names to select
box, enter NDESSvc (or the name you gave the NDES Service account). Select
Check Names, then select OK. Select the NDES Service account from the Group or
user names list. Select Allow for the Issue and Manage Certificates permission.
Select OK.
2. Select All Services. Type Azure Active Directory to filter the list of services. Under
SERVICES, select Azure Active Directory.
5. Under Group Name, type the name of the group. For example, AADJ WHFB
Certificate Users.
8. Select Members. Use the Select members pane to add members to this group.
When finished, select Select.
9. Select Create.
5. Choose SCEP certificate from the Profile list, and select Create.
6. The SCEP Certificate wizard should open. Next to Name, type WHFB Certificate
Enrollment.
) Important
10. Select Enroll to Windows Hello for Business, otherwise fail (Windows 10 and
later) from the Key storage provider (KSP) list.
7 Note
If the distinguished name contains special characters like a plus sign ("+"), comma
(","), semicolon (";"), or equal sign ("="), the bracketed name must be enclosed in
quotation marks: CN=”{{OnPrem_Distinguished_Name}}”. If the length of the
distinguished name is more than 64 characters, the name length enforcement on
the Certification Authority must be disabled.
12. Specify User Principal Name (UPN) as a Subject Alternative Name parameter. Set
its value as {{UserPrincipalName}}.
13. Refer to the "Configure Certificate Templates on NDES" task for how you
configured the AADJ WHFB Authentication certificate template in the registry.
Select the appropriate combination of key usages from the Key Usages list that
map to the configured NDES template in the registry. In this example, the AADJ
WHFB Authentication certificate template was added to the SignatureTemplate
registry value name. The Key usage that maps to that registry value name is Digital
Signature.
14. Select a previously configured Trusted certificate profile that matches the root
certificate of the issuing certificate authority as a root certificate for the profile.
15. Under Extended key usage, type Smart Card Logon under Name. Type
1.3.6.1.4.1.311.20.2.2 under Object identifier. Select Add.
16. Type a percentage (without the percent sign) next to Renewal Threshold to
determine when the certificate should attempt to renew. The recommended value
is 20.
17. Under SCEP Server URLs, type the fully qualified external name of the Azure AD
Application proxy you configured. Append to the name /certsrv/mscep/mscep.dll.
For example, https://ndes-mtephendemo.msappproxy.net/certsrv/mscep/mscep.dll .
Select Add. Repeat this step for each additional NDES Azure AD Application Proxy
you configured to issue Windows Hello for Business certificates. Microsoft Intune
round-robin load balances requests among the URLs listed in the SCEP certificate
profile.
19. Select Next several times to skip the Scope tags, Assignments, and Applicability
Rules steps of the wizard and select Create.
4. Select Properties, and then select Edit next to the Assignments section.
5. In the Assignments pane, select Selected Groups from the Assign to list. Select
Select groups to include.
6. Select the AADJ WHFB Certificate Users group. Select Select.
You have successfully completed the configuration. Add users that need to enroll a
Windows Hello for Business authentication certificate to the AADJ WHFB Certificate
Users group. This group, combined with the device enrollment Windows Hello for
Business configuration prompts the user to enroll for Windows Hello for Business and
enroll a certificate that can be used to authentication to on-premises resources.
7 Note
The Passport for Work configuration service provider (CSP) which is used to
manage Windows Hello for Business with Mobile Device Management (MDM)
contains a policy called UseCertificateForOnPremAuth. This policy is not needed
when deploying certificates to Windows Hello for Business users through the
instructions outlined in this document and should not be configured. Devices
managed with MDM where UseCertificateForOnPremAuth is enabled will fail a
prerequisite check for Windows Hello for Business provisioning. This failure will
block users from setting up Windows Hello for Business if they don't already have it
configured.
Section Review
" Requirements
" Prepare Azure AD Connect
" Prepare the Network Device Enrollment Services (NDES) Service Account
" Prepare Active Directory Certificate Authority
" Install and Configure the NDES Role
" Configure Network Device Enrollment Services to work with Microsoft Intune
" Download, Install, and Configure the Intune Certificate Connector
" Create and Assign a Simple Certificate Enrollment Protocol (SCEP Certificate Profile)
Deployment guide overview - on-
premises key trust
Article • 01/24/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
The key registration process for the on-premises deployment of Windows Hello for
Business requires the Windows Server 2016 Active Directory or later schema.
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business must have a Public Key Infrastructure (PKI) when using the
key trust or certificate trust models. The domain controllers must have a certificate, which
serves as a root of trust for clients. The certificate ensures that clients don't
communicate with rogue domain controllers.
Lab-based PKI
The following instructions may be used to deploy simple public key infrastructure that is
suitable for a lab environment.
7 Note
Never install a certification authority on a domain controller in a production
environment.
PowerShell
PowerShell
Install-AdcsCertificationAuthority
By default, the Active Directory CA provides and publishes the Kerberos Authentication
certificate template. The cryptography configuration included in the template is based
on older and less performant cryptography APIs. To ensure domain controllers request
the proper certificate with the best available cryptography, use the Kerberos
Authentication certificate template as a baseline to create an updated domain controller
certificate template.
) Important
The certificates issued to the domain controllers must meet the following
requirements:
The Certificate Revocation List (CRL) distribution point extension must point to
a valid CRL, or an Authority Information Access (AIA) extension that points to
an Online Certificate Status Protocol (OCSP) responder
Optionally, the certificate Subject section could contain the directory path of
the server object (the distinguished name)
The certificate Key Usage section must contain Digital Signature and Key
Encipherment
Optionally, the certificate Basic Constraints section should contain: [Subject
Type=End Entity, Path Length Constraint=None]
The certificate extended key usage section must contain Client Authentication
( 1.3.6.1.5.5.7.3.2 ), Server Authentication ( 1.3.6.1.5.5.7.3.1 ), and KDC
Authentication ( 1.3.6.1.5.2.3.5 )
The certificate Subject Alternative Name section must contain the Domain
Name System (DNS) name
The certificate template must have an extension that has the value
DomainController , encoded as a BMPstring. If you are using Windows Server
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the lab.
Select the Build from this Active Directory information button if it isn't
already selected
Select None from the Subject name format list
Select DNS name from the Include this information in alternate subject list
Clear all other items
8. Select OK
9. Close the console
The Kerberos Authentication certificate template is the most current certificate template
designated for domain controllers, and should be the one you deploy to all your domain
controllers.
The autoenrollment feature allows you to replace the domain controller certificates. Use
the following configuration to replace older domain controller certificates with new
ones, using the Kerberos Authentication certificate template.
The certificate template is configured to supersede all the certificate templates provided
in the superseded templates list.
However, the certificate template and the superseding of certificate templates isn't
active until the template is published to one or more certificate authorities.
7 Note
The domain controller's certificate must chain to a root in the NTAuth store. By
default, the Active Directory Certificate Authority's root certificate is added to the
NTAuth store. If you are using a third-party CA, this may not be done by default. If
the domain controller certificate does not chain to a root in the NTAuth store, user
authentication will fail. To see all certificates in the NTAuth store, use the following
command:
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the lab.
Select Add
Type Domain Computers in the Enter the object names to select box
Select OK
Select the Allow check box next to the Enroll permission
Confirm your domain controllers enroll the correct certificates and not any superseded
certificate templates. Check that each domain controller completed the certificate
autoenrollment.
1. Using the Event Viewer, navigate to the Application and Services > Microsoft >
Windows > CertificateServices-Lifecycles-System event log
2. Look for an event indicating a new certificate enrollment (autoenrollment):
The details of the event include the certificate template on which the
certificate was issued
The name of the certificate template used to issue the certificate should
match the certificate template name included in the event
The certificate thumbprint and EKUs for the certificate are also included in the
event
The EKU needed for proper Windows Hello for Business authentication is
Kerberos Authentication, in addition to other EKUs provide by the certificate
template
Certificate Manager
You can use the Certificate Manager console to validate the domain controller has the
properly enrolled certificate based on the correct certificate template with the proper
EKUs. Use certlm.msc to view certificate in the local computers certificate stores. Expand
the Personal store and view the certificates enrolled for the computer. Archived
certificates don't appear in Certificate Manager.
Certutil.exe
You can use certutil.exe command to view enrolled certificates in the local computer.
Certutil shows enrolled and archived certificates for the local computer. From an
elevated command prompt, run certutil.exe -q -store my to view locally enrolled
certificates.
To view detailed information about each certificate in the store, use certutil.exe -q -v
-store my to validate automatic certificate enrollment enrolled the proper certificates.
Troubleshooting
Windows triggers automatic certificate enrollment for the computer during boot, and
when Group Policy updates. You can refresh Group Policy from an elevated command
prompt using gpupdate.exe /force .
Use the event logs to monitor certificate enrollment and archive. Review the
configuration, such as publishing certificate templates to issuing certification authority
and the allow auto enrollment permissions.
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business works exclusively with the Active Directory Federation
Service (AD FS) role included with Windows Server. The on-premises key trust
deployment model uses AD FS for key registration and device registration.
The following guidance describes the deployment of a new instance of AD FS using the
Windows Information Database (WID) as the configuration database.
WID is ideal for environments with no more than 30 federation servers and no more
than 100 relying party trusts. If your environment exceeds either of these factors, or
needs to provide SAML artifact resolution, token replay detection, or needs AD FS to
operate as a federated provider role, then the deployment requires the use of SQL as a
configuration database.
To deploy AD FS using SQL as its configuration database, review the Deploying a
Federation Server Farm checklist.
A new AD FS farm should have a minimum of two federation servers for proper load
balancing, which can be accomplished with external networking peripherals, or with
using the Network Load Balancing Role included in Windows Server.
The federation service name is set when the AD FS role is configured. You can choose
any name, but that name must be different than the name of the server or host. For
example, you can name the host server adfs and the federation service sts. In this
example, the FQDN of the host is adfs.corp.contoso.com and the FQDN of the federation
service is sts.corp.contoso.com.
You can also issue one certificate for all hosts in the farm. If you chose this option, leave
the subject name blank, and include all the names in the subject alternate name when
creating the certificate request. All names should include the FQDN of each host in the
farm and the federation service name.
When creating a wildcard certificate, mark the private key as exportable, so that the
same certificate can be deployed across each federation server and web application
proxy within the AD FS farm. Note that the certificate must be trusted (chain to a trusted
root CA). Once you have successfully requested and enrolled the server authentication
certificate on one node, you can export the certificate and private key to a PFX file using
the Certificate Manager console. You can then import the certificate on the remaining
nodes in the AD FS farm.
Be sure to enroll or import the certificate into the AD FS server's computer certificate
store. Also, ensure all nodes in the farm have the proper TLS server authentication
certificate.
8. Under Subject name, select Common Name from the Type list. Type the FQDN of
the computer hosting the AD FS role and then select Add
9. Under Alternative name, select DNS from the Type list. Type the FQDN of the
name that you will use for your federation services (sts.corp.contoso.com). The
name you use here MUST match the name you use when configuring the AD FS
server role. Select Add and OK when finished
10. Select Enroll
) Important
Finish the entire AD FS configuration on the first server in the farm before adding
the second server to the AD FS farm. Once complete, the second server receives the
configuration through the shared configuration database when it is added the AD
FS farm.
GSMA uses the Microsoft Key Distribution Service that is located on the domain
controllers. Before you can create a GSMA, you must first create a root key for the
service. You can skip this if your environment already uses GSMA.
PowerShell
Sign-in to the federation server with Domain Administrator equivalent credentials. These
procedures assume you are configuring the first federation server in a federation server
farm.
Triggering device registration from AD FS, creates the service connection point (SCP) in
the Active Directory configuration partition. The SCP is used to store the device
registration information that Windows clients will automatically discover.
" Record the information about the AD FS certificate, and set a renewal reminder at
least six weeks before it expires. Relevant information includes: certificate serial
number, thumbprint, common name, subject alternate name, name of the physical
host server, the issued date, the expiration date, and issuing CA vendor (if a third-
party certificate)
" Confirm you added the AD FS service account to the KeyAdmins group
" Confirm you enabled the Device Registration service
Load balance AD FS
Many environments load balance using hardware devices. Environments without
hardware load-balancing capabilities can take advantage the network load-balancing
feature included in Windows Server to load balance the AD FS servers in the federation
farm. Install the Windows Network Load Balancing feature on all nodes participating in
the AD FS farm that should be load balanced.
Additional AD FS Servers
1. To add more hosts to the cluster, right-click the new cluster, and then select Add
Host to Cluster
2. Configure the host parameters (including host priority, dedicated IP addresses, and
load weight) for the additional hosts by following the same instructions that you
used to configure the initial host. Because you are adding hosts to an already
configured cluster, all the cluster-wide parameters remain the same
7 Note
If your forest has multiple UPN suffixes, please make sure that
enterpriseregistration.<upnsuffix_fqdn> is present for each suffix.
" Confirm all AD FS servers have a valid server authentication certificate. The subject
of the certificate is the common name (FQDN) of the host or a wildcard name. The
alternate name of the certificate contains a wildcard or the FQDN of the federation
service
" Confirm the AD FS farm has an adequate number of nodes and is properly load
balanced for the anticipated load
" Confirm you restarted the AD FS service
" Confirm you created a DNS A Record for the federation service and the IP address
used is the load-balanced IP address
" Confirm you created and deployed the Intranet Zone settings to prevent double
authentication to the federation server
Next: validate and deploy multi-factor authentication (MFA)
Validate and deploy multi-factor
authentication - on-premises key trust
Article • 01/24/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business requires users perform multi-factor authentication (MFA)
prior to enroll in the service. On-premises deployments can use, as MFA option:
certificates
third-party authentication providers for AD FS
custom authentication provider for AD FS
) Important
As of July 1, 2019, Microsoft will no longer offer MFA Server for new deployments.
New customers who would like to require multi-factor authentication from their
users should use cloud-based Azure AD Multi-Factor Authentication. Existing
customers who have activated MFA Server prior to July 1 will be able to download
the latest version, future updates and generate activation credentials as usual.
Follow the integration and deployment guide for the authentication provider you select
to integrate and deploy it to AD FS. Make sure that the authentication provider is
selected as a multi-factor authentication option in the AD FS authentication policy. For
information on configuring AD FS authentication policies see Configure Authentication
Policies.
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
On-premises key trust deployments of Windows Hello for Business need one Group
Policy setting: Enable Windows Hello for Business. The Group Policy setting determines
whether users are allowed, and prompted, to enroll for Windows Hello for Business. It
can be configured for computers or users.
If you configure the Group Policy for computers, all users that sign-in to those
computers will be allowed and prompted to enroll for Windows Hello for Business. If
you configure the Group Policy for users, only those users will be allowed and prompted
to enroll for Windows Hello for Business.
If you configure the Group Policy for computers, all users that sign-in to those
computers will be allowed and prompted to enroll for Windows Hello for Business. If
you configure the Group Policy for users, only those users will be allowed and prompted
to enroll for Windows Hello for Business.
You can enable and deploy the Use a hardware security device Group Policy Setting to
force Windows Hello for Business to only create hardware protected credentials. Users
that sign-in from a computer incapable of creating a hardware protected credential do
not enroll for Windows Hello for Business.
Another policy setting becomes available when you enable the Use a hardware security
device Group Policy setting that enables you to prevent Windows Hello for Business
enrollment from using version 1.2 Trusted Platform Modules (TPM). Version 1.2 TPMs
typically perform cryptographic operations slower than version 2.0 TPMs and are more
unforgiving during anti-hammering and PIN lockout activities. Some organizations may
not want slow sign-in performance and management overhead associated with version
1.2 TPMs. To prevent Windows Hello for Business from using version 1.2 TPMs, select
the TPM 1.2 check box after you enable the Use a hardware security device Group Policy
object.
Use biometrics
Windows Hello for Business provides a great user experience when combined with the
use of biometrics. Rather than providing a PIN to sign-in, a user can use a fingerprint or
facial recognition to sign-in to Windows, without sacrificing security.
The default Windows Hello for Business enables users to enroll and use biometrics.
However, some organization may want more time before using biometrics and want to
disable their use until they are ready. To not allow users to use biometrics, configure the
Use biometrics Group Policy setting to disabled and apply it to your computers. The
policy setting disables all biometrics. Currently, Windows does not provide the ability to
set granular policies that enable you to disable specific modalities of biometrics, such as
allowing facial recognition, but disallowing fingerprint recognition.
PIN Complexity
PIN complexity is not specific to Windows Hello for Business. Windows enables users to
use PINs outside of Windows Hello for Business. PIN Complexity Group Policy settings
apply to all uses of PINs, even when Windows Hello for Business is not deployed.
Windows provides eight PIN Complexity Group Policy settings that give you granular
control over PIN creation and management. You can deploy these policy settings to
computers, where they affect all users creating PINs on that computer; or, you can
deploy these settings to users, where they affect those users creating PINs regardless of
the computer they use. If you deploy both computer and user PIN complexity Group
Policy settings, the user policy settings have precedence over computer policy settings.
Also, this conflict resolution is based on the last applied policy. Windows does not
merge the policy settings automatically. The policy settings included are:
Require digits
Require lowercase letters
Maximum PIN length
Minimum PIN length
Expiration
History
Require special characters
Require uppercase letters
The settings can be found in Administrative Templates\System\PIN Complexity, under
both the Computer and User Configuration nodes of the Group Policy editor.
" Confirm you configured the Enable Windows Hello for Business to the scope that
matches your deployment (Computer vs. User)
" Confirm you configured the proper security settings for the Group Policy object
" Confirm you removed the allow permission for Apply Group Policy for Domain
Users (Domain Users must always have the read permissions)
" Confirm you added the Windows Hello for Business Users group to the Group
Policy object, and gave the group the allow permission to Apply Group Policy
" Linked the Group Policy object to the correct locations within Active Directory
" Deployed any additional Windows Hello for Business Group Policy settings
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
The key registration process for the on-premises deployment of Windows Hello for
Business requires the Windows Server 2016 Active Directory or later schema.
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business must have a Public Key Infrastructure (PKI) when using the
key trust or certificate trust models. The domain controllers must have a certificate, which
serves as a root of trust for clients. The certificate ensures that clients don't
communicate with rogue domain controllers. The certificate trust model extends
certificate issuance to client computers. During Windows Hello for Business
provisioning, the user receives a sign-in certificate.
Lab-based PKI
The following instructions may be used to deploy simple public key infrastructure that is
suitable for a lab environment.
PowerShell
PowerShell
Install-AdcsCertificationAuthority
By default, the Active Directory CA provides and publishes the Kerberos Authentication
certificate template. The cryptography configuration included in the template is based
on older and less performant cryptography APIs. To ensure domain controllers request
the proper certificate with the best available cryptography, use the Kerberos
Authentication certificate template as a baseline to create an updated domain controller
certificate template.
) Important
The certificates issued to the domain controllers must meet the following
requirements:
The Certificate Revocation List (CRL) distribution point extension must point to
a valid CRL, or an Authority Information Access (AIA) extension that points to
an Online Certificate Status Protocol (OCSP) responder
Optionally, the certificate Subject section could contain the directory path of
the server object (the distinguished name)
The certificate Key Usage section must contain Digital Signature and Key
Encipherment
Optionally, the certificate Basic Constraints section should contain: [Subject
Type=End Entity, Path Length Constraint=None]
The certificate extended key usage section must contain Client Authentication
( 1.3.6.1.5.5.7.3.2 ), Server Authentication ( 1.3.6.1.5.5.7.3.1 ), and KDC
Authentication ( 1.3.6.1.5.2.3.5 )
The certificate Subject Alternative Name section must contain the Domain
Name System (DNS) name
The certificate template must have an extension that has the value
DomainController , encoded as a BMPstring. If you are using Windows Server
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the lab.
Select the Build from this Active Directory information button if it isn't
already selected
Select None from the Subject name format list
Select DNS name from the Include this information in alternate subject list
Clear all other items
8. Select OK
9. Close the console
The Kerberos Authentication certificate template is the most current certificate template
designated for domain controllers, and should be the one you deploy to all your domain
controllers.
The autoenrollment feature allows you to replace the domain controller certificates. Use
the following configuration to replace older domain controller certificates with new
ones, using the Kerberos Authentication certificate template.
The certificate template is configured to supersede all the certificate templates provided
in the superseded templates list.
However, the certificate template and the superseding of certificate templates isn't
active until the template is published to one or more certificate authorities.
7 Note
The domain controller's certificate must chain to a root in the NTAuth store. By
default, the Active Directory Certificate Authority's root certificate is added to the
NTAuth store. If you are using a third-party CA, this may not be done by default. If
the domain controller certificate does not chain to a root in the NTAuth store, user
authentication will fail. To see all certificates in the NTAuth store, use the following
command:
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the lab.
Select Add
Type Domain Computers in the Enter the object names to select box
Select OK
Select the Allow check box next to the Enroll permission
The CRA enrolls for an enrollment agent certificate. Once the CRA verifies the certificate
request, it signs the certificate request using its enrollment agent certificate and sends it
to the CA. The Windows Hello for Business Authentication certificate template is
configured to only issue certificates to certificate requests that have been signed with an
enrollment agent certificate. The CA only issues a certificate for that template if the
registration authority signs the certificate request.
) Important
Follow the procedures below based on the AD FS service account used in your
environment.
6. On the Subject tab, select the Supply in the request button if it isn't already
selected
7 Note
Group Managed Service Accounts (GMSA) do not support the Build from this
Active Directory information option and will result in the AD FS server failing
to enroll the enrollment agent certificate. You must configure the certificate
template with Supply in the request to ensure that AD FS servers can perform
the automatic enrollment and renewal of the enrollment agent certificate.
9. Select Object Types and select the Service Accounts check box. Select OK
10. Type adfssvc in the Enter the object names to select text box and select OK
11. Select the adfssvc from the Group or users names list. In the Permissions for
adfssvc section:
In the Permissions for adfssvc section, select the Allow check box for the
Enroll permission
Excluding the adfssvc user, clear the Allow check box for the Enroll and
Autoenroll permissions for all other items in the Group or users names list
Select OK
In the Permissions for adfssvc section, select the Allow check box for the
Enroll permission
Excluding the adfssvc user, clear the Allow check box for the Enroll and
Autoenroll permissions for all other items in the Group or users names list
Select OK
7 Note
If you use different template names, you'll need to remember and substitute
these names in different portions of the deployment.
7. On the Extensions tab, verify the Application Policies extension includes Smart
Card Logon
8. On the Issuance Requirements tab,
Select the This number of authorized signatures check box. Type 1 in the
text box
Select Application policy from the Policy type required in signature
Select Certificate Request Agent from in the Application policy list
Select the Valid existing certificate option
9. On the Subject tab,
10. On the Request Handling tab, select the Renew with same key check box
11. On the Security tab, select Add. Target an Active Directory security group that
contains the users that you want to enroll in Windows Hello for Business. For
example, if you have a group called Window Hello for Business Users, type it in the
Enter the object names to select text box and select OK
12. Select the Windows Hello for Business Users from the Group or users names list.
In the Permissions for Windows Hello for Business Users section:
13. If you previously issued Windows Hello for Business sign-in certificates using
Configuration Manger and are switching to an AD FS registration authority, then
on the Superseded Templates tab, add the previously used Windows Hello for
Business Authentication template(s), so they'll be superseded by this template for
the users that have Enroll permission for this template
14. Select on the Apply to save changes and close the console
Old Value:
msPKI-Private-Key-Flag REG_DWORD = 5050080 (84213888)
CTPRIVATEKEY_FLAG_REQUIRE_SAME_KEY_RENEWAL -- 80 (128)
CTPRIVATEKEY_FLAG_ATTEST_NONE -- 0
TEMPLATE_SERVER_VER_WINBLUE<<CTPRIVATEKEY_FLAG_SERVERVERSION_SHIFT -- 50000
(327680)
TEMPLATE_CLIENT_VER_WINBLUE<<CTPRIVATEKEY_FLAG_CLIENTVERSION_SHIFT --
5000000 (83886080)
New Value:
msPKI-Private-Key-Flag REG_DWORD = 5250080 (86311040)
CTPRIVATEKEY_FLAG_REQUIRE_SAME_KEY_RENEWAL -- 80 (128)
CTPRIVATEKEY_FLAG_ATTEST_NONE -- 0
TEMPLATE_SERVER_VER_WINBLUE<<CTPRIVATEKEY_FLAG_SERVERVERSION_SHIFT -- 50000
(327680)
CTPRIVATEKEY_FLAG_HELLO_LOGON_KEY -- 200000 (2097152)
TEMPLATE_CLIENT_VER_WINBLUE<<CTPRIVATEKEY_FLAG_CLIENTVERSION_SHIFT --
5000000 (83886080)
CertUtil: -dsTemplate command completed successfully."
7 Note
If you gave your Windows Hello for Business Authentication certificate template a
different name, then replace WHFBAuthentication in the above command with the
name of your certificate template. It's important that you use the template name
rather than the template display name. You can view the template name on the
General tab of the certificate template using the Certificate Template management
console (certtmpl.msc). Or, you can view the template name using the Get-
CATemplate ADCS Administration Windows PowerShell cmdlet on your certification
authority.
Confirm your domain controllers enroll the correct certificates and not any superseded
certificate templates. Check that each domain controller completed the certificate
autoenrollment.
1. Using the Event Viewer, navigate to the Application and Services > Microsoft >
Windows > CertificateServices-Lifecycles-System event log
2. Look for an event indicating a new certificate enrollment (autoenrollment):
The details of the event include the certificate template on which the
certificate was issued
The name of the certificate template used to issue the certificate should
match the certificate template name included in the event
The certificate thumbprint and EKUs for the certificate are also included in the
event
The EKU needed for proper Windows Hello for Business authentication is
Kerberos Authentication, in addition to other EKUs provide by the certificate
template
Certutil.exe
You can use certutil.exe command to view enrolled certificates in the local computer.
Certutil shows enrolled and archived certificates for the local computer. From an
elevated command prompt, run certutil.exe -q -store my to view locally enrolled
certificates.
To view detailed information about each certificate in the store, use certutil.exe -q -v
-store my to validate automatic certificate enrollment enrolled the proper certificates.
Troubleshooting
Windows triggers automatic certificate enrollment for the computer during boot, and
when Group Policy updates. You can refresh Group Policy from an elevated command
prompt using gpupdate.exe /force .
Use the event logs to monitor certificate enrollment and archive. Review the
configuration, such as publishing certificate templates to issuing certification authority
and the allow auto enrollment permissions.
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business works exclusively with the Active Directory Federation
Service (AD FS) role included with Windows Server. The on-premises certificate trust
deployment model uses AD FS for certificate enrollment and device registration.
The following guidance describes the deployment of a new instance of AD FS using the
Windows Information Database (WID) as the configuration database.
WID is ideal for environments with no more than 30 federation servers and no more
than 100 relying party trusts. If your environment exceeds either of these factors, or
needs to provide SAML artifact resolution, token replay detection, or needs AD FS to
operate as a federated provider role, then the deployment requires the use of SQL as a
configuration database.
To deploy AD FS using SQL as its configuration database, review the Deploying a
Federation Server Farm checklist.
A new AD FS farm should have a minimum of two federation servers for proper load
balancing, which can be accomplished with external networking peripherals, or with
using the Network Load Balancing Role included in Windows Server.
The federation service name is set when the AD FS role is configured. You can choose
any name, but that name must be different than the name of the server or host. For
example, you can name the host server adfs and the federation service sts. In this
example, the FQDN of the host is adfs.corp.contoso.com and the FQDN of the federation
service is sts.corp.contoso.com.
You can also issue one certificate for all hosts in the farm. If you chose this option, leave
the subject name blank, and include all the names in the subject alternate name when
creating the certificate request. All names should include the FQDN of each host in the
farm and the federation service name.
When creating a wildcard certificate, mark the private key as exportable, so that the
same certificate can be deployed across each federation server and web application
proxy within the AD FS farm. Note that the certificate must be trusted (chain to a trusted
root CA). Once you have successfully requested and enrolled the server authentication
certificate on one node, you can export the certificate and private key to a PFX file using
the Certificate Manager console. You can then import the certificate on the remaining
nodes in the AD FS farm.
Be sure to enroll or import the certificate into the AD FS server's computer certificate
store. Also, ensure all nodes in the farm have the proper TLS server authentication
certificate.
8. Under Subject name, select Common Name from the Type list. Type the FQDN of
the computer hosting the AD FS role and then select Add
9. Under Alternative name, select DNS from the Type list. Type the FQDN of the
name that you will use for your federation services (sts.corp.contoso.com). The
name you use here MUST match the name you use when configuring the AD FS
server role. Select Add and OK when finished
10. Select Enroll
Device registration
Key registration
Certificate registration authority (CRA)
) Important
Finish the entire AD FS configuration on the first server in the farm before adding
the second server to the AD FS farm. Once complete, the second server receives the
configuration through the shared configuration database when it is added the AD
FS farm.
GSMA uses the Microsoft Key Distribution Service that is located on the domain
controllers. Before you can create a GSMA, you must first create a root key for the
service. You can skip this if your environment already uses GSMA.
PowerShell
Sign-in to the federation server with Domain Administrator equivalent credentials. These
procedures assume you are configuring the first federation server in a federation server
farm.
For AD FS 2019 and later in a certificate trust model, a known PRT issue exists. You
may encounter this error in AD FS Admin event logs: Received invalid Oauth
request. The client 'NAME' is forbidden to access the resource with scope 'ugs'. To
remediate this error:
PowerShell
Triggering device registration from AD FS, creates the service connection point (SCP) in
the Active Directory configuration partition. The SCP is used to store the device
registration information that Windows clients will automatically discover.
" Record the information about the AD FS certificate, and set a renewal reminder at
least six weeks before it expires. Relevant information includes: certificate serial
number, thumbprint, common name, subject alternate name, name of the physical
host server, the issued date, the expiration date, and issuing CA vendor (if a third-
party certificate)
" Confirm you added the AD FS service account to the KeyAdmins group
" Confirm you enabled the Device Registration service
PowerShell
Set-AdfsCertificateAuthority -EnrollmentAgent -
EnrollmentAgentCertificateTemplate WHFBEnrollmentAgent -
WindowsHelloCertificateTemplate WHFBAuthentication
7 Note
If you gave your Windows Hello for Business Enrollment Agent and Windows Hello
for Business Authentication certificate templates different names, then replace
WHFBEnrollmentAgent and WHFBAuthentication in the above command with the
name of your certificate templates. It's important that you use the template name
rather than the template display name. You can view the template name on the
General tab of the certificate template by using the Certificate Template
management console (certtmpl.msc). Or, you can view the template name by using
the Get-CATemplate PowerShell cmdlet on a CA.
Load balance AD FS
Many environments load balance using hardware devices. Environments without
hardware load-balancing capabilities can take advantage the network load-balancing
feature included in Windows Server to load balance the AD FS servers in the federation
farm. Install the Windows Network Load Balancing feature on all nodes participating in
the AD FS farm that should be load balanced.
Additional AD FS Servers
1. To add more hosts to the cluster, right-click the new cluster, and then select Add
Host to Cluster
2. Configure the host parameters (including host priority, dedicated IP addresses, and
load weight) for the additional hosts by following the same instructions that you
used to configure the initial host. Because you are adding hosts to an already
configured cluster, all the cluster-wide parameters remain the same
7 Note
If your forest has multiple UPN suffixes, please make sure that
enterpriseregistration.<upnsuffix_fqdn> is present for each suffix.
" Confirm only the AD FS service account has the allow enroll permission for the
enrollment agent certificate template
" Consider using an HSM to protect the enrollment agent certificate; however,
understand the frequency and quantity of signature operations the enrollment
agent server makes and understand the impact it has on overall performance
" Confirm you properly configured the Windows Hello for Business authentication
certificate template
" Confirm all certificate templates were properly published to the appropriate issuing
certificate authorities
" Confirm the AD FS service account has the allow enroll permission for the Windows
Hello Business authentication certificate template
" Confirm the AD FS certificate registration authority is properly configured using the
Get-AdfsCertificateAuthority Windows PowerShell cmdlet Confirm you restarted
the AD FS service
" Confirm you properly configured load-balancing (hardware or software)
" Confirm you created a DNS A Record for the federation service and the IP address
used is the load-balanced IP address
" Confirm you created and deployed the Intranet Zone settings to prevent double
authentication to the federation server.
Event Logs
Use the event logs on the AD FS service to confirm the service account enrolled for an
enrollment agent certificate. First, look for the AD FS event ID 443 that confirms
certificate enrollment cycle has finished. Once confirmed the AD FS certificate
enrollment cycle completed review the CertificateLifecycle-User event log. In this event
log, look for event ID 1006, which indicates a new certificate was installed. Details of the
event log should show:
You cannot use the Certificate Manager to view enrolled certificates for group managed
service accounts. Use the event log information to confirm the AD FS service account
enrolled a certificate. Use certutil.exe to view the details of the certificate shown in the
event log.
Group managed service accounts use user profiles to store user information, which
included enrolled certificates. On the AD FS server, use a command prompt and
navigate to %systemdrive%\users\
<adfsGMSA_name>\appdata\roaming\Microsoft\systemcertificates\my\certificates .
Each file in this folder represents a certificate in the service account's Personal store (You
may need to use dir.exe /A to view the files in the folder). Match the thumbprint of the
certificate from the event log to one of the files in this folder. That file is the certificate.
Use the Certutil -q <certificateThumbprintFileName> to view the basic information
about the certificate.
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business requires users perform multi-factor authentication (MFA)
prior to enroll in the service. On-premises deployments can use, as MFA option:
) Important
As of July 1, 2019, Microsoft will no longer offer MFA Server for new deployments.
New customers who would like to require multi-factor authentication from their
users should use cloud-based Azure AD Multi-Factor Authentication. Existing
customers who have activated MFA Server prior to July 1 will be able to download
the latest version, future updates and generate activation credentials as usual.
Follow the integration and deployment guide for the authentication provider you plan
to integrate to AD FS. Make sure that the authentication provider is selected as a multi-
factor authentication option in the AD FS authentication policy. For information on
configuring AD FS authentication policies, see Configure Authentication Policies.
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
If you configure the group policy for computers, all users that sign-in to those
computers will be allowed and prompted to enroll for Windows Hello for Business. If
you configure the group policy for users, only those users will be allowed and prompted
to enroll for Windows Hello for Business.
You can configure this setting for computer or users. Deploying this setting to
computers results in all users requesting a Windows Hello for Business authentication
certificate. Deploying this policy setting to a user results in only that user requesting a
Windows Hello for Business authentication certificate. Additionally, you can deploy the
policy setting to a group of users so only those users request a Windows Hello for
Business authentication certificate. If both user and computer policy settings are
deployed, the user policy setting has precedence.
You can enable and deploy the Use a hardware security device Group Policy Setting to
force Windows Hello for Business to only create hardware protected credentials. Users
that sign-in from a computer incapable of creating a hardware protected credential do
not enroll for Windows Hello for Business.
Another policy setting becomes available when you enable the Use a hardware security
device Group Policy setting that enables you to prevent Windows Hello for Business
enrollment from using version 1.2 Trusted Platform Modules (TPM). Version 1.2 TPMs
typically perform cryptographic operations slower than version 2.0 TPMs and are more
unforgiving during anti-hammering and PIN lockout activities. Some organizations may
not want slow sign-in performance and management overhead associated with version
1.2 TPMs. To prevent Windows Hello for Business from using version 1.2 TPMs, select
the TPM 1.2 check box after you enable the Use a hardware security device Group Policy
object.
Use biometrics
Windows Hello for Business provides a great user experience when combined with the
use of biometrics. Rather than providing a PIN to sign-in, a user can use a fingerprint or
facial recognition to sign-in to Windows, without sacrificing security.
The default Windows Hello for Business enables users to enroll and use biometrics.
However, some organization may want more time before using biometrics and want to
disable their use until they are ready. To not allow users to use biometrics, configure the
Use biometrics Group Policy setting to disabled and apply it to your computers. The
policy setting disables all biometrics. Currently, Windows does not provide the ability to
set granular policies that enable you to disable specific modalities of biometrics, such as
allowing facial recognition, but disallowing fingerprint recognition.
PIN Complexity
PIN complexity is not specific to Windows Hello for Business. Windows enables users to
use PINs outside of Windows Hello for Business. PIN Complexity Group Policy settings
apply to all uses of PINs, even when Windows Hello for Business is not deployed.
Windows provides eight PIN Complexity Group Policy settings that give you granular
control over PIN creation and management. You can deploy these policy settings to
computers, where they affect all users creating PINs on that computer; or, you can
deploy these settings to users, where they affect those users creating PINs regardless of
the computer they use. If you deploy both computer and user PIN complexity Group
Policy settings, the user policy settings have precedence over computer policy settings.
Also, this conflict resolution is based on the last applied policy. Windows does not
merge the policy settings automatically. The policy settings included are:
Require digits
Require lowercase letters
Maximum PIN length
Minimum PIN length
Expiration
History
Require special characters
Require uppercase letters
" Confirm you configured the Enable Windows Hello for Business to the scope that
matches your deployment (Computer vs. User)
" Confirm you configure the Use Certificate enrollment for on-premises
authentication policy setting
" Confirm you configured the proper security settings for the Group Policy object
" Confirm you removed the allow permission for Apply Group Policy for Domain
Users (Domain Users must always have the read permissions)
" Confirm you added the Windows Hello for Business Users group to the Group
Policy object, and gave the group the allow permission to Apply Group Policy
" Linked the Group Policy object to the correct locations within Active Directory
" Deployed any additional Windows Hello for Business Group Policy settings
7 Note
There was an issue with key trust authentication on Windows Server 2019. To fix it,
refer to KB4487044 .
The environment changes. The first change includes DC1 upgraded to Windows Server
2016 or later to support Windows Hello for Business key-trust authentication. Next, 100
clients enroll for Windows Hello for Business using the public key trust deployment.
Given all other factors stay constant, the authentication would now look like the
following:
The Windows Server 2016 or later domain controller is handling 100 percent of all public
key trust authentication. However, it is also handling 10 percent of password
authentication. Why? This behavior occurs because domain controllers 2 - 10 only
support password and certificate trust authentication; only a Windows Server 2016 and
above domain controller supports public key trust authentication. The Windows Server
2016 and above domain controller still understands how to authenticate password and
certificate trust authentication and will continue to share the load of authenticating
those clients. Because DC1 can handle all forms of authentication, it will bear more of
the authentication load, and easily become overloaded. What if another Windows Server
2016 or later domain controller is added, but without deploying Windows Hello for
Business to any more clients?
Upgrading another domain controller to Windows Server 2016 or later distributes the
public key trust authentication across two domain controllers - each supporting 50
percent of the load. But it doesn't change the distribution of password and certificate
trust authentication. Both Windows Server 2019 domain controllers still share 10 percent
of this load. Now look at the scenario when half of the domain controllers are upgraded
to Windows Server 2016 or later, but the number of Windows Hello for Business clients
remains the same.
Domain controllers 1 through 5 now share the public key trust authentication load
where each domain controller handles 20 percent of the public key trust load but they
each still handle 10 percent of the password and certificate trust authentication. These
domain controllers still have a heavier load than domain controllers 6 through 10;
however, the load is adequately distributed. Now look the scenario when half of the
client computers are upgraded to Windows Hello for Business using a key-trust
deployment.
You'll notice the distribution did not change. Each Windows Server 2016 or later domain
controller handles 20 percent of the public key trust authentication. However, increasing
the volume of authentication (by increasing the number of clients) increases the amount
of work that is represented by the same 20 percent. In the previous example, 20 percent
of public key trust authentication equated to a volume of 20 authentications per domain
controller capable of public key trust authentication. However, with upgraded clients,
that same 20 percent represents a volume of 100 public key trust authentications per
public key trust capable domain controller. Also, the distribution of non-public key trust
authentication remained at 10 percent, but the volume of password and certificate trust
authentications decreased across the older domain controllers.
Pick a site where you plan to upgrade the clients to Windows Hello for Business public
key trust. Pick a time when authentication traffic is most significant--Monday morning is
great time as everyone is returning to the office. Enable the performance counter on all
the domain controllers in that site. Collect KDC AS Requests performance counters for
two hours:
For example, if employees are scheduled to come into the office at 9:00am. Your
performance capture should begin at 8:30am and end at 10:30am. Ensure your
performance logs do not wrap the data. You want to see authentication trend upward,
peak, and trend downward.
7 Note
To capture all the authentication traffic. Ensure that all computers are powered
down to get the most accurate authentication information (computers and services
authenticate at first power up--you need to consider this authentication in your
evaluation).
Aggregate the performance data of all domain controllers. Look for the maximum KDC
AS Requests for each domain controller. Find the median time when the maximum
number of requests occurred for the site, this should represent when the site is
experiencing the highest amount of authentication.
Add the number of authentications for each domain controller for the median time. You
now have the total authentication for the site during a peak time. Using this metric, you
can determine the distribution of authentication across the domain controllers in the
site by dividing the domain controller's authentication number for the median time by
the total authentication. Multiply the quotient by 10 to convert the distribution to a
percentage. To validate your math, all the distributions should equal 100 percent.
Monitoring Authentication
Using the same methods described above, monitor the Kerberos authentication after
upgrading a domain controller and your first phase of Windows Hello for Business
deployments. Make note of the delta of authentication before and after upgrading the
domain controller to Windows Server 2016 or newer. This delta is representative of
authentication resulting from the first phase of your Windows Hello for Business clients.
It gives you a baseline for your environment to where you can form a statement such as:
authentication."
Where n equals the number of clients you switched to Windows Hello for Business and x
equals the increased percentage of authentication from the upgraded domain
controller. Armed with this information, you can apply the observations of upgrading
domain controllers and increasing Windows Hello for Business client count to
appropriately phase your deployment.
Then, upgrade a second domain controller. Monitor the authentication on both domain
controllers to determine how the authentication distributes between the two domain
controllers. Introduce more Windows Hello for Business clients while monitoring the
authentication on the two upgraded domain controllers. Once those reach your
environment's designated capacity, you can upgrade another domain controller.
Repeat until your deployment for that site is complete. Now, monitor authentication
across all your domain controllers like you did the very first time. Determine the
distribution of authentication for each domain controller. Identify the percentage of
distribution for which it is responsible. If a single domain controller is responsible for 70
percent of more of the authentication, you may want to consider adding a domain
controller to reduce the distribution of authentication volume.
However, before considering this, ensure the high load of authentication is not a result
of applications and services where their configuration has a statically-configured domain
controller. Adding domain controllers will not resolve the additional authentication load
problem in this scenario. Instead, manually distribute the authentication to different
domain controllers among all the services or applications. Alternatively, try simply using
the domain name rather than a specific domain controller. Each domain controller has
an A record registered in DNS for the domain name, which DNS will round robin with
each DNS query. It's not the best load balancer, however, it is a better alternative to
static domain controller configurations, provided the configuration is compatible with
your service or application.
Deploy certificates for remote desktop
(RDP) sign-in
Article • 07/25/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
This document describes Windows Hello for Business functionalities or scenarios that
apply to:
Windows Hello for Business supports using a certificate as the supplied credential, when
establishing a remote desktop connection to another Windows device. This document
discusses three approaches for cloud Kerberos trust and key trust deployments, where
authentication certificates can be deployed to an existing Windows Hello for Business
user:
7 Note
1. Sign in to your issuing certificate authority (CA) and open Server Manager
2. Select Tools > Certification Authority. The Certification Authority Microsoft
Management Console (MMC) opens
3. In the MMC, expand the CA name and right-click Certificate Templates > Manage
4. The Certificate Templates console opens. All of the certificate templates are
displayed in the details pane
Extensions Verify the Application Policies extension includes Smart Card Logon
Subject Name Select the Build from this Active Directory information button if it
isn't already selected
Select Fully distinguished name from the Subject name format list if
Fully distinguished name isn't already selected
Select the User Principal Name (UPN) check box under Include this
information in alternative subject name
Note: If you deploy certificates via Intune, select Supply in the request
instead of Build from this Active Directory.
Request Set the Purpose to Signature and smartcard logon and select Yes
Handling when prompted to change the certificate purpose
Select the Renew with same key check box
Select Prompt the user during enrollment
Security Add the security group that you want to give Enroll access to. For example,
if you want to give access to all users, select the Authenticated users
group, and then select Enroll permissions for them
7. Select OK to finalize your changes and create the new template. Your new
template should now appear in the list of Certificate Templates
10. Execute the following command, replacing <TemplateName> with the Template
display name noted above
Delete the last line of the output from the file that reads
CertUtil: -dsTemplate command completed successfully.
14. In the Certificate Authority console, right-click Certificate Templates, select New >
Certificate Template to Issue
15. From the list of templates, select the template you previously created (WHFB
Certificate Authentication) and select OK. It can take some time for the template
to replicate to all servers and become available in this list
16. After the template replicates, in the MMC, right-click in the Certification Authority
list, select All Tasks > Stop Service. Right-click the name of the CA again, select All
Tasks > Start Service
Request a certificate
1. Sign in to a client that is hybrid Azure AD joined, ensuring that the client has line
of sight to a domain controller and the issuing CA
2. Open the Certificates - Current User Microsoft Management Console (MMC). To
do so, you can execute the command certmgr.msc
3. In the left pane of the MMC, right-click Personal > All Tasks > Request New
Certificate…
4. On the Certificate Enrollment screen, select Next
5. Under Select Certificate Enrollment Policy, select Active Directory Enrollment
Policy > Next
6. Under Request Certificates, select the check-box for the certificate template you
created in the previous section (WHfB Certificate Authentication) and then select
Enroll
7. After a successful certificate request, select Finish on the Certificate Installation
Results screen
U Caution
This process is applicable to both Azure AD joined and hybrid Azure AD joined
devices that are managed via Intune.
If you deploy certificates via Intune and configure Windows Hello for Business via
group policy, the devices will fail to obtain a certificate, logging the error code
0x82ab0011 in the DeviceManagement-Enterprise-Diagnostic-Provider log.
To avoid the error, configure Windows Hello for Business via Intune instead of
group policy.
Next, you should deploy the root CA certificate (and any other intermediate certificate
authority certificates) to Azure AD joined Devices using a Trusted root certificate policy
with Intune. For guidance, refer to Create trusted certificate profiles in Microsoft Intune.
Once these requirements are met, a policy can be configured in Intune that provisions
certificates for the users on the targeted device.
3. Select Platform > Windows 10 and later and Profile type > Templates > SCEP
Certificate
4. Select Create
5. In the Basics panel, provide a Name and, optionally, a Description > Next
6. In the Configuration settings panel, use the following table to configure the policy:
Setting Configurations
Subject alternative From the dropdown, select User principal name (UPN) with a value of
name {{UserPrincipalName}}
Key storage Enroll to Windows Hello for Business, otherwise fail (Windows 10
provider (KSP) and later)
Root Certificate Select +Root Certificate and select the trusted certificate profile
created earlier for the Root CA Certificate
SCEP Server URLs Provide the public endpoint(s) that you configured during the
deployment of your SCEP infrastructure
7. Select Next
8. In the Assignments panel, assign the policy to a security group that contains as
members the devices or users that you want to configure and select Next
10. In the Review + create panel, review the policy configuration and select Create
For more information how to configure SCEP policies, see Configure SCEP certificate
profiles in Intune. To configure PKCS policies, see Configure and use PKCS certificate
with Intune.
As an alternative to using SCEP or if none of the previously covered solutions will work
in your environment, you can manually generate Certificate Signing Requests (CSR) for
submission to your PKI. To assist with this approach, you can use the Generate-
CertificateRequest PowerShell commandlet.
7 Note
The certificate chain of the issuing CA must be trusted by the target server.
1. Open the Remote Desktop Client ( mstsc.exe ) on the client where the
authentication certificate has been deployed
2. Attempt an RDP session to a target server
3. Use the certificate credential protected by your Windows Hello for Business
gesture to authenticate
Prepare people to use Windows Hello
Article • 02/27/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
When you set a policy to require Windows Hello for Business in the workplace, you will
want to prepare people in your organization by explaining how to use Hello.
After enrollment in Hello, users should use their gesture (such as a PIN or fingerprint) for
access to corporate resources. Their gesture is only valid on the enrolled device.
Although the organization may require users to change their Active Directory or Azure
Active Directory (AD) account password at regular intervals, changes to their passwords
have no effect on Hello.
People who are currently using virtual or physical smart cards for authentication can use
their virtual smart card to verify their identity when they set up Hello.
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
Next, they select a way to connect. Tell the people in your enterprise which option they
should pick here.
They sign in, and are then asked to verify their identity. People have options to choose
from a text message, phone call, or the authentication application. After verification,
they create their PIN. The Create a PIN screen displays any complexity requirements that
you have set, such as minimum length.
After Hello is set up, people use their PIN to unlock the device, and that will
automatically log them on.
On personal devices
People who want to access work resources on their personal devices can add a work or
school account in Settings > Accounts > Work or school, and then sign in with work
credentials. The person selects the method for receiving the verification code, such as
text message or email. The verification code is sent and the person then enters the
verification code. After verification, the person enters and confirms new PIN. The person
can access any token-based resource using this device without being asked for
credentials.
People can go to Settings > Accounts > Work or school, select the work account, and
then select Unjoin to remove the account from their device.
You can create a Group Policy or mobile device management (MDM) policy to configure
Windows Hello for Business on Windows devices.
) Important
Use PIN Complexity policy settings to manage PINs for Windows Hello for
Business.
7 Note
The location of the PIN complexity section of the Group Policy is: Computer
Configuration > Administrative Templates > System > PIN Complexity.
Use Windows Hello Computer - Not configured: Device doesn't provision Windows Hello
for Business or user for Business for any user.
- Enabled: Device provisions Windows Hello for Business
using keys or certificates for all users.
- Disabled: Device doesn't provision Windows Hello for
Business for any user.
Use a hardware Computer - Not configured: Windows Hello for Business will be
security device provisioned using TPM if available, and will be provisioned
Policy Scope using software if TPM isn't available.
Options
- Enabled: Windows Hello for Business will only be
provisioned using TPM. This feature will provision
Windows Hello for Business using TPM 1.2 unless the
option to exclude them is explicitly set.
- Disabled: Windows Hello for Business will be provisioned
using TPM if available, and will be provisioned using
software if TPM isn't available.
Use certificate for on- Computer - Not configured: Windows Hello for Business enrolls a
premises or user key that is used for on-premises authentication.
authentication - Enabled: Windows Hello for Business enrolls a sign-in
certificate using ADFS that is used for on-premises
authentication.
- Disabled: Windows Hello for Business enrolls a key that
is used for on-premises authentication.
PIN Complexity
Require digits Computer - Not configured: Users must include a digit in their PIN.
- Enabled: Users must include a digit in their PIN.
- Disabled: Users can't use digits in their PIN.
Require Computer - Not configured: Users can't use lowercase letters in their PIN
lowercase letters - Enabled: Users must include at least one lowercase letter in
their PIN.
- Disabled: Users can't use lowercase letters in their PIN.
Policy Scope Options
Maximum PIN Computer - Not configured: PIN length must be less than or equal to 127.
length - Enabled: PIN length must be less than or equal to the number
you specify.
- Disabled: PIN length must be less than or equal to 127.
Minimum PIN Computer - Not configured: PIN length must be greater than or equal to 4.
length - Enabled: PIN length must be greater than or equal to the
number you specify.
- Disabled: PIN length must be greater than or equal to 4.
Require special Computer - Not configured: Windows allows, but doesn't require, special
characters characters in the PIN.
- Enabled: Windows requires the user to include at least one
special character in their PIN.
- Disabled: Windows doesn't allow the user to include special
characters in their PIN.
Require Computer - Not configured: Users can't include an uppercase letter in their
uppercase PIN.
letters - Enabled: Users must include at least one uppercase letter in
their PIN.
- Disabled: Users can't include an uppercase letter in their PIN.
Phone Sign-in
) Important
All devices only have one PIN associated with Windows Hello for Business. This
means that any PIN on a device will be subject to the policies specified in the
PassportForWork CSP. The values specified take precedence over any complexity
rules set via Exchange ActiveSync (EAS) or the DeviceLock CSP.
RequireSecurityDevice Device False - True: Windows Hello for Business will only be
or user provisioned using TPM.
- False: Windows Hello for Business will be
provisioned using TPM if available, and will be
provisioned using software if TPM isn't available.
Biometrics
Policy Scope Default Options
PINComplexity
Maximum Device 127 - Maximum length that can be set is 127. Maximum length
PIN length or user can't be less than minimum setting.
Minimum Device 6 - Minimum length that can be set is 6. Minimum length can't
PIN length or user be greater than maximum setting.
Expiration Device 0 - Integer value specifies the period of time (in days) that a PIN
or user can be used before the system requires the user to change it.
The largest number you can configure for this policy setting is
730. The lowest number you can configure for this policy
setting is 0. If this policy is set to 0, then the user's PIN will
never expire.
History Device 0 - Integer value that specifies the number of past PINs that can
or user be associated to a user account that can't be reused. The
Policy Scope Default Options
largest number you can configure for this policy setting is 50.
The lowest number you can configure for this policy setting is
0. If this policy is set to 0, then storage of previous PINs isn't
required.
Remote
7 Note
) Important
The MDMWinsOverGP policy setting doesn't apply to Windows Hello for Business.
MDMWinsOverGP only applies to policies in the Policy CSP, while the Windows
Hello for Business policies are in the PassportForWork CSP.
Policy precedence
Windows Hello for Business user policies take precedence over computer policies. If a
user policy is set, the corresponded computer policy is ignored. If a user policy is not set,
the computer policy is used.
Windows Hello and password changes
Article • 03/16/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
When you set up Windows Hello, the PIN or biometric gesture that you use is specific to
that device. You can set up Hello for the same account on multiple devices. If Windows
Hello for Business isn't deployed and the password for that account changes, you must
provide the new password on each device to continue to use Hello.
7 Note
This article doesn't apply to Windows Hello for Business. Change the account
password will not affect sign-in or unlock, since Windows Hello for Business uses a
key or certificate.
Example 1
Let's suppose that you have set up a PIN for your Microsoft account on Device A. You
use your PIN to sign in on Device A and then change the password for your Microsoft
account. Since you were using Device A when you changed your password, the PIN on
Device A will continue to work with no other action on your part.
Example 2
Suppose that you sign in on Device B and change your password for your Microsoft
account. The next time that you try to sign in on Device A using your PIN, sign-in will
fail because the account credentials that Hello on Device A knows will be outdated.
7 Note
This example also applies to an Active Directory account when Windows Hello for
Business is not implemented.
This article describes how Microsoft PIN reset service enables your users to recover a
forgotten Windows Hello for Business PIN.
Overview
Windows Hello for Business provides the capability for users to reset forgotten PINs.
There are two forms of PIN reset:
Destructive PIN reset: with this option, the user's existing PIN and underlying
credentials, including any keys or certificates added to their Windows Hello
container, are deleted from the client and a new sign in key and PIN are
provisioned. Destructive PIN reset is the default option, and doesn't require
configuration
Non-destructive PIN reset: with this option, the user's Windows Hello for Business
container and keys are preserved, but the user's PIN that they use to authorize key
usage is changed. For non-destructive PIN reset, you must deploy the Microsoft
PIN reset service and configure your clients' policy to enable the PIN recovery
feature
When non-destructive PIN reset is enabled on a client, a 256-bit AES key is generated
locally. The key is added to a user's Windows Hello for Business container and keys as
the PIN reset protector. This PIN reset protector is encrypted using a public key retrieved
from the Microsoft PIN reset service and then stored on the client for later use during
PIN reset. After a user initiates a PIN reset, completes authentication and multi-factor
authentication to Azure AD, the encrypted PIN reset protector is sent to the Microsoft
PIN reset service, decrypted, and returned to the client. The decrypted PIN reset
protector is used to change the PIN used to authorize Windows Hello for Business keys
and it's then cleared from memory.
Using Group Policy, Microsoft Intune or a compatible MDM solution, you can configure
Windows devices to securely use the Microsoft PIN reset service, which enables users to
reset their forgotten PIN without requiring re-enrollment.
Functionality The user's existing PIN and underlying You must deploy the Microsoft
credentials, including any keys or PIN reset service and client
certificates added to their Windows Hello policy to enable the PIN
container, are deleted from the client and a recovery feature. During a non-
new sign in key and PIN are provisioned. destructive PIN reset, the user's
Windows Hello for Business
container and keys are
preserved, but the user's PIN
that they use to authorize key
usage is changed.
Azure Active Cert Trust, Key Trust, and cloud Kerberos Cert Trust, Key Trust, and cloud
Directory Joined trust Kerberos trust
Hybrid Azure Cert Trust and cloud Kerberos trust for Cert Trust, Key Trust, and cloud
Active Directory both settings and above the lock support Kerberos trust for both settings
Joined destructive PIN reset. Key Trust doesn't and above the lock support
support this option from above the lock non-destructive PIN reset. No
screen. This is due to the sync delay network connection is required
between when a user provisions their for the DC.
Windows Hello for Business credential and
being able to use it for sign-in. It does
support from the settings page and the
users must have a corporate network
connectivity to the DC.
Additional Supported by default and doesn't require Deploy the Microsoft PIN reset
configuration configuration service and client policy to
required enable the PIN recovery
feature.
1. Go to the Microsoft PIN Reset Service Production website, and sign in using a
Global Administrator account you use to manage your Azure Active Directory
tenant. Review the permissions requested by the Microsoft Pin Reset Service
Production application and select Accept to give consent to the application to
access your organization
2. Go to the Microsoft PIN Reset Client Production website, and sign in using a Global
Administrator account you use to manage your Azure Active Directory tenant.
Review the permissions requested by the Microsoft Pin Reset Client Production
application, and select Next.
3. Review the permissions requested by the Microsoft Pin Reset Service Production
application and select Accept to confirm consent to both applications to access
your organization.
7 Note
After accepance, the redirect page will show a blank page. This is a known behavior.
Microsoft Intune/MDM
Group policy
The following instructions provide details how to configure your devices. Select the
option that best suits your needs.
Intune
To configure devices using Microsoft Intune, create a Settings catalog policy and
use the following settings:
Assign the policy to a group that contains as members the devices or users that you
want to configure.
7 Note
You can also configure PIN recovery from the Endpoint security blade:
7 Note
You must replace TenantId with the identifier of your Azure Active Directory
tenant. To look up your Tenant ID, see How to find your Azure Active
Directory tenant ID or try the following, ensuring to sign-in with your
organization's account::
HTTP
GET https://graph.microsoft.com/v1.0/organization?$select=id
+----------------------------------------------------------------------+
| User State |
+----------------------------------------------------------------------+
NgcSet : YES
NgcKeyId : {FA0DB076-A5D7-4844-82D8-50A2FB42EC7B}
CanReset : DestructiveOnly
WorkplaceJoined : NO
WamDefaultSet : YES
WamDefaultAuthority : organizations
WamDefaultId : https://login.microsoft.com
WamDefaultGUID : { B16898C6-A148-4967-9171-64D755DA8520 }
(AzureAd)
+----------------------------------------------------------------------+
+----------------------------------------------------------------------+
| User State |
+----------------------------------------------------------------------+
NgcSet : YES
NgcKeyId : {FA0DB076-A5D7-4844-82D8-50A2FB42EC7B}
CanReset : DestructiveAndNonDestructive
WorkplaceJoined : NO
WamDefaultSet : YES
WamDefaultAuthority : organizations
WamDefaultId : https://login.microsoft.com
WamDefaultGUID : { B16898C6-A148-4967-9171-64D755DA8520 }
(AzureAd)
+----------------------------------------------------------------------+
PIN reset on Azure AD-joined devices uses a flow called web sign-in to authenticate
users in the lock screen. Web sign-in only allows navigation to specific domains. If web
sign-in attempts to navigate to a domain that isn't allowed, it displays a page with the
error message: "We can't open that page right now".
If you have a federated environment and authentication is handled using AD FS or a
third-party identity provider, then you must configure your devices with a policy to
allow a list of domains that can be reached during PIN reset flows. When set, it ensures
that authentication pages from that identity provider can be used during Azure AD
joined PIN reset.
To configure devices using Microsoft Intune, create a Settings catalog policy and use the
following settings:
Assign the policy to a group that contains as members the devices or users that you
want to configure.
Alternatively, you can configure devices using a custom policy with the Policy CSP.
Setting
OMA-URI: ./Vendor/MSFT/Policy/Config/Authentication/ConfigureWebSignInAllowedUrls
Data type: String
Value: Provide a semicolon delimited list of domains needed for authentication during the PIN
reset scenario. An example value would be signin.contoso.com;portal.contoso.com
7 Note
For Azure Government, there is a known issue with PIN reset on Azure AD Joined
devices failing. When the user attempts to launch PIN reset, the PIN reset UI shows
an error page that says, "We can't open that page right now". The
ConfigureWebSignInAllowedUrls policy can be used to work around this issue. If
you are experiencing this problem and you are using Azure US Government cloud,
set login.microsoftonline.us as the value for the ConfigureWebSignInAllowedUrls
policy.
) Important
For hybrid Azure AD-joined devices, users must have corporate network
connectivity to domain controllers to complete destructive PIN reset. If AD FS is
being used for certificate trust or for on-premises only deployments, users must
also have corporate network connectivity to federation services to reset their PIN.
1. If the PIN credential provider isn't selected, expand the Sign-in options link, and
select the PIN pad icon
2. Select I forgot my PIN from the PIN credential provider
3. Select an authentication option from the list of presented options. This list is based
on the different authentication methods enabled in your tenant (like Password,
PIN, Security key)
4. Follow the instructions provided by the provisioning process
5. When finished, unlock your desktop using your newly created PIN
1. If the PIN credential provider isn't selected, expand the Sign-in options link, and
select the PIN pad icon
2. Select I forgot my PIN from the PIN credential provider
3. Enter your password and press enter
4. Follow the instructions provided by the provisioning process
5. When finished, unlock your desktop using your newly created PIN
7 Note
Key trust on hybrid Azure AD-joined devices doesn't support destructive PIN reset
from above the Lock Screen. This is due to the sync delay between when a user
provisions their Windows Hello for Business credential and being able to use it for
sign-in. For this deployment model, you must deploy non-destructive PIN reset for
above lock PIN reset to work.
You may find that PIN reset from Settings only works post sign in. Also, the lock screen
PIN reset function doesn't work if you have any matching limitation of self-service
password reset from the lock screen. For more information, see Enable Azure Active
Directory self-service password reset at the Windows sign-in screen.
Windows Hello Enhanced Sign-in
Security
Article • 06/27/2023
Face
When Enhanced Sign-in Security is enabled, the face algorithm is protected using VBS
to isolate it from the rest of Windows. The hypervisor is used to specify and protect
memory regions, so that they can only be accessed by processes running in VBS. The
hypervisor allows the face camera to write to these memory regions providing an
isolated pathway to deliver face data from the camera to the face matching algorithm.
Face templates are generated in VBS by the protected face algorithm. When not in use,
face template data is encrypted using keys generated and only accessible to VBS, and
then stored on disk.
Fingerprint
Enhanced Sign-in Security is only supported on fingerprint sensors with match on
sensor capabilities. This type of sensor includes a microprocessor and memory which
can be used to isolate fingerprint matching and template storage using hardware.
Sensors that support Enhanced Sign-in Security have a certificate embedded during
manufacturing. This certificate can be validated by the Windows biometric components
running in VBS and is used to establish a secure session with the sensor. The sensor and
Windows biometric components use this session to communicate enrollment operations
and match results securely.
Credential Operations
The Windows biometric components running in VBS establish a secure channel to the
TPM using information shared with VBS by the TPM during boot. When a matching
operation is a success, the biometric components in VBS use this channel to authorize
the usage of Windows Hello keys for authenticating the user with their identity provider,
applications, and services.
System Compatibility
Compatible hardware and software components are required to enable Enhanced Sign-
in Security:
Next, check the properties sections of the PC Cameras by going to the “Cameras”
section in Device Manager. If there are multiple entries for PC Cameras, check the
properties section for all. Navigate to the Details tab of the drivers and select
Capabilities from the Property drop down menu. One of the PC camera devices should
have the “CM_DEVCAP_SECUREDEVICE” capability.
Fingerprint Biometric Sensor
Enhanced Sign-in Security capable fingerprint sensors must be match on chip. The
sensor must have a Microsoft issued certificate burned into the device during
manufacturing. The device driver and firmware must support Enhanced Sign-in Security
functionality. To check if a fingerprint module is Enhanced Sign-in Security-capable, first
navigate open device manager and expand the Biometric devices section. There should
be an entry for a fingerprint sensor. Right click the fingerprint reader entry and go to
Properties, then Details. Under the Property option, select “Device instance path”.
Open regedit.exe and navigate to HKLM\SYSTEM\CurrentControlSet\Enum\
[DeviceInstancePath]\Device Parameters\WinBio\Configurations where
Configurations should also have two folders beneath it: one labelled “0” and one
labelled “1”. If there is only one folder and not two, the device is not secure-capable.
Security Center
In the Device Security section of the Windows Security application, there will be an entry
for Enhanced Sign-in Security if it is enabled on the system. This entry will describe the
hardware capability of the system. If the Enhanced Sign-in Security section is not
present, the feature is not enabled on the system.
If there is a biometric sensor embedded in the device that does not support Enhanced
Sign-in Security or that type of biometric hardware is absent from the system, it will be
indicated by the “Unavailable due to incompatible hardware” description next to the
corresponding sensor. This message indicates that the hardware does not follow the
sensor requirements needed to support Enhanced Sign-in Security.
Event Viewer
The Windows biometric framework generates logs events when each sensor on a system
is enumerated. These logs include information indicating whether a sensor is operating
with Enhanced Sign-in Security enabled. Biometric event logs are found in Event Viewer
under Event Viewer > Applications and Services Logs > Microsoft > Windows >
Biometrics > Operational.
If the biometric device has been loaded properly by the Windows biometric framework
there will be a log event with ID 1108 for the corresponding sensor. If the device is
operating with Enhanced Sign-in Security enabled, the sensor will be specified as
isolated in a “Virtual Secure Mode” process. If the device is not using Enhanced Sign-in
Security, it will be specified as isolated in a “System” process.
In the event 1108, cameras will be described using “Windows Hello Face Software Device
(ROOT\WINDOWSHELLOFACESOFTWAREDRIVER\0000)” and fingerprint devices will be
described using the device’s specific module and device ID. For fingerprint devices, the
device ID can be found in device Manager under Biometric Devices > [Fingerprint
Module] > Properties > Details > Device Instance Path.
Application Compatibility
For devices with Enhanced Sign-in Security-capable cameras, a Secure Devices (SDEV)
table is required. When an SDEV table is implemented and VBS is turned on, the SDEV
table is parsed by the Secure Kernel and restrictions are enforced on accessing
Peripheral Component Interconnect (PCI) device configuration space. These restrictions
are enacted to prevent malicious processes from manipulating the configuration space
of secured devices specified in the SDEV table.
Applications that attempt to read/write the PCI configuration space, except by means
explicitly supported by Windows, will result in bug checks when the SDEV table is parsed
and enforced.
All drivers and software included in the device image must be tested for compatibility,
given these software restrictions. Software or drivers that are distributed to the system
via Windows Update, the Microsoft Store, or other acceptable channels by the device
manufacturer should also be checked for compatibility. Without this verification, there
may be unexpected behavior on the system.
Unsupported Scenarios
It is the manufacturer’s decision on what hardware they include in the system and
whether Enhanced Sign-in Security is enabled by default. If there are any concerns
around biometric modalities being blocked, contact the device manufacturer for
support.
Troubleshooting
Also check that the biometric isolation trust-lets are running. These should be listed
under System Information > Software Environment > Running Tasks as “bioiso.exe” and
“ngciso.exe”. If either of these checks fail, the system may not meet the requirements for
Enhanced Sign-in Security. Attempt to restart the biometric service using (3) below.
To check that the secure connection succeeded, refer to the “How do I know if Enhanced
Sign-in Security is enabled?” section.
1. In Settings under Sign-in Options, remove the non-functioning enrollment and re-
enroll; if the entry for Windows Hello Face/Fingerprint is unavailable with the
condition “We couldn’t find a fingerprint scanner compatible with Windows Hello
Face”, or something similar skip to (2) Check if authentication is working.
2. In device manager, the sensor should be listed under Biometrics devices. Reinstall
the driver by right clicking the name of the device and select Uninstall Device.
Restart the device, at which point Windows will attempt to reinstall the driver.
Check if authentication is working.
3. To restart the biometric service, first remove PIN from the system by going to Sign-
in Options and removing PIN. Open a command prompt as administrator and
enter “net stop wbiosrvc” then “net start wbiosrvc”. Check if fingerprint
authentication is working.
4. If biometrics are still not working on the device, file a feedback item using
Feedback Hub.
PIN is not working
PIN can be reset in the lock screen under Sign-in options. To do so, remove PIN and add
it again. This will prompt PIN reset, which should restore PIN functionality.
7 Note
You do not need to temporarily disable ESS to use your peripherals device for
things such as Teams calls.
To enable peripherals, use the following command. This action needs to be performed
only once.
7 Note
Upon restart, your fingerprint enrollment will be present but you will have to
re-enroll for Windows Hello Face.
If you find you are switching between your built-in sensors and peripherals, we
recommend that you perform the "Improve Recognition" action with whichever
peripheral you did not do your initial enrollment. This will ensure that you have the
most appropriate profile for each sensor.
If you’d like to stop using peripherals and re-enable ESS, use the following command.
This action needs to be performed once.
7 Note
Upon restart, your fingerprint enrollment will be present but you will have to
re-enroll for Windows Hello Face.
Dual Enrollment
Article • 07/25/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Requirements
) Important
Dual enrollment does not replace or provide the same security as Privileged Access
Workstations feature. Microsoft encourages enterprises to use the Privileged Access
Workstations for their privileged credential users. Enterprises can consider Windows
Hello for Business dual enrollment in situations where the Privileged Access feature
cannot be used. Read Privileged Access Workstations for more information.
By design, Windows does not enumerate all Windows Hello for Business users from
within a user's session. Using the computer Group Policy setting, Allow enumeration of
emulated smart card for all users, you can configure a device to enumerate all enrolled
Windows Hello for Business credentials on selected devices.
With this setting, administrative users can sign in to Windows 10, version 1709 or later
using their non-privileged Windows Hello for Business credentials for normal work flow
such as email, but can launch Microsoft Management Consoles (MMCs), Remote
Desktop Services clients, and other applications by selecting Run as different user or
Run as administrator, selecting the privileged user account, and providing their PIN.
Administrators can also take advantage of this feature with command-line applications
by using runas.exe combined with the /smartcard argument. This enables
administrators to perform their day-to-day operations without needing to sign in and
out, or use fast user switching when alternating between privileged and non-privileged
workloads.
) Important
You must configure a Windows computer for Windows Hello for Business dual
enrollment before either user (privileged or non-privileged) provisions Windows
Hello for Business. Dual enrollment is a special setting that is configured on the
Windows Hello container during creation.
Active Directory Domain Services uses AdminSDHolder to secure privileged users and
groups from unintentional modification by comparing and replacing the security on
privileged users and groups to match those defined on the AdminSDHolder object on
an hourly cycle. For Windows Hello for Business, your domain administrator account
may receive the permissions but they will disappear from the user object unless you give
the AdminSDHolder read and write permissions to the msDS-KeyCredential attribute.
1. Type the following command to add the allow read and write property permissions
for msDS-KeyCredentialLink attribute for the Key Admins (or KeyCredential
Admins) group on the AdminSDHolder object.
dsacls "CN=AdminSDHolder,CN=System,DC=domain,DC=com" /g "
[domainName\keyAdminGroup]":RPWP;msDS-KeyCredentialLink
where DC=domain,DC=com is the LDAP path of your Active Directory domain and
domainName\keyAdminGroup] is the NetBIOS name of your domain and the
name of the group you use to give access to keys based on your deployment. For
example:
dsacls "CN=AdminSDHolder,CN=System,DC=corp,DC=mstepdemo,DC=net" /g
"mstepdemo\Key Admins":RPWP;msDS-KeyCredentialLink
1. Using the Group Policy Management Console (GPMC), create a new domain-based
Group Policy object and link it to an organizational Unit that contains Active
Directory computer objects used by privileged users.
2. Edit the Group Policy object from step 1.
3. Enable the Allow enumeration of emulated smart cards for all users policy setting
located under Computer Configuration->Administrative Templates->Windows
Components->Windows Hello for Business.
4. Close the Group Policy Management Editor to save the Group Policy object. Close
the GPMC.
5. Restart computers targeted by this Group Policy object.
The computer is ready for dual enrollment. Sign in as the privileged user first and enroll
for Windows Hello for Business. Once completed, sign out and sign in as the non-
privileged user and enroll for Windows Hello for Business. You can now use your
privileged credential to perform privileged tasks without using your password and
without needing to switch users.
Dynamic lock
Article • 03/10/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Dynamic lock is a feature that automatically locks a Windows device when a Bluetooth
paired phone signal falls below the maximum Received Signal Strength Indicator (RSSI)
value. The feature makes it more difficult for someone to gain access to your device if
you step away from your PC and forget to lock it.
) Important
The dynamic lock feature only locks the device if the Bluetooth signal falls and the
system is idle. If the system isn't idle (for example, an intruder gets access before
the Bluetooth signal falls below the limit), the device won't lock. Therefore, the
dynamic lock feature is an additional barrier. It doesn't replace the need for the
user to lock the computer. It only reduces the probability of someone gaining
access if the user forgets to lock it.
You can configure Windows devices to use the dynamic lock using a Group Policy
Object (GPO).
The Group Policy Editor, when the policy is enabled, creates a default signal rule policy
with the following value:
XML
<rule schemaVersion="1.0">
<signal type="bluetooth" scenario="Dynamic Lock" classOfDevice="512"
rssiMin="-10" rssiMaxDelta="-10"/>
</rule>
) Important
Microsoft recommends using the default values for this policy settings.
Measurements are relative based on the varying conditions of each environment.
Therefore, the same values may produce different results. Test policy settings in
each environment prior to broadly deploying the setting.
For this policy setting, the type and scenario attribute values are static and can't change.
The classofDevice is configurable but Phone is the only currently supported
configuration. The attribute defaults to Phone and uses the values from the following
table:
Description Value
Miscellaneous 0
Computer 256
Phone 512
Audio/Video 1024
Peripheral 1280
Imaging 1536
Wearable 1792
Toy 2048
Health 2304
Uncategorized 7936
The rssiMin attribute value signal indicates the strength needed for the device to be
considered in-range. The default value of -10 enables a user to move about an average
size office or cubicle without triggering Windows to lock the device. The rssiMaxDelta
has a default value of -10, which instruct Windows to lock the device once the signal
strength weakens by more than measurement of 10.
RSSI measurements are relative and lower as the bluetooth signals between the two
paired devices reduces. Therefore a measurement of 0 is stronger than -10, which is
stronger than -60, which is an indicator the devices are moving further apart from each
other.
Multi-factor unlock
Article • 03/30/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Windows Hello for Business supports the use of a single credential (PIN and biometrics)
for unlocking a device. Therefore, if any of those credentials are compromised (shoulder
surfed), an attacker could gain access to the system.
Windows Hello for Business can be configured with multi-factor unlock, by extending
Windows Hello with trusted signals. Administrators can configure devices to request a
combination of factors and trusted signals to unlock them.
Have expressed that PINs alone don't meet their security needs
Want to prevent Information Workers from sharing credentials
Want their organizations to comply with regulatory two-factor authentication
policy
Want to retain the familiar Windows sign-in user experience and not settle for a
custom solution
How it works
First unlock factor credential provider and Second unlock credential provider are
responsible for the bulk of the configuration. Each of these components contains a
globally unique identifier (GUID) that represents a different Windows credential
provider. With the policy setting enabled, users unlock the device using at least one
credential provider from each category before Windows allows the user to proceed to
their desktop.
U Caution
When the DontDisplayLastUserName security policy is enabled, it is known to
interfere with the ability to use multi factor unlock.
The First unlock factor credential providers and Second unlock factor credential
providers portion of the policy setting each contain a comma separated list of credential
providers.
PIN {D6886603-9D2F-4EB2-B667-1971041FA96B}
Fingerprint {BEC09223-B018-416D-A0AC-523971B639F5}
7 Note
The default credential providers for the First unlock factor credential provider include:
PIN
Fingerprint
Facial Recognition
The default credential providers for the Second unlock factor credential provider
include:
Trusted Signal
PIN
Configure a comma separated list of credential provider GUIDs you want to use as first
and second unlock factors. While a credential provider can appear in both lists, a
credential supported by that provider can only satisfy one of the unlock factors. Listed
credential providers don't need to be in any specific order.
For example, if you include the PIN and fingerprint credential providers in both first and
second factor lists, a user can use their fingerprint or PIN as the first unlock factor.
Whichever factor you use to satisfy the first unlock factor can't be used to satisfy the
second unlock factor. Each factor can therefore be used exactly once. The Trusted Signal
provider can only be specified as part of the Second unlock factor credential provider
list.
Rule element
You represent signal rules in XML. Each signal rule has a starting and ending rule
element that contains the schemaVersion attribute and value. The current supported
schema version is 1.0 .
Example
XML
<rule schemaVersion="1.0">
</rule>
Signal element
Each rule element has a signal element. All signal elements have a type element and
value . The values supported are:
bluetooth
ipConfig
wifi
Bluetooth
You define the bluetooth signal with more attributes in the signal element. The
bluetooth configuration doesn't use any other elements. You can end the signal element
with short ending tag /> .
Attribute Value Required
classOfDevice "number" no
rssiMin "number" no
rssiMaxDelta "number" no
For example:
XML
<rule schemaVersion="1.0">
<signal type="bluetooth" scenario="Authentication" classOfDevice="512"
rssiMin="-10" rssiMaxDelta="-10"/>
</rule>
The classofDevice attribute defaults to Phone and uses the values from the following
table:
Description Value
Miscellaneous 0
Computer 256
Phone 512
Audio/Video 1024
Peripheral 1280
Imaging 1536
Wearable 1792
Toy 2048
Health 2304
Uncategorized 7936
The rssiMin attribute value signal indicates the strength needed for the device to be
considered "in-range". The default value of -10 enables a user to move about an average
size office or cubicle without triggering Windows to lock the device. The rssiMaxDelta
has a default value of -10, which instruct Windows to lock the device once the signal
strength weakens by more than measurement of 10.
RSSI measurements are relative, and lower as the bluetooth signals between the two
paired devices reduces. A measurement of 0 is stronger than -10. A measurement of -10
is stronger than -60, and indicates that the devices are moving further apart from each
other.
) Important
Microsoft recommends using the default values for this policy setting.
Measurements are relative, based on the varying conditions of each environment.
Therefore, the same values may produce different results. Test policy settings in
each environment prior to broadly deploying the setting. Use the rssiMIN and
rssiMaxDelta values from the XML file created by the Group Policy Management
Editor or remove both attributes to use the default values.
IP Configuration
You define IP configuration signals using one or more ipConfiguration elements. Each
element has a string value. IpConfiguration elements don't have attributes or nested
elements.
IPv4Prefix
XML
<ipv4Prefix>192.168.100.0/24</ipv4Prefix>
IPv4Gateway
The IPv4 network gateway represented in Internet standard dotted-decimal notation. A
network port or prefix must not be present in the network string. A signal element may
only contain one ipv4Gateway element. For example:
XML
<ipv4Gateway>192.168.100.10</ipv4Gateway>
IPv4DhcpServer
XML
<ipv4DhcpServer>192.168.100.10</ipv4DhcpServer>
IPv4DnsServer
Example:
XML
<ipv4DnsServer>192.168.100.10</ipv4DnsServer>
IPv6Prefix
The IPv6 network prefix represented in IPv6 network using Internet standard
hexadecimal encoding. A network prefix in CIDR notation is required as part of the
network string. A network port or scope ID must not be present in the network string. A
signal element may only contain one ipv6Prefix element. For example:
XML
<ipv6Prefix>21DA:D3::/48</ipv6Prefix>
IPv6Gateway
XML
<ipv6Gateway>21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2</ipv6Gateway>
IPv6DhcpServer
The IPv6 DNS server represented in Internet standard hexadecimal encoding. An IPv6
scope ID may be present in the network string. A network port or prefix must not be
present in the network string. A signal element may only contain one ipv6DhcpServer
element. For example:
XML
<ipv6DhcpServer>21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2</ipv6DhcpServer
IPv6DnsServer
The IPv6 DNS server represented in Internet standard hexadecimal encoding. An IPv6
scope ID may be present in the network string. A network port or prefix must not be
present in the network string. The signal element may contain one or more
ipv6DnsServer elements. For example:
XML
<ipv6DnsServer>21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2</ipv6DnsServer>
dnsSuffix
The fully qualified domain name of your organization's internal DNS suffix where any
part of the fully qualified domain name in this setting exists in the computer's primary
DNS suffix. The signal element may contain one or more dnsSuffix elements. For
example:
XML
<dnsSuffix>corp.contoso.com</dnsSuffix>
Wi-Fi
You define Wi-Fi signals using one or more wifi elements. Each element has a string
value. Wifi elements don't have attributes or nested elements.
SSID
Contains the service set identifier (SSID) of a wireless network. The SSID is the name of
the wireless network. The SSID element is required. For example:
XML
<ssid>corpnetwifi</ssid>
BSSID
Contains the basic service set identifier (BSSID) of a wireless access point. the BSSID is
the mac address of the wireless access point. The BSSID element is optional. For
example:
XML
<bssid>12-ab-34-ff-e5-46</bssid>
Security
Contains the type of security the client uses when connecting to the wireless network.
The security element is required and must contain one of the following values:
Value Description
Open The wireless network is an open network that doesn't require any authentication
or encryption.
WPA2- The wireless network is protected using Wi-Fi Protected Access 2, which typically
Personal uses a pre-shared key.
WPA2- The wireless network is protected using Wi-Fi Protected Access 2-Enterprise.
Enterprise
For example:
XML
<security>WPA2-Enterprise</security>
TrustedRootCA
Contains the thumbprint of the trusted root certificate of the wireless network. You can
use any valid trusted root certificate. The value is represented as hexadecimal string,
where each byte in the string is separated by a single space. The element is optional. For
example:
XML
<trustedRootCA>a2 91 34 aa 22 3a a2 3a 4a 78 a2 aa 75 a2 34 2a 3a 11 4a
aa</trustedRootCA>
Sig_quality
Contains numeric value ranging from 0 to 100 to represent the wireless network's signal
strength needed to be considered a trusted signal.
For example:
XML
<sig_quality>80</sig_quality>
) Important
These examples are wrapped for readability. Once properly formatted, the entire
XML contents must be a single line.
Example 1
XML
<rule schemaVersion="1.0">
<signal type="ipConfig">
<ipv4Prefix>10.10.10.0/24</ipv4Prefix>
<ipv4DnsServer>10.10.0.1</ipv4DnsServer>
<ipv4DnsServer>10.10.0.2</ipv4DnsServer>
<dnsSuffix>corp.contoso.com</dnsSuffix>
</signal>
</rule>
Example 2
The following example configures an IpConfig signal type using a dnsSuffix element
and a bluetooth signal for phones. The example implies that either the IpConfig or the
Bluetooth rule must evaluate to true, for the resulting signal evaluation to be true.
7 Note
XML
<rule schemaVersion="1.0">
<signal type="ipConfig">
<dnsSuffix>corp.contoso.com</dnsSuffix>
</signal>
</rule>,
<rule schemaVersion="1.0">
<signal type="bluetooth" scenario="Authentication" classOfDevice="512"
rssiMin="-10" rssiMaxDelta="-10"/>
</rule>
Example 3
The following example configures the same as example 2 using compounding and
elements. The example implies that the IpConfig and the Bluetooth rule must evaluate
to true, for the resulting signal evaluation to be true.
XML
<rule schemaVersion="1.0">
<and>
<signal type="ipConfig">
<dnsSuffix>corp.microsoft.com</dnsSuffix>
</signal>
<signal type="bluetooth" scenario="Authentication" classOfDevice="512"
rssiMin="-10" rssiMaxDelta="-10"/>
</and>
</rule>
Example 4
The following example configures Wi-Fi as a trusted signal.
XML
<rule schemaVersion="1.0">
<signal type="wifi">
<ssid>contoso</ssid>
<bssid>12-ab-34-ff-e5-46</bssid>
<security>WPA2-Enterprise</security>
<trustedRootCA>a2 91 34 aa 22 3a a2 3a 4a 78 a2 aa 75 a2 34 2a 3a 11 4a
aa</trustedRootCA>
<sig_quality>80</sig_quality>
</signal>
</rule>
) Important
You need to remove all third party credential providers to ensure users cannot
unlock their devices if they do not have the required factors. The fall back options
are to use passwords or smart cards (both of which could be disabled as needed).
) Important
Troubleshoot
Multi-factor unlock writes events to event log under Application and Services
Logs\Microsoft\Windows\HelloForBusiness with the category name Device Unlock.
Events
Event ID Details
Requirements
Windows Hello for Business supports using a certificate deployed to a Windows Hello
for Business container as a supplied credential to establish a remote desktop connection
to a server or another device. This feature takes advantage of the redirected smart card
capabilities of the remote desktop protocol. Windows Hello for Business key trust can be
used with Remote Credential Guard to establish a remote desktop protocol connection.
Microsoft continues to investigate supporting using keys trust for supplied credentials in
a future release.
The ability for users to authenticate to a remote desktop session using their Windows
Hello for Business biometric is on by default.
A certificate on a smart card starts with creating an asymmetric key pair using the
Microsoft Smart Card KSP. Windows requests a certificate based on the key pair from
your enterprises issuing certificate authority, which returns a certificate that is stored in
the user's Personal certificate store. The private key remains on the smart card and the
public key is stored with the certificate. Metadata on the certificate (and the key) stores
the key storage provider used to create the key (remember the certificate contains the
public key).
The same concept applies to Windows Hello for Business, except that the keys are
created using the Microsoft Passport KSP. The user's private key remains protected by
the device's security module (TPM) and the user's gesture (PIN/biometric). The
certificate APIs hide the complexity. When an application uses a certificate, the
certificate APIs locate the keys using the saved key storage provider. The key storage
providers direct the certificate APIs on which provider they use to find the private key
associated with the certificate. This is how Windows knows you have a smart card
certificate without the smart card inserted (and prompts you to insert the smart card).
Windows Hello for Business emulates a smart card for application compatibility, and the
Microsoft Passport KSP prompts the user for their biometric gesture or PIN.
Compatibility
Users appreciate convenience of biometrics and administrators value the security
however, you may experience compatibility issues with your applications and Windows
Hello for Business certificates. You can relax knowing a Group Policy setting and a MDM
URI exist to help you revert to the previous behavior for those users who need it.
) Important
The remote desktop with biometric feature does not work with Dual Enrollment
feature or scenarios where the user provides alternative credentials. Microsoft
continues to investigate supporting the feature.
Windows Hello for Business known
deployment issues
Article • 06/02/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
The content of this article is to help troubleshoot known deployment issues for
Windows Hello for Business.
If you're a customer of Azure US Government cloud, PIN reset also attempts to navigate
to a domain that isn't included in the default allowlist. The result is the message We
can't open that page right now.
In Hybrid key trust deployments with domain controllers running certain builds of
Windows Server 2016 and Windows Server 2019, the user's Windows Hello for Business
key is deleted after they sign-in. Subsequent sign-ins will fail until the user's key is
synced during the next Azure AD Connect delta sync cycle.
Before the user's Windows Hello for Business key syncs, sign-ins with Windows Hello for
Business fail with the error message That option is temporarily unavailable. For now,
please use a different method to sign in. After the key syncs successfully, the user can
sign in and unlock with their PIN or enrolled biometrics.
In environments with the issue, after the first sign-in with Windows Hello for Business
and provisioning is complete, the next sign-in attempt fails. In environments where
domain controllers are running a mix of builds, some users may be impacted by the
issue, and subsequent sign in attempts may be sent to different domain controllers. The
result is intermittent sign-in failures.
After the initial sign-in attempt, the user's Windows Hello for Business public key is
deleted from the msDS-KeyCredentialLink attribute . You can verify the deletion by
querying a user's msDS-KeyCredentialLink attribute before and after sign-in. You can
query the msDS-KeyCredentialLink in AD using Get-ADUser and specifying msds-
keycredentiallink for the -Properties parameter.
Windows Hello for Business uses smart-card based authentication for many operations.
This type of authentication has special guidelines when using a third-party CA for
certificate issuance, some of which apply to the domain controllers. Not all Windows
Hello for Business deployment types require these configurations. Accessing on-
premises resources from an Azure AD Joined device does require special configuration
when using a third-party CA to issue domain controller certificates.
For more information, read Guidelines for enabling smart card sign in with third-party
certification authorities.
Console
The Kerberos client received a KDC certificate that does not have a matched
domain name.
Expected Domain Name: ad.contoso.com
Error Code: 0xC000006D
Alternatively, you can set the subject alternative name (SAN) of the domain controller
certificate to contain the server object's fully qualified domain name and the NETBIOS
name of the domain. Example Subject Alternative Name:
dns=dc1.ad.contoso.com
dns=ad.contoso.com
dns=ad
Domain controllers running early versions of Windows Server 2019 have an issue that
prevents key trust authentication from working properly. Networks traces report
KDC_ERR_CLIENT_NAME_MISMATCH.
The error is presented on hybrid Azure AD-joined devices in key trust deployments after
Windows Hello for Business is provisioned, but before a user's key is synced from Azure
AD to AD. If a user's key isn't synced from Azure AD and the msDS-keycredentiallink
attribute on the user object in AD is populated for NGC, then it's possible that the error
occurs.
Another indicator of the failure can be identified using network traces. If you capture
network traces for a key trust sign-in event, the traces show Kerberos failing with the
error KDC_ERR_CLIENT_NAME_MISMATCH.
If a device recently joined a domain, there may be a delay before the device
authentication occurs. If the failing state of this prerequisite check persists, then it can
indicate an issue with the AD FS configuration.
Console
PowerShell
(Get-AdfsApplicationPermission -ServerRoleIdentifiers
'http://schemas.microsoft.com/ws/2009/12/identityserver/selfscope' | ?{
$_.ClientRoleIdentifier -eq '38aa3b87-a06d-4817-b275-7a316988d93b'
}).ObjectIdentifier
8. On the client: Restart the client. The user should be prompted to provision
Windows Hello for Business.
Windows Hello errors during PIN creation
Article • 04/26/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
When you set up Windows Hello in Windows client, you may get an error during the Create a PIN step. This topic lists some of
the error codes with recommendations for mitigating the problem. If you get an error code that is not listed here, contact
Microsoft Support.
Error mitigations
When a user encounters an error when creating the work PIN, advise the user to try the following steps. Many errors can be
mitigated by one of these steps.
1. Try to create the PIN again. Some errors are transient and resolve themselves.
2. Sign out, sign in, and try to create the PIN again.
3. Reboot the device and then try to create the PIN again.
4. Unjoin the device from Azure Active Directory (Azure AD), rejoin, and then try to create the PIN again. To unjoin a device,
go to Settings > System > About > Disconnect from organization.
If the error occurs again, check the error code against the following table to see if there is another mitigation for that error.
When no mitigation is listed in the table, contact Microsoft Support for assistance.
0x8009000F The container or key already Unjoin the device from Azure AD and rejoin.
exists.
0x80090011 The container or key was not Unjoin the device from Azure AD and rejoin.
found.
0x80090029 TPM is not set up. Sign on with an administrator account. Select Start, type tpm.msc , and select tpm.msc Microsoft
Common Console Document. In the Actions pane, select Prepare the TPM.
0x8009002A NTE_NO_MEMORY Close programs which are taking up memory and try again.
0x80090031 NTE_AUTHENTICATION_IGNORED Reboot the device. If the error occurs again after rebooting, reset the TPM or run Clear-TPM.
Hex Cause Mitigation
0x80090035 Policy requires TPM and the Change the Windows Hello for Business policy to not require a TPM.
device does not have TPM.
0x801C0003 User is not authorized to enroll. Check if the user has permission to perform the operation.
0x801C000E Registration quota reached. Unjoin some other device that is currently joined using the same account or increase the maximum
number of devices per user.
0x801C0010 The AIK certificate is not valid or Sign out and then sign in again.
trusted.
0x801C0011 The attestation statement of the Sign out and then sign in again.
transport key is invalid.
0x801C0012 Discovery request is not in a valid Sign out and then sign in again.
format.
0x801C0015 The device is required to be Join the device to an Active Directory domain.
joined to an Active Directory
domain.
0x801C0016 The federation provider Go to http://clientconfig.microsoftonline-p.net/FPURL.xml and verify that the file is not empty.
configuration is empty
0x801C0017 The federation provider domain is Go to http://clientconfig.microsoftonline-p.net/FPURL.xml and verify that the FPDOMAINNAME
empty element is not empty.
0x801C0018 The federation provider client Go to http://clientconfig.microsoftonline-p.net/FPURL.xml and verify that the CLIENTCONFIG
configuration URL is empty element contains a valid URL.
0x801C03E9 Server response message is Sign out and then sign in again.
invalid
0x801C03EA Server failed to authorize user or Check if the token is valid and user has permission to register Windows Hello for Business keys.
device.
0x801C03EB Server response http status is not Sign out and then sign in again.
valid
0x801C03EC Unhandled exception from server. sign out and then sign in again.
Hex Cause Mitigation
0x801C03ED Multi-factor authentication is Sign out and then sign in again. If that doesn't resolve the issue, unjoin the device from Azure AD
required for a 'ProvisionKey' and rejoin.
operation, but was not Allow user(s) to join to Azure AD under Azure AD Device settings.
performed.
-or-
-or-
-or-
-or-
0x801C03EF The AIK certificate is no longer Sign out and then sign in again.
valid.
0x801C03F2 Windows Hello key registration ERROR_BAD_DIRECTORY_REQUEST. Another object with the same value for property
failed. proxyAddresses already exists. To resolve the issue, refer to Duplicate Attributes Prevent Dirsync.
Also, if no sync conflict exists, please verify that the "Mail/Email address" in Azure Active Directory
and the Primary SMTP address are the same in the proxy address.
0x801C044D Authorization token does not Unjoin the device from Azure AD and rejoin.
contain device ID.
Unable to obtain user token. Sign out and then sign in again. Check network and credentials.
0x801C044E Failed to receive user credentials Sign out and then sign in again.
input.
0x801C0451 User token switch account. Delete the Web Account Manager token broker files located in
%LOCALAPPDATA%\Packages\Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy\AC\TokenBroker\Accounts\*.*\
and reboot.
0xC00000BB Your PIN or this option is The destination domain controller doesn't support the login method. Most often the KDC service
temporarily unavailable. doesn't have the proper certificate to support the login. Another common cause can be the client
cannot verify the KDC certificate CRL. Use a different login method.
Hex Cause
0X80072F0C Unknown
0x80072F8F A mismatch happens between the system's clock and the activation server's clock when attempting to activate Windows.
0x80090010 NTE_PERM
0x80090020 NTE_FAIL
Hex Cause
0x80090027 Caller provided a wrong parameter. If third-party code receives this error, they must change their code.
0x8009002D NTE_INTERNAL_ERROR
0x801C000B Redirection is needed and redirected location is not a well known server.
0x801C001A The DRS endpoint in the federation provider client configuration is empty.
0x801c004D DSREG_NO_DEFAULT_ACCOUNT: NGC provisioning is unable to find the default WAM account to use to request Azure Active
Directory token for provisioning. Unable to enroll a device to use a PIN for login.
0xCAA30193 HTTP 403 Request Forbidden: it means request left the device, however either Server, proxy or firewall generated this response.
Windows Hello for Business
Provisioning
Article • 11/23/2022 • Applies to: ✅ Windows 11, ✅ Windows 10
Windows Hello for Business provisioning enables a user to enroll a new, strong, two-
factor credential that they can use for passwordless authentication. Provisioning
experience vary based on:
7 Note
The flows in this section are not exhaustive for every possible scenario. For
example, Federated Key Trust is also a supported configuration.
Phase Description
A The provisioning application hosted in the Cloud Experience Host (CXH) starts
provisioning by requesting an access token for the Azure Device Registration Service
(ADRS). The application makes the request using the Azure Active Directory Web Account
Manager plug-in.
Users must provide two factors of authentication. In this phase, the user has already
provided one factor of authentication, typically user name and password. The Azure MFA
service provides the second factor of authentication. If the user has performed Azure
MFA within the last 10 minutes, such as when registering the device from the out-of-box-
experience (OOBE), then they are not prompted for MFA because the current MFA
remains valid.
Azure Active Directory validates the access token request and the MFA claim associated
with it, creates an ADRS access token, and returns it to the application.
B After receiving an ADRS access token, the application detects if the device has a
Windows Hello biometric compatible sensor. If the application detects a biometric
sensor, it gives the user the choice to enroll biometrics. After completing or skipping
biometric enrollment, the application requires the user to create a PIN and the default
(and fall-back gesture when used with biometrics). The user provides and confirms their
PIN. Next, the application requests a Windows Hello for Business key pair from the key
pre-generation pool, which includes attestation data. This is the user key (ukpub/ukpriv).
Phase Description
C The application sends the ADRS token, ukpub, attestation data, and device information to
ADRS for user key registration. Azure DRS validates the MFA claim remains current. On
successful validation, Azure DRS locates the user's object in Azure Active Directory, writes
the key information to a multi-values attribute. The key information includes a reference
to the device from which it was created. Azure Active Directory returns a key ID to the
application which signals the end of user provisioning and the application exits.
Return to top
Phase Description
A The provisioning application hosted in the Cloud Experience Host (CXH) starts
provisioning by requesting an access token for the Azure Device Registration Service
(ADRS). The application makes the request using the Azure Active Directory Web Account
Manager plug-in.
In a federated environment, the plug-in sends the token request to the on-premises STS,
Phase Description
such as Active Directory Federation Services. The on-premises STS authenticates the user
and determines if the user should perform another factor of authentication.
Users must provide two factors of authentication. In this phase, the user has already
provided one factor of authentication, typically user name and password. The Azure MFA
service provides the second factor of authentication. If the user has performed Azure
MFA within the last 10 minutes, such as when registering the device from the out-of-box-
experience (OOBE), then they are not prompted for MFA because the current MFA
remains valid.
The on-premises STS server issues an enterprise token on successful MFA. The
application sends the token to Azure Active Directory.
Azure Active Directory validates the access token request and the MFA claim associated
with it, creates an ADRS access token, and returns it to the application.
B After receiving an ADRS access token, the application detects if the device has a
Windows Hello biometric compatible sensor. If the application detects a biometric
sensor, it gives the user the choice to enroll biometrics. After completing or skipping
biometric enrollment, the application requires the user to create a PIN and the default
(and fall-back gesture when used with biometrics). The user provides and confirms their
PIN. Next, the application requests a Windows Hello for Business key pair from the key
pre-generation pool, which includes attestation data. This is the user key (ukpub/ukpriv).
C The application sends the ADRS token, ukpub, attestation data, and device information to
ADRS for user key registration. Azure DRS validates MFA claim remains current. On
successful validation, Azure DRS locates the user's object in Azure Active Directory, writes
the key information to a multi-values attribute. The key information includes a reference
to the device from which it was created. Azure Active Directory returns key ID to the
application which signals the end of user provisioning and the application exits.
Return to top
Phase Description
A The provisioning application hosted in the Cloud Experience Host (CXH) starts
provisioning by requesting an access token for the Azure Device Registration Service
(ADRS). The application makes the request using the Azure Active Directory Web Account
Manager plug-in.
Users must provide two factors of authentication. In this phase, the user has already
provided one factor of authentication, typically user name and password. The Azure MFA
service provides the second factor of authentication. If the user has performed Azure
MFA within the last 10 minutes, such as when registering the device from the out-of-box-
experience (OOBE), then they are not prompted for MFA because the current MFA
remains valid.
Azure Active Directory validates the access token request and the MFA claim associated
with it, creates an ADRS access token, and returns it to the application.
B After receiving an ADRS access token, the application detects if the device has a
Windows Hello biometric compatible sensor. If the application detects a biometric
sensor, it gives the user the choice to enroll biometrics. After completing or skipping
biometric enrollment, the application requires the user to create a PIN and the default
(and fall-back gesture when used with biometrics). The user provides and confirms their
PIN. Next, the application requests a Windows Hello for Business key pair from the key
pre-generation pool, which includes attestation data. This is the user key (ukpub/ukpriv).
C The application sends the ADRS token, ukpub, attestation data, and device information to
ADRS for user key registration. Azure DRS validates the MFA claim remains current. On
successful validation, Azure DRS locates the user's object in Azure Active Directory, writes
the key information to a multi-values attribute. The key information includes a reference
Phase Description
to the device from which it was created. Azure Active Directory returns a key ID to the
application which signals the end of user provisioning and the application exits.
7 Note
Windows Hello for Business cloud Kerberos trust does not require users' keys to be
synced from Azure AD to AD. Users can immediately authenticate to Azure Active
Directory and AD after provisioning their credential.
Return to top
Phase Description
A The provisioning application hosted in the Cloud Experience Host (CXH) starts
provisioning by requesting an access token for the Azure Device Registration Service
Phase Description
(ADRS). The application makes the request using the Azure Active Directory Web Account
Manager plug-in.
Users must provide two factors of authentication. In this phase, the user has already
provided one factor of authentication, typically user name and password. The Azure MFA
service provides the second factor of authentication. If the user has performed Azure
MFA within the last 10 minutes, such as when registering the device from the out-of-box-
experience (OOBE), then they are not prompted for MFA because the current MFA
remains valid.
Azure Active Directory validates the access token request and the MFA claim associated
with it, creates an ADRS access token, and returns it to the application.
B After receiving an ADRS access token, the application detects if the device has a
Windows Hello biometric compatible sensor. If the application detects a biometric
sensor, it gives the user the choice to enroll biometrics. After completing or skipping
biometric enrollment, the application requires the user to create a PIN and the default
(and fall-back gesture when used with biometrics). The user provides and confirms their
PIN. Next, the application requests a Windows Hello for Business key pair from the key
pre-generation pool, which includes attestation data. This is the user key (ukpub/ukpriv).
C The application sends the ADRS token, ukpub, attestation data, and device information to
ADRS for user key registration. Azure DRS validates the MFA claim remains current. On
successful validation, Azure DRS locates the user's object in Azure Active Directory, writes
the key information to a multi-values attribute. The key information includes a reference
to the device from which it was created. Azure Active Directory returns a key ID to the
application which signals the end of user provisioning and the application exits.
D Azure AD Connect requests updates on its next synchronization cycle. Azure Active
Directory sends the user's public key that was securely registered through provisioning.
Azure Active Directory Connect receives the public key and writes it to user's msDS-
KeyCredentialLink attribute in Active Directory.
) Important
The newly provisioned user will not be able to sign in using Windows Hello for
Business until Azure AD Connect successfully synchronizes the public key to the on-
premises Active Directory.
Return to top
Phase Description
A The provisioning application hosted in the Cloud Experience Host (CXH) starts
provisioning by requesting an access token for the Azure Device Registration Service
(ADRS). The application makes the request using the Azure Active Directory Web Account
Manager plug-in.
In a federated environment, the plug-in sends the token request to the on-premises STS,
such as Active Directory Federation Services. The on-premises STS authenticates the user
and determines if the user should perform another factor of authentication.
Users must provide two factors of authentication. In this phase, the user has already
provided one factor of authentication, typically user name and password. The Azure MFA
service (or a third party MFA service) provides the second factor of authentication.
The on-premises STS server issues an enterprise token on successful MFA. The
application sends the token to Azure Active Directory.
Azure Active Directory validates the access token request and the MFA claim associated
with it, creates an ADRS access token, and returns it to the application.
B After receiving an ADRS access token, the application detects if the device has a
Windows Hello biometric compatible sensor. If the application detects a biometric
sensor, it gives the user the choice to enroll biometrics. After completing or skipping
biometric enrollment, the application requires the user to create a PIN and the default
(and fall-back gesture when used with biometrics). The user provides and confirms their
Phase Description
PIN. Next, the application requests a Windows Hello for Business key pair from the key
pre-generation pool, which includes attestation data. This is the user key (ukpub/ukpriv).
C The application sends the ADRS token, ukpub, attestation data, and device information to
ADRS for user key registration. Azure DRS validates the MFA claim remains current. On
successful validation, Azure DRS locates the user's object in Azure Active Directory, writes
the key information to a multi-values attribute. The key information includes a reference
to the device from which it was created. Azure Active Directory returns a key ID and a key
receipt to the application, which represents the end of user key registration.
D The certificate request portion of provisioning begins after the application receives a
successful response from key registration. The application creates a PKCS#10 certificate
request. The key used in the certificate request is the same key that was securely
provisioned.
The application sends the key receipt and certificate request, which includes the public
key, to the certificate registration authority hosted on the Active Directory Federation
Services (AD FS) farm.
After receiving the certificate request, the certificate registration authority queries Active
Directory for the msDS-KeyCredentialsLink for a list of registered public keys.
E The registration authority validates the public key in the certificate request matches a
registered key for the user.
If the public key in the certificate is not found in the list of registered public keys, it then
validates the key receipt to confirm the key was securely registered with Azure.
After validating the key receipt or public key, the registration authority signs the
certificate request using its enrollment agent certificate.
F The registration authority sends the certificate request to the enterprise issuing certificate
authority. The certificate authority validates the certificate request is signed by a valid
enrollment agent and, on success, issues a certificate and returns it to the registration
authority that then returns the certificate to the application.
G The application receives the newly issued certificate and installs it into the Personal store
of the user. This signals the end of provisioning.
) Important
Return to top
Domain joined provisioning in an On-premises
Key Trust deployment
Phase Description
A The provisioning application hosted in the Cloud Experience Host (CXH) starts
provisioning by requesting an access token for the Enterprise Device Registration Service
(EDRS). The application makes the request using the Azure Active Directory Web Account
Manager plug-in.
In an on-premises deployment, the plug-in sends the token request to the on-premises
STS, such as Active Directory Federation Services. The on-premises STS authenticates the
user and determines if the user should perform another factor of authentication.
Users must provide two factors of authentication. In this phase, the user has already
provided one factor of authentication, typically user name and password. Azure MFA
server (or a third party MFA service) provides the second factor of authentication.
The on-premises STS server issues an enterprise DRS token on successful MFA.
B After receiving an EDRS access token, the application detects if the device has a Windows
Hello biometric compatible sensor. If the application detects a biometric sensor, it gives
the user the choice to enroll biometrics. After completing or skipping biometric
enrollment, the application requires the user to create a PIN and the default (and fall-
back gesture when used with biometrics). The user provides and confirms their PIN. Next,
Phase Description
the application requests a Windows Hello for Business key pair from the key pre-
generation pool, which includes attestation data. This is the user key (ukpub/ukpriv).
C The application sends the EDRS token, ukpub, attestation data, and device information to
the Enterprise DRS for user key registration. Enterprise DRS validates the MFA claim
remains current. On successful validation, the Enterprise DRS locates the user's object in
Active Directory, writes the key information to a multi-values attribute. The key
information includes a reference to the device from which it was created. The Enterprise
DRS returns a key ID to the application, which represents the end of user key registration.
Return to top
A The provisioning application hosted in the Cloud Experience Host (CXH) starts
provisioning by requesting an access token for the Enterprise Device Registration Service
(EDRS). The application makes the request using the Azure Active Directory Web Account
Manager plug-in.
In an on-premises deployment, the plug-in sends the token request to the on-premises
STS, such as Active Directory Federation Services. The on-premises STS authenticates the
user and determines if the user should perform another factor of authentication.
Users must provide two factors of authentication. In this phase, the user has already
provided one factor of authentication, typically user name and password. Azure MFA
server (or a third party MFA service) provides the second factor of authentication.
The on-premises STS server issues an enterprise DRS token on successful MFA.
B After receiving an EDRS access token, the application detects if the device has a Windows
Hello biometric compatible sensor. If the application detects a biometric sensor, it gives
the user the choice to enroll biometrics. After completing or skipping biometric
enrollment, the application requires the user to create a PIN and the default (and fall-
back gesture when used with biometrics). The user provides and confirms their PIN. Next,
the application requests a Windows Hello for Business key pair from the key pre-
generation pool, which includes attestation data. This is the user key (ukpub/ukpriv).
C The application sends the EDRS token, ukpub, attestation data, and device information to
the Enterprise DRS for user key registration. Enterprise DRS validates the MFA claim
remains current. On successful validation, the Enterprise DRS locates the user's object in
Active Directory, writes the key information to a multi-values attribute. The key
information includes a reference to the device from which it was created. The Enterprise
DRS returns a key ID to the application, which represents the end of user key registration.
D The certificate request portion of provisioning begins after the application receives a
successful response from key registration. The application creates a PKCS#10 certificate
request. The key used in the certificate request is the same key that was securely
provisioned.
The application sends the certificate request, which includes the public key, to the
certificate registration authority hosted on the Active Directory Federation Services (AD
FS) farm.
After receiving the certificate request, the certificate registration authority queries Active
Directory for the msDS-KeyCredentialsLink for a list of registered public keys.
E The registration authority validates the public key in the certificate request matches a
registered key for the user.
After validating the public key, the registration authority signs the certificate request
using its enrollment agent certificate.
F The registration authority sends the certificate request to the enterprise issuing certificate
authority. The certificate authority validates the certificate request is signed by a valid
enrollment agent and, on success, issues a certificate and returns it to the registration
authority that then returns the certificate to the application.
Phase Description
G The application receives the newly issued certificate and installs it into the Personal store
of the user. This signals the end of provisioning.
Return to top
Windows Hello for Business
authentication
Article • 05/24/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Azure AD-joined devices authenticate to Azure AD during sign-in and can, optionally,
authenticate to Active Directory. Hybrid Azure AD-joined devices authenticate to Active
Directory during sign-in, and authenticate to Azure AD in the background.
7 Note
All Azure AD-joined devices authenticate with Windows Hello for Business to Azure
AD the same way. The Windows Hello for Business trust type only impacts how the
device authenticates to on-premises AD.
Phase Description
Phase Description
A Authentication begins when the user dismisses the lock screen, which triggers Winlogon
to show the Windows Hello for Business credential provider. The user provides their
Windows Hello gesture (PIN or biometrics). The credential provider packages these
credentials and returns them to Winlogon. Winlogon passes the collected credentials to
lsass. Lsass passes the collected credentials to the Cloud Authentication security support
provider, referred to as the Cloud AP provider.
B The Cloud AP provider requests a nonce from Azure Active Directory. Azure AD returns a
nonce. The Cloud AP provider signs the nonce using the user's private key and returns
the signed nonce to the Azure Active Directory.
C Azure Active Directory validates the signed nonce using the user's securely registered
public key against the nonce signature. Azure AD then validates the returned signed
nonce, and creates a PRT with session key that is encrypted to the device's transport key
and returns it to the Cloud AP provider.
D The Cloud AP provider receives the encrypted PRT with session key. Using the device's
private transport key, the Cloud AP provider decrypt the session key and protects the
session key using the device's TPM.
E The Cloud AP provider returns a successful authentication response to lsass. Lsass caches
the PRT, and informs Winlogon of the success authentication. Winlogon creates a logon
session, loads the user's profile, and starts explorer.exe.
Phase Description
Phase Description
A Authentication to Active Directory from an Azure AD joined device begins with the user
first attempts to use a resource that needs Kerberos authentication. The Kerberos
security support provider, hosted in lsass, uses metadata from the Windows Hello for
Business key to get a hint of the user's domain. Using the hint, the provider uses the
DClocator service to locate a 2016 domain controller.
B After locating a domain controller, the Kerberos provider sends a partial TGT that it
received from Azure AD from a previous Azure AD authentication to the domain
controller. The partial TGT contains only the user SID, and it's signed by Azure AD
Kerberos. The domain controller verifies that the partial TGT is valid. On success, the KDC
returns a TGT to the client.
Phase Description
A Authentication to Active Directory from an Azure AD joined device begins with the user
first attempts to use a resource that needs Kerberos authentication. The Kerberos
security support provider, hosted in lsass, uses metadata from the Windows Hello for
Business key to get a hint of the user's domain. Using the hint, the provider uses the
DClocator service to locate a 2016 domain controller. After the provider locates a domain
controller, the provider uses the private key to sign the Kerberos preauthentication data.
Phase Description
B The Kerberos provider sends the signed preauthentication data and its public key (in the
form of a self-signed certificate) to the Key Distribution Center (KDC) service running on
the 2016 domain controller in the form of a KERB_AS_REQ.
The 2016 domain controller determines the certificate is a self-signed certificate. It
retrieves the public key from the certificate included in the KERB_AS_REQ and searches
for the public key in Active Directory. It validates the UPN for authentication request
matches the UPN registered in Active Directory and validates the signed
preauthentication data using the public key from Active Directory. On success, the KDC
returns a TGT to the client with its certificate in a KERB_AS_REP.
C The Kerberos provider ensures it can trust the response from the domain controller. First,
it ensures the KDC certificate chains to a root certificate that is trusted by the device.
Next, it ensures the certificate is within its validity period and that it hasn't been revoked.
The Kerberos provider then verifies the certificate has the KDC Authentication present
and that the subject alternate name listed in the KDC's certificate matches the domain
name to which the user is authenticating. After passing this criteria, Kerberos returns the
TGT to lsass, where it's cached and used for subsequent service ticket requests.
7 Note
You might have an on-premises domain federated with Azure AD. Once you have
successfully provisioned Windows Hello for Business PIN/Bio on the Azure AD
joined device, any future login of Windows Hello for Business (PIN/Bio) sign-in will
directly authenticate against Azure AD to get PRT and trigger authenticate against
your DC (if LOS to DC is available) to get Kerberos. It no longer uses AD FS to
authenticate for Windows Hello for Business sign-ins.
A Authentication to Active Directory from an Azure AD joined device begins with the user
first attempts to use a resource that needs Kerberos authentication. The Kerberos
security support provider, hosted in lsass, uses information from the certificate to get a
hint of the user's domain. Kerberos can use the distinguished name of the user found in
the subject of the certificate, or it can use the user principal name of the user found in
the subject alternate name of the certificate. Using the hint, the provider uses the
DClocator service to locate a domain controller. After the provider locates an active
domain controller, the provider uses the private key to sign the Kerberos
preauthentication data.
B The Kerberos provider sends the signed preauthentication data and user's certificate,
which includes the public key, to the Key Distribution Center (KDC) service running on
the domain controller in the form of a KERB_AS_REQ.
The domain controller determines the certificate isn't self-signed certificate. The domain
controller ensures the certificate chains to trusted root certificate, is within its validity
period, can be used for authentication, and hasn't been revoked. It retrieves the public
key and UPN from the certificate included in the KERB_AS_REQ and searches for the UPN
in Active Directory. It validates the signed preauthentication data using the public key
from the certificate. On success, the KDC returns a TGT to the client with its certificate in
a KERB_AS_REP.
Phase Description
C The Kerberos provider ensures it can trust the response from the domain controller. First,
it ensures the KDC certificate chains to a root certificate that is trusted by the device.
Next, it ensures the certificate is within its validity period and that it hasn't been revoked.
The Kerberos provider then verifies the certificate has the KDC Authentication present
and that the subject alternate name listed in the KDC's certificate matches the domain
name to which the user is authenticating. After passing this criteria, Kerberos returns the
TGT to lsass, where it's cached and used for subsequent service ticket requests.
7 Note
You may have an on-premises domain federated with Azure AD. Once you have
successfully provisioned Windows Hello for Business PIN/Bio on, any future login of
Windows Hello for Business (PIN/Bio) sign-in will directly authenticate against
Azure AD to get PRT, as well as authenticate against your DC (if LOS to DC is
available) to get Kerberos as mentioned previously. AD FS federation is used only
when Enterprise PRT calls are placed from the client. You need to have device write-
back enabled to get "Enterprise PRT" from your federation.
A Authentication begins when the user dismisses the lock screen, which triggers Winlogon
to show the Windows Hello for Business credential provider. The user provides their
Windows Hello gesture (PIN or biometrics). The credential provider packages these
credentials and returns them to Winlogon. Winlogon passes the collected credentials to
lsass. Lsass queries Windows Hello for Business policy to check if cloud Kerberos trust is
enabled. If cloud Kerberos trust is enabled, Lsass passes the collected credentials to the
Cloud Authentication security support provider, or Cloud AP. Cloud AP requests a nonce
from Azure Active Directory. Azure AD returns a nonce.
B Cloud AP signs the nonce using the user's private key and returns the signed nonce to
Azure AD.
C Azure AD validates the signed nonce using the user's securely registered public key
against the nonce signature. After validating the signature, Azure AD then validates the
returned signed nonce. After validating the nonce, Azure AD creates a PRT with session
key that is encrypted to the device's transport key and creates a Partial TGT from Azure
AD Kerberos and returns them to Cloud AP.
D Cloud AP receives the encrypted PRT with session key. Using the device's private
transport key, Cloud AP decrypts the session key and protects the session key using the
device's TPM (if available). Cloud AP returns a successful authentication response to lsass.
Lsass caches the PRT and the Partial TGT.
Phase Description
E The Kerberos security support provider, hosted in lsass, uses metadata from the Windows
Hello for Business key to get a hint of the user's domain. Using the hint, the provider
uses the DClocator service to locate a 2016 domain controller. After locating an active
2016 domain controller, the Kerberos provider sends the partial TGT that it received from
Azure AD to the domain controller. The partial TGT contains only the user SID and is
signed by Azure AD Kerberos. The domain controller verifies that the partial TGT is valid.
On success, the KDC returns a TGT to the client. Kerberos returns the TGT to lsass, where
it's cached and used for subsequent service ticket requests. Lsass informs Winlogon of
the success authentication. Winlogon creates a logon session, loads the user's profile,
and starts explorer.exe.
Phase Description
Phase Description
A Authentication begins when the user dismisses the lock screen, which triggers Winlogon
to show the Windows Hello for Business credential provider. The user provides their
Windows Hello gesture (PIN or biometrics). The credential provider packages these
credentials and returns them to Winlogon. Winlogon passes the collected credentials to
lsass. Lsass passes the collected credentials to the Kerberos security support provider.
The Kerberos provider gets domain hints from the domain joined workstation to locate a
domain controller for the user.
B The Kerberos provider sends the signed preauthentication data and the user's public key
(in the form of a self-signed certificate) to the Key Distribution Center (KDC) service
running on the 2016 domain controller in the form of a KERB_AS_REQ.
The 2016 domain controller determines the certificate is a self-signed certificate. It
retrieves the public key from the certificate included in the KERB_AS_REQ and searches
for the public key in Active Directory. It validates the UPN for authentication request
matches the UPN registered in Active Directory and validates the signed
preauthentication data using the public key from Active Directory. On success, the KDC
returns a TGT to the client with its certificate in a KERB_AS_REP.
C The Kerberos provider ensures it can trust the response from the domain controller. First,
it ensures the KDC certificate chains to a root certificate that is trusted by the device.
Next, it ensures the certificate is within its validity period and that it hasn't been revoked.
The Kerberos provider then verifies the certificate has the KDC Authentication present
and that the subject alternate name listed in the KDC's certificate matches the domain
name to which the user is authenticating.
D After passing this criteria, Kerberos returns the TGT to lsass, where it's cached and used
for subsequent service ticket requests.
E Lsass informs Winlogon of the success authentication. Winlogon creates a logon session,
loads the user's profile, and starts explorer.exe.
F While Windows loads the user's desktop, lsass passes the collected credentials to the
Cloud Authentication security support provider, referred to as the Cloud AP provider. The
Cloud AP provider requests a nonce from Azure Active Directory. Azure AD returns a
nonce.
G The Cloud AP provider signs the nonce using the user's private key and returns the
signed nonce to the Azure Active Directory. Azure Active Directory validates the signed
nonce using the user's securely registered public key against the nonce signature. After
validating the signature, Azure AD then validates the returned signed nonce. After
validating the nonce, Azure AD creates a PRT with session key that is encrypted to the
device's transport key and returns it to the Cloud AP provider.
The Cloud AP provider receives the encrypted PRT with session key. Using the device's
private transport key, the Cloud AP provider decrypt the session key and protects the
session key using the device's TPM.
The Cloud AP provider returns a successful authentication response to lsass. Lsass caches
the PRT.
) Important
In the above deployment model, a newly provisioned user will not be able to sign
in using Windows Hello for Business until (a) Azure AD Connect successfully
synchronizes the public key to the on-premises Active Directory and (b) device has
line of sight to the domain controller for the first time.
Phase Description
A Authentication begins when the user dismisses the lock screen, which triggers Winlogon
to show the Windows Hello for Business credential provider. The user provides their
Windows Hello gesture (PIN or biometrics). The credential provider packages these
credentials and returns them to Winlogon. Winlogon passes the collected credentials to
lsass. Lsass passes the collected credentials to the Kerberos security support provider.
The Kerberos provider gets domain hints from the domain joined workstation to locate a
domain controller for the user.
Phase Description
B The Kerberos provider sends the signed preauthentication data and user's certificate,
which includes the public key, to the Key Distribution Center (KDC) service running on
the domain controller in the form of a KERB_AS_REQ.
The domain controller determines the certificate isn't self-signed certificate. The domain
controller ensures the certificate chains to trusted root certificate, is within its validity
period, can be used for authentication, and hasn't been revoked. It retrieves the public
key and UPN from the certificate included in the KERB_AS_REQ and searches for the UPN
in Active Directory. It validates the signed preauthentication data using the public key
from the certificate. On success, the KDC returns a TGT to the client with its certificate in
a KERB_AS_REP.
C The Kerberos provider ensures it can trust the response from the domain controller. First,
it ensures the KDC certificate chains to a root certificate that is trusted by the device.
Next, it ensures the certificate is within its validity period and that it hasn't been revoked.
The Kerberos provider then verifies the certificate has the KDC Authentication present
and that the subject alternate name listed in the KDC's certificate matches the domain
name to which the user is authenticating.
D After passing this criteria, Kerberos returns the TGT to lsass, where it's cached and used
for subsequent service ticket requests.
E Lsass informs Winlogon of the success authentication. Winlogon creates a logon session,
loads the user's profile, and starts explorer.exe.
F While Windows loads the user's desktop, lsass passes the collected credentials to the
Cloud Authentication security support provider, referred to as the Cloud AP provider. The
Cloud AP provider requests a nonce from Azure Active Directory. Azure AD returns a
nonce.
G The Cloud AP provider signs the nonce using the user's private key and returns the
signed nonce to the Azure Active Directory. Azure Active Directory validates the signed
nonce using the user's securely registered public key against the nonce signature. After
validating the signature, Azure AD then validates the returned signed nonce. After
validating the nonce, Azure AD creates a PRT with session key that is encrypted to the
device's transport key and returns it to the Cloud AP provider.
The Cloud AP provider receives the encrypted PRT with session key. Using the device's
private transport key, the Cloud AP provider decrypt the session key and protects the
session key using the device's TPM.
The Cloud AP provider returns a successful authentication response to lsass. Lsass caches
the PRT.
) Important
In the above deployment model, a newly provisioned user will not be able to sign
in using Windows Hello for Business unless the device has line of sight to the
domain controller.
WebAuthn APIs for passwordless
authentication on Windows
Article • 07/27/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Passwords can leave your customers vulnerable to data breaches and security attacks by
malicious users.
Starting in Windows 11, version 22H2, WebAuthn APIs support ECC algorithms.
Users of these apps or sites can use any browser that supports WebAuthn APIs for
passwordless authentication. Users will have a familiar and consistent experience on
Windows, no matter which browser they use.
Developers should use the WebAuthn APIs to support FIDO2 authentication keys in a
consistent way for users. Additionally, developers can use all the transports that are
available per FIDO2 specifications (USB, NFC, and BLE) while avoiding the interaction
and management overhead.
7 Note
When these APIs are in use, Windows 10 browsers or applications don't have direct
access to the FIDO2 transports for FIDO-related messaging.
The authentication process starts when the user makes a specific user gesture that
indicates consent for the operation. At the request of the client, the authenticator
securely creates strong cryptographic keys and stores them locally.
After these client-specific keys are created, clients can request attestations for
registration and authentication. The type of signature that the private key uses reflects
the user gesture that was made.
The following diagram shows how CTAP and WebAuthn interact. The light blue dotted
arrows represent interactions that depend on the specific implementation of the
platform APIs.
Client device. The client device is the hardware that hosts a given strong
authentication. Laptops and phones are examples of client devices.
Relying parties and clients. Relying parties are web or native applications that
consume strong credentials. The relying parties run on client devices.
As a relying party, a web application can't directly interact with the WebAuthn
API. The relying party must broker the deal through the browser.
7 Note
CTAP2 platform/host. The platform (also called the host in the CTAP2 spec) is the
part of the client device that negotiates with authenticators. The platform is
responsible for securely reporting the origin of the request and for calling the
CTAP2 Concise Binary Object Representation (CBOR) APIs. If the platform isn't
CTAP2-aware, the clients themselves take on more of the burden. In this case, the
components and interactions shown in the preceding diagram may differ.
Many relying parties and clients can interact with many authenticators on a single client
device. A user can install multiple browsers that support WebAuthn, and might
simultaneously have access to a built-in fingerprint reader, a plugged-in security key,
and a BLE-enabled mobile application.
Interoperability
Before WebAuthn and CTAP2, there were U2F and CTAP1. U2F is the FIDO Alliance
universal second-factor specification. There are many authenticators that speak CTAP1
and manage U2F credentials. WebAuthn was designed to be interoperable with CTAP1
Authenticators. A relying party that uses WebAuthn can still use U2F credentials if the
relying party doesn't require FIDO2-only functionality.
FIDO2 authenticators have already been implemented and WebAuthn relying parties
might require the following optional features:
Keys for multiple accounts (keys can be stored per relying party)
Client PIN
Location (the authenticator returns a location)
Hash-based Message Authentication Code (HMAC)-secret (enables offline
scenarios)
The following options might be useful in the future, but haven't been observed in the
wild yet:
Transactional approval
User verification index (servers can determine whether biometric data that's stored
locally has changed over time)
User verification method (the authenticator returns the exact method)
Biometric performance bounds (the relying party can specify acceptable false
acceptance and false rejection rates)
Microsoft implementation
The Microsoft FIDO2 implementation has been years in the making. Software and
services are implemented independently as standards-compliant entities. As of the
Windows 10, version 1809 (October 2018) release, all Microsoft components use the
latest WebAuthn Candidate Release. It's a stable release that's not expected to
normatively change before the specification is finally ratified. Because Microsoft is
among the first in the world to deploy FIDO2, some combinations of popular non-
Microsoft components won't be interoperable yet.
WebAuthn relying party: Microsoft Account. If you aren't familiar with Microsoft
Account, it's the sign-in service for Xbox, Outlook, and many other sites. The sign-
in experience uses client-side JavaScript to trigger Microsoft Edge to talk to the
WebAuthn APIs. Microsoft Account requires that authenticators have the following
characteristics:
Keys are stored locally on the authenticator and not on a remote server
Offline scenarios work (enabled by using HMAC)
Users can put keys for multiple user accounts on the same authenticator
If it's necessary, authenticators can use a client PIN to unlock a TPM
) Important
Because Microsoft Account requires features and extensions that are unique
to FIDO2 CTAP2 authenticators, it doesn't accept CTAP1 (U2F) credentials.
WebAuthn client: Microsoft Edge. Microsoft Edge can handle the user interface
for the WebAuthn and CTAP2 features that this article describes. It also supports
the AppID extension. Microsoft Edge can interact with both CTAP1 and CTAP2
authenticators. This scope for interaction means that it can create and use both
U2F and FIDO2 credentials. However, Microsoft Edge doesn't speak the U2F
protocol. Therefore, relying parties must use only the WebAuthn specification.
Microsoft Edge on Android doesn't support WebAuthn.
7 Note
For authoritative information about Microsoft Edge support for WebAuthn
and CTAP, see Legacy Microsoft Edge developer documentation.
Platform: Windows 10, Windows 11. Windows 10 and Windows 11 host the Win32
Platform WebAuthn APIs.
Developer references
The WebAuthn APIs are documented in the Microsoft/webauthn GitHub repo. To
understand how FIDO2 authenticators work, review the following two specifications:
7 Note
The AIK certificate must be provisioned in conjunction with a third-party service like
the Microsoft Cloud CA service. After it is provisioned, the AIK private key can be
used to report platform configuration. Windows creates a signature over the
platform log state (and a monotonic counter value) at each boot by using the AIK.
The AIK is an asymmetric (public/private) key pair that is used as a substitute for
the EK as an identity for the TPM for privacy purposes. The private portion of an AIK
is never revealed or used outside the TPM and can only be used inside the TPM for
a limited set of operations. Furthermore, it can only be used for signing, and only
for limited, TPM-defined operations.
Windows creates AIKs protected by the TPM, if available, that are 2048-bit RSA signing
keys. Microsoft hosts a cloud service called Microsoft Cloud CA to establish
cryptographically that it's communicating with a real TPM and that the TPM possesses
the presented AIK. After the Microsoft Cloud CA service has established these facts, it
will issue an AIK certificate to the Windows device.
Many existing devices that will upgrade to Windows 10 won't have a TPM, or the TPM
won't contain an endorsement certificate. To accommodate those devices, Windows 10
or Windows 11 allows the issuance of AIK certificates without the presence of an
endorsement certificate. Such AIK certificates aren't issued by Microsoft Cloud CA. This
behavior isn't as trustworthy as an endorsement certificate that is burned into the device
during manufacturing, but it will provide compatibility for advanced scenarios like
Windows Hello for Business without TPM.
In the issued AIK certificate, a special OID is added to attest that endorsement certificate
was used during the attestation process. This information can be used by a relying party
to decide whether to reject devices that are attested using AIK certificates without an
endorsement certificate or accept them. Another scenario can be to not allow access to
high-value assets from devices that are attested by an AIK certificate that's not backed
by an endorsement certificate.
Azure AD registration
The goal of Azure AD-registered devices is to provide you with support for the bring
your own device (BYOD) scenario. In this scenario, a user can access your organization's
Azure AD-controlled resources using a personal device.
Related to Azure AD registration
Azure AD join
Hybrid Azure AD join
Join type
Certificate trust
The certificate trust model uses a securely issued certificate based on the user's
Windows Hello for Business identity to authenticate to on-premises Active Directory.
The certificate trust model is supported in hybrid and on-premises deployments and is
compatible with Windows Server 2008 R2 and later domain controllers.
Cloud deployment
The Windows Hello for Business cloud deployment is exclusively for organizations using
cloud-based identities and resources. Device management is accomplished using Intune
or a modern management alternative. Cloud deployments use Azure AD-joined or Azure
AD-registered devices.
Giving the simplicity offered by this model, cloud Kerberos trust is the recommended
model when compared to the key trust model. It is also the preferred deployment
model if you do not need to support certificate authentication scenarios.
Deployment type
Windows Hello for Business has three deployment models to accommodate the needs
of different organizations. The three deployment models include:
Cloud
Hybrid
On-premises
Endorsement key
The TPM has an embedded unique cryptographic key called the endorsement key. The
TPM endorsement key is a pair of asymmetric keys (RSA size 2048 bits).
The endorsement key public key is used for sending securely sensitive parameters, such
as when taking possession of the TPM that contains the defining hash of the owner
password. The EK private key is used when creating secondary keys like AIKs.
The other certificate is produced by the platform builder and is called the platform
certificate to indicate that a specific TPM is integrated with a certain device.
For certain devices that use firmware-based TPM produced by Intel or Qualcomm, the
endorsement certificate is created when the TPM is initialized during the OOBE of
Windows 10 and Windows 11.
Federated environment
Primarily for large enterprise organizations with more complex authentication
requirements, on-premises directory objects are synchronized with Azure AD and users
accounts are managed on-premises. With AD FS, users have the same password on-
premises and in the cloud and they don't have to sign in again to use Microsoft cloud
services. This federated authentication model can provide extra authentication
requirements, such as smart card-based authentication or a third-party multi-factor
authentication and is typically required when organizations have an authentication
requirement not natively supported by Azure AD.
If your environment has an on-premises AD footprint and you also want benefit from
the capabilities provided by Azure AD, you can implement hybrid Azure AD-joined
devices. These devices are joined to both your on-premises Active Directory and your
Azure AD.
Hybrid deployment
The Windows Hello for Business hybrid deployment is for organizations that have both
on-premises and cloud resources that are accessed using a managed or federated
identity that's synchronized with Azure AD. Hybrid deployments support devices that
are Azure AD-registered, Azure AD-joined, and hybrid Azure AD-joined. The Hybrid
deployment model supports three trust types for on-premises authentication: cloud
Kerberos trust, key trust and certificate trust.
Related to hybrid deployment
Azure AD join
Azure AD registration
Hybrid Azure AD join
Join type
Join type is how devices are associated with Azure AD. For a device to authenticate to
Azure AD it must be registered or joined.
When combined with a mobile device management (MDM) solution such as Microsoft
Intune, the device attributes in Azure AD are updated with additional information about
the device. This behavior allows you to create conditional access rules that enforce
access from devices to meet your standards for security and compliance. For more
information on enrolling devices in Microsoft Intune, see Enroll devices for management
in Intune.
Joining a device is an extension to registering a device. This method provides you with
all the benefits of registering a device, and changes the local state of a device. Changing
the local state enables your users to sign-in to a device using an organizational work or
school account instead of a personal account.
Managed environment
Managed environments are for non-federated environments where Azure AD manages
the authentication using technologies such as Password Hash Synchronization and Pass-
through Authentication rather than a federation service such as Active Directory
Federation Services (ADFS).
On-premises deployment
The Windows Hello for Business on-premises deployment is for organizations that
exclusively have on-premises resources that are accessed using Active Directory
identities. On-premises deployments support domain joined devices. The on-premises
deployment model supports two authentication trust types, key trust and certificate
trust.
Pass-through authentication
Pass-through authentication provides a simple password validation for Azure AD
authentication services. It uses a software agent that runs on one or more on-premises
servers to validate the users directly with your on-premises Active Directory. With pass-
through authentication (PTA), you synchronize on-premises Active Directory user
account objects with Azure AD and manage your users on-premises. Allows your users
to sign in to both on-premises and Microsoft cloud resources and applications using
their on-premises account and password. This configuration validates users' passwords
directly against your on-premises Active Directory without sending password hashes to
Azure AD. Companies with a security requirement to immediately enforce on-premises
user account states, password policies, and sign-in hours would use this authentication
method. With seamless single sign-on, users are automatically signed in to Azure AD
when they are on their corporate devices and connected to your corporate network.
The PRT is initially obtained during Windows user sign-in or unlock in a similar way the
Kerberos TGT is obtained. This behavior is true for both Azure AD joined and hybrid
Azure AD-joined devices. For personal devices registered with Azure AD, the PRT is
initially obtained upon Add Work or School Account. For a personal device the account
to unlock the device isn't the work account, but a consumer account. For example,
hotmail.com, live.com, or outlook.com.
The PRT is needed for SSO. Without it, the user will be prompted for credentials when
accessing applications every time. The PRT also contains information about the device. If
you have any device-based conditional access policy set on an application, without the
PRT, access will be denied.
Trust type
The trust type determines how a user authenticates to the Active Directory to access on-
premises resources. There are two trust types, key trust and certificate trust. The hybrid
and on-premises deployment models support both trust types. The trust type doesn't
affect authentication to Azure AD. Windows Hello for Business authentication to Azure
AD always uses the key, not a certificate (excluding smart card authentication in a
federated environment).
A TPM implements controls that meet the specification described by the Trusted
Computing Group (TCG). There are currently two versions of the TPM specification
produced by TCG that aren't compatible with each other:
The first TPM specification, version 1.2, was published in February 2005 by the TCG
and standardized under ISO / IEC 11889 standard.
The latest TPM specification, referred to as TPM 2.0, was released in April 2014 and
has been approved by the ISO/IEC Joint Technical Committee (JTC) as ISO/IEC
11889:2015.
Windows 10 and Windows 11 use the TPM for cryptographic calculations as part of
health attestation and to protect the keys for BitLocker, Windows Hello, virtual smart
cards, and other public key certificates. For more information, see TPM requirements in
Windows.
Windows recognizes versions 1.2 and 2.0 TPM specifications produced by the TCG. For
the most recent and modern security features, Windows 10 and Windows 11 support
only TPM 2.0.
TPM 2.0 provides a major revision to the capabilities over TPM 1.2:
In a simplified manner, the TPM is a passive component with limited resources. It can
calculate random numbers, RSA keys, decrypt short data, store hashes taken when
booting the device. A TPM incorporates in a single component:
Windows Hello for Business replaces password sign-in with strong authentication, using
an asymmetric key pair. This Frequently Asked Questions (FAQ) article is intended to
help you learn more about Windows Hello for Business.
Concepts
What's the difference between Windows Hello
and Windows Hello for Business?
Windows Hello represents the biometric framework provided in Windows. Windows
Hello lets users use biometrics to sign in to their devices by securely storing their user
name and password and releasing it for authentication when the user successfully
identifies themselves using biometrics. Windows Hello for Business uses asymmetric
keys protected by the device's security module that requires a user gesture (PIN or
biometrics) to authenticate.
What's a container?
In the context of Windows Hello for Business, a container is a logical grouping of key
material or data. Windows Hello uses a single container that holds user key material for
personal accounts, including key material associated with the user's Microsoft account
or with other consumer identity providers, and credentials associated with a workplace
or school account. The container holds enterprise credentials only on devices that have
been registered with an organization; it contains key material for the enterprise IDP,
such as on-premises Active Directory or Azure AD.
7 Note
The container contains a set of keys, some of which are used to protect other keys. The
following image shows an example: the protector key is used to encrypt the
authentication key, and the authentication key is used to encrypt the individual keys
stored in the container. Each logical container holds one or more sets of keys.
Beginning with Windows 10, version 1709, Windows Hello for Business used as a smart
card (smart card emulation that is enabled by default) provides the same user
experience of default smart card PIN caching. Each process requesting a private key
operation will prompt the user for the PIN on first use. Subsequent private key
operations won't prompt the user for the PIN.
The smart card emulation feature of Windows Hello for Business verifies the PIN and
then discards the PIN in exchange for a ticket. The process doesn't receive the PIN, but
rather the ticket that grants them private key operations. Windows 10 doesn't provide
any Group Policy settings to adjust this caching.
Organizations that have the on-premises deployment of Windows Hello for Business, or
those not using Windows 10 version 1903 and later can use destructive PIN reset. With
destructive PIN reset, users that have forgotten their PIN can authenticate by using their
password and then performing a second factor of authentication to reprovision their
Windows Hello for Business credential. Reprovisioning deletes the old credential and
requests a new credential and certificate. On-premises deployments need network
connectivity to their domain controllers, Active Directory Federation Services, and their
issuing certificate authority to perform a destructive PIN reset. For hybrid Azure Active
Directory joined devices, destructive PIN reset is only supported with the certificate trust
model and the latest updates to Active Directory Federation Services.
device.
This check prevents repeating numbers, sequential numbers, and simple patterns. It
always results in a list of 100 disallowed PINs (independent of the PIN length). This
algorithm doesn't apply to alphanumeric PINs.
Data about whether people sign in with their face, iris, fingerprint, or PIN
The number of times they use it
Whether it works or not All this is valuable information that helps Microsoft
building a better product. The data is pseudonymized, does not include biometric
information, and is encrypted before it is transmitted to Microsoft. You can choose
to stop sending diagnostic data to Microsoft at any time. Learn more about
diagnostic data in Windows .
Can I disable the PIN while using Windows Hello
for Business?
No. The movement away from passwords is accomplished by gradually reducing the use
of the password. In situations where you can't authenticate by using biometrics, you
need a fallback mechanism that isn't a password. The PIN is the fallback mechanism.
Disabling or hiding the PIN credential provider will disable the use of biometrics.
If the user attempts to unlock the device by entering random PINs, after three
unsuccessful attempts the credential provider will display the following message: You've
entered an incorrect PIN several times. To try again, enter A1B2C3 below. Upon
entering the challenge phrase A1B2C3, the user will be granted one more opportunity
to enter the PIN. If unsuccessful, the provider will be disabled, leaving the user with the
only option to reboot the device. Following the reboot, the aforementioned pattern
repeats.
If unsuccessful attempts continue, the device will enter a lockout state, lasting for 1
minute after the first reboot, 2 minutes after the fourth reboot, and 10 minutes after the
fifth reboot. The duration of each lockout increases accordingly. This behavior is a result
of the TPM 2.0 anti-hammering feature. For more information about the TPM anti-
hammering feature, see TPM 2.0 anti-hammering.
Protocol Description
[MS-KPP]: Key Specifies the Key Provisioning Protocol, which defines a mechanism
Provisioning for a client to register a set of cryptographic keys on a user and
Protocol device pair.
[MS-OAPX]: OAuth Specifies the OAuth 2.0 Protocol Extensions, which are used to
2.0 Protocol extend the OAuth 2.0 Authorization Framework. These extensions
Extensions enable authorization features such as resource specification, request
identifiers, and log in hints.
[MS-OAPXBC]: Specifies the OAuth 2.0 Protocol Extensions for Broker Clients,
OAuth 2.0 Protocol extensions to RFC6749 (the OAuth 2.0 Authorization Framework)
Extensions for that allow a broker client to obtain access tokens on behalf of calling
Broker Clients clients.
If a user has signed into their Azure AD registered device with Windows Hello, their
Windows Hello for Business key will be used to authenticate the user's work identity
when they try to use Azure AD resources. The Windows Hello for Business key meets
Azure AD multifactor authentication (MFA) requirements and reduces the number of
MFA prompts users will see when accessing resources.
It's possible to Azure AD register a domain joined device. If the domain joined device
has a convenience PIN, sign in with the convenience PIN will no longer work. This
configuration isn't supported by Windows Hello for Business.
7 Note
The Windows Hello for Business key meets Azure AD multifactor authentication
(MFA) requirements and reduces the number of MFA prompts users will see when
accessing resources. For more information, see What is a Primary Refresh Token.
The key trust model authenticates to Active Directory by using a raw key. Key trust
doesn't require an enterprise-issued certificate, therefore you don't need to issue
certificates to users (domain controller certificates are still needed)
The certificate trust model authenticates to Active Directory by using a certificate.
Therefore, you need to issue certificates to users. The certificate used in certificate
trust uses the TPM-protected private key to request a certificate from your
enterprise's issuing CA
If your environment uses Microsoft Intune, see Network endpoints for Microsoft Intune.
Features
Can I use an external Windows Hello compatible
camera when my computer has a built-in
Windows Hello compatible camera?
Yes, you can use an external Windows Hello compatible camera if a device has an
internal Windows Hello camera. When both cameras are present, the external camera is
used for face authentication. For more information, see IT tools to support Windows 10,
version 21H1 . If ESS is enabled, see Windows Hello Enhanced Sign-in Security.
a user signs-in for the first time or unlocks with Windows Hello for Business after
provisioning
attempting to access on-premises resources secured by Active Directory
Key trust
Why does authentication fail immediately after
provisioning hybrid key trust?
In a hybrid deployment, a user's public key must sync from Azure AD to AD before it can
be used to authenticate against a domain controller. This sync is handled by Azure AD
Connect and will occur during a normal sync cycle.
For enterprises that use passwords today and have a shared PC environment, security
keys provide a seamless way for workers to authenticate without entering a username or
password. Security keys provide improved productivity for workers, and have better
security.
Requirements
Microsoft Entra multifactor authentication
Enable Combined security information registration
Compatible FIDO2 security keys
WebAuthN requires Windows 10 version 1903 or higher
To use security keys for logging in to web apps and services, you must have a browser
that supports the WebAuthN protocol. These include Microsoft Edge, Chrome, Firefox,
and Safari. For more information about, see Browser support of FIDO2 passwordless
authentication.
Prepare devices
For Microsoft Entra joined devices, the best experience is on Windows 10 version 1903
or higher.
Microsoft Entra hybrid joined devices must run Windows 10 version 2004 or higher.
Tip
Steps in this article may vary slightly based on the portal you start from.
3. Under the method FIDO2 Security Key, click All users, or click Add groups to
select specific groups. Only security groups are supported.
7 Note
If you see an error when you try to save, the cause might be due to the
number of users or groups being added. As a workaround, replace the users
and groups you are trying to add with a single group, in the same operation,
and then click Save again.
Enforce key restrictions should be set to Yes only if your organization wants to
only allow or disallow certain FIDO security keys, which are identified by their
AAGuids. You can work with your security key provider to determine the AAGuids
of their devices. If the key is already registered, AAGUID can also be found by
viewing the authentication method details of the key per user.
Disable a key
To remove a FIDO2 key associated with a user account, delete the key from the user’s
authentication method.
1. Sign in to the Microsoft Entra admin center and search for the user account from
which the FIDO key is to be removed.
2. Select Authentication methods > right-click FIDO2 security key and click Delete.
Security key Authenticator Attestation GUID
(AAGUID)
The FIDO2 specification requires each security key provider to provide an Authenticator
Attestation GUID (AAGUID) during attestation. An AAGUID is a 128-bit identifier
indicating the key type, such as the make and model.
7 Note
The manufacturer must ensure that the AAGUID is identical across all substantially
identical keys made by that manufacturer, and different (with high probability) from
the AAGUIDs of all other types of keys. To ensure, the AAGUID for a given type of
security key should be randomly generated. For more information, see Web
Authentication: An API for accessing Public Key Credentials - Level 2 (w3.org) .
There are two ways to get your AAGUID. You can either ask your security key provider or
view the authentication method details of the key per user.
User registration and management of FIDO2
security keys
1. Browse to https://myprofile.microsoft.com .
2. Sign in if not already.
3. Click Security Info.
a. If the user already has at least one Microsoft Entra multifactor authentication
method registered, they can immediately register a FIDO2 security key.
b. If they don't have at least one Microsoft Entra multifactor authentication
method registered, they must add one.
c. An Administrator can issue a Temporary Access Pass to allow the user to register
a Passwordless authentication method.
4. Add a FIDO2 Security key by clicking Add method and choosing Security key.
5. Choose USB device or NFC device.
6. Have your key ready and choose Next.
7. A box will appear and ask the user to create/enter a PIN for your security key, then
perform the required gesture for the key, either biometric or touch.
8. The user will be returned to the combined registration experience and asked to
provide a meaningful name for the key to identify it easily. Click Next.
9. Click Done to complete the process.
Known issues
UPN changes
If a user's UPN changes, you can no longer modify FIDO2 security keys to account for
the change. The solution for a user with a FIDO2 security key is to sign in to
MySecurityInfo, delete the old key, and add a new one.
Next steps
FIDO2 security key Windows 10 sign in
With Windows passwordless experience, users who sign in with Windows Hello or a
FIDO2 security key:
Can't use the password credential provider on the Windows lock screen
Don't have the option Accounts > Change password in the Settings app
7 Note
Users can reset their password using CTRL + ALT + DEL > Manage your
account
Windows passwordless experience doesn't affect the initial sign-in experience and local
accounts. It only applies to subsequent sign-ins for Microsoft Entra ID accounts. It also
doesn't prevent a user from signing in with a password when using the Other user
option in the lock screen.
The password credential provider is hidden only for the last signed in user who signed in
Windows Hello or a FIDO2 security key. Windows passwordless experience isn't about
preventing users from using passwords, rather to guide and educate them to not use
passwords.
This article explains how to enable Windows passwordless experience and describes the
user experiences.
Tip
Windows Hello for Business users can achieve passwordless sign-in from the first
sign-in using the Web sign-in feature. For more information about Web sign-in, see
Web sign-in for Windows devices.
System requirements
Windows passwordless experience has the following requirements:
7 Note
Microsoft Entra hybrid joined devices and Active Directory domain joined devices
are currently out of scope.
For more information about Windows licensing, see Windows licensing overview.
Assign the policy to a group that contains as members the devices or users that you
want to configure.
Alternatively, you can configure devices using a custom policy with the Policy CSP.
Setting
- OMA-URI: ./Device/Vendor/MSFT/Policy/Config/Authentication/EnablePasswordlessExperience
- Data type: int
- Value: 1
User experiences
Passwordless experience turned off: users can sign in using a password, as indicated by
the presence of the password credential provider in the Windows lock screen.
Passwordless experience turned on: the password credential provider is missing for
the last user who signed in with strong credentials. A user can either sign in using a
strong credential or opt to use the Other user option to sign in with a password.
7 Note
RDP sign in defaults to the credential provider used during sign-in. However, a user
can select the option Use a different account to sign in with a password.
Passwordless experience turned on: UAC elevation doesn't allow the user to use the
password credential provider for the currently logged on user. The user can authenticate
using Windows Hello, a FIDO2 security key or a local user account, if available.
Recommendations
Here's a list of recommendations to consider before enabling Windows passwordless
experience:
If Windows Hello for Business is enabled, configure the PIN reset feature to allow
users to reset their PIN from the lock screen. The PIN reset experience is improved
starting in Windows 11, version 22H2 with KB5030310
Don't configure the security policy Interactive logon: Don't display last signed-in, as
it prevents Windows passwordless experience from working
Don't disable the password credential provider using the Exclude credential
providers policy. The key differences between the two policies are:
The Exclude credential providers policy disables passwords for all accounts,
including local accounts. Windows passwordless experience only applies to
Microsoft Entra ID accounts that sign in with Windows Hello or a FIDO2 security
key. It also excludes Other User from the policy, so users have a backup sign in
option
Exclude credential providers policy prevents the use of passwords for RDP and
Run as authentication scenarios
To facilitate helpdesk support operations, consider enabling the local administrator
account or create a separate one, randomizing its password using the Windows
Local Administrator Password Solution (LAPS)
Known issues
There's a known issue affecting the in-session authentication experience when using
FIDO2 security keys, where security keys aren't always an available option. The product
group is aware of this behavior and plans to improve this in the future.
Provide feedback
To provide feedback for Windows passwordless experience, open Feedback Hub and
use the category Security and Privacy > Passwordless experience.
Support for passkeys in Windows
Article • 09/27/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Passkeys provide a more secure and convenient method to logging into websites and
applications compared to passwords. Unlike passwords, which users must remember
and type, passkeys are stored as secrets on a device and can use a device's unlock
mechanism (such as biometrics or a PIN). Passkeys can be used without the need for
other sign-in challenges, making the authentication process faster, secure, and more
convenient.
You can use passkeys with any applications or websites that support them, to create and
sign in with Windows Hello. Once a passkey is created and stored with Windows Hello,
you can use your device's biometrics or PIN to sign in. Alternatively, you can use a
companion device (phone or tablet) to sign in.
7 Note
This article describes how to create and use passkeys on Windows devices.
The FIDO protocols rely on standard public/private key cryptography techniques to offer
more secure authentication. When a user registers with an online service, their client
device generates a new key pair. The private key is stored securely on the user's device,
while the public key is registered with the service. To authenticate, the client device must
prove that it possesses the private key by signing a challenge. The private keys can only
be used after they're unlocked by the user using the Windows Hello unlock factor
(biometrics or PIN).
FIDO protocols prioritize user privacy, as they're designed to prevent online services
from sharing information or tracking users across different services. Additionally, any
biometric information used in the authentication process remains on the user's device
and isn't transmitted across the network or to the service.
For more information about Windows licensing, see Windows licensing overview.
User experiences
Create a passkey
Follow these steps to create a passkey from a Windows device:
1. Open a website or app that supports passkeys
3. Choose where to save the passkey. By default, Windows offers to save the passkey
locally if you're using Windows Hello or Windows Hello for Business. If you select
the option Use another device, you can choose to save the passkey in one of the
following locations:
This Windows device: the passkey is saved locally on your Windows device, and
protected by Windows Hello (biometrics and PIN)
iPhone, iPad or Android device: the passkey is saved on a phone or tablet,
protected by the device's biometrics, if offered by the device. This option requires
you to scan a QR code with your phone or tablet, which must be in proximity of
the Windows device
Linked device: the passkey is saved on a phone or tablet, protected by the device's
biometrics, if offered by the device. This option requires the linked device to be in
proximity of the Windows device, and it's only supported for Android devices
Security key: the passkey is saved to a FIDO2 security key, protected by the key's
unlock mechanism (for example, biometrics or PIN)
4. Select Next
Pick one of the following options to learn how to save a passkey, based on where you
want to store it.
Windows device
5. Select a Windows Hello verification method and proceed with the verification,
then select OK
Use a passkey
Follow these steps to use a passkey:
3. If a passkey is stored locally and protected by Windows Hello, you're prompted to
use Windows Hello to sign in. If you select the option Use another device, you can
choose one of the following options:
This Windows device: use this option to use a passkey that is stored locally on
your Windows device, and protected by Windows Hello
iPhone, iPad or Android device: use this option if you want to sign in with a
passkey stored on a phone or tablet. This option requires you to scan a QR code
with your phone or tablet, which must be in proximity of the Windows device
Linked device: use this option if you want to sign in with a passkey stored on a
device that is in proximity of the Windows device. This option is only supported for
Android devices
Security key: use this option if you want to sign in with a passkey stored on a
FIDO2 security key
Pick one of the following options to learn how to use a passkey, based on where you
saved it.
Windows device
Manage passkeys
A list of saved passkeys is displayed and you can filter them by name
To delete a passkey, select ... > Delete passkey next to the passkey name
7 Note
Provide feedback
To provide feedback for passkeys, open Feedback Hub and use the category Security
and Privacy > Passkey.
Smart Card Technical Reference
Article • 02/27/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
The Smart Card Technical Reference describes the Windows smart card infrastructure for
physical smart cards and how smart card-related components work in Windows. This
document also contains information about tools that information technology (IT)
developers and administrators can use to troubleshoot, debug, and deploy smart card-
based strong authentication in the enterprise.
Audience
This document explains how the Windows smart card infrastructure works. To
understand this information, you should have basic knowledge of public key
infrastructure (PKI) and smart card concepts. This document is intended for:
Enterprise IT developers, managers, and staff who are planning to deploy or are
using smart cards in their organization.
Smart card vendors who write smart card minidrivers or credential providers.
Tamper-resistant storage for protecting private keys and other forms of personal
information.
Virtual smart cards were introduced in Windows Server 2012 and Windows 8 to
alleviate the need for a physical smart card, the smart card reader, and the associated
administration of that hardware.
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
This topic for IT professional provides links to resources about the implementation of
smart card technologies in the Windows operating system. It includes the following
resources about the architecture, certificate management, and services that are related
to smart card use:
Smart Card Architecture: Learn about enabling communications with smart cards
and smart card readers, which can be different according to the vendor that
supplies them.
Smart Card and Remote Desktop Services: Learn about using smart cards for
remote desktop connections.
Smart Cards for Windows Service: Learn about how the Smart Cards for Windows
service is implemented.
Smart Card Removal Policy Service: Learn about using Group Policy to control what
happens when a user removes a smart card.
For more information about Windows licensing, see Windows licensing overview.
Smart Card Architecture
Article • 12/09/2022 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic for the IT professional describes the system architecture that supports smart
cards in the Windows operating system, including credential provider architecture and
the smart card subsystem architecture.
Authentication is a process for verifying the identity of an object or person. When you
authenticate an object, such as a smart card, the goal is to verify that the object is
genuine. When you authenticate a person, the goal is to verify that you are not dealing
with an imposter.
For smart cards, Windows supports a provider architecture that meets the secure
authentication requirements and is extensible so that you can include custom credential
providers. This topic includes information about:
Component Description
Authentication packages Includes NTLM and the Kerberos protocol. Communicates with
server authentication packages to authenticate users.
Interactive sign-in in Windows begins when the user presses CTRL+ALT+DEL. The
CTRL+ALT+DEL key combination is called a secure attention sequence (SAS). To keep
other programs and processes from using it, Winlogon registers this sequence during
the boot process.
After receiving the SAS, the UI then generates the sign-in tile from the information
received from the registered credential providers. The following graphic shows the
architecture for credential providers in the Windows operating system.
Winlogon instructs the Logon UI to display credential provider tiles after it receives an
SAS event. The Logon UI queries each credential provider for the number of credentials
it wants to enumerate. Credential providers have the option of specifying one of these
tiles as the default. After all providers have enumerated their tiles, the Logon UI displays
them to the user. The user interacts with a tile to supply the proper credentials. The
Logon UI submits these credentials for authentication.
Combined with supporting hardware, credential providers can extend the Windows
operating system to enable users to sign in by using biometrics (for example,
fingerprint, retinal, or voice recognition), password, PIN, smart card certificate, or any
custom authentication package. Enterprises and IT professionals can develop and
deploy custom authentication mechanisms for all domain users, and they may explicitly
require users to use this custom sign-in mechanism.
Note Credential providers are not enforcement mechanisms. They are used to
gather and serialize credentials. The LSA and authentication packages enforce
security.
Credential providers can be designed to support single sign-in (SSO). In this process,
they authenticate users to a secure network access point (by using RADIUS and other
technologies) for signing in to the computer. Credential providers are also designed to
support application-specific credential gathering, and they can be used for
authentication to network resources, joining computers to a domain, or to provide
administrator consent for User Account Control (UAC).
Credential providers must be registered on a computer running Windows, and they are
responsible for:
Note The Credential Provider API does not render the UI. It describes what needs to
be rendered.
Only the password credential provider is available in safe mode.
The smart card credential provider is available in safe mode during networking.
Data caching: The data cache provides for a single process to minimize smart card
I/O operations.
PIN caching: The PIN cache helps the user from having to reenter a PIN each time
the smart card is unauthenticated.
Data caching
Each CSP implements the current smart card data cache separately. The Base CSP
implements a robust caching mechanism that allows a single process to minimize smart
card I/O operations.
3. If the item is not found in the cache, or if the item is cached but is not up-to-date,
the item is read from the smart card.
4. After any item has been read from the smart card, it is added to the cache. Any
existing out-of-date copy of that item is replaced.
Three types of objects or data are cached by the CSP: pins (for more information, see
PIN caching), certificates, and files. If any of the cached data changes, the corresponding
object is read from the smart card in successive operations. For example, if a file is
written to the smart card, the CSP cache becomes out-of-date for the files, and other
processes read the smart card at least once to refresh their CSP cache.
The global data cache is hosted in the Smart Cards for Windows service. Windows
includes two public smart card API calls, SCardWriteCache and SCardReadCache. These
API calls make global data caching functionality available to applications. Every smart
card that conforms to the smart card minidriver specification has a 16-byte card
identifier. This value is used to uniquely identify cached data that pertains to a given
smart card. The standard Windows GUID type is used. These APIs allow an application to
add data to and read data from the global cache.
PIN caching
The PIN cache protects the user from entering a PIN every time the smart card is
unauthenticated. After a smart card is authenticated, it will not differentiate among
host-side applications—any application can access private data on the smart card.
To mitigate this, the smart card enters an exclusive state when an application
authenticates to the smart card. However, this means that other applications cannot
communicate with the smart card and will be blocked. Therefore, such exclusive
connections are minimized. The issue is that a protocol (such as the Kerberos protocol)
requires multiple signing operations. Therefore, the protocol requires exclusive access to
the smart card over an extended period, or it requires multiple authentication
operations. This is where the PIN cache is used to minimize exclusive use of the smart
card without forcing the user to enter a PIN multiple times.
The following example illustrates how this works. In this scenario, there are two
applications: Outlook and Internet Explorer. The applications use smart cards for
different purposes.
1. The user starts Outlook and tries to send a signed e-mail. The private key is on the
smart card.
2. Outlook prompts the user for the smart card PIN. The user enters the correct PIN.
3. E-mail data is sent to the smart card for the signature operation. The Outlook
client formats the response and sends the e-mail.
4. The user opens Internet Explorer and tries to access a protected site that requires
Transport Layer Security (TLS) authentication for the client.
5. Internet Explorer prompts the user for the smart card PIN. The user enters the
correct PIN.
6. The TLS-related private key operation occurs on the smart card, and the user is
authenticated and signed in.
7. The user returns to Outlook to send another signed e-mail. This time, the user is
not prompted for a PIN because the PIN is cached from the previous operation.
Similarly, if the user uses Internet Explorer again for another operation, Internet
Explorer will not prompt the user for a PIN.
The Base CSP internally maintains a per-process cache of the PIN. The PIN is encrypted
and stored in memory. The functions that are used to secure the PIN are
RtlEncryptMemory, RtlDecryptMemory, and RtlSecureZeroMemory, which will empty
buffers that contained the PIN.
Smart card selection
The following sections in this topic describe how Windows leverages the smart card
architecture to select the correct smart card reader software, provider, and credentials
for a successful smart card sign-in:
Container operations
Context flags
Delete a container
In response to a CryptAcquireContext call in CryptoAPI, the Base CSP tries to match the
container that the caller specifies to a specific smart card and reader. The caller can
provide a container name with varying levels of specificity, as shown in the following
table, and sorted from most-specific to least-specific requests.
Similarly, in response to a NCryptOpenKey call in CNG, the smart card KSP tries to match
the container the same way, and it takes the same container format, as shown in the
following table.
Note Before opening a key by using the smart card KSP, a call to
NCryptOpenStorageProvider (MS_SMART_CARD_KEY_STORAGE_PROVIDER) must be
made.
Type Name Format
The Base CSP and smart card KSP cache smart card handle information about the calling
process and about the smart cards the process has accessed. When searching for a
smart card container, the Base CSP or smart card KSP first checks its cache for the
process. If the cached handle is invalid or no match is found, the SCardUIDlg API is
called to get the card handle.
Container operations
The following three container operations can be requested by using
CryptAcquireContext:
The heuristics that are used to associate a cryptographic handle with a particular smart
card and reader are based on the container operation requested and the level of
container specification used.
The following table shows the restrictions for the container creation operation.
Specification Restriction
No silent context Key container creation must always be able to show UI, such as the
PIN prompt.
No overwriting existing If the specified container already exists on the chosen smart card,
containers choose another smart card or cancel the operation.
Context flags
The following table shows the context flags used as restrictions for the container
creation operation.
Flag Description
Applications can call the Base CSP with CRYPT_DEFAULT_CONTAINER_OPTIONAL, set the
PIN in silent context, and then create a new container in silent context. This operation
occurs as follows:
Each call to SCardUI * may result in additional information read from a candidate smart
card. The Base CSP smart card selection callbacks cache this information.
1. Find the requested smart card reader. If it cannot be found, the process fails. (This
requires a cache search by reader name.)
2. If no smart card is in the reader, the user is prompted to insert a smart card. (This is
only in non-silent mode; if the call is made in silent mode, it will fail.)
3. For container specification level II only, the name of the default container on the
chosen smart card is determined.
4. To open an existing container or delete an existing container, find the specified
container. If the specified container cannot be found on this smart card, the user is
prompted to insert a smart card.
5. If the system attempts to create a new container, if the specified container already
exists on this smart card, the process fails.
Note This operation requires that you use the smart card with the Base CSP.
1. For each smart card that has been accessed by the Base CSP and the handle and
container information are cached, the Base CSP looks for a valid default container.
An operation is attempted on the cached SCARDHANDLE to verify its validity. If the
smart card handle is not valid, the Base CSP continues to search for a new smart
card.
2. If a matching smart card is not found in the Base CSP cache, the Base CSP calls to
the smart card subsystem. SCardUIDlgSelectCard() is used with an appropriate
callback filter to find a matching smart card with a valid default container.
Note This operation requires that you use the smart card with the Base CSP.
1. For each smart card that is already registered with the Base CSP, search for the
requested container. Attempt an operation on the cached SCARDHANDLE to verify
its validity. If the smart card handle is not valid, the smart card's serial number is
passed to the SCardUI * API to continue searching for this specific smart card
(rather than only a general match for the container name).
2. If a matching smart card is not found in the Base CSP cache, a call is made to the
smart card subsystem. SCardUIDlgSelectCard() is used with an appropriate callback
filter to find a matching smart card with the requested container. Or, if a smart
card serial number resulted from the search in Step 1, the callback filter attempts
to match the serial number, not the container name.
Note This operation requires that you use the smart card with the Base CSP.
If the PIN is not cached, no CRYPT_SILENT is allowed for the container creation because
the user must be prompted for a PIN, at a minimum.
For other operations, the caller may be able to acquire a "verify" context against the
default container (CRYPT_DEFAULT_CONTAINER_OPTIONAL) and then make a call with
CryptSetProvParam to cache the user PIN for subsequent operations.
1. For each smart card already known by the CSP, refresh the stored SCARDHANDLE
and make the following checks:
b. If the smart card is present, but it already has the named container, continue the
search.
c. If the smart card is available, but a call to CardQueryFreeSpace indicates that the
smart card has insufficient storage for an additional key container, continue the
search.
d. Otherwise, use the first available smart card that meets the above criteria for the
container creation.
2. If a matching smart card is not found in the CSP cache, make a call to the smart
card subsystem. The callback that is used to filter enumerated smart cards verifies
that a candidate smart card does not already have the named container, and that
CardQueryFreeSpace indicates the smart card has sufficient space for an additional
container. If no suitable smart card is found, the user is prompted to insert a smart
card.
Delete a container
1. If the specified container name is NULL, the default container is deleted. Deleting
the default container causes a new default container to be selected arbitrarily. For
this reason, this operation is not recommended.
2. For each smart card already known by the CSP, refresh the stored SCARDHANDLE
and make the following checks:
a. If the smart card does not have the named container, continue the search.
b. If the smart card has the named container, but the smart card handle is no
longer valid, store the serial number of the matching smart card and pass it to
SCardUI *.
3. If a matching smart card is not found in the CSP cache, make a call to the smart
card subsystem. The callback that is used to filter enumerated smart cards should
verify that a candidate smart card has the named container. If a serial number was
provided as a result of the previous cache search, the callback should filter
enumerated smart cards on serial number rather than on container matches. If the
context is non-silent and no suitable smart card is found, display UI that prompts
the user to insert a smart card.
Property Description
PP_SMARTCARD_GUID - Return smart card GUID (also known as a serial number), which
should be unique for each smart card
- Used by the certificate propagation service to track the source of a
root certificate
PP_UI_PROMPT - Used to set the search string for the SCardUIDlgSelectCard card
insertion dialog box
- Persistent for the entire process when it is set
- Write-only (used only by CryptSetProvParam)
If a smart card is registered by a CSP and a smart card minidriver, the one that was
installed most recently will be used to communicate with the smart card.
For more information about how to write a smart card minidriver, CSP, or KSP, see Smart
Card Minidrivers.
Certificate Requirements and
Enumeration
Article • 01/24/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic for the IT professional and smart card developers describes how certificates
are managed and used for smart card sign-in.
1. The smart card resource manager database searches for the smart card's
cryptographic service provider (CSP).
2. A qualified container name is constructed by using the smart card reader name,
and it is passed to the CSP. The format is \\.\<Reader name>\
4. The name of the container is retrieved by using the PP_CONTAINER parameter with
CryptGetProvParam.
5. Using the context acquired in Step 3, the CSP is queried for the
PP_USER_CERTSTORE parameter (added in Windows Vista). For more information,
see Smart Card Architecture. If the operation is successful, the name of a certificate
store is returned, and the program flow skips to Step 8.
6. If the operation in Step 5 fails, the default container context from Step 3 is queried
for the AT_KEYEXCHANGE key.
7. The certificate is then queried from the key context by using KP_CERTIFICATE. The
certificate is added to an in-memory certificate store.
8. For each certificate in the certificate store from Step 5 or Step 7, the following
checks are performed:
a. The certificate must be valid, based on the computer system clock (not expired
or valid with a future date).
b. The certificate must not be in the AT_SIGNATURE part of a container.
Any certificate that meets these requirements is displayed to the user with the
certificate's UPN (or e-mail address or subject, depending on the presence of the
certificate extensions).
Note These requirements are the same as those in Windows Server 2003, but
they are performed before the user enters the PIN. You can override many of
them by using Group Policy settings.
10. LogonUI.exe packages the information and sends it to Lsass.exe to process the
sign-in attempt.
11. If successful, LogonUI.exe closes. This causes the context acquired in Step 3 to be
released.
Each certificate must have a user principal name (UPN) and the smart card sign-in
object identifier (also known as OID) in the extended key usage (EKU) attribute
field. There is a Group Policy setting, Allow ECC certificates to be used for logon
and authentication, to make the EKU optional.
The following table lists the certificate support in older Windows operating system
versions.
Windows Server 2008 R2 Support for smart card sign-in with ECC-based certificates. ECC
and Windows 7 smart card sign-in is enabled through Group Policy.
Operating system Certificate support
ECDH_P256
ECDH
Curve P-256 from FIPS 186-2
ECDSA_P256
ECDSA
Curve P-256 from FIPS 186-2
ECDH_P384
ECDH
Curve P-384 from FIPS 186-2
ECDH_P521
ECDH
Curve P-521 from FIPS 186-2
ECDSA_P256
ECDH
Curve P-256 from FIPS 186-2
ECDSA_P384
ECDSA
Curve P-384 from FIPS 186-2
ECDSA_P521
ECDSA
Curve P-384 from FIPS 186-2
Windows Server 2008 and Valid certificates are enumerated and displayed from all smart cards
Windows Vista and presented to the user.
Keys are no longer restricted to the default container, and
certificates in different containers can be chosen.
Elliptic curve cryptography (ECC)-based certificates are not
supported for smart card sign-in
Client certificates that do not contain a UPN in the subjectAltName (SAN) field of the
certificate can be enabled for sign-in, which supports a wider variety of certificates and
supports multiple sign-in certificates on the same card.
Support for multiple certificates on the same card is enabled by default. New certificate
types must be enabled through Group Policy.
If you enable the Allow signature keys valid for Logon credential provider policy, any
certificates that are available on the smart card with a signature-only key are listed on
the sign-in screen. This allows users to select their sign-in experience. If the policy is
disabled or not configured, smart card signature-key-based certificates are not listed on
the sign-in screen.
The following diagram illustrates how smart card sign-in works in the supported
versions of Windows.
Following are the steps that are performed during a smart card sign-in:
2. Asynchronously, smart card resource manager starts, and the smart card credential
provider does the following:
a. Gets credential information (a list of known credentials, or if no credentials exist,
the smart card reader information that Windows detected).
b. Gets a list of smart card readers (by using the WinSCard API) and the list of
smart cards inserted in each of them.
Note Smartcard cache entries are created for certificates with a subject name
or with a subject key identifier. If the certificate has a subject name, it is stored
with an index that is based on the subject name and certificate issuer. If
another certificate with the same subject name and certificate issuer is used, it
will replace the existing cached entry. A change in this behavior after Windows
Vista, allows for the condition when the certificate does not have a subject
name, the cache is created with an index that is based on the subject key
identifier and certificate issuer. If another certificate has the same the subject
key identifier and certificate issuer, the cache entry is replaced. When
certificates have neither a subject name nor subject key identifier, a cached
entry is not created.
3. The sign-in UI requests the new credentials from the smart card credential
provider. As a response, the smart card credential provider provides each sign-in
certificate to the sign-in UI, and corresponding sign-in tiles are displayed. The user
selects a smart card-based sign-in certificate tile, and Windows displays a PIN
dialog box.
4. The user enters the PIN, and then presses ENTER. The smart card credential
provider encrypts the PIN.
5. The credential provider that resides in the LogonUI system collects the PIN. As part
of packaging credentials in the smart card credential provider, the data is
packaged in a KERB_CERTIFICATE_LOGON structure. The main contents of the
KERB_CERTIFICATE_LOGON structure are the smart card PIN, CSP data (such as
reader name and container name), user name, and domain name. User name is
required if the sign-in domain is not in the same forest because it enables a
certificate to be mapped to multiple user accounts.
6. The credential provider wraps the data (such as the encrypted PIN, container name,
reader name, and card key specification) and sends it back to LogonUI.
7. Winlogon presents the data from LogonUI to the LSA with the user information in
LSALogonUser.
8. LSA calls the Kerberos authentication package (Kerberos SSP) to create a Kerberos
authentication service request (KRB_AS_REQ), which containing a preauthenticator
(as specified in RFC 4556: Public Key Cryptography for Initial Authentication in
Kerberos (PKINIT) ).
9. To sign the request digitally (as per RFC 4556), a call is made to the corresponding
CSP for a private key operation. Because the private key in this case is stored in a
smart card, the smart card subsystem is called, and the necessary operation is
completed. The result is sent back to the Kerberos security support provider (SSP).
10. The Kerberos SSP sends an authentication request for a ticket-granting-ticket (TGT)
(per RFC 4556) to the Key Distribution Center (KDC) service that runs on a domain
controller.
11. The KDC finds the user's account object in Active Directory Domain Services (AD
DS), as detailed in Client certificate requirements and mappings, and uses the
user's certificate to verify the signature.
12. The KDC validates the user's certificate (time, path, and revocation status) to
ensure that the certificate is from a trusted source. The KDC uses CryptoAPI to
build a certification path from the user's certificate to a root certification authority
(CA) certificate that resides in the root store on the domain controller. The KDC
then uses CryptoAPI to verify the digital signature on the signed authenticator that
was included in the preauthentication data fields. The domain controller verifies
the signature and uses the public key from the user's certificate to prove that the
request originated from the owner of the private key that corresponds to the
public key. The KDC also verifies that the issuer is trusted and appears in the
NTAUTH certificate store.
13. The KDC service retrieves user account information from AD DS. The KDC
constructs a TGT, which is based on the user account information that it retrieves
from AD DS. The TGT's authorization data fields include the user's security
identifier (SID), the SIDs for universal and global domain groups to which the user
belongs, and (in a multidomain environment) the SIDs for any universal groups of
which the user is a member.
14. The domain controller returns the TGT to the client as part of the KRB_AS_REP
response.
TGT is encrypted with the master key of the KDC, and the session key is encrypted
with a temporary key. This temporary key is derived based on RFC 4556. Using
CryptoAPI, the temporary key is decrypted. As part of the decryption process, if the
private key is on a smart card, a call is made to the smart card subsystem by using
the specified CSP to extract the certificate corresponding to the user's public key.
(Programmatic calls for the certificate include CryptAcquireContext,
CryptSetProvParam with the PIN, CryptgetUserKey, and CryptGetKeyParam.) After
the temporary key is obtained, the Kerberos SSP decrypts the session key.
15. The client validates the reply from the KDC (time, path, and revocation status). It
first verifies the KDC's signature by the construction of a certification path from the
KDC's certificate to a trusted root CA, and then it uses the KDC's public key to
verify the reply signature.
16. Now that a TGT has been obtained, the client obtains a service ticket, which is used
to sign in to the local computer.
17. With success, LSA stores the tickets and returns a success message to
LSALogonUser. After this success message is issued, user profile for the device is
selected and set, Group Policy refresh is instantiated, and other actions are
performed.
18. After the user profile is loaded, the Certification Propagation Service (CertPropSvc)
detects this event, reads the certificates from the smart card (including the root
certificates), and then populates them into the user's certificate store (MYSTORE).
19. CSP to smart card resource manager communication happens on the LRPC
Channel.
20. On successful authentication, certificates are propagated to the user's store
asynchronously by the Certificate Propagation Service (CertPropSvc).
21. When the card is removed, certificates in the temporary secure cache store are
removed. The Certificates are no longer available for sign-in, but they remain in the
user's certificate store.
Note A SID is created for each user or group at the time a user account or a group
account is created within the local security accounts database or within AD DS. The
SID never changes, even if the user or group account is renamed.
For more information about the Kerberos protocol, see Microsoft Kerberos.
By default, the KDC verifies that the client's certificate contains the smart card client
authentication EKU szOID_KP_SMARTCARD_LOGON. However, if enabled, the Allow
certificates with no extended key usage certificate attribute Group Policy setting
allows the KDC to not require the SC-LOGON EKU. SC-LOGON EKU is not required for
account mappings that are based on the public key.
KDC certificate
Active Directory Certificate Services provides three kinds of certificate templates:
Domain controller
Kerberos authentication
Certificate requirements
The smart card certificate has specific format requirements when it is used with
Windows XP and earlier operating systems. You can enable any certificate to be visible
for the smart card credential provider.
CRL distribution Not required The location must be specified, online, and available, for
point location example:
[1]CRL Distribution Point
Distribution Point Name:
Full Name:
URL=
<http://server1.contoso.com/CertEnroll/caname.crl>
Basic constraints Not required [Subject Type=End Entity, Path Length Constraint=None]
(Optional)
Subject alternative E-mail ID is not Other Name: Principal Name=(UPN), for example:
name required for UPN=user1@contoso.com
smart card sign- The UPN OtherName object identifier is
in. 1.3.6.1.4.1.311.20.2.3.
The UPN OtherName value must be an ASN1-encoded
UTF8 string.
Notes You can enable There are two predefined types of private keys. These
any certificate keys are Signature Only (AT_SIGNATURE) and Key
to be visible for Exchange (AT_KEYEXCHANGE). Smart card sign-in
the smart card certificates must have a Key Exchange
credential (AT_KEYEXCHANGE) private key type.
provider.
SSL/TLS can map certificates that do not have SAN, and the mapping is done by using
the AltSecID attributes on client accounts. The X509 AltSecID, which is used by SSL/TLS
client authentication is of the form "X509: <I>"<Issuer Name>"<S>"<Subject Name>.
The <Issuer Name> and <Subject Name> are taken from the client certificate, with '\r'
and '\n' replaced with ','.
When a user name is provided with the certificate, the user name is used to locate
the account object. This operation is the fastest, because string matching occurs.
When only the certificate object is provided, a series of operations are performed
to locate the user name to map the user name to an account object.
Mapping based on generic attributes is not possible because there is no generic API to
retrieve attributes from a certificate. Currently, the first method that locates an account
successfully stops the search. But a configuration error occurs if two methods map the
same certificate to different user accounts when the client does not supply the client
name through the mapping hints.
The following figure illustrates the process of mapping user accounts for sign-in in the
directory by viewing various entries in the certificate.
Note Because each account has a different user name, we recommend that you
enable the Allow user name hint Group Policy setting (X509HintsNeeded registry
key) to provide the optional fields that allow users to enter their user names and
domain information to sign in.
Based on the information that is available in the certificate, the sign-in conditions are:
a. Sign-in can occur in the local forest or in another forest if a single user with one
certificate needs to sign in to different accounts.
b. A hint must be supplied if mapping is not unique (for example, if multiple users
are mapped to the same certificate).
b. The certificate can be mapped to multiple users in different forests. For a user to
sign in to other forests, an X509 hint must be supplied to the user.
Several distinct certificates can be mapped to a single account. For this to work properly,
the certificate cannot have UPNs.
Note For the hint field to appear during smart card sign-in, the Allow user name
hint Group Policy setting (X509HintsNeeded registry key) must be enabled on the
client.
The KDCs in Windows attempt to get OCSP responses and use them when available.
This behavior cannot be disabled. CryptoAPI for OCSP caches OCSP responses and the
status of the responses. The KDC supports only OCSP responses for the signer
certificate.
Windows client computers attempt to request the OCSP responses and use them in the
reply when they are available. This behavior cannot be disabled.
The KDC root certificate on the smart card must have an HTTP CRL distribution
point listed in its certificate.
The smart card sign-in certificate must have the HTTP CRL distribution point listed
in its certificate.
The CRL distribution point must have a valid CRL published and a delta CRL, if
applicable, even if the CRL distribution point is empty.
A UPN where the domain name resolves to the actual domain. For example, if
the domain name is Engineering.Corp.Contoso, the UPN is
username@engineering.corp.contoso.com. If any part of the domain name is
omitted, the Kerberos client cannot find the appropriate domain.
Although the HTTP CRL distribution points are on by default in Windows Server 2008,
subsequent versions of the Windows Server operating system do not include HTTP CRL
distribution points. To allow smart card sign-in to a domain in these versions, do the
following:
5. Propagate the updated root certificate to the smart card that you want to use for
the domain sign-in.
The workaround is to enable the Allow user name hint Group Policy setting
(X509HintsNeeded registry key), which allows the user to supply a hint in the
credentials user interface for domain sign-in.
If the client computer is not joined to the domain or if it is joined to a different domain,
the client computer can resolve the server domain only by looking at the distinguished
name on the certificate, not the UPN. For this scenario to work, the certificate requires a
full subject, including DC=<DomainControllerName>, for domain name resolution.
To deploy root certificates on a smart card for the currently joined domain, you can use
the following command:
For more information about this option for the command-line tool, see -SCRoots.
See also
How Smart Card Sign-in Works in Windows
Smart Card and Remote Desktop
Services
Article • 03/31/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic for the IT professional describes the behavior of Remote Desktop Services
when you implement smart card sign-in.
Smart card redirection logic and WinSCard API are combined to support multiple
redirected sessions into a single process.
Smart card support is required to enable many Remote Desktop Services scenarios.
These include:
Using Fast User Switching or Remote Desktop Services. A user is not able to
establish a redirected smart card-based remote desktop connection. That is, the
connect attempt is not successful in Fast User Switching or from a Remote Desktop
Services session.
Enabling Encrypting File System (EFS) to locate the user's smart card reader from
the Local Security Authority (LSA) process in Fast User Switching or in a Remote
Desktop Services session. If EFS is not able to locate the smart card reader or
certificate, EFS cannot decrypt user files.
2. Arrows represent the flow of the PIN after the user types the PIN at the command
prompt until it reaches the user's smart card in a smart card reader that is
connected to the Remote Desktop Connection (RDC) client computer.
6. The redirection decision is made on a per smart card context basis, based on the
session of the thread that performs the SCardEstablishContext call.
7. Changes to WinSCard.dll implementation were made in Windows Vista to improve
smart card redirection.
Common Criteria compliance requires specifically that the password or PIN never leave
the LSA unencrypted. A distributed scenario should allow the password or PIN to travel
between one trusted LSA and another, and it cannot be unencrypted during transit.
When smart card-enabled single sign-in (SSO) is used for Remote Desktop Services
sessions, users still need to sign in for every new Remote Desktop Services session.
However, the user is not prompted for a PIN more than once to establish a Remote
Desktop Services session. For example, after the user double-clicks a Microsoft Word
document icon that resides on a remote computer, the user is prompted to enter a PIN.
This PIN is sent by using a secure channel that the credential SSP has established. The
PIN is routed back to the RDC client over the secure channel and sent to Winlogon. The
user does not receive any additional prompts for the PIN, unless the PIN is incorrect or
there are smart card-related failures.
In addition, Group Policy settings that are specific to Remote Desktop Services need to
be enabled for smart card-based sign-in.
To enable smart card sign-in to a Remote Desktop Session Host (RD Session Host)
server, the Key Distribution Center (KDC) certificate must be present on the RDC client
computer. If the computer is not in the same domain or workgroup, the following
command can be used to deploy the certificate:
Example:
For information about this option for the command-line tool, see -dsPublish.
For information about this option for the command-line tool, see -SCRoots.
For Remote Desktop Services across domains, the KDC certificate of the RD Session Host
server must also be present in the client computer's NTAUTH store. To add the store, run
the following command at the command line:
For information about this option for the command-line tool, see -addstore.
7 Note
To sign in with a smart card from a computer that is not joined to a domain, the
smart card must contain the root certification of the domain controller. A public key
infrastructure (PKI) secure channel cannot be established without the root
certification of the domain controller.
Sign-in to Remote Desktop Services across a domain works only if the UPN in the
certificate uses the following form: <ClientName>@<DomainDNSName>
The UPN in the certificate must include a domain that can be resolved. Otherwise, the
Kerberos protocol cannot determine which domain to contact. You can resolve this issue
by enabling GPO X509 domain hints. For more information about this setting, see Smart
Card Group Policy and Registry Settings.
See also
How Smart Card Sign-in Works in Windows
Smart Cards for Windows Service
Article • 12/09/2022 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic for the IT professional and smart card developers describes how the Smart
Cards for Windows service (formerly called Smart Card Resource Manager) manages
readers and application interactions.
The Smart Cards for Windows service provides the basic infrastructure for all other smart
card components as it manages smart card readers and application interactions on the
computer. It is fully compliant with the specifications set by the PC/SC Workgroup. For
information about these specifications, see the PC/SC Workgroup Specifications
website .
The Smart Cards for Windows service runs in the context of a local service, and it is
implemented as a shared service of the services host (svchost) process. The Smart Cards
for Windows service, Scardsvr, has the following service description:
PowerShell
<serviceData
dependOnService="PlugPlay"
description="@%SystemRoot%\System32\SCardSvr.dll,-5"
displayName="@%SystemRoot%\System32\SCardSvr.dll,-1"
errorControl="normal"
group="SmartCardGroup"
imagePath="%SystemRoot%\system32\svchost.exe -k
LocalServiceAndNoImpersonation"
name="SCardSvr"
objectName="NT AUTHORITY\LocalService"
requiredPrivileges="SeCreateGlobalPrivilege,SeChangeNotifyPrivilege"
sidType="unrestricted"
start="demand"
type="win32ShareProcess"
>
<failureActions resetPeriod="900">
<actions>
<action
delay="120000"
type="restartService"
/>
<action
delay="300000"
type="restartService"
/>
<action
delay="0"
type="none"
/>
</actions>
</failureActions>
<securityDescriptor name="ServiceXSecurity"/>
</serviceData>
<registryKeys buildFilter="">
<registryKey
keyName="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr\Param
eters">
<registryValue
name="ServiceDll"
value="%SystemRoot%\System32\SCardSvr.dll"
valueType="REG_EXPAND_SZ"
/>
<registryValue
name="ServiceMain"
value="CalaisMain"
valueType="REG_SZ"
/>
<registryValue
name="ServiceDllUnloadOnStop"
value="1"
valueType="REG_DWORD"
/>
</registryKey>
</registryKeys>
Note For winscard.dll to be invoked as the proper class installer, the INF file for a
smart card reader must specify the following for Class and ClassGUID:
Class=SmartCardReader
ClassGuid={50DD5230-BA8A-11D1-BF5D-0000F805F530}
By default, the service is configured for manual mode. Creators of smart card reader
drivers must configure their INFs so that they start the service automatically and
winscard.dll files call a predefined entry point to start the service during installation. The
entry point is defined as part of the SmartCardReader class, and it is not called directly.
If a device advertises itself as part of this class, the entry point is automatically invoked
to start the service when the device is inserted. Using this method ensures that the
service is enabled when it is needed, but it is also disabled for users who do not use
smart cards.
3. It initializes its data cache and a global event that signals that the service has
started.
The Smart Cards for Windows service categorizes each smart card reader slot as a
unique reader, and each slot is also managed separately, regardless of the device's
physical characteristics. The Smart Cards for Windows service handles the following
high-level actions:
Device introduction
Reader initialization
See also
How Smart Card Sign-in Works in Windows
Certificate Propagation Service
Article • 12/09/2022 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic for the IT professional describes the certificate propagation service
(CertPropSvc), which is used in smart card implementation.
The certificate propagation service activates when a signed-in user inserts a smart card
in a reader that is attached to the computer. This action causes the certificate to be read
from the smart card. The certificates are then added to the user's Personal store.
Certificate propagation service actions are controlled by using Group Policy. For more
information, see Smart Card Group Policy and Registry Settings.
Note The certificate propagation service must be running for smart card Plug and
Play to work.
The following figure shows the flow of the certificate propagation service. The action
begins when a signed-in user inserts a smart card.
1. The arrow labeled 1 indicates that the Service Control Manager (SCM) notifies the
certificate propagation service (CertPropSvc) when a user signs in, and CertPropSvc
begins to monitor the smart cards in the user session.
2. The arrow labeled R represents the possibility of a remote session and the use of
smart card redirection.
4. The arrow labeled 3 indicates the access to the certificate store during the client
session.
3. CertPropSvc reads all certificates from all inserted smart cards. The certificates are
written to the user's personal certificate store.
The service does not propagate any computer certificates to a user's Personal store
or propagate user certificates to a computer store.
The service propagates certificates according to Group Policy options that are set,
which may include:
Turn on certificate propagation from the smart card specifies whether a user's
certificate should be propagated.
Turn on root certificate propagation from smart card specifies whether root
certificates should be propagated.
Configure root certificate cleanup specifies how root certificates are removed.
In both cases, the computer is not joined to a domain, and therefore, trust is not being
managed by Group Policy. However, the objective is to authenticate to a remote server,
such as the domain controller. Root certificate propagation provides the ability to use
the smart card to include the missing trust chain.
When the smart card is inserted, the certificate propagation service propagates any root
certificates on the card to the trusted smart card root computer certificate stores. This
process establishes a trust relationship with the enterprise resources. You may also use a
subsequent cleanup action when the user's smart card is removed from the reader, or
when the user signs out. This is configurable with Group Policy. For more information,
see Smart Card Group Policy and Registry Settings.
For more information about root certificate requirements, see Smart card root certificate
requirements for use with domain sign-in.
See also
How Smart Card Sign-in Works in Windows
Smart Card Removal Policy Service
Article • 12/09/2022 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic for the IT professional describes the role of the removal policy service
(ScPolicySvc) in smart card implementation.
The smart card removal policy service is applicable when a user has signed in with a
smart card and then removes that smart card from the reader. The action that is
performed when the smart card is removed is controlled by Group Policy settings. For
more information, see Smart Card Group Policy and Registry Settings.
1. Winlogon is not directly involved in monitoring for smart card removal events. The
sequence of steps that are involved when a smart card is removed begins with the
smart card credential provider in the sign-in UI process. When a user successfully
signs in with a smart card, the smart card credential provider captures the reader
name. This information is then stored in the registry with the session identifier
where the sign-in was initiated.
2. The smart card resource manager service notifies the smart card removal policy
service that a sign-in has occurred.
3. ScPolicySvc retrieves the smart card information that the smart card credential
provider stored in the registry. This call is redirected if the user is in a remote
session. If the smart card is removed, ScPolicySvc is notified.
4. ScPolicySvc calls Remote Desktop Services to take the appropriate action if the
request is to sign out the user or to disconnect the user's session, which might
result in data loss. If the setting is configured to lock the computer when the smart
card is removed, ScPolicySvc sends a message to Winlogon to lock the computer.
See also
How Smart Card Sign-in Works in Windows
Smart Card Tools and Settings
Article • 12/09/2022 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic for the IT professional and smart card developer links to information about
smart card debugging, settings, and events.
This section of the Smart Card Technical Reference contains information about the
following:
Smart Cards Debugging Information: Learn about tools and services in supported
versions of Windows to help identify certificate issues.
Smart Card Group Policy and Registry Settings: Learn about smart card-related
Group Policy settings and registry keys that can be set on a per-computer basis,
including how to edit and apply Group Policy settings to local or domain
computers.
Smart Card Events: Learn about events that can be used to manage smart cards in
an organization, including how to monitor installation, use, and errors.
See also
Smart Card Technical Reference
Smart Card Troubleshooting
Article • 02/17/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article explains tools and services that smart card developers can use to help
identify certificate issues with the smart card deployment.
Debugging and tracing smart card issues requires a variety of tools and approaches. The
following sections provide guidance about tools and approaches you can use.
Certutil
Kerberos protocol, Key Distribution Center (KDC), and NTLM debugging and
tracing
Certutil
For a complete description of Certutil including examples that show how to use it, see
Certutil [W2012].
7 Note
Entering a PIN is not required for this operation. You can press ESC if you are
prompted for a PIN.
To delete a container, type certutil -delkey -csp "Microsoft Base Smart Card Crypto
Provider" "<ContainerValue>".
Examples
To stop a trace:
Windows Driver Kit (WDK) and Debugging Tools for Windows (WinDbg). You can
use the trace log tool in this SDK to debug Kerberos authentication failures.
To begin tracing, you can use Tracelog . Different components use different control
GUIDs as explained in these examples. For more information, see Tracelog.
NTLM
To enable tracing for NTLM authentication, run the following command on the
command line:
Kerberos authentication
To enable tracing for Kerberos authentication, run this command:
KDC
To enable tracing for the KDC, run the following command on the command line:
To stop tracing for the KDC, run the following command on the command line:
7 Note
NTLM HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
Value name: NtLmInfoLevel
Value type: DWORD
Value data: c0015003
Kerberos HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos
Value name: LogToFile
Value type: DWORD
Value data: 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Value name: KerbDebugLevel
Value type: DWORD
Value data: c0000043
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Value name: LogToFile
Value type: DWORD
Value data: 00000001
KDC HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc
Value name: KdcDebugLevel
Value type: DWORD
Value data: c0000803
If you used Tracelog , look for the following log file in your current directory:
kerb.etl/kdc.etl/ntlm.etl.
If you used the registry key settings shown in the previous table, look for the trace log
files in the following locations:
NTLM: %systemroot%\tracing\msv1_0
Kerberos: %systemroot%\tracing\kerberos
KDC: %systemroot%\tracing\kdcsvc
To decode event trace files, you can use Tracefmt (tracefmt.exe). Tracefmt is a
command-line tool that formats and displays trace messages from an event trace log
file (.etl) or a real-time trace session. Tracefmt can display the messages in the
Command Prompt window or save them in a text file. It is located in the \tools\tracing
subdirectory of the Windows Driver Kit (WDK). For more information, see Tracefmt.
Smart Card service
The smart card resource manager service runs in the context of a local service. It's
implemented as a shared service of the services host (svchost) process.
2. In the Windows Task Manager dialog box, select the Services tab.
3. Select the Name column to sort the list alphabetically, and then type s.
4. In the Name column, look for SCardSvr, and then look under the Status column to
see if the service is running or stopped.
2. If the User Account Control dialog box appears, confirm that the action it displays
is what you want, and then select Yes.
You can use the following command at the command prompt to check whether the
service is running: sc queryex scardsvr .
Console
SERVICE_NAME: scardsvr
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 1320
FLAGS :
C:\>
1. Navigate to Computer.
4. In Device Manager, expand Smart card readers, select the name of the smart card
reader you want to check, and then select Properties.
7 Note
If the smart card reader is not listed in Device Manager, in the Action menu, select
Scan for hardware changes.
CryptoAPI 2.0 Diagnostics logs events in the Windows event log. The logs contain
detailed information about certificate chain validation, certificate store operations, and
signature verification. This information makes it easier to identify the causes of issues
and reduces the time required for diagnosis.
See also
Smart Card Technical Reference
Smart Card Group Policy and Registry Settings
Article • 01/24/2023 •
Applies to: ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅ Windows Server 2016
This article for IT professionals and smart card developers describes the Group Policy settings, registry key settings, local
security policy settings, and credential delegation policy settings that are available for configuring smart cards.
The following sections and tables list the smart card-related Group Policy settings and registry keys that can be set on a
per-computer basis. If you use domain Group Policy Objects (GPOs), you can edit and apply Group Policy settings to local
or domain computers.
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\ScPnP\EnableScPnP
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\SmartCardCredentialProvider
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CertProp
7 Note
The following table lists the default values for these GPO settings. Variations are documented under the policy
descriptions in this article.
7 Note
extended key usage certificate attribute is also known as extended key usage.
In versions of Windows before Windows Vista, smart card certificates that are used to sign in require an EKU
extension with a smart card logon object identifier. This policy setting can be used to modify that restriction.
When this policy setting is turned on, certificates with the following attributes can also be used to sign in with a smart
card:
When this policy setting isn't turned on, only certificates that contain the smart card logon object identifier can be used to
sign in with a smart card.
Item Description
When this setting is turned on, ECC certificates on a smart card can be used to sign in to a domain.
When this setting isn't turned on, ECC certificates on a smart card can't be used to sign in to a domain.
Item Description
Notes and This policy setting only affects a user's ability to sign in to a domain. ECC certificates on a smart card that are used
resources for other applications, such as document signing, aren't affected by this policy setting.
If you use an ECDSA key to sign in, you must also have an associated ECDH key to permit sign in when you're not
connected to the network.
When this setting is turned on, the integrated unblock feature is available.
When this setting isn't turned on, the feature is not available.
Item Description
Notes and To use the integrated unblock feature, the smart card must support it. Check with the hardware manufacturer to
resources verify that the smart card supports this feature.
You can create a custom message that the user sees when the smart card is blocked by configuring the policy
setting Display string when smart card is blocked.
When this setting is turned on, any certificates that are available on the smart card with a signature-only key are listed on
the sign-in screen.
When this setting isn't turned on, certificates available on the smart card with a signature-only key aren't listed on the
sign-in screen.
Item Description
7 Note
Before Windows Vista, certificates were required to contain a valid time and to not expire. For a certificate to be used,
it must be accepted by the domain controller. This policy setting only controls which certificates are displayed on the
client computer.
When this setting is turned on, certificates are listed on the sign-in screen whether they have an invalid time, or their time
validity has expired.
When this policy setting isn't turned on, certificates that are expired or not yet valid aren't listed on the sign-in screen.
Item Description
When this policy setting is turned on, users see an optional field where they can enter their username or username and
domain.
When this policy setting isn't turned on, users don't see this optional field.
Item Description
When this policy setting is turned on, you can set the following cleanup options:
No cleanup. When the user signs out or removes the smart card, the root certificates used during their session
persist on the computer.
Clean up certificates on smart card removal. When the smart card is removed, the root certificates are removed.
Clean up certificates on log off. When the user signs out of Windows, the root certificates are removed.
When this policy setting isn't turned on, root certificates are automatically removed when the user signs out of Windows.
Item Description
When this policy setting is turned on, you can create and manage the displayed message that the user sees when a smart
card is blocked.
When this policy setting isn't turned on (and the integrated unblock feature is also enabled), the user sees the system's
default message when the smart card is blocked.
Item Description
Notes and
resources
Filter duplicate logon certificates
You can use this policy setting to configure which valid sign-in certificates are displayed.
7 Note
During the certificate renewal period, a user's smart card can have multiple valid sign-in certificates issued from the
same certificate template, which can cause confusion about which certificate to select. This behavior can occur when
a certificate is renewed and the old certificate has not expired yet.
If two certificates are issued from the same template with the same major version and they are for the same user (this
is determined by their UPN), they are determined to be the same.
When this policy setting is turned on, filtering occurs so that the user can select from only the most current valid
certificates.
If this policy setting isn't turned on, all the certificates are displayed to the user.
This policy setting is applied to the computer after the Allow time invalid certificates policy setting is applied.
Item Description
Notes and If there are two or more of the same certificates on a smart card and this policy setting is enabled, the certificate that
resources is used to sign in to computers running Windows 2000, Windows XP, or Windows Server 2003 will be displayed.
Otherwise, the certificate with the most distant expiration time will be displayed.
When this policy setting is turned on, Windows attempts to read all certificates from the smart card, regardless of the CSP
feature set.
When this policy isn't turned on, Windows attempts to read only the default certificate from smart cards that don't
support retrieval of all certificates in a single call. Certificates other than the default aren't available for sign-in.
Item Description
Important: Enabling this policy setting can adversely impact performance during the sign-in process in certain
situations.
Item Description
Notes and Contact the smart card vendor to determine if your smart card and associated CSP support the required behavior.
resources
When this policy setting is turned on, the user sees a confirmation message when a smart card device driver is installed.
When this setting isn't turned on, the user doesn't see a smart card device driver installation message.
Item Description
Notes and This policy setting applies only to smart card drivers that have passed the Windows Hardware Quality Labs
resources (WHQL) testing process.
7 Note
Credential Manager is controlled by the user on the local computer, and it stores credentials from supported
browsers and Windows applications. Credentials are saved in special encrypted folders on the computer under the
user's profile.
When this policy setting is turned on, Credential Manager doesn't return a plaintext PIN.
When this setting isn't turned on, Credential Manager can return plaintext PINs.
Item Description
Notes and If this policy setting is enabled, some smart cards might not work in computers running Windows. Consult the smart
resources card manufacturer to determine whether this policy setting should be enabled.
To help users distinguish one certificate from another, the user principal name (UPN) and the common name are
displayed by default. For example, when this setting is enabled, if the certificate subject is CN=User1, OU=Users,
DN=example, DN=com and the UPN is user1@example.com, "User1" is displayed with "user1@example.com." If the
UPN is not present, the entire subject name is displayed. This setting controls the appearance of that subject name,
and it might need to be adjusted for your organization.
When this policy setting is turned on, the subject name during sign-in appears reversed from the way that it's stored in
the certificate.
When this policy setting isn't turned on, the subject name appears the same as it's stored in the certificate.
Item Description
7 Note
The certificate propagation service applies when a signed-in user inserts a smart card in a reader that is attached to
the computer. This action causes the certificate to be read from the smart card. The certificates are then added to the
user's Personal store.
When this policy setting is turned on, certificate propagation occurs when the user inserts the smart card.
When this policy setting is turned off, certificate propagation doesn't occur, and the certificates aren't available to
applications, like Outlook.
Item Description
Notes and
resources
The certificate propagation service applies when a signed-in user inserts a smart card in a reader that is attached to
the computer. This action causes the certificate to be read from the smart card. The certificates are then added to the
user's Personal store.
When this policy setting is turned on, root certificate propagation occurs when the user inserts the smart card.
When this policy setting isn't turned on, root certificate propagation doesn't occur when the user inserts the smart card.
Item Description
Notes and
resources
7 Note
Your users can use smart cards from vendors who have published their drivers through Windows Update without
needing special middleware. These drivers will be downloaded in the same way as drivers for other devices in
Windows. If an appropriate driver isn't available from Windows Update, a PIV-compliant mini driver that's included
with any of the supported versions of Windows is used for these cards.
When this policy setting is turned on, the system attempts to install a smart card device driver the first time a smart card is
inserted in a smart card reader.
When this policy setting isn't turned on, a device driver isn't installed when a smart card is inserted in a smart card reader.
Item Description
Notes and This policy setting applies only to smart card drivers that have passed the Windows Hardware Quality Labs
resources (WHQL) testing process.
Registry keys for the base CSP and smart card KSP
AllowPrivateExchangeKeyImport A non-zero value allows RSA exchange (for example, encryption) private keys to be imported for use
in key archival scenarios.
Default value: 00000000
AllowPrivateSignatureKeyImport A non-zero value allows RSA signature private keys to be imported for use in key archival scenarios.
Default value: 00000000
RequireOnCardPrivateKeyGen This key sets the flag that requires on-card private key generation (default). If this value is set, a key
generated on a host can be imported into the smart card. This is used for smart cards that don't
support on-card key generation or where key escrow is required.
Default value: 00000000
TransactionTimeoutMilliseconds Default timeout values allow you to specify whether transactions that take an excessive amount of
time will fail.
Default value: 000005dc
The default timeout for holding transactions to the smart card is 1.5 seconds.
AllowPrivateECDHEKeyImport This value allows Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) private keys to be imported for use
in key archival scenarios.
Default value: 00000000
AllowPrivateECDSAKeyImport This value allows Elliptic Curve Digital Signature Algorithm (ECDSA) private keys to be imported for use
in key archival scenarios.
Default value: 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CCS\Services\Kdc\UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors Type =
DWORD
Value =
1
HKEY_LOCAL_MACHINE\SYSTEM\CCS\Control\LSA\Kerberos\Parameters\UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors Type =
DWORD
Registry Key Details
Value =
1
The following smart card-related Group Policy settings are in Computer Configuration\Windows Settings\Security
Settings\Local Policies\Security Options.
Interactive logon: Disabled This security policy setting requires users to sign in to a computer by using a smart
Require smart card card.
scforceoption Enabled Users can sign in to the computer only by using a smart card.
Disabled Users can sign in to the computer by using any method.
Interactive logon: This policy setting isn't This setting determines what happens when the smart card for a signed-in user is
Smart card removal defined, which means removed from the smart card reader. The options are:
behavior that the system treats No Action
it as No Action. Lock Workstation: The workstation is locked when the smart card is removed, so
scremoveoption users can leave the area, take their smart card with them, and still maintain a
protected session.
Force Logoff: The user is automatically signed out when the smart card is removed.
Disconnect if a Remote Desktop Services session: Removal of the smart card
disconnects the session without signing out the user. The user can reinsert the smart
card and resume the session later, or at another computer that's equipped with a
smart card reader, without having to sign in again. If the session is local, this policy
setting functions identically to the Lock Workstation option.
Note: In earlier versions of Windows Server, Remote Desktop Services was called
Terminal Services.
From the Local Security Policy Editor (secpol.msc), you can edit and apply system policies to manage credential delegation
for local or domain computers.
The following smart card-related Group Policy settings are in Computer Configuration\Administrative
Templates\System\Credentials Delegation.
7 Note
In the following table, fresh credentials are those that you are prompted for when running an application.
Enabled: You can specify the servers where the user's fresh credentials can
be delegated.
Not configured: After proper mutual authentication, delegation of fresh
credentials is permitted to Remote Desktop Services running on any
computer.
Disabled: Delegation of fresh credentials to any computer isn't permitted.
Note: This policy setting can be set to one or more service principal names
(SPNs). The SPN represents the target server where the user credentials
can be delegated. A single wildcard character is permitted when specifying
the SPN, for example:
Use *TERMSRV/** for Remote Desktop Session Host (RD Session Host)
running on any computer.
Use TERMSRV/host.humanresources.fabrikam.com for RD Session Host
running on the host.humanresources.fabrikam.com computer.
Use TERMSRV/*.humanresources.fabrikam.com for RD Session Host running
on all computers in .humanresources.fabrikam.com
Allow Delegating Fresh Credentials with Not This policy setting applies:
NTLM-only Server Authentication configured When server authentication was achieved by using NTLM.
To applications that use the CredSSP component (for example, Remote
AllowFreshCredentialsWhenNTLMOnly Desktop).
Enabled: You can specify the servers where the user's fresh credentials can
be delegated.
Not configured: After proper mutual authentication, delegation of fresh
credentials is permitted to RD Session Host running on any computer
(TERMSRV/*).
Disabled: Delegation of fresh credentials isn't permitted to any computer.
Note: This policy setting can be set to one or more SPNs. The SPN
represents the target server where the user credentials can be delegated. A
single wildcard character (*) is permitted when specifying the SPN.
See the Allow Delegating Fresh Credentials policy setting description for
examples.
Deny Delegating Fresh Credentials Not This policy setting applies to applications that use the CredSSP component
configured (for example, Remote Desktop).
DenyFreshCredentials
Enabled: You can specify the servers where the user's fresh credentials
can't be delegated.
Disabled or Not configured: A server is not specified.
Note: This policy setting can be set to one or more SPNs. The SPN
represents the target server where the user credentials can't be delegated.
A single wildcard character (*) is permitted when specifying the SPN.
For examples, see the "Allow delegating fresh credentials" policy setting.
If you're using Remote Desktop Services with smart card logon, you can't delegate default and saved credentials. The
registry keys in the following table, which are at
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Lsa\Credssp\PolicyDefaults, and the corresponding Group
Policy settings are ignored.
See also
Smart Card Technical Reference
Smart card events
Article • 06/02/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article describes the events related to smart card deployment and development.
Many events can be used to monitor smart card activities on a device, including
installation, use, and errors. The next sections describe the events and information that
you can use to manage smart cards in an organization.
The following three attributes are used to construct the smart card reader name:
Vendor name
Interface device type
Device unit
The smart card reader device name is constructed in the form <VendorName><Type>
<DeviceUnit> . For example Contoso Smart Card Reader 0 is constructed from the
following information:
7 Note
620 Smart Card Resource Manager This occurs if the Resource Manager attempts to
was unable to cancel IOCTL %3 cancel a command to the smart card reader when the
for reader '%2': %1. The reader smart card service is shutting down or after a smart
may no longer be responding. If card is removed from the smart card reader and the
this error persists, your smart command couldn't be canceled. This can leave the
card or reader may not be smart card reader in an unusable state until it's
functioning correctly. removed from the computer or the computer is
%n%nCommand Header: %4 restarted.
619 Smart Card Reader '%2' hasn't This occurs when a reader hasn't responded to an
responded to IOCTL %3 in %1 IOCTL after an unusually long period of time.
seconds. If this error persists, Currently, this error is sent after a reader doesn't
your smart card or reader may respond for 150 seconds. This can leave the smart
not be functioning correctly. card reader in an unusable state until it's removed
%n%nCommand Header: %4 from the computer or the computer is restarted.
202 Failed to initialize Server An error occurred, and the service can't initialize properly.
Application Restarting the computer may resolve the issue.
203 Server Control has no Internal, unrecoverable error that indicates a failure in the
memory for reader smart card service. The most common cause is limited
reference object. computer resources. Restarting the computer may resolve
the issue.
Event Error Message Description
ID
204 Server Control failed to Internal, unrecoverable error that indicates a failure in the
create shutdown event: %1 smart card service. The most common cause is limited
computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
205 Reader object has duplicate There are two smart card readers that have the same name.
name: %1 Remove the smart card reader that is causing this error
message.
%1 = Name of the smart card reader that is duplicated
206 Failed to create global Internal, unrecoverable error that indicates a failure in the
reader change event. smart card service. The most common cause is limited
computer resources. Restarting the computer may resolve
the issue.
401 Reader shutdown A smart card reader couldn't eject a smart card while the
exception from eject smart smart card reader was shutting down.
card command
406 Reader object can't Identify A smart card reader didn't properly respond to a request
Device for information about the device, which is required for
constructing the smart card reader name. The smart card
reader won't be recognized by the service until it's
removed from the computer and reinserted or until the
computer is restarted.
502 Initialization of Service Internal, unrecoverable error that indicates a failure in the
Status Critical Section failed smart card service. The most common cause is limited
computer resources. Restarting the computer may resolve
the issue.
504 Resource Manager can't Internal, unrecoverable error that indicates a failure in the
create shutdown event flag: smart card service. The most common cause is limited
%1 computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
506 Smart Card Resource Internal, unrecoverable error that indicates a failure in the
Manager failed to register smart card service. The most common cause is limited
service: %1 computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
Event Error Message Description
ID
506 Smart Card Resource An attempt to add a Plug and Play reader failed. The device
Manager received may already be in use or may be defective. To resolve this
unexpected exception from error message, try to add the device again or restart the
PnP event %1 computer.
%1 = The affected handle name
507 No memory available for There isn't enough system memory available. This prevents
Service Status Critical the service from managing the status. Restarting the
Section computer may resolve the issue.
508 Smart Card Resource An attempt to add a Plug and Play reader failed. The device
Manager received may already be in use or may be defective. To resolve this
unexpected exception from error message, try to add the device again or restart the
PnP event %1 computer.
%1 = The affected handle name
509 Smart Card Resource An attempt to add a Plug and Play reader failed. The device
Manager received may already be in use or may be defective. To resolve this
unexpected exception from error message, try to add the device again or restart the
PnP event %1 computer.
%1 = The affected handle name
510 Smart Card Resource An attempt to add a Plug and Play smart card reader failed.
Manager received NULL The device may already be in use or may be defective. To
handle from PnP event %1 resolve this error message, try to add the device again or
restart the computer.
%1 = The affected handle name
511 Smart Card Resource An attempt to add a Plug and Play reader failed. The device
Manager received may already be in use or may be defective. To resolve this
unexpected exception from error message, try to add the device again or restart the
PnP event %1 computer.
%1 = The affected handle name
512 Smart Card Resource An attempt to add a Plug and Play smart card reader failed.
Manager received NULL The device may already be in use or may be defective. To
handle from PnP event %1 resolve this error message, try to add the device again or
restart the computer.
%1 = The affected handle name
513 Smart Card Resource An attempt to add a Plug and Play reader failed. The device
Manager received may already be in use or may be defective. To resolve this
unexpected exception from error message, try to add the device again or restart the
PnP event %1 computer.
%1 = The affected handle name
Event Error Message Description
ID
514 Smart Card Resource Internal, unrecoverable error that indicates a failure in the
Manager failed to add smart card service. The most common cause is limited
reader %2: %1 computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
%2 = Smart card reader name
515 Smart Card Resource Internal, unrecoverable error that indicates a failure in the
Manager failed to declare smart card service. The smart card service may not operate
state: %1 properly. Restarting the service or computer may resolve
this issue.
%1 = Windows error code
516 Smart Card Resource Internal, unrecoverable error that indicates a failure in the
Manager Failed to declare smart card service. The smart card service may not be able
shutdown: %1 to stop. Restarting the computer may resolve this issue.
%1 = Windows error code
517 Smart Card Resource Internal, unrecoverable error that indicates a failure in the
Manager received smart card service. The most common cause is limited
unexpected exception computer resources. Restarting the computer may resolve
attempting to add reader the issue.
%1 %1 = Smart card reader name
521 Smart Card Resource An attempt to add a Plug and Play smart card reader failed.
Manager received NULL The device may already be in use or may be defective. To
handle from PnP event %1 resolve this error message, try to add the device again or
restart the computer.
%1 = The affected handle name
523 Smart Card Resource An attempt to add a Plug and Play smart card reader failed.
Manager received NULL The device may already be in use or may be defective. To
handle from PnP event %1 resolve this error message, try to add the device again or
restart the computer.
%1 = The affected handle name
602 WDM Reader driver The service can't open a communication channel with the
initialization can't open smart card reader. You can't use the smart card reader until
reader device: %1 the issue is resolved.
%1 = Windows error code
603 WDM Reader driver There isn't enough system memory available. This prevents
initialization has no the service from managing the smart card reader that was
memory available to added. Restarting the computer may resolve the issue.
control device %1 %1 = Name of affected reader
Event Error Message Description
ID
604 Server control can't set Internal, unrecoverable error that indicates a failure in the
reader removal event: %1 smart card service. The most common cause is limited
computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
605 Reader object failed to Internal, unrecoverable error that indicates a failure in the
create overlapped event: smart card service. The most common cause is limited
%1 computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
606 Reader object failed to Internal, unrecoverable error that indicates a failure in the
create removal event: %1 smart card service. The most common cause is limited
computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
607 Reader object failed to start Internal, unrecoverable error that indicates a failure in the
monitor thread: %1 smart card service. The most common cause is limited
computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
608 Reader monitor failed to Internal, unrecoverable error that indicates a failure in the
create power down timer: smart card service. The most common cause is limited
%1 computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
609 Reader monitor failed to Internal, unrecoverable error that indicates a failure in the
create overlapped event: smart card service. The most common cause is limited
%1 computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
Event Error Message Description
ID
610 Smart Card Reader '%2' The reader can't successfully transmit the indicated IOCTL
rejected IOCTL %3: %1 If to the smart card. This can indicate hardware failure, but
this error persists, your this error can also occur if a smart card or smart card
smart card or reader may reader is removed from the system while an operation is in
not be functioning progress.
correctly.%n%nCommand %1 = Windows error code
Header: %4 %2 = Name of the smart card reader
%3 = IOCTL that was sent
%4 = First 4 bytes of the command sent to the smart card
These events are caused by legacy functionality in the
smart card stack. It can be ignored if there's no noticeable
failure in the smart card usage scenarios. You might also
see this error if your eSIM is recognized as a smartcard
controller.
611 Smart Card Reader Internal, unrecoverable error that indicates a failure in the
initialization failed smart card service. The most common cause is limited
computer resources. Restarting the computer may resolve
this issue.
612 Reader insertion monitor This occurs when a smart card reader fails several times to
error retry threshold respond properly to the IOCTL, which indicates whether a
reached: %1 smart card is present in the reader. The smart card reader is
marked as defective, and it isn't recognized by the service
until it's removed from the computer and reinserted or
until the computer is restarted.
%1 = Windows error code
615 Reader removal monitor This occurs when a smart card reader fails several times to
error retry threshold respond properly to the IOCTL, which indicates whether a
reached: %1 smart card is present in the reader. The smart card reader is
marked as defective, and it isn't recognized by the service
until it's removed from the computer and reinserted or
until the computer is restarted.
%1 = Windows error code
616 Reader monitor '%2' This occurs when a smart card reader fails several times to
received uncaught error respond properly to the IOCTL, which indicates whether a
code: %1 smart card is present in the reader. The smart card reader is
marked as defective, and it isn't recognized by the service
until it's removed from the computer and reinserted or
until the computer is restarted.
%1 = Windows error code
%2 = Reader name
Event Error Message Description
ID
617 Reader monitor '%1' An unknown error occurred while monitoring a smart card
exception -- exiting thread reader for smart card insertions and removals. The smart
card reader is marked as defective, and it isn't recognized
by the service until it's removed from the computer and
reinserted or until the computer is restarted.
%1 = Smart card reader name
618 Smart Card Resource Internal, unrecoverable error that indicates a failure in the
Manager encountered an smart card service. The most common cause is limited
unrecoverable internal computer resources. Restarting the computer may resolve
error. the issue.
621 Server Control failed to Internal, unrecoverable error that indicates a failure in the
access start event: %1 smart card service. The most common cause is limited
computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
These events are caused by legacy functionality in the
smart card stack. It can be ignored if there's no noticeable
failure in the smart card usage scenarios.
622 Server Control failed to Internal, unrecoverable error that indicates a failure in the
access stop event: %1 smart card service. The most common cause is limited
computer resources. Restarting the computer may resolve
the issue.
%1 = Windows error code
1000 Error Couldn't get device ID Smart card Plug and Play couldn't obtain the
for smart card in reader device ID for the smart card. This information is
%1. The return code is required to determine the correct driver. The
%2. smart card may be defective.
%1 = Smart card reader name
%2 = Windows error code
1001 Information Software successfully Smart card Plug and Play successfully installed a
installed for smart card minidriver for the inserted card.
in reader %1. The smart %1 = Smart card reader name
card name is %2. %2 = Name of new smart card device
See also
Smart Card Technical Reference
Virtual Smart Card Overview
Article • 02/27/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
Feature description
Virtual smart card technology offers comparable security benefits to physical smart
cards by using two-factor authentication. Virtual smart cards emulate the functionality of
physical smart cards, but they use the Trusted Platform Module (TPM) chip that is
available on devices. Virtual smart cards don't require the use of a separate physical
smart card and reader. You create virtual smart cards in the TPM, where the keys used
for authentication are stored in cryptographically-secured hardware.
By utilizing TPM devices that provide the same cryptographic capabilities as physical
smart cards, virtual smart cards accomplish the three key properties that are desired for
smart cards: non-exportability, isolated cryptography, and anti-hammering.
Practical applications
Virtual smart cards are functionally similar to physical smart cards, appearing in
Windows as smart cards that are always-inserted. Virtual smart cards can be used for
authentication to external resources, protection of data by encryption, and integrity
through signing. You can deploy virtual smart cards by using in-house methods or a
purchased solution, and they can be a replacement for other methods of strong
authentication in a corporate setting of any scale.
Authentication use cases
Two-factor authentication‒based remote access
After a user has a fully functional TPM virtual smart card, provisioned with a sign-in
certificate, the certificate is used to gain authenticated access to corporate resources.
When the proper certificate is provisioned to the virtual card, the user need only provide
the PIN for the virtual smart card, as if it was a physical smart card, to sign in to the
domain.
In practice, this is as easy as entering a password to access the system. Technically, it's
far more secure. Using the virtual smart card to access the system proves to the domain
that the user who is requesting authentication has possession of the personal computer
upon which the card has been provisioned and knows the virtual smart card PIN.
Because this request couldn't have possibly originated from a system other than the
system certified by the domain for this user's access, and the user couldn't have initiated
the request without knowing the PIN, a strong two-factor authentication is established.
Client authentication
Virtual smart cards can also be used for client authentication by using TLS/SSL or a
similar technology. Similar to domain access with a virtual smart card, an authentication
certificate can be provisioned for the virtual smart card, provided to a remote service, as
requested in the client authentication process. This adheres to the principles of two-
factor authentication because the certificate is only accessible from the computer that
hosts the virtual smart card, and the user is required to enter the PIN for initial access to
the card.
The concept of two-factor authentication associated with virtual smart cards relies on
the proximity of users to the devices that they use to access domain. When you connect
to a device that is hosting virtual smart cards, you can't use the virtual smart cards
located on the remote device during the remote session. However, you can access the
virtual smart cards on the connecting device (which is under your physical control),
which are loaded onto the remote device. You can use the virtual smart cards as if they
were installed by using the remote devices' TPM, extending your privileges to the
remote device, while maintaining the principles of two-factor authentication.
You can use BitLocker to encrypt portable drives, storing keys in virtual smart cards. In
this scenario, unlike using BitLocker with a physical smart card, the encrypted drive can
be used only when it's connected to device for the virtual smart card that is used to
encrypt the drive, because the BitLocker key is only accessible from the device. This
method can be useful to ensure the security of backup drives and personal storage uses
outside the main hard drive, too.
To verify authorship of data, a user can sign it by using a private key stored in the virtual
smart card. Digital signatures confirm the integrity and origin of the data.
Storing the key in an operating system that is accessible, malicious users could
access it and use it to modify already signed data or to spoof the key owner's
identity
Storing the key in a virtual smart card, means that you can only use it to sign data
on the host device. You can't export the key to other systems (intentionally or
unintentionally, such as with malware theft), making digital signatures more secure
than other methods for private key storage
Hardware requirements
To use the virtual smart card technology, TPM 1.2 is the minimum required for devices
running a supported operating system.
Understand and Evaluate Virtual Smart
Cards
Article • 02/27/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
This article describes the virtual smart card technology and how it can fit into your
authentication design.
Virtual smart card technology uses cryptographic keys that are stored on computers that
have the Trusted Platform Module (TPM) installed. Virtual smart cards offer comparable
security benefits to conventional smart cards by using two-factor authentication. The
technology also offers more convenience for users and has a lower cost to deploy. By
utilizing TPM devices that provide the same cryptographic capabilities as conventional
smart cards, virtual smart cards accomplish the three key properties that are desired for
smart cards: non-exportability, isolated cryptography, and anti-hammering.
Virtual smart cards are functionally similar to physical smart cards. They appear as
always-inserted smart cards, and they can be used for authentication to external
resources, protection of data by secure encryption, and integrity through reliable
signing. Because TPM-enabled hardware is readily available and virtual smart cards can
be easily deployed by using existing certificate enrollment methods, virtual smart cards
can become a full replacement for other methods of strong authentication in a
corporate setting of any scale.
Comparing virtual smart cards with physical smart cards: Compares properties,
functional aspects, security, and cost.
Authentication design options: Describes how passwords, smart cards, and virtual
smart cards can be used to reach authentication goals in your organization.
A virtual smart card appears to applications as a conventional smart card. Private keys in
the virtual smart card are protected, not by isolation of physical memory, but by the
cryptographic capabilities of the TPM. All sensitive information is encrypted by using the
TPM and then stored on the hard drive in its encrypted form.
All cryptographic operations occur in the secure, isolated environment of the TPM, and
the unencrypted private keys are never used outside this environment. So like physical
smart cards, virtual smart cards remain secure from any malware on the host.
Additionally, if the hard drive is compromised in some way, a malicious user won't be
able to access keys that are stored in the virtual smart card because they're securely
encrypted by using the TPM. Keys can also be protected by BitLocker Drive Encryption.
Virtual smart cards maintain the three key properties of physical smart cards:
Anti-hammering: If a user enters a PIN incorrectly, the virtual smart card responds
by using the anti-hammering logic of the TPM, which rejects further attempts for a
period of time instead of blocking the card. This is also known as lockout. For more
information, see Evaluate Virtual Smart Card Security.
The following subsections compare the functionality, security, and cost of virtual smart
cards and physical smart cards.
Functionality
The virtual smart card system that was designed by Microsoft closely mimics the
functionality of conventional smart cards. The most striking difference to the end user is
that the virtual smart card is essentially a smart card that is always inserted into the
computer. There's no method to export the user's virtual smart card for use on other
computers, which adds to the security of virtual smart cards. If a user requires access to
network resources on multiple computers, multiple virtual smart cards can be issued for
that user. Additionally, a computer that is shared among multiple users can host
multiple virtual smart cards for different users.
The basic user experience for a virtual smart card is as simple as using a password to
access a network. Because the smart card is loaded by default, the user must simply
enter the PIN that is tied to the card to gain access. Users are no longer required to
carry cards and readers or to take physical action to use the card.
Security
Physical smart cards and virtual smart cards offer comparable levels of security. They
both implement two-factor authentication for using network resources. However, they
differ in certain aspects, including physical security and the practicality of an attack. Due
to their compact and portable design, conventional smart cards are most frequently
kept close to their intended user. They offer little opportunity for acquisition by a
potential adversary, so any sort of interaction with the card is difficult without
committing some variety of theft.
TPM virtual smart cards, however, reside on a user's computer that may frequently be
left unattended, which provides an opportunity for a malicious user to hammer the TPM.
Although virtual smart cards are fully protected from hammering (as are physical smart
cards), this accessibility makes the logistics of an attack somewhat simpler. Additionally,
the anti-hammering behavior of a TPM smart card differs in that it only presents a time
delay in response to repeated PIN failures, as opposed to fully blocking the user.
However, there are several advantages provided by virtual smart cards to mitigate these
slight security deficits. Most importantly, a virtual smart card is much less likely to be
lost. Virtual smart cards are integrated into computers and devices that the user already
owns for other purposes and has incentive to keep safe. If the computer or device that
hosts the virtual smart card is lost or stolen, a user will more immediately notice its loss
than the loss of a physical smart card. When a computer or device is identified as lost,
the user can notify the administrator of the system, who can revoke the certificate that is
associated with the virtual smart card on that device. This precludes any future
unauthorized access on that computer or device if the PIN for the virtual smart card is
compromised.
Cost
If a company wants to deploy physical smart cards, they need to purchase smart cards
and smart card readers for all employees. Although relatively inexpensive options can be
found, options that ensure the three key properties of smart card security (most notably,
non-exportability) are more expensive. If employees have computers with a built-in
TPM, virtual smart cards can be deployed with no additional material costs. These
computers and devices are relatively common in the market.
The maintenance cost of virtual smart cards is less than that for physical smart cards,
which are easily lost, stolen, or broken from normal wear. TPM virtual smart cards are
only lost or broken if the host computer or device is lost or broken, which in most cases
is much less frequently.
Comparison summary
Protects private keys by using the built-in Protects private keys by using the
cryptographic functionality of the card. cryptographic functionality of the TPM.
Stores private keys in isolated non-volatile memory Stores encrypted private keys on the hard
on the card, which means that access to private drive. The encryption ensures that these
keys is only from the card, and access is never keys can only be decrypted and used in the
allowed to the operating system. TPM, not in the accessible memory of the
operating system.
Provides anti-hammering through the card. After a Provides anti-hammering through the TPM.
certain number of failed PIN entry attempts, the Successive failed attempts increase the
card blocks further access until administrative device lockout time (the time the user has
action is taken. to wait before trying again). This can be
reset by an administrator.
Requires that users carry their smart card and Allows users to access their TPM-enabled
smart card reader with them to access network computers or devices, and potentially
resources. access the network, without other
equipment.
Enables credential portability by inserting the Prevents exporting credentials from a given
smart card into smart card readers that are computer or device. However, virtual smart
attached to other computers. cards can be issued for the same user on
multiple computers or devices by using
additional certificates.
Enables multiple users to access network resources Enables multiple users to access network
through the same computer by inserting their resources through the same computer or
personal smart cards. device by issuing a virtual smart card for
each user on that computer or device.
Requires the user to carry the card, making it more Stores virtual smart card on the user's
difficult for an attacker to access the device and computer, which may be left unattended
launch a hammering attempt. and allow a greater risk window for
hammering attempts.
Provides a generally single-purpose device that is Installs the virtual smart card on a device
carried explicitly for the purpose of authentication. that has other purposes for the user, so the
The smart card can be easily misplaced or user has greater incentive to be responsible
forgotten. for the computer or device.
Alerts users that their card is lost or stolen only Installs the virtual smart card on a device
when they need to sign in and notice it's missing. that the user likely needs for other
purposes, so users will notice its loss much
more quickly. This reduces the associated
risk window.
Requires companies to invest in smart cards and Requires that companies ensure all
smart card readers for all employees. employees have TPM-enabled computers,
which are relatively common.
Enables using a smart card removal policy to affect Eliminates the necessity for a smart card
system behavior when the smart card is removed. removal policy because a TPM virtual smart
For example, the policy can dictate if the user's card is always present and can't be removed
sign-in session is locked or terminated when the from the computer.
user removes the card.
Authentication design options
The following section presents several commonly used options and their respective
strengths and weaknesses, which organizations can consider for authentication.
Passwords
A password is a secret string of characters that is tied to the identification credentials for
a user's account. This establishes the user's identity. Although passwords are the most
commonly used form of authentication, they're also the weakest. In a system where
passwords are used as the sole method of user authentication, only individuals who
know their passwords are considered valid users.
One-time passwords
A one-time password (OTP) is similar to a traditional password, but it's more secure in
that it can be used only once to authenticate a user. The method for determining each
new password varies by implementation. Assuming a secure deployment of each new
password, OTPs have several advantages over the classic password model of
authentication. Most importantly, if a given OTP token is intercepted in transmission
between the user and the system, the interceptor can't use it for any future transactions.
Similarly, if a malicious user obtains a valid user's OTP, the interceptor will have limited
access to the system (only one session).
Smart cards
Smart cards are physical authentication devices, which improve on the concept of a
password by requiring that users actually have their smart card device with them to
access the system, in addition to knowing the PIN that provides access to the smart
card. Smart cards have three key properties that help maintain their security:
Non-exportability: Information stored on the card, such as the user's private keys,
can't be extracted from one device and used in another medium
Isolated cryptography: Any cryptographic operations that are related to the card
(such as secure encryption and decryption of data) occur in a cryptographic
processor on the card, so malicious software on the host computer can't observe
the transactions
Anti-hammering: To prevent access to the card by a brute-force attack, a set
number of consecutive unsuccessful PIN entry attempts blocks the card until
administrative action is taken
Smart cards provide greatly enhanced security over passwords alone, because it's much
more difficult for a malicious user to gain and maintain access to a system. Most
importantly, access to a smart card system requires that users have a valid card and that
they know the PIN that provides access to that card. It's difficult for a thief to acquire the
card and the PIN.
Additional security is achieved by the singular nature of the card because only one copy
of the card exists, only one individual can use the sign-in credentials, and users will
quickly notice if the card has been lost or stolen. This greatly reduces the risk window of
credential theft when compared to using a password alone.
The additional security comes with added material and support costs. Traditional smart
cards are expensive to purchase (cards and card readers must be supplied to
employees), and users can misplace or lose them.
Virtual smart cards emulate the functionality of traditional smart cards. Instead of
requiring the purchase of additional hardware, virtual smart cards utilize technology that
users already own and are more likely to always have with them. Theoretically, any
device that can provide the three key properties of smart cards (non-exportability,
isolated cryptography, and anti-hammering) can be commissioned as a virtual smart
card. The virtual smart card platform is limited to the use of the Trusted Platform
Module (TPM) chip, which is on most modern devices.
Virtual smart cards that utilize a TPM provide the three main security principles of
traditional smart cards: non-exportability, isolated cryptography, and anti-hammering.
Virtual smart cards are less expensive to implement and more convenient for users.
Since many corporate computers already have a built-in TPM, there's no cost associated
with purchasing new hardware. The user's possession of a computer or device is
equivalent to the possession of a smart card, and a user's identity can't be assumed
from any other computer or device without administrative provisioning of further
credentials. Thus, two-factor authentication is achieved because the user must have a
computer that is set up with a virtual smart card and know the PIN to use the virtual
smart card.
Get Started with Virtual Smart Cards:
Walkthrough Guide
Article • 02/27/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
This topic for the IT professional describes how to set up a basic test environment for
using TPM virtual smart cards.
Virtual smart cards are a technology from Microsoft that offer comparable security
benefits in two-factor authentication to physical smart cards. They also offer more
convenience for users and lower cost for organizations to deploy. By utilizing Trusted
Platform Module (TPM) devices that provide the same cryptographic capabilities as
physical smart cards, virtual smart cards accomplish the three key properties that are
desired by smart cards: non-exportability, isolated cryptography, and anti-hammering.
This step-by-step walkthrough shows you how to set up a basic test environment for
using TPM virtual smart cards. After you complete this walkthrough, you will have a
functional virtual smart card installed on the Windows computer.
Time requirements
You should be able to complete this walkthrough in less than one hour, excluding
installing software and setting up the test domain.
Walkthrough steps
Prerequisites
Important This basic configuration is for test purposes only. It is not intended for
use in a production environment.
Prerequisites
You will need:
Access to a server in that domain with a fully installed and running certification
authority (CA).
3. In the available snap-ins list, click Certificate Templates, and then click Add.
4. Certificate Templates is now located under Console Root in the MMC. Double-click
it to view all the available certificate templates.
6. On the Compatibility tab, under Certification Authority, review the selection, and
change it if needed.
b. Click Requests must use one of the following providers, and then select
Microsoft Base Smart Card Crypto Provider.
10. On the Security tab, add the security group that you want to give Enroll access to.
For example, if you want to give access to all users, select the Authenticated users
group, and then select Enroll permissions for them.
11. Click OK to finalize your changes and create the new template. Your new template
should now appear in the list of Certificate Templates.
12. Select File, then click Add/Remove Snap-in to add the Certification Authority
snap-in to your MMC console. When asked which computer you want to manage,
select the computer on which the CA is located, probably Local Computer.
13. In the left pane of the MMC, expand Certification Authority (Local), and then
expand your CA within the Certification Authority list.
14. Right-click Certificate Templates, click New, and then click Certificate Template to
Issue.
15. From the list, select the new template that you just created (TPM Virtual Smart
Card Logon), and then click OK.
Note It can take some time for your template to replicate to all servers and
become available in this list.
16. After the template replicates, in the MMC, right-click in the Certification Authority
list, click All Tasks, and then click Stop Service. Then, right-click the name of the CA
again, click All Tasks, and then click Start Service.
Step 2: Create the TPM virtual smart card
In this step, you will create the virtual smart card on the client computer by using the
command-line tool, Tpmvscmgr.exe.
2. At the command prompt, type the following, and then press ENTER:
For more information about the Tpmvscmgr command-line tool, see Use Virtual
Smart Cards and Tpmvscmgr.
3. Wait several seconds for the process to finish. Upon completion, Tpmvscmgr.exe
will provide you with the device instance ID for the TPM Virtual Smart Card. Store
this ID for later reference because you will need it to manage or remove the virtual
smart card.
2. Right-click Personal, click All Tasks, and then click Request New Certificate.
3. Follow the prompts and when offered a list of templates, select the TPM Virtual
Smart Card Logon check box (or whatever you named the template in Step 1).
4. If prompted for a device, select the Microsoft virtual smart card that corresponds
to the one you created in the previous section. It displays as Identity Device
(Microsoft Profile).
5. Enter the PIN that was established when you created the TPM virtual smart card,
and then click OK.
The virtual smart card can now be used as an alternative credential to sign in to your
domain. To verify that your virtual smart card configuration and certificate enrollment
were successful, sign out of your current session, and then sign in. When you sign in,
you will see the icon for the new TPM virtual smart card on the Secure Desktop (sign in)
screen or you will be automatically directed to the TPM smart card sign-in dialog box.
Click the icon, enter your PIN (if necessary), and then click OK. You should be signed in
to your domain account.
See also
Understanding and Evaluating Virtual Smart Cards
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
Learn about the requirements for virtual smart cards, how to use and manage them.
Supported Any TPM that adheres to the TPM main specifications for version 1.2 or version
Trusted 2.0 (as set by the Trusted Computing Group) is supported for use as a virtual
Platform smart card. For more information, see the TPM Main Specification .
Module (TPM)
Supported Ten smart cards can be connected to a computer or device at one time. This
virtual smart includes physical and virtual smart cards combined.
cards per
computer Note
You can create more than one virtual smart card; however, after creating more
than four virtual smart cards, you may start to notice performance degradation.
Because all smart cards appear as if they're always inserted, if more than one
person shares a computer or device, each person can see all the virtual smart
cards that are created on that computer or device. If the user knows the PIN
values for all the virtual smart cards, the user will also be able to use them.
Area Requirements and details
Supported A single TPM virtual smart card can contain 30 distinct certificates with the
number of corresponding private keys. Users can continue to renew certificates on the card
certificates on until the total number of certificates on a card exceeds 90. The reason that the
a virtual smart total number of certificates is different from the total number of private keys is
card that sometimes the renewal can be done with the same private key—in which
case a new private key isn't generated.
PIN, PIN The PIN and the PUK must be a minimum of eight characters that can include
Unlock Key numerals, alphabetic characters, and special characters.
(PUK), and The Administrative key must be entered as 48 hexadecimal characters. It's a 3-
Administrative key triple DES with ISO/IEC 9797 padding method 2 in CBC chaining mode.
key
requirements
Using Tpmvscmgr.exe
To create and delete TPM virtual smart cards for end users, the Tpmvscmgr command-
line tool is included as a command-line tool with the operating system. You can use the
Create and Delete parameters to manage virtual smart cards on local or remote
computers. For information about using this tool, see Tpmvscmgr.
TpmVirtualSmartCardManager
RemoteTpmVirtualSmartCardManager
ITpmVirtualSmartCardManager
ITPMVirtualSmartCardManagerStatusCallBack
You can use APIs that were introduced in the Windows.Device.SmartCards namespace in
Windows Server 2012 R2 and Windows 8.1 to build Microsoft Store apps to manage the
full lifecycle of virtual smart cards. For information about how to build an app to do this,
see Strong Authentication: Building Apps That Leverage Virtual Smart Cards in
Enterprise, BYOD, and Consumer Environments | Build 2013 | Channel 9 .
The following table describes the features that can be developed in a Microsoft Store
app:
List available smart cards in a reader, and retrieve the card name and Yes Yes
card ID
Change the PIN by entering the old PIN and specifying a new PIN Yes Yes
Change the administrative key, reset the PIN, or unblock the smart Yes Yes
card by using a challenge/response method
Resolving issues
If the TPM is initialized after creating a virtual smart card, the card will no longer
function, and it will need to be re-created.
If the TPM ownership was established on a Windows Vista installation, the TPM won't be
ready to use virtual smart cards. The system administrator needs to clear and initialize
the TPM for it to be suitable for creating TPM virtual smart cards.
If the operating system is reinstalled, prior TPM virtual smart cards are no longer
available and need to be re-created. If the operating system is upgraded, prior TPM
virtual smart cards will be available to use in the upgraded operating system.
See also
For information about authentication, confidentiality, and data integrity use cases, see
Virtual Smart Card Overview.
Deploy Virtual Smart Cards
Article • 02/27/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
This article discusses the factors to consider when you deploy a virtual smart card
authentication solution.
Traditional identity devices, such as physical smart cards, follow a predictable lifecycle in
any deployment, as shown in the following diagram.
A device manufacturer creates physical devices, and then an organization purchase and
deploy them. The device passes through the personalization stage, where its unique
properties are set. In smart cards, these properties are the administrator key, Personal
Identification Number (PIN), PIN Unlock Key (PUK), and its physical appearance. During
the device provisioning phase, the required certificates are installed, such as a sign-in
certificate. After you provision the device, it's ready for use. You'll maintain the device,
for example you may replace cards when they're lost or stolen, or reset PINs when users
forget them. Finally, you'll retire devices when they exceed their intended lifetime or
when employees leave the company.
This topic contains information about the following phases in a virtual smart card
lifecycle:
When you create virtual smart cards, consider the following actions in the TPM:
Enable and Activate: TPMs are built into many devices. In some cases, the TPM
must be enabled and activated through the BIOS
Take ownership: When you provision the TPM, you set an owner password for
managing the TPM in the future, and you establish the storage root key. To provide
anti-hammering protection for virtual smart cards, the user or a domain
administrator must be able to reset the TPM owner password. For corporate use of
TPM virtual smart cards, the domain administrator should restrict access to the
TPM owner password by storing it in Active Directory, and not in the local registry.
When TPM ownership is set, you must clear and reinitialize the TPM
Manage: You can manage ownership of a virtual smart card by changing the owner
password, and you can manage anti-hammering logic by resetting the lockout
time
A TPM might operate in reduced functionality mode, which may occur if the operating
system can't determine if the owner password is available to the user. During reduce
functionality mode, you can use the TPM to create a virtual smart card, but it's
preferable to bring the TPM to a fully ready state so that any unexpected circumstances
won't leave the user blocked from using the device.
Those smart card deployment management tools that require a status check of a TPM
before attempting to create a TPM virtual smart card can do so using the TPM WMI
interface.
Depending on the setup of the device designated for installing TPM virtual smart cards,
it may be necessary to provision the TPM before continuing with the virtual smart card
deployment. For more information about provisioning, see Use Virtual Smart Cards.
For more information about managing TPMs by using built-in tools, see Trusted
Platform Module Services Group Policy Settings.
Creation
A TPM virtual smart card simulates a physical smart card, using the TPM to provide the
same functionality as physical smart card hardware.
A virtual smart card appears within the operating system as a physical smart card that is
always inserted. Windows presents a virtual smart card reader and a virtual smart card to
applications using the same interface as physical smart cards. The messages to and from
the virtual smart card are translated to TPM commands, ensuring the integrity of the
virtual smart card through the three properties of smart card security:
Anti-hammering: If a user enters a PIN incorrectly, the virtual smart card responds
by using the anti-hammering logic of the TPM, which rejects further attempts for
some time instead of blocking the card. This is also known as lockout. For more
information, see Blocked virtual smart card and Evaluate Virtual Smart Card
Security.
There are several options for creating virtual smart cards, depending on the size of the
deployment and budget of the organization. The lowest cost option is using
tpmvscmgr.exe to create cards individually on users' computers. Alternatively, a virtual
smart card management solution can be purchased to more easily accomplish virtual
smart card creation on a larger scale and aid in further phases of deployment. Virtual
smart cards can be created on computers that are to be provisioned for an employee or
on those that are already in an employee's possession. In either approach, there should
be some central control over personalization and provisioning. If a computer is intended
for use by multiple employees, multiple virtual smart cards can be created on a
computer.
For information about the TPM Virtual Smart Card command-line tool, see Tpmvscmgr.
Personalization
During virtual smart card personalization, the values for the administrator key, PIN, and
PUK are assigned. As with a physical card, knowing the administrator key is important
for resetting the PIN or for deleting the card in the future. (If you set a PUK, you can't
use the administrator key to reset the PIN.)
Because the administrator key is critical to the security of the card, it's important to
consider the deployment environment and decide on the proper administrator key
setting strategy. Options for these strategies include:
Uniform: Administrator keys for all the virtual smart cards deployed in the
organization are the same. Although using the same key makes the maintenance
infrastructure easy (only one key needs to be stored), it's highly insecure. This
strategy might be sufficient for small organizations, but if the administrator key is
compromised, all virtual smart cards that use the key must be reissued.
Random, not stored: Administrator keys are assigned randomly for all virtual smart
cards, and they aren't recorded. This is a valid option if the deployment
administrators don't require the ability to reset PINs, and instead prefer to delete
and reissue virtual smart cards. This is a viable strategy if the administrator prefers
to set PUK values for the virtual smart cards and then use this value to reset PINs, if
necessary.
Random, stored: you assign the administrator keys randomly, storing them in a
central location. Each card's security is independent of the others. This is a secure
strategy on a large scale, unless the administrator key database is compromised.
Although the PUK and the administrator key methodologies provide unlocking and
resetting functionality, they do so in different ways. The PUK is a PIN that is entered on
the computer to enable a user PIN reset.
TPM virtual smart cards can be personalized on an individual basis when they're created
with the Tpmvscmgr command-line tool. Or organizations can purchase a management
solution that can incorporate personalization into an automated routine. Another
advantage of such a solution is the automated creation of administrator keys.
Tpmvscmgr.exe allows users to create their own administrator keys, which can be
detrimental to the security of the virtual smart cards.
For deployments in which a high-assurance level isn't a primary concern, you can use
self-service solutions. These can include using an online portal to obtain credentials or
simply enrolling for certificates by using Certificate Manager, depending on the
deployment. Consider that virtual smart card authentication is only as strong as the
method of provisioning. For example, if weak domain credentials (such as a password
alone) are used to request the authentication certificate, virtual smart card
authentication will be equivalent to using only the password, and the benefits of two-
factor authentication are lost.
For information about using Certificate Manager to configure virtual smart cards, see
Get Started with Virtual Smart Cards: Walkthrough Guide.
In this situation, provisioning becomes relatively simple, but identity checks must be put
in place to ensure that the recipient of the computer is the individual who was expected
during provisioning. This can be accomplished by requiring the employee to set the
initial PIN under the supervision of the deployment administrator or manager.
When you're provisioning your computers, you should also consider the longevity of
credentials that are supplied for virtual smart cards. This choice must be based on the
risk threshold of the organization. Although longer lived credentials are more
convenient, they're also more likely to become compromised during their lifetime. To
decide on the appropriate lifetime for credentials, the deployment strategy must take
into account the vulnerability of their cryptography (how long it could take to crack the
credentials), and the likelihood of attack.
For compromised virtual smart cards, administrators should be able to revoke the
associated credentials, like they would with a lost or stolen laptop. Revoking credentials
requires a record of which credentials match which user and device, but the functionality
doesn't natively exist in Windows. Deployment administrators might want to consider
add-on solutions to maintain a record.
Virtual smart cards on consumer devices used for
corporate access
There are techniques that allow employees to provision virtual smart cards and enroll for
certificates that can be used to authenticate the users. This is useful when employees
attempt to access corporate resources from devices that aren't joined to the corporate
domain. Those devices can be further defined to not allow users to download and run
applications from sources other than the Microsoft Store.
You can use APIs to build Microsoft Store apps that you can use to manage the full
lifecycle of virtual smart cards. For more information, see Create and delete virtual smart
cards programmatically.
A malicious user possesses a device that has an active local sign-in session before
the device locks. The malicious user could attempt a brute-force attack on the
virtual smart card PIN, and then access the corporate secrets.
A malicious user possesses a device that has an active virtual private network (VPN)
session. The device is then compromised.
The proposed mitigation for the previous scenarios is to use Exchange ActiveSync (EAS)
policies to reduce the automatic lockout time from five minutes to 30 seconds of
inactivity. You can set policies for automatic lockout while provisioning virtual smart
cards. If an organization wants more security, they can also configure a setting to
remove the ownerAuth from the local device.
For configuration information about the TPM ownerAuth registry key, see the Group
Policy setting Configure the level of TPM owner authorization information available to
the operating system.
For information about EAS policies, see Exchange ActiveSync Policy Engine Overview.
The following table describes the important differences between managed and
unmanaged virtual smart cards that exist on consumer devices:
Operation Managed and unmanaged Unmanaged cards
cards
Reset PIN when the user forgets Yes No. Delete and recreate the
the PIN card.
Allow user to change the PIN Yes No. Delete and recreate the
card.
Managed cards
A managed virtual smart card can be serviced by the IT administrator or another person
in that designated role. It allows the IT administrator to have influence or complete
control over specific aspects of the virtual smart card from its creation to deletion. To
manage these cards, a virtual smart card deployment management tool is often
required.
The following command creates a virtual smart card that can later be managed by a
smart card management tool launched from another computer (as explained in the next
section):
PROMPT
In either case, the card management system needs to be aware of the initial
administrator key. The requirement is so that the card management system can take
ownership of the virtual smart card and change the administrator key to a value that is
only accessible through the card management tool operated by the IT administrator. For
example, when you use the default, the administrator key is set to:
10203040506070801020304050607080102030405060708
When users need to reset or change a PIN, they need to use the remote desktop
connection to complete these operations. They can use the built-in tools for PIN unlock
and PIN change or the smart card management tool.
Certificate issuance
Users can enroll for certificates from within a remote desktop session that is established
to provision the card. This process can also be managed by the smart card management
tool that the user runs through the remote desktop connection. This model works for
deployments that require the user to sign a request for enrollment by using a physical
smart card. The driver for the physical smart card doesn't need to be installed on the
client computer if it's installed on the remote computer. This is made possible by smart
card redirection functionality that was introduced in Windows Server 2003, which
ensures that smart cards that are connected to the client computer are available for use
during a remote session.
Alternatively, without establishing a remote desktop connection, users can enroll for
certificates from the Certificate Management console (certmgr.msc) on a client
computer. Users can also create a request and submit it to a server from within a custom
certificate enrollment application (for example, a registration authority) that has
controlled access to the certification authority (CA). This requires specific enterprise
configuration and deployments for Certificate Enrollment Policies (CEP) and Certificate
Enrollment Services (CES).
You can renew certificates through remote desktop connections, certificate enrollment
policies, or certificate enrollment services. Renewal requirements could be different from
the initial issuance requirements, based on the renewal policy.
Certificate revocation requires careful planning. When information about the certificate
to be revoked is reliably available, the specific certificate can be easily revoked. When
information about the certificate to be revoked isn't easy to determine, all certificates
that are issued to the user under the policy that was used to issue the certificate might
need to be revoked. For example, this could occur if an employee reports a lost or
compromised device, and information that associates the device with a certificate isn't
available.
Unmanaged cards
Unmanaged virtual smart cards aren't serviceable by an IT administrator. Unmanaged
cards might be suitable if an organization doesn't have an elaborate smart card
deployment management tool and using remote desktop connections to manage the
card isn't desirable. Because unmanaged cards aren't serviceable by the IT administrator,
when a user needs help with a virtual smart card (for example, resetting or unlocking a
PIN), the only option available to the user is to delete the card and create it again. This
results in loss of the user's credentials and he or she must re-enroll.
This command creates a card with a randomized administrator key. The key is
automatically discarded after the creation of the card. If users forget or want to change
their PIN, they need to delete the card and create it again. To delete the card, a user can
run the following command:
tpmvscmgr.exe destroy /instance <instance ID>
where <instance ID> is the value that is printed on the screen when the user creates the
card. Specifically, for the first card created, the instance ID is
ROOT\SMARTCARDREADER\0000).
Another option is to have the user access an enrollment portal that is available through
Internet Explorer. The webpage can use the scripting APIs to perform certificate
enrollment.
The user can import the certificate into the MY store (which is the user's certificate
store). And your organization can present the user with a script that can be used to sign
the request for the short-term certificate and to request a virtual smart card.
For deployments that require users to use a physical smart card to sign the certificate
request, you can use the procedure:
2. Users complete the request by using a physical smart card to sign the request.
3. Users download the request to the virtual smart card on their client computer.
Certificate revocation requires careful planning. When information about the certificate
to be revoked is reliably available, the specific certificate can be easily revoked. When
information about the certificate to be revoked isn't easy to determine, all certificates
issued to the user under the policy that was used to issue the certificate might need to
be revoked. For example, if an employee reports a lost or compromised device, and
information that associates the device with a certificate isn't available.
Renewal: Renewing virtual smart card credentials is a regular task that is necessary to
preserve the security of a virtual smart card deployment. Renewal is the result of a
signed request from a user who specifies the key pair desired for the new credentials.
Depending on user's choice or deployment specification, the user can request
credentials with the same key pair as previously used, or choose a newly generated key
pair.
When renewing with a previously used key, no extra steps are required because a strong
certificate with this key was issued during the initial provisioning. However, when the
user requests a new key pair, you must take the same steps that were used during
provisioning to assure the strength of the credentials. Renewal with new keys should
occur periodically to counter sophisticated long-term attempts by malicious users to
infiltrate the system. When new keys are assigned, you must ensure that the new keys
are being used by the expected individuals on the same virtual smart cards.
Resetting PINs: Resetting virtual smart card PINs is also a frequent necessity, because
employees forget their PINs. There are two ways to accomplish this, depending on
choices made earlier in the deployment: Use a PUK (if the PUK is set), or use a
challenge-response approach with the administration key. Before resetting the PIN, the
user's identity must be verified by using some means other than the card—most likely
the verification method that you used during initial provisioning (for example, in-person
proofing). This is necessary in user-error scenarios when users forget their PINs.
However, you should never reset a PIN if it has been compromised because the level of
vulnerability after the PIN is exposed is difficult to identify. The entire card should be
reissued.
Lockout reset: A frequent precursor to resetting a PIN is the necessity of resetting the
TPM lockout time because the TPM anti-hammering logic will be engaged with multiple
PIN entry failures for a virtual smart card. This is currently device specific.
Retiring cards: The final aspect of virtual smart card management is retiring cards when
they're no longer needed. When an employee leaves the company, it's desirable to
revoke domain access. Revoking sign-in credentials from the certification authority (CA)
accomplishes this goal.
The card should be reissued if the same computer is used by other employees without
reinstalling the operating system. Reusing the former card can allow the former
employee to change the PIN after leaving the organization, and then hijack certificates
that belong to the new user to obtain unauthorized domain access. However, if the
employee takes the virtual smart card-enabled computer, it's only necessary to revoke
the certificates that are stored on the virtual smart card.
Emergency preparedness
Card reissuance
The most common scenario in an organization is reissuing virtual smart cards, which can
be necessary if the operating system is reinstalled or if the virtual smart card is
compromised in some manner. Reissuance is essentially the recreation of the card,
which involves establishing a new PIN and administrator key and provisioning a new set
of associated certificates. This is an immediate necessity when a card is compromised,
for example, if the virtual smart card-protected computer is exposed to an adversary
who might have access to the correct PIN. Reissuance is the most secure response to an
unknown exposure of a card's privacy. Additionally, reissuance is necessary after an
operating system is reinstalled because the virtual smart card device profile is removed
with all other user data when the operating system is reinstalled.
For more information about setting the Allow Integrated Unblock policy, see Allow
Integrated Unblock screen to be displayed at the time of logon.
Evaluate Virtual Smart Card Security
Article • 02/27/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
In this article, you'll learn about security characteristics and considerations when
deploying TPM virtual smart cards.
The following diagram illustrates the secure key hierarchy and the process of accessing
the user key.
User key
Smart card key, which is encrypted by the storage root key
Authorization key for the user key decryption, which is encrypted by the public
portion of the smart card key
When the user enters a PIN, the use of the decrypted smart card key is authorized with
this PIN. If this authorization succeeds, the decrypted smart card key is used to decrypt
the auth key. The auth key is then provided to the TPM to authorize the decryption and
use of the user's key that is stored on the virtual smart card.
The auth key is the only sensitive data used as plaintext outside the TPM, but its
presence in memory is protected by Microsoft Data Protection API (DPAPI), such that
before being stored in any way, it's encrypted. All data other than the auth key is
processed only as plaintext within the TPM, which is isolated from external access.
The Trusted Computing Group specifies that if the response to attacks involves
suspending proper function of the TPM for some period of time, or until administrative
action is taken, the TPM must prevent running the authorized TPM commands. The TPM
can prevent running any TPM commands until the termination of the attack response.
Beyond using a time delay or requiring administrative action, a TPM could also force a
reboot when an attack is detected. The Trusted Computing Group allows manufacturers
a level of creativity in their choice of implementation. The methodology used by TPM
manufacturers determines the anti-hammering response of TPM virtual smart cards.
Some typical aspects of protection from attacks include:
1. Allow only a limited number of wrong PIN attempts before enabling a lockout that
enforces a time delay before any further commands are accepted by the TPM.
7 Note
If the user enters the wrong PIN five consecutive times for a virtual smart card
(which works in conjunction with the TPM), the card is blocked. When the card
is blocked, it must be unblocked by using the administrative key or the PUK.
2. Increase the time delay exponentially as the user enters the wrong PIN so that an
excessive number of wrong PIN attempts quickly trigger long delays in accepting
commands.
3. Have a failure leakage mechanism to allow the TPM to reset the timed delays over
a period of time. This is useful in cases where a valid user has entered the wrong
PIN occasionally, for example, due to complexity of the PIN.
For example, it will take 14 years to guess an eight character PIN for a TPM that
implements the following protection:
2 Warning
Windows Hello for Business is the modern, two-factor authentication for Windows.
Microsoft will deprecate virtual smart cards in the near future. Customers using
virtual smart cards are strongly encouraged to move to Windows Hello for
Business. Microsoft will publish the deprecation date to ensure customers have
adequate lead time to move to Windows Hello for Business. We recommend that
new Windows deployments use Windows Hello for Business.
Syntax
Tpmvscmgr create [/quiet] /name <name> /AdminKey {DEFAULT | PROMPT | RANDOM} [/PIN
name>] [/?]
Parameter Description
/name Required. Indicates the name of the new virtual smart card.
Parameter Description
/AdminKey Indicates the desired administrator key that can be used to reset the PIN of the card
if the user forgets the PIN.
DEFAULT Specifies the default value of
010203040506070801020304050607080102030405060708.
PROMPT Prompts the user to enter a value for the administrator key.
RANDOM Results in a random setting for the administrator key for a card that is
not returned to the user. This creates a card that might not be manageable by using
smart card management tools. When generated with RANDOM, the administrator
key is set as 48 hexadecimal characters.
/PUK Indicates the desired PIN Unlock Key (PUK) value. The PUK value must be a
minimum of eight characters, and it can contain numerals, characters, and special
characters. If the parameter is omitted, the card is created without a PUK.
DEFAULT Specifies the default PUK of 12345678.
PROMPT Prompts the user to enter a PUK at the command line.
/generate Generates the files in storage that are necessary for the virtual smart card to
function. If the /generate parameter is omitted, it's equivalent to creating a card
without this file system. A card without a file system can be managed only by a
smart card management system such as Microsoft Configuration Manager.
/machine Allows you to specify the name of a remote computer on which the virtual smart
card can be created. This can be used in a domain environment only, and it relies
on DCOM. For the command to succeed in creating a virtual smart card on a
different computer, the user running this command must be a member in the local
administrators group on the remote computer.
/pinpolicy If /pin prompt is used, /pinpolicy allows you to specify the following PIN policy
options:
minlen <minimum PIN length>
If not specified, defaults to 8. The lower bound is 4.
maxlen <maximum PIN length>
If not specified, defaults to 127. The upper bound is 127.
uppercase Can be ALLOWED, DISALLOWED, or REQUIRED. Default is ALLOWED.
lowercase Can be ALLOWED, DISALLOWED, or REQUIRED. Default is ALLOWED.
digits Can be ALLOWED, DISALLOWED, or REQUIRED. Default is ALLOWED.
specialchars Can be ALLOWED, DISALLOWED, or REQUIRED. Default is ALLOWED.
/attestation Configures attestation (subject only). This attestation uses an Attestation Identity
Key (AIK) certificate as a trust anchor to vouch that the virtual smart card keys and
certificates are truly hardware bound. The attestation methods are:
AIK_AND_CERT Creates an AIK and obtains an AIK certificate from the Microsoft
cloud certification authority (CA). This requires the device to have a TPM with an EK
certificate. If this option is specified and there's no network connectivity, it's
possible that creation of the virtual smart card will fail.
AIK_ONLY Creates an AIK but doesn't obtain an AIK certificate.
2 Warning
Parameter Description
/instance Specifies the instance ID of the virtual smart card to be removed. The instanceID was
generated as output by Tpmvscmgr.exe when the card was created. The /instance
parameter is a required field for the Destroy command.
/machine Allows you to specify the name of a remote computer on which the virtual smart
card will be deleted. This can be used in a domain environment only, and it relies on
DCOM. For the command to succeed in deleting a virtual smart card on a different
computer, the user running this command must be a member in the local
administrators group on the remote computer.
Remarks
Membership in the Administrators group (or equivalent) on the target computer is the
minimum required to run all the parameters of this command.
For alphanumeric inputs, the full 127 character ASCII set is allowed.
Examples
The following command shows how to create a virtual smart card that can be later
managed by a smart card management tool launched from another computer.
Console
Console
The following command will create the unmanaged virtual smart card that can be used
to enroll certificates.
Console
The preceding command will create a virtual smart card with a randomized
administrator key. The key is automatically discarded after the card is created. This
means that if the user forgets the PIN or wants to the change the PIN, the user needs to
delete the card and create it again. To delete the card, the user can run the following
command.
Console
where <instance ID> is the value printed on the screen when the user created the card.
Specifically, for the first card created, the instance ID is
ROOT\SMARTCARDREADER\0000.
The following command will create a TPM virtual smart card with the default value for
the administrator key and a specified PIN policy and attestation method:
Console
tpmvscmgr.exe create /name "VirtualSmartCardForCorpAccess" /PIN PROMPT
/pinpolicy minlen 4 maxlen 8 /AdminKey DEFAULT /attestation AIK_AND_CERT
/generate
Enterprise certificate pinning overview
Article • 05/31/2023 • Applies to: ✅ Windows 11, ✅ Windows 10
Enterprise certificate pinning is a Windows feature for remembering (pinning), a root issuing
certificate authority, or end-entity certificate, to a domain name.
The feature helps to reduce man-in-the-middle attacks by protecting internal domain names from
chaining to unwanted or fraudulently issued certificates.
7 Note
External domain names, where the certificate issued to these domains is issued by a public
certificate authority, are not ideal for enterprise certificate pinning.
7 Note
Enterprise Certificate Pinning feature triggering doesn't cause clients other than Microsoft
Edge to block the connection.
Deployment
To deploy enterprise certificate pinning, you need to:
XML
</PinRules>
PinRules element
The PinRules element can have the following attributes. For help with formatting Pin Rules, see
Represent a date in XML or Represent a duration in XML.
Duration or Specifies when the Pin Rules expires. Either is required. NextUpdate Required? Yes. At
NextUpdate takes precedence if both are specified. least one is
Duration, represented as an XML TimeSpan data type, doesn't allow required.
years and months. You represent the NextUpdate attribute as an
XML DateTime data type in UTC.
ListIdentifier Provides a friendly name for the list of pin rules. Windows doesn't No.
use this attribute for certificate pinning enforcement; however, it's
included when the pin rules are converted to a certificate trust list
(CTL).
PinRule element
Name Uniquely identifies the PinRule. Windows uses the attribute to identify the element Yes.
for a parsing error or for verbose output. The attribute isn't included in the
generated certificate trust list (CTL).
Error Describes the action Windows performs when it encounters a PIN mismatch. You can No.
choose from the following string values:
- Revoked - Windows reports the certificate protecting the site as if it was revoked.
This typically prevents the user from accessing the site.
- InvalidName - Windows reports the certificate protecting the site as if the name on
the certificate doesn't match the name of the site. This typically results in prompting
the user before accessing the site.
- None - The default value. No error is returned. You can use the setting to audit the
pin rules without introducing any user friction.
Log A Boolean value represents a string that equals true or false. By default, logging is No.
enabled (true).
Certificate element
The Certificate element can have the following attributes.
File Path to a file containing one or more certificates. Where the Yes (File, Directory, or
certificate(s) can be encoded as: Base64 must be
- single certificate present).
- p7b
- sst
These files can also be Base64 formatted. All Site elements included in
the same PinRule element can match any of these certificates.
Directory Path to a directory containing one or more of the above certificate files. Yes (File, Directory, or
Skips any files not containing any certificates. Base64 must be
present).
Base64 Base64 encoded certificate(s). Where the certificate(s) can be encoded Yes (File, Directory, or
as: Base64 must be
- single certificate present).
- p7b
- sst
This allows the certificates to be included in the XML file without a file
directory dependency.
Note:
You can use certutil -encode to convert a .cer file into base64. You can
then use Notepad to copy and paste the base64 encoded certificate
into the pin rule.
EndDate Enables you to configure an expiration date for when the certificate is No.
no longer valid in the pin rule.
If you are in the process of switching to a new root or CA, you can set
the EndDate to allow matching of this element's certificates.
If the current time is past the EndDate, when creating the certificate
Attribute Description Required
trust list (CTL) the parser outputs a warning message and excludes the
certificate(s) from the Pin Rule in the generated CTL.
For help with formatting Pin Rules, see Represent a date in XML.
Site element
The Site element can have the following attributes.
Domain Contains the DNS name to be matched for this pin rule. When you create the Yes.
certificate trust list, the parser normalizes the input name string value as
follows:
- If the DNS name has a leading "*", it's removed.
- Non-ASCII DNS name is converted to ASCII Puny Code.
- Upper case ASCII characters are converted to lower case.
If the normalized name has a leading ".", then wildcard left-hand label
matching is enabled. For example, ".xyz.com" would match "abc.xyz.com".
AllSubdomains By default, wildcard left-hand label matching is restricted to a single left-hand No.
label. This attribute can be set to "true" to enable wildcard matching of all of
the left-hand labels.
For example, setting this attribute would also match "123.abc.xyz.com" for the
".xyz.com" domain value.
Options:
-f -- Force overwrite
-v -- Verbose operation
Use the certutil command with the generatePinRulesCTL argument along with your XML file that
contains your certificate pinning rules. Lastly, provide the name of an output file that will include
your certificate pinning rules in the form of a certificate trust list.
Use certutil.exe to apply your certificate pinning rules to your reference computer using the setreg
argument.
The setreg argument takes a secondary argument that determines the location of where certutil
writes the certificate pining rules.
The secondary argument is chain\PinRules.
The last argument you provide is the name of file that contains your certificate pinning rules in
certificate trust list format ( .stl ).
You pass the name of the file as the last argument. You must prefix the file name with the @
symbol as in the following example:
7 Note
Name Value
Key HKLM\SOFTWARE\Microsoft\Cryptography\OID\EncodingType0\CertDllCreateCertificateChainEngine\Config
Name
Name Value
PinRules
Value Binary contents from the certificate pin rules certificate trust list file
Data REG_BINARY
type
The next step consists of configuring a group policy object that includes the applied certificate pin
rule settings, and deploy it in your environment.
HKLM\SOFTWARE\Microsoft\Cryptography\OID\EncodingType0\CertDllCreateCertificateChainEngine\C
onfig
1. The Key Path should contain the selected registry key. The Value name configuration should
contain the registry value name PinRules. Value type should read REG_BINARY and Value
data should contain a long series of numbers from 0-9 and letters ranging from A-F
(hexadecimal). Select OK to save your settings and close the dialog box
Name Value
Key HKLM\SOFTWARE\Microsoft\Cryptography\OID\EncodingType0\CertDllCreateCertificateChainEngine\Config
Name Value
Name PinRulesLogDir
Value The Parent directory where Windows should write the additional pin rule logs
Data REG_SZ
type
set PinRulesLogDir=c:\PinRulesLog
mkdir %PinRulesLogDir%
icacls %PinRulesLogDir% /grant *S-1-15-2-1:(OI)(CI)(F)
icacls %PinRulesLogDir% /grant *S-1-1-0:(OI)(CI)(F)
icacls %PinRulesLogDir% /grant *S-1-5-12:(OI)(CI)(F)
icacls %PinRulesLogDir% /inheritance:e /setintegritylevel (OI)(CI)L
When an application verifies a TLS/SSL certificate chain that contains a server name matching a
DNS name in the server certificate, Windows writes a .p7b file consisting of all the certificates in
the server's chain to one of three child folders:
The output file name consists of the leading eight ASCII hex digits of the root's SHA1 thumbprint
followed by the server name. For example:
D4DE20D0_xsi.outlook.com.p7b
DE28F4A4_www.yammer.com.p7b
If there's either an enterprise certificate pin rule or a Microsoft certificate pin rule mismatch, then
Windows writes the .p7b file to the MismatchPinRules child folder. If the pin rules have expired,
then Windows writes the .p7b to the ExpiredPinRules child folder.
2015-05-11T07:00:00.2655691Z
2015-05-11T07:00:00Z
Starting in Windows 11, version 22H2 with KB5030310 , you can enable a web-based sign-in experience
on Microsoft Entra joined devices, unlocking new sign-in options and capabilities. This feature is called
Web sign-in.
Web sign-in is a credential provider, and it was initially introduced in Windows 10 with support for
Temporary Access Pass (TAP) only. With the release of Windows 11, the supported scenarios and
capabilities of Web sign-in are expanded.
For example, you can sign in with the Microsoft Authenticator app or with a SAML-P federated identity.
This article describes how to configure Web sign-in and the supported key scenarios.
System requirements
To use web sign-in, the clients must meet the following prerequisites:
For more information about Windows licensing, see Windows licensing overview.
Intune
To configure devices using Microsoft Intune, create a Settings catalog policy and use the following
settings:
Category Setting name Value
Authentication Configure Web This setting is optional, and it contains a list of domains required for sign
Sign In Allowed in, for example:
Urls - idp.example.com
- example.com
Authentication Configure This setting is optional, and it should be configured if you need to use the
Webcam Access webcam during the sign-in process. Specify the list of domains that are
Domain Names allowed to use the webcam during the sign-in process, for example:
example.com
Assign the policy to a group that contains as members the devices or users that you want to
configure.
Alternatively, you can configure devices using a custom policy with the following settings:
./Vendor/MSFT/Policy/Config/Authentication/EnableWebSignIn EnableWebSignIn
./Vendor/MSFT/Policy/Config/Authentication/ConfigureWebSignInAllowedUrls ConfigureWebSignInAllowedUrls
./Vendor/MSFT/Policy/Config/Authentication/ConfigureWebCamAccessDomainNames ConfigureWebcamAccessDomainNames
User experiences
Once the devices are configured, a new sign-in experience becomes available, as indicated by the
presence of the Web sign-in credential provider in the Windows lock screen.
Here's a list of key scenarios supported by Web sign-in, and a brief animation showing the user
experience. Select the thumbnail to start the animation.
Passwordless sign-in
Users can sign in to Windows passwordless, even before enrolling in Windows Hello for Business. For
example, by using the Microsoft Authenticator app as a sign-in method.
Tip
When used in conjuction with Windows Hello for Business passwordless, you can hide the password
credential provider from the lock screen as well as in-session authentication scenarios. This enables a
truly passwordless Windows experience.
To learn more:
The Windows Hello PIN reset flow is seamless and more robust than in previous versions.
A Temporary Access Pass (TAP) is a time-limited passcode granted by an administrator to a user. Users
can sign in with a TAP using the Web sign-in credential provider. For example:
to onboard Windows Hello for Business or a FIDO2 security key
if lost or forgotten FIDO2 security key and unknown password
If the Microsoft Entra ID tenant is federated with a third-party SAML-P identity provider (IdP), federated
users can sign using the Web sign-in credential provider.
Tip
For more information about preferred tenant name, see Authentication CSP -
PreferredAadTenantDomainName.
Important considerations
Here's a list of important considerations to keep in mind when configuring or using Web sign-in:
Cached credentials aren't supported with Web sign-in. If the device is offline, the user can't use the
Web sign-in credential provider to sign in
After sign out, the user isn't displayed in the user selection list
Once enabled, the Web sign-in credential provider is the default credential provider for new users
signing in to the device. To change the default credential provider, you can use the
DefaultCredentialProvider ADMX-backed policy
The user can exit the Web sign-in flow by pressing Ctrl + Alt + Delete to get back to the Windows
lock screen
Known issues
If you attempt to sign in while the device is offline, you get the following message: It doesn't look
that you're connected to the Internet. Check your connection and try again. Selecting the Back to sign-
in option doesn't bring you back to the lock screen. As a workaround, you can press Ctrl + Alt +
Delete to get back to the lock screen.
Provide feedback
To provide feedback for web sign-in, open Feedback Hub and use the category Security and Privacy >
Passwordless experience.
Configure federated sign-in for
Windows devices
Article • 09/11/2023 • Applies to: ✅ Windows 11, ✅ Windows 11 SE
Starting in Windows 11 SE, version 22H2 and Windows 11 Pro Edu/Education, version
22H2 with KB5022913 , you can enable your users to sign-in using a federated identity
provider (IdP) via web sign-in.
This feature is called federated sign-in.
Federated sign-in is a great way to simplify the sign-in process for your users: instead of
having to remember a username and password defined in Azure AD, they can sign-in
using their existing credentials from the IdP. For example, students and educators can
use QR code badges to sign-in.
) Important
Currently, this feature is designed for 1:1 devices. For an optimal experience, you
should not enable federated sign-in on shared devices.
Prerequisites
To implement federated sign-in, the following prerequisites must be met:
7 Note
2. Individual IdP accounts created: each user requires an account defined in the third-
party IdP platform
For more information about identity matching, see Identity matching in Azure AD.
To use federated sign-in, the devices must have Internet access. This feature doesn't
work without it, as the authentication is done over the Internet.
) Important
WS-Fed is the only supported federated protocol to join a device to Azure AD. If
you have a SAML 2.0 IdP, it's recommended to complete the Azure AD join process
using one of the following methods:
No No Yes Yes
For more information about Windows licensing, see Windows licensing overview.
Federated sign-in for student assigned (1:1) devices is supported on the following
Windows editions and versions:
When federated sign-in is configured for student assigned (1:1) devices, the first
user who signs in to the device with a federated identity becomes the primary user.
The primary user is always displayed in the bottom left corner of the sign-in screen
When federated sign-in is configured for student shared devices, there's no
primary user. The sign-in screen displays, by default, the last user who signed in to
the device
The configuration is different for each scenario, and is described in the following
sections.
Intune
To configure devices using Microsoft Intune, create a Settings catalog policy and
use the following settings:
Assign the policy to a group that contains as members the devices or users that you
want to configure.
Alternatively, you can configure devices using a custom policy with the following
settings:
Setting
OMA-URI: ./Vendor/MSFT/Policy/Config/Education/IsEducationEnvironment
Data type: int
Value: 1
OMA-URI:
./Vendor/MSFT/Policy/Config/FederatedAuthentication/EnableWebSignInForPrimaryUser
Data type: int
Value: 1
OMA-URI: ./Vendor/MSFT/Policy/Config/Authentication/ConfigureWebSignInAllowedUrls
Data type: String
Setting
OMA-URI:
./Vendor/MSFT/Policy/Config/Authentication/ConfigureWebCamAccessDomainNames **
Data type: String
Value: This setting is optional, and it should be configured if you need to use the webcam
during the sign-in process. Specify the list of domains that are allowed to use the webcam
during the sign-in process, separated by a semicolon. For example: clever.com
Intune
To configure devices using Microsoft Intune, create a Settings catalog policy and
use the following settings:
Alternatively, you can configure devices using a custom policy with the following
settings:
Setting
OMA-URI: ./Vendor/MSFT/Policy/Config/Education/IsEducationEnvironment
Data type: int
Value: 1
OMA-URI: ./Vendor/MSFT/SharedPC/EnableSharedPCModeWithOneDriveSync
Data type: Boolean
Value: True
OMA-URI: ./Vendor/MSFT/Policy/Config/Authentication/EnableWebSignIn
Data type: Integer
Value: 1
OMA-URI: ./Vendor/MSFT/Policy/Config/Authentication/ConfigureWebSignInAllowedUrls
Data type: String
Value: Semicolon separated list of domains, for example:
samlidp.clever.com;clever.com;mobile-redirector.clever.com
OMA-URI: ./Vendor/MSFT/Policy/Config/Authentication/ConfigureWebCamAccessDomainNames
Data type: String
Value: This setting is optional, and it should be configured if you need to use the webcam
during the sign-in process. Specify the list of domains that are allowed to use the webcam
during the sign-in process, separated by a semicolon. For example: clever.com
As users enter their username, they're redirected to the identity provider sign-in page.
Once the Idp authenticates the users, they're signed-in. In the following animation, you
can observe how the first sign-in process works for a student assigned (1:1) device:
) Important
For student assigned (1:1) devices, once the policy is enabled, the first user who
sign-in to the device will also set the disambiguation page to the identity provider
domain on the device. This means that the device will be defaulting to that IdP. The
user can exit the federated sign-in flow by pressing Ctrl + Alt + Delete to get back
to the standard Windows sign-in screen. The behavior is different for student
shared devices, where the disambiguation page is always shown, unless preferred
Azure AD tenant name is configured.
Important considerations
Account management
For student shared devices, it's recommended to configure the account management
policies to automatically delete the user profiles after a certain period of inactivity or
disk levels. For more information, see Set up a shared or guest Windows device.
For more information about preferred tenant name, see Authentication CSP -
PreferredAadTenantDomainName.
7 Note
The ImmutableId is a string value that must be unique for each user in the tenant,
and it shouldn't change over time. For example, the ImmutableId could be the
student ID or SIS ID. The ImmutableId value should be based on the federation
setup and configuration with your IdP, so confirm with your IdP before setting it.
If the matching object is found, the user is signed-in. Otherwise, the user is presented
with an error message. The following picture shows that a user with the ImmutableId
260051 can't be found:
) Important
The ImmutableId is typically configured when the user is created in Azure AD, but it can
also be updated later.
In a scenario where a user is federated and you want to change the ImmutableId, you
must:
1. Convert the federated user to a cloud-only user (update the UPN to a non-
federated domain)
2. Update the ImmutableId
3. Convert the user back to a federated user
PowerShell
#2. Convert the user back to federated, while setting the immutableId
Update-MgUser -UserId alton@example.onmicrosoft.com -UserPrincipalName
alton@example.com -OnPremisesImmutableId '260051'
Troubleshooting
The user can exit the federated sign-in flow by pressing Ctrl + Alt + Delete to get
back to the standard Windows sign-in screen
Select the Other User button, and the standard username/password credentials are
available to log into the device
What is Windows LAPS?
Article • 09/06/2023
All supported editions of the above platforms have been updated with Windows LAPS,
including LTSC editions. The introduction of the Windows LAPS feature doesn't modify
in any way whatsoever the standard Microsoft product lifecycle policies.
The Windows LAPS on-premises Active Directory scenarios are fully supported as of the
above updates.
) Important
Windows LAPS with Microsoft Entra (Azure AD) and Microsoft Intune support is
now in public preview as of April 21st 2023.
Informational videos
The following videos offer an informative way to learn more about the Windows LAPS
feature.
Back up local administrator account passwords to Azure Active Directory (for Azure
Active Directory-joined devices)
Devices that are joined only to Azure Active Directory can back up passwords only to
Azure Active Directory.
Devices that are joined only to Windows Server Active Directory can back up passwords
only to Windows Server Active Directory.
Devices that are hybrid-joined (joined to both Azure Active Directory and Windows
Server Active Directory) can back up their passwords either to Azure Active Directory or
to Windows Server Active Directory. You can't back up passwords to both Azure Active
Directory and Windows Server Active Directory.
The Windows Server Active Directory Users and Computers properties dialog
A dedicated event log channel
A Windows PowerShell module that's specific to Windows LAPS
Azure-based monitoring and reporting solutions are available when you back up
passwords to Azure Active Directory.
Windows LAPS inherits many design concepts from legacy Microsoft LAPS. If you're
familiar with legacy Microsoft LAPS, many Windows LAPS features are familiar. A key
difference is that Windows LAPS is an entirely separate implementation that's native to
Windows. Windows LAPS also adds many features that aren't available in legacy
Microsoft LAPS. You can use Windows LAPS to back up passwords to Azure Active
Directory, encrypt passwords in Windows Server Active Directory, and store your
password history.
) Important
Windows LAPS doesn't require you to install legacy Microsoft LAPS. You can fully
deploy and use all Windows LAPS features without installing or referring to legacy
Microsoft LAPS. But to help migrate an existing legacy Microsoft LAPS deployment,
Windows LAPS offers legacy Microsoft LAPS emulation mode.
Support statement
Microsoft released the legacy Microsoft LAPS product in calendar year 2016 on the
Microsoft Download Center . Windows LAPS shipped as part of Windows Updates
released on April 11, 2023 for the platforms listed in Windows LAPS supported
platforms and Azure AD LAPS preview status.
Microsoft and its support delivery organization offer assisted support for both Microsoft
LAPS and Windows LAPS including interoperability between the two products.
Microsoft strongly recommends that customers begin planning now to migrate their
Windows LAPS-capable systems from using legacy Microsoft LAPS over to the new
Windows LAPS feature. Windows LAPS offers many new security features and improved
product servicing.
You can back up passwords to your on-premises Active Directory with no other licensing
requirements.
You can back up passwords to Azure AD with an Azure AD Free or higher license.
Submitting feedback
Want to send us feedback? Feel free to submit doc-specific questions via the Feedback
links at the bottom of these doc pages.
You may also submit feedback and other requests via the Windows LAPS feedback
Tech Community page.
If your feedback is specific to the Azure AD- or Intune-related LAPS functionality, you
may submit feedback via the Azure AD feedback forum .
If you aren't sure where your feedback should go, submit it using any of the above
options.
See also
Introducing Windows Local Administrator Password Solution with Azure AD
Windows Local Administrator Password Solution in Azure AD (preview)
Microsoft Intune support for Windows LAPS
Windows LAPS CSP
Legacy Microsoft LAPS
Windows LAPS Troubleshooting Guidance
LAPS PowerShell module reference
Next steps
Key concepts in Windows LAPS
Get started with Windows LAPS for Windows Server Active Directory
Get started with Windows LAPS for Azure Active Directory
Get started with Windows LAPS in legacy Microsoft LAPS emulation mode
Account Lockout Policy
Article • 05/11/2023
Applies to
Windows 11
Windows 10
Describes the Account Lockout Policy settings and links to information about each
policy setting.
Someone who attempts to use more than a few unsuccessful passwords while trying to
log on to your system might be a malicious user who is attempting to determine an
account password by trial and error. Windows domain controllers keep track of logon
attempts, and domain controllers can be configured to respond to this type of potential
attack by disabling the account for a preset period of time. Account Lockout Policy
settings control the threshold for this response and the actions to be taken after the
threshold is reached. The Account Lockout Policy settings can be configured in the
following location in the Group Policy Management Console: Computer
Configuration\Policies\Windows Settings\Security Settings\Account Policies\Account
Lockout Policy.
The following topics provide a discussion of each policy setting's implementation and
best practices considerations, policy location, default values for the server type or Group
Policy Object (GPO), relevant differences in operating system versions, and security
considerations (including the possible vulnerabilities of each policy setting),
countermeasures that you can implement, and the potential impact of implementing the
countermeasures.
7 Note
Account lockout settings for remote access clients can be configured separately by
editing the Registry on the server that manages the remote access. For more
information, see How to configure remote access client account lockout.
Account Lockout Policy license entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
In this section
Topic Description
Account lockout Describes the best practices, location, values, and security considerations for
threshold the Account lockout threshold security policy setting.
Account lockout Describes the best practices, location, values, and security considerations for
duration the Account lockout duration security policy setting.
Reset account Describes the best practices, location, values, and security considerations for
lockout counter the Reset account lockout counter after security policy setting.
after
Related topics
Configure security policy settings
Enhanced Phishing Protection in
Microsoft Defender SmartScreen
Article • 09/25/2023 • Applies to: ✅ Windows 11, version 22H2
If a user signs into Windows using a password, Enhanced Phishing Protection works
alongside Windows security protections, and helps protect typed work or school
password used to sign into Windows 11 in these ways:
If users type or paste their work or school password on any browser, into a site
deemed malicious by Microsoft Defender SmartScreen, Enhanced Phishing
Protection alerts them. It also alerts them to change their password so attackers
can't gain access to their account.
Reusing work or school passwords makes it easy for attackers who compromise a
user's password to gain access to their other accounts. Enhanced Phishing
Protection can warn users if they reuse their work or school Microsoft account
password on sites and apps and alert them to change their password.
Since it's unsafe to store plaintext passwords in text editors, Enhanced Phishing
Protection can warn users if they store their work or school password in Notepad,
Word, or any Microsoft 365 Office app, and recommends they delete their
password from the file.
If users type their work or school password into a website or app that SmartScreen
finds suspicious, Enhanced Phishing Protection can automatically collect
information from that website or app to help identify security threats. For example,
the content displayed, sounds played, and application memory.
7 Note
When a user signs-in to a device using a Windows Hello for Business PIN or
biometric, Enhanced Phishing Protection does not alert the user or send events to
Microsoft Defender for Endpoint.
Enhanced phishing protection with SmartScreen license entitlements are granted by the
following licenses:
For more information about Windows licensing, see Windows licensing overview.
Intune
To configure devices using Microsoft Intune, create a Settings catalog policy, and
use the settings listed under the category SmartScreen > Enhanced Phishing
Protection :
Setting Description
Notify This policy setting determines whether Enhanced Phishing Protection warns
Malicious your users if they type their work or school password into one of the following
malicious scenarios: into a reported phishing site, into a sign-in URL with an
invalid certificate, or into an application connecting to either a reported
phishing site or a sign-in URL with an invalid certificate
If you enable this policy setting, Enhanced Phishing Protection warns your
users if they type their work or school password into one of the malicious
scenarios described above and encourages them to change their password.
If you disable or don't configure this policy setting, Enhanced Phishing
Protection doesn't warn users if they type their work or school password into
one of the malicious scenarios described above.
Notify This policy setting determines whether Enhanced Phishing Protection warns
Password your users if they reuse their work or school password.
Reuse If you enable this policy setting, Enhanced Phishing Protection warns users
if they reuse their work, or school password and encourages them to change
it.
If you disable or don't configure this policy setting, Enhanced Phishing
Protection doesn't warn users if they reuse their work or school password.
Notify This policy setting determines whether Enhanced Phishing Protection warns
Unsafe App your users if they type their work or school passwords in Notepad or
Microsoft 365 Office Apps.
If you enable this policy setting, Enhanced Phishing Protection warns your
users if they store their password in Notepad or Microsoft 365 Office Apps.
If you disable or don't configure this policy setting, Enhanced Phishing
Protection doesn't warn users if they store their password in Notepad or
Microsoft 365 Office Apps.
Assign the policy to a security group that contains as members the devices or users
that you want to configure.
To better help you protect your organization, we recommend turning on and using
these specific Microsoft Defender SmartScreen settings.
Intune
Settings Recommendation
catalog
element
Notify Unsafe Enable: Turns on Enhanced Phishing Protection notifications when users
App type their work or school passwords in Notepad and Microsoft 365 Office
Apps.
Related articles
SmartScreen frequently asked questions
WebThreatDefense CSP
Threat protection
Access Control Overview
Article • 05/11/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This topic for the IT professional describes access control in Windows, which is the
process of authorizing users, groups, and computers to access objects on the network or
computer. Key concepts that make up access control are permissions, ownership of
objects, inheritance of permissions, user rights, and object auditing.
Feature description
Computers that are running a supported version of Windows can control the use of
system and network resources through the interrelated mechanisms of authentication
and authorization. After a user is authenticated, the Windows operating system uses
built-in authorization and access control technologies to implement the second phase
of protecting resources: determining if an authenticated user has the correct
permissions to access a resource.
Shared resources are available to users and groups other than the resource's owner, and
they need to be protected from unauthorized use. In the access control model, users
and groups (also referred to as security principals) are represented by unique security
identifiers (SIDs). They are assigned rights and permissions that inform the operating
system what each user and group can do. Each resource has an owner who grants
permissions to security principals. During the access control check, these permissions
are examined to determine which security principals can access the resource and how
they can access it.
Security principals perform actions (which include Read, Write, Modify, or Full control)
on objects. Objects include files, folders, printers, registry keys, and Active Directory
Domain Services (AD DS) objects. Shared resources use access control lists (ACLs) to
assign permissions. This enables resource managers to enforce access control in the
following ways:
Object owners generally grant permissions to security groups rather than to individual
users. Users and computers that are added to existing groups assume the permissions
of that group. If an object (such as a folder) can hold other objects (such as subfolders
and files), it is called a container. In a hierarchy of objects, the relationship between a
container and its content is expressed by referring to the container as the parent. An
object in the container is referred to as the child, and the child inherits the access
control settings of the parent. Object owners often define permissions for container
objects, rather than individual child objects, to ease access control management.
Access Control (ACL/SACL) license entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
Practical applications
Administrators who use the supported version of Windows can refine the application
and management of access control to objects and subjects to provide the following
security:
Permissions
Permissions define the type of access that is granted to a user or group for an object or
object property. For example, the Finance group can be granted Read and Write
permissions for a file named Payroll.dat.
By using the access control user interface, you can set NTFS permissions for objects such
as files, Active Directory objects, registry objects, or system objects such as processes.
Permissions can be granted to any user, group, or computer. It is a good practice to
assign permissions to groups because it improves system performance when verifying
access to an object.
Groups, users, and other objects with security identifiers in the domain.
Groups and users in that domain and any trusted domains.
Local groups and users on the computer where the object resides.
The permissions attached to an object depend on the type of object. For example, the
permissions that can be attached to a file are different from those that can be attached
to a registry key. Some permissions, however, are common to most types of objects.
These common permissions are:
Read
Modify
Change owner
Delete
When you set permissions, you specify the level of access for groups and users. For
example, you can let one user read the contents of a file, let another user make changes
to the file, and prevent all other users from accessing the file. You can set similar
permissions on printers so that certain users can configure the printer and other users
can only print.
When you need to change the permissions on a file, you can run Windows Explorer,
right-click the file name, and click Properties. On the Security tab, you can change
permissions on the file. For more information, see Managing Permissions.
7 Note
Another kind of permissions, called share permissions, is set on the Sharing tab of a
folder's Properties page or by using the Shared Folder Wizard. For more
information see Share and NTFS Permissions on a File Server.
Ownership of objects
An owner is assigned to an object when that object is created. By default, the owner is
the creator of the object. No matter what permissions are set on an object, the owner of
the object can always change the permissions. For more information, see Manage
Object Ownership.
Inheritance of permissions
Inheritance allows administrators to easily assign and manage permissions. This feature
automatically causes objects within a container to inherit all the inheritable permissions
of that container. For example, the files within a folder inherit the permissions of the
folder. Only permissions marked to be inherited will be inherited.
User rights
User rights grant specific privileges and sign-in rights to users and groups in your
computing environment. Administrators can assign specific rights to group accounts or
to individual user accounts. These rights authorize users to perform specific actions,
such as signing in to a system interactively or backing up files and directories.
User rights are different from permissions because user rights apply to user accounts,
and permissions are associated with objects. Although user rights can apply to
individual user accounts, user rights are best administered on a group account basis.
There is no support in the access control user interface to grant user rights. However,
user rights assignment can be administered through Local Security Settings.
For more information about user rights, see User Rights Assignment.
Object auditing
With administrator's rights, you can audit users' successful or failed access to objects.
You can select which object access to audit by using the access control user interface,
but first you must enable the audit policy by selecting Audit object access under Local
Policies in Local Security Settings. You can then view these security-related events in
the Security log in Event Viewer.
See also
For more information about access control and authorization, see Access Control
and Authorization Overview.
Credential Guard overview
Article • 09/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
Credential Guard prevents credential theft attacks by protecting NTLM password hashes,
Kerberos Ticket Granting Tickets (TGTs), and credentials stored by applications as
domain credentials.
Credential Guard uses Virtualization-based security (VBS) to isolate secrets so that only
privileged system software can access them. Unauthorized access to these secrets can
lead to credential theft attacks like pass the hash and pass the ticket.
7 Note
While Credential Guard is a powerful mitigation, persistent threat attacks will likely
shift to new attack techniques, and you should also incorporate other security
strategies and architectures.
) Important
Starting in Windows 11, version 22H2, VBS and Credential Guard are enabled by
default on all devices that meet the system requirements.
For information about known issues related to the default enablement of Credential
Guard, see Credential Guard: Known Issues.
System requirements
For Credential Guard to provide protection, the devices must meet certain hardware,
firmware, and software requirements.
Devices that meet more hardware and firmware qualifications than the minimum
requirements, receive additional protections and are more hardened against certain
threats.
7 Note
Secure Boot
While not required, the following features are recommended to provide additional
protections:
For detailed information on protections for improved security that are associated with
hardware and firmware options, see additional security qualifications.
7 Note
No Yes No Yes
For more information about Windows licensing, see Windows licensing overview.
Application requirements
When Credential Guard is enabled, certain authentication capabilities are blocked.
Applications that require such capabilities break. We refer to these requirements as
application requirements.
2 Warning
7 Note
Credential Guard doesn't provide protections for the Active Directory database or
the Security Accounts Manager (SAM). The credentials protected by Kerberos and
NTLM when Credential Guard is enabled are also in the Active Directory database
(on domain controllers) and the SAM (for local accounts).
Digest authentication
Credential delegation
MS-CHAPv2
Applications may cause performance issues when they attempt to hook the isolated
Credential Guard process LSAIso.exe .
Services or protocols that rely on Kerberos, such as file shares or remote desktop,
continue to work and aren't affected by Credential Guard.
Next steps
Learn how Credential Guard works
Learn how to configure Credential Guard
Review the advice and sample code for making your environment more secure and
robust with Credential Guard in the Additional mitigations article
Review considerations and known issues when using Credential Guard
How Credential Guard works
Article • 09/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
For security reasons, the isolated LSA process doesn't host any device drivers. Instead, it
only hosts a small subset of operating system binaries that are needed for security and
nothing else. All the binaries are signed with a certificate that VBS trusts, and the
signatures are validated before launching the file in the protected environment.
U Caution
Next steps
Learn how to configure Credential Guard
Review the advice and sample code for making your environment more secure and
robust with Credential Guard in the Additional mitigations article
Review considerations and known issues when using Credential Guard
Configure Credential Guard
Article • 09/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article describes how to configure Credential Guard using Microsoft Intune, Group
Policy, or the registry.
Default enablement
Starting in Windows 11, version 22H2, Credential Guard is turned on by default on
devices that meet the requirements. The default enablement is without UEFI Lock, which
allows administrators to disable Credential Guard remotely, if needed.
If Credential Guard or VBS are disabled before a device is updated to Windows 11,
version 22H2 or later, default enablement doesn't overwrite the existing settings.
While the default state of Credential Guard changed, system administrators can enable
or disable it using one of the methods described in this article.
) Important
For information about known issues related to default enablement, see Credential
Guard: known issues.
7 Note
Devices running Windows 11 Pro/Pro Edu 22H2 or later may have Virtualization-
based Security (VBS) and/or Credential Guard automatically enabled if they meet
the other requirements for default enablement, and have previously run Credential
Guard. For example if Credential Guard was enabled on an Enterprise device that
later downgraded to Pro.
To determine whether the Pro device is in this state, check if the following registry
key exists:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\Isolat
Microsoft Intune/MDM
Group policy
Registry
The following instructions provide details how to configure your devices. Select the
option that best suits your needs.
Intune/MDM
) Important
If you want to be able to turn off Credential Guard remotely, choose the option
Enabled without lock.
Assign the policy to a group that contains as members the devices or users that you
want to configure.
Tip
You can also configure Credential Guard by using an account protection profile
in endpoint security. For more information, see Account protection policy
settings for endpoint security in Microsoft Intune.
Alternatively, you can configure devices using a custom policy with the DeviceGuard
Policy CSP.
Setting
System Information
PowerShell
Event Viewer
System Information
You can use System Information to determine whether Credential Guard is running on a
device.
PowerShell
Event viewer
Perform regular reviews of the devices that have Credential Guard enabled, using
security audit policies or WMI queries.
Open the Event Viewer ( eventvwr.exe ) and go to Windows Logs\System and filter the
event sources for WinInit:
Event ID
Description
13 (Information)
logging
Credential Guard (LsaIso.exe) was started and will protect LSA credentials.
14 (Information)
logging
The first variable: 0x1 or 0x2 means that Credential Guard is configured to run. 0x0
means that it's not configured to run.
The second variable: 0 means that it's configured to run in protect mode. 1 means
that it's configured to run in test mode. This variable should always be 0.
15 (Warning)
logging
16 (Warning)
logging
17
logging
The following event indicates whether TPM is used for key protection. Path:
Applications and Services logs > Microsoft > Windows > Kernel-Boot
Event ID
Description
51 (Information)
logging
VSM Master Encryption Key Provisioning. Using cached copy status: 0x0.
Unsealing cached copy status: 0x1. New key generation status: 0x1. Sealing
status: 0x1. TPM PCR mask: 0x0.
If you're running with a TPM, the TPM PCR mask value is something other than 0.
The following instructions provide details how to configure your devices. Select the
option that best suits your needs.
Intune/MDM
To configure devices using Microsoft Intune, create a Settings catalog policy and
use the following settings:
Assign the policy to a group that contains as members the devices or users that you
want to configure.
Alternatively, you can configure devices using a custom policy with the DeviceGuard
Policy CSP.
Setting
7 Note
This scenario requires physical presence at the machine to press a function key to
accept the change.
2. Delete the Credential Guard EFI variables by using bcdedit. From an elevated
command prompt, type the following commands:
mountvol X: /s
copy %WINDIR%\System32\SecConfig.efi
X:\EFI\Microsoft\Boot\SecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool"
/application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path
"\EFI\Microsoft\Boot\SecConfig.efi"
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-
d86a476d7215}
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions
DISABLE-LSA-ISO
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
mountvol X: /d
3. Restart the device. Before the OS boots, a prompt appears notifying that UEFI was
modified, and asking for confirmation. The prompt must be confirmed for the
changes to persist.
PowerShell
Set-VMSecurity -VMName <VMName> -VirtualizationBasedSecurityOptOut $true
) Important
Other security features beside Credential Guard rely on VBS. Disabling VBS may
have unintended side effects.
Microsoft Intune/MDM
Group policy
Registry
The following instructions provide details how to configure your devices. Select the
option that best suits your needs.
Intune/MDM
To configure devices using Microsoft Intune, create a Settings catalog policy and
use the following settings:
Assign the policy to a group that contains as members the devices or users that you
want to configure.
Alternatively, you can configure devices using a custom policy with the DeviceGuard
Policy CSP.
Setting
If Credential Guard is enabled with UEFI Lock, the EFI variables stored in firmware must
be cleared using the command bcdedit.exe . From an elevated command prompt, run
the following commands:
Next steps
Review the advice and sample code for making your environment more secure and
robust with Credential Guard in the Additional mitigations article
Review considerations and known issues when using Credential Guard
Additional mitigations
Article • 09/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
Credential Guard offers mitigations against attacks on derived credentials, preventing the
use of stolen credentials elsewhere. However, devices can still be vulnerable to certain
attacks, even if the derived credentials are protected by Credential Guard. These attacks
can include abusing privileges and use of derived credentials directly from a compromised
device, re-using stolen credentials prior to the enablement of Credential Guard, and abuse
of management tools and weak application configurations. Because of this, additional
mitigation also must be deployed to make the domain environment more robust.
The following table list qualifications for improved security. We recommend meeting the
additional qualifications to strengthen the level of security that Credential Guard can
provide.
Secure Boot - BIOS password or stronger authentication must be supported - Prevent other
configuration - In the BIOS configuration, BIOS authentication must be set operating systems
and - There must be support for protected BIOS option to configure list of from starting
management permitted boot devices (for example, Boot only from internal hard -Prevent changes
drive) and boot device order, overriding BOOTORDER modification made to the BIOS
by the operating system settings
Hardware - Boot Integrity (Platform Secure Boot) must be supported. See the - Boot Integrity
Rooted Trust Windows Hardware Compatibility Program requirements under (Platform Secure
Platform System.Fundamentals.Firmware.CS.UEFISecureBoot.ConnectedStandby Boot) from Power-
Secure Boot - Hardware Security Test Interface (HSTI) must be implemented. See On provides
Hardware Security Testability Specification protections against
physically present
attackers, and
defense-in-depth
against malware.
- HSTI provides
security assurance
for correctly
Protection Requirements Security Benefits
Firmware - Firmware must support field updates through Windows Update and Helps ensure that
Update UEFI encapsulation update firmware updates
through are fast, secure,
Windows and reliable.
Update
Securing - Required BIOS capabilities: ability of OEM to add ISV, OEM, or - Enterprises can
Boot Enterprise Certificate in Secure Boot DB at manufacturing time choose to allow
Configuration - Required configurations: Microsoft UEFI CA must be removed from proprietary EFI
and Secure Boot DB. Support for 3rd-party UEFI modules is permitted but drivers/applications
Management should use ISV-provided certificates or OEM certificate for the specific to run
UEFI software - Removing
Microsoft UEFI CA
from Secure Boot
DB provides full
control to
enterprises over
software that runs
before the
operating system
boots
VBS - VBS enables NX protection on UEFI runtime service code and data - Vulnerabilities in
enablement memory regions. UEFI runtime service code must support read-only UEFI runtime, if
of No- page protections, and UEFI runtime service data must not be any, are blocked
Execute (NX) executable. UEFI runtime service must meet the following from
protection requirements: compromising VBS
for UEFI - Implement UEFI 2.6 EFI_MEMORY_ATTRIBUTES_TABLE . All UEFI (such as in
runtime runtime service memory (code and data) must be described by this functions like
services table UpdateCapsule and
- PE sections must be page-aligned in memory (not required for in SetVariable)
non-volatile storage). - Reduces the
- The Memory Attributes Table needs to correctly mark code and attack surface to
data as RO/NX for configuration by the OS VBS from system
- All entries must include attributes EFI_MEMORY_RO , EFI_MEMORY_XP , firmware.
or both.
- No entries may be left with neither of the above attributes,
indicating memory that is both executable and writable. Memory
must be either readable and executable or writable and non-
executable
(SEE IMPORTANT INFORMATION AFTER THIS TABLE)
Firmware - The Windows SMM Security Mitigations Table (WSMT) - Protects against
support for specification contains details of an ACPI table that was created for potential
SMM use with Windows operating systems that support Windows vulnerabilities in
protection virtualization-based features. UEFI runtime
services, if any, will
Protection Requirements Security Benefits
be blocked from
compromising VBS
(such as in
functions like
UpdateCapsule
and SetVariable)
- Reduces the
attack surface to
VBS from system
firmware
- Blocks additional
security attacks
against SMM
) Important
It only applies to UEFI runtime service memory, and not UEFI boot service
memory
The protection is applied by VBS on OS page tables
Don't use sections that are both writable and executable
Don't attempt to directly modify executable system memory
Don't use dynamic code
Kerberos armoring
Kerberos armoring is part of RFC 6113. When a device supports Kerberos armoring, its TGT
is used to protect the user's proof of possession which can mitigate offline dictionary
attacks. Kerberos armoring also provides the additional benefit of signed KDC errors this
mitigates tampering which can result in things such as downgrade attacks.
Users need to be in domains that are running Windows Server 2012 R2 or higher
All the domain controllers in these domains must be configured to support Kerberos
armoring. Set the KDC support for claims, compound authentication, and Kerberos
armoring Group Policy setting to either Supported or Always provide claims.
All the devices with Credential Guard that the users will be restricted to must be
configured to support Kerberos armoring. Enable the Kerberos client support for
claims, compound authentication and Kerberos armoring Group Policy settings
under Computer Configuration -> Administrative Templates -> System -> Kerberos.
Devices' accounts are in Windows Server 2012 domain functional level or higher.
All domain controllers in those domains have KDC certificates which satisfy strict KDC
validation certificate requirements:
KDC EKU present
DNS domain name matches the DNSName field of the SubjectAltName (SAN)
extension
Windows devices have the CA issuing the domain controller certificates in the
enterprise store.
A process is established to ensure the identity and trustworthiness of the device in a
similar manner as you would establish the identity and trustworthiness of a user
before issuing them a smartcard.
To guarantee that certificates with the required issuance policy are only installed on the
devices these users must use, they must be deployed manually on each device. The same
security procedures used for issuing smart cards to users should be applied to device
certificates.
For example, let's say you wanted to use the High Assurance policy only on these devices.
Using a Windows Server Enterprise certificate authority, you would create a new template.
1. From the Certificate Manager console, right-click Certificate Templates > Manage
2. Right-click Workstation Authentication > Duplicate Template
3. Right-click the new template, and then select Properties
4. On the Extensions tab, select Application Policies > Edit
5. Select Client Authentication, and then select Remove
6. Add the ID-PKInit-KPClientAuth EKU. Select Add > New, and then specify the
following values:
Then on the devices that are running Credential Guard, enroll the devices using the
certificate you just created.
PowerShell
7 Note
You must restart the device after enrolling the machine authentication certificate.
Beginning with the Windows Server 2008 R2 domain functional level, domain controllers
support for authentication mechanism assurance provides a way to map certificate
issuance policy OIDs to universal security groups. Windows Server 2012 domain controllers
with claim support can map them to claims. To learn more about authentication
mechanism assurance, see Authentication Mechanism Assurance for AD DS in Windows
Server 2008 R2 Step-by-Step Guide on TechNet.
To see the issuance policies available
The get-IssuancePolicy.ps1 shows all of the issuance policies that are available on the
certificate authority.
From a Windows PowerShell command prompt, run the following command:
PowerShell
.\get-IssuancePolicy.ps1 -LinkedToGroup:All
PowerShell
Created a special certificate issuance policy to identify devices that meet the
deployment criteria required for the user to be able to sign on
Mapped that policy to a universal security group or claim
Provided a way for domain controllers to get the device authorization data during
user sign-on using Kerberos armoring. Now what is left to do is to configure the
access check on the domain controllers. This is done using authentication policies.
User accounts are in a Windows Server 2012 domain functional level or higher
domain.
7 Note
When the authentication policy enforces policy restrictions, users will not be able to
sign on using devices that do not have a certificate with the appropriate issuance
policy deployed. This applies to both local and remote sign on scenarios. Therefore, it
is strongly recommended to first only audit policy restrictions to ensure you don't
have unexpected failures.
To learn more about authentication policy events, see Authentication Policies and
Authentication Policy Silos.
Appendix: Scripts
Here is a list of scripts mentioned in this topic.
#######################################
## Parameters to be defined ##
## by the user ##
#######################################
Param (
$Identity,
$LinkedToGroup
)
#######################################
## Strings definitions ##
#######################################
Data getIP_strings {
# culture="en-US"
ConvertFrom-StringData -stringdata @'
help1 = This command can be used to retrieve all available Issuance Policies
in a forest. The forest of the currently logged on user is targeted.
help2 = Usage:
help3 = The following parameter is mandatory:
help4 = -LinkedToGroup:<yes|no|all>
help5 = "yes" will return only Issuance Policies that are linked to groups.
Checks that the linked Issuance Policies are linked to valid groups.
help6 = "no" will return only Issuance Policies that are not currently linked
to any group.
help7 = "all" will return all Issuance Policies defined in the forest. Checks
that the linked Issuance policies are linked to valid groups.
help8 = The following parameter is optional:
help9 = -Identity:<Name, Distinguished Name or Display Name of the Issuance
Policy that you want to retrieve>. If you specify an identity, the option
specified in the "-LinkedToGroup" parameter is ignored.
help10 = Output: This script returns the Issuance Policy objects meeting the
criteria defined by the above parameters.
help11 = Examples:
errorIPNotFound = Error: no Issuance Policy could be found with Identity "{0}"
ErrorNotSecurity = Error: Issuance Policy "{0}" is linked to group "{1}" which
is not of type "Security".
ErrorNotUniversal = Error: Issuance Policy "{0}" is linked to group "{1}"
whose scope is not "Universal".
ErrorHasMembers = Error: Issuance Policy "{0}" is linked to group "{1}" which
has a non-empty membership. The group has the following members:
LinkedIPs = The following Issuance Policies are linked to groups:
displayName = displayName : {0}
Name = Name : {0}
dn = distinguishedName : {0}
InfoName = Linked Group Name: {0}
InfoDN = Linked Group DN: {0}
NonLinkedIPs = The following Issuance Policies are NOT linked to groups:
'@
}
##Import-LocalizedData getIP_strings
import-module ActiveDirectory
#######################################
## Help ##
#######################################
function Display-Help {
""
$getIP_strings.help1
""
$getIP_strings.help2
""
$getIP_strings.help3
" " + $getIP_strings.help4
" " + $getIP_strings.help5
" " + $getIP_strings.help6
" " + $getIP_strings.help7
""
$getIP_strings.help8
" " + $getIP_strings.help9
""
$getIP_strings.help10
""
""
$getIP_strings.help11
" " + '$' + "myIPs = .\get-IssuancePolicy.ps1 -LinkedToGroup:All"
" " + '$' + "myLinkedIPs = .\get-IssuancePolicy.ps1 -
LinkedToGroup:yes"
" " + '$' + "myIP = .\get-IssuancePolicy.ps1 -Identity:""Medium
Assurance"""
""
}
$root = get-adrootdse
$domain = get-addomain -current loggedonuser
$configNCDN = [String]$root.configurationNamingContext
if ( !($Identity) -and !($LinkedToGroup) ) {
display-Help
break
}
if ($Identity) {
$OIDs = get-adobject -Filter {(objectclass -eq "msPKI-Enterprise-Oid") -
and ((name -eq $Identity) -or (displayname -eq $Identity) -or
(distinguishedName -like $Identity)) } -searchBase $configNCDN -properties *
if ($OIDs -eq $null) {
$errormsg = $getIP_strings.ErrorIPNotFound -f $Identity
write-host $errormsg -ForegroundColor Red
}
foreach ($OID in $OIDs) {
if ($OID."msDS-OIDToGroupLink") {
# In case the Issuance Policy is linked to a group, it is good to check
whether there is any problem with the mapping.
$groupDN = $OID."msDS-OIDToGroupLink"
$group = get-adgroup -Identity $groupDN
$groupName = $group.Name
# Analyze the group
if ($group.groupCategory -ne "Security") {
$errormsg = $getIP_strings.ErrorNotSecurity -f $Identity, $groupName
write-host $errormsg -ForegroundColor Red
}
if ($group.groupScope -ne "Universal") {
$errormsg = $getIP_strings.ErrorNotUniversal -f $Identity,
$groupName
write-host $errormsg -ForegroundColor Red
}
$members = Get-ADGroupMember -Identity $group
if ($members) {
$errormsg = $getIP_strings.ErrorHasMembers -f $Identity,
$groupName
write-host $errormsg -ForegroundColor Red
foreach ($member in $members) {
write-host " " $member -ForeGroundColor Red
}
}
}
}
return $OIDs
break
}
if (($LinkedToGroup -eq "yes") -or ($LinkedToGroup -eq "all")) {
$LDAPFilter = "(&(objectClass=msPKI-Enterprise-Oid)(msDS-OIDToGroupLink=*)
(flags=2))"
$LinkedOIDs = get-adobject -searchBase $configNCDN -LDAPFilter $LDAPFilter
-properties *
write-host ""
write-host "*****************************************************"
write-host $getIP_strings.LinkedIPs
write-host "*****************************************************"
write-host ""
if ($LinkedOIDs -ne $null){
foreach ($OID in $LinkedOIDs) {
# Display basic information about the Issuance Policies
""
$getIP_strings.displayName -f $OID.displayName
$getIP_strings.Name -f $OID.Name
$getIP_strings.dn -f $OID.distinguishedName
# Get the linked group.
$groupDN = $OID."msDS-OIDToGroupLink"
$group = get-adgroup -Identity $groupDN
$getIP_strings.InfoName -f $group.Name
$getIP_strings.InfoDN -f $groupDN
# Analyze the group
$OIDName = $OID.displayName
$groupName = $group.Name
if ($group.groupCategory -ne "Security") {
$errormsg = $getIP_strings.ErrorNotSecurity -f $OIDName, $groupName
write-host $errormsg -ForegroundColor Red
}
if ($group.groupScope -ne "Universal") {
$errormsg = $getIP_strings.ErrorNotUniversal -f $OIDName, $groupName
write-host $errormsg -ForegroundColor Red
}
$members = Get-ADGroupMember -Identity $group
if ($members) {
$errormsg = $getIP_strings.ErrorHasMembers -f $OIDName, $groupName
write-host $errormsg -ForegroundColor Red
foreach ($member in $members) {
write-host " " $member -ForeGroundColor Red
}
}
write-host ""
}
}else{
write-host "There are no issuance policies that are mapped to a group"
}
if ($LinkedToGroup -eq "yes") {
return $LinkedOIDs
break
}
}
if (($LinkedToGroup -eq "no") -or ($LinkedToGroup -eq "all")) {
$LDAPFilter = "(&(objectClass=msPKI-Enterprise-Oid)(!(msDS-
OIDToGroupLink=*))(flags=2))"
$NonLinkedOIDs = get-adobject -searchBase $configNCDN -LDAPFilter
$LDAPFilter -properties *
write-host ""
write-host "*********************************************************"
write-host $getIP_strings.NonLinkedIPs
write-host "*********************************************************"
write-host ""
if ($NonLinkedOIDs -ne $null) {
foreach ($OID in $NonLinkedOIDs) {
# Display basic information about the Issuance Policies
write-host ""
$getIP_strings.displayName -f $OID.displayName
$getIP_strings.Name -f $OID.Name
$getIP_strings.dn -f $OID.distinguishedName
write-host ""
}
}else{
write-host "There are no issuance policies which are not mapped to groups"
}
if ($LinkedToGroup -eq "no") {
return $NonLinkedOIDs
break
}
}
7 Note
If you're having trouble running this script, try replacing the single quote after the
ConvertFrom-StringData parameter.
PowerShell
#######################################
## Parameters to be defined ##
## by the user ##
#######################################
Param (
$IssuancePolicyName,
$groupOU,
$groupName
)
#######################################
## Strings definitions ##
#######################################
Data ErrorMsg {
# culture="en-US"
ConvertFrom-StringData -stringdata @'
help1 = This command can be used to set the link between a certificate
issuance policy and a universal security group.
help2 = Usage:
help3 = The following parameters are required:
help4 = -IssuancePolicyName:<name or display name of the issuance policy that
you want to link to a group>
help5 = -groupName:<name of the group you want to link the issuance policy
to>. If no name is specified, any existing link to a group is removed from the
Issuance Policy.
help6 = The following parameter is optional:
help7 = -groupOU:<Name of the Organizational Unit dedicated to the groups
which are linked to issuance policies>. If this parameter is not specified,
the group is looked for or created in the Users container.
help8 = Examples:
help9 = This command will link the issuance policy whose display name is "High
Assurance" to the group "HighAssuranceGroup" in the Organizational Unit
"OU_FOR_IPol_linked_groups". If the group or the Organizational Unit do not
exist, you will be prompted to create them.
help10 = This command will unlink the issuance policy whose name is
"402.164959C40F4A5C12C6302E31D5476062" from any group.
MultipleIPs = Error: Multiple Issuance Policies with name or display name "
{0}" were found in the subtree of "{1}"
NoIP = Error: no issuance policy with name or display name "{0}" could be
found in the subtree of "{1}".
IPFound = An Issuance Policy with name or display name "{0}" was successfully
found: {1}
MultipleOUs = Error: more than 1 Organizational Unit with name "{0}" could be
found in the subtree of "{1}".
confirmOUcreation = Warning: The Organizational Unit that you specified does
not exist. Do you want to create it?
OUCreationSuccess = Organizational Unit "{0}" successfully created.
OUcreationError = Error: Organizational Unit "{0}" could not be created.
OUFoundSuccess = Organizational Unit "{0}" was successfully found.
multipleGroups = Error: More than one group with name "{0}" was found in
Organizational Unit "{1}".
confirmGroupCreation = Warning: The group that you specified does not exist.
Do you want to create it?
groupCreationSuccess = Univeral Security group "{0}" successfully created.
groupCreationError = Error: Univeral Security group "{0}" could not be
created.
GroupFound = Group "{0}" was successfully found.
confirmLinkDeletion = Warning: The Issuance Policy "{0}" is currently linked
to group "{1}". Do you really want to remove the link?
UnlinkSuccess = Certificate issuance policy successfully unlinked from any
group.
UnlinkError = Removing the link failed.
UnlinkExit = Exiting without removing the link from the issuance policy to the
group.
IPNotLinked = The Certificate issuance policy is not currently linked to any
group. If you want to link it to a group, you should specify the -groupName
option when starting this script.
ErrorNotSecurity = Error: You cannot link issuance Policy "{0}" to group "{1}"
because this group is not of type "Security".
ErrorNotUniversal = Error: You cannot link issuance Policy "{0}" to group "
{1}" because the scope of this group is not "Universal".
ErrorHasMembers = Error: You cannot link issuance Policy "{0}" to group "{1}"
because it has a non-empty membership. The group has the following members:
ConfirmLinkReplacement = Warning: The Issuance Policy "{0}" is currently
linked to group "{1}". Do you really want to update the link to point to group
"{2}"?
LinkSuccess = The certificate issuance policy was successfully linked to the
specified group.
LinkError = The certificate issuance policy could not be linked to the
specified group.
ExitNoLinkReplacement = Exiting without setting the new link.
'@
}
# import-localizeddata ErrorMsg
function Display-Help {
""
write-host $ErrorMsg.help1
""
write-host $ErrorMsg.help2
""
write-host $ErrorMsg.help3
write-host "`t" $ErrorMsg.help4
write-host "`t" $ErrorMsg.help5
""
write-host $ErrorMsg.help6
write-host "`t" $ErrorMsg.help7
""
""
write-host $ErrorMsg.help8
""
write-host $ErrorMsg.help9
".\Set-IssuancePolicyToGroupMapping.ps1 -IssuancePolicyName ""High Assurance""
-groupOU ""OU_FOR_IPol_linked_groups"" -groupName ""HighAssuranceGroup"" "
""
write-host $ErrorMsg.help10
'.\Set-IssuancePolicyToGroupMapping.ps1 -IssuancePolicyName
"402.164959C40F4A5C12C6302E31D5476062" -groupName $null '
""
}
# Assumption: The group to which the Issuance Policy is going
# to be linked is (or is going to be created) in
# the domain the user running this script is a member of.
import-module ActiveDirectory
$root = get-adrootdse
$domain = get-addomain -current loggedonuser
if ( !($IssuancePolicyName) ) {
display-Help
break
}
#######################################
## Find the OID object ##
## (aka Issuance Policy) ##
#######################################
$searchBase = [String]$root.configurationnamingcontext
$OID = get-adobject -searchBase $searchBase -Filter { ((displayname -eq
$IssuancePolicyName) -or (name -eq $IssuancePolicyName)) -and (objectClass -eq
"msPKI-Enterprise-Oid")} -properties *
if ($OID -eq $null) {
$tmp = $ErrorMsg.NoIP -f $IssuancePolicyName, $searchBase
write-host $tmp -ForeGroundColor Red
break;
}
elseif ($OID.GetType().IsArray) {
$tmp = $ErrorMsg.MultipleIPs -f $IssuancePolicyName, $searchBase
write-host $tmp -ForeGroundColor Red
break;
}
else {
$tmp = $ErrorMsg.IPFound -f $IssuancePolicyName, $OID.distinguishedName
write-host $tmp -ForeGroundColor Green
}
#######################################
## Find the container of the group ##
#######################################
if ($groupOU -eq $null) {
# default to the Users container
$groupContainer = $domain.UsersContainer
}
else {
$searchBase = [string]$domain.DistinguishedName
$groupContainer = get-adobject -searchBase $searchBase -Filter { (Name -eq
$groupOU) -and (objectClass -eq "organizationalUnit")}
if ($groupContainer.count -gt 1) {
$tmp = $ErrorMsg.MultipleOUs -f $groupOU, $searchBase
write-host $tmp -ForegroundColor Red
break;
}
elseif ($groupContainer -eq $null) {
$tmp = $ErrorMsg.confirmOUcreation
write-host $tmp " ( (y)es / (n)o )" -ForegroundColor Yellow -nonewline
$userChoice = read-host
if ( ($userChoice -eq "y") -or ($userChoice -eq "yes") ) {
new-adobject -Name $groupOU -displayName $groupOU -Type "organizationalUnit" -
ProtectedFromAccidentalDeletion $true -path $domain.distinguishedName
if ($?){
$tmp = $ErrorMsg.OUCreationSuccess -f $groupOU
write-host $tmp -ForegroundColor Green
}
else{
$tmp = $ErrorMsg.OUCreationError -f $groupOU
write-host $tmp -ForeGroundColor Red
break;
}
$groupContainer = get-adobject -searchBase $searchBase -Filter { (Name -eq
$groupOU) -and (objectClass -eq "organizationalUnit")}
}
else {
break;
}
}
else {
$tmp = $ErrorMsg.OUFoundSuccess -f $groupContainer.name
write-host $tmp -ForegroundColor Green
}
}
#######################################
## Find the group ##
#######################################
if (($groupName -ne $null) -and ($groupName -ne "")){
##$searchBase = [String]$groupContainer.DistinguishedName
$searchBase = $groupContainer
$group = get-adgroup -Filter { (Name -eq $groupName) -and (objectClass -eq
"group") } -searchBase $searchBase
if ($group -ne $null -and $group.gettype().isarray) {
$tmp = $ErrorMsg.multipleGroups -f $groupName, $searchBase
write-host $tmp -ForeGroundColor Red
break;
}
elseif ($group -eq $null) {
$tmp = $ErrorMsg.confirmGroupCreation
write-host $tmp " ( (y)es / (n)o )" -ForegroundColor Yellow -nonewline
$userChoice = read-host
if ( ($userChoice -eq "y") -or ($userChoice -eq "yes") ) {
new-adgroup -samAccountName $groupName -path $groupContainer.distinguishedName
-GroupScope "Universal" -GroupCategory "Security"
if ($?){
$tmp = $ErrorMsg.GroupCreationSuccess -f $groupName
write-host $tmp -ForegroundColor Green
}else{
$tmp = $ErrorMsg.groupCreationError -f $groupName
write-host $tmp -ForeGroundColor Red
break
}
$group = get-adgroup -Filter { (Name -eq $groupName) -and (objectClass -eq
"group") } -searchBase $searchBase
}
else {
break;
}
}
else {
$tmp = $ErrorMsg.GroupFound -f $group.Name
write-host $tmp -ForegroundColor Green
}
}
else {
#####
## If the group is not specified, we should remove the link if any exists
#####
if ($OID."msDS-OIDToGroupLink" -ne $null) {
$tmp = $ErrorMsg.confirmLinkDeletion -f $IssuancePolicyName, $OID."msDS-
OIDToGroupLink"
write-host $tmp " ( (y)es / (n)o )" -ForegroundColor Yellow -nonewline
$userChoice = read-host
if ( ($userChoice -eq "y") -or ($userChoice -eq "yes") ) {
set-adobject -Identity $OID -Clear "msDS-OIDToGroupLink"
if ($?) {
$tmp = $ErrorMsg.UnlinkSuccess
write-host $tmp -ForeGroundColor Green
}else{
$tmp = $ErrorMsg.UnlinkError
write-host $tmp -ForeGroundColor Red
}
}
else {
$tmp = $ErrorMsg.UnlinkExit
write-host $tmp
break
}
}
else {
$tmp = $ErrorMsg.IPNotLinked
write-host $tmp -ForeGroundColor Yellow
}
break;
}
#######################################
## Verify that the group is ##
## Universal, Security, and ##
## has no members ##
#######################################
if ($group.GroupScope -ne "Universal") {
$tmp = $ErrorMsg.ErrorNotUniversal -f $IssuancePolicyName, $groupName
write-host $tmp -ForeGroundColor Red
break;
}
if ($group.GroupCategory -ne "Security") {
$tmp = $ErrorMsg.ErrorNotSecurity -f $IssuancePolicyName, $groupName
write-host $tmp -ForeGroundColor Red
break;
}
$members = Get-ADGroupMember -Identity $group
if ($members -ne $null) {
$tmp = $ErrorMsg.ErrorHasMembers -f $IssuancePolicyName, $groupName
write-host $tmp -ForeGroundColor Red
foreach ($member in $members) {write-host " $member.name" -ForeGroundColor
Red}
break;
}
#######################################
## We have verified everything. We ##
## can create the link from the ##
## Issuance Policy to the group. ##
#######################################
if ($OID."msDS-OIDToGroupLink" -ne $null) {
$tmp = $ErrorMsg.ConfirmLinkReplacement -f $IssuancePolicyName, $OID."msDS-
OIDToGroupLink", $group.distinguishedName
write-host $tmp "( (y)es / (n)o )" -ForegroundColor Yellow -nonewline
$userChoice = read-host
if ( ($userChoice -eq "y") -or ($userChoice -eq "yes") ) {
$tmp = @{'msDS-OIDToGroupLink'= $group.DistinguishedName}
set-adobject -Identity $OID -Replace $tmp
if ($?) {
$tmp = $Errormsg.LinkSuccess
write-host $tmp -Foreground Green
}else{
$tmp = $ErrorMsg.LinkError
write-host $tmp -Foreground Red
}
} else {
$tmp = $Errormsg.ExitNoLinkReplacement
write-host $tmp
break
}
}
else {
$tmp = @{'msDS-OIDToGroupLink'= $group.DistinguishedName}
set-adobject -Identity $OID -Add $tmp
if ($?) {
$tmp = $Errormsg.LinkSuccess
write-host $tmp -Foreground Green
}else{
$tmp = $ErrorMsg.LinkError
write-host $tmp -Foreground Red
}
}
7 Note
If you're having trouble running this script, try replacing the single quote after the
ConvertFrom-StringData parameter.
Considerations and known issues when
using Credential Guard
Article • 09/05/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
If you're using WiFi and VPN endpoints that are based on MS-CHAPv2, they're subject
to similar attacks as for NTLMv1.
For WiFi and VPN connections, it's recommended to move from MSCHAPv2-based
connections (such as PEAP-MSCHAPv2 and EAP-MSCHAPv2), to certificate-based
authentication (such as PEAP-TLS or EAP-TLS).
Kerberos considerations
When you enable Credential Guard, you can no longer use Kerberos unconstrained
delegation or DES encryption. Unconstrained delegation could allow attackers to extract
Kerberos keys from the isolated LSA process.
Use constrained or resource-based Kerberos delegation instead.
For more information, see Restrictions around Registering and Installing a Security
Package.
Upgrade considerations
As the depth and breadth of protections provided by Credential Guard are increased,
new releases of Windows with Credential Guard running may affect scenarios that were
working in the past. For example, Credential Guard may block the use of a particular
type of credential or a particular component to prevent malware from taking advantage
of vulnerabilities.
Windows credentials
Certificate-based credentials
Generic credentials
Domain credentials that are stored in Credential Manager are protected with Credential
Guard.
Generic credentials, such as user names and passwords that you use to sign in websites,
aren't protected since the applications require your clear-text password. If the
application doesn't need a copy of the password, they can save domain credentials as
Windows credentials that are protected. Windows credentials are used to connect to
other computers on a network.
The following considerations apply to the Credential Guard protections for Credential
Manager:
Windows credentials saved by the Remote Desktop client can't be sent to a remote
host. Attempts to use saved Windows credentials fail, displaying the error message
Logon attempt failed
Applications that extract Windows credentials fail
When credentials are backed up from a PC that has Credential Guard enabled, the
Windows credentials can't be restored. If you need to back up your credentials,
you must do so before you enable Credential Guard
2 Warning
Clearing the TPM results in loss of protected data for all features that use VBS to
protect data.
When a TPM is cleared, all features that use VBS to protect data can no longer
decrypt their protected data.
As a result, Credential Guard can no longer decrypt protected data. VBS creates a new
TPM protected key for Credential Guard. Credential Guard uses the new key to protect
new data. However, the previously protected data is lost forever.
7 Note
Credential Guard obtains the key during initialization. The data loss will only impact
persistent data and occur after the next system startup.
Also if any access control checks including authentication policies require devices to
have either the KEY TRUST IDENTITY (S-1-18-4) or FRESH PUBLIC KEY IDENTITY (S-1-18-
3) well-known SIDs, then those access checks fail. For more information about
authentication policies, see Authentication Policies and Authentication Policy Silos. For
more information about well-known SIDs, see [MS-DTYP] Section 2.4.2.4 Well-known
SID Structures.
) Important
Auto VPN configuration is protected with user DPAPI. User may not be able to use VPN
to connect to domain controllers since the VPN configurations are lost. If you must clear
the TPM on a domain-joined device without connectivity to domain controllers, then
you should consider the following.
Domain user sign-in on a domain-joined device after clearing a TPM for as long as
there's no connectivity to a domain controller:
Certificate (smart card or All data protected with user DPAPI is unusable and user DPAPI
Windows Hello for Business) doesn't work at all.
When data protected with user DPAPI is unusable, then the user loses access to all work
data protected by Windows Information Protection. The impact includes: Outlook is
unable to start and work protected documents can't be opened. If DPAPI is working,
then newly created work data is protected and can be accessed.
Workaround: Users can resolve the problem by connecting their device to the domain
and rebooting or using their Encrypting File System Data Recovery Agent certificate. For
more information about Encrypting File System Data Recovery Agent certificate, see
Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate.
Known issues
Credential Guard blocks certain authentication capabilities. Applications that require
such capabilities won't function when Credential Guard is enabled.
Affected devices
Any device with Credential Guard enabled may encounter the issue. As part of the
Windows 11, version 22H2 update, eligible devices that didn't disable Credential Guard,
have it enabled by default. This affected all devices on Enterprise (E3 and E5) and
Education licenses, as well as some Pro licenses, as long as they met the minimum
hardware requirements.
All Windows Pro devices that previously ran Credential Guard on an eligible license and
later downgraded to Pro, and which still meet the minimum hardware requirements, will
receive default enablement.
Tip
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 . If it's
You can Credential Guard can be disabled after upgrade by following the
disablement instructions.
7 Note
Since only SSO is blocked for MS-CHAP, WDigest, and NTLM v1, these protocols
can still be used by prompting the user to supply credentials.
Event ID (type)
Description
4013 (Warning)
logging
<string
id="NTLMv1BlockedByCredGuard"
value="Attempt to use NTLMv1 failed.
Target server: %1%nSupplied user: %2%nSupplied domain: %3%nPID
of client process: %4%nName
of client process: %5%nLUID
of client process: %6%nUser identity
of client process: %7%nDomain name
of user identity of client process: %8%nMechanism OID: 9%n%n
This device doesn't support NTLMv1.
/>
4014 (Error)
logging
<string
id="NTLMGetCredentialKeyBlockedByCredGuard"
value="Attempt to get credential key by call package blocked by Credential
Guard.%n%n
Calling Process Name: %1%nService Host Tag: %2"
/>
For a more immediate, but less secure fix, disable Credential Guard. Credential Guard
doesn't have per-protocol or per-application policies, and it can either be turned on or
off. If you disable Credential Guard, you leave stored domain credentials vulnerable to
theft.
Tip
Credential guard doesn't work with MSCHAPv2 configurations, of which Cisco ISE
is a common enterprise implementation .
The following issue affects the Java GSS API. See the following Oracle bug database
article:
When Credential Guard is enabled on Windows, the Java GSS API doesn't authenticate.
Credential Guard blocks specific application authentication capabilities and doesn't
provide the TGT session key to applications, regardless of registry key settings. For more
information, see Application requirements.
The following issue affects McAfee Application and Change Control (MACC):
KB88869 Windows machines exhibit high CPU usage with McAfee Application and
Change Control (MACC) installed when Credential Guard is enabled
Windows machines exhibit high CPU usage with Citrix applications installed when
Credential Guard is enabled.
7 Note
For more technical information on LSAISO.exe, see Isolated User Mode (IUM)
Processes.
Vendor support
The following products and services don't support Credential Guard:
Check Point Endpoint Security Client support for Microsoft Credential Guard and
Hypervisor-Protected Code Integrity features
VMware Workstation and Device/Credential Guard aren't compatible error in
VMware Workstation on Windows 10 host (2146361)
ThinkPad support for Hypervisor-Protected Code Integrity and Credential Guard in
Microsoft Windows
Windows devices with Credential Guard and Symantec Endpoint Protection 12.1
) Important
This list isn't comprehensive. Check whether your product vendor, product version,
or computer system supports Credential Guard on systems that run a specific
version of Windows. Specific computer system models may be incompatible with
Credential Guard.
Remote Credential Guard
Article • 09/06/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅ Windows
to: Server 2016
Overview
Remote Credential Guard helps protecting credentials over a Remote Desktop (RDP) connection by
redirecting Kerberos requests back to the device that's requesting the connection. If the target
device is compromised, the credentials aren't exposed because both credential and credential
derivatives are never passed over the network to the target device. Remote Credential Guard also
provides single sign-on experiences for Remote Desktop sessions.
This article describes how to configure and use Remote Credential Guard.
) Important
For information on Remote Desktop connection scenarios involving helpdesk support, see
Remote Desktop connections and helpdesk support scenarios in this article.
Use the following table to compare different Remote Desktop connection security options:
Feature Remote Desktop Remote Credential Restricted Admin mode
Guard
Multi-hop RDP ✅ ✅ ❌
Prevent Pass-the-Hash ❌ ✅ ✅
(PtH)
Supported authentication Any negotiable protocol Kerberos only Any negotiable protocol
Must be running the Remote Desktop Windows application. The Remote Desktop Universal
Windows Platform (UWP) application doesn't support Remote Credential Guard
Must use Kerberos authentication to connect to the remote host. If the client can't connect to
a domain controller, then RDP attempts to fall back to NTLM. Remote Credential Guard does
not allow NTLM fallback because this would expose credentials to risk
Remote Credential Guard license entitlements are granted by the following licenses:
For more information about Windows licensing, see Windows licensing overview.
To enable delegation of nonexportable credentials on the remote hosts, you can use:
Microsoft Intune/MDM
Group policy
Registry
The following instructions provide details how to configure your devices. Select the option that best
suits your needs.
Intune/MDM
To configure devices using Microsoft Intune, create a Settings catalog policy and use the
following settings:
Administrative Templates > System > Remote host allows delegation of Enabled
Credentials Delegation nonexportable credentials
Assign the policy to a group that contains as members the devices or users that you want to
configure.
Alternatively, you can configure devices using a custom policy with the Policy CSP.
Setting
- OMA-URI:
./Device/Vendor/MSFT/Policy/Config/CredentialsDelegation/RemoteHostAllowsDelegationOfNonExportableCredentials
- Data type: string
- Value: <enabled/>
Tip
If you don't want to configure your clients to enforce Remote Credential Guard, you can use
the following command to use Remote Credential Guard for a specific RDP session:
mstsc.exe /remoteGuard
The policy can have different values, depending on the level of security you want to enforce:
Disabled: Restricted Admin and Remote Credential Guard mode aren't enforced and the
Remote Desktop Client can delegate credentials to remote devices
Require Restricted Admin: the Remote Desktop Client must use Restricted Admin to connect
to remote hosts
Require Remote Credential Guard: Remote Desktop Client must use Remote Credential Guard
to connect to remote hosts
Restrict credential delegation: Remote Desktop Client must use Restricted Admin or Remote
Credential Guard to connect to remote hosts. In this configuration, Remote Credential Guard
is preferred, but it uses Restricted Admin mode (if supported) when Remote Credential Guard
can't be used
7 Note
When Restrict Credential Delegation is enabled, the /restrictedAdmin switch will be ignored.
Windows enforces the policy configuration instead and uses Remote Credential Guard.
Microsoft Intune/MDM
Group policy
The following instructions provide details how to configure your devices. Select the option that best
suits your needs.
Intune/MDM
To configure devices using Microsoft Intune, create a Settings catalog policy and use the
following settings:
Administrative Templates > System Restrict delegation of Select Enabled and in the
> Credentials Delegation credentials to remote servers dropdown, select one of the
options:
- Restrict Credential Delegation
- Require Remote Credential
Guard
Assign the policy to a group that contains as members the devices or users that you want to
configure.
Alternatively, you can configure devices using a custom policy with the Policy CSP.
Setting
- OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_CredSsp/RestrictedRemoteAdministration
- Data type: string
- Value: <enabled/><data id=\"RestrictedRemoteAdministrationDrop\" value=\"2\"/>
The user must be authorized to connect to the remote server using the Remote Desktop
protocol, for example by being a member of the Remote Desktop Users local group on the
remote host.
We recommend using Restricted Admin mode option instead. For helpdesk support scenarios, RDP
connections should only be initiated using the /RestrictedAdmin switch. This helps to ensure that
credentials and other user resources aren't exposed to compromised remote hosts. For more
information, see Mitigating Pass-the-Hash and Other Credential Theft v2 .
To further harden security, we also recommend that you implement Windows Local Administrator
Password Solution (LAPS), which automates local administrator password management. LAPS
mitigates the risk of lateral escalation and other cyberattacks facilitated when customers use the
same administrative local account and password combination on all their computers.
Remote Credential Guard doesn't support compound authentication. For example, if you're
trying to access a file server from a remote host that requires a device claim, access will be
denied
Remote Credential Guard can be used only when connecting to a device that is joined to an
Active Directory domain. It can't be used when connecting to remote devices joined to Azure
Active Directory (Azure AD)
Remote Credential Guard can be used from an Azure AD joined client to connect to an Active
Directory joined remote host, as long as the client can authenticate using Kerberos
Remote Credential Guard only works with the RDP protocol
No credentials are sent to the target device, but the target device still acquires Kerberos
Service Tickets on its own
The server and client must authenticate using Kerberos
Remote Credential Guard is only supported for direct connections to the target machines and
not for the ones via Remote Desktop Connection Broker and Remote Desktop Gateway
Configure added LSA protection
Article • 09/27/2023
This article explains how to configure added protection for the Local Security Authority (LSA)
process to prevent code injection that could compromise credentials.
The LSA, which includes the Local Security Authority Server Service (LSASS) process, validates
users for local and remote sign-ins and enforces local security policies. Starting with
Windows 8.1 and later, added protection for the LSA is provided to prevent reading memory
and code injection by nonprotected processes. This feature provides added security for the
credentials that LSA stores and manages. Further protection is achieved when using UEFI lock
and Secure Boot, because disabling the
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa registry key has no effect.
Signature verification
Protected mode requires any plug-in that's loaded into the LSA to be digitally signed with a
Microsoft signature. Any plug-ins that are unsigned or aren't signed with a Microsoft
signature fail to load in LSA. Examples of plug-ins are smart card drivers, cryptographic plug-
ins, and password filters.
LSA plug-ins that are drivers, such as smart card drivers, need to be signed by using the
WHQL Certification. For more information, see WHQL Release Signature.
LSA plug-ins that don't have a WHQL Certification process must be signed by using the
file signing service for LSA.
Identify all of the LSA plug-ins and drivers that your organization uses. Include non-
Microsoft drivers or plug-ins such as smart card drivers and cryptographic plug-ins, and
any internally developed software that's used to enforce password filters or password
change notifications.
Ensure that all of the LSA plug-ins are digitally signed with a Microsoft certificate so
they don't fail to load under LSA protection.
Ensure that all of the correctly signed plug-ins can successfully load into LSA and that
they perform as expected.
Use the audit logs to identify LSA plug-ins and drivers that fail to run as a protected
process.
The events described in this section are located in Event Viewer in the Operational log under
Applications and Services Logs > Microsoft > Windows > CodeIntegrity. These events can
help you identify LSA plug-ins and drivers that fail to load due to signing reasons. To manage
these events, you can use the wevtutil command-line tool. For information about this tool,
see Wevtutil.
) Important
Audit events aren't generated if Smart App Control is enabled on a device. To check
or change the enablement state of Smart App Control, open the Windows Security
Application and go to the App & browser control page. Select Smart App Control
settings to check the enablement state, and change the configuration to Off if you're
trying to audit added LSA protection.
7 Note
Audit mode for added LSA protection is enabled by default on devices running
Windows 11 version 22H2 and higher. If your device is running this build or later, no
other actions are needed to audit added LSA protection.
After taking these steps, analyze the results of event 3065 and event 3066. In Event Viewer,
check for these events in the Operational log under Applications and Services Logs >
Microsoft > Windows > CodeIntegrity.
Event 3065 records that a code integrity check determined that a process, usually
LSASS.exe, attempted to load a driver that didn't meet the security requirements for
Shared Sections. However, due to the system policy currently set, the image was
allowed to load.
Event 3066 records that a code integrity check determined that a process, usually
LSASS.exe, attempted to load a driver that didn't meet the Microsoft signing level
requirements. However, due to the system policy currently set, the image was allowed
to load.
If a plug-in or driver contains Shared Sections, Event 3066 is logged with Event 3065.
Removing the Shared Sections should prevent both events from occurring unless the plug-in
doesn't meet the Microsoft signing level requirements.
) Important
These operational events aren't generated when a kernel debugger is attached and
enabled on a system.
1. Open the Group Policy Management Console (GPMC) by entering gpmc.msc in the Run
dialog box or selecting Group Policy Management Console from the Start menu.
2. Create a new Group Policy Object (GPO) that's linked at the domain level or linked to
the organizational unit that contains your computer accounts. Or, select a GPO that's
already deployed.
3. Right-click the GPO, and then select Edit to open the Group Policy Management Editor.
4. Expand Computer Configuration > Preferences > Windows Settings.
5. Right-click Registry, point to New, and then select Registry Item. The New Registry
Properties dialog box appears.
6. In the Hive list, select HKEY_LOCAL_MACHINE.
7. In the Key Path list, browse to SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution Options\LSASS.exe.
8. In the Value name box, type AuditLevel.
9. In the Value type box, select REG_DWORD.
10. In the Value data box, type 00000008.
11. Select OK.
7 Note
For the GPO to take effect, the GPO change must be replicated to all domain controllers
in the domain.
To opt in for added LSA protection on multiple computers, you can use the Registry Client-
Side Extension for Group Policy to modify
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa. For instructions, see
Configure added LSA credentials protection later in this article.
Check for the following events in Event Viewer Applications and Services Logs > Microsoft
> Windows > CodeIntegrity > Operational:
Event 3033 records that a code integrity check determined that a process, usually
LSASS.exe, attempted to load a driver that didn't meet the Microsoft signing level
requirements.
Event 3063 records that a code integrity check determined that a process, usually
LSASS.exe, attempted to load a driver that didn't meet the security requirements for
Shared Sections.
Shared Sections are typically the result of programming techniques that allow instance data
to interact with other processes that use the same security context, which can create security
vulnerabilities.
When the setting is stored in the firmware, the UEFI variable can't be deleted or changed to
configure added LSA protection by modifying the registry or by policy. The UEFI variable
must be reset by using the instructions at Remove the LSA protection UEFI variable.
When enabled without a UEFI lock, LSASS runs as a protected process and this setting isn't
stored in a UEFI variable. This setting is applied by default on devices with a new install of
Windows 11 version 22H2 or later.
On x86-based or x64-based devices that don't support UEFI or where Secure Boot is
disabled, you can't store the configuration for LSA protection in the firmware. These devices
rely solely on the presence of the registry key. In this scenario, it's possible to disable LSA
protection by using remote access to the device. Disablement of LSA protection doesn't take
effect until the device reboots.
Automatic enablement
For client devices running Windows 11 version 22H2 and later, added LSA protection is
enabled by default if the following criteria are met:
The device is a new install of Windows 11 version 22H2 or later, not upgraded from a
previous release.
The device is enterprise joined (Active Directory domain joined, Azure AD domain
joined, or hybrid Azure AD domain joined).
The device is capable of Hypervisor-protected code integrity (HVCI).
Automatic enablement of added LSA protection on Windows 11 version 22H2 and later
doesn't set a UEFI variable for the feature. If you want to set a UEFI variable, you can use a
registry configuration or policy.
7 Note
For devices running Windows RT 8.1, added LSA protection is always enabled, and it
can't be turned off.
Enabled with UEFI Lock to configure the feature with a UEFI variable.
Enabled without UEFI Lock to configure the feature without a UEFI variable.
6. Select OK.
7. Restart the computer.
1. In the Intune admin center, navigate to Devices > Windows > Configuration profiles
and select Create profile.
2. On the Create a profile screen, select the following options:
3. Select Create.
4. On the Basics screen, enter a Name and optional Description for the profile, and then
select Next.
5. On the Configuration settings screen, select Add.
6. On the Add row screen, provide the following information:
7 Note
If you set this policy to Not Configured and the policy was previously enabled, the prior
setting doesn't get cleaned up and continues to be enforced. You must set the policy to
Disabled under the Options dropdown to disable the feature.
7 Note
The Download Center offers two files named LsaPplConfig.efi. The smaller file is for x86-
based systems and the larger file is for x64-based systems.
For more information about managing Secure Boot, see UEFI Firmware.
U Caution
When Secure Boot is turned off, all the Secure Boot and UEFI-related configurations are
reset. You should turn off Secure Boot only when all other means to disable LSA
protection have failed.
Starting in Windows 10, Credential Guard also helps prevent credential theft attacks by
protecting NTLM password hashes, Kerberos Ticket Granting Tickets (TGTs), and credentials
stored by applications as domain credentials. Kerberos, NTLM, and Credential Manager
isolate secrets by using virtualization-based security (VBS).
With Credential Guard enabled, the LSA process talks to a component called the isolated LSA
process, or LSAIso.exe, that stores and protects secrets. Data stored by the isolated LSA
process is protected by using VBS and isn't accessible to the rest of the operating system.
LSA uses remote procedure calls to communicate with the isolated LSA process.
Starting in Windows 11 version 22H2, VBS and Credential Guard are enabled by default on all
devices that meet the system requirements. Credential Guard is supported on 64-bit Secure
Boot devices only. LSA protection and Credential Guard are complementary, and systems
that support Credential Guard or have it enabled by default can also enable and benefit from
LSA protection. For more information about Credential Guard, see Credential Guard
overview.
More resources
Credential protection and management
Partner Center for Windows Hardware
Local Accounts
Article • 08/03/2023 •
Applies ✅ Windows 11, ✅ Windows 10, ✅ Windows Server 2022, ✅ Windows Server 2019,
to: ✅ Windows Server 2016
This article describes the default local user accounts for Windows operating systems,
and how to manage the built-in accounts.
Default local user accounts are used to manage access to the local device's resources
based on the rights and permissions that are assigned to the account. The default local
user accounts, and the local user accounts that you create, are located in the Users
folder. The Users folder is located in the Local Users and Groups folder in the local
Computer Management Microsoft Management Console (MMC). Computer Management
is a collection of administrative tools that you can use to manage a local or remote
device.
Default local user accounts are described in the following sections. Expand each section
for more information.
Administrator
The default local Administrator account is a user account for system administration.
Every computer has an Administrator account (SID S-1-5-domain-500, display name
Administrator). The Administrator account is the first account that is created during the
Windows installation.
The Administrator account has full control of the files, directories, services, and other
resources on the local device. The Administrator account can create other local users,
assign user rights, and assign permissions. The Administrator account can take control
of local resources at any time by changing the user rights and permissions.
The default Administrator account can't be deleted or locked out, but it can be renamed
or disabled.
Windows setup disables the built-in Administrator account and creates another local
account that is a member of the Administrators group.
Members of the Administrators groups can run apps with elevated permissions without
using the Run as Administrator option. Fast User Switching is more secure than using
runas or different-user elevation.
Security considerations
Because the Administrator account is known to exist on many versions of the Windows
operating system, it's a best practice to disable the Administrator account when possible
to make it more difficult for malicious users to gain access to the server or client
computer.
You can rename the Administrator account. However, a renamed Administrator account
continues to use the same automatically assigned security identifier (SID), which can be
discovered by malicious users. For more information about how to rename or disable a
user account, see Disable or activate a local user account and Rename a local user
account.
As a security best practice, use your local (non-Administrator) account to sign in and
then use Run as administrator to accomplish tasks that require a higher level of rights
than a standard user account. Don't use the Administrator account to sign in to your
computer unless it's entirely necessary. For more information, see Run a program with
administrative credentials.
Group Policy can be used to control the use of the local Administrators group
automatically. For more information about Group Policy, see Group Policy Overview.
) Important
Guest
The Guest account lets occasional or one-time users, who don't have an account on the
computer, temporarily sign in to the local server or client computer with limited user
rights. By default, the Guest account is disabled and has a blank password. Since the
Guest account can provide anonymous access, it's considered a security risk. For this
reason, it's a best practice to leave the Guest account disabled, unless its use is
necessary.
By default, the Guest account is the only member of the default Guests group SID S-1-
5-32-546 , which lets a user sign in to a device.
In addition, the guest user in the Guest account shouldn't be able to view the event logs.
After the Guest account is enabled, it's a best practice to monitor the Guest account
frequently to ensure that other users can't use services and other resources. This
includes resources that were unintentionally left available by a previous user.
HelpAssistant
The HelpAssistant account is a default local account that is enabled when a Remote
Assistance session is run. This account is automatically disabled when no Remote
Assistance requests are pending.
HelpAssistant is the primary account that is used to establish a Remote Assistance
session. The Remote Assistance session is used to connect to another computer running
the Windows operating system, and it's initiated by invitation. For solicited remote
assistance, a user sends an invitation from their computer, through e-mail or as a file, to
a person who can provide assistance. After the user's invitation for a Remote Assistance
session is accepted, the default HelpAssistant account is automatically created to give
the person who provides assistance limited access to the computer. The HelpAssistant
account is managed by the Remote Desktop Help Session Manager service.
SID: S-1-5-<domain>-13 , display name Terminal Server User. This group includes all
users who sign in to a server with Remote Desktop Services enabled.
SID: S-1-5-<domain>-14 , display name Remote Interactive Logon. This group
includes all users who connect to the computer by using a remote desktop
connection. This group is a subset of the Interactive group. Access tokens that
contain the Remote Interactive Logon SID also contain the Interactive SID.
For the Windows Server operating system, Remote Assistance is an optional component
that isn't installed by default. You must install Remote Assistance before it can be used.
For details about the HelpAssistant account attributes, see the following table.
Attribute Value
Type User
Guests
Protected by ADMINSDHOLDER? No
Safe to move out of default container? Can be moved out, but we don't recommend it.
Attribute Value
DefaultAccount
The DefaultAccount account, also known as the Default System Managed Account
(DSMA), is a well-known user account type. DefaultAccount can be used to run
processes that are either multi-user aware or user-agnostic.
The DSMA is disabled by default on the desktop editions and on the Server operating
systems with the desktop experience.
The DSMA has a well-known RID of 503 . The security identifier (SID) of the DSMA will
thus have a well-known SID in the following format: S-1-5-21-\
<ComputerIdentifier>-503 .
The DSMA is a member of the well-known group System Managed Accounts Group,
which has a well-known SID of S-1-5-32-581 .
The DSMA alias can be granted access to resources during offline staging even before
the account itself has been created. The account and the group are created during first
boot of the machine within the Security Accounts Manager (SAM).
MUMA apps are functional in shared session SKUs such as Xbox. For example, Xbox shell
is a MUMA app. Today, Xbox automatically signs in as Guest account and all apps run in
this context. All the apps are multi-user-aware and respond to events fired by user
manager. The apps run as the Guest account.
Similarly, Phone auto logs in as a DefApps account, which is akin to the standard user
account in Windows but with a few extra privileges. Brokers, some services and apps run
as this account.
In the converged user model, the multi-user-aware apps and multi-user-aware brokers
will need to run in a context different from that of the users. For this purpose, the
system creates DSMA.
SYSTEM
The SYSTEM account is used by the operating system and by services running under
Windows. There are many services and processes in the Windows operating system that
need the capability to sign in internally, such as during a Windows installation. The
SYSTEM account was designed for that purpose, and Windows manages the SYSTEM
account's user rights. It's an internal account that doesn't show up in User Manager, and
it can't be added to any groups.
On the other hand, the SYSTEM account does appear on an NTFS file system volume in
File Manager in the Permissions portion of the Security menu. By default, the SYSTEM
account is granted Full Control permissions to all files on an NTFS volume. Here the
SYSTEM account has the same functional rights and permissions as the Administrator
account.
7 Note
To grant the account Administrators group file permissions does not implicitly give
permission to the SYSTEM account. The SYSTEM account's permissions can be
removed from a file, but we do not recommend removing them.
NETWORK SERVICE
The NETWORK SERVICE account is a predefined local account used by the service
control manager (SCM). A service that runs in the context of the NETWORK SERVICE
account presents the computer's credentials to remote servers. For more information,
see NetworkService Account.
LOCAL SERVICE
The LOCAL SERVICE account is a predefined local account used by the service control
manager. It has minimum privileges on the local computer and presents anonymous
credentials on the network. For more information, see LocalService Account.
You can use Local Users and Groups to assign rights and permissions on only the local
server to limit the ability of local users and groups to perform certain actions. A right
authorizes a user to perform certain actions on a server, such as backing up files and
folders or shutting down a server. An access permission is a rule that is associated with
an object, usually a file, folder, or printer. It regulates which users can have access to an
object on the server and in what manner.
You can't use Local Users and Groups on a domain controller. However, you can use
Local Users and Groups on a domain controller to target remote computers that aren't
domain controllers on the network.
7 Note
You use Active Directory Users and Computers to manage users and groups in
Active Directory.
You can also manage local users by using NET.EXE USER and manage local groups by
using NET.EXE LOCALGROUP, or by using various PowerShell cmdlets and other scripting
technologies.
Restrict and protect local accounts with administrative
rights
An administrator can use many approaches to prevent malicious users from using stolen
credentials such as a stolen password or password hash, for a local account on one
computer from being used to authenticate on another computer with administrative
rights. This is also called lateral movement.
The simplest approach is to sign in to your computer with a standard user account,
instead of using the Administrator account for tasks. For example, use a standard
account to browse the Internet, send email, or use a word processor. When you want to
perform administrative tasks such as installing a new program or changing a setting that
affects other users, you don't have to switch to an Administrator account. You can use
User Account Control (UAC) to prompt you for permission or an administrator password
before performing the task, as described in the next section.
The other approaches that can be used to restrict and protect user accounts with
administrative rights include:
7 Note
These approaches do not apply if all administrative local accounts are disabled.
For example, a default feature of UAC is shown when a local account signs in from a
remote computer by using Network logon (for example, by using NET.EXE USE). In this
instance, it's issued a standard user token with no administrative rights, but without the
ability to request or receive elevation. Consequently, local accounts that sign in by using
Network logon can't access administrative shares such as C$, or ADMIN$, or perform
any remote administration.
The following table shows the Group Policy and registry settings that are used to
enforce local account restrictions for remote access.
1 Policy User Account Control: Admin Approval Mode for the Built-in Administrator account
name
Policy Enabled
setting
Policy User Account Control: Run all administrators in Admin Approval Mode
name
Policy Enabled
setting
3 Registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
key
Registry LocalAccountTokenFilterPolicy
value
name
Registry DWORD
value
type
Registry 0
value
No. Setting Detailed Description
data
7 Note
You can also enforce the default for LocalAccountTokenFilterPolicy by using the
custom ADMX in Security Templates.
1. Ensure that the local account restrictions are applied to network interfaces by
following these steps:
1. Link the GPO to the first Workstations organizational unit (OU) by doing the
following:
7 Note
To perform this procedure, you must first identify the name of the local, default
Administrator account, which might not be the default user name "Administrator",
and any other accounts that are members of the local Administrators group.
The following table shows the Group Policy settings that are used to deny network
logon for all local Administrator accounts.
7 Note
You might have to create a separate GPO if the user name of the default
Administrator account is different on workstations and servers.
Passwords that are left unchanged or changed synchronously to keep them identical
add a significant risk for organizations. Randomizing the passwords mitigates "pass-the-
hash" attacks by using different passwords for local accounts, which hamper the ability
of malicious users to use password hashes of those accounts to compromise other
computers.
Today's workforce has more freedom and mobility than ever before, and the risk of data
exposure is also at its highest. We are focused on getting customers to the cloud to
benefit from modern hybrid workstyles while improving security management. Built on
zero-trust principles, Windows works with Microsoft cloud services to safeguard
sensitive information while controlling access and mitigating threats.
From identity and device management to Office apps and data storage, Windows and
integrated cloud services can help improve productivity, security, and resilience
anywhere.
Security baselines Windows 11 supports modern device management so that IT pros can
manage company security policies and business applications without
compromising user privacy on corporate or employee-owned devices.
With MDM solutions, IT can manage Windows 11 using industry-
standard protocols. To simplify setup for users, management features
are built directly into Windows, eliminating the need for a separate
MDM client.
Remote wipe When a device is lost or stolen, IT administrators may want to remotely
wipe data stored on the device. A helpdesk agent may also want to
reset devices to fix issues encountered by remote workers.
Windows device: reset the device and remove user accounts and data,
reset the device and clean the drive, reset the device but persist user
accounts and data.
To simplify setup for users, management features are built directly into
Windows, eliminating the need for a separate MDM client.
Universal Print Unlike traditional print solutions that rely on Windows print servers,
Universal Print is a Microsoft hosted cloud subscription service that
supports a zero-trust security model by enabling network isolation of
printers, including the Universal Print connector software, from the rest
of the organization's resources.
Windows Autopatch With the Autopatch service, IT teams can delegate management of
updates to Windows 10/11, Microsoft Edge, and Microsoft 365 apps to
Microsoft. Under the hood, Autopatch takes over configuration of the
policies and deployment service of Windows Update for Business. What
the customer gets are endpoints that are up to date, thanks to
dynamically generated rings for progressive deployment that will pause
and/or roll back updates (where possible) when issues arise.
Windows Autopilot Windows Autopilot simplifies the way devices get deployed, reset, and
repurposed, with an experience that is zero touch for IT.
Microsoft Entra joined devices
Article • 09/21/2023
Any organization can deploy Microsoft Entra joined devices no matter the size or
industry. Microsoft Entra join works even in hybrid environments, enabling access to
both cloud and on-premises apps and resources.
Operating Systems All Windows 11 and Windows 10 devices except Home editions
Windows Server 2019 and newer Virtual Machines running in Azure (Server
core isn't supported)
Bulk enrollment
Windows Autopilot
Password
Passwordless options like Windows Hello for Business and FIDO2.0 security
keys.
Self-service Password Reset and Windows Hello PIN reset on lock screen
Microsoft Entra joined devices are signed in to using an organizational Microsoft Entra
account. Access to resources can be controlled based on Microsoft Entra account and
Conditional Access policies applied to the device.
Administrators can secure and further control Microsoft Entra joined devices using
Mobile Device Management (MDM) tools like Microsoft Intune or in co-management
scenarios using Microsoft Configuration Manager. These tools provide a means to
enforce organization-required configurations like:
Microsoft Entra join can be accomplished using self-service options like the Out of Box
Experience (OOBE), bulk enrollment, or Windows Autopilot.
Microsoft Entra joined devices can still maintain single sign-on access to on-premises
resources when they are on the organization's network. Devices that are Microsoft Entra
joined can still authenticate to on-premises servers like file, print, and other applications.
Scenarios
Microsoft Entra join can be used in various scenarios like:
You can configure Microsoft Entra join for all Windows 11 and Windows 10 devices
except for Home editions.
The goal of Microsoft Entra joined devices is to simplify:
Microsoft Entra join can be deployed by using any of the following methods:
Windows Autopilot
Bulk deployment
Self-service experience
Next steps
Plan your Microsoft Entra join implementation
Co-management using Configuration Manager and Microsoft Intune
How to manage the local administrators group on Microsoft Entra joined devices
Manage device identities
Manage stale devices in Microsoft Entra ID
Use security baselines to configure
Windows devices in Intune
Article • 05/24/2023
With Microsoft Intune’s security baselines, you can rapidly deploy a recommended
security posture to your managed Windows devices for Windows security baselines to
help you secure and protect your users and devices.
Even though Windows and Windows Server are designed to be secure out-of-the-box,
many organizations still want more granular control over their security configurations.
To navigate the large number of controls, organizations often seek guidance on
configuring various security features. Microsoft provides this guidance in the form of
security baselines.
Each security baseline is a group of preconfigured Windows settings that help you apply
and enforce granular security settings that the relevant security teams recommend. You
can also customize each baseline you deploy to enforce only those settings and values
you require. When you create a security baseline profile in Intune, you're creating a
template that consists of multiple device configuration profiles.
The settings in each baseline are device configuration settings like those found in
various Intune policies. Each setting in a baseline works with the configuration service
provider for the relevant product that is present on a managed windows device.
To learn more about why and when you might want to deploy security baselines, see
Windows security baselines in the Windows security documentation.
7 Note
In May 2023, Intune began rollout of a new security baseline format for each new
baseline release or version update. The new format updates the baseline settings to
directly take their name and configuration options from the configuration service
provider (CSP) that the baseline setting manages.
Intune also introduced a new process to help you migrate an existing security
baseline profile to the newer baseline version. This new behavior is a one-time
process that replaces the normal update behavior when you move from the most
recent version of an older profile to a newer version that became available in May
2023 or later.
You deploy security baselines to groups of users or devices in Intune, and the settings
apply to devices that run Windows 10 or 11. For example, the default configuration of
the Security Baseline for Windows 10 and later automatically enables BitLocker for
removable drives, automatically requires a password to unlock a device, automatically
disables basic authentication, and more. When a default value doesn't work for your
environment, customize the baseline to apply the settings you need.
By default, each security baseline is configured to meet the best practices and
recommendations for the settings that affect security. Intune partners with the
same Windows security team that creates group policy security baselines. These
recommendations are based on guidance and extensive experience.
If you're new to Intune, and not sure where to start, security baselines give you an
advantage. You can quickly create and deploy a secure profile, knowing that you're
helping protect your organization's resources and data.
If you currently use group policy, migrating to Intune for management is easier
with these baselines. These baselines are natively built into Intune, and include a
modern management experience.
It's important to understand the defaults in the baselines you use, and to then
modify each baseline to fit your organizational needs.
By default, each baseline is preconfigured using the recommendations that are
specific to the product it applies to.
In some cases, a configuration that Microsoft Defender recommends might not be
the default configuration for similar settings when recommended by Windows. In
such situations, it’s important to review each setting so you can understand its
intent based on the configuration service provider details, and larger scope of the
two products.
In almost all scenarios, the default settings in the security baselines are the most
restrictive. You should confirm that these settings don't conflict with other policy
settings or features in your environment.
For example, the default settings for firewall configuration might not merge connection
security rules and local policy rules with MDM rules. So, if you're using delivery
optimization, then you should validate these configurations before assigning the
security baseline.
7 Note
7 Note
The Microsoft Defender for Endpoint security baseline has been optimized for
physical devices and is currently not recommended for use on virtual
machines (VMs) or VDI endpoints. Certain baseline settings can impact
remote interactive sessions on virtualized environments. For more
information, see Increase compliance to the Microsoft Defender for
Endpoint security baseline in the Windows documentation.
When a new version for a profile becomes available, settings in profiles based on the
older versions become read-only. You can continue to use those older profiles. You can
also edit the profile names, description, and assignments, but they don't support a
change to their settings configuration and you can't create new profiles based on the
older versions.
When you're ready to use the more recent baseline version, you can create new profiles
or update your existing profiles to the new version. See Change the baseline version for
a profile in the Manage security baseline profiles article.
You can view the list of available baselines in the Microsoft Intune admin center ,
under Endpoint security > Security baselines. The list includes:
You can choose to change of the version of a baseline that's in use with a given profile.
When you change the version, you don't have to create a new baseline profile to take
advantage of updated versions. Instead you can select a baseline profile and use the
built-in option to change the instance version for that profile to a new one.
Avoid conflicts
You can use one or more of the available baselines in your Intune environment at the
same time. You can also use multiple instances of the same security baselines that have
different customizations.
When you use multiple security baselines, review the settings in each one to identify
when your different baseline configurations introduce conflicting values for the same
setting. Because you can deploy security baselines that are designed for different
intents, and deploy multiple instances of the same baseline that includes customized
settings, you might create configuration conflicts for devices that must be investigated
and resolved.
In addition, security baselines often manage the same settings you might set with device
configuration profiles or other types of policy. Therefore, remain aware of and consider
your other policies and profiles for settings when seeking to avoid or resolve conflicts.
Use the information at the following links to help identify and resolve conflicts:
Q&A
Many customers use the Intune baseline recommendations as a starting point, and then
customize them to meet their IT and security demands. Microsoft's Windows 10 and
later baseline template was the first baseline to release. This baseline is built as a generic
infrastructure that allows customers to eventually import other security baselines based
on CIS, NIST, and other standards.
Migrating from on-premises Active Directory group policies to a pure cloud solution
using Azure Active Directory (AD) with Microsoft Intune is a journey. To help, use the
various tools from the Security Compliance Toolkit that can help you identify cloud-
based options from security baselines that can replace your on-premises GPO
configurations.
Within the Intune security baseline policy UI, Intune provides information text that is
taken from the source CSP and provides a link to that CSP. In some cases, the CSP might
be part of a larger content set that includes proactive guidance that remains beyond the
scope of Intune to include or duplicate in our content. However, Intune does document
the list of settings in each security baseline version and its default configuration.
Next steps
Create security baseline profiles
For more information about Windows licensing, see Windows licensing overview.
The following list shows the RemoteWipe configuration service provider nodes:
./Device/Vendor/MSFT/RemoteWipe
AutomaticRedeployment
doAutomaticRedeployment
LastError
Status
doWipe
doWipeCloud
doWipeCloudPersistProvisionedData
doWipeCloudPersistUserData
doWipePersistProvisionedData
doWipePersistUserData
doWipeProtected
AutomaticRedeployment
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/RemoteWipe/AutomaticRedeployment
Format node
AutomaticRedeployment/doAutomaticRedeployment
Device
./Device/Vendor/MSFT/RemoteWipe/AutomaticRedeployment/doAutomaticRedeploymen
t
Exec on this node triggers Autopilot Reset operation. This works like PC Reset, similar to
other existing nodes in this RemoteWipe CSP, except that it keeps the device enrolled in
Azure AD and MDM, keeps Wi-Fi profiles, and a few other settings like region, language,
keyboard.
AutomaticRedeployment/LastError
Device
./Device/Vendor/MSFT/RemoteWipe/AutomaticRedeployment/LastError
Format int
Default Value 0
AutomaticRedeployment/Status
❌ User ✅ Education
❌ Windows SE
✅ IoT Enterprise / IoT Enterprise
LTSC
Device
./Device/Vendor/MSFT/RemoteWipe/AutomaticRedeployment/Status
Format int
Default Value 0
doWipe
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/RemoteWipe/doWipe
Exec on this node will perform a remote wipe on the device. The return status code
shows whether the device accepted the Exec command. When used with OMA Client
Provisioning, a dummy value of "1" should be included for this element.
A remote reset is equivalent to running Reset this PC > Remove everything from the
Settings app, with Clean Data set to No and Delete Files set to Yes. If a doWipe reset is
started and then interrupted, the PC will attempt to roll-back to the pre-reset state. If
the PC can't be rolled-back, the recovery environment will take no additional actions
and the PC could be in an unusable state and Windows will have to be reinstalled.
doWipeCloud
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/RemoteWipe/doWipeCloud
Exec on this node will perform a cloud-based remote wipe on the device. The return
status code shows whether the device accepted the Exec command.
doWipeCloudPersistProvisionedData
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/RemoteWipe/doWipeCloudPersistProvisionedData
Exec on this node will back up provisioning data to a persistent location and perform a
cloud-based remote wipe on the device. The information that was backed up will be
restored and applied to the device when it resumes. The return status code shows
whether the device accepted the Exec command.
doWipeCloudPersistUserData
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/RemoteWipe/doWipeCloudPersistUserData
Exec on this node will perform a cloud-based remote reset on the device and persist
user accounts and data. The return status code shows whether the device accepted the
Exec command.
Description framework properties:
doWipePersistProvisionedData
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/RemoteWipe/doWipePersistProvisionedData
Exec on this node will back up provisioning data to a persistent location and perform a
remote wipe on the device. The information that was backed up will be restored and
applied to the device when it resumes. The return status code shows whether the device
accepted the Exec command. When used with OMA Client Provisioning, a dummy value
of "1" should be included for this element. The information that was backed up will be
restored and applied to the device when it resumes. The return status code shows
whether the device accepted the Exec command.
doWipePersistUserData
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/RemoteWipe/doWipePersistUserData
Exec on this node will perform a remote reset on the device and persist user accounts
and data. The return status code shows whether the device accepted the Exec
command.
This setting is equivalent to selecting Reset this PC > Keep my files when manually
starting a reset from the Settings app.
doWipeProtected
Scope Editions Applicable OS
Device
./Device/Vendor/MSFT/RemoteWipe/doWipeProtected
Exec on this node will perform a remote wipe on the device and fully clean the internal
drive. In some device configurations, this command may leave the device unable to
boot. The return status code shows whether the device accepted the Exec command.
The doWipeProtected is functionally similar to doWipe. But unlike doWipe, which can be
easily circumvented by simply power cycling the device, doWipeProtected will keep
trying to reset the device until it's done.
7 Note
Related articles
Configuration service provider reference
Configuration Service Provider
Learn more about the configuration service provider (CSP) policies available on
Windows 10 and Windows 11.
i REFERENCE
Support scenarios
BitLocker CSP
DynamicManagement CSP
Policy CSP
i REFERENCE
Policy CSP
i REFERENCE
ADMX policies
See more T
e OVERVIEW
d TRAINING
e OVERVIEW
Requirements
What's new
Deployment scenarios
p CONCEPT
d TRAINING
User-driven mode
Self-deploying mode
Pre-provisioning
Support information
i REFERENCE
Registration authorization
Device guidelines
c HOW-TO GUIDE
BitLocker encryption
DFCI management
i REFERENCE
Troubleshooting overview
Policy conflicts
Known issues
Resolved issues
Resources
i REFERENCE