Случайно (или нарочно?) продублированный оператор goto качественно сломал SSL/TLS в недавнем обновлении iOS, позволяя использовать произвольные одноразовые ключи, не имеющие никакого отношения к серверному сертификату, поскольку подписи их перестали проверяться.
https://www.imperialviolet.org/2014/02/22/applebug.htmlhttp://bugtraq.ru/rsn/archive/2014/02/02.html См.
http://opensource.apple.com/source/Security/Security-55471/libsecurity_ssl/lib/sslKeyExchange.c в SSLVerifySignedServerKeyExchange():
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
Upd: желающие могут заказать футболочку до ближайшего четверга:
http://teespring.com/goto-fail-goto-fail (via
some41).