[recovery mode] Как можно установить «опасный» российский сертификат в Windows

acb3b4f95c6486eae63d5ab8fc9a270f

Это и не статья, а всего лишь заметка, которая появилась в связи с грядущим окончанием действия TSL сертификатов у Сбербанка и некоторым бурлением, связанным с этим событием. В комментах к другой статье по этой же теме я предложил возможное решение, и мне предложили описать его в деталях, поэтому так и поступаю.

Мне не понравились предлагаемые решения с подъёмом виртуальной машины исключительно под браузер со сбербанком или скачивание второго браузера с отдельным хранилищем сертификатов — всё таки это довольно долго делать, и будут расходоваться лишние ресурсы. Вариант с созданием собственного сертификата и переподписанием сертификатов НУЦ, наверное, самый профессиональный, но разбираться и делать было лениво.

Довольно просто, как мне кажется, настроить систему так, чтобы браузер со сбером запускался от имени специального пользователя, в окружении которого можно установить сертификаты НУЦ Минцифры.

Все делается в четыре с половиной шага:

Создаем аккаунт пользователя.

  1. Запускаем в новом аккаунте любимый браузер, в котором скачиваем с Госуслуг сертификаты и устанавливаем их в пользовательское хранилище (CurrentUser)

  2. В основном рабочем аккаунте делаем ярлык на любимый браузер, запускаемый от имени нового пользователя.

  3. Проверяем результат. Пока сбербанк еще работает на американском сертификате, поэтому подопытным сайтом может стать egisz.rosminzdrav.ru. На рабочем аккаунте, где сертификаты НУЦ не ставились, при его открытии должна появляться ошибка TLS. В браузере, открытом от имени нового пользователя, все должно открываться нормально.

Все эти движения можно выполнить традиционно для windows, мышкой, согласно инструкциям на сайте Сбера и на Госуслугах, но можно и из Powershell (в режиме админа)

#                        Копипастим и выполняем команды одну за одной:
#
#Создаем пользователя с хорошим паролем
net user sber MyStrongPassword /add
# Качаем корневой сертификат
runas /user:sber /savecred "powershell.exe wget -UseBasicParsing https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer -OutFile ~\Downloads\russian_trusted_root_ca.cer"
# И ставим его в пользовательское хранилище
runas /user:sber /savecred "powershell.exe  Import-Certificate -FilePath ~\Downloads\russian_trusted_root_ca.cer -CertStoreLocation cert:\CurrentUser\Root"
# Качаем sub сертификат
runas /user:sber /savecred "powershell.exe wget -UseBasicParsing https://gu-st.ru/content/Other/doc/russian_trusted_sub_ca.cer -OutFile ~\Downloads\russian_trusted_sub_ca.cer"
# И также, ставим его 
runas /user:sber /savecred "powershell.exe  Import-Certificate -FilePath ~\Downloads\russian_trusted_sub_ca.cer -CertStoreLocation cert:\CurrentUser\CA"

Код поля target ярлыка зависит от используемого браузера, разумеется, в моём случае это MSEdge, поэтому target такой:

C:\Windows\System32\runas.exe /user:sber /savecred "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe https://sberbank.ru"

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

Что сделать еще? Можно запретить браузеру нового пользователя открывать что-либо, кроме сайта Сбера, чтобы случайно не открыть Gmail и не стать жертвой атаки класса major in the middle.

Уверен, есть разные способы, как это сделать по всем правилам. Мне нравится quick&dirty способ — Залогиниться новым юзером, зайти в Панель управления (старую) и сконфигурировать фальшивый прокси сервер SOCKS, добавив в список исключений домены сбера *.sberbank.ru; *.sber.ru.

© Habrahabr.ru