Сертификат некрофила

Через месяц у владельцев старых телефонов начнут возникать определённые технические проблемы с посещением кучи сайтов. Проблема коснётся далеко не только телефонов, но это будет самое массовое проявление.

Upd (31.12.2020): сначала перенесли на осень, потом на январь 2021, а теперь и вовсе план изменился: потенциально проблемы начнутся с февраля 2021, но владельцы сайтов смогут переключиться на альтернативную цепочку и отсрочить проблемы для своих клиентов ещё на 3 года. Технические подробности.

Кто сразу хочет технических деталей про корневые сертификаты, кросс-подписи и т.д. — основная суть и ссылки для самостоятельного изучения есть ниже. А сейчас о том, что делать простым пользователям.

Яблочная дискриминация

Я мало знаю о мире iOS. На основании того, что сейчас нашёл в интернетах — похоже, проблемы будут на iOS 9 и ниже. Решать проблему там тоже можно импортом сертификата, но про это инструкцию напишет кто-то другой, лучше знакомый с iOS.

Так что дальше — только про Android.

Как проверить, возникнет ли проблема

На Android 7 и ниже проблема, вероятно, будет. На Android 9 и выше — практически точно не будет. Но вообще зависит от производителя — как он готовил для конкретного телефона Android, как обновлял.

Много где предлагают зайти на специальный тестовый сайт — https://valid-isrgrootx1.letsencrypt.org/. Откроется молча — проблем вероятнее всего не возникнет, пожалуется на безопасность — проблемы через месяц начнутся.

На деле всё хитрее, и это самое «вероятнее всего» дало ложный ответ на трёх старых устройствах у меня дома.

Надёжная проверка — это найти в настройках телефона, в разделе «Безопасность», «Другие параметры безопасности» (но вообще в зависимости от производителя путь может отличаться) примерно вот такой блок:

Какого-то пункта может не быть, называться могут чуть по-разному, первым почти всегда будет «Тип хранилища»

Запомните, как вы сюда пришли — скоро может понадобиться. А сейчас идём в «Сертификаты безопасности», видим километровый список, и ищем в нём вот такую запись (благо, список алфавитный):

Нашли — ладушки, можете дальше не читать. Вас проблема не коснётся.

Что делать

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

  1. Скачать на телефон вот этот файл: https://letsencrypt.org/certs/isrgrootx1.pem.txt (по тапу откроется что-то страшное, но вы вместо этого подержите долго на этой ссылке и скажите «Сохранить»).
  2. В любом файл-менеджере переименовать его в «isrgrootx1.pem» (удалить в конце «.txt»).
  3. Заново открыть то меню, которое находили выше, и там выбрать «Установить из памяти» (может быть «Установить с SD» или ещё как-то так).
  4. Указать на тот самый файл «isrgrootx1.pem»
  5. Если имя в диалоге импорта не указано — можете указать любое, это ни на что не влияет, но вот «Используется для» оставьте как есть.
  1. Если на телефоне не настроена никакая блокировка — придётся её установить (на Android 6 и выше потом можно будет отключить).
  2. Поздравляю! Теперь вы некрофил с сертификатом! ;)

Можете проверить, что всё успешно — ещё раз идём в то же самое меню в настройках, там снова «Сертификаты безопасности», но не листаем этот гигантский список, а переключаемся на вторую вкладку «Пользователь» и видим там результат:

Теперь, если хочется, можно отключить блокировку телефона. В момент отключения предупредят о том, что «Все зашифрованные данные будут удалены» — но сертификат должен остаться. Лучше проверьте после этого ещё раз, что он на месте. К сожалению, на Android 5 отключить блокировку не выйдет.

И не удивляйтесь, что теперь после каждой загрузки телефона вас будут пугать слежкой — это нормальное поведение после установки стороннего сертификата:

Технические детали

8 июля Let’s Encrypt начнёт выдавать сертификаты только с цепочкой до своего CA — Internet Security Research Group (ISRG), но без кросс-подписи (как выдают сейчас) от Identrust (DST). Если на устройстве нет корневого сертификата ISRG — сайты, использующие Let’s Encrypt начнут, по мере перевыпуска своих сертификатов (максимум — 3 месяца, хотя большинство обновляют раз в ~2 месяца) для владельцев таких устройств превращаться в тыкву разных размеров (иногда можно будет в браузере сказать «я на всё согласен, даже если это небезопасно», иногда — нет).

Ну а корневой сертификат ISRG покрыл все основные платформы только к августу 2018. Например, на валяющихся у меня под рукой телефонах с Android 7 и ниже его нет. Про 8 — ничего не могу сказать, да и от вендора (и выпуска им обновлений безопасности) будет зависеть.

Проблема гораздо шире, и хорошо описана в статье The Impending Doom of Expiring Root CAs and Legacy Clients (ну или в шустренько сляпанном сильно сокращённом переводе-изложении, выдаваемом за свой текст).

Опубликовано