Godaddy、苹果及Google误发数十万张不合标准的凭证

使用开源PKI凭证授权软件EJBCA的凭证颁发机构(CA)要小心了,因为Godaddy、苹果和Google出现bug了,在没有注意到EJBCA用来产生凭证序号的默认配置,并未符合CA/B Forum对凭证的基本要求的情况下,至少误发了数十万张的不合格凭证,且正忙于撤销相关凭证。

CA/B Forum的全名为凭证颁发机构浏览器论坛(Certification Authority Browser Forum),也称为CA/Browser Forum,是由各凭证机颁发机构、浏览器企业、操作系统企业与其它PKI应用商所组成的联盟,负责制定及管理数字凭证标准,在其基本要求中阐明由密码学安全伪乱数产生器(Cryptographically secure pseudorandom number generator,CSPRNG)所产生的凭证序号必须至少是64进制的正整数。

另一方面,开源的EJBCA即以64进制作为凭证序号长度的默认值,虽然貌似合理,但为了让凭证维持正整数的特性,它在执行CSPRNG将最高有效进制(最左边的进制)设置为0(0为正数,1为负数),于是,虽然它看起来还是64进制,但第一个进制已被正负数符号占用,代表它其实只产生了63进制的序号长度,已违反CA/B Forum的规定。

安全顾问 Adam Caudill表示,即使只差一个字符,但实际上却是2^64与2^63之间的差别,可谓差以毫厘失之千里。

根据估计,苹果则已因此而误发了87.8万张凭证,其中有55.8万仍是有效凭证,Google的误发数量也超过10万张,尚有7,100张为有效凭证,至于Godaddy所误发的凭证中,迄今仍有1.2万张是有效的。由于CA/B Forum也规定在发觉误发凭证之后,必须在5天之内撤销凭证,也让相关企业在这几天忙翻了。

不过,虽然这些凭证不符规定,但被开采的机率很低,主要是因为64进制的规定是为了未来数十年的安全性所设计,现今的加密攻击技术尚无法破解即使是只有63进制的凭证。

至于EJBCA也在3月初发布的EJBCA 7.0.1修补了该bug,把产生串行号码的长度默认值从8个8字节(octet)直接提高到20个octet(每个octet为8个进制)。