Джозеф Бирр Пиксон, разработчик библиотеки TLS Rustls, провел серию тестов по ее разработке. y заметил, что последний по производительности превосходит OpenSSL на разных уровнях. Rustls - это библиотека с открытым исходным кодом TLS, написанная на Rust. и доступен по лицензиям Apache 2.0, MIT и ISC, но OpenSSL является хорошо известной библиотекой и отраслевым стандартом почти во всех основных категориях.
Согласно его документации, Rustls - это современная библиотека TLS, цель которой - обеспечить хороший уровень криптографической безопасности.. Он не требует какой-либо конфигурации для достижения этой безопасности и не предоставляет никаких небезопасных функций или устаревшей криптографии.
У него много функций, такие как аутентификация клиента сервера ECDSA или RSA и аутентификация сервера сервера ECDSA или RSA, при поддержке проверки сертификата сервера.
Это означает, что вам не нужно предоставлять ничего, кроме набора корневых сертификатов. Проверка сертификата не может быть отключена в основном API.
С другой стороны, OpenSSL представляет собой надежный полнофункциональный инструментарий коммерческого уровня для протоколов Transport Layer Security (TLS) и Secure Sockets Layer (SSL). Это также универсальная криптографическая библиотека.
О тестах Rustls
В своей серии тестов производительности Джозеф Бирр Пиксон говорит, что он рассмотрел несколько моментов, чтобы оценить эффективность он может варьироваться между библиотеками TLS, то есть производительность обмена и общая производительность.
Производительность рукопожатия охватывает скорость, с которой могут быть настроены новые сеансы TLS. Что касается общей производительности, они охватывают скорость, с которой данные приложения могут быть переданы в уже настроенный сеанс.
Результаты различных тестов показали, что Rustls был на 10% быстрее при настройке и создании нового соединения. с сервером и на 20-40% быстрее при настройке клиентского соединения.
Но если скорости для новых подключений TLS высоки, большая часть трафика TLS зависит от возобновления уже установленных подключений.
Здесь тоже, Rustls превзошел библиотеку OpenSSL, использовав соединение на стороне сервера на 10-20% и на 30-70% быстрее, чтобы возобновить соединение с клиентом.
Вдобавок Rustls показал лучшие результаты с точки зрения общей производительности или скорости передачи данных по TLS-соединению.
Бирр Пиксон сказал, что Rustls может отправлять данные на 15% быстрее, чем OpenSSL и получите на 5% быстрее. Наконец, по его словам, библиотека Rustls использовала только половину памяти, необходимой для работы OpenSSL, что является огромным плюсом. Он напомнил, что с этой стороны OpenSSL очень часто критиковали за большой объем памяти и большое количество проблем безопасности, обнаруженных в его коде.
Подводя итоги, можно примерно сказать:
- Rustls на 15% быстрее отправляет данные
- Rustls на 5% быстрее получает данные
- Rustls на 20-40% быстрее устанавливает клиентское соединение
- Rustls на 10% быстрее устанавливает соединение с сервером
- Rustls на 30-70% быстрее восстанавливает клиентское соединение
- Rustls на 10-20% быстрее восстанавливает соединение с сервером
- Rustls использует менее половины памяти OpenSSL
Бирр Пиксон объяснил, что, поскольку Rustls написан на Rust, проблемы с безопасностью решены. во многом с дизайном языка Rust. Язык был разработан с нуля, чтобы избежать ошибок безопасности, связанных с памятью.
То, как программы, написанные на языке программирования Rust, взаимодействуют с памятью, является одной из наиболее известных лингвистических интерпретаций. Если крупные компании осознают полезность языка, созданного Mozilla Research, в ближайшие годы его рост может резко возрасти.
Считается, что в настоящее время такие браузеры, как Firefox и Brave, используют компоненты Rust, но крупные компании, такие как Cloudflare, Dropbox и Yelp, также адаптировали их для производственных систем.
источник: https://jbp.io
Отличные цифры для Rustls. Интересно, почему они не сравнили его с LibreSSL.
Еще неизвестно, превосходит ли производительность Rust достаточно, чтобы вытеснить C ++ и тем более C / Asm, насколько мне известно, сложность переключения языков превосходила синтаксический сахар, добавленный Rust.