Сертификат для подписи драйвера, частное лицо.
От: okman Беларусь  
Дата: 31.07.12 20:43
Оценка: 258 (38)
Приветствую всех, кто заглянул.

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

http://rsdn.ru/forum/asm/3634499.aspx
Автор: Евгений Музыченко
Дата: 11.12.09

http://rsdn.ru/forum/shareware/4306500.aspx
Автор: x_art
Дата: 11.06.11

http://rsdn.ru/forum/asm/4343915.aspx
Автор: okman
Дата: 15.07.11

http://rsdn.ru/forum/shareware/4269597.aspx
Автор: De-Bugger
Дата: 13.05.11

http://rsdn.ru/forum/shareware/4517008.aspx
Автор: acDev
Дата: 29.11.11

http://rsdn.ru/forum/shareware/3477809.aspx
Автор: pfranz
Дата: 23.07.09


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

Итак, ...

Что нужно

А нужно немного — получить цифровой сертификат на частное лицо, и чтобы этим сертификатом
можно было подписывать не только exe и dll, но и драйверы на 64-битных Vista и выше.
Именно частное лицо. Не на контору, ни даже на ИП, а на самого обычного "Васю Пупкина".

Предыстория

До недавнего времени я уже был наслышан про то, что сертификаты продают далеко не каждому,
только на компанию, нужен DUNS-номер, офис, представительство в США и т.п., а простому
смертному, тем более из такой страны как Беларусь, вообще рассчитывать не на что.

Разведка

Разведку я начал со страницы, где Microsoft публикует кросс-сертификаты для подписи драйверов.
Как известно, каждому сертификату от вендора соответствует строго определенный кросс-сертификат
от Microsoft и они оба должны быть включены в подпись, чтобы драйвер мог запуститься на
нужных системах (имеется в виду, понятное дело, системы от 64-битной Vista и выше).
Вот эта страница: http://msdn.microsoft.com/en-us/library/windows/hardware/gg487315.aspx

Далее я провел небольшое онлайн-турне по сайтам компаний, приведенных на этой странице, кое-где
обращался в саппорт, задавал вопросы и т.д. В общем, у меня сформировалось ощущение, что "живы"
из них только VeriSign и GlobalSign, остальные то ли уже не занимаются выпуском Authenticode-
сертификатов, то ли действуют только в ограниченном географически регионе, то ли еще что-то.

Вариант с VeriSign сразу отпадает, так как их сертификаты для индивидуалов не позволяют подписывать
драйверы, а другие выдают лишь на контору. Остается GlobalSign. И хотя я не раз слышал про их
невнятный саппорт, и про всякие проблемы, и про отношение к странам третьего мира, решил рискнуть.

Как известно, GlobalSign продает Authenticode-сертификаты двух типов — на контору (Software Vendors &
Organizations, $229 в год) и на индивидуальных разработчиков (Individual Developers, $129 в год).
То, что сертификатами первого типа можно подписывать драйверы, мне было известно, но на счет второго
оставались сильные сомнения, тем более, что ни в FAQ, ни на форумах я подробного разъяснения не нашел.

Задал вопрос в техподдержку — сказали да, сертификаты для индивидуалов позволяют подписывать драйверы
на Vista-64. Но мне этого показалось мало. Я был в курсе, что GlobalSign есть главный корневой
сертификат, называется он GlobalSign Root CA (1998-2028), и для него Microsoft выпустила нужный
кросс, позволяющий использовать сертификаты, выданные GlobalSign Root CA для подписи драйверов.
Я задал еще один вопрос в техподдержку — можно ли при заказе сертификата для индивидуального
разработчика выбрать этот сертификат в качестве корневого. Мне ответили — да, с этим нет проблем.
На этом разведку можно было считать завершенной.

Подготовка

Для оформления заказа на GlobalSign понадобится:

1. Пластиковая карта типа Visa или Mastercard со счетом в долларах или евро. Я сделал себе самую
обычную дебетовую карту Visa Classic в самом обычном банке. Разумеется, не все пластиковые карты
позволяют рассчитываться в интернете. Например, Visa Electron в общем случае для этого не предназначена.

2. Скан паспорта (последняя страница) в электронном виде.

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

4. Заявление на получение сертификата, скан. Шаблон качать здесь:
https://www.globalsign.com/resources/code-signing-for-individuals-registration-form.pdf
Обращаю внимание — имя, фамилию и прочие данные нужно указывать точь-в-точь как на странице заказа
(будет описано ниже) и в паспортных данных. Например, мое имя по-английски правильно было бы писать
как Oleg, однако по паспорту я Aleh — так везде и указывал. Вся информация указывается латиницей,
телефон можно указать в международном формате. Поле "Certificate OrderID" (номер заказа) заполняется
только после процедуры онлайн-покупки — тогда этот самый OrderID и будет присвоен. "Applicant's
Signature" — это поле для подписи от руки. То есть, заполняем форму, распечатываем, берем ручку,
ставим подпись и делаем скан. Все введенные поля лучше хорошенько перепроверить.

Покупка

Идем на www.globalsign.com. Лучше все операции выполнять из-под браузера FireFox, в других были
замечены глюки разной степени странности. Этой же рекомендации советуют следовать и на GlobalSign.

