Придбання цифрового сертифіката для підпису драйвера (приватна особа) - Форум з інформаційного

Very kind Developer

Автор:Казакевич Олег.

Вітаю всіх, хто заглянув.

У цій темі я хотів би поділитися своїм досвідом придбання цифрового сертифіката. Подібні теми вже піднімалися:

Тому буду радий, якщо наведена інформація для когось буде корисною.

А потрібно небагато - отримати цифровий сертифікат на приватну особу, і щоб цим сертифікатом можна було підписувати не тільки 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. Скан паспорта (остання сторінка) в електронному вигляді.

Ідемо на www.globalsign.com. Найкраще операції виконувати з-під браузера FireFox, в інших були помічені глюки різного ступеня дива. Цій же рекомендації радять слідувати і на GlobalSign.

На сторінці "Product Details" вписуємо "campaign code" у відповідне поле та тиснемо "Redeem Code" - буде виставлена ​​правильна ціна.

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

Далі слідує "Payment Details" - тобто, власне, оплата. Вказуємо всі реквізити, точнісінько як на пластиковій карті, у тому числі й поля "Statement" - вся потрібна інформація знаходиться на самій карті, якщо хтось не в курсі.

УВАГА! Отримання сертифіката — разова процедура, її слід проводити обережно, щоб не "профукати" сертифікат якоюсь ненавмисною дією, після чого, ймовірно, чекають певні розгляди з техпідтримкою. Суть у тому, що public-і private-ключі генеруються одноразово і тільки в той момент, коли ви бажаєте забрати сертифікат. Після цього сторінка знищується, тому ніхто, крім вас, не зможе отримати ключі. І я наполегливо рекомендую використовувати лише FireFox.

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

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

Ось і все, власне. Дякую за увагу!