Компания Google представила утилиту container-diff, предназначенную для изучения различий между несколькими образами контейнеров или для анализа состава образа. Код утилиты написан на языке Go и распространяется под лицензией Apache 2.0. Утилита позволяет оценить изменения в образе и представить результат сравнения в наглядном виде, удобном для восприятия человеком и учитывающем сведения о пакетах, с которыми связаны выявленные изменения. Для интеграции с другими приложениями вывод также может быть оформлен в формате JSON. Сontainer-diff может отдельно выводить различия в системных пакетах, пакетах с модулями и библиотеками, используемыми в приложениями, или в произвольных файлах из состава образа. Например, можно отдельно оценить изменения, связанные с дистрибутивом Linux, и пакетами Python и Node.js, установленными через pip или npm. Образы для сравнения могут задаваться как в виде ссылки на на локальный или удалённый демон Docker, так и в форме tar-архива (например, можно сравнить образы на локальной
Компания Google представила проект Abseil, в рамках которого открыта коллекция полезного кода для разработчиков на языке C++, расширяющего стандартную библиотеку функций. Исходные тексты распространяются под лицензией Apache 2.0. В состав библиотеки включены функции общего назначения, используемые в продуктах Google и хорошо протестированные на реально работающих проектах. Одна часть предложенных в Abseil функций заполняет ниши, не определённые в стандарте C++, а другая предоставляет альтернативные реализации штатных функций, оптимизированные для определённых ситуаций или адаптированные для использования в проектах на C++11 из стандартных библиотек C++14 и C++17. Google не пытается продвигать Abseil как альтернативу стандартной библиотеке, а лишь желает поделиться с сообществом кодом, который оказался полезен в собственных проектах. Компоненты библиотеки: base - базовая часть, включающая код для инициализации и первичные примитивы, которые используют только стандартную библиотеку C++, но при этом
В кодовую базу Chromium включены встроенные правила, подставляющие заголовок HSTS (Strict Transport Security) для проброса по умолчанию на HTTPS всех сайтов, использующих домены первого уровня .dev и .foo. Данные домены принадлежат компании Google, которая определяет правила их использования, и ориентированы для размещения сайтов, связанных с разработкой ПО и web-приложений. Проблема состоит в том, что многие разработчики используют по историческим причинам домен первого уровня ".dev" для локального тестирования своих проектов и изменение в Chrome может привести к неожиданным результатам, если внутренний тестовый сервер разработчика не поддерживает HTTPS или HTTPS не настроен (например, домен не прописан в настройки или не подготовлен сертификат). Всем разработчиками рекомендуется уйти от практики применения домена ".dev" в пользу использования TLD ".localhost" или ".test".
Компания Google решила отказаться от использования, поддержки и развития пакета Octane, созданного в 2012 году в качестве инструмента для тестирования производительности JavaScript-движков, оперирующего кодом реальных популярных web-проектов вместо синтетического стресс-тестирования возможностей, которые мало влияют на производительность работы с реальными сайтами. В последние годы технологии разработки сильно изменились, появился стандарт ECMAScript 2015, получили распространение новые web-фреймворки и библиотеки. По мнению Google, пакет Octane исчерпал себя, больше не отражает реальную производительность и не может служить меркой для оценки браузерных движков и выбора направлений оптимизации. Показатели браузеров в Octane достигли примерно одного уровня. Аргументом против синтетических тестов также выступает то, что производители браузеров не брезгуют внесением специальных оптимизаций, не влияющих на работу в реальных условиях, но позволяющих добиться улучшения показателей при прохождении тестов
Компания Google представила новый сайт opensource.google.com, в рамках которого объединены разрозненные информационные ресурсы, рассказывающие о процессах разработки, использования и поддержки СПО в компании. На сайте также собраны ссылки на все открытые проекты Google (более 2000), поддерживаемые компанией организации, а также подробности о том, как Google участвует в разработке открытого ПО и использует его в своей инфраструктуре. Из впервые опубликованных новинок, можно отметить размещение внутренней документации Google, содержащей инструкции по организации процессов разработки открытых проектов. Рассматриваются такие особенности как подготовка релизов новых проектов, приём сторонних патчей, передача патчей внешним проектам, выбор лицензии, размещение анонсов и управление открытым кодом, который также применяется внутри компании.
Компания Google намерена применить в Chrome блокировку для достаточно большой порции HTTPS-сертификатов, выданных удостоверяющим центром Symantec. Причиной блокировки стали выявленные злоупотребления при выдаче сертификатов уровня EV (Extended Validation). В итоге, под сомнение поставлена валидность более 30 тысяч EV-сертификатов Symantec, выданных за последние несколько лет. EV-сертификаты подтверждают заявленные параметры идентификации и по правилам для их получения требуется проведение проверки документов о принадлежности домена и физическое присутствие владельца ресурса. В случае Symantec подобная проверка не проводилась должным образом, т.е. нет гарантии, что полномочия владельца всегда проверялись. Google обращает внимание на то, что Symantec предоставил доступ к инфраструктуре удостоверяющего центра как минимум четырём сторонним организациям, которым предоставлены полномочия по выдаче сертификатов. При этом компания Symantec не обеспечила должный уровень надзора за ними и допустила несоблюдение ими
Компания Google объявила об открытии кода высококачественного JPEG-кодировщика Guetzli с реализацией нового алгоритма кодирования, позволяющего добиться существенного сокращения размера изображения без потери качестве, с сохранением совместимости со всеми штатными декодировщиками JPEG и полностью соответствуя стандарту JPEG. Например, по сравнению с эталонной библиотекой libjpeg предложенный алгоритм позволяет сократить размер изображений на 20-30% c сохранением идентичного качества. Код библиотеки и базовых утилит с реализацией Guetzli написан на языке С++ и распространяется под лицензией Apache 2.0. Guetzli близок по своему назначению к алгоритму Zopfli, позволяющему добиться повышения уровня сжатия файлов PNG и gzip, без потери совместимости. В отличие от WebP, RAISR (Rapid and Accurate Image Super-Resolution) и алгоритмов упаковки изображения на базе нейронных сетей, требующих специальных декодировщиков, Guetzli нацелен на достижение максимального уровня сжатия без нарушения совместимости с уже
Компания Google объявила об открытии кодовой базы редакции web-браузера Chrome для платформы iOS. По историческим причинам Chrome для iOS развивался как обособленный продукт, его разработка была отделена от проекта Chromium из-за необходимости учёта некоторых особенностей и ограничений платформы iOS, которые приводили к значительным усложнениям в разработке. Например, из-за невозможности использования собственного JIT-компилятора на платформе iOS в браузере применялся штатный для данной платформы движок WebKit, вместо собственного движка Blink. После нескольких лет переработки кодовой базы, весь код, созданный при разработке Chrome для платформы iOS, был аккуратно воссоединён с Chromium и перенесён в основной открытый репозиторий проекта. Слияние кодовых баз отразилось на проекте Chromium добавлением средств для сборки поверх движка WebKit, помимо штатного движка Blink. Вчера работа по слиянию кодовых баз была заверешена и разработчики получили возможность сборки версии Chromium для iOS из общей кодовой
Компания Google опубликовала обзор мер, предпринимаемых для обеспечения безопасности серверной инфраструктуры. Некоторые интересные особенности: Во всех серверах используются собственные материнские платы и компоненты, разработанные инженерами Google и произведённые под контролем представителем компании. Оборудование, включая периферийные устройства, оснащены специальным чипом, отвечающим за безопасную идентификацию и аутентификацию устройства на низком уровне. Программные компоненты, включая прошивки, загрузчики, ядро и базовые образы систем проверяются по цифровой подписи. Таким образом в инфраструктуре могут применяться только проверенные аппаратные и программные элементы, содержащие корректную цифровую подпись. В ситуациях, когда серверное оборудование приходится размещать в чужих датацентрах, оборудование Google отгораживается в собственный периметр физической безопасности, в котором для доступа применяются независимые биометрические датчики, камеры наблюдения и металлодетекторы. Данные
Компания Google анонсировала проект Wycheproof, в рамках которого подготовлен инструментарий для выявления в различных реализациях алгоритмов шифрования известных недоработок и несоответствий с ожидаемым поведением, открывающих двери для проведения атак. Мелкие ошибки при реализации алгоритмов шифрования часто могут привести к катастрофическим последствиям, оставаясь слишком долго необнаруженными. Wycheproof рассчитан на оперативное определение подобных ошибок, которые встречаются значительно чаще, чем хотелось бы. Набор тестов написан на языке Java и распространяется под лицензией Apache 2.0. В настоящее время в Wycheproof реализовано более 80 тестов, проверяющих на наличие более 40 видов ошибок в реализациях алгоритмов RSA, DSA, ECDH и Diffie-Hellman, таких как некорректный выбор констант для построения эллиптической кривой, повторное использование параметров в схемах формирования цифровых подписей, различные виды атак на AES-EAX, AES-GCM, DH, DHIES, DSA, ECDH, ECDSA, ECIES и RSA. Для некоторых тестов