Компания Amazon представила собственную открытую реализацию TLS
30 июня 2015 года
Компания Amazon анонсировала проект s2n, в рамках которого подготовлена компактная и быстрая библиотека с реализацией протоколов SSLv3, TLS1.0, TLS1.1 и TLS1.2. Из методов шифрования поддерживаются 128-и 256-разрядный AES в режимах CBC и GCM, а также 3DES и RC4. Среди других возможностей: DHE, ECDHE, TLS-расширения SNI (Server Name Indicator), ALPN (Application-Layer Protocol Negotiation) и OCS (Online Certificate Status Protocol). Код s2n написан на языке Си и распространяется под лицензией Apache. Библиотека имеет модульную структуру и, помимо встроенных алгоритмов шифрования, может использовать для выполнения операций шифрования внешние криптографические фреймворки, такие как OpenSSL, LibreSSL, BoringSSL и Apple Common Crypto.
Предоставляемый библиотекой API во многом напоминает типовой программный интерфейс ввода/вывода, реализуемый в стандартах POSIX. Поддерживаются блокируемые и неблокируемые операции, а также передача в полнодуплексном режиме, без необходимости установки блокировок и мьютексов. Пользователю предлагается достаточно взвешенный набор настроек по умолчанию, подразумевающий отключение SSLv3, RC4 и DHE. В целом, разработчики библиотеки придерживаются принципа минимализма и реализуют только самые необходимые и востребованные на практике возможности, без нагромождения кода редко используемыми расширениями и возможностями, которые потеряли актуальность из-за уязвимостей (например, согласование сеансов или DTLS).
Код библиотеки составляет всего около 6 тысяч строк, что значительно упрощает проведение аудита и выявление ошибок (для сравнения OpenSSL занимает около 500 тысяч строк, из которых 70 тысяч связано с TLS). Для повышения защищённости в s2n также предпринят ряд дополнительных мер, таких как регулярное проведение статического анализа кода и fuzzing-тестирования, обширный набор unit-тестов, применение методов безопасного программирования на Си с использованием обвязок, проверяющих соблюдение границ буферов для всех функций работы с памятью, сериализацией и строками. Для предотвращения утечки данных в s2n применяется техника оперативной очистки буфера с зашифрованными данными после его чтения приложением. Также используются специализированные вызовы операционной системы для запрета сброса областей памяти в раздел подкачки и core-дампы.
Интересный подход предпринят в s2n для генерации случайных чисел. Так как генератор псевдослучайных чисел является ключевым звеном в системах шифрования, для каждой нити библиотекой предоставляется два генератора случайных чисел - один для публичной отдачи данных, а второй только для внутреннего использования. Значение внутреннего генератора явно не фигурируют во внешних запросах и используются только внутри библиотеки, что позволяет превентивно обезопасить себя от совершения атак, направленных на предсказание значений генератора случайных чисел на основе уже известных сгенерированных последовательностей.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.