Сертификаты для андроид

Cody Wass

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

  • Добавление сертификатов в хранилище достоверных сертификатов.
  • Перезапись упакованных сертификатов.
  • Использование скрипта Frida для обхода проверок SSL-сертификатов.
  • Изменение кода проверки сертификата.

Некоторые из вышеуказанных техник — простые, другие – более сложные в реализации. Мы рассмотрим каждый из этих методов без особого углубления в специфические детали.

Зачем нужна MITM-атака на SSL

Чтобы просматривать и изменять вызовы веб-службы, используемой мобильным приложением, нам понадобится промежуточный прокси сервер для перехвата, созданный при помощи утилит навроде BurpSuite или ZAP. При перехвате SSL-трафика SSL-соединение прерывается на стороне прокси-сервера. Сертификат, отсылаемый прокси-сервером, анализируется мобильным приложением, как если бы прокси был оконечной точкой веб-службы. По умолчанию самоподписанный сертификат, генерируемые утилитами наподобие Burp, не будет принадлежать проверенной достоверной цепочке. Если сертификат нельзя проверить на достоверность, большинство мобильных будут обрывать соединение вместо того, чтобы подключаться и работать в потенциально незащищенном канале. Техники, представленные ниже, предназначены для одной цели – убедить мобильное приложение, что сертификат, отправляемый прокси-сервером, является достоверным.

Техника 1 – Добавление сертификата в хранилище пользовательских сертификатов

Самый простой способ избежать SSL-ошибок – обзавестись валидным и надежным сертификатом. Эта задача решается относительно просто, если вы сможете установить достоверный сертификат на устройство. Если операционная система доверяет вашему центру сертификации, то будет доверять и сертификату, подписанному центром сертификации.

В Android есть два встроенных хранилища сертификатов, которые отслеживают, каким центрам сертификации доверяет операционная система: системное хранилище (хранит предустановленные сертификаты) и пользовательское хранилище (хранит сертификаты, добавленные пользователями).

Выдержка с сайта developer.android.com:

По умолчанию безопасные соединения (использующие протоколы TLS, HTTPS и им подобные) во всех приложениях доверяют предустановленным системным сертификатам. В Android 6.0 (API level 23) и более ранних версиях по умолчанию также считаются достоверными сертификаты, добавленные пользователями. Приложение может настраивать свои собственные соединения на уровне приложения (base-config) и на уровне домена (domain-config).

Сей факт означает, что, если мы имеем дело с приложением, которое работает в Android 6.0 и более ранних версиях, то можно просто добавить сертификат в пользовательское хранилище. Когда приложение пытается проверить достоверность цепочки для нашего сертификата, то обнаружит, что наш центр сертификации связан с достоверным хранилищем и, следовательно, будет доверять нашему сертификату. В более новых версиях приложение не будет доверять хранилищу пользовательских сертификатов. Чтобы решить эту проблему, нужно прописать такой уровень API и версию Android, чтобы приложение стало доверять пользовательским центрам сертификации. Мы будем редактировать атрибут «platformBuildVersionCode» элемента «manifest» в файле AndroidManifest.xml.

После переупаковки приложения с обновленным файлом AndroidManifest.xml, доверие пользовательским центрам сертификации будет восстановлено.

<?xml version=»1.0″ encoding=»utf-8″?> <network-security-config> <base-config> <trust-anchors> <certificates src=»@raw/my_ca»/> </trust-anchors> </base-config> </network-security-config>

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

Техника 2 – Перезапись упакованного сертификата

Если после установки сертификата в пользовательское хранилище, изменении в настройках версии Android и успешном прохождении проверок при просмотре других ресурсов, защищенных протоколом SSL, все равно возникают ошибки, значит, разработчики внедрили дополнительные условия, которым должны удовлетворять достоверные центры сертификации. Если не забыли, в предыдущей технике внутри тэга trust-anchors добавлялся новый путь к сертификату. Подобный трюк может использоваться разработчиками для защиты приложений от перехвата SSL.

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


Рисунок 1: Перечень сертификатов, используемых приложением

Если открыть пакет приложения при помощи, например, APK Studio, то можно сразу увидеть перечень привязанных сертификатов. На картинке выше сертификаты находятся в папке «assets». Замена явно бросающегося в глаза сертификата UniversalRootCA позволит нам подсунуть приложению наш сертификат.

