Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

I discovered that a signed installer package that is reported as correctly signed on Windows 7 and earlier, is reported as "corrupt" in IE10 on Windows 8.

Further investigation showed that the signature was made with MD5.

While it is entirely sensible that Microsoft drops support for MD5, I have been unable to find any references for this fact.

I also seem to remember seeing a notice about Microsoft removing support for MD5 in earlier versions soon, but I haven't been able to find that either.

Am I correct in thinking that MD5 is not supported on Windows 8? Do anyone have a reference for it? Will support for MD5 also be removed in Windows 7 and earlier?

share|improve this question
    
It's unlikely that MS has cut MD5 support, it's more likely a bug of some kind. –  GdD Sep 20 '12 at 8:33
    
I'd say, after the FLAME malware, abusing MD5 collisions on signed drivers, to escape AV software detection, that it's fairly reasonable to think that MS has dropped support for MD5. However, I don't think it's the case. –  Kao Sep 20 '12 at 8:37
    
Microsoft has cut MD5 support for code signing. –  Polynomial Sep 20 '12 at 8:45

1 Answer 1

up vote 4 down vote accepted

In Windows 7, the requirements for code signing were as follows:

  • For applications, SHA1 is preferred, MD5 is accepted.
  • For drivers, SHA1 is required.

In Windows 8, the requirements changed to the following:

  • For applications, SHA1 is required, and SHA256 is optional.
  • For drivers, SHA1 is required, and SHA256 is optional.
  • For cross-compatibility, Microsoft supports dual-signing, in which the payload is signed with both SHA1 and SHA256. On Windows 7, the old SHA1 hash will be checked. On Windows 8, the SHA256 hash will be checked.

It's not known whether this is in response to Flame, or just a standard progression of security technology.

The problem with altering the requirements in Windows 7 is two-fold. First and foremost, there are tens of thousands of existing applications signed using MD5-based certificates. Second, it's a lot of effort to modfiy the kernel, code signing utilities, Visual Studio, etc. to reflect the new requirements. However, Microsoft have (supposedly) taken steps to ensure that no internal code-signing certificates allow MD5, and have revoked offending certificates.

share|improve this answer
    
Thank you. I think I confused this issue with the deprecation of 512-bit RSA keys. Would you happen to have a reference for the Windows 8 requirements? –  Rasmus Faber Sep 20 '12 at 10:39
    
@RasmusFaber No confusion. See Signing a Driver for Public Release‌​, Signing and Checking Code with Authenticode, Driver Signing Policy (Windows Vista and Later) and an advisory blog post, in which they explain why they revoked the cert chain. –  Polynomial Sep 20 '12 at 10:53
    
I can't find anything in those links about Windows 8 requiring SHA-1 or higher for code signing applications. I do not doubt that you are correct, but I would very much like something official from Microsoft to point at. (But perhaps there isn't anything). –  Rasmus Faber Sep 20 '12 at 11:03
    
@Polynomial - While it does cause a problem I would rather as a developer face this problem then the horrible events if some criminal created a payload that matched and an application that appeared to be signed by me. Besides while Windows 8 will indicate the signed application is not valid, you should still be able to install and use the application, unless there is some other reason it cannot be ran. –  Ramhound Sep 20 '12 at 11:34
    
@Ramhound Note that the code signing enforcement is not to benefit you as a developer. It's for end users. Enabling insecure code signing techniques allows the spread of malware like Flame. However, in Windows 7, they will not update the requirements, because so much existing software expects MD5 to be supported. Changing those requirements makes a serious headache for end-users, because their existing signed software won't run at all. –  Polynomial Sep 20 '12 at 11:49

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.