В бюджетных организациях, да и в коммерческих, хоть и реже, сплошь и рядом используются электронно цифровые подписи (ЭЦП). Сегодня мы поговорим с Вами о том как быть если нужно оперативно раскидать на несколько персональных компьютеров одну и ту же ЭЦП. Кроме того тот метод который мы будем использовать поможет нам сэкономить физические\железные флешки которые используются в качестве носителя закрытого ключа ЭЦП. Так как не все программы используемые для подключения к различным "Бюрократическим сервисам" работают с закрытыми ключами помещенными в реестр компьютера и требуют именно съемный накопитель, то мы займемся тем что воистину можно назвать магией - Вирутальная флешка. 

 
 

И так... Вы бюджетная организация и Вы, только что получили флешку из федерального казначейства. На флешке ЭЦП и Вы готовитесь установить эти подписи на кучу компьютеров во всей организации. Подписи нужны для размещения на площадке государственных закупок заявок вашей организации, вероятнее всего эти функции вменены вашему юристу. Главному бухгалтеру необходимы ЭЦП для отправки отчетности через программы электронного документооборота, для работы на порталах *.gov.ru совершенно различных, таких как Электронный бюджет, Бюджетное планирование, те же государственные закупки и др. Бухгалтер кассир бюджетного предприятия для взаимодействия с казначейством обязательно пользуется СУФД,  масса отчетов накопилось и у экономиста. Заместитель или заместители директора так же участвуют в этом, они отчитываются в различных системах за подведомственный им участок работы. И везде неизменно используются ЭЦП, они используются как непосредственно для подписания документов, так и для установления защищенных каналов связи взаимодействуя с каким нибудь экзотичным софтом типа JinnClient, ContinentTLS иногда даже с плагинами\расширениями устанавливаемыми непосредственно в браузер.

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

Для того чтобы спать спокойно воспользуемся нехитрой программкой ImDisk Virtual Disk Driver (Загрузить с официального сайта). Софт довольно не плохо расползся и по сети, можно поискать на softportal.com или просто в поисковике. Суть данной программы в том что в операционную систему устанавливается драйвер который полностью эмулирует носитель информации из образа лежащего на вашем жестком диске. Конечно данная программа может сэмулировать любой диск, допустим виртуальный диск, диск внутри CD привода, флоппи диск, но нам важен ее функционал в отношении так называемых съемных дисков, а именно флешек. Так же не маловажным является то, что полностью повторяется функционал виртуальных устройств по отношению к их железным копиям, то есть на образ не только эмулируется в виде флешки, но на эту флешку так же как и на обычную можно записывать и стирать с нее данные, ее можно форматировать и самое главное эта виртуальная флешка видна через главный криптопровайдер "Всея Руси" программу которую лично одобрило к использованию ФСБ России - КриптоПро CSP.

Мы подобрались к самому главному вводная часть окончена и теперь преступим к созданию флешки. Установка вышеописанной программы ImDisk Virtual Disk Driver не должно вызвать сложностей внимательно читаем и нажимаем далее далее... После установки мы сможем работать как с консольной программой imdisc.exe так и c приложением (GUI консольного приложения) расположенным на панели управления. 

Для справки по консольному приложению в CMD вводим команду imdisc.exe /? и получаем полный синтаксис по работе с описанием ключей для работы в консольном режиме.

Эта информация пригодится нам чуть позже, а сейчас воспользуемся GUI. Открываем панель управления, выставляем параметр просмотр в режим "Крупные значки", далее находим и запускаем ImDisk Virtual Disk Driver, в запустившемся окне нажимаем кнопку "Mount new..."

 

 В следующем окне указываем букву диска которую желаем использовать под виртуальную флешку (в примере F:), указываем размер диска 32 мегабайта, ставим точку напротив хранить файл образа в физической памяти, и указываем что наш диск будет съемным, так же можно явно указать тип диска, но по умолчанию будет создан нужный диск по этому данное поле оставляем в режиме Авто. После произведенных настроек нажимаем кнопочку "Ok" для подтверждения проделанных действий.

Теперь в окне программы мы видим перед собой только что созданный виртуальный диск - флешку, операционная система вероятнее всего предложит вам его отформатировать. Отформатируйте виртуальный флеш диск и задайте ему удобное имя например ЭЦП. Вернувшись к окну программы сохраним образ нашего виртуального флеш накопителя кнопкой "Save image"

На запрос опций сохранения образа диска отметьте второй вариант и нажмите "Ok". Далее последует предупреждение о блокировке виртуального флеш носителя на время создания копии ответьте утвердительно "Ok" чтобы продолжить. Следующее окно запросит место для сохранения и имя файла, выберете директорию и укажите имя, нажмите кнопку "Сохранить", чтобы в дальнейшем избежать сложностей с вводом длинных имен желательно расположить образ в папке с коротким именем например "c:\img\virtflash.img". После сохранения программа уведомит вас об успешном создании файла образа виртуальной флешки на Вашем компьютере.

Поздравляю вы только что получили полноценную виртуальную флешку которую можно подмонтировать к любому компьютеру предварительно установив программу ImDisk Virtual Disk Driver и просто переместив на целевой компьютер файл образа который мы абзацем ранее сохранили на компьютере.

Далее нам необходимо с помощью программы КриптоПро CSP скопировать закрытый ключ с физической флешки полученной в Федеральном Казначействе или другом удостоверяющем центре на нашу виртуальную флешку. Не забываем, так же скопировать и сами сертификаты, скорее всего они лежат у вас на той же флешке, с названием в виде фамилии человека на кого выпущена ЭЦП. Вопрос установки КриптоПро CSP мы не будем рассматривать в рамках этой статьи, скажу только, что скачать дистрибутив можно с официального сайта лишь только после регистрации на нем, в вопросах касающихся ЭЦП не стоит пытаться брать дистрибутив из сомнительных источников. Без ключа КриптоПро CSP запустится и проработает до 90 дней, очень удобно если Вам необходимо оборудовать новое рабочее место и у вас еще нет лицензии. Можно установить КриптоПро CSP без ключа и начинать работать сразу, а ключ заказать уже позже. В случае с бюджетными организациями ключ можно получить по письму-запросу на лицензию непосредственно в казначесйтве. Лицензии которые выдаются казначейством как правило бессрочные.

Рассмотрим подробнее процедуру копирования закрытых ключей. Откроем КриптоПро CSP перейдем на вкладку "Сервис" и в разделе "Контейнер закрытого ключа" выбираем кнопку "Скопировать"

 В открывшемся окне напротив поля "Имя ключевого контейнера" нажмите кнопку "Обзор..." далее выбираем ключевой контейнер по его имени находящейся "железной", физически существующей флешке (в данном случае Диск Н, Фамилия Имя Отчество на кого выдана подпись) нажимаем кнопку "Ok" для подтверждения выбора. После того как мы подтвердили выбор контенера, мы увидим его в поле "Имя ключевого контейнера" нажимаем кнопку "Далее >" и переходим на следующее окно. 

В следующем окне предлагается ввести имя для ключа который будет создан на другой флешке методом копирования, то есть имя ключа которое будет ему  присвоено при создании на нашей виртуальной флешке (Имя можно изменять, например для удобства дописать время окончания действия ЭЦП). После введения имени нажмите кнопку "Готово"

После нажатия кнопки "Готово" у Вас отобразится окно в котором нам надо будет найти нашу ранее созданную виртуальную флешку, если отмотать чуть назад то мы вспомним что это был Диск F, метка диска(название) была задана нами как "ЭЦП", собственно именно это мы и видим  в поле вставленный носитель. Убедившись в правильности выбора нажимаем кнопку "Ok".

