Wycheproof — тестирование криптографических библиотек против известных атак

Wycheproof - тестирование криптографических библиотек против известных атак

Тестирование криптографических библиотек против известных атак: Wycheproof

Проект Wycheproof тестирует криптографические библиотеки против известных атак. Он разрабатывался и продолжает поддерживаться членами Google Security Team, но, тем не менее, не является официальным продуктом Google. В криптографии, мелкие ошибки могут иметь катастрофические последствия. Хороших рекомендаций по реализации, однако, трудно найти: понимание того, как реализовать криптографию, требует тщательного анализа десятилетней научной литературы.

Эти наблюдения побудили Google разработать Project Wycheproof, набор модульных тестов, которые обнаруживают известные недостатки или проверяют ожидаемое поведение некоторого криптографического алгоритма. Проект Wycheproof предоставляет тесты для большинства криптографических алгоритмов, включая RSA, криптографическую эллиптическую кривую и аутентифицированное шифрование. Криптографы Google систематически изучали литературу и применяли самые известные атаки. Проект Wycheproof, отнюдь, не является полным. Если библиотека прошла тесты, то это не означает, что она является безопасной, это просто означает, что библиотека не уязвима для атак, которые тестируются Project Wycheproof. Криптографы также постоянно открывают новые атаки. Тем не менее, разработчики и пользователи Project Wycheproof теперь могут проверять свои библиотеки против большого количества известных атак, не тратя много времени на чтение академических документов или на то, чтобы самим стать криптографами.

Что охватывает эта программа?

Проект Wycheproof имеет тесты для самых популярных криптоалгоритмов, в том числе:

Тесты обнаруживают, является ли библиотека уязвимой для многих атак, а именно:

  • Неверные характеристики атаки
  • Смещение ключевого слова в схемах цифровой подписи;
  • Безусловно, все Bleichenbacher атаки;
  • И многое другое — у нас есть 80 вариантов тестов.

Использование

git clone https://github.com/google/wycheproof
  • Для проверки последней стабильной версии Bouncy Castle:
bazel test BouncyCastleAllTests
  • Для проверки других версий, например, v1.52:
bazel test BouncyCastleAllTests_1_52
  • Для проверки всех известных версий (внимание, это займет много времени):
bazel test BouncyCastleAllTests_*
  • Для проверки Spongy Castle, замены BouncyCastle на SpongyCastle в ваших командах, например
bazel test SpongyCastleAllTests
  • Для проверки вашей нынешней установки OpenJDK:
bazel test OpenJDKAllTests

Обратите внимание, что OpenJDKAllTests ожидает, что OpenJDK является вашим JDK по умолчанию, поэтому он может отказаться от запуска или его результаты могут быть неверными, если вы используете какой-либо другой JDK. Если вы загрузили JDK из Oracle или https://java.com, вы, вероятно, используете Oracle JDK, который должен быть совместим с OpenJDK, поэтому тесты должны работать корректно.

Некоторые тесты занимают очень много времени. Если вы хотите исключить их, используйте BouncyCastleTest, SpongyCastleTest или OpenJDKTest — эти цели исключают все медленные тесты (которые аннотируются с помощью @SlowTest).

Большинство тестовых целей терпят неудачу, и каждый отказ может быть проблемой безопасности. Чтобы узнать больше о том, что означает неудачный тест, вы можете проверить нашу документацию (doc / bugs.md) или комментарии поверх соответствующей тестовой функции и тестового класса.

Перевод: Анна Давыдова
Источник: n0where.net

Это интересно:

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *