Релиз WordPress 5.2, выпущенный ранее в этом месяце, является первым шагом на пути к полностью безопасным обновлениям с автономными цифровыми сигнатурами. Скотт Арцишевский, директор по развитию Paragon Initiative Enterprises, объяснил, как это работает и как разработчики могут перейти с mcrypt на libsodium.
“Начиная с версии 5.2 при установке автоматического обновления на ваш WordPress-сайт сначала происходит проверка наличия заголовка x-content-signature.
Если заголовок не был предоставлен сервером обновлений, ваш WordPress-сайт запросит вместо него файл filenamehere.sig.
Вне зависимости от метода доставки, сигнатуры будут рассчитаны с использованием ключа Ed25519 хэша SHA384 на базе контента файла. Сигнатура будет иметь base64-кодирование для безопасной передачи”
Команда разработчиков ядра WordPress отвечает за управление приватными ключами. WordPress 5.2 содержит ключ подписи, срок действия которого истекает 1 апреля 2021 года. Публичный ключ используется для расшифровки приватного ключа.
Поскольку функция все еще находится в экспериментальной фазе, WordPress 5.2 позволяет выполнять обновление даже с мелкими ошибками и недопустимой подписью. Все это требуется для предотвращения более серьезных ошибок, которые могут привести к блокировке пользователя в процессе обновления до тех пор, пока не будет применено ручное обновление. Команда разработчиков будет использовать информацию о найденных ошибках для улучшения процедуры проверки цифровой сигнатуры.
Цифровые сигнатуры поддерживаются только для обновлений ядра; в следующих релизах должны появиться подписи для обновлений тем и плагинов. Есть вероятность того, что команда добавит отдельные ключи для релизов, плагинов, тем, переводов и т.д., чтобы обеспечить более детальный контроль.
Цифровые подписи, применяемые к обновлениям ядра WordPress – важный этап в разработке WP, поскольку они помогают предотвратить загрузку обновлений из непроверенных источников (часто содержащих вредоносное ПО).
Если серверы, на которых размещены файлы обновлений, будут каким-либо образом взломаны или скомпрометированы, ложные обновления могут быть переданы миллионам сайтов сети. С этой проблемой и позволяют справиться цифровые подписи. В 2016 году WordFence уже разъясняли, как этот сценарий может быть реализован на практике – тогда они публиковали описание уязвимости в api.wordpress.org.
Еще в начале 2017 года Скотт обращался к Мэтту Мулленвегу с просьбой улучшения защиты системы автоматических обновлений WordPress с помощью защищенных криптографических подписей. Мэтт признал, что эта идея является хорошей, но в списке главных приоритетов ее не было.
Скотт потратил примерно 6 лет на то, чтобы убедить команду ядра внедрить обновления с цифровой подписью. Четыре месяца назад Гэри Пендергаст ответил, что эта функция отвечает списку приоритетов, запланированных на 2019 год и далее. Гэри сформировал план и подтвердил намерение внедрить цифровые подписи в ядро. Далее совместно со Скоттом они уже реализовали эту идею.
Благодаря настойчивости Скотта и усилиям команды ядра WordPress миллионы сайтов на WP стали более защищенными.
Источник: wptavern.com