Возможно, удостоверяющий центр компании Тензор компрометирует приватные ключи клиентов
Изложенное в данной статье является моим оценочным суждением, но предлагаю читателю объективно оценить факты.
Компания Тензор tensor_sbis имеет свой удостоверяющий центр и выпускает сертификаты проверки ключа электронной подписи физическим и юридическим лицам.
Для тех, кому отечественная электронная подпись вновинку, маленькое введение. Хранение ключей электронной подписи у нас выполняется в общем случае четырмя способами:
1) В файле на диске (или в реестре) — наименее защищенный вариант;
2) На «тупом» ключевом носителе, где ваш ключ защищен PIN-кодом — средний по защищенности;
3) На «умном» (smart) ключевом носителе — тут носитель самостоятельно умеет производить криптографические операции поэтому приватный ключ никогда не покидает пределов носителя. Все операции выполняются в чипе. Поэтому ключи на таких носителях называются неизвлекаемыми;
4) В облаке (на облачном носителе) — это когда вы отдаёте свой приватный ключ кому-то, в надежде, что он им сам не воспользуется и никому не передаст. Слов описать данный маразм не хватает, но на рынке это присутствует. Упор на удобство, которое, как известно, находится на другом конце от защищенности.
Я пользуюсь третьим вариантом — «умным» ключевым носителем. Крипто Про 5-й версии наконец-то научился использовать набортные средства криптографии на ключевых носителях и стала возможным абсолютно прозрачная (для программы, использующей криптографию) генерация и использование хардварных ключей. Это очень важный момент — если ничего не делать специально, то оно просто работает.
Некоторое время они работали достойно всяких похвал, однако в декабре мне потребовалось получить новый сертификат, и тут я внезапно столкнулся с рядом трудностей. Далее голые факты:
1) Для генерации ключевой пары по схеме с запросом на сертификат, клиенту необходимо установить на компьютер довольно тяжелое ПО (100 Мб) и плагин к браузеру, который с этим ПО взаимодействует. Обычно в других УЦ выдаётся маленькая утилитка, которая может работать офлайн. Или же это тоже можно сделать в браузере, причем после загрузки страницы можно отключить интернет и сделать всё оффлайн. В случае с Тензором этого сделать нельзя — в течение всего процесса выработки ключевой пары, находясь в браузере, нужно быть подключенным к интернету. В конце ПО самостоятельно отправляет запрос на сертификат в УЦ. Сам по себе файл запроса пользователь никогда не видит.
2) Установив в очередной раз это ПО (обычно я его сношу сразу после) в конце декабря 2019-го, я обнаружил, что возможность генерации ключей на «умных» ключевых носителях каким-то образом отключена. Причем в Тензоре не нашли ничего лучше, как модифицировать настройки реестра всей рабочей машины, чтобы эта возможность пропала у пользователя везде, в том числе с ранее выпущенным ключами.
3) Совместо со специалистами Крипто Про было вычисленно изменение, которому подвергает компьютер ПО компании Тензор, были вычислены механизмы противодействия этому. Так же по своим каналам Крипто Про якобы связался с Тензором и попросил их так не делать.
4) На сегодняшний день тензор обновил своё ПО, которое вроде бы больше не модифицирует реестр ранее выявленным способом, но они нашли какой-то иной способ сообщить криптопровайдеру о том, что нельзя использовать умные носители при выработке ключевой пары.
Режим голых фактов off. Дальше мои рассуждения.
Вспоминаем тезис выше о том, что если просто ничего не делать, то умные носители просто работают. Стало быть на лицо (зло-)намеренная попытка отключить эту возможность. Зачем? Вспоминаем 1-й факт выше. Работа при генерации ключа возможна только онлайн. ПО отправляет в УЦ запрос на сертификат. Но только ли это? Какой бы то ни было простой возможности проверить то, что ещё отправляется в УЦ, нету — обмен зашифрованный. Однако, ничто не мешает слать вместе запросом на сертификат и сам ключ. Ведь запретив все «умные» ключевые носители, ПО теперь имеет возможность извлечь только что сгенерированный приватный ключ и отослать его в УЦ (или кому-то ещё).