Компания OpenDNS представила (http://blog.opendns.com/2013/03/06/introducing-sodium-a-new-.../) новую свободную криптографическую библиотеку Sodium (https://github.com/jedisct1/libsodium), совместимую на уровне API с библиотекой NaCl (http://nacl.cr.yp.to/), развиваемой Дэниэлом Бернштейном (Daniel J. Bernstein, автор qmail и djbdns), и предоставляющей функции для организации защищённого сетевого взаимодействия, шифрования и работы с цифровыми подписями.
В отличие от NaCl в Sodium решены проблемы с переносимостью кода на разные программные и аппаратные платформы, обеспечена сборка в виде разделяемой библиотеки, поставляется стандартный набор заголовочных файлов, добавлены средства для установки и интеграции со сторонними проектами. Среди поддерживаемых в Sodium платформ отмечаются Bitrig, OpenBSD, Dragonfly BSD, NetBSD, FreeBSD, SmartOS, Mac OS X, Linux, Windows, iOS и Android. Базовый API сформирован для языка Си, но дополнительно поставляются биндинги для языков Ruby (https://github.com/cryptosphere/rbnacl) и Python (https://github.com/dstufft/pynacl).
По сравнению с OpenSSL, Sodium и NaCl предоставляют существенно более простой API, а также применяет по умолчанию безопасные опции и методы шифрования и хэширования. API OpenSSL слишком усложнён и предоставляет обилие криптографических примитивов, режимов и обработчиков, из которых трудно выбрать действительно безопасный набор. Sodium и NaCl решают проблему выбора и предоставляют из коробки готовый к использованию небольшой и понятный набор функций, содержащий только безопасные методы.
API Sodium включает следующие возможности:
- Операции шифрования с использованием аутентифицированных открытых и симметричных (shared-key) ключей, позволяющие гарантировать, что зашифрованное сообщение останется в тайне и не сможет быть изменено атакующим;
- Создание и проверка цифровых подписей по открытым и симметричным ключам. Позволяет получателю проверить, что сообщения отправлено именно тем, от кого его ожидали получить и не было изменено третьим лицом;
- Операции хэширования, позволяющие сформировать слепок от сообщения, имеющий фиксированную длину, дающий возможность проверить соответствие хэшу начального сообщения, но не позволяющий восстановить элементы сообщений из хэша;
- Средства для формирования для хэш таблиц непредсказуемых ключей из коротких сообщений, позволяющие исключить проведение DoS-атак (https://www.opennet.ru/opennews/art.shtml?num=35593) через манипуляции с коллизиями хэшей. В качестве функции хэширования используется метод SipHash-2-4 (https://131002.net/siphash/), отличающийся высокой производительностью и непредсказуемым результатом операции;
- Безопасный генератор псевдослучайных чисел, пригодный для использования в криптографических операциях.
URL: http://labs.umbrella.com/2013/03/06/announcing-sodium-a-new-.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=36331