Приветствую всех, кто заглянул.
В этой теме я бы хотел поделиться своим опытом приобретения цифрового сертификата.
Подобные темы уже поднимались:
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 года. Именно тот, который я хотел.
Вот и все, собственно.
Благодарю за внимание !
У меня другой вопрос к знатокам — я частное лицо, но хочу сертификат на свое бизнес имя.
Т.е. вместо Васи Пупкина будет название сайта SuperCDEjector.com
Такое возможно без оформления ИП, ООО и пр. ?
И еще: действительно все требуют DUNS-номер, офис, представительство в США и т.п?
Здравствуйте, x64, Вы писали:
x64>Мне больше интересно, что за драйвер и в составе какого продукта ты собрался распространять? Если это не секрет, конечно.
Не секрет. Программа — это развитие темы родительского контроля. Основная задача — защита детей от
вредной информации в интернете, от чрезмерного увлечения играми, сидения в социальных сетях и чатах.
Главные "фишки": высокая [ почти тотальная
] степень контроля над компьютером ребенка, наличие
средств, позволяющих распознавать опасность на ранних стадиях (например, анализ переписки в чате),
различные образовательные и поощрительные акции для ребенка (конкретно сказать не могу, это в самом деле
коммерческая тайна), ну и основное — удаленное управление функциями программы через веб-панель.
В этой системе задействовано несколько драйверов, в числе которых TDI-фильтр (ну куда же я без него),
драйвер контроля за процессами, фильтрующий драйвер класса клавиатуры и кое-что еще.
Но для этого продукта контора, на которую я работаю, уже приобрела сертификат от VeriSign и
релизные версии программы будут подписываться только им.
А я приобрел сертификат для личных нужд, просто для того, чтобы иметь возможность запускать
самописные драйвера на своих рабочих машинах, не прибегая к F8/DebugMode.
У меня поднакопилось несколько "примочек", работающих в kernel mode, и руки давно чесались
подписать их нормально и расстаться с извращениями. Достало уже, честно говоря.
Хотя вот тут я был несколько иного мнения —
http://rsdn.ru/forum/asm/4226004.aspxАвтор: okman
Дата: 08.04.11
Возможно, одна из этих примочек со временем вырастет в полноценный коммерческий проект.
Еще бывает ситуация, когда нужно быстро сделать и продемонстрировать заказчику некий прототип,
при этом не утруждая его объяснениями, что и где настроить, чтобы запустить 64-битную систему в
тестовом режиме загрузки. Да и "Verified Publisher" тоже немного согревает душу.