SHA1 code signing reminder

Earlier this year I jumped though a bunch of hoops to get an appropriate code signing certificate, and described the issues on NTDEV. The important observation was that some pre-Win8 OSs didn?t like SHA2 signatures, and after 1/1/2016 you will no longer be able to make SHA1 signatures, and currently you can?t get a new SHA1 signing certificate if it?s expiration is past 1/1/2016. You still should be able to do SHA1 signatures though 2015, if you already have the non-expired SHA1 certificate. I?m not sure I would wait until the last minute of 2014, as my last Verisign certificate had a 13 month expiration (renewal), so for some, there may be less than 2 months left to buy SHA1 certificates.

So, before the end of the year, you might want to get your last SHA1 certificate (1 year expiration), to maximize compatibility with less recent OS?s (which include Win 7). You can still get significant discounts under some conditions and the page at http://msdn.microsoft.com/en-us/library/windows/hardware/hh801887.aspx will do the right magic. If you?re active in WHQL it looks like Verisign still has the $99 deal, and it says DigiCert will give you 50% off ($111 for a 1 year non-EV, although I found it much harder to specify SHA1 to Digicert than Verisign).

Assuming prices don?t change, after 1/1/2015, the best certificate deal seems like a Digicert 3 year SHA2 EV certificate on a hardware token for $497, or half that if you just want the non-EV variant. We shall see what Verisign does to be competitive. Currently, the 1 year Verisign certificate is priced very slightly less than DigiCert, although I believe a 3 year Verisign certificate can?t get the serious discount price, so for anything except 1 year non-EV certificates, DigiCert looks significantly lower cost. Both Verisign and DigiCert can now be used for WHQL submissions. You can get other brands of kernel code signing certificates, if you don?t care about WHQL submissions.The list of valid cross certs is at http://msdn.microsoft.com/en-us/library/windows/hardware/dn170454(v=vs.85).aspx

I havne?t heard what if anything is happening to pre-Win8 OSs to support SHA2 in all scenarios. The case where it didn?t seem to work was a non-PnP x64 driver .sys with a kernel code signature. Things like filter drivers will often not install using a PnP .inf and associated .cat. Microsoft claimed some older OSs support SHA2, but I suspect its only supported in cases where it?s checked as part of an inf install, by user mode code. If not fixed, it seems like this implies any certificates purchased after 1/1/2015 will no longer work for pre-Win8 non-inf installed x64 kernel drivers, and after 1/1/2016 (unless fixed), no signing certificate will work in these cases. I personally see that as a problem, and hopefully it has been or will be fixed. Drivers already signed with SHA1 keys, that work today, because of the signed timestamp, I would hope continue to work correctly after 1/1/2016. If not, 12/31/2015 might be a good day to short some MSFT stock, as there would be a lot of unhappy people. It might even be worth testing your SHA1 signed drivers with the date set past 1/1/2016. This does seem like no matter what, it will be a significant problem for installing new SHA2 signed non-INF drivers on unpatched pre-Win8 OSs, like right after you install from a Win7/Server08r2 DVD. If anybody knows SHA2 signature issues are fixed on pre-WIn8 OSs, please let us know, they were not totally fixed as of about May 1, 2014.

Also note that it is possible to apply both a SHA1 and SHA2 signature, if you have the correct certificates and signing options. It?s not well documented how to do this. This might be the optimal strategy, as you get the improved security of SHA2 on systems that support it but also compatibility with systems that don?t.

I?m not a stockholder or employee of Verisign or DigiCert, so feel free to ignore everything I just said if you perceive this as a marketing pitch.

Jan

Thanks for the reminder. I don’t see how this is going to be anything other
than a disaster for everyone supporting old releases (XP and Win7). Perhaps
somebody can offer up exactly what the transition plan is for those
releases. And before anyone claims that XP is not supported, well it is,
even by MSFT, if you pay enough.

Finally, why can’t MSFT get it that one of their major strengths is that
their older releases are still functioning quite well? Apps and drivers can
be built for XP and run on win10. That is a good thing, not something that
should be taken outside and shot in the head.

Mark Roddy

On Sat, Oct 11, 2014 at 1:09 AM, Jan Bottorff
wrote:

