Опубликован первый публичный выпуск web-браузера Gngr, нацеленного на предоставление максимальной защиты персональной информации пользователей. Исходные тексты нового браузера, как и обещали разработчики, несколько часов назад опубликованы на GitHub под лицензией GPLv2. Код браузера развивается на высокоуровневом языке Java, что позволяет упростить аудит, а также избежать многих ошибок и проблем с безопасностью, свойственных продуктам на С/C++.
Первый выпуск позиционируется как рабочий прототип продукта, находящегося на ранней стадии своего развития. Браузер пока не подходит для регулярного использования и корректно работает не со всеми сайтами. В коде пока не реализованы средства изоляции, поэтому при запуске браузера следует использовать внешние механизмы защиты на уровне приложения и ограничиться доступом к сайтам, заслуживающим доверия. Подготовленный для загрузки пакет требует для своей работы Java 8 (Oracle JRE или OpenJDK). Для запуска следует использовать команду "java -jar gngr-v0-0-0.jar".
В качестве причины создания нового браузера с нуля, вместо развития ориентированного на приватность ответвления от уже существующих открытых браузеров, называется невозможность обеспечить должный уровень безопасности для продукта, написанного на низкоуровневом языке программирования. Для гарантированного обеспечения приватности в браузере приняты достаточно жесткие настройки, например, по умолчанию отключены и требуют явной активации Cookie и JavaScript-блоки, принципиально не поддерживается подключение плагинов, не передаются ссылки на исходную страницу (http_referrer), блокируются внешние iframe, строка идентификации браузера (User Agent) содержит минимальные сведения ("gngr.info/номер значительной версии").
Платформа Java выбрана как предоставляющая штатные средства для изоляции внутренних модулей с кодом, позволяющая легко создавать переносимые проекты, берущая на себя заботу по обеспечению безопасности работы с памятью и типами, обеспечивающая хорошую производительность, благодаря JIT-компиляции. Рассматривается возможность перехода в будущем на другой язык, работающий поверх JVM, пока не решено будет это Scala, Kotlin или Ceylon. Язык Rust не был использован в виду не готовности его финальной версии и отсутствия средств, сравнимых с Java-runtime.
В качестве задач, которые планируется реализовать в Gngr в первую очередь, отмечается:
- Безопасность: Полноценная реализация правил same-origin, CORS (Cross-origin resource sharing) и подобных методов. Полноценная поддержка HTTPS. Проведение независимого аудита кода экспертами, специализирующимися на безопасности;
- Базовая функциональность: типовые возможности современных web-браузеров, за исключением анимации CSS3, гонки за производительность JavaScript, плагинов и расширений;
- Юзабилити: поддержка вкладок, конфигуратор с возможностью очистки кэша и cookies, вывод уведомлений при выходе новых версий, автоматическая установка обновлений.