Техника 3 – Подключение к функциям через фреймворк Frida

Если установки собственного сертификата недостаточно для успешного перехвата SSL-трафика, скорее всего, в приложении используются техники навроде SSL pinning или дополнительная SSL-валидация. В этом случае нужно блокировать проверки через непосредственное подключение к соответствующим функциям. Ранее эта техника была доступна для реализации только на устройствах с правами суперпользователя. Однако на данный момент при помощи библиотеки Frida Gadget можно работать с приложением и получить доступ к полному функционалу фреймворка Frida без прав суперпользователя.

Если вы уже выполняли пентесты мобильных приложений, то, вероятно, знакомы с этим фреймворком. Описание всей функциональности Frida выходит за рамки этой статьи, но если говорить в общем, то этот фреймворк позволяет изменять логику работы приложения во время выполнения. Обычно Frida работает как отдельное приложение и требует прав суперпользователя на устройстве. Если у нас нет прав суперпользователя, мы можем инжектировать в пакет приложения динамическую библиотеку Frida Gadget, содержащую большую часть функционала фреймворка Frida. Эта библиотека загружается во время выполнения приложения и позволяет вносить изменения в код.
Чтобы загрузить Frida Gadget, нужно распаковать APK, вставить динамическую библиотеку, отредактировать smali-код так, чтобы динамическая библиотека вызывалась самой первой, а затем переупаковать и установить пакет. Весь этот процесс хорошо задокументирован Джоном Козиракисом (John Kozyrakis). Вначале лучше пройти все этапы вручную, чтобы лучше понять, как работает эта технология. Чтобы сэкономить время, существует утилита — Objection, которая автоматизирует весь вышеупомянутый процесс. Требуется лишь указание целевого пакета, над которым нужно выполнить манипуляции.

C:\ >objection patchapk -s test_app.apk No architecture specified. Determining it using `adb`… Detected target device architecture as: armeabi-v7a Github FridaGadget is v10.6.28, local is v10.6.13. Updating… Downloading armeabi-v7a library to C:\.objection\android\armeabi-v7a\libfrida-gadget.so.xz… Unpacking C:\.objection\android\armeabi-v7a\libfrida-gadget.so.xz… Cleaning up downloaded archives… Using Gadget version: 10.6.28 Unpacking test_app.apk App already has android.permission.INTERNET Reading smali from: C:\Temp\tmp8dxqks1u.apktemp\smali\com/test/app/TestMainActivity.smali Injecting loadLibrary call at line: 10 Writing patched smali back to: C:\Temp\tmp8dxqks1u.apktemp\smali\com/test/app/TestMainActivity.smali Creating library path: C:\Temp\tmp8dxqks1u.apktemp\lib\armeabi-v7a Copying Frida gadget to libs path… Rebuilding the APK with the frida-gadget loaded… Built new APK with injected loadLibrary and frida-gadget Signing new APK. jar signed. Signed the new APK Performing zipalign Zipaling completed Copying final apk from C:\Users\cwass\AppData\Local\Temp\tmp8dxqks1u.apktemp.aligned.objection.apk to current directory… Cleaning up temp files…

После завершения в нашей рабочей директории должен появиться файл «test_app.objection.apk». По умолчанию утилита objection добавляет постфикс «.objection» к имени пакета. Далее мы можем установить этот пакет так же, как и любой другой APK, при помощи команды adb install test_app.objection.apk. После того как измененный пакет установлен на целевом устройстве, во время запуска приложение должно встать на паузу на начальном экране. В этот момент мы можем подключиться к серверу Frida, который отслеживает наше устройство:

C:\>frida-ps -U
PID Name
—- ——
6383 Gadget

-> Java.available
true

Alternatively, Objection supports interaction with the listening Frida server by using the ‘explore’ command:

C:\>objection explore
___| |_ |_|___ ___| |_|_|___ ___
| . | . | | | -_| _| _| | . | |
|___|___|_| |___|___|_| |_|___|_|_|
|___|(object)inject(ion) v1.2.2

Runtime Mobile Exploration
by: @leonjza from @sensepost

