Not a kernel guy

… in the Windows kernel team

Friday, January 5, 2007

Цифровая подпись ядерного кода в Vista.

64-х битные версии Vista требуют, чтобы весь код, выполняемый в режиме ядра, был подписан в обязательном порядке. Система просто отказывается загружать неподписанные драйвера. Для 32-х битных версий требования не такие жесткие, тем не менее, Microsoft рекомендует производителям подписывать и 32-х битные версии драйверов. Очевидно, что со временем это требование станет обязательным и для 32-х битных систем. Кроме того, наличие неподписанных драйверов в системе может влиять на возможность проигрывания HD контента (HD-DVD, Blue Ray & Co.).

Не смотря на все плюсы (с точки зрения безопасности) обязательного подписывания ядерного кода, есть и довольно большой минус – стоимость сертификата и сложность его получения. Причем, если сложность получения сертификата на самом деле миф, то стоимость сертификата может быть значительной для небольшой компании или индивидуального разработчика. Я вполне могу себе представить проблемы, с которыми столкнется разработчик, объясняя руководству, зачем нужно платить за килобайт-другой цифр и букв.

Существует два способа обойтись без “настоящего” сертификата во время разработки драйвера. Первый использовать опцию “Disable Driver Signature Enforcement” во время загрузки системы.

Disable Driver Signature Enforcement

Неудобство состоит в том, что эту опцию нужно вручную выбирать при каждой загрузке системы. Естественно, что это “неудобство” создано намеренно, иначе какой прок в такой системе защиты?

Второй способ заключается в создании тестового self-signed сертификата. Такой сертификат можно использовать для подписывания драйверов в процессе тестирования, однако он не позволяет подписывать драйвера, поставляемые конечным пользователям. Описание процесса создания и установки тестового сертификата, а также пошаговое описание процесса подписывания драйвера можно найти здесь: Kernel-Mode Code Signing Walkthrough.

Posted at 10:43 am •

RSS feed | Trackback URI

5 Comments »

Comment by Тэлан — January 5, 2007 @ 11:12 am

ИМХО в Висте уже и так слишком много наворотов…. В плане сабжа текущего поста и “A Cost Analysis of Windows Vista Content Protection”. Всё это конечно хорошо, всё ведёт к легальности, но часто хороший вещи выпускают малые производители… и им такого рода навороты точно не порадуют… всё это жутко печально…

 
Comment by Not a kernel guy — January 5, 2007 @ 7:39 pm

Security is hard (c).

 
Comment by Anonymous — January 5, 2007 @ 11:44 pm

Высокая стоимось сертификатов тоже, по сути, миф. Точнее сказать - смотря у кого брать. Verisign может себе позволить продавать сертификаты по $700 в год, так как он лидер рынка. Большой компании неважно сколько платить за него, ведь он годится абосолютно для любого проекта, а не только для конкретного приложения. Следом идет игрок номер 2 - Thawte. И цены уже гораздо скромнее - $199 в год. Thawte это для тех кто не хочет платить слишком много Verisign но хочет получить сертификат от “хорошо известного бренда”. И наконец, мой выбор - $179 за два года. Возможно, если Вы еще более жадные чем я то найдете и дешевле.

Все вышесказанное относится к code sign сертификатам. И еще. Покупая сертификат для подписывания драйверов к Vista удостовертесь, что провайдер в списке тех root-ов которым Vista kernel доверяет.

 
Comment by Not a kernel guy — January 6, 2007 @ 11:15 am

Интересно. У меня вдруг проснулся интерес к покупке сертификата. Ведь помимо подписывания драйверов есть еще такая штука как Windows Error Reporting, где собираются все crash dumps, посланные пользователями вашего приложения. И для получения доступа к ним нужен именно code sign сертификат…

 
Comment by Alexey — December 27, 2007 @ 12:45 am

Недавно Джон Роббинс тоже озаботился проблемой получения .

 

Your Comment (smaller | larger)

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress