The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Библиотека Sodium Compat поможет реализовать верификацию обновлений в WordPress

17.01.2017 10:57

Доступно несколько первых выпусков криптографической библиотеки Sodium Compat, примечательной тем, что она реализована целиком на языке PHP и не требует для своей работы внешних зависимостей. Sodium Compat совместим с libsodium и может применяться в качестве замены расширения pecl/libsodium.

Ключевым достоинством Sodium Compat является поддержка работы с устаревшими версиями PHP, что является актуальной проблемой, так как полноценные средства для работы с цифровыми подписями и открытыми ключами появились только в относительно новых выпусках PHP. Например, Sodium Compat может работать с PHP 5.2.4, в то время как для использования pecl/libsodium требуется ветка PHP 5.4 и дополнительная внешняя зависимость. Полноценные встроенные средства для работы с RSA-ключами появились только в PHP 5.6.0.

Подобное ограничение мешает внедрению в WordPress средств для верификации устанавливаемых дополнений и обновлений по цифровой подписи. Без повышения минимально поддерживаемой версии интерпретатора PHP проверку по цифровой подписи реализовать не получается из-за отсутствия необходимых криптографических функций, а поднять минимальную версию PHP мешают обязательства перед пользователями. В настоящее время проверка целостности обновления сводится только к сверке хэша MD5 без верификации источника.

Для обеспечения оперативной доставки обновлений начиная с WordPress 3.7 добавлена поддержка автоматической установки обновлений с устранением критических уязвимостей, но данная возможность может сыграть злую шутку в текущей ситуации, когда обновления не проверяются по цифровой подписи. Без полноценной системы верификации компрометация api.wordpress.org и распространение вредоносного обновления через официальные источники может привести к массовому поражению пользовательских систем с WordPress, которые по некоторым оценкам составляют до 27% всех сайтов в глобальной сети.

При этом проблема не умозрительна, например, в ноябре 2016 года была выявлена уязвимость, позволяющая атакующему выполнить свой код на стороне api.wordpress.org. Без проверки по цифровым подписям для успешной атаки на конфигурации WordPress со включенной функцией автоматической установки обновлений достаточно взломать сервер доставки обновлений. В случае применения цифровых подписей получение контроля над сервером распространения обновлений не приведёт к должному результату, так как для проведения атаки понадобиться получить закрытый ключ, при помощи которого осуществляется подпись обновлений.

Sodium Compat позволит выйти из возникшего тупика и реализовать проверку дополнений по цифровым подписям без повышения требований к программному окружению. Для WordPress уже предложен прототип системы верификации по цифровым подписям на базе Sodium Compat. Отсутствие системы верификации не специфично для WordPress и также наблюдается в других CMS на PHP, включая Drupal и Joomla.

  1. Главная ссылка к новости (Ghttps://ma.ttias.be/wordpress...)
  2. OpenNews: В WordPress прекращается поддержка PHP 4 и MySQL 4
  3. OpenNews: Выпуск системы управления web-контентом WordPress 4.5
  4. OpenNews: Конфликт между WordPress и Wix, связанный с нарушением лицензии GPL
  5. OpenNews: Около 74% установок PHP содержат проблемы с безопасностью
  6. OpenNews: Критическая уязвимость в PHPMailer, применяемом в WordPress, Drupal и Joomla
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45868-wordpress
Ключевые слова: wordpress, crypt
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:14, 17/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    md5 от содержимого файлов трудно было сделать уже много лет как? Не издевайтесь!
     
     
  • 2.4, Аноним (-), 12:28, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > md5 от содержимого файлов трудно было сделать уже много лет как? Не
    > издевайтесь!

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

     
     
  • 3.9, Аноним (-), 13:08, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    подогнать MD5 вообще не проблема
     
     
  • 4.14, Аноним (-), 14:42, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > подогнать MD5 вообще не проблема

    Подгони 43aa4fe5fa9dc5c4d6664d07d159ce0f

     
     
  • 5.15, Аноним (-), 16:25, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Подогнал. Выходи давай уже.
     

  • 1.2, freehck (ok), 12:21, 17/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > криптографической библиотеки ...(которая)... реализована целиком на языке PHP и не требует для своей работы внешних зависимостей

    Простите, что-что? Реализация криптографических алгоритмов на PHP? Серьёзно?

     
     
  • 2.3, Аноним (-), 12:24, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Именно так https://github.com/paragonie/sodium_compat/tree/master/src/Core скорость работы для решаемых библиотекой целей в не принципиальна.
     
     
  • 3.5, freehck (ok), 12:32, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > скорость работы для решаемых библиотекой целей в не принципиальна.

    Да я собственно не про скорость работы. Почему не сделали обвязочки над уже готовыми сишными библиотеками? Зачем принципиально так "без внешних зависимостей"? Это же долго, сложно, и некачественно.

     
     
  • 4.7, Аноним (-), 12:46, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Патамушта разрабы водрпресса не хотят удлиннять список зависимостей. В настоящий момент вордпресс можно развернуть практически на любом веб-хостинге, где есть ТОЛЬКО php и mysql. Видать, не осилили реализовать криптографическую библиотеку на sql -- пришлось писать на php...
     
  • 4.8, Аноним (8), 12:46, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это же php, какие биндинги, переписать весь мир на php!
     
  • 4.12, Аноним (-), 13:13, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> скорость работы для решаемых библиотекой целей в не принципиальна.
    > Да я собственно не про скорость работы. Почему не сделали обвязочки над
    > уже готовыми сишными библиотеками? Зачем принципиально так "без внешних зависимостей"?
    > Это же долго, сложно, и некачественно.

    тут дело такое, если у вашего "хостинга" дырявые библиотеки, а WP крутится на на огромном заоопарке хостингов, то вы не сможете их заменить. так-же на некоторых хостингах они могут быть просто недоступны, или доступны "не те" или "не те версии" и т.д., в такой ситуации гораздо проще реализовать на php, особенно с учётом того, что большинство требований предъявляемых реализации в системных библиотеках теряют смысл. ( не нужно думать о защите памяти, равном времени выполнения и т.п. вещах )

     
  • 4.13, fi (ok), 14:05, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Почему не сделали обвязочки над уже готовыми сишными библиотеками?

    Вот собственно и ответ:

    > для использования pecl/libsodium требуется ветка PHP 5.4 и дополнительная внешняя зависимость

    такая есть, но не подходит

     
  • 2.6, Аноним (-), 12:38, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Реализация криптографических алгоритмов на PHP?

    Скоро и на Java, и на VBA! :)

     
     
  • 3.10, h31 (ok), 13:09, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Скоро и на Java

    Уже.
    man BouncyCastle
    man JCE

     
  • 3.11, Ydro (?), 13:11, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Что плохого если код подписан? Неважно код какого языка будет подписан.
     
     
  • 4.18, Аноним (-), 22:51, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Речь про реализацию криптографических библиотек на неподходяцих для этого языках. А так да, любой код можно подписать.
     
  • 3.22, Аноним (-), 08:26, 20/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    няша, на java целая анонимная, децентрализованная, отказоустойчивая сеть со сквозным шифрованием написана.
     

  • 1.16, Аноним (-), 19:40, 17/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А почему gpg нельзя вызвать для проверки подписи?
     
     
  • 2.17, Crazy Alex (ok), 21:06, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что его может не быть
     
     
  • 3.19, Аноним (-), 23:49, 17/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Пусть поставят.
     
     
  • 4.21, Аноним (-), 13:32, 18/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для разворачивателей сайтов на вордпрессе это слишком сложно.
     

  • 1.20, Аноним (-), 13:32, 18/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > достоинством Sodium Compat является поддержка работы с устаревшими версиями PHP, что является актуальной проблемой

    Мда... И это вместо того, чтобы пнуть юное дарование, рулящее сайтом, в сторону обновления.

     
     
  • 2.23, Онаним (?), 08:47, 26/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и я думаю: а почему бы им ни написать библиотеку BAT-файлов, чтобы я мог вебсервер с HTTP 2 под DOS на своём стареньком 486-м поднять...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру