Как стать автором
Обновить
Selectel
IT-инфраструктура для бизнеса

Опубликован релиз Sequoia 1.0, реализации OpenPGP на языке Rust

Время на прочтение3 мин
Количество просмотров2.4K

Спустя три года после начала разработки опубликован релиз Sequoia 1.0. Это реализация OpenPGP на языке Rust, содержащая обширную библиотеку функций и инструментарий командной строки. Релиз опубликован после того, как разработчики закончили работу над низкоуровневым API — в нем как раз и реализован в полной мере стандарт OpenPGP.

Написано все это на Rust, а распространяется пакет под лицензией GPLv2+. Есть версии для всех основных платформ — Linux, FreeBSD, Windows, macOS, Android и iOS. Команда разработчиков небольшая, ее основа — три участника разработки GnuPG из компании g10code. Эта же команда создала и сервис ключей Hagrid, который применяется в сервисе keys.openpgp.org. О том, что представляет из себя пакет — под катом.

Основная цель, которую ставили перед собой разработчики — полная переработка архитектуры и применение новых техник повышения безопасности и надежности кодовой базы.

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

Кроме того, разработчики хорошо знакомы с недостатками gnuPGP, поскольку являются авторами этого проекта. В новом релизе от них постарались избавиться. Например, приняты меры для устранения рассинхронизации функциональности инструментов командной строки с библиотекой функций. Некоторые действия можно выполнить лишь в интерфейсе самой утилиты. Кроме того, исчезла проблема слишком тесной связи между компонентами — именно она затрудняла внесение изменений в кодовую базу. Как следствие — путаница и сложность в организации unit-тестирования.

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

Sequoia также развивает утилиту командной строки sq с поддержкой субкоманд в стиле Git, программу sqv (замена gpgv) для верификации отсоединённых цифровых подписей (detached signature), утилиту sqop (Stateless OpenPGP CLI) и библиотеку sequoia-openpgp. Разработчики предусмотрели обвязки для языков C и Python.

В новом релизе поддерживается подавляющее большинство возможностей, характерных для стандарта OpenPGP, включая шифрование, расшифровку, создание и проверку цифровых подписей. Что касается расширенных возможностей, то добавлена поддержка верификации по отдельно поставляемым цифровым подписям (detached signature), адаптация для интеграции с пакетными менеджерами (APT, RPM, cargo и т.п.) и возможность ограничения подписей по пороговым значениям и времени.

Предусмотрено также два варианта API — низкоуровневый, и, соответственно, высокоуровневый. Что касается первого, то он максимально точно воспроизводит возможности OpenPGP и связанные с ним расширения. Плюс ко всему, он предоставляет вызовы для небуферизованной обработки сообщений, разбора и сериализации полей в сертификатах и ключах. Второй API, высокоуровневый, охватывает как вспомогательные, так и предметно-ориентированные возможности. Это хранение открытых ключей и функции доступа по сети. К сожалению, высокоуровневый API еще будет дорабатываться — он находится только на раннем этапе развития.

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

Релиз 1.0 теперь охватывает crate-пакет sequoia-openpgp и утилиту для проверки цифровых подписей sqv. А вот CLI-интерфейс sq и высокоуровневые API пока не стабилизированы и дорабатываются. В ближайшем будущем команда разработчиков планирует интегрировать сервисы для хранения закрытых и открытых ключей, добавить поддержку незашифрованных цифровых подписей и возможность использования регулярных выражений для определения заслуживающих доверия подписей.

Теги:
Хабы:
+28
Комментарии0

Публикации

Информация

Сайт
selectel.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия
Представитель
Влад Ефименко