Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Microsoft Security Advisory 2915720

Changes in Windows Authenticode Signature Verification

Published: December 10, 2013 | Updated: February 11, 2014

Version: 1.2

General Information

Executive Summary

Microsoft is announcing the availability of an update for all supported releases of Microsoft Windows to change how signatures are verified for binaries signed with the Windows Authenticode signature format. The change is included with Security Bulletin MS13-098, but will not be enabled until June 10, 2014. Once enabled, the new default behavior for Windows Authenticode signature verification will no longer allow extraneous information in the WIN_CERTIFICATE structure. Note that after June 10, 2014, Windows will no longer recognize non-compliant binaries as signed.

Recommendation. Microsoft recommends that by June 10, 2014, executables authors ensure that all signed binaries comport with this new verification behavior by containing no extraneous information in the WIN_CERTIFICATE structure. Microsoft also recommends that customers appropriately test this change to evaluate how it will behave in their environments. Please see the Suggested Actions section of this advisory for more information.

Advisory Details

Issue References

For more information about this issue, see the following references:

ReferencesIdentification
Security Bulletin MS13-098 
General Information Introduction to Code Signing 
WinVerifyTrust function 
Authenticode Portable Executable Signature Format
Specific Information Windows Root Certificate Program - Technical Requirements

What is the scope of the advisory? 
The purpose of this advisory is to inform customers of an impending change to how Windows verifies Authenticode-signed binaries and to recommend that executables authors who sign binaries with Windows Authenticode ensure that their signatures conform to the change by June 10, 2014.

What is Windows Authenticode? 
Windows Authenticode is a digital signature format that is used to determine the origin and integrity of software binaries. Authenticode uses Public-Key Cryptography Standards (PKCS) #7 signed data and X.509 certificates to bind an Authenticode-signed binary to the identity of a software publisher. The term "Authenticode signature" refers to a digital signature format that is generated and verified using the WinVerifyTrust function.

What is Windows Authenticode s ignature v erification?  
Windows Authenticode signature verification consists of two primary activities: signature checking on specified objects and trust verification. These activities are carried out by the WinVerifyTrust function, which executes a signature check then passes the inquiry to a trust provider that supports the action identifier, if one exists. For more technical information regarding the WinVerifyTrust function, see WinVerifyTrust function.

For an introduction to Authenticode, see Introduction to Code Signing.