Теперь вы можете воспользоваться функцией для обхода технологии SSL pinning:

Техника 4 – Реверс-инжиниринг кода верификации сертификата

Возможен такой случай, когда разработчик использует собственные SSL-библиотеки вместо системных для верификации сертификата. В этой ситуации нам нужно распаковать пакет, сконвертировать smali-код в Java-код и найти функции, отвечающие за проверку сертификата.

Если использовать «dex2jar», синтаксис будет следующим:

C:\>d2j-dex2jar.bat «C:\test_app.apk»
dex2jar C:\test_app.apk -> .\test_app-dex2jar.jar

Полученный файл .jar должен быть пригоден для открытия в вашей любимой утилите для исследования Java-приложений (например, JD-GUI).

После того как вы нашли функции, отвечающие за проверку сертификата, можно либо полностью пропатчить код, либо подцепиться к нужной функции при помощи Frida. Чтобы сэкономить время и не пересобирать полностью приложение, эффективнее подцепиться к функциям, отвечающим за проверку сертификата. Шаги, описанные в предыдущей технике, позволят подключиться к приложению, и далее вы можете либо подцепиться к функции при помощи утилит фреймворка Frida, либо при помощи приложения Objection.

Заключение

Техники, описанные в этой статье, позволяют перехватывать SSL-трафик и обходить некоторые наиболее распространенные защиты, используемые разработчиками. Кроме того, я кратко рассказал об утилите Objection и фреймворке Frida. Обход технологии SSL pinning и других защит лишь небольшая часть возможностей, которые позволяют реализовать эти инструменты.

Надеюсь, мне удалось на доступном языке рассказать о техниках, которые могут быть пригодны для оценки безопасности мобильных Android-приложений и демонстрируют важность наличия нескольких способов проведения подобного рода исследований.

Установка сертификата пользователя с использованием КриптоПро CSP

Для установки личного сертификата с проставленной ссылкой на закрытый ключ используется приложение КриптоПро CSP. Запустить его в ОС Windows можно выполнив Пуск >> Все программы >> КРИПТО-ПРО >> КриптоПро CSP. В появившемся окне приложения нужно выбрать вкладку Сервис и в ней нажать на кнопку Установить личный сертификат. Далее следует указать расположение файла сертификата (файл с расширением .cer) и нажать кнопку Далее. Окно просмотра свойств сертификата позволяет убедиться, что выбран правильный сертификат; после проверки снова нажмите на кнопку Далее.

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

ВАЖНО! В этом шаге используются только съемные USB-носители или смарт-карты, а также реестр операционной системы.

Приложение КриптоПРО CSP версии 3.9 позволяет найти контейнер автоматически путем проставления соответствующего флажка; более ранние версии после нажатия кнопки Обзор предоставляют список имеющихся носителей, из которых требуется выбрать нужный. После выбора контейнера нажмите Далее. Следующее окно позволяет задать параметры установки сертификата в хранилище. Выбрав необходимое хранилище, нажмите на кнопку Далее.

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

Следующий шаг финальный и не требует каких-либо действий, кроме нажатия кнопки Готово.

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

Android находится на подъеме. Android Market, теперь известный как Google Play затмил Apple App Store с точки зрения бесплатных приложений. Исследования также предсказывают что текущие темпы роста сохранятся К сожалению, популярность приводит к нежелательному вниманию хаккеров. Хотя Android имеет сильное и растущее сообщество разработчиков частных лиц и небольших компаний которые пишут приложения для популярной мобильной операционной системы, некоторые разработчики недостаточно разбираются в обеспечении безопасности приложений. В результате атаки вредоносного ПО на рынок приложений Android затрагивает миллионы пользователей. Эти атаки увеличиваются по количеству и силе и не уменьшаются.

Разработчики обычно сталкиваются с тем что для Android существуют обычные проблемы

  • Недоверие пользователей к бесплатным продуктам, загруженным из Интернета
  • Отсутствует формальный процесс проверки подлинности для разработчиков Android-приложений
  • Нет существующего доверенного корня для приложений Android
  • Необходимо, чтобы разработчики сохраняли контроль над закрытыми ключами в течение 25 лет, чтобы обеспечить новые версии приложений
  • Неправильное управление ключами подписи оставляет их уязвимыми для потери или кражи

