Google опубликовал Wycheproof, инструментарий для проверки криптографических библиотек

Компания Google анонсировала проект Wycheproof, в рамках которого подготовлен инструментарий для выявления в различных реализациях алгоритмов шифрования известных недоработок и несоответствий с ожидаемым поведением, открывающих двери для проведения атак. Мелкие ошибки при реализации алгоритмов шифрования часто могут привести к катастрофическим последствиям, оставаясь слишком долго необнаруженными. Wycheproof рассчитан на оперативное определение подобных ошибок, которые встречаются значительно чаще, чем хотелось бы. Набор тестов написан на языке Java и распространяется под лицензией Apache 2.0.

В настоящее время в Wycheproof реализовано более 80 тестов, проверяющих на наличие более 40 видов ошибок в реализациях алгоритмов RSA, DSA, ECDH и Diffie-Hellman, таких как некорректный выбор констант для построения эллиптической кривой, повторное использование параметров в схемах формирования цифровых подписей, различные виды атак на AES-EAX, AES-GCM, DH, DHIES, DSA, ECDH, ECDSA, ECIES и RSA. Для некоторых тестов код пока не открыт, так как они проверяют уязвимости, ещё не исправленные производителями (код будет открыт после устранения связанных с ними проблем). Например, исследователями Google выявлена возможность восстановления закрытого ключа в некоторых широко распространённых реализациях DSA и ECDHC, детали данной уязвимости пока не разглашаются, но тесты уже доступны в бинарном виде.

Язык Java выбран для первого набора тестов из-за того, что Java предоставляет типовой криптографический интерфейс, что позволяет использовать одни тесты для проверки разных криптографических систем. В частности, инструментарий может применяться для проверки криптопровайдеров на базе Java Cryptography Architecture, таких как Bouncy Castle, Spongy Castle и средств шифрования из состава OpenJDK. При этом сами тесты написаны с учетом упрощения портирования на другие языки. Проект развивается командой Google Security Team, но не является официальным продуктом Google. Одним из авторов проекта является известный эксперт по криптографии Даниэль Блейхенбахер (Daniel Bleichenbacher), автор нескольких практических атак на RSA.