Вышла открытая криптографическая библиотека OpenPGPjs 4.0

OpenPGPjs 4.0

Команда разработчиков email-сервиса ProtonMail выпустила стабильную четвертую версию криптографической библиотеки OpenPGPjs. В ней доступно потоковое шифрование в двух реализациях: для AEAD-режима блочного шифрования и режима обратной связи по шифротексту (Cipher Feedback Mode, CFB).

Потоковое шифрование в OpenPGPjs 4.0

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

AEAD-режим разработчики добавили в минорном обновлении третьей версии библиотеки. Он позволяет «дробить» сообщения, присваивая каждой составляющей атрибут целостности, необходимый для аутентификации. В CFB-режиме атрибут целостности относится ко всему сообщению в целом, поэтому аутентифицировать неполные данные невозможно. В целях безопасности разработчики не установили параметр потокового шифрования для CFB по умолчанию, но его можно включить. Для этого в файле конфигурации требуется изменить значение openpgp.config.allow_unauthenticated_stream на True.

Веб-реализация

Технология потокового шифрования полагается на Web Streams API, который частично поддерживают Chrome, Safari, Firefox и Edge. Однако лишь Chrome реализовал функцию TransformStreams, необходимую для OpenPGPjs, поэтому для всех остальных браузеров разработчики включили полизаполнение (Polyfill).

Кроме того, последние версии OpenPGPjs стали значительно «тяжелее» не только из-за внедрения новых возможностей, но также из-за поддержки широкого спектра браузеров. По словам разработчиков, для тех версий, что поддерживают только стандарт ES5, библиотека должна выполнять роль транспайлера, а это также увеличивает ее размер. Поэтому команда проекта отказалась от некоторых полизаполнений по умолчанию. Поэтому OpenPGPjs 4.0 работает только с последними версиями браузеров, а для поддержки старых есть отдельный новый пакет compat/openpgp.min.js.

В будущем команда проекта планирует улучшить производительность операций с открытым ключом, используя большие числа asm.js, а также повторно реализовать эллиптическую криптографию и найти способ уменьшить размер библиотеки.

Незадолго до релиза OpenPGPjs 4.0 свою открытую криптографическую библиотеку представила Google. Tink поддерживает Java, C++ и Objective-C, а также Go и JavaScript — в экспериментальном режиме. Модульная архитектура библиотеки позволяет удалять неиспользуемые компоненты и таким образом сокращать объем кода.

Source: блог ProtonMail

Ещё интересное для вас:
— Биты, байты, Ада Лавлейс — тест на знание околоIT.
— Level Up — события и курсы, на которых можно поднять свой уровень.
— Работа мечты — лучшие IT-вакансии для вас.