Это обычная тактика среди производителей вредоносных программ для Android, чтобы переупаковать законное приложение с кодом атаки, а затем переиздайте его на рынок в надежде, что пользователи будут путать поддельное приложение с реальным. Эти вредоносные приложения могут собирать информацию пользователя, такую ​​как закладки, координаты GPS и информация о телефоне. Они также могут перемещать нежелательный контент, например, изменять домашнюю страницу браузера, вставляя рекламу или отправляя премиальные SMS-сообщения, которые могут стоить пользователям много денег. Поклонникам Android нравится тот факт, что это открытая платформа разработки, которая предполагает что разработчики могут создавать чрезвычайно богатые и инновационные приложения. Разработчики могут свободно использовать аппаратное обеспечение устройства, местоположение доступа информация, запуск фоновых сервисов, установка предупреждений, добавление уведомлений в статус бар и многое другое. Однако такая открытость Android-платформы делает ее привлекательной для создателей вредоносных программ. Когда пользователи загружают приложения, им предоставляется длинный список разрешений для издателя приложения. Большинство пользователей просто нажимают «Я согласен», не читая детали, которые может облегчить загрузку вредоносного ПО вместе с приложением.

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

Особенности Android и ограничения

Android — это широко распространенная программная платформа, представленная в ряде карманные устройства, такие как Motorola Droid, Samsung Galaxy и LG HTC. Разработчики Android имеют полный доступ к тем же API по основным приложениям. Архитектура приложения предназначена для упрощения повторнго использования компонентов; любое приложение может публиковать свои возможности и любое другое приложение может затем использовать эти возможности (при условии ограничения безопасности, обеспечиваемые каркасом). Этот же механизм позволяет использовать компоненты, подлежащие замене пользователем.

Подписание кода позволяет разработчикам идентифицировать автора приложения и обновлять свои приложения без создания сложных интерфейсов и разрешений. Каждое приложение, работающее на платформе Android, должно быть подписано разработчиком в противном случае система откажет в доступе к приложению. Приложения без подписи будет отклонено либо Google Play, либо установщиком пакета на устройстве Android. Подпись приложения создает мост доверие между Google и разработчиком. Разработчики уверены что их разработки переданы Android-устройству без изменений, и свою очередь, Google подтверждает что разработчики отвечают за поведение своего приложения.

В руководстве для разработчиков представлены некоторые рекомендации по передовым методам в безопасности приложений. К ним относятся требования для подписания заявки и получение подходящего закрытого ключа. Ключ должен оставаться в владение и представлять личный или корпоративный объект, который должен быть идентифицирован с заявлением. Ключ должен иметь срок действия, который превышает ожидаемый срок службы приложения или набора приложений. Срок действия более 25 лет рекомендуется, и если разработчик хочет опубликовать приложение в Google Play, 25-летний срок действия является требованием.

Процесс подписи кода требует, чтобы разработчик загрузил Android SDK и получить бесплатную утилиту для подписи кода. Разработчик генерирует собственные сертификат и ключи подписи хранит их локально. Ответственность за созранность и использование лежит на разработчике, чтобы гарантировать, что ключи защищены и сохранены в безопасном месте для 25-летнего хранения. Важным компонентом 25-летнего требования является то, что разработчик должен используйте тот же ключ для доступа к приложению, если он планирует делать какие-либо обновления или обновления. Например, если пользователь загрузил версию 1.1, а разработчик пересматривает приложение на новую версию, скажем, 1.2, тогда необходимо использовать оригинальный ключ чтобы сделать обновление. В противном случае существующее приложение не будет перезаписано и конечный пользователь окажется в двух разных версиях приложения.

Последствия утерянных или украденных ключей

Если ключ потерян или украден, разработчику необходимо будет создать новый ключ. Как следствие, Android рассматривает новые версии приложений как совершенно новые, отдельные Приложения. Версия 1.2 приложения, описанная в приведенном выше примере, не должны быть связаны вообще с версией 1.1, и пользователям нужно будет снова загрузить приложение чтобы продолжать использовать его.

Ключ может быть потерян многими способами: он может быть поврежден, он может быть потерян при сбое, или он может потеряться при обновлении системы. В настоящее время единственным решением при утере ключей является получение нового.