Всплывающее далее окно предлагает нам ввести пароль для нового закрытого ключа, обычно я этого не делаю, потому как иногда бывает сложно вспомнить заданный пароль спустя какое то время после его ввода (месяц-два). Но если вы уверены в своей памяти то установить его я все же рекомендую, это будет являться дополнительной защитой при дальнейшем использовании ключа. Оставляем поле ввода пароля и подтверждения пустыми или вводим одинаковый пароль в оба поля если решили усилить защищенность своей будущей ЭЦП на виртуальной флешке далее нажимаем кнопку "Ok".

На этом перенос закрытой части ключа с физической флешки на виртуальную завершен. Если это необходимо то повторите операцию с другими ЭЦП имеющимися на флешке пока все контейнеры не будут перенесены. Проверим что у нас получилось на нашей виртуальной флешке.

 

Мы видим, что отличает нашу виртуальную флешку от реальной - физической, на ней не хватает сертификатов безопасности. Скопируем их с физической флешки и вставим на виртуальную средствами операционной системы. Получим следующее:

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

Единственное, что конечно удручает, что надо каждый раз ручками монтировать этот образ, но мы ведь не ищем с Вами легких путей! Если вы внимательно читали эту статью то Вы помните что нашу виртуальную флешку мы монтировали с буквой "F:", так же мы уже говорили, что наша флешка является съемным носителем, и конечно в самом начале мы обсуждали тот момент, что кроме GUI программы ImDisk Virtual Disk Driver у нее есть консольное приложение. Давайте подробнее разберемся с тем, какие ключи есть у консольного приложения, и как нам подмонтровать наш образ в виде виртуальной флешки из консоли (без GUI интерфейса находящегося на панели управления). Получится так:

imdisk -a -f c:\img\virtflash.img -m f: -o rem

Где: 
-aключ на подключение диска
-f c:\img\virtflash.img - использовать файл диска для создания виртуальной флешки;
-m f:том для монтирования, создается виртуальный накопитель F;
-o rem - это дополнительный параметр, съемный диск (флешка rem - remote), если этот параметр не указать, то будет смонтирован жесткий диск.
 
Запускаем в консоли и убеждаемся что все работает. Проверяем диски открыв ярлык "Мой компьютер", диск создан и подключен как съемный диск то есть флеш накопитель, в нашем случае виртуальный. 
 
Вы спросите меня зачем нам делать все то же что можно сделать через GUI программы расположенного на Панели управления. А я скажу вам, что можно, например сделать bat файл с данной командой и положить его в папку автозагрузка в меню Пуск. Таким образом можно будет его запускать при старте системы, но мне не нравится "Чрезмерная костыльность" этого метода bat скрипты хороши по своему но при контролируемом запуске непосредственно пользователем, да и в принципе весь скрипт состоял бы из оной строки, а потому мы можем попробовать более изящный вариант. Мы попробуем выполнить нашу консольную команду из меню автозагрузки находящегося в Реестре операционной системы, для этого нам будет необходимо создать строковый параметр в разделе реестра HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Run.

Итак попробуем войти в реестр нажимаем и удерживаем клавиши Win+R в поле "Выполнить" необходимо ввести команду regedit и нажмите "Ok"

Далее осуществляется переход к папке HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Run.

В правой части открывшегося меню редактора реестра находится пользовательское ПО, которое запускается при загрузке системы. Туда также можно внести или удалить из него какую нибудь программу. Для этого необходимо кликнуть правой кнопкой мыши по пустому правому сегменту редактора, в открывающемся контекстном меню выбирать «Создать», далее «Строковой параметр». Введем имя вновь созданного строкового параметра например зададим имя ImDisc имя можно выбирать произвольно. После двойного клика по новому строковому параметру  необходимо задать "Значение" на следующее: imdisk -a -f c:\img\virtflash.img -m f: -o rem , которое впредь будет запускаться на выполнение единовременно с загрузкой ОС. После изменения значения строкового параметра необходимо подтвердить изменения нажав кнопку "Ok".

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

Мне кажется что мы полностью раскрыли тему. И на последок лирическое отступление :)

— Видишь флешку с ЭЦП?..
— Нет...
— И я не вижу... А она есть!
— Понятно...