GnuTLS和Apple证书验证的bugs并非为同一个

路人甲 2014-03-07 10:37:00

GnuTLS的bug与Apple goto fail的bug都导致了验证TLS和SSL证书问题,但是他们两个实际上并非是同一个,虽然都是把假的证书也当成有效的证书。

霍普金斯大学的一位密码学教授说:“GnuTLS是一个编码错误,返回了错误的变量,而苹果可能是一个剪切和粘贴的失误。”

goto命令在这两个bug当中都出现了,goto fail语句是C语言遇到错误的时候一个标准执行流程。判断证书是否有效的代码应该返回一个true或者false的布尔值。但是这个GnuTLS的bug,返回的是一个负数的特殊错误代码。

这个bug就是当其中的一个函数返回一个负数的错误代码,这个错误代码当做一个布尔型,而不是真正的一个数字,但是布尔型的判断当中,只要是非0就是true,因此,这个错误在布尔判断中当成了真,形成了这个bug。

这个GnuTLS的bug是被Red Hat审计出来的,GnuTLS 是一个安全通讯库,实现了 SSL、TLS 和 DTLS 协议和相关技术。提供了简单的 C 语言编程接口用来访问这些安全通讯协议,提供解析和读写 X.509、PKCS #12、OpenPGP 和其他相关结构。特点是可移植性和高效。使用并没有OpenSSL广泛,也没有部署在iOS设备上,但是在Linux和很多开源程序当中有使用。

原文:http://threatpost.com/goto-aside-gnutls-and-apple-bugs-are-not-the-same/104626

评论

路人甲

真正的路人甲.

twitter weibo github wechat

随机分类

Exploit 文章:40 篇
事件分析 文章:223 篇
SQL注入 文章:39 篇
软件安全 文章:17 篇
网络协议 文章:18 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

H

HHHeey

好的,谢谢师傅的解答

Article_kelp

a类中的变量secret_class_var = "secret"是在merge

H

HHHeey

secret_var = 1 def test(): pass

目录