В рамках проекта TinySSH (http://tinyssh.org/) началось развитие компактного и защищённого сервера для организации удалённого доступа по протоколу SSH-2. Для организации защищённого сетевого взаимодействия, шифрования и работы с цифровыми подписями в TinySSH задействована развиваемая Дэниэлом Бернштейном (Daniel J. Bernstein) библиотека NaCl (http://nacl.cr.yp.to/) (Networking and Cryptography library), а также её урезанный вариант TweetNaCl (http://tweetnacl.cr.yp.to/). Для дополнительно защиты может использоваться протокол передачи данных CurveCP (http://curvecp.org/), обеспечивающий версификацию каждого переданного пакета. Код проекта распространяется (http://mojzis.com/software/tinyssh/install.html) как общественное достояние (http://ru.wikipedia.org/wiki/%D0%9E%D0%B... (public domain).Сервер поддерживает только аутентификацию на основе открытых ключей, организация входа через пароли не поддерживается. Разработчики также не планируют создание утилиты scp, вместо которой рекомендуют использовать "rsync -e ssh". Обмен ключами построен на базе функции Curve25519 (http://cr.yp.to/ecdh.html), для цифровых подписей применяется схема Ed25519 (http://ed25519.cr.yp.to/), в качестве
транспортного протокола задействован "chacha20-poly1305@openssh.com" на основе алгоритмов потокового шифра ChaCha20 (http://cr.yp.to/chacha.html) и аутентификации сообщений Poly1305-AES (http://cr.yp.to/mac.html).
В настоящее время проект находится на стадии экспериментального прототипа, первый альфа-выпуск ожидается в начале следующего года, а первый выпуск, пригодный для промышленного использования, запланирован на 2016 год. Текущая экспериментальная реализация TinySSH совместима с SSH-клиентом OpenSSH 6.5 и более новыми версиями. В будущем планируется обеспечить поддержку методов ecdsa-sha2-nistp256, ecdh-sha2-nistp256 и aes128-ctr/aes256-ctr.
Основные особенности TinySSH:
- Лёгкость аудита - код состоит менее чем из 100 тысяч слов (~ 15 тысяч строк);
- Неприменение динамических методов распределения памяти, вся память выделяется статически;
- Простая конфигурация, исключающая возникновение проблем с безопасностью из-за ошибок при настройке;
- Использование проверенного и надёжного стороннего кода: система сборки, используемая в NaCl и CurveCP, применение tcpserver иcurvecpserver для создания организации приёма TCP и CurveCP соединений;
- Исключение излишней функциональности, разработчики принципиально отказались от поддержки SSH1, сжатия, scp, sftp;
- Отказ от поддержки устаревших криптографических примитивов, таких как rsa, dsa, classic diffie-hellman, md5, sha1, 3des, arcfour и т.п.
- Отказ от авторских прав на код и перевод проекта в категорию общественного достояния;
- Не использование OpenSSL в качестве внешней зависимости, для работы TinySSH достаточно NaCl или TweetNaCl.
URL: https://news.ycombinator.com/item?id=7727738
Новость: https://www.opennet.ru/opennews/art.shtml?num=39752