Если ключи украдены, приложение может заразиться вредоносным ПО, а хакер может загружать программное обеспечение в App Store под ложными предлогами. Последствия потерянных или украденных ключей выходят за рамки простых неудобств и ухудшение качества обслуживания пользователей. Долгосрочный ущерб, причиненный в результате потери доверия клиентов не только воздействует на отдельных разработчиков, но также может иметь серезное влияние на продажи устройств Android.

Решение: DigiCert Code Signing for Android

Программные системы, приложения и мобильные сети полагаются на корневой сертификат выдающего центра сертификации (CA) для определения действительности цифровой подпись. Сторонний ЦС более доверен, чем самозаверенный сертификат, потому что поставщик запроса на сертификат должен пройти процесс проверки или аутентификации.

DigiCert, мировой лидер в области служб аутентификации, предлагает DigiCert Code сертификат для Android. Облачное решение DigiCert Code Signing для Android использует последние достижения в решениях безопасности приложений. Этот сервис облачный, его можно легко получить с любого устройства. DigiCert также может безопасно хранить подписанные приложения. Эта услуга позволяет разработчикам быть спокойным для обеспечения безопасности приложений

DigiCert предлагает безопасный портал для подписания кода для использования на протяжении всего срока действия сертификата обеспечивая защиту ключей для подписи. Эти добавленные уровни безопасности предназначены для серьезных разработчиков для защиты от тех, кто распространяет вредоносное ПО. Ключи подписи надежно сохранены и разработчики могут вернуться в портал в любое время, чтобы повторно использовать ключ подписи, создать новый или проверить данные аутентификации существующих ключей.

Сертификат DigiCert Code Signing для Android обеспечивает аутентичность и достоверность приложений, поскольку можно предположить, что только легальные предприятия будут использовать сертификат для подписи приложений. Марка DigiCert связана с брендом разработчика, помогая обеспечить безопасный пользовательский интерфейс.

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

Программное обеспечение, загруженное через мобильные сети — с или без знания — всегда будет представлять опасность. В традиционных продажах программного обеспечения покупатель может подтвердить источник заявки и ее целостность, изучив упаковку. DigiCert Code Signing for Android создает цифровую «термоусадочную пленку», которая показывает источник кода и подтверждает, что он не был изменен с момента подписания. DigiCert предоставляет разработчикам Android дополнительную безопасность с фирменной сертификацией, а также убедить конечных пользователей в том, что их приложения безопасны. 

Для удаления государственного сертификата безопасности с различных устройств пользователям необходимо совершить несколько простых действий, передает Tengrinews.kz.

Инструкция для владельцев телефонов с операционной системой IOS:

Войдите в «Наcтройки».

Далее перейдите в раздел «Основные».

Выберите пункт «Об этом устройстве». Там переходим в пункт «Доверие сертификатов». Далее нужно снять галочку с сертификата Qaznet Trust Network (QTN).

После всех этих действий необходимо удалить программу и ее профиль конфигурации в случае его наличия. Далее нужно перезагрузить телефон.

Инструкция для владельцев телефонов с операционной системой Android:

Перейдите в «Настройки», далее выберите пункт «Безопасность и местоположение», далее — «Шифрование и учетные данные». После этого в разделе «Хранилище учетных данных» очистите учетные данные.


Скриншот с телефона с операционной системой Android

Инструкция для удаления сертификата с компьютера с браузером под управлением ОС Windows:

Для этого нужно перейти в «Панель управления».

выбрать там пункт «Сеть и Интернет». Далее необходимо перейти к «Управлениям настройками браузера», затем к «Свойствам обозревателя».

Во вкладке «Содержание» нужно найти «Сертификаты». В этом разделе необходимо удалить сертификат Qaznet Trust Network (QTN).

Инструкция для удаления сертификата с компьютера с браузером под управлением Mac OS:

Необходимо открыть приложение «Связка ключей», выбрать вкладку «Сертификаты» и удалить из списка сертификат Qaznet Trust Network (QTN).

