Cloudflare and others believe [1] the risk can be much reduced by new, carefully enforced issuing policies on the part of certificate authorities.<p>The vulnerability of SHA-1 isn&#x27;t that it&#x27;s feasible to generate an input that will produce a checksum of your choice - it&#x27;s that it&#x27;s feasible to generate two inputs that will produce the same checksum. This is orders of magnitude easier, due to the to the birthday problem [2].<p>The SHA-1 the certificate authority generates to sign isn&#x27;t just for the private key in the certificate; it&#x27;s also for metadata like the URL and the powers the certificate grants. So to successfully exploit the weakness of SHA-1 you not only have to find a collision between good and evil certs, you also have to get a CA to sign the good cert without fiddling with the metadata and hence changing the SHA-1.<p>The proposal is that CAs should start systematically adding a random serial number to every cert, i.e. always fiddling with the metadata, so it&#x27;s impossible to choose the SHA-1 the CA will sign. So even if you find a collision, you won&#x27;t be able to get a cert issued that lets you exploit it.<p>For example, maybe I know that sha1(&quot;the public key for good.example.com is asdfqwerzxcv and it isn&#x27;t a CA&quot;) = sha1(&quot;the public key for evil.example.com is rtyufghjcvbn and it <i>is</i> a CA&quot;) = 7d97e98f8af710c7e7fe703abc8f639e0ee507c4 and if I ask a CA to sign the good cert they give me a signature for 7d97e98f8af710c7e7fe703abc8f639e0ee507c4 and I can copy the signature onto the evil cert. With this proposal, the CA would instead only agree to sign &quot;the public key for good.example.com is asdfqwerzxcv and it isn&#x27;t a CA, and the CA&#x27;s random number is 994782906&quot; and because I can&#x27;t control the random number, I can&#x27;t control the SHA1 of the cert they issue to me.<p>Unfortunately CAs have a poor track record of complying with their own issuing policies, so some people doubt CAs could be relied on not to mess this up.<p>[1] <a href="https:&#x2F;&#x2F;blog.cloudflare.com&#x2F;why-its-harder-to-forge-a-sha-1-certificate-than-it-is-to-find-a-sha-1-collision&#x2F;" rel="nofollow">https:&#x2F;&#x2F;blog.cloudflare.com&#x2F;why-its-harder-to-forge-a-sha-1-...</a>
[2] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Birthday_problem" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Birthday_problem</a>