Большинство проблем с криптографической защитой современных веб-сервисов и других приложений связано вовсе не со слабостями в шифрах, а с неправильным использованием криптографических инструментов. Например, библиотека OpenSSL предоставляет в распоряжение разработчика множество криптографических примитивов. К сожалению, многие разработчики приходят в замешательство от такого разнообразия и излишне сложных программных интерфейсов.
В попытке решить проблему пару лет назад была создана криптографическая библиотека NaCl («Соль»). Набор настроек в этой библиотеке подобран таким образом, что при её использовании просто невозможно выбрать слабую криптографическую защиту. Впрочем, эта библиотека не получила широкого распространения по объективным причинам: фактически, её можно использовать только в некоторых Unix-системах; скомпилированный код гарантированно работал только на той машине, где был скомпилирован; библиотека вообще не предназначалась для совместного использования и т.д.
Хорошая новость в том, что сейчас ситуация коренным образом изменилась. Сотрудник компании OpenDNS Фрэнк Денис (Frank Denis) вчера представил новую криптографическую библиотеку Sodium, которая основана на NaCl, но лишена всех её недостатков: это универсальная, кросс-платформенная библиотека, которая идёт в пакетах и инсталляторах для многих ОС и может работать через API. Поддерживаемые платформы — Bitrig, OpenBSD, Dragonfly BSD, NetBSD, FreeBSD, SmartOS, OSX, Linux, Windows, iOS и Android.
Что делает Sodium?
- Асимметричное и симметричное шифрование
- Подпись и проверка подписи
- Хеширование
- Хеш-код аутентификации сообщений
- Безопасная генерация псевдослучайных чисел
Как уже было сказано, для каждой операции предусмотрен простой минимальный набор параметров с нулевой вероятностью ошибки. Автор постарался, чтобы библиотека Sodium была исключительно проста и удобна в использовании.