Тем не менее, это интересная история с умеренно счастливым концом: достаточно нетривиальную проблему удалось решить в течение 12 часов. Это еще и подробно задокументированный инцидент, с массой информации как от разработчиков, так и с невероятными объемами драмы со стороны пользователей. В процессе возникла и проблема приватности, которая была вполне эффективно решена.
Первые сообщения о проблемах с расширениями появились еще до истечения срока действия сертификата, 3 мая. На Reddit есть как минимум одно такое
Вот так выглядит процесс подписи расширений в Firefox. Корневой сертификат на вершине цепочки находится в оффлайновом хранилище, и один раз в несколько лет с его помощью создается промежуточный сертификат, которым уже подписываются расширения. Именно срок действия промежуточного сертификата истек четвертого мая. Первым временным решением со стороны разработчиков Firefox был выпуск патча, который на время останавливает проверку валидности сертификатов расширений. Если такой патч прилетел к вам до проверки, то проблема вас миновала. Дальше у разработчиков было два пути: выпустить либо новый релиз Firefox, либо новый сертификат, который сделает валидными подписи расширений в текущей версии. Переподписать все дополнения (более 15 тысяч) было невозможно. Точнее, возможно, но это заняло бы очень много времени.
Учитывая сжатые сроки (о проблеме в Firefox узнали вечером 3 мая, конечно же, в пятницу!), было решено исследовать оба варианта. Технически возможность выпустить новый сертификат была, требовалось а) сгенерировать этот самый сертификат и б) доставить его пользователям как можно быстрее. Первая часть осложнялась тем, что корневой сертификат хранится в аппаратном модуле, до которого еще надо доехать (в лес? в банковскую ячейку?). Кроме того, когда разработчики добрались до корневого сертификата, сгенерировать новый промежуточный получилось не сразу, и это каждый раз приводило к потере часа или двух на необходимые тесты. Как доставить? Для этого использовался механизм Firefox Studies — по сути, система рассылки аддонов «от разработчика браузера», в обычных случаях предназначенная для экспериментального кода. Так выходило быстрее, чем собрать новый билд и разослать апдейт по обычным каналам.
Но тут возникла та самая проблема приватности. Firefox Studies как экспериментальная система включается только вместе с отправкой информации об использовании браузера обратно разработчикам Firefox. Это логично для бета-тестирования, но немного странно выглядит в контексте доставки патча, который нужен вообще всем пользователям. Эта проблема была решена элегантно: в Firefox решили
Это было не идеальное решение. Тем, у кого телеметрия отключена (и Studies), нужно было вручную включить эти опции. В некоторых билдах этой опции и вовсе нет. Версия браузера для Android не поддерживает Studies. Перманентно пострадали пользователи старых версий Firefox, которые не хотят обновляться, но пользуются аддонами. Восьмого мая были выпущены версии Firefox
Выводов из этой истории было сделано два. Во-первых, в Firefox пообещали наладить систему отслеживания «бомб с часовым механизмом» в инфраструктуре, чтобы не допустить подобное в будущем. Во-вторых, стало ясно, что даже более-менее современная система рассылки апдейтов, с разными способами доставки патчей пользователям, не так эффективна, как хотелось бы. По словам CTO Firefox, пользователи браузера должны иметь возможность получать обновления и хотфиксы, даже если они пожелают отключить любые другие экспериментальные фичи и/или телеметрию. Это история со счастливым концом, которая, возможно, приведет к улучшению механизма апдейтов Firefox, редкого мейнстримного браузера, не привязанного к какой-либо крупной IT-компании. Но не стоит забывать, что началась она с аллегорической стрельбы по собственным ногам.
Disclaimer: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.