Ранее в КНБ сообщили, что завершили тестирование сертификата безопасности. В ведомстве отметили, что прекращают тестирование с 7 августа. Национальным координационным центром информационной безопасности в июле было выявлено более 8 миллионов фактов вирусной активности и 130 тысяч кибератак в отношении государственных органов и частных компаний. Выявлены факты кибершпионажа в отношении ряда госорганов».

Президент Казахстана Касым-Жомарт Токаев сообщил, что протестированный КНБ сертификат безопасности будет использоваться только в случаях вторжения извне, а также отметил, что интернет-пользователям в ходе его тестирования не было доставлено неудобств. Тестирование сертификата в столице заняло почти две недели.

Напомним, жителей Нур-Султана попросили установить сертификат безопасности Qaznet Trust Network для доступа в Интернет. Как заявлялось, это делается ради «усиления защиты граждан, государственных органов и частных компаний от хакерских атак, интернет-мошенников и иных видов киберугроз».

Мы строим «Киберщит Казахстана» — КНБ о сертификате безопасности

  • Копирование средствами Windows
  • Копирование на профиле Диагностики
  • Массовое копирование
  • Копирование с помощью КриптоПро CSP
  • Экспорт PFX-файла и его установка
  • Копирование контейнера из реестра другого пользователя

Копирование средствами Windows

Если для работы используется дискета или flash-накопитель, скопировать контейнер с сертификатом можно средствами Windows (этот способ подходит для версий КриптоПро CSP не ниже 3.0). Папку с закрытым ключом (и, если есть, файл сертификата — открытый ключ) поместите в корень дискеты / flash-накопителя (если поместить не в корень, то работа с сертификатом будет невозможна). Название папки при копировании рекомендуется не изменять.

В папке с закрытым ключом должно быть 6 файлов с расширением.key. Как правило, в закрытом ключе присутствует открытый ключ (файл header.key в этом случае будет весить больше 1 Кб). В этом случае копировать открытый ключ необязательно. Пример закрытого ключа — папки с шестью файлами и открытого ключа — файла с расширением.cer.

Закрытый ключ Открытый ключ

Копирование на профиле Диагностики

1. Зайдите на профиль Диагностики «Копирования» .

2. Вставьте носитель, на который необходимо скопировать сертификат.

3. На нужном сертификате нажмите на кнопку «Скопировать».

Если на контейнер был задан пароль — появится сообщение «Введите пароль для устройства с которого будет скопирован сертификат».

Введите пароль и нажмите на кнопку «Далее».

4. Выберите носитель, куда необходимо скопировать сертификат и нажмите «Далее».

5. Задайте имя новому контейнеру и нажмите на кнопку «Далее».

6. Должно появиться сообщение об успешном копировании сертификата.

Массовое копирование

  1. Скачайте и запустите утилиту. Дождитесь загрузки всего списка контейнеров/сертификатов и отметьте нужные галочками.
  2. Выберите меню «Массовые действия» и нажмите на кнопку «Копирование контейнеров».

3. Выберите носитель для хранения копии контейнера и нажмите «ОК». При копировании в реестр можно поставить галочку на пункте «Копировать к ключевой контейнер компьютера», тогда после копирования контейнер будет доступен всем пользователям данного компьютера.

4. После копирования нажмите внизу слева кнопку «Обновить».
Если хотите работать со скопированными контейнерами — необходимо установить сертификаты.

Копирование с помощью КриптоПро CSP

Выберите «Пуск» > «Панель управления» > «КриптоПро CSP». Перейдите на вкладку «Сервис» и кликните по кнопке «Скопировать».

В окне «Копирование контейнера закрытого ключа» нажмите на кнопку «Обзор».

Выберите контейнер, который необходимо скопировать, и кликните по кнопке «Ок», затем «Далее». Если вы копируете с рутокена, то появится окно ввода, в котором следует указать pin-код. Если вы не меняли pin-код на носителе, стандартный pin-код — 12345678.

Придумайте и укажите вручную имя для нового контейнера. В названии контейнера допускается русская раскладка и пробелы. Затем кликните «Готово».

В окне «Вставьте чистый ключевой носитель» выберите носитель, на который будет помещен новый контейнер.