> Earlier this year I jumped though a bunch of hoops to get an appropriate
> code signing certificate, and described the issues on NTDEV. The important
> observation was that some pre-Win8 OSs didn’t like SHA2 signatures, and
> after 1/1/2016 you will no longer be able to make SHA1 signatures, and
> currently you can’t get a new SHA1 signing certificate if it’s expiration
> is past 1/1/2016. You still should be able to do SHA1 signatures though
> 2015, if you already have the non-expired SHA1 certificate. I’m not sure I
> would wait until the last minute of 2014, as my last Verisign certificate
> had a 13 month expiration (renewal), so for some, there may be less than 2
> months left to buy SHA1 certificates.
>
> So, before the end of the year, you might want to get your last SHA1
> certificate (1 year expiration), to maximize compatibility with less recent
> OS’s (which include Win 7). You can still get significant discounts under
> some conditions and the page at
> http://msdn.microsoft.com/en-us/library/windows/hardware/hh801887.aspx
> will do the right magic. If you’re active in WHQL it looks like Verisign
> still has the $99 deal, and it says DigiCert will give you 50% off ($111
> for a 1 year non-EV, although I found it much harder to specify SHA1 to
> Digicert than Verisign).
>
> Assuming prices don’t change, after 1/1/2015, the best certificate deal
> seems like a Digicert 3 year SHA2 EV certificate on a hardware token for
> $497, or half that if you just want the non-EV variant. We shall see what
> Verisign does to be competitive. Currently, the 1 year Verisign certificate
> is priced very slightly less than DigiCert, although I believe a 3 year
> Verisign certificate can’t get the serious discount price, so for anything
> except 1 year non-EV certificates, DigiCert looks significantly lower cost.
> Both Verisign and DigiCert can now be used for WHQL submissions. You can
> get other brands of kernel code signing certificates, if you don’t care
> about WHQL submissions.The list of valid cross certs is at
> http://msdn.microsoft.com/en-us/library/windows/hardware/dn170454(v=vs.85).aspx
>
> I havne’t heard what if anything is happening to pre-Win8 OSs to support
> SHA2 in all scenarios. The case where it didn’t seem to work was a non-PnP
> x64 driver .sys with a kernel code signature. Things like filter drivers
> will often not install using a PnP .inf and associated .cat. Microsoft
> claimed some older OSs support SHA2, but I suspect its only supported in
> cases where it’s checked as part of an inf install, by user mode code. If
> not fixed, it seems like this implies any certificates purchased after
> 1/1/2015 will no longer work for pre-Win8 non-inf installed x64 kernel
> drivers, and after 1/1/2016 (unless fixed), no signing certificate will
> work in these cases. I personally see that as a problem, and hopefully it
> has been or will be fixed. Drivers already signed with SHA1 keys, that work
> today, because of the signed timestamp, I would hope continue to work
> correctly after 1/1/2016. If not, 12/31/2015 might be a good day to short
> some MSFT stock, as there would be a lot of unhappy people. It might even
> be worth testing your SHA1 signed drivers with the date set past 1/1/2016.
> This does seem like no matter what, it will be a significant problem for
> installing new SHA2 signed non-INF drivers on unpatched pre-Win8 OSs, like
> right after you install from a Win7/Server08r2 DVD. If anybody knows SHA2
> signature issues are fixed on pre-WIn8 OSs, please let us know, they were
> not totally fixed as of about May 1, 2014.
>
> Also note that it is possible to apply both a SHA1 and SHA2 signature, if
> you have the correct certificates and signing options. It’s not well
> documented how to do this. This might be the optimal strategy, as you get
> the improved security of SHA2 on systems that support it but also
> compatibility with systems that don’t.
>
> I’m not a stockholder or employee of Verisign or DigiCert, so feel free to
> ignore everything I just said if you perceive this as a marketing pitch.
>
> Jan
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

On 10/11/2014 2:02 PM, Mark Roddy wrote:

Thanks for the reminder. I don’t see how this is going to be anything
other than a disaster for everyone supporting old releases (XP and
Win7). Perhaps somebody can offer up exactly what the transition plan
is for those releases. And before anyone claims that XP is not
supported, well it is, even by MSFT, if you pay enough.

People have also been asking that question on
http://blogs.technet.com/b/pki/archive/2013/11/12/3610116.aspx?pi47623=3#pi47623=3
(page 3 of comments):

“In line with Google’s expedited SHA-1 deprecation plan which the CAs
are reacting to, please can we have an update about KMCS with Windows
Vista and Windows 7? SHA-1 based certificates will soon be unavailable.”

DigitCert has a detailed compatibility list at
https://www.digicert.com/sha-2-compatibility.htm where it seems obvious
that KMCS is an issue at the moment.


Bruce

On 11-Oct-2014 23:02, Mark Roddy wrote:

I don’t see how this is going to be anything
other than a disaster for everyone supporting old releases (XP and
Win7).

IMHO it won’t be disaster, at most - yet another Windows annoyance.
Let’s see:

* For WinXP, 2003, 32-bit Win7 signing is optional, so no problem.

* For 64-bit Win7 SP1, 2008 R2: support for sha2 has been released as
update, installed systems need to be patched (annoyance).

