From 69db224f947442a2d837dde3c8fe1ae617a4443c Mon Sep 17 00:00:00 2001 From: JohnCobb1 Date: Tue, 15 Sep 2020 13:28:07 -0700 Subject: [PATCH 001/187] server privacy settings --- .../configure-windows-diagnostic-data-in-your-organization.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md index 332e9f1796..f8be527a21 100644 --- a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md +++ b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md @@ -213,3 +213,5 @@ Use [Policy Configuration Service Provider (CSP)](https://docs.microsoft.com/win ## Limit optional diagnostic data for Desktop Analytics For more information about how to limit the diagnostic data to the minimum required by Desktop Analytics, see [Enable data sharing for Desktop Analytics](https://docs.microsoft.com/mem/configmgr/desktop-analytics/enable-data-sharing). + +## Change privacy settings on a single server From 1dab05af52abadf65c4bf15a9579c1088bbf38a2 Mon Sep 17 00:00:00 2001 From: JohnCobb1 Date: Fri, 18 Sep 2020 15:07:57 -0700 Subject: [PATCH 002/187] added sconfig telemetry setting steps --- ...ws-diagnostic-data-in-your-organization.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md index f8be527a21..89f2417e05 100644 --- a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md +++ b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md @@ -13,7 +13,7 @@ ms.author: dansimp manager: dansimp ms.collection: M365-security-compliance ms.topic: article -ms.date: 07/21/2020 +ms.date: 09/18/2020 --- # Configure Windows diagnostic data in your organization @@ -215,3 +215,20 @@ Use [Policy Configuration Service Provider (CSP)](https://docs.microsoft.com/win For more information about how to limit the diagnostic data to the minimum required by Desktop Analytics, see [Enable data sharing for Desktop Analytics](https://docs.microsoft.com/mem/configmgr/desktop-analytics/enable-data-sharing). ## Change privacy settings on a single server + +Here’s how to change the privacy settings on a server running either Windows Server or Azure Stack HCI. To manage privacy settings in your enterprise as a whole, see [Manage enterprise diagnostic data](configure-windows-diagnostic-data-in-your-organization#manage-enterprise-diagnostic-data). + +If the server has Full Desktop installation option, use the following steps: +1. steps + +If the server uses Server Core, use the following steps: +1. Log on to the server running Azure Stack HCI. + + This could be locally via a keyboard and monitor, or using a remote management (headless or BMC) controller, or Remote Desktop. The Sconfig tool opens automatically when you log on to the server. + +1. On the **Welcome to Azure Stack HCI** screen, at the **Enter a number to select an option:** prompt, type **10** and press Enter. +1. On the **Change Telemetry** confirmation prompt, select **Yes** to display: + + Available Telemetry settings: **1 Security**, **2 Basic**, **3 Enhanced**, **4 Full** + +1. At the **Enter new telemetry setting:** prompt, type the option you want, and then press Enter. From 9545fe17ab5a535ab980ccbbba866d6b461a0388 Mon Sep 17 00:00:00 2001 From: JohnCobb1 Date: Fri, 18 Sep 2020 15:16:34 -0700 Subject: [PATCH 003/187] link fix --- .../configure-windows-diagnostic-data-in-your-organization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md index 89f2417e05..2630771e1d 100644 --- a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md +++ b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md @@ -216,7 +216,7 @@ For more information about how to limit the diagnostic data to the minimum requi ## Change privacy settings on a single server -Here’s how to change the privacy settings on a server running either Windows Server or Azure Stack HCI. To manage privacy settings in your enterprise as a whole, see [Manage enterprise diagnostic data](configure-windows-diagnostic-data-in-your-organization#manage-enterprise-diagnostic-data). +Here’s how to change the privacy settings on a server running either Windows Server or Azure Stack HCI. To manage privacy settings in your enterprise as a whole, see [Manage enterprise diagnostic data](https://docs.microsoft.com/windows/privacy/configure-windows-diagnostic-data-in-your-organization#manage-enterprise-diagnostic-data). If the server has Full Desktop installation option, use the following steps: 1. steps From 4bd4b4a8395d256a913507b8e6bea0d05c35bbe4 Mon Sep 17 00:00:00 2001 From: JohnCobb1 Date: Fri, 18 Sep 2020 15:28:18 -0700 Subject: [PATCH 004/187] link fix 2 --- .../configure-windows-diagnostic-data-in-your-organization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md index 2630771e1d..c0642867ee 100644 --- a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md +++ b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md @@ -216,7 +216,7 @@ For more information about how to limit the diagnostic data to the minimum requi ## Change privacy settings on a single server -Here’s how to change the privacy settings on a server running either Windows Server or Azure Stack HCI. To manage privacy settings in your enterprise as a whole, see [Manage enterprise diagnostic data](https://docs.microsoft.com/windows/privacy/configure-windows-diagnostic-data-in-your-organization#manage-enterprise-diagnostic-data). +Here’s how to change the privacy settings on a server running either Windows Server or Azure Stack HCI. To manage privacy settings in your enterprise as a whole, see [Manage enterprise diagnostic data](#manage-enterprise-diagnostic-data). If the server has Full Desktop installation option, use the following steps: 1. steps From 60a8fba48e7cd4041ab99368e9b4fafaeeca7699 Mon Sep 17 00:00:00 2001 From: JohnCobb1 Date: Tue, 22 Sep 2020 11:31:23 -0700 Subject: [PATCH 005/187] added full desktop install option steps --- ...ws-diagnostic-data-in-your-organization.md | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md index c0642867ee..f77fdfb5d4 100644 --- a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md +++ b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md @@ -13,7 +13,7 @@ ms.author: dansimp manager: dansimp ms.collection: M365-security-compliance ms.topic: article -ms.date: 09/18/2020 +ms.date: 09/22/2020 --- # Configure Windows diagnostic data in your organization @@ -218,17 +218,32 @@ For more information about how to limit the diagnostic data to the minimum requi Here’s how to change the privacy settings on a server running either Windows Server or Azure Stack HCI. To manage privacy settings in your enterprise as a whole, see [Manage enterprise diagnostic data](#manage-enterprise-diagnostic-data). -If the server has Full Desktop installation option, use the following steps: -1. steps +If the server has the Full Desktop installation option, use the following steps: +1. Connect to the Server Manager Dashboard of the Windows Server. -If the server uses Server Core, use the following steps: + This could be locally via a keyboard and monitor, or using a remote management (headless or BMC) controller, or Remote Desktop. + +1. In Server Manage, under **Dashboard**, select **Local Server**. +1. On the **Properties** page of the server, next to **Feedback & Diagonstics**, select **Settings**. + + On the **Setting** page, the **Feedback frequency** and **Diagnotic and usage data** settings display. + +1. Expand the **Diagnotic and usage data** setting to select one of the following options: + - **Required diagnostic data** + - **Enhanced** + - **Optional diagnostic data** + + >[!NOTE] + > On the **Settings** page, if the notice **Some settings are managed by your organization** displays, then the **Diagnotic and usage data** setting may not be available. + +If the server is running Azure Stack HCI and uses Server Core, use the following steps: 1. Log on to the server running Azure Stack HCI. This could be locally via a keyboard and monitor, or using a remote management (headless or BMC) controller, or Remote Desktop. The Sconfig tool opens automatically when you log on to the server. 1. On the **Welcome to Azure Stack HCI** screen, at the **Enter a number to select an option:** prompt, type **10** and press Enter. -1. On the **Change Telemetry** confirmation prompt, select **Yes** to display: +1. On the **Change Telemetry** confirmation prompt, select **Yes** to display the following options: Available Telemetry settings: **1 Security**, **2 Basic**, **3 Enhanced**, **4 Full** -1. At the **Enter new telemetry setting:** prompt, type the option you want, and then press Enter. +1. At the **Enter new telemetry setting:** prompt, type the option you want, and press Enter. From dc8e13f1f8a1bf2b93645053847f6c2dc2fad7dc Mon Sep 17 00:00:00 2001 From: JohnCobb1 Date: Tue, 22 Sep 2020 11:58:42 -0700 Subject: [PATCH 006/187] small edit --- .../configure-windows-diagnostic-data-in-your-organization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md index f77fdfb5d4..25a169ffa4 100644 --- a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md +++ b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md @@ -246,4 +246,4 @@ If the server is running Azure Stack HCI and uses Server Core, use the following Available Telemetry settings: **1 Security**, **2 Basic**, **3 Enhanced**, **4 Full** -1. At the **Enter new telemetry setting:** prompt, type the option you want, and press Enter. +1. At the **Enter new telemetry setting:** prompt, type the option you want and press Enter. From f6a961d5cad099f530aac65abc048bdb1ecb0972 Mon Sep 17 00:00:00 2001 From: JohnCobb1 Date: Tue, 22 Sep 2020 15:13:20 -0700 Subject: [PATCH 007/187] defined Sconfig on first reference --- .../configure-windows-diagnostic-data-in-your-organization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md index 25a169ffa4..96d25beaf1 100644 --- a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md +++ b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md @@ -239,7 +239,7 @@ If the server has the Full Desktop installation option, use the following steps: If the server is running Azure Stack HCI and uses Server Core, use the following steps: 1. Log on to the server running Azure Stack HCI. - This could be locally via a keyboard and monitor, or using a remote management (headless or BMC) controller, or Remote Desktop. The Sconfig tool opens automatically when you log on to the server. + This could be locally via a keyboard and monitor, or using a remote management (headless or BMC) controller, or Remote Desktop. The Server Configuration tool (Sconfig) opens automatically when you log on to the server. 1. On the **Welcome to Azure Stack HCI** screen, at the **Enter a number to select an option:** prompt, type **10** and press Enter. 1. On the **Change Telemetry** confirmation prompt, select **Yes** to display the following options: From 13f432c4fba0899f0de09ce990d816908e7957ee Mon Sep 17 00:00:00 2001 From: Daniel Simpson Date: Tue, 22 Sep 2020 16:01:27 -0700 Subject: [PATCH 008/187] Update configure-windows-diagnostic-data-in-your-organization.md minor edits --- ...nfigure-windows-diagnostic-data-in-your-organization.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md index 96d25beaf1..4a27aed435 100644 --- a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md +++ b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md @@ -23,6 +23,7 @@ ms.date: 09/22/2020 - Windows 10 Enterprise - Windows 10 Education - Windows Server 2016 and newer +- Azure Stack HCI, version 20H2 This article applies to Windows 10, Windows Server, Surface Hub, and Hololens diagnostic data only. It describes the types of diagnostic data that’s sent back to Microsoft and the ways you can manage it within your organization. Microsoft uses the data to quickly identify and address issues affecting its customers. @@ -221,9 +222,9 @@ Here’s how to change the privacy settings on a server running either Windows S If the server has the Full Desktop installation option, use the following steps: 1. Connect to the Server Manager Dashboard of the Windows Server. - This could be locally via a keyboard and monitor, or using a remote management (headless or BMC) controller, or Remote Desktop. + This could be locally by using a keyboard and monitor, or using a remote management (headless or BMC) controller, or Remote Desktop. -1. In Server Manage, under **Dashboard**, select **Local Server**. +1. In Server Manager, under **Dashboard**, select **Local Server**. 1. On the **Properties** page of the server, next to **Feedback & Diagonstics**, select **Settings**. On the **Setting** page, the **Feedback frequency** and **Diagnotic and usage data** settings display. @@ -234,7 +235,7 @@ If the server has the Full Desktop installation option, use the following steps: - **Optional diagnostic data** >[!NOTE] - > On the **Settings** page, if the notice **Some settings are managed by your organization** displays, then the **Diagnotic and usage data** setting may not be available. + > On the **Settings** page, if you see the notice **Some settings are managed by your organization**, then the **Diagnotic and usage data** setting may not be available. If the server is running Azure Stack HCI and uses Server Core, use the following steps: 1. Log on to the server running Azure Stack HCI. From 222cd9e20f0f71055535e78aa6e4e3c6edad2b78 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Thu, 24 Sep 2020 14:56:52 -0700 Subject: [PATCH 009/187] add lightbox --- .../deployment-phases.md | 10 +++++++++- .../images/deployment-strategy-big.png | Bin 0 -> 235254 bytes 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 windows/security/threat-protection/microsoft-defender-atp/images/deployment-strategy-big.png diff --git a/windows/security/threat-protection/microsoft-defender-atp/deployment-phases.md b/windows/security/threat-protection/microsoft-defender-atp/deployment-phases.md index 000dafbddd..3b194573b9 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/deployment-phases.md +++ b/windows/security/threat-protection/microsoft-defender-atp/deployment-phases.md @@ -37,10 +37,18 @@ There are three phases in deploying Microsoft Defender ATP: - The deployment guide will guide you through the recommended path in deploying Microsoft Defender ATP. +The deployment guide will guide you through the recommended path in deploying Microsoft Defender ATP. There are several methods you can use to onboard to the service. For information on other ways to onboard, see [Onboard devices to Microsoft Defender ATP](onboard-configure.md). +## Deployment strategy +The [Plan deployment](deployment-strategy.md) topic provides high-level information on prerequisites, design, and configuration options. + +Check out the [PDF](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.pdf) or [Visio](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.vsdx) to see the various paths in deploying Microsoft Defender ATP. + +[![Screenshot of the the various deployment paths](images/mdatp-deployment-strategy.png) ](images/deployment-strategy-big.png#lightbox) + + ## In Scope The following is in scope for this deployment guide: diff --git a/windows/security/threat-protection/microsoft-defender-atp/images/deployment-strategy-big.png b/windows/security/threat-protection/microsoft-defender-atp/images/deployment-strategy-big.png new file mode 100644 index 0000000000000000000000000000000000000000..cfee2eaf86e2234af1d820d29f5c55a2b556d833 GIT binary patch literal 235254 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�C07W-DIoQT|VE63<##+d61g@YFrt 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 sU$OsJWYa1@<3CZ^x0e4e Date: Thu, 24 Sep 2020 15:55:09 -0700 Subject: [PATCH 010/187] add phased approach --- windows/security/threat-protection/TOC.md | 6 +++--- .../microsoft-defender-atp/deployment-phases.md | 4 ++-- .../deployment-strategy.md | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 054bf6c970..3cdf54c1ec 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -21,9 +21,9 @@ ### [Phase 2: Set up](microsoft-defender-atp/production-deployment.md) ### [Phase 3: Onboard]() #### [Onboarding overview](microsoft-defender-atp/onboarding.md) -##### [Onboarding using Microsoft Endpoint Configuration Manager](microsoft-defender-atp/onboarding-endpoint-configuration-manager.md) -##### [Onboarding using Microsoft Endpoint Manager](microsoft-defender-atp/onboarding-endpoint-manager.md) - +#### [Onboarding using Microsoft Endpoint Configuration Manager](microsoft-defender-atp/onboarding-endpoint-configuration-manager.md) +#### [Onboarding using Microsoft Endpoint Manager](microsoft-defender-atp/onboarding-endpoint-manager.md) +#### [Onboard supported devices](microsoft-defender-atp/onboard-configure.md) ## [Migration guides](microsoft-defender-atp/migration-guides.md) ### [Switch from McAfee to Microsoft Defender for Endpoint]() diff --git a/windows/security/threat-protection/microsoft-defender-atp/deployment-phases.md b/windows/security/threat-protection/microsoft-defender-atp/deployment-phases.md index 3b194573b9..de3035470d 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/deployment-phases.md +++ b/windows/security/threat-protection/microsoft-defender-atp/deployment-phases.md @@ -29,7 +29,7 @@ ms.topic: article There are three phases in deploying Microsoft Defender ATP: -|Phase | Desription | +|Phase | Description | |:-------|:-----| | ![Phase 1: Prepare](images/prepare.png)
[Phase 1: Prepare](prepare-deployment.md)| Learn about what you need to consider when deploying Microsoft Defender ATP:

- Stakeholders and sign-off
- Environment considerations
- Access
- Adoption order | ![Phase 2: Setup](images/setup.png)
[Phase 2: Setup](production-deployment.md)| Take the initial steps to access Microsoft Defender Security Center. You'll be guided on:

- Validating the licensing
- Completing the setup wizard within the portal
- Network configuration| @@ -46,7 +46,7 @@ The [Plan deployment](deployment-strategy.md) topic provides high-level informat Check out the [PDF](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.pdf) or [Visio](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.vsdx) to see the various paths in deploying Microsoft Defender ATP. -[![Screenshot of the the various deployment paths](images/mdatp-deployment-strategy.png) ](images/deployment-strategy-big.png#lightbox) +[![Image of the PDF showing the various deployment paths](images/mdatp-deployment-strategy.png) ](images/deployment-strategy-big.png#lightbox) ## In Scope diff --git a/windows/security/threat-protection/microsoft-defender-atp/deployment-strategy.md b/windows/security/threat-protection/microsoft-defender-atp/deployment-strategy.md index cd066db719..6ac9d20456 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/deployment-strategy.md +++ b/windows/security/threat-protection/microsoft-defender-atp/deployment-strategy.md @@ -45,6 +45,23 @@ Depending on your environment, some tools are better suited for certain architec |:-----|:-----| |[![Thumb image for Microsoft Defender ATP deployment strategy](images/mdatp-deployment-strategy.png)](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.pdf)
[PDF](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.pdf) \| [Visio](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.vsdx) | The architectural material helps you plan your deployment for the following architectures:

AES Val#4897

-

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Cryptography Next Generation (CNG) Implementations #4898

+

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); Cryptography Next Generation (CNG) Implementations #4898

Version 10.0.16299

@@ -2559,288 +2558,288 @@ The following tables are organized by cryptographic algorithms with their modes,
  • AAD Length: 0-65536
  • AES Val#4897

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); BitLocker(R) Cryptographic Implementations #4894

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); BitLocker(R) Cryptographic Implementations #4894

    Version 10.0.16299

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB128 ( e/d; 128 , 192 , 256 );

    -

    OFB ( e/d; 128 , 192 , 256 );

    -

    CTR ( int only; 128 , 192 , 256 )

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB128 (e/d; 128, 192, 256);

    +

    OFB (e/d; 128, 192, 256);

    +

    CTR (int only; 128, 192, 256)

    Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #4627

    Version 10.0.15063

    -

    KW ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 256 , 192 , 320 , 2048 )

    +

    KW (AE, AD, AES-128, AES-192, AES-256, FWD, 128, 256, 192, 320, 2048)

    AES Val#4624

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile Cryptography Next Generation (CNG) Implementations #4626

    Version 10.0.15063

    -

    CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

    +

    CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 12 (Tag Length(s): 16)

    AES Val#4624

     

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile BitLocker(R) Cryptographic Implementations #4625

    Version 10.0.15063

    -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB8 ( e/d; 128 , 192 , 256 );

    -

    CFB128 ( e/d; 128 , 192 , 256 );

    -

    CTR ( int only; 128 , 192 , 256 )

    -

    CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

    -

    CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 )

    -

    GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )

    -

    (KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )

    -

    IV Generated: ( External ) ; PT Lengths Tested: ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested: ( 0 , 1024 , 8 , 1016 ) ; 96BitIV_Supported

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB8 (e/d; 128, 192, 256);

    +

    CFB128 (e/d; 128, 192, 256);

    +

    CTR (int only; 128, 192, 256)

    +

    CCM (KS: 128, 192, 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16)

    +

    CMAC (Generation/Verification) (KS: 128; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 16 Max: 16) (KS: 192; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 16 Max: 16) (KS: 256; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 16 Max: 16)

    +

    GCM (KS: AES_128(e/d) Tag Length(s): 128 120 112 104 96) (KS: AES_192(e/d) Tag Length(s): 128 120 112 104 96)

    +

    (KS: AES_256(e/d) Tag Length(s): 128 120 112 104 96)

    +

    IV Generated: (External); PT Lengths Tested: (0, 1024, 8, 1016); AAD Lengths tested: (0, 1024, 8, 1016); 96BitIV_Supported

    GMAC_Supported

    -

    XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

    +

    XTS((KS: XTS_128((e/d)(f)) KS: XTS_256((e/d)(f))

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #4624

    Version 10.0.15063

    -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #4434

    Version 7.00.2872

    -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #4433

    Version 8.00.6246

    -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CTR ( int only; 128 , 192 , 256 )

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CTR (int only; 128, 192, 256)

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #4431

    Version 7.00.2872

    -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CTR ( int only; 128 , 192 , 256 )

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CTR (int only; 128, 192, 256)

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #4430

    Version 8.00.6246

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB128 ( e/d; 128 , 192 , 256 );

    -

    OFB ( e/d; 128 , 192 , 256 );

    -

    CTR ( int only; 128 , 192 , 256 )

    -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #4074

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB128 (e/d; 128, 192, 256);

    +

    OFB (e/d; 128, 192, 256);

    +

    CTR (int only; 128, 192, 256)

    +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #4074

    Version 10.0.14393

    -

    ECB ( e/d; 128 , 192 , 256 ); CBC ( e/d; 128 , 192 , 256 ); CFB8 ( e/d; 128 , 192 , 256 ); CFB128 ( e/d; 128 , 192 , 256 ); CTR ( int only; 128 , 192 , 256 )

    -

    CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

    -

    CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

    -

    GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
    -(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
    -IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 0 , 0 ) ; 96BitIV_Supported
    +

    ECB (e/d; 128, 192, 256); CBC (e/d; 128, 192, 256); CFB8 (e/d; 128, 192, 256); CFB128 (e/d; 128, 192, 256); CTR (int only; 128, 192, 256)

    +

    CCM (KS: 128, 192, 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16)

    +

    CMAC (Generation/Verification) (KS: 128; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16) (KS: 192; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16) (KS: 256; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16)

    +

    GCM (KS: AES_128(e/d) Tag Length(s): 128 120 112 104 96) (KS: AES_192(e/d) Tag Length(s): 128 120 112 104 96)
    +(KS: AES_256(e/d) Tag Length(s): 128 120 112 104 96)
    +IV Generated:  (Externally); PT Lengths Tested:  (0, 1024, 8, 1016); AAD Lengths tested:  (0, 1024, 8, 1016); IV Lengths Tested: (0, 0); 96BitIV_Supported
    GMAC_Supported

    -

    XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

    +

    XTS((KS: XTS_128((e/d)(f)) KS: XTS_256((e/d)(f))

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #4064

    Version 10.0.14393

    -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB8 ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB8 (e/d; 128, 192, 256);

     

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA32 Algorithm Implementations #4063
    Version 10.0.14393 -

    KW  ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 192 , 256 , 320 , 2048 )

    +

    KW  (AE, AD, AES-128, AES-192, AES-256, FWD, 128, 192, 256, 320, 2048)

    AES Val#4064

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #4062

    Version 10.0.14393

    -

    CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

    +

    CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 12 (Tag Length(s): 16)

    AES Val#4064

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update BitLocker® Cryptographic Implementations #4061

    Version 10.0.14393

    -

    KW  ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 256 , 192 , 320 , 2048 )

    +

    KW  (AE, AD, AES-128, AES-192, AES-256, FWD, 128, 256, 192, 320, 2048)

    AES Val#3629

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” Cryptography Next Generation (CNG) Implementations #3652

    Version 10.0.10586

    -

    CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

    +

    CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 12 (Tag Length(s): 16)

    AES Val#3629

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” BitLocker® Cryptographic Implementations #3653

    Version 10.0.10586

    -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB8 ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB8 (e/d; 128, 192, 256);

     

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” RSA32 Algorithm Implementations #3630
    Version 10.0.10586 -

    ECB ( e/d; 128 , 192 , 256 ); CBC ( e/d; 128 , 192 , 256 ); CFB8 ( e/d; 128 , 192 , 256 ); CFB128 ( e/d; 128 , 192 , 256 ); CTR ( int only; 128 , 192 , 256 )

    -

    CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

    -

    CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

    -

    GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
    -(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
    -IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 0 , 0 ) ; 96BitIV_Supported
    +

    ECB (e/d; 128, 192, 256); CBC (e/d; 128, 192, 256); CFB8 (e/d; 128, 192, 256); CFB128 (e/d; 128, 192, 256); CTR (int only; 128, 192, 256)

    +

    CCM (KS: 128, 192, 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16)

    +

    CMAC (Generation/Verification) (KS: 128; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16) (KS: 192; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16) (KS: 256; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16)

    +

    GCM (KS: AES_128(e/d) Tag Length(s): 128 120 112 104 96) (KS: AES_192(e/d) Tag Length(s): 128 120 112 104 96)
    +(KS: AES_256(e/d) Tag Length(s): 128 120 112 104 96)
    +IV Generated:  (Externally); PT Lengths Tested:  (0, 1024, 8, 1016); AAD Lengths tested:  (0, 1024, 8, 1016); IV Lengths Tested: (0, 0); 96BitIV_Supported
    GMAC_Supported

    -

    XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

    +

    XTS((KS: XTS_128((e/d) (f)) KS: XTS_256((e/d) (f))

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” SymCrypt Cryptographic Implementations #3629

    Version 10.0.10586

    -

    KW  ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 256 , 192 , 320 , 2048 )

    +

    KW  (AE, AD, AES-128, AES-192, AES-256, FWD, 128, 256, 192, 320, 2048)

    AES Val#3497

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #3507

    Version 10.0.10240

    -

    CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

    +

    CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 12 (Tag Length(s): 16)

    AES Val#3497

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 BitLocker® Cryptographic Implementations #3498

    Version 10.0.10240

    -

    ECB ( e/d; 128 , 192 , 256 ); CBC ( e/d; 128 , 192 , 256 ); CFB8 ( e/d; 128 , 192 , 256 ); CFB128 ( e/d; 128 , 192 , 256 ); CTR ( int only; 128 , 192 , 256 )

    -

    CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

    -

    CMAC(Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

    -

    GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
    -(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
    -IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 0 , 0 ) ; 96BitIV_Supported
    +

    ECB (e/d; 128, 192, 256); CBC (e/d; 128, 192, 256); CFB8 (e/d; 128, 192, 256); CFB128 (e/d; 128, 192, 256); CTR (int only; 128, 192, 256)

    +

    CCM (KS: 128, 192, 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16)

    +

    CMAC(Generation/Verification) (KS: 128; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16) (KS: 192; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16) (KS: 256; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16)

    +

    GCM (KS: AES_128(e/d) Tag Length(s): 128 120 112 104 96) (KS: AES_192(e/d) Tag Length(s): 128 120 112 104 96)
    +(KS: AES_256(e/d) Tag Length(s): 128 120 112 104 96)
    +IV Generated:  (Externally); PT Lengths Tested:  (0, 1024, 8, 1016); AAD Lengths tested:  (0, 1024, 8, 1016); IV Lengths Tested:  (0, 0); 96BitIV_Supported
    GMAC_Supported

    -

    XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

    +

    XTS((KS: XTS_128((e/d)(f)) KS: XTS_256((e/d)(f))

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #3497
    Version 10.0.10240 -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB8 ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB8 (e/d; 128, 192, 256);

     

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA32 Algorithm Implementations #3476
    Version 10.0.10240 -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB8 ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB8 (e/d; 128, 192, 256);

     

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry RSA32 Algorithm Implementations #2853

    Version 6.3.9600

    -

    CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

    +

    CCM (KS: 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 12 (Tag Length(s): 16)

    AES Val#2832

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 BitLocker� Cryptographic Implementations #2848

    Version 6.3.9600

    -

    CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 0 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

    -

    CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

    -

    GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )

    -

    (KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )

    -

    IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 128 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 128 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 8 , 1024 ) ; 96BitIV_Supported ;
    +

    CCM (KS: 128, 192, 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 0 (Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16)

    +

    CMAC (Generation/Verification) (KS: 128; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16) (KS: 192; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16) (KS: 256; Block Size(s): Full/Partial; Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 0 Max: 16)

    +

    GCM (KS: AES_128(e/d) Tag Length(s): 128 120 112 104 96) (KS: AES_192(e/d) Tag Length(s): 128 120 112 104 96)

    +

    (KS: AES_256(e/d) Tag Length(s): 128 120 112 104 96)

    +

    IV Generated:  (Externally); PT Lengths Tested:  (0, 128, 1024, 8, 1016); AAD Lengths tested:  (0, 128, 1024, 8, 1016); IV Lengths Tested:  (8, 1024); 96BitIV_Supported;
    OtherIVLen_Supported
    GMAC_Supported

    Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #2832

    Version 6.3.9600

    -

    CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )
    +

    CCM (KS: 128, 192, 256) (Assoc. Data Len Range: 0-0, 2^16) (Payload Length Range: 0 - 32 (Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16)
    AES Val#2197

    -

    CMAC (Generation/Verification ) (KS: 128; Block Size(s): ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 192; Block Size(s): ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 256; Block Size(s): ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 )
    +

    CMAC (Generation/Verification) (KS: 128; Block Size(s); Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 16 Max: 16) (KS: 192; Block Size(s); Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 16 Max: 16) (KS: 256; Block Size(s); Msg Len(s) Min: 0 Max: 2^16; Tag Len(s) Min: 16 Max: 16)
    AES Val#2197

    -

    GCM(KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
    -(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
    -IV Generated: ( Externally ) ; PT Lengths Tested: ( 0 , 128 , 1024 , 8 , 1016 ) ; AAD Lengths tested: ( 0 , 128 , 1024 , 8 , 1016 ) ; IV Lengths Tested: ( 8 , 1024 ) ; 96BitIV_Supported
    +

    GCM(KS: AES_128(e/d) Tag Length(s): 128 120 112 104 96) (KS: AES_192(e/d) Tag Length(s): 128 120 112 104 96)
    +(KS: AES_256(e/d) Tag Length(s): 128 120 112 104 96)
    +IV Generated: (Externally); PT Lengths Tested: (0, 128, 1024, 8, 1016); AAD Lengths tested: (0, 128, 1024, 8, 1016); IV Lengths Tested: (8, 1024); 96BitIV_Supported
    GMAC_Supported

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #2216 -

    CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

    +

    CCM (KS: 256) (Assoc. Data Len Range: 0 - 0, 2^16 ) (Payload Length Range: 0 - 32 (Nonce Length(s): 12 (Tag Length(s): 16)

    AES Val#2196

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 BitLocker® Cryptographic Implementations #2198 -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB8 ( e/d; 128 , 192 , 256 );

    -

    CFB128 ( e/d; 128 , 192 , 256 );

    -

    CTR ( int only; 128 , 192 , 256 )

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB8 (e/d; 128, 192, 256);

    +

    CFB128 (e/d; 128, 192, 256);

    +

    CTR (int only; 128, 192, 256)

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #2197 -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB8 ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB8 (e/d; 128, 192, 256);

     

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm Implementations (RSA32) #2196 -CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 – 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )
    +CCM (KS: 128, 192, 256) (Assoc. Data Len Range: 0 – 0, 2^16 ) (Payload Length Range: 0 - 32 (Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )
    AES Val#1168

    Windows Server 2008 R2 and SP1 CNG algorithms #1187

    Windows 7 Ultimate and SP1 CNG algorithms #1178

    -CCM (KS: 128 , 256 ) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 ( Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 )
    +CCM (KS: 128, 256) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 (Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 )
    AES Val#1168 Windows 7 Ultimate and SP1 and Windows Server 2008 R2 and SP1 BitLocker Algorithm Implementations #1177 -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB8 ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB8 (e/d; 128, 192, 256);

     

    Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #1168

    GCM

    GMAC

    -Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #1168 , vendor-affirmed +Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #1168, vendor-affirmed -CCM (KS: 128 , 256 ) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 ( Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 ) +CCM (KS: 128, 256) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 (Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 ) Windows Vista Ultimate SP1 and Windows Server 2008 BitLocker Algorithm Implementations #760 -CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 1 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 ) +CCM (KS: 128, 192, 256) (Assoc. Data Len Range: 0 - 0, 2^16 ) (Payload Length Range: 1 - 32 (Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

    Windows Server 2008 CNG algorithms #757

    Windows Vista Ultimate SP1 CNG algorithms #756

    -

    CBC ( e/d; 128 , 256 );

    -

    CCM (KS: 128 , 256 ) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 ( Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 )

    +

    CBC (e/d; 128, 256);

    +

    CCM (KS: 128, 256) (Assoc. Data Len Range: 0 - 8) (Payload Length Range: 4 - 32 (Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16)

    Windows Vista Ultimate BitLocker Drive Encryption #715

    Windows Vista Ultimate BitLocker Drive Encryption #424

    -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CFB8 ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CFB8 (e/d; 128, 192, 256);

    Windows Vista Ultimate SP1 and Windows Server 2008 Symmetric Algorithm Implementation #739

    Windows Vista Symmetric Algorithm Implementation #553

    -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    -

    CTR ( int only; 128 , 192 , 256 )

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    +

    CTR (int only; 128, 192, 256)

    Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #2023 -

    ECB ( e/d; 128 , 192 , 256 );

    -

    CBC ( e/d; 128 , 192 , 256 );

    +

    ECB (e/d; 128, 192, 256);

    +

    CBC (e/d; 128, 192, 256);

    Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #2024

    Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #818

    Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #781

    @@ -2891,7 +2890,7 @@ Deterministic Random Bit Generator (DRBG)

    Prerequisite: AES #4903

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1733

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1733

    Version 10.0.16299

    @@ -2930,74 +2929,74 @@ Deterministic Random Bit Generator (DRBG)

    Prerequisite: AES #4897

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1730

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1730

    Version 10.0.16299

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4627 ) ] +CTR_DRBG: [Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: (AES-256) (AES Val#4627)]

    Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #1556

    Version 10.0.15063

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#4624 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: (AES-256) (AES Val#4624)]

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1555

    Version 10.0.15063

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4434 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: (AES-256) (AES Val#4434)]

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #1433

    Version 7.00.2872

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4433 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: (AES-256) (AES Val#4433)]

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #1432

    Version 8.00.6246

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4431 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: (AES-256) (AES Val#4431)]

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1430

    Version 7.00.2872

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4430 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: (AES-256) (AES Val#4430)]

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1429

    Version 8.00.6246

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4074 ) ] -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #1222

    +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: (AES-256) (AES Val#4074)] +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #1222

    Version 10.0.14393

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#4064 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: (AES-256) (AES Val#4064)]

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #1217

    Version 10.0.14393

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#3629 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: (AES-256) (AES Val#3629)]

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub SymCrypt Cryptographic Implementations #955

    Version 10.0.10586

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#3497 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: (AES-256) (AES Val#3497)]

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #868

    Version 10.0.10240

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#2832 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: (AES-256) (AES Val#2832)]

    Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #489

    Version 6.3.9600

    -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#2197 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: (AES-256) (AES Val#2197)] Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #258 -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#2023 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: (AES-256) (AES Val#2023)] Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #193 -CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#1168 ) ] +CTR_DRBG:[Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: (AES-256) (AES Val#1168)] Windows 7 Ultimate and SP1 and Windows Server 2008 R2 and SP1 RNG Library #23 @@ -3133,16 +3132,16 @@ Deterministic Random Bit Generator (DRBG)

    Prerequisite: SHS #4009, DRBG #1730

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1301

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1301

    Version 10.0.16299

    FIPS186-4:

    -

    PQG(gen)PARMS TESTED:   [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]

    -

    PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

    -

    KeyPairGen:   [ (2048,256) ; (3072,256) ]

    -

    SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]

    -

    SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

    +

    PQG(gen)PARMS TESTED:   [(2048,256)SHA(256); (3072,256) SHA(256)]

    +

    PQG(ver)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256)]

    +

    KeyPairGen:   [(2048,256); (3072,256)]

    +

    SIG(gen)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256); ]

    +

    SIG(ver)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256)]

    SHS: Val#3790

    DRBG: Val# 1555

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1223

    @@ -3150,16 +3149,16 @@ Deterministic Random Bit Generator (DRBG) FIPS186-4:
    -PQG(ver)PARMS TESTED:
      [ (1024,160) SHA( 1 ); ]
    -SIG(ver)PARMS TESTED:   [ (1024,160) SHA( 1 ); ]
    +PQG(ver)PARMS TESTED:
      [(1024,160) SHA(1); ]
    +SIG(ver)PARMS TESTED:   [(1024,160) SHA(1); ]
    SHS: Val# 3649

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1188

    Version 7.00.2872

    FIPS186-4:
    -PQG(ver)PARMS TESTED:
      [ (1024,160) SHA( 1 ); ]
    -SIG(ver)PARMS TESTED:   [ (1024,160) SHA( 1 ); ]
    +PQG(ver)PARMS TESTED:
      [(1024,160) SHA(1); ]
    +SIG(ver)PARMS TESTED:   [(1024,160) SHA(1); ]
    SHS: Val#3648

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1187

    Version 8.00.6246

    @@ -3167,12 +3166,12 @@ SHS:

    FIPS186-4:
    PQG(gen)
    PARMS TESTED: [
    -(2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
    -PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
    -KeyPairGen:    [ (2048,256) ; (3072,256) ]
    -SIG(gen)PARMS TESTED:   [ (2048,256)
    -SHA( 256 ); (3072,256) SHA( 256 ); ]
    -SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

    +(2048,256)SHA(256); (3072,256) SHA(256)]
    +PQG(ver)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256)]
    +KeyPairGen:    [(2048,256); (3072,256)]
    +SIG(gen)PARMS TESTED:   [(2048,256)
    +SHA(256); (3072,256) SHA(256); ]
    +SIG(ver)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256)]

    SHS: Val# 3347
    DRBG: Val# 1217

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #1098

    @@ -3180,9 +3179,9 @@ DRBG:

    FIPS186-4:
    -PQG(gen)
    PARMS TESTED:   [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ] PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 )]
    -KeyPairGen:    [ (2048,256) ; (3072,256) ] SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]
    -SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

    +PQG(gen)
    PARMS TESTED:   [(2048,256)SHA(256); (3072,256) SHA(256)] PQG(ver)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256)]
    +KeyPairGen:    [(2048,256); (3072,256)] SIG(gen)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256); ]
    +SIG(ver)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256)]

    SHS: Val# 3047
    DRBG: Val# 955

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #1024

    @@ -3190,10 +3189,10 @@ DRBG:

    FIPS186-4:
    -PQG(gen)
    PARMS TESTED:   [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
    -PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
    -KeyPairGen:    [ (2048,256) ; (3072,256) ]
    -SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ] SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

    +PQG(gen)
    PARMS TESTED:   [(2048,256)SHA(256); (3072,256) SHA(256)]
    +PQG(ver)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256)]
    +KeyPairGen:    [(2048,256); (3072,256)]
    +SIG(gen)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256); ] SIG(ver)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256)]

    SHS: Val# 2886
    DRBG: Val# 868

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #983

    @@ -3202,12 +3201,12 @@ DRBG:

    FIPS186-4:
    PQG(gen)
    PARMS TESTED:   [
    -(2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
    -PQG(ver)PARMS TESTED:   [ (2048,256)
    -SHA( 256 ); (3072,256) SHA( 256 ) ]
    -KeyPairGen:    [ (2048,256) ; (3072,256) ]
    -SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]
    -SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

    +(2048,256)SHA(256); (3072,256) SHA(256)]
    +PQG(ver)PARMS TESTED:   [(2048,256)
    +SHA(256); (3072,256) SHA(256)]
    +KeyPairGen:    [(2048,256); (3072,256)]
    +SIG(gen)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256); ]
    +SIG(ver)PARMS TESTED:   [(2048,256) SHA(256); (3072,256) SHA(256)]

    SHS: Val# 2373
    DRBG: Val# 489

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #855

    @@ -3220,10 +3219,10 @@ DRBG: #1903
    DRBG: #258

    FIPS186-4:
    -PQG(gen)PARMS TESTED
    : [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
    -PQG(ver)PARMS TESTED: [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
    -SIG(gen)PARMS TESTED: [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]
    -SIG(ver)PARMS TESTED: [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
    +PQG(gen)PARMS TESTED
    : [(2048,256)SHA(256); (3072,256) SHA(256)]
    +PQG(ver)PARMS TESTED: [(2048,256) SHA(256); (3072,256) SHA(256)]
    +SIG(gen)PARMS TESTED: [(2048,256) SHA(256); (3072,256) SHA(256); ]
    +SIG(ver)PARMS TESTED: [(2048,256) SHA(256); (3072,256) SHA(256)]
    SHS: #1903
    DRBG: #258
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#687.

    @@ -3445,7 +3444,7 @@ SHS: SHA-1 (BYTE)

    Prerequisite: SHS #4009, DRBG #1733

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1252

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1252

    Version 10.0.16299

    @@ -3615,7 +3614,7 @@ SHS: SHA-1 (BYTE)

    Prerequisite: SHS #4009, DRBG #1730

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1247

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1247

    Version 10.0.16299

    @@ -3649,12 +3648,12 @@ SHS: SHA-1 (BYTE)

    Prerequisite: SHS #4009, DRBG #1730

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1246

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1246

    Version 10.0.16299

    FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 TestingCandidates )
    +PKG: CURVES
    (P-256 P-384 TestingCandidates)
    SHS: Val#3790
    DRBG: Val# 1555

    Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #1136

    @@ -3662,10 +3661,10 @@ DRBG: FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -PKV: CURVES( P-256 P-384 P-521 )
    -SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    -SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +PKV: CURVES(P-256 P-384 P-521)
    +SigGen: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    +SigVer: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512))
    SHS:
    Val#3790
    DRBG: Val# 1555

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1135

    @@ -3673,10 +3672,10 @@ DRBG: FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -PKV: CURVES( P-256 P-384 P-521 )
    -SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    -SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +PKV: CURVES(P-256 P-384 P-521)
    +SigGen: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    +SigVer: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512))
    SHS:
    Val#3790
    DRBG: Val# 1555

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1133

    @@ -3684,10 +3683,10 @@ DRBG: FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -PKV: CURVES( P-256 P-384 P-521 )
    -SigGen: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -SigVer: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) )
    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +PKV: CURVES(P-256 P-384 P-521)
    +SigGen: CURVES(P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +SigVer: CURVES(P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512))
    SHS:
    Val# 3649
    DRBG:Val# 1430

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1073

    @@ -3695,10 +3694,10 @@ PKG: CURVES( P-256 P-384 P-521 ExtraRandomBits )
    FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -PKV: CURVES( P-256 P-384 P-521 )
    -SigGen: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -SigVer: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) )
    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +PKV: CURVES(P-256 P-384 P-521)
    +SigGen: CURVES(P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +SigVer: CURVES(P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512))
    SHS:Val#3648
    DRBG:Val# 1429

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1072

    @@ -3706,21 +3705,21 @@ PKG: CURVES( P-256 P-384 P-521 ExtraRandomBits )

    FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 TestingCandidates )
    -PKV: CURVES( P-256 P-384 )
    -SigGen: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 256, 384) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -SigVer: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 256, 384) )

    +PKG: CURVES(P-256 P-384 TestingCandidates)
    +PKV: CURVES(P-256 P-384)
    +SigGen: CURVES(P-256: (SHA-1, 256) P-384: (SHA-1, 256, 384) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +SigVer: CURVES(P-256: (SHA-1, 256) P-384: (SHA-1, 256, 384))

    SHS: Val# 3347
    DRBG: Val# 1222

    -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #920

    +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #920

    Version 10.0.14393

    FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -PKV: CURVES( P-256 P-384 P-521 )
    -SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    -SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +PKV: CURVES(P-256 P-384 P-521)
    +SigGen: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    +SigVer: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512))

    SHS: Val# 3347
    DRBG: Val# 1217

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #911

    @@ -3728,9 +3727,9 @@ DRBG:

    FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    -SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +SigGen: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    +SigVer: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512))

    SHS: Val# 3047
    DRBG: Val# 955

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #760

    @@ -3738,9 +3737,9 @@ DRBG:

    FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    -SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +SigGen: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    +SigVer: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512))

    SHS: Val# 2886
    DRBG: Val# 868

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #706

    @@ -3748,9 +3747,9 @@ DRBG:

    FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    -SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +SigGen: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    +SigVer: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512))

    SHS: Val#2373
    DRBG: Val# 489

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #505

    @@ -3758,16 +3757,16 @@ DRBG:

    FIPS186-2:
    -PKG: CURVES
    ( P-256 P-384 P-521 )
    +PKG: CURVES(P-256 P-384 P-521)
    SHS:
    #1903
    DRBG: #258
    -SIG(ver):CURVES( P-256 P-384 P-521 )
    +SIG(ver):CURVES(P-256 P-384 P-521)
    SHS: #1903
    DRBG: #258

    FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    -SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +SigGen: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    +SigVer: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512))
    SHS: #1903
    DRBG: #258
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#341.

    @@ -3775,16 +3774,16 @@ Some of the previously validated components for this validation have been remove

    FIPS186-2:
    -PKG: CURVES
    ( P-256 P-384 P-521 )
    +PKG: CURVES(P-256 P-384 P-521)
    SHS: Val#1773
    DRBG: Val# 193
    -SIG(ver): CURVES( P-256 P-384 P-521 )
    +SIG(ver): CURVES(P-256 P-384 P-521)
    SHS: Val#1773
    DRBG: Val# 193

    FIPS186-4:
    -PKG: CURVES
    ( P-256 P-384 P-521 ExtraRandomBits )
    -SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    -SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
    +PKG: CURVES(P-256 P-384 P-521 ExtraRandomBits)
    +SigGen: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
    +SigVer: CURVES(P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512))
    SHS: Val#1773
    DRBG: Val# 193
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#295.

    @@ -3792,10 +3791,10 @@ Some of the previously validated components for this validation have been remove FIPS186-2:
    -PKG: CURVES
    ( P-256 P-384 P-521 )
    +PKG: CURVES(P-256 P-384 P-521)
    SHS: Val#1081
    DRBG: Val# 23
    -SIG(ver): CURVES( P-256 P-384 P-521 )
    +SIG(ver): CURVES(P-256 P-384 P-521)
    SHS: Val#1081
    DRBG: Val# 23
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#142. See Historical ECDSA List Val#141. @@ -3804,9 +3803,9 @@ Some of the previously validated components for this validation have been remove FIPS186-2:
    -PKG: CURVES
    ( P-256 P-384 P-521 )
    +PKG: CURVES(P-256 P-384 P-521)
    SHS: Val#753
    -SIG(ver): CURVES( P-256 P-384 P-521 )
    +SIG(ver): CURVES(P-256 P-384 P-521)
    SHS: Val#753
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#83. See Historical ECDSA List Val#82.

    Windows Server 2008 CNG algorithms #83

    @@ -3814,10 +3813,10 @@ Some of the previously validated components for this validation have been remove FIPS186-2:
    -PKG: CURVES
    ( P-256 P-384 P-521 )
    +PKG: CURVES(P-256 P-384 P-521)
    SHS: Val#618
    RNG: Val# 321
    -SIG(ver): CURVES( P-256 P-384 P-521 )
    +SIG(ver): CURVES(P-256 P-384 P-521)
    SHS: Val#618
    RNG: Val# 321
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#60. @@ -3886,7 +3885,7 @@ Some of the previously validated components for this validation have been remove

    Prerequisite: SHS #4009

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #3270

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #3270

    Version 10.0.16299

    @@ -3979,160 +3978,160 @@ Some of the previously validated components for this validation have been remove

    Prerequisite: SHS #4009

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #3267

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #3267

    Version 10.0.16299

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3790

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHS Val#3790

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHS Val#3790

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHS Val#3790

    Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #3062

    Version 10.0.15063

    -

    HMAC-SHA1(Key Sizes Ranges Tested: KSBS ) SHS Val#3790

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

    +

    HMAC-SHA1(Key Sizes Ranges Tested: KSBS) SHS Val#3790

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHS Val#3790

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHS Val#3790

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHS Val#3790

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #3061

    Version 10.0.15063

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3652

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3652

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3652

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#3652

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHS Val#3652

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHS Val#3652

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHS Val#3652

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#3652

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2946

    Version 7.00.2872

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3651

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3651

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3651

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#3651

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHS Val#3651

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHS Val#3651

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHS Val#3651

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#3651

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2945

    Version 8.00.6246

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val# 3649

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val# 3649

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val# 3649

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal# 3649

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHS Val# 3649

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHS Val# 3649

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHS Val# 3649

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal# 3649

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2943

    Version 7.00.2872

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3648

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3648

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3648

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#3648

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHS Val#3648

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHS Val#3648

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHS Val#3648

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#3648

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2942

    Version 8.00.6246

    -

    HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
    +

    HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS)
    SHS Val# 3347

    -

    HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA256 (Key Size Ranges Tested:  KSBS)
    SHS Val# 3347

    -

    HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA384 (Key Size Ranges Tested:  KSBS)
    SHS Val# 3347

    -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #2661

    +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #2661

    Version 10.0.14393

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val# 3347

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val# 3347

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val# 3347

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS Val# 3347

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHS Val# 3347

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHS Val# 3347

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHS Val# 3347

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHS Val# 3347

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #2651

    Version 10.0.14393

    -

    HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
    +

    HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS)
    SHS Val# 3047

    -

    HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA256 (Key Size Ranges Tested:  KSBS)
    SHS Val# 3047

    -

    HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA384 (Key Size Ranges Tested:  KSBS)
    SHS Val# 3047

    -

    HMAC-SHA512 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA512 (Key Size Ranges Tested:  KSBS)
    SHS Val# 3047

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” SymCrypt Cryptographic Implementations #2381

    Version 10.0.10586

    -

    HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
    +

    HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS)
    SHSVal# 2886

    -

    HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA256 (Key Size Ranges Tested:  KSBS)
    SHSVal# 2886

    -

    HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA384 (Key Size Ranges Tested:  KSBS)
     SHSVal# 2886

    -

    HMAC-SHA512 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA512 (Key Size Ranges Tested:  KSBS)
    SHSVal# 2886

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #2233

    Version 10.0.10240

    -

    HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
    +

    HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS)
    SHS Val#2373

    -

    HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA256 (Key Size Ranges Tested:  KSBS)
    SHS Val#2373

    -

    HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA384 (Key Size Ranges Tested:  KSBS)
    SHS Val#2373

    -

    HMAC-SHA512 ( Key Size Ranges Tested:  KSBS )
    +

    HMAC-SHA512 (Key Size Ranges Tested:  KSBS)
    SHS Val#2373

    Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #1773

    Version 6.3.9600

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#2764

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#2764

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#2764

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS Val#2764

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHS Val#2764

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHS Val#2764

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHS Val#2764

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHS Val#2764

    Windows CE and Windows Mobile, and Windows Embedded Handheld Enhanced Cryptographic Provider (RSAENH) #2122

    Version 5.2.29344

    HMAC-SHA1 (Key Sizes Ranges Tested: KS#1902

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KS#1902

    +

    HMAC-SHA256 (Key Size Ranges Tested: KS#1902

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 BitLocker® Cryptographic Implementations #1347 -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS#1902

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS#1902

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS#1902

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS#1902

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHS#1902

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHS#1902

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHS#1902

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHS#1902

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Enhanced Cryptographic Provider (RSAENH) #1346 -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS )

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS)

    SHS#1903

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS )

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS)

    SHS#1903

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS )

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS)

    SHS#1903

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS )

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS)

    SHS#1903

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #1345 -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#1773

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#1773

    -

    Tinker HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#1773

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#1773

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#1773

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#1773

    +

    Tinker HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#1773

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#1773

    Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #1364 -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#1774

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#1774

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#1774

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#1774

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#1774

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#1774

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#1774

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#1774

    Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1227 -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#1081

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#1081

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#1081

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#1081

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#1081

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#1081

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#1081

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#1081

    Windows Server 2008 R2 and SP1 CNG algorithms #686

    Windows 7 and SP1 CNG algorithms #677

    Windows Server 2008 R2 Enhanced Cryptographic Provider (RSAENH) #687

    @@ -4140,108 +4139,108 @@ SHS

    HMAC-SHA1(Key Sizes Ranges Tested: KSVal#1081

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSVal#1081

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSVal#1081

    Windows 7 and SP1 and Windows Server 2008 R2 and SP1 BitLocker Algorithm Implementations #675 -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#816

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#816

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#816

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#816

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#816

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#816

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#816

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#816

    Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #452

    HMAC-SHA1 (Key Sizes Ranges Tested: KSVal#753

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSVal#753

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSVal#753

    Windows Vista Ultimate SP1 and Windows Server 2008 BitLocker Algorithm Implementations #415 -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#753

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#753

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#753

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS )SHS Val#753

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#753

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#753

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#753

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS)SHS Val#753

    Windows Server 2008 Enhanced Cryptographic Provider (RSAENH) #408

    Windows Vista Enhanced Cryptographic Provider (RSAENH) #407

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS )SHSVal#618

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#618

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#618

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#618

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS)SHSVal#618

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#618

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#618

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#618

    Windows Vista Enhanced Cryptographic Provider (RSAENH) #297 -HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#785 +HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#785

    Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #429

    Windows XP, vendor-affirmed

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#783

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#783

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#783

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#783

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#783

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#783

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#783

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#783

    Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #428 -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#613

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#613

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#613

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#613

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#613

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#613

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#613

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#613

    Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #289 -HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#610 +HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#610 Windows Server 2003 SP2 Kernel Mode Cryptographic Module (fips.sys) #287 -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#753

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#753

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#753

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#753

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#753

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#753

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#753

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#753

    Windows Server 2008 CNG algorithms #413

    Windows Vista Ultimate SP1 CNG algorithms #412

    HMAC-SHA1 (Key Sizes Ranges Tested: KSVal#737

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSVal#737

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSVal#737

    Windows Vista Ultimate BitLocker Drive Encryption #386 -

    HMAC-SHA1 ( Key Sizes Ranges Tested: KSBS ) SHSVal#618

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#618

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#618

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#618

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#618

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#618

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#618

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#618

    Windows Vista CNG algorithms #298 -

    HMAC-SHA1 ( Key Sizes Ranges Tested: KSBS ) SHSVal#589

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS )SHSVal#589

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#589

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#589

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#589

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS)SHSVal#589

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#589

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#589

    Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #267 -

    HMAC-SHA1 ( Key Sizes Ranges Tested: KSBS ) SHSVal#578

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#578

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#578

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#578

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#578

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#578

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#578

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#578

    Windows CE and Windows Mobile 6.0 and Windows Mobil 6.5 Enhanced Cryptographic Provider (RSAENH) #260

    HMAC-SHA1 (Key Sizes Ranges Tested: KSVal#495

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSVal#495

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSVal#495

    Windows Vista BitLocker Drive Encryption #199 -HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#364 +HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#364

    Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #99

    Windows XP, vendor-affirmed

    -

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#305

    -

    HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#305

    -

    HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#305

    -

    HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#305

    +

    HMAC-SHA1 (Key Sizes Ranges Tested: KSBS) SHSVal#305

    +

    HMAC-SHA256 (Key Size Ranges Tested: KSBS) SHSVal#305

    +

    HMAC-SHA384 (Key Size Ranges Tested: KSBS) SHSVal#305

    +

    HMAC-SHA512 (Key Size Ranges Tested: KSBS) SHSVal#305

    Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #31 @@ -4325,7 +4324,7 @@ SHS #4009, ECDSA #1252, DRBG #1733

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #149

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #149

    Version 10.0.16299

    @@ -4778,11 +4777,11 @@ SHS #4009, DSA #1301, DRBG #1730

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #146

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #146

    Version 10.0.16299

    -

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Full Validation   Key Regeneration ) SCHEMES [ FullUnified ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ]

    +

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Full Validation   Key Regeneration) SCHEMES [FullUnified (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC)]

    SHS Val#3790
    DSA Val#1135
    DRBG Val#1556

    @@ -4790,15 +4789,15 @@ DRBG -

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
    -( FB: SHA256 ) ( FC: SHA256 ) ]
    -[ dhOneFlow ( FB: SHA256 ) ( FC: SHA256 ) ] [ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB: SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
    +

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation) SCHEMES [dhEphem (KARole(s): Initiator / Responder)
    +(FB: SHA256) (FC: SHA256)]
    +[dhOneFlow (FB: SHA256) (FC: SHA256)] [dhStatic (No_KC &lt; KARole(s): Initiator / Responder&gt;) (FB: SHA256 HMAC) (FC: SHA256   HMAC)]
    SHS
    Val#3790
    DSA Val#1223
    DRBG Val#1555

    -

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ EphemeralUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
    -[ OnePassDH ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
    -[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
    +

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation) SCHEMES [EphemeralUnified (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC) (EE: P-521 HMAC (SHA512, HMAC_SHA512)))]
    +[OnePassDH (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC) (EE: P-521   HMAC (SHA512, HMAC_SHA512))]
    +[StaticUnified (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC) (EE: P-521   HMAC (SHA512, HMAC_SHA512))]

    SHS Val#3790
    ECDSA Val#1133
    @@ -4807,29 +4806,29 @@ DRBG -

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
    -( FB: SHA256 ) ( FC: SHA256 ) ]
    -[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB: SHA256 ) ( FC: SHA256 ) ] [ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB: SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
    +

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation) SCHEMES [dhEphem (KARole(s): Initiator / Responder)
    +(FB: SHA256) (FC: SHA256)]
    +[dhOneFlow (KARole(s): Initiator / Responder) (FB: SHA256) (FC: SHA256)] [dhStatic (No_KC &lt; KARole(s): Initiator / Responder&gt;) (FB: SHA256 HMAC) (FC: SHA256   HMAC)]
    SHS
    Val# 3649
    DSA Val#1188
    DRBG Val#1430

    -

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES [ EphemeralUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
    -[ OnePassDH ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
    -[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]

    +

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration) SCHEMES [EphemeralUnified (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC) (EE: P-521 HMAC (SHA512, HMAC_SHA512)))]
    +[OnePassDH (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC) (EE: P-521   HMAC (SHA512, HMAC_SHA512))]
    +[StaticUnified (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC) (EE: P-521   HMAC (SHA512, HMAC_SHA512))]

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #115

    Version 7.00.2872

    -

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
    -( FB: SHA256 ) ( FC: SHA256 ) ]
    -[ dhHybridOneFlow ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB:SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
    -[ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB:SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
    +

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation) SCHEMES [dhEphem (KARole(s): Initiator / Responder)
    +(FB: SHA256) (FC: SHA256)]
    +[dhHybridOneFlow (No_KC &lt; KARole(s): Initiator / Responder&gt;) (FB:SHA256 HMAC) (FC: SHA256   HMAC)]
    +[dhStatic (No_KC &lt; KARole(s): Initiator / Responder&gt;) (FB:SHA256 HMAC) (FC: SHA256   HMAC)]
    SHS Val#3648
    DSA Val#1187
    DRBG Val#1429

    -

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES [ EphemeralUnified ( No_KC ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
    -[ OnePassDH ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
    -[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
    +

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration) SCHEMES [EphemeralUnified (No_KC) (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC) (EE: P-521 HMAC (SHA512, HMAC_SHA512)))]
    +[OnePassDH (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC) (EE: P-521   HMAC (SHA512, HMAC_SHA512))]
    +[StaticUnified (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256   SHA256   HMAC) (ED: P-384   SHA384   HMAC) (EE: P-521   HMAC (SHA512, HMAC_SHA512))]

    SHS Val#3648
    ECDSA Val#1072
    @@ -4838,70 +4837,70 @@ DRBG -

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Full Validation   Key Regeneration )
    -SCHEMES  [ FullUnified  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; &lt; KDF: CONCAT &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ]

    +

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Full Validation   Key Regeneration)
    +SCHEMES  [FullUnified  (No_KC  &lt; KARole(s): Initiator / Responder &gt; &lt; KDF: CONCAT &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC)]

    SHS Val# 3347 ECDSA Val#920 DRBG Val#1222

    -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #93

    +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #93

    Version 10.0.14393

    -

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation )
    -SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
    -( FB: SHA256 ) ( FC: SHA256 ) ]
    -[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic (No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

    +

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation)
    +SCHEMES  [dhEphem  (KARole(s): Initiator / Responder)
    +(FB: SHA256) (FC: SHA256)]
    +[dhOneFlow (KARole(s): Initiator / Responder) (FB:  SHA256) (FC:  SHA256)] [dhStatic (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (FB:  SHA256 HMAC) (FC:  SHA256   HMAC)]

    SHS Val# 3347 DSA Val#1098 DRBG Val#1217

    -

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
    -[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
    -[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

    +

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration) SCHEMES  [EphemeralUnified (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521 HMAC (SHA512, HMAC_SHA512)))]
    +[OnePassDH  (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521   HMAC (SHA512, HMAC_SHA512))]
    +[StaticUnified (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521   HMAC (SHA512, HMAC_SHA512))]

    SHS Val# 3347 DSA Val#1098 ECDSA Val#911 DRBG Val#1217 HMAC Val#2651

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #92

    Version 10.0.14393

    -

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
    -( FB: SHA256 ) ( FC: SHA256 ) ]
    -[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

    +

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation) SCHEMES  [dhEphem  (KARole(s): Initiator / Responder)
    +(FB: SHA256) (FC: SHA256)]
    +[dhOneFlow (KARole(s): Initiator / Responder) (FB:  SHA256) (FC:  SHA256)] [dhStatic (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (FB:  SHA256 HMAC) (FC:  SHA256   HMAC)]

    SHS Val# 3047 DSA Val#1024 DRBG Val#955

    -

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
    -[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
    -[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

    +

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration) SCHEMES  [EphemeralUnified (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521 HMAC (SHA512, HMAC_SHA512)))]
    +[OnePassDH  (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521   HMAC (SHA512, HMAC_SHA512))]
    +[StaticUnified (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521   HMAC (SHA512, HMAC_SHA512))]

    SHS Val# 3047 ECDSA Val#760 DRBG Val#955

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub Cryptography Next Generation (CNG) Implementations #72

    Version 10.0.10586

    -

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
    -( FB: SHA256 ) ( FC: SHA256 ) ]
    -[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

    +

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation) SCHEMES  [dhEphem  (KARole(s): Initiator / Responder)
    +(FB: SHA256) (FC: SHA256)]
    +[dhOneFlow (KARole(s): Initiator / Responder) (FB:  SHA256) (FC:  SHA256)] [dhStatic (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (FB:  SHA256 HMAC) (FC:  SHA256   HMAC)]

    SHS Val# 2886 DSA Val#983 DRBG Val#868

    -

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
    -[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
    -[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

    +

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration) SCHEMES  [EphemeralUnified (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521 HMAC (SHA512, HMAC_SHA512)))]
    +[OnePassDH  (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521   HMAC (SHA512, HMAC_SHA512))]
    +[StaticUnified (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521   HMAC (SHA512, HMAC_SHA512))]

    SHS Val# 2886 ECDSA Val#706 DRBG Val#868

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #64

    Version 10.0.10240

    -

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
    -( FB: SHA256 ) ( FC: SHA256 ) ]
    -[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

    +

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation) SCHEMES  [dhEphem  (KARole(s): Initiator / Responder)
    +(FB: SHA256) (FC: SHA256)]
    +[dhOneFlow (KARole(s): Initiator / Responder) (FB:  SHA256) (FC:  SHA256)] [dhStatic (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (FB:  SHA256 HMAC) (FC:  SHA256   HMAC)]

    SHS Val#2373 DSA Val#855 DRBG Val#489

    -

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
    -[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
    -[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

    +

    ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration) SCHEMES  [EphemeralUnified (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521 HMAC (SHA512, HMAC_SHA512)))]
    +[OnePassDH  (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521   HMAC (SHA512, HMAC_SHA512))]
    +[StaticUnified (No_KC  &lt; KARole(s): Initiator / Responder &gt;) (EC:  P-256   SHA256   HMAC) (ED:  P-384   SHA384   HMAC) (EE:  P-521   HMAC (SHA512, HMAC_SHA512))]

    SHS Val#2373 ECDSA Val#505 DRBG Val#489

    Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 Cryptography Next Generation Cryptographic Implementations #47

    Version 6.3.9600

    -

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG DPV KPG Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
    -( FA: SHA256 ) ( FB: SHA256 ) ( FC: SHA256 ) ]
    -[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FA: SHA256 ) ( FB: SHA256 ) ( FC: SHA256 ) ]
    -[ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FA: SHA256 HMAC ) ( FB: SHA256 HMAC ) ( FC: SHA256 HMAC ) ]
    +

    FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG DPV KPG Partial Validation) SCHEMES [dhEphem (KARole(s): Initiator / Responder)
    +(FA: SHA256) (FB: SHA256) (FC: SHA256)]
    +[dhOneFlow (KARole(s): Initiator / Responder) (FA: SHA256) (FB: SHA256) (FC: SHA256)]
    +[dhStatic (No_KC &lt; KARole(s): Initiator / Responder&gt;) (FA: SHA256 HMAC) (FB: SHA256 HMAC) (FC: SHA256 HMAC)]
    SHS #1903 DSA Val#687 DRBG #258

    -

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG DPV KPG Partial Validation Key Regeneration ) SCHEMES [ EphemeralUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256 SHA256 HMAC ) ( ED: P-384 SHA384 HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
    -[ OnePassDH( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256 SHA256 ) ( ED: P-384 SHA384 ) ( EE: P-521 (SHA512, HMAC_SHA512) ) ) ]
    -[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256 SHA256 HMAC ) ( ED: P-384 SHA384 HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ]
    +

    ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG DPV KPG Partial Validation Key Regeneration) SCHEMES [EphemeralUnified (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256 SHA256 HMAC) (ED: P-384 SHA384 HMAC) (EE: P-521 HMAC (SHA512, HMAC_SHA512)))]
    +[OnePassDH(No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256 SHA256) (ED: P-384 SHA384) (EE: P-521 (SHA512, HMAC_SHA512)))]
    +[StaticUnified (No_KC &lt; KARole(s): Initiator / Responder&gt;) (EC: P-256 SHA256 HMAC) (ED: P-384 SHA384 HMAC) (EE: P-521 HMAC (SHA512, HMAC_SHA512))]

    SHS #1903 ECDSA Val#341 DRBG #258

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #36 @@ -4960,7 +4959,7 @@ SP 800-108 Key-Based Key Derivation Functions (KBKDF)

    K prerequisite: DRBG #1733, KAS #149

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #160

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #160

    Version 10.0.16299

    @@ -5017,11 +5016,11 @@ SP 800-108 Key-Based Key Derivation Functions (KBKDF)

    K prerequisite: KAS #146

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Cryptography Next Generation (CNG) Implementations #157

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); Cryptography Next Generation (CNG) Implementations #157

    Version 10.0.16299

    -CTR_Mode: ( Llength( Min0 Max0 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA384] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )
    +CTR_Mode: (Llength(Min0 Max0) MACSupported([HMACSHA1] [HMACSHA256] [HMACSHA384]) LocationCounter([BeforeFixedData]) rlength([32]))

    KAS Val#128
    DRBG Val#1556
    @@ -5030,7 +5029,7 @@ MAC -CTR_Mode: ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )
    +CTR_Mode: (Llength(Min20 Max64) MACSupported([CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512]) LocationCounter([BeforeFixedData]) rlength([32]))

    KAS
    Val#127
    AES Val#4624
    @@ -5040,37 +5039,37 @@ MAC -

    CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA384] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

    +

    CTR_Mode:  (Llength(Min20 Max64) MACSupported([HMACSHA1] [HMACSHA256] [HMACSHA384]) LocationCounter([BeforeFixedData]) rlength([32]))

    KAS Val#93 DRBG Val#1222 MAC Val#2661

    -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #102

    +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #102

    Version 10.0.14393

    -

    CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

    +

    CTR_Mode:  (Llength(Min20 Max64) MACSupported([CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512]) LocationCounter([BeforeFixedData]) rlength([32]))

    KAS Val#92 AES Val#4064 DRBG Val#1217 MAC Val#2651

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #101

    Version 10.0.14393

    -

    CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

    +

    CTR_Mode:  (Llength(Min20 Max64) MACSupported([CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512]) LocationCounter([BeforeFixedData]) rlength([32]))

    KAS Val#72 AES Val#3629 DRBG Val#955 MAC Val#2381

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” Cryptography Next Generation (CNG) Implementations #72

    Version 10.0.10586

    -

    CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

    +

    CTR_Mode:  (Llength(Min20 Max64) MACSupported([CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512]) LocationCounter([BeforeFixedData]) rlength([32]))

    KAS Val#64 AES Val#3497 RBG Val#868 MAC Val#2233

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #66

    Version 10.0.10240

    -

    CTR_Mode:  ( Llength( Min0 Max0 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

    +

    CTR_Mode:  (Llength(Min0 Max0) MACSupported([HMACSHA1] [HMACSHA256] [HMACSHA512]) LocationCounter([BeforeFixedData]) rlength([32]))

    DRBG Val#489 MAC Val#1773

    Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 Cryptography Next Generation Cryptographic Implementations #30

    Version 6.3.9600

    -

    CTR_Mode: ( Llength( Min0 Max4 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

    +

    CTR_Mode: (Llength(Min0 Max4) MACSupported([HMACSHA1] [HMACSHA256] [HMACSHA512]) LocationCounter([BeforeFixedData]) rlength([32]))

    DRBG #258 HMAC Val#1345

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #3 @@ -5092,12 +5091,12 @@ Random Number Generator (RNG)

    FIPS 186-2 General Purpose

    -

    [ (x-Original); (SHA-1) ]

    +

    [(x-Original); (SHA-1)]

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #1110 FIPS 186-2
    -[ (x-Original); (SHA-1) ]
    +[(x-Original); (SHA-1)]

    Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1060

    Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #292

    Windows CE and Windows Mobile 6.0 and Windows Mobile 6.5 Enhanced Cryptographic Provider (RSAENH) #286

    @@ -5105,16 +5104,16 @@ Random Number Generator (RNG)

    FIPS 186-2
    -[ (x-Change Notice); (SHA-1) ]

    +[(x-Change Notice); (SHA-1)]

    FIPS 186-2 General Purpose
    -[ (x-Change Notice); (SHA-1) ]

    +[(x-Change Notice); (SHA-1)]

    Windows 7 and SP1 and Windows Server 2008 R2 and SP1 RNG Library #649

    Windows Vista Ultimate SP1 and Windows Server 2008 RNG Implementation #435

    Windows Vista RNG implementation #321

    FIPS 186-2 General Purpose
    -[ (x-Change Notice); (SHA-1) ]
    +[(x-Change Notice); (SHA-1)]

    Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #470

    Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #449

    Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #447

    @@ -5123,7 +5122,7 @@ Random Number Generator (RNG) FIPS 186-2
    -[ (x-Change Notice); (SHA-1) ]
    +[(x-Change Notice); (SHA-1)]

    Windows XP Professional SP3 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #448

    Windows Server 2003 SP2 Enhanced DSS and Diffie-Hellman Cryptographic Provider #314

    @@ -5228,7 +5227,7 @@ Random Number Generator (RNG)

    Prerequisite: SHS #4009, DRBG #1733

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #2676

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #2676

    Version 10.0.16299

    @@ -5263,7 +5262,7 @@ Random Number Generator (RNG)

    Prerequisite: SHS #4009, DRBG #1730

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); RSA32 Algorithm Implementations #2674

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); RSA32 Algorithm Implementations #2674

    Version 10.0.16299

    @@ -5637,7 +5636,7 @@ Random Number Generator (RNG)

    Prerequisite: SHS #4009, DRBG #1730

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #2668

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #2668

    Version 10.0.16299

    @@ -5707,34 +5706,34 @@ Random Number Generator (RNG)

    Prerequisite: SHS #4009, DRBG #1730

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #2667

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #2667

    Version 10.0.16299

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(gen) (2048 SHA( 1 , 256 , 384 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    SIG(Ver) (1024 SHA( 1 , 256 , 384 )) (2048 SHA( 1 , 256 , 384 ))
    -[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) ))
    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256, 384)) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    SIG(Ver) (1024 SHA(1, 256, 384)) (2048 SHA(1, 256, 384))
    +[RSASSA-PSS]: Sig(Gen): (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48))) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    Sig(Ver): (1024 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48))) (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48)))
    SHA Val#3790

    Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #2524

    Version 10.0.15063

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
    +ALG[RSASSA-PKCS1_V1_5] SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))
    SHA Val#3790

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile RSA32 Algorithm Implementations #2523

    Version 10.0.15063

    FIPS186-4:
    -186-4KEY(gen):
    FIPS186-4_Fixed_e ( 10001 ) ;
    -PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )
    -ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
    -[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
    +186-4KEY(gen): FIPS186-4_Fixed_e (10001);
    +PGM(ProbPrimeCondition): 2048, 3072 PPTT:(C.3)
    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512)) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))
    +[RSASSA-PSS]: Sig(Gen): (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    Sig(Ver): (1024 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(62))) (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))
    SHA Val#3790
    DRBG: Val# 1555

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #2522

    @@ -5743,11 +5742,11 @@ DRBG: FIPS186-4:
    186-4KEY(gen):
    -PGM(ProbRandom:
    ( 2048 , 3072 ) PPTT:( C.2 )
    -ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
    -[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
    +PGM(ProbRandom: (2048, 3072) PPTT:(C.2)
    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512)) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))
    +[RSASSA-PSS]: Sig(Gen): (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    Sig(Ver): (1024 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(62))) (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))
    SHA
    Val#3790

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #2521

    Version 10.0.15063

    @@ -5755,14 +5754,14 @@ SHA

    FIPS186-2:
    ALG[ANSIX9.31]:

    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1
    Val#3652
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096 , SHS: SHA-256Val#3652, SHA-384Val#3652, SHA-512Val#3652
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3652, SHA-256Val#3652, SHA-384Val#3652, SHA-512Val#3652

    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#3652
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096, SHS: SHA-256Val#3652, SHA-384Val#3652, SHA-512Val#3652
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#3652, SHA-256Val#3652, SHA-384Val#3652, SHA-512Val#3652

    FIPS186-4:
    -ALG[ANSIX9.31]
    Sig(Gen): (2048 SHA( 1 )) (3072 SHA( 1 ))
    -SIG(gen) with SHA-1 affirmed for use with protocols only.
    Sig(Ver): (1024 SHA( 1 )) (2048 SHA( 1 )) (3072 SHA( 1 ))
    -ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
    +ALG[ANSIX9.31] Sig(Gen): (2048 SHA(1)) (3072 SHA(1))
    +SIG(gen) with SHA-1 affirmed for use with protocols only.
    Sig(Ver): (1024 SHA(1)) (2048 SHA(1)) (3072 SHA(1))
    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512)) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))
    SHA Val#3652

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2415

    Version 7.00.2872

    @@ -5770,27 +5769,27 @@ SHA

    FIPS186-2:
    ALG[ANSIX9.31]:

    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1
    Val#3651
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096 , SHS: SHA-256Val#3651, SHA-384Val#3651, SHA-512Val#3651
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3651, SHA-256Val#3651, SHA-384Val#3651, SHA-512Val#3651

    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#3651
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096, SHS: SHA-256Val#3651, SHA-384Val#3651, SHA-512Val#3651
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#3651, SHA-256Val#3651, SHA-384Val#3651, SHA-512Val#3651

    FIPS186-4:
    -ALG[ANSIX9.31]
    Sig(Gen): (2048 SHA( 1 )) (3072 SHA( 1 ))
    -SIG(gen) with SHA-1 affirmed for use with protocols only.
    Sig(Ver): (1024 SHA( 1 )) (2048 SHA( 1 )) (3072 SHA( 1 ))
    -ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
    +ALG[ANSIX9.31] Sig(Gen): (2048 SHA(1)) (3072 SHA(1))
    +SIG(gen) with SHA-1 affirmed for use with protocols only.
    Sig(Ver): (1024 SHA(1)) (2048 SHA(1)) (3072 SHA(1))
    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512)) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))
    SHA Val#3651

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2414

    Version 8.00.6246

    FIPS186-2:
    -ALG[RSASSA-PKCS1_V1_5]:
    SIG(gen) 4096 , SHS: SHA-256Val# 3649 , SHA-384Val# 3649 , SHA-512Val# 3649
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val# 3649 , SHA-256Val# 3649 , SHA-384Val# 3649 , SHA-512Val# 3649

    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096, SHS: SHA-256Val# 3649, SHA-384Val# 3649, SHA-512Val# 3649
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val# 3649, SHA-256Val# 3649, SHA-384Val# 3649, SHA-512Val# 3649

    FIPS186-4:
    -186-4KEY(gen):
    FIPS186-4_Fixed_e (10001) ;
    -PGM(ProbRandom: ( 2048 , 3072 ) PPTT:( C.2 )
    -ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
    +186-4KEY(gen): FIPS186-4_Fixed_e (10001);
    +PGM(ProbRandom: (2048, 3072) PPTT:(C.2)
    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512)) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))
    SHA Val# 3649
    DRBG: Val# 1430

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2412

    @@ -5798,13 +5797,13 @@ DRBG:

    FIPS186-2:
    -ALG[RSASSA-PKCS1_V1_5]:
    SIG(gen) 4096 , SHS: SHA-256
    Val#3648, SHA-384Val#3648, SHA-512Val#3648
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3648, SHA-256Val#3648, SHA-384Val#3648, SHA-512Val#3648

    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096, SHS: SHA-256Val#3648, SHA-384Val#3648, SHA-512Val#3648
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#3648, SHA-256Val#3648, SHA-384Val#3648, SHA-512Val#3648

    FIPS186-4:
    -186-4KEY(gen):
    FIPS186-4_Fixed_e (10001) ;
    -PGM(ProbRandom: ( 2048 , 3072 ) PPTT:( C.2 )
    -ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
    +186-4KEY(gen): FIPS186-4_Fixed_e (10001);
    +PGM(ProbRandom: (2048, 3072) PPTT:(C.2)
    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512)) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +
    SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))
    SHA Val#3648
    DRBG: Val# 1429

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2411

    @@ -5812,231 +5811,231 @@ DRBG:

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(gen) (2048 SHA( 1 , 256 , 384 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -SIG(Ver) (1024 SHA( 1 , 256 , 384 )) (2048 SHA( 1 , 256 , 384 ))
    -[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
    -Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) ))

    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(1, 256, 384)) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +SIG(Ver) (1024 SHA(1, 256, 384)) (2048 SHA(1, 256, 384))
    +[RSASSA-PSS]: Sig(Gen): (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48))) SIG(gen) with SHA-1 affirmed for use with protocols only.
    +Sig(Ver): (1024 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48))) (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48)))

    SHA Val# 3347

    -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #2206

    +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #2206

    Version 10.0.14393

    FIPS186-4:
    -186-4KEY(gen):
    FIPS186-4_Fixed_e ( 10001 ) ;
    -PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

    +186-4KEY(gen): FIPS186-4_Fixed_e (10001);
    +PGM(ProbPrimeCondition): 2048, 3072 PPTT:(C.3)

    SHA Val# 3347 DRBG: Val# 1217

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA Key Generation Implementation #2195

    Version 10.0.14393

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

    +ALG[RSASSA-PKCS1_V1_5] SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))

    SHA Val#3346

    soft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA32 Algorithm Implementations #2194

    Version 10.0.14393

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(gen) (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
    -SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(256, 384, 512)) (3072 SHA(256, 384, 512))
    +SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))

    SHA Val# 3347 DRBG: Val# 1217

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #2193

    Version 10.0.14393

    FIPS186-4:
    -[RSASSA-PSS]: Sig(Gen):
    (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

    -

    Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

    +[RSASSA-PSS]: Sig(Gen): (2048 SHA(256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))

    +

    Sig(Ver): (1024 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(62))) (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))

    SHA Val# 3347 DRBG: Val# 1217

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #2192

    Version 10.0.14393

    FIPS186-4:
    -186-4KEY(gen)
    :  FIPS186-4_Fixed_e ( 10001 ) ;
    -PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

    +186-4KEY(gen):  FIPS186-4_Fixed_e (10001);
    +PGM(ProbPrimeCondition): 2048, 3072 PPTT:(C.3)

    SHA Val# 3047 DRBG: Val# 955

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” RSA Key Generation Implementation #1889

    Version 10.0.10586

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

    +ALG[RSASSA-PKCS1_V1_5] SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))

    SHA Val#3048

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub RSA32 Algorithm Implementations #1871

    Version 10.0.10586

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(gen) (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
    -SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(256, 384, 512)) (3072 SHA(256, 384, 512))
    +SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))

    SHA Val# 3047

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub MsBignum Cryptographic Implementations #1888

    Version 10.0.10586

    FIPS186-4:
    -[RSASSA-PSS]: Sig(Gen)
    : (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
    -Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

    +[RSASSA-PSS]: Sig(Gen): (2048 SHA(256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))
    +Sig(Ver): (1024 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(62))) (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))

    SHA Val# 3047

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub Cryptography Next Generation (CNG) Implementations #1887

    Version 10.0.10586

    FIPS186-4:
    -186-4KEY(gen):
    FIPS186-4_Fixed_e ( 10001 ) ;
    -PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

    +186-4KEY(gen): FIPS186-4_Fixed_e (10001);
    +PGM(ProbPrimeCondition): 2048, 3072 PPTT:(C.3)

    SHA Val# 2886 DRBG: Val# 868

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA Key Generation Implementation #1798

    Version 10.0.10240

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

    +ALG[RSASSA-PKCS1_V1_5] SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))

    SHA Val#2871

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA32 Algorithm Implementations #1784

    Version 10.0.10240

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

    +ALG[RSASSA-PKCS1_V1_5] SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))

    SHA Val#2871

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #1783

    Version 10.0.10240

    FIPS186-4:
    -[RSASSA-PSS]:
    Sig(Gen): (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
    -Sig(Ver): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

    +[RSASSA-PSS]: Sig(Gen): (2048 SHA(256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))
    +Sig(Ver): (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))

    SHA Val# 2886

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #1802

    Version 10.0.10240

    FIPS186-4:
    -186-4KEY(gen):
    FIPS186-4_Fixed_e ;
    -PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

    +186-4KEY(gen): FIPS186-4_Fixed_e;
    +PGM(ProbPrimeCondition): 2048, 3072 PPTT:(C.3)

    SHA Val#2373 DRBG: Val# 489

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 RSA Key Generation Implementation #1487

    Version 6.3.9600

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

    +ALG[RSASSA-PKCS1_V1_5] SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))

    SHA Val#2373

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry RSA32 Algorithm Implementations #1494

    Version 6.3.9600

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5
    ] SIG(gen) (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
    -SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(256, 384, 512)) (3072 SHA(256, 384, 512))
    +SIG(Ver) (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512))

    SHA Val#2373

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #1493

    Version 6.3.9600

    FIPS186-4:
    -[RSASSA-PSS]:
    Sig(Gen): (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
    - Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

    +[RSASSA-PSS]: Sig(Gen): (2048 SHA(256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))
    + Sig(Ver): (1024 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(62))) (2048 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64))) (3072 SHA(1 SaltLen(20), 256 SaltLen(32), 384 SaltLen(48), 512 SaltLen(64)))

    SHA Val#2373

    Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 Cryptography Next Generation Cryptographic Implementations #1519

    Version 6.3.9600

    FIPS186-4:
    -ALG[RSASSA-PKCS1_V1_5]
    SIG(gen) (2048 SHA( 256 , 384 , 512-256 )) (3072 SHA( 256 , 384 , 512-256 ))
    -SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512-256 )) (2048 SHA( 1 , 256 , 384 , 512-256 )) (3072 SHA( 1 , 256 , 384 , 512-256 ))
    -[RSASSA-PSS]: Sig(Gen): (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
    -Sig(Ver): (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 , 512 ))
    +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA(256, 384, 512-256)) (3072 SHA(256, 384, 512-256))
    +SIG(Ver) (1024 SHA(1, 256, 384, 512-256)) (2048 SHA(1, 256, 384, 512-256)) (3072 SHA(1, 256, 384, 512-256))
    +[RSASSA-PSS]: Sig(Gen): (2048 SHA(256, 384, 512)) (3072 SHA(256, 384, 512))
    +Sig(Ver): (1024 SHA(1, 256, 384, 512)) (2048 SHA(1, 256, 384, 512)) (3072 SHA(1, 256, 384, 512, 512))
    SHA #1903

    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1134.

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #1134 FIPS186-4:
    -186-4KEY(gen):
    FIPS186-4_Fixed_e , FIPS186-4_Fixed_e_Value
    -PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )
    +186-4KEY(gen): FIPS186-4_Fixed_e, FIPS186-4_Fixed_e_Value
    +PGM(ProbPrimeCondition): 2048, 3072 PPTT:(C.3)
    SHA #1903 DRBG: #258 Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 RSA Key Generation Implementation #1133 FIPS186-2:
    -ALG[ANSIX9.31]:
    Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 DRBG: #258
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256#1902, SHA-384#1902, SHA-512#1902,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1#1902, SHA-256#1902, SHA-#1902, SHA-512#1902,
    +ALG[ANSIX9.31]: Key(gen)(MOD: 2048, 3072, 4096 PubKey Values: 65537 DRBG: #258
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256#1902, SHA-384#1902, SHA-512#1902,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1#1902, SHA-256#1902, SHA-#1902, SHA-512#1902,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1132. Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Enhanced Cryptographic Provider (RSAENH) #1132 FIPS186-2:
    ALG[ANSIX9.31]:

    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1774
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1774, SHA-384Val#1774, SHA-512Val#1774,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1774, SHA-256Val#1774, SHA-384Val#1774, SHA-512Val#1774,
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#1774
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#1774, SHA-384Val#1774, SHA-512Val#1774,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#1774, SHA-256Val#1774, SHA-384Val#1774, SHA-512Val#1774,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1052. Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1052 FIPS186-2:
    -ALG[ANSIX9.31]:
    Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 DRBG: Val# 193
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1773, SHA-384Val#1773, SHA-512Val#1773,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1773, SHA-256Val#1773, SHA-384Val#1773, SHA-512Val#1773,
    +ALG[ANSIX9.31]: Key(gen)(MOD: 2048, 3072, 4096 PubKey Values: 65537 DRBG: Val# 193
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#1773, SHA-384Val#1773, SHA-512Val#1773,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#1773, SHA-256Val#1773, SHA-384Val#1773, SHA-512Val#1773,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1051. Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1051 FIPS186-2:
    -ALG[RSASSA-PKCS1_V1_5]:
    SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#568. Windows Server 2008 R2 and SP1 Enhanced Cryptographic Provider (RSAENH) #568 FIPS186-2:
    -ALG[RSASSA-PKCS1_V1_5]:
    SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    -ALG[RSASSA-PSS]: SIG(gen); 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081
    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    +ALG[RSASSA-PSS]: SIG(gen); 2048, 3072, 4096, SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#567. See Historical RSA List Val#560.

    Windows Server 2008 R2 and SP1 CNG algorithms #567

    Windows 7 and SP1 CNG algorithms #560

    FIPS186-2:
    -ALG[ANSIX9.31]:
    Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 DRBG: Val# 23
    +ALG[ANSIX9.31]: Key(gen)(MOD: 2048, 3072, 4096 PubKey Values: 65537 DRBG: Val# 23
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#559. Windows 7 and SP1 and Server 2008 R2 and SP1 RSA Key Generation Implementation #559 FIPS186-2:
    -ALG[RSASSA-PKCS1_V1_5]:
    SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#557. Windows 7 and SP1 Enhanced Cryptographic Provider (RSAENH) #557 FIPS186-2:
    ALG[ANSIX9.31]:
    -ALG[RSASSA-PKCS1_V1_5]:
    SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#816, SHA-384Val#816, SHA-512Val#816,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#816, SHA-256Val#816, SHA-384Val#816, SHA-512Val#816,
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#816, SHA-384Val#816, SHA-512Val#816,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#816, SHA-256Val#816, SHA-384Val#816, SHA-512Val#816,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#395. Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #395 FIPS186-2:
    ALG[ANSIX9.31]:

    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#783
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#783, SHA-384Val#783, SHA-512Val#783,
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#783
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#783, SHA-384Val#783, SHA-512Val#783,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#371. Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #371 FIPS186-2:
    -ALG[RSASSA-PKCS1_V1_5]:
    SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
    -ALG[RSASSA-PSS]: SIG(gen); 2048 , 3072 , 4096 , SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753
    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
    +ALG[RSASSA-PSS]: SIG(gen); 2048, 3072, 4096, SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#358. See Historical RSA List Val#357.

    Windows Server 2008 CNG algorithms #358

    Windows Vista SP1 CNG algorithms #357

    @@ -6044,81 +6043,81 @@ Some of the previously validated components for this validation have been remove FIPS186-2:
    ALG[ANSIX9.31]:

    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#753
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#355. See Historical RSA List Val#354.

    Windows Server 2008 Enhanced Cryptographic Provider (RSAENH) #355

    Windows Vista SP1 Enhanced Cryptographic Provider (RSAENH) #354

    FIPS186-2:
    -ALG[ANSIX9.31]:
    Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537
    +ALG[ANSIX9.31]: Key(gen)(MOD: 2048, 3072, 4096 PubKey Values: 65537
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#353. Windows Vista SP1 and Windows Server 2008 RSA Key Generation Implementation #353 FIPS186-2:
    -ALG[ANSIX9.31]:
    Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 RNG: Val# 321
    +ALG[ANSIX9.31]: Key(gen)(MOD: 2048, 3072, 4096 PubKey Values: 65537 RNG: Val# 321
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#258. Windows Vista RSA key generation implementation #258 FIPS186-2:
    -ALG[RSASSA-PKCS1_V1_5]:
    SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
    -ALG[RSASSA-PSS]: SIG(gen); 2048 , 3072 , 4096 , SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618
    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
    +ALG[RSASSA-PSS]: SIG(gen); 2048, 3072, 4096, SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#257. Windows Vista CNG algorithms #257 FIPS186-2:
    -ALG[RSASSA-PKCS1_V1_5]:
    SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#255. Windows Vista Enhanced Cryptographic Provider (RSAENH) #255 FIPS186-2:
    ALG[ANSIX9.31]:

    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#613
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#613, SHA-384Val#613, SHA-512Val#613,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#613, SHA-256Val#613, SHA-384Val#613, SHA-512Val#613,
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#613
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#613, SHA-384Val#613, SHA-512Val#613,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#613, SHA-256Val#613, SHA-384Val#613, SHA-512Val#613,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#245. Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #245 FIPS186-2:
    ALG[ANSIX9.31]:

    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#589
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#589, SHA-384Val#589, SHA-512Val#589,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#589, SHA-256Val#589, SHA-384Val#589, SHA-512Val#589,
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#589
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#589, SHA-384Val#589, SHA-512Val#589,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#589, SHA-256Val#589, SHA-384Val#589, SHA-512Val#589,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#230. Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #230 FIPS186-2:
    ALG[ANSIX9.31]:

    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#578
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#578, SHA-384Val#578, SHA-512Val#578,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#578, SHA-256Val#578, SHA-384Val#578, SHA-512Val#578,
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#578
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#578, SHA-384Val#578, SHA-512Val#578,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#578, SHA-256Val#578, SHA-384Val#578, SHA-512Val#578,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#222. Windows CE and Windows Mobile 6 and Windows Mobile 6.1 Enhanced Cryptographic Provider (RSAENH) #222 FIPS186-2:
    ALG[RSASSA-PKCS1_V1_5]:

    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#364
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#364
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#81. Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #81 FIPS186-2:
    ALG[ANSIX9.31]:

    -SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#305
    -ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#305, SHA-384Val#305, SHA-512Val#305,
    -SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#305, SHA-256Val#305, SHA-384Val#305, SHA-512Val#305,
    +SIG(ver); 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#305
    +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048, 3072, 4096, SHS: SHA-256Val#305, SHA-384Val#305, SHA-512Val#305,
    +SIG(ver): 1024, 1536, 2048, 3072, 4096, SHS: SHA-1Val#305, SHA-256Val#305, SHA-384Val#305, SHA-512Val#305,
    Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#52. Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #52 @@ -6209,7 +6208,7 @@ Some of the previously validated components for this validation have been remove
  • Supports Empty Message
  • -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #4009

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #4009

    Version 10.0.16299

    @@ -6495,106 +6494,106 @@ Version 6.3.9600
  • Keying Option: 1
  • -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #2556

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #2556

    Version 10.0.16299

    -TECB( KO 1 e/d, ) ; TCBC( KO 1 e/d, ) ; TCFB8( KO 1 e/d, ) ; TCFB64( KO 1 e/d, ) +TECB(KO 1 e/d,); TCBC(KO 1 e/d,); TCFB8(KO 1 e/d,); TCFB64(KO 1 e/d,)

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #2459

    Version 10.0.15063

    -

    TECB( KO 1 e/d, ) ;

    -

    TCBC( KO 1 e/d, )

    +

    TECB(KO 1 e/d,);

    +

    TCBC(KO 1 e/d,)

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2384

    Version 8.00.6246

    -

    TECB( KO 1 e/d, ) ;

    -

    TCBC( KO 1 e/d, )

    +

    TECB(KO 1 e/d,);

    +

    TCBC(KO 1 e/d,)

    Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2383

    Version 8.00.6246

    -

    TECB( KO 1 e/d, ) ;

    -

    TCBC( KO 1 e/d, ) ;

    -

    CTR ( int only )

    +

    TECB(KO 1 e/d,);

    +

    TCBC(KO 1 e/d,);

    +

    CTR (int only)

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2382

    Version 7.00.2872

    -

    TECB( KO 1 e/d, ) ;

    -

    TCBC( KO 1 e/d, )

    +

    TECB(KO 1 e/d,);

    +

    TCBC(KO 1 e/d,)

    Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2381

    Version 8.00.6246

    -

    TECB( KO 1 e/d, ) ;

    -

    TCBC( KO 1 e/d, ) ;

    -

    TCFB8( KO 1 e/d, ) ;

    -

    TCFB64( KO 1 e/d, )

    +

    TECB(KO 1 e/d,);

    +

    TCBC(KO 1 e/d,);

    +

    TCFB8(KO 1 e/d,);

    +

    TCFB64(KO 1 e/d,)

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #2227

    Version 10.0.14393

    -

    TECB( KO 1 e/d, ) ;

    -

    TCBC( KO 1 e/d, ) ;

    -

    TCFB8( KO 1 e/d, ) ;

    -

    TCFB64( KO 1 e/d, )

    +

    TECB(KO 1 e/d,);

    +

    TCBC(KO 1 e/d,);

    +

    TCFB8(KO 1 e/d,);

    +

    TCFB64(KO 1 e/d,)

    Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub SymCrypt Cryptographic Implementations #2024

    Version 10.0.10586

    -

    TECB( KO 1 e/d, ) ;

    -

    TCBC( KO 1 e/d, ) ;

    -

    TCFB8( KO 1 e/d, ) ;

    -

    TCFB64( KO 1 e/d, )

    +

    TECB(KO 1 e/d,);

    +

    TCBC(KO 1 e/d,);

    +

    TCFB8(KO 1 e/d,);

    +

    TCFB64(KO 1 e/d,)

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #1969

    Version 10.0.10240

    -

    TECB( KO 1 e/d, ) ;

    -

    TCBC( KO 1 e/d, ) ;

    -

    TCFB8( KO 1 e/d, ) ;

    -

    TCFB64( KO 1 e/d, )

    +

    TECB(KO 1 e/d,);

    +

    TCBC(KO 1 e/d,);

    +

    TCFB8(KO 1 e/d,);

    +

    TCFB64(KO 1 e/d,)

    Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #1692

    Version 6.3.9600

    -

    TECB( e/d; KO 1,2 ) ;

    -

    TCBC( e/d; KO 1,2 ) ;

    -

    TCFB8( e/d; KO 1,2 ) ;

    -

    TCFB64( e/d; KO 1,2 )

    +

    TECB(e/d; KO 1, 2);

    +

    TCBC(e/d; KO 1, 2);

    +

    TCFB8(e/d; KO 1, 2);

    +

    TCFB64(e/d; KO 1, 2)

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #1387 -

    TECB( e/d; KO 1,2 ) ;

    -

    TCBC( e/d; KO 1,2 ) ;

    -

    TCFB8( e/d; KO 1,2 )

    +

    TECB(e/d; KO 1, 2);

    +

    TCBC(e/d; KO 1, 2);

    +

    TCFB8(e/d; KO 1, 2)

    Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm Implementations (RSA32) #1386 -

    TECB( e/d; KO 1,2 ) ;

    -

    TCBC( e/d; KO 1,2 ) ;

    -

    TCFB8( e/d; KO 1,2 )

    +

    TECB(e/d; KO 1, 2);

    +

    TCBC(e/d; KO 1, 2);

    +

    TCFB8(e/d; KO 1, 2)

    Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #846 -

    TECB( e/d; KO 1,2 ) ;

    -

    TCBC( e/d; KO 1,2 ) ;

    -

    TCFB8( e/d; KO 1,2 )

    +

    TECB(e/d; KO 1, 2);

    +

    TCBC(e/d; KO 1, 2);

    +

    TCFB8(e/d; KO 1, 2)

    Windows Vista SP1 and Windows Server 2008 Symmetric Algorithm Implementation #656 -

    TECB( e/d; KO 1,2 ) ;

    -

    TCBC( e/d; KO 1,2 ) ;

    -

    TCFB8( e/d; KO 1,2 )

    +

    TECB(e/d; KO 1, 2);

    +

    TCBC(e/d; KO 1, 2);

    +

    TCFB8(e/d; KO 1, 2)

    Windows Vista Symmetric Algorithm Implementation #549 @@ -6603,8 +6602,8 @@ Version 6.3.9600

    Windows 7 and SP1 and Windows Server 2008 R2 and SP1 #846, vendor-affirmed

    -

    TECB( e/d; KO 1,2 ) ;

    -

    TCBC( e/d; KO 1,2 )

    +

    TECB(e/d; KO 1, 2);

    +

    TCBC(e/d; KO 1, 2)

    Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1308

    Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #1307

    Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #691

    @@ -6707,7 +6706,7 @@ Version 6.3.9600
  • Padding Algorithms: PKCS 1.5
  • -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1518

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1518

    Version 10.0.16299

    @@ -6988,7 +6987,7 @@ Version 6.3.9600

    Prerequisite: DRBG #1730

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1503

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1503

    Version 10.0.16299

    @@ -6998,7 +6997,7 @@ Version 6.3.9600
  • Modulus Size: 2048 (bits)
  • -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1502

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1502

    Version 10.0.16299

    @@ -7009,7 +7008,7 @@ Version 6.3.9600
  • Padding Algorithms: PKCS 1.5
  • -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1501

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1501

    Version 10.0.16299

    @@ -7022,7 +7021,7 @@ Version 6.3.9600

    Prerequisite: DRBG #1730

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1499

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1499

    Version 10.0.16299

    @@ -7032,7 +7031,7 @@ Version 6.3.9600
  • Modulus Size: 2048 (bits)
  • -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1498

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1498

    Version 10.0.16299

     

    @@ -7044,7 +7043,7 @@ Version 6.3.9600
  • Padding Algorithms: PKCS 1.5
  • -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1497

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1497

    Version 10.0.16299

    @@ -7110,20 +7109,20 @@ Version 6.3.9600

    Prerequisite: SHS #4009, HMAC #3267

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1496

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1496

    Version 10.0.16299

    FIPS186-4 ECDSA

    Signature Generation of hash sized messages

    -

    ECDSA SigGen Component: CURVES( P-256 P-384 P-521 )

    +

    ECDSA SigGen Component: CURVES(P-256 P-384 P-521)

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1284
    Version 10.0. 15063

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1279
    Version 10.0. 15063

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #922
    Version 10.0.14393

    -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #894
    +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #894
    Version 10.0.14393icrosoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #666
    Version 10.0.10586

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #288
    @@ -7139,7 +7138,7 @@ Version 10.0.15063

    Version 10.0.15063

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1280
    Version 10.0.15063

    -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #893
    +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #893
    Version 10.0.14393

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #888
    Version 10.0.14393

    @@ -7158,7 +7157,7 @@ Version 6.3.9600

    Version 10.0.15063

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1281
    Version 10.0.15063

    -

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #895
    +

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #895
    Version 10.0.14393

    Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #887
    Version 10.0.14393

    @@ -7170,7 +7169,7 @@ Version  10.0.10240

    SP800-135

    Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS

    -

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1496

    +

    Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update; Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1496

    Version 10.0.16299

    Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1278
    Version 10.0.15063

    @@ -7184,7 +7183,7 @@ Version 10.0.14393

    Version 10.0.10586

    Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 BCryptPrimitives and NCryptSSLp #575
    Version  10.0.10240

    -

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 BCryptPrimitives and NCryptSSLp #323
    +

    Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry, and Microsoft StorSimple 8100 BCryptPrimitives and NCryptSSLp #323
    Version 6.3.9600

    From 08af59293939817e1e09369356adb3111322cbd9 Mon Sep 17 00:00:00 2001 From: Denise Vangel-MSFT Date: Fri, 30 Oct 2020 08:42:27 -0700 Subject: [PATCH 173/187] Update vpnv2-csp.md --- windows/client-management/mdm/vpnv2-csp.md | 200 ++++++++++----------- 1 file changed, 99 insertions(+), 101 deletions(-) diff --git a/windows/client-management/mdm/vpnv2-csp.md b/windows/client-management/mdm/vpnv2-csp.md index 7196ffe3dd..5f3d865cbd 100644 --- a/windows/client-management/mdm/vpnv2-csp.md +++ b/windows/client-management/mdm/vpnv2-csp.md @@ -2,14 +2,14 @@ title: VPNv2 CSP description: Learn how the VPNv2 configuration service provider (CSP) allows the mobile device management (MDM) server to configure the VPN profile of the device. ms.assetid: 51ADA62E-1EE5-4F15-B2AD-52867F5B2AD2 -ms.reviewer: +ms.reviewer: pesmith manager: dansimp ms.author: dansimp ms.topic: article ms.prod: w10 ms.technology: windows author: manikadhiman -ms.date: 11/01/2017 +ms.date: 10/30/2020 --- # VPNv2 CSP @@ -19,19 +19,19 @@ The VPNv2 configuration service provider allows the mobile device management (MD Here are the requirements for this CSP: -- VPN configuration commands must be wrapped in an Atomic block in SyncML. -- For best results, configure your VPN certificates first before pushing down VPN profiles to devices. If you are using Windows Information Protection (WIP) (formerly known as Enterprise Data Protection), then you should configure VPN first before you configure WIP policies. -- Instead of changing individual properties, follow these steps to make any changes: +- VPN configuration commands must be wrapped in an Atomic block in SyncML. +- For best results, configure your VPN certificates first before pushing down VPN profiles to devices. If you are using Windows Information Protection (WIP) (formerly known as Enterprise Data Protection), then you should configure VPN first before you configure WIP policies. +- Instead of changing individual properties, follow these steps to make any changes: - - Send a Delete command for the ProfileName to delete the entire profile. - - Send the entire profile again with new values wrapped in an Atomic block. + - Send a Delete command for the ProfileName to delete the entire profile. + - Send the entire profile again with new values wrapped in an Atomic block. In certain conditions you can change some properties directly, but we do not recommend it. The XSDs for all EAP methods are shipped in the box and can be found at the following locations: -- C:\\Windows\\schemas\\EAPHost -- C:\\Windows\\schemas\\EAPMethods +- `C:\\Windows\\schemas\\EAPHost` +- `C:\\Windows\\schemas\\EAPMethods` The following diagram shows the VPNv2 configuration service provider in tree format. @@ -45,7 +45,8 @@ Unique alpha numeric identifier for the profile. The profile name must not inclu Supported operations include Get, Add, and Delete. -> **Note**  If the profile name has a space or other non-alphanumeric character, it must be properly escaped according to the URL encoding standard. +> [!NOTE] +> If the profile name has a space or other non-alphanumeric character, it must be properly escaped according to the URL encoding standard. **VPNv2/**ProfileName**/AppTriggerList** Optional node. List of applications set to trigger the VPN. If any of these apps are launched and the VPN profile is currently the active profile, this VPN profile will be triggered to connect. @@ -64,8 +65,8 @@ App identity, which is either an app’s package family name or file path. The t **VPNv2/**ProfileName**/AppTriggerList/**appTriggerRowId**/App/Type** Returns the type of **App/Id**. This value can be either of the following: -- PackageFamilyName - When this is returned, the App/Id value represents the PackageFamilyName of the app. The PackageFamilyName is the unique name of the Microsoft Store application. -- FilePath - When this is returned, the App/Id value represents the full file path of the app. For example, `C:\Windows\System\Notepad.exe`. +- PackageFamilyName - When this is returned, the App/Id value represents the PackageFamilyName of the app. The PackageFamilyName is the unique name of the Microsoft Store application. +- FilePath - When this is returned, the App/Id value represents the full file path of the app. For example, `C:\Windows\System\Notepad.exe`. Value type is chr. Supported operation is Get. @@ -99,8 +100,8 @@ Value type is int. Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/RouteList/**routeRowId**/ExclusionRoute** Added in Windows 10, version 1607. A boolean value that specifies if the route being added should point to the VPN Interface or the Physical Interface as the Gateway. Valid values: -- False (default) - This route will direct traffic over the VPN -- True - This route will direct traffic over the physical interface. +- False (default) - This route will direct traffic over the VPN +- True - This route will direct traffic over the physical interface. Supported operations include Get, Add, Replace, and Delete. @@ -117,16 +118,16 @@ Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/DomainNameInformationList/**dniRowId**/DomainName** Used to indicate the namespace to which the policy applies. When a Name query is issued, the DNS client compares the name in the query to all of the namespaces under DomainNameInformationList to find a match. This parameter can be one of the following types: -- FQDN - Fully qualified domain name -- Suffix - A domain suffix that will be appended to the shortname query for DNS resolution. To specify a suffix, prepend a **.** to the DNS suffix. +- FQDN - Fully qualified domain name +- Suffix - A domain suffix that will be appended to the shortname query for DNS resolution. To specify a suffix, prepend a **.** to the DNS suffix. Value type is chr. Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/DomainNameInformationList/**dniRowId**/DomainNameType** Returns the namespace type. This value can be one of the following: -- FQDN - If the DomainName was not prepended with a **.** and applies only to the fully qualified domain name (FQDN) of a specified host. -- Suffix - If the DomainName was prepended with a **.** and applies to the specified namespace, all records in that namespace, and all subdomains. +- FQDN - If the DomainName was not prepended with a **.** and applies only to the fully qualified domain name (FQDN) of a specified host. +- Suffix - If the DomainName was prepended with a **.** and applies to the specified namespace, all records in that namespace, and all subdomains. Value type is chr. Supported operation is Get. @@ -138,9 +139,8 @@ Value type is chr. Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/DomainNameInformationList/**dniRowId**/WebProxyServers** Optional. Web Proxy Server IP address if you are redirecting traffic through your intranet. -> **Note**  Currently only one web proxy server is supported. - - +> [!NOTE] +> Currently only one web proxy server is supported. Value type is chr. Supported operations include Get, Add, Replace, and Delete. @@ -166,9 +166,8 @@ Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/TrafficFilterList** An optional node that specifies a list of rules. Only traffic that matches these rules can be sent via the VPN Interface. -> **Note**  Once a TrafficFilterList is added, all traffic are blocked other than the ones matching the rules. - - +> [!NOTE] +> Once a TrafficFilterList is added, all traffic are blocked other than the ones matching the rules. When adding multiple rules, each rule operates based on an OR with the other rules. Within each rule, each property operates based on an AND with each other. @@ -183,9 +182,9 @@ App identity for the app-based traffic filter. The value for this node can be one of the following: -- PackageFamilyName - This App/Id value represents the PackageFamilyName of the app. The PackageFamilyName is the unique name of a Microsoft Store application. -- FilePath - This App/Id value represents the full file path of the app. For example, `C:\Windows\System\Notepad.exe`. -- SYSTEM – This value enables Kernel Drivers to send traffic through VPN (for example, PING or SMB). +- PackageFamilyName - This App/Id value represents the PackageFamilyName of the app. The PackageFamilyName is the unique name of a Microsoft Store application. +- FilePath - This App/Id value represents the full file path of the app. For example, `C:\Windows\System\Notepad.exe`. +- SYSTEM – This value enables Kernel Drivers to send traffic through VPN (for example, PING or SMB). Value type is chr. Supported operations include Get, Add, Replace, and Delete. @@ -205,18 +204,16 @@ Value type is int. Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/TrafficFilterList/**trafficFilterId**/LocalPortRanges** A list of comma separated values specifying local port ranges to allow. For example, `100-120, 200, 300-320`. -> **Note**  Ports are only valid when the protocol is set to TCP=6 or UDP=17. - - +> [!NOTE] +> Ports are only valid when the protocol is set to TCP=6 or UDP=17. Value type is chr. Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/TrafficFilterList/**trafficFilterId**/RemotePortRanges** A list of comma separated values specifying remote port ranges to allow. For example, `100-120, 200, 300-320`. -> **Note**  Ports are only valid when the protocol is set to TCP=6 or UDP=17. - - +> [!NOTE] +> Ports are only valid when the protocol is set to TCP=6 or UDP=17. Value type is chr. Supported operations include Get, Add, Replace, and Delete. @@ -233,8 +230,8 @@ Value type is chr. Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/TrafficFilterList/**trafficFilterId**/RoutingPolicyType** Specifies the routing policy if an App or Claims type is used in the traffic filter. The scope of this property is for this traffic filter rule alone. The value can be one of the following: -- SplitTunnel - For this traffic filter rule, only the traffic meant for the VPN interface (as determined by the networking stack) goes over the interface. Internet traffic can continue to go over the other interfaces. -- ForceTunnel - For this traffic rule all IP traffic must go through the VPN Interface only. +- SplitTunnel - For this traffic filter rule, only the traffic meant for the VPN interface (as determined by the networking stack) goes over the interface. Internet traffic can continue to go over the other interfaces. +- ForceTunnel - For this traffic rule all IP traffic must go through the VPN Interface only. This is only applicable for App ID based Traffic Filter rules. @@ -243,8 +240,8 @@ Value type is chr. Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/TrafficFilterList/**trafficFilterId**/Direction** Added in Windows 10, version 2004. Specifies the traffic direction to apply this policy to. Default is Outbound. The value can be one of the following: -- Outbound - The rule applies to all outbound traffic -- Inbound - The rule applies to all inbound traffic +- Outbound - The rule applies to all outbound traffic +- nbound - The rule applies to all inbound traffic If no inbound filter is provided, then by default all unsolicated inbound traffic will be blocked. @@ -265,21 +262,22 @@ Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/AlwaysOn** An optional flag to enable Always On mode. This will automatically connect the VPN at sign-in and will stay connected until the user manually disconnects. -> **Note**  Always On only works for the active profile. The first profile provisioned that can be auto triggered will automatically be set as active. +> [!NOTE] +> Always On only works for the active profile. The first profile provisioned that can be auto triggered will automatically be set as active. Preserving user Always On preference Windows has a feature to preserve a user’s AlwaysOn preference. In the event that a user manually unchecks the “Connect automatically” checkbox, Windows will remember this user preference for this profile name by adding the profile name to the value AutoTriggerDisabledProfilesList. Should a management tool remove/add the same profile name back and set AlwaysOn to true, Windows will not check the box if the profile name exists in the below registry value in order to preserve user preference. -Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Config +Key: `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Config` Value: AutoTriggerDisabledProfilesList Type: REG_MULTI_SZ Valid values: -- False (default) - Always On is turned off. -- True - Always On is turned on. +- False (default) - Always On is turned off. +- True - Always On is turned on. Value type is bool. Supported operations include Get, Add, Replace, and Delete. @@ -288,15 +286,15 @@ Lockdown profile. Valid values: -- False (default) - this is not a LockDown profile. -- True - this is a LockDown profile. +- False (default) - this is not a LockDown profile. +- True - this is a LockDown profile. When the LockDown profile is turned on, it does the following things: -- First, it automatically becomes an "always on" profile. -- Second, it can never be disconnected. -- Third, if the profile is not connected, then the user has no network. -- Fourth, no other profiles may be connected or modified. +- First, it automatically becomes an "always on" profile. +- Second, it can never be disconnected. +- Third, if the profile is not connected, then the user has no network. +- Fourth, no other profiles may be connected or modified. A Lockdown profile must be deleted before you can add, remove, or connect other profiles. @@ -307,14 +305,14 @@ Device tunnel profile. Valid values: -- False (default) - this is not a device tunnel profile. -- True - this is a device tunnel profile. +- False (default) - this is not a device tunnel profile. +- True - this is a device tunnel profile. When the DeviceTunnel profile is turned on, it does the following things: -- First, it automatically becomes an "always on" profile. -- Second, it does not require the presence or logging in of any user to the machine in order for it to connect. -- Third, no other device tunnel profile maybe be present on the same machine. +- First, it automatically becomes an "always on" profile. +- Second, it does not require the presence or logging in of any user to the machine in order for it to connect. +- Third, no other device tunnel profile maybe be present on the same machine. A device tunnel profile must be deleted before another device tunnel profile can be added, removed, or connected. @@ -325,8 +323,8 @@ Allows registration of the connection's address in DNS. Valid values: -- False = Do not register the connection's address in DNS (default). -- True = Register the connection's addresses in DNS. +- False = Do not register the connection's address in DNS (default). +- True = Register the connection's addresses in DNS. **VPNv2/**ProfileName**/DnsSuffix** Optional. Specifies one or more comma separated DNS suffixes. The first in the list is also used as the primary connection specific DNS suffix for the VPN Interface. The entire list will also be added into the SuffixSearchList. @@ -445,22 +443,23 @@ Value type is chr. Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/NativeProfile/RoutingPolicyType** Optional for native profiles. Type of routing policy. This value can be one of the following: -- SplitTunnel - Traffic can go over any interface as determined by the networking stack. -- ForceTunnel - All IP traffic must go over the VPN interface. +- SplitTunnel - Traffic can go over any interface as determined by the networking stack. +- ForceTunnel - All IP traffic must go over the VPN interface. Value type is chr. Supported operations include Get, Add, Replace, and Delete. **VPNv2/**ProfileName**/NativeProfile/NativeProtocolType** Required for native profiles. Type of tunneling protocol used. This value can be one of the following: -- PPTP -- L2TP -- IKEv2 -- Automatic +- PPTP +- L2TP +- IKEv2 +- Automatic Value type is chr. Supported operations include Get, Add, Replace, and Delete. -> **Note** The **Automatic** option means that the device will try each of the built-in tunneling protocols until one succeeds. It will attempt protocols in following order: SSTP, IKEv2, PPTP and then L2TP. This order is not customizable. +> [!NOTE] +> The **Automatic** option means that the device will try each of the built-in tunneling protocols until one succeeds. It will attempt protocols in following order: SSTP, IKEv2, PPTP and then L2TP. This order is not customizable. **VPNv2/**ProfileName**/NativeProfile/Authentication** Required node for native profile. It contains authentication information for the native VPN profile. @@ -512,12 +511,12 @@ Added in Windows 10, version 1607. The following list contains the valid values: -- MD596 -- SHA196 -- SHA256128 -- GCMAES128 -- GCMAES192 -- GCMAES256 +- MD596 +- SHA196 +- SHA256128 +- GCMAES128 +- GCMAES192 +- GCMAES256 Value type is chr. Supported operations include Get, Add, Replace, and Delete. @@ -526,14 +525,14 @@ Added in Windows 10, version 1607. The following list contains the valid values: -- DES -- DES3 -- AES128 -- AES192 -- AES256 -- GCMAES128 -- GCMAES192 -- GCMAES256 +- DES +- DES3 +- AES128 +- AES192 +- AES256 +- GCMAES128 +- GCMAES192 +- GCMAES256 Value type is chr. Supported operations include Get, Add, Replace, and Delete. @@ -542,13 +541,13 @@ Added in Windows 10, version 1607. The following list contains the valid values: -- DES -- DES3 -- AES128 -- AES192 -- AES256 -- AES\_GCM_128 -- AES\_GCM_256 +- DES +- DES3 +- AES128 +- AES192 +- AES256 +- AES\_GCM_128 +- AES\_GCM_256 Value type is chr. Supported operations include Get, Add, Replace, and Delete. @@ -557,10 +556,10 @@ Added in Windows 10, version 1607. The following list contains the valid values: -- MD5 -- SHA196 -- SHA256 -- SHA384 +- MD5 +- SHA196 +- SHA256 +- SHA384 Value type is chr. Supported operations include Get, Add, Replace, and Delete. @@ -569,12 +568,12 @@ Added in Windows 10, version 1607. The following list contains the valid values: -- Group1 -- Group2 -- Group14 -- ECP256 -- ECP384 -- Group24 +- Group1 +- Group2 +- Group14 +- ECP256 +- ECP384 +- Group24 Value type is chr. Supported operations include Get, Add, Replace, and Delete. @@ -583,13 +582,13 @@ Added in Windows 10, version 1607. The following list contains the valid values: -- PFS1 -- PFS2 -- PFS2048 -- ECP256 -- ECP384 -- PFSMM -- PFS24 +- PFS1 +- PFS2 +- PFS2048 +- ECP256 +- ECP384 +- PFSMM +- PFS24 Value type is chr. Supported operations include Get, Add, Replace, and Delete. @@ -1318,8 +1317,7 @@ Servers ``` -## Related topics - +## See also [Configuration service provider reference](configuration-service-provider-reference.md) From 8e7f2e1b7ea7ea32c7569734753c224d18f4962c Mon Sep 17 00:00:00 2001 From: Denise Vangel-MSFT Date: Fri, 30 Oct 2020 08:45:05 -0700 Subject: [PATCH 174/187] Update vpnv2-ddf-file.md --- windows/client-management/mdm/vpnv2-ddf-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/client-management/mdm/vpnv2-ddf-file.md b/windows/client-management/mdm/vpnv2-ddf-file.md index d29d533690..ea97295698 100644 --- a/windows/client-management/mdm/vpnv2-ddf-file.md +++ b/windows/client-management/mdm/vpnv2-ddf-file.md @@ -2,14 +2,14 @@ title: VPNv2 DDF file description: This topic shows the OMA DM device description framework (DDF) for the VPNv2 configuration service provider. ms.assetid: 4E2F36B7-D2EE-4F48-AD1A-6BDE7E72CC94 -ms.reviewer: +ms.reviewer: pesmith manager: dansimp ms.author: dansimp ms.topic: article ms.prod: w10 ms.technology: windows author: manikadhiman -ms.date: 12/05/2017 +ms.date: 10/30/2020 --- # VPNv2 DDF file From 3965c127243c72fcd4f6a9eb768a4afbf0c25364 Mon Sep 17 00:00:00 2001 From: Tudor Dobrila Date: Fri, 30 Oct 2020 11:32:25 -0700 Subject: [PATCH 175/187] Release notes 101.10.72 --- .../threat-protection/microsoft-defender-atp/mac-whatsnew.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/mac-whatsnew.md b/windows/security/threat-protection/microsoft-defender-atp/mac-whatsnew.md index f14a0d3752..bccb1bed4f 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/mac-whatsnew.md +++ b/windows/security/threat-protection/microsoft-defender-atp/mac-whatsnew.md @@ -43,6 +43,10 @@ ms.topic: conceptual > 2. Refer to this documentation for detailed configuration information and instructions: [New configuration profiles for macOS Catalina and newer versions of macOS](mac-sysext-policies.md). > 3. Monitor this page for an announcement of the actual release of MDATP for Mac agent update. +## 101.10.72 + +- Bug fixes + ## 101.09.61 - Added a new managed preference for [disabling the option to send feedback](mac-preferences.md#show--hide-option-to-send-feedback) From cc1d0620d126f4a56902766a9e65df9c5580f8f2 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 30 Oct 2020 13:12:33 -0700 Subject: [PATCH 176/187] enhancements --- windows/security/threat-protection/TOC.md | 3 ++- .../deployment-rings.md | 27 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 4cfb2a5ce5..7cb35259d5 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -19,7 +19,8 @@ ### [Deployment phases](microsoft-defender-atp/deployment-phases.md) ### [Phase 1: Prepare](microsoft-defender-atp/prepare-deployment.md) ### [Phase 2: Set up](microsoft-defender-atp/production-deployment.md) -### [Phase 3: Onboard](microsoft-defender-atp/onboarding.md) +### [Phase 3: Onboard]() +#### [Onboarding overview](microsoft-defender-atp/onboarding.md) #### [Deployment rings](microsoft-defender-atp/deployment-rings.md) #### [Onboarding using Microsoft Endpoint Configuration Manager](microsoft-defender-atp/onboarding-endpoint-configuration-manager.md) #### [Onboarding using Microsoft Endpoint Manager](microsoft-defender-atp/onboarding-endpoint-manager.md) diff --git a/windows/security/threat-protection/microsoft-defender-atp/deployment-rings.md b/windows/security/threat-protection/microsoft-defender-atp/deployment-rings.md index b9a48bb7c4..8ad96f8300 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/deployment-rings.md +++ b/windows/security/threat-protection/microsoft-defender-atp/deployment-rings.md @@ -1,6 +1,6 @@ --- title: Deploy Microsoft Defender ATP in rings -description: Learn how deploy Microsoft Defender ATP in rings +description: Learn how to deploy Microsoft Defender ATP in rings keywords: deploy, rings, evaluate, pilot, insider fast, insider slow, setup, onboard, phase, deployment, deploying, adoption, configuring search.product: eADQiWindows 10XVcnh ms.prod: w10 @@ -50,16 +50,20 @@ Table 1 provides an example of the deployment rings you might use. |**Deployment ring**|**Description**| |:-----|:-----| Evaluate | Ring 1: Identify 50 systems for pilot testing -Pilot | Ring 2: 50-100 systems
    -Full deployment | Ring 3: Roll out service to the rest of environment in larger increments. +Pilot | Ring 2: Identify the next 50-100 endpoints in production environment
    +Full deployment | Ring 3: Roll out service to the rest of environment in larger increments -### Evaluate -Identify a small number of test machines in your environment to onboard to the service. Ideally, these machines would be less than 50 endpoints. -#### Exit criteria +### Exit criteria +An example set of exit criteria for these rings can include: - Devices show up in the device inventory list - Alerts appear in dashboard +- [Run a detection test](run-detection-test.md) +- [Run a simulated attack on a device](attack-simulations.md) + +### Evaluate +Identify a small number of test machines in your environment to onboard to the service. Ideally, these machines would be fewer than 50 endpoints. ### Pilot @@ -76,10 +80,6 @@ The following table shows the supported endpoints and the corresponding tool you | **Android** | [Microsoft Endpoint Manager](android-intune.md) | -#### Exit criteria -- Devices show up in the device inventory list -- [Run a detection test](run-detection-test.md) -- [Run a simulated attack on a device](attack-simulations.md) ### Full deployment @@ -92,16 +92,15 @@ Use the following material to select the appropriate Microsoft Defender ATP arch |:-----|:-----| |[![Thumb image for Microsoft Defender ATP deployment strategy](images/mdatp-deployment-strategy.png)](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.pdf)
    [PDF](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.pdf) \| [Visio](https://github.com/MicrosoftDocs/windows-itpro-docs/raw/public/windows/security/threat-protection/microsoft-defender-atp/downloads/mdatp-deployment-strategy.vsdx) | The architectural material helps you plan your deployment for the following architectures:
    • Cloud-native
    • Co-management
    • On-premise
    • Evaluation and local onboarding
    • -#### Exit criteria? -- Devices show up in the device inventory list + ## Existing deployments ### Windows endpoints -For Windows and/or Windows Servers you select several machines to test ahead of time (before patch Tuesday) by using the **Security Update Validation program (SUVP)**. +For Windows and/or Windows Servers, you select several machines to test ahead of time (before patch Tuesday) by using the **Security Update Validation program (SUVP)**. -For more information see: +For more information, see: - [What is the Security Update Validation Program](https://techcommunity.microsoft.com/t5/windows-it-pro-blog/what-is-the-security-update-validation-program/ba-p/275767) - [Software Update Validation Program and Microsoft Malware Protection Center Establishment - TwC Interactive Timeline Part 4](https://www.microsoft.com/security/blog/2012/03/28/software-update-validation-program-and-microsoft-malware-protection-center-establishment-twc-interactive-timeline-part-4/) From 7794bdbef89d069ef1e2d7068bfbc93de77c53f0 Mon Sep 17 00:00:00 2001 From: Office Content Publishing <34616516+officedocspr@users.noreply.github.com> Date: Sat, 31 Oct 2020 23:33:31 -0700 Subject: [PATCH 177/187] Uploaded file: store-for-business-content-updates.md - 2020-10-31 23:33:31.1281 --- .../includes/store-for-business-content-updates.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 store-for-business/includes/store-for-business-content-updates.md diff --git a/store-for-business/includes/store-for-business-content-updates.md b/store-for-business/includes/store-for-business-content-updates.md new file mode 100644 index 0000000000..168974c2fa --- /dev/null +++ b/store-for-business/includes/store-for-business-content-updates.md @@ -0,0 +1,12 @@ + + + + +## Week of October 26, 2020 + + +| Published On |Topic title | Change | +|------|------------|--------| +| 10/27/2020 | [Add unsigned app to code integrity policy (Windows 10)](/microsoft-store/add-unsigned-app-to-code-integrity-policy) | modified | +| 10/27/2020 | [Device Guard signing (Windows 10)](/microsoft-store/device-guard-signing-portal) | modified | +| 10/27/2020 | [Sign code integrity policy with Device Guard signing (Windows 10)](/microsoft-store/sign-code-integrity-policy-with-device-guard-signing) | modified | From bf80138e9ac9c3e10d1cf355956877ff84f3ea71 Mon Sep 17 00:00:00 2001 From: amirsc3 <42802974+amirsc3@users.noreply.github.com> Date: Mon, 2 Nov 2020 16:53:57 +0200 Subject: [PATCH 178/187] Update commercial-gov.md Fixing typo to avoid customer confusion. Some customers have opened support tickets because they could not understand from the above phrase which "patch" is referred to in this note. --- .../threat-protection/microsoft-defender-atp/commercial-gov.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/commercial-gov.md b/windows/security/threat-protection/microsoft-defender-atp/commercial-gov.md index d4c8c750c8..66906b90f1 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/commercial-gov.md +++ b/windows/security/threat-protection/microsoft-defender-atp/commercial-gov.md @@ -40,7 +40,7 @@ The following OS versions are supported: - Windows Server, 2019 (with [KB4490481](https://support.microsoft.com/en-us/help/4490481)) >[!NOTE] ->A patch must be deployed before device onboarding in order to configure Microsoft Defender ATP to the correct environment. +>The above mentioned patch level must be deployed before device onboarding in order to configure Microsoft Defender ATP to the correct environment. The following OS versions are supported via Azure Security Center: - Windows Server 2008 R2 SP1 From ea7e28f4a430989b1f3261aa00cbb2e3cddae10e Mon Sep 17 00:00:00 2001 From: Denise Vangel-MSFT Date: Mon, 2 Nov 2020 08:52:41 -0800 Subject: [PATCH 179/187] Update manage-updates-baselines-microsoft-defender-antivirus.md --- .../manage-updates-baselines-microsoft-defender-antivirus.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/microsoft-defender-antivirus/manage-updates-baselines-microsoft-defender-antivirus.md b/windows/security/threat-protection/microsoft-defender-antivirus/manage-updates-baselines-microsoft-defender-antivirus.md index 9b48b566fb..f1016b125c 100644 --- a/windows/security/threat-protection/microsoft-defender-antivirus/manage-updates-baselines-microsoft-defender-antivirus.md +++ b/windows/security/threat-protection/microsoft-defender-antivirus/manage-updates-baselines-microsoft-defender-antivirus.md @@ -13,7 +13,7 @@ ms.author: deniseb ms.custom: nextgen ms.reviewer: manager: dansimp -ms.date: 10/29/2020 +ms.date: 11/20/2020 --- # Manage Microsoft Defender Antivirus updates and apply baselines @@ -89,7 +89,7 @@ All our updates contain - New descriptions for special threat categories - Improved emulation capabilities - Improved host address allow/block capabilities -- Disallow clearing exclusions using local PowerShell if a no-override policy is active +- New option in Defender CSP to Ignore merging of local user exclusions ### Known Issues No known issues From 1a39cfe8a82c3b420cab097d32bba2a78cade73d Mon Sep 17 00:00:00 2001 From: Denise Vangel-MSFT Date: Mon, 2 Nov 2020 11:42:06 -0800 Subject: [PATCH 180/187] Update manage-updates-baselines-microsoft-defender-antivirus.md --- .../manage-updates-baselines-microsoft-defender-antivirus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/microsoft-defender-antivirus/manage-updates-baselines-microsoft-defender-antivirus.md b/windows/security/threat-protection/microsoft-defender-antivirus/manage-updates-baselines-microsoft-defender-antivirus.md index f1016b125c..0beba73e43 100644 --- a/windows/security/threat-protection/microsoft-defender-antivirus/manage-updates-baselines-microsoft-defender-antivirus.md +++ b/windows/security/threat-protection/microsoft-defender-antivirus/manage-updates-baselines-microsoft-defender-antivirus.md @@ -79,7 +79,7 @@ All our updates contain
      October-2020 (Platform: 4.18.2010.x | Engine: 1.1.17600.5) - Security intelligence update version: **1.32x.x.x** + Security intelligence update version: **1.327.7.0**  Released: **October 29, 2020**  Platform: **4.18.2010.x**  Engine: **1.1.17600.5** From ee532821ad7be217dfc5ddbfca6c4fdc85f99957 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 2 Nov 2020 11:54:30 -0800 Subject: [PATCH 181/187] update loc tag as per request --- .../microsoft-defender-smartscreen-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md b/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md index b39153d62c..386550279a 100644 --- a/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md +++ b/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md @@ -9,7 +9,7 @@ ms.pagetype: security author: mjcaparas ms.author: macapara audience: ITPro -ms.localizationpriority: medium +ms.localizationpriority: high ms.date: 11/27/2019 ms.reviewer: manager: dansimp From 644d5672a7f6260ed491cb7e678873d228f947a1 Mon Sep 17 00:00:00 2001 From: Gary Moore Date: Mon, 2 Nov 2020 13:48:09 -0800 Subject: [PATCH 182/187] Removed "/en-us" --- .../microsoft-defender-atp/commercial-gov.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/commercial-gov.md b/windows/security/threat-protection/microsoft-defender-atp/commercial-gov.md index 66906b90f1..b4b47744f4 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/commercial-gov.md +++ b/windows/security/threat-protection/microsoft-defender-atp/commercial-gov.md @@ -34,10 +34,10 @@ This offering is currently available to US Office 365 GCC High customers and is The following OS versions are supported: - Windows 10, version 1903 -- Windows 10, version 1809 (OS Build 17763.404 with [KB4490481](https://support.microsoft.com/en-us/help/4490481)) +- Windows 10, version 1809 (OS Build 17763.404 with [KB4490481](https://support.microsoft.com/help/4490481)) - Windows 10, version 1803 (OS Build 17134.799 with [KB4499183](https://support.microsoft.com/help/4499183)) - Windows 10, version 1709 (OS Build 16299.1182 with [KB4499147](https://support.microsoft.com/help/4499147)) -- Windows Server, 2019 (with [KB4490481](https://support.microsoft.com/en-us/help/4490481)) +- Windows Server, 2019 (with [KB4490481](https://support.microsoft.com/help/4490481)) >[!NOTE] >The above mentioned patch level must be deployed before device onboarding in order to configure Microsoft Defender ATP to the correct environment. From c6b904db8394d5c1aba067499716eb7498e81e22 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 2 Nov 2020 13:55:49 -0800 Subject: [PATCH 183/187] update supported endpoint --- .../microsoft-defender-atp/configure-endpoints-vdi.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-endpoints-vdi.md b/windows/security/threat-protection/microsoft-defender-atp/configure-endpoints-vdi.md index 03c9870858..95305f3a79 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-endpoints-vdi.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-endpoints-vdi.md @@ -39,9 +39,9 @@ ms.date: 04/16/2020 Microsoft Defender ATP supports non-persistent VDI session onboarding. >[!Note] ->To onboard non-persistent VDI sessions, VDI devices must be on Windows 10. +>To onboard non-persistent VDI sessions, VDI devices must be Windows 10 or Windows Server 2019. > ->While other Windows versions might work, only Windows 10 is supported. +>While other Windows versions might work, only Windows 10 and Windows Server 2019 are supported. There might be associated challenges when onboarding VDIs. The following are typical challenges for this scenario: From ed0bb185ad3f2d2ed63858f4cbb75364a85c97f6 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 2 Nov 2020 16:42:49 -0800 Subject: [PATCH 184/187] fix scores --- .../basic-permissions.md | 18 ++++----- .../microsoft-defender-atp/common-errors.md | 14 +++---- .../microsoft-defender-atp/configure-siem.md | 6 +-- .../data-storage-privacy.md | 12 +++--- .../exposed-apis-create-app-partners.md | 40 +++++++++---------- .../exposed-apis-full-sample-powershell.md | 12 +++--- .../get-machine-log-on-users.md | 12 +++--- .../get-started-partner-integration.md | 16 ++++---- .../get-user-related-alerts.md | 10 ++--- .../get-user-related-machines.md | 12 +++--- .../investigate-incidents.md | 5 ++- .../microsoft-defender-atp/machineaction.md | 12 +++--- .../microsoft-defender-atp/management-apis.md | 8 ++-- ...oft-defender-advanced-threat-protection.md | 9 ++--- .../microsoft-defender-atp/onboard.md | 6 +-- .../partner-applications.md | 18 ++++++--- .../partner-integration.md | 13 +++--- .../prepare-deployment.md | 22 +++++----- .../run-advanced-query-sample-powershell.md | 14 +++---- .../run-advanced-query-sample-python.md | 12 +++--- .../microsoft-defender-atp/service-status.md | 4 +- .../troubleshoot-live-response.md | 6 +-- .../troubleshoot-onboarding-error-messages.md | 14 +++---- ...microsoft-defender-smartscreen-overview.md | 10 ++--- 24 files changed, 156 insertions(+), 149 deletions(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/basic-permissions.md b/windows/security/threat-protection/microsoft-defender-atp/basic-permissions.md index 82b023af7d..4fd549fcdb 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/basic-permissions.md +++ b/windows/security/threat-protection/microsoft-defender-atp/basic-permissions.md @@ -30,9 +30,9 @@ ms.topic: article Refer to the instructions below to use basic permissions management. -You can use either of the following: +You can use either of the following solutions: - Azure PowerShell -- Azure Portal +- Azure portal For granular control over permissions, [switch to role-based access control](rbac.md). @@ -42,21 +42,21 @@ You can assign users with one of the following levels of permissions: - Read-only access ### Before you begin -- Install Azure PowerShell. For more information see, [How to install and configure Azure PowerShell](https://azure.microsoft.com/documentation/articles/powershell-install-configure/).
      +- Install Azure PowerShell. For more information, see, [How to install and configure Azure PowerShell](https://azure.microsoft.com/documentation/articles/powershell-install-configure/).
      > [!NOTE] > You need to run the PowerShell cmdlets in an elevated command-line. -- Connect to your Azure Active Directory. For more information see, [Connect-MsolService](https://msdn.microsoft.com/library/dn194123.aspx). +- Connect to your Azure Active Directory. For more information, see, [Connect-MsolService](https://msdn.microsoft.com/library/dn194123.aspx). **Full access**
      Users with full access can log in, view all system information and resolve alerts, submit files for deep analysis, and download the onboarding package. Assigning full access rights requires adding the users to the "Security Administrator" or "Global Administrator" AAD built-in roles. -**Read only access**
      -Users with read only access can log in, view all alerts, and related information. +**Read-only access**
      +Users with read-only access can log in, view all alerts, and related information. They will not be able to change alert states, submit files for deep analysis or perform any state changing operations. -Assigning read only access rights requires adding the users to the "Security Reader" AAD built-in role. +Assigning read-only access rights requires adding the users to the "Security Reader" Azure AD built-in role. Use the following steps to assign security roles: @@ -64,12 +64,12 @@ Use the following steps to assign security roles: ```text Add-MsolRoleMember -RoleName "Security Administrator" -RoleMemberEmailAddress "secadmin@Contoso.onmicrosoft.com" ``` -- For **read only** access, assign users to the security reader role by using the following command: +- For **read-only** access, assign users to the security reader role by using the following command: ```text Add-MsolRoleMember -RoleName "Security Reader" -RoleMemberEmailAddress "reader@Contoso.onmicrosoft.com" ``` -For more information see, [Add or remove group memberships](https://technet.microsoft.com/library/321d532e-407d-4e29-a00a-8afbe23008dd#BKMK_ManageGroups). +For more information, see, [Add, or remove group memberships](https://technet.microsoft.com/library/321d532e-407d-4e29-a00a-8afbe23008dd#BKMK_ManageGroups). ## Assign user access using the Azure portal For more information, see [Assign administrator and non-administrator roles to uses with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/fundamentals/active-directory-users-assign-role-azure-portal). diff --git a/windows/security/threat-protection/microsoft-defender-atp/common-errors.md b/windows/security/threat-protection/microsoft-defender-atp/common-errors.md index d34460c4bf..fdb92321bb 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/common-errors.md +++ b/windows/security/threat-protection/microsoft-defender-atp/common-errors.md @@ -22,9 +22,9 @@ ms.topic: article * The error codes listed in the following table may be returned by an operation on any of Microsoft Defender ATP APIs. -* Note that in addition to the error code, every error response contains an error message which can help resolving the problem. -* Note that the message is a free text that can be changed. -* At the bottom of the page you can find response examples. +* In addition to the error code, every error response contains an error message, which can help resolving the problem. +* The message is a free text that can be changed. +* At the bottom of the page, you can find response examples. Error code |HTTP status code |Message :---|:---|:--- @@ -40,7 +40,7 @@ MaximumBatchSizeExceeded | BadRequest (400) | Maximum batch size exceeded. Recei MissingRequiredParameter | BadRequest (400) | Parameter {the missing parameter} is missing. OsPlatformNotSupported | BadRequest (400) | OS Platform {the client OS Platform} is not supported for this action. ClientVersionNotSupported | BadRequest (400) | {The requested action} is supported on client version {supported client version} and above. -Unauthorized | Unauthorized (401) | Unauthorized (usually invalid or expired authorization header). +Unauthorized | Unauthorized (401) | Unauthorized (invalid or expired authorization header). Forbidden | Forbidden (403) | Forbidden (valid token but insufficient permission for the action). DisabledFeature | Forbidden (403) | Tenant feature is not enabled. DisallowedOperation | Forbidden (403) | {the disallowed operation and the reason}. @@ -48,11 +48,11 @@ NotFound | Not Found (404) | General Not Found error message. ResourceNotFound | Not Found (404) | Resource {the requested resource} was not found. InternalServerError | Internal Server Error (500) | (No error message, try retry the operation or contact us if it does not resolved) -## Body parameters are case sensitive +## Body parameters are case-sensitive -The submitted body parameters are currently case sensitive. +The submitted body parameters are currently case-sensitive.
      If you experience an **InvalidRequestBody** or **MissingRequiredParameter** errors, it might be caused from a wrong parameter capital or lower-case letter. -
      It is recommended to go to the requested Api documentation page and check that the submitted parameters match the relevant example. +
      We recommend that you go to the requested API documentation page and check that the submitted parameters match the relevant example. ## Correlation request ID diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-siem.md b/windows/security/threat-protection/microsoft-defender-atp/configure-siem.md index b5d1923c6e..0d53517158 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-siem.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-siem.md @@ -35,7 +35,7 @@ ms.topic: article >- [Microsoft Defender ATP Detection](api-portal-mapping.md) is composed from the suspicious event occurred on the Device and its related Alert details. >-The Microsoft Defender ATP Alert API is the latest API for alert consumption and contain a detailed list of related evidence for each alert. For more information, see [Alert methods and properties](alerts.md) and [List alerts](get-alerts.md). -Microsoft Defender ATP supports security information and event management (SIEM) tools to pull detections. Microsoft Defender ATP exposes alerts through an HTTPS endpoint hosted in Azure. The endpoint can be configured to pull detections from your enterprise tenant in Azure Active Directory (AAD) using the OAuth 2.0 authentication protocol for an AAD application that represents the specific SIEM connector installed in your environment. +Microsoft Defender ATP supports security information and event management (SIEM) tools to pull detections. Microsoft Defender ATP exposes alerts through an HTTPS endpoint hosted in Azure. The endpoint can be configured to pull detections from your enterprise tenant in Azure Active Directory (Azure AD) using the OAuth 2.0 authentication protocol for an Azure AD application that represents the specific SIEM connector installed in your environment. Microsoft Defender ATP currently supports the following specific SIEM solution tools through a dedicated SIEM integration model: @@ -45,14 +45,14 @@ Microsoft Defender ATP currently supports the following specific SIEM solution t Other SIEM solutions (such as Splunk, RSA NetWitness) are supported through a different integration model based on the new Alert API. For more information, view the [Partner application](https://securitycenter.microsoft.com/interoperability/partners) page and select the Security Information and Analytics section for full details. -To use either of these supported SIEM tools you'll need to: +To use either of these supported SIEM tools, you'll need to: - [Enable SIEM integration in Microsoft Defender ATP](enable-siem-integration.md) - Configure the supported SIEM tool: - [Configure HP ArcSight to pull Microsoft Defender ATP detections](configure-arcsight.md) - Configure IBM QRadar to pull Microsoft Defender ATP detections For more information, see [IBM Knowledge Center](https://www.ibm.com/support/knowledgecenter/SS42VS_DSM/com.ibm.dsm.doc/c_dsm_guide_MS_Win_Defender_ATP_overview.html?cp=SS42VS_7.3.1). -For more information on the list of fields exposed in the Detection API see, [Microsoft Defender ATP Detection fields](api-portal-mapping.md). +For more information on the list of fields exposed in the Detection API, see, [Microsoft Defender ATP Detection fields](api-portal-mapping.md). diff --git a/windows/security/threat-protection/microsoft-defender-atp/data-storage-privacy.md b/windows/security/threat-protection/microsoft-defender-atp/data-storage-privacy.md index 6e76ce4bee..82693ece17 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/data-storage-privacy.md +++ b/windows/security/threat-protection/microsoft-defender-atp/data-storage-privacy.md @@ -29,7 +29,7 @@ ms.topic: conceptual This section covers some of the most frequently asked questions regarding privacy and data handling for Microsoft Defender ATP. > [!NOTE] -> This document explains the data storage and privacy details related to Microsoft Defender ATP. For more information related to Microsoft Defender ATP and other products and services like Microsoft Defender Antivirus and Windows 10, see [Microsoft Privacy Statement](https://go.microsoft.com/fwlink/?linkid=827576). See also [Windows 10 privacy FAQ](https://go.microsoft.com/fwlink/?linkid=827577) for more information. +> This document explains the data storage and privacy details related to Microsoft Defender ATP. For more information related to Microsoft Defender ATP and other products and services like Microsoft Defender Antivirus and Windows 10, see [Microsoft Privacy Statement](https://go.microsoft.com/fwlink/?linkid=827576). For more information, see [Windows 10 privacy FAQ](https://go.microsoft.com/fwlink/?linkid=827577). ## What data does Microsoft Defender ATP collect? @@ -47,7 +47,7 @@ This data enables Microsoft Defender ATP to: Microsoft does not use your data for advertising. ## Data protection and encryption -The Microsoft Defender ATP service utilizes state of the art data protection technologies which are based on Microsoft Azure infrastructure. +The Microsoft Defender ATP service utilizes state-of-the-art data protection technologies, which are based on Microsoft Azure infrastructure. There are various aspects relevant to data protection that our service takes care of. Encryption is one of the most critical and it includes data encryption at rest, encryption in flight, and key management with Key Vault. For more information on other technologies used by the Microsoft Defender ATP service, see [Azure encryption overview](https://docs.microsoft.com/azure/security/security-azure-encryption-overview). @@ -79,20 +79,20 @@ Access to data for services deployed in Microsoft Azure Government data centers ## Is data shared with other customers? -No. Customer data is isolated from other customers and is not shared. However, insights on the data resulting from Microsoft processing, and which don’t contain any customer specific data, might be shared with other customers. Each customer can only access data collected from its own organization and generic data that Microsoft provides. +No. Customer data is isolated from other customers and is not shared. However, insights on the data resulting from Microsoft processing, and which don’t contain any customer-specific data, might be shared with other customers. Each customer can only access data collected from its own organization and generic data that Microsoft provides. ## How long will Microsoft store my data? What is Microsoft’s data retention policy? **At service onboarding**
      -You can choose the data retention policy for your data. This determines how long Window Defender ATP will store your data. There’s a flexibility of choosing in the range of 1 month to six months to meet your company’s regulatory compliance needs. +You can choose the data retention policy for your data. This determines how long Window Defender ATP will store your data. There’s a flexibility of choosing in the range of one month to six months to meet your company’s regulatory compliance needs. **At contract termination or expiration**
      Your data will be kept and will be available to you while the license is under grace period or suspended mode. At the end of this period, that data will be erased from Microsoft’s systems to make it unrecoverable, no later than 180 days from contract termination or expiration. ## Can Microsoft help us maintain regulatory compliance? -Microsoft provides customers with detailed information about Microsoft's security and compliance programs, including audit reports and compliance packages, to help customers assess Microsoft Defender ATP services against their own legal and regulatory requirements. Microsoft Defender ATP has achieved a number of certifications including ISO, SOC, FedRAMP High, and PCI and continues to pursue additional national, regional and industry-specific certifications. +Microsoft provides customers with detailed information about Microsoft's security and compliance programs, including audit reports and compliance packages, to help customers assess Microsoft Defender ATP services against their own legal and regulatory requirements. Microsoft Defender ATP has achieved a number of certifications including ISO, SOC, FedRAMP High, and PCI and continues to pursue additional national, regional, and industry-specific certifications. -By providing customers with compliant, independently-verified services, Microsoft makes it easier for customers to achieve compliance for the infrastructure and applications they run. +By providing customers with compliant, independently verified services, Microsoft makes it easier for customers to achieve compliance for the infrastructure and applications they run. For more information on the Microsoft Defender ATP certification reports, see [Microsoft Trust Center](https://servicetrust.microsoft.com/). diff --git a/windows/security/threat-protection/microsoft-defender-atp/exposed-apis-create-app-partners.md b/windows/security/threat-protection/microsoft-defender-atp/exposed-apis-create-app-partners.md index 6e860b794b..22c4b8dd35 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/exposed-apis-create-app-partners.md +++ b/windows/security/threat-protection/microsoft-defender-atp/exposed-apis-create-app-partners.md @@ -26,21 +26,21 @@ ms.topic: article - Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) -This page describes how to create an AAD application to get programmatic access to Microsoft Defender ATP on behalf of your customers. +This page describes how to create an Azure Active Directory (Azure AD) application to get programmatic access to Microsoft Defender ATP on behalf of your customers. Microsoft Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will help you automate work flows and innovate based on Microsoft Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). In general, you’ll need to take the following steps to use the APIs: -- Create a **multi-tenant** AAD application. +- Create a **multi-tenant** Azure AD application. - Get authorized(consent) by your customer administrator for your application to access Microsoft Defender ATP resources it needs. - Get an access token using this application. - Use the token to access Microsoft Defender ATP API. -The following steps with guide you how to create an AAD application, get an access token to Microsoft Defender ATP and validate the token. +The following steps with guide you how to create an Azure AD application, get an access token to Microsoft Defender ATP and validate the token. ## Create the multi-tenant app -1. Log on to your [Azure tenant](https://portal.azure.com) with user that has **Global Administrator** role. +1. Sign in to your [Azure tenant](https://portal.azure.com) with user that has **Global Administrator** role. 2. Navigate to **Azure Active Directory** > **App registrations** > **New registration**. @@ -59,15 +59,15 @@ The following steps with guide you how to create an AAD application, get an acce 4. Allow your Application to access Microsoft Defender ATP and assign it with the minimal set of permissions required to complete the integration. - - On your application page, click **API Permissions** > **Add permission** > **APIs my organization uses** > type **WindowsDefenderATP** and click on **WindowsDefenderATP**. + - On your application page, select **API Permissions** > **Add permission** > **APIs my organization uses** > type **WindowsDefenderATP** and select on **WindowsDefenderATP**. - - **Note**: WindowsDefenderATP does not appear in the original list. You need to start writing its name in the text box to see it appear. + - **Note**: WindowsDefenderATP does not appear in the original list. Start writing its name in the text box to see it appear. ![Image of API access and API selection](images/add-permission.png) ### Request API permissions - To determine which permission you need, please look at the **Permissions** section in the API you are interested to call. For instance: + To determine which permission you need, review the **Permissions** section in the API you are interested to call. For instance: - To [run advanced queries](run-advanced-query-api.md), select 'Run advanced queries' permission @@ -75,20 +75,20 @@ The following steps with guide you how to create an AAD application, get an acce In the following example we will use **'Read all alerts'** permission: - Choose **Application permissions** > **Alert.Read.All** > Click on **Add permissions** + Choose **Application permissions** > **Alert.Read.All** > select on **Add permissions** ![Image of API access and API selection](images/application-permissions.png) -5. Click **Grant consent** +5. Select **Grant consent** - - **Note**: Every time you add permission you must click on **Grant consent** for the new permission to take effect. + - **Note**: Every time you add permission you must select on **Grant consent** for the new permission to take effect. ![Image of Grant permissions](images/grant-consent.png) 6. Add a secret to the application. - - Click **Certificates & secrets**, add description to the secret and click **Add**. + - Select **Certificates & secrets**, add description to the secret and select **Add**. **Important**: After click Add, **copy the generated secret value**. You won't be able to retrieve after you leave! @@ -96,7 +96,7 @@ The following steps with guide you how to create an AAD application, get an acce 7. Write down your application ID: - - On your application page, go to **Overview** and copy the following: + - On your application page, go to **Overview** and copy the following information: ![Image of created app id](images/app-id.png) @@ -104,7 +104,7 @@ The following steps with guide you how to create an AAD application, get an acce You need your application to be approved in each customer tenant where you intend to use it. This is because your application interacts with Microsoft Defender ATP application on behalf of your customer. - A user with **Global Administrator** from your customer's tenant need to click the consent link and approve your application. + A user with **Global Administrator** from your customer's tenant need to select the consent link and approve your application. Consent link is of the form: @@ -114,7 +114,7 @@ The following steps with guide you how to create an AAD application, get an acce Where 00000000-0000-0000-0000-000000000000 should be replaced with your Application ID - After clicking on the consent link, login with the Global Administrator of the customer's tenant and consent the application. + After clicking on the consent link, sign in with the Global Administrator of the customer's tenant and consent the application. ![Image of consent](images/app-consent-partner.png) @@ -123,11 +123,11 @@ The following steps with guide you how to create an AAD application, get an acce - **Done!** You have successfully registered an application! - See examples below for token acquisition and validation. -## Get an access token examples: +## Get an access token example: -**Note:** to get access token on behalf of your customer, use the customer's tenant ID on the following token acquisitions. +**Note:** To get access token on behalf of your customer, use the customer's tenant ID on the following token acquisitions. -
      For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.com/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds) +
      For more information on AAD token, see [AAD tutorial](https://docs.microsoft.com/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds) ### Using PowerShell @@ -158,14 +158,14 @@ return $token >The below code was tested with Nuget Microsoft.IdentityModel.Clients.ActiveDirectory - Create a new Console Application -- Install Nuget [Microsoft.IdentityModel.Clients.ActiveDirectory](https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/) +- Install NuGet [Microsoft.IdentityModel.Clients.ActiveDirectory](https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/) - Add the below using ``` using Microsoft.IdentityModel.Clients.ActiveDirectory; ``` -- Copy/Paste the below code in your application (do not forget to update the 3 variables: ```tenantId, appId, appSecret```) +- Copy/Paste the below code in your application (do not forget to update the three variables: ```tenantId, appId, appSecret```) ``` string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here @@ -221,7 +221,7 @@ Sanity check to make sure you got a correct token: - Choose the API you want to use, for more information, see [Supported Microsoft Defender ATP APIs](exposed-apis-list.md) - Set the Authorization header in the Http request you send to "Bearer {token}" (Bearer is the Authorization scheme) -- The Expiration time of the token is 1 hour (you can send more then one request with the same token) +- The Expiration time of the token is 1 hour (you can send more than one request with the same token) - Example of sending a request to get a list of alerts **using C#** ``` diff --git a/windows/security/threat-protection/microsoft-defender-atp/exposed-apis-full-sample-powershell.md b/windows/security/threat-protection/microsoft-defender-atp/exposed-apis-full-sample-powershell.md index bdb9fddc2c..ca41b7420b 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/exposed-apis-full-sample-powershell.md +++ b/windows/security/threat-protection/microsoft-defender-atp/exposed-apis-full-sample-powershell.md @@ -1,5 +1,5 @@ --- -title: Advanced Hunting with Powershell API Guide +title: Advanced Hunting with PowerShell API Guide ms.reviewer: description: Use these code samples, querying several Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP) APIs. keywords: apis, supported apis, advanced hunting, query @@ -28,7 +28,7 @@ ms.date: 09/24/2018 Full scenario using multiple APIs from Microsoft Defender ATP. -In this section we share PowerShell samples to +In this section, we share PowerShell samples to - Retrieve a token - Use token to retrieve the latest alerts in Microsoft Defender ATP - For each alert, if the alert has medium or high priority and is still in progress, check how many times the device has connected to suspicious URL. @@ -43,15 +43,15 @@ In this section we share PowerShell samples to Set-ExecutionPolicy -ExecutionPolicy Bypass ``` -For more details, refer to [PowerShell documentation](https://docs.microsoft.com/powershell/module/microsoft.powershell.security/set-executionpolicy) +For more information, see [PowerShell documentation](https://docs.microsoft.com/powershell/module/microsoft.powershell.security/set-executionpolicy) ## Get token Run the below: -- $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) -- $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to Microsoft Defender ATP) -- $appSecret: Secret of your AAD app +- $tenantId: ID of the tenant on behalf of which you want to run the query (that is, the query will be run on the data of this tenant) +- $appId: ID of your Azure AD app (the app must have 'Run advanced queries' permission to Microsoft Defender ATP) +- $appSecret: Secret of your Azure AD app - $suspiciousUrl: The URL diff --git a/windows/security/threat-protection/microsoft-defender-atp/get-machine-log-on-users.md b/windows/security/threat-protection/microsoft-defender-atp/get-machine-log-on-users.md index ea5713e42e..51dbfaed23 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/get-machine-log-on-users.md +++ b/windows/security/threat-protection/microsoft-defender-atp/get-machine-log-on-users.md @@ -1,6 +1,6 @@ --- -title: Get machine log on users API -description: Learn how to use the Get machine log on users API to retrieve a collection of logged on users on a device in Microsoft Defender Advanced Threat Protection. +title: Get machine logon users API +description: Learn how to use the Get machine logon users API to retrieve a collection of logged on users on a device in Microsoft Defender Advanced Threat Protection. keywords: apis, graph api, supported apis, get, device, log on, users search.product: eADQiWindows 10XVcnh ms.prod: w10 @@ -16,7 +16,7 @@ ms.collection: M365-security-compliance ms.topic: article --- -# Get machine log on users API +# Get machine logon users API [!INCLUDE [Microsoft 365 Defender rebranding](../../includes/microsoft-defender.md)] @@ -45,8 +45,8 @@ Delegated (work or school account) | User.Read.All | 'Read user profiles' >[!Note] > When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles.md) for more information) ->- Response will include users only if the device is visible to the user, based on device group settings (See [Create and manage device groups](machine-groups.md) for more information) +>- The user needs to have at least the following role permission: 'View Data'. For more information, see [Create and manage roles](user-roles.md) ) +>- Response will include users only if the device is visible to the user, based on device group settings. For more information, see [Create and manage device groups](machine-groups.md). ## HTTP request ```http @@ -64,7 +64,7 @@ Authorization | String | Bearer {token}. **Required**. Empty ## Response -If successful and device exist - 200 OK with list of [user](user.md) entities in the body. If device was not found - 404 Not Found. +If successful and device exists - 200 OK with list of [user](user.md) entities in the body. If device was not found - 404 Not Found. ## Example diff --git a/windows/security/threat-protection/microsoft-defender-atp/get-started-partner-integration.md b/windows/security/threat-protection/microsoft-defender-atp/get-started-partner-integration.md index 09c65fdff1..8bea8e41dc 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/get-started-partner-integration.md +++ b/windows/security/threat-protection/microsoft-defender-atp/get-started-partner-integration.md @@ -1,7 +1,7 @@ --- title: Become a Microsoft Defender ATP partner ms.reviewer: -description: Learn the steps and requirements so that you can integrate your solution with Microsoft Defender ATP and be a partner +description: Learn the steps and requirements to integrate your solution with Microsoft Defender ATP and be a partner keywords: partner, integration, solution validation, certification, requirements, member, misa, application portal search.product: eADQiWindows 10XVcnh search.appverid: met150 @@ -29,7 +29,7 @@ ms.topic: conceptual To become a Microsoft Defender ATP solution partner, you'll need to follow and complete the following steps. ## Step 1: Subscribe to a Microsoft Defender ATP Developer license -Subscribing to the [Microsoft Defender ATP Developer license](https://winatpregistration-prd.trafficmanager.net/Developer/UserAgreement?Length=9) allows you to use a Microsoft Defender ATP tenant with up to 10 devices for developing solutions to integrate with Microsoft Defender ATP. +Subscribe to the [Microsoft Defender ATP Developer license](https://winatpregistration-prd.trafficmanager.net/Developer/UserAgreement?Length=9). Subscribing allows you to use a Microsoft Defender ATP tenant with up to 10 devices to developing solutions that integrate with Microsoft Defender ATP. ## Step 2: Fulfill the solution validation and certification requirements The best way for technology partners to certify that their integration works is to have a joint customer approve the suggested integration design (the customer can use the **Recommend a partner** option in the [Partner Application page](https://securitycenter.microsoft.com/interoperability/partners) in the Microsoft Defender Security Center) and have it tested and demoed to the Microsoft Defender ATP team. @@ -42,16 +42,16 @@ Once the Microsoft Defender ATP team has reviewed and approves the integration, ## Step 4: Get listed in the Microsoft Defender ATP partner application portal Microsoft Defender ATP supports third-party applications discovery and integration using the in-product [partner page](partner-applications.md) that is embedded within the Microsoft Defender ATP management portal. -To have your company listed as a partner in the in-product partner page, you will need to provide the following: +To have your company listed as a partner in the in-product partner page, you will need to provide the following information: 1. A square logo (SVG). 2. Name of the product to be presented. 3. Provide a 15-word product description. -4. Link to the landing page for the customer to complete the integration or blog post that will include sufficient information for customers. Please note that any press release including the Microsoft Defender ATP product name should be reviewed by the marketing and engineering teams. You should allow at least 10 days for review process to be performed. -5. If you use a multi-tenant Azure AD approach, we will need the AAD application name to track usage of the application. -6. We'd like to request that you include the User-Agent field in each API call made to Microsoft Defender ATP public set of APIs or Graph Security APIs. This will be used for statistical purposes, troubleshooting, and partner recognition. In addition, this step is a requirement for membership in Microsoft Intelligent Security Association (MISA). +4. Link to the landing page for the customer to complete the integration or blog post that will include sufficient information for customers. Any press release including the Microsoft Defender ATP product name should be reviewed by the marketing and engineering teams. Wait for at least 10 days for the review process to be done. +5. If you use a multi-tenant Azure AD approach, we will need the Azure AD application name to track usage of the application. +6. Include the User-Agent field in each API call made to Microsoft Defender ATP public set of APIs or Graph Security APIs. This will be used for statistical purposes, troubleshooting, and partner recognition. In addition, this step is a requirement for membership in Microsoft Intelligent Security Association (MISA). Follow these steps: - 1. Identify a name adhering to the following nomenclature that includes your company name and the Microsoft Defender ATP integrated product with the version of the product that includes this integration. + 1. Identify a name adhering to the following nomenclature that includes your company name and the Microsoft Defender ATP-integrated product with the version of the product that includes this integration. - ISV Nomenclature: `MdatpPartner-{CompanyName}-{ProductName}/{Version}` - Security partner Nomenclature: `MdatpPartner-{CompanyName}-{ProductName}/{TenantID}` @@ -59,7 +59,7 @@ To have your company listed as a partner in the in-product partner page, you wil For more information, see [RFC 2616 section-14.43](https://tools.ietf.org/html/rfc2616#section-14.43). For example, User-Agent: `MdatpPartner-Contoso-ContosoCognito/1.0.0` -Partnership with Microsoft Defender ATP help our mutual customers to further streamline, integrate, and orchestrate defenses. We are happy that you chose to become a Microsoft Defender ATP partner and to achieve our common goal of effectively protecting customers and their assets by preventing and responding to modern threats together. +Partnerships with Microsoft Defender ATP help our mutual customers to further streamline, integrate, and orchestrate defenses. We are happy that you chose to become a Microsoft Defender ATP partner and to achieve our common goal of effectively protecting customers and their assets by preventing and responding to modern threats together. ## Related topics - [Technical partner opportunities](partner-integration.md) diff --git a/windows/security/threat-protection/microsoft-defender-atp/get-user-related-alerts.md b/windows/security/threat-protection/microsoft-defender-atp/get-user-related-alerts.md index 95225803d9..5ccd353fa2 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/get-user-related-alerts.md +++ b/windows/security/threat-protection/microsoft-defender-atp/get-user-related-alerts.md @@ -1,5 +1,5 @@ --- -title: Get user related alerts API +title: Get user-related alerts API description: Retrieve a collection of alerts related to a given user ID using Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP). keywords: apis, graph api, supported apis, get, user, related, alerts search.product: eADQiWindows 10XVcnh @@ -16,7 +16,7 @@ ms.collection: M365-security-compliance ms.topic: article --- -# Get user related alerts API +# Get user-related alerts API [!INCLUDE [Microsoft 365 Defender rebranding](../../includes/microsoft-defender.md)] @@ -46,7 +46,7 @@ Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' >[!Note] > When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles.md) for more information) +>- The user needs to have at least the following role permission: 'View Data'. For more information, see [Create and manage roles](user-roles.md). >- Response will include only alerts, associated with devices, that the user have access to, based on device group settings (See [Create and manage device groups](machine-groups.md) for more information) ## HTTP request @@ -54,7 +54,7 @@ Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' GET /api/users/{id}/alerts ``` -**Note that the id is not the full UPN, but only the user name. (e.g., to retrieve alerts for user1@contoso.com use /api/users/user1/alerts)** +**The ID is not the full UPN, but only the user name. (for example, to retrieve alerts for user1@contoso.com use /api/users/user1/alerts)** ## Request headers @@ -67,7 +67,7 @@ Authorization | String | Bearer {token}. **Required**. Empty ## Response -If successful and user exist - 200 OK. If the user do not exist - 404 Not Found. +If successful and user exists - 200 OK. If the user does not exist - 404 Not Found. ## Example diff --git a/windows/security/threat-protection/microsoft-defender-atp/get-user-related-machines.md b/windows/security/threat-protection/microsoft-defender-atp/get-user-related-machines.md index f3b126e12f..4fe938bf97 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/get-user-related-machines.md +++ b/windows/security/threat-protection/microsoft-defender-atp/get-user-related-machines.md @@ -1,6 +1,6 @@ --- -title: Get user related machines API -description: Learn how to use the Get user related machines API to retrieve a collection of devices related to a user ID in Microsoft Defender Advanced Threat Protection. +title: Get user-related machines API +description: Learn how to use the Get user-related machines API to retrieve a collection of devices related to a user ID in Microsoft Defender Advanced Threat Protection. keywords: apis, graph api, supported apis, get, user, user related alerts search.product: eADQiWindows 10XVcnh ms.prod: w10 @@ -16,7 +16,7 @@ ms.collection: M365-security-compliance ms.topic: article --- -# Get user related machines API +# Get user-related machines API [!INCLUDE [Microsoft 365 Defender rebranding](../../includes/microsoft-defender.md)] @@ -46,15 +46,15 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine >[!Note] > When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles.md) for more information) ->- Response will include only devices that the user can access, based on device group settings (See [Create and manage device groups](machine-groups.md) for more information) +>- The user needs to have at least the following role permission: 'View Data'. For more information, see [Create and manage roles](user-roles.md) ) +>- Response will include only devices that the user can access, based on device group settings. For more information, see [Create and manage device groups](machine-groups.md). ## HTTP request ``` GET /api/users/{id}/machines ``` -**Note that the id is not the full UPN, but only the user name. (e.g., to retrieve machines for user1@contoso.com use /api/users/user1/machines)** +**The ID is not the full UPN, but only the user name. (for example, to retrieve machines for user1@contoso.com use /api/users/user1/machines)** ## Request headers diff --git a/windows/security/threat-protection/microsoft-defender-atp/investigate-incidents.md b/windows/security/threat-protection/microsoft-defender-atp/investigate-incidents.md index 06ed19033e..871b6e1473 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/investigate-incidents.md +++ b/windows/security/threat-protection/microsoft-defender-atp/investigate-incidents.md @@ -68,7 +68,8 @@ Select **Investigations** to see all the automatic investigations launched by th ![Image of investigations tab in incident details page](images/atp-incident-investigations-tab.png) ## Going through the evidence -Microsoft Defender Advanced Threat Protection automatically investigates all the incidents' supported events and suspicious entities in the alerts, providing you with auto-response and information about the important files, processes, services, and more. This helps quickly detect and block potential threats in the incident. +Microsoft Defender Advanced Threat Protection automatically investigates all the incidents' supported events and suspicious entities in the alerts, providing you with autoresponse and information about the important files, processes, services, and more. + Each of the analyzed entities will be marked as infected, remediated, or suspicious. ![Image of evidence tab in incident details page](images/atp-incident-evidence-tab.png) @@ -81,7 +82,7 @@ The **Graph** tells the story of the cybersecurity attack. For example, it shows ![Image of the incident graph](images/atp-incident-graph-tab.png) -You can click the circles on the incident graph to view the details of the malicious files, associated file detections, how many instances has there been worldwide, whether it’s been observed in your organization, if so, how many instances. +You can click the circles on the incident graph to view the details of the malicious files, associated file detections, how many instances have there been worldwide, whether it’s been observed in your organization, if so, how many instances. ![Image of incident details](images/atp-incident-graph-details.png) diff --git a/windows/security/threat-protection/microsoft-defender-atp/machineaction.md b/windows/security/threat-protection/microsoft-defender-atp/machineaction.md index 19f660b07e..90bf8cebb8 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/machineaction.md +++ b/windows/security/threat-protection/microsoft-defender-atp/machineaction.md @@ -25,7 +25,7 @@ ms.topic: article - Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) -- See [Response Actions](respond-machine-alerts.md) for more information +- For more information, see [Response Actions](respond-machine-alerts.md). | Method | Return Type | Description | |:------------------------------------------------------------------|:-----------------------------------|:------------------------------------------------------------| @@ -47,17 +47,17 @@ ms.topic: article | Property | Type | Description | |:--------------------|:---------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| id | Guid | Identity of the [Machine Action](machineaction.md) entity. | +| ID | Guid | Identity of the [Machine Action](machineaction.md) entity. | | type | Enum | Type of the action. Possible values are: "RunAntiVirusScan", "Offboard", "CollectInvestigationPackage", "Isolate", "Unisolate", "StopAndQuarantineFile", "RestrictCodeExecution" and "UnrestrictCodeExecution" | -| scope | string | Scope of the action. "Full" or "Selective" in case of Isolation, "Quick" or "Full" in case of Anti-Virus scan. | +| scope | string | Scope of the action. "Full" or "Selective" for Isolation, "Quick" or "Full" for Anti-Virus scan. | | requestor | String | Identity of the person that executed the action. | | requestorComment | String | Comment that was written when issuing the action. | -| status | Enum | Current status of the command. Possible values are: "Pending", "InProgress", "Succeeded", "Failed", "TimeOut" and "Cancelled". | -| machineId | String | Id of the [machine](machine.md) on which the action was executed. | +| status | Enum | Current status of the command. Possible values are: "Pending", "InProgress", "Succeeded", "Failed", "TimeOut" and "Canceled". | +| machineId | String | ID of the [machine](machine.md) on which the action was executed. | | machineId | String | Name of the [machine](machine.md) on which the action was executed. | | creationDateTimeUtc | DateTimeOffset | The date and time when the action was created. | | lastUpdateTimeUtc | DateTimeOffset | The last date and time when the action status was updated. | -| relatedFileInfo | Class | Contains two Properties. string ```fileIdentifier```, Enum ```fileIdentifierType``` with the possible values: "Sha1" ,"Sha256" and "Md5". | +| relatedFileInfo | Class | Contains two Properties. string ```fileIdentifier```, Enum ```fileIdentifierType``` with the possible values: "Sha1", "Sha256" and "Md5". | ## Json representation diff --git a/windows/security/threat-protection/microsoft-defender-atp/management-apis.md b/windows/security/threat-protection/microsoft-defender-atp/management-apis.md index 0a71770ee3..c3176ac54a 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/management-apis.md +++ b/windows/security/threat-protection/microsoft-defender-atp/management-apis.md @@ -55,12 +55,12 @@ The Microsoft Defender ATP APIs can be grouped into three: ## Microsoft Defender ATP APIs -Microsoft Defender ATP offers a layered API model exposing data and capabilities in a structured, clear and easy to use model, exposed through a standard Azure AD-based authentication and authorization model allowing access in context of users or SaaS applications. The API model was designed to expose entities and capabilities in a consistent form. +Microsoft Defender ATP offers a layered API model exposing data and capabilities in a structured, clear, and easy to use model, exposed through a standard Azure AD-based authentication and authorization model allowing access in context of users or SaaS applications. The API model was designed to expose entities and capabilities in a consistent form. Watch this video for a quick overview of Microsoft Defender ATP's APIs. >[!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE4d73M] -The **Investigation API** exposes the richness of Microsoft Defender ATP - exposing calculated or 'profiled' entities (for example, device, user, and file) and discrete events (for example, process creation and file creation) which typically describes a behavior related to an entity, enabling access to data via investigation interfaces allowing a query-based access to data. For more information see, [Supported APIs](exposed-apis-list.md). +The **Investigation API** exposes the richness of Microsoft Defender ATP - exposing calculated or 'profiled' entities (for example, device, user, and file) and discrete events (for example, process creation and file creation) which typically describes a behavior related to an entity, enabling access to data via investigation interfaces allowing a query-based access to data. For more information, see, [Supported APIs](exposed-apis-list.md). The **Response API** exposes the ability to take actions in the service and on devices, enabling customers to ingest indicators, manage settings, alert status, as well as take response actions on devices programmatically such as isolate devices from the network, quarantine files, and others. @@ -69,11 +69,11 @@ Microsoft Defender ATP raw data streaming API provides the ability for customers The Microsoft Defender ATP event information is pushed directly to Azure storage for long-term data retention, or to Azure Event Hubs for consumption by visualization services or additional data processing engines. -For more information see, [Raw data streaming API](raw-data-export.md). +For more information, see, [Raw data streaming API](raw-data-export.md). ## SIEM API -When you enable security information and event management (SIEM) integration it allows you to pull detections from Microsoft Defender Security Center using your SIEM solution or by connecting directly to the detections REST API. This activates the SIEM connector access details section with pre-populated values and an application is created under you Azure Active Directory (AAD) tenant. For more information see, [SIEM integration](enable-siem-integration.md) +When you enable security information and event management (SIEM) integration, it allows you to pull detections from Microsoft Defender Security Center using your SIEM solution or by connecting directly to the detections REST API. This activates the SIEM connector access details section with pre-populated values and an application is created under your Azure Active Directory (Azure AD) tenant. For more information, see, [SIEM integration](enable-siem-integration.md) ## Related topics - [Access the Microsoft Defender Advanced Threat Protection APIs ](apis-intro.md) diff --git a/windows/security/threat-protection/microsoft-defender-atp/microsoft-defender-advanced-threat-protection.md b/windows/security/threat-protection/microsoft-defender-atp/microsoft-defender-advanced-threat-protection.md index d45c5c585e..c25bf6630c 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/microsoft-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/microsoft-defender-atp/microsoft-defender-advanced-threat-protection.md @@ -33,8 +33,7 @@ Microsoft Defender Advanced Threat Protection is an enterprise endpoint security Microsoft Defender ATP uses the following combination of technology built into Windows 10 and Microsoft's robust cloud service: -- **Endpoint behavioral sensors**: Embedded in Windows 10, these sensors - collect and process behavioral signals from the operating system and sends this sensor data to your private, isolated, cloud instance of Microsoft Defender ATP. +- **Endpoint behavioral sensors**: Embedded in Windows 10, these sensors collect and process behavioral signals from the operating system and send this sensor data to your private, isolated, cloud instance of Microsoft Defender ATP. - **Cloud security analytics**: Leveraging big-data, device-learning, and @@ -46,7 +45,7 @@ Microsoft Defender ATP uses the following combination of technology built into W - **Threat intelligence**: Generated by Microsoft hunters, security teams, and augmented by threat intelligence provided by partners, threat intelligence enables Microsoft Defender ATP to identify attacker - tools, techniques, and procedures, and generate alerts when these + tools, techniques, and procedures, and generate alerts when they are observed in collected sensor data. @@ -86,7 +85,7 @@ This built-in capability uses a game-changing risk-based approach to the discove **[Attack surface reduction](overview-attack-surface-reduction.md)**
      -The attack surface reduction set of capabilities provide the first line of defense in the stack. By ensuring configuration settings are properly set and exploit mitigation techniques are applied, these set of capabilities resist attacks and exploitation. This set of capabilities also includes [network protection](network-protection.md) and [web protection](web-protection-overview.md), which regulate access to malicious IP addresses, domains, and URLs. +The attack surface reduction set of capabilities provides the first line of defense in the stack. By ensuring configuration settings are properly set and exploit mitigation techniques are applied, the capabilities resist attacks and exploitation. This set of capabilities also includes [network protection](network-protection.md) and [web protection](web-protection-overview.md), which regulate access to malicious IP addresses, domains, and URLs. @@ -135,7 +134,7 @@ Integrate Microsoft Defender Advanced Threat Protection into your existing workf - Microsoft Cloud App Security **[Microsoft Threat Protection](https://docs.microsoft.com/microsoft-365/security/mtp/microsoft-threat-protection)**
      - With Microsoft Threat Protection, Microsoft Defender ATP and various Microsoft security solutions form a unified pre- and post-breach enterprise defense suite that natively integrates across endpoint, identity, email, and applications to detect, prevent, investigate and automatically respond to sophisticated attacks. + With Microsoft Threat Protection, Microsoft Defender ATP and various Microsoft security solutions form a unified pre- and post-breach enterprise defense suite that natively integrates across endpoint, identity, email, and applications to detect, prevent, investigate, and automatically respond to sophisticated attacks. ## Related topic diff --git a/windows/security/threat-protection/microsoft-defender-atp/onboard.md b/windows/security/threat-protection/microsoft-defender-atp/onboard.md index dc8e5dab0c..78edeae3ef 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/onboard.md +++ b/windows/security/threat-protection/microsoft-defender-atp/onboard.md @@ -1,7 +1,7 @@ --- title: Configure and manage Microsoft Defender ATP capabilities ms.reviewer: -description: Configure and manage Microsoft Defender ATP capabilities such as attack surface reduction, next-generation protection, and security controls +description: Configure and manage Microsoft Defender ATP capabilities such as attack surface reduction, and next-generation protection keywords: configure, manage, capabilities, attack surface reduction, next-generation protection, security controls, endpoint detection and response, auto investigation and remediation, security controls, controls search.product: eADQiWindows 10XVcnh search.appverid: met150 @@ -32,12 +32,12 @@ Configure and manage all the Microsoft Defender ATP capabilities to get the best ## In this section Topic | Description :---|:--- -[Configure attack surface reduction capabilities](configure-attack-surface-reduction.md) | By ensuring configuration settings are properly set and exploit mitigation techniques are applied, these set of capabilities resist attacks and exploitations. +[Configure attack surface reduction capabilities](configure-attack-surface-reduction.md) | By ensuring configuration settings are properly set and exploit mitigation techniques are applied, these set of capabilities resist attacks and exploitation. [Configure next-generation protection](../microsoft-defender-antivirus/configure-microsoft-defender-antivirus-features.md) | Configure next-generation protection to catch all types of emerging threats. [Configure Microsoft Threat Experts capabilities](configure-microsoft-threat-experts.md) | Configure and manage how you would like to get cybersecurity threat intelligence from Microsoft Threat Experts. [Configure Microsoft Threat Protection integration](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/threat-protection-integration)| Configure other solutions that integrate with Microsoft Defender ATP. [Management and API support](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/management-apis)| Pull alerts to your SIEM or use APIs to create custom alerts. Create and build Power BI reports. -[Configure Microsoft Defender Security Center settings](preferences-setup.md) | Configure portal related settings such as general settings, advanced features, enable the preview experience and others. +[Configure Microsoft Defender Security Center settings](preferences-setup.md) | Configure portal-related settings such as general settings, advanced features, enable the preview experience and others. diff --git a/windows/security/threat-protection/microsoft-defender-atp/partner-applications.md b/windows/security/threat-protection/microsoft-defender-atp/partner-applications.md index 19b0432ed6..822b5afaab 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/partner-applications.md +++ b/windows/security/threat-protection/microsoft-defender-atp/partner-applications.md @@ -30,9 +30,15 @@ ms.topic: conceptual Microsoft Defender ATP supports third-party applications to help enhance the detection, investigation, and threat intelligence capabilities of the platform. -The support for third-party solutions help to further streamline, integrate, and orchestrate defenses from other vendors with Microsoft Defender ATP; enabling security teams to effectively respond better to modern threats. +The support for third-party solutions helps to further streamline, integrate, and orchestrate defenses from other vendors with Microsoft Defender ATP; enabling security teams to effectively respond better to modern threats. -Microsoft Defender ATP seamlessly integrates with existing security solutions — providing out of the box integration with SIEM, ticketing and IT service management solutions, managed security service providers (MSSP), IoC indicators ingestions and matching, automated device investigation and remediation based on external alerts, and integration with Security orchestration and automation response (SOAR) systems. +Microsoft Defender ATP seamlessly integrates with existing security solutions. The integration provides integration with the following solutions such as: +- SIEM +- Ticketing and IT service management solutions +- Managed security service providers (MSSP) +- IoC indicators ingestions and matching +- Automated device investigation and remediation based on external alerts +- Integration with Security orchestration and automation response (SOAR) systems ## Supported applications @@ -49,7 +55,7 @@ Logo |Partner name | Description ![Image of Micro Focus ArcSight logo](images/arcsight-logo.png) | [Micro Focus ArcSight](https://go.microsoft.com/fwlink/?linkid=2113548) | Use Micro Focus ArcSight to pull Microsoft Defender ATP detections ![Image of RSA NetWitness logo](images/rsa-netwitness-logo.png) | [RSA NetWitness](https://go.microsoft.com/fwlink/?linkid=2118566) | Stream Microsoft Defender ATP Alerts to RSA NetWitness leveraging Microsoft Graph Security API ![Image of SafeBreach logo](images/safebreach-logo.png) | [SafeBreach](https://go.microsoft.com/fwlink/?linkid=2114114)| Gain visibility into Microsoft Defender ATP security events that are automatically correlated with SafeBreach simulations -![Image of Skybox Vulnerability Control logo](images/skybox-logo.png) | [Skybox Vulnerability Control](https://go.microsoft.com/fwlink/?linkid=2127467) | Skybox Vulnerability Control cuts through the noise of vulnerability management, correlating business, network and threat context to uncover your riskiest vulnerabilities +![Image of Skybox Vulnerability Control logo](images/skybox-logo.png) | [Skybox Vulnerability Control](https://go.microsoft.com/fwlink/?linkid=2127467) | Skybox Vulnerability Control cuts through the noise of vulnerability management, correlating business, network, and threat context to uncover your riskiest vulnerabilities ![Image of Splunk logo](images/splunk-logo.png) | [Splunk](https://go.microsoft.com/fwlink/?linkid=2129805) | The Microsoft Defender ATP Add-on allows Splunk users to ingest all of the alerts and supporting information to their Splunk ![Image of XM Cyber logo](images/xmcyber-logo.png) | [XM Cyber](https://go.microsoft.com/fwlink/?linkid=2136700) | Prioritize your response to an alert based on risk factors and high value assets @@ -60,7 +66,7 @@ Logo |Partner name | Description :---|:---|:--- ![Image of CyberSponse CyOps logo](images/cybersponse-logo.png) | [CyberSponse CyOps](https://go.microsoft.com/fwlink/?linkid=2115943) | CyOps integrates with Microsoft Defender ATP to automate customers' high-speed incident response playbooks ![Image of Delta Risk ActiveEye logo](images/delta-risk-activeeye-logo.png) | [Delta Risk ActiveEye](https://go.microsoft.com/fwlink/?linkid=2127468) | Delta Risk, a leading provider of SOC-as-a-Service and security services, integrate Microsoft Defender ATP with its cloud-native SOAR platform, ActiveEye. -![Image of Demisto, a Palo Alto Networks Company logo](images/demisto-logo.png) | [Demisto, a Palo Alto Networks Company](https://go.microsoft.com/fwlink/?linkid=2108414) | Demisto integrates with Microsoft Defender ATP to enable security teams to orchestrate and automate endpoint security monitoring, enrichment and response +![Image of Demisto, a Palo Alto Networks Company logo](images/demisto-logo.png) | [Demisto, a Palo Alto Networks Company](https://go.microsoft.com/fwlink/?linkid=2108414) | Demisto integrates with Microsoft Defender ATP to enable security teams to orchestrate and automate endpoint security monitoring, enrichment, and response ![Image of Microsoft Flow & Azure Functions logo](images/ms-flow-logo.png) | [Microsoft Flow & Azure Functions](https://go.microsoft.com/fwlink/?linkid=2114300) | Use the Microsoft Defender ATP connectors for Azure Logic Apps & Microsoft Flow to automating security procedures ![Image of Rapid7 InsightConnect logo](images/rapid7-logo.png) | [Rapid7 InsightConnect](https://go.microsoft.com/fwlink/?linkid=2116040) | InsightConnect integrates with Microsoft Defender ATP to accelerate, streamline, and integrate your time-intensive security processes ![Image of ServiceNow logo](images/servicenow-logo.png) | [ServiceNow](https://go.microsoft.com/fwlink/?linkid=2135621) | Ingest alerts into ServiceNow Security Operations solution based on Microsoft Graph API integration @@ -93,7 +99,7 @@ Logo |Partner name | Description ![Image of Better Mobile logo](images/bettermobile-logo.png) | [Better Mobile](https://go.microsoft.com/fwlink/?linkid=2086214)| AI based MTD solution to stop mobile threats & phishing. Private internet browsing to protect user privacy ![Image of Corrata logo](images/corrata-logo.png)| [Corrata](https://go.microsoft.com/fwlink/?linkid=2081148) | Mobile solution — Protect your mobile devices with granular visibility and control from Corrata ![Image of Lookout logo](images/lookout-logo.png)| [Lookout](https://go.microsoft.com/fwlink/?linkid=866935)| Get Lookout Mobile Threat Protection telemetry for Android and iOS mobile devices -![Image of Symantec Endpoint Protection Mobile logo](images/symantec-logo.png) | [Symantec Endpoint Protection Mobile](https://go.microsoft.com/fwlink/?linkid=2090992)| SEP Mobile helps businesses predict, detect and prevent security threats and vulnerabilities on mobile devices +![Image of Symantec Endpoint Protection Mobile logo](images/symantec-logo.png) | [Symantec Endpoint Protection Mobile](https://go.microsoft.com/fwlink/?linkid=2090992)| SEP Mobile helps businesses predict, detect, and prevent security threats and vulnerabilities on mobile devices ![Image of Zimperium logo](images/zimperium-logo.png)| [Zimperium](https://go.microsoft.com/fwlink/?linkid=2118044)|Extend your Microsoft Defender ATP to iOS and Android with Machine Learning-based Mobile Threat Defense @@ -121,7 +127,7 @@ Microsoft Defender ATP offers unique automated investigation and remediation cap Integrating the automated investigation and response capability with other solutions such as IDS and firewalls help to address alerts and minimize the complexities surrounding network and device signal correlation, effectively streamlining the investigation and threat remediation actions on devices. -External alerts can be pushed into Microsoft Defender ATP and is presented side-by-side with additional device-based alerts from Microsoft Defender ATP. This view provides a full context of the alert — with the real process and the full story of attack. +External alerts can be pushed into Microsoft Defender ATP and is presented side by side with additional device-based alerts from Microsoft Defender ATP. This view provides a full context of the alert — with the real process and the full story of attack. ## Indicators matching You can use threat-intelligence from providers and aggregators to maintain and use indicators of compromise (IOCs). diff --git a/windows/security/threat-protection/microsoft-defender-atp/partner-integration.md b/windows/security/threat-protection/microsoft-defender-atp/partner-integration.md index efb88424f7..7aa19efe08 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/partner-integration.md +++ b/windows/security/threat-protection/microsoft-defender-atp/partner-integration.md @@ -31,26 +31,27 @@ ms.topic: conceptual Partners can easily extend their existing security offerings on top of the open framework and a rich and complete set of APIs to build extensions and integrations with Microsoft Defender ATP. -The APIs span functional areas including detection, management, response, vulnerabilities and intelligence wide range of use cases. Based on the use case and need, partners can either stream or query data from Microsoft Defender ATP. +The APIs span functional areas including detection, management, response, vulnerabilities, and intelligence-wide range of use cases. Based on the use case and need, partners can either stream or query data from Microsoft Defender ATP. ## Scenario 1: External alert correlation and Automated investigation and remediation Microsoft Defender ATP offers unique automated investigation and remediation capabilities to drive incident response at scale. -Integrating the automated investigation and response capability with other solutions such as network security products or other endpoint security products will help to address alerts and minimize the complexities surrounding network and device signal correlation, effectively streamlining the investigation and threat remediation actions on devices. +Integrating the automated investigation and response capability with other solutions such as network security products or other endpoint security products will help to address alerts. The integration also minimizes the complexities surrounding network and device signal correlation, effectively streamlining the investigation and threat remediation actions on devices. Microsoft Defender ATP adds support for this scenario in the following forms: -- External alerts can be pushed into Microsoft Defender ATP and presented side-by-side with additional device-based alerts from Microsoft Defender ATP. This view provides the full context of the alert - with the real process and the full story of attack. + +- External alerts can be pushed into Microsoft Defender ATP and presented side by side with additional device-based alerts from Microsoft Defender ATP. This view provides the full context of the alert - with the real process and the full story of attack. - Once an alert is generated, the signal is shared across all Microsoft Defender ATP protected endpoints in the enterprise. Microsoft Defender ATP takes immediate automated or operator-assisted response to address the alert. ## Scenario 2: Security orchestration and automation response (SOAR) integration -Orchestration solutions can help build playbooks and integrate the rich data model and actions that Microsoft Defender ATP APIs exposes to orchestrate responses, such as query for device data, trigger device isolation, block/allow, resolve alert and others. +Orchestration solutions can help build playbooks and integrate the rich data model and actions that Microsoft Defender ATP APIs expose to orchestrate responses, such as query for device data, trigger device isolation, block/allow, resolve alert and others. ## Scenario 3: Indicators matching -Indicator of compromise (IoCs) matching is an essential feature in every endpoint protection solution. This capability is available in Microsoft Defender ATP and gives the ability to set a list of indicators for prevention, detection and exclusion of entities. One can define the action to be taken as well as the duration for when to apply the action. +Indicator of compromise (IoCs) matching is an essential feature in every endpoint protection solution. This capability is available in Microsoft Defender ATP and gives the ability to set a list of indicators for prevention, detection, and exclusion of entities. One can define the action to be taken as well as the duration for when to apply the action. -The above scenarios serve as examples of the extensibility of the platform. You are not limited to these and we certainly encourage you leverage the open framework to discover and explore other scenarios. +The above scenarios serve as examples of the extensibility of the platform. You are not limited to the examples and we certainly encourage you to leverage the open framework to discover and explore other scenarios. Follow the steps in [Become a Microsoft Defender ATP partner](get-started-partner-integration.md) to integrate your solution in Microsoft Defender ATP. diff --git a/windows/security/threat-protection/microsoft-defender-atp/prepare-deployment.md b/windows/security/threat-protection/microsoft-defender-atp/prepare-deployment.md index c0279badc8..fe2d128e37 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/prepare-deployment.md +++ b/windows/security/threat-protection/microsoft-defender-atp/prepare-deployment.md @@ -1,6 +1,6 @@ --- title: Prepare Microsoft Defender ATP deployment -description: Prepare stakeholder sign-off, timelines, environment considerations, and adoption order when deploying Microsoft Defender ATP +description: Prepare stakeholder approval, timelines, environment considerations, and adoption order when deploying Microsoft Defender ATP keywords: deploy, prepare, stakeholder, timeline, environment, endpoint, server, management, adoption search.product: eADQiWindows 10XVcnh search.appverid: met150 @@ -71,14 +71,14 @@ You are currently in the preparation phase. Preparation is key to any successful deployment. In this article, you'll be guided on the points you'll need to consider as you prepare to deploy Microsoft Defender ATP. -## Stakeholders and Sign-off +## Stakeholders and approval The following section serves to identify all the stakeholders that are involved -in the project and need to sign-off, review, or stay informed. +in the project and need to approve, review, or stay informed. Add stakeholders to the table below as appropriate for your organization. -- SO = Sign-off on this project +- SO = Approve project - R = Review this project and provide input @@ -90,14 +90,14 @@ to the table below as appropriate for your organization. | Enter name and email | **Head of Cyber Defense Operations Center (CDOC)** *A representative from the CDOC team in charge of defining how this change is aligned with the processes in the customers security operations team.* | SO | | Enter name and email | **Security Architect** *A representative from the Security team in charge of defining how this change is aligned with the core Security architecture in the organization.* | R | | Enter name and email | **Workplace Architect** *A representative from the IT team in charge of defining how this change is aligned with the core workplace architecture in the organization.* | R | -| Enter name and email | **Security Analyst** *A representative from the CDOC team who can provide input on the detection capabilities, user experience and overall usefulness of this change from a security operations perspective.* | I | +| Enter name and email | **Security Analyst** *A representative from the CDOC team who can provide input on the detection capabilities, user experience, and overall usefulness of this change from a security operations perspective.* | I | ## Environment This section is used to ensure your environment is deeply understood by the -stakeholders which will help identify potential dependencies and/or changes +stakeholders, which will help identify potential dependencies and/or changes required in technologies or processes. | What | Description | @@ -112,14 +112,14 @@ required in technologies or processes. ## Role-based access control Microsoft recommends using the concept of least privileges. Microsoft Defender -ATP leverages built-in roles within Azure Active Directory. Microsoft recommend +ATP leverages built-in roles within Azure Active Directory. Microsoft recommends [review the different roles that are available](https://docs.microsoft.com/azure/active-directory/active-directory-assign-admin-roles-azure-portal) and choose the right one to solve your needs for each persona for this application. Some roles may need to be applied temporarily and removed after the deployment has been completed. -| Personas | Roles | Azure AD Role (if required) | Assign to | +| Personas | Roles | Azure AD Role (if necessary) | Assign to | |------------------------------|-------|-----------------------------|-----------| | Security Administrator | | | | | Security Analyst | | | | @@ -157,13 +157,13 @@ structure required for your environment. |--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------| | Tier 1 | **Local security operations team / IT team**
      This team usually triages and investigates alerts contained within their geolocation and escalates to Tier 2 in cases where an active remediation is required. | | | Tier 2 | **Regional security operations team**
      This team can see all the devices for their region and perform remediation actions. | View data | -| Tier 3 | **Global security operations team**
      This team consists of security experts and are authorized to see and perform all actions from the portal. | View data
      Alerts investigation Active remediation actions
      Alerts investigation Active remediation actions
      Manage portal system settings
      Manage security settings | +| Tier 3 | **Global security operations team**
      This team consists of security experts and is authorized to see and perform all actions from the portal. | View data
      Alerts investigation Active remediation actions
      Alerts investigation Active remediation actions
      Manage portal system settings
      Manage security settings | ## Adoption Order In many cases, organizations will have existing endpoint security products in -place. The bare minimum every organization should have is an antivirus solution. But in some cases, an organization might also have implanted an EDR solution already. +place. The bare minimum every organization should have been an antivirus solution. But in some cases, an organization might also have implanted an EDR solution already. Historically, replacing any security solution used to be time intensive and difficult to achieve due to the tight hooks into the application layer and infrastructure @@ -179,7 +179,7 @@ how the endpoint security suite should be enabled. | Endpoint Detection & Response (EDR) | Microsoft Defender ATP endpoint detection and response capabilities provide advanced attack detections that are near real-time and actionable. Security analysts can prioritize alerts effectively, gain visibility into the full scope of a breach, and take response actions to remediate threats.
      [Learn more.](https://docs.microsoft.com/windows/security/threat-protection/windows-defender-atp/overview-endpoint-detection-response) | 1 | |Threat & Vulnerability Management (TVM)|Threat & Vulnerability Management is a component of Microsoft Defender ATP, and provides both security administrators and security operations teams with unique value, including:
      - Real-time endpoint detection and response (EDR) insights correlated with endpoint vulnerabilities
      - Invaluable device vulnerability context during incident investigations
      - Built-in remediation processes through Microsoft Intune and Microsoft System Center Configuration Manager
      [Learn more](https://techcommunity.microsoft.com/t5/Windows-Defender-ATP/Introducing-a-risk-based-approach-to-threat-and-vulnerability/ba-p/377845).| 2 | | Next-generation protection (NGP) | Microsoft Defender Antivirus is a built-in antimalware solution that provides next-generation protection for desktops, portable computers, and servers. Microsoft Defender Antivirus includes:
      -Cloud-delivered protection for near-instant detection and blocking of new and emerging threats. Along with machine learning and the Intelligent Security Graph, cloud-delivered protection is part of the next-gen technologies that power Microsoft Defender Antivirus.
      - Always-on scanning using advanced file and process behavior monitoring and other heuristics (also known as "real-time protection").
      - Dedicated protection updates based on machine-learning, human and automated big-data analysis, and in-depth threat resistance research.
      [Learn more](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-antivirus/microsoft-defender-antivirus-in-windows-10). |3 | -| Attack Surface Reduction (ASR) | Attack surface reduction capabilities in Microsoft Defender ATP helps protect the devices and applications in the organization from new and emerging threats.
      [Learn more.](https://docs.microsoft.com/windows/security/threat-protection/windows-defender-atp/overview-attack-surface-reduction) | 4 | +| Attack Surface Reduction (ASR) | Attack surface reduction capabilities in Microsoft Defender ATP help protect the devices and applications in the organization from new and emerging threats.
      [Learn more.](https://docs.microsoft.com/windows/security/threat-protection/windows-defender-atp/overview-attack-surface-reduction) | 4 | | Auto Investigation & Remediation (AIR) | Microsoft Defender ATP uses Automated investigations to significantly reduce the volume of alerts that need to be investigated individually. The Automated investigation feature leverages various inspection algorithms, and processes used by analysts (such as playbooks) to examine alerts and take immediate remediation action to resolve breaches. This significantly reduces alert volume, allowing security operations experts to focus on more sophisticated threats and other high value initiatives.
      [Learn more.](https://docs.microsoft.com/windows/security/threat-protection/windows-defender-atp/automated-investigations-windows-defender-advanced-threat-protection) | Not applicable | | Microsoft Threat Experts (MTE) | Microsoft Threat Experts is a managed hunting service that provides Security Operation Centers (SOCs) with expert level monitoring and analysis to help them ensure that critical threats in their unique environments don't get missed.
      [Learn more.](https://docs.microsoft.com/windows/security/threat-protection/windows-defender-atp/microsoft-threat-experts) | Not applicable | diff --git a/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-powershell.md b/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-powershell.md index c95d5dc155..dfb227ec23 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-powershell.md +++ b/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-powershell.md @@ -1,5 +1,5 @@ --- -title: Advanced Hunting with Powershell API Basics +title: Advanced Hunting with PowerShell API Basics ms.reviewer: description: Learn the basics of querying the Microsoft Defender Advanced Threat Protection API, using PowerShell. keywords: apis, supported apis, advanced hunting, query @@ -27,7 +27,7 @@ ms.topic: article Run advanced queries using PowerShell, see [Advanced Hunting API](run-advanced-query-api.md). -In this section we share PowerShell samples to retrieve a token and use it to run a query. +In this section, we share PowerShell samples to retrieve a token and use it to run a query. ## Before you begin You first need to [create an app](apis-intro.md). @@ -40,7 +40,7 @@ You first need to [create an app](apis-intro.md). Set-ExecutionPolicy -ExecutionPolicy Bypass ``` ->For more details, see [PowerShell documentation](https://docs.microsoft.com/powershell/module/microsoft.powershell.security/set-executionpolicy) +>For more information, see [PowerShell documentation](https://docs.microsoft.com/powershell/module/microsoft.powershell.security/set-executionpolicy) ## Get token @@ -64,9 +64,9 @@ $aadToken = $response.access_token ``` where -- $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) -- $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to Microsoft Defender ATP) -- $appSecret: Secret of your AAD app +- $tenantId: ID of the tenant on behalf of which you want to run the query (that is, the query will be run on the data of this tenant) +- $appId: ID of your Azure AD app (the app must have 'Run advanced queries' permission to Microsoft Defender ATP) +- $appSecret: Secret of your Azure AD app ## Run query @@ -88,7 +88,7 @@ $results = $response.Results $schema = $response.Schema ``` -- $results contains the results of your query +- $results contain the results of your query - $schema contains the schema of the results of your query ### Complex queries diff --git a/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-python.md b/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-python.md index ad9c61aa16..55f4d1ec1b 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-python.md +++ b/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-python.md @@ -28,13 +28,13 @@ ms.topic: article Run advanced queries using Python, see [Advanced Hunting API](run-advanced-query-api.md). -In this section we share Python samples to retrieve a token and use it to run a query. +In this section, we share Python samples to retrieve a token and use it to run a query. >**Prerequisite**: You first need to [create an app](apis-intro.md). ## Get token -- Run the following: +- Run the following commands: ``` @@ -67,9 +67,9 @@ aadToken = jsonResponse["access_token"] ``` where -- tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) -- appId: ID of your AAD app (the app must have 'Run advanced queries' permission to Microsoft Defender ATP) -- appSecret: Secret of your AAD app +- tenantId: ID of the tenant on behalf of which you want to run the query (that is, the query will be run on the data of this tenant) +- appId: ID of your Azure AD app (the app must have 'Run advanced queries' permission to Microsoft Defender ATP) +- appSecret: Secret of your Azure AD app ## Run query @@ -96,7 +96,7 @@ results = jsonResponse["Results"] ``` - schema contains the schema of the results of your query -- results contains the results of your query +- results contain the results of your query ### Complex queries diff --git a/windows/security/threat-protection/microsoft-defender-atp/service-status.md b/windows/security/threat-protection/microsoft-defender-atp/service-status.md index b95ecdb603..1373591e5d 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/service-status.md +++ b/windows/security/threat-protection/microsoft-defender-atp/service-status.md @@ -29,7 +29,7 @@ ms.topic: article >Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-servicestatus-abovefoldlink) -The **Service health** provides information on the current status of the Microsoft Defender ATP service. You'll be able to verify that the service health is healthy or if there are current issues. If there are issues, you'll see details related to the issue such as when the issue was detected, what the preliminary root cause is, and the expected resolution time. +**Service health** provides information on the current status of the Microsoft Defender ATP service. You'll be able to verify that the service health is healthy or if there are current issues. If there are issues, you'll see information such as when the issue was detected, what the preliminary root cause is, and the expected resolution time. You'll also see information on historical issues that have been resolved and details such as the date and time when the issue was resolved. When there are no issues on the service, you'll see a healthy status. @@ -51,7 +51,7 @@ The **Current status** tab shows the current state of the Microsoft Defender ATP - Next steps - Expected resolution time -Updates on the progress of an issue is reflected on the page as the issue gets resolved. You'll see updates on information such as an updated estimate resolution time or next steps. +Updates on the progress of an issue are reflected on the page as the issue gets resolved. You'll see updates on information such as an updated estimate resolution time or next steps. When an issue is resolved, it gets recorded in the **Status history** tab. diff --git a/windows/security/threat-protection/microsoft-defender-atp/troubleshoot-live-response.md b/windows/security/threat-protection/microsoft-defender-atp/troubleshoot-live-response.md index e6ed78f7f8..2305bcbf00 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/troubleshoot-live-response.md +++ b/windows/security/threat-protection/microsoft-defender-atp/troubleshoot-live-response.md @@ -57,11 +57,11 @@ If while trying to take an action during a live response session, you encounter ## Slow live response sessions or delays during initial connections Live response leverages Microsoft Defender ATP sensor registration with WNS service in Windows. -If you are having connectivity issues with live response, please confirm the following: -1. `notify.windows.com` is not blocked in your environment. For more information see, [Configure device proxy and Internet connectivity settings](configure-proxy-internet.md#enable-access-to-microsoft-defender-atp-service-urls-in-the-proxy-server). +If you are having connectivity issues with live response, confirm the following details: +1. `notify.windows.com` is not blocked in your environment. For more information, see, [Configure device proxy and Internet connectivity settings](configure-proxy-internet.md#enable-access-to-microsoft-defender-atp-service-urls-in-the-proxy-server). 2. WpnService (Windows Push Notifications System Service) is not disabled. -Please refer to the articles below to fully understand the WpnService service behavior and requirements: +Refer to the articles below to fully understand the WpnService service behavior and requirements: - [Windows Push Notification Services (WNS) overview](https://docs.microsoft.com/windows/uwp/design/shell/tiles-and-notifications/windows-push-notification-services--wns--overview) - [Enterprise Firewall and Proxy Configurations to Support WNS Traffic](https://docs.microsoft.com/windows/uwp/design/shell/tiles-and-notifications/firewall-allowlist-config) - [Microsoft Push Notifications Service (MPNS) Public IP ranges](https://www.microsoft.com/en-us/download/details.aspx?id=44535) diff --git a/windows/security/threat-protection/microsoft-defender-atp/troubleshoot-onboarding-error-messages.md b/windows/security/threat-protection/microsoft-defender-atp/troubleshoot-onboarding-error-messages.md index 16f93645cd..73945ccbcd 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/troubleshoot-onboarding-error-messages.md +++ b/windows/security/threat-protection/microsoft-defender-atp/troubleshoot-onboarding-error-messages.md @@ -36,15 +36,15 @@ If you receive an error message, Microsoft Defender Security Center will provide ## No subscriptions found -If while accessing Microsoft Defender Security Center you get a **No subscriptions found** message, it means the Azure Active Directory (AAD) used to login the user to the portal, does not have a Microsoft Defender ATP license. +If while accessing Microsoft Defender Security Center you get a **No subscriptions found** message, it means the Azure Active Directory (Azure AD) used to log in the user to the portal, does not have a Microsoft Defender ATP license. Potential reasons: - The Windows E5 and Office E5 licenses are separate licenses. -- The license was purchased but not provisioned to this AAD instance. +- The license was purchased but not provisioned to this Azure AD instance. - It could be a license provisioning issue. - - It could be you inadvertently provisioned the license to a different Microsoft AAD than the one used for authentication into the service. + - It could be you inadvertently provisioned the license to a different Microsoft Azure AD than the one used for authentication into the service. -For both cases you should contact Microsoft support at [General Microsoft Defender ATP Support](https://support.microsoft.com/getsupport?wf=0&tenant=ClassicCommercial&oaspworkflow=start_1.0.0.0&locale=en-us&supportregion=en-us&pesid=16055&ccsid=636419533611396913) or +For both cases, you should contact Microsoft support at [General Microsoft Defender ATP Support](https://support.microsoft.com/getsupport?wf=0&tenant=ClassicCommercial&oaspworkflow=start_1.0.0.0&locale=en-us&supportregion=en-us&pesid=16055&ccsid=636419533611396913) or [Volume license support](https://www.microsoft.com/licensing/servicecenter/Help/Contact.aspx). ![Image of no subscriptions found](images/atp-no-subscriptions-found.png) @@ -63,16 +63,16 @@ You can choose to renew or extend the license at any point in time. When accessi ## You are not authorized to access the portal If you receive a **You are not authorized to access the portal**, be aware that Microsoft Defender ATP is a security monitoring, incident investigation and response product, and as such, access to it is restricted and controlled by the user. -For more information see, [**Assign user access to the portal**](https://docs.microsoft.com/windows/threat-protection/windows-defender-atp/assign-portal-access-windows-defender-advanced-threat-protection). +For more information, see, [**Assign user access to the portal**](https://docs.microsoft.com/windows/threat-protection/windows-defender-atp/assign-portal-access-windows-defender-advanced-threat-protection). ![Image of not authorized to access portal](images/atp-not-authorized-to-access-portal.png) ## Data currently isn't available on some sections of the portal -If the portal dashboard, and other sections show an error message such as "Data currently isn't available": +If the portal dashboard and other sections show an error message such as "Data currently isn't available": ![Image of data currently isn't available](images/atp-data-not-available.png) -You'll need to allow the `securitycenter.windows.com` and all sub-domains under it. For example `*.securitycenter.windows.com`. +You'll need to allow the `securitycenter.windows.com` and all subdomains under it. For example, `*.securitycenter.windows.com`. ## Portal communication issues diff --git a/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md b/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md index 386550279a..56d43dafc5 100644 --- a/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md +++ b/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md @@ -39,15 +39,15 @@ Microsoft Defender SmartScreen protects against phishing or malware websites and ## Benefits of Microsoft Defender SmartScreen -Microsoft Defender SmartScreen provide an early warning system against websites that might engage in phishing attacks or attempt to distribute malware through a socially-engineered attack. The primary benefits are: +Microsoft Defender SmartScreen provide an early warning system against websites that might engage in phishing attacks or attempt to distribute malware through a socially engineered attack. The primary benefits are: - **Anti-phishing and anti-malware support.** Microsoft Defender SmartScreen helps to protect users from sites that are reported to host phishing attacks or attempt to distribute malicious software. It can also help protect against deceptive advertisements, scam sites, and drive-by attacks. Drive-by attacks are web-based attacks that tend to start on a trusted site, targeting security vulnerabilities in commonly used software. Because drive-by attacks can happen even if the user does not click or download anything on the page, the danger often goes unnoticed. For more info about drive-by attacks, see [Evolving Microsoft Defender SmartScreen to protect you from drive-by attacks](https://blogs.windows.com/msedgedev/2015/12/16/SmartScreen-drive-by-improvements/#3B7Bb8bzeAPq8hXE.97) - **Reputation-based URL and app protection.** Microsoft Defender SmartScreen evaluates a website's URLs to determine if they're known to distribute or host unsafe content. It also provides reputation checks for apps, checking downloaded programs and the digital signature used to sign a file. If a URL, a file, an app, or a certificate has an established reputation, users won't see any warnings. If, however, there's no reputation, the item is marked as a higher risk and presents a warning to the user. -- **Operating system integration.** Microsoft Defender SmartScreen is integrated into the Windows 10 operating system, meaning that it checks any files an app (including 3rd-party browsers and email clients) attempts to download and run. +- **Operating system integration.** Microsoft Defender SmartScreen is integrated into the Windows 10 operating system. It checks any files an app (including 3rd-party browsers and email clients) attempts to download and run. -- **Improved heuristics and diagnostic data.** Microsoft Defender SmartScreen is constantly learning and endeavoring to stay up-to-date, so it can help to protect you against potentially malicious sites and files. +- **Improved heuristics and diagnostic data.** Microsoft Defender SmartScreen is constantly learning and endeavoring to stay up to date, so it can help to protect you against potentially malicious sites and files. - **Management through Group Policy and Microsoft Intune.** Microsoft Defender SmartScreen supports using both Group Policy and Microsoft Intune settings. For more info about all available settings, see [Available Microsoft Defender SmartScreen Group Policy and mobile device management (MDM) settings](microsoft-defender-smartscreen-available-settings.md). @@ -60,7 +60,7 @@ Microsoft Defender SmartScreen provide an early warning system against websites If you believe a warning or block was incorrectly shown for a file or application, or if you believe an undetected file is malware, you can [submit a file](https://www.microsoft.com/wdsi/filesubmission/) to Microsoft for review. For more info, see [Submit files for analysis](https://docs.microsoft.com/windows/security/threat-protection/intelligence/submission-guide). -When submitting Microsoft Defender Smartscreen products, make sure to select **Microsoft Defender SmartScreen** from the product menu. +When submitting Microsoft Defender SmartScreen products, make sure to select **Microsoft Defender SmartScreen** from the product menu. ![Windows Security, Microsoft Defender SmartScreen controls](images/Microsoft-defender-smartscreen-submission.png) @@ -72,7 +72,7 @@ When submitting Microsoft Defender Smartscreen products, make sure to select **M When Microsoft Defender SmartScreen warns or blocks a user from a website, it's logged as [Event 1035 - Anti-Phishing](https://technet.microsoft.com/scriptcenter/dd565657(v=msdn.10).aspx). ## Viewing Windows event logs for Microsoft Defender SmartScreen -Microsoft Defender SmartScreen events appear in the Microsoft-Windows-SmartScreen/Debug log in Event Viewer. +Microsoft Defender SmartScreen events appear in the Microsoft-Windows-SmartScreen/Debug login Event Viewer. Windows event log for SmartScreen is disabled by default, users can use Event Viewer UI to enable the log or use the command line to enable it: From c28ac2bf0bf295e1501068b0f319a052e96fd177 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 2 Nov 2020 16:59:48 -0800 Subject: [PATCH 185/187] Update use-applocker-and-software-restriction-policies-in-the-same-domain.md --- ...software-restriction-policies-in-the-same-domain.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-application-control/applocker/use-applocker-and-software-restriction-policies-in-the-same-domain.md b/windows/security/threat-protection/windows-defender-application-control/applocker/use-applocker-and-software-restriction-policies-in-the-same-domain.md index 828934ca43..4e49ccf26f 100644 --- a/windows/security/threat-protection/windows-defender-application-control/applocker/use-applocker-and-software-restriction-policies-in-the-same-domain.md +++ b/windows/security/threat-protection/windows-defender-application-control/applocker/use-applocker-and-software-restriction-policies-in-the-same-domain.md @@ -69,7 +69,7 @@ The following table compares the features and functions of Software Restriction

      Enforcement mode

      -

      SRP works in the “deny list mode” where administrators can create rules for files that they do not want to allow in this Enterprise whereas the rest of the file are allowed to run by default.

      +

      SRP works in the “deny list mode” where administrators can create rules for files that they do not want to allow in this Enterprise whereas the rest of the file is allowed to run by default.

      SRP can also be configured in the “allow list mode” so that by default all files are blocked and administrators need to create allow rules for files that they want to allow.

      AppLocker by default works in the “allow list mode” where only those files are allowed to run for which there is a matching allow rule.

      @@ -146,12 +146,12 @@ The following table compares the features and functions of Software Restriction

      Support for rule exceptions

      SRP does not support rule exceptions.

      -

      AppLocker rules can have exceptions which allow you to create rules such as “Allow everything from Windows except for regedit.exe”.

      +

      AppLocker rules can have exceptions, which allow you to create rules such as “Allow everything from Windows except for regedit.exe”.

      Support for audit mode

      SRP does not support audit mode. The only way to test SRP policies is to set up a test environment and run a few experiments.

      -

      AppLocker supports audit mode which allows you to test the effect of their policy in the real production environment without impacting the user experience. Once you are satisfied with the results, you can start enforcing the policy.

      +

      AppLocker supports audit mode, which allows you to test the effect of their policy in the real production environment without impacting the user experience. Once you are satisfied with the results, you can start enforcing the policy.

      Support for exporting and importing policies

      @@ -160,8 +160,8 @@ The following table compares the features and functions of Software Restriction

      Rule enforcement

      -

      Internally, SRP rules enforcement happens in the user-mode which is less secure.

      -

      Internally, AppLocker rules for .exe and .dll files are enforced in the kernel-mode which is more secure than enforcing them in the user-mode.

      +

      Internally, SRP rules enforcement happens in the user-mode, which is less secure.

      +

      Internally, AppLocker rules for .exe and .dll files are enforced in the kernel-mode, which is more secure than enforcing them in the user-mode.

      From 3d4b6d88fdfeadfda1cd644a407fcf0fd1d2b10a Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Mon, 2 Nov 2020 17:56:17 -0800 Subject: [PATCH 186/187] acrolinx updates --- windows/security/threat-protection/TOC.md | 2 +- .../intelligence/developer-info.md | 29 ------------------- .../virus-information-alliance-criteria.md | 28 +++++++++++------- .../intelligence/virus-initiative-criteria.md | 14 ++++----- .../intelligence/worms-malware.md | 10 +++---- .../web-protection-monitoring.md | 29 ++++++++++--------- 6 files changed, 47 insertions(+), 65 deletions(-) delete mode 100644 windows/security/threat-protection/intelligence/developer-info.md diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 7cb35259d5..c2913b23a2 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -753,7 +753,7 @@ #### [Virus information alliance](intelligence/virus-information-alliance-criteria.md) #### [Microsoft virus initiative](intelligence/virus-initiative-criteria.md) #### [Coordinated malware eradication](intelligence/coordinated-malware-eradication.md) -### [Information for developers](intelligence/developer-info.md) +### [Information for developers]() #### [Software developer FAQ](intelligence/developer-faq.md) #### [Software developer resources](intelligence/developer-resources.md) diff --git a/windows/security/threat-protection/intelligence/developer-info.md b/windows/security/threat-protection/intelligence/developer-info.md deleted file mode 100644 index eb0ac99896..0000000000 --- a/windows/security/threat-protection/intelligence/developer-info.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Information for developers -ms.reviewer: -description: This page provides answers to common questions we receive from software developers and other useful resources -keywords: software, developer, faq, dispute, false-positive, classify, installer, software, bundler, blocking -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: ellevin -author: levinec -ms.localizationpriority: medium -manager: dansimp -audience: ITPro -ms.collection: M365-security-compliance -ms.topic: article ---- - -# Information for developers - -Learn about the common questions we receive from software developers and get other developer resources such as detection criteria and file submissions. - -## In this section - -Topic | Description -:---|:--- -[Software developer FAQ](developer-faq.md) | Provides answers to common questions we receive from software developers. -[Developer resources](developer-resources.md) | Provides information about how to submit files and the detection criteria. Learn how to check your software against the latest security intelligence and cloud protection from Microsoft. diff --git a/windows/security/threat-protection/intelligence/virus-information-alliance-criteria.md b/windows/security/threat-protection/intelligence/virus-information-alliance-criteria.md index 5aded1e416..fa58868aa8 100644 --- a/windows/security/threat-protection/intelligence/virus-information-alliance-criteria.md +++ b/windows/security/threat-protection/intelligence/virus-information-alliance-criteria.md @@ -18,21 +18,28 @@ ms.topic: article The Virus Information Alliance (VIA) is a public antimalware collaboration program for security software providers, security service providers, antimalware testing organizations, and other organizations involved in fighting cybercrime. -Members of the VIA program collaborate by exchanging technical information on malicious software with Microsoft, with the goal of improving protection for Microsoft customers. +Members of the VIA program collaborate by exchanging technical information on malicious software with Microsoft. The goal is to improve protection for Microsoft customers. ## Better protection for customers against malware -The VIA program gives members access to information that will help improve protection for Microsoft customers. For example, the program provides malware telemetry and samples to security product teams to identify gaps in their protection and prioritize new threat coverage. +The VIA program gives members access to information that will help them improve protection. For example, the program provides malware telemetry and samples to security teams so they can identify gaps and prioritize new threat coverage. -Malware prevalence data is provided to antimalware testers to assist them in selecting sample sets and setting scoring criteria that represent the real-world threat landscape. Service organizations, such as a CERT, can leverage our data to help assess the impact of policy changes or to help shut down malicious activity. +Malware prevalence data is provided to antimalware testers to assist them in selecting sample sets. The data also helps set scoring criteria that represent the real-world threat landscape. Service organizations, such as a CERT, can leverage our data to help assess the impact of policy changes or to help shut down malicious activity. Microsoft is committed to continuous improvement to help reduce the impact of malware on customers. By sharing malware-related information, Microsoft enables members of this community to work towards better protection for customers. ## Becoming a member of VIA -Microsoft has well-defined, objective, measurable, and tailored membership criteria for prospective members of the Virus Information Alliance (VIA). The criteria is designed to ensure that Microsoft is able to work with security software providers, security service providers, antimalware testing organizations, and other organizations involved in the fight against cybercrime to protect a broad range of customers. +Microsoft has well-defined, objective, measurable, and tailored membership criteria for prospective members of the Virus Information Alliance (VIA). -Members will receive information to facilitate effective malware detection, deterrence, and eradication. This includes technical information on malware as well as metadata on malicious activity. Information shared through VIA is governed by the VIA membership agreement and a Microsoft non-disclosure agreement, where applicable. +The criteria is designed to ensure that Microsoft can work with the following groups to protect a broad range of customers: + +- Security software providers +- Security service providers +- Antimalware testing organizations +- Other organizations involved in the fight against cybercrime + +Members will receive information to facilitate effective malware detection, deterrence, and eradication. This information includes technical information on malware as well as metadata on malicious activity. Information shared through VIA is governed by the VIA membership agreement and a Microsoft non-disclosure agreement, where applicable. VIA has an open enrollment for potential members. @@ -43,11 +50,12 @@ To be eligible for VIA your organization must: 1. Be willing to sign a non-disclosure agreement with Microsoft. 2. Fit into one of the following categories: - * Your organization develops antimalware technology that can run on Windows and your organization’s product is commercially available. - * Your organization provides security services to Microsoft customers or for Microsoft products. - * Your organization publishes antimalware testing reports on a regular basis. - * Your organization has a research or response team dedicated to fighting malware to protect your organization, your customers, or the general public. + + - Your organization develops antimalware technology that can run on Windows and your organization’s product is commercially available. + - Your organization provides security services to Microsoft customers or for Microsoft products. + - Your organization publishes antimalware testing reports on a regular basis. + - Your organization has a research or response team dedicated to fighting malware to protect your organization, your customers, or the general public. 3. Be willing to sign and adhere to the VIA membership agreement. -If your organization meets these criteria and is interested in joining, [apply for membership now](https://www.microsoft.com/wdsi/alliances/apply-alliance-membership). If you have questions, [contact us for more information](https://www.microsoft.com/wdsi/alliances/collaboration-inquiry). +If your organization meets these criteria and is interested in joining, [apply for membership now](https://www.microsoft.com/wdsi/alliances/apply-alliance-membership). For questions, [contact us for more information](https://www.microsoft.com/wdsi/alliances/collaboration-inquiry). diff --git a/windows/security/threat-protection/intelligence/virus-initiative-criteria.md b/windows/security/threat-protection/intelligence/virus-initiative-criteria.md index a896140ce6..5f8f3c8139 100644 --- a/windows/security/threat-protection/intelligence/virus-initiative-criteria.md +++ b/windows/security/threat-protection/intelligence/virus-initiative-criteria.md @@ -19,13 +19,13 @@ ms.topic: article The Microsoft Virus Initiative (MVI) helps organizations to get their products working and integrated with Windows. -MVI members receive access to Windows APIs and other technologies including IOAV, AMSI and Cloud files. Members also get malware telemetry and samples and invitations to security related events and conferences. +MVI members receive access to Windows APIs and other technologies including IOAV, AMSI, and Cloud files. Members also get malware telemetry and samples and invitations to security-related events and conferences. ## Become a member -A request for membership is made by an individual as a representative of an organization that develops and produces antimalware or antivirus technology. Your organization must meet the following eligibility requirements to qualify for the MVI program: +You can request membership if you're a representative for an organization that develops and produces antimalware or antivirus technology. Your organization must meet the following requirements to qualify for the MVI program: -1. Offer an antimalware or antivirus product that is one of the following: +1. Offer an antimalware or antivirus product that meets one of the following criteria: * Your organization's own creation. * Developed by using an SDK (engine and other components) from another MVI Partner company and your organization adds a custom UI and/or other functionality. @@ -34,7 +34,7 @@ A request for membership is made by an individual as a representative of an orga 3. Be active and have a positive reputation in the antimalware industry. - * Activity can include participation in industry conferences or being reviewed in an industry standard report such as AV Comparatives, OPSWAT or Gartner. + * Activity can include participation in industry conferences or being reviewed in an industry standard report such as AV Comparatives, OPSWAT, or Gartner. 4. Be willing to sign a non-disclosure agreement (NDA) with Microsoft. @@ -49,14 +49,14 @@ A request for membership is made by an individual as a representative of an orga Test Provider | Lab Test Type | Minimum Level / Score ------------- |---------------|---------------------- AV-Comparatives | Real-World Protection Test
      https://www.av-comparatives.org/testmethod/real-world-protection-tests/ |“Approved” rating from AV Comparatives -AV-Test | Must pass tests for Windows. Certifications for Mac and Linux are not accepted
      https://www.av-test.org/en/about-the-institute/certification/ | Achieve "AV-TEST Certified" (for home users) or "AV-TEST Approved” (for corporate users) +AV-Test | Must pass tests for Windows. Certifications for Mac and Linux aren't accepted
      https://www.av-test.org/en/about-the-institute/certification/ | Achieve "AV-TEST Certified" (for home users) or "AV-TEST Approved” (for corporate users) ICSA Labs | Endpoint Anti-Malware Detection
      https://www.icsalabs.com/technology-program/anti-virus/criteria |PASS/Certified NSS Labs | Advanced Endpoint Protection AEP 3.0, which covers automatic threat prevention and threat event reporting capabilities
      https://www.nsslabs.com/tested-technologies/advanced-endpoint-protection/ |“Neutral” rating from NSS -SKD Labs | Certification Requirements Product: Anti-virus or Antimalware
      http://www.skdlabs.com/html/english/
      http://www.skdlabs.com/cert/ |SKD Labs Star Check Certification Requirements Pass >= 98.5 % with On Demand, On Access and Total Detection tests +SKD Labs | Certification Requirements Product: Anti-virus or Antimalware
      http://www.skdlabs.com/html/english/
      http://www.skdlabs.com/cert/ |SKD Labs Star Check Certification Requirements Pass >= 98.5% with On Demand, On Access and Total Detection tests SE Labs | Protection A rating or Small Business EP A rating or Enterprise EP Protection A rating
      https://selabs.uk/en/reports/consumers |Home or Enterprise “A” rating VB 100 | VB100 Certification Test V1.1
      https://www.virusbulletin.com/testing/vb100/vb100-methodology/vb100-methodology-ver1-1/ | VB100 Certification West Coast Labs | Checkmark Certified
      http://www.checkmarkcertified.com/sme/ | “A” Rating on Product Security Performance ## Apply now -If your organization meets these criteria and is interested in joining, [apply for membership now](https://www.microsoft.com/wdsi/alliances/apply-alliance-membership). If you have questions, [contact us for more information](https://www.microsoft.com/wdsi/alliances/collaboration-inquiry). +If your organization meets these criteria and is interested in joining, [apply for membership now](https://www.microsoft.com/wdsi/alliances/apply-alliance-membership). For questions, [contact us for more information](https://www.microsoft.com/wdsi/alliances/collaboration-inquiry). diff --git a/windows/security/threat-protection/intelligence/worms-malware.md b/windows/security/threat-protection/intelligence/worms-malware.md index 04c8f8280f..ca62c08fd9 100644 --- a/windows/security/threat-protection/intelligence/worms-malware.md +++ b/windows/security/threat-protection/intelligence/worms-malware.md @@ -22,19 +22,19 @@ A worm is a type of malware that can copy itself and often spreads through a net ## How worms work -Worms represent a large category of malware. Different worms use different methods to infect devices. Depending on the variant, they can steal sensitive information, change security settings, send information to malicious hackers, stop users from accessing files, and other malicious activities. +Worms represent a large category of malware. Different worms use different methods to infect devices. Depending on the variant, they can steal sensitive information, change security settings, send information to malicious hackers, stop users from accessing files, and other malicious activities. -Jenxcus (also known as Dunihi), Gamarue (also known as Androm), and Bondat have consistently remained at the top of the list of malware that infect users running Microsoft security software. Although these worms share some commonalities, it is interesting to note that they also have distinct characteristics. +Jenxcus (also known as Dunihi), Gamarue (also known as Androm), and Bondat have consistently remained at the top of the list of malware that infects users running Microsoft software. Although these worms share some commonalities, it's interesting to note that they also have distinct characteristics. * **Jenxcus** has capabilities of not only infecting removable drives but can also act as a backdoor that connects back to its server. This threat typically gets into a device from a drive-by download attack, meaning it's installed when users just visit a compromised web page. -* **Gamarue** typically arrives through spam campaigns, exploits, downloaders, social networking sites, and removable drives. When Gamarue infects a device, it becomes a distribution channel for other malware. We’ve seen it distribute other malware such as infostealers, spammers, clickers, downloaders, and rogues. +* **Gamarue** typically arrives through spam campaigns, exploits, downloaders, social networking sites, and removable drives. When Gamarue infects a device, it becomes a distribution channel for other malware. We’ve seen it distribute other malware such as info stealers, spammers, clickers, downloaders, and rogues. * **Bondat** typically arrives through fictitious Nullsoft Scriptable Install System (NSIS), Java installers, and removable drives. When Bondat infects a system, it gathers information about the machine such as device name, Globally Unique Identifier (GUID), and OS build. It then sends that information to a remote server. -Both Bondat and Gamarue have clever ways of obscuring themselves to evade detection. By hiding what they are doing, they try to avoid detection by security software. +Both Bondat and Gamarue have clever ways of obscuring themselves to evade detection. By hiding what they're doing, they try to avoid detection by security software. -* [**WannaCrypt**](https://www.microsoft.com/wdsi/threats/malware-encyclopedia-description?Name=Ransom:Win32/WannaCrypt) also deserves a mention here. Unlike older worms that often spread just because they could, modern worms often spread to drop a payload (e.g. ransomware). +* [**WannaCrypt**](https://www.microsoft.com/wdsi/threats/malware-encyclopedia-description?Name=Ransom:Win32/WannaCrypt) also deserves a mention here. Unlike older worms that often spread just because they could, modern worms often spread to drop a payload (like ransomware). This image shows how a worm can quickly spread through a shared USB drive. diff --git a/windows/security/threat-protection/microsoft-defender-atp/web-protection-monitoring.md b/windows/security/threat-protection/microsoft-defender-atp/web-protection-monitoring.md index bcceac7999..071d86602f 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/web-protection-monitoring.md +++ b/windows/security/threat-protection/microsoft-defender-atp/web-protection-monitoring.md @@ -21,16 +21,15 @@ ms.topic: article [!INCLUDE [Microsoft 365 Defender rebranding](../../includes/microsoft-defender.md)] - >Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-main-abovefoldlink&rtc=1) Web protection lets you monitor your organization’s web browsing security through reports under **Reports > Web protection** in the Microsoft Defender Security Center. The report contains cards that provide web threat detection statistics. -- **Web threat protection detections over time** — this trending card displays the number of web threats detected by type during the selected time period (Last 30 days, Last 3 months, Last 6 months) +- **Web threat protection detections over time** - this trending card displays the number of web threats detected by type during the selected time period (Last 30 days, Last 3 months, Last 6 months) ![Image of the card showing web threats protection detections over time](images/wtp-blocks-over-time.png) -- **Web threat protection summary** — this card displays the total web threat detections in the past 30 days, showing distribution across the different types of web threats. Selecting a slice opens the list of the domains that were found with malicious or unwanted websites. +- **Web threat protection summary** - this card displays the total web threat detections in the past 30 days, showing distribution across the different types of web threats. Selecting a slice opens the list of the domains that were found with malicious or unwanted websites. ![Image of the card showing web threats protection summary](images/wtp-summary.png) @@ -38,23 +37,27 @@ Web protection lets you monitor your organization’s web browsing security thro >It can take up to 12 hours before a block is reflected in the cards or the domain list. ## Types of web threats + Web protection categorizes malicious and unwanted websites as: -- **Phishing** — websites that contain spoofed web forms and other phishing mechanisms designed to trick users into divulging credentials and other sensitive information -- **Malicious** — websites that host malware and exploit code -- **Custom indicator** — websites whose URLs or domains you've added to your [custom indicator list](manage-indicators.md) for blocking + +- **Phishing** - websites that contain spoofed web forms and other phishing mechanisms designed to trick users into divulging credentials and other sensitive information +- **Malicious** - websites that host malware and exploit code +- **Custom indicator** - websites whose URLs or domains you've added to your [custom indicator list](manage-indicators.md) for blocking ## View the domain list -Select a specific web threat category in the **Web threat protection summary** card to open the **Domains** page and display the list of the domains under that threat category. The page provides the following information for each domain: -- **Access count** — number of requests for URLs in the domain -- **Blocks** — number of times requests were blocked -- **Access trend** — change in number of access attempts -- **Threat category** — type of web threat -- **Devices** — number of devices with access attempts +Select a specific web threat category in the **Web threat protection summary** card to open the **Domains** page. This page displays the list of the domains under that threat category. The page provides the following information for each domain: -Select a domain to view the list of devices that have attempted to access URLs in that domain as well as the list of URLs. +- **Access count** - number of requests for URLs in the domain +- **Blocks** - number of times requests were blocked +- **Access trend** - change in number of access attempts +- **Threat category** - type of web threat +- **Devices** - number of devices with access attempts + +Select a domain to view the list of devices that have attempted to access URLs in that domain and the list of URLs. ## Related topics + - [Web protection overview](web-protection-overview.md) - [Web content filtering](web-content-filtering.md) - [Web threat protection](web-threat-protection.md) From 40c4692859753f354534805943c264910b8acabf Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Mon, 2 Nov 2020 18:02:39 -0800 Subject: [PATCH 187/187] remove developer info --- windows/security/threat-protection/intelligence/TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/intelligence/TOC.md b/windows/security/threat-protection/intelligence/TOC.md index 18ea7845de..9919f7d8d2 100644 --- a/windows/security/threat-protection/intelligence/TOC.md +++ b/windows/security/threat-protection/intelligence/TOC.md @@ -48,7 +48,7 @@ ### [Coordinated malware eradication](coordinated-malware-eradication.md) -## [Information for developers](developer-info.md) +## [Information for developers]() ### [Software developer FAQ](developer-faq.md)

    yf#kVgP=rQc>^9KRe4$11ClC=ZclGy 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