На новый контейнер будет предложено установить пароль. Рекомендуем установить такой пароль, чтобы вам было легко его запомнить, но посторонние не могли его угадать или подобрать. Если вы не хотите устанавливать пароль, можно оставить поле пустым и нажать «ОК».
Не храните пароль/pin-код в местах, к которым имеют доступ посторонние. В случае утери пароля/pin-кода использование контейнера станет невозможным.

Если вы копируете контейнер на смарт-карту ruToken, сообщение будет звучать иначе. В окне ввода укажите pin-код. Если вы не меняли pin-код на носителе, стандартный pin-код — 12345678.

После копирования система вернется на вкладку «Сервис» КриптоПро CSP. Копирование завершено. Если вы планируете использовать для работы в Экстерне новый ключевой контейнер, установите его через Крипто Про.

Экспорт PFX-файла и его установка

Экспорт сертификата с закрытым ключом

1. Откройте оснастку работы с сертификатами:

— Пуск → Все программы → КриптоПро → Сертификаты
либо
— ​Internet Explorer → Сервис → Свойства обозревателя → вкладка Содержание → Сертификаты.

2. Откройте сертификат, который нужно скопировать. На вкладке «Состав» нажмите «Копировать в файл».

3. В «Мастере экспорта сертификтов» нажмите «Далее» и выберите пункт «Да, экспортировать закрытый ключ». Нажмите «Далее».

4. На следующем этапе поставьте галочки у пунктов «Включить по возможности все сертификаты в путь сертификации» и «Экспортировать все расширенные свойства», остальные галочки необходимо убрать. Нажмите «Далее».

5. Обязательно задайте пароль для экспортируемого файла. Данный пароль не рекомендуется сообщать по электронной почте. Нажмите «Далее».

6. Укажите имя файла, выберите путь сохранения и нажмите «Далее», затем нажмите «Готово».

7. Экспортируйте открытый ключ сертификата (см. Экспорт открытого ключа).

8. Заархивируйте полученные файлы форматов .pfx и .cer.

Установка сертификата с закрытым ключом

1. Откройте .pfx файл. Сразу запустится «Мастер импорта сертификатов».

2. Укажите хранилище «Текущий пользователь» и нажмите «Далее», затем снова «Далее».

3. Введите пароль, который указывали при экспорте и поставьте галочку на пункте «Пометить этот ключ как экспортируемый…», иначе наче контейнер нельзя будет скопировать в дальнейшем. Нажмите «Далее».

4. Выберите пункт «Поместить все сертификаты в следующее хранилище», нажмите на кнопку «Обзор», выберите «Личное» и нажмите на кнопку «ОК». Нажмите «Далее», а затем «Готово».

5. В окне КриптоПро выберите носитель, на который хотите сохранить контейнер. При необходимости задайте пароль.
6. Для корректной работы сертификата со встроенной лицензией переустановите сертификат в контейнер (см. Как установить личный сертификат в КриптоПро).

Копирование контейнера из реестра другого пользователя

1. Необходимо найти ветку реестра с нужным контейнером. Ветки реестра, в которых может быть контейнер закрытого ключа:

2. После того, как нашли нужную ветку, нажмите правой кнопкой мыши на ветку с контейнером и выберите «Экспортировать».

3. Введите имя файла и нажмите на кнопку «Сохранить».

4. Скопируйте файл на тот компьютер, где будете работать с электронной подписью обычными средствами Windows.

5. Пройдите диагностику на сайте https://help.kontur.ru .

6. Как диагностика закончится, нажмите на ссылку «Показать результаты».

7. В списке результатов выберите «Информация о Windows». Скопируйте оттуда SID текущего пользователя.

8. Откройте экспортированный файл реестра с помощью «Блокнота».

9. Замените SID пользователя на скопированный ранее.

10. Сохраните изменения и закройте файл.

12. Снова нажмите на файл правой кнопкой мыши и выберите «Слияние». В появившемся окне нажмите «Да».

Должно появиться сообщение о том, что данные успешно внесены в реестр. Нажмите «ОК».
Если появляется сообщение «Ошибка при доступе к реестру», необходимо еще раз проверить все пути в файле на корректность. Также проверьте, чтобы в пути не было лишних пробелов, знаков.

13. После того, как данные будут внесены в реестр, необходимо вручную установить сертификат (см. Как установить личный сертификат).