我的Windows Server刚刚请求了一个与前一个根证书的妥协有关的证书更新。 我记得Firefox,Safari,Flash,.Net的东西和Internet Explorer都要求更新。
我知道代码是用证书签名的,因此我的问题是:
是以任何方式相关的证书,
如果他们是这样的话,那么根证书被入侵的事实会对签名代码造成风险(比如允许执行一些恶意代码,或者允许别人篡改已签名的代码?)
最后,在iOS的情况下,这是否意味着每个应用程序需要重新编译新的证书,或者对以前签署的代码没有不良影响?
首先,苹果代码签名根与受损根(DigiNotar)无关,所以对于你的第一个问题,从这个代码签名没有直接的影响。 此证书位于iOS根存储中,因此可能会影响应用程序,包括Safari或使用内置URL加载系统或根梯度的任何人。
如果苹果代码签名密钥(或其中一个主要中介)遭到破坏,那么理论上对代码签名系统可能是灾难性的。 实际上,攻击者也需要冒充苹果更新服务器,这是一个不同的问题。 但是如果你把这两样东西放在一起,是的,他们可以在理论上推他们想要的东西。
一般情况下,只有两种方式来处理X.509中的关键折衷:等待证书过期或撤销。 大多数根证书的有效范围相当长(通常为数十年)。 较低级证书的范围较短(数月或数年)。
撤销证书意味着软件(在这种情况下为iOS)需要检查撤销列表并拒绝其上的证书。 这将打破所有的软件,直到他们全部辞职和重新安装。
由于苹果控制着应用程序商店和iOS,实际上还有其他一些可供select的选项。 他们可以修补iOS,对app store中的每一个软件进行一次性哈希validation,然后应用新的签名。 当您控制系统的所有部分时,确定信任更容易。
仅仅因为根证书受到威胁本身并不意味着恶意代码会突然在每个人的设备(或任何人的设备)上运行。 妥协证书只是一个更复杂的攻击。 但这将是一个有用的一块。
请记住,Mac和Windows和Unix等存在多年没有代码签名。 大多数现代操作系统都有一些代码签名,但是并没有被广泛的使用(通常只是在安装包的时候)。 当它失败时,用户通常会忽略它。 iOS计划是向前迈出的一大步,但如果没有它,你可能会陷入混乱。
代码签名不能确保代码是良性的。 在批准应用程序之前,我可以做几件恶意的事情,苹果几乎不可能检测到。 只是因为他们有一个信用卡文件并不意味着苹果真的知道谁提交了应用程序。
所以代码签名是一个重要的安全措施,但它不是唯一的安全措施。 正如你所build议的,键是非常重要的,但它们只是系统的一部分。
如果您已经根据由伪造的根签名的X.509证书签署了代码,则可能是伪代码。 而且它可能会在你的系统上做一些不愉快的事情。
但是,对于未由受损根签名的证书签名的代码没有任何含义。