The OpenNET Project / Index page

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

Первый стабильный выпуск криптографической библиотеки Sodium

25.09.2014 12:27

Увидел свет выпуск свободной криптографической библиотеки Sodium 1.0.0, совместимую на уровне API с библиотекой NaCl (Networking and Cryptography library) и предоставляющую функции для организации защищённого сетевого взаимодействия, шифрования и работы с цифровыми подписями. Выпуск 1.0 примечателен стабилизацией API и ABI, и обеспечением в дальнейшем обратной совместимости. Код библиотеки распространяется под свободной лицензией ISC.

В отличие от NaCl в Sodium решены проблемы с переносимостью кода на разные программные и аппаратные платформы, обеспечена сборка в виде разделяемой библиотеки, поставляется стандартный набор заголовочных файлов, добавлены средства для установки и интеграции со сторонними проектами. Среди поддерживаемых в Sodium платформ отмечаются Bitrig, OpenBSD, Dragonfly BSD, NetBSD, FreeBSD, SmartOS, Mac OS X, Linux, Windows, iOS и Android. Базовый API сформирован для языка Си, но дополнительно поставляются биндинги для языков Ruby и Python.

По сравнению с OpenSSL, Sodium и NaCl предоставляют существенно более простой API, а также применяет по умолчанию безопасные опции и методы шифрования и хэширования. API OpenSSL слишком усложнён и предоставляет обилие криптографических примитивов, режимов и обработчиков, из которых трудно выбрать действительно безопасный набор. Sodium и NaCl решают проблему выбора и предоставляют из коробки готовый к использованию небольшой и понятный набор функций, содержащий только безопасные методы.