Идем в Products/Code Signing, жмем "Buy Now" напротив "Individual Developers". Сохраняем "campaign code",
показанный на первой странице — это нужно для правильного формирования цены, без использования
данного кода вам будет выставлен счет на неправильную сумму. Вот как комментирует этот момент
один из работников техподдержки GlobalSign:
"We are running a promotion in code signing for individuals to make the price $129
Please go to http://www.globalsign.eu/code-signing/code-signing-for-individual-developers.html
And use this discount code
USD – CAD1TH4EL3PKMHDF
GBP – CAPKG9H8X7A5ZBC1
EUR – CALSFB0E1WRWTPD4".

На странице "Account Setup" внимательно и аккуратно заполняем все нужные поля формы. В "Organization Name"
вписываем свое полное имя, как в паспорте. Например, Ivanov Ivan. Указываем свой E-mail, а также логин и
пароль для доступа к будущему аккаунту на сайте GlobalSign.

На странице "Product Details" вписываем "campaign code" в соответствующее поле и жмем "Redeem Code" —
будет выставлена правильная цена.

На странице "Certificate Identity Details" ставим галочку в "Individuals" и задаем так называемый
пикап-пароль (pickup password). Этот пароль вам понадобится позже, когда вы будете забирать сертификат.

Дальше следует "Payment Details" — то есть, собственно, оплата. Указываем все реквизиты, точь-в-точь
как на пластиковой карте, в том числе и поля "Statement" — вся нужная информация находится на самой
карте, если кто не в курсе.

Если все пройдет успешно, а иначе и быть не может, данному заказу будет присвоен определенный OrderID.
Соответствующее электронное письмо придет на почту. Этот OrderID следует вписать в заявление на
получение сертификата (см. выше) и все это, вместе со сканами паспорта и счета за телефон, отправить на
электронный адрес vetting-us@globalsign.com. Если верить инструкциям, наличие данных документов
существенно ускоряет процесс.

Кроме OrderID, для вас в системе GlobalSign будет создан аккаунт с именем вида PARxxxxxx_yyyyyyyyyy,
где xxxxxx — некое число, а yyyyyyyyyy — логин, который вы указывали при заказе сертификата.
Например, PAR123456_sashka1980. С этими данными можно будет заходить в систему и управлять своими
заказами.

Ожидание

Следует учесть, что офис GlobalSign находится в таком часовом поясе, что ответа на письмо, отправленное
утром, можно ожидать не раньше вечера. За все время, которое я занимался сертификатом, со мной, помимо
техподдержки, контактировало два человека — первый интересовался, почему я не завершил один из заказов
(я тогда забыл про campaign code и недоумевал, почему цена на странице заказа указана $229, хотя на
главной "обещали" $129), второй непосредственно обрабатывал сам заказ. Оба были предельно корректными,
охотно давали разъяснения и направляли мои действия в нужное русло. Я ожидал, что мне, возможно, позвонят
по телефону для проверки и был в ужасе, потому что разговорный английский у меня просто жуткий. Но не
позвонили. В итоге уже через сутки мне пришло электронное письмо с приятным названием: "Certificate
Download Ready".

Получение сертификата

ВНИМАНИЕ!
Получение сертификата — разовая процедура, ее следует проводить осторожно, чтобы не "профукать"
сертификат каким-нибудь нечаянным действием, после чего, вероятно, предстоят определенные разбирательства с
техподдержкой. Суть в том, что public- и private-ключи генерируются однократно и только в тот момент,
когда вы желаете забрать сертификат. После этого страница уничтожается, так что никто, кроме вас, не
сможет получить ключи. И я настойчиво рекомендую использовать только FireFox.

Итак, в электронном письме вам пришлют ссылку на временную страницу, где будут сгенерированы ключи и
откуда вы сможете импортировать их в браузер. Там ничего сложного, просто нужно будет нажать на пару
больших кнопок. Здесь понадобится пикап-пароль, созданный при заказе сертификата (см. выше). Перед тем,
как забрать сертификат с этой страницы, зайдите в настройки FireFox, на вкладку "Защита", и включите
мастер-пароль. Без этого шага сертификат будет экспортироваться из браузера без приватного ключа, что в
контексте рассматриваемого вопроса бессмысленно. Вот и все. После процедуры импорта сертификата в браузер
можно зайти в настройки FireFox, на вкладку "Дополнительно", открыть список сертификатов, найти среди
них свой и выполнить его экспорт в файл. Я, к примеру, получил файл с расширением .p12.

Свойства

Данный сертификат от GlobalSign, как я и ожидал, обладает всеми необходимыми и привлекательными свойствами.
Во-первых, его "узнают" все без исключения "голые" системы от XP до Windows 8 Release Preview; не требуется
задействовать ни интернет, ни службы обновления сертификатов. Во-вторых, подпись драйвера тоже проходит на
отлично, как и проверка утилитой signtool (signtool.exe verify /kp), надо только не забыть про кросс-
сертификат. Я уже опробовал данный серт на разных 64-битных системах от Vista и выше — там с запуском
драйвера все в полном порядке. В-третьих, в корне цепочки доверия тот самый GlobalSign Root CA, валидный
до 2028 года. Именно тот, который я хотел.

Вот и все, собственно.
Благодарю за внимание !
сертификат подпись драйвер GlobalSign
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.