Merge pull request #9092 from MicrosoftDocs/main
Pubish 11/07/2023, 3:30 PM
@ -8,7 +8,7 @@ metadata:
|
|||||||
title: Microsoft 365 Education Documentation
|
title: Microsoft 365 Education Documentation
|
||||||
description: Learn about product documentation and resources available for school IT administrators, teachers, students, and education app developers.
|
description: Learn about product documentation and resources available for school IT administrators, teachers, students, and education app developers.
|
||||||
ms.topic: hub-page
|
ms.topic: hub-page
|
||||||
ms.date: 08/10/2022
|
ms.date: 11/06/2023
|
||||||
|
|
||||||
productDirectory:
|
productDirectory:
|
||||||
title: For IT admins
|
title: For IT admins
|
||||||
|
@ -11,18 +11,18 @@ ms.collection:
|
|||||||
- education
|
- education
|
||||||
---
|
---
|
||||||
|
|
||||||
# Reset devices with Autopilot Reset
|
# Reset devices with Autopilot Reset
|
||||||
|
|
||||||
IT admins or technical teachers can use Autopilot Reset to quickly remove personal files, apps, and settings, and reset Windows 10 devices from the lock screen anytime and apply original settings and management enrollment (Microsoft Entra ID and device management) so the devices are ready to use. With Autopilot Reset, devices are returned to a fully configured or known IT-approved state.
|
IT admins or technical teachers can use Autopilot Reset to quickly remove personal files, apps, and settings, and reset Windows 10 devices from the lock screen anytime and apply original settings and management enrollment (Microsoft Entra ID and device management) so the devices are ready to use. With Autopilot Reset, devices are returned to a fully configured or known IT-approved state.
|
||||||
|
|
||||||
To enable Autopilot Reset you must:
|
To enable Autopilot Reset, you must:
|
||||||
|
|
||||||
1. [Enable the policy for the feature](#enable-autopilot-reset)
|
1. [Enable the policy for the feature](#enable-autopilot-reset)
|
||||||
2. [Trigger a reset for each device](#trigger-autopilot-reset)
|
2. [Trigger a reset for each device](#trigger-autopilot-reset)
|
||||||
|
|
||||||
## Enable Autopilot Reset
|
## Enable Autopilot Reset
|
||||||
|
|
||||||
To use Autopilot Reset, [Windows Recovery Environment (WinRE) must be enabled on the device](#winre).
|
To use Autopilot Reset, Windows Recovery Environment (WinRE) must be enabled on the device.
|
||||||
|
|
||||||
**DisableAutomaticReDeploymentCredentials** is a policy that enables or disables the visibility of the credentials for Autopilot Reset. It's a policy node in the [Policy CSP](/windows/client-management/mdm/policy-csp-credentialproviders), **CredentialProviders/DisableAutomaticReDeploymentCredentials**. By default, this policy is set to 1 (Disable). This setting ensures that Autopilot Reset isn't triggered by accident.
|
**DisableAutomaticReDeploymentCredentials** is a policy that enables or disables the visibility of the credentials for Autopilot Reset. It's a policy node in the [Policy CSP](/windows/client-management/mdm/policy-csp-credentialproviders), **CredentialProviders/DisableAutomaticReDeploymentCredentials**. By default, this policy is set to 1 (Disable). This setting ensures that Autopilot Reset isn't triggered by accident.
|
||||||
|
|
||||||
@ -32,13 +32,13 @@ You can set the policy using one of these methods:
|
|||||||
|
|
||||||
Check your MDM provider documentation on how to set this policy. If your MDM provider doesn't explicitly support this policy, you can manually set this policy if your MDM provider allows specific OMA-URIs to be manually set.
|
Check your MDM provider documentation on how to set this policy. If your MDM provider doesn't explicitly support this policy, you can manually set this policy if your MDM provider allows specific OMA-URIs to be manually set.
|
||||||
|
|
||||||
For example, in Intune, create a new configuration policy and add an OMA-URI.
|
For example, in Intune, create a new configuration policy and add an OMA-URI.
|
||||||
- OMA-URI: ./Vendor/MSFT/Policy/Config/CredentialProviders/DisableAutomaticReDeploymentCredentials
|
- OMA-URI: ./Vendor/MSFT/Policy/Config/CredentialProviders/DisableAutomaticReDeploymentCredentials
|
||||||
- Data type: Integer
|
- Data type: Integer
|
||||||
- Value: 0
|
- Value: 0
|
||||||
|
|
||||||
- Windows Configuration Designer
|
- Windows Configuration Designer
|
||||||
|
|
||||||
You can [use Windows Configuration Designer](/windows/configuration/provisioning-packages/provisioning-create-package) to set the **Runtime settings > Policies > CredentialProviders > DisableAutomaticReDeploymentCredentials** setting and create a provisioning package.
|
You can [use Windows Configuration Designer](/windows/configuration/provisioning-packages/provisioning-create-package) to set the **Runtime settings > Policies > CredentialProviders > DisableAutomaticReDeploymentCredentials** setting and create a provisioning package.
|
||||||
|
|
||||||
- Set up School PCs app
|
- Set up School PCs app
|
||||||
@ -56,59 +56,50 @@ You can set the policy using one of these methods:
|
|||||||
- When using [Set up School PCs](use-set-up-school-pcs-app.md), in the **Configure student PC settings** screen, select **Enable Windows 10 Autopilot Reset** among the list of settings for the student PC as shown in the following example:
|
- When using [Set up School PCs](use-set-up-school-pcs-app.md), in the **Configure student PC settings** screen, select **Enable Windows 10 Autopilot Reset** among the list of settings for the student PC as shown in the following example:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Trigger Autopilot Reset
|
## Trigger Autopilot Reset
|
||||||
Autopilot Reset is a two-step process: trigger it and then authenticate. Once you've done these two steps, you can let the process execute and once it's done, the device is again ready for use.
|
|
||||||
|
|
||||||
**To trigger Autopilot Reset**
|
Autopilot Reset is a two-step process: trigger it and then authenticate. Once you've done these two steps, you can let the process execute and once it's done, the device is again ready for use.
|
||||||
|
]
|
||||||
|
To trigger Autopilot Reset:
|
||||||
|
|
||||||
1. From the Windows device lock screen, enter the keystroke: **CTRL + Windows key + R**.
|
1. From the Windows device lock screen, enter the keystroke: <kbd>CTRL</kbd> + <kbd>WIN</kbd> + <kbd>R</kbd>.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
This keystroke will open up a custom sign-in screen for Autopilot Reset. The screen serves two purposes:
|
This keystroke opens up a custom sign-in screen for Autopilot Reset. The screen serves two purposes:
|
||||||
|
|
||||||
1. Confirm/verify that the end user has the right to trigger Autopilot Reset
|
1. Confirm/verify that the end user has the right to trigger Autopilot Reset
|
||||||
|
1. Notify the user in case a provisioning package, created using Windows Configuration Designer or Set up School PCs, will be used as part of the process.
|
||||||
2. Notify the user in case a provisioning package, created using Windows Configuration Designer or Set up School PCs, will be used as part of the process.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
2. Sign in with the admin account credentials. If you created a provisioning package, plug in the USB drive and trigger Autopilot Reset.
|
1. Sign in with the admin account credentials. If you created a provisioning package, plug in the USB drive and trigger Autopilot Reset.
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> To reestablish Wi-Fi connectivity after reset, make sure the **Connect automatically** box is checked for the device's wireless network connection.
|
> To reestablish Wi-Fi connectivity after reset, make sure the **Connect automatically** box is checked for the device's wireless network connection.
|
||||||
|
|
||||||
Once Autopilot Reset is triggered, the reset process starts.
|
Once Autopilot Reset is triggered, the reset process starts.
|
||||||
|
|
||||||
After reset, the device:
|
After reset, the device:
|
||||||
|
|
||||||
- Sets the region, language, and keyboard.
|
- Sets the region, language, and keyboard
|
||||||
|
- Connects to Wi-Fi
|
||||||
- Connects to Wi-Fi.
|
- If you provided a provisioning package when Autopilot Reset is triggered, the system applies this new provisioning package. Otherwise, the system reapplies the original provisioning package on the device
|
||||||
|
|
||||||
- If you provided a provisioning package when Autopilot Reset is triggered, the system will apply this new provisioning package. Otherwise, the system will reapply the original provisioning package on the device.
|
|
||||||
|
|
||||||
- Is returned to a known good managed state, connected to Microsoft Entra ID and MDM.
|
- Is returned to a known good managed state, connected to Microsoft Entra ID and MDM.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Once provisioning is complete, the device is again ready for use.
|
Once provisioning is complete, the device is again ready for use.
|
||||||
|
|
||||||
<span id="winre"/>
|
|
||||||
|
|
||||||
## Troubleshoot Autopilot Reset
|
## Troubleshoot Autopilot Reset
|
||||||
|
|
||||||
Autopilot Reset will fail when the [Windows Recovery Environment (WinRE)](/windows-hardware/manufacture/desktop/windows-recovery-environment--windows-re--technical-reference) isn't enabled on the device. You'll see `Error code: ERROR_NOT_SUPPORTED (0x80070032)`.
|
Autopilot Reset fails when the [Windows Recovery Environment (WinRE)](/windows-hardware/manufacture/desktop/windows-recovery-environment--windows-re--technical-reference) isn't enabled on the device. The error code is: `ERROR_NOT_SUPPORTED (0x80070032)`.
|
||||||
|
|
||||||
To make sure WinRE is enabled, use the [REAgentC.exe tool](/windows-hardware/manufacture/desktop/reagentc-command-line-options) to run the following command:
|
To make sure WinRE is enabled, use the [REAgentC.exe tool](/windows-hardware/manufacture/desktop/reagentc-command-line-options) to run the following command:
|
||||||
|
|
||||||
```console
|
```cmd
|
||||||
reagentc /enable
|
reagentc.exe /enable
|
||||||
```
|
```
|
||||||
|
|
||||||
If Autopilot Reset fails after enabling WinRE, or if you're unable to enable WinRE, kindly contact [Microsoft Support](https://support.microsoft.com) for assistance.
|
If Autopilot Reset fails after enabling WinRE, or if you're unable to enable WinRE, kindly contact [Microsoft Support](https://support.microsoft.com) for assistance.
|
||||||
|
|
||||||
## Related articles
|
|
||||||
|
|
||||||
[Set up Windows devices for education](set-up-windows-10.md)
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Set up a shared or guest Windows device
|
title: Set up a shared or guest Windows device
|
||||||
description: Description of how to configured Shared PC mode, which is a Windows feature that optimizes devices for shared use scenarios.
|
description: Description of how to configured Shared PC mode, which is a Windows feature that optimizes devices for shared use scenarios.
|
||||||
ms.date: 10/15/2022
|
ms.date: 11/06/2023
|
||||||
ms.prod: windows-client
|
ms.prod: windows-client
|
||||||
ms.technology: itpro-configure
|
ms.technology: itpro-configure
|
||||||
ms.topic: reference
|
ms.topic: reference
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Shared PC technical reference
|
title: Shared PC technical reference
|
||||||
description: List of policies and settings applied by the Shared PC options.
|
description: List of policies and settings applied by the Shared PC options.
|
||||||
ms.date: 10/15/2022
|
ms.date: 11/06/2023
|
||||||
ms.prod: windows-client
|
ms.prod: windows-client
|
||||||
ms.technology: itpro-configure
|
ms.technology: itpro-configure
|
||||||
ms.topic: reference
|
ms.topic: reference
|
||||||
|
@ -218,6 +218,8 @@
|
|||||||
"identity-protection/hello-for-business/*.md": "erikdau",
|
"identity-protection/hello-for-business/*.md": "erikdau",
|
||||||
"identity-protection/credential-guard/*.md": "zwhittington",
|
"identity-protection/credential-guard/*.md": "zwhittington",
|
||||||
"identity-protection/access-control/*.md": "sulahiri",
|
"identity-protection/access-control/*.md": "sulahiri",
|
||||||
|
"identity-protection/smart-cards/*.md": "ardenw",
|
||||||
|
"identity-protection/virtual-smart-cards/*.md": "ardenw",
|
||||||
"operating-system-security/network-security/windows-firewall/*.md": "paoloma",
|
"operating-system-security/network-security/windows-firewall/*.md": "paoloma",
|
||||||
"operating-system-security/network-security/vpn/*.md": "pesmith",
|
"operating-system-security/network-security/vpn/*.md": "pesmith",
|
||||||
"operating-system-security/data-protection/personal-data-encryption/*.md":"rhonnegowda",
|
"operating-system-security/data-protection/personal-data-encryption/*.md":"rhonnegowda",
|
||||||
@ -231,7 +233,7 @@
|
|||||||
"threat-protection/auditing/*.md": "tier3",
|
"threat-protection/auditing/*.md": "tier3",
|
||||||
"operating-system-security/data-protection/bitlocker/*.md": "tier1",
|
"operating-system-security/data-protection/bitlocker/*.md": "tier1",
|
||||||
"operating-system-security/data-protection/personal-data-encryption/*.md": "tier1",
|
"operating-system-security/data-protection/personal-data-encryption/*.md": "tier1",
|
||||||
"operating-system-security/network-security/windows-firewall/*.md": [ "tier3", "must-keep" ]
|
"operating-system-security/network-security/windows-firewall/*.md": [ "tier2", "must-keep" ]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"template": [],
|
"template": [],
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
author: paolomatarazzo
|
||||||
|
ms.author: paoloma
|
||||||
|
ms.date: 11/07/2023
|
||||||
|
ms.topic: include
|
||||||
|
---
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
|
||||||
|
1. Open a website or app that supports passkeys
|
||||||
|
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
|
||||||
|
2. Create a passkey from your account settings
|
||||||
|
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
|
:::row:::
|
||||||
|
:::column span="3":::
|
||||||
|
3. Select the option **Use another device** > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::column span="1":::
|
||||||
|
:::image type="content" source="../images/save-passkey.png" alt-text="Screenshot showing a dialog box prompting the user to pick a location to store the passkey." lightbox="../images/save-passkey.png" border="false":::
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
author: paolomatarazzo
|
||||||
|
ms.author: paoloma
|
||||||
|
ms.date: 11/07/2023
|
||||||
|
ms.topic: include
|
||||||
|
---
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="3":::
|
||||||
|
1. Open a website or app that supports passkeys
|
||||||
|
:::column-end:::
|
||||||
|
:::column span="1":::
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
|
:::row:::
|
||||||
|
:::column span="3":::
|
||||||
|
2. Select **Sign in with a passkey**, or a similar option
|
||||||
|
:::column-end:::
|
||||||
|
:::column span="1":::
|
||||||
|
:::image type="content" source="../images/website.png" alt-text="Screenshot of a website offering the passkey sign in option." lightbox="../images/website.png" border="false":::
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
|
:::row:::
|
||||||
|
:::column span="3":::
|
||||||
|
3. Select the option **Use another device** > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::column span="1":::
|
||||||
|
:::image type="content" source="../images/use-passkey.png" alt-text="Screenshot of the passkey dialog prompting the user to pick where the passkey is stored." lightbox="../images/use-passkey.png" border="false":::
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
@ -5,7 +5,7 @@ ms.collection:
|
|||||||
- highpri
|
- highpri
|
||||||
- tier1
|
- tier1
|
||||||
ms.topic: overview
|
ms.topic: overview
|
||||||
ms.date: 09/27/2023
|
ms.date: 11/07/2023
|
||||||
appliesto:
|
appliesto:
|
||||||
- ✅ <a href=https://learn.microsoft.com/windows/release-health/supported-versions-windows-client target=_blank>Windows 11</a>
|
- ✅ <a href=https://learn.microsoft.com/windows/release-health/supported-versions-windows-client target=_blank>Windows 11</a>
|
||||||
- ✅ <a href=https://learn.microsoft.com/windows/release-health/supported-versions-windows-client target=_blank>Windows 10</a>
|
- ✅ <a href=https://learn.microsoft.com/windows/release-health/supported-versions-windows-client target=_blank>Windows 10</a>
|
||||||
@ -40,50 +40,23 @@ Passkeys have several advantages over passwords, including their ease of use and
|
|||||||
|
|
||||||
### Create a passkey
|
### Create a passkey
|
||||||
|
|
||||||
Follow these steps to create a passkey from a Windows device:
|
By default, Windows offers to save the passkey locally on the **Windows device**, in which case the passkey is protected by Windows Hello (biometrics and PIN). You can also choose to save the passkey in one of the following locations:
|
||||||
|
|
||||||
:::row:::
|
|
||||||
:::column span="4":::
|
|
||||||
|
|
||||||
1. Open a website or app that supports passkeys
|
|
||||||
|
|
||||||
:::column-end:::
|
|
||||||
:::row-end:::
|
|
||||||
:::row:::
|
|
||||||
:::column span="4":::
|
|
||||||
|
|
||||||
2. Create a passkey from your account settings
|
|
||||||
|
|
||||||
:::column-end:::
|
|
||||||
:::row-end:::
|
|
||||||
:::row:::
|
|
||||||
:::column span="4":::
|
|
||||||
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:
|
|
||||||
:::column-end:::
|
|
||||||
:::row-end:::
|
|
||||||
:::row:::
|
|
||||||
:::column span="3":::
|
|
||||||
|
|
||||||
- **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
|
- **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
|
- **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)
|
- **Security key**: the passkey is saved to a FIDO2 security key, protected by the key's unlock mechanism (for example, biometrics or PIN)
|
||||||
|
|
||||||
:::column-end:::
|
|
||||||
:::column span="1":::
|
|
||||||
:::image type="content" source="images/save-passkey.png" alt-text="Screenshot showing a dialog box prompting the user to pick a location to store the passkey." lightbox="images/save-passkey.png" border="false":::
|
|
||||||
:::column-end:::
|
|
||||||
:::row-end:::
|
|
||||||
:::row:::
|
|
||||||
:::column span="4":::
|
|
||||||
4. Select **Next**
|
|
||||||
:::column-end:::
|
|
||||||
:::row-end:::
|
|
||||||
|
|
||||||
Pick one of the following options to learn how to save a passkey, based on where you want to store it.
|
Pick one of the following options to learn how to save a passkey, based on where you want to store it.
|
||||||
|
|
||||||
#### [:::image type="icon" source="images/laptop.svg" border="false"::: **Windows device**](#tab/windows)
|
#### [:::image type="icon" source="images/laptop.svg" border="false"::: **Windows device**](#tab/windows)
|
||||||
|
|
||||||
|
[!INCLUDE [use-passkey](includes/create-passkey.md)]
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
4. Select **This Windows device** > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
@ -107,6 +80,13 @@ Pick one of the following options to learn how to save a passkey, based on where
|
|||||||
|
|
||||||
#### [:::image type="icon" source="images/qr-code.svg" border="false"::: **New phone or tablet**](#tab/mobile)
|
#### [:::image type="icon" source="images/qr-code.svg" border="false"::: **New phone or tablet**](#tab/mobile)
|
||||||
|
|
||||||
|
[!INCLUDE [use-passkey](includes/create-passkey.md)]
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
4. Select **iPhone, iPad or Android device** > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
@ -130,6 +110,13 @@ Pick one of the following options to learn how to save a passkey, based on where
|
|||||||
|
|
||||||
#### [:::image type="icon" source="images/phone.svg" border="false"::: **Linked phone or tablet**](#tab/linked)
|
#### [:::image type="icon" source="images/phone.svg" border="false"::: **Linked phone or tablet**](#tab/linked)
|
||||||
|
|
||||||
|
[!INCLUDE [use-passkey](includes/create-passkey.md)]
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
4. Select your linked device name (e.g. **Pixel**) > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
@ -153,6 +140,13 @@ Pick one of the following options to learn how to save a passkey, based on where
|
|||||||
|
|
||||||
#### [:::image type="icon" source="images/usb.svg" border="false"::: **Security key**](#tab/key)
|
#### [:::image type="icon" source="images/usb.svg" border="false"::: **Security key**](#tab/key)
|
||||||
|
|
||||||
|
[!INCLUDE [use-passkey](includes/create-passkey.md)]
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
4. Select **Security key** > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
@ -178,48 +172,27 @@ Pick one of the following options to learn how to save a passkey, based on where
|
|||||||
|
|
||||||
### Use a passkey
|
### Use a passkey
|
||||||
|
|
||||||
Follow these steps to use a passkey:
|
When you open a website or app that supports passkeys, if a passkey is stored locally, you're automatically prompted to use Windows Hello to sign in. You can also choose to use a passkey from one of the following locations:
|
||||||
|
|
||||||
:::row:::
|
|
||||||
:::column span="3":::
|
|
||||||
1. Open a website or app that supports passkeys
|
|
||||||
:::column-end:::
|
|
||||||
:::column span="1":::
|
|
||||||
:::column-end:::
|
|
||||||
:::row-end:::
|
|
||||||
:::row:::
|
|
||||||
:::column span="3":::
|
|
||||||
2. Select **Sign in with a passkey**, or a similar option
|
|
||||||
:::column-end:::
|
|
||||||
:::column span="1":::
|
|
||||||
:::image type="content" source="images/website.png" alt-text="Screenshot of a website offering the passkey sign in option." lightbox="images/website.png" border="false":::
|
|
||||||
:::column-end:::
|
|
||||||
:::row-end:::
|
|
||||||
:::row:::
|
|
||||||
:::column span="3":::
|
|
||||||
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:
|
|
||||||
:::column-end:::
|
|
||||||
:::row-end:::
|
|
||||||
:::row:::
|
|
||||||
:::column span="3":::
|
|
||||||
- **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
|
- **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
|
- **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
|
- **Security key**: use this option if you want to sign in with a passkey stored on a FIDO2 security key
|
||||||
:::column-end:::
|
|
||||||
:::column span="1":::
|
|
||||||
:::image type="content" source="images/use-passkey.png" alt-text="Screenshot of the passkey dialog prompting the user to pick where the passkey is stored." lightbox="images/use-passkey.png" border="false":::
|
|
||||||
:::column-end:::
|
|
||||||
:::row-end:::
|
|
||||||
|
|
||||||
Pick one of the following options to learn how to use a passkey, based on where you saved it.
|
Pick one of the following options to learn how to use a passkey, based on where you saved it.
|
||||||
|
|
||||||
#### [:::image type="icon" source="images/laptop.svg" border="false"::: **Windows device**](#tab/windows)
|
#### [:::image type="icon" source="images/laptop.svg" border="false"::: **Windows device**](#tab/windows)
|
||||||
|
|
||||||
|
[!INCLUDE [use-passkey](includes/use-passkey.md)]
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
4. Select **This Windows device** > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
4. Select a Windows Hello unlock option
|
5. Select a Windows Hello unlock option
|
||||||
|
|
||||||
:::column-end:::
|
:::column-end:::
|
||||||
:::column span="1":::
|
:::column span="1":::
|
||||||
@ -229,7 +202,7 @@ Pick one of the following options to learn how to use a passkey, based on where
|
|||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
5. Select **OK** to continue signing in
|
6. Select **OK** to continue signing in
|
||||||
|
|
||||||
:::column-end:::
|
:::column-end:::
|
||||||
:::column span="1":::
|
:::column span="1":::
|
||||||
@ -238,10 +211,17 @@ Pick one of the following options to learn how to use a passkey, based on where
|
|||||||
|
|
||||||
#### [:::image type="icon" source="images/qr-code.svg" border="false"::: **Phone or tablet**](#tab/mobile)
|
#### [:::image type="icon" source="images/qr-code.svg" border="false"::: **Phone or tablet**](#tab/mobile)
|
||||||
|
|
||||||
|
[!INCLUDE [use-passkey](includes/use-passkey.md)]
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
4. Select **iPhone, iPad or Android device** > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
4. Scan the QR code with your phone or tablet where you saved the passkey. Once the connection to the device is established, follow the instructions to use the passkey
|
5. Scan the QR code with your phone or tablet where you saved the passkey. Once the connection to the device is established, follow the instructions to use the passkey
|
||||||
|
|
||||||
:::column-end:::
|
:::column-end:::
|
||||||
:::column span="1":::
|
:::column span="1":::
|
||||||
@ -251,17 +231,24 @@ Pick one of the following options to learn how to use a passkey, based on where
|
|||||||
:::row:::
|
:::row:::
|
||||||
:::column span="4":::
|
:::column span="4":::
|
||||||
|
|
||||||
5. You're signed in to the website or app
|
6. You're signed in to the website or app
|
||||||
|
|
||||||
:::column-end:::
|
:::column-end:::
|
||||||
:::row-end:::
|
:::row-end:::
|
||||||
|
|
||||||
#### [:::image type="icon" source="images/phone.svg" border="false"::: **Linked phone or tablet**](#tab/linked)
|
#### [:::image type="icon" source="images/phone.svg" border="false"::: **Linked phone or tablet**](#tab/linked)
|
||||||
|
|
||||||
|
[!INCLUDE [use-passkey](includes/use-passkey.md)]
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
4. Select your linked device name (e.g. **Pixel**) > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
4. Once the connection to the linked device is established, follow the instructions on the device to use the passkey
|
5. Once the connection to the linked device is established, follow the instructions on the device to use the passkey
|
||||||
|
|
||||||
:::column-end:::
|
:::column-end:::
|
||||||
:::column span="1":::
|
:::column span="1":::
|
||||||
@ -271,7 +258,7 @@ Pick one of the following options to learn how to use a passkey, based on where
|
|||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
5. You're signed in to the website or app
|
6. You're signed in to the website or app
|
||||||
|
|
||||||
:::column-end:::
|
:::column-end:::
|
||||||
:::column span="1":::
|
:::column span="1":::
|
||||||
@ -280,10 +267,17 @@ Pick one of the following options to learn how to use a passkey, based on where
|
|||||||
|
|
||||||
#### [:::image type="icon" source="images/usb.svg" border="false"::: **Security key**](#tab/key)
|
#### [:::image type="icon" source="images/usb.svg" border="false"::: **Security key**](#tab/key)
|
||||||
|
|
||||||
|
[!INCLUDE [use-passkey](includes/use-passkey.md)]
|
||||||
|
|
||||||
|
:::row:::
|
||||||
|
:::column span="4":::
|
||||||
|
4. Select **Security key** > **Next**
|
||||||
|
:::column-end:::
|
||||||
|
:::row-end:::
|
||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
4. Unlock the security key using the key's unlock mechanism
|
5. Unlock the security key using the key's unlock mechanism
|
||||||
|
|
||||||
:::column-end:::
|
:::column-end:::
|
||||||
:::column span="1":::
|
:::column span="1":::
|
||||||
@ -293,7 +287,7 @@ Pick one of the following options to learn how to use a passkey, based on where
|
|||||||
:::row:::
|
:::row:::
|
||||||
:::column span="3":::
|
:::column span="3":::
|
||||||
|
|
||||||
5. You're signed in to the website or app
|
6. You're signed in to the website or app
|
||||||
|
|
||||||
:::column-end:::
|
:::column-end:::
|
||||||
:::column span="1":::
|
:::column span="1":::
|
||||||
|
@ -1,21 +1,19 @@
|
|||||||
---
|
---
|
||||||
ms.date: 09/24/2021
|
ms.date: 11/07/2023
|
||||||
title: Smart Card and Remote Desktop Services
|
title: Smart Card and Remote Desktop Services
|
||||||
description: This topic for the IT professional describes the behavior of Remote Desktop Services when you implement smart card sign-in.
|
description: This topic for the IT professional describes the behavior of Remote Desktop Services when you implement smart card sign-in.
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.reviewer: ardenw
|
|
||||||
---
|
---
|
||||||
# Smart Card and Remote Desktop Services
|
# Smart Card and Remote Desktop Services
|
||||||
|
|
||||||
This topic for the IT professional describes the behavior of Remote Desktop Services when you implement smart card sign-in.
|
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 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:
|
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.
|
- Using Fast User Switching or Remote Desktop Services. A user isn't able to establish a redirected smart card-based remote desktop connection. That is, the connect attempt isn't 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 isn't able to locate the smart card reader or certificate, EFS can't decrypt user files
|
||||||
- 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.
|
|
||||||
|
|
||||||
## Remote Desktop Services redirection
|
## Remote Desktop Services redirection
|
||||||
|
|
||||||
@ -23,31 +21,24 @@ In a Remote Desktop scenario, a user is using a remote server for running servic
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Remote Desktop redirection**
|
### Remote Desktop redirection
|
||||||
|
|
||||||
Notes about the redirection model:
|
Notes about the redirection model:
|
||||||
|
|
||||||
1. This scenario is a remote sign-in session on a computer with Remote Desktop Services. In the remote session (labeled as "Client session"), the user runs **net use /smartcard**.
|
1. This scenario is a remote sign-in session on a computer with Remote Desktop Services. In the remote session (labeled as "Client session"), the user runs `net use /smartcard`
|
||||||
|
1. 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
|
||||||
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.
|
1. The authentication is performed by the LSA in session 0
|
||||||
|
1. The CryptoAPI processing is performed in the LSA (`lsass.exe`). This is possible because RDP redirector (`rdpdr.sys`) allows per-session, rather than per-process, context
|
||||||
3. The authentication is performed by the LSA in session 0.
|
1. The ScHelper library is a CryptoAPI wrapper that is specific to the Kerberos protocol
|
||||||
|
1. The redirection decision is made on a per smart card context basis, based on the session of the thread that performs the `SCardEstablishContext` call
|
||||||
4. The CryptoAPI processing is performed in the LSA (Lsass.exe). This is possible because RDP redirector (rdpdr.sys) allows per-session, rather than per-process, context.
|
|
||||||
|
|
||||||
5. The WinScard and SCRedir components, which were separate modules in operating systems earlier than Windows Vista, are now included in one module. The ScHelper library is a CryptoAPI wrapper that is specific to the Kerberos protocol.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
## RD Session Host server single sign-in experience
|
## RD Session Host server single sign-in experience
|
||||||
|
|
||||||
As a part of the Common Criteria compliance, the RDC client must be configurable to use Credential Manager to acquire and save the user's password or smart card PIN. Common Criteria compliance requires that applications not have direct access to the user's password or PIN.
|
As a part of the Common Criteria compliance, the RDC client must be configurable to use Credential Manager to acquire and save the user's password or smart card PIN. Common Criteria compliance requires that applications not have direct access to the user's password or PIN.
|
||||||
|
|
||||||
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.
|
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 can't 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.
|
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 isn't 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 doesn't receive any additional prompts for the PIN, unless the PIN is incorrect or there are smart card-related failures.
|
||||||
|
|
||||||
### Remote Desktop Services and smart card sign-in
|
### Remote Desktop Services and smart card sign-in
|
||||||
|
|
||||||
@ -55,15 +46,19 @@ Remote Desktop Services enables users to sign in with a smart card by entering a
|
|||||||
|
|
||||||
In addition, Group Policy settings that are specific to Remote Desktop Services need to be enabled for smart card-based sign-in.
|
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:
|
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 isn't in the same domain or workgroup, the following command can be used to deploy the certificate:
|
||||||
|
|
||||||
**certutil -dspublish NTAuthCA** "*DSCDPContainer*"
|
```cmd
|
||||||
|
certutil.exe -dspublish NTAuthCA "DSCDPContainer"
|
||||||
|
```
|
||||||
|
|
||||||
The *DSCDPContainer* Common Name (CN) is usually the name of the certification authority.
|
The `DSCDPContainer` Common Name (CN) is usually the name of the certification authority.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
**certutil -dspublish NTAuthCA** <*CertFile*> **"CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=engineering,DC=contoso,DC=com"**
|
```cmd
|
||||||
|
certutil -dspublish NTAuthCA <CertFile> "CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=engineering,DC=contoso,DC=com"
|
||||||
|
```
|
||||||
|
|
||||||
For information about this option for the command-line tool, see [-dsPublish](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#BKMK_dsPublish).
|
For information about this option for the command-line tool, see [-dsPublish](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#BKMK_dsPublish).
|
||||||
|
|
||||||
@ -71,25 +66,25 @@ For information about this option for the command-line tool, see [-dsPublish](/p
|
|||||||
|
|
||||||
To enable remote access to resources in an enterprise, the root certificate for the domain must be provisioned on the smart card. From a computer that is joined to a domain, run the following command at the command line:
|
To enable remote access to resources in an enterprise, the root certificate for the domain must be provisioned on the smart card. From a computer that is joined to a domain, run the following command at the command line:
|
||||||
|
|
||||||
**certutil -scroots update**
|
```cmd
|
||||||
|
certutil.exe -scroots update
|
||||||
|
```
|
||||||
|
|
||||||
For information about this option for the command-line tool, see [-SCRoots](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#BKMK_SCRoots).
|
For information about this option for the command-line tool, see [-SCRoots](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#BKMK_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 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:
|
||||||
|
|
||||||
**certutil -addstore -enterprise NTAUTH** <*CertFile*>
|
```cmd
|
||||||
|
certutil -addstore -enterprise NTAUTH <CertFile>
|
||||||
|
```
|
||||||
|
|
||||||
Where <*CertFile*> is the root certificate of the KDC certificate issuer.
|
Where *CertFile* is the root certificate of the KDC certificate issuer.
|
||||||
|
|
||||||
For information about this option for the command-line tool, see [-addstore](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#BKMK_addstore).
|
For information about this option for the command-line tool, see [-addstore](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#BKMK_addstore).
|
||||||
|
|
||||||
> [!NOTE]
|
> [!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.
|
> 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*>
|
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](smart-card-group-policy-and-registry-settings.md).
|
The UPN in the certificate must include a domain that can be resolved. Otherwise, the Kerberos protocol can't 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](smart-card-group-policy-and-registry-settings.md).
|
||||||
|
|
||||||
## See also
|
|
||||||
|
|
||||||
[How Smart Card Sign-in Works in Windows](smart-card-how-smart-card-sign-in-works-in-windows.md)
|
|
||||||
|
@ -1,40 +1,34 @@
|
|||||||
---
|
---
|
||||||
title: Smart Card Architecture
|
title: Smart Card Architecture
|
||||||
description: This topic for the IT professional describes the system architecture that supports smart cards in the Windows operating system.
|
description: This topic for the IT professional describes the system architecture that supports smart cards in the Windows operating system.
|
||||||
ms.reviewer: ardenw
|
|
||||||
ms.topic: reference-architecture
|
ms.topic: reference-architecture
|
||||||
ms.date: 09/24/2021
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Smart Card Architecture
|
# Smart Card Architecture
|
||||||
|
|
||||||
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.
|
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.
|
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 aren't dealing with an imposter.
|
||||||
|
|
||||||
In a networking context, authentication is the act of proving identity to a network application or resource. Typically, identity is proven by a cryptographic operation that uses a key only the user knows (such as with public key cryptography), or a shared key. The server side of the authentication exchange compares the signed data with a known cryptographic key to validate the authentication attempt. Storing the cryptographic keys in a secure central location makes the authentication process scalable and maintainable.
|
In a networking context, authentication is the act of proving identity to a network application or resource. Typically, identity is proven by a cryptographic operation that uses a key only the user knows (such as with public key cryptography), or a shared key. The server side of the authentication exchange compares the signed data with a known cryptographic key to validate the authentication attempt. Storing the cryptographic keys in a secure central location makes the authentication process scalable and maintainable.
|
||||||
|
|
||||||
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:
|
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:
|
||||||
|
|
||||||
- [Credential provider architecture](#credential-provider-architecture)
|
- [Credential provider architecture](#credential-provider-architecture)
|
||||||
|
- [Smart card subsystem architecture](#smart-card-subsystem-architecture)
|
||||||
- [Smart card subsystem architecture](#smart-card-subsystem-architecture)
|
|
||||||
|
|
||||||
<!-- This link probably won't stay current. If it seems useful, it could be un-commented.
|
|
||||||
For more information, see [Windows Authentication Architecture](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn751044(v=ws.11)). This topic in the Windows Authentication Technical Overview explains the basic architectural scheme for Windows authentication for past and current versions of Windows.
|
|
||||||
-->
|
|
||||||
|
|
||||||
## Credential provider architecture
|
## Credential provider architecture
|
||||||
|
|
||||||
The following table lists the components that are included in the interactive sign-in architecture of the Windows Server and Windows operating systems.
|
The following table lists the components that are included in the interactive sign-in architecture:
|
||||||
|
|
||||||
| **Component** | **Description** |
|
| Component | Description |
|
||||||
|------------------------------------------------|-----|
|
|--|--|
|
||||||
| Winlogon | Provides an interactive sign-in infrastructure. |
|
| Winlogon | Provides an interactive sign-in infrastructure. |
|
||||||
| Logon UI | Provides interactive UI rendering. |
|
| Logon UI | Provides interactive UI rendering. |
|
||||||
| Credential providers (password and smart card) | Describes credential information and serializing credentials. |
|
| Credential providers (password and smart card) | Describes credential information and serializing credentials. |
|
||||||
| Local Security Authority (LSA) | Processes sign-in credentials. |
|
| Local Security Authority (LSA) | Processes sign-in credentials. |
|
||||||
| Authentication packages | Includes NTLM and the Kerberos protocol. Communicates with server authentication packages to authenticate users. |
|
| 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.
|
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.
|
||||||
|
|
||||||
@ -42,8 +36,6 @@ After receiving the SAS, the UI then generates the sign-in tile from the informa
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Figure 1** **Credential provider architecture**
|
|
||||||
|
|
||||||
Typically, a user who signs in to a computer by using a local account or a domain account must enter a user name and password. These credentials are used to verify the user's identity. For smart card sign-in, a user's credentials are contained on the smart card's security chip. A smart card reader lets the computer interact with the security chip on the smart card. When users sign in with a smart card, they enter a personal identification number (PIN) instead of a user name and password.
|
Typically, a user who signs in to a computer by using a local account or a domain account must enter a user name and password. These credentials are used to verify the user's identity. For smart card sign-in, a user's credentials are contained on the smart card's security chip. A smart card reader lets the computer interact with the security chip on the smart card. When users sign in with a smart card, they enter a personal identification number (PIN) instead of a user name and password.
|
||||||
|
|
||||||
Credential providers are in-process COM objects that run on the local system and are used to collect credentials. The Logon UI provides interactive UI rendering, Winlogon provides interactive sign-in infrastructure, and credential providers work with both of these components to help gather and process credentials.
|
Credential providers are in-process COM objects that run on the local system and are used to collect credentials. The Logon UI provides interactive UI rendering, Winlogon provides interactive sign-in infrastructure, and credential providers work with both of these components to help gather and process credentials.
|
||||||
@ -52,21 +44,23 @@ Winlogon instructs the Logon UI to display credential provider tiles after it re
|
|||||||
|
|
||||||
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.
|
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.
|
> [!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 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).
|
||||||
|
|
||||||
Multiple credential providers can coexist on a computer.
|
Multiple credential providers can coexist on a computer.
|
||||||
|
|
||||||
Credential providers must be registered on a computer running Windows, and they are responsible for:
|
Credential providers must be registered on a computer running Windows, and they're responsible for:
|
||||||
|
|
||||||
- Describing the credential information that is required for authentication.
|
- Describing the credential information that is required for authentication
|
||||||
|
- Handling communication and logic with external authentication authorities
|
||||||
|
- Packaging credentials for interactive and network sign-in
|
||||||
|
|
||||||
- Handling communication and logic with external authentication authorities.
|
> [!NOTE]
|
||||||
|
> The Credential Provider API does not render the UI. It describes what needs to be rendered.\
|
||||||
- Packaging credentials for interactive and network sign-in.
|
> Only the password credential provider is available in safe mode.\
|
||||||
|
> The smart card credential provider is available in safe mode during networking.
|
||||||
> **Note** The Credential Provider API does not render the UI. It describes what needs to be rendered. <br>Only the password credential provider is available in safe mode.<br>The smart card credential provider is available in safe mode during networking.
|
|
||||||
|
|
||||||
## Smart card subsystem architecture
|
## Smart card subsystem architecture
|
||||||
|
|
||||||
@ -74,19 +68,16 @@ Vendors provide smart cards and smart card readers, and in many cases the vendor
|
|||||||
|
|
||||||
### Base CSP and smart card minidriver architecture
|
### Base CSP and smart card minidriver architecture
|
||||||
|
|
||||||
Figure 2 illustrates the relationship between the CryptoAPI, CSPs, the Smart Card Base Cryptographic Service Provider (Base CSP), and smart card minidrivers.
|
The following graphic shows the relationship between the CryptoAPI, CSPs, the Smart Card Base Cryptographic Service Provider (Base CSP), and smart card minidrivers.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Figure 2** **Base CSP and smart card minidriver architecture**
|
|
||||||
|
|
||||||
### Caching with Base CSP and smart card KSP
|
### Caching with Base CSP and smart card KSP
|
||||||
|
|
||||||
Smart card architecture uses caching mechanisms to assist in streamlining operations and to improve a user's access to a PIN.
|
Smart card architecture uses caching mechanisms to help streamlining operations and to improve a user's access to a PIN.
|
||||||
|
|
||||||
- [Data caching](#data-caching): The data cache provides for a single process to minimize smart card I/O operations.
|
- [Data caching](#data-caching): The data cache provides for a single process to minimize smart card I/O operations
|
||||||
|
- [PIN caching](#pin-caching): The PIN cache helps the user from having to reenter a PIN each time the smart card is unauthenticated
|
||||||
- [PIN caching](#pin-caching): The PIN cache helps the user from having to reenter a PIN each time the smart card is unauthenticated.
|
|
||||||
|
|
||||||
#### Data caching
|
#### Data caching
|
||||||
|
|
||||||
@ -94,13 +85,10 @@ Each CSP implements the current smart card data cache separately. The Base CSP i
|
|||||||
|
|
||||||
The existing global cache works as follows:
|
The existing global cache works as follows:
|
||||||
|
|
||||||
1. The application requests a cryptographic operation. For example, a user certificate is to be read from the smart card.
|
1. The application requests a cryptographic operation. For example, a user certificate is to be read from the smart card
|
||||||
|
1. The CSP checks its cache for the item
|
||||||
2. The CSP checks its cache for the item.
|
1. If the item isn't found in the cache, or if the item is cached but isn't up-to-date, the item is read from the smart card
|
||||||
|
1. After any item has been read from the smart card, it's added to the cache. Any existing out-of-date copy of that item is replaced
|
||||||
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](#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.
|
Three types of objects or data are cached by the CSP: pins (for more information, see [PIN caching](#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.
|
||||||
|
|
||||||
@ -110,51 +98,35 @@ The global data cache is hosted in the Smart Cards for Windows service. Windows
|
|||||||
|
|
||||||
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.
|
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.
|
To mitigate this, the smart card enters an exclusive state when an application authenticates to the smart card. However, this means that other applications can't 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.
|
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.
|
1. The user starts Outlook and tries to send a signed e-mail. The private key is on the smart card
|
||||||
|
1. Outlook prompts the user for the smart card PIN. The user enters the correct PIN
|
||||||
2. Outlook prompts the user for the smart card PIN. The user enters the correct PIN.
|
1. E-mail data is sent to the smart card for the signature operation. The Outlook client formats the response and sends the e-mail
|
||||||
|
1. The user opens Internet Explorer and tries to access a protected site that requires Transport Layer Security (TLS) authentication for the client
|
||||||
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.
|
1. Internet Explorer prompts the user for the smart card PIN. The user enters the correct PIN
|
||||||
|
1. The TLS-related private key operation occurs on the smart card, and the user is authenticated and signed in
|
||||||
4. The user opens Internet Explorer and tries to access a protected site that requires Transport Layer Security (TLS) authentication for the client.
|
1. The user returns to Outlook to send another signed e-mail. This time, the user isn't 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 won't prompt the user for a PIN
|
||||||
|
|
||||||
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.
|
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
|
### 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:
|
The following sections in this article describe how Windows uses the smart card architecture to select the correct smart card reader software, provider, and credentials for a successful smart card sign-in:
|
||||||
|
|
||||||
- [Container specification levels](#container-specification-levels)
|
- [Container specification levels](#container-specification-levels)
|
||||||
|
- [Container operations](#container-operations)
|
||||||
- [Container operations](#container-operations)
|
- [Context flags](#context-flags)
|
||||||
|
- [Create a new container in silent context](#create-a-new-container-in-silent-context)
|
||||||
- [Context flags](#context-flags)
|
- [Smart card selection behavior](#smart-card-selection-behavior)
|
||||||
|
- [Make a smart card reader match](#make-a-smart-card-reader-match)
|
||||||
- [Create a new container in silent context](#create-a-new-container-in-silent-context)
|
- [Make a smart card match](#make-a-smart-card-match)
|
||||||
|
- [Open an existing default container (no reader specified)](#open-an-existing-default-container-no-reader-specified)
|
||||||
- [Smart card selection behavior](#smart-card-selection-behavior)
|
- [Open an existing GUID-named container (no reader specified)](#open-an-existing-guid-named-container-no-reader-specified)
|
||||||
|
- [Create a new container (no reader specified)](#create-a-new-container-no-reader-specified)
|
||||||
- [Make a smart card reader match](#make-a-smart-card-reader-match)
|
- [Delete a container](#delete-a-container)
|
||||||
|
|
||||||
- [Make a smart card match](#make-a-smart-card-match)
|
|
||||||
|
|
||||||
- [Open an existing default container (no reader specified)](#open-an-existing-default-container-no-reader-specified)
|
|
||||||
|
|
||||||
- [Open an existing GUID-named container (no reader specified)](#open-an-existing-guid-named-container-no-reader-specified)
|
|
||||||
|
|
||||||
- [Create a new container (no reader specified)](#create-a-new-container-no-reader-specified)
|
|
||||||
|
|
||||||
- [Delete a container](#delete-a-container)
|
|
||||||
|
|
||||||
#### Container specification levels
|
#### Container specification levels
|
||||||
|
|
||||||
@ -162,13 +134,14 @@ In response to a CryptAcquireContext call in CryptoAPI, the Base CSP tries to ma
|
|||||||
|
|
||||||
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.
|
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.
|
> [!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** |
|
| **Type** | **Name** | **Format** |
|
||||||
|----------|----------|------------|
|
|----------|----------|------------|
|
||||||
| I | Reader Name and Container Name | \\\\.\\<Reader Name>\\<Container Name> |
|
| I | Reader Name and Container Name | `\.<Reader Name><Container Name>` |
|
||||||
| II | Reader Name and Container Name (NULL) | \\\\.\\<Reader Name> |
|
| II | Reader Name and Container Name (NULL) | `\.<Reader Name>` |
|
||||||
| III | Container Name Only | <Container Name> |
|
| III | Container Name Only | `<Container Name>` |
|
||||||
| IV | Default Container (NULL) Only | NULL |
|
| IV | Default Container (NULL) Only | NULL |
|
||||||
|
|
||||||
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.
|
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.
|
||||||
@ -177,74 +150,63 @@ The Base CSP and smart card KSP cache smart card handle information about the ca
|
|||||||
|
|
||||||
The following three container operations can be requested by using CryptAcquireContext:
|
The following three container operations can be requested by using CryptAcquireContext:
|
||||||
|
|
||||||
1. Create a new container. (The CNG equivalent of CryptAcquireContext with dwFlags set to CRYPT\_NEWKEYSET is NCryptCreatePersistedKey.)
|
1. Create a new container. (The CNG equivalent of CryptAcquireContext with dwFlags set to CRYPT_NEWKEYSET is NCryptCreatePersistedKey.)
|
||||||
|
1. Open an existing container. (The CNG equivalent of CryptAcquireContext to open the container is NCryptOpenKey.)
|
||||||
2. Open an existing container. (The CNG equivalent of CryptAcquireContext to open the container is NCryptOpenKey.)
|
1. Delete a container. (The CNG equivalent of CryptAcquireContext with dwFlags set to CRYPT_DELETEKEYSET is NCryptDeleteKey.)
|
||||||
|
|
||||||
3. Delete a container. (The CNG equivalent of CryptAcquireContext with dwFlags set to CRYPT\_DELETEKEYSET is NCryptDeleteKey.)
|
|
||||||
|
|
||||||
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 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.
|
The following table shows the restrictions for the container creation operation.
|
||||||
|
|
||||||
| **Specification** | **Restriction** |
|
| Specification | Restriction |
|
||||||
|------------------------------------|-----------|
|
|--|--|
|
||||||
| No silent context | Key container creation must always be able to show UI, such as the PIN prompt. |
|
| No silent context | Key container creation must always be able to show UI, such as the PIN prompt. |
|
||||||
| No overwriting existing containers | If the specified container already exists on the chosen smart card, choose another smart card or cancel the operation. |
|
| No overwriting existing containers | If the specified container already exists on the chosen smart card, choose another smart card or cancel the operation. |
|
||||||
|
|
||||||
#### Context flags
|
#### Context flags
|
||||||
|
|
||||||
The following table shows the context flags used as restrictions for the container creation operation.
|
The following table shows the context flags used as restrictions for the container creation operation.
|
||||||
|
|
||||||
| **Flag** | **Description** |
|
| Flag | Description |
|
||||||
|------------------------|------------------------------------------------------|
|
|--|--|
|
||||||
| CRYPT\_SILENT | No UI can be displayed during this operation. |
|
| `CRYPT_SILENT` | No UI can be displayed during this operation. |
|
||||||
| CRYPT\_MACHINE\_KEYSET | No cached data should be used during this operation. |
|
| `CRYPT_MACHINE_KEYSET` | No cached data should be used during this operation. |
|
||||||
| CRYPT\_VERIFYCONTEXT | Only public data can be accessed on the smart card. |
|
| `CRYPT_VERIFYCONTEXT` | Only public data can be accessed on the smart card. |
|
||||||
|
|
||||||
In addition to container operations and container specifications, you must consider other user options, such as the CryptAcquireContext flags, during smart card selection.
|
In addition to container operations and container specifications, you must consider other user options, such as the CryptAcquireContext flags, during smart card selection.
|
||||||
|
|
||||||
> **Important** The CRYPT\_SILENT flag cannot be used to create a new container.
|
> [!IMPORTANT]
|
||||||
|
> The CRYPT_SILENT flag cannot be used to create a new container.
|
||||||
|
|
||||||
#### Create a new container in silent context
|
#### Create a new container in silent context
|
||||||
|
|
||||||
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:
|
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:
|
||||||
|
|
||||||
1. Call CryptAcquireContext by passing the smart card reader name in as a type II container specification level, and specifying the CRYPT\_DEFAULT\_CONTAINER\_OPTIONAL flag.
|
1. Call CryptAcquireContext by passing the smart card reader name in as a type II container specification level, and specifying the `CRYPT_DEFAULT_CONTAINER_OPTIONAL` flag
|
||||||
|
1. Call CryptSetProvParam by specifying `PP_KEYEXCHANGE_PIN` or `PP_SIGNATURE_PIN` and a null-terminated ASCII PIN.
|
||||||
2. Call CryptSetProvParam by specifying PP\_KEYEXCHANGE\_PIN or PP\_SIGNATURE\_PIN and a null-terminated ASCII PIN.
|
1. Release the context acquired in Step 1
|
||||||
|
1. Call CryptAcquireContext with `CRYPT_NEWKEYSET`, and specify the type I container specification level
|
||||||
3. Release the context acquired in Step 1.
|
1. Call CryptGenKey to create the key
|
||||||
|
|
||||||
4. Call CryptAcquireContext with CRYPT\_NEWKEYSET, and specify the type I container specification level.
|
|
||||||
|
|
||||||
5. Call CryptGenKey to create the key.
|
|
||||||
|
|
||||||
#### Smart card selection behavior
|
#### Smart card selection behavior
|
||||||
|
|
||||||
In some of the following scenarios, the user can be prompted to insert a smart card. If the user context is silent, this operation fails and no UI is displayed. Otherwise, in response to the UI, the user can insert a smart card or click **Cancel**. If the user cancels the operation, the operation fails. The flow chart in Figure 3 shows the selection steps performed by the Windows operating system.
|
In some of the following scenarios, the user can be prompted to insert a smart card. If the user context is silent, this operation fails and no UI is displayed. Otherwise, in response to the UI, the user can insert a smart card or select **Cancel**. If the user cancels the operation, the operation fails. The flow chart shows the selection steps performed by the Windows operating system.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Figure 3** **Smart card selection behavior**
|
|
||||||
|
|
||||||
In general, smart card selection behavior is handled by the SCardUIDlgSelectCard API. The Base CSP interacts with this API by calling it directly. The Base CSP also sends callback functions that have the purpose of filtering and matching candidate smart cards. Callers of CryptAcquireContext provide smart card matching information. Internally, the Base CSP uses a combination of smart card serial numbers, reader names, and container names to find specific smart cards.
|
In general, smart card selection behavior is handled by the SCardUIDlgSelectCard API. The Base CSP interacts with this API by calling it directly. The Base CSP also sends callback functions that have the purpose of filtering and matching candidate smart cards. Callers of CryptAcquireContext provide smart card matching information. Internally, the Base CSP uses a combination of smart card serial numbers, reader names, and container names to find specific smart cards.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
#### Make a smart card reader match
|
#### Make a smart card reader match
|
||||||
|
|
||||||
For type I and type II container specification levels, the smart card selection process is less complex because only the smart card in the named reader can be considered a match. The process for matching a smart card with a smart card reader is:
|
For type I and type II container specification levels, the smart card selection process is less complex because only the smart card in the named reader can be considered a match. The process for matching a smart card with a smart card reader is:
|
||||||
|
|
||||||
1. Find the requested smart card reader. If it cannot be found, the process fails. (This requires a cache search by reader name.)
|
1. Find the requested smart card reader. If it can't be found, the process fails (this requires a cache search by reader name)
|
||||||
|
1. If no smart card is in the reader, the user is prompted to insert a smart card. (this is only in nonsilent mode; if the call is made in silent mode, it fails)
|
||||||
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.)
|
1. For container specification level II only, the name of the default container on the chosen smart card is determined
|
||||||
|
1. To open an existing container or delete an existing container, find the specified container. If the specified container can't be found on this smart card, the user is prompted to insert a smart card
|
||||||
3. For container specification level II only, the name of the default container on the chosen smart card is determined.
|
1. If the system attempts to create a new container, if the specified container already exists on this smart card, the process fails
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
#### Make a smart card match
|
#### Make a smart card match
|
||||||
|
|
||||||
@ -252,80 +214,71 @@ For container specification levels III and IV, a broader method is used to match
|
|||||||
|
|
||||||
#### Open an existing default container (no reader specified)
|
#### Open an existing default container (no reader specified)
|
||||||
|
|
||||||
> **Note** This operation requires that you use the smart card with the Base CSP.
|
> [!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.
|
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 isn't valid, the Base CSP continues to search for a new smart card
|
||||||
|
1. If a matching smart card isn't 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
|
||||||
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.
|
|
||||||
|
|
||||||
#### Open an existing GUID-named container (no reader specified)
|
#### Open an existing GUID-named container (no reader specified)
|
||||||
|
|
||||||
> **Note** This operation requires that you use the smart card with the Base CSP.
|
> [!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).
|
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 isn't 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)
|
||||||
|
1. If a matching smart card isn't 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
|
||||||
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.
|
|
||||||
|
|
||||||
#### Create a new container (no reader specified)
|
#### Create a new container (no reader specified)
|
||||||
|
|
||||||
> **Note** This operation requires that you use the smart card with the Base CSP.
|
> [!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.
|
If the PIN isn't 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.
|
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:
|
1. For each smart card already known by the CSP, refresh the stored SCARDHANDLE and make the following checks:
|
||||||
|
1. If the smart card has been removed, continue the search
|
||||||
1. If the smart card has been removed, continue the search.
|
1. If the smart card is present, but it already has the named container, continue the search
|
||||||
|
1. 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
|
||||||
2. If the smart card is present, but it already has the named container, continue the search.
|
1. Otherwise, use the first available smart card that meets the above criteria for the container creation
|
||||||
|
1. If a matching smart card isn't 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 doesn't 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
|
||||||
3. 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.
|
|
||||||
|
|
||||||
4. 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
|
#### 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.
|
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 isn't recommended
|
||||||
|
1. For each smart card already known by the CSP, refresh the stored SCARDHANDLE and make the following checks:
|
||||||
2. For each smart card already known by the CSP, refresh the stored SCARDHANDLE and make the following checks:
|
1. If the smart card doesn't have the named container, continue the search
|
||||||
|
1. 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
|
||||||
1. If the smart card does not have the named container, continue the search.
|
1. If a matching smart card isn't 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
|
||||||
|
|
||||||
2. 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.
|
|
||||||
|
|
||||||
### Base CSP and KSP-based architecture in Windows
|
### Base CSP and KSP-based architecture in Windows
|
||||||
|
|
||||||
Figure 4 shows the Cryptography architecture that is used by the Windows operating system.
|
The following diagram shows the Cryptography architecture that is used by the Windows operating system.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Figure 4** **Cryptography architecture**
|
|
||||||
|
|
||||||
### Base CSP and smart card KSP properties in Windows
|
### Base CSP and smart card KSP properties in Windows
|
||||||
|
|
||||||
> **Note** The API definitions are located in WinCrypt.h and WinSCard.h.
|
> [!NOTE]
|
||||||
|
> The API definitions are located in WinCrypt.h and WinSCard.h.
|
||||||
|
|
||||||
| **Property** | **Description** |
|
| Property | Description |
|
||||||
|-----------------------|------------------|
|
|--|--|
|
||||||
| PP\_USER\_CERTSTORE | - Used to return an HCERTSTORE that contains all user certificates on the smart card<br>- Read-only (used only by CryptGetProvParam)<br>- Caller responsible for closing the certificate store<br>- Certificate encoded using PKCS\_7\_ASN\_ENCODING or X509\_ASN\_ENCODING<br>- CSP should set KEY\_PROV\_INFO on certificates<br>- Certificate store should be assumed to be an in-memory store<br>- Certificates should have a valid CRYPT\_KEY\_PROV\_INFO as a property |
|
| `PP_USER_CERTSTORE` | - Used to return an `HCERTSTORE` that contains all user certificates on the smart card<br>- Read-only (used only by `CryptGetProvParam`)<br>- Caller responsible for closing the certificate store<br>- Certificate encoded using `PKCS_7_ASN_ENCODING` or `X509_ASN_ENCODING`<br>- CSP should set `KEY_PROV_INFO` on certificates<br>- Certificate store should be assumed to be an in-memory store<br>- Certificates should have a valid `CRYPT_KEY_PROV_INFO` as a property |
|
||||||
| PP\_ROOT\_CERTSTORE | - Read and Write (used by CryptGetProvParam and CryptSetProvParam)<br>- Used to write a collection of root certificates to the smart card or return HCERTSTORE, which contains root certificates from the smart card<br>- Used primarily for joining a domain by using a smart card<br>- Caller responsible for closing the certificate store |
|
| `PP_ROOT_CERTSTORE` | - Read and Write (used by `CryptGetProvParam` and `CryptSetProvParam`)<br>- Used to write a collection of root certificates to the smart card or return `HCERTSTORE`, which contains root certificates from the smart card<br>- Used primarily for joining a domain by using a smart card<br>- Caller responsible for closing the certificate store |
|
||||||
| PP\_SMARTCARD\_READER | - Read-only (used only by CryptGetProvParam)<br>- Returns the smart card reader name as an ANSI string that is used to construct a fully qualified container name (that is, a smart card reader plus a container) |
|
| `PP_SMARTCARD_READER` | - Read-only (used only by `CryptGetProvParam`)<br>- Returns the smart card reader name as an ANSI string that is used to construct a fully qualified container name (that is, a smart card reader plus a container) |
|
||||||
| PP\_SMARTCARD\_GUID | - Return smart card GUID (also known as a serial number), which should be unique for each smart card<br>- Used by the certificate propagation service to track the source of a root certificate|
|
| `PP_SMARTCARD_GUID` | - Return smart card GUID (also known as a serial number), which should be unique for each smart card<br>- 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<br>- Persistent for the entire process when it is set<br>- Write-only (used only by CryptSetProvParam) |
|
| `PP_UI_PROMPT` | - Used to set the search string for the `SCardUIDlgSelectCard` card insertion dialog box<br>- Persistent for the entire process when it's set<br>- Write-only (used only by `CryptSetProvParam`) |
|
||||||
|
|
||||||
### Implications for CSPs in Windows
|
### Implications for CSPs in Windows
|
||||||
|
|
||||||
Cryptographic Service Providers (CSPs), including custom smart card CSPs, continue to be supported but this approach is not recommended. Using the existing Base CSP and smart card KSP with the smart card minidriver model for smart cards provides significant benefits in terms of performance, and PIN and data caching. One minidriver can be configured to work under CryptoAPI and CNG layers. This provides benefits from enhanced cryptographic support, including elliptic curve cryptography and AES.
|
Cryptographic Service Providers (CSPs), including custom smart card CSPs, continue to be supported but this approach isn't recommended. Using the existing Base CSP and smart card KSP with the smart card minidriver model for smart cards provides significant benefits in terms of performance, and PIN and data caching. One minidriver can be configured to work under CryptoAPI and CNG layers. This provides benefits from enhanced cryptographic support, including elliptic curve cryptography and AES.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
### Write a smart card minidriver, CSP, or KSP
|
### Write a smart card minidriver, CSP, or KSP
|
||||||
|
|
||||||
CSPs and KSPs are meant to be written only if specific functionality is not available in the current smart card minidriver architecture. For example, the smart card minidriver architecture supports hardware security modules, so a minidriver could be written for a hardware security module, and a CSP or KSP may not be required unless it is needed to support algorithms that are not implemented in the Base CSP or smart card KSP.
|
CSPs and KSPs are meant to be written only if specific functionality isn't available in the current smart card minidriver architecture. For example, the smart card minidriver architecture supports hardware security modules, so a minidriver could be written for a hardware security module, and a CSP or KSP may not be required unless it's needed to support algorithms that aren't implemented in the Base CSP or smart card KSP.
|
||||||
|
|
||||||
For more information about how to write a smart card minidriver, CSP, or KSP, see [Smart Card Minidrivers](/windows-hardware/drivers/smartcard/smart-card-minidrivers).
|
For more information about how to write a smart card minidriver, CSP, or KSP, see [Smart Card Minidrivers](/windows-hardware/drivers/smartcard/smart-card-minidrivers).
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Certificate Propagation Service
|
title: Certificate Propagation Service
|
||||||
description: This topic for the IT professional describes the certificate propagation service (CertPropSvc), which is used in smart card implementation.
|
description: This topic for the IT professional describes the certificate propagation service (CertPropSvc), which is used in smart card implementation.
|
||||||
ms.reviewer: ardenw
|
|
||||||
ms.topic: concept-article
|
ms.topic: concept-article
|
||||||
ms.date: 08/24/2021
|
ms.date: 08/24/2021
|
||||||
---
|
---
|
||||||
@ -12,57 +11,45 @@ This topic for the IT professional describes the certificate propagation service
|
|||||||
|
|
||||||
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](smart-card-group-policy-and-registry-settings.md).
|
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](smart-card-group-policy-and-registry-settings.md).
|
||||||
|
|
||||||
> **Note** The certificate propagation service must be running for smart card Plug and Play to work.
|
> [!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.
|
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.
|
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
|
||||||
|
1. The arrow labeled **R** represents the possibility of a remote session and the use of smart card redirection
|
||||||
2. The arrow labeled **R** represents the possibility of a remote session and the use of smart card redirection.
|
1. The arrow labeled **2** indicates the certification to the reader
|
||||||
|
1. The arrow labeled **3** indicates the access to the certificate store during the client session
|
||||||
3. The arrow labeled **2** indicates the certification to the reader.
|
|
||||||
|
|
||||||
4. The arrow labeled **3** indicates the access to the certificate store during the client session.
|
|
||||||
|
|
||||||
**Certificate propagation service**
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
1. A signed-in user inserts a smart card.
|
1. A signed-in user inserts a smart card
|
||||||
|
1. CertPropSvc is notified that a smart card was inserted
|
||||||
|
1. CertPropSvc reads all certificates from all inserted smart cards. The certificates are written to the user's personal certificate store
|
||||||
|
|
||||||
2. CertPropSvc is notified that a smart card was inserted.
|
> [!NOTE]
|
||||||
|
> The certificate propagation service is started as a Remote Desktop Services dependency.
|
||||||
3. CertPropSvc reads all certificates from all inserted smart cards. The certificates are written to the user's personal certificate store.
|
|
||||||
|
|
||||||
> **Note** The certificate propagation service is started as a Remote Desktop Services dependency.
|
|
||||||
|
|
||||||
Properties of the certificate propagation service include:
|
Properties of the certificate propagation service include:
|
||||||
|
|
||||||
- CERT\_STORE\_ADD\_REPLACE\_EXISTING\_INHERIT\_PROPERTIES adds certificates to a user's Personal store.
|
- `CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES` adds certificates to a user's Personal store
|
||||||
|
- If the certificate has the `CERT_ENROLLMENT_PROP_ID` property (as defined by `wincrypt.h`), it filters empty requests and places them in the current user's request store, but it doesn't propagate them to the user's Personal store
|
||||||
- If the certificate has the CERT\_ENROLLMENT\_PROP\_ID property (as defined by wincrypt.h), it filters empty requests and places them in the current user's request store, but it does not propagate them to the user's Personal store.
|
- The service doesn't 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 might include:
|
||||||
- The service does not propagate any computer certificates to a user's Personal store or propagate user certificates to a computer store.
|
- **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
|
||||||
- The service propagates certificates according to Group Policy options that are set, which may include:
|
- **Configure root certificate cleanup** specifies how root certificates are removed
|
||||||
|
|
||||||
- **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.
|
|
||||||
|
|
||||||
## Root certificate propagation service
|
## Root certificate propagation service
|
||||||
|
|
||||||
Root certificate propagation is responsible for the following smart card deployment scenarios when public key infrastructure (PKI) trust has not yet been established:
|
Root certificate propagation is responsible for the following smart card deployment scenarios when public key infrastructure (PKI) trust hasn't yet been established:
|
||||||
|
|
||||||
- Joining the domain
|
- Joining the domain
|
||||||
|
- Accessing a network remotely
|
||||||
|
|
||||||
- Accessing a network remotely
|
In both cases, the computer isn't joined to a domain, and therefore, trust isn't 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.
|
||||||
|
|
||||||
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 might 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](smart-card-group-policy-and-registry-settings.md).
|
||||||
|
|
||||||
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](smart-card-group-policy-and-registry-settings.md).
|
|
||||||
|
|
||||||
For more information about root certificate requirements, see [Smart card root certificate requirements for use with domain sign-in](smart-card-certificate-requirements-and-enumeration.md#smart-card-root-certificate-requirements-for-use-with-domain-sign-in).
|
For more information about root certificate requirements, see [Smart card root certificate requirements for use with domain sign-in](smart-card-certificate-requirements-and-enumeration.md#smart-card-root-certificate-requirements-for-use-with-domain-sign-in).
|
||||||
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Certificate Requirements and Enumeration
|
title: Certificate Requirements and Enumeration
|
||||||
description: This topic for the IT professional and smart card developers describes how certificates are managed and used for smart card sign-in.
|
description: This topic for the IT professional and smart card developers describes how certificates are managed and used for smart card sign-in.
|
||||||
ms.reviewer: ardenw
|
|
||||||
ms.topic: concept-article
|
ms.topic: concept-article
|
||||||
ms.date: 09/24/2021
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Certificate Requirements and Enumeration
|
# Certificate Requirements and Enumeration
|
||||||
@ -12,157 +11,110 @@ This topic for the IT professional and smart card developers describes how certi
|
|||||||
|
|
||||||
When a smart card is inserted, the following steps are performed.
|
When a smart card is inserted, the following steps are performed.
|
||||||
|
|
||||||
> **Note** Unless otherwise mentioned, all operations are performed silently (CRYPT\_SILENT is passed to CryptAcquireContext).
|
> [!NOTE]
|
||||||
|
> Unless otherwise mentioned, all operations are performed silently (CRYPT_SILENT is passed to CryptAcquireContext).
|
||||||
|
|
||||||
1. The smart card resource manager database searches for the smart card's cryptographic service provider (CSP).
|
1. The smart card resource manager database searches for the smart card's cryptographic service provider (CSP).
|
||||||
|
1. A qualified container name is constructed by using the smart card reader name, and it's passed to the CSP. The format is `\\.<Reader name>\`
|
||||||
|
1. CryptAcquireContext is called to retrieve a context to the default container. If a failure occurs, the smart card is unusable for smart card sign-in.
|
||||||
|
1. The name of the container is retrieved by using the PP_CONTAINER parameter with CryptGetProvParam.
|
||||||
|
1. Using the context acquired in Step 3, the CSP is queried for the PP_USER_CERTSTORE parameter. For more information, see [Smart Card Architecture](smart-card-architecture.md). If the operation is successful, the name of a certificate store is returned, and the program flow skips to Step 8.
|
||||||
|
1. If the operation in Step 5 fails, the default container context from Step 3 is queried for the AT_KEYEXCHANGE key.
|
||||||
|
1. The certificate is then queried from the key context by using KP_CERTIFICATE. The certificate is added to an in-memory certificate store.
|
||||||
|
1. For each certificate in the certificate store from Step 5 or Step 7, the following checks are performed:
|
||||||
|
|
||||||
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>*\\
|
1. The certificate must be valid, based on the computer system clock (not expired or valid with a future date).
|
||||||
|
1. The certificate must not be in the AT_SIGNATURE part of a container.
|
||||||
3. CryptAcquireContext is called to retrieve a context to the default container. If a failure occurs, the smart card will be unusable for smart card sign-in.
|
1. The certificate must have a valid user principal name (UPN).
|
||||||
|
1. The certificate must have the digital signature key usage.
|
||||||
4. The name of the container is retrieved by using the PP\_CONTAINER parameter with CryptGetProvParam.
|
1. The certificate must have the smart card logon EKU.
|
||||||
|
|
||||||
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](smart-card-architecture.md). 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:
|
|
||||||
|
|
||||||
1. The certificate must be valid, based on the computer system clock (not expired or valid with a future date).
|
|
||||||
|
|
||||||
2. The certificate must not be in the AT\_SIGNATURE part of a container.
|
|
||||||
|
|
||||||
3. The certificate must have a valid user principal name (UPN).
|
|
||||||
|
|
||||||
4. The certificate must have the digital signature key usage.
|
|
||||||
|
|
||||||
5. The certificate must have the smart card logon EKU.
|
|
||||||
|
|
||||||
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).
|
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.
|
1. The process then chooses a certificate, and the PIN is entered.
|
||||||
|
1. LogonUI.exe packages the information and sends it to Lsass.exe to process the sign-in attempt.
|
||||||
9. The process then chooses a certificate, and the PIN is entered.
|
1. If successful, LogonUI.exe closes. This causes the context acquired in Step 3 to be released.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
## About Certificate support for compatibility
|
|
||||||
|
|
||||||
Although versions of Windows earlier than Windows Vista include support for smart cards, the types of certificates that smart cards can contain are limited. The limitations are:
|
|
||||||
|
|
||||||
- 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.
|
|
||||||
|
|
||||||
- Each certificate must be stored in the AT\_KEYEXCHANGE portion of the default CryptoAPI container, and non-default CryptoAPI containers are not supported.
|
|
||||||
|
|
||||||
The following table lists the certificate support in older Windows operating system versions.
|
|
||||||
|
|
||||||
| **Operating system** | **Certificate support** |
|
|
||||||
|---------------------------------------|----------------------------------------------------------------------------------------------------------|
|
|
||||||
| Windows Server 2008 R2 and Windows 7 | Support for smart card sign-in with ECC-based certificates. ECC smart card sign-in is enabled through Group Policy.<br><br>ECDH\_P256<br>ECDH<br>Curve P-256 from FIPS 186-2<br><br>ECDSA\_P256<br>ECDSA<br>Curve P-256 from FIPS 186-2<br><br>ECDH\_P384<br>ECDH<br>Curve P-384 from FIPS 186-2<br><br>ECDH\_P521<br>ECDH<br>Curve P-521 from FIPS 186-2<br><br>ECDSA\_P256<br>ECDH<br>Curve P-256 from FIPS 186-2<br><br>ECDSA\_P384<br>ECDSA<br>Curve P-384 from FIPS 186-2<br><br>ECDSA\_P521<br>ECDSA<br>Curve P-384 from FIPS 186-2 |
|
|
||||||
| Windows Server 2008 and Windows Vista | Valid certificates are enumerated and displayed from all smart cards and presented to the user.<br>Keys are no longer restricted to the default container, and certificates in different containers can be chosen.<br>Elliptic curve cryptography (ECC)-based certificates are not supported for smart card sign-in |
|
|
||||||
|
|
||||||
## Smart card sign-in flow in Windows
|
## Smart card sign-in flow in Windows
|
||||||
|
|
||||||
Most issues during authentication occur because of session behavior changes. When changes occur, the Local Security Authority (LSA) does not reacquire the session context; it relies instead on the Cryptographic Service Provider to handle the session change.
|
Most issues during authentication occur because of session behavior changes. When changes occur, the Local Security Authority (LSA) doesn't reacquire the session context; it relies instead on the Cryptographic Service Provider to handle the session change.
|
||||||
|
|
||||||
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.
|
Client certificates that don't 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.
|
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.
|
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 aren't listed on the sign-in screen.
|
||||||
|
|
||||||
The following diagram illustrates how smart card sign-in works in the supported versions of Windows.
|
The following diagram illustrates how smart card sign-in works in the supported versions of Windows.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Smart card sign-in flow**
|
### Smart card sign-in flow
|
||||||
|
|
||||||
Following are the steps that are performed during a smart card sign-in:
|
Following are the steps that are performed during a smart card sign-in:
|
||||||
|
|
||||||
1. Winlogon requests the sign-in UI credential information.
|
1. Winlogon requests the sign-in UI credential information.
|
||||||
|
1. Asynchronously, smart card resource manager starts, and the smart card credential provider does the following:
|
||||||
|
1. Gets credential information (a list of known credentials, or if no credentials exist, the smart card reader information that Windows detected).
|
||||||
|
1. Gets a list of smart card readers (by using the WinSCard API) and the list of smart cards inserted in each of them.
|
||||||
|
1. Enumerates each card to verify that a sign-in certificate that is controlled by Group Policy is present. If the certificate is present, the smart card credential provider copies it into a temporary, secure cache on the computer or terminal.
|
||||||
|
|
||||||
2. Asynchronously, smart card resource manager starts, and the smart card credential provider does the following:
|
> [!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, 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.
|
||||||
|
|
||||||
1. Gets credential information (a list of known credentials, or if no credentials exist, the smart card reader information that Windows detected).
|
1. Notifies the sign-in UI that it has new credentials.
|
||||||
|
|
||||||
2. Gets a list of smart card readers (by using the WinSCard API) and the list of smart cards inserted in each of them.
|
1. 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.
|
||||||
|
1. The user enters the PIN, and then presses ENTER. The smart card credential provider encrypts the PIN.
|
||||||
|
1. 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 isn't in the same forest because it enables a certificate to be mapped to multiple user accounts.
|
||||||
|
1. 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.
|
||||||
|
1. Winlogon presents the data from LogonUI to the LSA with the user information in LSALogonUser.
|
||||||
|
1. 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)](http://www.ietf.org/rfc/rfc4556.txt)).
|
||||||
|
|
||||||
3. Enumerates each card to verify that a sign-in certificate that is controlled by Group Policy is present. If the certificate is present, the smart card credential provider copies it into a temporary, secure cache on the computer or terminal.
|
If the authentication is performed by using a certificate that uses a digital signature, the preauthentication data consists of the user's public certificate and the certificate that is digitally signed with the corresponding private key.\
|
||||||
|
If the authentication is performed by using a certificate that uses key encipherment, the preauthentication data consists of the user's public certificate and the certificate that is encrypted with the corresponding private key.
|
||||||
|
|
||||||
> **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.
|
1. 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).
|
||||||
|
1. 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.
|
||||||
|
1. The KDC finds the user's account object in Active Directory Domain Services (AD DS), as detailed in [Client certificate requirements and mappings](#client-certificate-requirements-and-mappings), and uses the user's certificate to verify the signature.
|
||||||
|
1. 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.
|
||||||
|
1. 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.
|
||||||
|
1. The domain controller returns the TGT to the client as part of the KRB_AS_REP response.
|
||||||
|
|
||||||
4. Notifies the sign-in UI that it has new credentials.
|
> [!NOTE]
|
||||||
|
> The KRB_AS_REP packet consists of:
|
||||||
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.
|
> - Privilege attribute certificate (PAC)
|
||||||
|
> - User's SID
|
||||||
4. The user enters the PIN, and then presses ENTER. The smart card credential provider encrypts the PIN.
|
> - SIDs of any groups of which the user is a member
|
||||||
|
> - A request for ticket-granting service (TGS)
|
||||||
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.
|
> - Preauthentication data
|
||||||
|
|
||||||
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)](http://www.ietf.org/rfc/rfc4556.txt)).
|
|
||||||
|
|
||||||
If the authentication is performed by using a certificate that uses a digital signature, the preauthentication data consists of the user's public certificate and the certificate that is digitally signed with the corresponding private key.<br>If the authentication is performed by using a certificate that uses key encipherment, the preauthentication data consists of the user's public certificate and the certificate that is encrypted with the corresponding private key.
|
|
||||||
|
|
||||||
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](#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.
|
|
||||||
|
|
||||||
> **Note** The KRB\_AS\_REP packet consists of:
|
|
||||||
>- Privilege attribute certificate (PAC)
|
|
||||||
>- User's SID
|
|
||||||
>- SIDs of any groups of which the user is a member
|
|
||||||
>- A request for ticket-granting service (TGS)
|
|
||||||
>- Preauthentication data
|
|
||||||
|
|
||||||
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.
|
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.
|
1. 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.
|
||||||
|
1. Now that a TGT has been obtained, the client obtains a service ticket, which is used to sign in to the local computer.
|
||||||
|
1. 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.
|
||||||
|
1. 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)
|
||||||
|
1. CSP to smart card resource manager communication happens on the LRPC Channel.
|
||||||
|
1. On successful authentication, certificates are propagated to the user's store asynchronously by the Certificate Propagation Service (CertPropSvc).
|
||||||
|
1. 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.
|
||||||
|
|
||||||
16. Now that a TGT has been obtained, the client obtains a service ticket, which is used to sign in to the local computer.
|
> [!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.
|
||||||
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](/windows/win32/secauthn/microsoft-kerberos).
|
For more information about the Kerberos protocol, see [Microsoft Kerberos](/windows/win32/secauthn/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.
|
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 isn't required for account mappings that are based on the public key.
|
||||||
|
|
||||||
## KDC certificate
|
## KDC certificate
|
||||||
|
|
||||||
Active Directory Certificate Services provides three kinds of certificate templates:
|
Active Directory Certificate Services provides three kinds of certificate templates:
|
||||||
|
|
||||||
- Domain controller
|
- Domain controller
|
||||||
|
- Domain controller authentication
|
||||||
|
- Kerberos authentication
|
||||||
|
|
||||||
- Domain controller authentication
|
Depending on the configuration of the domain controller, one of these types of certificates is sent as a part of the AS_REP packet.
|
||||||
|
|
||||||
- Kerberos authentication
|
|
||||||
|
|
||||||
Depending on the configuration of the domain controller, one of these types of certificates is sent as a part of the AS\_REP packet.
|
|
||||||
|
|
||||||
## Client certificate requirements and mappings
|
## Client certificate requirements and mappings
|
||||||
|
|
||||||
@ -170,144 +122,125 @@ Certificate requirements are listed by versions of the Windows operating system.
|
|||||||
|
|
||||||
### Certificate requirements
|
### 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.
|
| Component | Requirements |
|
||||||
|
|--|--|
|
||||||
|
| CRL distribution point location | Not required |
|
||||||
| **Component** | **Requirements for Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows 10, and Windows 11** | **Requirements for Windows XP** |
|
| Key usage | Digital signature |
|
||||||
|--------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
| Basic constraints | Not required |
|
||||||
| CRL distribution point location | Not required | The location must be specified, online, and available, for example:<br>\[1\]CRL Distribution Point<br>Distribution Point Name:<br>Full Name:<br>URL=`<http://server1.contoso.com/CertEnroll/caname.crl>` |
|
| extended key usage (EKU) | The smart card sign-in object identifier isn't required.<br><br>**Note** If an EKU is present, it must contain the smart card sign-in EKU. Certificates with no EKU can be used for sign-in. |
|
||||||
| Key usage | Digital signature | Digital signature |
|
| Subject alternative name | E-mail ID isn't required for smart card sign-in. |
|
||||||
| Basic constraints | Not required | \[Subject Type=End Entity, Path Length Constraint=None\] (Optional) |
|
| Subject | Not required |
|
||||||
| extended key usage (EKU) | The smart card sign-in object identifier is not required.<br><br>**Note** If an EKU is present, it must contain the smart card sign-in EKU. Certificates with no EKU can be used for sign-in. | - Client Authentication (1.3.6.1.5.5.7.3.2)<br>The client authentication object identifier is required only if a certificate is used for SSL authentication.<br><br>- Smart Card Sign-in (1.3.6.1.4.1.311.20.2.2) |
|
| Key exchange (AT_KEYEXCHANGE field) | Not required for smart card sign-in certificates if a Group Policy setting is enabled. (By default, Group Policy settings aren't enabled.) |
|
||||||
| Subject alternative name | E-mail ID is not required for smart card sign-in. | Other Name: Principal Name=(UPN), for example:<br>UPN=user1@contoso.com<br>The UPN OtherName object identifier is 1.3.6.1.4.1.311.20.2.3.<br>The UPN OtherName value must be an ASN1-encoded UTF8 string. |
|
| CRL | Not required |
|
||||||
| Subject | Not required | Distinguished name of user. This field is a mandatory extension, but the population of this field is optional. |
|
| UPN | Not required |
|
||||||
| Key exchange (AT\_KEYEXCHANGE field) | Not required for smart card sign-in certificates if a Group Policy setting is enabled. (By default, Group Policy settings are not enabled.) | Not required |
|
| Notes | You can enable any certificate to be visible for the smart card credential provider. |
|
||||||
| CRL | Not required | Not required |
|
|
||||||
| UPN | Not required | Not required |
|
|
||||||
| Notes | You can enable any certificate to be visible for the smart card credential provider. | There are two predefined types of private keys. These keys are Signature Only (AT\_SIGNATURE) and Key Exchange (AT\_KEYEXCHANGE). Smart card sign-in certificates must have a Key Exchange (AT\_KEYEXCHANGE) private key type. |
|
|
||||||
|
|
||||||
### Client certificate mappings
|
### Client certificate mappings
|
||||||
|
|
||||||
Certificate mapping is based on the UPN that is contained in the subjectAltName (SAN) field of the certificate. Client certificates that do not contain information in the SAN field are also supported.
|
Certificate mapping is based on the UPN that is contained in the subjectAltName (SAN) field of the certificate. Client certificates that don't contain information in the SAN field are also supported.
|
||||||
|
|
||||||
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 ','.
|
SSL/TLS can map certificates that don't 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: `<Issuer Name>` `<Subject Name`. The `<Issuer Name>` and `<Subject Name>` are taken from the client certificate, with '\r' and '\n' replaced with ','.
|
||||||
|
|
||||||
**Certificate revocation list distribution points**
|
#### Certificate revocation list distribution points
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**UPN in Subject Alternative Name field**
|
#### UPN in Subject Alternative Name field
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Subject and Issuer fields**
|
#### Subject and Issuer fields
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
This account mapping is supported by the KDC in addition to six other mapping methods. The following figure demonstrates a flow of user account mapping logic that is used by the KDC.
|
This account mapping is supported by the KDC in addition to six other mapping methods. The following figure demonstrates a flow of user account mapping logic that is used by the KDC.
|
||||||
|
|
||||||
**High-level flow of certificate processing for sign-in**
|
#### High-level flow of certificate processing for sign-in
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
The certificate object is parsed to look for content to perform user account mapping.
|
The certificate object is parsed to look for content to perform user account mapping.
|
||||||
|
|
||||||
- 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 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, multiple operations are performed to locate the user name to map the user name to an account object
|
||||||
|
- When no domain information is available for authentication, the local domain is used by default. If any other domain is to be used for lookup, a domain name hint should be provided to perform the mapping and binding
|
||||||
|
|
||||||
- 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 isn't possible because there's 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 doesn't supply the client name through the mapping hints.
|
||||||
|
|
||||||
- When no domain information is available for authentication, the local domain is used by default. If any other domain is to be used for lookup, a domain name hint should be provided to perform the mapping and binding.
|
|
||||||
|
|
||||||
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.
|
The following figure illustrates the process of mapping user accounts for sign-in in the directory by viewing various entries in the certificate.
|
||||||
|
|
||||||
**Certificate processing logic**
|
#### Certificate processing logic
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
NT\_AUTH policy is best described in the CERT\_CHAIN\_POLICY\_NT\_AUTH parameter section of the CertVerifyCertificateChainPolicy function. For more information, see [CertVerifyCertificateChainPolicy](/windows/win32/api/wincrypt/nf-wincrypt-certverifycertificatechainpolicy).
|
NT_AUTH policy is best described in the CERT_CHAIN_POLICY_NT_AUTH parameter section of the CertVerifyCertificateChainPolicy function. For more information, see [CertVerifyCertificateChainPolicy](/windows/win32/api/wincrypt/nf-wincrypt-certverifycertificatechainpolicy).
|
||||||
|
|
||||||
## Smart card sign-in for a single user with one certificate into multiple accounts
|
## Smart card sign-in for a single user with one certificate into multiple accounts
|
||||||
|
|
||||||
A single user certificate can be mapped to multiple accounts. For example, a user might be able to sign in to a user account and also to sign in as a domain administrator. The mapping is done by using the constructed AltSecID based on attributes from client accounts. For information about how this mapping is evaluated, see [Client certificate requirements and mappings](#client-certificate-requirements-and-mappings).
|
A single user certificate can be mapped to multiple accounts. For example, a user might be able to sign in to a user account and also to sign in as a domain administrator. The mapping is done by using the constructed AltSecID based on attributes from client accounts. For information about how this mapping is evaluated, see [Client certificate requirements and mappings](#client-certificate-requirements-and-mappings).
|
||||||
|
|
||||||
> **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.
|
> [!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:
|
Based on the information that is available in the certificate, the sign-in conditions are:
|
||||||
|
|
||||||
1. If no UPN is present in the certificate:
|
1. If no UPN is present in the certificate:
|
||||||
|
1. 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
|
||||||
1. 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.
|
1. A hint must be supplied if mapping isn't unique (for example, if multiple users are mapped to the same certificate)
|
||||||
|
1. If a UPN is present in the certificate:
|
||||||
2. A hint must be supplied if mapping is not unique (for example, if multiple users are mapped to the same certificate).
|
1. The certificate can't be mapped to multiple users in the same forest
|
||||||
|
1. 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
|
||||||
2. If a UPN is present in the certificate:
|
|
||||||
|
|
||||||
1. The certificate cannot be mapped to multiple users in the same forest.
|
|
||||||
|
|
||||||
2. 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.
|
|
||||||
|
|
||||||
## Smart card sign-in for multiple users into a single account
|
## Smart card sign-in for multiple users into a single account
|
||||||
|
|
||||||
A group of users might sign in to a single account (for example, an administrator account). For that account, user certificates are mapped so that they are enabled for sign-in.
|
A group of users might sign in to a single account (for example, an administrator account). For that account, user certificates are mapped so that they're enabled for sign-in.
|
||||||
|
|
||||||
Several distinct certificates can be mapped to a single account. For this to work properly, the certificate cannot have UPNs.
|
Several distinct certificates can be mapped to a single account. For this to work properly, the certificate can't have UPNs.
|
||||||
|
|
||||||
For example, if Certificate1 has CN=CNName1, Certificate2 has CN=User1, and Certificate3 has CN=User2, the AltSecID of these certificates can be mapped to a single account by using the Active Directory Users and Computers name mapping.
|
For example, if Certificate1 has CN=CNName1, Certificate2 has CN=User1, and Certificate3 has CN=User2, the AltSecID of these certificates can be mapped to a single account by using the Active Directory Users and Computers name mapping.
|
||||||
|
|
||||||
## Smart card sign-in across forests
|
## Smart card sign-in across forests
|
||||||
|
|
||||||
For account mapping to work across forests, particularly in cases where there is not enough information available on the certificate, the user might enter a hint in the form of a user name, such as *domain\\user*, or a fully qualified UPN such as <em>user@contoso.com</em>.
|
For account mapping to work across forests, particularly in cases where there isn't enough information available on the certificate, the user might enter a hint in the form of a user name, such as *domain\user*, or a fully qualified UPN such as `user@contoso.com`.
|
||||||
|
|
||||||
> **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.
|
> [!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.
|
||||||
|
|
||||||
## OCSP support for PKINIT
|
## OCSP support for PKINIT
|
||||||
|
|
||||||
Online Certificate Status Protocol (OCSP), which is defined in RFC 2560, enables applications to obtain timely information about the revocation status of a certificate. Because OCSP responses are small and well bound, constrained clients might want to use OCSP to check the validity of the certificates for Kerberos on the KDC, to avoid transmission of large CRLs, and to save bandwidth on constrained networks. For information about CRL registry keys, see [Smart Card Group Policy and Registry Settings](smart-card-group-policy-and-registry-settings.md).
|
Online Certificate Status Protocol (OCSP), which is defined in RFC 2560, enables applications to obtain timely information about the revocation status of a certificate. Because OCSP responses are small and well bound, constrained clients might want to use OCSP to check the validity of the certificates for Kerberos on the KDC, to avoid transmission of large CRLs, and to save bandwidth on constrained networks. For information about CRL registry keys, see [Smart Card Group Policy and Registry Settings](smart-card-group-policy-and-registry-settings.md).
|
||||||
|
|
||||||
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.
|
The KDCs in Windows attempt to get OCSP responses and use them when available. This behavior can't 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.
|
Windows client computers attempt to request the OCSP responses and use them in the reply when they're available. This behavior can't be disabled.
|
||||||
|
|
||||||
## Smart card root certificate requirements for use with domain sign-in
|
## Smart card root certificate requirements for use with domain sign-in
|
||||||
|
|
||||||
For sign-in to work in a smart card-based domain, the smart card certificate must meet the following conditions:
|
For sign-in to work in a smart card-based domain, the smart card certificate must meet the following conditions:
|
||||||
|
|
||||||
- The KDC root certificate on the smart card must have an HTTP CRL distribution point listed in its certificate.
|
- 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 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
|
||||||
|
|
||||||
- The CRL distribution point must have a valid CRL published and a delta CRL, if applicable, even if the CRL distribution point is empty.
|
|
||||||
|
|
||||||
- The smart card certificate must contain one of the following:
|
- The smart card certificate must contain one of the following:
|
||||||
|
- A subject field that contains the DNS domain name in the distinguished name. If it doesn't, resolution to an appropriate domain fails, so Remote Desktop Services and the domain sign-in with the smart card fail
|
||||||
|
- 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 can't find the appropriate domain
|
||||||
|
|
||||||
- A subject field that contains the DNS domain name in the distinguished name. If it does not, resolution to an appropriate domain fails, so Remote Desktop Services and the domain sign-in with the smart card fail.
|
To allow smart card sign-in to a domain in these versions, do the following:
|
||||||
|
|
||||||
- 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.
|
1. Enable HTTP CRL distribution points on the CA
|
||||||
|
1. Restart the CA
|
||||||
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:
|
1. Reissue the KDC certificate
|
||||||
|
1. Issue or reissue the smart card sign-in certificate
|
||||||
1. Enable HTTP CRL distribution points on the CA.
|
1. Propagate the updated root certificate to the smart card that you want to use for the domain sign-in
|
||||||
|
|
||||||
2. Restart the CA.
|
|
||||||
|
|
||||||
3. Reissue the KDC certificate.
|
|
||||||
|
|
||||||
4. Issue or reissue the smart card sign-in certificate.
|
|
||||||
|
|
||||||
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.
|
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.
|
If the client computer isn't joined to the domain or if it's 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:
|
To deploy root certificates on a smart card for the currently joined domain, you can use the following command:
|
||||||
|
|
||||||
**certutil -scroots update**
|
```cmd
|
||||||
|
certutil.exe -scroots update
|
||||||
|
```
|
||||||
|
|
||||||
For more information about this option for the command-line tool, see [-SCRoots](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#BKMK_SCRoots).
|
For more information about this option for the command-line tool, see [-SCRoots](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#BKMK_SCRoots).
|
||||||
|
|
||||||
## See also
|
|
||||||
|
|
||||||
[How Smart Card Sign-in Works in Windows](smart-card-how-smart-card-sign-in-works-in-windows.md)
|
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Smart Card Troubleshooting
|
title: Smart Card Troubleshooting
|
||||||
description: Describes the tools and services that smart card developers can use to help identify certificate issues with the smart card deployment.
|
description: Describes the tools and services that smart card developers can use to help identify certificate issues with the smart card deployment.
|
||||||
ms.reviewer: ardenw
|
|
||||||
ms.collection:
|
|
||||||
- highpri
|
|
||||||
- tier2
|
|
||||||
ms.topic: troubleshooting
|
ms.topic: troubleshooting
|
||||||
ms.date: 09/24/2021
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Smart Card Troubleshooting
|
# Smart Card Troubleshooting
|
||||||
@ -15,17 +11,12 @@ This article explains tools and services that smart card developers can use to h
|
|||||||
|
|
||||||
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.
|
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](#certutil)
|
- [Certutil](#certutil)
|
||||||
|
- [Debugging and tracing using Windows software trace preprocessor (WPP)](#debugging-and-tracing-using-wpp)
|
||||||
- [Debugging and tracing using Windows software trace preprocessor (WPP)](#debugging-and-tracing-using-wpp)
|
- [Kerberos protocol, Key Distribution Center (KDC), and NTLM debugging and tracing](#kerberos-protocol-kdc-and-ntlm-debugging-and-tracing)
|
||||||
|
- [Smart Card service](#smart-card-service)
|
||||||
- [Kerberos protocol, Key Distribution Center (KDC), and NTLM debugging and tracing](#kerberos-protocol-kdc-and-ntlm-debugging-and-tracing)
|
- [Smart card readers](#smart-card-readers)
|
||||||
|
- [CryptoAPI 2.0 Diagnostics](#cryptoapi-20-diagnostics)
|
||||||
- [Smart Card service](#smart-card-service)
|
|
||||||
|
|
||||||
- [Smart card readers](#smart-card-readers)
|
|
||||||
|
|
||||||
- [CryptoAPI 2.0 Diagnostics](#cryptoapi-20-diagnostics)
|
|
||||||
|
|
||||||
## Certutil
|
## Certutil
|
||||||
|
|
||||||
@ -33,7 +24,7 @@ For a complete description of Certutil including examples that show how to use i
|
|||||||
|
|
||||||
### List certificates available on the smart card
|
### List certificates available on the smart card
|
||||||
|
|
||||||
To list certificates that are available on the smart card, type `certutil -scinfo`.
|
To list certificates that are available on the smart card, type `certutil.exe -scinfo`.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Entering a PIN is not required for this operation. You can press ESC if you are prompted for a PIN.
|
> Entering a PIN is not required for this operation. You can press ESC if you are prompted for a PIN.
|
||||||
@ -42,9 +33,9 @@ To list certificates that are available on the smart card, type `certutil -scinf
|
|||||||
|
|
||||||
Each certificate is enclosed in a container. When you delete a certificate on the smart card, you're deleting the container for the certificate.
|
Each certificate is enclosed in a container. When you delete a certificate on the smart card, you're deleting the container for the certificate.
|
||||||
|
|
||||||
To find the container value, type `certutil -scinfo`.
|
To find the container value, type `certutil.exe -scinfo`.
|
||||||
|
|
||||||
To delete a container, type **certutil -delkey -csp "Microsoft Base Smart Card Crypto Provider"** "<*ContainerValue*>".
|
To delete a container, type `certutil.exe -delkey -csp "Microsoft Base Smart Card Crypto Provider" "<ContainerValue>"`.
|
||||||
|
|
||||||
## Debugging and tracing using WPP
|
## Debugging and tracing using WPP
|
||||||
|
|
||||||
@ -54,144 +45,153 @@ WPP simplifies tracing the operation of the trace provider. It provides a mechan
|
|||||||
|
|
||||||
Using WPP, use one of the following commands to enable tracing:
|
Using WPP, use one of the following commands to enable tracing:
|
||||||
|
|
||||||
- **tracelog.exe -kd -rt -start** <*FriendlyName*> **-guid \#**<*GUID*> **-f .\\**<*LogFileName*>**.etl -flags** <*flags*> **-ft 1**
|
```cmd
|
||||||
|
tracelog.exe -kd -rt -start <FriendlyName> -guid <GUID> -f .<LogFileName*>.etl -flags <flags> -ft 1
|
||||||
- **logman start** <*FriendlyName*> **-ets -p {**<*GUID*>**} -**<*Flags*> **-ft 1 -rt -o .\\**<*LogFileName*><em>**.etl -mode 0x00080000</em>**
|
logman.exe start <FriendlyName> -ets -p {<GUID>} -<Flags> -ft 1 -rt -o .<LogFileName><em>.etl -mode 0x00080000</em>
|
||||||
|
```
|
||||||
|
|
||||||
You can use the parameters in the following table.
|
You can use the parameters in the following table.
|
||||||
|
|
||||||
| Friendly name | GUID | Flags |
|
| Friendly name | GUID | Flags |
|
||||||
|-------------------|--------------------------------------|-----------|
|
|--|--|--|
|
||||||
| `scardsvr` | 13038e47-ffec-425d-bc69-5707708075fe | 0xffff |
|
| `scardsvr` | 13038e47-ffec-425d-bc69-5707708075fe | 0xffff |
|
||||||
| `winscard` | 3fce7c5f-fb3b-4bce-a9d8-55cc0ce1cf01 | 0xffff |
|
| `winscard` | 3fce7c5f-fb3b-4bce-a9d8-55cc0ce1cf01 | 0xffff |
|
||||||
| `basecsp` | 133a980d-035d-4e2d-b250-94577ad8fced | 0x7 |
|
| `basecsp` | 133a980d-035d-4e2d-b250-94577ad8fced | 0x7 |
|
||||||
| `scksp` | 133a980d-035d-4e2d-b250-94577ad8fced | 0x7 |
|
| `scksp` | 133a980d-035d-4e2d-b250-94577ad8fced | 0x7 |
|
||||||
| `msclmd` | fb36caf4-582b-4604-8841-9263574c4f2c | 0x7 |
|
| `msclmd` | fb36caf4-582b-4604-8841-9263574c4f2c | 0x7 |
|
||||||
| `credprov` | dba0e0e0-505a-4ab6-aa3f-22f6f743b480 | 0xffff |
|
| `credprov` | dba0e0e0-505a-4ab6-aa3f-22f6f743b480 | 0xffff |
|
||||||
| `certprop` | 30eae751-411f-414c-988b-a8bfa8913f49 | 0xffff |
|
| `certprop` | 30eae751-411f-414c-988b-a8bfa8913f49 | 0xffff |
|
||||||
| `scfilter` | eed7f3c9-62ba-400e-a001-658869df9a91 | 0xffff |
|
| `scfilter` | eed7f3c9-62ba-400e-a001-658869df9a91 | 0xffff |
|
||||||
| `wudfusbccid` | a3c09ba3-2f62-4be5-a50f-8278a646ac9d | 0xffff |
|
| `wudfusbccid` | a3c09ba3-2f62-4be5-a50f-8278a646ac9d | 0xffff |
|
||||||
|
|
||||||
Examples
|
### Examples
|
||||||
|
|
||||||
To enable tracing for the SCardSvr service:
|
To enable tracing for the SCardSvr service:
|
||||||
|
|
||||||
- **tracelog.exe -kd -rt -start scardsvr -guid \#13038e47-ffec-425d-bc69-5707708075fe -f .\\scardsvr.etl -flags 0xffff -ft 1**
|
```cmd
|
||||||
|
tracelog.exe -kd -rt -start scardsvr -guid \#13038e47-ffec-425d-bc69-5707708075fe -f .\scardsvr.etl -flags 0xffff -ft 1
|
||||||
|
logman.exe start scardsvr -ets -p {13038e47-ffec-425d-bc69-5707708075fe} 0xffff -ft 1 -rt -o .\scardsvr.etl -mode 0x00080000
|
||||||
|
```
|
||||||
|
|
||||||
- **logman start scardsvr -ets -p {13038e47-ffec-425d-bc69-5707708075fe} 0xffff -ft 1 -rt -o .\\scardsvr.etl -mode 0x00080000**
|
To enable tracing for `scfilter.sys`:
|
||||||
|
|
||||||
To enable tracing for scfilter.sys:
|
```cmd
|
||||||
|
tracelog.exe -kd -rt -start scfilter -guid \#eed7f3c9-62ba-400e-a001-658869df9a91 -f .\scfilter.etl -flags 0xffff -ft 1
|
||||||
- **tracelog.exe -kd -rt -start scfilter -guid \#eed7f3c9-62ba-400e-a001-658869df9a91 -f .\\scfilter.etl -flags 0xffff -ft 1**
|
```
|
||||||
|
|
||||||
### Stop the trace
|
### Stop the trace
|
||||||
|
|
||||||
Using WPP, use one of the following commands to stop the tracing:
|
Using WPP, use one of the following commands to stop the tracing:
|
||||||
|
|
||||||
- **tracelog.exe -stop** <*FriendlyName*>
|
```cmd
|
||||||
|
tracelog.exe -stop <*FriendlyName*>
|
||||||
|
logman.exe -stop <*FriendlyName*> -ets
|
||||||
|
```
|
||||||
|
|
||||||
- **logman -stop** <*FriendlyName*> **-ets**
|
For example, to stop a trace:
|
||||||
|
|
||||||
#### Examples
|
```cmd
|
||||||
|
tracelog.exe -stop scardsvr
|
||||||
To stop a trace:
|
logman.exe -stop scardsvr -ets
|
||||||
|
```
|
||||||
- **tracelog.exe -stop scardsvr**
|
|
||||||
|
|
||||||
- **logman -stop scardsvr -ets**
|
|
||||||
|
|
||||||
## Kerberos protocol, KDC, and NTLM debugging and tracing
|
## Kerberos protocol, KDC, and NTLM debugging and tracing
|
||||||
|
|
||||||
<!-- It's difficult to find any Kerberos content any more. If they reinstate some content that's more relevant and detailed than what's below, link to it instead. -->
|
|
||||||
|
|
||||||
You can use these resources to troubleshoot these protocols and the KDC:
|
You can use these resources to troubleshoot these protocols and the KDC:
|
||||||
|
|
||||||
- [Kerberos and LDAP Troubleshooting Tips](/previous-versions/tn-archive/bb463167(v=technet.10)).
|
- [Kerberos and LDAP Troubleshooting Tips](/previous-versions/tn-archive/bb463167(v=technet.10))
|
||||||
|
- [Windows Driver Kit (WDK) and Debugging Tools for Windows (WinDbg)](https://developer.microsoft.com/windows/hardware/windows-driver-kit). You can use the trace log tool in this SDK to debug Kerberos authentication failures.
|
||||||
|
|
||||||
- [Windows Driver Kit (WDK) and Debugging Tools for Windows (WinDbg)](https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit). 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`](/windows-hardware/drivers/devtest/tracelog)
|
||||||
|
|
||||||
To begin tracing, you can use `Tracelog`. Different components use different control GUIDs as explained in these examples. For more information, see [`Tracelog`](/windows-hardware/drivers/devtest/tracelog).
|
|
||||||
|
|
||||||
### NTLM
|
### NTLM
|
||||||
|
|
||||||
To enable tracing for NTLM authentication, run the following command on the command line:
|
To enable tracing for NTLM authentication, run the following command on the command line:
|
||||||
|
|
||||||
- **tracelog.exe -kd -rt -start ntlm -guid \#5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .\\ntlm.etl -flags 0x15003 -ft 1**
|
```cmd
|
||||||
|
tracelog.exe -kd -rt -start ntlm -guid \#5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .\ntlm.etl -flags 0x15003 -ft 1
|
||||||
|
```
|
||||||
|
|
||||||
To stop tracing for NTLM authentication, run this command:
|
To stop tracing for NTLM authentication, run this command:
|
||||||
|
|
||||||
- **tracelog -stop ntlm**
|
```cmd
|
||||||
|
tracelog -stop ntlm
|
||||||
|
```
|
||||||
|
|
||||||
### Kerberos authentication
|
### Kerberos authentication
|
||||||
|
|
||||||
To enable tracing for Kerberos authentication, run this command:
|
To enable tracing for Kerberos authentication, run this command:
|
||||||
|
|
||||||
- **tracelog.exe -kd -rt -start kerb -guid \#6B510852-3583-4e2d-AFFE-A67F9F223438 -f .\\kerb.etl -flags 0x43 -ft 1**
|
```cmd
|
||||||
|
tracelog.exe -kd -rt -start kerb -guid \#6B510852-3583-4e2d-AFFE-A67F9F223438 -f .\kerb.etl -flags 0x43 -ft 1
|
||||||
|
```
|
||||||
|
|
||||||
To stop tracing for Kerberos authentication, run this command:
|
To stop tracing for Kerberos authentication, run this command:
|
||||||
|
|
||||||
- **tracelog.exe -stop kerb**
|
```cmd
|
||||||
|
tracelog.exe -stop kerb
|
||||||
|
```
|
||||||
|
|
||||||
### KDC
|
### KDC
|
||||||
|
|
||||||
To enable tracing for the KDC, run the following command on the command line:
|
To enable tracing for the KDC, run the following command on the command line:
|
||||||
|
|
||||||
- **tracelog.exe -kd -rt -start kdc -guid \#1BBA8B19-7F31-43c0-9643-6E911F79A06B -f .\\kdc.etl -flags 0x803 -ft 1**
|
```cmd
|
||||||
|
tracelog.exe -kd -rt -start kdc -guid \#1BBA8B19-7F31-43c0-9643-6E911F79A06B -f .\kdc.etl -flags 0x803 -ft 1
|
||||||
|
```
|
||||||
|
|
||||||
To stop 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:
|
||||||
|
|
||||||
- **tracelog.exe -stop kdc**
|
```cmd
|
||||||
|
tracelog.exe -stop kdc
|
||||||
|
```
|
||||||
|
|
||||||
To stop tracing from a remote computer, run this command: logman.exe -s *<ComputerName>*.
|
To stop tracing from a remote computer, run this command:
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
logman.exe -s <ComputerName>
|
||||||
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> The default location for logman.exe is %systemroot%system32\\. Use the **-s** option to supply a computer name.
|
> The default location for logman.exe is %systemroot%system32\. Use the **-s** option to supply a computer name.
|
||||||
|
|
||||||
### Configure tracing with the registry
|
### Configure tracing with the registry
|
||||||
|
|
||||||
You can also configure tracing by editing the Kerberos registry values shown in the following table.
|
You can also configure tracing by editing the Kerberos registry values shown in the following table.
|
||||||
|
|
||||||
| Element | Registry Key Setting |
|
| Element | Registry Key Setting |
|
||||||
|-------------|----------------------------------------------------|
|
|--|--|
|
||||||
| NTLM | HKEY\_LOCAL\_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1\_0<br>Value name: NtLmInfoLevel<br>Value type: DWORD<br>Value data: c0015003 |
|
| NTLM | HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\Lsa\MSV1_0<br>Value name: NtLmInfoLevel<br>Value type: DWORD<br>Value data: c0015003 |
|
||||||
| Kerberos | HKEY\_LOCAL\_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\Kerberos<br>Value name: LogToFile<br>Value type: DWORD<br>Value data: 00000001<br><br>HKEY\_LOCAL\_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\Kerberos\\Parameters<br>Value name: KerbDebugLevel<br>Value type: DWORD<br>Value data: c0000043<br><br>HKEY\_LOCAL\_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\Kerberos\\Parameters<br>Value name: LogToFile<br>Value type: DWORD<br>Value data: 00000001 |
|
| Kerberos | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos<br>Value name: LogToFile<br>Value type: DWORD<br>Value data: 00000001<br><br>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters<br>Value name: KerbDebugLevel<br>Value type: DWORD<br>Value data: c0000043<br><br>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters<br>Value name: LogToFile<br>Value type: DWORD<br>Value data: 00000001 |
|
||||||
| KDC | HKEY\_LOCAL\_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Kdc<br>Value name: KdcDebugLevel<br>Value type: DWORD<br>Value data: c0000803 |
|
| KDC | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc<br>Value name: KdcDebugLevel<br>Value type: DWORD<br>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 `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:
|
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
|
- NTLM: `%systemroot%\tracing\msv1_0`
|
||||||
|
- Kerberos: `%systemroot%\tracing\kerberos`
|
||||||
|
- KDC: `%systemroot%\tracing\kdcsvc`
|
||||||
|
|
||||||
- Kerberos: %systemroot%\\tracing\\kerberos
|
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`](/windows-hardware/drivers/devtest/tracefmt).
|
||||||
|
|
||||||
- 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`](/windows-hardware/drivers/devtest/tracefmt).
|
|
||||||
|
|
||||||
## Smart Card service
|
## 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.
|
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.
|
||||||
|
|
||||||
**To check if Smart Card service is running**
|
To check if Smart Card service is running:
|
||||||
|
|
||||||
1. Press CTRL+ALT+DEL, and then select **Start Task Manager**.
|
1. Press CTRL+ALT+DEL, and then select **Start Task Manager**
|
||||||
|
1. In the **Windows Task Manager** dialog box, select the **Services** tab
|
||||||
|
1. Select the **Name** column to sort the list alphabetically, and then type **s**
|
||||||
|
1. In the **Name** column, look for **SCardSvr**, and then look under the **Status** column to see if the service is running or stopped
|
||||||
|
|
||||||
2. In the **Windows Task Manager** dialog box, select the **Services** tab.
|
To restart Smart Card service:
|
||||||
|
|
||||||
3. Select the **Name** column to sort the list alphabetically, and then type **s**.
|
1. Run as administrator at the command prompt
|
||||||
|
1. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then select **Yes**
|
||||||
4. In the **Name** column, look for **SCardSvr**, and then look under the **Status** column to see if the service is running or stopped.
|
1. At the command prompt, type `net stop SCardSvr`
|
||||||
|
1. At the command prompt, type `net start SCardSvr`
|
||||||
**To restart Smart Card service**
|
|
||||||
|
|
||||||
1. Run as administrator at the command prompt.
|
|
||||||
|
|
||||||
2. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then select **Yes**.
|
|
||||||
|
|
||||||
3. At the command prompt, type `net stop SCardSvr`.
|
|
||||||
|
|
||||||
4. At the command prompt, type `net start SCardSvr`.
|
|
||||||
|
|
||||||
You can use the following command at the command prompt to check whether the service is running: `sc queryex scardsvr`.
|
You can use the following command at the command prompt to check whether the service is running: `sc queryex scardsvr`.
|
||||||
|
|
||||||
@ -215,15 +215,12 @@ C:\>
|
|||||||
|
|
||||||
As with any device connected to a computer, Device Manager can be used to view properties and begin the debug process.
|
As with any device connected to a computer, Device Manager can be used to view properties and begin the debug process.
|
||||||
|
|
||||||
**To check if smart card reader is working**
|
To check if smart card reader is working:
|
||||||
|
|
||||||
1. Navigate to **Computer**.
|
1. Navigate to **Computer**
|
||||||
|
1. Right-click **Computer**, and then select **Properties**
|
||||||
2. Right-click **Computer**, and then select **Properties**.
|
1. Under **Tasks**, select **Device Manager**
|
||||||
|
1. In Device Manager, expand **Smart card readers**, select the name of the smart card reader you want to check, and then select **Properties**
|
||||||
3. Under **Tasks**, select **Device Manager**.
|
|
||||||
|
|
||||||
4. In Device Manager, expand **Smart card readers**, select the name of the smart card reader you want to check, and then select **Properties**.
|
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If the smart card reader is not listed in Device Manager, in the **Action** menu, select **Scan for hardware changes**.
|
> If the smart card reader is not listed in Device Manager, in the **Action** menu, select **Scan for hardware changes**.
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Smart Card Group Policy and Registry Settings
|
title: Smart Card Group Policy and Registry Settings
|
||||||
description: Discover the Group Policy, registry key, local security policy, and credential delegation policy settings that are available for configuring smart cards.
|
description: Discover the Group Policy, registry key, local security policy, and credential delegation policy settings that are available for configuring smart cards.
|
||||||
ms.reviewer: ardenw
|
|
||||||
ms.topic: reference
|
ms.topic: reference
|
||||||
ms.date: 11/02/2021
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Smart Card Group Policy and Registry Settings
|
# Smart Card Group Policy and Registry Settings
|
||||||
@ -12,72 +11,51 @@ This article for IT professionals and smart card developers describes the Group
|
|||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
- [Primary Group Policy settings for smart cards](#primary-group-policy-settings-for-smart-cards)
|
- [Primary Group Policy settings for smart cards](#primary-group-policy-settings-for-smart-cards)
|
||||||
|
- [Allow certificates with no extended key usage certificate attribute](#allow-certificates-with-no-extended-key-usage-certificate-attribute)
|
||||||
- [Allow certificates with no extended key usage certificate attribute](#allow-certificates-with-no-extended-key-usage-certificate-attribute)
|
- [Allow ECC certificates to be used for logon and authentication](#allow-ecc-certificates-to-be-used-for-logon-and-authentication)
|
||||||
|
- [Allow Integrated Unblock screen to be displayed at the time of logon](#allow-integrated-unblock-screen-to-be-displayed-at-the-time-of-logon)
|
||||||
- [Allow ECC certificates to be used for logon and authentication](#allow-ecc-certificates-to-be-used-for-logon-and-authentication)
|
- [Allow signature keys valid for Logon](#allow-signature-keys-valid-for-logon)
|
||||||
|
- [Allow time invalid certificates](#allow-time-invalid-certificates)
|
||||||
- [Allow Integrated Unblock screen to be displayed at the time of logon](#allow-integrated-unblock-screen-to-be-displayed-at-the-time-of-logon)
|
- [Allow user name hint](#allow-user-name-hint)
|
||||||
|
- [Configure root certificate clean up](#configure-root-certificate-clean-up)
|
||||||
- [Allow signature keys valid for Logon](#allow-signature-keys-valid-for-logon)
|
- [Display string when smart card is blocked](#display-string-when-smart-card-is-blocked)
|
||||||
|
- [Filter duplicate logon certificates](#filter-duplicate-logon-certificates)
|
||||||
- [Allow time invalid certificates](#allow-time-invalid-certificates)
|
- [Force the reading of all certificates from the smart card](#force-the-reading-of-all-certificates-from-the-smart-card)
|
||||||
|
- [Notify user of successful smart card driver installation](#notify-user-of-successful-smart-card-driver-installation)
|
||||||
- [Allow user name hint](#allow-user-name-hint)
|
- [Prevent plaintext PINs from being returned by Credential Manager](#prevent-plaintext-pins-from-being-returned-by-credential-manager)
|
||||||
|
- [Reverse the subject name stored in a certificate when displaying](#reverse-the-subject-name-stored-in-a-certificate-when-displaying)
|
||||||
- [Configure root certificate clean up](#configure-root-certificate-clean-up)
|
- [Turn on certificate propagation from smart card](#turn-on-certificate-propagation-from-smart-card)
|
||||||
|
- [Turn on root certificate propagation from smart card](#turn-on-root-certificate-propagation-from-smart-card)
|
||||||
- [Display string when smart card is blocked](#display-string-when-smart-card-is-blocked)
|
- [Turn on Smart Card Plug and Play service](#turn-on-smart-card-plug-and-play-service)
|
||||||
|
- [Base CSP and Smart Card KSP registry keys](#base-csp-and-smart-card-ksp-registry-keys)
|
||||||
- [Filter duplicate logon certificates](#filter-duplicate-logon-certificates)
|
- [CRL checking registry keys](#crl-checking-registry-keys)
|
||||||
|
- [Additional smart card Group Policy settings and registry keys](#additional-smart-card-group-policy-settings-and-registry-keys)
|
||||||
- [Force the reading of all certificates from the smart card](#force-the-reading-of-all-certificates-from-the-smart-card)
|
|
||||||
|
|
||||||
- [Notify user of successful smart card driver installation](#notify-user-of-successful-smart-card-driver-installation)
|
|
||||||
|
|
||||||
- [Prevent plaintext PINs from being returned by Credential Manager](#prevent-plaintext-pins-from-being-returned-by-credential-manager)
|
|
||||||
|
|
||||||
- [Reverse the subject name stored in a certificate when displaying](#reverse-the-subject-name-stored-in-a-certificate-when-displaying)
|
|
||||||
|
|
||||||
- [Turn on certificate propagation from smart card](#turn-on-certificate-propagation-from-smart-card)
|
|
||||||
|
|
||||||
- [Turn on root certificate propagation from smart card](#turn-on-root-certificate-propagation-from-smart-card)
|
|
||||||
|
|
||||||
- [Turn on Smart Card Plug and Play service](#turn-on-smart-card-plug-and-play-service)
|
|
||||||
|
|
||||||
- [Base CSP and Smart Card KSP registry keys](#base-csp-and-smart-card-ksp-registry-keys)
|
|
||||||
|
|
||||||
- [CRL checking registry keys](#crl-checking-registry-keys)
|
|
||||||
|
|
||||||
- [Additional smart card Group Policy settings and registry keys](#additional-smart-card-group-policy-settings-and-registry-keys)
|
|
||||||
|
|
||||||
## Primary Group Policy settings for smart cards
|
## Primary Group Policy settings for smart cards
|
||||||
|
|
||||||
The following smart card Group Policy settings are in Computer Configuration\\Administrative Templates\\Windows Components\\Smart Card.
|
The following smart card Group Policy settings are in Computer Configuration\Administrative Templates\Windows Components\Smart Card.
|
||||||
|
|
||||||
The registry keys are in the following locations:
|
The registry keys are in the following locations:
|
||||||
|
|
||||||
- **HKEY\_LOCAL\_MACHINE\\SOFTWARE\Policies\\Microsoft\\Windows\\ScPnP\\EnableScPnP**
|
- **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\ScPnP\EnableScPnP**
|
||||||
|
- **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\SmartCardCredentialProvider**
|
||||||
- **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\SmartCardCredentialProvider**
|
- **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CertProp**
|
||||||
|
|
||||||
- **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\CertProp**
|
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Smart card reader registry information is in **HKEY\_LOCAL\_MACHINE\\Software\\Microsoft\\Cryptography\\Calais\\Readers**.<br>
|
> Smart card reader registry information is in **HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Calais\Readers**.\
|
||||||
Smart card registry information is in **HKEY\_LOCAL\_MACHINE\\Software\\Microsoft\\Cryptography\\Calais\\SmartCards**.
|
> Smart card registry information is in **HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Calais\SmartCards**.
|
||||||
|
|
||||||
The following table lists the default values for these GPO settings. Variations are documented under the policy descriptions in this article.
|
The following table lists the default values for these GPO settings. Variations are documented under the policy descriptions in this article.
|
||||||
|
|
||||||
| **Server type or GPO** | **Default value** |
|
| Server type or GPO | Default value |
|
||||||
|----------------------------------------------|-------------------|
|
|--|--|
|
||||||
| Default Domain Policy | Not configured |
|
| Default Domain Policy | Not configured |
|
||||||
| Default Domain Controller Policy | Not configured |
|
| Default Domain Controller Policy | Not configured |
|
||||||
| Stand-Alone Server Default Settings | Not configured |
|
| Stand-Alone Server Default Settings | Not configured |
|
||||||
| Domain Controller Effective Default Settings | Disabled |
|
| Domain Controller Effective Default Settings | Disabled |
|
||||||
| Member Server Effective Default Settings | Disabled |
|
| Member Server Effective Default Settings | Disabled |
|
||||||
| Client Computer Effective Default Settings | Disabled |
|
| Client Computer Effective Default Settings | Disabled |
|
||||||
|
|
||||||
### Allow certificates with no extended key usage certificate attribute
|
### Allow certificates with no extended key usage certificate attribute
|
||||||
|
|
||||||
@ -85,70 +63,66 @@ You can use this policy setting to allow certificates without an extended key us
|
|||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> extended key usage certificate attribute is also known as extended key usage.
|
> 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.
|
> 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 is turned on, certificates with the following attributes can also be used to sign in with a smart card:
|
||||||
|
|
||||||
- Certificates with no EKU
|
- Certificates with no EKU
|
||||||
|
- Certificates with an All Purpose EKU
|
||||||
- Certificates with an All Purpose EKU
|
- Certificates with a Client Authentication EKU
|
||||||
|
|
||||||
- Certificates with a Client Authentication EKU
|
|
||||||
|
|
||||||
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.
|
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** |
|
| Item | Description |
|
||||||
|--------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | AllowCertificatesWithNoEKU |
|
| Registry key | AllowCertificatesWithNoEKU |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | |
|
|
||||||
|
|
||||||
### Allow ECC certificates to be used for logon and authentication
|
### Allow ECC certificates to be used for logon and authentication
|
||||||
|
|
||||||
You can use this policy setting to control whether elliptic curve cryptography (ECC) certificates on a smart card can be used to sign in to a domain.
|
You can use this policy setting to control whether elliptic curve cryptography (ECC) certificates on a smart card can be used to sign in to a domain.
|
||||||
|
|
||||||
When this setting is turned on, ECC certificates on a smart card can be used to sign in to a domain.
|
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.
|
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** |
|
| Item | Description |
|
||||||
|--------------------------------------|-------------------------------|
|
|--|--|
|
||||||
| Registry key | **EnumerateECCCerts** |
|
| Registry key | `EnumerateECCCerts` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | This policy setting only affects a user's ability to sign in to a domain. ECC certificates on a smart card that are used for other applications, such as document signing, aren't affected by this policy setting. <br>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. |
|
| Notes and resources | This policy setting only affects a user's ability to sign in to a domain. ECC certificates on a smart card that are used for other applications, such as document signing, aren't affected by this policy setting. <br>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. |
|
||||||
|
|
||||||
### Allow Integrated Unblock screen to be displayed at the time of logon
|
### Allow Integrated Unblock screen to be displayed at the time of logon
|
||||||
|
|
||||||
You can use this policy setting to determine whether the integrated unblock feature is available in the sign-in user interface (UI). The feature was introduced as a standard feature in the Credential Security Support Provider in Windows Vista.
|
You can use this policy setting to determine whether the integrated unblock feature is available in the sign-in user interface (UI). The feature was introduced as a standard feature in the Credential Security Support Provider in Windows Vista.
|
||||||
|
|
||||||
When this setting is turned on, the integrated unblock feature is available.
|
When this setting is turned on, the integrated unblock feature is available.
|
||||||
|
|
||||||
When this setting isn't turned on, the feature is not available.
|
When this setting isn't turned on, the feature is not available.
|
||||||
|
|
||||||
| **Item** | **Description** |
|
| Item | Description |
|
||||||
|--------------------------------------|---------------------------------------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **AllowIntegratedUnblock** |
|
| Registry key | `AllowIntegratedUnblock` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | To use the integrated unblock feature, the smart card must support it. Check with the hardware manufacturer to verify that the smart card supports this feature.<br>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](#display-string-when-smart-card-is-blocked). |
|
| Notes and resources | To use the integrated unblock feature, the smart card must support it. Check with the hardware manufacturer to verify that the smart card supports this feature.<br>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](#display-string-when-smart-card-is-blocked). |
|
||||||
|
|
||||||
### Allow signature keys valid for Logon
|
### Allow signature keys valid for Logon
|
||||||
|
|
||||||
You can use this policy setting to allow signature key–based certificates to be enumerated and available for sign-in.
|
You can use this policy setting to allow signature key-based certificates to be enumerated and available for sign-in.
|
||||||
|
|
||||||
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 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.
|
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** |
|
| Item | Description |
|
||||||
|--------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **AllowSignatureOnlyKeys**|
|
| Registry key | **AllowSignatureOnlyKeys** |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | |
|
|
||||||
|
|
||||||
### Allow time invalid certificates
|
### Allow time invalid certificates
|
||||||
|
|
||||||
@ -161,85 +135,79 @@ When this setting is turned on, certificates are listed on the sign-in screen wh
|
|||||||
|
|
||||||
When this policy setting isn't turned on, certificates that are expired or not yet valid aren't listed on the sign-in screen.
|
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** |
|
| Item | Description |
|
||||||
|--------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **AllowTimeInvalidCertificates** |
|
| Registry key | `AllowTimeInvalidCertificates` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | |
|
|
||||||
|
|
||||||
### Allow user name hint
|
### Allow user name hint
|
||||||
|
|
||||||
You can use this policy setting to determine whether an optional field appears during sign-in and provides a subsequent elevation process where users can enter their username or username and domain, which associates a certificate with the user.
|
You can use this policy setting to determine whether an optional field appears during sign-in and provides a subsequent elevation process where users can enter their username or username and domain, which associates a certificate with the user.
|
||||||
|
|
||||||
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 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.
|
When this policy setting isn't turned on, users don't see this optional field.
|
||||||
|
|
||||||
| **Item** | **Description** |
|
| Item | Description |
|
||||||
|--------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **X509HintsNeeded**|
|
| Registry key | `X509HintsNeeded` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | |
|
|
||||||
|
|
||||||
### Configure root certificate clean-up
|
### Configure root certificate clean-up
|
||||||
|
|
||||||
You can use this policy setting to manage the cleanup behavior of root certificates. Certificates are verified by using a trust chain, and the trust anchor for the digital certificate is the Root Certification Authority (CA). A CA can issue multiple certificates with the root certificate as the top certificate of the tree structure. A private key is used to sign other certificates. This creates an inherited trustworthiness for all certificates immediately under the root certificate.
|
You can use this policy setting to manage the cleanup behavior of root certificates. Certificates are verified by using a trust chain, and the trust anchor for the digital certificate is the Root Certification Authority (CA). A CA can issue multiple certificates with the root certificate as the top certificate of the tree structure. A private key is used to sign other certificates. This creates an inherited trustworthiness for all certificates immediately under the root certificate.
|
||||||
|
|
||||||
When this policy setting is turned on, you can set the following cleanup options:
|
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.
|
- **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 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.
|
||||||
|
|
||||||
- **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.
|
When this policy setting isn't turned on, root certificates are automatically removed when the user signs out of Windows.
|
||||||
|
|
||||||
| **Item** | **Description** |
|
| Item | Description |
|
||||||
|--------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **RootCertificateCleanupOption**|
|
| Registry key | `RootCertificateCleanupOption` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | |
|
|
||||||
|
|
||||||
### Display string when smart card is blocked
|
### Display string when smart card is blocked
|
||||||
|
|
||||||
You can use this policy setting to change the default message that a user sees if their smart card is blocked.
|
You can use this policy setting to change the default message that a user sees if their smart card is blocked.
|
||||||
|
|
||||||
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 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.
|
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** |
|
| Item | Description |
|
||||||
|--------------------------------------|-------------------------|
|
|--|--|
|
||||||
| Registry key | **IntegratedUnblockPromptString** |
|
| Registry key | `IntegratedUnblockPromptString` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: This policy setting is only effective when the [Allow Integrated Unblock screen to be displayed at the time of logon](#allow-integrated-unblock-screen-to-be-displayed-at-the-time-of-logon) policy is enabled. |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: This policy setting is only effective when the [Allow Integrated Unblock screen to be displayed at the time of logon](#allow-integrated-unblock-screen-to-be-displayed-at-the-time-of-logon) policy is enabled. |
|
||||||
| Notes and resources | |
|
|
||||||
|
|
||||||
### Filter duplicate logon certificates
|
### Filter duplicate logon certificates
|
||||||
|
|
||||||
You can use this policy setting to configure which valid sign-in certificates are displayed.
|
You can use this policy setting to configure which valid sign-in certificates are displayed.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!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.
|
> 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.
|
> 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.
|
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.
|
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](#allow-time-invalid-certificates) policy setting is applied.
|
This policy setting is applied to the computer after the [Allow time invalid certificates](#allow-time-invalid-certificates) policy setting is applied.
|
||||||
|
|
||||||
| **Item** | **Description** |
|
| Item | Description |
|
||||||
|--------------------------------------|--------------------------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **FilterDuplicateCerts**|
|
| Registry key | `FilterDuplicateCerts` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | If there are two or more of the same certificates on a smart card and this policy setting is enabled, the certificate that 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. |
|
| Notes and resources | If there are two or more of the same certificates on a smart card and this policy setting is enabled, the certificate with the most distant expiration time is displayed. |
|
||||||
|
|
||||||
### Force the reading of all certificates from the smart card
|
### Force the reading of all certificates from the smart card
|
||||||
|
|
||||||
@ -249,45 +217,45 @@ When this policy setting is turned on, Windows attempts to read all certificates
|
|||||||
|
|
||||||
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.
|
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** |
|
| Item | Description |
|
||||||
|--------------------------------------|----------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **ForceReadingAllCertificates** |
|
| Registry key | `ForceReadingAllCertificates` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None<br><br>**Important**: Enabling this policy setting can adversely impact performance during the sign-in process in certain situations. |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None<br><br>**Important**: Enabling this policy setting can adversely impact performance during the sign-in process in certain situations. |
|
||||||
| Notes and resources | Contact the smart card vendor to determine if your smart card and associated CSP support the required behavior. |
|
| Notes and resources | Contact the smart card vendor to determine if your smart card and associated CSP support the required behavior. |
|
||||||
|
|
||||||
### Notify user of successful smart card driver installation
|
### Notify user of successful smart card driver installation
|
||||||
|
|
||||||
You can use this policy setting to control whether the user sees a confirmation message when a smart card device driver is installed.
|
You can use this policy setting to control whether the user sees a confirmation message when a smart card device driver is installed.
|
||||||
|
|
||||||
When this policy setting is turned on, the user sees a confirmation message when a smart card device driver is installed.
|
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.
|
When this setting isn't turned on, the user doesn't see a smart card device driver installation message.
|
||||||
|
|
||||||
| **Item** | **Description** |
|
|--|--|
|
||||||
|--------------------------------------|------------------------------------------------|
|
| -------------------------------------- | ------------------------------------------------ |
|
||||||
| Registry key | **ScPnPNotification** |
|
| Registry key | `ScPnPNotification` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | This policy setting applies only to smart card drivers that have passed the Windows Hardware Quality Labs (WHQL) testing process. |
|
| Notes and resources | This policy setting applies only to smart card drivers that have passed the Windows Hardware Quality Labs (WHQL) testing process. |
|
||||||
|
|
||||||
### Prevent plaintext PINs from being returned by Credential Manager
|
### Prevent plaintext PINs from being returned by Credential Manager
|
||||||
|
|
||||||
You can use this policy setting to prevent Credential Manager from returning plaintext PINs.
|
You can use this policy setting to prevent Credential Manager from returning plaintext PINs.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!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.
|
> 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 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.
|
When this setting isn't turned on, Credential Manager can return plaintext PINs.
|
||||||
|
|
||||||
| **Item** | **Description** |
|
| Item | Description |
|
||||||
|--------------------------------------|-----------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **DisallowPlaintextPin**|
|
| Registry key | `DisallowPlaintextPin` |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | If this policy setting is enabled, some smart cards might not work in computers running Windows. Consult the smart card manufacturer to determine whether this policy setting should be enabled. |
|
| Notes and resources | If this policy setting is enabled, some smart cards might not work in computers running Windows. Consult the smart card manufacturer to determine whether this policy setting should be enabled. |
|
||||||
|
|
||||||
### Reverse the subject name stored in a certificate when displaying
|
### Reverse the subject name stored in a certificate when displaying
|
||||||
|
|
||||||
@ -300,13 +268,11 @@ When this policy setting is turned on, the subject name during sign-in appears r
|
|||||||
|
|
||||||
When this policy setting isn't turned on, the subject name appears the same as 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 |
|
||||||
| **Item** | **Description** |
|
|--|--|
|
||||||
|--------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
| Registry key | `ReverseSubject` |
|
||||||
| Registry key | **ReverseSubject** |
|
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
||||||
| Default values | No changes per operating system versions<br>Disabled and not configured are equivalent |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
|
||||||
| Notes and resources | |
|
|
||||||
|
|
||||||
### Turn on certificate propagation from smart card
|
### Turn on certificate propagation from smart card
|
||||||
|
|
||||||
@ -318,128 +284,123 @@ When this policy setting is turned on, certificate propagation occurs when the u
|
|||||||
|
|
||||||
When this policy setting is turned off, certificate propagation doesn't occur, and the certificates aren't available to applications, like Outlook.
|
When this policy setting is turned off, certificate propagation doesn't occur, and the certificates aren't available to applications, like Outlook.
|
||||||
|
|
||||||
| **Item** | **Description** |
|
| Item | Description |
|
||||||
|--------------------------------------|----------------|
|
|--|--|
|
||||||
| Registry key | **CertPropEnabled**|
|
| Registry key | `CertPropEnabled` |
|
||||||
| Default values | No changes per operating system versions<br>Enabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Enabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: This policy setting must be enabled to allow the [Turn on root certificate propagation from smart card](#turn-on-root-certificate-propagation-from-smart-card) setting to work when it is enabled. |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: This policy setting must be enabled to allow the [Turn on root certificate propagation from smart card](#turn-on-root-certificate-propagation-from-smart-card) setting to work when it is enabled. |
|
||||||
| Notes and resources | |
|
|
||||||
|
|
||||||
### Turn on root certificate propagation from smart card
|
### Turn on root certificate propagation from smart card
|
||||||
|
|
||||||
You can use this policy setting to manage the root certificate propagation that occurs when a smart card is inserted.
|
You can use this policy setting to manage the root certificate propagation that occurs when a smart card is inserted.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!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.
|
> 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 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.
|
When this policy setting isn't turned on, root certificate propagation doesn't occur when the user inserts the smart card.
|
||||||
|
|
||||||
| **Item** | **Description** |
|
| Item | Description |
|
||||||
|--------------------------------------|---------------------------------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **EnableRootCertificate Propagation** |
|
| Registry key | `EnableRootCertificate Propagation` |
|
||||||
| Default values | No changes per operating system versions<br>Enabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Enabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: For this policy setting to work, the [Turn on certificate propagation from smart card](#turn-on-certificate-propagation-from-smart-card) policy setting must also be enabled. |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: For this policy setting to work, the [Turn on certificate propagation from smart card](#turn-on-certificate-propagation-from-smart-card) policy setting must also be enabled. |
|
||||||
| Notes and resources | |
|
| Notes and resources | |
|
||||||
|
|
||||||
### Turn on Smart Card Plug and Play service
|
### Turn on Smart Card Plug and Play service
|
||||||
|
|
||||||
You can use this policy setting to control whether Smart Card Plug and Play is enabled.
|
You can use this policy setting to control whether Smart Card Plug and Play is enabled.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!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.
|
> 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 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.
|
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** |
|
| Item | Description |
|
||||||
|--------------------------------------|------------------------------------------------|
|
|--|--|
|
||||||
| Registry key | **EnableScPnP** |
|
| Registry key | `EnableScPnP` |
|
||||||
| Default values | No changes per operating system versions<br>Enabled and not configured are equivalent |
|
| Default values | No changes per operating system versions<br>Enabled and not configured are equivalent |
|
||||||
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
| Policy management | Restart requirement: None<br>Sign off requirement: None<br>Policy conflicts: None |
|
||||||
| Notes and resources | This policy setting applies only to smart card drivers that have passed the Windows Hardware Quality Labs (WHQL) testing process. |
|
| Notes and resources | This policy setting applies only to smart card drivers that have passed the Windows Hardware Quality Labs (WHQL) testing process. |
|
||||||
|
|
||||||
## Base CSP and Smart Card KSP registry keys
|
## Base CSP and Smart Card KSP registry keys
|
||||||
|
|
||||||
The following registry keys can be configured for the base cryptography service provider (CSP) and the smart card key storage provider (KSP). The following tables list the keys. All keys use the DWORD type.
|
The following registry keys can be configured for the base cryptography service provider (CSP) and the smart card key storage provider (KSP). The following tables list the keys. All keys use the DWORD type.
|
||||||
|
|
||||||
The registry keys for the Base CSP are in the registry in **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Microsoft\\Cryptography\\Defaults\\Provider\\Microsoft Base Smart Card Crypto Provider**.
|
The registry keys for the Base CSP are in the registry in `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Base Smart Card Crypto Provider`.
|
||||||
|
|
||||||
The registry keys for the smart card KSP are in **HKEY\_LOCAL\_MACHINE\\SYSTEM\\ControlSet001\\Control\\Cryptography\\Providers\\Microsoft Smart Card Key Storage Provider**.
|
The registry keys for the smart card KSP are in `HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Cryptography\Providers\Microsoft Smart Card Key Storage Provider`.
|
||||||
|
|
||||||
**Registry keys for the base CSP and smart card KSP**
|
### Registry keys for the base CSP and smart card KSP
|
||||||
|
|
||||||
| **Registry Key** | **Description** |
|
| Registry Key | Description |
|
||||||
|------------------------------------|---------------------------------------------------------------------------------|
|
|--|--|
|
||||||
| **AllowPrivateExchangeKeyImport** | A non-zero value allows RSA exchange (for example, encryption) private keys to be imported for use in key archival scenarios.<br>Default value: 00000000 |
|
| **AllowPrivateExchangeKeyImport** | A non-zero value allows RSA exchange (for example, encryption) private keys to be imported for use in key archival scenarios.<br>Default value: 00000000 |
|
||||||
| **AllowPrivateSignatureKeyImport** | A non-zero value allows RSA signature private keys to be imported for use in key archival scenarios.<br>Default value: 00000000 |
|
| **AllowPrivateSignatureKeyImport** | A non-zero value allows RSA signature private keys to be imported for use in key archival scenarios.<br>Default value: 00000000 |
|
||||||
| **DefaultPrivateKeyLenBits** | Defines the default length for private keys, if desired.<br>Default value: 00000400<br>Default key generation parameter: 1024-bit keys |
|
| **DefaultPrivateKeyLenBits** | Defines the default length for private keys, if desired.<br>Default value: 00000400<br>Default key generation parameter: 1024-bit keys |
|
||||||
| **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.<br>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.<br>Default value: 00000000 |
|
||||||
| **TransactionTimeoutMilliseconds** | Default timeout values allow you to specify whether transactions that take an excessive amount of time will fail.<br>Default value: 000005dc<br>The default timeout for holding transactions to the smart card is 1.5 seconds. |
|
| **TransactionTimeoutMilliseconds** | Default timeout values allow you to specify whether transactions that take an excessive amount of time will fail.<br>Default value: 000005dc<br>The default timeout for holding transactions to the smart card is 1.5 seconds. |
|
||||||
|
|
||||||
**Additional registry keys for the smart card KSP**
|
Additional registry keys for the smart card KSP:
|
||||||
|
|
||||||
| **Registry Key** | **Description** |
|
| Registry Key | Description |
|
||||||
|--------------------------------|-----------------------------------------------------|
|
|--|--|
|
||||||
| **AllowPrivateECDHEKeyImport** | This value allows Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) private keys to be imported for use in key archival scenarios.<br>Default value: 00000000 |
|
| **AllowPrivateECDHEKeyImport** | This value allows Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) private keys to be imported for use in key archival scenarios.<br>Default value: 00000000 |
|
||||||
| **AllowPrivateECDSAKeyImport** | This value allows Elliptic Curve Digital Signature Algorithm (ECDSA) private keys to be imported for use in key archival scenarios.<br>Default value: 00000000 |
|
| **AllowPrivateECDSAKeyImport** | This value allows Elliptic Curve Digital Signature Algorithm (ECDSA) private keys to be imported for use in key archival scenarios.<br>Default value: 00000000 |
|
||||||
|
|
||||||
## CRL checking registry keys
|
## CRL checking registry keys
|
||||||
|
|
||||||
The following table lists the keys and the corresponding values to turn off certificate revocation list (CRL) checking at the Key Distribution Center (KDC) or client. To manage CRL checking, you must configure settings for both the KDC and the client.
|
The following table lists the keys and the corresponding values to turn off certificate revocation list (CRL) checking at the Key Distribution Center (KDC) or client. To manage CRL checking, you must configure settings for both the KDC and the client.
|
||||||
|
|
||||||
**CRL checking registry keys**
|
| Registry Key | Details |
|
||||||
|
|--|--|
|
||||||
| **Registry Key** | **Details** |
|
| `HKEY_LOCAL_MACHINE\SYSTEM\CCS\Services\Kdc\UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors` | Type = DWORD<br>Value = 1 |
|
||||||
|------------|-----------------------------|
|
| `HKEY_LOCAL_MACHINE\SYSTEM\CCS\Control\LSA\Kerberos\Parameters\UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors` | Type = DWORD<br>Value = 1 |
|
||||||
| **HKEY\_LOCAL\_MACHINE\\SYSTEM\\CCS\\Services\\Kdc\\UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors**| Type = DWORD<br>Value = 1 |
|
|
||||||
| **HKEY\_LOCAL\_MACHINE\\SYSTEM\\CCS\\Control\\LSA\\Kerberos\\Parameters\\UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors**| Type = DWORD<br>Value = 1 |
|
|
||||||
|
|
||||||
## Additional smart card Group Policy settings and registry keys
|
## Additional smart card Group Policy settings and registry keys
|
||||||
|
|
||||||
In a smart card deployment, additional Group Policy settings can be used to enhance ease-of-use or security. Two of these policy settings that can complement a smart card deployment are:
|
In a smart card deployment, additional Group Policy settings can be used to enhance ease-of-use or security. Two of these policy settings that can complement a smart card deployment are:
|
||||||
|
|
||||||
- Turning off delegation for computers
|
- Turning off delegation for computers
|
||||||
|
- Interactive logon: Do not require CTRL+ALT+DEL (not recommended)
|
||||||
|
|
||||||
- Interactive logon: Do not require CTRL+ALT+DEL (not recommended)
|
The following smart card-related Group Policy settings are in **Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options**.
|
||||||
|
|
||||||
The following smart card-related Group Policy settings are in Computer Configuration\\Windows Settings\\Security Settings\\Local Policies\\Security Options.
|
### Local security policy settings
|
||||||
|
|
||||||
**Local security policy settings**
|
| Group Policy setting and registry key | Default | Description |
|
||||||
|
|--|--|--|
|
||||||
| Group Policy setting and registry key | Default | Description |
|
| Interactive logon: Require smart card<br><br>**scforceoption** | Disabled | This security policy setting requires users to sign in to a computer by using a smart card.<br><br>**Enabled** Users can sign in to the computer only by using a smart card.<br>**Disabled** Users can sign in to the computer by using any method.<br><br>NOTE: the Windows LAPS-managed local account is exempted from this policy when Enabled. For more information see [Windows LAPS integration with smart card policy](/windows-server/identity/laps/laps-concepts#windows-laps-integration-with-smart-card-policy).<br> |
|
||||||
|------------------------------------------|------------|---------------|
|
| Interactive logon: Smart card removal behavior<br><br>**scremoveoption** | This policy setting isn't defined, which means that the system treats it as **No Action**. | This setting determines what happens when the smart card for a signed-in user is removed from the smart card reader. The options are:<br>**No Action**<br>**Lock Workstation**: The workstation is locked when the smart card is removed, so users can leave the area, take their smart card with them, and still maintain a protected session.<br>**Force Logoff**: The user is automatically signed out when the smart card is removed.<br>**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. |
|
||||||
| Interactive logon: Require smart card<br><br>**scforceoption** | Disabled | This security policy setting requires users to sign in to a computer by using a smart card.<br><br>**Enabled** Users can sign in to the computer only by using a smart card.<br>**Disabled** Users can sign in to the computer by using any method.<br><br>NOTE: the Windows LAPS-managed local account is exempted from this policy when Enabled. For more information see [Windows LAPS integration with smart card policy](/windows-server/identity/laps/laps-concepts#windows-laps-integration-with-smart-card-policy).<br> |
|
|
||||||
| Interactive logon: Smart card removal behavior<br><br>**scremoveoption** | This policy setting isn't defined, which means that the system treats it as **No Action**. | This setting determines what happens when the smart card for a signed-in user is removed from the smart card reader. The options are:<br>**No Action**<br>**Lock Workstation**: The workstation is locked when the smart card is removed, so users can leave the area, take their smart card with them, and still maintain a protected session.<br>**Force Logoff**: The user is automatically signed out when the smart card is removed.<br>**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.<br><br>**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.
|
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.
|
The following smart card-related Group Policy settings are in **Computer Configuration\Administrative Templates\System\Credentials Delegation**.
|
||||||
|
|
||||||
Registry keys are in **HKEY\_LOCAL\_MACHINE\\SYSTEM\\ControlSet001\\Control\\Lsa\\Credssp\\PolicyDefaults**.
|
Registry keys are in `HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Lsa\Credssp\PolicyDefaults`.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> In the following table, fresh credentials are those that you are prompted for when running an application.
|
> In the following table, fresh credentials are those that you are prompted for when running an application.
|
||||||
|
|
||||||
**Credential delegation policy settings**
|
### Credential delegation policy settings
|
||||||
|
|
||||||
|
| Group Policy setting and registry key | Default | Description |
|
||||||
|
|--|--|--|
|
||||||
|
| Allow Delegating Fresh Credentials<br><br>**AllowFreshCredentials** | Not configured | This policy setting applies: <br>When server authentication was achieved through a trusted X509 certificate or Kerberos protocol.<br>To applications that use the CredSSP component (for example, Remote Desktop Services).<br><br>**Enabled**: You can specify the servers where the user's fresh credentials can be delegated. <br>**Not configured**: After proper mutual authentication, delegation of fresh credentials is permitted to Remote Desktop Services running on any computer.<br>**Disabled**: Delegation of fresh credentials to any computer isn't permitted.<br><br>**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:<br>Use \*TERMSRV/\*\* for Remote Desktop Session Host (RD Session Host) running on any computer. <br>Use *TERMSRV/host.humanresources.fabrikam.com* for RD Session Host running on the host.humanresources.fabrikam.com computer.<br>Use *TERMSRV/\*.humanresources.fabrikam.com* for RD Session Host running on all computers in .humanresources.fabrikam.com |
|
||||||
|
| Allow Delegating Fresh Credentials with NTLM-only Server Authentication<br><br>**AllowFreshCredentialsWhenNTLMOnly** | Not configured | This policy setting applies:<br>When server authentication was achieved by using NTLM.<br>To applications that use the CredSSP component (for example, Remote Desktop).<br><br>**Enabled**: You can specify the servers where the user's fresh credentials can be delegated.<br>**Not configured**: After proper mutual authentication, delegation of fresh credentials is permitted to RD Session Host running on any computer (TERMSRV/\*).<br>**Disabled**: Delegation of fresh credentials isn't permitted to any computer.<br><br>**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.<br>See the **Allow Delegating Fresh Credentials** policy setting description for examples. |
|
||||||
|
| Deny Delegating Fresh Credentials<br><br>**DenyFreshCredentials** | Not configured | This policy setting applies to applications that use the CredSSP component (for example, Remote Desktop).<br><br>**Enabled**: You can specify the servers where the user's fresh credentials can't be delegated.<br>**Disabled** or **Not configured**: A server is not specified.<br><br>**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.<br>For examples, see the "Allow delegating fresh credentials" policy setting. |
|
||||||
|
|
||||||
| Group Policy setting and registry key | Default | Description |
|
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.
|
||||||
|----------------------------------------------------------------------------------------------------------------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
||||||
| Allow Delegating Fresh Credentials<br><br>**AllowFreshCredentials** | Not configured | This policy setting applies: <br>When server authentication was achieved through a trusted X509 certificate or Kerberos protocol.<br>To applications that use the CredSSP component (for example, Remote Desktop Services).<br><br>**Enabled**: You can specify the servers where the user's fresh credentials can be delegated. <br>**Not configured**: After proper mutual authentication, delegation of fresh credentials is permitted to Remote Desktop Services running on any computer.<br>**Disabled**: Delegation of fresh credentials to any computer isn't permitted.<br><br>**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:<br>Use \*TERMSRV/\*\* for Remote Desktop Session Host (RD Session Host) running on any computer. <br>Use *TERMSRV/host.humanresources.fabrikam.com* for RD Session Host running on the host.humanresources.fabrikam.com computer.<br>Use *TERMSRV/\*.humanresources.fabrikam.com* for RD Session Host running on all computers in .humanresources.fabrikam.com |
|
|
||||||
| Allow Delegating Fresh Credentials with NTLM-only Server Authentication<br><br>**AllowFreshCredentialsWhenNTLMOnly** | Not configured | This policy setting applies:<br>When server authentication was achieved by using NTLM.<br>To applications that use the CredSSP component (for example, Remote Desktop).<br><br>**Enabled**: You can specify the servers where the user's fresh credentials can be delegated.<br>**Not configured**: After proper mutual authentication, delegation of fresh credentials is permitted to RD Session Host running on any computer (TERMSRV/\*).<br>**Disabled**: Delegation of fresh credentials isn't permitted to any computer.<br><br>**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.<br>See the **Allow Delegating Fresh Credentials** policy setting description for examples. |
|
|
||||||
| Deny Delegating Fresh Credentials<br><br>**DenyFreshCredentials** | Not configured | This policy setting applies to applications that use the CredSSP component (for example, Remote Desktop).<br><br>**Enabled**: You can specify the servers where the user's fresh credentials can't be delegated.<br>**Disabled** or **Not configured**: A server is not specified.<br><br>**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.<br>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.
|
| Registry Key| **Corresponding Group Policy setting** |
|
||||||
|
|--|--|
|
||||||
| **Registry key** | **Corresponding Group Policy setting** |
|
| **AllowDefaultCredentials** | Allow Delegating Default Credentials |
|
||||||
|-------------------------------------|---------------------------------------------------------------------------|
|
|
||||||
| **AllowDefaultCredentials** | Allow Delegating Default Credentials |
|
|
||||||
| **AllowDefaultCredentialsWhenNTLMOnly** | Allow Delegating Default Credentials with NTLM-only Server Authentication |
|
| **AllowDefaultCredentialsWhenNTLMOnly** | Allow Delegating Default Credentials with NTLM-only Server Authentication |
|
||||||
| **AllowSavedCredentials** | Allow Delegating Saved Credentials |
|
| **AllowSavedCredentials** | Allow Delegating Saved Credentials |
|
||||||
| **AllowSavedCredentialsWhenNTLMOnly** | Allow Delegating Saved Credentials with NTLM-only Server Authentication |
|
| **AllowSavedCredentialsWhenNTLMOnly** | Allow Delegating Saved Credentials with NTLM-only Server Authentication |
|
||||||
|
|
||||||
## See also
|
## See also
|
||||||
|
|
||||||
|
@ -1,25 +1,19 @@
|
|||||||
---
|
---
|
||||||
title: How Smart Card Sign-in Works in Windows
|
title: How Smart Card Sign-in Works in Windows
|
||||||
description: This topic for IT professional provides links to resources about the implementation of smart card technologies in the Windows operating system.
|
description: This topic for IT professional provides links to resources about the implementation of smart card technologies in the Windows operating system.
|
||||||
ms.reviewer: ardenw
|
|
||||||
ms.topic: overview
|
ms.topic: overview
|
||||||
ms.date: 09/24/2021
|
ms.date: 1/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# How Smart Card Sign-in Works in Windows
|
# How Smart Card Sign-in Works in Windows
|
||||||
|
|
||||||
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:
|
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](smart-card-architecture.md): Learn about enabling communications with smart cards and smart card readers, which can be different according to the vendor that supplies them.
|
- [Smart Card Architecture](smart-card-architecture.md): Learn about enabling communications with smart cards and smart card readers, which can be different according to the vendor that supplies them
|
||||||
|
- [Certificate Requirements and Enumeration](smart-card-certificate-requirements-and-enumeration.md): Learn about requirements for smart card certificates based on the operating system, and about the operations that are performed by the operating system when a smart card is inserted into the computer
|
||||||
|
- [Smart Card and Remote Desktop Services](smart-card-and-remote-desktop-services.md): Learn about using smart cards for remote desktop connections
|
||||||
|
- [Smart Cards for Windows Service](smart-card-smart-cards-for-windows-service.md): Learn about how the Smart Cards for Windows service is implemented
|
||||||
|
- [Certificate Propagation Service](smart-card-certificate-propagation-service.md): Learn about how the certificate propagation service works when a smart card is inserted into a computer
|
||||||
|
- [Smart Card Removal Policy Service](smart-card-removal-policy-service.md): Learn about using Group Policy to control what happens when a user removes a smart card
|
||||||
|
|
||||||
- [Certificate Requirements and Enumeration](smart-card-certificate-requirements-and-enumeration.md): Learn about requirements for smart card certificates based on the operating system, and about the operations that are performed by the operating system when a smart card is inserted into the computer.
|
[!INCLUDE [smart-cards-for-windows-service](../../../../includes/licensing/smart-cards-for-windows-service.md)]
|
||||||
|
|
||||||
- [Smart Card and Remote Desktop Services](smart-card-and-remote-desktop-services.md): Learn about using smart cards for remote desktop connections.
|
|
||||||
|
|
||||||
- [Smart Cards for Windows Service](smart-card-smart-cards-for-windows-service.md): Learn about how the Smart Cards for Windows service is implemented.
|
|
||||||
|
|
||||||
- [Certificate Propagation Service](smart-card-certificate-propagation-service.md): Learn about how the certificate propagation service works when a smart card is inserted into a computer.
|
|
||||||
|
|
||||||
- [Smart Card Removal Policy Service](smart-card-removal-policy-service.md): Learn about using Group Policy to control what happens when a user removes a smart card.
|
|
||||||
|
|
||||||
[!INCLUDE [smart-cards-for-windows-service](../../../../includes/licensing/smart-cards-for-windows-service.md)]
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Smart Card Removal Policy Service
|
title: Smart Card Removal Policy Service
|
||||||
description: This topic for the IT professional describes the role of the removal policy service (ScPolicySvc) in smart card implementation.
|
description: This topic for the IT professional describes the role of the removal policy service (ScPolicySvc) in smart card implementation.
|
||||||
ms.reviewer: ardenw
|
|
||||||
ms.topic: concept-article
|
ms.topic: concept-article
|
||||||
ms.date: 09/24/2021
|
ms.date: 09/24/2021
|
||||||
---
|
---
|
||||||
@ -12,19 +11,14 @@ This topic for the IT professional describes the role of the removal policy serv
|
|||||||
|
|
||||||
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](smart-card-group-policy-and-registry-settings.md).
|
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](smart-card-group-policy-and-registry-settings.md).
|
||||||
|
|
||||||
**Smart card removal policy service**
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
The numbers in the previous figure represent the following actions:
|
The numbers in the previous figure represent the following actions:
|
||||||
|
|
||||||
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.
|
1. Winlogon isn't 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.
|
||||||
|
1. The smart card resource manager service notifies the smart card removal policy service that a sign-in has occurred.
|
||||||
2. The smart card resource manager service notifies the smart card removal policy service that a sign-in has occurred.
|
1. 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.
|
||||||
|
1. 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.
|
||||||
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
|
## See also
|
||||||
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Smart Cards for Windows Service
|
title: Smart Cards for Windows Service
|
||||||
description: This topic for the IT professional and smart card developers describes how the Smart Cards for Windows service manages readers and application interactions.
|
description: This topic for the IT professional and smart card developers describes how the Smart Cards for Windows service manages readers and application interactions.
|
||||||
ms.reviewer: ardenw
|
|
||||||
ms.topic: concept-article
|
ms.topic: concept-article
|
||||||
ms.date: 09/24/2021
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Smart Cards for Windows Service
|
# Smart Cards for Windows Service
|
||||||
@ -69,34 +68,31 @@ The Smart Cards for Windows service runs in the context of a local service, and
|
|||||||
</registryKeys>
|
</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**:<br>
|
> [!NOTE]
|
||||||
`Class=SmartCardReader`<br>`ClassGuid={50DD5230-BA8A-11D1-BF5D-0000F805F530}`
|
> 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.
|
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.
|
||||||
|
|
||||||
When the service is started, it performs several functions:
|
When the service is started, it performs several functions:
|
||||||
|
|
||||||
1. It registers itself for service notifications.
|
1. It registers itself for service notifications
|
||||||
|
1. It registers itself for Plug and Play (PnP) notifications related to device removal and additions
|
||||||
|
1. It initializes its data cache and a global event that signals that the service has started
|
||||||
|
|
||||||
2. It registers itself for Plug and Play (PnP) notifications related to device removal and additions.
|
> [!NOTE]
|
||||||
|
> For smart card implementations, consider sending all communications in Windows operating systems with smart card readers through the Smart Cards for Windows service. This provides an interface to track, select, and communicate with all drivers that declare themselves members of the smart card reader device group.
|
||||||
3. It initializes its data cache and a global event that signals that the service has started.
|
|
||||||
|
|
||||||
> **Note** For smart card implementations, consider sending all communications in Windows operating systems with smart card readers through the Smart Cards for Windows service. This provides an interface to track, select, and communicate with all drivers that declare themselves members of the smart card reader device group.
|
|
||||||
|
|
||||||
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:
|
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
|
- Device introduction
|
||||||
|
- Reader initialization
|
||||||
- Reader initialization
|
- Notifying clients of new readers
|
||||||
|
- Serializing access to readers
|
||||||
- Notifying clients of new readers
|
- Smart card access
|
||||||
|
- Tunneling of reader-specific commands
|
||||||
- Serializing access to readers
|
|
||||||
|
|
||||||
- Smart card access
|
|
||||||
|
|
||||||
- Tunneling of reader-specific commands
|
|
||||||
|
|
||||||
## See also
|
## See also
|
||||||
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Smart Card Tools and Settings
|
title: Smart Card Tools and Settings
|
||||||
description: This topic for the IT professional and smart card developer links to information about smart card debugging, settings, and events.
|
description: This topic for the IT professional and smart card developer links to information about smart card debugging, settings, and events.
|
||||||
ms.reviewer: ardenw
|
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 09/24/2021
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Smart Card Tools and Settings
|
# Smart Card Tools and Settings
|
||||||
@ -12,11 +11,9 @@ This topic for the IT professional and smart card developer links to information
|
|||||||
|
|
||||||
This section of the Smart Card Technical Reference contains information about the following:
|
This section of the Smart Card Technical Reference contains information about the following:
|
||||||
|
|
||||||
- [Smart Cards Debugging Information](smart-card-debugging-information.md): Learn about tools and services in supported versions of Windows to help identify certificate issues.
|
- [Smart Cards Debugging Information](smart-card-debugging-information.md): Learn about tools and services in supported versions of Windows to help identify certificate issues
|
||||||
|
- [Smart Card Group Policy and Registry Settings](smart-card-group-policy-and-registry-settings.md): 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 Group Policy and Registry Settings](smart-card-group-policy-and-registry-settings.md): 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](smart-card-events.md): Learn about events that can be used to manage smart cards in an organization, including how to monitor installation, use, and errors
|
||||||
|
|
||||||
- [Smart Card Events](smart-card-events.md): Learn about events that can be used to manage smart cards in an organization, including how to monitor installation, use, and errors.
|
|
||||||
|
|
||||||
## See also
|
## See also
|
||||||
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Smart Card Technical Reference
|
title: Smart Card Technical Reference
|
||||||
description: Learn about the Windows smart card infrastructure for physical smart cards, and how smart card-related components work in Windows.
|
description: Learn about the Windows smart card infrastructure for physical smart cards, and how smart card-related components work in Windows.
|
||||||
ms.reviewer: ardenw
|
ms.topic: overview
|
||||||
ms.topic: reference
|
ms.date: 11/06/2023
|
||||||
ms.date: 09/24/2021
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Smart Card Technical Reference
|
# Smart Card Technical Reference
|
||||||
@ -14,9 +13,8 @@ The Smart Card Technical Reference describes the Windows smart card infrastructu
|
|||||||
|
|
||||||
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:
|
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.
|
- 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.
|
||||||
- Smart card vendors who write smart card minidrivers or credential providers.
|
|
||||||
|
|
||||||
## What are smart cards?
|
## What are smart cards?
|
||||||
|
|
||||||
@ -24,40 +22,28 @@ Smart cards are tamper-resistant portable storage devices that can enhance the s
|
|||||||
|
|
||||||
Smart cards provide:
|
Smart cards provide:
|
||||||
|
|
||||||
- Tamper-resistant storage for protecting private keys and other forms of personal information.
|
- Tamper-resistant storage for protecting private keys and other forms of personal information
|
||||||
|
- Isolation of security-critical computations that involve authentication, digital signatures, and key exchange from other parts of the computer. These computations are performed on the smart card
|
||||||
- Isolation of security-critical computations that involve authentication, digital signatures, and key exchange from other parts of the computer. These computations are performed on the smart card.
|
- Portability of credentials and other private information between computers at work, home, or on the road
|
||||||
|
|
||||||
- Portability of credentials and other private information between computers at work, home, or on the road.
|
|
||||||
|
|
||||||
Smart cards can be used to sign in to domain accounts only, not local accounts. When you use a password to sign in interactively to 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.
|
Smart cards can be used to sign in to domain accounts only, not local accounts. When you use a password to sign in interactively to 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.
|
||||||
|
|
||||||
**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.
|
Virtual smart cards were introduced to alleviate the need for a physical smart card, the smart card reader, and the associated administration of that hardware.
|
||||||
|
|
||||||
[!INCLUDE [virtual-smart-card-deprecation-notice](../../includes/virtual-smart-card-deprecation-notice.md)]
|
[!INCLUDE [virtual-smart-card-deprecation-notice](../../includes/virtual-smart-card-deprecation-notice.md)]
|
||||||
|
|
||||||
## In this technical reference
|
## In this technical reference
|
||||||
|
|
||||||
This reference contains the following topics.
|
This reference contains the following topics:
|
||||||
|
|
||||||
- [How Smart Card Sign-in Works in Windows](smart-card-how-smart-card-sign-in-works-in-windows.md)
|
- [How Smart Card Sign-in Works in Windows](smart-card-how-smart-card-sign-in-works-in-windows.md)
|
||||||
|
- [Smart Card Architecture](smart-card-architecture.md)
|
||||||
- [Smart Card Architecture](smart-card-architecture.md)
|
- [Certificate Requirements and Enumeration](smart-card-certificate-requirements-and-enumeration.md)
|
||||||
|
- [Smart Card and Remote Desktop Services](smart-card-and-remote-desktop-services.md)
|
||||||
- [Certificate Requirements and Enumeration](smart-card-certificate-requirements-and-enumeration.md)
|
- [Smart Cards for Windows Service](smart-card-smart-cards-for-windows-service.md)
|
||||||
|
- [Certificate Propagation Service](smart-card-certificate-propagation-service.md)
|
||||||
- [Smart Card and Remote Desktop Services](smart-card-and-remote-desktop-services.md)
|
- [Smart Card Removal Policy Service](smart-card-removal-policy-service.md)
|
||||||
|
- [Smart Card Tools and Settings](smart-card-tools-and-settings.md)
|
||||||
- [Smart Cards for Windows Service](smart-card-smart-cards-for-windows-service.md)
|
- [Smart Cards Debugging Information](smart-card-debugging-information.md)
|
||||||
|
- [Smart Card Group Policy and Registry Settings](smart-card-group-policy-and-registry-settings.md)
|
||||||
- [Certificate Propagation Service](smart-card-certificate-propagation-service.md)
|
- [Smart Card Events](smart-card-events.md)
|
||||||
|
|
||||||
- [Smart Card Removal Policy Service](smart-card-removal-policy-service.md)
|
|
||||||
|
|
||||||
- [Smart Card Tools and Settings](smart-card-tools-and-settings.md)
|
|
||||||
|
|
||||||
- [Smart Cards Debugging Information](smart-card-debugging-information.md)
|
|
||||||
|
|
||||||
- [Smart Card Group Policy and Registry Settings](smart-card-group-policy-and-registry-settings.md)
|
|
||||||
|
|
||||||
- [Smart Card Events](smart-card-events.md)
|
|
||||||
|
@ -1,28 +1,27 @@
|
|||||||
items:
|
items:
|
||||||
- name: Smart Card Technical Reference
|
- name: Smart card technical reference
|
||||||
href: smart-card-windows-smart-card-technical-reference.md
|
href: smart-card-windows-smart-card-technical-reference.md
|
||||||
|
- name: How smart card sign-in works
|
||||||
|
href: smart-card-how-smart-card-sign-in-works-in-windows.md
|
||||||
items:
|
items:
|
||||||
- name: How Smart Card Sign-in Works in Windows
|
- name: Smart card architecture
|
||||||
href: smart-card-how-smart-card-sign-in-works-in-windows.md
|
href: smart-card-architecture.md
|
||||||
items:
|
- name: Certificate requirements and enumeration
|
||||||
- name: Smart Card Architecture
|
href: smart-card-certificate-requirements-and-enumeration.md
|
||||||
href: smart-card-architecture.md
|
- name: Smart card and Remote Desktop Services
|
||||||
- name: Certificate Requirements and Enumeration
|
href: smart-card-and-remote-desktop-services.md
|
||||||
href: smart-card-certificate-requirements-and-enumeration.md
|
- name: Smart cards for Windows Service
|
||||||
- name: Smart Card and Remote Desktop Services
|
href: smart-card-smart-cards-for-windows-service.md
|
||||||
href: smart-card-and-remote-desktop-services.md
|
- name: Certificate Propagation Service
|
||||||
- name: Smart Cards for Windows Service
|
href: smart-card-certificate-propagation-service.md
|
||||||
href: smart-card-smart-cards-for-windows-service.md
|
- name: Smart card Removal Policy Service
|
||||||
- name: Certificate Propagation Service
|
href: smart-card-removal-policy-service.md
|
||||||
href: smart-card-certificate-propagation-service.md
|
- name: Smart Card tools and settings
|
||||||
- name: Smart Card Removal Policy Service
|
href: smart-card-tools-and-settings.md
|
||||||
href: smart-card-removal-policy-service.md
|
items:
|
||||||
- name: Smart Card Tools and Settings
|
- name: Smart cards debugging information
|
||||||
href: smart-card-tools-and-settings.md
|
href: smart-card-debugging-information.md
|
||||||
items:
|
- name: Smart card group policy and registry settings
|
||||||
- name: Smart Cards Debugging Information
|
href: smart-card-group-policy-and-registry-settings.md
|
||||||
href: smart-card-debugging-information.md
|
- name: Smart card events
|
||||||
- name: Smart Card Group Policy and Registry Settings
|
href: smart-card-events.md
|
||||||
href: smart-card-group-policy-and-registry-settings.md
|
|
||||||
- name: Smart Card Events
|
|
||||||
href: smart-card-events.md
|
|
@ -0,0 +1,4 @@
|
|||||||
|
<svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M2.089 0H20.911C22.0638 0 23 0.936209 23 2.089V20.911C23 22.0638 22.0638 23 20.911 23H2.089C0.936209 23 0 22.0638 0 20.911V2.089C0 0.936209 0.936209 0 2.089 0Z" fill="#464646"/>
|
||||||
|
<path d="M17.5 6.27273C17.7083 6.27273 17.9036 6.31357 18.0859 6.39525C18.2682 6.47692 18.4271 6.58855 18.5625 6.73012C18.6979 6.87169 18.8047 7.03777 18.8828 7.22834C18.9609 7.41892 19 7.62311 19 7.84091V15.1591C19 15.3769 18.9609 15.5811 18.8828 15.7717C18.8047 15.9622 18.6979 16.1283 18.5625 16.2699C18.4271 16.4115 18.2682 16.5231 18.0859 16.6048C17.9036 16.6864 17.7083 16.7273 17.5 16.7273H17V18.8182H16V16.7273H15V18.8182H14V16.7273H13V18.8182H12V16.7273H11V18.8182H10V16.7273H9V18.8182H8V16.7273H7V18.8182H6V16.7273H5.5C5.29167 16.7273 5.09635 16.6864 4.91406 16.6048C4.73177 16.5231 4.57292 16.4115 4.4375 16.2699C4.30208 16.1283 4.19531 15.9622 4.11719 15.7717C4.03906 15.5811 4 15.3769 4 15.1591V7.84091C4 7.62311 4.03906 7.41892 4.11719 7.22834C4.19531 7.03777 4.30208 6.87169 4.4375 6.73012C4.57292 6.58855 4.73177 6.47692 4.91406 6.39525C5.09635 6.31357 5.29167 6.27273 5.5 6.27273H6V4.18182H7V6.27273H8V4.18182H9V6.27273H10V4.18182H11V6.27273H12V4.18182H13V6.27273H14V4.18182H15V6.27273H16V4.18182H17V6.27273H17.5ZM18 7.84091C18 7.69934 17.9505 7.57683 17.8516 7.47337C17.7526 7.36992 17.6354 7.31819 17.5 7.31819H5.5C5.36458 7.31819 5.2474 7.36992 5.14844 7.47337C5.04948 7.57683 5 7.69934 5 7.84091V15.1591C5 15.3007 5.04948 15.4232 5.14844 15.5266C5.2474 15.6301 5.36458 15.6818 5.5 15.6818H17.5C17.6354 15.6818 17.7526 15.6301 17.8516 15.5266C17.9505 15.4232 18 15.3007 18 15.1591V7.84091ZM6 8.36364H17V14.6364H6V8.36364ZM7 13.5909H16V9.4091H7V13.5909Z" fill="white"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 2.1 KiB |
@ -1,17 +1,15 @@
|
|||||||
items:
|
items:
|
||||||
- name: Virtual Smart Card overview
|
- name: Virtual Smart Card overview
|
||||||
href: virtual-smart-card-overview.md
|
href: virtual-smart-card-overview.md
|
||||||
items:
|
- name: Understand and evaluate virtual smart cards
|
||||||
- name: Understand and evaluate virtual smart cards
|
href: virtual-smart-card-understanding-and-evaluating.md
|
||||||
href: virtual-smart-card-understanding-and-evaluating.md
|
- name: Get started with virtual smart cards
|
||||||
items:
|
href: virtual-smart-card-get-started.md
|
||||||
- name: Get started with virtual smart cards
|
- name: Use virtual smart cards
|
||||||
href: virtual-smart-card-get-started.md
|
href: virtual-smart-card-use-virtual-smart-cards.md
|
||||||
- name: Use virtual smart cards
|
- name: Deploy virtual smart cards
|
||||||
href: virtual-smart-card-use-virtual-smart-cards.md
|
href: virtual-smart-card-deploy-virtual-smart-cards.md
|
||||||
- name: Deploy virtual smart cards
|
- name: Evaluate virtual smart card security
|
||||||
href: virtual-smart-card-deploy-virtual-smart-cards.md
|
href: virtual-smart-card-evaluate-security.md
|
||||||
- name: Evaluate virtual smart card security
|
- name: Tpmvscmgr
|
||||||
href: virtual-smart-card-evaluate-security.md
|
href: virtual-smart-card-tpmvscmgr.md
|
||||||
- name: Tpmvscmgr
|
|
||||||
href: virtual-smart-card-tpmvscmgr.md
|
|
@ -2,7 +2,7 @@
|
|||||||
title: Deploy Virtual Smart Cards
|
title: Deploy Virtual Smart Cards
|
||||||
description: Learn about what to consider when deploying a virtual smart card authentication solution
|
description: Learn about what to consider when deploying a virtual smart card authentication solution
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 02/22/2023
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Deploy Virtual Smart Cards
|
# Deploy Virtual Smart Cards
|
||||||
@ -19,11 +19,9 @@ A device manufacturer creates physical devices, and then an organization purchas
|
|||||||
|
|
||||||
This topic contains information about the following phases in a virtual smart card lifecycle:
|
This topic contains information about the following phases in a virtual smart card lifecycle:
|
||||||
|
|
||||||
- [Create and personalize virtual smart cards](#create-and-personalize-virtual-smart-cards)
|
- [Create and personalize virtual smart cards](#create-and-personalize-virtual-smart-cards)
|
||||||
|
- [Provision virtual smart cards](#provision-virtual-smart-cards)
|
||||||
- [Provision virtual smart cards](#provision-virtual-smart-cards)
|
- [Maintain virtual smart cards](#maintain-virtual-smart-cards)
|
||||||
|
|
||||||
- [Maintain virtual smart cards](#maintain-virtual-smart-cards)
|
|
||||||
|
|
||||||
## Create and personalize virtual smart cards
|
## Create and personalize virtual smart cards
|
||||||
|
|
||||||
@ -54,9 +52,7 @@ A virtual smart card appears within the operating system as a physical smart car
|
|||||||
|
|
||||||
- **Non-exportability**: Because all private information on the virtual smart card is encrypted by using the TPM on the host computer, it can't be used on a different computer with a different TPM. Additionally, TPMs are designed to be tamper-resistant and non-exportable, so a malicious user can't reverse engineer an identical TPM or install the same TPM on a different computer.
|
- **Non-exportability**: Because all private information on the virtual smart card is encrypted by using the TPM on the host computer, it can't be used on a different computer with a different TPM. Additionally, TPMs are designed to be tamper-resistant and non-exportable, so a malicious user can't reverse engineer an identical TPM or install the same TPM on a different computer.
|
||||||
For more information, see [Evaluate Virtual Smart Card Security](virtual-smart-card-evaluate-security.md).
|
For more information, see [Evaluate Virtual Smart Card Security](virtual-smart-card-evaluate-security.md).
|
||||||
|
|
||||||
- **Isolated cryptography**: TPMs provide the same properties of isolated cryptography that is offered by physical smart cards, which is utilized by virtual smart cards. Unencrypted copies of private keys are loaded only within the TPM and never into memory that is accessible by the operating system. All cryptographic operations with these private keys occur inside the TPM.
|
- **Isolated cryptography**: TPMs provide the same properties of isolated cryptography that is offered by physical smart cards, which is utilized by virtual smart cards. Unencrypted copies of private keys are loaded only within the TPM and never into memory that is accessible by the operating system. All cryptographic operations with these private keys occur inside the TPM.
|
||||||
|
|
||||||
- **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.
|
- **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](#blocked-virtual-smart-card) and [Evaluate Virtual Smart Card Security](virtual-smart-card-evaluate-security.md).
|
For more information, see [Blocked virtual smart card](#blocked-virtual-smart-card) and [Evaluate Virtual Smart Card Security](virtual-smart-card-evaluate-security.md).
|
||||||
|
|
||||||
@ -70,12 +66,9 @@ During virtual smart card personalization, the values for the administrator key,
|
|||||||
|
|
||||||
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:
|
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.
|
- **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, 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
|
||||||
|
|
||||||
- **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.
|
|
||||||
|
|
||||||
- **Deterministic**: Administrator keys are the result of some function or known information. For example, the user ID could be used to randomly generate data that can be further processed through a symmetric encryption algorithm by using a secret. This administrator key can be similarly regenerated when needed, and it doesn't need to be stored. The security of this method relies on the security of the secret used.
|
- **Deterministic**: Administrator keys are the result of some function or known information. For example, the user ID could be used to randomly generate data that can be further processed through a symmetric encryption algorithm by using a secret. This administrator key can be similarly regenerated when needed, and it doesn't need to be stored. The security of this method relies on the security of the secret used.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
@ -112,9 +105,8 @@ You can use APIs to build Microsoft Store apps that you can use to manage the fu
|
|||||||
|
|
||||||
When a device or computer isn't joined to a domain, the TPM ownerAuth is stored in the registry under HKEY\_LOCAL\_MACHINE. This exposes some threats. Most of the threat vectors are protected by BitLocker, but threats that aren't protected include:
|
When a device or computer isn't joined to a domain, the TPM ownerAuth is stored in the registry under HKEY\_LOCAL\_MACHINE. This exposes some threats. Most of the threat vectors are protected by BitLocker, but threats that aren't protected include:
|
||||||
|
|
||||||
- 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 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
|
||||||
- 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.
|
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.
|
||||||
|
|
||||||
@ -165,7 +157,7 @@ Similar to physical smart cards, virtual smart cards require certificate enrollm
|
|||||||
|
|
||||||
#### Certificate issuance
|
#### 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.
|
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, 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).
|
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).
|
||||||
|
|
||||||
@ -189,11 +181,11 @@ This command creates a card with a randomized administrator key. The key is auto
|
|||||||
|
|
||||||
`tpmvscmgr.exe destroy /instance <instance ID>`
|
`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).
|
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`.
|
||||||
|
|
||||||
### Certificate management for unmanaged cards
|
### Certificate management for unmanaged cards
|
||||||
|
|
||||||
Depending on the security requirements that are unique to an organization, users can initially enroll for certificates from the certificate management console (certmgr.msc) or from within custom certificate enrollment applications. The latter method can create a request and submit it to a server that has access to the Certification Authority. This requires specific organizational configurations and deployments for certificate enrollment policies and certificate enrollment services. Windows has built-in tools, specifically Certreq.exe and Certutil.exe, which can be used by scripts to perform the enrollment from the command line.
|
Depending on the security requirements that are unique to an organization, users can initially enroll for certificates from the certificate management console (certmgr.msc) or from within custom certificate enrollment applications. The latter method can create a request and submit it to a server that has access to the Certification Authority. This requires specific organizational configurations and deployments for certificate enrollment policies and certificate enrollment services. Windows has built-in tools, specifically Certreq.exe and Certutil.exe, which can be used by scripts to perform the enrollment from the command line.
|
||||||
|
|
||||||
#### Requesting the certificate by providing domain credentials only
|
#### Requesting the certificate by providing domain credentials only
|
||||||
|
|
||||||
@ -211,19 +203,15 @@ The user can import the certificate into the **MY** store (which is the user's c
|
|||||||
|
|
||||||
For deployments that require users to use a physical smart card to sign the certificate request, you can use the procedure:
|
For deployments that require users to use a physical smart card to sign the certificate request, you can use the procedure:
|
||||||
|
|
||||||
1. Users initiate a request on a domain-joined computer.
|
1. Users initiate a request on a domain-joined computer
|
||||||
|
1. Users complete the request by using a physical smart card to sign the request
|
||||||
2. Users complete the request by using a physical smart card to sign the request.
|
1. Users download the request to the virtual smart card on their client computer
|
||||||
|
|
||||||
3. Users download the request to the virtual smart card on their client computer.
|
|
||||||
|
|
||||||
#### Using one-time password for enrollment
|
#### Using one-time password for enrollment
|
||||||
|
|
||||||
Another option to ensure that users are strongly authenticated before virtual smart card certificates are issued, is to send a user a one-time password through SMS, email, or phone. The user then types the one-time password during the certificate enrollment from an application or a script on a desktop that invokes built-in command-line tools.
|
Another option to ensure that users are strongly authenticated before virtual smart card certificates are issued, is to send a user a one-time password through SMS, email, or phone. The user then types the one-time password during the certificate enrollment from an application or a script on a desktop that invokes built-in command-line tools.
|
||||||
|
|
||||||
#### Certificate lifecycle management
|
**Certificate lifecycle management**: certificate renewal can be done from the same tools that are used for the initial certificate enrollment. Certificate enrollment policies and certificate enrollment services can also be used to perform automatic renewal.
|
||||||
|
|
||||||
Certificate renewal can be done from the same tools that are used for the initial certificate enrollment. Certificate enrollment policies and certificate enrollment services can also be used to perform automatic renewal.
|
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
@ -235,11 +223,11 @@ Maintenance is a significant portion of the virtual smart card lifecycle and one
|
|||||||
|
|
||||||
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.
|
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.
|
**Reset 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.
|
**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.
|
**Retire 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.
|
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.
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
title: Evaluate Virtual Smart Card Security
|
title: Evaluate Virtual Smart Card Security
|
||||||
description: Learn about the security characteristics and considerations when deploying TPM virtual smart cards.
|
description: Learn about the security characteristics and considerations when deploying TPM virtual smart cards.
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 02/22/2023
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Evaluate Virtual Smart Card Security
|
# Evaluate Virtual Smart Card Security
|
||||||
@ -39,7 +39,7 @@ The Trusted Computing Group specifies that if the response to attacks involves s
|
|||||||
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.
|
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.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!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.
|
> 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.
|
||||||
|
|
||||||
1. 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.
|
1. 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.
|
||||||
@ -49,4 +49,4 @@ For example, it will take 14 years to guess an eight character PIN for a TPM tha
|
|||||||
|
|
||||||
1. Number of wrong PINs allowed before entering lockout (threshold): 9
|
1. Number of wrong PINs allowed before entering lockout (threshold): 9
|
||||||
1. Time the TPM is in lockout after the threshold is reached: 10 seconds
|
1. Time the TPM is in lockout after the threshold is reached: 10 seconds
|
||||||
1. Timed delay doubles for each wrong PIN after the threshold is reached
|
1. Timed delay doubles for each wrong PIN after the threshold is reached
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
title: Get Started with Virtual Smart Cards - Walkthrough Guide
|
title: Get Started with Virtual Smart Cards - Walkthrough Guide
|
||||||
description: This topic for the IT professional describes how to set up a basic test environment for using TPM virtual smart cards.
|
description: This topic for the IT professional describes how to set up a basic test environment for using TPM virtual smart cards.
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 02/22/2023
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Get Started with Virtual Smart Cards: Walkthrough Guide
|
# Get Started with Virtual Smart Cards: Walkthrough Guide
|
||||||
@ -11,123 +11,78 @@ ms.date: 02/22/2023
|
|||||||
|
|
||||||
This topic for the IT professional describes how to set up a basic test environment for using TPM virtual smart cards.
|
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.
|
Virtual smart cards are a technology from Microsoft that offers 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: nonexportability, 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.
|
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'll 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.
|
You should be able to complete this walkthrough in less than one hour, excluding installing software and setting up the test domain.
|
||||||
|
|
||||||
**Walkthrough steps**
|
## Walkthrough steps
|
||||||
|
|
||||||
- [Prerequisites](#prerequisites)
|
- [Prerequisites](#prerequisites)
|
||||||
|
- [Step 1: Create the certificate template](#step-1-create-the-certificate-template)
|
||||||
|
- [Step 2: Create the TPM virtual smart card](#step-2-create-the-tpm-virtual-smart-card)
|
||||||
|
- [Step 3: Enroll for the certificate on the TPM Virtual Smart Card](#step-3-enroll-for-the-certificate-on-the-tpm-virtual-smart-card)
|
||||||
|
|
||||||
- [Step 1: Create the certificate template](#step-1-create-the-certificate-template)
|
> [!IMPORTANT]
|
||||||
|
> This basic configuration is for test purposes only. It is not intended for use in a production environment.
|
||||||
- [Step 2: Create the TPM virtual smart card](#step-2-create-the-tpm-virtual-smart-card)
|
|
||||||
|
|
||||||
- [Step 3: Enroll for the certificate on the TPM Virtual Smart Card](#step-3-enroll-for-the-certificate-on-the-tpm-virtual-smart-card)
|
|
||||||
|
|
||||||
> **Important** This basic configuration is for test purposes only. It is not intended for use in a production environment.
|
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
You will need:
|
You'll need:
|
||||||
|
|
||||||
- A computer running Windows 10 with an installed and fully functional TPM (version 1.2 or version 2.0).
|
- A computer running Windows 10 with an installed and fully functional TPM (version 1.2 or version 2.0)
|
||||||
|
- A test domain to which the computer listed above can be joined
|
||||||
- A test domain to which the computer listed above can be joined.
|
- Access to a server in that domain with a fully installed and running certification authority (CA)
|
||||||
|
|
||||||
- Access to a server in that domain with a fully installed and running certification authority (CA).
|
|
||||||
|
|
||||||
## Step 1: Create the certificate template
|
## Step 1: Create the certificate template
|
||||||
|
|
||||||
On your domain server, you need to create a template for the certificate that you will request for the virtual smart card.
|
On your domain server, you need to create a template for the certificate that you request for the virtual smart card.
|
||||||
|
|
||||||
### To create the certificate template
|
### To create the certificate template
|
||||||
|
|
||||||
1. On your server, open the Microsoft Management Console (MMC). One way to do this is to type **mmc.exe** from the **Start** menu, right-click **mmc.exe**, and click **Run as administrator**.
|
1. On your server, open the Microsoft Management Console (MMC). One way to do this is to type **mmc.exe** from the **Start** menu, right-click **mmc.exe**, and select **Run as administrator**
|
||||||
|
1. Select **File** > **Add/Remove Snap-in**
|
||||||
|
1. In the available snap-ins list, select **Certificate Templates**, and then select **Add**
|
||||||
|
1. Certificate Templates is now located under **Console Root** in the MMC. Double-click it to view all the available certificate templates
|
||||||
|
1. Right-click the **Smartcard Logon** template, and select **Duplicate Template**
|
||||||
|
1. On the **Compatibility** tab, under **Certification Authority**, review the selection, and change it if needed
|
||||||
|
1. On the **General** tab:
|
||||||
|
1. Specify a name, such as **TPM Virtual Smart Card Logon**
|
||||||
|
1. Set the validity period to the desired value
|
||||||
|
1. On the **Request Handling** tab:
|
||||||
|
1. Set the **Purpose** to **Signature and smartcard logon**
|
||||||
|
1. Select **Prompt the user during enrollment**
|
||||||
|
1. On the **Cryptography** tab:
|
||||||
|
1. Set the minimum key size to 2048
|
||||||
|
1. Select **Requests must use one of the following providers**, and then select **Microsoft Base Smart Card Crypto Provider**
|
||||||
|
1. 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
|
||||||
|
1. Select **OK** to finalize your changes and create the new template. Your new template should now appear in the list of Certificate Templates
|
||||||
|
1. Select **File**, then select **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**
|
||||||
|
1. In the left pane of the MMC, expand **Certification Authority (Local)**, and then expand your CA within the Certification Authority list
|
||||||
|
1. Right-click **Certificate Templates**, select **New**, and then select **Certificate Template to Issue**
|
||||||
|
1. From the list, select the new template that you created (**TPM Virtual Smart Card Logon**), and then select **OK**
|
||||||
|
|
||||||
2. Click **File**, and then click **Add/Remove Snap-in**.
|
> [!NOTE]
|
||||||
|
> It can take some time for your template to replicate to all servers and become available in this list.
|
||||||
|
|
||||||

|
1. After the template replicates, in the MMC, right-click in the Certification Authority list, select **All Tasks**, and then select **Stop Service**. Then, right-click the name of the CA again, select **All Tasks**, and then select **Start Service**.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
5. Right-click the **Smartcard Logon** template, and click **Duplicate Template**.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
6. On the **Compatibility** tab, under **Certification Authority**, review the selection, and change it if needed.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
7. On the **General** tab:
|
|
||||||
|
|
||||||
1. Specify a name, such as **TPM Virtual Smart Card Logon**.
|
|
||||||
|
|
||||||
2. Set the validity period to the desired value.
|
|
||||||
|
|
||||||
8. On the **Request Handling** tab:
|
|
||||||
|
|
||||||
1. Set the **Purpose** to **Signature and smartcard logon**.
|
|
||||||
|
|
||||||
2. Click **Prompt the user during enrollment**.
|
|
||||||
|
|
||||||
9. On the **Cryptography** tab:
|
|
||||||
|
|
||||||
1. Set the minimum key size to 2048.
|
|
||||||
|
|
||||||
2. 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
|
## 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](virtual-smart-card-tpmvscmgr.md).
|
In this step, you create the virtual smart card on the client computer by using the command-line tool, [Tpmvscmgr.exe](virtual-smart-card-tpmvscmgr.md).
|
||||||
|
|
||||||
### To create the TPM virtual smart card
|
### To create the TPM virtual smart card
|
||||||
|
|
||||||
1. On a domain-joined computer, open a Command Prompt window with Administrative credentials.
|
1. On a domain-joined computer, open a Command Prompt window with Administrative credentials.
|
||||||
|
1. At the command prompt, type the following, and then press ENTER:
|
||||||
|
|
||||||

|
`tpmvscmgr.exe create /name TestVSC /pin default /adminkey random /generate`
|
||||||
|
|
||||||
2. At the command prompt, type the following, and then press ENTER:
|
This creates a virtual smart card with the name **TestVSC**, omit the unlock key, and generate the file system on the card. The PIN is set to the default, 12345678. To be prompted for a PIN, instead of **/pin default** you can type **/pin prompt**.\
|
||||||
|
For more information about the Tpmvscmgr command-line tool, see [Use Virtual Smart Cards](virtual-smart-card-use-virtual-smart-cards.md) and [Tpmvscmgr](virtual-smart-card-tpmvscmgr.md).
|
||||||
|
|
||||||
`tpmvscmgr.exe create /name TestVSC /pin default /adminkey random /generate`
|
1. Wait several seconds for the process to finish. Upon completion, Tpmvscmgr.exe provides you with the device instance ID for the TPM Virtual Smart Card. Store this ID for later reference because you need it to manage or remove the virtual smart card.
|
||||||
|
|
||||||
This will create a virtual smart card with the name **TestVSC**, omit the unlock key, and generate the file system on the card. The PIN will be set to the default, 12345678. To be prompted for a PIN, instead of **/pin default** you can type **/pin prompt**.
|
|
||||||
|
|
||||||
For more information about the Tpmvscmgr command-line tool, see [Use Virtual Smart Cards](virtual-smart-card-use-virtual-smart-cards.md) and [Tpmvscmgr](virtual-smart-card-tpmvscmgr.md).
|
|
||||||
|
|
||||||
4. 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.
|
|
||||||
|
|
||||||
## Step 3: Enroll for the certificate on the TPM Virtual Smart Card
|
## Step 3: Enroll for the certificate on the TPM Virtual Smart Card
|
||||||
|
|
||||||
@ -135,28 +90,17 @@ The virtual smart card must be provisioned with a sign-in certificate for it to
|
|||||||
|
|
||||||
### To enroll the certificate
|
### To enroll the certificate
|
||||||
|
|
||||||
1. Open the Certificates console by typing **certmgr.msc** on the **Start** menu.
|
1. Open the Certificates console by typing **certmgr.msc** on the **Start** menu
|
||||||
|
1. Right-click **Personal**, select **All Tasks**, and then select **Request New Certificate**
|
||||||
|
1. 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)
|
||||||
|
1. 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)**
|
||||||
|
1. Enter the PIN that was established when you created the TPM virtual smart card, and then select **OK**
|
||||||
|
1. Wait for the enrollment to finish, and then select **Finish**
|
||||||
|
|
||||||
2. Right-click **Personal**, click **All Tasks**, and then click **Request New Certificate**.
|
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'll see the icon for the new TPM virtual smart card on the Secure Desktop (sign in) screen or you are automatically directed to the TPM smart card sign-in dialog box. Select the icon, enter your PIN (if necessary), and then select **OK**. You should be signed in to your domain account.
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
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**.
|
|
||||||
|
|
||||||
6. Wait for the enrollment to finish, and then click **Finish**.
|
|
||||||
|
|
||||||
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
|
## See also
|
||||||
|
|
||||||
- [Understanding and Evaluating Virtual Smart Cards](virtual-smart-card-understanding-and-evaluating.md)
|
- [Understanding and Evaluating Virtual Smart Cards](virtual-smart-card-understanding-and-evaluating.md)
|
||||||
|
- [Use Virtual Smart Cards](virtual-smart-card-use-virtual-smart-cards.md)
|
||||||
- [Use Virtual Smart Cards](virtual-smart-card-use-virtual-smart-cards.md)
|
- [Deploy Virtual Smart Cards](virtual-smart-card-deploy-virtual-smart-cards.md)
|
||||||
|
|
||||||
- [Deploy Virtual Smart Cards](virtual-smart-card-deploy-virtual-smart-cards.md)
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
title: Virtual Smart Card Overview
|
title: Virtual Smart Card Overview
|
||||||
description: Learn about virtual smart card technology for Windows.
|
description: Learn about virtual smart card technology for Windows.
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 02/22/2023
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Virtual Smart Card Overview
|
# Virtual Smart Card Overview
|
||||||
@ -23,27 +23,27 @@ Virtual smart cards are functionally similar to physical smart cards, appearing
|
|||||||
|
|
||||||
### Authentication use cases
|
### Authentication use cases
|
||||||
|
|
||||||
**Two-factor authentication‒based remote access**
|
#### 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.
|
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.
|
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**
|
#### 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.
|
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.
|
||||||
|
|
||||||
**Virtual smart card redirection for remote desktop connections**
|
#### Virtual smart card redirection for remote desktop connections
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
### Confidentiality use cases
|
### Confidentiality use cases
|
||||||
|
|
||||||
**S/MIME email encryption**
|
#### S/MIME email encryption
|
||||||
|
|
||||||
Physical smart cards are designed to hold private keys. You can use the private keys for email encryption and decryption. The same functionality exists in virtual smart cards. By using S/MIME with a user's public key to encrypt email, the sender of an email is assured that only the person with the corresponding private key can decrypt the email. This assurance is a result of the non-exportability of the private key. It never exists within reach of malicious software, and it remains protected by the TPM—even during decryption.
|
Physical smart cards are designed to hold private keys. You can use the private keys for email encryption and decryption. The same functionality exists in virtual smart cards. By using S/MIME with a user's public key to encrypt email, the sender of an email is assured that only the person with the corresponding private key can decrypt the email. This assurance is a result of the non-exportability of the private key. It never exists within reach of malicious software, and it remains protected by the TPM—even during decryption.
|
||||||
|
|
||||||
**BitLocker for data volumes**
|
#### BitLocker for data volumes
|
||||||
|
|
||||||
BitLocker Drive Encryption technology makes use of symmetric-key encryption to protect the content of a user's hard drive. BitLocker ensures that if the physical ownership of a hard drive is compromised, an adversary won't be able to read data off the drive. The key used to encrypt the drive can be stored in a virtual smart card, which necessitates knowledge of the virtual smart card PIN to access the drive, and possession of the device that is hosting the TPM virtual smart card. If the drive is obtained without access to the TPM that hosts the virtual smart card, any brute force attack will be difficult.
|
BitLocker Drive Encryption technology makes use of symmetric-key encryption to protect the content of a user's hard drive. BitLocker ensures that if the physical ownership of a hard drive is compromised, an adversary won't be able to read data off the drive. The key used to encrypt the drive can be stored in a virtual smart card, which necessitates knowledge of the virtual smart card PIN to access the drive, and possession of the device that is hosting the TPM virtual smart card. If the drive is obtained without access to the TPM that hosts the virtual smart card, any brute force attack will be difficult.
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ You can use BitLocker to encrypt portable drives, storing keys in virtual smart
|
|||||||
|
|
||||||
### Data integrity use case
|
### Data integrity use case
|
||||||
|
|
||||||
**Signing data**
|
#### Signing data
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
title: Tpmvscmgr
|
title: Tpmvscmgr
|
||||||
description: Learn about the Tpmvscmgr command-line tool, through which an administrator can create and delete TPM virtual smart cards on a computer.
|
description: Learn about the Tpmvscmgr command-line tool, through which an administrator can create and delete TPM virtual smart cards on a computer.
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 02/22/2023
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Tpmvscmgr
|
# Tpmvscmgr
|
||||||
@ -84,4 +84,4 @@ The following command will create a TPM virtual smart card with the default valu
|
|||||||
|
|
||||||
```console
|
```console
|
||||||
tpmvscmgr.exe create /name "VirtualSmartCardForCorpAccess" /PIN PROMPT /pinpolicy minlen 4 maxlen 8 /AdminKey DEFAULT /attestation AIK_AND_CERT /generate
|
tpmvscmgr.exe create /name "VirtualSmartCardForCorpAccess" /PIN PROMPT /pinpolicy minlen 4 maxlen 8 /AdminKey DEFAULT /attestation AIK_AND_CERT /generate
|
||||||
```
|
```
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Understanding and Evaluating Virtual Smart Cards
|
title: Understanding and Evaluating Virtual Smart Cards
|
||||||
description: Learn how smart card technology can fit into your authentication design.
|
description: Learn how smart card technology can fit into your authentication design.
|
||||||
ms.prod: windows-client
|
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 02/22/2023
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Understand and Evaluate Virtual Smart Cards
|
# Understand and Evaluate Virtual Smart Cards
|
||||||
@ -12,17 +11,14 @@ ms.date: 02/22/2023
|
|||||||
|
|
||||||
This article describes the virtual smart card technology and how it can fit into your authentication design.
|
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 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: nonexportability, 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.
|
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. Since TPM-enabled hardware is readily available and virtual smart cards can be deployed using existing certificate enrollment methods, virtual smart cards can become a replacement for other methods of strong authentication in a corporate setting of any scale.
|
||||||
|
|
||||||
This topic contains the following sections:
|
This topic contains the following sections:
|
||||||
|
|
||||||
- [Comparing virtual smart cards with physical smart cards](#comparing-virtual-smart-cards-with-physical-smart-cards):
|
- [Comparing virtual smart cards with physical smart cards](#comparing-virtual-smart-cards-with-physical-smart-cards): compares properties, functional aspects, security, and cost.
|
||||||
Compares properties, functional aspects, security, and cost.
|
- [Authentication design options](#authentication-design-options): describes how passwords, smart cards, and virtual smart cards can be used to reach authentication goals in your organization.
|
||||||
|
|
||||||
- [Authentication design options](#authentication-design-options):
|
|
||||||
Describes how passwords, smart cards, and virtual smart cards can be used to reach authentication goals in your organization.
|
|
||||||
|
|
||||||
## Comparing virtual smart cards with physical smart cards
|
## Comparing virtual smart cards with physical smart cards
|
||||||
|
|
||||||
@ -34,71 +30,67 @@ All cryptographic operations occur in the secure, isolated environment of the TP
|
|||||||
|
|
||||||
Virtual smart cards maintain the three key properties of physical smart cards:
|
Virtual smart cards maintain the three key properties of physical smart cards:
|
||||||
|
|
||||||
- **Non-exportability**: Because all private information on the virtual smart card is encrypted by using the TPM on the host computer, it can't be used on a different computer with a different TPM. Additionally, TPMs are designed to be tamper-resistant and non-exportable, so a malicious user can't reverse engineer an identical TPM or install the same TPM on a different computer.
|
- **Non-exportability**: Because all private information on the virtual smart card is encrypted by using the TPM on the host computer, it can't be used on a different computer with a different TPM. Additionally, TPMs are designed to be tamper-resistant and nonexportable, so a malicious user can't reverse engineer an identical TPM or install the same TPM on a different computer. For more information, see [Evaluate Virtual Smart Card Security](virtual-smart-card-evaluate-security.md)
|
||||||
For more information, see [Evaluate Virtual Smart Card Security](virtual-smart-card-evaluate-security.md).
|
- **Isolated cryptography**: TPMs provide the same properties of isolated cryptography that are offered by physical smart cards, and this is utilized by virtual smart cards. Unencrypted copies of private keys are loaded only within the TPM and never into memory that is accessible by the operating system. All cryptographic operations with these private keys occur inside the TPM
|
||||||
|
- **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](virtual-smart-card-evaluate-security.md)
|
||||||
- **Isolated cryptography**: TPMs provide the same properties of isolated cryptography that are offered by physical smart cards, and this is utilized by virtual smart cards. Unencrypted copies of private keys are loaded only within the TPM and never into memory that is accessible by the operating system. All cryptographic operations with these private keys occur inside the TPM.
|
|
||||||
|
|
||||||
- **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](virtual-smart-card-evaluate-security.md).
|
|
||||||
|
|
||||||
The following subsections compare the functionality, security, and cost of virtual smart cards and physical smart cards.
|
The following subsections compare the functionality, security, and cost of virtual smart cards and physical smart cards.
|
||||||
|
|
||||||
**Functionality**
|
### 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 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.
|
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 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.
|
||||||
|
|
||||||
Additionally, although the anti-hammering functionality of the virtual smart card is equally secure to that of a physical smart card, virtual smart card users are never required to contact an administrator to unblock the card. Instead, they simply wait a period of time (depending on the TPM specifications) before they reattempt to enter the PIN. Alternatively, the administrator can reset the lockout by providing owner authentication data to the TPM on the host computer.
|
Additionally, although the anti-hammering functionality of the virtual smart card is equally secure to that of a physical smart card, virtual smart card users are never required to contact an administrator to unblock the card. Instead, they wait a period of time (depending on the TPM specifications) before they reattempt to enter the PIN. Alternatively, the administrator can reset the lockout by providing owner authentication data to the TPM on the host computer.
|
||||||
|
|
||||||
**Security**
|
### 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.
|
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.
|
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 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.
|
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 notices its loss quicker 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**
|
### 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.
|
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, nonexportability) 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.
|
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**
|
### Comparison summary
|
||||||
|
|
||||||
| Physical Smart Cards | TPM virtual smart cards |
|
| Physical Smart Cards | TPM virtual smart cards |
|
||||||
|---------------------|-------------------|
|
|--|--|
|
||||||
| Protects private keys by using the built-in cryptographic functionality of the card. | Protects private keys by using the cryptographic functionality of the TPM. |
|
| Protects private keys by using the built-in cryptographic functionality of the card. | Protects private keys by using the cryptographic functionality of the TPM. |
|
||||||
| Stores private keys in isolated non-volatile memory on the card, which means that access to private keys is only from the card, and access is never allowed to the operating system. | Stores encrypted private keys on the hard drive. The encryption ensures that these keys can only be decrypted and used in the TPM, not in the accessible memory of the operating system. |
|
| Stores private keys in isolated non-volatile memory on the card, which means that access to private keys is only from the card, and access is never allowed to the operating system. | Stores encrypted private keys on the hard drive. The encryption ensures that these keys can only be decrypted and used in the TPM, not in the accessible memory of the operating system. |
|
||||||
| Guarantees non-exportability through the card manufacturer, which includes isolating private information from operating system access. | Guarantees non-exportability through the TPM manufacturer, which includes the inability of an adversary to replicate or remove the TPM. |
|
| Guarantees nonexportability through the card manufacturer, which includes isolating private information from operating system access. | Guarantees nonexportability through the TPM manufacturer, which includes the inability of an adversary to replicate or remove the TPM. |
|
||||||
| Performs and isolates cryptographic operations within the built-in capabilities of the card. | Performs and isolates cryptographic operations in the TPM of the user's computer or device. |
|
| Performs and isolates cryptographic operations within the built-in capabilities of the card. | Performs and isolates cryptographic operations in the TPM of the user's computer or device. |
|
||||||
| Provides anti-hammering through the card. After a certain number of failed PIN entry attempts, the card blocks further access until administrative action is taken. | Provides anti-hammering through the TPM. Successive failed attempts increase the device lockout time (the time the user has to wait before trying again). This can be reset by an administrator. |
|
| Provides anti-hammering through the card. After some failed PIN entry attempts, the card blocks further access until administrative action is taken. | Provides anti-hammering through the TPM. Successive failed attempts increase the device lockout time (the time the user has to wait before trying again). This can be reset by an administrator. |
|
||||||
| Requires that users carry their smart card and smart card reader with them to access network resources. | Allows users to access their TPM-enabled computers or devices, and potentially access the network, without other equipment. |
|
| Requires that users carry their smart card and smart card reader with them to access network resources. | Allows users to access their TPM-enabled computers or devices, and potentially access the network, without other equipment. |
|
||||||
| Enables credential portability by inserting the smart card into smart card readers that are attached to other computers. | Prevents exporting credentials from a given computer or device. However, virtual smart cards can be issued for the same user on multiple computers or devices by using additional certificates. |
|
| Enables credential portability by inserting the smart card into smart card readers that are attached to other computers. | Prevents exporting credentials from a given computer or device. However, virtual smart cards can be issued for the same user on multiple computers or devices by using additional certificates. |
|
||||||
| Enables multiple users to access network resources through the same computer by inserting their personal smart cards. | Enables multiple users to access network resources through the same computer or device by issuing a virtual smart card for each user on that computer or device. |
|
| Enables multiple users to access network resources through the same computer by inserting their personal smart cards. | Enables multiple users to access network resources through the same computer or 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 difficult for an attacker to access the device and launch a hammering attempt. | Stores virtual smart card on the user's computer, which may be left unattended and allow a greater risk window for hammering attempts. |
|
| Requires the user to carry the card, making it more difficult for an attacker to access the device and launch a hammering attempt. | Stores virtual smart card on the user's computer, which might be left unattended and allow a greater risk window for hammering attempts. |
|
||||||
| Provides a generally single-purpose device that is carried explicitly for the purpose of authentication. The smart card can be easily misplaced or forgotten. | Installs the virtual smart card on a device that has other purposes for the user, so the user has greater incentive to be responsible for the computer or device. |
|
| Provides a generally single-purpose device that is carried explicitly for the purpose of authentication. The smart card can be easily misplaced or forgotten. | Installs the virtual smart card on a device that has other purposes for the user, so the user has greater incentive to be responsible for the computer or device. |
|
||||||
| Alerts users that their card is lost or stolen only when they need to sign in and notice it's missing. | Installs the virtual smart card on a device that the user likely needs for other purposes, so users will notice its loss much more quickly. This reduces the associated risk window. |
|
| Alerts users that their card is lost or stolen only when they need to sign in and notice it's missing. | Installs the virtual smart card on a device 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 smart card readers for all employees. | Requires that companies ensure all employees have TPM-enabled computers, which are relatively common. |
|
| Requires companies to invest in smart cards and smart card readers for all employees. | Requires that companies ensure all employees have TPM-enabled computers, which are relatively common. |
|
||||||
| Enables using a smart card removal policy to affect system behavior when the smart card is removed. For example, the policy can dictate if the user's sign-in session is locked or terminated when the user removes the card. | Eliminates the necessity for a smart card removal policy because a TPM virtual smart card is always present and can't be removed from the computer. |
|
| Enables using a smart card removal policy to affect system behavior when the smart card is removed. For example, the policy can dictate if the user's sign-in session is locked or terminated when the user removes the card. | Eliminates the necessity for a smart card removal policy because a TPM virtual smart card is always present and can't be removed from the computer. |
|
||||||
|
|
||||||
## Authentication design options
|
## Authentication design options
|
||||||
|
|
||||||
The following section presents several commonly used options and their respective strengths and weaknesses, which organizations can consider for authentication.
|
The following section presents several commonly used options and their respective strengths and weaknesses, which organizations can consider for authentication.
|
||||||
|
|
||||||
**Passwords**
|
### 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.
|
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.
|
||||||
|
|
||||||
Password authentication places a great deal of responsibility on the user. Passwords must be sufficiently complex so they can't be easily guessed, but they must be simple enough to be committed to memory and not stored in a physical location. Even if this balance is successfully achieved, a wide variety of attacks exist (such as brute force attacks, eavesdropping, and social engineering tactics) where a malicious user can acquire a user's password and impersonate that person's identity. A user often won't realize that the password is compromised, which makes it's easy for a malicious user to maintain access to a system if a valid password has been obtained.
|
Password authentication places a great deal of responsibility on the user. Passwords must be sufficiently complex so they can't be easily guessed, but they must be simple enough to be committed to memory and not stored in a physical location. Even if this balance is successfully achieved, a wide variety of attacks exist (such as brute force attacks, eavesdropping, and social engineering tactics) where a malicious user can acquire a user's password and impersonate that person's identity. A user often won't realize that the password is compromised, which makes it's easy for a malicious user to maintain access to a system if a valid password has been obtained.
|
||||||
|
|
||||||
**One-time passwords**
|
### 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).
|
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
|
||||||
|
|
||||||
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:
|
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:
|
||||||
|
|
||||||
@ -112,8 +104,8 @@ Additional security is achieved by the singular nature of the card because only
|
|||||||
|
|
||||||
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.
|
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**
|
### Virtual smart cards
|
||||||
|
|
||||||
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 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 (nonexportability, 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.
|
Virtual smart cards that utilize a TPM provide the three main security principles of traditional smart cards: nonexportability, 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.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
title: Use Virtual Smart Cards
|
title: Use Virtual Smart Cards
|
||||||
description: Learn about the requirements for virtual smart cards, how to use and manage them.
|
description: Learn about the requirements for virtual smart cards, how to use and manage them.
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 02/22/2023
|
ms.date: 11/06/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Use Virtual Smart Cards
|
# Use Virtual Smart Cards
|
||||||
@ -13,13 +13,12 @@ Learn about the requirements for virtual smart cards, how to use and manage them
|
|||||||
|
|
||||||
## Requirements, restrictions, and limitations
|
## Requirements, restrictions, and limitations
|
||||||
|
|
||||||
| Area | Requirements and details |
|
| Area | Requirements and details |
|
||||||
|-------------|---------------------------|
|
|--|--|
|
||||||
| Supported operating systems | Windows Server 2016 <br>Windows Server 2012 R2 <br>Windows Server 2012 <br>Windows 10 <br>Windows 8.1 <br>Windows 8 |
|
| Supported Trusted Platform Module (TPM) | Any TPM that adheres to the TPM main specifications for version 1.2 or version 2.0 (as set by the Trusted Computing Group) is supported for use as a virtual smart card. For more information, see the [TPM Main Specification](http://www.trustedcomputinggroup.org/resources/tpm_main_specification). |
|
||||||
| Supported Trusted Platform Module (TPM) | Any TPM that adheres to the TPM main specifications for version 1.2 or version 2.0 (as set by the Trusted Computing Group) is supported for use as a virtual smart card. For more information, see the [TPM Main Specification](http://www.trustedcomputinggroup.org/resources/tpm_main_specification). |
|
| Supported virtual smart cards per computer | Ten smart cards can be connected to a computer or device at one time. This includes physical and virtual smart cards combined. <br><br>**Note**<br>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.<br> |
|
||||||
| Supported virtual smart cards per computer | Ten smart cards can be connected to a computer or device at one time. This includes physical and virtual smart cards combined. <br><br>**Note**<br>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.<br> |
|
| Supported number of certificates on a virtual smart card | A single TPM virtual smart card can contain 30 distinct certificates with the corresponding private keys. Users can continue to renew certificates on the card until the total number of certificates on a card exceeds 90. The reason that the total number of certificates is different from the total number of private keys is that sometimes the renewal can be done with the same private key—in which case a new private key isn't generated. |
|
||||||
| Supported number of certificates on a virtual smart card | A single TPM virtual smart card can contain 30 distinct certificates with the corresponding private keys. Users can continue to renew certificates on the card until the total number of certificates on a card exceeds 90. The reason that the total number of certificates is different from the total number of private keys is that sometimes the renewal can be done with the same private key—in which case a new private key isn't generated. |
|
| PIN, PIN Unlock Key (PUK), and Administrative key requirements | The PIN and the PUK must be a minimum of eight characters that can include numerals, alphabetic characters, and special characters.<br>The Administrative key must be entered as 48 hexadecimal characters. It's a 3-key triple DES with ISO/IEC 9797 padding method 2 in CBC chaining mode. |
|
||||||
| PIN, PIN Unlock Key (PUK), and Administrative key requirements | The PIN and the PUK must be a minimum of eight characters that can include numerals, alphabetic characters, and special characters.<br>The Administrative key must be entered as 48 hexadecimal characters. It's a 3-key triple DES with ISO/IEC 9797 padding method 2 in CBC chaining mode. |
|
|
||||||
|
|
||||||
## Using Tpmvscmgr.exe
|
## Using Tpmvscmgr.exe
|
||||||
|
|
||||||
@ -29,63 +28,58 @@ To create and delete TPM virtual smart cards for end users, the Tpmvscmgr comman
|
|||||||
|
|
||||||
Virtual smart cards can also be created and deleted by using APIs. For more information, see the following classes and interfaces:
|
Virtual smart cards can also be created and deleted by using APIs. For more information, see the following classes and interfaces:
|
||||||
|
|
||||||
- [TpmVirtualSmartCardManager](/previous-versions/windows/desktop/legacy/hh707171(v=vs.85))
|
- [TpmVirtualSmartCardManager](/previous-versions/windows/desktop/legacy/hh707171(v=vs.85))
|
||||||
|
- [RemoteTpmVirtualSmartCardManager](/previous-versions/windows/desktop/legacy/hh707166(v=vs.85))
|
||||||
|
- [ITpmVirtualSmartCardManager](/windows/win32/api/tpmvscmgr/nn-tpmvscmgr-itpmvirtualsmartcardmanager)
|
||||||
|
- [ITPMVirtualSmartCardManagerStatusCallBack](/windows/win32/api/tpmvscmgr/nn-tpmvscmgr-itpmvirtualsmartcardmanagerstatuscallback)
|
||||||
|
|
||||||
- [RemoteTpmVirtualSmartCardManager](/previous-versions/windows/desktop/legacy/hh707166(v=vs.85))
|
You can use APIs in the `Windows.Device.SmartCards` namespace 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](https://channel9.msdn.com/events/build/2013/2-041).
|
||||||
|
|
||||||
- [ITpmVirtualSmartCardManager](/windows/win32/api/tpmvscmgr/nn-tpmvscmgr-itpmvirtualsmartcardmanager)
|
|
||||||
|
|
||||||
- [ITPMVirtualSmartCardManagerStatusCallBack](/windows/win32/api/tpmvscmgr/nn-tpmvscmgr-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](https://channel9.msdn.com/events/build/2013/2-041).
|
|
||||||
|
|
||||||
The following table describes the features that can be developed in a Microsoft Store app:
|
The following table describes the features that can be developed in a Microsoft Store app:
|
||||||
|
|
||||||
| Feature | Physical Smart Card | Virtual Smart Card |
|
| Feature | Physical Smart Card | Virtual Smart Card |
|
||||||
|----------------------------------------------|---------------------|--------------------|
|
|--|--|--|
|
||||||
| Query and monitor smart card readers | Yes | Yes |
|
| Query and monitor smart card readers | Yes | Yes |
|
||||||
| List available smart cards in a reader, and retrieve the card name and card ID | Yes | Yes |
|
| List available smart cards in a reader, and retrieve the card name and card ID | Yes | Yes |
|
||||||
| Verify if the administrative key of a card is correct | Yes | Yes |
|
| Verify if the administrative key of a card is correct | Yes | Yes |
|
||||||
| Provision (or reformat) a card with a given card ID | Yes | Yes |
|
| Provision (or reformat) a card with a given card ID | Yes | Yes |
|
||||||
| Change the PIN by entering the old PIN and specifying a new PIN | Yes | Yes |
|
| 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 card by using a challenge/response method | Yes | Yes |
|
| Change the administrative key, reset the PIN, or unblock the smart card by using a challenge/response method | Yes | Yes |
|
||||||
| Create a virtual smart card | Not applicable | Yes |
|
| Create a virtual smart card | Not applicable | Yes |
|
||||||
| Delete a virtual smart card | Not applicable | Yes |
|
| Delete a virtual smart card | Not applicable | Yes |
|
||||||
| Set PIN policies | No | Yes |
|
| Set PIN policies | No | Yes |
|
||||||
|
|
||||||
For more information about these Windows APIs, see:
|
For more information about these Windows APIs, see:
|
||||||
|
|
||||||
- [Windows.Devices.SmartCards namespace (Windows)](/uwp/api/Windows.Devices.SmartCards)
|
- [Windows.Devices.SmartCards namespace (Windows)](/uwp/api/Windows.Devices.SmartCards)
|
||||||
|
- [Windows.Security.Cryptography.Certificates namespace (Windows)](/uwp/api/Windows.Security.Cryptography.Certificates)
|
||||||
- [Windows.Security.Cryptography.Certificates namespace (Windows)](/uwp/api/Windows.Security.Cryptography.Certificates)
|
|
||||||
|
|
||||||
## Distinguishing TPM-based virtual smart cards from physical smart cards
|
## Distinguishing TPM-based virtual smart cards from physical smart cards
|
||||||
|
|
||||||
To help users visually distinguish a Trusted Platform Module (TPM)-based virtual smart card from physical smart cards, the virtual smart card has a different icon. The following icon is displayed during sign-in, and on other screens that require the user to enter the PIN for a virtual smart card.
|
To help users visually distinguish a Trusted Platform Module (TPM)-based virtual smart card from physical smart cards, the virtual smart card has a different icon. The virtual smart card icon :::image type="icon" source="images/virtual-smart-card-icon.svg" border="false"::: is displayed during sign-in, and on other screens that require the user to enter the PIN for a virtual smart card.
|
||||||
|
|
||||||

|
A TPM-based virtual smart card is labeled *Security Device* in the user interface.
|
||||||
|
|
||||||
A TPM-based virtual smart card is labeled **Security Device** in the user interface.
|
|
||||||
|
|
||||||
## Changing the PIN
|
## Changing the PIN
|
||||||
|
|
||||||
The PIN for a virtual smart card can be changed by following these steps:
|
The PIN for a virtual smart card can be changed by following these steps:
|
||||||
- Sign in with the old PIN or password.
|
|
||||||
- Press Ctrl+Alt+Del and choose **Change a password**.
|
- Sign in with the old PIN or password
|
||||||
- Select **Sign-in Options**.
|
- Press <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd> and select **Change a password**
|
||||||
- Select the virtual smart card icon.
|
- Select **Sign-in Options**
|
||||||
- Enter and confirm the new PIN.
|
- Select the virtual smart card icon
|
||||||
|
- Enter and confirm the new PIN
|
||||||
|
|
||||||
## Resolving issues
|
## Resolving issues
|
||||||
|
|
||||||
### TPM not provisioned
|
### TPM not provisioned
|
||||||
|
|
||||||
For a TPM-based virtual smart card to function properly, a provisioned TPM must be available on the computer. If the TPM is disabled in the BIOS, or it isn't provisioned with full ownership and the storage root key, the TPM virtual smart card creation will fail.
|
For a TPM-based virtual smart card to function properly, a provisioned TPM must be available on the computer:
|
||||||
|
|
||||||
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 is disabled in the BIOS, or it isn't provisioned with full ownership and the storage root key, the TPM virtual smart card creation fails
|
||||||
|
- If the TPM is initialized after creating a virtual smart card, the card will no longer function, and it must 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 are available to use in the upgraded operating system
|
||||||
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.
|
|
||||||
|
|
||||||
### TPM in lockout state
|
### TPM in lockout state
|
||||||
|
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
---
|
---
|
||||||
title: Basic Firewall Policy Design
|
title: Basic Firewall Policy Design
|
||||||
description: Protect the devices in your organization from unwanted network traffic that gets through the perimeter defenses by using basic firewall policy design.
|
description: Protect the devices in your organization from unwanted network traffic that gets through the perimeter defenses by using basic firewall policy design.
|
||||||
ms.prod: windows-client
|
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 12/31/2017
|
ms.date: 11/07/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Basic Firewall Policy Design
|
# Basic Firewall Policy Design
|
||||||
|
|
||||||
|
|
||||||
Many organizations have a network perimeter firewall that is designed to prevent the entry of malicious traffic in to the organization's network, but don't have a host-based firewall enabled on each device in the organization.
|
Many organizations have a network perimeter firewall that is designed to prevent the entry of malicious traffic in to the organization's network, but don't have a host-based firewall enabled on each device in the organization.
|
||||||
|
|
||||||
The Basic Firewall Policy Design helps you to protect the devices in your organization from unwanted network traffic that gets through the perimeter defenses, or that originates from inside your network. In this design, you deploy firewall rules to each device in your organization to allow traffic that is required by the programs that are used. Traffic that doesn't match the rules is dropped.
|
The Basic Firewall Policy Design helps you to protect the devices in your organization from unwanted network traffic that gets through the perimeter defenses, or that originates from inside your network. In this design, you deploy firewall rules to each device in your organization to allow traffic that is required by the programs that are used. Traffic that doesn't match the rules is dropped.
|
||||||
@ -17,22 +15,16 @@ Traffic can be blocked or permitted based on the characteristics of each network
|
|||||||
|
|
||||||
Many network administrators don't want to tackle the difficult task of determining all the appropriate rules for every program that is used by the organization, and then maintaining that list over time. In fact, most programs don't require specific firewall rules. The default behavior of Windows and most contemporary applications makes this task easy:
|
Many network administrators don't want to tackle the difficult task of determining all the appropriate rules for every program that is used by the organization, and then maintaining that list over time. In fact, most programs don't require specific firewall rules. The default behavior of Windows and most contemporary applications makes this task easy:
|
||||||
|
|
||||||
- On client devices, the default firewall behavior already supports typical client programs. Programs create any required rules for you as part of the installation process. You only have to create a rule if the client program must be able to receive unsolicited inbound network traffic from another device.
|
- On client devices, the default firewall behavior already supports typical client programs. Programs create any required rules for you as part of the installation process. You only have to create a rule if the client program must be able to receive unsolicited inbound network traffic from another device
|
||||||
|
- When you install a server program that must accept unsolicited inbound network traffic, the installation program likely creates or enables the appropriate rules on the server for you. For example, when you install a server role, the appropriate firewall rules are created and enabled automatically
|
||||||
- When you install a server program that must accept unsolicited inbound network traffic, the installation program likely creates or enables the appropriate rules on the server for you.
|
- For other standard network behavior, the predefined rules that are built into Windows can be configured in a GPO and deployed to the devices in your organization. For example, by using the predefined groups for Core Networking and File and Printer Sharing you can easily configure GPOs with rules for those frequently used networking protocols.
|
||||||
|
|
||||||
For example, when you install a server role, the appropriate firewall rules are created and enabled automatically.
|
|
||||||
|
|
||||||
- For other standard network behavior, the predefined rules that are built into Windows 11, Windows 10, Windows Server 2012, Windows Server 2008 R2, Windows Server 2008, Windows 8, and Windows 7 can easily be configured in a GPO and deployed to the devices in your organization.
|
|
||||||
|
|
||||||
For example, by using the predefined groups for Core Networking and File and Printer Sharing you can easily configure GPOs with rules for those frequently used networking protocols.
|
|
||||||
|
|
||||||
With a few exceptions, the firewall can be enabled on all configurations. Therefore, we recommend that you enable the firewall on every device in your organization. The term "device" includes servers in your perimeter network, on mobile and remote clients that connect to the network, and on all servers and clients in your internal network.
|
With a few exceptions, the firewall can be enabled on all configurations. Therefore, we recommend that you enable the firewall on every device in your organization. The term "device" includes servers in your perimeter network, on mobile and remote clients that connect to the network, and on all servers and clients in your internal network.
|
||||||
|
|
||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
> Stopping the service associated with Windows Defender Firewall with Advanced Security is not supported by Microsoft.
|
> Stopping the service associated with Windows Defender Firewall with Advanced Security is not supported by Microsoft.
|
||||||
|
|
||||||
By default, in new installations, Windows Defender Firewall with Advanced Security is turned on in Windows Server 2012, Windows 8, and later.
|
Windows Defender Firewall with Advanced Security is turned on by default.
|
||||||
|
|
||||||
If you turn off the Windows Defender Firewall service you lose other benefits provided by the service, such as the ability to use IPsec connection security rules, Windows Service Hardening, and network protection from forms of attacks that use network fingerprinting.
|
If you turn off the Windows Defender Firewall service you lose other benefits provided by the service, such as the ability to use IPsec connection security rules, Windows Service Hardening, and network protection from forms of attacks that use network fingerprinting.
|
||||||
|
|
||||||
@ -42,22 +34,18 @@ An organization typically uses this design as a first step toward a more compreh
|
|||||||
|
|
||||||
After implementing this design, you'll have centralized management of the firewall rules applied to all devices that are running Windows in your organization.
|
After implementing this design, you'll have centralized management of the firewall rules applied to all devices that are running Windows in your organization.
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> If you also intend to deploy the [Domain Isolation Policy Design](domain-isolation-policy-design.md), or the [Server Isolation Policy Design](server-isolation-policy-design.md), we recommend that you do the design work for all three designs together, and then deploy in layers that correspond with each design.
|
> If you also intend to deploy the [Domain Isolation Policy Design](domain-isolation-policy-design.md), or the [Server Isolation Policy Design](server-isolation-policy-design.md), we recommend that you do the design work for all three designs together, and then deploy in layers that correspond with each design.
|
||||||
|
|
||||||
The basic firewall design can be applied to devices that are part of an Active Directory forest. Active Directory is required to provide the centralized management and deployment of Group Policy objects that contain the firewall settings and rules.
|
The basic firewall design can be applied to devices that are part of an Active Directory forest. Active Directory is required to provide the centralized management and deployment of Group Policy objects that contain the firewall settings and rules.
|
||||||
|
|
||||||
For more information about this design:
|
For more information about this design:
|
||||||
|
|
||||||
- This design coincides with the deployment goal to [Protect Devices from Unwanted Network Traffic](protect-devices-from-unwanted-network-traffic.md).
|
- This design coincides with the deployment goal to [Protect Devices from Unwanted Network Traffic](protect-devices-from-unwanted-network-traffic.md)
|
||||||
|
- To learn more about this design, see [Firewall Policy Design Example](firewall-policy-design-example.md)
|
||||||
- To learn more about this design, see [Firewall Policy Design Example](firewall-policy-design-example.md).
|
- Before completing the design, gather the information described in [Designing a Windows Defender Firewall with Advanced Security Strategy](designing-a-windows-firewall-with-advanced-security-strategy.md)
|
||||||
|
- To help you make the decisions required in this design, see [Planning Settings for a Basic Firewall Policy](planning-settings-for-a-basic-firewall-policy.md)
|
||||||
- Before completing the design, gather the information described in [Designing a Windows Defender Firewall with Advanced Security Strategy](designing-a-windows-firewall-with-advanced-security-strategy.md).
|
- For a list of detailed tasks that you can use to deploy your basic firewall policy design, see [Checklist: Implementing a Basic Firewall Policy Design](checklist-implementing-a-basic-firewall-policy-design.md)
|
||||||
|
|
||||||
- To help you make the decisions required in this design, see [Planning Settings for a Basic Firewall Policy](planning-settings-for-a-basic-firewall-policy.md).
|
|
||||||
|
|
||||||
- For a list of detailed tasks that you can use to deploy your basic firewall policy design, see [Checklist: Implementing a Basic Firewall Policy Design](checklist-implementing-a-basic-firewall-policy-design.md).
|
|
||||||
|
|
||||||
> [!div class="nextstepaction"]
|
> [!div class="nextstepaction"]
|
||||||
> [Domain Isolation Policy Design](domain-isolation-policy-design.md)
|
> [Domain Isolation Policy Design](domain-isolation-policy-design.md)
|
||||||
|
@ -1,18 +1,16 @@
|
|||||||
---
|
---
|
||||||
title: Create Windows Firewall rules in Intune
|
title: Create Windows Firewall rules in Intune
|
||||||
description: Learn how to use Intune to create rules in Windows Defender Firewall with Advanced Security. Start by creating a profile in Device Configuration in Intune.
|
description: Learn how to use Intune to create rules in Windows Defender Firewall with Advanced Security. Start by creating a profile in Device Configuration in Intune.
|
||||||
ms.prod: windows-client
|
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
ms.date: 12/31/2017
|
ms.date: 11/07/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Create Windows Firewall rules in Intune
|
# Create Windows Firewall rules in Intune
|
||||||
|
|
||||||
|
|
||||||
>[!IMPORTANT]
|
>[!IMPORTANT]
|
||||||
>This information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
|
>This information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
|
||||||
|
|
||||||
To get started, Open the [Microsoft Intune admin center](https://go.microsoft.com/fwlink/?linkid=2109431), and then go to **Devices** > **Windows** > **Configuration profiles** > **Create profile** > Choose **Windows 10 and later** as the platform, Choose **Templates**, then **Endpoint protection** as the profile type.
|
To get started, Open the [Microsoft Intune admin center](https://go.microsoft.com/fwlink/?linkid=2109431), and then go to **Devices** > **Windows** > **Configuration profiles** > **Create profile** > Choose **Windows 10 and later** as the platform, Choose **Templates**, then **Endpoint protection** as the profile type.
|
||||||
Select Windows Defender Firewall.
|
Select Windows Defender Firewall.
|
||||||
:::image type="content" source="images/windows-firewall-intune.png" alt-text="Example of a Windows Defender Firewall policy in Microsoft Intune and the Intune admin center.":::
|
:::image type="content" source="images/windows-firewall-intune.png" alt-text="Example of a Windows Defender Firewall policy in Microsoft Intune and the Intune admin center.":::
|
||||||
|
|
||||||
@ -24,76 +22,86 @@ Select Windows Defender Firewall.
|
|||||||
The firewall rule configurations in Intune use the Windows CSP for Firewall. For more information, see [Firewall CSP](/windows/client-management/mdm/firewall-csp).
|
The firewall rule configurations in Intune use the Windows CSP for Firewall. For more information, see [Firewall CSP](/windows/client-management/mdm/firewall-csp).
|
||||||
|
|
||||||
## Application
|
## Application
|
||||||
Control connections for an app or program.
|
|
||||||
Apps and programs can be specified either file path, package family name, or Windows service short name.
|
|
||||||
|
|
||||||
The file path of an app is its location on the client device.
|
Control connections for an app or program.
|
||||||
For example, C:\Windows\System\Notepad.exe.
|
Apps and programs can be specified either file path, package family name, or Windows service short name.
|
||||||
[Learn more](/windows/client-management/mdm/firewall-csp#filepath)
|
|
||||||
|
|
||||||
Package family names can be retrieved by running the Get-AppxPackage command from PowerShell.
|
The file path of an app is its location on the client device.
|
||||||
[Learn more](https://aka.ms/intunefirewallPackageNameFromPowerShell)
|
For example, C:\Windows\System\Notepad.exe.
|
||||||
|
[Learn more](/windows/client-management/mdm/firewall-csp#filepath)
|
||||||
|
|
||||||
Windows service short names are used in cases when a service, not an application, is sending or receiving traffic.
|
Package family names can be retrieved by running the Get-AppxPackage command from PowerShell.
|
||||||
Default is All.
|
[Learn more](https://aka.ms/intunefirewallPackageNameFromPowerShell)
|
||||||
|
|
||||||
|
Windows service short names are used in cases when a service, not an application, is sending or receiving traffic.
|
||||||
|
Default is All.
|
||||||
|
|
||||||
[Learn more](/windows/client-management/mdm/firewall-csp#servicename)
|
[Learn more](/windows/client-management/mdm/firewall-csp#servicename)
|
||||||
|
|
||||||
## Protocol
|
## Protocol
|
||||||
Select the protocol for this port rule. Transport layer protocols—TCP and UDP—allow you to specify ports or port ranges. For custom protocols, enter a number between 0 and 255 representing the IP protocol.
|
|
||||||
|
|
||||||
Default is Any.
|
Select the protocol for this port rule. Transport layer protocols—TCP and UDP—allow you to specify ports or port ranges. For custom protocols, enter a number between 0 and 255 representing the IP protocol.
|
||||||
|
|
||||||
|
Default is Any.
|
||||||
|
|
||||||
[Learn more](/windows/client-management/mdm/firewall-csp#protocol)
|
[Learn more](/windows/client-management/mdm/firewall-csp#protocol)
|
||||||
|
|
||||||
## Local ports
|
## Local ports
|
||||||
Comma separated list of ranges. For example, *100-120,200,300-320*. Default is All.
|
|
||||||
|
Comma separated list of ranges. For example, *100-120,200,300-320*. Default is All.
|
||||||
|
|
||||||
[Learn more](/windows/client-management/mdm/firewall-csp#localportranges)
|
[Learn more](/windows/client-management/mdm/firewall-csp#localportranges)
|
||||||
|
|
||||||
## Remote ports
|
## Remote ports
|
||||||
Comma separated list of ranges. For example, *100-120,200,300-320*. Default is All.
|
|
||||||
|
Comma separated list of ranges. For example, *100-120,200,300-320*. Default is All.
|
||||||
|
|
||||||
[Learn more](/windows/client-management/mdm/firewall-csp#remoteportranges)
|
[Learn more](/windows/client-management/mdm/firewall-csp#remoteportranges)
|
||||||
|
|
||||||
## Local addresses
|
## Local addresses
|
||||||
|
|
||||||
Comma-separated list of local addresses covered by the rule. Valid tokens include:
|
Comma-separated list of local addresses covered by the rule. Valid tokens include:
|
||||||
- \* indicates any local address. If present, this token must be the only one included.
|
|
||||||
- A subnet can be specified using either the subnet mask or network prefix notation. If a subnet mask or a network prefix isn't specified, the subnet mask default is 255.255.255.255.
|
- `*` indicates any local address. If present, this token must be the only one included
|
||||||
- A valid IPv6 address.
|
- A subnet can be specified using either the subnet mask or network prefix notation. If a subnet mask or a network prefix isn't specified, the subnet mask default is 255.255.255.255
|
||||||
- An IPv4 address range in the format of "start address-end address" with no spaces included.
|
- A valid IPv6 address
|
||||||
- An IPv6 address range in the format of "start address-end address" with no spaces included. Default is Any address.
|
- An IPv4 address range in the format of "start address-end address" with no spaces included
|
||||||
|
- An IPv6 address range in the format of "start address-end address" with no spaces included. Default is Any address
|
||||||
|
|
||||||
[Learn more](/windows/client-management/mdm/firewall-csp#localaddressranges)
|
[Learn more](/windows/client-management/mdm/firewall-csp#localaddressranges)
|
||||||
|
|
||||||
## Remote addresses
|
## Remote addresses
|
||||||
List of comma separated tokens specifying the remote addresses covered by the rule. Tokens are case insensitive. Valid tokens include:
|
|
||||||
- \* indicates any remote address. If present, this token must be the only one included.
|
|
||||||
- Defaultgateway
|
|
||||||
- DHCP
|
|
||||||
- DNS
|
|
||||||
- WINS
|
|
||||||
- Intranet (supported on Windows versions 1809+)
|
|
||||||
- RmtIntranet (supported on Windows versions 1809+)
|
|
||||||
- Internet (supported on Windows versions 1809+)
|
|
||||||
- Ply2Renders (supported on Windows versions 1809+)
|
|
||||||
- LocalSubnet indicates any local address on the local subnet.
|
|
||||||
- A subnet can be specified using either the subnet mask or network prefix notation. If neither a subnet mask not a network prefix is specified, the subnet mask defaults to 255.255.255.255.
|
|
||||||
- A valid IPv6 address.
|
|
||||||
- An IPv4 address range in the format of "start address-end address" with no spaces included.
|
|
||||||
- An IPv6 address range in the format of "start address-end address" with no spaces included.
|
|
||||||
|
|
||||||
Default is Any address.
|
List of comma separated tokens specifying the remote addresses covered by the rule. Tokens are case insensitive. Valid tokens include:
|
||||||
|
|
||||||
|
- `*` indicates any remote address. If present, this token must be the only one included
|
||||||
|
- Defaultgateway
|
||||||
|
- DHCP
|
||||||
|
- DNS
|
||||||
|
- WINS
|
||||||
|
- Intranet
|
||||||
|
- RmtIntranet
|
||||||
|
- Internet
|
||||||
|
- Ply2Renders
|
||||||
|
- LocalSubnet indicates any local address on the local subnet
|
||||||
|
- A subnet can be specified using either the subnet mask or network prefix notation. If neither a subnet mask not a network prefix is specified, the subnet mask defaults to 255.255.255.255
|
||||||
|
- A valid IPv6 address
|
||||||
|
- An IPv4 address range in the format of "start address-end address" with no spaces included
|
||||||
|
- An IPv6 address range in the format of "start address-end address" with no spaces included
|
||||||
|
|
||||||
|
Default is Any address
|
||||||
|
|
||||||
[Learn more](https://aka.ms/intunefirewallremotaddressrule)
|
[Learn more](https://aka.ms/intunefirewallremotaddressrule)
|
||||||
|
|
||||||
## Edge traversal (UI coming soon)
|
## Edge traversal (UI coming soon)
|
||||||
Indicates whether edge traversal is enabled or disabled for this rule. The EdgeTraversal setting indicates that specific inbound traffic is allowed to tunnel through NATs and other edge devices using the Teredo tunneling technology. In order for this setting to work correctly, the application or service with the inbound firewall rule needs to support IPv6. The primary application of this setting allows listeners on the host to be globally addressable through a Teredo IPv6 address. New rules have the EdgeTraversal property disabled by default. This setting can only be configured via Intune Graph at this time.
|
|
||||||
|
Indicates whether edge traversal is enabled or disabled for this rule. The EdgeTraversal setting indicates that specific inbound traffic is allowed to tunnel through NATs and other edge devices using the Teredo tunneling technology. In order for this setting to work correctly, the application or service with the inbound firewall rule needs to support IPv6. The primary application of this setting allows listeners on the host to be globally addressable through a Teredo IPv6 address. New rules have the EdgeTraversal property disabled by default. This setting can only be configured via Intune Graph at this time.
|
||||||
|
|
||||||
[Learn more](/windows/client-management/mdm/firewall-csp#edgetraversal)
|
[Learn more](/windows/client-management/mdm/firewall-csp#edgetraversal)
|
||||||
|
|
||||||
## Authorized users
|
## Authorized users
|
||||||
Specifies the list of authorized local users for this rule. A list of authorized users can't be specified if the rule being authored is targeting a Windows service. Default is all users.
|
|
||||||
|
Specifies the list of authorized local users for this rule. A list of authorized users can't be specified if the rule being authored is targeting a Windows service. Default is all users.
|
||||||
|
|
||||||
[Learn more](/windows/client-management/mdm/firewall-csp#localuserauthorizedlist)
|
[Learn more](/windows/client-management/mdm/firewall-csp#localuserauthorizedlist)
|
||||||
|
|
||||||
|
@ -1,51 +1,38 @@
|
|||||||
---
|
---
|
||||||
title: Filter origin audit log improvements
|
title: Filter origin audit log improvements
|
||||||
description: Filter origin documentation audit log improvements
|
description: Filter origin documentation audit log improvements
|
||||||
ms.prod: windows-client
|
|
||||||
ms.topic: troubleshooting
|
ms.topic: troubleshooting
|
||||||
ms.date: 12/31/2017
|
ms.date: 11/07/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Filter origin audit log improvements
|
# Filter origin audit log improvements
|
||||||
|
|
||||||
Debugging packet drops is a continuous issue to Windows customers. In the past, customers had limited information about packet drops.
|
Debugging packet drops is a continuous issue to Windows customers. In the past, customers had limited information about packet drops.
|
||||||
|
|
||||||
Typically, when investigating packet drop events, a customer would use the field `Filter Run-Time ID` from Windows Filtering Platform (WFP) audits 5157 or 5152.
|
Typically, when investigating packet drop events, a customer would use the field `Filter Run-Time ID` from Windows Filtering Platform (WFP) audits 5157 or 5152.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
The filter ID uniquely identifies the filter that caused the packet drop. The filter ID can be searched in the WFP state dump output to trace back to the Firewall rule where the filter originated from.
|
The filter ID uniquely identifies the filter that caused the packet drop. The filter ID can be searched in the WFP state dump output to trace back to the Firewall rule where the filter originated from. However, the filter ID isn't a reliable source for tracing back to the filter or the rule, as the filter ID can change for many reasons despite the rule not changing at all. This change in ID makes the diagnosis process error-prone and difficult.
|
||||||
|
|
||||||
However, the filter ID isn't a reliable source for tracing back to the filter or the rule, as the filter ID can change for many reasons despite the rule not changing at all. This change in ID makes the diagnosis process error-prone and difficult.
|
For customers to debug packet drop events correctly and efficiently, they would need more context about the blocking filter such as its origin. The blocking filters can be categorized under these filter origins:
|
||||||
|
|
||||||
For customers to debug packet drop events correctly and efficiently, they would need more context about the blocking filter such as its origin.
|
|
||||||
|
|
||||||
The blocking filters can be categorized under these filter origins:
|
|
||||||
|
|
||||||
1. Firewall rules
|
1. Firewall rules
|
||||||
|
1. Firewall default block filters
|
||||||
2. Firewall default block filters
|
1. AppContainer loopback
|
||||||
|
1. Boot time default
|
||||||
a. AppContainer loopback
|
1. Quarantine default
|
||||||
|
1. Query user default
|
||||||
b. Boottime default
|
1. Stealth
|
||||||
|
1. Universal Windows Platform (UWP) default
|
||||||
c. Quarantine default
|
1. Windows Service Hardening (WSH) default
|
||||||
|
|
||||||
d. Query user default
|
|
||||||
|
|
||||||
e. Stealth
|
|
||||||
|
|
||||||
f. Universal Windows Platform (UWP) default
|
|
||||||
|
|
||||||
g. Windows Service Hardening (WSH) default
|
|
||||||
|
|
||||||
The next section describes the improvements made to audits 5157 and 5152, and how the above filter origins are used in these events. These improvements were added in the Windows Server 2022 and Windows 11 releases.
|
The next section describes the improvements made to audits 5157 and 5152, and how the above filter origins are used in these events. These improvements were added in the Windows Server 2022 and Windows 11 releases.
|
||||||
|
|
||||||
## Improved firewall audit
|
## Improved firewall audit
|
||||||
|
|
||||||
The two new fields added to the audit 5157 and 5152 events are `Filter Origin` and `Interface Index`.
|
The two new fields added to the audit 5157 and 5152 events are `Filter Origin` and `Interface Index`.
|
||||||
|
|
||||||
The `Filter Origin` field helps identify the cause of the drop. Packet drops from firewall are explicitly dropped by default block filters created by the Windows Firewall service or a firewall rule that may be created by users, policies, services, apps, etc.
|
The `Filter Origin` field helps identify the cause of the drop. Packet drops from firewall are explicitly dropped by default block filters created by the Windows Firewall service or a firewall rule that may be created by users, policies, services, apps, etc.
|
||||||
|
|
||||||
`Filter Origin` specifies either the rule ID (a unique identifier of a Firewall rule) or the name of one of the default block filters.
|
`Filter Origin` specifies either the rule ID (a unique identifier of a Firewall rule) or the name of one of the default block filters.
|
||||||
@ -54,14 +41,14 @@ The `Interface Index` field specifies the network interface in which the packet
|
|||||||
|
|
||||||
To enable a specific audit event, run the corresponding command in an administrator command prompt:
|
To enable a specific audit event, run the corresponding command in an administrator command prompt:
|
||||||
|
|
||||||
|**Audit #**|**Enable command**|**Link**|
|
|Audit #|Enable command|Link|
|
||||||
|:-----|:-----|:-----|
|
|:-----|:-----|:-----|
|
||||||
|**5157**|`Auditpol /set /category:"System" /SubCategory:"Filtering Platform Connection" /success:enable /failure:enable`|[5157(F): The Windows Filtering Platform has blocked a connection.](../../../threat-protection/auditing/event-5157.md)|
|
|5157|`Auditpol /set /category:"System" /SubCategory:"Filtering Platform Connection" /success:enable /failure:enable`|[5157(F): The Windows Filtering Platform has blocked a connection.](../../../threat-protection/auditing/event-5157.md)|
|
||||||
|**5152**|`Auditpol /set /category:"System" /SubCategory:"Filtering Platform Packet Drop" /success:enable /failure:enable`|[5152(F): The Windows Filtering Platform blocked a packet.](../../../threat-protection/auditing/event-5152.md)|
|
|5152|`Auditpol /set /category:"System" /SubCategory:"Filtering Platform Packet Drop" /success:enable /failure:enable`|[5152(F): The Windows Filtering Platform blocked a packet.](../../../threat-protection/auditing/event-5152.md)|
|
||||||
|
|
||||||
## Example flow of debugging packet drops with filter origin
|
## Example flow of debugging packet drops with filter origin
|
||||||
|
|
||||||
As the audit surfaces `Filter Origin` and `Interface Index`, the network admin can determine the root cause of the network packet drop and the interface it happened on.
|
As the audit surfaces `Filter Origin` and `Interface Index`, the network admin can determine the root cause of the network packet drop, and the interface it happened on.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -69,7 +56,7 @@ The next sections are divided by `Filter Origin` type, the value is either a rul
|
|||||||
|
|
||||||
## Firewall rules
|
## Firewall rules
|
||||||
|
|
||||||
Run the following PowerShell command to generate the rule information using `Filter Origin`.
|
Run the following PowerShell command to generate the rule information using `Filter Origin`.
|
||||||
|
|
||||||
```Powershell
|
```Powershell
|
||||||
Get-NetFirewallRule -Name "<Filter Origin>"
|
Get-NetFirewallRule -Name "<Filter Origin>"
|
||||||
@ -85,27 +72,27 @@ After identifying the rule that caused the drop, the network admin can now modif
|
|||||||
|
|
||||||
## Firewall default block filters
|
## Firewall default block filters
|
||||||
|
|
||||||
**AppContainer loopback**
|
### AppContainer loopback
|
||||||
|
|
||||||
Network drop events from the AppContainer loopback block filter origin occur when localhost loopback isn't enabled properly for the Universal Windows Platform (UWP) app.
|
Network drop events from the AppContainer loopback block filter origin occur when localhost loopback isn't enabled properly for the Universal Windows Platform (UWP) app.
|
||||||
|
|
||||||
To enable localhost loopback in a local debugging environment, see [Communicating with localhost](/windows/iot-core/develop-your-app/loopback).
|
To enable localhost loopback in a local debugging environment, see [Communicating with localhost](/windows/iot-core/develop-your-app/loopback).
|
||||||
|
|
||||||
To enable localhost loopback for a published app that requires loopback access to communicate with another UWP or packaged win32 app, see [uap4:LoopbackAccessRules](/uwp/schemas/appxpackage/uapmanifestschema/element-uap4-loopbackaccessrules).
|
To enable localhost loopback for a published app that requires loopback access to communicate with another UWP or packaged Win32 app, see [uap4:LoopbackAccessRules](/uwp/schemas/appxpackage/uapmanifestschema/element-uap4-loopbackaccessrules).
|
||||||
|
|
||||||
**Boottime default**
|
### Boot time default
|
||||||
|
|
||||||
Network drop events from the boottime default block filter origin occur when the computer is booting up and the firewall service isn't yet running. Services will need to create a boottime allow filter to allow the traffic. It should be noted that it's not possible to add boottime filters through firewall rules.
|
Network drop events from the boot time default block filter origin occur when the computer is booting up and the firewall service isn't yet running. Services need to create a boot time allow filter to allow the traffic. It should be noted that it's not possible to add boot time filters through firewall rules.
|
||||||
|
|
||||||
**Quarantine default**
|
### Quarantine default
|
||||||
|
|
||||||
Network drops from the quarantine default block filter occur when the interface is temporarily quarantined by Firewall service. The firewall service quarantines an interface when it detects a change on the network, and based on several other factors, the firewall service may put the interface in quarantine as a safeguard. When an interface is in quarantine, the quarantine default block filter will block any new non-loopback inbound connections.
|
Network drops from the quarantine default *block filter* occur when the interface is temporarily quarantined by the Firewall service. The firewall service quarantines an interface when it detects a change on the network, and based on several other factors, the firewall service might put the interface in quarantine as a safeguard. When an interface quarantined, the quarantine default *block filter* blocks any new non-loopback inbound connections.
|
||||||
|
|
||||||
Run the following PowerShell command to generate more information about the interface:
|
Run the following PowerShell command to generate more information about the interface:
|
||||||
|
|
||||||
```Powershell
|
```Powershell
|
||||||
Get-NetIPInterface –InterfaceIndex <Interface Index>
|
Get-NetIPInterface -InterfaceIndex <Interface Index>
|
||||||
Get-NetIPInterface –InterfaceIndex 5
|
Get-NetIPInterface -InterfaceIndex 5
|
||||||
```
|
```
|
||||||
|
|
||||||

|

|
||||||
@ -115,13 +102,12 @@ To learn more about the quarantine feature, see [Quarantine behavior](quarantine
|
|||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
> Quarantine-related packet drops are often transient and signify nothing more than a network change on the interface.
|
> Quarantine-related packet drops are often transient and signify nothing more than a network change on the interface.
|
||||||
|
|
||||||
**Query user default**
|
### Query user default
|
||||||
|
|
||||||
Network packet drops from query user default block filters occur when there's no explicit rule created to allow an inbound connection for the packet. When an application binds to a socket but doesn't have a corresponding inbound rule to allow packets on that port, Windows generates a pop up for the user to allow or deny the app to receive packets on the available network categories. If the user clicks to deny the connection in this popup, subsequent inbound packets to the app will be dropped. To resolve the drops:
|
Network packet drops from query user default block filters occur when there's no explicit rule created to allow an inbound connection for the packet. When an application binds to a socket but doesn't have a corresponding inbound rule to allow packets on that port, Windows generates a pop-up for the user to allow or deny the app to receive packets on the available network categories. If the user selects to deny the connection in the pop-up, subsequent inbound packets to the app will be dropped. To resolve the drops:
|
||||||
|
|
||||||
1. Create an inbound firewall rule to allow the packet for this application. This packet will allow the packet to bypass any query user default block filters.
|
1. Create an inbound firewall rule to allow the packet for this application. The rule allows the packet to bypass any query user default block filters
|
||||||
|
1. Delete any block query user rules that may have been auto generated by the firewall service
|
||||||
2. Delete any block query user rules that may have been auto generated by the firewall service.
|
|
||||||
|
|
||||||
To generate a list of all the query user block rules, you can run the following PowerShell command:
|
To generate a list of all the query user block rules, you can run the following PowerShell command:
|
||||||
|
|
||||||
@ -131,31 +117,32 @@ Get-NetFirewallRule | Where {$_.Name -like "*Query User*"}
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
The query user pop-up feature is enabled by default.
|
The query user pop-up feature is enabled by default.
|
||||||
|
|
||||||
To disable the query user pop-up, you can run the following command in administrative command prompt:
|
To disable the query user pop-up, you can run the following command in administrative command prompt:
|
||||||
|
|
||||||
```Console
|
```cmd
|
||||||
Netsh set allprofiles inboundusernotification disable
|
Netsh set allprofiles inboundusernotification disable
|
||||||
```
|
```
|
||||||
|
|
||||||
Or in PowerShell:
|
Or in PowerShell:
|
||||||
|
|
||||||
```Powershell
|
```Powershell
|
||||||
Set-NetFirewallProfile -NotifyOnListen False
|
Set-NetFirewallProfile -NotifyOnListen False
|
||||||
```
|
```
|
||||||
|
|
||||||
**Stealth**
|
### Stealth
|
||||||
|
|
||||||
Network drops from stealth filters are typically made to prevent port scanning.
|
Network drops from stealth filters are typically made to prevent port scanning.
|
||||||
|
|
||||||
To disable stealth-mode, see [Disable stealth mode in Windows](/troubleshoot/windows-server/networking/disable-stealth-mode).
|
To disable stealth-mode, see [Disable stealth mode in Windows](/troubleshoot/windows-server/networking/disable-stealth-mode).
|
||||||
|
|
||||||
**UWP default**
|
### UWP default
|
||||||
|
|
||||||
Network drops from Universal Windows Platform (UWP) default inbound/outbound block filters are often caused by the UWP app not being configured correctly (that is, the UWP app is missing the correct capability tokens or loopback isn't enabled) or the private range is configured incorrectly.
|
Network drops from Universal Windows Platform (UWP) default inbound/outbound block filters are often caused by the UWP app not being configured correctly (that is, the UWP app is missing the correct capability tokens or loopback isn't enabled) or the private range is configured incorrectly.
|
||||||
|
|
||||||
For more information on how to debug drops caused by UWP default block filters, see [Troubleshooting UWP App Connectivity Issues](troubleshooting-uwp-firewall.md).
|
For more information on how to debug drops caused by UWP default block filters, see [Troubleshooting UWP App Connectivity Issues](troubleshooting-uwp-firewall.md).
|
||||||
|
|
||||||
**WSH default**
|
### WSH default
|
||||||
|
|
||||||
Network drops from Windows Service Hardening (WSH) default filters indicate that there wasn't an explicit Windows Service Hardening allow rule to allow network traffic for the protected service. The service owner will need to configure allow rules for the service if the block isn't expected.
|
Network drops from Windows Service Hardening (WSH) default filters indicate that there wasn't an explicit Windows Service Hardening allow rule to allow network traffic for the protected service. The service owner needs to configure *allow rules* for the service if the block isn't expected.
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Troubleshooting Windows Firewall settings after a Windows upgrade
|
title: Troubleshooting Windows Firewall settings after a Windows upgrade
|
||||||
description: Firewall settings lost on upgrade
|
description: Firewall settings lost on upgrade
|
||||||
ms.prod: windows-client
|
|
||||||
ms.topic: troubleshooting
|
ms.topic: troubleshooting
|
||||||
ms.date: 12/31/2017
|
ms.date: 11/07/2023
|
||||||
---
|
---
|
||||||
|
|
||||||
# Troubleshooting Windows Firewall settings after a Windows upgrade
|
# Troubleshooting Windows Firewall settings after a Windows upgrade
|
||||||
@ -14,9 +13,9 @@ Use this article to troubleshoot firewall settings that are turned off after upg
|
|||||||
|
|
||||||
To help you organize your list, individual built-in firewall rules are categorized within a group. For example, the following rules form part of the Remote Desktop group.
|
To help you organize your list, individual built-in firewall rules are categorized within a group. For example, the following rules form part of the Remote Desktop group.
|
||||||
|
|
||||||
- Remote Desktop – Shadow (TCP-In)
|
- Remote Desktop - Shadow (TCP-In)
|
||||||
- Remote Desktop – User Mode (TCP-In)
|
- Remote Desktop - User Mode (TCP-In)
|
||||||
- Remote Desktop – User-Mode (UDP-In)
|
- Remote Desktop - User-Mode (UDP-In)
|
||||||
|
|
||||||
Other group examples include **core networking**, **file and print sharing**, and **network discovery**. Grouping allows administrators to manage sets of similar rules by filtering on categories in the firewall interface (wf.msc). Do this filtering by right-clicking on either **Inbound** or **Outbound Rules** and selecting **Filter by Group**. Optionally, you can use PowerShell using the `Get-NetFirewallRule` cmdlet with the `-Group` switch.
|
Other group examples include **core networking**, **file and print sharing**, and **network discovery**. Grouping allows administrators to manage sets of similar rules by filtering on categories in the firewall interface (wf.msc). Do this filtering by right-clicking on either **Inbound** or **Outbound Rules** and selecting **Filter by Group**. Optionally, you can use PowerShell using the `Get-NetFirewallRule` cmdlet with the `-Group` switch.
|
||||||
|
|
||||||
@ -24,7 +23,7 @@ Other group examples include **core networking**, **file and print sharing**, an
|
|||||||
Get-NetFirewallRule -Group <groupName>
|
Get-NetFirewallRule -Group <groupName>
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Microsoft recommends to enable or disable an entire group instead of individual rules.
|
> Microsoft recommends to enable or disable an entire group instead of individual rules.
|
||||||
|
|
||||||
Microsoft recommends that you enable/disable all of the rules within a group instead of one or two individual rules. This recommendation is because groups aren't only used to organize rules and allow batch rule modification by type, but they also represent a 'unit' by which rule state is maintained across a Windows upgrade. Rule groups, as opposed to individual rules, are the unit by which the update process determines what should be enabled/disabled when the upgrade is complete.
|
Microsoft recommends that you enable/disable all of the rules within a group instead of one or two individual rules. This recommendation is because groups aren't only used to organize rules and allow batch rule modification by type, but they also represent a 'unit' by which rule state is maintained across a Windows upgrade. Rule groups, as opposed to individual rules, are the unit by which the update process determines what should be enabled/disabled when the upgrade is complete.
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
---
|
---
|
||||||
title: Zero Trust and Windows device health
|
title: Zero Trust and Windows device health
|
||||||
description: Describes the process of Windows device health attestation
|
description: Describes the process of Windows device health attestation
|
||||||
ms.reviewer:
|
|
||||||
ms.topic: conceptual
|
ms.topic: conceptual
|
||||||
manager: aaroncz
|
manager: aaroncz
|
||||||
ms.author: paoloma
|
ms.author: paoloma
|
||||||
author: paolomatarazzo
|
author: paolomatarazzo
|
||||||
ms.prod: windows-client
|
ms.date: 11/07/2023
|
||||||
ms.technology: itpro-security
|
|
||||||
ms.date: 12/31/2017
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Zero Trust and Windows device health
|
# Zero Trust and Windows device health
|
||||||
@ -17,11 +14,9 @@ Organizations need a security model that more effectively adapts to the complexi
|
|||||||
|
|
||||||
The [Zero Trust](https://www.microsoft.com/security/business/zero-trust) principles are:
|
The [Zero Trust](https://www.microsoft.com/security/business/zero-trust) principles are:
|
||||||
|
|
||||||
- **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.
|
- **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
|
||||||
- **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.
|
- **Assume breach**. Prevent attackers from obtaining access to minimize potential damage to data and systems. Protect privileged roles, verify end-to-end encryption, use analytics to get visibility, and drive threat detection to improve defenses
|
||||||
|
|
||||||
- **Assume breach**. Prevent attackers from obtaining access to minimize potential damage to data and systems. Protect privileged roles, verify end-to-end encryption, use analytics to get visibility, and drive threat detection to improve defenses.
|
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
@ -45,25 +40,19 @@ Windows includes many security features to help protect users from malware and a
|
|||||||
|
|
||||||
A summary of the steps involved in attestation and Zero Trust on the device side are as follows:
|
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](https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/) (TCG) that dictates what events can be recorded and the format of each event.
|
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](https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/) (TCG) that dictates what events can be recorded and the format of each event
|
||||||
|
1. 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
|
||||||
|
1. The TPM is verified by using the keys/cryptographic material available on the chipset with an [Azure Certificate Service](/windows-server/identity/ad-ds/manage/component-updates/tpm-key-attestation)
|
||||||
|
1. This information is then sent to the attestation service in the cloud to verify that the device is safe. Microsoft Endpoint Manger integrates with Microsoft Azure Attestation to review device health comprehensively and connect this information with Microsoft Entra Conditional Access. This integration is key for Zero Trust solutions that help bind trust to an untrusted device
|
||||||
|
1. The attestation service does the following tasks:
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
3. The TPM is verified by using the keys/cryptographic material available on the chipset with an [Azure Certificate Service](/windows-server/identity/ad-ds/manage/component-updates/tpm-key-attestation).
|
1. The attestation service returns an attestation report that contains information about the security features based on the policy configured in the attestation service
|
||||||
|
1. 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
|
||||||
4. This information is then sent to the attestation service in the cloud to verify that the device is safe. Microsoft Endpoint Manger integrates with Microsoft Azure Attestation to review device health comprehensively and connect this information with Microsoft Entra Conditional Access. This integration is key for Zero Trust solutions that help bind trust to an untrusted device.
|
1. Conditional access, along with device-compliance state then decides to allow or deny access
|
||||||
|
|
||||||
5. The attestation service does the following tasks:
|
|
||||||
|
|
||||||
- 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.
|
|
||||||
|
|
||||||
6. The attestation service returns an attestation report that contains information about the security features based on the policy configured in the attestation service.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
8. Conditional access, along with device-compliance state then decides to allow or deny access.
|
|
||||||
|
|
||||||
## Other Resources
|
## Other Resources
|
||||||
|
|
||||||
|