Can I enable this signature verification behavior in advance of June 10, 2014 ? 
Yes. Customers who choose to enable the new Authenticode signature validation behavior before June 10, 2014 can do so by setting a key in the system registry. Once the key is set, Windows Authenticode signature verification will no longer recognize binaries with Authenticode signatures that contain extraneous information in the WIN_CERTIFICATE structure. See Suggested Actions below for details on how to enable this registry key.

  • Review Microsoft Root Certificate Program Technical Requirements

    Customers who are interested in learning more about the topic covered in this advisory should review Windows Root Certificate Program - Technical Requirements.

  • Modify Binary Signing Processes by June 10, 2014

    After reviewing the technical details underlying the change in Authenticode signature verification behavior, Microsoft recommends that customers ensure that their Authenticode signatures do not contain extraneous information in the WIN_CERTIFICATE structure. Microsoft also recommends that executables authors verify that their Authenticode-signed binaries conform to the new verification requirements before June 10, 2014. Authors who have modified their binary signing processes and would like to enable the new behavior prior to June 10, 2014 may do so on an opt-in basis. After June 10, 2014, binaries with signatures that do not conform to the new verification process will be considered unsigned. See Windows Root Certificate Program - Technical Requirements for guidance.

  • Test the Improvement to Authenticode Signature Verification

    Microsoft recommends that customers test how this change to Authenticode signature verification behaves in their environment by enabling it prior to June 10, 2014. To enable the Authenticode signature verification improvements, modify the registry to add the EnableCertPaddingCheck value as detailed below.

    Warning Performing these steps to enable the functionality changes included in the MS13-098 update will cause non-conforming binaries to appear unsigned and, therefore, render them untrusted.

    Note If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

    After installing the MS13-098 update, perform the following:

    For 32-bit versions of Microsoft Windows

    Paste the following text in a text editor such as Notepad. Then, save the file by using the .reg file name extension (for example, enableAuthenticodeVerification.reg).

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Wintrust\Config]
    "EnableCertPaddingCheck"="1"

    You can apply this .reg file to individual systems by double-clicking it.

    Note You must restart the system for your changes to take effect.

    For 64 -bit versions of Microsoft Windows

    Paste the following text in a text editor such as Notepad. Then, save the file by using the .reg file name extension (for example, enableAuthenticodeVerification64.reg).

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Wintrust\Config]
    "EnableCertPaddingCheck"="1"

    [HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config]
    "EnableCertPaddingCheck"="1"

    You can apply this .reg file to individual systems by double-clicking it.

    Note You must restart the system for your changes to take effect.

    Impact of enabling the functionality changes included in the MS13-098 update . Non-conforming binaries will appear unsigned and, therefore, be rendered untrusted.

     

    How to disable the functionality . Perform the following to delete the registry value previously added.

    For 32-bit versions of Microsoft Windows, paste the following text in a text editor such as Notepad. Then, save the file by using the .reg file name extension (for example, disableAuthenticodeVerification.reg).

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Wintrust\Config]
    "EnableCertPaddingCheck"=-

    You can apply this .reg file to individual systems by double-clicking it.

    Note You must restart the system for your changes to take effect.

    For 64-bit versions of Microsoft Windows, paste the following text in a text editor such as Notepad. Then, save the file by using the .reg file name extension (for example, disableAuthenticodeVerification64.reg).

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Wintrust\Config]
    "EnableCertPaddingCheck"=-

    [HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config]
    "EnableCertPaddingCheck"=-

    You can apply this .reg file to individual systems by double-clicking it.

    Note You must restart the system for your changes to take effect.

     

Additional Suggested Actions

  • Protect your PC

    We continue to encourage customers to follow our Protect Your Computer guidance of enabling a firewall, getting software updates and installing antivirus software. For more information, see Microsoft Safety & Security Center.

  • Keep Microsoft Software Updated

    Users running Microsoft software should apply the latest Microsoft security updates to help make sure that their computers are as protected as possible. If you are not sure whether your software is up to date, visit Microsoft Update, scan your computer for available updates, and install any high-priority updates that are offered to you. If you have automatic updating enabled and configured to provide updates for Microsoft products, the updates are delivered to you when they are released, but you should verify that they are installed.

Other Information

Microsoft Active Protections Program (MAPP)

To improve security protections for customers, Microsoft provides vulnerability information to major security software providers in advance of each monthly security update release. Security software providers can then use this vulnerability information to provide updated protections to customers via their security software or devices, such as antivirus, network-based intrusion detection systems, or host-based intrusion prevention systems. To determine whether active protections are available from security software providers, please visit the active protections websites provided by program partners, listed in Microsoft Active Protections Program (MAPP) Partners.

Feedback

Support

Disclaimer

The information provided in this advisory is provided "as is" without warranty of any kind. Microsoft disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Microsoft Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Microsoft Corporation or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply.

Revisions

  • V1.0 (December 10, 2013): Advisory published.
  • V1.1 (December 13, 2013): Corrected the registry key information in the Test the Improvement to Authenticode Signature Verification suggested action. Customers who have applied or plan to apply the suggested action should review the revised information.
  • V1.2 (February 11, 2014): Rereleased advisory as a reminder to customers that the dormant changes implemented with MS13-098 will be enabled on June 10, 2014. After this date, Windows will no longer recognize non-compliant binaries as signed. See the Recommendation and Suggested Actions sections of this advisory for more information.

Built at 2014-04-18T13:49:36Z-07:00

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.