API Sodium включает следующие возможности:

  • Операции шифрования с использованием аутентифицированных открытых и симметричных (shared-key) ключей, позволяющие гарантировать, что зашифрованное сообщение останется в тайне и не сможет быть изменено атакующим;
  • Создание и проверка цифровых подписей по открытым и симметричным ключам. Позволяет получателю проверить, что сообщение отправлено именно тем, от кого его ожидали получить и не было изменено третьим лицом;
  • Операции хэширования, позволяющие сформировать слепок от сообщения, имеющий фиксированную длину, дающий возможность проверить соответствие хэшу начального сообщения, но не позволяющий восстановить элементы сообщений из хэша;
  • Средства для формирования для хэш таблиц непредсказуемых ключей из коротких сообщений, позволяющие исключить проведение DoS-атак через манипуляции с коллизиями хэшей. В качестве функции хэширования используется метод SipHash-2-4, отличающийся высокой производительностью и непредсказуемым результатом операции;
  • Безопасный генератор псевдослучайных чисел, пригодный для использования в криптографических операциях.



  1. Главная ссылка к новости (https://github.com/jedisct1/li...)
  2. OpenNews: Проект Tox развивает свободную альтернативу Skype
  3. OpenNews: Представлен новый защищённый SSH-сервер TinySSH
  4. OpenNews: Компания Google представила BoringSSL, форк OpenSSL
  5. OpenNews: Первый выпуск LibreSSL, форка OpenSSL от проекта OpenBSD
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40674-sodium
Ключевые слова: sodium, crypt, ssl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (22) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Anonim (??), 12:39, 25/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Bitrig еще жив?
     
     
  • 2.15, Аноним (-), 21:07, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Bitrig еще жив?

    Пока да. Иногда там пилят интересные вещи, но с портабельностью всё грустно. О реальном использовании за пределами конторы Marco Peerboom ничего не знаю.

     
     
  • 3.22, бедный буратино (ok), 18:53, 28/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Пока да. Иногда там пилят интересные вещи

    например?

    кстати, они реально всё, что у них в портах лежит (а отличий от OpenBSD я пока не заметил) пересобирают clang, или всё же там в основном всё с gcc собрано?

     
  • 2.16, Аноним (-), 21:43, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Bitrig еще жив?

    Что это за НЕХ и как она относится к сабжу?

     

  • 1.2, anonymous (??), 13:13, 25/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    список алгоритмов на оф. сайте отсутствует
     
     
  • 2.3, Аноним (-), 13:26, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    сводный - может быть. В документации на каждую функциональность указан используемый алгоритм. Например, http://doc.libsodium.org/hashing/generic_hashing.html Algorithm details
     
     
  • 3.6, anonymous (??), 14:35, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Сильно урезанный набор алгоритмов - OpenSSL для хомячков.
     
     
  • 4.9, ryzhov_al (ok), 15:31, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это просто nacl, допиленная для использования с dnscrypt-proxy.
     
  • 4.10, Аноним (-), 15:43, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я так понимаю, что принцип был "не все алгоритмы одинаково полезны, как и не все их возможные параметры". Сам, выросший на принципах SHA-RSA-AES, с удивлением обнаружил кучу всего непонятного.
     
     
  • 5.12, Аноним (-), 17:27, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > и не все их возможные параметры". Сам, выросший на принципах SHA-RSA-AES,
    > с удивлением обнаружил кучу всего непонятного.

    Например, что
    1) SHA-1 вообще прекращают использовать.
    2) RSA - тормозной, с огромными ключами, с плохим соотношением размера ключа к стойкости.

    Вообще, берштейновская криптография - выглядит очень интересно. Облажаться в crypto_box() довольно сложно, даже если вы и не знаете как он работает. Потому что нормальная подборка алгоритмов и дефолты. У 25519 - короткие (по сравнению RSA) ключи не в ущерб стойкости. Можно использовать вместо хэша/фингерпринта напрямую публичный ключ. Забавно, правда? А скорость работы - ну я вот тут поскрипел процессором и за 10 секунд сгенерил 200 000 пар ключей. Пусть RSA так попробует, да? :). Это означает что можно лепить временный ключ чуть ли не на каждый пакет. И да, если кто не заметил, API либы позволяет зная 32 байта пубкея получателя скроить ему (сетевой) пакет, который только он может расшифровать, будучи уверенным что это пришло от вас (вашего приватного ключа, парного заявленному вами вашему публичному). В отличие от SSL оно прекрасно относится к единичным пакетам в таком виде. Дяденька Берштейн показывает как делать криптографию для сетей правильно. Еще б этого академика немного слушали насчет IPv6... :)

     
     
  • 6.13, Аноним (-), 17:45, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    слушай, огромное спасибо. теперь начинаю понимать
     
     
  • 7.14, Аноним (-), 19:36, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > слушай, огромное спасибо. теперь начинаю понимать

    Берштейн с его эллиптикой отбабахал очень красивый вариант Диффи-Хеллмана. D-H key exchange ... почти без key exchange? А что, круто придумано :).

     
  • 6.18, aaa (??), 14:14, 26/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Была задача,сложный роутер-сетевой экран с десятком подключённых сете, надо зашифровать каналы.

    Использование OpenVPN или IPsec добавляло ещё интерфейсов и приходилось нщё больше усложнять правила сетевого экрана...

    sodium сможет прозрачно для сетевого экрана, без добавления новых интерфейсов, шифровать соединения между двумя узлами сети?

     
  • 6.19, anonymous (??), 13:49, 27/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Еще б этого академика немного слушали
    > насчет IPv6... :)

    Уточните, пожалуйста, как конкретно можно организовать криптографию на сетевом уровне, не согласовав предварительно ряд параметров. Т.е. не проделав ряд действий вручную. Имхо это корневая причина, почему ipsec в ipv6 не взлетел "правильно".

     
  • 4.11, Аноним (-), 17:16, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > OpenSSL для хомячков.

    Скорее, криптографическая либа с публичной криптографией сделанная не через ж...у, в отличие от OpenSSL.

     
  • 3.7, annualslayer (ok), 14:36, 25/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а документация, кстати, аккуратненько так оформлена, приятно пользоваться.

    жаль, что в многих проектах уделяют этому недостаточное внимание

     

  • 1.4, pda (?), 13:58, 25/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > и непредсказуемым результатом операции

    Ммм... Выхлоп /dev/random в качестве хеш-функции для словарей...
    (На самом деле, я знаю, что имелось ввиду. Но как написано! :)

     
  • 1.5, metallica (ok), 14:13, 25/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > SmartOS

    Ась?

     
  • 1.8, Аноним (-), 14:46, 25/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Монструозный больно. Tweetnacl лучше и от системы тоже мало зависит.
     
  • 1.17, Аноним (-), 14:07, 26/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    NaCl хлорид натрия ака соль поваренная
    :)
     
  • 1.20, Аноним (-), 16:50, 27/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ещё одна криптолиба на C. Доколе?!
     
     
  • 2.21, umbr (ok), 14:34, 28/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    АНБ одобряет ;)
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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