两名GnuPG开发人员公开凭证遭到垃圾签章攻击

两名GnuPG的开发人员Robert Hansen与Daniel Kahn Gillmor用于OpenPGP的公开凭证(Public Certificate),在上周传出遭到垃圾签章的攻击,造成任何企图汇入这两个凭证的OpenPGP/GnuPG安装都会失效,而且受害凭证已被上传到SKS密钥服务器网络(SKS Keyserver Network)。自「优良保密协议」(Pretty Good Privacy,PGP)衍生而来的OpenPGP,为一采用公钥密码学的开源加密通讯协议,定义了加密讯息、签章或交换公开凭证的标准格式,而GnuPG则是用来实现OpenPGP的工具。

两名GnuPG开发人员公开凭证遭到垃圾签章攻击_第1张图片

根据Hansen的说明,此一攻击开采了OpenPGP协议的缺陷,才能淹没他与Gillmor的OpenPGP凭证。OpenPGP是基于公钥与私钥的非对称加密技术,其中的私钥由使用者自行保管,公钥(公开凭证)则被置放在密钥服务器上,当A要与B进行私密通讯时,可先到密钥服务器上搜寻B的公开凭证,以该凭证将讯息/邮件加密,再寄给B,B即可以自己的私钥解密。然而,密钥服务器上原本设计的功能却受到有心人士的利用。例如它透过他人的凭证签章来替特定凭证背书,假设A认识C,B也认识C,于是当A在B的公开凭证上看到C的凭证签章时,就比较相信该凭证是属于B的。又例如为了避免极权政府窜改服务器上的凭证,密钥服务器禁止删除任何的凭证或替该凭证背书的所有凭证签章,还可定期与其它密钥服务器同步。

 

于是凭证上来自他人的签章只会愈积愈多而永远无法删减,攻击者便是利用上述功能,以数万个或数十万个凭证签章淹没了Hansen与Gillmor的公开凭证。其中,Gillmor公开凭证上的凭证签章在上周激增到5.5万个,Hansen公开凭证上的凭证签章数量则接近15万个,Hansen以「中毒」(Poisoned)来形容被攻击的凭证。OpenPGP并没有限制单一凭证的签章数量,GnuPG也没有;因此当GnuPG必须处理此一含有如此庞大数据量的凭证时,就卡住了。Hansen认为,现在似乎没有修补上述问题的办法,因为目前密钥服务器所使用的标准软件「同步密钥服务器」(Synchronizing Key Server,SKS)是以特殊的OCaml语言所撰写,且是Yaron Minsky个人理论的概念性验证,很难找到能快速理解Minsky的理论、逻辑或熟悉OCaml语言的开发人员,来负责更新或维护SKS密钥服务器网络,且分散的密钥服务器网络还缺乏中央管理组织来推动全面的升级。

 

不过,Hansen与Gillmor还是提出了缓解措施,包括不要自SKS密钥服务器网络刷新他们的凭证,使用其它限制较多的密钥服务器以找出他们的原始凭证,Hansen则直接建议高风险的用户不要再使用SKS密钥服务器网络。Hansen还警告,中毒的凭证无法自SKS密钥服务器网络上删除,也不确定攻击者是否会锁定其它凭证发动攻击,任何时候都可能有凭证遭到类似的攻击,甚至无从估计受灾范围,可能要等到OpenPGP安装失败的时候才会知道。

你可能感兴趣的:(两名GnuPG开发人员公开凭证遭到垃圾签章攻击)