* Also, any “serious” IT org can get their own cert and re-sign the
drivers they care about (annoyance).

Finally, why can’t MSFT get it that one of their major strengths is that
their older releases are still functioning quite well? Apps and drivers
can be built for XP and run on win10.

Compatibility with WinXP has been already broken by 64-bit OS, when all
32-bit drivers stopped to load. I had to throw away some
old, trusty hardware which I could not find 64-bit drivers.

Regards,
– pa

As of May 2014, my experience was Win 7 and Win 2008 R2 had NOT been updated to support drivers that only had a kernel code signature. I was trying to sign a 64-bit non-PnP driver, and it seemed to be impossible to use a SHA2 certificate. I did apply all available updates at the time. I believe SHA2 did work for user mode signature checking, like PnP .cat signatures.

As I remember, running signtool signature verification with the kernel policy on the target system claimed a signed .sys should work, but it didn?t. I eventually had to turn on code integrity ETW tracing, to see the signature check failures. I then signed the .sys code with a know good SHA1 certificate, and it worked perfectly.

For non boot drivers, I believe if you have a PnP .cat signature, that is sufficient to substitute for a KMCS signed .sys. If you are a boot driver or a legacy non-PnP driver, then the signature checking happens in kernel mode, and didn?t seem to work for SHA2 certificates.

Jan

On Oct 11, 2014, at 1:44 PM, Pavel A. wrote:

> On 11-Oct-2014 23:02, Mark Roddy wrote:
>> I don’t see how this is going to be anything
>> other than a disaster for everyone supporting old releases (XP and
>> Win7).
>
> IMHO it won’t be disaster, at most - yet another Windows annoyance. Let’s see:
>
> * For WinXP, 2003, 32-bit Win7 signing is optional, so no problem.
>
> * For 64-bit Win7 SP1, 2008 R2: support for sha2 has been released as update, installed systems need to be patched (annoyance).
>
> * Also, any “serious” IT org can get their own cert and re-sign the drivers they care about (annoyance).
>
>> Finally, why can’t MSFT get it that one of their major strengths is that
>> their older releases are still functioning quite well? Apps and drivers
>> can be built for XP and run on win10.
>
> Compatibility with WinXP has been already broken by 64-bit OS, when all 32-bit drivers stopped to load. I had to throw away some
> old, trusty hardware which I could not find 64-bit drivers.
>
> Regards,
> – pa
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> For our schedule of WDF, WDM, debugging and other seminars visit: http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

On Oct 11, 2014, at 1:02 PM, Mark Roddy > wrote:

Finally, why can’t MSFT get it that one of their major strengths is that their older releases are still functioning quite well? Apps and drivers can be built for XP and run on win10. That is a good thing, not something that should be taken outside and shot in the head.

There is both a practical and a philosophical aspect to this disconnect.

From a practical perspective, it?s not good for Microsoft that XP is great. They are in business to make money. They make money by selling operating system licenses, not by being proud of a 12-year-old masterpiece.

From a philosophical perspective, I have seen this ?Redmond reality field? thing before. We here in the real world see Windows XP as a rock-solid stalwart, Windows 7 as a mainstream operating system, and Windows 8.1 as the bleeding edge, experimental newcomer. But within the walls in Redmond, Windows 8.1 is already an antique legacy, ready to be pushed into an early grave.

Tim Roberts, xxxxx@probo.commailto:xxxxx
Providenza & Boekelheide, Inc.</mailto:xxxxx>

Yeah I get that they make money on selling upgrades, but that business
model is dead or dying as the competition sells their upgrades for free. So
MSFT has to get it into their skulls that by keeping the installed base
happy instead of deliberately pulling the rug out from under them they will
continue to sell NEW licenses. Providing incentives for people to just
ditch windows entirely by infuriating them is a Real Bad Idea ™.

Anyway a fair point was made re XP: it is a don’t care non-issue. WIn7x64
is the problem and the installed base for that is ginormous and not going
anywhere soon. “There is a kb update for that” appears to be unconfirmed as
fully functional.

Mark Roddy

On Sun, Oct 12, 2014 at 1:10 AM, Tim Roberts wrote:

> On Oct 11, 2014, at 1:02 PM, Mark Roddy wrote:
>
>
> Finally, why can’t MSFT get it that one of their major strengths is that
> their older releases are still functioning quite well? Apps and drivers can
> be built for XP and run on win10. That is a good thing, not something that
> should be taken outside and shot in the head.
>
>
> There is both a practical and a philosophical aspect to this disconnect.
>
> From a practical perspective, it’s not good for Microsoft that XP is
> great. They are in business to make money. They make money by selling
> operating system licenses, not by being proud of a 12-year-old masterpiece.
>
> From a philosophical perspective, I have seen this “Redmond reality field”
> thing before. We here in the real world see Windows XP as a rock-solid
> stalwart, Windows 7 as a mainstream operating system, and Windows 8.1 as
> the bleeding edge, experimental newcomer. But within the walls in Redmond,
> Windows 8.1 is already an antique legacy, ready to be pushed into an early
> grave.
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Let me see if I understand. We will be forced to obtain an SHA2 cert for signing a year or so down the road. From that point on, our drivers will look unsigned in XP. Ok, this happens already without logo so no difference at all. And on Win7 in the future without the latest patches (extremely unusual?) our drivers will look unsigned though the user will have the choice to still use it. It doesn’t sound that bad or am I missing something?

> Let me see if I understand. We will be forced to obtain an SHA2 cert for signing a year or so down the road. From that point on,

our drivers will look unsigned in XP. Ok, this happens already without logo so no difference at all. And on Win7 in the future
without the latest patches (extremely unusual?) our drivers will look unsigned though the user will have the choice to still use
it. It doesn’t sound that bad or am I missing something?

To check my own interpretation : The Verising SHA2 certs will have to be used to sign for the WHQL submission ( and since
Microsoft only accepts Verisign , or ? ) . For common driver signing ( KMCS ) of 64 bit drivers that don’t need to be WHQL
accepted , one may still go for other Microsoft accepted CA code signing authorities that provide SHA1 certificates , and that will
be accepted on all 64 bit ( and 32 bit ) OS version , Windows 8.* as well.

Is my interpretation correct ?

Christiaan


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

So if you have to do unattended installs or headless installs you are SOL.

Mark Roddy

On Mon, Oct 13, 2014 at 3:43 AM, wrote:

> Let me see if I understand. We will be forced to obtain an SHA2 cert for
> signing a year or so down the road. From that point on, our drivers will
> look unsigned in XP. Ok, this happens already without logo so no difference
> at all. And on Win7 in the future without the latest patches (extremely
> unusual?) our drivers will look unsigned though the user will have the
> choice to still use it. It doesn’t sound that bad or am I missing something?
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Today MS released this:
https://technet.microsoft.com/library/security/2949927
https://support.microsoft.com/kb/2949927
Has anyone tested it?

Reading through the description, that very much looks like it might contain a fix for the issue I was talking about, at least for Win 7 and Server 2008 r2 (which would still leave Vista and Server 2008 non-r2 unable to fully cope with SHA2).

The specific part of the fix that looks especially promising:

* The ability to verify RFC3161 timestamps to the Code Integrity component that verifies signatures in the kernel

I don?t currently have a SHA2 certificate I could test wit, so somebody else will need to see if this solves the issues. It suggests this will roll out at part of Windows update.

For fresh installs from the release media, this patch will also not be present, so especially for network drivers (or boot storage drivers needed to install the OS), there still may be a chicken and egg problem, although many if those drivers will be PnP installed, so my belief is will be OK with SHA2.

This patch also added a bunch of support for dual SHA1/SHA2 signatures. The page at http://msdn.microsoft.com/en-us/library/windows/hardware/hh967734(v=vs.85).aspx describes how to do dual SHA1/SHA2 signatures with signtool.

It seems like best practices for the next year would be to put dual signatures on drivers, which would maximize compatibility with unpatched OSs, and maximize security with patched or newer ones.

Jan

On Oct 14, 2014, at 12:04 PM, xxxxx@hotmail.commailto:xxxxx wrote:

Today MS released this:
https://technet.microsoft.com/library/security/2949927
https://support.microsoft.com/kb/2949927
Has anyone tested it?


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx>

What are the security ramifications of continuing to release SHA1 drivers for the next year and ignoring SHA2? 99% of drivers out there are are SHA1 I would presume.

> What are the security ramifications of continuing to release SHA1 drivers for the next year and ignoring SHA2? 99% of drivers out

there are are SHA1 I would presume.

They are mentioned here : https://technet.microsoft.com/library/security/2949927

My question is , MUST we use SHA2 certificates in the future , i.e. will Microsoft refuse the SHA1 certificates for new OS version.
For now , I have one single driver , signed with a SHA1 certificate , that installs on ALL Windows OS version , including XP 64bit
( and derived server versions ) , and I want to keep it this way , even if Windows XP 64bit is not supported anymore !

Regards ,

Christiaan


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

> MUST we use SHA2 certificates in the future

Yes. I know for sure Globalsign is phasing them out and I presume the others are as well. You will not be able to buy a SHA1 code signing certificate anymore.

security ramifications…They are mentioned (in kb)

So in other word absolutely no issues to us or our customers if we continue releasing SHA1.

This update has been pulled because of a third party critical boot driver being treated as unsigned and causing a BSoD on boot because it failed to load.