Google опубликовал библиотеку и дополнение к Chrome для обеспечения «end-to-end»-шифрования в Web
4 июня 2014 года
Компания Google в рамках проекта End-To-End подготовила дополнение для встраивания в Chrome/Chromium средств "end-to-end"-шифрования, выполняемых на стороне браузера без вовлечения в процесс шифрования внешних серверов, производя все операции только на конечных клиентских системах. Код проекта распространяется под лицензией Apache 2.0.
Дополнение позволяет обеспечить шифрование, расшифровку, создание и проверку цифровых подписей для любых передаваемых через браузер текстов и сообщений, например, можно организовать шифрованную переписку в почтовом web-сервисе, из коробки не поддерживающем шифрование. Для выполнения криптографических операций используется OpenPGP, что позволяет обеспечить совместимость с существующими системами шифрования по открытым ключам. Являясь совместимым с большинством инструментов "end-to-end"-шифрования, включая PGP и GnuPG, представленный проект позволяет значительно упростить использование шифрования для конечных пользователей, не требуя от них специальных навыков.
В основе дополнения End-To-End лежит новая криптографическая JavaScript-библиотека c реализацией стандарта OpenPGP (IETF RFC 4880), которую можно использовать и в других web-проектах. Библиотека предоставляет функции для генерации ключей (пока поддерживается только EC-ключи, Elliptic Curve Cryptography), шифрования, расшифровки, создания и проверки цифровых подписей. Текущее состояние разработки оценивается как полнофункциональный альфа-выпуск, предназначенный для независимого рецензирования кода сообществом. При этом некоторые части End-To-End уже используются в сервисах Google.
Основное внимание рекомендуется уделить оценке общих концепций реализации систем шифрования на JavaScript. Проблема заключается в том, что при расшифровке закрытый ключ сохраняется в памяти процесса, что потенциально позволяет вредоносным дополнениям получить доступ к остаточным данным, которые могут включать содержимое ключа. С учётом сложного механизма сборки мусора в JavaScript достаточно трудно обеспечить надёжную очистку памяти. Для решения этой проблемы в End-To-End применяется дополнительное шифрование ключа паролем ( в localStorage ключ хранится зашифрованным), хранение расшифрованных данных вне контекста текущего сайта и изоляция от стороннего JavaScript-кода через выполнение в sandbox. JavaScript-реализация также потенциально может быть подвержена атакам по сторонним каналам (side-channel attacks), использующим косвенные методы для восстановления данных. Для защиты от данного вида атак все операции в дополнении выполняются только по запросу пользователя, без автоматического инициирования операций расшифровки.
End-To-End входит в число проектов, подпадающих под программу Vulnerability Reward Program, в рамках которой компания Google готова выплатить до 20 тысяч долларов за выявление уязвимостей в своих продуктах. Кроме того, на днях расширен спектр проектов, которые могут участвовать в программе Patch Rewards, в рамках которой производятся выплаты вознаграждений за выполнение работ по повышению безопасности популярного сетевого и системного свободного ПО. Под действие программы теперь попадают популярные web-фреймворки и средства разработки, такие как Angular, Closure, Dart, Django, Dojo Foundation, Ember, GWT, Go, Jinja (Werkzeug, Flask), jQuery, Knockout, Struts, Web2py и Wicket.
Дополнительно можно отметить опубликованный Google
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.