Сломанный или рискованный криптографический алгоритм

Категория OWASP: MASVS-CRYPTO: Криптография

Обзор

Несмотря на широкое использование криптографии для защиты конфиденциальности и целостности данных, возникает значительный риск, когда разработчики непреднамеренно реализуют слабые или устаревшие криптографические алгоритмы. Эта уязвимость связана с присущими этим алгоритмам недостатками, которыми могут воспользоваться злоумышленники, обладающие необходимой вычислительной мощностью или знаниями. Последствия такой эксплуатации могут быть серьезными и потенциально привести к несанкционированному доступу, утечке данных и манипулированию конфиденциальной информацией.

Влияние

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

Риск: Слабые или сломанные криптографические хеш-функции.

Использование слабых или неработающих криптографических хеш-функций (таких как MD5 или SHA1 ) представляет значительный риск для безопасности и целостности данных. Хэш-функции предназначены для создания уникальных отпечатков пальцев (хешей) фиксированной длины входных данных, что делает их полезными для различных целей, включая проверку целостности данных, хранение паролей и цифровые подписи. Однако при использовании слабых или скомпрометированных хэш-функций может возникнуть несколько уязвимостей:

  • Коллизионные атаки . Слабые хеш-функции подвержены коллизионным атакам, когда злоумышленник находит два разных входа, которые дают одно и то же значение хеш-функции. Это может позволить им подменять законные данные вредоносными данными без обнаружения, что ставит под угрозу целостность данных.
  • Утечки данных . Если пароли хешируются с помощью слабого алгоритма, успешный взлом системы может привести к раскрытию учетных данных пользователя. Затем злоумышленники могут использовать радужные таблицы или другие методы для взлома паролей и получения несанкционированного доступа к учетным записям.
  • Отказ от цифровых подписей . Слабые хеш-функции, используемые в цифровых подписях, могут быть использованы для создания поддельных подписей, что затрудняет определение подлинности и целостности документов или сообщений.

Смягчения

Чтобы снизить эти риски, крайне важно использовать сильные, хорошо проверенные криптографические хэш-функции, такие как SHA-2 или SHA-3 , и обновлять их по мере обнаружения новых уязвимостей. Кроме того, внедрение методов обеспечения безопасности, таких как добавление паролей и использование алгоритмов хеширования для конкретных паролей, таких как bcrypt или Argon2 может еще больше повысить защиту данных.


Риск: Слабые или сломанные функции криптографического шифрования.

Использование слабых или неработающих функций криптографического шифрования (таких как DES или RC4 ) создает серьезный риск для конфиденциальности конфиденциальных данных. Шифрование предназначено для защиты информации путем преобразования ее в нечитаемый формат, но если алгоритм шифрования неисправен, эту защиту можно обойти:

  • Утечки данных. Слабые алгоритмы шифрования подвержены различным атакам, включая атаки методом перебора, атаки с использованием известного открытого текста и методы криптоанализа. В случае успеха эти атаки могут раскрыть зашифрованные данные, обеспечивая несанкционированный доступ к конфиденциальной информации, такой как личные данные, финансовые отчеты или конфиденциальные деловые данные.
  • Манипулирование и фальсификация данных. Даже если злоумышленник не может полностью расшифровать данные, он все равно сможет манипулировать ими без обнаружения, если алгоритм шифрования слабый. Это может привести к несанкционированному изменению данных, что потенциально может привести к мошенничеству, искажению фактов или другим злонамеренным действиям.

Смягчения

Используйте сильные криптографические алгоритмы в функциях шифрования.

Чтобы снизить эти риски, крайне важно использовать надежные и проверенные криптографические алгоритмы и следовать передовым практикам управления ключами и реализации шифрования. Регулярное обновление алгоритмов шифрования и получение информации о возникающих угрозах также необходимы для обеспечения надежной безопасности данных.

Некоторые рекомендуемые алгоритмы по умолчанию для использования:

  • Симметричное шифрование:
    • AES-128 / AES-256 с режимом GCM
    • Chacha20
  • Асимметричное шифрование:
    • RSA-2048 / RSA-4096 с дополнением OAEP

Используйте безопасные примитивы из библиотеки шифрования, чтобы избежать распространенных ошибок.

Хотя выбор подходящего алгоритма шифрования имеет решающее значение, чтобы действительно свести к минимуму уязвимости безопасности, рассмотрите возможность использования библиотеки шифрования, которая предлагает оптимизированный API и уделяет особое внимание безопасным конфигурациям по умолчанию. Такой подход не только повышает безопасность ваших приложений, но и значительно снижает вероятность появления уязвимостей из-за ошибок кодирования. Например, Tink упрощает выбор шифрования, предлагая два различных варианта: AEAD и Hybrid шифрование, что упрощает разработчикам принятие обоснованных решений по безопасности.


Риск: Слабые или неработающие функции криптографической подписи.

Использование слабых или неработающих функций криптографической подписи (таких как RSA-PKCS#1 v1.5 или функций, основанных на слабых хэш-функциях) создает серьезные риски для целостности данных и связи. Цифровые подписи предназначены для обеспечения аутентификации, неотказуемости и целостности данных, гарантируя, что сообщение или документ исходят от конкретного отправителя и не были подделаны. Однако, когда базовый алгоритм подписи имеет недостатки, эти гарантии могут быть поставлены под угрозу:

  • Подделка подписей . Слабые алгоритмы подписи могут быть уязвимы для атак, позволяющих злоумышленникам создавать поддельные подписи. Это означает, что они могут выдавать себя за законных лиц, подделывать документы или подделывать сообщения, не будучи обнаруженными.
  • Отказ от подписей . Если алгоритм подписи нарушен, подписывающее лицо может ложно заявить, что оно не подписывало документ, что подрывает принцип неотказуемости и создает юридические и логистические проблемы.
  • Манипулирование данными и подделка . В сценариях, где подписи используются для защиты целостности данных, слабый алгоритм может позволить злоумышленникам изменять данные, не делая подпись недействительной, что приводит к необнаруженному вмешательству и потенциальному компрометации критической информации.

Смягчения

Используйте надежные алгоритмы криптографической подписи.

Чтобы снизить эти риски, крайне важно использовать надежные и проверенные алгоритмы криптографической подписи:

  • RSA-2048 / RSA-4096 с дополнением PSS
  • Алгоритм цифровой подписи эллиптических кривых ( ECDSA ) с безопасными кривыми

Используйте безопасные примитивы из библиотеки шифрования, чтобы избежать распространенных ошибок.

Выбор правильного алгоритма подписи имеет важное значение, но чтобы действительно свести к минимуму уязвимости безопасности, рассмотрите библиотеку шифрования, которая по умолчанию обеспечивает надежные гарантии безопасности. Tink , например, упрощает выбор подписи, предлагая ECDSA с безопасными кривыми в качестве опции по умолчанию, и все это в рамках простого и комплексного API. Такой подход не только повышает безопасность, но и оптимизирует разработку, устраняя необходимость в сложной настройке или принятии решений.


Ресурсы