<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Vadims Podans's blog - Security</title>
    <link>http://www.sysadmins.lv/</link>
    <description>PowerShell powered</description>
    <image>
      <url>http://www.sysadmins.lv/images/imgusr/bilde.jpg</url>
      <title>Vadims Podans's blog - Security</title>
      <link>http://www.sysadmins.lv/</link>
    </image>
    <language>en-us</language>
    <copyright>Vadims Podāns</copyright>
    <lastBuildDate>Mon, 23 Aug 2010 18:09:10 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>vpodans@sysadmins.lv</managingEditor>
    <webMaster>vpodans@sysadmins.lv</webMaster>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b0268412-895a-43b6-ba56-ce8f233a123f</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b0268412-895a-43b6-ba56-ce8f233a123f.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b0268412-895a-43b6-ba56-ce8f233a123f.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b0268412-895a-43b6-ba56-ce8f233a123f</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Очередной баг в AppLocker (обновление)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b0268412-895a-43b6-ba56-ce8f233a123f.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b0268412-895a-43b6-ba56-ce8f233a123f.aspx</link>
      <pubDate>Mon, 23 Aug 2010 18:09:10 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Некоторое время я описал баг в AppLocker'е, который заключается в некорректной обработке правил пути, если путь содержит неанглийские буквы (подробнее см. &lt;a href="http://www.sysadmins.lv/PermaLink,guid,93560d90-3398-4fdf-bdf4-0a6e479029fe.aspx"&gt;Очередной баг в AppLocker&lt;/a&gt;). Как я уже говорил, я открыл кейс в саппорте и обещал отписаться, если будут какие-то новости. И я выполняю своё обещание публикацией официального ответа Microsoft:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;We've investigated the issue and it appears to be a problem in the implementation of case-insensitive path comparison for characters outside the ASCII range. Fortunately it seems there is a workaround for the time being. If, in Local Security Policy, one specifies paths in all-uppercase characters, including uppercasing any non-ASCII characters as appropriate, then the rule will match properly. Concretely, for your example 'Mapīte', putting that string with lowercase ī in a rule's path in Local Security Policy will not work; however putting the string 'MAPĪTE' with uppercase Ī does seem to work.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Т.е. если путь содержит буквы верхней таблицы ASCII (символы 128 и выше), путь следует прописывать заглавными буквами. Я уже собрался наваять костыль на пошике, который будет делать это за меня (за счёт использования метода String.ToUpper()), но очень быстро обломался, поскольку консоль пошика не способна отображать диактрические знаки и скопировать правильный путь из консоли не удастся и всю работу по озаглавливанию букв придётся делать вручную.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b0268412-895a-43b6-ba56-ce8f233a123f"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b0268412-895a-43b6-ba56-ce8f233a123f.aspx</comments>
      <category>Security</category>
      <category>Security / AppLocker</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=49b6e985-5e11-4e2b-8641-7adc32ad825c</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,49b6e985-5e11-4e2b-8641-7adc32ad825c.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,49b6e985-5e11-4e2b-8641-7adc32ad825c.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=49b6e985-5e11-4e2b-8641-7adc32ad825c</wfw:commentRss>
      <title>Как правильно задавать имя сертификата при использовании расширения Subject Alternative Name (SAN)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,49b6e985-5e11-4e2b-8641-7adc32ad825c.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,49b6e985-5e11-4e2b-8641-7adc32ad825c.aspx</link>
      <pubDate>Wed, 18 Aug 2010 18:28:47 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Достаточно часто администраторы занимаются выпуском сертификатов с использованием нескольких имён. Например, когда нужно привязать один сертификат к нескольким именам: mail.company.com и owa.compny.com. Однако поле &lt;strong&gt;Subject&lt;/strong&gt; может содержать только одно имя. Для разрешения этой проблемы используется расширение &lt;em&gt;Subject Alternative Name&lt;/em&gt; (&lt;strong&gt;SAN&lt;/strong&gt;). В этом расширении вы можете использовать сколько угодно дополнительных имён для сертификата.&lt;/p&gt;  &lt;p&gt;Но как правильно же оформить несколько имён в сертификате на примере mail.company.com и owa.company.com? Здесь варианта всего 2:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Использовать поле Subject и расширение SAN&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Данный способ используется чаще для внешних сертификатов. Поле Subject заполняется следующим образом (красным выделены обязательные компоненты):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;CN = mail.company.com&lt;/font&gt;      &lt;br /&gt;OU = &amp;lt;название подразделения&amp;gt;      &lt;br /&gt;OU = &amp;lt;ещё какое-то название подразделения&amp;gt;      &lt;br /&gt;O = &amp;lt;название организации&amp;gt;      &lt;br /&gt;L = &amp;lt;местоположение компании&amp;gt;      &lt;br /&gt;C = &amp;lt;код страны, где расположена компания&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Т.е. включается основное имя сертификата (по правде говоря, при использовании SAN, понятие основного имени отсутствует, т.к. все имена считаются равноценными. Здесь следует указывать имя, которое будет использоваться чаще всего приложениями, неподдерживающими расширение SAN) и опционально можно задать дополнительные DN суффиксы, отражающие принадлежность сертификата. И расширение SAN заполняется следующим образом:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;DNS Name=mail.company.com       &lt;br /&gt;DNS Name=owa.company.com&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Как видите, имя из Subject продублировано в SAN. Дело в том, что если в сертификате есть расширение SAN и приложение умеет его обрабатывать, приложение как правило настраивается только на проверку расширения SAN и в Subject они не заглядывают. Но это не всегда так. Иногда приложение смотрит и в Subject и в SAN. В таком случае имена дублировать не обязательно. Но в целях обеспечения совместимости следует ВСЕГДА дублировать имя из Subject в расширении SAN.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Использовать только расширение SAN&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Этот способ редко применяется во внешних сертификатах, а только внутренних. В этом случае поле Subject не заполняется совсем и оставляется пустым. А расширение SAN будет включать все необходимые имена:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;DNS Name=mail.company.com       &lt;br /&gt;DNS Name=owa.company.com&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Такая форма заполнения поддерживается в Internet PKI и описана в &lt;a href="http://tools.ietf.org/html/rfc5280"&gt;RFC 5280&lt;/a&gt;. Согласно этому RFC, если поле Subject не определено (пусто), имя для сертификата выбирается из расширения SAN, а само расширение помечается как критичное (см. &lt;a href="http://tools.ietf.org/html/rfc5280#section-4.2.1.6"&gt;RFC 5280 §4.2.1.6&lt;/a&gt;). Вот примерные пруфпики, как это выглядит в жизни:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="General tab view" border="0" alt="General tab view" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SubjectSubjectAlternativeNameSAN_10F48/general_3010a80d-def4-43a1-89ab-03801f8d81ce.png" width="418" height="136" /&gt; &lt;/p&gt;  &lt;p&gt;на вкладке General имя формируется либо из первого имени в расширении SAN или из имени используемого конкретным приложением (например, при просмотре из браузера) и котрое перечислено в расширении SAN.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Empty Subject field" border="0" alt="Empty Subject field" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SubjectSubjectAlternativeNameSAN_10F48/emptysubject_bfe1f9e3-ef0d-401d-8a83-c837f984944e.png" width="417" height="316" /&gt; &lt;/p&gt;  &lt;p&gt;Здесь продемонстрировано пустое поле Subject.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Critical SAN Extension" border="0" alt="Critical SAN Extension" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SubjectSubjectAlternativeNameSAN_10F48/criticalsan_9e85bd5e-171e-4597-a99c-9bd2aabd27a1.png" width="416" height="337" /&gt; &lt;/p&gt;  &lt;p&gt;И перечисление необходимых имён в расширении SAN. Критичность расширения определяется по наличию жёлтого треугольничка и восклицательного знака.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#008000"&gt;На заметку&lt;/font&gt;&lt;/strong&gt;: что такое критичное расширение (critical extension)? Это просто расширение, которое приложение должно проверить в обязательном порядке. Если приложение видит такое расширение, приложение должно уметь его обработать и понять значение в этом расширении. Если приложение не знает, что делать с этим расширением или приложение не может разобрать значение этого расширения, приложение обязано отклонить данный сертификат. Более подробно о порядке поведения приложения.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; хоть и заявляется, что приложение должно отклонить сертификат, если значение расширения непонятно, это не в полной мере относится к расширению SAN. Приложение не обязано поддерживать все формы SAN, а может поддерживать только некоторые формы, например, только DNS Name. Но если поддерживаемая форма не может быть распознана, сертификат должен быть отклонён.&lt;/p&gt;  &lt;p&gt;Поскольку расширение SAN является единственным средством идентификации имени сертификата, вполне логично ожидать, что это расширение будет помечено как критичное и обязательное для обработки приложением.&lt;/p&gt;  &lt;p&gt;Какой способ из двух выбрать? А какой считаете более приемлемым. Если это сертификат внешнего веб-сервера, целесообразно использовать первый вариант, поскольку при помощи DN суффиксов можно конкретизировать принадлежность сертификата к вашей компании. А так же если предполагается доступ из приложений неподдерживающих расширение SAN. Это не обязательно компьютерные приложения, это могут быть приложения мобильных устройств. В целях избежания чрезмерного пиара VeriSign'a в моём бложике, представляю образцово-показательный сертификат выполненный первым способом на сайте Thawte: &lt;a title="https://www.thawte.com/" href="https://www.thawte.com/"&gt;https://www.thawte.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Для использования внутри организации можно использовать и второй вариант, с пустым Subject. Например, для логонных сертификатов смарт-карт. Контроллеры домена вообще не смотрят на Subject логонного сертификата, а смотрят только в SAN на предмет наличия UPN в расширении.&lt;/p&gt;  &lt;p&gt;Что бы почитать?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://tools.ietf.org/html/rfc5280"&gt;RFC 5280&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://en-us.sysadmins.lv/Lists/Posts/Post.aspx?ID=20"&gt;Web server certificate enrollment with SAN extension&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=49b6e985-5e11-4e2b-8641-7adc32ad825c"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,49b6e985-5e11-4e2b-8641-7adc32ad825c.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=58b55593-f387-4f38-84f0-f8857a04cb49</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,58b55593-f387-4f38-84f0-f8857a04cb49.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,58b55593-f387-4f38-84f0-f8857a04cb49.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=58b55593-f387-4f38-84f0-f8857a04cb49</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <title>Remote Desktop Client 7 и revocation checking</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,58b55593-f387-4f38-84f0-f8857a04cb49.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,58b55593-f387-4f38-84f0-f8857a04cb49.aspx</link>
      <pubDate>Sun, 08 Aug 2010 14:34:50 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;В различных интернетах всё ещё задают (и не мало) вопросы про проблемы подключения через remote desktop к серверу терминалов защищённому SSL сертификатом. При подключении пользователи видят вот такое:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="A revocation check could not be performed for the certificate" border="0" alt="A revocation check could not be performed for the certificate" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/RDC7SSL_9549/rdc_crl_error_410241a5-a6c9-4a1d-9dad-9a69ad8ed167.png" width="400" height="369" /&gt; &lt;/p&gt;  &lt;p&gt;И сообщение: &lt;strong&gt;A revocation check could not be performed for the certificate&lt;/strong&gt;. Или в русском варианте — &lt;strong&gt;не удалось проверить не был ли отозван этот сертификат&lt;/strong&gt;. А если нажать на View certificate… выясняется, что всё в порядке, сертификат доверен и цепочка построена правильно. Что это такое и как с этим жить?&lt;/p&gt;  &lt;p&gt;Причины здесь может быть 2:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Корневой сертификат цепочки сертификатов не установлен в Trusted Root CAs в &lt;strong&gt;*компьютерном*&lt;/strong&gt; хранилище сертификатов;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Эта проблема встречается примерно в 60-70% случаев появления этой ошибки. Многие привыкли устанавливать корневые сертификаты по двойному клику в пользовательское хранилище. Но, новый mstsc.exe проверяет цепочку сертификатов так, чтобы она заканчивалась на доверенном корневом сертификате установленном в компьютерном хранилище. Поскольку сертификат недоверенный, certificate chaining engine даже и не пытается проверить что-то на отзыв. Как установить сертификат туда:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Войдите в систему с правами локального администратора.&lt;/li&gt;    &lt;li&gt;На рабочем столе нажмите &lt;strong&gt;Start&lt;/strong&gt; и &lt;strong&gt;Run…&lt;/strong&gt; (в случае с Windows Vista/7 можете выделить поле &lt;em&gt;Search programs and files&lt;/em&gt;) и в окне наберите &lt;strong&gt;MMC&lt;/strong&gt;. Если появится окно &lt;strong&gt;UAC&lt;/strong&gt;, подтвердите выполнение операции или введите пароль администратора.&lt;/li&gt;    &lt;li&gt;В открывшейся консоли нажмите &lt;strong&gt;File&lt;/strong&gt; и &lt;strong&gt;Add/Remove Snap-in&lt;/strong&gt;.&lt;/li&gt;    &lt;li&gt;В списке выделите &lt;strong&gt;Certificates&lt;/strong&gt; и нажмите &lt;strong&gt;Add&lt;/strong&gt;. В появившемся диалоговом окне переставьте переключатель в &lt;strong&gt;Computer account&lt;/strong&gt; и нажмите &lt;strong&gt;Next&lt;/strong&gt;.&lt;/li&gt;    &lt;li&gt;В следующем окне нажмите &lt;strong&gt;Finish&lt;/strong&gt;.&lt;/li&gt;    &lt;li&gt;В расскрывшейся оснастке &lt;strong&gt;Certificates&lt;/strong&gt; выделите папку &lt;strong&gt;Trusted Root CAs&lt;/strong&gt;, нажмите правой кнопкой и выберите &lt;strong&gt;All Tasks –&amp;gt; Import&lt;/strong&gt;. Следуйте инструкциям мастера для добавления корневого сертификата в компьютерное хранилище.&lt;/li&gt;    &lt;li&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;ul&gt;   &lt;li&gt;Какие-то CRL'ы в цепочке недоступны.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Когда сертификат выдаётся внутренним CA, но пользователи подключаются к серверу через интернет (например из дома подключаются к RemoteApp по https), очень часто файлы сертификатов и CRL'ы издающего CA недоступны из интернета. В данном случае необходимо связаться с системным администратором, чтобы он переконфигурировал расширения CDP так, чтобы CRL'ы были доступны и из интернета.&lt;/p&gt;  &lt;p&gt;Что бы почитать?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx"&gt;Certificate Chaining Engine — как это работает&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,16ffa3d3-8449-4c16-9704-5d089b6a32e2.aspx"&gt;Certificate chaining engine в PowerShell (часть 2)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx"&gt;CRL Distribution Points и Authority Information Access&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,7863aaeb-ca0f-4b51-8406-b9821179edd9.aspx"&gt;Планирование расширений CDP и AIA&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=58b55593-f387-4f38-84f0-f8857a04cb49"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,58b55593-f387-4f38-84f0-f8857a04cb49.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Tips &amp; Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b44173d4-e0ef-45cf-af6b-c6c57dfa3cca</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b44173d4-e0ef-45cf-af6b-c6c57dfa3cca.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b44173d4-e0ef-45cf-af6b-c6c57dfa3cca.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b44173d4-e0ef-45cf-af6b-c6c57dfa3cca</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Будущее AppLocker'a</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b44173d4-e0ef-45cf-af6b-c6c57dfa3cca.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b44173d4-e0ef-45cf-af6b-c6c57dfa3cca.aspx</link>
      <pubDate>Sun, 25 Jul 2010 12:03:52 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Уже прошёл почти год моего опыта использования AppLocker'а в домашних, тестовых и производстенных условиях и я хотел бы поделиться своими впечатлениями об этом со стороны перспективы использования этой технологии. К сожалению (а может и к счастью?) эту технологию постиг эпик фейл. И это даже при весьма удачной технической реализацией, которая более удобная в управлении, чем SRP и более надёжная. Хотя и с известными &lt;a href="http://www.sysadmins.lv/PermaLink,guid,93560d90-3398-4fdf-bdf4-0a6e479029fe.aspx"&gt;багами&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Microsoft создала потребительскую технологию, актуальную для всех секторов рынка, но давать её решила только VIP'ам, а остальным только пускать слюнки. Я говорю о том, что AppLocker доступен только в редакциях Ultimate и Enterprise десктопной Windows 7. Этим самым из целевой аудитории отваливается домашний сектор. В реальной жизни кроме пиратов мало кто приобретает компьютер с Windows 7 Ultimate. Чаще это ноутбуки с редакциями Home Basic/Premium, то же касается и обычных десктопов. Так же отваливается как минимум весь сектор Small Business и Medium тоже. SMB и средний бизнес тоже не будет приобретать Windows 7 Enterprise, а скорее будет покупать Professional, поскольку у Enterprise против Professional реальных преимуществ для этих секторов почти нет. А SMB — это основной рынок любой страны и по большому счёту он делает погоду на рынке. Да и крупные компании тоже особо тратиться на Enterprise не будут (хотя, Software Assurance им покрывает эти расходы). Иными словами, целевая аудитория этой технологии — средний (в меньшей степени) и крупный бизнес. Это маркетоЕдная составляющая проблемы.&lt;/p&gt;  &lt;p&gt;Другая проблема кроется в технической составляющей. При всех достоинствах, AppLocker имеет определённые недостатки, которые заключаются в ограниченном применении правил издателей (подробнее см.тут: &lt;a title="Встречаем – AppLocker!" href="http://www.sysadmins.lv/PermaLink,guid,37b74977-d937-4383-b41b-982eb287bc23.aspx"&gt;Встречаем – AppLocker!&lt;/a&gt;). Уж очень неоднозначно описываются правила издателей (а кто-нибудь пробовал строгие правила издатедей? Нет, а попробуйте и узнаете что это такое &lt;img alt=":)" src="/smilies/happy.gif"&gt;), из-за чего они могут обхватывать нежелательные сертификаты доверенного поставщика. И с этим бороться сложно. Хотя, кому как. Из-за этого более целесообразным является использование правила хеша, что в свою очередь доставляет головняка при обновлении исполняемых файлов, для которых создано правило хеша. Их каждый раз придётся пересчитывать и обновлять сами правила. Это не смертельно, но уже не так весело, как в вайтпеперах и уютненьких бложеках MVP-маркетоидов.&lt;/p&gt;  &lt;p&gt;Но наиболее глобальная проблема даже не в недостатках правил издателей или бага в правилах пути. Наиболее глобальная проблема кроется в интеграции AppLocker'а в существующую среду и крупный бизнес здесь страдает от этого сильнее, чем смалл бизнес. Это связано с тем, что в крупном бизнесе практически никогда не бывает сетей с установленной единственной версией ОС. Там обязательно присустствует парк ОС из разных поколений (начиная от Windows 2000/XP до Windows 7). AppLocker покрывает только малую часть из всего парка (только Windows 7 Enterprise). Для остальных приходится же использовать что-то другое. Обычно это Software Restriction Policies. И администраторам придётся создавать 2 набора политик: отдельно SRP для XP/Vista и отдельно AppLocker для Windows 7. То же самое относится и к редактированию политик. Если обновился какой-то файл, придётся обновлять политику SRP и AppLocker соответственно. Администраторам будет проще поддерживать одну политику, вместо двух. Плюс, правила сертификатов в SRP могут вносить негативный эффект в правила AppLocker'а. Хоть и заявляется, что если AppLocker включен, SRP будет игнорироваться системой, но запреты по правилам сертификатам будут перекрывать соответствующие разрешения в AppLocker'е. Это вызовет в свою очередь проблему планирования правил, чтобы грамотно создать правило в SRP и AppLocker'е и чтобы не наткнуться на подводный камень.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#008000"&gt;Вывод:&lt;/font&gt;&lt;/strong&gt; так какое же место в этой жизни уготовано для AppLocker? Я считаю, что это только терминальные сервера или фермы терминальных серверов, где AppLocker показывает явное преимущество. А так же тот небольшой кусочек домашнего сектора, где возможно использование AppLocker'а. В остальных случаях практического использования, AppLocker является нецелесообразным и неэффективным. Возможно в следующем поколении Windows (или через поколение) что-то изменится, но сейчас дела обстоят примерно таким образом.&lt;/p&gt;  &lt;p&gt;Но учитывая, что процент использования SRP по отношению к общему количеству инсталляций Windows XP/Vista/7/Server 2003/Server 2008/Server2008 R2 (видали, какой список ОС поддерживает SRP? &lt;img alt=":)" src="/smilies/happy.gif"&gt;) очень ничтожный, то процент использования AppLocker'а — вообще круглый ноль и можно сказать, что МС просто выкинул деньги на ветер, вложив их в разработку AppLocker'а.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b44173d4-e0ef-45cf-af6b-c6c57dfa3cca"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b44173d4-e0ef-45cf-af6b-c6c57dfa3cca.aspx</comments>
      <category>Security</category>
      <category>Security / AppLocker</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=93560d90-3398-4fdf-bdf4-0a6e479029fe</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,93560d90-3398-4fdf-bdf4-0a6e479029fe.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,93560d90-3398-4fdf-bdf4-0a6e479029fe.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=93560d90-3398-4fdf-bdf4-0a6e479029fe</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>Очередной баг в AppLocker</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,93560d90-3398-4fdf-bdf4-0a6e479029fe.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,93560d90-3398-4fdf-bdf4-0a6e479029fe.aspx</link>
      <pubDate>Sat, 24 Jul 2010 16:53:50 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Update 23.08.2010:&lt;/font&gt;&lt;/strong&gt; добавлен воркэраунд для обхода проблемы.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;Оговорюсь сразу, баг был обнаружен не мною, а кем-то с &lt;a href="http://social.technet.microsoft.com/Forums/en-US/windows7ru/thread/3a82bf1d-6035-41fb-b9a0-45f3a61da240" target="_blank"&gt;технетов&lt;/a&gt;. Но тем не менее я заинтересовался им. Баг состоит в том, что если в правиле пути сам путь содержит буквы неанглийского алфавита, правило просто напросто не применяется! И некоторые вводные данные:&lt;/p&gt;  &lt;p&gt;Подверженные ОС:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Windows 7 Ultimate/Enterprise (x86/x64)&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Windows Server 2008 R2 (все редакции)&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;И вот как его можно проверить:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;p&gt;Войдите в систему с правами локального администратора.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;На рабочем столе создайте папку с именем &lt;strong&gt;Папка&lt;/strong&gt;.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Скопируйте в эту папку любой .EXE файл.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Нажмите &lt;strong&gt;Start&lt;/strong&gt; и в поле &lt;em&gt;Search for programs or files&lt;/em&gt; введите &lt;strong&gt;Local Security Policy&lt;/strong&gt;. Вы должны увидеть значок редактора локальных политик и нажмите на него. Если появится запрос подтверждения &lt;strong&gt;User Account Control&lt;/strong&gt;, подтвердите операцию или введите пароль своей учётной записи.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;В раскрывшемся окне разверните секцию &lt;strong&gt;Application Control Policies&lt;/strong&gt;.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Выделите и разверните секцию &lt;strong&gt;AppLocker&lt;/strong&gt;.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Выберите секцию &lt;strong&gt;Executable rules&lt;/strong&gt;.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Нажмите правой кнопкой мыши на эту секцию и выберите &lt;strong&gt;Create Default Rules&lt;/strong&gt;. Этой операцией вы создадите правила по умолчанию, которые позволят запускать любые исполняемые файлы в %systemroot%, %programfiles% и разрешит запускать абсолютно всё встроенной учётной записи администратора.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Найдите это правило для встроенных администраторов и удалите его. Вот как выглядит правило, которое следует удалить:        &lt;br /&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image_c2628dd3f39c486b9d51834d1317bd0f_48723C39" border="0" alt="image_c2628dd3f39c486b9d51834d1317bd0f_48723C39" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/AppLocker_E654/image_c2628dd3f39c486b9d51834d1317bd0f_48723C39_60ca4598-eda8-4ea9-9cea-348501a4c58b.png" width="505" height="28" /&gt; &lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Теперь вы сможете запускать исполняемые файлы только из папок %systemroot% и %programfiles%, а остальные папки будут запрещены для запуска исполняемых файлов. Нажмите правой кнопкой мыши на &lt;strong&gt;Executable rules&lt;/strong&gt; и нажмите &lt;strong&gt;Create New Rule&lt;/strong&gt;.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;На странице &lt;strong&gt;Before You Begin&lt;/strong&gt; вы можете узнать основные сведения о мастере. Нажмите &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;На странице &lt;strong&gt;Permissions&lt;/strong&gt; убедитесь, что &lt;strong&gt;Action&lt;/strong&gt; выставлен в &lt;strong&gt;Allow&lt;/strong&gt; и &lt;strong&gt;User or group&lt;/strong&gt; выставлено в &lt;strong&gt;Everyone&lt;/strong&gt; (значения по умолчанию). Нажмите &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;На странице &lt;strong&gt;Conditions&lt;/strong&gt; выставьте переключатель в &lt;strong&gt;Path&lt;/strong&gt; и нажмите &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;На странице &lt;strong&gt;Path&lt;/strong&gt; нажмите &lt;strong&gt;Browse Folders&lt;/strong&gt;. Укажите созданную на рабочем столе папку (по умолчанию это &lt;em&gt;C:\Users\&amp;lt;YourAccountName&amp;gt;\Desktop\Папка&lt;/em&gt;) и нажмите &lt;strong&gt;Ok&lt;/strong&gt;. На этой же странице мастера нажмите &lt;strong&gt;Create&lt;/strong&gt;.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Сверните окно консоли MMC.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Переключитесь на рабочий стол, откройте созданную папку и попробуйте запустить файл. И вы получите сообщение об ошибке, что приложение было блокировано групповой политикой.&lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Примечание: перед выполнением всех операций убедитесь, что у вас запущена служба Application Identity. Для этого вы можете запустить командную строку в elevated mode и выполнить следующую команду:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000" size="2" face="Consolas"&gt;net start AppIDSvc&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Воркэраунд для обхода проблемы опубликован здесь: &lt;a href="http://www.sysadmins.lv/PermaLink,guid,b0268412-895a-43b6-ba56-ce8f233a123f.aspx"&gt;Очередной баг в AppLocker (обновление)&lt;/a&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=93560d90-3398-4fdf-bdf4-0a6e479029fe"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,93560d90-3398-4fdf-bdf4-0a6e479029fe.aspx</comments>
      <category>Security</category>
      <category>Security / AppLocker</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b2960f54-69de-41ee-91bd-36f122a68771</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b2960f54-69de-41ee-91bd-36f122a68771.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b2960f54-69de-41ee-91bd-36f122a68771.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b2960f54-69de-41ee-91bd-36f122a68771</wfw:commentRss>
      <title>Самоподписанные сертификаты и атака Man-in-The-Middle (MiTM)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b2960f54-69de-41ee-91bd-36f122a68771.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b2960f54-69de-41ee-91bd-36f122a68771.aspx</link>
      <pubDate>Fri, 25 Jun 2010 12:49:50 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Недавно в интернете читал интересное обсуждение, в котором утверждалось, что самоподписанные сертификаты подвержены атаке &lt;em&gt;Man-in-The-Middle&lt;/em&gt; (&lt;strong&gt;MiTM&lt;/strong&gt;). Давайте разберёмся, что это такое. Есть 2 узла (А и Б). Узел А инициирует соединение с узлом Б отправляя запрос для предъявления сертификата (SSL). Узел Б посылает свой сертификат узлу А. И тут между узлами А и Б появляется узел В (злоумышленник), который перехватывает сертификат и вместо него отправляет свой поддельный сертификат. Узел А думает, что это сертификат узла Б и начинает шифровать этим сертификатом данные, передавая узлу Б. Но на самом деле узел А шифрует данные поддельным сертификатом узла В и злоумышленник читает все шифрованные (а это могут быть и конфиденциальные данные) данные.&lt;/p&gt;  &lt;p&gt;Я не берусь судить, откуда растут ноги у этого мифа, но он достаточно устойчив. Давайте посмотрим существующие алгоритмы шифрования:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Симметричное шифрование&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Самый простой, но и небезопасный метод:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="symmetric encryption" border="0" alt="symmetric encryption" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/ManinTheMiddleMiTM_BE6A/image_1a991c8a-2cd8-4241-a12c-f8d0dfac3327.png" width="591" height="138" /&gt; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;John Smith хочет безопасно отправить конфиденциальные данные Mary Jane.&lt;/li&gt;    &lt;li&gt;John генерирует симметричный ключ и шифрует им документ. Документ теперь зашифрован и может быть передан через интернет.&lt;/li&gt;    &lt;li&gt;Mary Jane получает зашифрованный документ.&lt;/li&gt;    &lt;li&gt;Mary Jane применяет *&lt;strong&gt;тот же самый&lt;/strong&gt;* симметричный ключ и получает текст в незашифрованной форме.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Минус такого сценария заключается в том, что используется один и тот же ключ как для шифрования и дешифрования. Следовательно, чтобы Mary Jane смогла расшифровать данные ей нужно иметь тот же самый ключ. Этот ключ не должен передаваться вместе с документом, а какими-нибудь другими методами (например, по телефону). Чем больше получателей этого документа, тем выше вероятность, что ключ станет известен ещё кому-то и не существует механизмов, которые бы позволяли определять статус ключа (скомпрометирован или нет). Плюс такого сценария — высокая скорость. Симметричное шифрование выполняется достаточно быстро и не потребляет большого количества процессорных ресурсов. Идеально подходит для шифрования больших объёмов данных.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Асимметричное шифрование&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Метод более сложный, но и более безопасный:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Asymmetric encryption" border="0" alt="Asymmetric encryption" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/ManinTheMiddleMiTM_BE6A/image_87ff6ea7-2fa8-474e-a8fb-5a153cd80a29.png" width="591" height="163" /&gt; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;John Smith хочет отправить конфиденциальные данные Mary Jane.&lt;/li&gt;    &lt;li&gt;John использует открытую часть сертификата (с открытым ключом) Mary Jane и этим открытым ключом шифрует данные.&lt;/li&gt;    &lt;li&gt;Mary Jane получает зашифрованный документ.&lt;/li&gt;    &lt;li&gt;Mary Jane применяет *закрытый ключ* от своего сертификата и расшифровывает данные.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;В нашем сценарии Mary Jane — это веб-сервер, которому нужно передать конфиденциальные данные. А John Smith — клиент, который хочет эти данные передать на сервер. Чисто технически злоумышленник может перехватить открытую часть сертификата Mary Jane и вместо него подложить свой поддельный сертификат с таким же именем. Без дополнительных мер безопасности, John не смог бы отличить настоящий сертификат от поддельного. И здесь появляется важный момент. Перед шифрованием данных John Smith должен проверить этот сертификат на доверие и отзыв. Сертификаты содержат различные средства определения статуса закрытого ключа через списки отзыва. Если сертификат помещён в список отзыва, ему доверять нельзя и использовать его крайне опасно. В случае с самоподписанными сертификатами определить отзыв не представляется возможным. Но можно (как минимум) убедиться, что сертификат выпущен доверенным лицом (или центром сертификации). Для этого John Smith пропускает сертификат через &lt;a href="http://www.sysadmins.lv/CategoryView,category,SecurityPKIChainingEngine.aspx"&gt;&lt;em&gt;Certificate Chaining Engine&lt;/em&gt;&lt;/a&gt; (&lt;strong&gt;CCE&lt;/strong&gt;). Если издатель сертификата (или сам сертификат) хранится у John'а в Trusted Root CAs, можно с уверенностью сказать, что сертификат не был подделан злоумышленником и выдан доверенным лицом. Если же сертификата там нет, невозможно убедиться, что это действительно сертификат самой Mary Jane. В таком случае приложение выдаёт ошибку или предупреждение, что не удалось проверить сертификат. Когда пользователь получил такое предупреждение, он должен незамедлительно отменить операцию шифрования (если это ещё не сделало само приложение).&lt;/p&gt;  &lt;p&gt;Поскольку закрытый ключ от сертификата хранится только у Mary Jane и он никогда не раскрывается никому, злоумышленнику бесполезно использовать перехваченные пакеты, поскольку закрытый ключ (который нужен для расшифровки данных) никогда не покидает Mary Jane. Хотя тут есть 2 момента. Поскольку самоподписанные сертификаты не имеют централизованного издателя, при большом количестве таких сертификатов появляется вопрос доверия к таким сертификатам:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Самое простое — игнорировать ворненги ошибок сертификатов. В таком случае можно надурить отправителя и подсунуть поддельный и недоверенный сертификат. Если вы игнорируете ворненги — вы ССЗБ. Против этого метода защиты не существует.&lt;/li&gt;    &lt;li&gt;Чуть сложнее — все сертификаты участников обмена шифрованными данными устанавливать в Trusted Root CAs. Тогда ворненгов и не будет. Но при большом количестве таких сертификатов можно ошибочно установить поддельный сертификат к себе в хранилище. И тогда вы будете доверять сертификату злоумышленника.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Следовательно, чисто технически очень сложно организовать атаку MiTM даже с самоподписанными сертификатами. Единственное на что можно рассчитывать — на человеческий фактор. А против человеческого фактора защиты нет никакой. Разве что его можно попытаться снизить за счёт использования централизованного доверенного издателя (центр сертификации). В таком случае придётся установить только один корневой сертификат в Trusted Root CAs. И если сертификат у какого-то участника обмена ВНЕЗАПНО стал недоверенным, можно с определённой уверенностью сказать, что это поддельный сертификат. Но, как я уже отмечал, оба вышеупомянутых пункта относятся как к самоподписанным сертификатам, так и к сертификатам выпущенных централизованным издателем.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b2960f54-69de-41ee-91bd-36f122a68771"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b2960f54-69de-41ee-91bd-36f122a68771.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=50137594-d3d1-4cc1-b41c-7591c4f9ffee</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,50137594-d3d1-4cc1-b41c-7591c4f9ffee.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,50137594-d3d1-4cc1-b41c-7591c4f9ffee.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=50137594-d3d1-4cc1-b41c-7591c4f9ffee</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>Кросс-сертификация при миграции CA</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,50137594-d3d1-4cc1-b41c-7591c4f9ffee.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,50137594-d3d1-4cc1-b41c-7591c4f9ffee.aspx</link>
      <pubDate>Sat, 05 Jun 2010 10:34:36 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; данный пост содержит сведения об изменении настроек Active Directory и Certification Authority и автор ещё раз обращает ваше внимание на дисклаймер данного блога.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;Иногда при миграции CA принимают решение об отказе в поддержке предыдущей PKI. Это обычно вызвано различными причинами. Например, некорректные и непоправимые ошибки в первоначальной конфигурации CA, неумение правильно провести миграцию, необходимость переконфигурации CA, которая требует создания нового CA и т.д. В таких случаях обычно поступают так:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;параллельно устанавливают ещё один CA и удаляют старый. При этом сертификаты предыдущего CA не поддерживаются и просто выводятся из обращения (как правило с ними ничего не происходит, а только перестают работать, поскольку CA больше не публикует CRL'ы и проверки таких сертификатов проваливаются). Такой метод применяют, когда количество сертификатов выданных прежним CA невелико и им можно пренебречь и переиздать сертификаты. &lt;/li&gt;    &lt;li&gt;параллельно устанавливается ещё один CA, делают кросс-сертификацию старого CA и удаляют его. При этом сертификаты предыдущего CA поддерживаются и используются в работе. В виду отсутствия предыдущего CA, необходимо дополнительно обеспечить успешную валидацию всех ранее выданных сертификатов. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Если первый метод достаточно прост и тривиален, второй уже требует дополнительных действий со стороны администратора. Это публикация CRL при фактическом отсутствии упразднённого CA и поддержание CRT файлов для построения цепочек сертификатов. И в данном случае старая PKI будет частью новой PKI за счёт кросс-сертификации. Для начала нужно рассмотреть что такое кросс-сертификация. Кросс-сертификация — процесс заверения одной иерархией PKI другой иерархии PKI. При этом заверенная PKI будет являться частью завереямой PKI. Рассмотрим простой пример:&lt;/p&gt;  &lt;p&gt;Имеется иерархия CA из корневого Contoso-CA1 и подчинённого Contoso-CA2. Вы создаёте новую иерархию, состоящую из Adatum-CA1 и Adatum-CA2. При этом вы можете сделать кросс-сертификацию между Adatum-CA2 и Contoso-CA1 или Contoso-CA2:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Subordinate cross-certification" border="0" alt="Subordinate cross-certification" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/7bae08d7d6cf_1029D/image_25200009-985c-464d-9e40-0b3a8a49e4bc.png" width="278" height="113" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;В первом случае цепочка сертификатов для сертификата выпущенного в Contoso-CA2 будет выглядеть так:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;Adatum-CA1        &lt;br /&gt;        Adatum-CA2         &lt;br /&gt;                Contoso-CA1         &lt;br /&gt;                        Contoso-CA2         &lt;br /&gt;                                EndCert&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Как видите, клиент не должен явно доверять Contoso-CA1, а только Adatum-CA1. За счёт кросс-сертификации цепочка будет начинаться в иерархии Contoso и заканчиваться в иерархии Adatum.&lt;/p&gt;  &lt;p&gt;Во втором случае цепочка сертификатов для сертификата выпущенного в Contoso-CA2 будет выглядеть так:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;Adatum-CA1        &lt;br /&gt;        Adatum-CA2         &lt;br /&gt;                Contoso-CA2         &lt;br /&gt;                        EndCert&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;В принципе, можно сделать ещё и вот так:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Root cross-certification" border="0" alt="Root cross-certification" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/7bae08d7d6cf_1029D/image_b60252a1-799c-46ec-a0d6-32838752770e.png" width="278" height="113" /&gt; &lt;/p&gt;  &lt;p&gt;В первом случае цепочка сертификатов для сертификата выпущенного в Contoso-CA2 будет выглядеть так:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;Adatum-CA1        &lt;br /&gt;        Contoso-CA1         &lt;br /&gt;                Contoso-CA2         &lt;br /&gt;                        EndCert&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Во втором случае цепочка сертификатов для сертификата выпущенного в Contoso-CA2 будет выглядеть так:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;Adatum-CA1        &lt;br /&gt;       Contoso-CA2         &lt;br /&gt;               EndCert&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;По большому счёту вариантов достаточно много и выбор конкретного может быть продиктован как определёнными требованиями, так и вашими личными предпочтениями. Лично я предпочитаю делать кросс-сертификацию так, чтобы в конечном итоге получить наиболее короткую цепочку, но, по возможности, без включения в неё дополнительных корневых сертификатов. Поэтому для меня наиболее предпочтительный вариант будет второй вариант на первой картинке:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/7bae08d7d6cf_1029D/image_42d8b52b-ea71-455c-80ce-785ffad40005.png" width="278" height="113" /&gt; &lt;/p&gt;  &lt;p&gt;В нашем случае мы создаём новую иерархию Adatum и постепенно избавляемся от Contoso. Важно учитывать, что демонтаж старых центров сертификации можно проводить только после полной настройки новой иерархии PKI.&lt;/p&gt;  &lt;h1 align="center"&gt;Подготовка шаблонов сертификатов&lt;/h1&gt;  &lt;ol&gt;   &lt;li&gt;Войдите в систему с правами &lt;strong&gt;Enterprise Admins&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Нажмите &lt;strong&gt;Start&lt;/strong&gt;, &lt;strong&gt;Run…&lt;/strong&gt; и введите '&lt;strong&gt;MMC&lt;/strong&gt;'. Если появится диалоговое окно UAC, подтвердите запуск консоли. &lt;/li&gt;    &lt;li&gt;В меню &lt;strong&gt;File&lt;/strong&gt; нажмите &lt;strong&gt;Add/Remove Snap-ins&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;В списке выберите &lt;strong&gt;Certificate Templates&lt;/strong&gt;, нажмите &lt;strong&gt;Add&lt;/strong&gt; и нажмите &lt;strong&gt;Ok&lt;/strong&gt; для завершения операции. &lt;/li&gt;    &lt;li&gt;В открывшейся оснастке найдите стандартный шаблон &lt;strong&gt;User&lt;/strong&gt;. Нажмите правой кнопкой на нём и выберите &lt;strong&gt;Duplicate Template&lt;/strong&gt;. Если появится запрос о выборе версии шаблона укажите &lt;strong&gt;Windows Server 2003 Enterprise&lt;/strong&gt; и нажмите &lt;strong&gt;Ok&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Во вкладке &lt;strong&gt;Properties of New Tamplate&lt;/strong&gt; укажите новое название шаблона. Например, &lt;strong&gt;Cross-signing&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Снимите галочку с &lt;strong&gt;Publish certificate in Active Directory&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Во вкладке &lt;strong&gt;Request Handling&lt;/strong&gt; можете указать другой CSP, если, например, хотите хранить сертификат на смарт-карте (рекомендуется). &lt;/li&gt;    &lt;li&gt;В &lt;strong&gt;Issuance Requirements&lt;/strong&gt; можете указать требование явного одобрения запроса со стороны администратора CA. &lt;/li&gt;    &lt;li&gt;Во вкладке &lt;strong&gt;Extensions&lt;/strong&gt; выделите &lt;strong&gt;Application Policies&lt;/strong&gt; и нажмите &lt;strong&gt;Edit&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Удалите всё из списка, после чего нажмите &lt;strong&gt;Add&lt;/strong&gt; и выберите &lt;strong&gt;Qualified Subordination&lt;/strong&gt;. Нажмите &lt;strong&gt;Ok&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Во вкладке &lt;strong&gt;Security&lt;/strong&gt; удалите всех из разрешений, кроме глобальной или универсальной группы, которой будет разрешено энролить сертификаты для подписи запросов кросс-сертификации. &lt;/li&gt;    &lt;li&gt;Нажмите &lt;strong&gt;Ok&lt;/strong&gt; для сохранения изменений и записи шаблона в Active Directory. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Теперь нужно добавить нужные шаблоны в выдачу на CA. Для этого:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Войдите на сервер CA с именем Adatum-CA2 с правами &lt;strong&gt;Enterprise Admins&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Нажмите &lt;strong&gt;Start&lt;/strong&gt;, &lt;strong&gt;Administrative Tools&lt;/strong&gt; и нажмите &lt;strong&gt;Certification Authority&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Выделите секцию &lt;strong&gt;Certificate Templates&lt;/strong&gt; и в контекстном меню выберите &lt;strong&gt;New&lt;/strong&gt; –&gt; &lt;strong&gt;Certificate Template to issue&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;В списке выделите только что созданный &lt;strong&gt;Cross-signing&lt;/strong&gt; и &lt;strong&gt;Cross Certification Authority&lt;/strong&gt; и нажмите &lt;strong&gt;Add&lt;/strong&gt;. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Теперь запросите сертификат на основе шаблона Cross-signing. Этот сертификат вам потребуется для подписывания запросов сертификатов на основе шаблона Cross Certification Authority.&lt;/p&gt;  &lt;h1 align="center"&gt;Создание кросс-сертификата&lt;/h1&gt;  &lt;p&gt;Кросс-сертификация — это весьма обширная тема. Для нашего сценария нет необходимости рассматривать подробности т.н. qualified subordination, поэтому ограничимся самым простым вариантов без дополнительных ограничений. Для этого создайте текстовый файл с именем Policy.inf и следующим содержанием:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000" size="2" face="Consolas"&gt;[Version]        &lt;br /&gt;Signature = $WindowsNT$&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000" size="2" face="Consolas"&gt;[RequestAttributes]        &lt;br /&gt;CertificateTemplate = CrossCA&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;далее скопируйте сертификат CA Contoso-CA2 на локальный диск. Запустите командную строку и выполните следующую команду:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000" size="2" face="Consolas"&gt;certreq –policy&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;В открывшемся диалоговом окне укажите файл сертификата Contoso-CA2 и нажмите Open. Во втором диалоговом окне укажите созданный файл policy.inf и нажмите Open. После чего появится окно выбора сертификата подписи. После указания сертификата подписи нажмите Ok и укажите путь размещения и имя запроса сертификата. После чего выполните следующую команду:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000" size="2" face="Consolas"&gt;certreq –submit path\cross.req&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;где path\cross.req — путь размещения и имя файла запроса для кросс-сертификата. Если появилось диалоговое окно выбора сервера CA, выберите тот, в выдаче которого находится шаблон Cross Certification Authority и нажмите Ok.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Войдите на сервер CA с именем Adatum-CA2 с правами &lt;strong&gt;Enterprise Admins&lt;/strong&gt; и администратора CA. &lt;/li&gt;    &lt;li&gt;Нажмите &lt;strong&gt;Start&lt;/strong&gt;, &lt;strong&gt;Administrative Tools&lt;/strong&gt; и нажмите &lt;strong&gt;Certification Authority&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Выделите секцию &lt;strong&gt;Pending Requests&lt;/strong&gt;, найдите в списке самый последний запрос и в контекстном меню выберите &lt;strong&gt;Issue&lt;/strong&gt;. Предварительно вы можете убедиться, что запрос получился корректный и все данные в нём правильные. &lt;/li&gt;    &lt;li&gt;Перейдите в секцию &lt;strong&gt;Issued Certificates&lt;/strong&gt;, найдите самый последний сертификат (должен быть наш кросс-сертификат) и экспортируйте его в CER файл. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;если открыть сертификат и посмотреть вкладку Certification path, можно увидеть, что цепочка этого сертификата заканчивается не на Contoso-CA1, а на Adatum-CA1. Следовательно, для данного сертификата доверие, да и наличие самого Contoso-CA1 уже не обязательно.&lt;/p&gt;  &lt;p&gt;На данном этапе остался последний шаг — публикация кросс-сертификата в Active Directory. Для этого запустите командную строку с повышенными привилегиями (выбрав &lt;strong&gt;Run as administrator&lt;/strong&gt; в контекстном меню значка &lt;strong&gt;Command Prompt&lt;/strong&gt;) и выполните в ней следующую команду:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000" size="2" face="Consolas"&gt;certutil –dspublish –f path\cross.cer&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;где path\cross.cer — путь размещения и имя файла кросс-сертификата.&lt;/p&gt;  &lt;h1 align="center"&gt;Подготовка к демонтажу старых центров сертификации&lt;/h1&gt;  &lt;p&gt;Прежде чем демонтировать ненужные центры сертификации, необходимо переподписать все их CRL и поместить их в точки публикации CDP, например, LDAP и/или веб-сервер. Для этого вы должны зайти на каждый демонтируемый сервер CA и выполнить следующую команду:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000" size="2" face="Consolas"&gt;cd c:\windows\system32\certsrv\certenroll\        &lt;br /&gt;certutil –sign &lt;BaseCRLName&gt;.crl &lt;BaseCRLName&gt;1.crl now+1825:00         &lt;br /&gt;certutil –sign &lt;DeltaCRLName&gt;+.crl &lt;DeltaCRLName&gt;1+.crl now+1825:00&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Certutil –sign переподпишет старые CRL'ы с новым более долгим сроком, в нашем случае — на 5 лет. Т.е. эти CRL'ы будут действительны последующие 5 лет. Далее, вы должны скопировать эти CRL'ы в точки публикации. При этом следует удалить единички (которые были добавлены только для создания нового файла) из имён файлов, чтобы они совпадали с именами файлов в расширениях сертификатов.&lt;/p&gt;  &lt;h1 align="center"&gt;Демонтаж старых центров сертификации&lt;/h1&gt;  &lt;p&gt;Демонтаж старых центров сертификации следует проводить в соответствии с этим руководством: &lt;a href="http://support.microsoft.com/kb/889250" target="_blank"&gt;How to decommission a Windows enterprise certification authority and how to remove all related objects from Windows Server 2003 and from Windows Server 2000&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; удалять следует только объекты относящиеся демонтируемым центрам сертификации. В противном случае вы можете удалить и объекты новых действующих CA.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=50137594-d3d1-4cc1-b41c-7591c4f9ffee"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,50137594-d3d1-4cc1-b41c-7591c4f9ffee.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=f17c125a-1419-4f1a-ab67-ab7a082dd90f</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,f17c125a-1419-4f1a-ab67-ab7a082dd90f.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,f17c125a-1419-4f1a-ab67-ab7a082dd90f.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=f17c125a-1419-4f1a-ab67-ab7a082dd90f</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Windows PKI — FAQ#1</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,f17c125a-1419-4f1a-ab67-ab7a082dd90f.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,f17c125a-1419-4f1a-ab67-ab7a082dd90f.aspx</link>
      <pubDate>Mon, 24 May 2010 18:49:16 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" title="КДПВ" alt="КДПВ" align="left" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/Certificatechainingenginecertificaterevo_10A0B/kdpv_c1c4d0e5-0bf9-43dc-9d9e-3832618e4667.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Листая тематические форумы, рефералов бложика и переписку в почте, уже набралось немного вопросов, на которые нет смысла делать отдельный пост, но есть смысл вынести в очередной FAQ.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="3"&gt;Q:&lt;/font&gt;&lt;/strong&gt; Как узнать тип установленного на сервере Certification Authority?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="3"&gt;A:&lt;/font&gt;&lt;/strong&gt; тип Certification Authority можно узнать несколькими методами, которые обычно основываются на реестре:&lt;/p&gt;  &lt;p&gt;&lt;font color="#804000"&gt;HKLM\System\CurrentControlSet\Services\CertSvc\Configuration\&amp;lt;CA Sanitized Name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;и запись типа &lt;strong&gt;REG_DWORD — CAType&lt;/strong&gt;. И вот что означает каждое значение:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;0&lt;/strong&gt; — Enterprise Root CA     &lt;br /&gt;&lt;strong&gt;1&lt;/strong&gt; — Enterprise Subordinate CA     &lt;br /&gt;&lt;strong&gt;3&lt;/strong&gt; — Standalone Root CA     &lt;br /&gt;&lt;strong&gt;4&lt;/strong&gt; — Standalone Subordinate CA     &lt;br /&gt;&lt;strong&gt;5&lt;/strong&gt; — Unknown&lt;/p&gt;  &lt;p&gt;По большому счёту, если вы задаёте этот вопрос, значит, для вас этот тип — Unknown (5) &lt;img alt=":)" src="/smilies/happy.gif"&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="3"&gt;Q:&lt;/font&gt;&lt;/strong&gt; Может ли в домене/лесу Active Directory существовать 2 и более иерархий PKI с разными корневыми центрами сертификации?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="3"&gt;A:&lt;/font&gt;&lt;/strong&gt; да, вы можете в существующем домене/лесу развернуть несколько независимых иерархий PKI. Сервер CA не использует домен для захвата власти, а только лишь для обеспечения удобства распространения и выдачи сертификатов конечным потребителям.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="3"&gt;Q:&lt;/font&gt;&lt;/strong&gt; Можно ли мигрировать сервер CA с платформы x86 на x64? Судя по этой статье: &lt;a href="http://support.microsoft.com/kb/298138"&gt;http://support.microsoft.com/kb/298138&lt;/a&gt;, это невозможно. Как быть?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="3"&gt;A:&lt;/font&gt;&lt;/strong&gt; Сведения представленные в указанной статье не совсем достоверны. Технически бэкап БД выполненный на платформе x86 может быть успешно восстановлен на платформе x64 и каких-то проблем с этим возникнуть не должно. Поэтому вы можете смело планировать миграцию ваших серверов CA с x86 на x64, особенно если существующий CA работает на системе под управлением Windows 2000. В качестве руководства по миграции вы можете руководствоваться следующим вайтпепером: &lt;a href="http://technet.microsoft.com/en-us/library/ee126170(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/ee126170(WS.10).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="3"&gt;Q:&lt;/font&gt;&lt;/strong&gt; Я зашифровал папку с файлами при помощи EFS, но пользователи всё равно могут просматривать содержимое папки? Что это, баг или данные просто не шифруются?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="3"&gt;A:&lt;/font&gt;&lt;/strong&gt; Это не баг, а нормальное поведение системы (при условии, что другие пользователи имеют права на просмотр содержимого каталога). Если посмотреть на файловую сисему изнутри, становится понятно, что папка — всего лишь логический контейнер и он хранится в MFT. Папка сама по себе не содержит в себе данных и не имеет размера. А сами данные, которые нужно шифровать находятся в другой части файловой системы. Поэтому если вы зашифровали папку средствами EFS, шифруются сами данные, но обзор списка файлов в шифрованной папке по прежнему разрешён.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="3"&gt;Q:&lt;/font&gt;&lt;/strong&gt; мне нужно издать сертификат с некоторыми данными в расширении Subject Alternative Name (SAN). Я создаю запрос с этим расширением, но CA игнорирует это расширение. Как быть?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="3"&gt;A:&lt;/font&gt;&lt;/strong&gt; по умолчанию Windows CA игнорирует это расширение в целях безопасности. Для включения этого расширения воспользуйтесь сведениями из этой статьи: &lt;a title="http://support.microsoft.com/kb/931351" href="http://support.microsoft.com/kb/931351"&gt;http://support.microsoft.com/kb/931351&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="3"&gt;Q:&lt;/font&gt;&lt;/strong&gt; для чего служат различные контейнеры в AD внутри контейнера Public Key Services?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="3"&gt;A:&lt;/font&gt;&lt;/strong&gt; эти контейнеры служат для обеспечения автоматизации работы центра сертификации, подачи запросов и проверки сертификатов.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;NTAuthCertificates — служит для хранения сертификатов центров сертификации, которым разрешено издавать логонные сертификаты (для смарт-карт, для аутентификации по сертификатам в VPN или IIS) для текущего леса. Например, вы используете сторонний центр сертификации, выдающий сертификаты для смарт-карт. Для того, чтобы контроллеры домена распознавали и доверяли этим сертификатам, сертификат стороннего CA должен быть добавлен в NTAuthCertificates. Сертификаты из этого контейнера автоматически копируются доменными клиентами при обновлении групповых политик и помещаются в контейнер Intermediate CAs.&lt;/li&gt;    &lt;li&gt;AIA — служит для хранения сертификатов центров сертификации. Сертификаты из этого контейнера используются для ускорения построения цепочек сертификатов при проверке. Сертификаты из этого контейнера автоматически копируются доменными клиентами при обновлении групповых политик и помещаются в контейнер Intermediate CAs.&lt;/li&gt;    &lt;li&gt;CDP — служит для хранения списков отзыва (Certificate Revocation List или CRL). Списки отзыва используются для определения статуса конкретного сертификата (отозван или не отозван). CRL'ы из этого контейнера не копируются клиентами. Поэтому CRL опубликованный в данном контейнере может быть использован только если расширение CDP какого-то сертификата явно ссылается на него.&lt;/li&gt;    &lt;li&gt;Certifiation Authorities — служит для хранения собственных или сторонних доверенных корневых центров сертификации. Сертификаты из этого контейнера автоматически копируются доменными клиентами при обновлении групповых политик и помещаются в контейнер Trusted Root CAs.&lt;/li&gt;    &lt;li&gt;KRA — служит для хранения выпущенных сертификатов агентов восстановления. Каждый выпущенный сертификат агент восстановления публикуется в этот контейнер в запись соответствующего CA. Важно понимать, что при назначении нового агента восстановления на сервере CA, содержимое данного контейнера не изменяется.&lt;/li&gt;    &lt;li&gt;Enrollment Services — служит для хранения записей и сертификатов всех Enterprise CA в текущем лесу. Клиенты используют этот контейнер для обнаружения Enterprise CA.&lt;/li&gt;    &lt;li&gt;OID — содержит все OID'ы зарегистрированные в вашей компании. В том числе&amp;#160; Issuance, Application Policies, Certificate Templates OID's.&lt;/li&gt;    &lt;li&gt;Certificate Templates — служит для хранения сведений о всех шаблонах сертификатов текущего леса.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="3"&gt;Q:&lt;/font&gt;&lt;/strong&gt; я создал шаблон версии 3 (Windows Server 2008 Enterprise Edition) для смарт-карт, но при энроллменте я получаю ошибку. В чём дело?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="3"&gt;A:&lt;/font&gt;&lt;/strong&gt; исторически CSP (&lt;em&gt;Cryptography Service Provider&lt;/em&gt;) смарт-карт не поддерживают алгоритмы CNG (&lt;em&gt;Cryptography New Generation&lt;/em&gt;), которые реализованы в шаблонах версии 3. Следовательно, вы не можете использовать шаблоны версии 3 для смарт-карт. Вместо этого вы должны использовать шаблоны версии 2 (Windows Server 2003 Enterprise Edition).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="3"&gt;Q:&lt;/font&gt;&lt;/strong&gt; я установил MS OCSP Responder, но папка веб-приложения пуста. Что должно быть в папке OCSP?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="3"&gt;A:&lt;/font&gt;&lt;/strong&gt; Имплементация OCSP в Windows основывается на ISAPI фиьтрах, реализованных в библиотеке ocspisapi.dll. Поэтому при создании веб-приложения OCSP путь к нему указывается как %systemroot%\SystemData\ocsp. В этой папке есть только папка aspnet_client, но файлов никаких нет. Их быть и не должно.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=f17c125a-1419-4f1a-ab67-ab7a082dd90f"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,f17c125a-1419-4f1a-ab67-ab7a082dd90f.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Tips &amp; Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b76145fc-8d39-4014-9fc5-86ff6280aa5b</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b76145fc-8d39-4014-9fc5-86ff6280aa5b.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b76145fc-8d39-4014-9fc5-86ff6280aa5b.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b76145fc-8d39-4014-9fc5-86ff6280aa5b</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>Скрытие расширений из издаваемых сертификатов</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b76145fc-8d39-4014-9fc5-86ff6280aa5b.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b76145fc-8d39-4014-9fc5-86ff6280aa5b.aspx</link>
      <pubDate>Sat, 15 May 2010 15:16:05 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Короткая заметка.&lt;/p&gt;  &lt;p&gt;Не всем нравится, когда CA в сертификаты пихает немного лишнюю и ненужную информацию. Особенно это касается сертификатов, используемых снаружи сети. Самое популярное «ненужное» расширение — Certificate Template Name и Template. Наружным пользователям (пользователи из интернета) знать названия и OID'ы ваших шаблонов совсем необязательно. Вот как можно отключить любое расширение:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;certutil -setreg policy\DisableExtensionList +&amp;lt;Extension OID&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;и включить обратно:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;certutil -setreg policy\DisableExtensionList –&amp;lt;Extension OID&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;и примеры:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;certutil -setreg policy\DisableExtensionList +1.3.6.1.4.1.311.20.2       &lt;br /&gt;certutil -setreg policy\DisableExtensionList +1.3.6.1.4.1.311.21.7&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Для включения расширения заменить плюсик на минусик, соответственно. OID'ы расширений можно найти здесь: &lt;a title="http://msdn.microsoft.com/en-us/library/aa379367(VS.85).aspx" href="http://msdn.microsoft.com/en-us/library/aa379367(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa379367(VS.85).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; после внесения изменений нужно перезапустить службу certsvc.&lt;/p&gt;  &lt;p&gt;Однако, следует учитывать, что отключать расширения надо очень осторожно. Например, если ваш CA издаёт сертификаты через автоэнроллмент, нельзя отключать расширения Certificate Template Name и Template, поскольку эти расширения используются автоэнроллментом для обновления существующих сертификатов. Поэтому я придерживаюсь правила, по которому следует (по возможности) поднимать как минимум 2 сервера CA — для внутреннего и для внешнего использования. К сожалению это далеко не всегда возможно и чаще ограничиваются только одним сервером CA на все случаи жизни. Но если кто-то делает по бест-практисам, этот совет может очень даже пригодиться.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b76145fc-8d39-4014-9fc5-86ff6280aa5b"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b76145fc-8d39-4014-9fc5-86ff6280aa5b.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Tips &amp; Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=bb8a9447-9b14-4540-add9-6df308129edd</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,bb8a9447-9b14-4540-add9-6df308129edd.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,bb8a9447-9b14-4540-add9-6df308129edd.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=bb8a9447-9b14-4540-add9-6df308129edd</wfw:commentRss>
      <title>Устанавливаем Certification Authority — Подведение итогов</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,bb8a9447-9b14-4540-add9-6df308129edd.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,bb8a9447-9b14-4540-add9-6df308129edd.aspx</link>
      <pubDate>Tue, 06 Apr 2010 15:53:39 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;В этом посте я кратко изложу ссылки на посты, связанные с данным материалом.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,5ee5feb6-bcb0-4a1f-adfc-de989556785a.aspx"&gt;Устанавливаем Certification Authority (часть 1) — Введение&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;В первой части рассматриваются общие вопросы, связанные с необходимостью внедрения PKI и технические вопросы планирования. В частности обсуждаются схемы иерархий серверов CA, выбор типа CA для каждого уровня и прочие ключевые вопросы, необходимые для успешного внедрения PKI.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,7cddb78e-fece-4d8a-8c85-813055311492.aspx"&gt;Устанавливаем Certification Authority (часть 2) — Установка Offline Root CA&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;В данном посте содержатся технические характеристики, которым будет соответствовать корневой центр сертификации (Root Certification Authority) и пошаговый процесс установки и последующего конфигурирования роли AD CS (Active Directory Certificate Services). Также детально разбираются вопросы, которые могут возникнуть при установке роли AD CS.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,eadef99d-831f-4ea1-8ecd-8be19a40e0fe.aspx"&gt;Устанавливаем Certification Authority (часть 3) — Установка Subordinate Issuing CA&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Здась рассматриваются ключевые моменты, присущие центрам сертификации несущих роль Policy и Issuing CA. А так же подробное пошаговое руководство по установке подчинённого центра сертификации (Subordinate Certification Authority).&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,40f691e6-6649-45ed-a39d-9df5a3b65a3d.aspx"&gt;Устанавливаем Certification Authority (часть 4) — Конфигурирование Subordinate Issuing CA&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Заключительная часть цикла рассказывает об особенностях конфигурирования издающего центра сертификации в доменной среде. Так же здесь вы найдёте дополнительную информацию по увязке Online Certificate Status Protocol (OCSP) с нормально выключенным (Offline) центром сертификации.&lt;/p&gt;  &lt;p&gt;HTH&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=bb8a9447-9b14-4540-add9-6df308129edd"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,bb8a9447-9b14-4540-add9-6df308129edd.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Setup</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=40f691e6-6649-45ed-a39d-9df5a3b65a3d</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,40f691e6-6649-45ed-a39d-9df5a3b65a3d.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,40f691e6-6649-45ed-a39d-9df5a3b65a3d.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=40f691e6-6649-45ed-a39d-9df5a3b65a3d</wfw:commentRss>
      <slash:comments>19</slash:comments>
      <title>Устанавливаем Certification Authority (часть 4) — Конфигурирование Subordinate Issuing CA</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,40f691e6-6649-45ed-a39d-9df5a3b65a3d.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,40f691e6-6649-45ed-a39d-9df5a3b65a3d.aspx</link>
      <pubDate>Sat, 03 Apr 2010 13:09:04 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,bb8a9447-9b14-4540-add9-6df308129edd.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Устанавливаем Certification Authority — Подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В предыдущей части (&lt;A href="http://www.sysadmins.lv/PermaLink,guid,eadef99d-831f-4ea1-8ecd-8be19a40e0fe.aspx"&gt;Устанавливаем Certification Authority (часть 3) — Установка Subordinate Issuing CA&lt;/A&gt;) мы рассмотрели процесс установки Online Issuing Enterprise Subordinate CA, который так же выполняет роль Policy CA. Теперь нам осталось осталось сконфигурировать этот центр сертификации и параметры в Active Directory. По аналогии с конфигурированием Offline Root CA мы будем использовать post-installation script.&lt;/P&gt;
&lt;H1 align=center&gt;Step 1 — developing post-installation script&lt;/H1&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: Создаём папку в корне диска C, где будут храниться CRT и CRL файлы &lt;BR&gt;&lt;STRONG&gt;md C:\CertData&lt;/STRONG&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: &lt;BR&gt;::&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; конфигурирование параметров CA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: &lt;BR&gt;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;&lt;FONT size=2 face=Consolas&gt;:: Задаём точки публикации CRL файлов и ссылки, публикуемые в издаваемых сертификатах. То же самое и для CRT файлов. &lt;BR&gt;&lt;STRONG&gt;certutil -setreg CA\CRLPublicationURLs "65:%windir%\system32\CertSrv\CertEnroll\%%3%%8%%9.crl\n65:C:\CertData\{Adatum}_PICA%%8%%9.crl\n6:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT size=2 face=Consolas&gt;http://www.{adatum.com}/pki/{Adatum}_PICA%%8%%9.crl"&lt;/FONT&gt; &lt;BR&gt;&lt;FONT size=2 face=Consolas&gt;certutil -setreg CA\CACertPublicationURLs "1:%windir%\system32\CertSrv\CertEnroll\%%1_%%3%%4.crt\n2:&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;http://www.{adatum.com}/pki/{Adatum}_PICA%%4.crt\n32:http://www.{adatum.com}/ocsp"&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: Поскольку мы не можем управлять публикацией CRT файлов, мы его &lt;BR&gt;:: переименовываем в нужное имя и копируем в папку CertData &lt;BR&gt;&lt;STRONG&gt;ren %windir%\system32\CertSrv\CertEnroll\*.crt {Adatum}_PICA.crt &lt;BR&gt;copy %windir%\system32\CertSrv\CertEnroll\{Adatum}_PICA.crt C:\CertData&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: задаём максимальный срок действия издаваемых сертификатов равным&amp;nbsp;5 лет&lt;BR&gt;&lt;STRONG&gt;certutil -setreg CA\ValidityPeriodUnits 5&lt;BR&gt;certutil -setreg CA\ValidityPeriod "Years"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: Задаём параметры публикации CRL (повторяем, что было указано в CAPolicy.inf) &lt;BR&gt;&lt;STRONG&gt;certutil -setreg CA\CRLPeriodUnits 5 &lt;BR&gt;certutil -setreg CA\CRLPeriod "Days" &lt;BR&gt;certutil -setreg CA\CRLDeltaPeriodUnits 12 &lt;BR&gt;certutil -setreg CA\CRLDeltaPeriod "Hours" &lt;BR&gt;certutil -setreg CA\CRLOverlapPeriod "Days" &lt;BR&gt;certutil -setreg CA\CRLOverlapUnits 1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: Включаем наследование Issuer Statement в издаваемых сертификатах &lt;BR&gt;&lt;STRONG&gt;certutil -setreg Policy\EnableRequestExtensionList +"2.5.29.32"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: Включаем DiscreteSignatureAlgorithm &lt;BR&gt;&lt;STRONG&gt;Certutil -setreg CA\csp\DiscreteSignatureAlgorithm 1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: включаем полный аудит для сервера CA &lt;BR&gt;&lt;STRONG&gt;certutil -setreg CA\AuditFilter 127&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: &lt;BR&gt;::&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; конфигурирование параметров AD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: &lt;BR&gt;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: задаём контекст конфигурации для сервера CA. Контекст конфигурации &lt;BR&gt;:: должен указывать на &lt;STRONG&gt;*корневой домен*&lt;/STRONG&gt; текущего леса. &lt;BR&gt;&lt;STRONG&gt;certutil -setreg CA\DSConfig "CN=Configuration,DC={adatum},DC={com}"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: публикуем сертификат CA в AD &lt;BR&gt;&lt;STRONG&gt;certutil -dspublish -f C:\CertData\{Adatum}_PICA.crt Subca &lt;BR&gt;certutil -dspublish -f C:\CertData\{Adatum}_PICA.crt NTAuthCA&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;&lt;STRONG&gt;net stop certsvc &amp;amp;&amp;amp; net start certsvc&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: Публикуем новый CRL в новую локацию. &lt;BR&gt;&lt;STRONG&gt;certutil –CRL&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; как и раньше, вы должны заменить на свои значения всё, что помещено в фигурные скбоки &lt;STRONG&gt;{}&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H1 align=center&gt;Step 2 — Configuring Web Server&lt;/H1&gt;
&lt;P&gt;Как вы знаете, у нас будут использоваться HTTP ссылки для скачивания файлов CRT/CRL. Для этого нужно настроить соответствующим образом ваш корпоративный веб-сервер. А именно, создать виртуальную директорию (внутри сайта с заголовком www.adatum.com) и в качестве физического пути указать на папку C:\CertData.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; если ваш веб-сервер работает под управлением IIS 7 и выше, убедитесь, что сервер настроен на двойной эскейпинг для корректного восприятия знака плюс (+) в ссылках. DoubleEscaping можно включить руководствуясь этой ссылкой: &lt;A href="http://technet.microsoft.com/en-us/library/cc754791(WS.10).aspx" target=_blank&gt;Configure Request Filters in IIS 7&lt;/A&gt;.&lt;/P&gt;
&lt;H1 align=center&gt;Step 3 — Setup OCSP Responder&lt;/H1&gt;
&lt;P&gt;В нашем сценарии предполагается, что мы будем использовать OCSP Responder для Issuing CA и, опционально, для Root CA. OCSP Responder для Issuing CA настраивается следующим образом:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx"&gt;OCSP (часть 1)&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx"&gt;OCSP (часть 2)&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; пост-установочный скрипт уже сконфигурировал расширение AIA включив ссылку на OCSP. Следовательно, настройку этого расширения на сервере CA можно опустить.&lt;/P&gt;
&lt;P&gt;Когда OCSP для Issuing CA будет сконфигурирован, можно дополнительно сконфигурировать его и для Root CA (при условии, что корневой CA настроен на публикацию ссылок OCSP в издаваемых сертификатах. Об этом см. секцию Step 3 статьи &lt;A href="http://www.sysadmins.lv/PermaLink,guid,7cddb78e-fece-4d8a-8c85-813055311492.aspx"&gt;Устанавливаем Certification Authority (часть 2) — Установка Offline Root CA&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Если в post-installation скрипте вы указали ссылку на OCSP, сертификат Issuing CA её должен содержать в расширении &lt;STRONG&gt;Authority Information Access&lt;/STRONG&gt;. Для обеспечения работоспособности этой ссылки необходимо создать ещё одну конфигурацию в OCSP. Для этого выполните следующее:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Откройте оснастку &lt;STRONG&gt;Online Responder&lt;/STRONG&gt; из папки &lt;STRONG&gt;Administrative Tools&lt;/STRONG&gt;. 
&lt;LI&gt;Выделите &lt;STRONG&gt;Revocation configuration&lt;/STRONG&gt; и в меню &lt;STRONG&gt;Action&lt;/STRONG&gt; выберите &lt;STRONG&gt;Add Revocation Configuration&lt;/STRONG&gt;. 
&lt;LI&gt;Откроется мастер создания конфигурации отзыва. Ознакомьтесь с предстоящими шагами и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;Укажите имя новой конфигурации. Например: &lt;STRONG&gt;RootCA 1&lt;/STRONG&gt;. Единичка будет означать номер ключа CA для которого настроена конфигурация. Дело в том, что при каждом обновлении сертификата CA с новой ключевой парой вам необходимо будет создавать новую конфигурацию в OCSP. Нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Select CA Certificate Location&lt;/STRONG&gt; выберите &lt;STRONG&gt;Import certificate from a file&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На следующей странице укажите путь к файлу сертификата корневого CA и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Select Signing Certificate&lt;/STRONG&gt; укажите &lt;STRONG&gt;Manually select signing certificate&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Revocation Provider&lt;/STRONG&gt; вы можете получить сообщение об ошибке, которая сообщает о том, что мастер не смог получить сведения о конфигурации CA. Это связано с тем, что наш Offline Root CA не подключен к сети и вообще находится в сейфе. Поэтому нажмите кнопку &lt;STRONG&gt;Provider&lt;/STRONG&gt; и укажите ссылку на CRL корневого центра сертификации. По условиям нашего сценария, ссылка будет иметь следующий вид: &lt;BR&gt;&lt;FONT color=#804000&gt;http://www.adatum.com/pki/Adatum_RCA.crl&lt;/FONT&gt; &lt;BR&gt;&lt;BR&gt;Поскольку корневой CA не использует Delta CRL, оставьте это поле пустым. Так же вы можете настроить периодичность, с которой OCSP будет освежать свой внутренний кеш. Например, можно указать каждые 10 минут. Нажмите &lt;STRONG&gt;Ok&lt;/STRONG&gt; и вернитесь в мастер создания конфигурации OCSP. 
&lt;LI&gt;Нажмите &lt;STRONG&gt;Finish&lt;/STRONG&gt; для завершения работы мастера. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Вы вернётесь обратно в оснастку OCSP Responder и увидите, что наша созданная конфигурация выдаёт ошибку, поскольку нет сертификата подписи, который будет использоваться для подписи ответов OCSP. Для устранения этого недостатка, разверните секцию &lt;STRONG&gt;Array Configuration&lt;/STRONG&gt; и выделите нужный респондер (предполагается, что это тот же самый сервер, на котором вы настраиваете OCSP). В центральной панели выберите конфигурацию &lt;STRONG&gt;RootCA 1&lt;/STRONG&gt; и в панели &lt;STRONG&gt;Actions&lt;/STRONG&gt; нажмите на &lt;STRONG&gt;Assign Signing Certificate&lt;/STRONG&gt;. Откроется список пригодных сертификатов. Скорее всего он там будет один. Поэтому выберите его и нажмите &lt;STRONG&gt;Ok&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Теперь выделите &lt;STRONG&gt;Array Configuration&lt;/STRONG&gt; и в меню &lt;STRONG&gt;Action&lt;/STRONG&gt; нажмите &lt;STRONG&gt;Refresh Revocation Data&lt;/STRONG&gt;. И вот что вы должны увидеть в конечном итоге:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="OCSP Responder configurations" border=0 alt="OCSP Responder configurations" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority3SubordinateIssuin_AE63/ocsp_7dc517fc-648c-4661-8966-1b560f7e9479.png" width=771 height=344&gt; &lt;/P&gt;
&lt;H1 align=center&gt;Results&lt;/H1&gt;
&lt;P&gt;Для окончательной проверки мы можем запустить оснастку PKIView.msc. Если мы настроили всё правильно, то должны увидеть примерно такой вид:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Reviewing CA installation results" border=0 alt="Reviewing CA installation results" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority3SubordinateIssuin_AE63/pkiview1_076a2d13-dfe9-4335-8272-d643b6e6ac97.png" width=830 height=235&gt; &lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Reviewing CA installation results" border=0 alt="Reviewing CA installation results" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority3SubordinateIssuin_AE63/pkiview2_830b6071-8304-4550-b8ce-0931352ad739.png" width=830 height=235&gt; &lt;/P&gt;
&lt;P&gt;И подведём итоги того, что мы сделали:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Мы спланировали типовую 2-х уровневую иерархию и конфигурацию PKI, которая включает в себя Offline Root CA и Online Issuing CA; 
&lt;LI&gt;Установили и сконфигурировали соответствующим образом наш корневой Root CA, который может быть нормально выключен и который будет издавать сертификаты только для других центров сертификации; 
&lt;LI&gt;Установили и сконфигурировали подчинённый Issuing CA, который будет издавать сертификаты уже конечным потребителям. 
&lt;LI&gt;Настроили OCSP Responder для работы с Offline Root CA. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Вроде бы выглядит немного, но исходя из материала мы проделали достаточно большой объём работы, в результате мы получили достаточно гибку и, главное, работающую PKI.&lt;/P&gt;
&lt;DIV&gt;
&lt;P style="BORDER-BOTTOM: silver 1px solid; POSITION: relative; BORDER-LEFT: silver 1px solid; WIDTH: 240px; HEIGHT: 66px; BORDER-TOP: silver 1px solid; BORDER-RIGHT: silver 1px solid"&gt;&lt;SPAN style="FONT-FAMILY: verdana,arial,sans-serif; CURSOR: pointer"&gt;&lt;A style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 240px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 66px; BORDER-LEFT-WIDTH: 0px" href="http://www.sysadmins.lv/content/pki/scripts/PICA_postscript.cmd.txt" target=_self&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 240px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 66px; BORDER-LEFT-WIDTH: 0px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/transparent.gif"&gt; &lt;/A&gt;&lt;A style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" href="http://www.sysadmins.lv/content/pki/scripts/PICA_postscript.cmd.txt" target=_self&gt;&lt;IMG style="POSITION: absolute; TOP: 6px; LEFT: 5px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/txt.png" width=48 height=45&gt; &lt;/A&gt;&lt;A style="TEXT-DECORATION: none" href="http://www.sysadmins.lv/content/pki/scripts/PICA_postscript.cmd.txt" target=_self&gt;&lt;SPAN style="POSITION: absolute; WIDTH: 167px; WHITE-SPACE: nowrap; COLOR: #555555; OVERFLOW: hidden; TOP: 7px; MARGIN-RIGHT: 5px; LEFT: 67px"&gt;&lt;SPAN style="DISPLAY: block; VISIBILITY: hidden"&gt;1&lt;/SPAN&gt; &lt;SPAN style="LINE-HEIGHT: 1.25em; DISPLAY: block; CURSOR: pointer; TEXT-DECORATION: none; PADDING-TOP: 1px" title="Download file"&gt;TXT file &lt;BR&gt;4,89 KB &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;A style="POSITION: absolute; WIDTH: 167px; WHITE-SPACE: nowrap; COLOR: #0066a7; OVERFLOW: hidden; TOP: 7px; MARGIN-RIGHT: 5px; TEXT-DECORATION: none; LEFT: 67px" href="http://www.sysadmins.lv/content/pki/scripts/PICA_postscript.cmd.txt" target=_self alt="Download File"&gt;PICA_postscript.cmd.txt&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;(для скачивания файла нажмите на кнопку правой кнопкой и выберите Save target as…)&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=40f691e6-6649-45ed-a39d-9df5a3b65a3d"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,40f691e6-6649-45ed-a39d-9df5a3b65a3d.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / OCSP</category>
      <category>Security / PKI / Setup</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=eadef99d-831f-4ea1-8ecd-8be19a40e0fe</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,eadef99d-831f-4ea1-8ecd-8be19a40e0fe.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,eadef99d-831f-4ea1-8ecd-8be19a40e0fe.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=eadef99d-831f-4ea1-8ecd-8be19a40e0fe</wfw:commentRss>
      <slash:comments>11</slash:comments>
      <title>Устанавливаем Certification Authority (часть 3) — Установка Subordinate Issuing CA</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,eadef99d-831f-4ea1-8ecd-8be19a40e0fe.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,eadef99d-831f-4ea1-8ecd-8be19a40e0fe.aspx</link>
      <pubDate>Tue, 30 Mar 2010 17:57:23 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Update 03.04.2010:&lt;/FONT&gt;&lt;/STRONG&gt; добавлен OID для PolicyStatementExtension.&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,bb8a9447-9b14-4540-add9-6df308129edd.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Устанавливаем Certification Authority — Подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В &lt;A href="http://www.sysadmins.lv/PermaLink,guid,7cddb78e-fece-4d8a-8c85-813055311492.aspx"&gt;предыдущей части&lt;/A&gt; мы подготовили, установили и настроили наш первый корневой центр сертификации. Теперь настала пора подготовить, установить и настроить издающий центр сертификации, называемый Issuing CA. Так же, Issuing CA будет совмещать роль Policy CA.&lt;/P&gt;
&lt;P&gt;Несколько слов о роли Policy CA. Технически Policy CA выражается расширением Certificate Policies в сертификате CA. Данное расширение содержит ссылку на страницу загрузки &lt;STRONG&gt;CPS&lt;/STRONG&gt; (&lt;EM&gt;Certificate Practice Statement&lt;/EM&gt;). CPS — юридический документ, регламентирующий работу центров сертификации компании, включающий в себя наиболее важные части:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Описание организации иерархии PKI, её состав и меры защиты, принятые для обеспечения физической безопасности серверов CA; 
&lt;LI&gt;Уровни ответственности и assurance для издаваемых сертификатов. 
&lt;LI&gt;Описание процедуры подачи заявки на сертификат. Этот пункт включает описание мероприятий, применяемых для идентификации реквестора (кто запрашивает сертификат), методы подачи заявки (автоэнроллмент, Web Enrollment Pages, отправка по электронной почте и др.); 
&lt;LI&gt;Описание процедуры отзыва сертификатов. Этот пункт включает порядок получения заявки на отзыв, идентификация реквестора, порядок отзыва сертификатов и порядок публикации CRL; 
&lt;LI&gt;Описание процедур при решении организационных и технических вопросов. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В реальном мире CPS является очень важным документом, регламентирующим всю работу PKI. Данный документ должен быть доступен для каждого потребителя сертификатов вашей PKI и он является поводом для доверия или недоверия к вашей PKI. Несоблюдение правил описанных в CPS со стороны владельца PKI фактически означает аннулирование доверия вашей PKI. Так же в реальном мире, вам придётся пройти аудит в случае кросс-сертификации с другой иерархией PKI.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; кросс-сертификация (cross-certification) является процедурой и механизмом доверия одной компанией PKI другой компании. Вопросы кросс-сертификации выходят за рамки рассматриваемого материала.&lt;/P&gt;
&lt;P&gt;Каждой уважающей себя компании использующей PKI необходимо иметь такой документ. Для облегчения процесса написания CPS вы можете воспользоваться рекомендациями RFC 3647: &lt;A title=http://tools.ietf.org/html/rfc3647 href="http://tools.ietf.org/html/rfc3647"&gt;http://tools.ietf.org/html/rfc3647&lt;/A&gt;, а так же посмотреть аналогичные документы коммерческих CA (например: &lt;A title=https://www.verisign.com/repository/cps/index.html href="https://www.verisign.com/repository/cps/index.html"&gt;https://www.verisign.com/repository/cps/index.html&lt;/A&gt;) и переложить их под свои условия.&lt;/P&gt;
&lt;P&gt;В данном посте я не буду обсуждать вопросы CPS, а только покажу как информация о CPS прикрепляется к сертификату CA. Однако, хочу заметить, что для использования CPS, вы ему должны назначить свой OID, который принадлежит вашей компании. Более подробно об OID'ах здесь: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,58b58ace-a862-4a7b-a74f-b6d4993a28b5.aspx"&gt;Что в OID'е тебе моём?&lt;/A&gt;&lt;/P&gt;
&lt;H1 align=center&gt;Step 1 — Preparing Subordinate Issuing CA&lt;/H1&gt;
&lt;P&gt;Предполагается, что компьютер с именем &lt;STRONG&gt;IssuingCA&lt;/STRONG&gt; установлен, обновлён и сконфигурированы параметры безопасности. Данный компьютер является членом домена Active Directory с именем Adatum.com. Данный компьютер будет выполнять роль издающего центра сертификации (&lt;STRONG&gt;Issuing Certification Authority&lt;/STRONG&gt;) с совмещением роли Policy CA. Данный центр сертификации будет постоянно подключен к сети и обслуживать заявки на сертификаты от непосредственных потребителей.&lt;/P&gt;
&lt;P&gt;Вводные данные для издающего сервера CA:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Имя CA — &lt;STRONG&gt;Adatum Class 1 Issuing SubCA 1&lt;/STRONG&gt;; 
&lt;LI&gt;Тип CA — &lt;STRONG&gt;Subordinate Enterprise&lt;/STRONG&gt;. 
&lt;LI&gt;Срок действия сертификата CA — &lt;STRONG&gt;10 лет&lt;/STRONG&gt;; 
&lt;LI&gt;Срок действия издаваемых сертификатов — &lt;STRONG&gt;не более 5 лет&lt;/STRONG&gt;; 
&lt;LI&gt;Срок действия Base CRL — &lt;STRONG&gt;5 дней&lt;/STRONG&gt; ; 
&lt;LI&gt;Срок действия Delta CRL — 12 часов; 
&lt;LI&gt;Расширения &lt;STRONG&gt;CDP&lt;/STRONG&gt; (&lt;EM&gt;CRL Distribution Point&lt;/EM&gt;) и &lt;STRONG&gt;AIA&lt;/STRONG&gt; (&lt;EM&gt;Authority Information Access&lt;/EM&gt;) будут настроены в соответствии с: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,7863aaeb-ca0f-4b51-8406-b9821179edd9.aspx"&gt;Планирование расширений CDP и AIA&lt;/A&gt;; 
&lt;LI&gt;&lt;STRONG&gt;CDP&lt;/STRONG&gt; и &lt;STRONG&gt;AIA&lt;/STRONG&gt; будут использовать только ссылки на &lt;STRONG&gt;HTTP&lt;/STRONG&gt;. LDAP использоваться не будет. 
&lt;LI&gt;&lt;STRONG&gt;OCSP&lt;/STRONG&gt; для Issuing CA предусмотрен. &lt;/LI&gt;&lt;/UL&gt;
&lt;H1 align=center&gt;Step 2 — Installing AD CS role on Subordinate Issuing CA&lt;/H1&gt;
&lt;P align=center&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; все операции выполняемые на сервере, который будет держать роль Issuing CA необходимо выполнять с правами Enterprise Admins.&lt;/P&gt;
&lt;P align=center&gt;Перед установкой роли AD CS, необходимо создать конфигурационный файл, который будет использоваться установщиком роли. Для этого в папке &lt;STRONG&gt;%systemroot%&lt;/STRONG&gt; необходимо создать файл с именем &lt;STRONG&gt;CAPolicy.inf&lt;/STRONG&gt; и внести в него следующий текст:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;&lt;STRONG&gt;[Version] &lt;BR&gt;Signature = "$Windows NT$"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;&lt;STRONG&gt;[PolicyStatementExtension] &lt;BR&gt;Policies = {Adatum}CPS&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;&lt;STRONG&gt;[{Adatum}CPS] &lt;BR&gt;URL = &lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;&lt;STRONG&gt;http://www.{adatum.com}/pki/policies.html&lt;/STRONG&gt;&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;&lt;STRONG&gt;OID = 2.5.29.32.0&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT color=#804000&gt;&lt;STRONG&gt;[certsrv_server] &lt;BR&gt;&lt;/STRONG&gt;; Устанавливаем длину ключа, которая будет использоваться &lt;BR&gt;; *только* при обновлении сертификата CA &lt;BR&gt;&lt;STRONG&gt;RenewalKeyLength = 2048&lt;/STRONG&gt; &lt;BR&gt;; Устанавливаем срок действия обновлённого сертификата. &lt;BR&gt;; Будет использоваться *только* при обновлении сертификата CA &lt;BR&gt;&lt;STRONG&gt;RenewalValidityPeriodUnits = 10&lt;/STRONG&gt; &lt;BR&gt;; Устанавливаем единицу измерения для предыдущего параметра &lt;BR&gt;&lt;STRONG&gt;RenewalValidityPeriod = years&lt;/STRONG&gt; &lt;BR&gt;; Устанавливаем периодичность публикации CRL в 5 дней &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#804000&gt;&lt;STRONG&gt;CRLPeriodUnits = 5 &lt;BR&gt;CRLPeriod = days&lt;/STRONG&gt; &lt;BR&gt;; Устанавливаем срок продления CRL. Фактический срок действия CRL для клиентов увеличивается на &lt;BR&gt;; на заданный период, который в нашем случае равен 2 неделям. Это означает, что сервер CA будет &lt;BR&gt;; публиковать новый CRL каждые 90 дней, а срок действия этого CRL будет 104 дня. Это даст &lt;BR&gt;; администраторам возможность успеть забрать новый CRL с сервера и распространить его в нужные локации &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#804000&gt;&lt;STRONG&gt;CRLOverlapUnits = 1 &lt;BR&gt;CRLOverlapPeriod = days&lt;/STRONG&gt; &lt;BR&gt;; Устанавливаем периодичность публикации CRL в 12 часов &lt;BR&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#804000&gt;CRLDeltaPeriodUnits = 12 &lt;BR&gt;CRLDeltaPeriod = hours&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT color=#804000&gt;; Включаем дискретные алгоритмы для подписей. Пока не стоит углубляться в этот момент. &lt;BR&gt;&lt;STRONG&gt;DiscreteSignatureAlgorithm = 1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; конфигурационный файл должен обязательно называться &lt;STRONG&gt;CAPolicy.inf&lt;/STRONG&gt; и обязательно храниться в &lt;STRONG&gt;%systemroot%&lt;/STRONG&gt;. Другие имена и локации файла не допускаются, иначе он попросту будет проигнорирован. Данный файл доступен для скачивания по ссылке в конце поста.&lt;/P&gt;
&lt;P&gt;Когда конфигурационный сохранён в нужном месте, можно приступать к установке роли CA. Для этого запустите &lt;STRONG&gt;Server Manager&lt;/STRONG&gt;, перейдите на секцию &lt;STRONG&gt;Roles&lt;/STRONG&gt; и нажмите&lt;STRONG&gt; Add Roles&lt;/STRONG&gt;. После этого запустится мастер установки ролей.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Примечание:&lt;/STRONG&gt; если у вас используется &lt;STRONG&gt;HSM&lt;/STRONG&gt; (&lt;EM&gt;Hardware Security Module&lt;/EM&gt;), его драйвер должен быть установлен заранее. И на шаге 8 в списке криптопровайдеров необходимо выбрать CSP производителя вашего HSM.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; в ходе установки роли AD CS на шаге 9 вместо Adatum укажите название вашей компании. Места, в которых необходимо прописать свои данные заключены в фигурные скобки — &lt;STRONG&gt;{}&lt;/STRONG&gt;.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;На странице &lt;STRONG&gt;Before You Begin&lt;/STRONG&gt; вы можете ознакомиться с информацией об этом мастере. После ознакомления нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Select Roles&lt;/STRONG&gt; выберите &lt;STRONG&gt;Active Directory Certificate Services&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На следующей странице прочтите вводную информацию о роли AD CS и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Role Services&lt;/STRONG&gt; убедитесь что установлен чек-бокс только напротив &lt;STRONG&gt;Certification Authority&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Setup Type&lt;/STRONG&gt; выберите &lt;STRONG&gt;Enterprise&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице выбора типа CA выберите &lt;STRONG&gt;Subordinate CA&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Private Key&lt;/STRONG&gt; выберите &lt;STRONG&gt;Create a new private key&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Cryptography&lt;/STRONG&gt; выберите следующий криптопровайдер из списка: &lt;STRONG&gt;RSA#Microsoft Software Key Storage Provider&lt;/STRONG&gt; &lt;BR&gt;Установите длину ключа в &lt;STRONG&gt;2048 бит&lt;/STRONG&gt; и алгоритм подписи в &lt;STRONG&gt;SHA1&lt;/STRONG&gt;. После чего нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице выбора имени CA введите следующее: &lt;BR&gt;{Adatum} Class 1 Issuing SubCA 1. &lt;BR&gt;в поле &lt;STRONG&gt;Distinguished name suffix&lt;/STRONG&gt; укажите примерно такое: &lt;BR&gt;OU=Information Systems,O={Adatum Ltd.},C={LV} &lt;BR&gt;и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Certificate Request&lt;/STRONG&gt; установите переключатель на &lt;STRONG&gt;Save certificate request&lt;/STRONG&gt; и укажите путь размещения файла запроса. Поскольку наш корневой CA недоступен из домена, мы сохраним файл запроса и отправим его на корневой сервер. Нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Certificate database&lt;/STRONG&gt; укажите путь, по которому будет храниться БД сервера CA. Можно использовать и дефолтное или, если на сервере есть отказоустойчивый массив (Raid1, Raid5 и производные от них), рекомендуется размещать БД именно на них. Нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Confirmation&lt;/STRONG&gt; просмотрите настройки, которые вы указали. Если вы ошиблись на каком-то этапе — вернитесь назад и исправьте ошибку. Если всё правильно, нажмите &lt;STRONG&gt;Install&lt;/STRONG&gt; и подождите пока мастер сконфигурирует роль. 
&lt;LI&gt;На странице &lt;STRONG&gt;Results&lt;/STRONG&gt; ознакомьтесь с результатами установки и необходимыми шагами для завершения установки. Закройте мастер кнопкой &lt;STRONG&gt;Close&lt;/STRONG&gt;. &lt;/LI&gt;&lt;/OL&gt;
&lt;H1 align=center&gt;Step 3 — Completing Subordinate Issuing CA installation&lt;/H1&gt;
&lt;P&gt;На этапе установки Issuing CA у нас сгенерировался файл запроса, который нужно отправить на наш корневой центр сертификации, чтобы тот его подписал и выдал нам рабочий сертификат. Поэтому скопируйте файл запроса (должен быть сохранён по пути указанному в пункте 10) на съёмный носитель и перенесите его на корневой CA. На корневом CA выполните следующие шаги:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Запустите оснастку &lt;STRONG&gt;Certification Authority&lt;/STRONG&gt; из папки &lt;STRONG&gt;Administrative Tools&lt;/STRONG&gt;. 
&lt;LI&gt;Выделите секцию с именем CA, нажмите &lt;STRONG&gt;Action –&amp;gt; All Tasks –&amp;gt; Submit new request&lt;/STRONG&gt;. 
&lt;LI&gt;В диалоговом окне укажите файл запроса, который был сгенерирован на этапе установки &lt;STRONG&gt;Issuing CA&lt;/STRONG&gt;. 
&lt;LI&gt;Теперь запрос находится в очереди ожидания. 
&lt;LI&gt;Перейдите в секцию &lt;STRONG&gt;Pending Requests&lt;/STRONG&gt;, выделите нужный запрос (он там скорее всего будет единственный), нажмите правой кнопкой и нажмите &lt;STRONG&gt;Issue&lt;/STRONG&gt;. 
&lt;LI&gt;Должно появиться диалоговое окно сохранения файла сертификата. Сохраните сертификат в папке &lt;STRONG&gt;C:\CertData&lt;/STRONG&gt;. 
&lt;LI&gt;Если диалоговое окно автоматически не появилось, перейдите в секцию &lt;STRONG&gt;Issued certificates&lt;/STRONG&gt;, откройте сертификат, перейдите на вкладку &lt;STRONG&gt;Details&lt;/STRONG&gt; и там нажмите кнопку &lt;STRONG&gt;Copy to file&lt;/STRONG&gt;. Сохраните файл в папку &lt;STRONG&gt;C:\CertData&lt;/STRONG&gt;. 
&lt;LI&gt;Скопируйте всё содержимое папки &lt;STRONG&gt;C:\CertData&lt;/STRONG&gt; на съёмный носитель. 
&lt;LI&gt;Выйдите из системы или выключите сервер. На данном этапе в следующий раз наш Offline Root CA потребуется включить через 3 месяца для публикации нового CRL или когда потребуется отправить ещё один запрос или отозвать какой-то сертификат. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Вернитесь на Issuing CA для завершения инсталляции.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Скопируйте файлы со съёмного носителя (содержимое папки CertData, которое вы скопировали на предыдущем этапе) на локальный диск. Например, в ту же папку &lt;STRONG&gt;C:\CertData&lt;/STRONG&gt;. 
&lt;LI&gt;Запустите консоль &lt;STRONG&gt;CMD&lt;/STRONG&gt; с расширенными привилегиями (elevated mode) и выполните в ней следующие команды: &lt;BR&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;certutil –addstore Root C:\CertData\Adatum_RCA.crt &lt;BR&gt;certutil –addstore Root C:\CertData\Adatum_RCA.crl &lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;где &lt;STRONG&gt;Adatum_RCA.crt&lt;/STRONG&gt; — файл сертификата корневого центра сертификации. Его нужно установить для обеспечения доверия этому и другим сертификатам в его цепочке. &lt;BR&gt;где &lt;STRONG&gt;Adatum_RCA.crl&lt;/STRONG&gt; — файл списка отзыва корневого центра сертификации. Его нужно установить для обеспечения возможности проверки сертификатов на отзыв. В противном случае при установке Issuing CA, он не сможет проверить на отзыв свой собственный сертификат. 
&lt;LI&gt;Убедитесь, что ошибок не произошло. Если это так, закройте консоль CMD. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Теперь можно установить сертификат на сервер CA. Для этого запустите оснастку &lt;STRONG&gt;Certification Authority&lt;/STRONG&gt; из папки &lt;STRONG&gt;Administrative Tools&lt;/STRONG&gt;. В оснастке выделите имя центра сертификации, нажмите &lt;STRONG&gt;Action –&amp;gt; All tasks –&amp;gt; Install CA certificate&lt;/STRONG&gt;. В диалоговом окне перейдите на папку &lt;STRONG&gt;C:\CertData&lt;/STRONG&gt; и укажите файл &lt;STRONG&gt;SubCA1.cer&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Open&lt;/STRONG&gt;. Если импорт прошёл без ошибок, сертификат CA был установлен успешно. Но запускать службу Certificate Services ещё рано.&lt;/P&gt;
&lt;P&gt;Нам осталось написать и выполнить послеустановочный скрипт, который сконфигурирует сервер CA и подготовит AD к успешной работе. Но об этом в следующий раз.&lt;/P&gt;
&lt;DIV&gt;
&lt;P style="BORDER-BOTTOM: silver 1px solid; POSITION: relative; BORDER-LEFT: silver 1px solid; WIDTH: 240px; HEIGHT: 66px; BORDER-TOP: silver 1px solid; BORDER-RIGHT: silver 1px solid"&gt;&lt;SPAN style="FONT-FAMILY: verdana,arial,sans-serif; CURSOR: pointer"&gt;&lt;A style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 240px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 66px; BORDER-LEFT-WIDTH: 0px" href="http://www.sysadmins.lv/content/pki/scripts/PICA_CAPolicy.inf.txt" target=_self&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 240px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 66px; BORDER-LEFT-WIDTH: 0px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/transparent.gif"&gt; &lt;/A&gt;&lt;A style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" href="http://www.sysadmins.lv/content/pki/scripts/PICA_CAPolicy.inf.txt" target=_self&gt;&lt;IMG style="POSITION: absolute; TOP: 6px; LEFT: 5px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/txt.png" width=48 height=45&gt; &lt;/A&gt;&lt;A style="TEXT-DECORATION: none" href="http://www.sysadmins.lv/content/pki/scripts/PICA_CAPolicy.inf.txt" target=_self&gt;&lt;SPAN style="POSITION: absolute; WIDTH: 167px; WHITE-SPACE: nowrap; COLOR: #555555; OVERFLOW: hidden; TOP: 7px; MARGIN-RIGHT: 5px; LEFT: 67px"&gt;&lt;SPAN style="DISPLAY: block; VISIBILITY: hidden"&gt;1&lt;/SPAN&gt; &lt;SPAN style="LINE-HEIGHT: 1.25em; DISPLAY: block; CURSOR: pointer; TEXT-DECORATION: none; PADDING-TOP: 1px" title="Download file"&gt;TXT file &lt;BR&gt;2,59 KB &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;A style="POSITION: absolute; WIDTH: 167px; WHITE-SPACE: nowrap; COLOR: #0066a7; OVERFLOW: hidden; TOP: 7px; MARGIN-RIGHT: 5px; TEXT-DECORATION: none; LEFT: 67px" href="http://www.sysadmins.lv/content/pki/scripts/PICA_CAPolicy.inf.txt" target=_self alt="Download File"&gt;PICA_CAPolicy.inf.txt&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;(для скачивания файла нажмите на кнопку правой кнопкой и выберите Save target as…)&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=eadef99d-831f-4ea1-8ecd-8be19a40e0fe"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,eadef99d-831f-4ea1-8ecd-8be19a40e0fe.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Setup</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=7cddb78e-fece-4d8a-8c85-813055311492</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,7cddb78e-fece-4d8a-8c85-813055311492.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,7cddb78e-fece-4d8a-8c85-813055311492.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=7cddb78e-fece-4d8a-8c85-813055311492</wfw:commentRss>
      <slash:comments>14</slash:comments>
      <title>Устанавливаем Certification Authority (часть 2) — Установка Offline Root CA</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,7cddb78e-fece-4d8a-8c85-813055311492.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,7cddb78e-fece-4d8a-8c85-813055311492.aspx</link>
      <pubDate>Mon, 22 Mar 2010 17:44:38 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,bb8a9447-9b14-4540-add9-6df308129edd.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Устанавливаем Certification Authority — Подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В &lt;A href="http://www.sysadmins.lv/PermaLink,guid,5ee5feb6-bcb0-4a1f-adfc-de989556785a.aspx"&gt;первой части&lt;/A&gt; установки Certification Authority мы рассмотрели общие вопросы планирования иерархии центров сертификации для сферических задач в вакууме. Я намерено опустил организационные вопросы, которые тоже должны решаться на этапе планирования и остановился лишь на технических аспектах планирования. Итак, как мы договорились в &lt;A href="http://www.sysadmins.lv/PermaLink,guid,5ee5feb6-bcb0-4a1f-adfc-de989556785a.aspx"&gt;первой части&lt;/A&gt;, у нас будет двухуровневая иерархия с Offline Root CA и Online Issuing&amp;nbsp; Subordinate CA.&lt;/P&gt;
&lt;H1 align=center&gt;Step 1 — Preparing to install&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; по различым причинам я не описываю процедуру установки и настройки Certificate Services на систему под управлением Windows Server 2003. Многое из изложенного будет справедливо и для Windows Server 2003, но часть из этого не будет справедливо для него.&lt;/P&gt;
&lt;P&gt;Предполагается, что компьютер с именем &lt;STRONG&gt;RootCA&lt;/STRONG&gt; установлен, обновлён и сконфигурированы параметры безопасности. Данный компьютер будет выполнять роль корневого центра сертификации (&lt;STRONG&gt;Root Certification Authority&lt;/STRONG&gt;). Поскольку корневой CA — самая важная точка в иерархии PKI, этот сервер будет нормально выключен и включаться только для следующих целей:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Отправка новой заявки на сертификат; 
&lt;LI&gt;Публикация CRL; 
&lt;LI&gt;Обновление сертификата самого CA; 
&lt;LI&gt;Установка обновлений безопасности. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В остальное время он должен быть выключен и физический доступ к нему должен быть ограничен. Данный сервер не будет издавать сертификаты конечным потребителям, поэтому выключенное состояние никак на потребителях не отразится.&lt;/P&gt;
&lt;P&gt;Вводные данные для корневого сервера CA:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Имя CA — &lt;STRONG&gt;Adatum Class 1 Root Certification Authority&lt;/STRONG&gt;; 
&lt;LI&gt;Тип CA — &lt;STRONG&gt;Standalone&lt;/STRONG&gt;. 
&lt;LI&gt;Срок действия сертификата CA — &lt;STRONG&gt;10 лет&lt;/STRONG&gt;; 
&lt;LI&gt;Срок действия издаваемых сертификатов — &lt;STRONG&gt;10 лет&lt;/STRONG&gt;; 
&lt;LI&gt;Срок действия Base CRL — &lt;STRONG&gt;90 дней&lt;/STRONG&gt; (3 месяца); 
&lt;LI&gt;Delta CRL публиковаться не будет; 
&lt;LI&gt;Расширения &lt;STRONG&gt;CDP&lt;/STRONG&gt; (&lt;EM&gt;CRL Distribution Point&lt;/EM&gt;) и &lt;STRONG&gt;AIA&lt;/STRONG&gt; (&lt;EM&gt;Authority Information Access&lt;/EM&gt;) будут настроены в соответствии с: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,7863aaeb-ca0f-4b51-8406-b9821179edd9.aspx"&gt;Планирование расширений CDP и AIA&lt;/A&gt;; 
&lt;LI&gt;&lt;STRONG&gt;CDP&lt;/STRONG&gt; и &lt;STRONG&gt;AIA&lt;/STRONG&gt; будут использовать только ссылки на &lt;STRONG&gt;HTTP&lt;/STRONG&gt;. LDAP использоваться не будет. 
&lt;LI&gt;&lt;STRONG&gt;OCSP&lt;/STRONG&gt; для Offline Root CA предусмотрен. &lt;/LI&gt;&lt;/UL&gt;
&lt;H1 align=center&gt;Step 2 — Installing AD CS role on Offline Root CA&lt;/H1&gt;
&lt;P&gt;Перед установкой роли AD CS, необходимо создать конфигурационный файл, который будет использоваться установщиком роли. Для этого в папке &lt;STRONG&gt;%systemroot%&lt;/STRONG&gt; необходимо создать файл с именем &lt;STRONG&gt;CAPolicy.inf&lt;/STRONG&gt; и внести в него следующий текст:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;&lt;STRONG&gt;[Version] &lt;BR&gt;Signature= "$Windows NT$"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;&lt;STRONG&gt;[certsrv_server]&lt;/STRONG&gt; &lt;BR&gt;; Устанавливаем длину ключа, которая будет использоваться &lt;BR&gt;; *только* при обновлении сертификата CA &lt;BR&gt;&lt;STRONG&gt;RenewalKeyLength = 2048&lt;/STRONG&gt; &lt;BR&gt;; Устанавливаем срок действия обновлённого сертификата. &lt;BR&gt;; Будет использоваться *только* при обновлении сертификата CA &lt;BR&gt;&lt;STRONG&gt;RenewalValidityPeriodUnits = 10&lt;/STRONG&gt; &lt;BR&gt;; Устанавливаем единицу измерения для предыдущего параметра &lt;BR&gt;&lt;STRONG&gt;RenewalValidityPeriod = years&lt;/STRONG&gt; &lt;BR&gt;; Устанавливаем периодичность публикации CRL в 90 дней (или 3 месяца) &lt;BR&gt;&lt;STRONG&gt;CRLPeriodUnits = 90 &lt;BR&gt;CRLPeriod = days &lt;BR&gt;&lt;/STRONG&gt;; Устанавливаем срок продления CRL. Фактический срок действия CRL для клиентов увеличивается на &lt;BR&gt;; на заданный период, который в нашем случае равен 2 неделям. Это означает, что сервер CA будет &lt;BR&gt;; публиковать новый CRL каждые 90 дней, а срок действия этого CRL будет 104 дня. Это даст &lt;BR&gt;; администраторам возможность успеть забрать новый CRL с сервера и распространить его в нужные локации &lt;BR&gt;&lt;STRONG&gt;CRLOverlapUnits = 2 &lt;BR&gt;CRLOverlapPeriod = weeks &lt;BR&gt;&lt;/STRONG&gt;; Отключаем публикацию Delta CRL &lt;BR&gt;&lt;STRONG&gt;CRLDeltaPeriodUnits = 0 &lt;BR&gt;CRLDeltaPeriod = hours &lt;BR&gt;&lt;/STRONG&gt;; Включаем дискретные алгоритмы для подписей. Пока не стоит углубляться в этот момент. &lt;BR&gt;&lt;STRONG&gt;DiscreteSignatureAlgorithm = 1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; конфигурационный файл должен обязательно называться &lt;STRONG&gt;CAPolicy.inf&lt;/STRONG&gt; и обязательно храниться в &lt;STRONG&gt;%systemroot%&lt;/STRONG&gt;. Другие имена и локации файла не допускаются, иначе он попросту будет проигнорирован. Данный файл доступен для скачивания по ссылке в конце поста.&lt;/P&gt;
&lt;P&gt;Когда конфигурационный сохранён в нужном месте, можно приступать к установке роли CA. Для этого запустите &lt;STRONG&gt;Server Manager&lt;/STRONG&gt;, перейдите на секцию &lt;STRONG&gt;Roles&lt;/STRONG&gt; и нажмите&lt;STRONG&gt; Add Roles&lt;/STRONG&gt;. После этого запустится мастер установки ролей.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; если у вас используется &lt;STRONG&gt;HSM&lt;/STRONG&gt; (&lt;EM&gt;Hardware Security Module&lt;/EM&gt;), его драйвер должен быть установлен заранее. И на шаге 8 в списке криптопровайдеров необходимо выбрать CSP производителя вашего HSM.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; в ходе установки роли AD CS на шаге 9 вместо Adatum укажите название вашей компании. Места, в которых необходимо прописать свои данные заключены в фигурные скобки — &lt;STRONG&gt;{}&lt;/STRONG&gt;.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;На странице &lt;STRONG&gt;Before You Begin&lt;/STRONG&gt; вы можете ознакомиться с информацией об этом мастере. После ознакомления нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Select Roles&lt;/STRONG&gt; выберите &lt;STRONG&gt;Active Directory Certificate Services&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На следующей странице прочтите вводную информацию о роли AD CS и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Role Services&lt;/STRONG&gt; убедитесь что установлен чек-бокс только напротив &lt;STRONG&gt;Certification Authority&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Setup Type&lt;/STRONG&gt; выберите &lt;STRONG&gt;Standalone&lt;/STRONG&gt;. Поскольку компьютер не является членом домена, Enteprise нам недоступен. Нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице выбора типа CA выберите &lt;STRONG&gt;Root CA&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Private Key&lt;/STRONG&gt; выберите &lt;STRONG&gt;Create a new private key&lt;/STRONG&gt; и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Cryptography&lt;/STRONG&gt; выберите следующий криптопровайдер из списка: &lt;STRONG&gt;RSA#Microsoft Software Key Storage Provider&lt;/STRONG&gt; &lt;BR&gt;Установите длину ключа в &lt;STRONG&gt;2048 бит&lt;/STRONG&gt; и алгоритм подписи в &lt;STRONG&gt;SHA1&lt;/STRONG&gt;. После чего нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице выбора имени CA введите следующее: &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#804000&gt;{Adatum} Class 1 Root Certification Authority&lt;/FONT&gt;. &lt;BR&gt;&lt;BR&gt;в поле &lt;STRONG&gt;Distinguished name suffix&lt;/STRONG&gt; укажите примерно такое: &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#804000&gt;OU=Information Systems,O={Adatum Ltd.},C={LV}&lt;/FONT&gt; &lt;BR&gt;&lt;BR&gt;и нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Validity Period&lt;/STRONG&gt; укажите срок действия сертификата. В большинстве случаев &lt;STRONG&gt;10 лет&lt;/STRONG&gt; — наиболее оптимальный срок действия корневого сертификата. Нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Certificate database&lt;/STRONG&gt; укажите путь, по которому будет храниться БД сервера CA. Можно использовать и дефолтное или, если на сервере есть отказоустойчивый массив (Raid1, Raid5 и производные от них), рекомендуется размещать БД именно на них. Нажмите &lt;STRONG&gt;Next&lt;/STRONG&gt;. 
&lt;LI&gt;На странице &lt;STRONG&gt;Confirmation&lt;/STRONG&gt; просмотрите настройки, которые вы указали. Если вы ошиблись на каком-то этапе — вернитесь назад и исправьте ошибку. Если всё правильно, нажмите &lt;STRONG&gt;Install&lt;/STRONG&gt; и подождите пока мастер сконфигурирует роль. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; у вас может быть соблазн выбрать для корневого сертификата более длинный ключ. Например, 4096 бит вместо 2048. Однако, следует учитывать что некоторые приложения и устройства просто неспособны проверять цепочки сертификатов, длина ключей которых больше 2048 бит. Поэтому для совместимости выбираем именно 2048 бит.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; у вас может быть соблазн выбрать более стойкий алгоритм подписи. Например, SHA256 или SHA384. Однако, следует учесть, что предыдущие системы (например, Windows XP/Server 2003) могут испытывать трудности с проверкой подписей с использованием алгоритмов SHA-2/SHA-3. Более подробно можно почитать тут: &lt;A title=http://blogs.msdn.com/alejacma/archive/2009/01/23/sha-2-support-on-windows-xp.aspx href="http://blogs.msdn.com/alejacma/archive/2009/01/23/sha-2-support-on-windows-xp.aspx"&gt;http://blogs.msdn.com/alejacma/archive/2009/01/23/sha-2-support-on-windows-xp.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Когда мастер установит роль AD CS, вы можете уже запустить оснастку &lt;STRONG&gt;Certification Authority&lt;/STRONG&gt; из папки &lt;STRONG&gt;Administrative Tools&lt;/STRONG&gt;. Однако, на этом ещё не всё закончилось. Сейчас нам необходимо применить скрипт, который сконфигурирует остальные настройки.&lt;/P&gt;
&lt;H1 align=center&gt;Step 3 — Finalizing Offline Root CA installation&lt;/H1&gt;
&lt;P&gt;Для настройки следующих параметров можно воспользоваться следующим скриптом (с правкой его под местные условия):&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; места в которых необходимо подставить свои данные заключены в фигурные скобки — &lt;STRONG&gt;{}&lt;/STRONG&gt;.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;&lt;FONT color=#804000&gt;:: Создаём папку в корне диска C, где будут храниться CRT и CRL файлы &lt;BR&gt;&lt;STRONG&gt;md C:\CertData&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-ALIGN: left"&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;&lt;FONT color=#804000&gt;:: Задаём точки публикации CRL файлов и ссылки, публикуемые в издаваемых сертификатах. То же самое и для CRT файлов. &lt;BR&gt;&lt;STRONG&gt;certutil -setreg CA\CRLPublicationURLs "65:%windir%\system32\CertSrv\CertEnroll\%%3%%8%%9.crl\n65:C:\CertData\{Adatum}_RCA%%8.crl\n2:&lt;/STRONG&gt;&lt;STRONG&gt;http://www.{adatum.com}/pki/{Adatum}_RCA%%8.crl"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt; &lt;BR&gt;&lt;FONT color=#804000&gt;&lt;FONT size=2 face=Consolas&gt;certutil -setreg CA\CACertPublicationURLs "1:%windir%\system32\CertSrv\CertEnroll\%%1_%%3%%4.crt\n2:&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;http://www.{adatum.com}/pki/{Adatum}_RCA%%4.crt"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style="TEXT-ALIGN: left"&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: Если будет использоваться OCSP для корневого CA, расширение AIA должно выглядеть примерно cледующим образом: &lt;BR&gt;:: &lt;FONT color=#804000&gt;&lt;FONT size=2 face=Consolas&gt;&lt;STRONG&gt;certutil -setreg CA\CACertPublicationURLs "1:%windir%\system32\CertSrv\CertEnroll\%%1_%%3%%4.crt\n2:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;STRONG&gt;http://www.{adatum.com}/pki/{Adatum}_RCA%%4.crt\n32:http://www.{adatum.com}/ocsp"&lt;/STRONG&gt; &lt;BR&gt;:: учтите, что при использовании этого варианта, предыдущую строку требуется закомментировать или удалить &lt;BR&gt;:: а эту строку раскомментировать соответственно.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: Поскольку мы не можем управлять публикацией CRT файлов, мы его &lt;BR&gt;:: переименовываем в нужное имя и копируем в папку CertData &lt;BR&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;ren %windir%\system32\CertSrv\CertEnroll\*.crt {Adatum}_RCA.crt &lt;BR&gt;copy %windir%\system32\CertSrv\CertEnroll\{Adatum}_RCA.crt C:\CertData&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: задаём срок действия издаваемых сертификатов равным 10 лет &lt;BR&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;certutil -setreg CA\ValidityPeriodUnits 10 &lt;BR&gt;certutil -setreg CA\ValidityPeriod "Years"&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: Задаём параметры публикации CRL (повторяем, что было указано в CAPolicy.inf) &lt;BR&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;certutil -setreg CA\CRLPeriodUnits 90 &lt;BR&gt;certutil -setreg CA\CRLPeriod "Days" &lt;BR&gt;certutil -setreg CA\CRLDeltaPeriodUnits 0 &lt;BR&gt;certutil -setreg CA\CRLDeltaPeriod "Days" &lt;BR&gt;certutil -setreg CA\CRLOverlapPeriod "Weeks" &lt;BR&gt;certutil -setreg CA\CRLOverlapUnits 2&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;&lt;FONT color=#804000&gt;:: Включаем DiscreteSignatureAlgorithm &lt;BR&gt;&lt;STRONG&gt;Certutil -setreg CA\csp\DiscreteSignatureAlgorithm 1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;:: включаем полный аудит для сервера CA &lt;BR&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;certutil -setreg CA\AuditFilter 127 &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT color=#804000&gt;:: Включаем поддержку сертификатов OCSP Response Signing на Offline CA: &lt;BR&gt;&lt;STRONG&gt;certutil -v -setreg policy\editflags +EDITF_ENABLEOCSPREVNOCHECK&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#804000 size=2 face=Consolas&gt;&lt;STRONG&gt;net stop certsvc &amp;amp;&amp;amp; net start certsvc&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;&lt;FONT color=#804000&gt;:: Публикуем новый CRL в новую локацию. &lt;BR&gt;&lt;STRONG&gt;certutil -CRL&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; данный скрипт необходимо запустить только один раз. Скрипт доступен для скачивания по ссылке в конце поста.&lt;/P&gt;
&lt;P&gt;Данный скрипт создаст в корне диска C: папку CertData, в которой будут храниться опубликованные списки CRL и файлы сертификатов сервера CA. При этом CRL'ы будут автоматически публиковаться в эту папку, а CRT нет. Это связано с тем, что начиная с Windows Server 2003 мы больше не имеем возможности управлять публикацей файлов CRT. Для этого мы берём файл из оригинальной папки CertEnroll, переименовываем в нужное нам имя и копируем в папку CertData. Здесь я ещё хочу остановиться на построении ссылок в CDP и AIA, поскольку они выглядят предельно ужасно. Давайте разберёмся с этим.&lt;/P&gt;
&lt;H1 align=center&gt;Step 4 — Understanding post-installation script&lt;/H1&gt;
&lt;P&gt;Возьмём следующую строку: &lt;/P&gt;
&lt;P&gt;"65:%windir%\system32\CertSrv\CertEnroll\%%3%%8%%9.crl\n65:C:\CertData\Adatum_RCA%%8.crl\n2:http://www.adatum.com/pki/Adatum_RCA%%8.crl"&lt;/P&gt;
&lt;P&gt;Как мы видим, данная строка строится из 3-х составляющих:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;65:&lt;/STRONG&gt;%windir%\system32\CertSrv\CertEnroll\%%3%%8%%9.crl 
&lt;LI&gt;&lt;STRONG&gt;65:&lt;/STRONG&gt;C:\CertData\Adatum_RCA%%8.crl 
&lt;LI&gt;&lt;STRONG&gt;2:&lt;/STRONG&gt;http://www.adatum.com/pki/Adatum_RCA%%8.crl &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Каждое составляющее является отдельной ссылкой, которую видно во вкладке Extensions свойств сервера CA в оснастке CertSrv.msc. Все эти составляющие пишутся в одну строку и разделяются символом новой строки: &lt;STRONG&gt;\n&lt;/STRONG&gt;. Парсер CMD автоматически режет строку на куски по знаку новой строки. Когда мы разложили строку на более читабельные ссылки, пора и заняться ими. Первое, что нам бросается в глаза — это циферки перед ссылками. Циферки означают сумму параметров публикации. Т.е. что данная ссылка будет делать, публиковать физический файл, добавляться в расширение сертификатов или в расширение CRL и т.д. Это эквивалентно галочкам во вкладке &lt;STRONG&gt;Extensions&lt;/STRONG&gt;. Каждая такая галочка имеет определённый числовой эквивалент (числовое значение). Предлагаю 2 таблички, которые покажут соответствие каждой галочке числовому значению для ссылок в расширении CDP и AIA:&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=819 align=center&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=394&gt;&lt;STRONG&gt;Название галочки в CDP&lt;/STRONG&gt; &lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=57&gt;&lt;STRONG&gt;Числовое значение&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=304&gt;&lt;STRONG&gt;Название галочки в AIA&lt;/STRONG&gt; &lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&lt;STRONG&gt;Числовое значение&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=394&gt;Publish CRLs to this location. &lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=57&gt;1&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=304&gt;
&lt;P&gt;Include in the AIA extension of issued &lt;BR&gt;certificates.&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;2&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=394&gt;Include in all issued certificates. &lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=57&gt;2&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=304&gt;
&lt;P&gt;Include in the Online Certificate Status &lt;BR&gt;Protocol (OCSP) extension.&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;32&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=394&gt;Include in CRLs. Clients use this to find delta CRL locations. &lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=57&gt;4&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=304&gt;
&lt;P&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=394&gt;Include in the CDP extension of CRLs. &lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=57&gt;8&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=304&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=394&gt;Publish delta CRLs to this location. Specifies where to publish in AD DS when publishing to LDAP URLs. &lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=57&gt;64&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=304&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=394&gt;Include in the IDP extension of issued CRLs. &lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=57&gt;128&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=center width=304&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Как видите, для расширения CDP число 65 является суммой чисел 1 и 64. Исходя из таблички мы можем узнать, что ссылка с таким префиксом публикует физические файлы для Base и Delta CRL. А цифра 2 (в третьей ссылке) означает, что эта ссылка будет добавляться в расширение CDP издаваемых сертификатов. Префикс ставится всегда перед самой ссылкой и отделяется от неё двоеточием — &lt;STRONG&gt;:&lt;/STRONG&gt;. То же самое и касается ссылок в AIA.&lt;/P&gt;
&lt;P&gt;Теперь осталось разобраться со знаками процента (&lt;STRONG&gt;%&lt;/STRONG&gt;) и цифрами после них. Например: %windir%\system32\CertSrv\CertEnroll\&lt;STRONG&gt;%%3%%8%%9&lt;/STRONG&gt;.crl. Данные кракозябры представляют переменные, которые вы можете указывать при создании ссылок. Вот ещё одна табличка, которая показывает соответствие переменных их числовым значениям:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; данные значения справедливы как для расширения CDP, так и AIA.&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=550 align=center&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;&lt;STRONG&gt;Переменная в редакторе расширений CDP и AIA&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=81&gt;&lt;STRONG&gt;Переменная в скрипте&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=93&gt;&lt;STRONG&gt;Используемое &lt;BR&gt;расширение&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;&amp;lt;ServerDNSName&amp;gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%1&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;CDP/AIA&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;
&lt;P&gt;&amp;lt;ServerShortName&amp;gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%2&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;CDP/AIA&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;
&lt;P&gt;&amp;lt;CaName&amp;gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%3&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;CDP/AIA&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;
&lt;P&gt;&amp;lt;CertificateName&amp;gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%4&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;AIA&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;&amp;lt;ConfigurationContainer&amp;gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%6&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;CDP/AIA&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;
&lt;P&gt;&amp;lt;CATruncatedName&amp;gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%7&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;CDP/AIA&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;
&lt;P&gt;&amp;lt;CRLNameSuffix&amp;gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%8&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;CDP&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;&amp;lt;DeltaCRLAllowed&amp;gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%9&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;CDP&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;
&lt;P&gt;&amp;lt;CDPObjectClass&amp;gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%10&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;CDP&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: left" vAlign=top width=374&gt;
&lt;P&gt;&amp;lt;CAObjectClass&amp;gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=81&gt;%11&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=top width=93&gt;CDP/AIA&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Особо пытливые умы должны заметить, что в таблице указан один знак процента, а в скрипте по два знака. Никакой магии здесь нет, просто парсер CMD использует проценты для других целей. Следовательно, чтобы парсер CMD его не удалил, знак процента необходимо заэскейпить другим знаком процента. Более подробно об этих переменных и их значениях можно прочитать здесь:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc775373(WS.10).aspx"&gt;CRL Publishing Properties&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc782266(WS.10).aspx"&gt;AIA Publishing Properties&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc784969(WS.10).aspx"&gt;CRL Distribution Point Replacement Token&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Правда, на технетах информация несколько устаревшая, но в целом сгодится для понимания.&lt;/P&gt;
&lt;P&gt;Вот и всё, что я хотел рассказать про установку Offline Root CA. В следующей части я расскажу про установку Online Issuing CA и что-нибудь ещё.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Файлы для скачивания:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;P style="BORDER-BOTTOM: silver 1px solid; POSITION: relative; BORDER-LEFT: silver 1px solid; WIDTH: 240px; HEIGHT: 66px; BORDER-TOP: silver 1px solid; BORDER-RIGHT: silver 1px solid"&gt;&lt;SPAN style="FONT-FAMILY: verdana,arial,sans-serif; CURSOR: pointer"&gt;&lt;A style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 240px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 66px; BORDER-LEFT-WIDTH: 0px" href="http://www.sysadmins.lv/content/pki/scripts/RCA_CAPolicy.inf.txt" target=_self&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 240px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 66px; BORDER-LEFT-WIDTH: 0px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/transparent.gif"&gt; &lt;/A&gt;&lt;A style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" href="http://www.sysadmins.lv/content/pki/scripts/RCA_CAPolicy.inf.txt" target=_self&gt;&lt;IMG style="POSITION: absolute; TOP: 6px; LEFT: 5px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/txt.png" width=48 height=45&gt; &lt;/A&gt;&lt;A style="TEXT-DECORATION: none" href="http://www.sysadmins.lv/content/pki/scripts/RCA_CAPolicy.inf.txt" target=_self&gt;&lt;SPAN style="POSITION: absolute; WIDTH: 167px; WHITE-SPACE: nowrap; COLOR: #555555; OVERFLOW: hidden; TOP: 7px; MARGIN-RIGHT: 5px; LEFT: 67px"&gt;&lt;SPAN style="DISPLAY: block; VISIBILITY: hidden"&gt;1&lt;/SPAN&gt; &lt;SPAN style="LINE-HEIGHT: 1.25em; DISPLAY: block; CURSOR: pointer; TEXT-DECORATION: none; PADDING-TOP: 1px" title="Download file"&gt;TXT file &lt;BR&gt;2,30 KB &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;A style="POSITION: absolute; WIDTH: 167px; WHITE-SPACE: nowrap; COLOR: #0066a7; OVERFLOW: hidden; TOP: 7px; MARGIN-RIGHT: 5px; TEXT-DECORATION: none; LEFT: 67px" href="http://www.sysadmins.lv/content/pki/scripts/RCA_CAPolicy.inf.txt" target=_self alt="Download File"&gt;RCA_CAPolicy.inf.txt&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;P style="BORDER-BOTTOM: silver 1px solid; POSITION: relative; BORDER-LEFT: silver 1px solid; WIDTH: 240px; HEIGHT: 66px; BORDER-TOP: silver 1px solid; BORDER-RIGHT: silver 1px solid"&gt;&lt;SPAN style="FONT-FAMILY: verdana,arial,sans-serif; CURSOR: pointer"&gt;&lt;A style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 240px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 66px; BORDER-LEFT-WIDTH: 0px" href="http://www.sysadmins.lv/content/pki/scripts/RCA_postscript.cmd.txt" target=_self&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 240px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 66px; BORDER-LEFT-WIDTH: 0px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/transparent.gif"&gt; &lt;/A&gt;&lt;A style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" href="http://www.sysadmins.lv/content/pki/scripts/RCA_postscript.cmd.txt" target=_self&gt;&lt;IMG style="POSITION: absolute; TOP: 6px; LEFT: 5px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/txt.png" width=48 height=45&gt; &lt;/A&gt;&lt;A style="TEXT-DECORATION: none" href="http://www.sysadmins.lv/content/pki/scripts/RCA_postscript.cmd.txt" target=_self&gt;&lt;SPAN style="POSITION: absolute; WIDTH: 167px; WHITE-SPACE: nowrap; COLOR: #555555; OVERFLOW: hidden; TOP: 7px; MARGIN-RIGHT: 5px; LEFT: 67px"&gt;&lt;SPAN style="DISPLAY: block; VISIBILITY: hidden"&gt;1&lt;/SPAN&gt; &lt;SPAN style="LINE-HEIGHT: 1.25em; DISPLAY: block; CURSOR: pointer; TEXT-DECORATION: none; PADDING-TOP: 1px" title="Download file"&gt;TXT file &lt;BR&gt;4,22 KB &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;A style="POSITION: absolute; WIDTH: 167px; WHITE-SPACE: nowrap; COLOR: #0066a7; OVERFLOW: hidden; TOP: 7px; MARGIN-RIGHT: 5px; TEXT-DECORATION: none; LEFT: 67px" href="http://www.sysadmins.lv/content/pki/scripts/RCA_postscript.cmd.txt" target=_self alt="Download File"&gt;RCA_postscript.cmd.txt&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;(для скачивания файла нажмите на кнопку правой кнопкой и выберите Save target as…)&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=7cddb78e-fece-4d8a-8c85-813055311492"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,7cddb78e-fece-4d8a-8c85-813055311492.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Setup</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=5ee5feb6-bcb0-4a1f-adfc-de989556785a</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,5ee5feb6-bcb0-4a1f-adfc-de989556785a.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,5ee5feb6-bcb0-4a1f-adfc-de989556785a.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=5ee5feb6-bcb0-4a1f-adfc-de989556785a</wfw:commentRss>
      <slash:comments>10</slash:comments>
      <title>Устанавливаем Certification Authority (часть 1) — Введение</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,5ee5feb6-bcb0-4a1f-adfc-de989556785a.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,5ee5feb6-bcb0-4a1f-adfc-de989556785a.aspx</link>
      <pubDate>Sun, 21 Mar 2010 17:44:20 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,bb8a9447-9b14-4540-add9-6df308129edd.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Устанавливаем Certification Authority — Подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H1 align=center&gt;Prologue&lt;/H1&gt;
&lt;P&gt;Одной из самых больших проблем при внедрении PKI на предприятии является отсутствие навыков планирования и установки Certification Authority. Как я уже неоднократно отмечал, потребность в PKI возрастает с каждым днём, а вот понимания вопроса у людей не увеличивается. К чему это приводит? В лучшем случае это приводит к установке вида &lt;STRONG&gt;Next –&amp;gt; Next –&amp;gt; ????? –&amp;gt; PROFIT&lt;/STRONG&gt; и последующей нетривиальной и болезненной переконфигурации инфраструктуры под бизнес-задачи. Но чаще это заканчивается смачным эпик-фейлом в виде абсолютно неработающей PKI. Вот один из примеров: &lt;A href="http://social.technet.microsoft.com:80/Forums/en-US/ws2008r2ru/thread/d904fad8-4e9c-41ff-be1c-096e5262714e"&gt;Помогите установить и настроить службу сертификации&lt;/A&gt;&lt;IMG title=Subscribed alt=Subscribed src="http://i4.social.microsoft.com/Forums/resources/images/trans.gif?cver=2.9.0034.0"&gt;. Пробояню себя ещё раз, сказав, что для многих планирование, установка и поддержка PKI кажется задачей не сложнее администрирования нотепада и укладывается по времени в промежуток обеденного перерыва. При этом они глубоко заблуждаются, поскольку даже книга Брайана Комара и Пола Адаре по PKI (&lt;A href="http://www.microsoft.com/learning/en/us/book.aspx?ID=9549&amp;amp;locale=en-us" target=_blank&gt;Windows Server® 2008 PKI and Certificate Security&lt;/A&gt;) не даёт полного и детального представления о работе PKI, хотя там ТЗ хватит на не один год. В реальности для полного понимания материала ещё необходимо прочитать десяток вайтпеперов и всяческие RFC. Я не претендую на попытку устранить этот пробел, поскольку это нереально, но стараюсь дать какие-то полезные понятия и какие-то другие вещи в соответствии с бест-практисами.&lt;/P&gt;
&lt;H1 align=center&gt;PKI tasks&lt;/H1&gt;
&lt;P&gt;Во-первых, нужно определиться с задачами, которые могут потребовать внедрения PKI:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Внедрение защищённых механизмов аутентификации — смарт-карты, сертификаты для аутентификации в IIS/VPN; 
&lt;LI&gt;Внедрение защищённых сетевых протоколов — L2TP, SSL, IPsec; 
&lt;LI&gt;Внедрение защищённой почты с шифрованием и/или подписью писем; 
&lt;LI&gt;Внедрение цифровых подписей документов и файлов, что гарантирует их целостность и альтернативу ручной подписи. 
&lt;LI&gt;Внедрение защищённых файловых хранилищ с шифрованием особо конфиденциальной информации. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Если из всего вышеперечисленного вам не нужно, PKI вам не нужна так же.&lt;/P&gt;
&lt;H1 align=center&gt;Planning CA hierarchy&lt;/H1&gt;
&lt;P&gt;В одном из своих предыдущих постов я вёл дискуссию об иерархиях PKI: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,0e4b6657-b932-4fec-b51e-1ef55fda034f.aspx"&gt;Обсуждение схем иерархии Certification Authority&lt;/A&gt;. На основе этого материала мы подбеёрм схему для нашей инсталляции, которая будет описана в данном материале. Исходя из написанного по ссылке мы сразу отметаем вариант одноуровневой иерархии. Двухуровневая иерархия выглядит крайне привлекательно:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="2-tier CA hierarchy" border=0 alt="2-tier CA hierarchy" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority_92A1/2-tier_008dd0b3-7668-4b7e-b9bb-e54de824b27b.png" width=321 height=302&gt; &lt;/P&gt;
&lt;P&gt;В принципе, если сеть достаточно сконцентрирована, такая схема будет идеальной для многих случаев. А если сеть географически распределена с крупными филиалами (сайтами), в каждый такой филиал можно добавить по ещё одному сертификату CA и получить вот такую схему:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="2-tier CA hierarchy" border=0 alt="2-tier CA hierarchy" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority_92A1/2-tier2_be1a8e9a-d728-4d2c-a855-d6759d2265c2.png" width=432 height=302&gt; &lt;/P&gt;
&lt;P&gt;Создание 3-х уровневой иерархии уже будет подразумевать разделение иерерхии на области действий &lt;STRONG&gt;CPS&lt;/STRONG&gt; (&lt;EM&gt;Certificate Practice Statement&lt;/EM&gt;) и будут подвержены различным политикам управления серверами CA. Это достаточно долгая песня и о ней говорить не будем. Поэтому мы остановимся на двухуровневой иерархии с одним корневым центром сертификации (Root CA) и одним издающим центром сертификации (Issuing CA).&lt;/P&gt;
&lt;H1 align=center&gt;Planning CA types&lt;/H1&gt;
&lt;P&gt;Microsoft поддерживает два типа центров сертификации — Standalone и Enterprise. Обычно администраторы привыкли устанавливать Enterprise CA и по очевидным причинам не используют Standalone CA. Чем они отличаются?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Standalone&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Характеризуются нетребовательностью к наличию домена Active Directory. Так же Standalone CA не использует шаблоны, следовательно вы не можете запрашивать сертификаты на таком CA через оснастку Certificates консоли MMC. Что означает, что вы не можете пользоваться функциями autoenrollment'а. Так же при выдаче сертификатов, Standalone CA не может автоматически публиковать сертификаты в свойства учётной записи пользователя или компьютера. Энролить сертификаты в Standalone CA можно только через Enrollment Web Pages, либо вручную генерируя запросы (файлы с расширением .req) и отправляя их через оснастку CertSrv.msc. Причём отправка запросов через оснастку CertSrv.msc является новой возможностью в Windows Server 2008. В связи с этим необходимость в Enrollment Web Pages отпала совсем.&lt;/P&gt;
&lt;P&gt;По своим возможностям Standalone CA выглядит убогим чуть более, чем полностью. Но этот тип CA имеет одно сильное преимущество — он не зависит от наличия домена. Кажется — фигня. Домены даже рулят и педалят и всё, что работает без домена не нужно! Но давайте посмотрим на ситуацию немного с другой стороны. Центры сертификации верхних уровней (корневые и подчинённые центры сертификации первого уровня) имеют как правило очень большой срок действия — от 10 до 20 лет. При этом очень часто домены и леса AD живут значительно меньше, поскольку они постоянно реструктуирутся, переименовываются, мигрируются и т.д. А центр сертификации в домене (Enteprprise CA) лишает нас некоторых возможностей, как переименование домена и усложняют процессы реструктуризации доменов и лесов. По этой причине, Enterprise CA имеет небольшой срок действия своих сертификатов — от 5 до 10 лет максимум. В принципе, если есть независимый от домена AD центр сертификации (Standalone CA в рабочей группе) гораздо проще проводить миграцию и реструризацию лесов AD, поскольку эти процессы не затрагивают корневой CA и избавляют от проблем построения новой иерархии PKI. В такой ситуации достаточно только сменить центры сертификации 2-го и 3-го уровней (последний обычно является Enterprise CA). Именно по этой причине корневые центры сертификаций целесообразно устанавливать вне домена, в рабочей группе.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Enterprise&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Центр сертификации уровня предприятия (как это следует из названия) совершенно не похож на Standalone CA по своим возможностям. Во-первых Enterprise CA требует наличия домена для хранения там своей информации и шаблонов сертификатов. Данный тип CA имеет очень большие возможности по выдаче и обслуживанию сертификатов. Enterprise CA не требует генерации файлов запросов со стороны клиентов, а позволяет подавать заявки на сертификаты через оснастку Certificates консоли MMC и автоматически распространять сертификаты в масштабах целого леса AD при минимальном участии конечного пользователя. Чаще всего это участие сводится к настройке администратором политик autoenrollment'а и всё. Плюс, Enterprise CA может публиковать сертификаты в свойства учётных записей пользователей и компьютеров.&lt;/P&gt;
&lt;P&gt;Однако, зависимость от домена вносит некоторые ограничения в свою жизнь. Поскольку домены достаточно подвижные единицы и подвержены изменениям, Enterprise CA имеют достаточно короткий срок действия своих сертификатов — от 5 до 10 лет максимум. В случае Enterprise Root CA, удаление домена автоматически ведёт к краху всей иерархии PKI и её придётся строить с нуля, что может вылиться в большие трудности в довесок к текущим проблемам удаления домена. Именно поэтому компании никогда не устанавливают корневой центр сертификации на Enterprise CA, а только Issuing CA, которые уже издают сертификаты конечным потребителям, где и восстребованы все возможности Enterprise CA. Хотя, в очень небольших компаниях этого будет вполне достаточно, когда корневой CA устанавливается на Enterprise CA и имеет срок действия сертификата 5 лет.&lt;/P&gt;
&lt;P&gt;В данном цикле статей мы будем использовать преимущества обоих типов CA. Для корневого CA будем использовать Standalone CA в рабочей группе и для издающего CA будем использовать Enterprise CA в домене Active Directory. При этом Standalone CA не будет издавать сертификаты конечным потребителям, а только для других центров сертификации.&lt;/P&gt;
&lt;H1 align=center&gt;Planning validity periods&lt;/H1&gt;
&lt;P&gt;На какой срок будем выдавать сертификаты для каждого типа CA? 20 лет мне кажется слишком круто, ведь через 20 лет в вашей компании может всё круто поменяться и если ваш бизнес не завязан на предоставлении услуг цифровых сертификатов, 20 лет, наверное, слишком большой срок. А вот 10 лет для корневого и издающего будет вполне достаточно. Не надо думать, что через 10 лет всё умрёт. Просто через 10 лет (фактически чуть раньше, через 8-9 лет) вам придётся обновить сертификаты обоих CA и всё, жизнь будет продолжаться дальше. Издержки на обновлении сертификатов CA минимальные, поскольку никаких изменений в конфигурации производить не придётся.&lt;/P&gt;
&lt;H1 align=center&gt;Planning CDP/AIA extensions&lt;/H1&gt;
&lt;P&gt;Об этом у меня написано уже достаточно много:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx"&gt;CRL Distribution Points и Authority Information Access&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,b3521905-4696-4e23-a2d8-1f6fafbfa030.aspx"&gt;Certificate chaining engine (CCE) и отзыв корневых сертификатов&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,7863aaeb-ca0f-4b51-8406-b9821179edd9.aspx"&gt;Планирование расширений CDP и AIA&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Исходя из описанного по ссылкам (читать обязательно!) мы полностью откажемся от LDAP-ссылок и в сертификатах будем публиковать только ссылки на HTTP. Для этой цели нам потребуется веб-сервер, который будет хранить наши CRL/CRT файлы и поддерживать работоспособность ссылок. Поскольку корневой CA не будет издавать сертификаты конечным потребителям, а только для других CA, риск компрометации которых невелик (но всё же существует) и он большую часть времени будет выключен, мы отключим публикацию Delta CRL для корневого CA, но включим для Issuing CA. Основной CRL (Base CRL) мы будем публиковать каждые 3 месяца для корневого сертификата и каждые 5 дней для Issuing CA. Для обеспечения более быстрой реакции на отзыв сертификатов, для Issuing CA будем публиковать Delta CRL каждые 12 часов.&lt;/P&gt;
&lt;P&gt;Так же можно предусмотреть использование &lt;STRONG&gt;OCSP&lt;/STRONG&gt; (&lt;EM&gt;Online Certificate Status Protocol&lt;/EM&gt;). Хоть обычно OCSP и используется только для Enterprise CA, ничего не мешает использовать его для корневого CA. С учётом роста количества клиентов под управлением Windows Vista и выше, это будет хороший экспериенс и я расскажу, как это можно будет реализовать.&lt;/P&gt;
&lt;H1 align=center&gt;Conclusion&lt;/H1&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Исходя из вышесказанного мы можем сформулировать программные требования для нашей иерархии PKI:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Windows Server 2008/2008 R2 Standard Edition&lt;/STRONG&gt;. &lt;BR&gt;Компьютер является членом рабочей группы WORKGROUP, с именем хоста &lt;STRONG&gt;RootCA&lt;/STRONG&gt;. Компьютер не подключен к локальной сети или к интернетам. В принципе, для это задачи можно использовать и Enterprise/Datacenter редакции, но от них вы никакого профита не получите в случае использования роли &lt;STRONG&gt;ADCS&lt;/STRONG&gt; (&lt;EM&gt;Active Directory Certificate Services&lt;/EM&gt;). Редакции Standard хватит вполне. 
&lt;LI&gt;&lt;STRONG&gt;Windows Server 2008 Enterprise/Datacenter&lt;/STRONG&gt; или &lt;STRONG&gt;Windows Server 2008 R2 Standard/Enterprise/Datacenter&lt;/STRONG&gt;. &lt;BR&gt;Компьютер является членом домена &lt;STRONG&gt;Adatum.com&lt;/STRONG&gt; с именем хоста &lt;STRONG&gt;Issuing CA&lt;/STRONG&gt;. Компьютер не должен держать роль контроллера домена. 
&lt;LI&gt;Домен Adatum.com содержит выделенный веб-сервер под управлением любой ОС и который доступен из интернета (только для обслуживания внешних клиентов). 
&lt;LI&gt;Домен Adatum.com содержит сервер способный выполнять роль OCSP Responder'а. Если это будет Windows Server, требования к версии будут такие же, как и для Enterprise CA. Т.е. Windows Server 2008 R2 Standard/Enterprise/Datacenter или Windows Server 2008 Enterprise/Datacenter. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;На этом я заканчиваю вводную часть и в следующих частях мы поговорим уже о непосредственной установке и конфигурировании центров сертификаций.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=5ee5feb6-bcb0-4a1f-adfc-de989556785a"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,5ee5feb6-bcb0-4a1f-adfc-de989556785a.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Setup</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=f460aabd-4d81-4b5b-8a9b-42baa296e529</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,f460aabd-4d81-4b5b-8a9b-42baa296e529.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,f460aabd-4d81-4b5b-8a9b-42baa296e529.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=f460aabd-4d81-4b5b-8a9b-42baa296e529</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <title>AppLocker — порядок работы правил</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,f460aabd-4d81-4b5b-8a9b-42baa296e529.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,f460aabd-4d81-4b5b-8a9b-42baa296e529.aspx</link>
      <pubDate>Wed, 17 Mar 2010 20:22:57 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; для успешного освоения данного материала, необходимо прочитать мою предыдущую запись по теме: &lt;a href="http://www.sysadmins.lv/PermaLink,guid,37b74977-d937-4383-b41b-982eb287bc23.aspx"&gt;Встречаем – AppLocker!&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Я в своё время написал пост о порядке сортировки правил в Software Restriction Policies (&lt;a href="http://www.sysadmins.lv/PermaLink,guid,8802cfef-4499-481e-9de7-6daa92f873d8.aspx"&gt;Секреты Software Restriction Policies (часть 4)&lt;/a&gt;). Некоторые вопросы в интернетах говорят мне о том, что с AppLocker'ом люди не особо разобрались и сильно путаются. Виной тому — полное отсутствие вменяемой документации по вопросам практической реализации и отсутствие серого вещества у некоторых администраторов. Сегодня я покажу как AppLocker выявляет результирующий статус для запускаемого приложения/скрипта.&lt;/p&gt;  &lt;p&gt;В Software Restriction Policies правила достаточно простые, хотя и со своими тараканами. Например, у нас есть возможность использовать один из двух уровней по умолчанию — &lt;strong&gt;Disallowed&lt;/strong&gt; и &lt;strong&gt;Unrestricted&lt;/strong&gt;. Правила в SRP так же могут быть определены одним из двух уровней (на самом деле в SRP ещё есть Basic User, но я его опускаю, как незначительный момент). Т.е. правило либо однозначно запрещает, либо однозначно разрешает вне зависимости от уровня по умолчанию. А результирующий уровень определялся нехитрым методом сортировок правил.&lt;/p&gt;  &lt;p&gt;С AppLocker'ом ситуация немного иная. Теперь уровень по умолчанию только &lt;strong&gt;Disallowed&lt;/strong&gt;. Т.е. запрещено всё, что не разрешено. Вроде бы и просто, но сами правила стали немного сложнее — появились исключения. В результате этих исключений значительно усложнилась и изменилась методика определения результирующего уровня для запускаемого файла.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; под «файлом» я здесь подразумеваю файл с расширением, контролируемым в AppLocker'е.&lt;/p&gt;  &lt;p&gt;Итак, AppLocker позволяет создавать правила с уровнем &lt;strong&gt;Deny&lt;/strong&gt; или &lt;strong&gt;Allow&lt;/strong&gt;. Каждое правило пути или издателя (&lt;strong&gt;Publisher&lt;/strong&gt;), кроме правила хешей, могут содержать исключения. Поскольку правило издателя не может уникально идентифицировать конкретный файл, т.к. поле &lt;strong&gt;Subject&lt;/strong&gt; сертификата достаточно абстрактное понятие и под одно такое правило может подпадать сотни различных файлов. Причём, ситуация усугубляется тем, что в Software Restriction Policies в правило сертификата указывался конкретный сертификат подписи, AppLocker их просто перестаёт различать! Т.е. область действия правила издателя становится ещё шире, чем с классическими правилами сертификатов в SRP. То же самое и с правилами пути, поскольку по указанному пути сегодня может быть один файл, а завтра уже другой. Но для AppLocker'а это будет всё один файл. А ещё могут быть ситуации, когда по некоторому пути нужно разрешить всё, кроме какого-то набора файлов. Недостатки (и достоинства одновременно) компенсируются наличием в правилах исключений. Исключения позволяют значительно сократить количество правил в AppLocker'е.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; Единственный способ уникальной идентификации файла в AppLocker'е (равно как и в SRP) может быть только правило хеша, поскольку хеш условно говоря уникально идентифицирует файл (в пределах коллизий хеша). Именно по этой причине правило хеша не поддерживает возможность использования исключений.&lt;/p&gt;  &lt;p&gt;Основной сценарий, который многих сбивает с толку: создаём запрещающее правило по правилу издателя или правилу пути. Однако определённые файлы, подпадающие под этот запрет должны быть разрешены для запуска. Для этих целей мы можем смело воспользоваться исключениями. Поэтому мы вносим такие файлы в исключения по пути, хешу или издателю. И, казалось бы, исключение из запрета означает явное разрешение. На первый взгляд это так и есть. Однако, следует помнить, что AppLocker использует неотключаемое действие по умолчанию — &lt;strong&gt;Disallowed&lt;/strong&gt;. И когда файл выпадает из явного запрета, он не разрешается автоматически, поскольку подпадает под действие по умолчанию, если нет явного разрешения. Вот такие пирожки. Следовательно, можно вывести общий постулат AppLocker'а: &lt;strong&gt;&lt;font color="#ff0000"&gt;разрешённый файл не должен быть явно запрещён и должен быть явно разрешён&lt;/font&gt;&lt;/strong&gt;. Этот постулат будет доказан и продемонстрирован чуть ниже.&lt;/p&gt;  &lt;p&gt;Если SRP использовал сортировку правил по их типу, устанавливая заданный приоритет для каждого вида, AppLocker более не использует такой метод. Запрет по правилу пути не может быть перекрыт даже разрешением по хешу или правилу издателя, как это работает в SRP. AppLocker сортирует правила по их действию — Deny и Allow. Запреты отрабатываются в первую очередь и затем разрешения. Опираясь на мои исследования я составил примерно такой алгоритм работы правил аплокера:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Сначала проверяются все явные запреты (в произвольном порядке).      &lt;ul&gt;       &lt;li&gt;Если файл подпал под явный запрет, то для этого запрета отрабатываются все исключения. Если файл всё ещё подпадает под явный запрет, то файл помещается в список «&lt;strong&gt;Denied&lt;/strong&gt;» и &lt;strong&gt;блокируется для запуска&lt;/strong&gt;. Остальные шаги проверки не производятся.&lt;/li&gt;        &lt;li&gt;Если после обработки исключений больше не подпадает под явный запрет, то берётся следующее запрещающее правило и так продолжается, пока не будут проверены все явные запреты. &lt;/li&gt;        &lt;li&gt;Если после отработки всех запретов, файл больше не подпадает под явный запрет, он помещается в список «&lt;strong&gt;Processing&lt;/strong&gt;». &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Если файл находится в списке «&lt;strong&gt;Processing&lt;/strong&gt;», файл проходит через второй этап проверки. Если список «&lt;strong&gt;Processing&lt;/strong&gt;» пуст, файл не проходит через второй этап и хмуро блокируется для запуска. &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Если файл подпал под явное разрешение, то для этого разрешения отрабатываются все исключения. Если файл всё ещё подпадает под разрешение, файл помещается в список «&lt;strong&gt;Allowed&lt;/strong&gt;» и &lt;strong&gt;разрешается для запуска&lt;/strong&gt;. Остальные шаги проверки не производятся.&lt;/li&gt;      &lt;li&gt;Если после обработки исключений файл больше не подпадает под явное разрешение, то берётся следующее разрешающее правило, и процесс повторяется для каждого разрешающего правила.&lt;/li&gt;      &lt;li&gt;Если после отработки всех разрешений, файл всё ещё находится в списке «&lt;strong&gt;Processing&lt;/strong&gt;», к файлу применяется действие по умолчанию. Т.е. файл блокируется для запуска.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; на самом деле никаких таких списков не существует, это я всё соврал. Я их придумал только для улучшения понимания.&lt;/p&gt;  &lt;p&gt;Для наглядной демонстрации алгоритма я нарисовал следующую картинку:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="AppLocker rule processing diagram" border="0" alt="AppLocker rule processing diagram" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/AppLocker_115C2/app_3_35E41366_fe665d4d-aa2e-48c4-baa9-5a80706bb5af.png" width="523" height="881" /&gt; &lt;/p&gt;  &lt;p&gt;Ну и в качестве бонуса — практическая задача, которая продемонстрирует этот алгоритм в действии.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;На компьютере в каталог по умолчанию установлен пакет Microsoft Office, которым можно пользоваться всем. Но группе «&lt;strong&gt;Accountants&lt;/strong&gt;» необходимо разрешить запускать только программы &lt;strong&gt;Word&lt;/strong&gt; и &lt;strong&gt;Excel&lt;/strong&gt;. Запуск остальных файлов из «&lt;strong&gt;Program Files&lt;/strong&gt;» разрешён без ограничений.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#008000"&gt;Решение:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Для решения этой задачи мы должны разрешить весь каталог «&lt;strong&gt;Program Files&lt;/strong&gt;» по правилу пути для группы «&lt;strong&gt;Everyone&lt;/strong&gt;». Поскольку доступ к программам Microsoft Office будет ограничен только для группы «&lt;strong&gt;Accountants&lt;/strong&gt;», мы создаём новое запрещающее правило (с действием «&lt;strong&gt;Deny&lt;/strong&gt;»), которое применяется только к группе «&lt;strong&gt;Accountants&lt;/strong&gt;». Теперь программы из пакета Microsoft Office будут разрешены для запуска всем, кроме группы «Accountants». Чтобы обеспечить запуск только необходимых приложений из этой папки, мы редактируем запрещающее правило и добавляем два исключения (по правилу пути, хеша или издателя) для файлов «&lt;strong&gt;Excel.exe&lt;/strong&gt;» и «&lt;strong&gt;Winword.exe&lt;/strong&gt;».&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Проверка:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Исходя из диаграммы, посмотрим, что будет происходить, когда член группы Accountants запустит &lt;strong&gt;PowerPNT.exe&lt;/strong&gt; (PowerPoint). &lt;/p&gt;  &lt;p&gt;При запуске мы попадаем на первый условный переход: подпадает ли файл под какой-нибудь запрет? Да, у нас есть запрет на папку %programfiles%\Microsoft Office. Следовательно выходим на следующий условный переход: указан ли PowerPNT.exe в исключениях? Правило запрета не предусматривает исключения для этого файла, следовательно мы выходим на действие «&lt;strong&gt;File is blocked to run&lt;/strong&gt;». При этом алгоритм заканчивается.&lt;/p&gt;  &lt;p&gt;А теперь член группы Accountants запускает Excel.exe (Excel). При запуске мы снова попадаем на первый условный переход: подпадает ли файл под запрет? Да, у нас есть запрет на папку %programfiles%\Microsoft Office. Следовательно переходим на следующий условный переход: указан ли Excel.exe в исключениях данного правила? Да, указан в исключениях, поэтому переходим на третий условный переход: есть ли ещё запрещающие правила? Если нет, мы сразу попадаем на четвёртый условный переход, который уже отрабатывает разрешения. Если есть ещё запрещающие правила, в них Excel.exe никак не запрещается (по условию задачи это не подразумевается), мы прямиком с первого условного перехода попадаем на четвёртый условный переход: подпадает ли файл хоть под одно разрешающее правило? Да, файл подпадает под разрешающее правило всего каталога Program Files для группы Everyone, в которую входит и группа Accountants. В результате попадаем на пятый условный переход: есть ли исключение для Excel.exe в этом разрешающем правиле? Нет, исключений для правила не предусмотрено и мы выходим на действие «&lt;strong&gt;File is allowed to run&lt;/strong&gt;».&lt;/p&gt;  &lt;p&gt;Как видите, используя эту диаграмму, можно разбирать правила любой сложности в пошаговом режиме и теперь вы знаете, как сортируются и проверяются правила AppLocker'а.&lt;/p&gt;  &lt;p&gt;Напоследок ещё хочется отметить ситуацию применения множественных политик. Так же как и в случае с Software Restriction Policies, правила никак не замещаются, а суммируются. Т.е. собираются в один список, после чего AppLocker оперирует правилами, собранных со всех политик, применённых к конкретному компьютеру.&lt;/p&gt;  &lt;p&gt;Что бы почитать?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,37b74977-d937-4383-b41b-982eb287bc23.aspx"&gt;Встречаем – AppLocker!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,8802cfef-4499-481e-9de7-6daa92f873d8.aspx"&gt;Секреты Software Restriction Policies (часть 4)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=f460aabd-4d81-4b5b-8a9b-42baa296e529"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,f460aabd-4d81-4b5b-8a9b-42baa296e529.aspx</comments>
      <category>Security</category>
      <category>Security / AppLocker</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=7863aaeb-ca0f-4b51-8406-b9821179edd9</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,7863aaeb-ca0f-4b51-8406-b9821179edd9.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,7863aaeb-ca0f-4b51-8406-b9821179edd9.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=7863aaeb-ca0f-4b51-8406-b9821179edd9</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Планирование расширений CDP и AIA</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,7863aaeb-ca0f-4b51-8406-b9821179edd9.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,7863aaeb-ca0f-4b51-8406-b9821179edd9.aspx</link>
      <pubDate>Sat, 06 Mar 2010 18:11:22 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; данный пост чуть более чем полностью состоит из моих собственных рекомендаций. Никаких пруфлинков на авторитетные источники, подтверждающие правильность этих рекомендаций не будет.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; перед проведением любых изменений, описываемых в этом посте, обязательно выполните бэкап.&lt;/p&gt;  &lt;p&gt;Большинство администраторов при установки роли Active Directory Certificate Services (AD CS) делают очень просто &lt;strong&gt;Next –&amp;gt; Next –&amp;gt; ????? –&amp;gt; PROFIT&lt;/strong&gt;. С одной стороны это и хорошо, но часто это не очень хорошо. Чем это хорошо — оно будет работать. Чем это плохо — при появлении каких-то специфических условий (например, внешние по отношению к текущему лесу клиенты) оно начинает работать хуже и даже перестаёт быть работоспособным. Сегодня я планирую рассмотреть эти вопросы, как нестанадртные клиенты (не поддерживающие LDAP) и внешние клиенты, тем более это достаточно распространённый сценарий.&lt;/p&gt;  &lt;h1 align="center"&gt;Рекомендация 1 — CA и IIS&lt;/h1&gt;  &lt;p&gt;Самая первая рекомендация будет заключаться в том, что не надо устанавливать службу IIS на сервер CA (кроме случаев, когда у вас в сети всего один сервер). При установке роли AD CS мастер предлагает установить IIS для работы HTTP ссылок на CRT и CRL файлы. Я считаю, что при наличии внутреннего и/или внешнего веб-сервера устанавливать ещё один на сервер CA — затея глупая. Вы этим самым просто добавляете себе лишней работы и не решаете некоторых задач. Установка новой роли увеличивает площадь атаки для злоумышленников, отнимает время администраторов, повышает расходы на организацию защиты IIS и не решает вопрос обслуживания внешних клиентов, поскольку публикация сервера CA в интернет (хоть и только роли IIS. При успешной атаке роли можно получить контроль над всем сервером) идея настолько глупая и неудачная, что её рассматривать нет никакого желания. Я вообще считаю, что на сервере CA кроме роли CA ничего быть не должно. Поэтому при установке роли CA благоразумно отказываемся. Взамен этого мы будем использовать выделенный веб-сервер, который скорее всего установлен в вашей компании. При этом он может работать под управлением любой ОС, хоть линупса. Об этом будет написано чуть ниже.&lt;/p&gt;  &lt;h1 align="center"&gt;Рекомендация 2 — CDP/AIA и LDAP&lt;/h1&gt;  &lt;p&gt;Мы уже рассматривали общую проблематику вопроса в одном из предыдущих постов: &lt;a href="http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx"&gt;CRL Distribution Points и Authority Information Access&lt;/a&gt;. По причинам описанным в указанном посте мы хмуро выпиливаем все ссылки на LDAP.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Необходимые шаги для случаев свежей инсталляции роли CA производимые ДО выпуска первого сертификата. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Для этого запустите оснастку CertSrv.msc, выберите свойства CA и перейдите на вкладку Extensions. В этой вкладке выделите ссылку, начинающуюся с &lt;strong&gt;LDAP://{тут_много_букв}&lt;/strong&gt; и &lt;strong&gt;HTTP://{тут_много_букв}&lt;/strong&gt; и нажмите кнопку &lt;strong&gt;Remove&lt;/strong&gt;. Далее в выпадающем поле со списком выберите &lt;strong&gt;Authority Information Access (AIA)&lt;/strong&gt;, выделите ссылку, начинающуюся с &lt;strong&gt;LDAP://{тут_много_букв}&lt;/strong&gt; и &lt;strong&gt;HTTP://{тут_много_букв}&lt;/strong&gt; и нажмите кнопку &lt;strong&gt;Remove&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Этим шагом мы отменим использование LDAP ссылок, которые могут быть совершенно не пригодны для ряда типов клиентов, как мобильные клиенты, клиенты из интернета, клиенты рабочих групп, других лесов и т.д. А так же удалили дефолтные HTTP ссылки, которые указывают на сервер CA.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Необходимые шаги для случаев, когда сервер CA уже выпустил сертификаты. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Для этого запустите оснастку CertSrv.msc, выберите свойства CA и перейдите на вкладку Extensions. В этой вкладке выделите ссылку, начинающуюся с &lt;strong&gt;LDAP://{тут_много_букв}&lt;/strong&gt;. Снимите все галочки, кроме &lt;strong&gt;Publish CRLs to this location&lt;/strong&gt; и &lt;strong&gt;Publish Delta CRLs to this location&lt;/strong&gt; (если вы планируете использовать Delta CRL). А так же удалите ссылки HTTP, которые указывают на сам сервер CA. Сохраните изменения и перезапустите службу Certificate Services.&lt;/p&gt;  &lt;p&gt;Этим шагом мы отключили публикацию LDAP и HTTP ссылок во вновь издаваемые сертификаты. Однако, у нас уже работающая инфраструктура PKI, следовательно, ранее выпущенные сертификаты содержат ссылки на LDAP. Для обеспечения их работоспособности мы продолжаем публикацию CRT/CRL файлов в LDAP.&lt;/p&gt;  &lt;h1 align="center"&gt;Отсебятина 1 — именование файлов&lt;/h1&gt;  &lt;p&gt;Небольшой вбросик. Я думаю, что многие замечали как именуются файлы. Например, дефолтный CRT имеет имя следующего формата:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;&amp;lt;ServerDNSName&amp;gt;_&amp;lt;CAName&amp;gt;&amp;lt;CertificateName&amp;gt;.crt&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Т.е. обычно это выглядит так: &lt;font color="#804000"&gt;caserver.company.com_companyca.crt&lt;/font&gt;. Скажем, не всем нравится такой формат, поскольку имя файла достаточно длинное и раскрывает внутреннее имя сервера, на котором хостится служба CA. Лично мне нравится другой формат имён файлов — короткое имя компании и аббревиатурное значение роли конкретного сервера CA. Например: company_RCA.crt. Мне кажется, что это хороший выбор. Однако, ни стандартный интерфейс CertSrv.msc, ни реестр не предоставляют возможности изменять имя и путь публикации CRT файла. Учитывая, что сертификаты самих CA обновляются достаточно редко, эту операцию можно выполнить вручную или при помощи скрипта — это уже на ваш выбор. Так что с CRT ничего не остаётся как копировать его вручную на веб-сервер или гонять его по DFS и переименовывать самостоятельно. Однако, следует учесть, что если сертификат CA обновлялся с новой ключевой парой, в конце имени файла добавляется число в круглых скобках. Например: server.domain.com_CAName&lt;strong&gt;(1)&lt;/strong&gt;.crt. Вот эта циферка приходит из &lt;strong&gt;&amp;lt;CertificateName&amp;gt;&lt;/strong&gt;. Именно поэтому когда вы будете имзенять ссылку (об этом чуть ниже), которая будет публиковаться в издаваемых сертификатах, не забудьте к имени файла добавить &lt;strong&gt;&amp;lt;CertificateName&amp;gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;То же самое будет касаться и CRL. В соответствии с параграфом &lt;a href="http://msdn.microsoft.com/en-us/library/cc226710(PROT.10).aspx" target="_blank"&gt;§ 3.2.5.1.6&lt;/a&gt; спецификации протокола &lt;a href="http://msdn.microsoft.com/en-us/library/cc226566(PROT.10).aspx" target="_blank"&gt;[MS-CSRA]&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;1.When this method is invoked, the CA SHOULD create a new base and/or delta CRL for each CA key, as specified in the following steps 2, 3, 4, 5, 6, and 7. The type of CRL to create (base, delta, or both) for each CA key is determined as follows:&lt;a href="http://msdn.microsoft.com/en-us/library/5f06c74c-1a29-4fdf-b8dd-ae3300d1b90d(PROT.10)#id38" target="_blank"&gt;&amp;lt;38&amp;gt;&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;The CA SHOULD create a new base CRL for each CA key. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;If the CA has enabled delta CRLs, as indicated by a nonzero Config_Delta_CRL_Validity_Period value, the CA MUST create a new delta CRL in addition to a new base CRL, for each CA key. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;If delta CRLs are currently disabled (Config_Delta_CRL_Validity_Period is 0) and were enabled previously (Previous_Delta_CRL_Validity_Period is not equal to zero), the CA MUST create a new delta CRL in addition to a new base CRL for each CA key.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;отдельный CRL создаётся для каждой ключевой пары CA. Следовательно, в имени CRL файлов следует оставить значение &amp;lt;CRLNameSuffix&amp;gt;. Этим самым сервер CA при публикации CRL на это место установит версию сертификата, для которого публикуется CRL. Например: CAName(1).crl и CAName(1)+.crl (для Base и Delta CRL). Если сертификат CA ещё не обновлялся, &amp;lt;CRLNameSuffix&amp;gt; будет заменён на пустое значение.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Рекомендация 3 — публикация файлов на Web-сервер&lt;/h1&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;На веб-сервере создайте папку с произвольным именем (например, с именем pki), в которой будут храниться наши файлы. Расшарьте эту папку и добавьте в неё права записи для учётной записи компьютера, на котором работает сервер CA. При этом учтите, что права необходимо отредактировать как на уровне &lt;strong&gt;NTFS Rights&lt;/strong&gt; и &lt;strong&gt;Share Permissions&lt;/strong&gt;. В принципе, права Create files/Write data вполне достаточно для данной задачи. В IIS в произвольном веб-узле создайте виртуальную директорию и в качестве пути к ней укажите папку, в которой хранятся CRT/CRL файлы.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;CDP&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Поскольку мы будем публиковать файлы на выделенный веб-сервер, мы должны отредактировать расширения соответствующим образом. Запустите оснастку CertSrv.msc, выберите свойства CA и перейдите на вкладку Extensions. Нажмите кнопку Add и в поле Location укажите путь вида: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;file://\\WebServerName\pki\MyCRLNewName&lt;strong&gt;&amp;lt;CRLNameSuffix&amp;gt;&lt;/strong&gt;&amp;lt;DeltaCRLAllowed&amp;gt;.crl&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Я выделил обязательную составляющую имени CRL файла. Остальное уже на ваш вкус. И установите чек-боксы на &lt;strong&gt;Publish CRLs to this location&lt;/strong&gt; и &lt;strong&gt;Publish Delta CRLs to this location&lt;/strong&gt; (если вы планируете использовать Delta CRL). Если Delta CRL на сервере CA использоваться не будет, &amp;lt;DeltaCRLAllowed&amp;gt; можно убрать совсем.&lt;/p&gt;  &lt;p&gt;Теперь надо добавить ссылку, которая будет публиковаться в издаваемые сертификаты. Для этого добавьте новую ссылку HTTP, которая будет указывать на веб-сервер, например:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;http://www.company.com/pki/MyCRLNewName&lt;strong&gt;&amp;lt;CRLNameSuffix&amp;gt;&lt;/strong&gt;&amp;lt;DeltaCRLAllowed&amp;gt;.crl&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;И проставьте галочки: &lt;strong&gt;Include in the CDP extensions of issued certificates&lt;/strong&gt; и &lt;strong&gt;Include in CRLS&lt;/strong&gt;. &lt;strong&gt;Clients use this to find Delta CRL Locations&lt;/strong&gt; (если используется Delta CRL). &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;AIA&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;То же самое сделать для расширения AIA, чтобы получить ссылку вида:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="center"&gt;&lt;font color="#804000"&gt;http://www.company.com/pki/MyCRTNewName&lt;strong&gt;&amp;lt;CertificateName&amp;gt;&lt;/strong&gt;.crt&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;И поставить галочку напротив &lt;strong&gt;Include in the AIA extension of issued certificates&lt;/strong&gt;. Как я уже говорил, не представляется возможным автоматически публиковать CRT в нестандартные локации, поэтому их придётся переименовать вручную.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; имена физических файлов должны быть идентичными имени в HTTP ссылке.&lt;/p&gt;  &lt;p&gt;В принципе, в конечном итоге вы должны получить примерно такой вид ссылок и установленных галочек:&lt;/p&gt;  &lt;h4 align="center"&gt;CDP — новая инсталляция&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;C:\WINDOWS\system32\CertSrv\CertEnroll\&amp;lt;CAName&amp;gt;&amp;lt;CRLNameSuffix&amp;gt;&amp;lt;DeltaCRLAllowed&amp;gt;.crl&lt;/strong&gt;         &lt;br /&gt;Publish CRLs to this location         &lt;br /&gt;Publish Delta CRLs to this location&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;file://\\WebServerName\pki\Company_RCA&amp;lt;CRLNameSuffix&amp;gt;&amp;lt;DeltaCRLAllowed&amp;gt;.crl&lt;/strong&gt;         &lt;br /&gt;Publish CRLs to this location         &lt;br /&gt;Publish Delta CRLs to this location&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;http://www.company.com/pki/Company_RCA&amp;lt;CRLNameSuffix&amp;gt;&amp;lt;DeltaCRLAllowed&amp;gt;.crl&lt;/strong&gt;         &lt;br /&gt;Include in the CDP extensions of issued certificates         &lt;br /&gt;Include in CRLS. Clients use this to find Delta CRL Locations&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4 align="center"&gt;CDP — унаследованная инсталляция&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;C:\WINDOWS\system32\CertSrv\CertEnroll\&amp;lt;CAName&amp;gt;&amp;lt;CRLNameSuffix&amp;gt;&amp;lt;DeltaCRLAllowed&amp;gt;.crl&lt;/strong&gt;         &lt;br /&gt;Publish CRLs to this location         &lt;br /&gt;Publish Delta CRLs to this location&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; не следует удалять этот путь, поскольку он используется самим сервером CA.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;file://\\WebServerName\pki\Company_RCA&amp;lt;CRLNameSuffix&amp;gt;&amp;lt;DeltaCRLAllowed&amp;gt;.crl&lt;/strong&gt;         &lt;br /&gt;Publish CRLs to this location         &lt;br /&gt;Publish Delta CRLs to this location&lt;/font&gt;&lt;/p&gt;    &lt;p align="left"&gt;&lt;font color="#804000"&gt;&lt;strong&gt;ldap:///CN=&amp;lt;CATruncatedName&amp;gt;&amp;lt;CRLNameSuffix&amp;gt;, CN=&amp;lt;ServerShortName&amp;gt;, CN=CDP,CN=Public Key Services, CN=Services, &amp;lt;ConfigurationContainer&amp;gt;&amp;lt;CAObjectClass&amp;gt;&lt;/strong&gt;         &lt;br /&gt;Publish CRLs to this location         &lt;br /&gt;Publish Delta CRLs to this location&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;http://www.company.com/pki/Company_RCA&amp;lt;CRLNameSuffix&amp;gt;&amp;lt;DeltaCRLAllowed&amp;gt;.crl&lt;/strong&gt;         &lt;br /&gt;Include in the CDP extensions of issued certificates         &lt;br /&gt;Include in CRLS. Clients use this to find Delta CRL Locations&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4 align="center"&gt;AIA — новая и унаследованная инсталляции&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;C:\WINDOWS\system32\CertSrv\CertEnroll\&amp;lt;ServerDNSName&amp;gt;_&amp;lt;CAName&amp;gt;&amp;lt;CertificateName&amp;gt;.crt&lt;/strong&gt;         &lt;br /&gt;нет галочек. Остаётся без изменений.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;http://www.company.com/pki/Company_RCA&amp;lt;CertificateName&amp;gt;.crt&lt;/strong&gt;         &lt;br /&gt;Include in the AIA extension of issued certificates&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Я не призываю сразу бросаться и всё переделывать. Эти рекомендации даны только для понимания сути проблемы и каким образом её можно решить. С их помощью при необходимости можно самостоятельно подготовить план изменения расширений CDP и AIA.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=7863aaeb-ca0f-4b51-8406-b9821179edd9"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,7863aaeb-ca0f-4b51-8406-b9821179edd9.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=c96d5e56-d1a1-4150-bc5e-13078623b563</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,c96d5e56-d1a1-4150-bc5e-13078623b563.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,c96d5e56-d1a1-4150-bc5e-13078623b563.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=c96d5e56-d1a1-4150-bc5e-13078623b563</wfw:commentRss>
      <title>Немного про Web Enrollment Pages</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,c96d5e56-d1a1-4150-bc5e-13078623b563.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,c96d5e56-d1a1-4150-bc5e-13078623b563.aspx</link>
      <pubDate>Thu, 04 Mar 2010 17:33:16 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Что-то в последнее время участились вопросы связанные с проблемами Web Enrollment Pages. В этом посте я рассмотрю 3 момента:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Запрос сертификатов для компьютера (с установкой сертификата в хранилище LocalMachine); &lt;/li&gt;    &lt;li&gt;Запрос сертификатов от имени другого пользователя (Enroll On Behalf Of); &lt;/li&gt;    &lt;li&gt;Настройка Web Enrollment Pages при работе на отдельном от CA сервере. &lt;/li&gt; &lt;/ol&gt;  &lt;h1 align="center"&gt;История Web Enrollment Pages&lt;/h1&gt;  &lt;p&gt;В системах до Windows Vista/Server 2008 клиентская часть запроса сертификатов была уныла чуть более чем полностью. Из того, что вы могли делать:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;запрашивать сертификаты только тех шаблонов, где Subject строился автоматически на основе данных в Active Directory учётной записи, от имени которой происходил запрос; &lt;/li&gt;    &lt;li&gt;Если в шаблоне разрешено использовать несколько CSP (Cryptographic Service Provider), можно было выбирать тот, который нужен для конкретного сертификата или который вам просто больше нравится; &lt;/li&gt;    &lt;li&gt;Изменять длину ключа; &lt;/li&gt;    &lt;li&gt;Включать/выключать возможность экспорта сертификата вместе с закрытым ключом (в PKCS#12); &lt;/li&gt;    &lt;li&gt;Включать/выключать функцю Private Key Strong Protection (только для пользовательских сертификатов). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Если хотите использовать шаблон, Subject которого должен указываться в запросе (обычно используется для недоменных клиентов или клиентов других лесов Active Directory) или что-то ещё, вам было необходимо решать данный вопрос иными путями. Например, использовать текстовый файл настроек policy.inf совместно с утилитой CertReq.exe, или Web Enrollment Pages. Web Enrollment Pages был неотъемлемой частью компонента Certification Authority. При установке Web Enrollment Pages устанавливалась роль IIS (в реальности, чаще приходилось его устанавливать заранее, чтобы потом не настраивать его вручную) и в систему копировался набор ASP файлов и элемент ActiveX под названием &lt;strong&gt;Xenroll&lt;/strong&gt;. Этот ActiveX является «прослойкой» между клиентом и сервером и отвечал за cookies и много чего ещё. В этих cookies сохраняется некоторая служебная информация, например, номер запроса, который был отправлен на сервер CA и по которому вы потом могли получить сертификат.&lt;/p&gt;  &lt;p&gt;И используя Web Enrollment Pages вы могли запрашивать сертификаты для недоменных компьютеров (или клиентов других лесов Active Directory):&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Enrollment Web Page" border="0" alt="Enrollment Web Page" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EnrollmentWebPages_12E67/cert2_98f9d944-2cb8-4b30-bc5e-d68635147516.jpg" width="644" height="484" /&gt; &lt;/p&gt;  &lt;p&gt;У нас там есть поля, которые позволяют вручную указать информацию о владельце сертификата. И галочка, которая указывала, что сертификат будет установлен в компьютерное хранилище. Для выпуска сертификатов для смарт-карт мы могли использовать галочку Enroll On Behalf Of с указанием пользователей для которых предназначен сертификат для смарт-карт.&lt;/p&gt;  &lt;p&gt;Так же, как и с консолью MMC, вы не могли переопределять какие-то вещи, например, экспорт закрытого ключа, если это не разрешено в шаблоне и другое. Вобщем, как альтернатива, Web Enrollment Pages была весьма полезная и зачастую нужная вещь.&lt;/p&gt;  &lt;p&gt;С выходом Windows Vista и Windows Server 2008 ситуация круто изменилась и началась всеобщая шумиха (она ещё до сих пор не утихает), что это всё перестало работать. В связи с некоторыми проблемами безопасности (любой запрос сертификата выполнялся в контексте пользователя, который аутентифицировался в IIS) и изменением функциональности консоли MMC, некоторые вещи были удалены с Web Enrollment Pages и изменён элемент Activex, который теперь называется &lt;strong&gt;CertEnroll&lt;/strong&gt;. В новой консоли MMC (оснастка Certificates) вы можете выполнять абсолютно любые запросы. В том числе в клиенте реализована возможность ручного указания поля Subject и многих других полей (добавлять Application Policies, управлять экспортом закрытого ключа, его длиной, CSP и многое другое), а так же реализована возможность запрашивать сертификаты для смарт-карт от имени другой учётной записи (Enroll On Behalf Of).&lt;/p&gt;  &lt;p&gt;По указанным причинам даже необходимость в Web Enrollment Pages скатилась до отвратительно низкой отметки. Но &lt;strike&gt;жадные дети&lt;/strike&gt;пользователи продолжают негодовать: верните всё как было! Я не могу с ними согласиться, поскольку дублировать реализованный функционал совсем не обязательно, а повышение в безопасности лишним не будет. Просто случилась миграция необходимого функционала с серверной части (Web Enrollment Pages) в клиентскую (Certificates snap-in).&lt;/p&gt;  &lt;p&gt;Дополнительная информация по проблеме находится здесь: &lt;a title="http://support.microsoft.com/kb/922706" href="http://support.microsoft.com/kb/922706"&gt;http://support.microsoft.com/kb/922706&lt;/a&gt;&lt;/p&gt;  &lt;h1 align="center"&gt;Web Enrollment Pages и сервер CA на раздельных компьютерах&lt;/h1&gt;  &lt;p&gt;Эта проблема появилась начиная с выходом Windows Server 2008, когда этот компонент стал необязательным при установке роли Certification Authority и появилась возможность установить его не на сервере CA. Чаще на выделенном веб-сервере для обслуживания внешних клиентов.&lt;/p&gt;  &lt;p&gt;При установке компонента на Web Enrollment Pages вы указываете сервер CA, с которым они будут работать и устанавливаете необходимые компоненты IIS для этого. Однако, сразу это не будет работать. Если быть точнее, то будет, но криво. Итак, какие вещи нужно настроить для такой конфигурации:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Включить SSL для веб-сайта, в котором будут размещены Web Enrollment Pages:     &lt;ul&gt;       &lt;li&gt;Для IIS 7 и IIS 7.5: &lt;a title="How to Setup SSL on IIS 7.0 - Configuring Security - Installing and" href="http://learn.iis.net/page.aspx/144/how-to-setup-ssl-on-iis-70/" target="_blank"&gt;How to Setup SSL on IIS 7.0&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Отключить анонимную и ядерную (kernel) аутентификацию и включить только &lt;strong&gt;Integrated Authentication&lt;/strong&gt;: &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Для IIS 7 и IIS 7.5: &lt;a href="http://technet.microsoft.com/en-us/library/cc754628(WS.10).aspx" target="_blank"&gt;Configure Windows Authentication (IIS 7)&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Настроить делегирование для учётной записи, от имени которой работает пул, в котором работает веб-сайт с Enrollment Web Pages, как это описано здесь: &lt;a title="http://technet.microsoft.com/en-us/library/cc962056.aspx" href="http://technet.microsoft.com/en-us/library/cc962056.aspx" target="_blank"&gt;Install Web Enrollment Support on Another Computer (Optional)&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Надеюсь это будет полезным.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=c96d5e56-d1a1-4150-bc5e-13078623b563"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,c96d5e56-d1a1-4150-bc5e-13078623b563.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=2383def5-47ae-4f87-a94b-cbffad67a7a9</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=2383def5-47ae-4f87-a94b-cbffad67a7a9</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>Certificate Autoenrollment от А до Я — подведение итогов</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx</link>
      <pubDate>Fri, 12 Feb 2010 16:52:34 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Этим постом я подвожу итоги эпик-проповеди в 6 частях, посвящённой такой занимательной теме как Certificate Autoenrollment. Это достаточно популярная технология, которая позволяет автоматически подавать заявки на получение сертифкатов, что значительно снижает нагрузку на пользователей и администраторов. Хоть эта технология и популярна, её принципы работы в деталях далеко не всем известны, а некоторые моменты даже не освещены в библиотеке TechNet. И вот что у нас есть на текущий момент:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,b24eecaa-c9d5-44a0-9edf-3590246a18a2.aspx"&gt;Certificate Autoenrollment от А до Я (часть 1) — Autoenrollment Background&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Вводная часть, которая описывает основные компоненты автоэнроллмента и требования к нему.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,2c7c0d72-2a7c-480d-93b7-74f3737ce9a8.aspx"&gt;Certificate Autoenrollment от А до Я (часть 2) — V1 Templates и Automatic Certificate Request&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Данный пост раскрывает основные особенности шаблонов версии 1 и работу механизма Automatic Certificate Request (ACR).&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,e47d78f5-a8e1-49cc-9623-c5a3e8e7c489.aspx"&gt;Certificate Autonerollment от А до Я (часть 3) — V2/V3 Templates&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Здесь рассказывается о шаблонах версии 2 и 3, включая описание каждого свойства шаблона и его влияния на работу механизма автоэнроллмента.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,b2e30d38-f5e1-46f0-8262-b1c411295a08.aspx"&gt;Certificate Autoenrollment от А до Я (часть 4) — user certificate autoenrollment&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;В этом посте уже рассказывается о работе т.н. классического автоэнроллмента, который позволяет автоматически подавать заявки и издавать сертификаты как компьютерам, так и пользователям.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,4f285016-9215-4f89-a9a6-2d8748f673b1.aspx"&gt;Certificate Autoenrollment от А до Я (часть 5) — расширения в Windows 7/2008 R2&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;С выходом Windows 7/Windows Server 2008 R2 у нас появляются новые механизмы энроллмента сертификатов, которые значительно расширяют возможности и удобство распространения сертификатов.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,51ad33bd-8195-4ca8-a757-04dd20055d1f.aspx"&gt;Certificate Autoenrollment от А до Я (часть 6) — XCEP/WSTEP Autoenrollment&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;И, собственно, описание принципа и порядка работы клиентов Windows 7/Windows Server 2008 R2 с новыми механизмами XCEP/WSTEP как в доменной, так и не в доменной среде.&lt;/p&gt;  &lt;p&gt;Enjoy, greetings!&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=2383def5-47ae-4f87-a94b-cbffad67a7a9"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Autoenrollment</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=51ad33bd-8195-4ca8-a757-04dd20055d1f</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,51ad33bd-8195-4ca8-a757-04dd20055d1f.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,51ad33bd-8195-4ca8-a757-04dd20055d1f.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=51ad33bd-8195-4ca8-a757-04dd20055d1f</wfw:commentRss>
      <title>Certificate Autoenrollment от А до Я (часть 6) — XCEP/WSTEP Autoenrollment</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,51ad33bd-8195-4ca8-a757-04dd20055d1f.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,51ad33bd-8195-4ca8-a757-04dd20055d1f.aspx</link>
      <pubDate>Thu, 11 Feb 2010 21:00:22 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; материал данной статьи относится только к клиентам под управлении Windows 7/Server 2008 R2 или выше.&lt;/P&gt;
&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Certificate Autoenrollment от А до Я — подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В предыдущей части мы кратко просмотрели назначение новых протоколов &lt;A href="http://msdn.microsoft.com/en-us/library/dd302869(PROT.13).aspx" target=_blank&gt;[MS-XCEP]&lt;/A&gt; и &lt;A href="http://msdn.microsoft.com/en-us/library/dd340609(PROT.13).aspx" target=_blank&gt;[MS-WSTEP]&lt;/A&gt;, которые позволяют автоматически подавать заявки на сертификаты без непосредственного подключения к домену. Сегодня мы посмотрим порядок работы клиента автоэнроллмента с этими протоколами.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; для недоменных клиентов доступна возможность классического автоэнроллмента. &lt;STRONG&gt;ACR&lt;/STRONG&gt; (&lt;EM&gt;Automatic Certificate Request&lt;/EM&gt;) для не поддерживается.&lt;/P&gt;
&lt;H1 align=center&gt;Group Policy configuration&lt;/H1&gt;
&lt;P&gt;После установки службы CEP у вас появляется адрес HTTP, который указывает на сервер CEP и этот адрес имеет вид:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;https://www.example.com/ADPolicyProvider_CEP_auth_protocol/service.svc/CEP&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;где &lt;STRONG&gt;auth_protocol&lt;/STRONG&gt; указывает на протокол аутентификации клиента на сервере CEP. Это может быть &lt;STRONG&gt;Kerberos&lt;/STRONG&gt; (только для доменных клиентов), &lt;STRONG&gt;Password&lt;/STRONG&gt; или &lt;STRONG&gt;Certificate&lt;/STRONG&gt;. Вот этот адрес нужно добавить в настройки групповой политики. Для этого откройте редактор групповой политики (gpmc.msc или gpedit.msc для недоменных машин) и в секции: Computer Configurtion\Windows Settings\Security Settings\Public Key Policies настроить параметр Certificate Services Client — Certificate Enrollment Policy. В свойствах следует включить эту политику и вы увидите окно Certificate Enrollment Policy list и в котором уже одна политика будет определена. Предопределённую политику следует удалить совсем и кнопкой Add добавить новую. В открывшемся окне вставить эту ссылку, указать нужный тип аутентификации и нажать Validate. В результате вы должны получить нечто вроде такого:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="CEP URL validation" border=0 alt="CEP URL validation" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment6XCEPWSTEPAutoe_FEB9/pol1_d54c091e-8dec-4312-9ff7-cd46ac146804.png" width=439 height=467&gt;fig.1&lt;/P&gt;
&lt;P&gt;Если вам это удалось сделать, значит клиент смог успешно пообщаться с сервером XCEP и CES. Причём, вы увидите, что клиент по этой ссылке смог найти название данной политики и вставить её в окошко:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="CEP policy collection" border=0 alt="CEP policy collection" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment6XCEPWSTEPAutoe_FEB9/pol2_6f336b30-496b-443c-906b-c484616bb947.png" width=407 height=452&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P align=center&gt;fig.2&lt;/P&gt;
&lt;P&gt;И таким образом вы можете добавлять несколько различных адресов политик, которые могут относиться к различным организациям. Причём, организация может развернуть несколько серверов XCEP для обеспечения высокой доступности, тогда вы можете добавлять несколько адресов серверов CEP и они будут линковаться к одной политике.&lt;/P&gt;
&lt;P&gt;Следует чётко понимать, что на предыдущей картинке вы видите коллекцию серверов CEP (Policy collection). Каждое имя уникально идентифицирует политику, которая может поддерживаться несколькими серверами CEP. Чтобы посмотреть сколько серверов CEP обслуживают ту или иную политику, выделите нужную политику и нажмите Properties. В результате вы увидите нечто похожее на это:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="CEP collection policy server list" border=0 alt="CEP collection policy server list" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment6XCEPWSTEPAutoe_FEB9/pol3_72a4c6e3-aefb-4c41-ba7e-b4f22fe8c147.png" width=440 height=466&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P align=center&gt;fig.3&lt;/P&gt;
&lt;P&gt;Уникальность политики определяется по её GUID'у. В этом окне может формироваться список всех серверов CEP, которые обслуживают одну и ту же политику (с одинаковым GUID'ом). По умолчанию для всех политик включается разрешение автоэнроллмента.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; галочка &lt;STRONG&gt;Enable for automatic enrollment and renewal&lt;/STRONG&gt; не является самодостаточной и зависит от классической политики автоэнроллмента. Если автоэнроллмент отключен, то соответственно, автоматическая подача заявок на сертификаты производиться не будет.&lt;/P&gt;
&lt;P&gt;Как обычно, триггер автоэнроллмента устанавливается в групповых политиках. Для его установки необходимо в редакторе групповой политики выключить следующие опции:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;создать новый объект групповой политики или отредактировать существующую политику по адресу: &lt;BR&gt;&lt;FONT color=#804000&gt;Computer Configuration –&amp;gt; Windows Settings –&amp;gt; Security Settings –&amp;gt; Public Key Policies –&amp;gt; Certificate Services Client — Autoenrollment&lt;/FONT&gt; &lt;BR&gt;данный элемент политики следует установить в состояние &lt;STRONG&gt;Enabled&lt;/STRONG&gt;, поставить галочку &lt;STRONG&gt;Update certificates that use certificate templates&lt;/STRONG&gt; и при необходимости выбрать автоматическое обновление просроченных сертификатов и удалении отозванных сертификатов из хранилища. 
&lt;LI&gt;Те же параметры настраиваются и в секции User Configuration, чтобы обеспечить автоматическое распространение пользовательских сертификатов. Это могут быть сертификаты EFS, подписи электронной почты или сертификаты для аутентификации пользователей: &lt;BR&gt;&lt;FONT color=#804000&gt;User Configuration –&amp;gt; Windows Settings –&amp;gt; Security Settings –&amp;gt; Public Key Policies –&amp;gt; Certificate Services Client — Autoenrollment&lt;/FONT&gt; 
&lt;LI&gt;прилинкуйте созданную или отредактированную политику к нужному OU (чаще всего её применяют для всего домена). &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; для успешного энроллмента сертификатов на основе новых шаблонов (для которых у клиента ещё нет ни одного сертификата) галочка &lt;STRONG&gt;Update certificates that use certificate templates&lt;/STRONG&gt; обязательна!&lt;/P&gt;
&lt;P&gt;В общем смысле, новый автоэнроллмент работает примерно так:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Autoenrollment behavior using XCEP/WSTEP" border=0 alt="Autoenrollment behavior using XCEP/WSTEP" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment6XCEPWSTEPAutoe_FEB9/image_e8d4934f-7ee4-4de8-8993-7b5665de857f.png" width=498 height=300&gt;fig.4&lt;/P&gt;
&lt;H3 align=center&gt;Client behavior&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; по причине громоздкости текста, я не буду приводить содержание ответа сервера XCEP. Но его cтруктуру можно увидеть в&amp;nbsp; §4.1.1.2 (GetPoliciesResponse Response) документа &lt;A href="http://msdn.microsoft.com/en-us/library/dd302869(PROT.13).aspx" target=_blank&gt;[MS-XCEP]&lt;/A&gt;. Поэтому я буду подразумевать, что вы ознакомились с его примерным содержанием.&lt;/P&gt;
&lt;P&gt;Когда срабатывает триггер автоэнроллмента, клиент считывает параметры из реестра:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#804000&gt;HKLM\SOFTWARE\Policies\Microsoft\Cryptography\Autoenrollment&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#804000&gt;HKCU\SOFTWARE\Policies\Microsoft\Cryptography\Autoenrollment&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Данные разделы реестра содержат настройки автоэнроллмента для конфигурации компьютера и пользователя, соответственно (более подробней о содержимом этих разделов реестра читайте во &lt;A href="http://www.sysadmins.lv/PermaLink,guid,2c7c0d72-2a7c-480d-93b7-74f3737ce9a8.aspx"&gt;второй части&lt;/A&gt;). А так же будет считывать следующие ключи реестра:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#804000&gt;HKLM\SOFTWARE\Policies\Microsoft\Cryptography\PolicyServers&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#804000&gt;HKCU\SOFTWARE\Policies\Microsoft\Cryptography\PolicyServers&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Данные ключи будут содержать подключи политик. Каждому подключу политики присваивается уникальный GUID и внутри него будет содержаться необходимая информация о каждой политике, как URI, метод аутентификации, «стоимость» политики и флаги автоэнроллмента. После этого происходит сортировка политик по следующим правилам:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;сортируются по «стоимости» политики. Политика с меньшей стоимостью будет более приоритетной и политика с большей стоимостью будет менее приоритетной, соответственно. Если 2 и более политик имеют одинаковую стоимость, то идёт второй уровень сортировок по методу аутентификации (в порядке приоритета): 
&lt;UL&gt;
&lt;LI&gt;используется аутентификация Kerberos; 
&lt;LI&gt;используется анонимная аутентификация; 
&lt;LI&gt;остальные политики используются в том порядке, в каком они записаны в реестре. &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Когда политики отсортированы, клиент подключается к серверу XCEP из каждой политики по HTTPS. Если по какой-то ссылке не удаётся подключиться или сервер возвращает ошибку (SOAP), клиент переходит к следующей ссылке. Если в ответ получены политики, клиент извлекает следующие параметры:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;адрес или адреса серверов CES; 
&lt;LI&gt;список серверов CA, на работу с которыми настроен сервер CES. Один сервер CES должен быть настроен на работу с неболее, чем одним сервером CA; 
&lt;LI&gt;список шаблонов и их параметры. &lt;/LI&gt;&lt;/UL&gt;
&lt;H3 align=center&gt;Pended request processing&lt;/H3&gt;
&lt;P&gt;Как и в случае с ACR, клиент после всех подготовительных процедур пытается получить сертификаты в ответ на запросы. Как мы уже знаем, запросы хранятся в контейнере &lt;STRONG&gt;Certificate Enrollment Requests&lt;/STRONG&gt;. Сперва клиент удаляет все запросы, которые старше 60 дней, а затем посылает запрос на CES для выяснения статуса каждого запроса. Если в ответ на запрос был получен сертификат, то он помещается в список &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt;. Если статус запроса &lt;STRONG&gt;Denied&lt;/STRONG&gt;, то запрос удаляется. Если статус неизвестен, клиент переходит к следующему запросу.&lt;/P&gt;
&lt;H3 align=center&gt;Certificate update and enrollment&lt;/H3&gt;
&lt;P&gt;После обработки всех ожидающих запросов, клиент проверяет статус каждого существующего сертификата. Если сертификат отозван или его срок истёк, он помещается в список &lt;STRONG&gt;ToBeDeleted&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; просроченные сертификаты будут помещены в этот список только если в групповой политике выставлен флаг &lt;STRONG&gt;Renew expired certificates, update pending certificates, and remove revoked certificates&lt;/STRONG&gt; и сертификат не используется для шифрования.&lt;/P&gt;
&lt;P&gt;Если срок действия сертификата преодолел отметку 80% и шаблон этого сертификата находится в списке доступных шаблонов (который был получен после нескольких уровней фильтрации в предыдущих шагах), клиент отправляет запрос на обновление сертификата. При этом запрос подписывается текущим сертификатом. Если в реестре для текущего сертификата указан &lt;STRONG&gt;PolicyID&lt;/STRONG&gt;, клиент будет пытаться найти тот же ID в списке политик CEP и запрос на обновление сертификата отправлять на сервер CES, который указан в политике. Если PolicyID для текущего сертификата не указан, то запрос будет отправляться на тот сервер CES, политика которого является по умолчанию (см &lt;STRONG&gt;fig.2&lt;/STRONG&gt;). Если в ответ на запрос был получен сертификат, клиент помещает его в список &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt; и записывает PolicyID, который использовался при энроллменте. Этот ID будет использоваться при обновлении сертификата.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; здесь и далее. Если по каким-либо причинам запрос подписать невозможно, клиент вместо обновления сертификата выполняет стандартную процедуру запроса сертификата с генерацией новой ключевой пары.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; здесь и далее. Если необходимый шаблон находится в выдаче более одного CA, клиент по очереди посылает запрос на каждый сервер CES в соответствии с их сортировкой.&lt;/P&gt;
&lt;P&gt;Если версия шаблона (&lt;STRONG&gt;Major Version&lt;/STRONG&gt;), который использовался при предыдущем энроллменте отличается от текущего &lt;STRONG&gt;Major Version&lt;/STRONG&gt; шаблона, клиент посылает запрос на обновление сертификата. При этом запрос подписывается текущим сертификатом. Если в ответ на запрос был получен сертификат, клиент помещает его в список &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; при каждом редактировании шаблона (кроме вкладки Security) изменяется только Minor Version. И держатели сертификатов этого шаблона не увидят, что шаблон изменён, поскольку они проверяют только Major Version. В случае, если после внесения изменений в шаблон необходимо переиздать все сертификаты этого шаблона, администратор должен изменить Major Version. Для этого администратор в оснастке certtmpl.msc должен выбарть нужный шаблон, нажать правой кнопкой и выбарть &lt;STRONG&gt;Reenroll All Certificate Holders&lt;/STRONG&gt;. Этот шаг изменит Major Version шаблона и все клиенты, которые уже имеют сертификат данного шаблона его обновят, получив новый сертификат с новыми изменениями.&lt;/P&gt;
&lt;P&gt;Если шаблон, который использовался при предыдущем энроллменте был заменён более новым (вкладка Superseded Templates нового шаблона содержит устаревший шаблон), клиент отправляет запрос на обновление сертификата. При этом запрос подписывается текущим сертификатом. Если в реестре для текущего сертификата указан &lt;STRONG&gt;PolicyID&lt;/STRONG&gt;, клиент будет пытаться найти тот же ID в списке политик CEP и запрос на обновление сертификата отправлять на сервер CES, который указан в политике. Если PolicyID для текущего сертификата не указан, запрос будет отправляться на тот сервер CES, политика которого является по умолчанию (см &lt;STRONG&gt;fig.2&lt;/STRONG&gt;). Если в ответ на запрос был получен сертификат, клиент помещает его в список &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt; и записывает PolicyID, который использовался при энроллменте. Этот ID будет использоваться при обновлении сертификата.&lt;/P&gt;
&lt;P&gt;Для необработанных шаблонов клиент отправляет запросы на получение сертификатов на основе этих шаблонов.Если в ответ на запрос был получен сертификат, клиент помещает его в список &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt; и записывает PolicyID, который использовался при энроллменте. Этот ID будет использоваться при обновлении сертификата.&lt;/P&gt;
&lt;P&gt;Когда все запросы, сертификаты и шаблоны были обработаны, триггер автоэнроллмента очищает список &lt;STRONG&gt;ToBeDeleted&lt;/STRONG&gt; и все сертификаты из списка &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt; копирует в контейнер &lt;STRONG&gt;Personal&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H3 align=center&gt;Epilogue&lt;/H3&gt;
&lt;P&gt;Вот, вроде и всё. На этом я завершаю цикл статей, посвящённых Certificate Autoenrollment во всех его вариациях и с рассказом о новых возможностях Windows 7 и Windows Server 2008 R2. Рассказал как умел и, мне кажется, материал получился достаточно исчерпывающим и у читателя должно появиться понимание принципа работы всех внутренних механизмов. Если что-то осталось непонятным или появились вопросы — комментарии внизу :)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Что бы почитать?&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd302869(PROT.13).aspx"&gt;[MS-XCEP]&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd340609(PROT.13).aspx"&gt;[MS-WSTEP]&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=28B910F8-6374-48DD-A897-11FFF62AB795&amp;amp;displaylang=en"&gt;Certificate Enrollment Web Services in Windows Server 2008 R2&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=51ad33bd-8195-4ca8-a757-04dd20055d1f"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,51ad33bd-8195-4ca8-a757-04dd20055d1f.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Autoenrollment</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=4f285016-9215-4f89-a9a6-2d8748f673b1</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,4f285016-9215-4f89-a9a6-2d8748f673b1.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,4f285016-9215-4f89-a9a6-2d8748f673b1.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=4f285016-9215-4f89-a9a6-2d8748f673b1</wfw:commentRss>
      <title>Certificate Autoenrollment от А до Я (часть 5) — расширения в Windows 7/2008 R2</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,4f285016-9215-4f89-a9a6-2d8748f673b1.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,4f285016-9215-4f89-a9a6-2d8748f673b1.aspx</link>
      <pubDate>Wed, 27 Jan 2010 21:16:49 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Certificate Autoenrollment от А до Я — подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;H1 align=center&gt;Windows Client Certificate Enrollment (WCCE)&lt;/H1&gt;
&lt;P&gt;В предыдущих частях мы рассмотрели принципы работы autoenrollment'а, который возможен только в доменной среде. Это значит, что для осуществления этой задачи мы должны иметь как минимум:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Контейнер в AD с информацией о шаблонах сертификатов. CA локально не хранит сами шаблоны, а хранятся они только в AD; 
&lt;LI&gt;Контейнер в AD с информацией о выдающих Enterprise CA (Issuing CA). &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Я считаю, что следует ещё раз ознакомиться о порядке энроллмента сертификатов в домене из оснастки Certificates консоли MMC:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Клиент инициализирует необходимые COM интерфейсы для CryptoAPI; 
&lt;LI&gt;Используя &lt;STRONG&gt;LDAP&lt;/STRONG&gt; получает список всех доступных в лесу шаблонов сертификатов; 
&lt;LI&gt;Используя &lt;STRONG&gt;LDAP&lt;/STRONG&gt; получает список всех доступных в лесу &lt;STRONG&gt;Enterprise CA&lt;/STRONG&gt;. Именно по этой причине Enterprise CA не могут существовать вне домена Active Directory, поскольку Active Directory используется для их обнаружения и хранения шаблонов; 
&lt;LI&gt;Используя свдения полученные на предыдущем этапе, клиент подключается к &lt;STRONG&gt;DCOM&lt;/STRONG&gt; интерфейсу &lt;A href="http://msdn.microsoft.com/en-us/library/aa385043(VS.85).aspx" target=_blank&gt;ICertRequest3::GetCAProperty()&lt;/A&gt; сервера CA и получает список доступных шаблонов CA; 
&lt;LI&gt;На данном этапе клиент в окне MMC отображает список шаблонов, которые вы можете выбирать; 
&lt;LI&gt;Вы вибираете нужный шаблон и клиент используя множество COM интерфейсов. Пример их использования можете посмотреть в следующем посте: &lt;A href="http://blogs.technet.com/vishalagarwal/archive/2009/08/22/generating-a-certificate-self-signed-using-powershell-and-certenroll-interfaces.aspx"&gt;Generating a certificate (self-signed) using powershell and CertEnroll interfaces&lt;/A&gt;; 
&lt;LI&gt;Когда запрос подготовлен, клиент подключается к &lt;STRONG&gt;DCOM&lt;/STRONG&gt; интерфейсу &lt;A href="http://msdn.microsoft.com/en-us/library/aa385054(VS.85).aspx"&gt;ICertRequest::Submit()&lt;/A&gt; сервера CA и отправляет этот запрос на сервер. 
&lt;LI&gt;После отправки запроса на сервер, клиент через тот же интерфейс получает статус своего запроса. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; более подробно все эти CryptoAPI DCOM интерфейсы описаны в спецификациях протокола &lt;A href="http://msdn.microsoft.com/en-us/library/cc249879(PROT.13).aspx" target=_blank&gt;[MS-WCCE]&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Как вы можете видеть, этим мы зажаты доменом Active Directory, поскольку без него не можем найти ни один Enterprise CA и не можем получить список доступных шаблонов. Другая проблема — непосредственное подключение к CryptoAPI DCOM интерфейсам сервера CA, что не очень хорошо сказывается на безопасности.&lt;/P&gt;
&lt;P&gt;Я сейчас не буду вдаваться в подробности организации серверов CA в лесу Active Directory, но требование DCOM коннекта делает невозможным изоляцию серверов CA от клиентов. Следовательно недоменные клиенты не могут энролить сертификаты через MMC, а доменные клиенты ограничены только серверами CA, которые зарегистрированы в текущем лесу. Для наглядности прилагаю картинку:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Windows Client Certificate (WCCE) protocol limitations" border=0 alt="Windows Client Certificate (WCCE) protocol limitations" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment5Windows72008R2_11D8A/wcce_38537653-8f40-4624-8e2d-dc91723a04ba.png" width=629 height=460&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 align=center&gt;X.509 Certificate Enrollment Policy (XCEP)&lt;/H1&gt;
&lt;P&gt;С выходом Windows 7 и Windows Server 2008 R2 мы имеем возможность как минимум частично разбить эти границы и получить более эффективную и пластичную инфраструктуру. Если предыдущая схема предполагает непосредственное подключение клиента к серверу CA, при использовании XCEP у нас появляется дополнительный промежуточный элемент — &lt;STRONG&gt;CEP&lt;/STRONG&gt; (&lt;EM&gt;Certificate Enrollment Policy&lt;/EM&gt;) &lt;STRONG&gt;Server&lt;/STRONG&gt;. Данный сервер освобождает клиента от необходимости непосредственной связи с Active Directory и с серверами CA. В грубом представлении это выглядит примерно так:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Certificate Enrollment Policy Server" border=0 alt="Certificate Enrollment Policy Server" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment5Windows72008R2_11D8A/xcep1_cfdf1234-6f24-4063-8c6c-523b13388978.png" width=513 height=124&gt; &lt;/P&gt;
&lt;P&gt;При включениии сервера политик XCEP, он читает из Active Directory всю необходимую информацию и хранит её у себя. При этом XCEP использует стандартные механизмы общения с Active Directory, как это раньше делал клиент. На сервере XCEP работает веб-приложение, которое позволяет клиентам подключаться к нему по HTTP. Это означает, что для выполнения шагов 2 и 3 (см. последовательность работы клиента при использовании протокола WCCE) клиенту совсем не обязательно иметь прямое подключение к Active Directory, но достаточно только знать HTTP-адрес сервера XCEP. Если это кому-то интересно, скажу, что клиент и XCEP используют XML сообщения.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; HTTP здесь указан только для обозначения типа протокола. В действительности XCEP использует только &lt;STRONG&gt;HTTPS&lt;/STRONG&gt;, поскольку протокол [MS-XCEP] не предусматривает защиту передаваемых данных как их шифрование и/или подпись. Для решения этих задач используется HTTPS-транспорт.&lt;/P&gt;
&lt;P&gt;Из этого следует, что CEP политики может получать даже недоменный клиент или член другого леса. Протокол [MS-XCEP] использует различные схемы XML, которые содержат всю необходимую информацию:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Список шаблонов и их настройки; 
&lt;LI&gt;Все используемые OID'ы для использования нестандартных политик выдачи или политики применения ключа (EKU); 
&lt;LI&gt;Список и адреса серверов CA, которые позволяют. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;И эти данные клиент использует для подготовки и отправки запроса на сервер CA.&lt;/P&gt;
&lt;H1 align=center&gt;WS-Trust X.509v3 Token Enrollment Extensions (WSTEP)&lt;/H1&gt;
&lt;P&gt;В предыдущем разделе мы узнали о сути сервера XCEP, который позволяет даже недоменным клиентам и/или клиентам чужого леса получать политики энроллмента. Скажем, наш клиент находится в рабочей группе и по HTTPS получил всю необходимую информацию и уже готов отправлять запросы на получение сертификатов. Но, как мы знаем, при энроллменте клиент использует прямое подключение к DCOM сервера CA. Понятное дело, что никто выставлять сервер CA с открытым DCOM в интернет не будет. Как запрашивать сертификаты? А очень просто — по той же самой логике, как и с сервером XCEP у нас появляется ещё один (независимый от XCEP) промежуточный элемент — &lt;STRONG&gt;CES&lt;/STRONG&gt; (&lt;EM&gt;Certiicate Enrollment Service&lt;/EM&gt;) Server. В грубом представлении картинка будет выглядеть примерно так:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Certificate Enrollment Service" border=0 alt="Certificate Enrollment Service" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment5Windows72008R2_11D8A/ces_61c84f20-b14d-4595-9bda-294f7fe8d618.png" width=499 height=124&gt; &lt;/P&gt;
&lt;P&gt;Клиент из политики, которую получил от XCEP, выбирает HTTP URL нужного сервера CA и начинает собирать запрос. После чего запаковывает всё в XML и по HTTPS отправляет запрос на сервер CES. CES в свою очередь обрабатывает полученный запрос, расшивает XML и уже классическим методом (через DCOM) пересылает запрос на сервер CA и получает от него ответ. Этот ответ CES перенаправляет клиенту снова в XML формате. По сути CES только проксирует запросы клиента, трансформируя их из XML в DCOM и ответы из DCOM в XML.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; по причине отсутствия в протоколе механизма шифрования и/или подписи передаваемых данных, между клиентом и CES используется HTTPS-транспорт.&lt;/P&gt;
&lt;P&gt;Для улучшения понимания предлагаю простую картинку:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Simple XCEP/CES communications" border=0 alt="Simple XCEP/CES communications" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment5Windows72008R2_11D8A/ces2_da6ad54c-181f-4090-bddf-1ea82c665bb5.png" width=628 height=464&gt; &lt;/P&gt;
&lt;P&gt;На данной картинке сервер getcerts.contoso.com является одновременно и сервером XCEP и CES. XCEP считывает настройки энроллмента для текущего леса из Active Directory с использованием стандартного LDAP. Клиент получает эту информацию с использованием XML over HTTPS. По тому же XML over HTTPS отправляет запрос службе CES, которая с использованием стандартного DCOM общается с Entrprise CA и транслирует (проксирует) ответы обратно клиенту. Может быть следующая картинка даст более понятное представление об этом непростом механизме:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Extended XCEP/CES scenario" border=0 alt="Extended XCEP/CES scenario" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment5Windows72008R2_11D8A/ces1_9b3e80b3-d655-462e-9e31-c075b675412d.png" width=628 height=565&gt; &lt;/P&gt;
&lt;P&gt;На этой схеме в DMZ расположены &lt;STRONG&gt;RODC&lt;/STRONG&gt; (&lt;EM&gt;Read-Only Domain Controller&lt;/EM&gt;), сервер &lt;STRONG&gt;XCEP&lt;/STRONG&gt; и &lt;STRONG&gt;CES&lt;/STRONG&gt;. В корпоративную сеть из DMZ у нас разрешены только DCOM сообщения и только до Enteprise CA. А из DMZ в интернет доступен только HTTPS. Это достаточно безопасная и удобная схема, когда клиент из интернета может энролить сертификаты только с использованием HTTPS.&lt;/P&gt;
&lt;P&gt;Можно задать резонный вопрос: а как сделать все эти XCEP и CES? Существует достаточно детальный документ, который описывает установку и настройку XCEP/CES: &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=28B910F8-6374-48DD-A897-11FFF62AB795&amp;amp;displaylang=en" target=_blank&gt;Certificate Enrollment Web Services in Windows Server 2008 R2&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;В следующий раз мы посмотрим как работает автоэнроллмент при использовании XCEP/CES.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Что бы почитать?&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc249879(PROT.13).aspx" target=_blank&gt;[MS-WCCE]&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd302869(PROT.13).aspx" target=_blank&gt;[MS-XCEP]&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd340609(PROT.13).aspx" target=_blank&gt;[MS-WSTEP]&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=28B910F8-6374-48DD-A897-11FFF62AB795&amp;amp;displaylang=en" target=_blank&gt;Certificate Enrollment Web Services in Windows Server 2008 R2&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=4f285016-9215-4f89-a9a6-2d8748f673b1"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,4f285016-9215-4f89-a9a6-2d8748f673b1.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Autoenrollment</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=1d4b05e1-833f-4479-b110-c3ed63be1706</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,1d4b05e1-833f-4479-b110-c3ed63be1706.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,1d4b05e1-833f-4479-b110-c3ed63be1706.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=1d4b05e1-833f-4479-b110-c3ed63be1706</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>Certificate chaining engine и certificate revocation checking — FAQ</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,1d4b05e1-833f-4479-b110-c3ed63be1706.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,1d4b05e1-833f-4479-b110-c3ed63be1706.aspx</link>
      <pubDate>Thu, 21 Jan 2010 20:20:06 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px 15px 0px 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=КДПВ border=0 alt=КДПВ align=left src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/Certificatechainingenginecertificaterevo_10A0B/kdpv_c1c4d0e5-0bf9-43dc-9d9e-3832618e4667.jpg" width=127 height=96&gt; Предлагаю немного отвлечься от autoenrollment и поговорить о часто задаваемым вопросам, которые относятся к проблемам certificate chaining engine. Данный FAQ основывается на вопросах, которые часто задаются на форумах TechNet. &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; За что отвечают расширения &lt;STRONG&gt;CRL Distribution Points&lt;/STRONG&gt; (&lt;EM&gt;CDP&lt;/EM&gt;) и &lt;STRONG&gt;Authority Information Access&lt;/STRONG&gt; (&lt;EM&gt;AIA&lt;/EM&gt;) в цифровых сертификатах?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; Расширение &lt;STRONG&gt;Authority Information Access&lt;/STRONG&gt; всегда содержит ссылки на сертификат &lt;STRONG&gt;Certification Authority&lt;/STRONG&gt; (&lt;EM&gt;CA&lt;/EM&gt;), который издал рассматриваемый сертификат. Например, у вас есть сервер CA, который издаёт пользователям сертификаты. Каждый такой сертификат будет содержать ссылку на скачивание сертификата этого самого CA. Это необходимо для построения цепочки сертификатов. Как известно, любая иерархия PKI включает себя как минимум один корневой CA (&lt;STRONG&gt;Root CA&lt;/STRONG&gt;) и может содержать несколько уровней промежуточных CA. Используя расширение AIA конечного сертификата, клиент скачивает сертификат издающего CA, который в расширении AIA так же содержит ссылки на скачивание сертификата вышестоящего CA. Этот процесс происходит до тех пор, пока цепочка не закончится самоподписанным сертификатом и который уже не содержит расширения AIA. Поскольку корневой сертификат самоподписанный, он является конечной точкой цепочки. По корневому сертификату определяется доверие цепочке. Чтобы доверять такой цепочке, корневой сертификат, на котором эта цепочка заканчивается, должен быть установлен в контейнере Trusted Root CAs в оснастке &lt;STRONG&gt;Certificates&lt;/STRONG&gt; консоли &lt;STRONG&gt;MMC&lt;/STRONG&gt;. &lt;BR&gt;Расширение &lt;STRONG&gt;CRL Distribution Point&lt;/STRONG&gt; содержит ссылки на файлы CRL, которые периодически публикует сервер CA, который издал рассматриваемый сертификат. Этот файл содержит серийные номера и прочую информацию о сертификатах, которые были отозваны. Сертификаты могут быть отозваны, когда есть подозрения или уже констатирован факт получения несанкционированного доступа к закрытому ключу третьим лицом. Закрытый ключ должен быть доступен только тому пользователю или компьютеру, которому выдан данный сертификат. Если третье лицо получило доступ к закрытому ключу, это лицо может воспользоваться им для получения конфиденциальной информации или выдавать себя за легитимного пользователя. В таких случаях администратор CA может отозвать такой сертификат. В таком случае если сертификат содержится в файле CRL, предъявителю данного сертификата никакого доверия не будет. Следует понимать, что CDP/AIA рассматриваемого сертификата содержат ссылки на файлы вышестоящего CA. Даже если владельцем рассматриваемого сертификата является сервер CA (&lt;STRONG&gt;Intermediate CA&lt;/STRONG&gt;), ссылки будут указывать на файлы вышестоящего CA. &lt;BR&gt;Более подробно вопрос рассмотрен по ссылке: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx"&gt;Certificate Chaining Engine — как это работает&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; Нужны ли расширения CDP и AIA в сертификатах корневых CA?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; Нет. Как уже было сказано, CDP и AIA содержат ссылки на файлы вышестоящего CA, а корневой сертификат является высшей точкой в иерархии и выше корневого CA ничего быть не может. Поэтому данные расширения бесполезны для сертификатов корневых CA и обычно просто отсутствуют. &lt;BR&gt;Более подробно вопрос рассмотрен здесь: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,b3521905-4696-4e23-a2d8-1f6fafbfa030.aspx"&gt;Certificate chaining engine (CCE) и отзыв корневых сертификатов&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; На каком сервере CA я могу отозвать определённый сертификат?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; каждый сервер CA поддерживает свой список CRL в который может включать только те сертификаты, которые были выданы именно этим CA. Это означает, что сертификат отозвать может только CA, который указан в поле Issuer рассматриваемого сертификата.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; Стоит ли использовать &lt;STRONG&gt;Certificate Hold&lt;/STRONG&gt; в качестве причины отзыва сертификата? Если да, то в каких случаях?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; Причина отзыва как &lt;STRONG&gt;Certificate Hold&lt;/STRONG&gt; обладает одной особенностью — его можно извлечь обратно из CRL файла, после чего он перестанет считаться отозванным. Данная причина задумана для случаев когда сотрудник уходит в отпуск и такой отзыв позволит избежать использование отозванного сертификата на этот период. Однако, данную причину не следует никогда использовать. Это связано с тем, что после извлечения сертификата из CRL вы не можете узнать был ли он отозван в какой-то период времени. Например, вы отозвали сертификат с причиной Certificate Hold и через некоторое время передумали и извлекли сертификат из CRL. В последствии вы получаете документ, подписанный этим сертификатом именно в период фактического нахождения сертификата в CRL. Фактически получается, что документ был подписан в тот момент, когда сертификат был отозван. Поскольку он был потом извлечён из CRL, вы больше не можете доказать, что сертификат был отозван на момент подписания документа. По этой причине вы не должны использовать данную причину отзыва.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; При установке сертификата на сервер иногда получаю ошибку: &lt;STRONG&gt;The revocation function was unable to check revocation because the revocation server was offline. 0x80092013 (-2146885613)&lt;/STRONG&gt;. Что это может означать и как эту ошибку исправить?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; Данная ошибка указывает на то, что системе не удалось проверить сертификат на отзыв. Иными словами, система извлекла ссылку из CDP расширения сертификата и по этой ссылке не удалось скачать CRL файл. В данном случае вы должны обратиться к администратору сервера CA, чтобы тот обеспечил доступность файла по ссылкам в CDP расширении. Если же вы сами исполняете эти обязанности, то вы должны самостоятельно решить этот вопрос — настроить точки публикации CRL файлов. В качестве временного решения (например, вы опубликовали CRL только в Active Directory и у вас несколько доменов в лесу, причиной этого может быть репликация AD. В таком случае вы можете скачать CRL файл локально на компьютер (любым удобным способом) и выполнить команду: &lt;FONT color=#0000ff&gt;certutil –addstore –f Root &amp;lt;path\file.crl&amp;gt;&lt;/FONT&gt; &lt;BR&gt;где &lt;FONT color=#0000ff&gt;&amp;lt;path\file.crl&amp;gt;&lt;/FONT&gt; — путь к файлу CRL.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; При открытии файла сертификата я вижу следующее сообщение: &lt;STRONG&gt;Windows does not have enough information to verify this certificate&lt;/STRONG&gt;. Что это означает и как с этим бороться?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; Данное сообщение говорит о том, что системе не удалось найти сертификат вышестоящего CA. Как уже было отмечено, этот сертификат можно скачать по ссылке (ссылкам) в расширении AIA, но по всей видимости они нерабочие. Вы можете попробовать вручную скачать файл по этим ссылкам и вероятней всего вам это не удастся. Для решения этой проблемы вы должны опубликовать физический файл в соответствующие места: папка веб-сервера (для протокола HTTP) или контейнер AIA в Active Directory (для протокола LDAP). Если файл сертификата CA публикуется только в AD и у вас лес с несколькими доменами, данная ошибка может быть кратковременно вызвана задержками репликации. В таком случае для временного решения вы можете скачать файл на локальную машину (любым удобным для вас способом) и выполнить одну из двух команд: &lt;BR&gt;&lt;FONT color=#0000ff&gt;certutil –addstore –f SubCA &amp;lt;path\file.crt&amp;gt;&lt;/FONT&gt; — если вышестоящий CA не является корневым &lt;BR&gt;&lt;FONT color=#0000ff&gt;certutil –addstore –f Root &amp;lt;path\file.crt&amp;gt;&lt;/FONT&gt; — если вышестоящий CA является корневым. &lt;BR&gt;где &lt;FONT color=#0000ff&gt;&amp;lt;path\file.crt&amp;gt;&lt;/FONT&gt; — путь к файлу CER/CRT.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; Я отозвал сертификат, опубликовал новый CRL, однако при запуске файла сертификата я не вижу ошибок, что сертификат отозван. Почему?&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=4&gt;&lt;STRONG&gt;A:&lt;/STRONG&gt;&lt;/FONT&gt; Когда вы запускаете файл сертификата (просматриваете его содержимое), проверка на отзыв не происходит. Система только строит цепочку, но ни один сертификат на отзыв не проверяется. Это by design. Для проверки статуса сертификата вы можете воспользоваться следующими командами: &lt;BR&gt;&lt;FONT color=#0000ff&gt;certutil –url &amp;lt;path\file.cer&amp;gt;&lt;/FONT&gt; — этой командой вызывается удобный графический интерфейс, в котором вы можете выяснить статус отзыва сертификата. &lt;BR&gt;&lt;FONT color=#0000ff&gt;certutil –verify –urlfetch &amp;lt;path\file.cer&amp;gt;&lt;/FONT&gt; — данная команда выведет очень подробный текстовый лог проверки. Рекомендуется для использования профессионалами, которые в состоянии проанализировать этот лог. &lt;BR&gt;где &lt;FONT color=#0000ff&gt;&amp;lt;path\file.cer&amp;gt;&lt;/FONT&gt; — путь к файлу проверяемого сертификата.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=4&gt;&lt;STRONG&gt;Q:&lt;/STRONG&gt;&lt;/FONT&gt; Я отозвал сертификат, опубликовал новые CRL, однако certutil показывает, что сертификат не отозван. Как так?&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=4&gt;&lt;STRONG&gt;A:&lt;/STRONG&gt;&lt;/FONT&gt; Это вызвано тем, что CRL'ы, как и ответы от OCSP Responder кешируются в оперативной памяти и жёстком диске. Для обновления кеша в памяти, следует перезапустить приложение, которое проверяет статус сертификата. А на самом диске CRL кешируется на срок действия конкретного CRL. Это значит, что клиент будет использовать данный кешированный CRL до срока указанного в поле Next update конкретного CRL файла. Кеширование используется для экономии ресурсов и пропускной способности сети. Но вы можете очистить кеш CRL (при этом удалятся все кешированные CRL), вы можете воспользоваться следующей командой: &lt;BR&gt;&lt;FONT color=#0000ff&gt;certutil -setreg chain\ChainCacheResyncFiletime @now &lt;BR&gt;&lt;/FONT&gt;после этого обязательно следует выполнить следующую команду: &lt;BR&gt;&lt;FONT color=#0000ff&gt;certutil –delreg chain\ChainCacheResyncFiletime&lt;/FONT&gt; &lt;BR&gt;Данные команды поддерживаются системами начиная с Windows XP SP3. Предыдущие системы не поддерживают очистку кеша CRL.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=4&gt;&lt;STRONG&gt;Q:&lt;/STRONG&gt;&lt;/FONT&gt; Какие протоколы разрешены для расширений CDP/AIA?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; Для Windows систем доступны только следующие протоколы: &lt;BR&gt;&lt;STRONG&gt;HTTP://&lt;/STRONG&gt; — только для публикации в расширение сертификата. &lt;BR&gt;&lt;STRONG&gt;LDAP://&lt;/STRONG&gt; — для публикации физических файлов и для публикации ссылки в расширение сертификата. &lt;BR&gt;&lt;STRONG&gt;FILE://&lt;/STRONG&gt; — только для публикации физических файлов в сетевой папке (например, на веб-сервере). Хотя Windows Server 2003 и предыдущие системы позволяли такие ссылки в расширениях CDP/AIA, начиная с Windows Vista/Windows Server 2008 они больше не допускаются и не используются. &lt;BR&gt;&lt;STRONG&gt;C:\path&lt;/STRONG&gt; — только для публикации физических файлов в файловой системе локального компьютера. &lt;BR&gt;Более подробно можно прочитать по ссылке: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx"&gt;CRL Distribution Points и Authority Information Access&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; есть ли какие-то best practices по планированию расширений CDP/AIA?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; да, существют определённые best practices по настройке расширений CDP/AIA на сервере CA. И вот как они выглядят в общем виде: &lt;BR&gt;1) не следует использовать ссылки вида LDAP:// если ваши сертификаты могут использоваться вне пределах вашего леса AD. Это вызвано тем, что скачивать файлы по таким ссылкам могут только клиенты текущего леса, остальные клиенты будут получать ошибки по этим ссылкам. Целесообразно использовать более универсальные протоколы как HTTP. Данный протокол поддерживается множеством систем, в том числе и мобильными системами (смартфоны) и пользователями других операционных систем. При использовании HTTP рассмотрите возможность высокой доступности этих веб-серверов, как NLB-кластер или использования двух различных веб-серверов. В таком случае вы должны будете указать ссылки на скачивание файла для каждого веб-сервера. &lt;BR&gt;2) используйте веб-сервера, которые доступны как изнутри сети, так и из интернета (если сертификаты могут использоваться пользователями интернета, например SSL-сертификаты) по одному и тому же URL. &lt;BR&gt;3) при планировании ссылок, которые будут публиковаться в расширениях CDP/AIA сертификатов следует учитывать их очерёдность. Если вы решили использовать 2 независимых веб-сервера, первым указывайте тот, который будет являться основным. Это обусловлено тем, что клиент скачивает файлы по ссылкам в порядке их следования. Первая ссылка будет использоваться в первую очередь. Для ссылок публикации физического файла очерёдность не имеет значения. &lt;BR&gt;4) для HTTP ссылок никогда не используйте SSL (т.е. HTTPS ссылки), поскольку это вызовет бесконечную проверку сертификатов, в результате чего вы никогда не скачаете нужный файл. &lt;BR&gt;Более подробно можно прочитать по ссылкам: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx"&gt;CRL Distribution Points и Authority Information Access&lt;/A&gt;, &lt;A href="http://www.sysadmins.lv/PermaLink,guid,67cd6d34-9304-4ea8-bc18-456cd1de7a31.aspx"&gt;OCSP или CRL?&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; Какие версии ОС Windows поддерживают нативного клиента OCSP?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; Только ОС начиная с Windows Vista/Windows Server 2008 включают в себя клиента OCSP. Предыдущие системы никогда не поддерживали и не будут поддерживать клиента OCSP. Для них придётся приобретать отдельный программный продукт сторонних компаний.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; Я хочу использовать OCSP Responder как для внутренней, так и для внешней сети (интернета). На какое имя должен выдаваться сертификат OCSPResponseSigning?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; на самом деле клиенту всё равно на какое имя выдаётся данный сертификат. Главное — сертификат должен отвечать следующим условиям: &lt;BR&gt;1) должен быть выдан тем же CA для которого OCSP Responder осуществлял проверку статуса сертификата. &lt;BR&gt;2) в &lt;STRONG&gt;Application Policies&lt;/STRONG&gt; (&lt;STRONG&gt;Extended Key Usage&lt;/STRONG&gt;) должен быть указан: &lt;STRONG&gt;OCSP Signing&lt;/STRONG&gt; &lt;BR&gt;3) в сертификате должно присутствовать расширение: &lt;STRONG&gt;OCSP No Revocation Checking&lt;/STRONG&gt; &lt;BR&gt;4) срок действия сертификата должен быть действующий.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;Q:&lt;/FONT&gt;&lt;/STRONG&gt; Мы в компании перешли на Windows Vista/Windows 7 и развернули OCSP Responder. Однако в сети уже выпущено огромное количество сертификатов, которые не содержат ссылок на OCSP Responder. Надо ли перевыпускать все сертификаты для включения в них ссылки на OCSP?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=4&gt;A:&lt;/FONT&gt;&lt;/STRONG&gt; нет, вам не нужно перевыпускать все сертификаты, которые уже используются. Вы можете для доменных клиентов настроить групповую политику так, чтобы они получили адрес вашего OCSP Responder и которым они будут пользоваться при проверке сертификатов. В качестве руководства по настройке этой политики можете воспользоваться вот этой ссылкой: &lt;A href="http://technet.microsoft.com/en-us/library/ee619786(WS.10).aspx" target=_blank&gt;Appendix A: Managing OCSP Settings with Group Policy&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Что бы почитать?&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx"&gt;OCSP (часть 1)&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx"&gt;OCSP (часть 2)&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx"&gt;Certificate Chaining Engine — как это работает&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx"&gt;CRL Distribution Points и Authority Information Access&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,b3521905-4696-4e23-a2d8-1f6fafbfa030.aspx"&gt;Certificate chaining engine (CCE) и отзыв корневых сертификатов&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,67cd6d34-9304-4ea8-bc18-456cd1de7a31.aspx"&gt;OCSP или CRL?&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=1d4b05e1-833f-4479-b110-c3ed63be1706"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,1d4b05e1-833f-4479-b110-c3ed63be1706.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Chaining Engine</category>
      <category>Security / PKI / OCSP</category>
      <category>Security / PKI / Tips &amp; Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b2e30d38-f5e1-46f0-8262-b1c411295a08</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b2e30d38-f5e1-46f0-8262-b1c411295a08.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b2e30d38-f5e1-46f0-8262-b1c411295a08.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b2e30d38-f5e1-46f0-8262-b1c411295a08</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <title>Certificate Autoenrollment от А до Я (часть 4) — user certificate autoenrollment</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b2e30d38-f5e1-46f0-8262-b1c411295a08.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b2e30d38-f5e1-46f0-8262-b1c411295a08.aspx</link>
      <pubDate>Thu, 14 Jan 2010 20:59:43 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Update 25.01.2010:&lt;/FONT&gt;&lt;/STRONG&gt; добавлено обязательное включение галочки &lt;STRONG&gt;Update certificates that use certificate templates&lt;/STRONG&gt;.&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Certificate Autoenrollment от А до Я — подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Продолжаем тему автоэнроллмента и сегодня рассмотрим принцип т.н. «классической» модели автоматической подачи заявок на сертификаты. Данная модель поддерживается клиентами начиная с Windows XP и которые являются членами домена Active Directory.&lt;/P&gt;
&lt;H1 align=center&gt;Group Policy settings&lt;/H1&gt;
&lt;P&gt;Как и в случае с Automatic Certificate Request (ACR), триггер автоэнроллмента устанавливается в групповых. Для его установки необходимо в редакторе групповой политики выключить следующие опции:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;в оснастке &lt;STRONG&gt;CertSrv.msc&lt;/STRONG&gt; любого Enterprise CA в секции &lt;STRONG&gt;Certificate Templates&lt;/STRONG&gt; убедиться, что в списке присутствует нужный шаблон версии 2 или 3. Если нет, то &lt;FONT color=#0000ff&gt;All Tasks –&amp;gt; New –&amp;gt; Certificate Template to issue&lt;/FONT&gt; и добавить шаблон; 
&lt;LI&gt;в редакторе групповой политики (&lt;STRONG&gt;Group Policy Management&lt;/STRONG&gt;) создать новый объект групповой политики или отредактировать существующую политику по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;Computer Configuration –&amp;gt; Windows Settings –&amp;gt; Security Settings –&amp;gt; Public Key Policies –&amp;gt; Certificate Services Client — Autoenrollment&lt;/FONT&gt; &lt;BR&gt;данный элемент политики следует установить в состояние &lt;STRONG&gt;Enabled&lt;/STRONG&gt;, поставить галочку &lt;STRONG&gt;Update certificates that use certificate templates&lt;/STRONG&gt;&amp;nbsp;и при необходимости выбрать автоматическое обновление просроченных сертификатов и удалении отозванных сертификатов из хранилища. 
&lt;LI&gt;Те же параметры настраиваются и в секции User Configuration, чтобы обеспечить автоматическое распространение пользовательских сертификатов. Это могут быть сертификаты EFS, подписи электронной почты или сертификаты для аутентификации пользователей: &lt;BR&gt;&lt;FONT color=#0000ff&gt;User Configuration –&amp;gt; Windows Settings –&amp;gt; Security Settings –&amp;gt; Public Key Policies –&amp;gt; Certificate Services Client — Autoenrollment&lt;/FONT&gt; 
&lt;LI&gt;прилинкуйте созданную или отредактированную политику к нужному OU (чаще всего её применяют для всего домена). &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; для успешного энроллмента сертификатов на основе новых шаблонов (для которых у клиента ещё нет ни одного сертификата) галочка &lt;STRONG&gt;Update certificates that use certificate templates&lt;/STRONG&gt; обязательна!&lt;/P&gt;
&lt;P&gt;В общем смысле, автоэнроллмент работает примерно так:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="Autoenrollment behavior" border=0 alt="Autoenrollment behavior" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment4usercertificat_FC2D/image_26bfa925-f4c9-43e2-ad6f-a14ae2f932ee.png" width=498 height=327&gt; &lt;/P&gt;
&lt;P&gt;Но дальше мы рассмотрим весь этот процесс более подробно.&lt;/P&gt;
&lt;H4 align=center&gt;Client bahavior&lt;/H4&gt;
&lt;P&gt;Когда срабатывает триггер автоэнроллмента, клиент считывает параметры из реестра:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#0000ff&gt;HKLM\SOFTWARE\Policies\Microsoft\Cryptography\Autoenrollment&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#0000ff&gt;HKCU\SOFTWARE\Policies\Microsoft\Cryptography\Autoenrollment&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Данные разделы реестра содержат настройки автоэнроллмента для конфигурации компьютера и пользователя, соответственно (более подробней о содержимом этих разделов реестра читайте во &lt;A href="http://www.sysadmins.lv/PermaLink,guid,2c7c0d72-2a7c-480d-93b7-74f3737ce9a8.aspx"&gt;второй части&lt;/A&gt;). Следующим шагом клиент считывает данные из Active Directory:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;сертификаты CA из контейнера по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;CN=AIA, CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt; 
&lt;LI&gt;сертификаты корневых CA из контейнера по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;CN=Certification Authorities, CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt; 
&lt;LI&gt;сертификаты агентов восстановления из контейнера по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;CN=KRA, CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt; 
&lt;LI&gt;сертификаты CA, которые могут издавать сертификаты для аутентификации по Kerberos из записи &lt;STRONG&gt;NTAuthCertificates&lt;/STRONG&gt; по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;На основе этих сертификатов, клиент обновляет свои локальные хранилища. Далее, считываются все шаблоны и сведения об Enterprise CA из следующих контейнеров:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#0000ff&gt;CN=Certificate Templates, CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#0000ff&gt;CN=Enrollment Services, CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;После чего клиент считывает сертификаты из контейнера &lt;STRONG&gt;Personal&lt;/STRONG&gt; и помещает их в процессинговый список, а так же генерирует списки &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt; и &lt;STRONG&gt;ToBeDeleted&lt;/STRONG&gt;. В эти списки попадут все сертификаты, которые будут добавлены к локальному хранилищу и удалены из него, соответственно.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; в процессинговый список попадают только сертификаты основанные на шаблонах. Например, самоподписанные сертификаты EFS не попадают в этот список.&lt;/P&gt;
&lt;H4 align=center&gt;Certificate template sorting&lt;/H4&gt;
&lt;P&gt;И вот здесь начинается процесс организации порядка обработки сертификатов. Клиент из полученных шаблонов сертификатов выбирает только те, на которые у пользователя или компьютера (в зависимости от контекста) есть все права: &lt;STRONG&gt;Read&lt;/STRONG&gt;, &lt;STRONG&gt;Enroll&lt;/STRONG&gt; и &lt;STRONG&gt;Autoenroll&lt;/STRONG&gt;. Если же хоть одного права не хватает, то шаблон исключается из списка. Для оставшихся шаблонов проверяется содержимое &lt;STRONG&gt;Superseded Templates&lt;/STRONG&gt;. Как я уже говорил в предыдущей части, любой шаблон версии 2 или 3 может заменять устаревший шаблон. Например, новый шаблон Advanced EFS может заменять шаблон Basic EFS. В таком случае шаблон Advanced EFS считается более новым и все держатели сертификатов шаблона Basic EFS получат новый сертификат шаблона Advanced EFS. Поскольку список Superseded Templates содержит устаревшие и неиспользуемые более шаблоны, то они так же исключаются из списка. Следующим этапом исключаются шаблоны, в настройках которых содержится:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;число &lt;STRONG&gt;This Number Of Authorized Signatures&lt;/STRONG&gt; (во вкладке &lt;STRONG&gt;Issuance Requirements&lt;/STRONG&gt;) больше 1; 
&lt;LI&gt;выставлен чек-бокс &lt;STRONG&gt;Supply in the request&lt;/STRONG&gt; (во вкладке &lt;STRONG&gt;Subject name&lt;/STRONG&gt;); 
&lt;LI&gt;выставлен чек-бокс &lt;STRONG&gt;Prompt the user during enrollment&lt;/STRONG&gt; (во вкладке &lt;STRONG&gt;Request handling&lt;/STRONG&gt; компьютерных шаблонов). &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Данные параметры несовместимы с автоэнроллментом, поэтому такие шаблоны так же исключаются из списка. В результате такого многоступенчатого фильтра остаются только потенциально пригодные для автоэнроллмента шаблоны.&lt;/P&gt;
&lt;P&gt;Когда шаблоны сертификатов отсортированы, клиент обрабатывает список Enterprise CA. Их записи в Active Directory содержат достаточно информации, чтобы клиент мог их найти. Получив список Enterprise CA в текущем лесу, клиент проверяет сертификат каждого CA. Если цепочка какого-то CA не может быть построена, недоверена или какой-то элемент цепочки был отозван, то такой CA исключается из списка. Клиент может использовать только доверенные CA для формирования запроса и получения сертификатов.&lt;/P&gt;
&lt;P&gt;После составления списка всех пригодных Enterprise CA, клиент обращается к каждому из них и получает список шаблонов, на основании которых CA может издавать сертификаты. Здесь клиент делает последний процесс сортировки шаблонов, которые будут обработаны. Все шаблоны, которые не находятся в выдаче хотя бы одного CA, удаляются из списка. Таким образом фильтр обеспечивает, что каждый шаблон может быть обработан потому что он содержит правильные настройки, разрешения и находится в выдаче хотя бы одного CA.&lt;/P&gt;
&lt;H4 align=center&gt;Pended request processing&lt;/H4&gt;
&lt;P&gt;Как и в случае с ACR, клиент после всех подготовительных процедур пытается получить сертификаты в ответ на запросы. Как мы уже знаем, запросы хранятся в контейнере &lt;STRONG&gt;Certificate Enrollment Requests&lt;/STRONG&gt;. Сперва клиент удаляет все запросы, которые старше 60 дней, а затем посылает запрос на CA для выяснения статуса каждого запроса. Если в ответ на запрос был получен сертификат, то он помещается в список ToBeAdded. Если статус запроса Denied, то запрос удаляется. Если статус неизвестен, клиент переходит к следующему запросу.&lt;/P&gt;
&lt;H4 align=center&gt;Certificate update and enrollment&lt;/H4&gt;
&lt;P&gt;После обработки всех ожидающих запросов, клиент проверяет статус каждого существующего сертификата. Если сертификат отозван или его срок истёк, он помещается в список ToBeDeleted.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; просроченные сертификаты будут помещены в этот список только если в групповой политике выставлен флаг &lt;STRONG&gt;Renew expired certificates, update pending certificates, and remove revoked certificates&lt;/STRONG&gt; и сертификат не используется для шифрования.&lt;/P&gt;
&lt;P&gt;Если срок действия сертификата преодолел отметку 80% и шаблон этого сертификата находится в списке доступных шаблонов (который был получен после нескольких уровней фильтрации в предыдущих шагах), клиент отправляет запрос на обновление сертификата. При этом запрос подписывается текущим сертификатом. Если в ответ на запрос был получен сертификат, клиент помещает его в список ToBeAdded.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; здесь и далее. Если по каким-либо причинам запрос подписать невозможно, клиент вместо обновления сертификата выполняет стандартную процедуру запроса сертификата с генерацией новой ключевой пары.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Примечание:&lt;/STRONG&gt;&lt;/FONT&gt; здесь и далее. Если необходимый шаблон находится в выдаче более одного CA, клиент рандомно выбирает CA которому будет отправлен запрос. Если CA вернул ошибку или недоступен, клиент выбирает другой CA, который может выпускать сертификаты на основе конкретного шаблона.&lt;/P&gt;
&lt;P&gt;Если версия шаблона (&lt;STRONG&gt;Major Version&lt;/STRONG&gt;), который использовался при предыдущем энроллменте отличается от текущего Major Version шаблона, клиент посылает запрос на обновление сертификата. При этом запрос подписывается текущим сертификатом. Если в ответ на запрос был получен сертификат, клиент помещает его в список ToBeAdded.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; при каждом редактировании шаблона (кроме вкладки Security) изменяется только Minor Version. И держатели сертификатов этого шаблона не увидят, что шаблон изменён, поскольку они проверяют только Major Version. В случае, если после внесения изменений в шаблон необходимо переиздать все сертификаты этого шаблона, администратор должен изменить Major Version. Для этого администратор в оснастке certtmpl.msc должен выбарть нужный шаблон, нажать правой кнопкой и выбарть Reenroll All Certificate Holders. Этот шаг изменит Major Version шаблона и все клиенты, которые уже имеют сертификат данного шаблона его обновят, получив новый сертификат с новыми изменениями.&lt;/P&gt;
&lt;P&gt;Если шаблон, который использовался при предыдущем энроллменте был заменён более новым (вкладка Superseded Templates нового шаблона содержит устаревший шаблон), клиент отправляет запрос на обновление сертификата. При этом запрос подписывается текущим сертификатом. Если в ответ на запрос был получен сертификат, клиент помещает его в список ToBeAdded.&lt;/P&gt;
&lt;P&gt;Для необработанных шаблонов клиент отправляет запросы на получение сертификатов на основе этих шаблона. Если в ответ на запрос был получен сертификат, клиент помещает его в список &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H4 align=center&gt;Epilogue&lt;/H4&gt;
&lt;P&gt;Когда все запросы, сертификаты и шаблоны были обработаны, триггер автоэнроллмента очищает список &lt;STRONG&gt;ToBeDeleted&lt;/STRONG&gt; и все сертификаты из списка &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt; копирует в контейнер &lt;STRONG&gt;Personal&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Как вы видите, процесс автоэнроллмента в очень степени похож на процесс Automatic Certificate Request и отличается лишь дополнительными шагами обработки шаблонов версии 2 и 3.&lt;/P&gt;
&lt;H4 align=center&gt;Что дальше?&lt;/H4&gt;
&lt;P&gt;В этой и предыдущих частях мы рассмотрели основные концепции и особенности работы Automatic Certificate Request и autoenrollment'а при использовании протокола &lt;STRONG&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc249879(PROT.13).aspx" target=_blank&gt;MS-WCCE&lt;/A&gt;&lt;/STRONG&gt;, основанном на DCOM сообщениях. В следующей части будет рассмотрена концепция и порядок работы автоэнроллмента с использованием более нового набора протоколов: MS-XCEP и MS-WSTEP/WS-TRUST, которые значительно расширяют наши возможности управления сертификатами.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Что бы почитать?&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb643324.aspx" target=_blank&gt;Certificate Autoenrollment in Windows Server 2003&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc249879(PROT.13).aspx" target=_blank&gt;[MS-WCCE]&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/ee380745(PROT.10).aspx" target=_blank&gt;[MS-CAESO]&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b2e30d38-f5e1-46f0-8262-b1c411295a08"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b2e30d38-f5e1-46f0-8262-b1c411295a08.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Autoenrollment</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=e47d78f5-a8e1-49cc-9623-c5a3e8e7c489</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,e47d78f5-a8e1-49cc-9623-c5a3e8e7c489.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,e47d78f5-a8e1-49cc-9623-c5a3e8e7c489.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=e47d78f5-a8e1-49cc-9623-c5a3e8e7c489</wfw:commentRss>
      <title>Certificate Autonerollment от А до Я (часть 3) — V2/V3 Templates</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,e47d78f5-a8e1-49cc-9623-c5a3e8e7c489.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,e47d78f5-a8e1-49cc-9623-c5a3e8e7c489.aspx</link>
      <pubDate>Mon, 11 Jan 2010 16:49:33 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Certificate Autoenrollment от А до Я — подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H1 align=center&gt;Preamble&lt;/H1&gt;
&lt;P&gt;В предыдущих материалах мы ознакомились с шаблонами версии 1 и достаточно простым методом автоэнроллмента — &lt;STRONG&gt;Automatic Certificate Request&lt;/STRONG&gt; (&lt;EM&gt;ACR&lt;/EM&gt;). Этот метод достаточно прост и позволяет автоматически распространять сертификаты на основе шаблонов версии 1 и поддерживается серверами CA под управлением любой версии ОС, начиная с Windows 2000. Эта простота, в свою очередь, выливается в соответствующую функциональность. Это значит, что мы таким образом можем распространять сертификаты только для компьютеров. И можем использовать только те шаблоны, которые поставляются с ролью CA. Мы не имеем возможности изменять эти шаблоны, поэтому приходится использовать как есть. Хотя, в ряде случаев этого бывает достаточно. Например, шаблон Computer очень часто удовлетворяет требованиям для компьютерных сертификатов общего назначения. Однако, часто этого бывает недостаточно, особенно не хватает возможности автоматического распространения сертификатов пользователям. Для решения этой и не только задачи мы можем использовать шаблоны версии 2 и 3 и классический автоэнроллмент.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; чтобы узнать какие операционные системы поддерживают шаблоны версии 2 и 3, ознакомьтесь с обеими таблицами, приведённвми в &lt;A href="http://www.sysadmins.lv/PermaLink,guid,b24eecaa-c9d5-44a0-9edf-3590246a18a2.aspx"&gt;первой части&lt;/A&gt; материала.&lt;/P&gt;
&lt;H1 align=center&gt;V2/V3 Templates&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; хоть шаблоны версии 3 немного отличаются от шаблонов версии 2, я не буду ничего говорить отдельно по ним, поскольку в контексте автоэнроллмента эти шаблоны никаких изменений не содержат и все особенности присущие шаблонам версии 2 для новой версии шаблона так же действительны. За дополнительными сведениями по шаблонам обратитесь по ссылке в конце поста.&lt;/P&gt;
&lt;P&gt;Шаблоны версии 2 и 3 уже являются управляемыми и их можно очень гибко конфигурировать:&lt;/P&gt;
&lt;DIV align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Version 2 template" border=0 alt="Version 2 template" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutonerollment3V2V3Templates_11183/v2tmpl_fb8661b6-9031-44f9-8676-32ea642c1e26.png" width=406 height=500&gt;&amp;nbsp; &lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Version 2 template" border=0 alt="Version 2 template" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutonerollment3V2V3Templates_11183/v2tmpl2_d14d4ee0-dbf1-4536-8977-7fd9321838a2.png" width=407 height=501&gt;&lt;/DIV&gt;
&lt;P&gt;Безусловно, возможность настраивать шаблоны резко усложняет понимание и управление процессом. В этой части я планирую только показать настройки шаблонов и какие настройки несовместимы с автоэнроллментом.&lt;/P&gt;
&lt;H4 align=center&gt;Вкладка General&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Template display name&lt;/STRONG&gt; — отображаемое имя шаблона. Используется для удобства распознавания шаблона пользователем. 
&lt;LI&gt;&lt;STRONG&gt;Template name&lt;/STRONG&gt; — это уже внутреннее имя шаблона по которому учётные записи и службы находят шаблоны. 
&lt;LI&gt;&lt;STRONG&gt;Validity period&lt;/STRONG&gt; — устанавливает срок действия сертификата на основе конкретного шаблона. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; срок действия сертификата может быть ограничен не только этой настройкой. В действительности принимается во внимание ещё остаточный срок действия сертификата самого сервера CA и значение реестра на сервере CA по адресу: &lt;FONT color=#0000ff&gt;HKLM\System\CurrentControlSet\ Services\CertSvc\Configuration\&amp;lt;CA sanitized name&amp;gt;&lt;/FONT&gt; и значения &lt;STRONG&gt;Validity period&lt;/STRONG&gt; и &lt;STRONG&gt;Validity period units&lt;/STRONG&gt;. Наименьшее из трёх значений будет определять реальнй срок действия сертификатов.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Renewal period&lt;/STRONG&gt; — указывает срок за который до окончания действия сертификата, механизм автоэнроллмента будет пробовать обновить сертификат. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; данная опция используется только при активной политике автоэнроллмента и в остальных случаях игнорируется. Так же следует учитывать, что этот срок не является абсолютным. Есть ещё предустановленное значение, которое равно 80% от срока действия сертификата. Это означает, что триггер автоэнролмента будет будет пытаться обновить сертификат либо по истечении 80% (т.е. за 20% до конца) срока действия сертификата или значения этой опции. В итоге выбирается то значение, которое больше (иными словами, срабатывает раньше). По умолчанию 6 недель для срока действия в 1 год составляет эти самые 20% до срока окончания сертификата.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Publish certificate in Active Directory&lt;/STRONG&gt; — публикует сертификат в свойствах учётной записи пользователя или компьютера. Публикация полезна, когда кто-то будет использовать сертификат конкретного пользователя. Например, при предоставлении общего доступа к шифрованным файлам или для шифрования почты, сертификаты других пользователей должны быть опубликованы в Active Directory. 
&lt;LI&gt;&lt;STRONG&gt;Do not automatically reenroll if a duplicate certificate exist in Active Directory&lt;/STRONG&gt; — инструктирует клиента автоэнроллмента не запрашивать новые сертификаты на основе текущего шаблона, если действующий сертификат уже существует в свойствах учётной записи в AD. В случае использования перемещаемых пользователей и/или частого перемещения пользователя между компьютерами эта опция позволяет не плодить большое количество сертификатов на основе одинакового шаблона. Работает только при использовании предыдущей опции. В остальных случаях игнорируется. Следует учитывать, что массовая публикация сертификатов в AD может значительно увеличить объём реплицируемых данных между контроллерами доменов. 
&lt;LI&gt;&lt;STRONG&gt;For automatic renewal of smart card certificates, use the existing private key if a new key cannot be created&lt;/STRONG&gt; — позволяет смарт-карте использовать существущий закрытый ключ при обновлении сертификата на ней. При нехватке свободного места на смарт-карте может оказаться, что записать новую пару ключей некуда и энроллмент закончится неудачей. Данную опцию рекомендуется включать для шаблонов, которые используют CSP смарт-карт. &lt;/LI&gt;&lt;/UL&gt;
&lt;H4 align=center&gt;Вкладка Request Handling&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Purpose&lt;/STRONG&gt; — указывает целевое назначение закрытого ключа данного шаблона. Это может быть цифровая подпись, шифрование, или оба значения, а так же использование для смарт-карт. 
&lt;LI&gt;&lt;STRONG&gt;Delete revoked or expired certificate&lt;/STRONG&gt; — инструктирует клиента автоэнроллмента удалять просроченные или отозванные сертификаты из хранилища пользователя или компьютера. Используется только при активной политике автоэнроллмента. Данная опция недоступна, если предыдущее поле Purpose содержит &lt;STRONG&gt;Encryption&lt;/STRONG&gt;. 
&lt;LI&gt;&lt;STRONG&gt;Include symmetric algorithms allowed by the subject&lt;/STRONG&gt; — позволяет приложениям использовать новые симметричные алгоритмы &lt;STRONG&gt;CNG&lt;/STRONG&gt; (&lt;EM&gt;Cryptography New Generation&lt;/EM&gt;) при использовании данного сертификата. Доступно только начиная с Windows Server 2008. 
&lt;LI&gt;&lt;STRONG&gt;Archive subject's private key&lt;/STRONG&gt; — инструктирует клиента инициировать процедуру архивации закрытого ключа на сервере CA при энроллменте сертификата. Данная опция недоступна, если Purpose выставлен в &lt;STRONG&gt;Signature&lt;/STRONG&gt; или в &lt;STRONG&gt;Signature and smartcard logon&lt;/STRONG&gt;. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; как вы можете зметить, опции: &lt;STRONG&gt;Delete revoked or expired certificate&lt;/STRONG&gt; и &lt;STRONG&gt;Archive subject's private key&lt;/STRONG&gt; являются взаимоисключаемые. Вы не можете использовать обе эти опции в пределах одного шаблона.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Minimum key size&lt;/STRONG&gt; — указывает минимальную длину ключа, который будет генерироваться при запросе сертификата. 
&lt;LI&gt;&lt;STRONG&gt;Allow Private Key To Be Exported&lt;/STRONG&gt; — позволяет экспортировать (например, для бэкапа) закрытый ключ данного сертификата из локального хранилища сертификатов. 
&lt;LI&gt;&lt;STRONG&gt;Enroll subject without requiring any user input&lt;/STRONG&gt; — инструктирует клиента не выводить пользователю никаких окошек, которые бы требовали ввода от пользователя. Данный параметр обязателен для компьютерных шаблонов, которые используются для автоэнроллмента. 
&lt;LI&gt;&lt;STRONG&gt;Prompt the user during enrollment&lt;/STRONG&gt; — выводит диалоговое окно при энроллменте. Данный параметр обязателен, если закрытый ключ сертификата будет храниться на смарт-карте. Эта опция позволит CSP смарт-карты выводить окно ввода PIN от смарт-карты. 
&lt;LI&gt;&lt;STRONG&gt;Prompt The User During Enrollment And Require User Input When The Private Key Is Used&lt;/STRONG&gt; — при энроллменте выводит диалоговые окна настройки &lt;A href="http://www.sysadmins.lv/PermaLink,guid,bbc83c95-0876-449a-bdae-b2e9683a6b01.aspx"&gt;private key strong protection&lt;/A&gt; и включает этот режим для закрытого ключа. 
&lt;LI&gt;&lt;STRONG&gt;CSP&lt;/STRONG&gt; — позволяет выбрать &lt;EM&gt;Cryptographic Service Provider&lt;/EM&gt; для генерации закрытого ключа. Для автоэнроллмента следует установить не более одного провайдера. &lt;/LI&gt;&lt;/UL&gt;
&lt;H4 align=center&gt;Вкладка Subject name&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Supply in request&lt;/STRONG&gt; — требует явного задания поля Subject при энроллменте. &lt;FONT color=#ff0000&gt;Недопустимо при автоэнроллменте&lt;/FONT&gt;. 
&lt;LI&gt;&lt;STRONG&gt;Build From This Active Directory Information&lt;/STRONG&gt; — инструктирует сервер CA заполнять поле Subject основываясь на данных учётной записи в Active Directory. Обязателен для автоэнроллмента. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Вкладка Issuance Requirements&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;CA Certificate Manager Approval&lt;/STRONG&gt; — для всех запросов данного шаблона требуется явное одобрение администратора CA. При автоэнроллменте в первый раз будет отправлен запрос и потом, после принятия положительного решения администратором, при повторных срабатываниях триггера автоэнроллмента будет импортирован сам сертификат. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; при автоэнроллменте автоматическое получение сертификата после одобрения администратором произойдёт только при условии, если в политике автоэнроллмента выставлен чек-бокс на &lt;STRONG&gt;Renew expired certificates, update pending certificates, and remove revoked certificates&lt;/STRONG&gt;. В противном случае, автоэнроллмент не будет работать для конкретного шаблона.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;This Number Of Authorized Signatures&lt;/STRONG&gt; — указывает количество подписей, которыми должен быть подписан запрос. Для автоэнроллмента это значение не должно быть большье 1, иначе автоэнроллмент для конкретного шаблона работать не будет. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; строго говоря, выставлять данный параметр в 1 тоже не очень рекомендуется. Если с сертификатом что-то случится (будет утерян, просрочен или отозван), то обновление такого сертификата средствами автоэнроллмента будет невозможным, поскольку запрос нечем будет подписать и получить новый сертификат можно будет только после ручного энроллмента через консоль MMC.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Если предущее значение больше нуля, то вы можете настроить для шаблона настроенные политики выдачи. 
&lt;LI&gt;&lt;STRONG&gt;Require The Following For Reenrollment: Same criteria as for enrollment&lt;/STRONG&gt; — при обновлении сертификата, используются те же требования, что и при первом запросе сертификата. Для успешной работы автоэнроллмента не следует включать эту опцию, если количество требуемых подписей при запросе больше нуля, поскольку запрос надо будет чем-то подписать и если специального сертификата в локальном хранилище не окажется, то автоэнроллмент не будет работать для конкретного шаблона. 
&lt;LI&gt;&lt;STRONG&gt;Require The Following For Reenrollment: Valid existing certificate&lt;/STRONG&gt; — при обновлении сертификата требуется наличие существующего действующего и не отозванного сертификата на основе данного шаблона. Действующий сертификат будет использоваться для подписи запроса обновления сертификата. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; если количество требуемых подписей при энроллменте больше 0 (обычно используется при Enroll On Behalf Of), то первый раз сертификат должен быть получен через ручной запрос с использованием оснастки MMC. Это полностью соответствует идеологии EOBO, когда администратор регистрирует каждую смарт-карту в учётных журналах, запрашивает сертификат для неё и под роспись выдаёт пользователю. Обновление сертификата уже будет происходить автоматически. Для этого данный переключатель следует переставить в Valid existing certificate. Существующий сертификат будет использоваться для подписи нового запроса. Соответственно, если сертификат будет утерян, отозван или просрочен, то обновление по очевидным причинам не будет, поскольку запрос подписать будет нечем. Для получения нового сертификата придётся повторить всю процедуру, как и при первом получении сертификата с помощью EOBO.&lt;/P&gt;
&lt;H4 align=center&gt;Вкладка Superseded templates&lt;/H4&gt;
&lt;P&gt;Данная вклкадка показывает какие существующие шаблоны будут заменены текущим шаблоном. Если вы решили использовать специально настроенный шаблон для смарт-карт, то вы можете этим специально настроенным шаблоном версии 2 заменить стандартные преднастроенные шаблоны (Smart Card Logon и Smart Card User). Это запретит дальнейший энроллмент сертификатов на основе устаревших шаблонов, которые заменяет новый шаблон. И если у пользователей есть сертификаты на основе устаревших шаблонов, то добавление их во вкладку Superseded templates проинструктирует клиентов обновить сертификаты на основе нового специально настроенного шаблона. Автоэнроллмент автоматически следит за обновлениями шаблонов. И если какой-то шаблон был заменён другим и у пользователя есть сертификат на основе устаревшего шаблона, автоэнроллмент запросит новый сертификат для нового шаблона.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; в настоящее время смарт-карты не поддерживают использование шаблонов версии 3.&lt;/P&gt;
&lt;H4 align=center&gt;Вкладка Extensions&lt;/H4&gt;
&lt;P&gt;Данная вкладка позволяет настраивать определённые расширения, которые будут опубликованы в сертификатах. В контексте автоэнроллмента ничего интересного не представляет.&lt;/P&gt;
&lt;H4 align=center&gt;Вкладка Security&lt;/H4&gt;
&lt;P&gt;Достаточно важная вкладка, поскольку она определяет, может ли автоэнроллмент использовать конкретный шаблоны или нет. Если вы планируете использовать шаблон для автоэнроллмента, то соответствующие учётные записи (или группы) должны иметь следующие права:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Read&lt;/STRONG&gt; 
&lt;LI&gt;&lt;STRONG&gt;Enroll&lt;/STRONG&gt; 
&lt;LI&gt;&lt;STRONG&gt;Autoenroll&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Отсутствие любого из этих прав не позволит автоэнроллменту запрашивать сертификаты на основе конкретного шаблона.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; это достаточно распространённая ошибка. Следует понимать, что пользовательским сертификатам права назнаются учётным записям пользователей, а компьютерным сертификатам права назначаются учётным записям компьютеров.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Что бы почитать?&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3c670732-c971-4c65-be9c-c0ebc3749e24&amp;amp;displaylang=en"&gt;Implementing and Administering Certificate Templates in Windows Server 2008&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=e47d78f5-a8e1-49cc-9623-c5a3e8e7c489"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,e47d78f5-a8e1-49cc-9623-c5a3e8e7c489.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Autoenrollment</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=2c7c0d72-2a7c-480d-93b7-74f3737ce9a8</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,2c7c0d72-2a7c-480d-93b7-74f3737ce9a8.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,2c7c0d72-2a7c-480d-93b7-74f3737ce9a8.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=2c7c0d72-2a7c-480d-93b7-74f3737ce9a8</wfw:commentRss>
      <title>Certificate Autoenrollment от А до Я (часть 2) — V1 Templates и Automatic Certificate Request</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,2c7c0d72-2a7c-480d-93b7-74f3737ce9a8.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,2c7c0d72-2a7c-480d-93b7-74f3737ce9a8.aspx</link>
      <pubDate>Thu, 07 Jan 2010 08:51:12 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Certificate Autoenrollment от А до Я — подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В первой части мы рассмотрели общие положения по системе автоматической подачи заявок на сертификаты — autoenrollment и сегодня поговорим об одной составляющей этой системы — &lt;STRONG&gt;Automatic Certificate Request&lt;/STRONG&gt; (или сокращённо просто &lt;STRONG&gt;ACR&lt;/STRONG&gt;). Пержде чем начать экшн, следует поговорить о шаблонах версии 1.&lt;/P&gt;
&lt;H1 align=center&gt;Шаблоны версии 1 (V1 Templates)&lt;/H1&gt;
&lt;P&gt;При установке в лесу &lt;STRONG&gt;Enterprise Certification Authority&lt;/STRONG&gt;, в Active Directory устанавливаются и преднастроенные шаблоны сертификатов. Зачем они нужны? Поскольку сертификаты у нас могут использоваться для решения различного рода задач, например, для SSL или аутентификации смарт-картой или для установки цифровой подписи файлов. В связи с этим конечные сертификаты будут очень сильно различаться по настройкам. Безусловно, очень трудно запомнить все требования для каждого типа сертификатов и вручную их заполнять. Для этого Microsoft с ролью CA поставляет ряд преднастроенных шаблонов, которые отвечают требованиям наиболее частых случаев использования. Чтобы посмотреть доступные шаблоны в лесу необходимо запустить оснастку &lt;STRONG&gt;Certificate Templates&lt;/STRONG&gt; (&lt;EM&gt;certtmpl.msc&lt;/EM&gt;) и получите примерно такое окно:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Certificate Templates MMC snap-in" border=0 alt="Certificate Templates MMC snap-in" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment2V1TemplatesAut_11775/certtmpl1_ee11cb87-2a40-446b-a232-d94c2fe1a84a.png" width=605 height=483&gt; &lt;/P&gt;
&lt;P&gt;Здесь мы видим несколько колонок:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Template Display Name&lt;/STRONG&gt; — это отображаемое и понятное имя шаблона. Как правило используется только для отображения. Внутренние механизмы используют сокращённое common name; 
&lt;LI&gt;&lt;STRONG&gt;Minimum Supported CAs&lt;/STRONG&gt; — указывает версию и редакцию ОС, под которой должна работать служба Certification Authority для выдачи такого сертификата. 
&lt;LI&gt;&lt;STRONG&gt;Version&lt;/STRONG&gt; — внутренняя версия ревизии шаблона. Ревизия состоит из &lt;STRONG&gt;Major revision&lt;/STRONG&gt; (число до точки) и &lt;STRONG&gt;Minor revision&lt;/STRONG&gt; (число после точки). Имеет достаточно важное значение, о котором поговорим чуть ниже; 
&lt;LI&gt;&lt;STRONG&gt;Windows XP Autoenrollment&lt;/STRONG&gt; — указывает, может ли данный шаблон использоваться для классического автоэнроллмента (только для шаблонов версии 2 и 3); 
&lt;LI&gt;&lt;STRONG&gt;Intended Purposes&lt;/STRONG&gt; — уазывает целевое назначение сертификатов данного шаблона. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В настоящее время существует 3 версии шаблонов: 1, 2 и 3 версии. Важно понимать, что эти версии не имеют&amp;nbsp; ничего общего с внутренней версией конкретного шаблона, которая показана в оснастке. Что такое шаблоны версии 1? Это стандартные и неуправляемые шаблоны. Их можно отличить по одному из 2-х признаков:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;В колонке &lt;STRONG&gt;Minimum Supported CAs&lt;/STRONG&gt; указано &lt;STRONG&gt;Windows 2000&lt;/STRONG&gt;; 
&lt;LI&gt;&lt;STRONG&gt;Major revision&lt;/STRONG&gt; является числом от 1 до 9. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="V1 Template" border=0 alt="V1 Template" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateAutoenrollment2V1TemplatesAut_11775/tempv1_1143ddd9-ad2e-49ff-8e9c-7f08e61b1aaf.png" width=406 height=483&gt; &lt;/P&gt;
&lt;P&gt;шаблоны версии 1 являются преднастроенными и не поддерживают какую-либо модификацию, кроме назначения прав во вкладке Security. Microsoft в своё время хорошенько пожадничало (вплоть до выхода Windows Server 2008 R2), заставляя кастомеров приобретать Windows Server 2003/2008 Enterprise или Datacenter Edition редакции для серверов CA, поскольку только эти редакции могли издавать сертификаты на основе управляемых шаблонов версии 2 или 3 и использовать все возможности автоэнроллмента. И даже Windows Server 2008 Standard в этом плане был почти такой же, как и Windows 2000 Server. Но это было изменено с выходом Windows server 2008 R2, потому что PKI всё больше и больше входила в сектор малого бизнеса и адекватные инструменты им стали столь же необходимы как и более крупным компаниям. Именно по этой причине Windows Server 2008 R2 Standard Edition обладает большинством тех возможностей, которые раньше были доступны только в Enterprise и Datacenter редакциях.&lt;/P&gt;
&lt;P&gt;Поскольку шаблоны версии 1 неуправляемы, поэтому тут говорить особо не о чем, поэтому продолжим дальше.&lt;/P&gt;
&lt;H1 align=center&gt;Automatic Certificate Request&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; данный материал не охватывает всех особенностей, которые присущи для Windows 7 и Windows Server 2008 R2. О них пойдёт речь в следующих частях.&lt;/P&gt;
&lt;P&gt;Но для кого-то это может стать секретом, но даже Windows 2000 (и Windows Server 2003/2008/2008R2 Std, EE, DC) поддерживали базовый автоэнроллмент — Automatic Certificate Request. Это позволяло автоматически распространять сертификаты для компьютеров на основе шаблонов версии 1. Для включения данного режима нужно сделать следующее:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;в оснастке &lt;STRONG&gt;CertSrv.msc&lt;/STRONG&gt; любого Enterprise CA в секции &lt;STRONG&gt;Certificate Templates&lt;/STRONG&gt; убедиться, что в списке присутствует нужный шаблон версии 1 (например, шаблон &lt;STRONG&gt;Computer&lt;/STRONG&gt; или &lt;STRONG&gt;IPsec&lt;/STRONG&gt;). Если нет, то &lt;FONT color=#0000ff&gt;All Tasks –&amp;gt; New –&amp;gt; Certificate Template to issue&lt;/FONT&gt; и добавить шаблон; 
&lt;LI&gt;в редакторе групповой политики (&lt;STRONG&gt;Group Policy Management&lt;/STRONG&gt;) создать новый объект групповой политики или отредактировать существующую политику по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;Computer Configuration –&amp;gt; Windows Settings –&amp;gt; Security Settings –&amp;gt; Public Key Policies –&amp;gt; Certificate Services Client — Autoenrollment&lt;/FONT&gt; &lt;BR&gt;данный элемент политики следует установить в состояние &lt;STRONG&gt;Enabled&lt;/STRONG&gt; и при необходимости выбрать автоматическое обновление просроченных сертификатов и удалении отозванных сертификатов из хранилища. Этим самым мы включим сам Autoenrollment engine, который используется для ACR. 
&lt;LI&gt;в редакторе групповой политики (обычно в той же самой, где включали движок автоэнроллмента) по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;Computer Configuration –&amp;gt; Windows Settings –&amp;gt; Security Settings –&amp;gt; Public Key Policies –&amp;gt; Automatic Certificate Request Settings &lt;BR&gt;&lt;/FONT&gt;создать необходимые запросы сертификатов. При этом в каждый элемент вы можете включить только один шаблон версии 1. 
&lt;LI&gt;прилинкуйте созданную или отредактированную политику к нужному OU (чаще всего её применяют для всего домена). &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; опция &lt;STRONG&gt;Renew expired certificates, update pending certificates, and remove revoked certificates&lt;/STRONG&gt; не позволяет удалять отозванные и/или просроченные сертификаты, у которых во вкладке &lt;STRONG&gt;Request Handling&lt;/STRONG&gt; в списке&lt;STRONG&gt; Purposes&lt;/STRONG&gt; содержится &lt;STRONG&gt;Encryption&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;И как это работает.&lt;/P&gt;
&lt;P&gt;При срабатывании триггера автоэнроллмента клиент считывает групповую политику с контроллера домена и определяет настройки политики. Эти настройки записываются в DWORD значение реестра &lt;STRONG&gt;AEFlags&lt;/STRONG&gt; по адресу: &lt;FONT color=#0000ff&gt;HKLM\SOFTWARE\Policies\Microsoft\Cryptography\Autoenrollment&lt;/FONT&gt;; Флаги могут иметь следующие значения или сумму следующих значений:&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=733 align=center&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=200&gt;&lt;STRONG&gt;Значение флага AEFlags&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=531&gt;&lt;STRONG&gt;Описание флага&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=200&gt;0x0&lt;/TD&gt;
&lt;TD vAlign=top width=531&gt;Политика автоэнроллмента явно включена. Данный флаг инструктирует клиента производить процедуру автоэнроллмента при каждом срабатывании триггера.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=200&gt;0x1&lt;/TD&gt;
&lt;TD vAlign=top width=531&gt;Соответствует включённому чек-боксу Update &lt;STRONG&gt;certificates that use certificate templates&lt;/STRONG&gt;. Не используется в ACR.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=200&gt;0x2&lt;/TD&gt;
&lt;TD vAlign=top width=531&gt;Инструктирует клиента обновлять просроченные сертификаты автоматически. Соответствует установленному чек-боксу &lt;STRONG&gt;Renew expired certificates, update pending certificates, and remove revoked certificates&lt;/STRONG&gt;.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=200&gt;0x4&lt;/TD&gt;
&lt;TD vAlign=top width=531&gt;Если на сервере CA в Policy Module установлена выдача сертификатов только после явного разрешения администратора CA, то данный флаг позволяет клиенту посылать на сервер CA запросы на получение сертификатов, которые находились в статусе &lt;STRONG&gt;Pending&lt;/STRONG&gt;. Соответствует установленному чек-боксу &lt;STRONG&gt;Renew expired certificates, update pending certificates, and remove revoked certificates&lt;/STRONG&gt;.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=200&gt;0x8000&lt;/TD&gt;
&lt;TD vAlign=top width=531&gt;Политика автоэнроллмента выставлена в значение Disabled и его триггер срабатывать не будет. В результате чего клиент не будет пытаться автоматически запросить сертификаты с сервера CA.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=200&gt;N/A&lt;/TD&gt;
&lt;TD vAlign=top width=531&gt;Отсутствие значения показывает, что политика не определена.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Примечание:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt; триггер автоэнроллмента срабатывает при следующих действиях:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;обновление групповой политики; 
&lt;LI&gt;добавление машины в домен любым доступным способом. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; при установлении флажка на &lt;STRONG&gt;Renew expired certificates, update pending certificates, and remove revoked certificates&lt;/STRONG&gt; активируются оба значения: 0x2 и 0x4. Из графического интерфейса не представляется возможным устанавливать эти флаги отдельно.&lt;/P&gt;
&lt;P&gt;Далее клиент скачивает сертификаты из Active Directory:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;сертификаты CA из контейнера по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;CN=AIA, CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt; 
&lt;LI&gt;сертификаты корневых CA из контейнера по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;CN=Certification Authorities, CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt; 
&lt;LI&gt;сертификаты агентов восстановления из контейнера по адресу: &lt;BR&gt;&lt;FONT color=#0000ff&gt;CN=KRA, CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt; 
&lt;LI&gt;сертификаты CA, которые могут издавать сертификаты для аутентификации по Kerberos из записи NTAuthCertificates по адресу: 
&lt;LI&gt;&lt;FONT color=#0000ff&gt;CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt;. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;На основе этих сертификатов обновляется локальное хранилище сертификатов. Теперь осталось получить список шаблонов из Active Directory по адресу:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;CN=Certificate Templates, CN=Public Key Services, CN=Services, CN=Configuration, DC=ForestRootDomain&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;После чего читается следующий раздел реестра:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates\ACRS\CTLs\&amp;lt;HashOfData&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;в котором хранятся шаблоны для ACR (которые мы указали в политике). Шаблоны хранятся в BLOB формате. Когда шаблоны для ACR получены, клиент читает разрешения на шаблоны и из шаблонов выбирает только те, которые указаны в реестре и для которых у учёной записи компьютера есть права &lt;STRONG&gt;Read&lt;/STRONG&gt; и &lt;STRONG&gt;Enroll&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; это частая ошибка, когда на компьютерные шаблоны не выданы права для учётной записи компьютера. И для успешного энроллмента, учётная запись компьютера или группа, в которой он состоит, должен иметь оба права: Read и Enroll.&lt;/P&gt;
&lt;P&gt;Следующим этапом клиент генерирует 2 списка:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt; — в этот список попадут все сертификты, которые получены в результате последующих операций. 
&lt;LI&gt;&lt;STRONG&gt;ToBeDeleted&lt;/STRONG&gt; — в этот список попадут все сертификаты, срок которых истёк и/или истекает (прошло более 80% срока жизни сертификата). А так же отозванные сертификаты. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; как я уже говорил, сертификаты у которых в &lt;STRONG&gt;Purpose&lt;/STRONG&gt; содержится &lt;STRONG&gt;Encryption &lt;/STRONG&gt;не помещаются в список &lt;STRONG&gt;ToBeRemoved&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; список &lt;STRONG&gt;ToBeDeleted&lt;/STRONG&gt; будет создаваться только если выставлен чек-бокс &lt;STRONG&gt;Renew expired certificates, update pending certificates, and remove revoked certificates&lt;/STRONG&gt;. В действительности процесс обработки этого списка отличается от написанного. Это сделано для лучшего понимания его работы. В реальности все сертификаты из контейнера Personal попадают в этот список, после чего за счёт фильтрации необходимые сертификаты удаляются из этого списка.&lt;/P&gt;
&lt;P&gt;Клиент обновляет данные из контейнера &lt;STRONG&gt;Certificate Enrollment Requests&lt;/STRONG&gt; локального хранилища сертификатов. В этом контейнере хранятся копии запросов на сертификаты, которые требуют ручного одобрения администратора CA и клиент удаляет те запросы, которые старше 60 дней. И клиент пытается получить сертификаты для каждого из запросов. Если статус запроса остаётся &lt;STRONG&gt;Pending&lt;/STRONG&gt; (т.е. ещё не одобрен администратором), то переходит к следующему запросу. Если статус запроса &lt;STRONG&gt;Issued&lt;/STRONG&gt; — клиент посылает запрос на получение сертификата. По получении сертификата, он помещается в список &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt;. Если статус запроса &lt;STRONG&gt;Denied&lt;/STRONG&gt;, то запрос удаляется из контейнера.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; эту операцию клиент будет делать только при условии, что в политике выставлен чек-бокс на &lt;STRONG&gt;Renew expired certificates, update pending certificates, and remove revoked certificates&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Когда запросы в ожидании обработаны, клиент обрабатывает контейнер &lt;STRONG&gt;Personal&lt;/STRONG&gt; и список &lt;STRONG&gt;ToBeDeleted&lt;/STRONG&gt;. Если сертификат на основе шаблона(-ов) политики ACR находится в контейнере Personal и содержится в списке ToBeDeleted, или вообще отсутствует в контейнере Personal, то для этих сертификатов генерируется новый запрос. Если сертификат есть в контейнере Personal, но не содержится в списке ToBeDeleted, то данный шаблон пропускается.&lt;/P&gt;
&lt;P&gt;Если в ответ на запросы были получены сертификаты, они помещаются в список &lt;STRONG&gt;ToBeAdded&lt;/STRONG&gt;. Когда все запросы и шаблоны обработаны, клиент удаляет все сертификаты из списка ToBeDeleted, а сертификаты из списка ToBeAdded помещаются в контейнер Personal локального хранилища сертификатов, после чего триггер автоэнроллмента прекращает работу.&lt;/P&gt;
&lt;P&gt;Сегодня мы посмотрели два интересных момента: особенности шаблонов версии 1 и работу Automatic Certificate Request. В следующих частях мы рассмотрим шаблоны версии 2 и 3 и классический автоэнроллмент. Так что не отключайтесь.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=2c7c0d72-2a7c-480d-93b7-74f3737ce9a8"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,2c7c0d72-2a7c-480d-93b7-74f3737ce9a8.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Autoenrollment</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b24eecaa-c9d5-44a0-9edf-3590246a18a2</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b24eecaa-c9d5-44a0-9edf-3590246a18a2.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b24eecaa-c9d5-44a0-9edf-3590246a18a2.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b24eecaa-c9d5-44a0-9edf-3590246a18a2</wfw:commentRss>
      <title>Certificate Autoenrollment от А до Я (часть 1) — Autoenrollment Background</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b24eecaa-c9d5-44a0-9edf-3590246a18a2.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b24eecaa-c9d5-44a0-9edf-3590246a18a2.aspx</link>
      <pubDate>Mon, 04 Jan 2010 18:21:45 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Сегодня начинаю публикацию достаточно обширного и объёмного материала про автоматическую подачу заявок на сертификаты (autoenrollment). Данная тема настолько проста и на столько же сложна. И я постараюсь заполнить все пробелы в этой теме и повторить то, что мы уже знаем. Безусловно можно надеяться на &lt;STRONG&gt;ТЗ&lt;/STRONG&gt; (&lt;EM&gt;Тайное Знание&lt;/EM&gt;), так что кроме очевидных вещей, немного треша ожидается.&lt;/P&gt;
&lt;P&gt;Ссылки на другие материалы из этой серии:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;&lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,2383def5-47ae-4f87-a94b-cbffad67a7a9.aspx" rel=bookmark&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Certificate Autoenrollment от А до Я — подведение итогов&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H1 align=center&gt;Autoenrollment background&lt;/H1&gt;
&lt;P&gt;Цифровые сертификаты и службы управления ими достаточно плотно вошли в нашу повседневную жизнь. Многие компании внедряют у себя инфраструктуру цифровых сертификатов, чтобы получить высокий уровень безопасности. Сертификаты применяются для большого количества задач и из них наиболее популярные:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;шифрование данных; 
&lt;LI&gt;подпись данных; 
&lt;LI&gt;аутентификация. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;При помощи сертификатов мы можем шифровать файлы, почту, сетевой трафик, удостоверять личность пользователя с применением двухфакторной аутентификации, подпись документов, почты для предотвращения несанкционированного изменения и подлога. Поэтому компании развёртывающие инфраструктуру PKI задаются вопросом максимально быстрого и удобного способа распространения сертификатов между пользователями и компьютерами. Начиная с Windows Server 2003, Microsoft предлагает унифицированное решение этой задачи — &lt;STRONG&gt;autoenrollment&lt;/STRONG&gt;. С его помощью клиенты сами без участия людей подают заявки для получения сертификата на сервер CA и устанавливают выданные сертификаты во внутреннее хранилище сертификатов. Это позволяет распространить сертификаты на огромное количество компьютеров затратив на это минимум усилий. Даже в условиях небольших компаний (до 50 машин) ручной запрос и установка сертификатов будет крайне утомительным делом, поскольку недостаточно запросить сертификат, но и нужно вовремя его обновить. В обычных условиях пришлось бы держать выделенного человека, который будет следить за всеми сертификатов всех пользователей и компьютеров и платить ему зарплату. Именно для устранения этой проблемы и ускорению ввода PKI в эксплуатацию и был разработан автоэнроллмент.&lt;/P&gt;
&lt;H2 align=center&gt;Autoenrollment requirements&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; данный цикл статей не будет затрагивать особенности эксплуатации автоэнроллмента для Windows 2000.&lt;/P&gt;
&lt;P&gt;Для успешного внедрения автоэнроллмента требуются следующие компоненты:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;домен Active Directory; 
&lt;LI&gt;объект групповой политики; 
&lt;LI&gt;клиент под управлением Windows 2000 и выше. Клиент должен быть членом домена; 
&lt;LI&gt;Enterprise Certification Authority под управлением Windows Server 2003 и выше. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; не для всех операционных систем требуется жёсткое удовлетворение этим требованиям. Для более точных требований к ОС для каждого метода смотрите в таблице ниже.&lt;/P&gt;
&lt;P&gt;Автоэнроллмент различает 2 метода автоматического распространения сертификатов:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Automatic Certificate Request (ACR) &lt;/STRONG&gt;— поддерживает автоматическое распространение сертификатов для компьютеров на основе шаблонов версии 1. 
&lt;LI&gt;&lt;STRONG&gt;Autoenrollment&lt;/STRONG&gt; — поддерживает автоматическое распространение сертификатов для компьютеров и пользователей на основе шаблонов версии 2 и 3. 
&lt;LI&gt;&lt;STRONG&gt;XCEP Autoenrollment&lt;/STRONG&gt; — поддерживает автоматическое распространение сертификатов для недоменных пользователей и компьютеров на основе шаблонов версии 2 и 3 с использованием HTTP в качестве транспорта. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В последующих статьях мы весьма подробно ознакомимся с каждым из них. На данном этапе вам достаточно знать об их существовании.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Таблица 1:&lt;/FONT&gt;&lt;/STRONG&gt; возможности использования автоэнроллмента для клиентов.&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=680 align=center&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=252&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&lt;STRONG&gt;V1 Templates&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=67&gt;&lt;STRONG&gt;V2 Templates&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=60&gt;&lt;STRONG&gt;V3 Templatess&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=32&gt;&lt;STRONG&gt;ACR&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;STRONG&gt;Autoenrollment&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;STRONG&gt;XCEP&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=75&gt;&lt;STRONG&gt;Out of Domain?&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=252&gt;&lt;STRONG&gt;Windows 2000&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=67&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=60&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=32&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=75&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=252&gt;&lt;STRONG&gt;Windows XP&lt;FONT color=#ff0000&gt;**&lt;/FONT&gt; / Windows Server 2003 R2&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=67&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=60&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=32&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=75&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=252&gt;&lt;STRONG&gt;Windows Vista&lt;FONT color=#ff0000&gt;**&lt;/FONT&gt; / Windows Server 2008&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=67&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=60&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=32&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=75&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=252&gt;&lt;STRONG&gt;Windows 7 / Windows Server 2008 R2&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=62&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=67&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=60&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=32&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=75&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;&lt;/STRONG&gt; &lt;STRONG&gt;Out of domain&lt;/STRONG&gt; показывает возможность использование автоэнроллмента без членства клиента в домене Active Directory. &lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;**&lt;/FONT&gt;&lt;/STRONG&gt; &lt;STRONG&gt;Home&lt;/STRONG&gt; редакции &lt;STRONG&gt;Windows XP&lt;/STRONG&gt; и &lt;STRONG&gt;Windows Vista&lt;/STRONG&gt; не поддерживают функции автоэнроллмента.&lt;/P&gt;
&lt;P&gt;Данная таблица показывает, что клиенты под управлением Windows 2000 могут автоматически запрашивать сертификаты только на основе шаблонов версии 1 и только для компьютеров (ACR). Windows XP/2003 могут автоматически запрашивать сертификаты на основе шаблонов версии 1 и только для компьютеров (ACR) и шаблонов версии 2 для пользователей и компьютеров. Windows Vista/2008 позволяют автоматически запрашивать сертификаты на основе шаблонов версий 1, 2 и 3 с учётом общих ограничений шаблонов версии 1. А Windows 7/2008 R2 плюс к предыдущему могут использовать автоматическую подачу заявок без членства в домене с использованием технологии XCEP Autoenrollment.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Таблица 2:&lt;/FONT&gt;&lt;/STRONG&gt; возможности Enterprise CA для реализации возможностей автоэнроллмента.&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=741 align=center&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=274&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=70&gt;&lt;STRONG&gt;V1 Templates&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=65&gt;&lt;STRONG&gt;V2 Templates&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=73&gt;&lt;STRONG&gt;V3 Templatess&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;STRONG&gt;ACR&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;STRONG&gt;Autoenrollment&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=42&gt;&lt;STRONG&gt;XCEP&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=85&gt;&lt;STRONG&gt;Out of Domain?&lt;FONT color=#ff0000&gt;**&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=274&gt;&lt;STRONG&gt;Windows Server 2003 Std&lt;FONT color=#ff0000&gt;***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=70&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=65&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=73&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=42&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=85&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=274&gt;&lt;STRONG&gt;Windows Server 2003 EE/DC&lt;FONT color=#ff0000&gt;***&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=70&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=65&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=73&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=42&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=85&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=274&gt;&lt;STRONG&gt;Windows Server 2008 Std&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=70&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=65&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=73&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=42&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=85&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=274&gt;&lt;STRONG&gt;Windows Server 2008 EE/DC&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=70&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=65&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=73&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=42&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=85&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=274&gt;&lt;STRONG&gt;Windows Server 2008 R2 Std&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=70&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=65&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=73&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=42&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=85&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=274&gt;&lt;STRONG&gt;Windows Server 2008 R2 EE/DC&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=70&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=65&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=73&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=33&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=97&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=42&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=85&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;&lt;/STRONG&gt; колонка &lt;STRONG&gt;XCEP&lt;/STRONG&gt; показывает возможность установки компонента HTTP-enrollment. Данный компонент может работыть на сервере без установки роли Certification Authority. &lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;**&lt;/FONT&gt;&lt;/STRONG&gt; Веб служба, реализующая возможности использования HTTP-enrollment должна работыть под управлением &lt;STRONG&gt;Windows Server 2008 R2 EE/DC&lt;/STRONG&gt;. &lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;***&lt;/FONT&gt;&lt;/STRONG&gt; &lt;STRONG&gt;Std&lt;/STRONG&gt; означает &lt;STRONG&gt;Standard Edition&lt;/STRONG&gt;, &lt;STRONG&gt;EE&lt;/STRONG&gt; — &lt;STRONG&gt;Enterprise Edition&lt;/STRONG&gt;; &lt;STRONG&gt;DC&lt;/STRONG&gt; — &lt;STRONG&gt;Datacenter Edition&lt;/STRONG&gt;. &lt;STRONG&gt;Itanium-based&lt;/STRONG&gt; системы не поддерживают роль CA.&lt;/P&gt;
&lt;P&gt;Данная таблица демонстрирует возможности Certification Authority в зависимости от версии и редакции ОС на которой эта роль установлена. Например, Windows Server 2003 и 2008 Std могут использовать только ACR и распространять сертификаты на основе шаблонов версии 1 и только для компьютеров. Windows Server 2003 EE/DC могут использовать как ACR, так и классический автоэнроллмент, автоматически распространяя сертификаты на основе шаблонов версии 2 как компьютерам, так и пользователям. А Windows Server 2008 EE/DC и редакции Windows Server 2008 R2 Std/EE/DC могут автоматически распространять сертификаты для пользователей и компьютеров на основе шаблонов версии 1 (ACR), 2 и 3.&lt;/P&gt;
&lt;P&gt;Для общего введения этого должно быть более, чем достаточно. В ближайших частях мы кратко посмотрим на шаблоны сертификатов и более детально разберём работу &lt;STRONG&gt;ACR&lt;/STRONG&gt; (&lt;EM&gt;Automatic Certificate Request&lt;/EM&gt;).&lt;/P&gt;
&lt;P&gt;продолжение следует…&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b24eecaa-c9d5-44a0-9edf-3590246a18a2"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b24eecaa-c9d5-44a0-9edf-3590246a18a2.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Autoenrollment</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=67cd6d34-9304-4ea8-bc18-456cd1de7a31</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,67cd6d34-9304-4ea8-bc18-456cd1de7a31.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,67cd6d34-9304-4ea8-bc18-456cd1de7a31.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=67cd6d34-9304-4ea8-bc18-456cd1de7a31</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>OCSP или CRL?</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,67cd6d34-9304-4ea8-bc18-456cd1de7a31.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,67cd6d34-9304-4ea8-bc18-456cd1de7a31.aspx</link>
      <pubDate>Wed, 30 Dec 2009 18:20:19 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Этим постом я начинаю серию небольших заметок по не всегда очевидным фактам в PKI. И сегодня начну с первого факта — OCSP или CRL? OCSP и CRL — это 2 модели, которые могут использоваться для проверки сертификата на предмет его отзыва.&lt;/p&gt;  &lt;p&gt;Сертификаты в случае когда в них больше не нуждаются или когда закрытый ключ от сертификата может быть доступен злоумышленникам подлежат отзыву. Этим самым полностью теряется доверие данному сертификату или человеку, который его предъявил, поскольку сертификат может предъявить злоумышленник, который его украл. Это достаточно важный момент в PKI, который позволяет достаточно однозначно сказать — можем ли мы доверять предъявителю конкретного сертификата или нет.&lt;/p&gt;  &lt;p&gt;Модель CRL используется с самого начала существования PKI и выглядит следующим образом. Сервер CA отзывает некоторый сертификат и помещает о нём запись в специальный файл CRL. При этом туда помещается серийный номер сертификата, дата фактического отзыва (не обязательно совпадает со временем когда администратор отозвал сертификат) и причина отзыва. Клиенты при проверки сертификатов скачивают эти CRL и проверяют есть ли серийный номер этого сертификата в CRL. Логично, что чем больше сертификатов отозвано, тем больше файл, тем более нагружается сеть при частом скачивании относительно большого файла CRL.&lt;/p&gt;  &lt;p&gt;В OCSP используется немного иной принцип. Клиент OCSP отправляет на сервер OCSP Responder специальный запрос, в котором содержится серийный номер проверяемого сертификата. OCSP Responder «пробивает номер по своей базе» и отвечает клиенту откликом. Этот отклик содержит однозначный ответ на вопрос: отозван или не отозван.&lt;/p&gt;  &lt;p&gt;Казалось бы, если у вас и серверы и клиенты работают под управлением Windows Vista/2008 и выше, то ответ однозначный: OCSP — наше всё! Ну и вообще даже при наличии небольшого количества этих систем (а преимущественно используются устаревшие клиенты Windows XP/2003), то OCSP нам никак не помешает! Но на самом деле это не всегда так и в ряде ситуаций использование OCSP будет даже нежелательным. Давайте посмотрим почему. Сначала сделаем сравнительные характеристики обеих моделей проверки отзыва&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;CRL&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Исходный размер пустого CRL составляет порядка 600 байт (но это значение может отличаться в зависимости от длины полей и длины ключа подписи). На каждую запись отозванного сертификата в CRL отводится 80 байт. Это, как я уже говорил, серийный номер отозванного сертификата, дата фактического отзыва и числовое обозначение причины отзыва. Т.е. если у вас отозвано 10 сертификатов, то размер CRL будет 600 + 80 * 10 = 1400 байт. Если отозвано 100 сертификатов, то размер CRL будет порядка 9кб и т.д.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;OCSP&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Каждая проверка статуса сертификата потребляет определённый размер трафика — 2кб. При этом неважно какого размера сам CRL. Даже если отозвано 100 000 сертификатов, то CRL будет размером примерно 8мб. И каждый устаревший клиент будет скачивать этот файл на 8 мегабайт. А с OCSP любой запрос и ответ на него займёт всего 2кб. Удобно? Безусловно.&lt;/p&gt;  &lt;p&gt;Однако, в ряде случаев я бы не рекомендовал использовать OCSP для сертификатов, которые аутентифицируют клиентов. К ним относятся следующие типы сертификатов:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;сертификаты смарт-карт; &lt;/li&gt;    &lt;li&gt;сертификаты аутентификации в IIS; &lt;/li&gt;    &lt;li&gt;клиентские сертификаты компьютеров для VPN/L2TP и IPsec; &lt;/li&gt;    &lt;li&gt;сертификаты аутентификации пользователей в VPN (EAP-TLS). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Почему? Дело в том, что аутентифицирующий сервер кеширует все данные об отзыве. Сначала в памяти, потом на диске (когда происходит свопинг). И давайте посмотрим на типичный сценарий:&lt;/p&gt;  &lt;p&gt;У вас на предприятии используется корпоративный веб-сайт с аутентификацией пользователей по сертификату. У вас 1000 пользователей и они все утром подключаются к веб-сайту. Веб-сервер при проверке подлинности каждого пользователя будет посылать OCSP запрос на OCSP Responder запросы с серийным номером каждого сертификата. Мы знаем, что размер каждого ответа составляет 2кб, следовательно сервер отправит 1000 HTTP запросов и закеширует у себя в памяти 2 мегабайта памяти.&lt;/p&gt;  &lt;p&gt;А теперь представьте, что у вас не используется OCSP, а только CRL и на сервере CA отозвано 100 сертификатов. Как мы знаем сам контейнер CRL занимает 600 байт и каждая запись по 80 байт. В итоге файл CRL будет занимать 9 килобайт! И в этом случае сервер сделает только одну «ходку» за CRL файлом и уже всех клиентов будет проверять именно по скачанному CRL. Как видите, профит от использования CRL здесь очевиден. Серверу надо меньше тратить сетевого трафика и меньше данных кешируется в памяти. При этом OCSP целесообразно включать для серверных сертификатов, потому что клиентов обычно много и им выгодней использовать небольшии порции трафика OCSP. &lt;/p&gt;  &lt;p&gt;Подводя итоги, мы можем кратко констатировать следующие вещи:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;для серверных сертификатов рационально использовать OCSP; &lt;/li&gt;    &lt;li&gt;для клиентских сертификатов, которые используются для аутентификации часто рациональней будет использовать классические CRL, вместо OCSP. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Поэтому при рассмотрении вопроса внедрения OCSP вы должны учитывать эти моменты, чтобы ваша PKI была более эффективной.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ссылки по теме:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx"&gt;&lt;strong&gt;OCSP (часть 1)&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx"&gt;&lt;strong&gt;OCSP (часть 2)&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://en.wikipedia.org/wiki/Certificate_revocation_list" href="http://en.wikipedia.org/wiki/Certificate_revocation_list"&gt;&lt;strong&gt;http://en.wikipedia.org/wiki/Certificate_revocation_list&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=67cd6d34-9304-4ea8-bc18-456cd1de7a31"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,67cd6d34-9304-4ea8-bc18-456cd1de7a31.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / OCSP</category>
      <category>Security / PKI / Tips &amp; Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=7c130407-4d6a-40a1-8090-8dae07e26353</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,7c130407-4d6a-40a1-8090-8dae07e26353.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,7c130407-4d6a-40a1-8090-8dae07e26353.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=7c130407-4d6a-40a1-8090-8dae07e26353</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Enroll On Behalf Of и шаблоны версии 2 и 3</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,7c130407-4d6a-40a1-8090-8dae07e26353.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,7c130407-4d6a-40a1-8090-8dae07e26353.aspx</link>
      <pubDate>Mon, 21 Dec 2009 19:22:34 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Сегодня хочу поговорить и обозначить неочевидные моменты, которые связаны с энроллментом сертификатов от имени другого пользователя. В определённых сценариях администратору (или агенту подачи заявок на сертификаты) требуется запрашивать сертификаты от имени другого пользователя. Как пример такого сценария — распространение смарт-карт на предприятии. В таком случае в организации выделяется специальный человек, который будет этим заниматься. Этот человек будет называться &lt;strong&gt;Enrollment Agent&lt;/strong&gt; и в его задачи будет входить:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;регистрация, администрирование и замена смарт-карт;&lt;/li&gt;    &lt;li&gt;контроль выдачи смарт-карт. Смарт-карты могут выдаваться только после собеседования с сотрудниками, которым требуются смарт-карты;&lt;/li&gt;    &lt;li&gt;запрос и установка сертификатов на смарт-карты;&lt;/li&gt;    &lt;li&gt;выдача готовой к эксплуатации смарт-карты конечным пользователям.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Для решения этой задачи Windows CA (будь то Standalone или Enterprise CA и CA может работать под управлением любой версии Windows Server) предлагает возможность реализации данной задачи через использование &lt;strong&gt;Enroll On Behalf Of&lt;/strong&gt; (&lt;em&gt;EOBO&lt;/em&gt;). Суть метода заключается в том, что такой агент получает для себя специальный сертификат на основе шаблона &lt;strong&gt;Enrollment Agent&lt;/strong&gt; (или любого другого шаблона), который отвечает двум требованиям:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;в &lt;strong&gt;Request Handling&lt;/strong&gt; тип использования ключа содержит &lt;strong&gt;Signature&lt;/strong&gt;;&lt;/li&gt;    &lt;li&gt;в &lt;strong&gt;Application Policies&lt;/strong&gt; (в прошлом &lt;strong&gt;Extended Key Usage&lt;/strong&gt; или просто &lt;em&gt;EKU&lt;/em&gt;) выставлено &lt;strong&gt;Certificate Request Agent&lt;/strong&gt;.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; в целях безопасности следует настроить ограничения для запроса сертификатов на основе этого шаблона и после выдачи сертификатов нужным агентам, удалить его из выдачи CA. Так же настоятельно рекомендуется сделать шаблон версии 2 и использовать CSP смарт-карты, чтобы данный сертификат не хранить в профиле пользователя, а на смарт-карте.&lt;/p&gt;  &lt;p&gt;После этого этот агент может запрашивать сертификаты для других пользователей. Для этого агент запускает оснастку &lt;font color="#0000ff"&gt;certmgr.msc&lt;/font&gt;, в ней переходит на &lt;font color="#0000ff"&gt;Personal –&gt; Certificates –&gt; Action –&gt; All Tasks –&gt; Advanced Operations –&gt; Enroll On Behalf Of…&lt;/font&gt; и начинает процесс подачи заявки на сертификат. Во втором окне мастера агенту потребуется указать свой сертификат Enrollment Agent. Этот шаг необходим для того, чтобы доказать, что агент является Enrollment Agent'ом и данный сертификат будет использоваться для подписывания запроса сертификата. В окне выбора шаблонов вы скорее всего увидите только доступные шаблоны версии 1:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Enroll On Behalf Of — templates" border="0" alt="Enroll On Behalf Of — templates" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EnrollOnBehalfOf23_11152/eobo2_7df9e91b-655f-4f65-b728-294fdecf70c0.png" width="642" height="452" /&gt; &lt;/p&gt;  &lt;p&gt;У меня есть несколько шаблонов версии 2, но запрашивать для них сертификаты я не могу. Сообщение отказа в запросе таких сертификатов весьма мутное и не очень понятное. Поскольку шаблоны версии 1 не могут быть изменены, они штатно поддерживают режим EOBO. А шаблоны версии 2 и 3 следует сконфигурировать отдельно. Для этого вам нужно открыть свойства шаблона, перейти на вкладку &lt;strong&gt;Issuance Requirements&lt;/strong&gt; и отредактировать его так, чтобы он выглядел как на картинке:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="V2/V3 template Issuance Reuirements" border="0" alt="V2/V3 template Issuance Reuirements" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EnrollOnBehalfOf23_11152/eobo3_06df436a-8524-4ed4-9f84-ef8fc3bb89b1.png" width="408" height="503" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Т.е. вы должны указать, что запрос должен быть подписан сертификатом, &lt;strong&gt;Application Policies&lt;/strong&gt; которого содержит &lt;strong&gt;Certifcate Request Agent&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Вообще тут разгуляться можно как следует. При наличии специальных требований, вы можете создать определённые рабочие процессы (workflows). Например, в шаблоне сертификата Enrollment Agent, который требует хранение сертификата на смарт-карте (явно указан только CSP смарт-карты) в &lt;strong&gt;Issuance Policies&lt;/strong&gt; (&lt;strong&gt;Certificate Policies&lt;/strong&gt;) можете создать отдельную политику выдачи, например &lt;strong&gt;Smart Card Enrollment Agent&lt;/strong&gt;, назначив этой политике свой &lt;strong&gt;OID&lt;/strong&gt;. Таким образом у вас может быть 2 Enrollment Agent'а, один из которых выдаёт смарт-карты с сертификатами для цифровых подписей, а другой агент будет выдавать сертификаты смарт-карт для шифрования файлов. При этом первый агент будет хранить свой сертификат Enrollment Agent на смарт-карте, а второй в профиле пользователя. В сертификате Enrollment Agent первого агента в Certificate Policies будет указан OID, который вы присвоили политике &lt;strong&gt;Smart Card Enrollment Agent&lt;/strong&gt;. Сертификат второго агента не будет содержать особых политик выдачи (используется стандартный шаблон Enrollment Agent версии 1).&lt;/p&gt;  &lt;p&gt;Чтобы разделить шаблоны между агентами вы можете их настроить вот так:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="V2/V3 template advanced Issuance Reuirements" border="0" alt="V2/V3 template advanced Issuance Reuirements" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EnrollOnBehalfOf23_11152/eobo4_f5a2a7e9-e36e-4f99-bd8a-dd3cf2ef668a.png" width="408" height="502" /&gt; &lt;/p&gt;  &lt;p&gt;Мы теперь требуем, чтобы сертификат агента подачи заявок не только содержал определённый &lt;strong&gt;Application Policy&lt;/strong&gt;, но и &lt;strong&gt;Issuance Policy&lt;/strong&gt; тоже. Это означает, что агент подачи заявок, который хранит свой сертификат в профиле не будет иметь возможности запрашивать сертификаты такого шаблона. Вот вам ещё один сценарий использования OID'ов. Это на случай, чтобы вы не думали, что это какая-то мифическая никому не нужная фигня.&lt;/p&gt;  &lt;p&gt;Собственно, после этой настройки шаблонов версии 2 и 3 вы можете их использовать в EOBO:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Enroll On Behalf Of — with V2/V3 templates" border="0" alt="Enroll On Behalf Of — with V2/V3 templates" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EnrollOnBehalfOf23_11152/eobo5_084251cd-b5fc-4699-96f8-97c15abc8625.png" width="642" height="451" /&gt; &lt;/p&gt;  &lt;p&gt;Помимо этого, вы можете ещё более точно очертить возможности агентов восстановления:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Enrollment Agent restrictions" border="0" alt="Enrollment Agent restrictions" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EnrollOnBehalfOf23_11152/eobo6_136c1010-cbcb-4694-af49-30d1fa43c51c.png" width="407" height="532" /&gt; &lt;/p&gt;  &lt;p&gt;Начиная с Windows Server 2008, вы можете задавать более гранулированные права для enrollment agent'ов, указывая каким агентам какие сертификаты можно запрашивать с использованием EOBO.&lt;/p&gt;  &lt;p&gt;Данный материал не претендует на статус &lt;strong&gt;ТЗ&lt;/strong&gt; (&lt;em&gt;Тайное Знание&lt;/em&gt;), но даёт огромную пищу для размышления администраторам средних и крупным компаний на предмет того, как можно расширить возможности использования PKI и создать более чёткое разделение обязанностей агентов подачи заявок (Enrollment Agent) при использовании функции Enroll On Behalf Of (EOBO). Как вы видите, Windows PKI даже из коробки позволяет достаточно просто масштабировать и управлять вашей инфраструктурой PKI. А так же мы развеваем миф о том, что инфраструктурой PKI может рулить студент-ПТУшник (петушатник?), который поднимает CA на коленке в метро.&lt;/p&gt;  &lt;p&gt;Для больших компаний существуют ещё более мощные и гибкие средства для выполнения подобных задач, которые есть в таких продуктах как &lt;strong&gt;Identity Lifecycle Manager (ILM) 2007&lt;/strong&gt; или в &lt;strong&gt;Forefront Identity Manager&lt;/strong&gt;, но о них мы говорить не будем.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Дополнительные материалы:&lt;/strong&gt; &lt;a href="http://www.sysadmins.lv/PermaLink,guid,58b58ace-a862-4a7b-a74f-b6d4993a28b5.aspx"&gt;&lt;strong&gt;Что в OID'е тебе моём?&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Это была реклама студентов ПТУ.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=7c130407-4d6a-40a1-8090-8dae07e26353"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,7c130407-4d6a-40a1-8090-8dae07e26353.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Smart Cards</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=bbc83c95-0876-449a-bdae-b2e9683a6b01</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,bbc83c95-0876-449a-bdae-b2e9683a6b01.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,bbc83c95-0876-449a-bdae-b2e9683a6b01.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=bbc83c95-0876-449a-bdae-b2e9683a6b01</wfw:commentRss>
      <title>Осторожно, Private key strong protection!</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,bbc83c95-0876-449a-bdae-b2e9683a6b01.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,bbc83c95-0876-449a-bdae-b2e9683a6b01.aspx</link>
      <pubDate>Wed, 16 Dec 2009 20:28:39 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; данный материал публикуется как обязательный для знания IT-специалистами, которые занимаются или только собираются заниматься темой &lt;strong&gt;PKI&lt;/strong&gt; (&lt;em&gt;Public Key Infrastructure&lt;/em&gt;).&lt;/p&gt;  &lt;p&gt;Мне иногда задают вопрос про сущность этой опции Enable private strong protection, а так же встречаются любители обезопасить свои ключи данной опцией. Итак, что это такое? Private key strong protection позволяет вам шифровать ваш закрытый ключ отдельным паролем и является некоторым подобием поведения, когда сертификат находится на смарт-карте. Включить данную опцию вы можете при энроллменте или импорте сертификата. При энроллменте выберите нужный вам шаблон сертификата, нажмите &lt;strong&gt;Properties&lt;/strong&gt;, перейдите на вкладку &lt;strong&gt;Private key&lt;/strong&gt;, раскройте &lt;strong&gt;Key options&lt;/strong&gt; и поставьте галочку на &lt;strong&gt;Strong private key protection&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Private key options during certificate enrollment" border="0" alt="Private key options during certificate enrollment" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/Privatekeystrongprotection_11F0F/pksp1_2f699a3a-9975-4552-8b19-ef4c1185f820.png" width="508" height="502" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;после нажатия Ok, вылезет окошко, которое потребует у вас указать степень защиты и пароль (если выбран High):&lt;/p&gt;  &lt;div align="center"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Private key strong protection level select" border="0" alt="Private key strong protection level select" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/Privatekeystrongprotection_11F0F/pksp2_d0d6913c-6a12-4248-92ca-6ec7b3b4ff0e.png" width="449" height="605" /&gt; &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Private key strong protection password input" border="0" alt="Private key strong protection password input" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/Privatekeystrongprotection_11F0F/pksp3_bb9b850c-c0fe-4a37-91a6-2ffa1f20ed4d.png" width="449" height="329" /&gt;&lt;/div&gt;  &lt;p&gt;Я выбрал уровень High и следующим окном меня попросили ввести пароль. Этот пароль не обязательно должен быть такой же как и пароль от учётной записи. Поэтому пароль можно указывать любой. И когда вы захотите использовать закрытый ключ от этого сертификата (например, подписать почтовое сообщение или аутентифицироваться по сертификату на веб-узле), то появится запрос для подтверждения использования закрытого ключа:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Private key strong protection permission request" border="0" alt="Private key strong protection permission request" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/Privatekeystrongprotection_11F0F/pksp4_901e341f-45d7-48c4-806e-88965a8dfd8c.png" width="453" height="240" /&gt; &lt;/p&gt;  &lt;p&gt;Вот так оно и работает. Кажется, что это очень действенный способ для защиты закрытых ключей в софтовом хранилище (когда ключи хранятся на жёстком диске), однако тут можно очень легко нарваться на проблемы, что вы больше никогда не получите доступ к закрытому ключу. Поэтому данную опцию &lt;strong&gt;&lt;font color="#ff0000"&gt;категорически нельзя&lt;/font&gt;&lt;/strong&gt; использовать для:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;сертификатов компьютера&lt;/strong&gt;, которые хранятся в LocalMachine store &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;все сертификаты (например, SSL, IPsec), которые хранятся в компьютерном хранилище используются только учётной записью компьютера и диалоговое окошко с требованием подтвердить доступ к ключу появится у учётной записи LocalSystem, а вы не увидите этого запроса, в следствии чего сертификат невозможно будет использовать.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;для &lt;strong&gt;сертификатов EFS&lt;/strong&gt; пользователей &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;здесь кроется похожая засада. Дело в том, что шифрование и расшифровка файла (во всяком случае в Vista и выше) не происходит в окружении пользователя. При шифровании файла сертификатом EFS могло бы происходить примерно такой процесс:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Local Security Authority&lt;/strong&gt; — &lt;strong&gt;LSA&lt;/strong&gt; (&lt;em&gt;lsass.exe&lt;/em&gt;) проверяет наличие сертификата EFS в профиле пользователя или на смарт-карте. Если не находит, то в зависимости от настроек политик может запросить новый сертификат у CA или сгенерировать самоподписанный. Самоподписанный сертификат генерируется если в доменной сети не зарегистрировано ни одного CA или машина находится в рабочей группе и в политиках не запрещено использование самоподписанных сертификатов EFS; &lt;/li&gt;    &lt;li&gt;LSA генерирует симметричный ключ шифрования &lt;strong&gt;FEK&lt;/strong&gt; (&lt;em&gt;File Encryption Key&lt;/em&gt;) в закрытой и недоступной для пользователя области памяти; &lt;/li&gt;    &lt;li&gt;LSA этим симметричным ключом шифрует сами данные; &lt;/li&gt;    &lt;li&gt;LSA выбирает из профиля пользователя открытый ключ сертификата EFS и им шифрует симметричный ключ шифрования и записывает шифр в &lt;strong&gt;DEF&lt;/strong&gt; (&lt;em&gt;Data Encryption Field&lt;/em&gt;) файла. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Здесь как бы особого криминала нет, поскольку на данном этапе LSA ничего не знает про закрытый ключ, но при попытке расшифровать файл получается такая картина:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;LSA читает DEF файла и выясняет Thumprint сертификата, который использовался при шифровании симметричного ключа (FEK); &lt;/li&gt;    &lt;li&gt;LSA пытается взять закрытый ключ от сертификата, но его ожидаем облом. Закрытый ключ зашифрован паролем, который известен только пользователю. Т.к. lsass.exe — это системный процесс и работает в закрытой области памяти, не представляется возможным (по условиям безопасности) передать окно для ввода пароля в сессию пользователя. Просто это наиболее короткий путь к повышению своих привелегий &lt;img alt=":)" src="/smilies/happy.gif"&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Поэтому окошка вы никакого не видите и, следовательно, доступ к данным сразу же теряете. Чтобы избежать этого было сделано хорошее решение — не шифровать файлы вообще, если сертификат EFS защищён отдельным паролем и запросить/сгенерировать новый сертификат не представляется возможным. Т.е. на стадии 1 LSA попутно проверяет статус закрытого ключа. И если он защищён, то пробует запросить новый сертификат EFS для пользователя. Если CA недоступен или нет шаблона Basic EFS, то пытается сгенерировать самоподписанный. Если политиками запрещено использовать самоподписанные сертификаты EFS, то получаете ошибку и никакого шифрования не производится.&lt;/p&gt;  &lt;p&gt;Нужен ли этот Strong protection в реальной жизни? В реальной жизни есть смысл использовать смарт-карты, тем более сейчас всё больше приложений поддерживают их. И EFS в том числе. Тогда strong protection можно отключить на уровне политик:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;Computer Configuration –&amp;gt; Policies –&amp;gt; Windows Settings Security Options –&amp;gt; System Cryptography: Force strong key protection for user keys stored on the computer&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Если не уверены, что оно вам надо, то лучше отключить эту возможность на уровне домена. Включать эту политику не рекомендуется, поскольку она может привести к катастрофическим последствиям, что сертификаты у вас просто перестанут работать.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=bbc83c95-0876-449a-bdae-b2e9683a6b01"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,bbc83c95-0876-449a-bdae-b2e9683a6b01.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / EFS</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=8b6c3419-3cd0-45be-b922-c263eeb6f12d</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,8b6c3419-3cd0-45be-b922-c263eeb6f12d.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,8b6c3419-3cd0-45be-b922-c263eeb6f12d.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=8b6c3419-3cd0-45be-b922-c263eeb6f12d</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <title>Миграция с Online Enterprise CA на Offline Standalone CA</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,8b6c3419-3cd0-45be-b922-c263eeb6f12d.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,8b6c3419-3cd0-45be-b922-c263eeb6f12d.aspx</link>
      <pubDate>Sun, 06 Dec 2009 22:10:50 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Update 04.01.2010:&lt;/FONT&gt;&lt;/STRONG&gt; исправлена неточность в тексте. CRL'ы из CDP контейнера AD не копируются на клиентские компьютеры.&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 35px 0px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=КДПВ border=0 alt=КДПВ align=left src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OnlineEnterpriseCAOfflineStandaloneCA_A796/pic_3.gif" width=169 height=170&gt; В предыдущей статье: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,0e4b6657-b932-4fec-b51e-1ef55fda034f.aspx"&gt;&lt;STRONG&gt;Обсуждение схем иерархии Certification Authority&lt;/STRONG&gt;&lt;/A&gt; мы обсудили наиболее часто встречающиеся ошибки при дизайне иерархии CA. Если кто-то захочет перевести как минимум корневые Enterprise CA на Standalone CA и сделать их Offline, то в этом посте вы узнаете как это делается пошагово.&lt;/P&gt;
&lt;P&gt;Изначальные условия:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;onlineca.adatum.com&lt;/STRONG&gt; — DNS имя компьютера в домене/лесу adatum.com с установленной ролью Enterprise CA, которую планируется перенести на Standalone CA. Имя CA — &lt;STRONG&gt;Adatum Root CA&lt;/STRONG&gt;; 
&lt;LI&gt;&lt;STRONG&gt;OfflineRCA&lt;/STRONG&gt; — NetBIOS имя компьютера в рабочей группе. Этот компьютер будет держать роль Standalone Root CA для домена/леса adatum.com. &lt;/LI&gt;&lt;/UL&gt;
&lt;H1 align=center&gt;Предварительная переконфигурация&lt;/H1&gt;
&lt;P&gt;Перед переносом текущего корневого и/или Policy CA следует заранее спланировать периодичность публикации CRL. Если Enterprise CA, как правило, публикует Base CRL каждые 7 дней и Delta CRL — каждые 24 часа. Для Offline CA такая конфигурация будет неработоспособна. Поэтому мы должны переконфигурировать следующие параметры:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Отключение публикации Delta CRL; 
&lt;LI&gt;Увеличение срока действия Base CRL; 
&lt;LI&gt;Настройка Overlap Settings. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Для этого мы можем применить вот такой Reg файл:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; Статья содержит сведения о внесении изменений в системный реестр. Перед внесением изменений в системный реестр рекомендуется создать резервную копию системного реестра и изучить процедуру его восстановления. Дополнительные сведения о создании резервной копии, восстановлении и изменении реестра см. в статье базы знаний Microsoft: &lt;A href="http://support.microsoft.com/kb/256986/" target=_blank&gt;http://support.microsoft.com/kb/256986/&lt;/A&gt;.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#0000ff&gt;Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\&lt;EM&gt;Adatum Root CA&lt;CA name sanitized&gt;&lt;/EM&gt;]
"CRLPeriod"="months"
"CRLPeriodUnits"=dword:00000003
"CRLOverlapPeriod"="weeks"
"CRLOverlapUnits"=dword:00000001
"CRLDeltaPeriod"="Days"
"CRLDeltaPeriodUnits"=dword:00000000
"CRLDeltaOverlapPeriod"="hours"
"CRLDeltaOverlapUnits"=dword:00000000
"CAXchgValidityPeriod"="Weeks"
"CAXchgValidityPeriodUnits"=dword:00000000
"CAXchgOverlapPeriod"="Days"
"CAXchgOverlapPeriodUnits"=dword:00000000
"ValidityPeriod"="Years"
"ValidityPeriodUnits"=dword:00000005&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Этим файлом мы задаём срок действия Base CRL в 3 месяца (но этот период может быть и другой, в зависимости от местных условий) с overlap равным 1 неделя. Так же отключили использование Delta CRL и CA Exchange, который используется для архивирования ключей в базе CA. А так же установили срок действия конечных сертификатов в 5 лет. Если под этим CA будет выделенный Offline Policy CA, то это значение может быть изменено на 10 лет. После импорта этого файла, вы должны перезапустить службу Certificates Services:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#0000ff&gt;net stop certsvc &amp;amp;&amp;amp; net start certsvc&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Теперь нужно опубликовать новый CRL с новыми настройками:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#0000ff&gt;certutil –CRL&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Из предварительных приготовлений это всё, что нам потребуется. Пора приступать к бэкапу.&lt;/P&gt;
&lt;H1 align=center&gt;Бэкап Certification Authority&lt;/H1&gt;
&lt;P&gt;Бэкапу будут подлежать следующие вещи:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;База CA; 
&lt;LI&gt;Ключевая пара&amp;nbsp;CA; 
&lt;LI&gt;Конфигурация CA. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; на данном этапе пользователи и компьютеры уже не смогут отправлять запросы на этот CA. Но могут продолжать использовать CRL'ы для валидации сертификатов.&lt;/P&gt;
&lt;P&gt;Первым делом&amp;nbsp;нужно сделать бэкап самой базы CA. Для этого в командной строке выполните:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#0000ff&gt;certutil –backup c:\RootCA_%date%&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Для&amp;nbsp;удаления ключевой пары запустите консоль MMC и добавьте в ней оснастку &lt;STRONG&gt;Certificates&lt;/STRONG&gt; с указанным контекстом &lt;STRONG&gt;Computer Account&lt;/STRONG&gt;. В оснастке раскройте секцию: &lt;STRONG&gt;Personal –&amp;gt; Certificates&lt;/STRONG&gt; и найдите текущий сертификат CA. Далее, &lt;STRONG&gt;Action –&amp;gt; All Tasks –&amp;gt; Export&lt;/STRONG&gt;. На странице &lt;STRONG&gt;Export Private Key&lt;/STRONG&gt; мастера экспорта сертификатов переставьте переключатель в &lt;STRONG&gt;Yes, export private key&lt;/STRONG&gt;. На странице &lt;STRONG&gt;Export file format&lt;/STRONG&gt; поставьте галочки напротив &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Delete the private key if the export is successful&lt;/STRONG&gt;&lt;/FONT&gt; и &lt;STRONG&gt;Export extended properties&lt;/STRONG&gt;. Этим самым мы удаляем закрытый ключ CA с данного сервера, поскольку он больше не нужен и для предотвращения несанкционированного доступа к ключу. Установите пароль на PFX файл и сохраните в него экспортируемый сертификат. После экспорта удалите этот PFX файл.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; экспорт сертификата в PFX нужен только для удаления с сервера&amp;nbsp;закрытого ключа CA. Сам ключ был сохранён во время бэкапа базы CA.&lt;/P&gt;
&lt;P&gt;Теперь у нас в корне диска C: будет храниться полный бэкап базы CA и его ключевая пара. Нам осталось выполнить бэкап конфигурации CA. Для этого откройте редактор реестра и установите курсор на ключе:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\&lt;EM&gt;Adatum Root CA&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Экспортируйте этот ключ в Reg файл и сохраните в папке, где расположен бэкап базы CA. После этого перенесите всю папку бэкапа на съёмный носитель и скопируйте в корень диска C: компьютера OfflineRCA.&lt;/P&gt;
&lt;H1 align=center&gt;Демонтаж Enterprise CA&lt;/H1&gt;
&lt;P&gt;Теперь мы готовы демонтировать наш Online Enterprise Root CA. Для этого запустите &lt;STRONG&gt;Server Manager&lt;/STRONG&gt; (для 2008 и выше) или &lt;STRONG&gt;Add or Remove Programs –&amp;gt; Windows Components&lt;/STRONG&gt; (для 2003) и удалите с сервера роль CA.&lt;/P&gt;
&lt;P&gt;После демонтажа роли убедитесь, что данный CA больше не отображается в AD как Issuing CA. Для этого можете запустить оснастку ADSIEdit.msc в контексте Configuration. И пройдите по пути: &lt;STRONG&gt;Configuration –&amp;gt; Services –&amp;gt; Public Key Services –&amp;gt; Enrollment Services&lt;/STRONG&gt;. Если демонтируемый CA отсутствует внутри этой папки, то можете закрыть консоль. Если всё ещё отображается, то удалите запись данного CA и закройте ADSI Editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; для удаления объектов PKI из AD вам потребуются права &lt;STRONG&gt;Enterprise Admins&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H1 align=center&gt;Установка Offline Standalone CA&lt;/H1&gt;
&lt;P&gt;На данном этапе все манипуляции будут производиться на сервере OfflineRCA, который состоит в рабочей группе. Запустите &lt;STRONG&gt;Server Manager&lt;/STRONG&gt; (или &lt;STRONG&gt;Add or Remove Programs –&amp;gt; Windows Components&lt;/STRONG&gt; для 2003) и поставьте галочку на &lt;STRONG&gt;Active Directory Certificate Services&lt;/STRONG&gt; (или &lt;STRONG&gt;Certification Authority&lt;/STRONG&gt; для 2003). Я думаю, что мастер вам уже знаком, поэтому я только расскажу на каких страницах мастера нам потребуется сделать изменения. В принципе, можете двигаться Next-&amp;gt;Next до страницы &lt;STRONG&gt;Private Key&lt;/STRONG&gt;. На этой странице выберите &lt;STRONG&gt;Use existing private key&lt;/STRONG&gt; и &lt;STRONG&gt;Select a certificate and use its associated private key&lt;/STRONG&gt;. Нажмите Next и нажмите кнопку &lt;STRONG&gt;Import&lt;/STRONG&gt;. Импортируйте закрытый ключ вместе с сертификатом из PFX файла, который находится в папке с бэкапом CA. На следующей странице можете задать папки хранения базы CA.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; вам не обязательно устанавливать Standalone CA на полный сервер, а лучше будет устанавливать в Server Core.&lt;/P&gt;
&lt;P&gt;Когда роль CA установлена, мы должны восстановить базу CA и конфигурацию. В командной строке выполните:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#0000ff&gt;certutil –restore c:\RootCA_%date% –f –config "OfflineRCA\Adatum Root CA"&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;и конфигурацию восстановить простым запуском Reg файла. Если ваш бывший корень публиковал сертификаты и CRL в LDAP, то теперь мы не сможем это делать напрямую. Чтобы исправить это, откройте оснастку CertSrv.msc, выберите свойства CA и перейдите на вкладку Extensions. В ней найдите и удалите все LDAP ссылки в CDP и AIA, которые связаны с вашим доменом.&lt;/P&gt;
&lt;P&gt;Всё, теперь мы полностью перенесли Online Enterprise Root CA на Offline Standalone CA, который теперь может выключаться на очень большие промежутки времени. По сути это потребуется только для того, чтобы опубликовать новый CRL, издать новый сертификат подчинённому CA или обновить свой собственный сертификат. Ну и обновления на сервер ставить тоже надо невзирая на то, что сервер будет большую часть времени выключен.&lt;/P&gt;
&lt;H1 align=center&gt;Включение распознавания Offline CA в лесу&lt;/H1&gt;
&lt;P&gt;Чтобы наш мигрированный CA распознавался в исходном домене/лесу adatum.com, нам нужно опубликовать его сертификаты в следующих контейнерах Active Directory:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Certification Authorities&lt;/STRONG&gt; — данный контейнер используется для организации доверия корневым CA в текущем лесу. Данные сертификаты автоматически копируются в контейнер Trusted Root CAs всех компьютеров в лесу; 
&lt;LI&gt;&lt;STRONG&gt;AIA&lt;/STRONG&gt; — данный контейнер используется для публикации Subordinate (или Intermediate) CA. Это позволяет сократить время на построение цепочек сертификатов. Сертификаты из данного контейнера автоматически копируются в Intermediate CAs на каждый компьютер в текущем лесу; 
&lt;LI&gt;&lt;STRONG&gt;CDP&lt;/STRONG&gt; — данный контейнер используется для публикации любых CRL. Чуть ниже я расскажу, как вы будете его использовать. Содержимое данного контейнера не копируется клиентам и будет использоваться только в случае, если какой-то сертификат явно ссылается на CRL в этом контейнере. 
&lt;LI&gt;&lt;STRONG&gt;CN = NTAuthCertificates&lt;/STRONG&gt; — это запись внутри контейнера Public Key Services. Данная запись содержит сертификаты тех CA, которые выдавали логонные сертификаты. Это относится как к логонным сертификатам для смарт-карт, сертификатам для аутентификации в IIS и VPN. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Для импорта сертификата CA войдите в домен с правами Enterprise Admins, скопируйте открытую часть сертификата в C:\RootCA.cer, запустите командную строку и выполните:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#0000ff&gt;certutil –dspublish –f c:\RootCA.cer RootCA&lt;BR&gt;certutil –dspublish –f c:\RootCA.cer SubCA&lt;BR&gt;certutil –dspublish –f c:\RootCA.cer NTAuthCA&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;После того, как пройдёт репликация в лесу, наш новый CA будет полностью распознаваться как доверенный в текущем лесу.&lt;/P&gt;
&lt;H1 align=center&gt;Установка Online Enterprise Issuing CA&lt;/H1&gt;
&lt;P&gt;Теперь можно приступать к процессу установки Enterprise Subordinate CA, который уже будет обслуживать конечных потребителей. Единственная разница в установке будет в том, что в списке ролей CA вы должны выбрать Enterprise Subordinate CA.&lt;/P&gt;
&lt;P&gt;Совет: при установке CA старайтесь избегать привязки к домену в distinguished name CA. Используйте только привязку к названию компании, например:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;CN = Adatum Class 1 Public Primary Certification Authority &lt;BR&gt;OU = DB management systems &lt;BR&gt;O = Adatum Inc. &lt;BR&gt;C = US&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Сохраните запрос в файл и получите сертификат у вышестоящего Offline CA (корневого или policy). Этот вопрос выходит за рамки данного материала, поэтому рассматриваться не будет. Сконфигурируйте CA должным образом (точки распространения сертификатов, CRL, периодичность публикации CRL, шаблоны, etc.) и можете запускать его в работу.&lt;/P&gt;
&lt;H1 align=center&gt;Offline CA CRL lifecycle&lt;/H1&gt;
&lt;P&gt;В случае, если ваш Enterprise CA до миграции публиковал LDAP ссылки в сертификатах, то для избежания задержек при проверке сертификатов, вы в течении всей жизни текущего сертификата корневого и/или Policy CA должны поддерживать доступность CRL в этих точках. Поскольку наши Root и Policy CA теперь члены рабочей группы и не могут публиковать CRL прямо в AD, вам придётся заниматься этим вручную. Когда Offline CA опубликует новый CRL, вы должны его доставить (по сети, что не очень рекомендуется, или через съёмные носители) в точки, куда он публиковался раньше (чтобы обеспечить работоспособность расширений CDP/AIA сертификатов). Если с HTTP ссылками всё просто (положили файл на веб-сервер и всё), то с LDAP придётся делать чуточку иначе, а именно — публиковать его в AD в контейнер CDP:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#0000ff&gt;certutil –dspublish –f C:\RootCA.crl "Adatum Root CA"&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Ещё раз обращаю ваше внимание на то, что эта операция требует права Enterprise Admins.&lt;/P&gt;
&lt;P&gt;Кажется ничего не забыл. Но если что-то забыл — напомните.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=8b6c3419-3cd0-45be-b922-c263eeb6f12d"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,8b6c3419-3cd0-45be-b922-c263eeb6f12d.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=0e4b6657-b932-4fec-b51e-1ef55fda034f</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,0e4b6657-b932-4fec-b51e-1ef55fda034f.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,0e4b6657-b932-4fec-b51e-1ef55fda034f.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=0e4b6657-b932-4fec-b51e-1ef55fda034f</wfw:commentRss>
      <slash:comments>14</slash:comments>
      <title>Обсуждение схем иерархии Certification Authority</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,0e4b6657-b932-4fec-b51e-1ef55fda034f.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,0e4b6657-b932-4fec-b51e-1ef55fda034f.aspx</link>
      <pubDate>Fri, 04 Dec 2009 00:02:10 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Update 05.12.2009:&lt;/FONT&gt;&lt;/STRONG&gt; выпилена часть про смену пароля как не совсем правильную (см.каменты). Судя по логике смены паролей компьютерами в домене, можно реализовать Offline CA в доменной среде с большим сроком бездействия. Но это всё равно не отменяет того факта, что такое решение будет не совсем правильным.&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;BR&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 10px 0px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=КДПВ border=0 alt=КДПВ align=left src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority_11F34/RegioPKI_hierarchyModel_ffe7f363-cac9-4a37-85dc-e3e80b839a2a.jpg" width=204 height=166&gt;Сегодня хочу немного обсудить несколько (все не получится :-() вопросов планирования ирерархий Certification Authority (CA), как это делается в реальном мире. Как таковых бест-практисов на эту тему не существует, равно как и бест-практисов по планированию лесов Active Directory. Есть только несколько стандартных классических схем и рекомендаций на основании которых можно выбирать. Этот вопрос очень серьёзный, поскольку иерархии PKI и AD очень редко меняются в силу сложности и дороговизны процесса. И с тем вариантом, который вы выбрали на этапе планирования, скорее всего вы будете жить очень долго.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 align=center&gt;Лирическое отступление&lt;/H1&gt;
&lt;P&gt;В реальной жизни домены и PKI в основном развёртываются по одному из трёх сценариев:&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Говноадминами в метро на коленке за 15 минут; 
&lt;LI&gt;Системными администраторами после тщательного (по мере сил) анализа существующей инфраструктуры; 
&lt;LI&gt;Системными интерграторами или аутсорсерами, грохая огромные деньги на полный и компетентный анализ существующей инфраструктуры, учитывая требования бизнеса с запасом на 5 лет минимум. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Не всем посчастливилось устроиться работать в компанию последней группы и чаще всего приходится работать в первых двух. С первым вариантом даже обсуждать нечего, потому что с такими администраторами говорить вовсе не о чем, разве что смаковать последние новости с ЛОРа, секлаба и двача. Я всё-таки надеюсь, что этот пост будет полезен администраторам второй группы.&lt;/P&gt;
&lt;P&gt;Перед принятием решения о развёртывании PKI необходимо понять, что детский сад уже заканчивается и начинается взрослая половая жизнь к которой нужно относиться весьма серьёзно. Это будет означать, что PKI будет достаточно критичным моментом в инфраструктуре и любые фейлы потенциально (в реальности так и происходит) могут очень негативно отразиться на бизнесе, поэтому саму архитектуру нужно спланировать так, чтобы возможность эпик-фейла была как можно минимальной, а расширение было безболезненным. Самое основное, что должен знать администратор — это роли CA их назначение. Всего этих ролей 3:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Root CA&lt;/STRONG&gt; — корневой CA, который является наиболее критической точкой в инфраструктуре, потому что потеряв/скомпрометировав его, ваша PKI и репутация компании летит к чёрту, поскольку это та точка доверия, которая проверяется весьма условно. Т.е. вы доверяете тому или иному корневому сертификату только на основании каких-то косвеных данных или собственных предпочтениях. Технически проверить «хорошесть» корня не представляется возможным. Как правило выдаёт сертификаты только подчинённым Policy CA. 
&lt;LI&gt;&lt;STRONG&gt;Policy CA&lt;/STRONG&gt; — даже не знаю как его перевести, поэтому не буду. Но его суть сводится к тому, что данный тип CA определяет политику сертификации на данном CA и на всех последующих CA в цепочке. Каждый Policy CA характеризуется своим собственным &lt;A href="http://tools.ietf.org/html/rfc3647"&gt;&lt;STRONG&gt;CPS&lt;/STRONG&gt;&lt;/A&gt; (&lt;EM&gt;Certificate Practice Statement&lt;/EM&gt;). Поэтому если у вас на предприятии используются различные схемы проверки подлинности участников, которые запрашивают сертификаты и требования к ним, а так же мероприятия по организации CA, то каждая такая схема выносится в отдельный CPS и отдельный Policy CA. Так же, как и корень, является критической точкой в иерархии, но чуть меньше, чем корневой CA. Поскольку изъять из эксплуатации (decomission) Policy CA всяко проще, чем корневой. Об этой проблеме я уже говорил в посте &lt;A href="http://www.sysadmins.lv/PermaLink,guid,b3521905-4696-4e23-a2d8-1f6fafbfa030.aspx"&gt;Certificate chaining engine (CCE) и отзыв корневых сертификатов&lt;/A&gt;. Policy CA может быть выделенный и выдавать сертификаты только подчинённым Policy или Issuing CA. А может быть и одновременно совмещён с ролью Issuing CA. 
&lt;LI&gt;&lt;STRONG&gt;Issuing CA&lt;/STRONG&gt; — издающий CA, который уже выдаёт сертификаты конечным потребителям — пользователям, компьютерам, различным сетевым устройствам. Каждый Issuing CA должен подчиняться тем требованиям и указаниям, которые описаны в CPS Policy CA. &lt;/LI&gt;&lt;/OL&gt;
&lt;H1 align=center&gt;Enterprise Root CA — хороший выбор?&lt;/H1&gt;
&lt;P&gt;В условиях малого и среднего бизнеса не всегда можно набрать компетентный в этих вопросах персонал, поэтому админстраторы обычно делают всё попроще — ставят 1 или 2 Enterprise Issuing CA и радуются жизни. В таких ситуациях один единственный CA выполняет все 3 роли — он и корневой, и Policy и издающий CA. Чем это плохо? Учитывая тот факт, что сервер CA находится постоянно в сети и его настройки безопасности могут содержать брешь, через которую CA можно легко скомпрометировать. Это, например, совмещение роли CA с другими ролями, как контроллер домена, сервер терминалов, файл-сервер и т.д. В данных случаях получить доступ к закрытому ключу CA будет проще, чем в остальных сценариях.&lt;/P&gt;
&lt;P&gt;Если выделить отдельный сервер, член домена, под роль CA, то риск снижается, но незачительно, поскольку любой член групп Domain/Enterprise Admins, операторы бэкапа, etc. могут получить доступ к ключу CA. Это весьма неиллюзорная угроза, поскольку обидевшийся админ может поломать вам единственный корневой CA и даже использовать его ключ в корыстных целях — выпускать «липовые» сертификаты. Учитывая, что не существует идеальной ОС и в любой из них обнаруживаются те или иные уязвимости, при помощи которых злоумышленник может положить ваш CA не слезая с &lt;STRIKE&gt;подруги&lt;/STRIKE&gt;дивана просто запустив эксплоит (я надеюсь, что случай с конфикером/кидо напоминать не надо?). Другая проблема заключается в том, что ваш корневой CA будет жить ровно столько, сколько живёт сам домен/лес, поскольку мигрировать в другой домен/лес может быть весьма проблематично. И если вы решили переименовать домен или мигрировать в другой лес, то неиллюзорный секс с миграцией PKI вас ожидает, особенно, если всё делалось простым Next-Next. Это означает, что даже в условиях сети на 20 человек, держать корневой CA постоянно в сети — не самая лучшая идея. Хотя, если у вас есть &lt;STRONG&gt;HSM&lt;/STRONG&gt; (&lt;EM&gt;Hardware Security Module&lt;/EM&gt;), то опасность компрометации такого CA снижается, но не на столько, чтобы оправдать наличие корневого CA в доменной сети. Да и цена таких девайсов явно не по карману компаниям малого и среднего бизнеса. Лично мне с HSM поработать не довелось.&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Bad solution" border=0 alt="Bad solution" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority_11F34/badh1_4913aa72-68b2-41b8-9bdd-3425f40329ee.png" width=240 height=152&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Следовательно, чтобы избежать всех этих проблем путь есть только один — вынос корневого CA из домена на отдельный сервер рабочей группы. При этом вы можете не покупать Enterprise редакции Windows Server, поскольку в рабочей группе хватает Standard Edition (а с выходом Winows Server 2008 R2, Standard тянет даже на Enterprise CA). Какие преимущества вы получите от такого CA?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Резко уменьшается количество людей, которые могут получить доступ к серверу (как физический, так и программный); 
&lt;LI&gt;В рабочей группе вы никак не привязаны к имени домена/леса. Что позволяет сохранять корень доверия даже при смене лесов; 
&lt;LI&gt;В рабочей группе сервер не обязательно должен быть подключён к сети. А лучше вообще не подключать к сети, в результате чего вероятность атаки с использованием уязвимости резко падает до нуля; 
&lt;LI&gt;Вы можете сделать &lt;STRONG&gt;Offline CA&lt;/STRONG&gt;, который будет включаться только для того, чтобы обновить свои CRL, выдать сертификат новому подчинённому CA или обновить свой собственный сертификат. Учитывая, что корневой CA выдаёт сертификаты только другим CA, поэтому вероятность необходимости отзыва такого сертификата не очень высока. Это позволяет увеличить срок действия CRL до нескольких месяцев. Здесь главное — не переусердствовать и делать срок действия CRL более 3-х месяцев вряд ли будет разумным. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;С учётом выской популярности и доступности систем виртуализации, даже если у вас нет лишнего железа для сервера CA (а CA к ресурсам крайне нетребователен и может спокойно работать на железе уровня Pentium III), то вы с лёгкостью можете развернуть корневой CA на виртуальной машине с минимальной затратой средств. При этом виртуальную машину лучше хранить на съёмном жёстком диске, который можно прятать в сейф.&lt;/P&gt;
&lt;H1 align=center&gt;Policy CA — что это и зачем оно нужно?&lt;/H1&gt;
&lt;P&gt;Это достаточно большой и очень теоретический вопрос. В действительности Policy CA от остальных отличает только активная кнопка &lt;STRONG&gt;Issuer Statement&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Policy CA" border=0 alt="Policy CA" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority_11F34/policyca.png" width=413 height=515&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;К сожалению очень многие компании забивают на такую мелочь. Подумаешь, есть кнопка или нет её. Но в действительности Policy CA очень нужен, поскольку кнопка &lt;STRONG&gt;Issuer Statement&lt;/STRONG&gt; ведёт на &lt;STRONG&gt;CPS&lt;/STRONG&gt; данной ветки иерарахии CA. Как я уже говорил, CPS документально описывает порядок работы служб сертификации и сопутствующих механизмов. В &lt;A href="http://tools.ietf.org/html/rfc3647" target=_blank&gt;RFC 3647&lt;/A&gt; вы можете более подробно ознакомиться с содержимым CPS или просто почитать CPS коммерческих CA, например, VeriSign — &lt;A title=http://www.verisign.com/repository/cps href="http://www.verisign.com/repository/cps"&gt;http://www.verisign.com/repository/cps&lt;/A&gt;. И это не просто бумажка какая-то, а уже юридический документ, за нарушение условий которого можно &lt;STRIKE&gt;получить конфет пизденцов&lt;/STRIKE&gt;нанести сильный ущерб доверию компании со стороны самих сотрудников и внешних партнёров. Поскольку компания может вырасти или могут поменяться условия работы, не рекомендуется совмещать роль Policy CA с ролью корневого CA, потому что корень у вас только один, а политик сертификации может быть несколько. Все последующие CA (если есть) будут подчиняться политике самого первого Policy CA в цепочке. Поэтому каждый CA второго уровня (следом за корнем) будет представлять своё дерево политик сертификации со своим CPS.&lt;/P&gt;
&lt;P&gt;Если Policy CA не рекомендуется совмещать с корнем, то совмещать его с Issuing CA вполне можно, если у вас планируется только один Issuing CA. Если же их будет больше одного, то Policy CA следует выносить отдельно и предусмотреть для него такие же правила размещения, как и для Offline Root CA (об этом я рассказывал чуть выше). Почему не рекомендуется совмещать Policy CA и Issuing CA, если издающих будет больше одного? Дело в том, что у вас не должно быть больше одного уровня издающих CA. Т.е. вот такой схемы:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Bad solution" border=0 alt="Bad solution" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority_11F34/badh2_542bffb6-eba6-4b15-91cd-65619dd59eb9.png" width=273 height=198&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Поскольку в этом во-первых нет необходимости и вы почём зря удлиняете цепочку сертификации. В принципе, &lt;FONT color=#ff0000&gt;иерархии состоящие из более, чем 4-х уровней нежизнеспособны&lt;/FONT&gt;, поскольку &lt;STRONG&gt;CCE&lt;/STRONG&gt; (&lt;EM&gt;Certificate Chaining Engine&lt;/EM&gt;) каждый раз будет тратить очень много времени на построение и проверки цепочек сертификатов и из-за таймаутов может давать битые цепочки. Конечно же, за такое вас никто бить по лицу ногами не будет, но таких схем лучше избегать за исключением очень сложных схем, когда используется 2 уровня Policy CA (что подразумевает несколько различных политик сертификаций) и 2 уровня издающих CA. Такое возможно только в больших компаниях и их я не затрагиваю в данном материале. В случае если вам необходимо иметь несколько издающих CA под одним Policy CA, то схему лучше строить вот так, в зависимости от количеста издающих CA:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Good solution" border=0 alt="Good solution" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificationAuthority_11F34/goodh_334302a2-2760-4bac-b89a-0e64467f2396.png" width=650 height=272&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;В первом случае у нас будет простая иерархия с единственным издающим CA, который так же выполняет роль Policy CA и ниже по иерархии ничего нет. Если ВНЕЗАПНО появятся потребности в ещё одном издающем CA, то это решается достаточно путём миграции ко второй схеме. Я не уверен, что Microsoft поддерживает миграцию с Online Enterprise CA на Offline Standalone CA, но я сам такие миграции делал и особых проблем это не вызывало. Просто при миграции нужно учитывать несколько нюансов и всё. Поэтому с учётом перспективы целесообразно делать такую схему изначально. По большому счёту это наиболее распространённые схемы иерархий PKI.&lt;/P&gt;
&lt;H1 align=center&gt;Время жизни сертификата CA&lt;/H1&gt;
&lt;P&gt;И ещё один момент, который хочу посмотреть — какой срок действия должен быть у сертификата CA? Вопрос достаточно риторический и зачастую зависит от требования к сроку действия конечных сертификатов. Но обычно используется простая схема:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;конечный сертификат — 3 года; 
&lt;LI&gt;Issuing CA — 5 лет; 
&lt;LI&gt;2 Level Policy CA — 10 лет; 
&lt;LI&gt;1 Level Policy CA — 15 лет; 
&lt;LI&gt;Root CA — 20 лет. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Т.е. если у вас 2-х уровневая иерархия PKI, то Issuing CA будет на 5 лет, а Root CA на 10 лет. Для 3-х уровневой иерархии Issuing CA на 5 лет, Policy CA на 10 лет и Root CA на 15 лет. Но основной отправной точкой будет требования к сроку действия конечных сертификатов.&lt;/P&gt;
&lt;P&gt;Как бы и всё. Данный материал в основном опирается на общие рекомендации и моё личное восприятие этого мира, поэтому готов обсудить альтернативные варианты.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=0e4b6657-b932-4fec-b51e-1ef55fda034f"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,0e4b6657-b932-4fec-b51e-1ef55fda034f.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=64d4ba95-e6d9-486d-9c25-e30df8511131</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,64d4ba95-e6d9-486d-9c25-e30df8511131.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,64d4ba95-e6d9-486d-9c25-e30df8511131.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=64d4ba95-e6d9-486d-9c25-e30df8511131</wfw:commentRss>
      <slash:comments>9</slash:comments>
      <title>AppLocker vs Software Restriction Policies</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,64d4ba95-e6d9-486d-9c25-e30df8511131.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,64d4ba95-e6d9-486d-9c25-e30df8511131.aspx</link>
      <pubDate>Tue, 01 Dec 2009 16:55:02 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;В последнее время мне всё чаще стали задавать вопрос, что выбрать, AppLocker или старый добрый SRP?&lt;/P&gt;
&lt;P&gt;Казалось бы, что тут думать — AppLocker и точка. Многие, наверное, помнят пиар-акцию под названием «&lt;STRONG&gt;Windows 7 + 1&lt;/STRONG&gt;», которую проводили многие MVP для рекламы новых технологий Windows 7. И весьма досадно то, что некоторые MVP вместо раскрытия реальной объективности новых технологий распространяли просто маркетинговый булшит и даже подтасовывали факты. Например статья Владимира Безмалого про AppLocker:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://vladbez.spaces.live.com/blog/cns!586B9203C3561071!4725.entry" target=_blank&gt;AppLocker как средство обеспечения информационной безопасности&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://vladbez.spaces.live.com/blog/cns!586B9203C3561071!4769.entry" target=_blank&gt;AppLocker Часть 2&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Этот вариант статьи можно ещё прочитать и здесь: &lt;A title=http://www.osp.ru/win2000/2009/09/10721226/ href="http://www.osp.ru/win2000/2009/09/10721226/"&gt;http://www.osp.ru/win2000/2009/09/10721226/&lt;/A&gt;. Моё внимание обратила на себя табличка сравнения SRP и AppLocker. Вот она с моими комментариями:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="AppLocker &amp;amp; SRP comparison" border=0 alt="AppLocker &amp;amp; SRP comparison" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/ApplockervsSoftwareRestrictionPolicies_EBAF/069_t1_1_9b6abad0-537b-4b9a-ab9b-f7fe7486abb7.gif" width=484 height=338&gt; &lt;/P&gt;
&lt;P&gt;Я думаю, что ни для кого не секрет, что аудит в SRP был и не сильно хуже, чем в AppLocker. Разница лишь в том, что AppLocker пишет в свой собственный EventLog, а SRP писал аудит в текстовый файл.&lt;/P&gt;
&lt;P&gt;На счёт мастера создания правил я немного не понял. В принципе, окно создания правила в SRP тоже своего рода мастер. Только одношаговый, в отличии от AppLocker.&lt;/P&gt;
&lt;P&gt;А сообщения об ошибках в SRP были тоже. Как в виде диалогоых окон, так и в журнале Application в эвентлоге. Т.е. тут у меня 2 мнения — либо человек не работал с SRP, либо намеренно исказил факты, чтобы подкрутить популярность AppLocker'а, поскольку революции AppLocker не совершил. Ведь с появлением AppLocker мы приобрели не только удобный интерфейс, но и потеряли несколько полезных вещей, которые есть в SRP. Как я уже отмечал &lt;A href="http://www.sysadmins.lv/PermaLink,guid,37b74977-d937-4383-b41b-982eb287bc23.aspx"&gt;&lt;STRONG&gt;ранее&lt;/STRONG&gt;&lt;/A&gt;, мы потеряли возможность самостоятельно регулировать список контролируемых расширений файлов и потеряли возможность фильтрования файлов по конкретным сертификатам. Новое правило издателя позволяет контролировать версию разрешённого приложения, но не отличает каким сертификатом подписано приложение. Да и применимость издателей такая же как и у классических правил сертификатов — т.е. низкая. К сожалению я не могу вспомнить ни одно бизнес-приложение (не стандартные приложения типа Microsoft Office), которое бы было подписано. Плюс невозможность использования системных переменных окружения так же усложняет создание правил в доменной среде. Эту табличку можно переделать в такой вид:&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=492 align=center&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;STRONG&gt;SRP&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;STRONG&gt;AppLocker&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Применение правил&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;Все пользователи&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;Определённые группы и пользователи&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Уровень по умолчанию&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;Unrestricted&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;Deny&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Разрешающее действие&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Запрещающее действие&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Особое действие&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png" (Basic User)&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Правила сертификатов&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Правила издателей&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Правила хешей&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Правила сетевой зоны&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Правила пути&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Системные переменные окружения&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Собственные переменные окружения&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Пути из реестра&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Режим аудита&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Группировка правил&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Мастер создания правил&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Импорт/экспорт политик&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Поддержка PowerShell&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Сообщения об ошибках&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center width=202&gt;&lt;STRONG&gt;Настраиваемый список расширений&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=131&gt;&lt;img alt="Yes, of course!" src="/images/buttons/ok.png"&lt;/TD&gt;
&lt;TD style="TEXT-ALIGN: center" vAlign=center width=157&gt;&lt;img alt="No!" src="/images/buttons/bad.png"&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Мы видим, что преимущество AppLocker перед SRP резко переходит на нет. Я не хочу сказать, что AppLocker — отстой, а лишь хочу показать, что реализация этой технологии не на столько крутая, что её стоит пиарить как революцию.&lt;/P&gt;
&lt;P&gt;Из блога Владимира Безмалого:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;В Windows 7 SRP также могут применяться, однако все чаще будет использоваться AppLocker. Почему?&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;К сожалению этого не случится, во всяком случае в цикле Windows 7. Как уже отмечалось, наиболее значительное изменение в AppLocker — это новый простой, удобный и понятный интерфейс, чего в SRP не было. В значительной степени из-за этого SRP на домашних компьютерах применялся лишь в единичных случаях. Сейчас же применить AppLocker гораздо проще на домашних системах при получении одинаково эффективного результата. Но Microsoft слишком жадный и включил эту технологию только в Windows 7 Ultimate и Enterprise. Я верю, что от появления SRP в домашних редакциях Windows 7 количество применений SRP на них не увеличится совсем. Учитывая, что с ноутбуками будет чаще всего проинсталлирована какая-то домашняя редакция Windows 7, то профита от AppLocker они не получат тоже. Но если дома есть возможность использовать AppLocker и вы хотите получить адекватный уровень защиты от запуска случайных файлов — используйте AppLocker. Хотя, скажите, кто из вас, кроме меня, использует Windows 7 Ultimate/Enterprise дома и использует AppLocker? &lt;img alt=":)" src="/smilies/happy.gif"&gt;&lt;/P&gt;
&lt;P&gt;Если вы будете иметь возможность перевести часть парка машин предприятия на Windows 7 Enterprise, то вопрос использования AppLocker может сложиться не в его пользу. Это обусловлено тем, что если у вас уже используется SRP, то вам AppLocker не будет нужен до тех пор, пока &lt;STRONG&gt;весь&lt;/STRONG&gt; парк не будет переведён на Windows 7 Enterprise. Ведь с AppLocker вы ощутимых бенефитов не получите в плане безопасности, но сразу усложните себе жизнь тем, что вам придётся поддерживать гораздо больше политик — SRP и AppLocker. При необходимости поддерживать клиентов отличных от Windows 7 Enterprise лучше использовать то, что может охватить наиболее число машин — SRP.&lt;/P&gt;
&lt;P&gt;Внимать моим рекомендациям — личное дело каждого, просто я отразил своё видение проблематики. Вобщем, я не верю в массовое светлое будущее AppLocker по крайней мере до выхода следующей версии Windows, даже не смотря на активный и нечестный пиар технологии со стороны Microsoft (что вполне нормально для самого создателя) и прочих пиарщиков. Но начинать его использование по мере возможности — очень даже можно и нужно, т.к. однажды SRP просто не окажется в релизе ОС.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=64d4ba95-e6d9-486d-9c25-e30df8511131"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,64d4ba95-e6d9-486d-9c25-e30df8511131.aspx</comments>
      <category>Security</category>
      <category>Security / AppLocker</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=58b58ace-a862-4a7b-a74f-b6d4993a28b5</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,58b58ace-a862-4a7b-a74f-b6d4993a28b5.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,58b58ace-a862-4a7b-a74f-b6d4993a28b5.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=58b58ace-a862-4a7b-a74f-b6d4993a28b5</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Что в OID'е тебе моём?</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,58b58ace-a862-4a7b-a74f-b6d4993a28b5.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,58b58ace-a862-4a7b-a74f-b6d4993a28b5.aspx</link>
      <pubDate>Tue, 24 Nov 2009 19:33:56 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; данный материал публикуется как обязательный для знания IT-специалистами, которые занимаются или только собираются заниматься темой &lt;strong&gt;PKI&lt;/strong&gt; (&lt;em&gt;Public Key Infrastructure&lt;/em&gt;).&lt;/p&gt;  &lt;p&gt;В сфере PKI OID'ы имеют очень важное значение, хоть это далеко и не всегда очевидно для администраторов. Что такое OID? Это &lt;strong&gt;Object IDentifier (OID)&lt;/strong&gt;, который является как бы древовидным «инвентаризационным» номером объекта. В инфраструктуре PKI этими OID'ами обладают очень много типов объектов, например:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Шаблоны сертификатов; &lt;/li&gt;    &lt;li&gt;Application Policies/Extended Key Usages (EKU); &lt;/li&gt;    &lt;li&gt;Issuance Policies/Certificate Policies;&lt;/li&gt;    &lt;li&gt;Certificate Practice Statement; &lt;/li&gt;    &lt;li&gt;алгоритмы криптографии&lt;/li&gt;    &lt;li&gt;и т.д.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Как они выглядят? OID'ы записываются с использованием десятично-точечной нотации, например: &lt;strong&gt;1.3.6.1.5.5.7.3.1&lt;/strong&gt;. Поскольку OID'ы являются древовидной структурой, то каждый элемент имеет какое-то значение. Схема дерева достаточно обширна и отобразить её всю весьма проблемно. Но существуют ресурсы, которые позволяют исследовать деревья стандартизированных OID'ов. Чтобы показать сложность этого дерева можно попробовать разобрать вышеуказанный OID:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.alvestrand.no/objectid/1.html" target="_blank"&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/a&gt; — ISO assigned       &lt;br /&gt;&lt;a href="http://www.alvestrand.no/objectid/1.3.html" target="_blank"&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/a&gt; — ISO Identified Organization       &lt;br /&gt;&lt;a href="http://www.alvestrand.no/objectid/1.3.6.html" target="_blank"&gt;&lt;strong&gt;6&lt;/strong&gt;&lt;/a&gt; — US Department of Defense       &lt;br /&gt;&lt;a href="http://www.alvestrand.no/objectid/1.3.6.1.html" target="_blank"&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/a&gt; — Internet       &lt;br /&gt;&lt;a href="http://www.alvestrand.no/objectid/1.3.6.1.5.html" target="_blank"&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;/a&gt; — Security       &lt;br /&gt;&lt;a href="http://www.alvestrand.no/objectid/1.3.6.1.5.5.html" target="_blank"&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;/a&gt; — Mechanisms       &lt;br /&gt;&lt;a href="http://www.alvestrand.no/objectid/1.3.6.1.5.5.7.html" target="_blank"&gt;&lt;strong&gt;7&lt;/strong&gt;&lt;/a&gt; — PKIX       &lt;br /&gt;&lt;a href="http://www.alvestrand.no/objectid/1.3.6.1.5.5.7.3.html" target="_blank"&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/a&gt; — id-kp, arc for extended key purpose OIDS       &lt;br /&gt;&lt;a href="http://www.alvestrand.no/objectid/1.3.6.1.5.5.7.3.1.html" target="_blank"&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/a&gt; — id_kp_serverAuth&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Вот так пройдясь по дереву OID'ов мы выяснили, что этот OID обозначает &lt;strong&gt;Server Authentication&lt;/strong&gt; в Application Policies/EKU сертификатов. Вы можете самостоятельно поупражняться в разборе OID'ов с использованием этой странички: &lt;a href="http://www.alvestrand.no/objectid/top.html" target="_blank"&gt;&lt;strong&gt;OID assignments from the top node&lt;/strong&gt;&lt;/a&gt;. В принципе, вы должны уметь ориентироваться в стандартизированных OID'ах, которые используются в интернете.&lt;/p&gt;  &lt;p&gt;Но это всё теория. На практике случается, что этих стандартизированных OID'ов недостаточно, чтобы описать конкретный объект. Для этого IANA выделила специальную ветвь OID'ов для частных организаций, которые могут в пределах этой ветви создавать свои собственные OID'ы. Корнем этой ветви является: &lt;a href="http://www.alvestrand.no/objectid/1.3.6.1.4.1.html" target="_blank"&gt;&lt;strong&gt;1.3.6.1.4.1.xxx.yyy&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;где &lt;strong&gt;xxx&lt;/strong&gt; — уникальный OID, который выделяется конкретной частной организации и &lt;strong&gt;yyy&lt;/strong&gt; — прозивольное пространство OID'ов, которые закреплены за конкретной организацией. Например, компании Microsoft выделено пространство с OID = 311 или полный путь дерева &lt;a href="http://support.microsoft.com/kb/287547" target="_blank"&gt;&lt;strong&gt;1.3.6.1.4.1.311&lt;/strong&gt;&lt;/a&gt;. Как видно по этой ссылке, все OID'ы которые используются только в продуктах Microsoft используют ветку &lt;strong&gt;1.3.6.1.4.1.311&lt;/strong&gt;. Когда вы создаёте новый шаблон сертификатов, Issuance Policy, Application Policy, Windows генерирует рандомный OID который находится в ветке, которой владеет Microsoft. В принципе, это не так страшно до тех пор, пока ваша или партнёрская компания не станут использовать сертификаты друг друга. Вот тогда могут начаться проблемы с валидацией сертификатов. Рассмотрим ситуацию:&lt;/p&gt;  &lt;p&gt;Вы — компания «&lt;strong&gt;Дизайн табуреток&lt;/strong&gt;» по производству приложений для макетирования и моделирования табуреток и эти приложения используются у партнёрской организации «&lt;strong&gt;Табуретки для всех&lt;/strong&gt;». Каждое ваше приложение подписано сертификатом подписи. В обеих компаниях существуют строгие правила проверки и выдачи сертификатов подписи. В компании «Дизайн табуреток» используется 2 шаблона сертификатов подписи:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Internal Code signing;&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;External Code Signing.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Сертификаты на основе первого шаблона выдаются разработчикам на основе автоматической выдачи сертификатов (autoenrollment) для внутренних нужд. Когда приложение уже готово для поставки производителям табуреток (например, «Табуретки для всех»), то приложение окончательно подписывается руководителем разработок приложения. Поскольку это очень ответственный процесс, вы создали шаблон сертификатов с названием &lt;strong&gt;External Code Signing&lt;/strong&gt;, но с более строгими требованиями:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Сертификат выдаётся только уполномоченным лицам, предварительно подписавших документ, который регулирует ответственность за подписываемые этим сертификатом файлы; &lt;/li&gt;    &lt;li&gt;Для выдачи сертификата требуется явное одобрение менеджера CA; &lt;/li&gt;    &lt;li&gt;Сертификат должен храниться только на смарт-карте (в криптопровайдерах шаблона указан CSP поставщика смарт-карт, например Aladdin);&lt;/li&gt;    &lt;li&gt;Сертификат выдаётся только теми CA, которые отвечают 2-му уровню безопасности (что подразумевает использование HSM, раздельное управление службами CA и т.д.).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Поскольку оба шаблона выпускают сертификаты с одинаковым Application Policy/EKU (OID = &lt;a href="http://www.alvestrand.no/1.3.6.1.5.5.7.3.3.html"&gt;&lt;strong&gt;1.3.6.1.5.5.7.3.3&lt;/strong&gt;&lt;/a&gt;), для определения различных порядков выдачи сертификатов вы создали два отдельных Issuance Policy, &lt;strong&gt;InternalIssuance&lt;/strong&gt; (OID = 1.3.6.1.4.1.311.8888.8888) и &lt;strong&gt;ExternalIssuance&lt;/strong&gt; (OID = 1.3.6.1.4.1.311.9999.9999) и назначили каждую политику выдачи соответствующему шаблону.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; как я уже гоорил, эти OID'ы будут генерироваться рандомно, но в пределах ветки принадлежащей Microsoft. Если у вас есть своё пространство OID'ов, то при создании новой политики выдачи отредактируйте OID так, чтобы он находился в пространстве OID'ов вашей компании.&lt;/p&gt;  &lt;p&gt;Компания «Табуретки для всех» удовлетворена мерами безопасности, которые предприняты разработчиком программ макетирования табуреток для охраны сертификата подписи и готова доверять таким сертификатам. Но в силу ряда причин, компания не хочет доверять остальным сертификатам выданных в компании «Дизайн табуреток». Следовательно будет организовываться частичное доверие, которое именуется как Cross-certification или Qualified Subordination.&lt;/p&gt;  &lt;p&gt;Как быть в такой ситуации? Поскольку оба шаблона выдают сертификаты с одинаковым Application Policy, то Certificate Trust List (CTL) здесь не подходит. Для этого компания «Табуретки для всех» создаёт у себя файл policy.inf, который помимо всего прочего содержит вот такие строчки:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;[ApplicationPolicyStatementExtension]        &lt;br /&gt;Policies = CodeSigning         &lt;br /&gt;critical = false &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;[CodeSigning]        &lt;br /&gt;OID = 1.3.6.1.5.5.7.3.3 &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;[PolicyStatementExtension]        &lt;br /&gt;Policies = ExternalIssuance         &lt;br /&gt;Critical = false &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;[ExternalIssuance]        &lt;br /&gt;OID = 1.3.6.1.4.1.311.9999.9999&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;и с использованием этого файла policy.inf создали сертификат на основе шаблона Cross Certification Authority. Вот что будет в этом сертификате:&lt;/p&gt;  &lt;div align="center"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cross Certification certificate Issuance Policies" border="0" alt="Cross Certification certificate Issuance Policies" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OID_F64A/crosscacert_684368ce-5242-4779-81b2-81c09cead371.png" width="413" height="512" /&gt; &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cross Certification certificate Application Policies" border="0" alt="Cross Certification certificate Application Policies" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OID_F64A/crosscacert2_1ec959c5-aeda-4054-9133-093d1febe201.png" width="413" height="511" /&gt; &lt;/div&gt;  &lt;p&gt;Данный CrossCA сертификат выдан в CA компании «Табуретки для всех» на имя выдающего (Issuing CA) CA в компании «Дизайн табуреток». И данный сертификат публикуется в компании «Табуретки для всех» посредством групповых политик или через AD.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; вопрос создания Cross Certification Authority выходит за рамки данной статьи. Хоть тема создания Cross CA весьма интересна, но, к сожалению, на практике используется не так часто, как сами сертификаты. Поэтому рассказывать об этом нет смысла, наверное.&lt;/p&gt;  &lt;p&gt;Таким образом, компания «Табуретки для всех» будет доверять только тем сертификатам компании «Дизайн табуреток», в расширениях которых содержится как минимум:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Certificate Policies –&amp;gt; Policy Identifier = &lt;strong&gt;1.3.6.1.4.1.311.9999.9999&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Application Polocies –&amp;gt; Policy Identifier = &lt;strong&gt;Code Signing&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Если любое из этих условий не выполняется, то «Табуретки для всех» не будут доверять таким сертификатам.&lt;/p&gt;  &lt;p&gt;Как видите, OID'ы обретают особую важность когда ваши сертификаты начинают использоваться вне пределах вашей компании. Но здесь сразу возникает вопрос: а кто владеет OID = 1.3.6.1.4.1.311.9999.9999? Поскольку OID находится внутри ветки принадлежащей Microsoft, компания «Дизайн табуреток» по сути говоря ничего общего с этим OID'ом не имеет. Чтобы решить этот вопрос, как я уже говорил выше, каждая компания должна получить в IANA (или любой подобной организации) свой OID. В большинстве случаев это совершенно бесплатно (жадные дети могут радоваться &lt;img alt="Rock" src="/smilies/blush.gif"&gt;) и оформить его можно, например, вот по этой ссылке: &lt;a title="http://pen.iana.org/pen/PenApplication.page" href="http://pen.iana.org/pen/PenApplication.page"&gt;http://pen.iana.org/pen/PenApplication.page&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;После выполнения всех формальностей и подтверждения вы получите своё OID-пространство. Например, у меня номер &lt;strong&gt;34658&lt;/strong&gt; и все мои собственные OID'ы (как Application Policies, CPS, Issuance Policies, etc) будут храниться в этом дереве: 1.3.6.1.4.1.34658. Скажем, мой CPS будет иметь OID = 1.3.6.1.4.1.34658.1 или 1.3.6.1.4.1.34658.222. Вместо последней цифры может быть что угодно, что придёт мне на ум, поскольку не существует нормативных документов, которые бы регулировали использования пространства OID'ов. Но в качестве образца можно посмотреть, как это сделано в Microsoft: &lt;a title="http://support.microsoft.com/kb/287547" href="http://support.microsoft.com/kb/287547"&gt;http://support.microsoft.com/kb/287547&lt;/a&gt;. Чтобы выяснить владельца того или оного пространства, можно пройти по ссылке: &lt;a title="http://www.iana.org/assignments/enterprise-numbers" href="http://www.iana.org/assignments/enterprise-numbers"&gt;http://www.iana.org/assignments/enterprise-numbers&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Таким образом нестандартные OID'ы в инфраструктуре PKI следует использовать только в пространстве OID'ов, которые выданы для вашей организации (кроме шаблонов сертификатов, чьи OID'ы менять не следует). Этим самым устраняются проблемы вопросов владения и ответственности за использование и содержимое сертификатов. Но у нас на сегодня остаётся последний вопрос: а где мы должны публиковать используемые нами OID'ы и их описания? Как правило все OID'ы, которые могут использоваться внутри и вне пределах вашей организации описываются в документе под названием &lt;a href="http://tools.ietf.org/html/rfc3647" target="_blank"&gt;&lt;strong&gt;Certificate Practice Statement&lt;/strong&gt;&lt;/a&gt; или сокращённо CPS.&lt;/p&gt;  &lt;p&gt;Собственно всё, что я хотел сегодня поведать про OID'ы. Если кому-то будет интересно, то можно будет посмотреть эту тему чуть плотнее.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=58b58ace-a862-4a7b-a74f-b6d4993a28b5"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,58b58ace-a862-4a7b-a74f-b6d4993a28b5.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b3521905-4696-4e23-a2d8-1f6fafbfa030</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b3521905-4696-4e23-a2d8-1f6fafbfa030.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b3521905-4696-4e23-a2d8-1f6fafbfa030.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b3521905-4696-4e23-a2d8-1f6fafbfa030</wfw:commentRss>
      <title>Certificate chaining engine (CCE) и отзыв корневых сертификатов</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b3521905-4696-4e23-a2d8-1f6fafbfa030.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b3521905-4696-4e23-a2d8-1f6fafbfa030.aspx</link>
      <pubDate>Sun, 08 Nov 2009 17:20:10 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; данный материал публикуется исключительно в учебных целях и его &lt;strong&gt;НЕ&lt;/strong&gt; следует повторять! Любые действия описанные в данной статье вы можете делать &lt;strong&gt;ТОЛЬКО&lt;/strong&gt; на свой страх и риск.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Мы с вами уже достаточно много обсудили про certificate chaining engine и расширения CDP в сертификатах и связанные с ними вопросы:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx"&gt;&lt;strong&gt;Certificate Chaining Engine — как это работает&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,b14ea574-ca90-4f1b-9845-35b6ce273fb2.aspx"&gt;&lt;strong&gt;Certificate chaining engine в PowerShell&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,16ffa3d3-8449-4c16-9704-5d089b6a32e2.aspx"&gt;&lt;strong&gt;Certificate chaining engine в PowerShell (часть 2)&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx"&gt;&lt;strong&gt;CRL Distribution Points и Authority Information Access&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Но я решил немного расширить сознание по этому вопросу и рассмотреть ситуацию с отозванным корневым (который является и самоподписанным) сертификатом. Для экспериментов использовались CA под управлением Windows Server 2003 и Windows Server 2008 R2 (в обоих случаях поведение было идентичное). Штатно (из консоли certsrv.msc) у нас нет возможности отозвать корневой сертификат CA, но мы можем технически это сделать с использованием CryptoAPI COM интерфейсов. Сразу после отзыва корневого сертификата в свойствах CA мы увидим вот такую картинку:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Revoked Root CA certificate" border="0" alt="Revoked Root CA certificate" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CDP_F9DB/rca_507c4f07-037c-46f6-8abf-470d2e397887.png" width="407" height="535" /&gt; &lt;/p&gt;  &lt;p&gt;и вот такое сообщение в журнале событий:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;Log Name:      Application       &lt;br /&gt;Source:        Microsoft-Windows-CertificationAuthority        &lt;br /&gt;Date:          2009.11.08. 17:35:44        &lt;br /&gt;Event ID:      51        &lt;br /&gt;Task Category: None        &lt;br /&gt;Level:         Error        &lt;br /&gt;Keywords:      Classic        &lt;br /&gt;User:          SYSTEM        &lt;br /&gt;Computer:      RootCA        &lt;br /&gt;Description:        &lt;br /&gt;A certificate in the chain for CA certificate 0 for Adatum CA has been revoked.  The certificate is revoked. 0x80092010 (-2146885616).&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Всё, приехали, что дальше? А дальше мы рассмотрим актуальность наличия CDP в корневых сертификатах, при помощи которых мы можем посмотреть CRL рассматриваемого CA (это корневой CA, поэтому в его CDP могут быть ссылки только на его собственный CRL), как это делают некоторые публичные коммерческие CA (например, &lt;strong&gt;StartCom&lt;/strong&gt;). Когда корневой сертификат отозван, мы продолжаем его не наблюдать в консоли certsrv.msc, но в БД это хорошо видно:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;Request Status Code: 0x0 (WIN32: 0) -- The operation completed successfully.       &lt;br /&gt;&lt;strong&gt;Request Disposition: 0xf (15) -- CA Cert&lt;/strong&gt;        &lt;br /&gt;&lt;strong&gt;Request Disposition Message: "Revoked by ADATUM\Administrator"&lt;/strong&gt;        &lt;br /&gt;Request Submission Date: 2009.11.07. 22:41        &lt;br /&gt;Request Resolution Date: 2009.11.07. 22:41        &lt;br /&gt;Revocation Date: 2009.11.08. 17:35:43        &lt;br /&gt;Effective Revocation Date: 2009.11.08. 17:35:43        &lt;br /&gt;Revocation Reason: 0x0 -- Reason: Unspecified&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Но мы же можем попробовать опубликовать новый CRL? Ответ — нет, не можете. Поскольку CRL подписывается закрытым ключом CA, то перед подписью CRL производится проверка валидности этого ключа для подписи CRL. Т.к. на данном этапе CA уже знает, что сертификат отозван, то ключ блокируется для подписи новых CRL, т.к. они будут считаться поддельными. Это будет первый аргумент в пользу отсутствия CDP в корневых сертификатах. Если CRL подписан отозванным ключом, то этот CRL должен игнорироваться по очевидным причинам.&lt;/p&gt;  &lt;p&gt;Однако, тут есть одна интересная вещь — пока служба CertSvc не перезапущена, мы можем энролить новые сертификаты. Т.е. в этом промежутке клиенты могут нагенерить запросы и получить в ответ сертификаты. Это действительно проблема, потому что сертификаты так же подписываются закрытым ключом CA. И, по всей видимости, CA лишь с некоторой периодичностью проверяет валидность закрытого ключа для данной операции. Хотя, в случае с CRL эта проверка производится каждый раз перед подписью. После остановки службы CertSvc наш CA отключается навсегда:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;Log Name:      Application       &lt;br /&gt;Source:        Microsoft-Windows-CertificationAuthority        &lt;br /&gt;Date:          2009.11.08. 17:42:21        &lt;br /&gt;Event ID:      100        &lt;br /&gt;Task Category: None        &lt;br /&gt;Level:         Error        &lt;br /&gt;Keywords:      Classic        &lt;br /&gt;User:          SYSTEM        &lt;br /&gt;Computer:      RootCA        &lt;br /&gt;Description:        &lt;br /&gt;Active Directory Certificate Services did not start: Could not load or verify the current CA certificate.  Adatum CA The certificate is revoked. 0x80092010 (-2146885616).&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;А дальше становится ещё интересней. Методика работы CCE описана в &lt;a href="http://tools.ietf.org/html/rfc3280" target="_blank"&gt;&lt;strong&gt;RFC3280&lt;/strong&gt;&lt;/a&gt;. Для администраторов PKI описываемый там материал нужно знать обязательно. Параграф 6 описывает процедуру построения цепочки сертификатов:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;§ 6.1.       &lt;br /&gt;        &lt;br /&gt;When the trust anchor is provided in the form of a self-signed        &lt;br /&gt;certificate, this self-signed certificate is not included as part of        &lt;br /&gt;the prospective certification path&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Это означает, что самоподписанный сертификат (корневой таковым и является) исключается из проспективной цепочки сертификатов. А проверка CRL допускается &lt;strong&gt;только&lt;/strong&gt; для этой проспективной цепочки.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;§ 6.1.1.       &lt;br /&gt;        &lt;br /&gt;The trusted anchor information is trusted because it was delivered        &lt;br /&gt;to the path processing procedure by some trustworthy out-of-band        &lt;br /&gt;procedure.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;§ 9.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;The certification path validation algorithm depends on the certain       &lt;br /&gt;knowledge of the public keys (and other information) about one or        &lt;br /&gt;more trusted CAs. The decision to trust a CA is an important        &lt;br /&gt;decision as it ultimately determines the trust afforded a        &lt;br /&gt;certificate.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Иными словами RFC предусматривает безоговорочное доверие конкретному корневому сертификату, когда доверие осуществляется каким-то механизмом (в Windows это наличие сертификата в Trusted Root CAs). И в § 6.1.3 говорится, что из цепочки (проспективной) удаляются все самоподписанные сертификаты, следовательно произвести проверку CRL можно только для сертификатов, которые в цепочке находятся на уровень ниже, чем самоподписанный сертификат. Это означает только одну вещь: если CCE является RFC3280-compliant, то он должен игнорировать расширение CDP в самоподписанном сертификате. Учитывая, что Windows CA технически не позволяет поместить свой сертификат в свой CRL, то скорее всего реализация CCE в CryptoAPI будет дейтсвовать адекватно и во всех случаях игнорировать это расширение. Поэтому даже при гипотетической возможности помещения отозванного корневого сертификата в его собственный CRL мы проигнорируем такой CRL и не узнаем, что корневой сертификат ВНЕЗАПНО был отозван.&lt;/p&gt;  &lt;p&gt;Это была реклама VeriSign.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b3521905-4696-4e23-a2d8-1f6fafbfa030"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b3521905-4696-4e23-a2d8-1f6fafbfa030.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Chaining Engine</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=9beb4f0a-38a8-42b2-9a49-141c04fbdcd8</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=9beb4f0a-38a8-42b2-9a49-141c04fbdcd8</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>CRL Distribution Points и Authority Information Access</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx</link>
      <pubDate>Sun, 01 Nov 2009 15:53:06 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; данный материал публикуется как обязательный для знания IT-специалистами, которые занимаются или только собираются заниматься темой &lt;STRONG&gt;PKI&lt;/STRONG&gt; (&lt;EM&gt;Public Key Infrastructure&lt;/EM&gt;).&lt;/P&gt;
&lt;P&gt;Большинство системных администраторов считают, что планирование списков отзыва сертификатов (&lt;EM&gt;Certificate Revocation List&lt;/EM&gt; — &lt;STRONG&gt;CRL&lt;/STRONG&gt;) и файлов сертификатов самих серверов CA — это элементарная вещь. Но практика показывает, что очень многие из них сильно заблуждаются. Поэтому предлагаю немного повременить с CryptoAPI и поговорить о немного более насущных вещах — рекомендации по планированию публикации списков CRL и сертификатов CA (&lt;EM&gt;Certification Authority&lt;/EM&gt;), которые используются certificate chaining engine для построения и проверок цепочек сертификатов. О том, как работает этот движок можете почитать пост: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx"&gt;&lt;STRONG&gt;Certificate Chaining Engine — как это работает&lt;/STRONG&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;H1 align=center&gt;Куда и как публиковать файлы CRL и CRT?&lt;/H1&gt;
&lt;P&gt;Как известно, каждый выданный в CA сертификат (кроме самоподписанных сертификатов. Корневой сертификат так же является самоподписанным сертификатом) содержит 2 расширения:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;В расширении «&lt;EM&gt;CRL Distribution Points&lt;/EM&gt; (&lt;STRONG&gt;CDP&lt;/STRONG&gt;)» хранятся ссылки на CRL издавшего конкретный сертификат CA; 
&lt;LI&gt;В расширении «&lt;EM&gt;Authority Information Access&lt;/EM&gt; (&lt;STRONG&gt;AIA&lt;/STRONG&gt;)» хранятся ссылки на сертификат CA, издавшего конкретный сертификат. А для сертификатов, выданных CA под управлением Windows Server 2008 и выше — могут содержаться ссылки на OCSP Responder (см. &lt;A href="http://www.sysadmins.lv/PermaLink,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx"&gt;&lt;STRONG&gt;OCSP (часть 1)&lt;/STRONG&gt;&lt;/A&gt; и &lt;A href="http://www.sysadmins.lv/PermaLink,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx"&gt;&lt;STRONG&gt;OCSP (часть 2)&lt;/STRONG&gt;&lt;/A&gt;) &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Эти ссылки берутся не из воздуха, а из настроек CA. Вот как они выглядят для дефолтной инсталляции Certificate Services:&lt;/P&gt;
&lt;DIV align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Default CDP" border=0 alt="Default CDP" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CRLDistributionPointsAuthorityInformatio_12CDF/DefaultCDP_7a1bcc02-67d0-469b-966a-f3395a35f4ee.jpg" width=407 height=482&gt;&amp;nbsp;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Default AIA" border=0 alt="Default AIA" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CRLDistributionPointsAuthorityInformatio_12CDF/DefaultAIA_b7cbcc79-2945-4a14-9e7d-e84bfed51cba.jpg" width=407 height=482&gt; &lt;/DIV&gt;
&lt;P&gt;В принципе, эти настройки годятся для нормальной работы certificate chaining engine в небольших сетях с одним лесом и доменом без сайтов (или с сайтами, соединённых быстрыми каналами). Если сеть состоит из нескольких доменов (или лесов с настроенным Cross-forest enrollment) и сайтами, соединённых не очень быстрыми каналами, то эти настройки уже могут приводить к сбоям построения и проверок цепочек сертификатов. Я не буду рассказывать, что означают галочки, т.к. с ними вы можете ознакомиться в статьях &lt;A href="http://technet.microsoft.com/en-us/library/cc775373(WS.10).aspx" target=_blank&gt;&lt;STRONG&gt;CRL Publishing Properties&lt;/STRONG&gt;&lt;/A&gt; и &lt;A href="http://technet.microsoft.com/en-us/library/cc782266(WS.10).aspx" target=_blank&gt;&lt;STRONG&gt;AIA Publishing Properties&lt;/STRONG&gt;&lt;/A&gt;, а приступлю сразу к разбору путей.&lt;/P&gt;
&lt;P&gt;Первый путь указывает путь файловой системы, куда физически публикуются файлы CRL и CRT. Следующая ссылка (&lt;FONT color=#0000ff&gt;LDAP://{LDAP path}&lt;/FONT&gt;) указывает, точку публикации CRL и CRT в Active Directory. Так же эти пути будут прописаны во всех выдаваемых сертификатах. Третья ссылка (&lt;FONT color=#0000ff&gt;HTTP://{URL}&lt;/FONT&gt;) указывает URL, по которому клиенты могут скачать файл через HTTP и этот URL будет включён в расширение CDP/AIA всех выдаваемых сертификатов. Последняя ссылка ничего не делает и добавлена в целях дополнительной точки публикации файлов CRL/CRT в сетевой папке. Почему эти настройки не оптимальны для больших сетей?&lt;/P&gt;
&lt;P&gt;Вот как будут выглядеть расширения CDP и AIA в выдаваемых сертификатах при таких настройках:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;CDP&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[1]CRL Distribution Point &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Distribution Point Name: &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Full Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; URL=ldap:///CN=Contoso%20CA,CN=DC1,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=contoso,DC=com?certificateRevocationList?base?objectClass=cRLDistributionPoint &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; URL=http://dc1.contoso.com/CertEnroll/Contoso%20CA.crl&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;AIA&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[1]Authority Info Access &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Access Method=Certification Authority Issuer (1.3.6.1.5.5.7.48.2) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alternative Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; URL=ldap:///CN=Contoso%20CA,CN=AIA,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=contoso,DC=com?cACertificate?base?objectClass=certificationAuthority &lt;BR&gt;[2]Authority Info Access &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Access Method=Certification Authority Issuer (1.3.6.1.5.5.7.48.2) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alternative Name: &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; URL=http://dc1.contoso.com/CertEnroll/DC1.contoso.com_Contoso%20CA.crt&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Как вы видите, ссылки в расширениях расположены в том же порядке, что и в настройках CA.&lt;/P&gt;
&lt;P&gt;Это важно знать, поскольку certificate chaining engine (сокращённо назовём его &lt;STRONG&gt;CCE&lt;/STRONG&gt;) будет проверять ссылки в том порядке, в котором они приведены в расширениях сертификата. Т.е. сперва будет пробовать скачать файл из Active Directory в течении 10 секунд. Если за 10 секунд файл не скачается, CCE будет пытаться скачать указанный файл по следующей ссылке (HTTP). При этом времени на это будет отводиться в 2 раза меньше (т.е. 5 секунд), чем в предыдущей попытке. И так будет происходить с каждой последующей ссылкой, пока не будет добыт файл, закончатся ссылки или отвалится по таймауту. На обработку каждого расширения для CCE выделяется ровно 20 секунд.&lt;/P&gt;
&lt;P&gt;Уже на данном этапе видно, что любой недоменный клиент (будь то смартфон, изолированная рабочая станция в интернете, etc.) при попытке скачать файл может терять до 10 секунд на обработку первой ссылки, которая всегда завершится неудачей. Следовательно, первой ссылкой в CDP/AIA должна быть ссылка, которая использует универсальный для всех протокол (это должен быть HTTP), не смотря на то, что в домене, где расположен CA доступ через LDAP будет чуточку быстрее.&lt;/P&gt;
&lt;P&gt;Второй момент заключается в репликации объектов AD. После того как CRL/CRT были опубликованы в Active Directory, клиенты об этом узнают не сразу, т.к. здесь вступает фактор репликации AD. Поскольку все объекты PKI публикуются в AD в разделе &lt;EM&gt;forest naming context&lt;/EM&gt;, то эти данные реплицируются не только в прелелах текущего домена, но и всего леса. Поэтому задержки в появлении новых файлов у клиентов могут быть очень значительными и достигать нескольких часов. Задержки могут составлять время до двух полных циклов полной репликации в лесу. А если у вас используется cross-forest enrollment, то там ситуация будет ещё хуже, поскольку это ещё будет зависить от периодичности репликации объектов PKI между лесами (AD не поддерживает репликацию между лесами и репликация объектов PKI выполняется вручную) и уже может достигать нескольких суток. По этой причине рекомендуется либо вовсе отказаться от публикации CRL/CRT в AD и включения этих ссылок в сертификаты, либо располагать следом за более доступными протоколами.&lt;/P&gt;
&lt;P&gt;С HTTP тоже не всё так идеально, как это может показаться с первого взгляда. Совсем не обязательно, чтобы сервер CA выполнял и роль веб-сервера (хотя, только для внутреннего использования это допустимо с определёнными оговорками). Будет лучше даже если файлы CRL/CRT будут копироваться как на внутренний, так и на внешний веб-серверы. В идеале эти файлы должны копироваться как минимум на 1-2 внутренних и 1-2 внешних веб-сервера для обеспечения высокой доступности. В таких случаях уже используется 4-я ссылка в настройках CA, которая должна указываь на шару DFS, чтобы файлы автоматически распространялись по веб-серверам. И вот здесь мы снова сталкиваемся с латентностью репликации DFS между серверами. Если все схемы публикации CRL/CRT подвержены латентности репликации, то как с этим бороться, чтобы файлы были всегда в актуальном состоянии?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; хоть CCE поддерживает скачивание CRL и CRT с HTTPS ссылок, делать это категорически нельзя, иначе CCE свалится в бесконечный цикл проверки сертификатов.&lt;/P&gt;
&lt;H1 align=center&gt;Периодичность публикации и обновления файлов CRL и CRT&lt;/H1&gt;
&lt;P&gt;По умолчанию в Windows Server основные CRL (&lt;STRONG&gt;Base CRL&lt;/STRONG&gt;) публикуются раз в неделю и инкрементные CRL (&lt;STRONG&gt;Delta CRL&lt;/STRONG&gt;) публикуются раз в сутки. Файлы сертификатов CA обычно обновляются через промежутки равные времени жизни сертификата самого CA (или чаще, если сертификат CA обновляется внепланово). Если сертификаты CA нужно обновлять достаточно редко (раз в несколько лет) и к этому следует готовиться отдельно, то обновление CRL происходит автоматически без вмешательства администратора и здесь требуются особые корректировки о которых мы сейчас и поговорим.&lt;/P&gt;
&lt;P&gt;Если посмотреть на CRL, то мы увидим следующее:&lt;/P&gt;
&lt;DIV align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Certificate Revocation List Information" border=0 alt="Certificate Revocation List Information" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CRLDistributionPointsAuthorityInformatio_12CDF/crl1.png" width=423 height=521&gt;&amp;nbsp; &lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Certificate Revocation List Information" border=0 alt="Certificate Revocation List Information" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CRLDistributionPointsAuthorityInformatio_12CDF/crl2.png" width=423 height=521&gt;&lt;/DIV&gt;
&lt;P&gt;Сейчас нас будут интересовать только 3 поля:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Effective Date&lt;/STRONG&gt; — указывает дату и время с которого данный CRL считается действительным и оно по умолчанию на 10 минут меньше, чем фактическое время, чтобы покрыть издержки рассинхронизации времени между сервером и клиентом; 
&lt;LI&gt;&lt;STRONG&gt;Next Update&lt;/STRONG&gt; — указывает дату и время, когда заканчивается срок действия конкретного CRL и он считается недействительным; 
&lt;LI&gt;&lt;STRONG&gt;Next CRL Publish&lt;/STRONG&gt; — указывает дату и время публикации следующего списка CRL. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечение:&lt;/FONT&gt;&lt;/STRONG&gt; время в этих полях указывается в формате UTC без учёта временных зон.&lt;/P&gt;
&lt;P&gt;Обычно время Next Update и Next CRL Publish одинаково. Но у меня, как вы видите на картинках, Next Update равен&amp;nbsp;8 дням (дефолтный срок действия CRL), а вот Next CRL Publish равен&amp;nbsp;7 дням после начала действия CRL. Т.е. CRL обновляется каждые&amp;nbsp;7 дней, но срок действия равен&amp;nbsp;8 дням (период публикации CRL + время overlap). Это сделано как раз для покрытия расходов времени (издержки репликации) распространения списков отозванных сертификатов от сервера CA до точек, откуда клиенты будут скачивать CRL. Как это делается?&lt;/P&gt;
&lt;P&gt;Для этого в реестре на сервере CA по пути &lt;FONT color=#0000ff&gt;HKLM\System\CurrentControlSet\Services\CertSvc\Configuration\CA Name&lt;/FONT&gt; существует 4 ключа:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;CRLOverlapUnits&lt;/STRONG&gt; — указывает время до истечения срока действия текущего основного CRL, за которое будет публиковаться новый основной CRL. 
&lt;LI&gt;&lt;STRONG&gt;CRLOverlapPeriod&lt;/STRONG&gt; — указывает единицу измерения этого времени для основного CRL 
&lt;LI&gt;&lt;STRONG&gt;CRLDeltaOverlapUnits&lt;/STRONG&gt; — указывает время до истечения срока действия текущего инкрементального (если используется) CRL, за которое будет публиковаться новый инкрементальный CRL 
&lt;LI&gt;&lt;STRONG&gt;CRLDeltaPeriodPeriod&lt;/STRONG&gt; — указывает единицу измерения этого времени для инкрементального CRL. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Если вы используете LDAP ссылки в расширениях CDP/AIA сертификатов и/или у вас есть латентность репликации файлов между веб-серверами, то вы должны отрегулировать это время, которое должно быть не менее, чем максимальное время репликации каталога AD во всём лесу или DFS как для основных, так и для инкрементальных CRL (если они у вас используются). Данную операцию можно автоматизировать утилитой certutil:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;certutil –setreg ca\CRLOverlapUnits 1 &lt;BR&gt;certutil –setreg ca\CRLOverlapPeriod "days" &lt;BR&gt;certutil –setreg ca\CRLDeltaOverlapUnits 8 &lt;BR&gt;certutil –setreg ca\CRLDeltaOverlapPeriod "hours" &lt;BR&gt;net stop certsvc &amp;amp; net start certsvc&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; CRLOverlap не может быть больше периодичности публикации BaseCRL, а CRLDeltaOverlap не может быть больше 12 часов.&lt;/P&gt;
&lt;P&gt;в результате новые основные CRL будут публиковаться за сутки до истечения времени действия предыдущего основного CRL и новые инкрементальные CRL будут публиковаться за 8 часов до истечения предыдущего. Этим самым вы сможете гарантировать, что клиенты всегда получат актуальные CRL'ы. Более детальные сведения о порядке подсчёта временных интервалов публикации CRL и срока их&amp;nbsp;действия можно ознакомиться здесь: &lt;A href="http://blogs.technet.com/pki/archive/2008/06/05/how-effectivedate-thisupdate-nextupdate-and-nextcrlpublish-are-calculated.aspx"&gt;&lt;STRONG&gt;How EffectiveDate (thisupdate), NextUpdate and NextCRLPublish are calculated&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Общая периодичность публикации самих файлов CRL зависит от количества отзываемых сертификатов за некоторый промежуток времени (обычно измеряется в неделях). Если сертификаты отзываются десятками в неделю, то есть смысл сократить периодичность публикации основных CRL до 2 раз в неделю и Delta CRL до 2-х раз в сутки. Если сертификаты отзываются редко (реже, чем раз в неделю), то периодичность публикации Base CRL можно увеличить до 2-4 недель, а от Delta CRL можно даже отказаться или публиковать раз в неделю. Но это касается только Issuing или Online CA. Для Offline CA рекомендации будут чуть другие. Поскольку Offline CA выдают сертификаты только другим CA и большую часть времени выключены, для них следует отключить публикацию Delta CRL (установив параметр &lt;STRONG&gt;CRL&lt;STRONG&gt;Delta&lt;/STRONG&gt;PeriodUnits&lt;/STRONG&gt; в ноль), а основные CRL публиковать раз в 3-12 месяцев. Хоть это и Offline CA, но на него так же распространяются требования по корректировке времени публикации и срока действия CRL.&lt;/P&gt;
&lt;H1 align=center&gt;CDP и AIA в корневых сертификатах&lt;/H1&gt;
&lt;P&gt;Как уже отмечалось, расширения CDP и AIA содержат ссылки на CRL/CRT издавшего конкретный сертификат CA, то с корневыми сертификатами будет немного иначе. Если быть точнее, то в корневых сертификатах этих расширений быть не должно совсем. Почему? Windows Server 2003 по умолчанию добавлял эти расширения в самоподписанный сертификат, когда CA конфигурировался как корневой CA. В нём AIA содержал ссылки по которым можно было скачать этот же сертификат. Очень прикольно &lt;img alt=":)" src="/smilies/happy.gif"&gt;.&lt;/P&gt;
&lt;P&gt;А CDP — не менее прикольно. Корневые сертификаты всегдя являются конечной точкой самой цепочки и доверия этой цепочки сертификатов. К корневым сертификатам доверие всегда устанавливается явное путём помещения сертификата в контейнер &lt;STRONG&gt;Trusted Root CAs&lt;/STRONG&gt; (а ко всем остальным сертификатам устанавливается неявное доверие через цепочку сертификатов). Следовательно отменить доверие корневому сертификату CA можно только одним способом — удалить сам сертификат из контейнера Trusted Root CAs и никак иначе. Вторая проблема заключается в том, что все CRL подписываются закрытым ключом самого CA. А теперь предположим, что CA отозвал свой сертификат и поместил его в CRL. Клиент скачивает CRL и видит, что сертификат CA отозван. Можно предположить, что это всё и никакой проблемы здесь нет. Однако, получается, что CRL подписан отозванным сертификатом и мы не можем доверять этому CRL как и считать сертификат CA отозванным. Именно поэтому начиная с Windows Server 2008 при установке корневого CA, эти расширения по умолчанию уже не включены в корневой сертификат. А для Windows Server 2003 приходилось лепить костыли в файле &lt;STRONG&gt;CAPolicy.inf&lt;/STRONG&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[AuthorityInformationAccess] &lt;BR&gt;Empty = true &lt;BR&gt;[CRLDistributionPoint] &lt;BR&gt;Empty = true&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Как показывает практика, очень много администраторов игнорируют такие вещи и делают всё простым Next-Next, за что они должны гореть в аду. Но не только простые Windows-админстраторы, а луноходы (фаны линукса) тоже должны там гореть. Как живой пример бардака в сертификатах приведу компанию &lt;A href="http://www.startcom.org" target=_blank&gt;&lt;STRONG&gt;StartCom&lt;/STRONG&gt;&lt;/A&gt;, которая в сентябре 2009 получила право выдавать &lt;STRONG&gt;EV&lt;/STRONG&gt; (&lt;EM&gt;Extended Validation&lt;/EM&gt;) сертификаты и вот их корневой сертификат: &lt;A title="http://www.startssl.com/sfsca.crt&amp;#13;&amp;#10;" href="http://www.startssl.com/sfsca.crt"&gt;http://www.startssl.com/sfsca.crt&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Мало того, что у них в корневом сертификате есть расширение CDP, но и с ссылками на CRL у них в цепочке тоже бардак мутный. Есть подозрение, что это сделано для поддержки какой-то ветки линукса (для совместимости или просто как костыль), но вот такой он опенсорс. Так что не каждый публичный и коммерческий CA следует всем бест-практисам. А вам советую им следовать, тогда меньше вероятность, что вы потом будете гореть в аду.&lt;/P&gt;
&lt;H1 align=center&gt;Изменения в существующих инфраструктурах&lt;/H1&gt;
&lt;P&gt;Изменение путей в уже существующих инфраструктурах вопрос достаточно серьёзный, хоть и прост в реализации. Если вы решились на такой шаг, то следует руководствоваться следующими правилами:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;пути публикации физических файлов можно располагать в произвольном порядке; 
&lt;LI&gt;новые ссылки к файлам, по которым клиенты будут их скачивать должны располагаться первыми, т.е. с более высоким приоритетом (кроме случаев, когда вы добавляете ссылки только для обеспечения более высокой доступности файлов. Тогда новые ссылки можно просто добавить в хвост уже существующим); 
&lt;LI&gt;если вы собираетесь уйти от существующих ссылок на CRL/CRT, то в для них следует отключить опцию публикации ссылок в сертификатах. Однако, до окончания действия сертификата CA вы будете обязаны их поддерживать в рабочем состоянии, т.к. они содержатся в уже выданных сертификатах. А новые ссылки появятся только в сертификатах, которые были выпущены после изменения CDP/AIA. 
&lt;LI&gt;если у вас корневой сертификат уже содержит расширения CDP/AIA, то вы не можете их оттуда убрать до момента обновления корневого сертификата. При обновлении корневого сертификата на Windows Server 2003, вам потребуется создать CAPolicy.inf файл, прописать нужные настройки (например, как уже указано выше с пустыми CDP и AIA). Более подробно про файл &lt;STRONG&gt;CAPolicy.inf&lt;/STRONG&gt; можно прочитать по ссылке: &lt;A title=http://technet.microsoft.com/en-us/library/cc728279(WS.10).aspx href="http://technet.microsoft.com/en-us/library/cc728279(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/cc728279(WS.10).aspx&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;H1 align=center&gt;Новые технологии&lt;/H1&gt;
&lt;P&gt;С выходом Windows Server 2008 Enterprise Edition вы можете внедрить в своей сети Online Responder для снижения нагрузки на серверы публикации CRL (хоть пути к OCSP публикуются в расширении AIA, к файлам CRT это никакого отношения не имеет). Но даже внедрение OCSP не решает этих проблем, поскольку реализация OCSP в Windows Server основана на регулярном чтении CRL и, следовательно, зависит от латентности репликации AD и/или DFS, а так же этим сервисом могут пользоваться только клиенты начиная с Windows Vista. Хочу отметить один приятный момент. Если изменения ссылок на CRL/CRT скажутся только на новых сертификатах (уже выпущенные сертификаты ничего не будут знать о новых путях в CDP/AIA), то интегрировать OCSP внутри домена/леса с уже существующей инфраструктурой PKI достаточно легко. Все уже выданные сертификаты могут быть проверены на отзыв с использованием OCSP: &lt;A href="http://technet.microsoft.com/en-us/library/ee619786(WS.10).aspx" target=_blank&gt;&lt;STRONG&gt;Managing OCSP Settings with Group Policy&lt;/STRONG&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;H1 align=center&gt;Заключение&lt;/H1&gt;
&lt;P&gt;В данном посте я обозначил ключевые моменты в структуированном (как мне кажется) виде, которые следует знать при планировании публикации файлов CRL/CRT и ссылок на них. Как вы видите, внедрение новых технологий пока что не освобождает от знания и соблюдения рекомендаций публикации CRL/CRT в вашей инфраструктуре PKI. Я считаю этот материал достаточным для начального и среднего уровня знаний по теме revocation и chain building и для более детального изучения всего этого процесса уже следует обратиться сюда: &lt;A href="http://technet.microsoft.com/en-us/library/ee619730(WS.10).aspx" target=_blank&gt;&lt;STRONG&gt;Certificate Revocation Checking in Windows Vista and Windows Server 2008&lt;/STRONG&gt;&lt;/A&gt;.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=9beb4f0a-38a8-42b2-9a49-141c04fbdcd8"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,9beb4f0a-38a8-42b2-9a49-141c04fbdcd8.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Chaining Engine</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=3b77386a-cfa0-40c9-9f05-4b5bfba6e95b</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,3b77386a-cfa0-40c9-9f05-4b5bfba6e95b.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,3b77386a-cfa0-40c9-9f05-4b5bfba6e95b.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=3b77386a-cfa0-40c9-9f05-4b5bfba6e95b</wfw:commentRss>
      <title>Software Restriction Policies — подведение итогов</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,3b77386a-cfa0-40c9-9f05-4b5bfba6e95b.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,3b77386a-cfa0-40c9-9f05-4b5bfba6e95b.aspx</link>
      <pubDate>Mon, 28 Sep 2009 19:45:20 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Вот и пришло время сделать сводный пост по своим исследованиям Software Restriction Policies. Здесь я опубликую ссылки на предыдущие материалы, посвящённые этой действительно интересной технологии. К сожалению это скорее всего будет означать завершение срывов покровов в этом направлении. Безусловно, технологии не стоят на месте, а постоянно развиваются, поэтому очень долго топтаться на одном месте не стоит. Но это совсем не означает, что SRP стал реликвией, музейным экспонатом и просто утилем. SRP до сих пор имеет и какое-то время будет иметь важное значение в обеспечении безопасности ОС Windows, поскольку теперь политики SRP поставляются во все домашние редакции Windows 7. А так же будет неотъемлемой частью обеспечения безопасности уже активно используемых систем начиная с Windows XP.&lt;/P&gt;
&lt;P&gt;И, собственно, сам список.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.samag.ru/cgi-bin/go.pl?q=articles;n=09.2008;a=02"&gt;На страже безопасности – Software Restriction Policies&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Опубликованная в журнале «Системный администратор» статья даст представление о том, что такое SRP, поведает о ключевых особенностях этих политик и может выступать в качестве теоретической базы для работы с SRP.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,47e28599-5421-4c1c-ba34-67208b269621.aspx"&gt;Секреты Software Restriction Policies&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Первая часть исправлений к журнальной статье, в которой рассказывается про особенности использования прямых «/» и обратных «\» слешей в правилах пути, а так же про обход политик через системные папки, которые разрешены пользователям для записи.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,f6243235-c882-4b09-9320-55606dc241c8.aspx"&gt;Секреты Software Restriction Policies (часть 2)&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В этой части рассказаны методы обхода SRP на примере запуска CHM файлов и потенциальной возможности запуска некоторого кода с использованием файлов с расширением SCF. Плюс даны некоторые рекомендации по организации правил для типовой рабочей станции и косметические настройки обработки групповых политик в отношении SRP.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,9bee60f3-72dd-4a4f-88b4-649c41949dc6.aspx"&gt;Секреты Software Restriction Policies (часть 3)&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Очередной обзор нескольких способов обхода политик SRP путём подмены системных переменных окружения, использованием в обработке расширений LNK и подстановкой нелегитимных доверенных издателей (цифровых подписей). Так же приведён потенциальный полувандалистский метод атаки на SRP путём генерации зашедуленного задания в ожидании, когда политика будет отключена в профилактических целях.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,8802cfef-4499-481e-9de7-6daa92f873d8.aspx"&gt;Секреты Software Restriction Policies (часть 4)&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В этом посте детально рассказано о непростом порядке сортировки и применения множества правил SRP. Используя этот материал вы научитесь разрешать конфликты в правилах и упростит планирование правил SRP.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,907c4a40-3dc0-4c2c-8755-dca6dfa47bc7.aspx"&gt;Секреты Software Restriction Policies (часть 5)&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;И ещё один метод обхода политик SRP через шорткаты и обнаружение второй достаточно серьёзной уязвимости SRP, которую закрыть достаточно сложно.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,a030dc2e-0872-419d-826f-6aa56e2ce5f4.aspx"&gt;Секреты Software Restriction Policies (часть 5.a)&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;содержит официальное заявления сотрудника техподдежки Microsoft — Rahul Denkanikota. В результате двухмесячного общения с техподдержкой мне лично была предложена замена для mshta.exe, которая уже лишена недостатка оригинального файла. Однако, данное решение не планируется выпускать в массы по причине очень большой специфики. В остальных же случаях, если это возможно, следует полностью отказаться от mshta.exe и заблокировать его на уровне правил SRP.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,19bf758d-2a16-427d-92c7-44bd6a42ff05.aspx"&gt;Защищаем Software Restriction Policies&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В этом посте опубликовано решение, которое позволяет защитить SRP от подстановки ложных сертификатов цифровых подписей. В целом, с некоторыми оговорками, после данного поста репутация SRP вновь восстановлена до уровня «надёжно».&lt;/P&gt;
&lt;P&gt;Вот и всё… &lt;img alt="amen" src="/smilies/pop.gif"&gt;&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=3b77386a-cfa0-40c9-9f05-4b5bfba6e95b"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,3b77386a-cfa0-40c9-9f05-4b5bfba6e95b.aspx</comments>
      <category>Security</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=63f4fa92-f82b-4b01-a710-6324bae859bb</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=63f4fa92-f82b-4b01-a710-6324bae859bb</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <title>Certificate Chaining Engine — как это работает</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx</link>
      <pubDate>Wed, 16 Sep 2009 20:39:21 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Примечание:&lt;/STRONG&gt;&lt;/FONT&gt; данный материал публикуется как обязательный для знания IT-специалистами, которые занимаются или только собираются заниматься темой &lt;STRONG&gt;PKI&lt;/STRONG&gt; (&lt;EM&gt;Public Key Infrastructure&lt;/EM&gt;).&lt;/P&gt;
&lt;H4 align=center&gt;Введение&lt;/H4&gt;
&lt;P&gt;На самом деле эта тема тесно переплетается с фундаментальными основами PKI, как доверие сертификатов, защита от подделки цифровых подписей сертификатов, отзыв сертификатов и т.д. Иными словами, сама модель PKI лежит на &lt;STRONG&gt;Certificate Chaining Engine&lt;/STRONG&gt; (&lt;EM&gt;механизм построения цепочек сертификатов&lt;/EM&gt;). Миллионы людей в мире видят результат работы этого механизма ежедневно, но не знают, как он работает. Им это, в принципе, и не надо, а вот IT-специалистам по PKI это знать просто необходимо.&lt;/P&gt;
&lt;P&gt;Одной из основ PKI является модель доверия центрам сертификации (&lt;STRONG&gt;Certification Authority&lt;/STRONG&gt; или просто &lt;STRONG&gt;CA&lt;/STRONG&gt;). Прежде чем мы начнём доверять сертификату мы должны явно доверять корневому сертификату CA и так же явно или косвенно (по правилу одностороннего транзитивного доверия) доверять всем промежуточным CA в цепочке. Корневые сертификаты устанавливаются в систему вручную путём добавляения сертификата CA в секцию &lt;STRONG&gt;Trusted Root CAs&lt;/STRONG&gt;. Если корневой сертификат CA есть в этом списке, то мы доверяем всем сертификатам, которые выдал этот CA и любые подчинённые CA (&lt;STRONG&gt;Intermediate CA&lt;/STRONG&gt;).&lt;/P&gt;
&lt;P&gt;В качестве наиболее доступного и понятного примера можно рассмотреть SSL веб-сайт. Если мы зайдём на &lt;A href="https://www.dreamspark.com"&gt;https://www.dreamspark.com&lt;/A&gt;, то мы увидим что с SSL сертификатом этого сайта всё в порядке. Если же мы зайдём на &lt;A href="https://cert.startcom.org"&gt;https://cert.startcom.org&lt;/A&gt;, то мы наоборот увидим грозное предупреждение, что с SSL сертификатом этого сайта что-то не так. Это как раз и есть результат работы &lt;STRONG&gt;Chaining Engine&lt;/STRONG&gt;. А вот что он сделал на самом деле — вот об этом мы сейчас и поговорим.&lt;/P&gt;
&lt;H4 align=center&gt;Постройка цепочки сертификатов&lt;/H4&gt;
&lt;P&gt;Давайте сначала посмотрим на путь сертификатов (цепочки сертификатов) обоих веб-сайтов:&lt;/P&gt;
&lt;DIV align=center&gt; &lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Valid certification path" border=0 alt="Valid certification path" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateChainingEngine_11803/validroot.png" width=413 height=515&gt;   &lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Invalid certification path with untrusted root" border=0 alt="Invalid certification path with untrusted root" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateChainingEngine_11803/invalidroot_1.png" width=413 height=515&gt; &lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;В первом случае цепочка сертификатов заканчивается на сертификате VeriSign, которому мы доверяем явно. Вы можете убедиться в этом нажав кнопку View Certificate, чтобы посмотреть его внутренности и найти этот же сертификат в оснастке &lt;FONT color=#0000ff&gt;certmgr.msc –&gt; Trusted Root CAs&lt;/FONT&gt;. Однако, вы видите, что не корневой CA выдал сертификат сайту, а подчинённый (&lt;STRONG&gt;Intermediate CA&lt;/STRONG&gt;). Это доказывает то, что если мы доверяем корню, то и явно или косвенно доверяем всем сертификатам этого CA или любым его прямым или косвенным промежуточным CA. Если говорить простым языком, то &lt;EM&gt;в сертификатах используется одностороннее транзитивное доверие сертификатам CA&lt;/EM&gt;. Чуть позже будет рассказано как строится эта цепочка. Во втором случае мы видим, что корневой сертификат CA не находится у нас в &lt;STRONG&gt;Trusted Root CAs&lt;/STRONG&gt; и, следовательно, мы не доверяем ни одному сертификату, который издал этот CA или любой другой его подчинённый CA. И, так же как и в первом случае, сертификат самому веб-сайту выдал подчинённый CA. На самом деле этот момент является одной из наиболее частых ошибок системных администраторов, которые организовывают доступ к ресурсам с использованием цифровых сертификатов.&lt;/P&gt;
&lt;P&gt;Но нас теперь интересует другой вопрос — а откуда же взялись все эти сертификаты в цепочке? Chaining engine как правило использует только 3 метода построения цепочки:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;по полю &lt;STRONG&gt;AIA&lt;/STRONG&gt; (&lt;EM&gt;Authority Information Access&lt;/EM&gt;) каждого сертификата 
&lt;LI&gt;с использованием файла цепочки сертификатов в формате &lt;STRONG&gt;pkcs7&lt;/STRONG&gt; 
&lt;LI&gt;поиск подходящих сертификатов в локальном хранилище (с использованием exact, key, name matches, о которых будет рассказно ниже) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; в сертификате любое поле содержащее слово Authority будет означать какие-то сведения о сертификате вышестоящего CA. Например, &lt;STRONG&gt;Authority Key Identifier&lt;/STRONG&gt; — комбинация серийного номера, поля &lt;STRONG&gt;Subject&lt;/STRONG&gt; или хеша открытого ключа вышестоящего CA. А любое поле содержащее слово Subject — означает то же самое, но применительно к конкретно этому сертификату. &lt;/P&gt;
&lt;P&gt;Давайте посмотрим поле AIA первого сертификата:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[1]Authority Info Access &lt;BR&gt;     Access Method=Certification Authority Issuer (1.3.6.1.5.5.7.48.2) &lt;BR&gt;     Alternative Name: &lt;BR&gt;          URL=&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;http://www.microsoft.com/pki/mscorp/Microsoft%20Secure%20Server%20Authority(5).crt&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;В этом поле содержится ссылка на сертификат того CA, который непосредственно издал и подписал этот сертификат. Если нажать по этой ссылке, то вы скачаете сертификат центра сертификации Microsoft Secure Server Authority. В этом сертификате тоже будет поле &lt;STRONG&gt;AIA&lt;/STRONG&gt;, по ссылке из которого скачается сертификат вышестоящего CA — Microsoft Internet Authority. И так проверка проводится далее до тех пор, пока цепочка не оборвётся или не закончится каким-либо корневым CA (корневой CA характеризуется самоподписанным сертификатом, т.е. сертификат выдан самому себе). Если вы посмотрите сертификат Microsoft Internet Authority, то вы в нём не обнаружите поля AIA. И вот здесь мы сталкиваемся со вторым методом добычи сертификатов в цепочке – файл сертификатов формата &lt;STRONG&gt;pkcs7&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Бывают случаи, когда цепочка сертификатов не может быть построена и она обрывается на пути. Типичный пример такого обрыва (когда цепочка не может быть построена до корня с использованием любого вышеуказанного метода) можно посмотреть на сайте &lt;STRONG&gt;БиЛайна&lt;/STRONG&gt;: &lt;A href="https://trust.beeline.ru"&gt;https://trust.beeline.ru&lt;/A&gt;&lt;/P&gt;
&lt;P&gt; &lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Invalid certificate chain. Root certificate s unreachable" border=0 alt="Invalid certificate chain. Root certificate s unreachable" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateChainingEngine_11803/unreachableroot_1.png" width=413 height=515&gt; &lt;/P&gt;
&lt;P&gt;если посмотреть поле AIA этого сертификата, то мы увидим там 2 пути до CA, который издал этот сертификат. Но оба эти пути нерабочие совсем (кстати говоря, пути в CDP там тоже нерабочие. Причём, во всех сертификатах! Вот такой он БиЛайн &lt;img alt=":)" src="/smilies/happy.gif"&gt; ). Но цепочка сертификатов в этом случае всё равно построилась за счёт сертификатов в pkcs7 формате. Хотя корневой сертификат в этом pkcs7 просто отсутствует, поэтому мы даже не можем собрать корневой сертификат. Неработающие CDP/AIA — ещё одна из наиболее частых ошибок реализации инфраструктуры PKI, в результате которой по сути PKI является неработоспособной.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Оффтоп:&lt;/FONT&gt;&lt;/STRONG&gt; если на этой странице нажать Продолжить, то на новой странице будет ссылка на корневой сертификат, а так же на CRL. CRL БиЛайна доставил очень сильно. Вы посмотрите срок годности этого CRL &lt;img alt=":)" src="/smilies/happy.gif"&gt;&lt;/P&gt;
&lt;H4 align=center&gt;Проверка соответствия сертификатов внутри построенной цепочки&lt;/H4&gt;
&lt;P&gt;Однако, это только половина дела. Мы просто построили цепочку сертификатов, но не более того. Поскольку сертификаты могут быть скачаны в pkcs7 формате, а по ссылкам AIA просто подменить сертификаты, chaining engine делает полнуюю проверку доверия каждого сертификата в цепочке, чтобы исключить возможность подмены сертификатов, а так же достраивает цепочку (если этого не удалось сделать с помощью AIA и pkcs7 используя локальное хранилище сертификатов). Соответствие сертификатов внутри цепочки может происходить по нескольким правилам (в порядке приоритета):&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Exact Match &lt;/STRONG&gt;
&lt;LI&gt;&lt;STRONG&gt;Key Match &lt;/STRONG&gt;
&lt;LI&gt;&lt;STRONG&gt;Name MAtch&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Для этого chaining engine использует следующие поля сертификатов:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Authority Key Identfier&lt;/STRONG&gt; (&lt;EM&gt;AKI&lt;/EM&gt;) — может содержать комбинацию поля &lt;STRONG&gt;Subject&lt;/STRONG&gt; и &lt;STRONG&gt;Serial Number&lt;/STRONG&gt; сертификата вышестоящего CA или хеш открытого ключа вышестоящего CA (но бывает, что это поле совсем отсутствует). 
&lt;LI&gt;&lt;STRONG&gt;Issuer&lt;/STRONG&gt; – данное поле используется только если AKI отсутствует в сертификате и это поле должно быть эквивалентно полю &lt;STRONG&gt;Subject&lt;/STRONG&gt; вышестоящего CA. По этому полю определяется имя CA, котороый издал этот сертификат. 
&lt;LI&gt;&lt;STRONG&gt;Subject&lt;/STRONG&gt; в сертификате вышестоящего CA. Данное поле должно быть эквивалентно полю &lt;STRONG&gt;Issuer&lt;/STRONG&gt; в издаваемых сертификатах. 
&lt;LI&gt;&lt;STRONG&gt;Serial Number&lt;/STRONG&gt; сертификата вышестоящего CA. 
&lt;LI&gt;&lt;STRONG&gt;Subject Key Identifier&lt;/STRONG&gt; (&lt;EM&gt;SKI&lt;/EM&gt;) — может содержать комбинацию поля &lt;STRONG&gt;Subject&lt;/STRONG&gt; и &lt;STRONG&gt;Serial Number&lt;/STRONG&gt; текущего сертификата или хеш открытого ключа текущего сертификата. &lt;/LI&gt;&lt;/UL&gt;
&lt;H4 align=center&gt;Exact match&lt;/H4&gt;
&lt;P&gt;Данный метод определения правильности построения цепочки является наиболее точным и такая цепочка почти никогда не будет заканчиваться более чем одним корневым сертификатом, поскольку требует совпадения 2-х полей вышестоящего сертификата – Subject и серийного номера с полем AKI проверяемого сертификата. Давайте посмотрим пример такой проверки в сертификате сайта &lt;A href="https://cert.startcom.org"&gt;https://cert.startcom.org&lt;/A&gt;. Поле AKI содержит следующую информацию:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;KeyID=a1 e1 9e 45 25 79 4d 06 d9 02 17 92 82 d5 30 89 72 25 14 a0 &lt;BR&gt;Certificate Issuer: &lt;BR&gt;     Directory Address: &lt;BR&gt;          CN=StartCom Certification Authority &lt;BR&gt;          OU=Secure Digital Certificate Signing &lt;BR&gt;          O=StartCom Ltd. &lt;BR&gt;          C=IL &lt;BR&gt;Certificate SerialNumber=17&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Поле &lt;STRONG&gt;KeyID&lt;/STRONG&gt; не используется. Здесь мы видим сведения о поле Subject и серийный номер вышестоящего CA. Если посмотреть сертификат этого CA, то его серийный номер и поле Subject будут идентичными тем, которые записаны в поле AKI издаваемых ими сертификатов. Используя эти данные chaining engine может найти нужный сертификат в локальном хранилище (если такой сертификат там есть), для восполнения недостающих звеньев цепочки. Если же будет обнаружено хоть одно несоответствие между этими полями, то цепочка мгновенно обрывается и любому сертификату в этой цепочке (начиная от сертификата с несоответствующими полями и вниз до конечного сертификата выданного потребителю) будет отказано в доверии.&lt;/P&gt;
&lt;H4 align=center&gt;Key Match&lt;/H4&gt;
&lt;P&gt;Это наиболее распространённый тип проверки цепочки, т.к. зачастую поле AKI у сертификатов содержит только KeyID, который является лишь хешом открытого ключа вышестоящего CA. Например сертификат с &lt;A href="https://www.dreamspark.com"&gt;https://www.dreamspark.com&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;KeyID=14 55 c4 39 e0 3d 2e d1 55 2e 48 96 b0 d8 7e 14 22 06 93 bc&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Этот хеш должен быть идентичным хешу, который записан в поле Subject Key Identifier вышестоящего CA. В этом вы можете убедиться просмотрев сертификат CA, который выдал сертификат для dreamspark.com. В случае несоответствия этого поля, любому сертификату вниз по цепочке будет отказано. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Заметка:&lt;/FONT&gt;&lt;/STRONG&gt; при этом, возможна достаточно интересная ситуация, когда цепочка может заканчиваться несколькими корнями. Это может происходить если корневой сертификат CA был обновлён с использованием текущей пары открытого и закрытого ключа. Поскольку KeyID — всего лишь хеш открытого ключа, то при смене корневого сертификата CA, хеш не изменится и, следовательно, chaining engine может рандомно строить цепочку до старого или до нового корневого сертификата CA.&lt;/P&gt;
&lt;H4 align=center&gt;Name match&lt;/H4&gt;
&lt;P&gt;Но поле AKI не обязательно должно присутствовать в сертификате. Его может не быть совсем и тогда остаётся только один способ проверки целостности цепочки — сравнение поля &lt;STRONG&gt;Issuer&lt;/STRONG&gt; текущего сертификата и поля &lt;STRONG&gt;Subject&lt;/STRONG&gt; вышестоящего сертификата. Это самый крайний и наименее надёжный (хотя это достаточно относительно) метод проверки цепочки. Так же, как и предыдущий пример, данный метод может заканчиваться несколькими корневыми сертификатами, если сертификат CA был обновлён с использованием текущей пары открытого и закрытого ключей. Но этого не произойдёт, если при обновлении сертификата CA будут использоваться новая пара ключей. Хоть хеши и серийные номера издающих CA не проверяются, то подделка сертификатов в вашем случае закончится провалом. А об этом читайте заключительный раздел.&lt;/P&gt;
&lt;H4 align=center&gt;Не забываем про подписи&lt;/H4&gt;
&lt;P&gt;На самом деле может показаться, что обмануть chaining engine достаточно легко — надо лишь подсунуть нужные поддельные сертификаты. Но в действительности это не так. Помимо всего прочего следует помнить, что каждый сертификат подписан цифровой подписью издающего CA. Если вы ещё не знаете, что такое цифровая подпись, то пора бы и узнать. Когда CA составляет сертификат, то он высчитывает конечный хеш (с использованием алгоритма указанного в поле Signature algorithm) этого сертификата и шифрует его своим закрытым ключом и пристыковывает подпись к сертификату. При проверке сертификата chaining engine удаляет цифровую подпись из сертификата и подсчитывает сам хеш файла сертификата. Далее берёт открытый ключ у издающего CA и сравнивает полученный хеш с тем, что содержится в подписи. Следовательно, если вам удастся обмануть все 3 метода проверки цепочки путём подмены сертификатов, то вы сломаетесь на проверке цифровой подписи, т.к. здесь уже задействуется закрытый ключ легального CA. Вот как это может выглядеть:&lt;/P&gt;
&lt;DIV align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Altered certificate certification path" border=0 alt="Altered certificate certification path" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateChainingEngine_11803/altcert1.png" width=423 height=525&gt; &lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Altered certificate General tab" border=0 alt="Altered certificate General tab" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/CertificateChainingEngine_11803/altcert2.png" width=423 height=525&gt; &lt;/DIV&gt;
&lt;P&gt;На картинке слева вы видите, что chaining engine построил цепочку до доверенного корня, поскольку мой сертификат содержал нужные поля для работы метода Name match. Но сертификат был выдан не тем CA, который виден в цепочке, а поддельным CA. Хоть мой поддельный CA внешне не отличим от легитимного CA, но у него нету самого важного — правильного закрытого ключа, чтобы подписать сертификат. Ведь при проверке подписи используется открытый ключ легитимного CA и, следовательно, подпись не может быть проверена.&lt;/P&gt;
&lt;P&gt;Написал очень много страшных букв даже без надежды, что кто-то с первого раза поймёт о чём тут шёл разговор. Но поверьте, это достаточно полезное знание, чтобы уметь отыскивать и разрешать проблемы с построением цепочек сертификатов.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=63f4fa92-f82b-4b01-a710-6324bae859bb"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,63f4fa92-f82b-4b01-a710-6324bae859bb.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / Chaining Engine</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=19bf758d-2a16-427d-92c7-44bd6a42ff05</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,19bf758d-2a16-427d-92c7-44bd6a42ff05.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,19bf758d-2a16-427d-92c7-44bd6a42ff05.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=19bf758d-2a16-427d-92c7-44bd6a42ff05</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>Защищаем Software Restriction Policies</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,19bf758d-2a16-427d-92c7-44bd6a42ff05.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,19bf758d-2a16-427d-92c7-44bd6a42ff05.aspx</link>
      <pubDate>Thu, 03 Sep 2009 18:59:28 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Одной из самых больших проблем с Software Restriction Policies была настройка доверенных издателей (Trusted Publishers), о которой я уже писал: &lt;a href="http://www.sysadmins.lv/PermaLink,guid,9bee60f3-72dd-4a4f-88b4-649c41949dc6.aspx"&gt;Секреты Software Restriction Policies (часть 3)&lt;/a&gt;. Другое, более элегантное решение лежало практически на поверхности, но я его никак не замечал. В кратце напомню проблематику:&lt;/p&gt;  &lt;p&gt;Если у нас есть недозволенное подписанное приложение, то мы можем импортировать сертификат цифровой подписии в секцию Trusted Publishers для доверия конкретному издателю. Но кроме этого нам нужно обеспечить доверие сертификату подписи, путём размещения корневого сертификата в цепочке в секцию Trusted Root Certification Authorites пользовательского хранилища (User Store). Чтобы как-то защититься от этого, приходилось в политике SRP запрещать пользователям добавлять сертификаты цифровых подписей в секцию Trusted Publishers (делая её read-only). Это спасало от нечистых на руку пользователей, которые могли добавлять свои сертификаты и обходить политику. Однако, этот метод имел серьёзные негативные эффекты: переставал работать Windows Update на Windows XP/2003, останавливалась служба Windows Defender, невозможно было использовать продукты Live и др.&lt;/p&gt;  &lt;p&gt;Сегодня блуждая по политикам наткнулся на ещё одну настройку, которая запрещает доверять сертификатам в пользовательском контейнере Trusted Root CAs! Для этого нужно открыть редактор групповой политики и перейти по пути:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;Computer Configuration –&amp;gt; Windows Settings –&amp;gt; Security Settings –&amp;gt; Public Key Policies –&amp;gt; выбрать свойства Trusted Root CAs&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Trusted Root Certification Authorities settings in Windows Server 2003" border="0" alt="Trusted Root Certification Authorities settings in Windows Server 2003" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies_12689/Capture_1.png" width="615" height="466" /&gt; &lt;/p&gt;  &lt;p&gt;и здесь убрать единственную галочку. В Windows Vista/2008 и выше эта настройка выделена в отдельный элемент. Вместо Trusted Root CAs элемент называется Certificate Paths Validation Settings:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Certificate Path Validation Settings in Windows Server 2008 R2" border="0" alt="Certificate Path Validation Settings in Windows Server 2008 R2" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies_12689/trcas2k8_1.png" width="644" height="413" /&gt;&lt;/p&gt;  &lt;p&gt;Хоть пути до настроек чуточку отличаются, но суть от этого не меняется. Достаточно убрать эту галочку и получать профит. Так же, как и с паблишерами, секция Trusted Root CAs в пользовательском хранилище становится в режим Read Only. Причём, эта настройка удаляет все корневые сертификаты, которые были добавлены пользователями (т.е. существуют только в пользовательских хранилищах, но не в компьютерном), т.е. администраторам не надо будет заботиться о чистке пользовательских Cert Store, оно будет вычещенно само. Если попытаться импортировать корневой сертификат из файла, то получите вот такой бонус:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Select Certificate Store window" border="0" alt="Select Certificate Store window" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies_12689/Capture_4.png" width="517" height="470" /&gt; &lt;/p&gt;  &lt;p&gt;как вы видите, у нас нету больше возможности добавлять свои сертификаты в этот контейнер.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; данная настройка отсутствует в политике Windows XP&lt;/p&gt;  &lt;p&gt;Кстати говоря, данная настройка в Windows 7/Windows Server 2008 R2 так же позволяет избежать атаки на правила издателя (Publisher) AppLocker'а путём подстановки своего корневого сертификата и запуска файлов с поддельной цифровой подписью.&lt;/p&gt;  &lt;p&gt;Вот таким нехитрым способом мы можем значительно укрепить SRP и AppLocker от криптографических махинаций с цифровыми подписями. Хотя, это нас не спасёт от случаев, если сертификат подписи выдан публичным CA, которому система доверяет по умолчанию. В таком случае SRP можно защитить только через запрет установки своих паблишеров. А вот AppLocker спасти уже не удастся &lt;img alt=":'(" src="/smilies/unhappy.gif"&gt;&lt;/p&gt;  &lt;p&gt;з.ы. на днях я ВНЕЗАПНО узнал о существовании такой мега-завальной штеллы как &lt;strong&gt;Snipping Tool&lt;/strong&gt;, который поставляется вместе с Windows Vista и выше для создания скриншотов нужных окон! За 2,5 года использования висты я ни разу его так и не запустил, из-за чего приходилось извращаться через Paint, что было несколько уныло, зато у меня теперь есть удобный инструмент для снятия пруфпиков и ещё один веский повод сказать, что Vista рулит! &lt;img alt="Rock" src="/smilies/blush.gif"&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=19bf758d-2a16-427d-92c7-44bd6a42ff05"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,19bf758d-2a16-427d-92c7-44bd6a42ff05.aspx</comments>
      <category>Security</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=e1792db1-dfb7-4ebf-8761-b4b3ed92bd65</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,e1792db1-dfb7-4ebf-8761-b4b3ed92bd65.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,e1792db1-dfb7-4ebf-8761-b4b3ed92bd65.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=e1792db1-dfb7-4ebf-8761-b4b3ed92bd65</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>Applocker, PowerShell и Промпт</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,e1792db1-dfb7-4ebf-8761-b4b3ed92bd65.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,e1792db1-dfb7-4ebf-8761-b4b3ed92bd65.aspx</link>
      <pubDate>Sun, 30 Aug 2009 17:47:39 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Вася Гусев прислал мне одну замечательную ссылку на пост (а в посте ссылка на документ) Дмитрия Буланова по управлению AppLocker'ом с использованием Windows PowerShell: &lt;A title=http://dimanb.spaces.live.com/blog/cns!7D6C59DEE1DA79E5!323.entry href="http://dimanb.spaces.live.com/blog/cns!7D6C59DEE1DA79E5!323.entry"&gt;http://dimanb.spaces.live.com/blog/cns!7D6C59DEE1DA79E5!323.entry&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;В принципе, это хорошо, т.к. мне уже, возможно, не понадобится об этом писать. Однако, я не разделяю такого оптимизма автора документа (кстати говоря, авторство принадлежит не Дмитрию, а только перевод. Причём, бездарный перевод) и считаю, что такая поддержка со стороны PowerShell ещё ниже опускает уровень защиты AppLocker. Но и сам документ выглядит как типичный маркетинговый булшит, поскольку содержит несколько ложных утверждений и достаточно много подтасованных фактов. Давайте посмотрим документ внимательней:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;Уже несколько лет администраторам в организациях приходилось устанавливать стороннее программное обеспечение, за что организациям приходилось тратить немалые средства. Теперь с появлением AppLocker у администраторов нет необходимости в поиске стороннего программного обеспечения, т.к. с появлением Windows 7 и Windows Server 2008 R2 AppLocker добавлен в групповые политики.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;При этом автор очень сильно недоговаривает, поскольку SRP существует ещё с 2001 года (когда вышел RTM Windows XP). Т.е. раньше тоже были средства контроля используемых приложений.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;Часто со временем, после развертывания операционных систем, конфигурация программного обеспечения типичного рабочего места оказывается далека от желаемого результата. Несогласованности приходят чаще, не столько от установки, сколько от работы несоответствующего стандартам программного обеспечения в пределах настольного окружения. Пользователи инсталлируют программное обеспечение из разнообразных источников: компакт-дисков и дисковых накопителей, загрузки файлов из сети Интернет, совместного использования файлов через совместные пиринговые сети, и через электронную почту. Результат – возможность заражения компьютера вредоносным программным кодом&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Наверное, единственное утверждение, с которым я согласен.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;Software Restriction Policies (SRP), в Windows XP и Windows Vista, было одним из первых решений прикладного контроля. SRP дал IT-администраторам &lt;STRONG&gt;грубый механизм&lt;/STRONG&gt;, для определения и написания политик контроля за приложениями. Однако SRP мог ограничить управление в динамической настольной среде, где приложения устанавливались и обновлялись на постоянной основе, т.к. они в основном использовали правила хэширования. С правилами хэширования, каждый раз при обновлении программного обеспечения необходимо было создавать новые правила хэширования.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Враньё! Особенно выделенное. В ряде моментов SRP более гибок, чем AppLocker. Если говорить про правила хешей, то AppLocker вносит только одно удобство – позволяет за раз добавить несколько файлов в правило хеша из одной папки. Но дальше в этом плане ничем не отличается от SRP. А с правилами путей профитов в AppLocker по сравнению с SRP почти и нету, поскольку в правилах путей как правила используются wildcards, вместо полных путей до конечного файла. Про паблишеров я отмечусь чуть ниже.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;&lt;STRONG&gt;С появлением AppLocker в операционной системе Windows 7 растет необходимость введения решений прикладного контроля на предприятии&lt;/STRONG&gt;: простой и гибкий механизм, который позволяет администраторам конкретизировать разрешения для запуска программного обеспечения в своей программной среде. В результате, AppLocker обеспечивает не только защиту безопасности, но и оперативность и удобство по развертыванию политик&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Этим автор ещё раз доказывает своё мнение, что до AppLocker'а у нас был &lt;A href="http://lurkmore.ru/%D0%90%D0%B4_%D0%B8_%D0%98%D0%B7%D1%80%D0%B0%D0%B8%D0%BB%D1%8C"&gt;ад и Израиль&lt;/A&gt; и у нас не было SRP. И прочитайте выделенное. Мне это говорит, что наоборот, AppLocker – источник всех проблем. Не будь его, не росла эта необходимость. В чём оперативность здесь – мне пока непонятно. Да, и что есть прикладной контроль? Есть мнение, что это от английского Application Control (жертва пиратского промпта? © Artem Pronichkin).&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT color=#804000&gt;Ограничение в запуске нелицензионного программного обеспечения на рабочем месте;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#804000&gt;Понижение уязвимости, средствами запрещения запуска несанкционированных приложений на вашем рабочем месте, в том числе запуск вредоносного кода;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#804000&gt;Запрещать пользователям запуск приложений, которые бесполезно потребляют сетевую пропускную способность;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#804000&gt;Ограничение пользователей от запуска приложений, которые дестабилизируют их рабочую среду;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#804000&gt;Эффективность конфигурации управления;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#804000&gt;Позволять пользователям устанавливать и запускать одобренное администратором программное обеспечение основанное на деловых потребностях;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#804000&gt;Гарантировать, согласованность установки программного обеспечения с корпоративными политиками и правилами, например PCI DSS, Sarbanes-Oxley, HIPAA, Basel II, и другое.&lt;/FONT&gt; &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;пункт 3 - покажите!!! Как? Я тоже хочу использовать такую функциональность! Т.е. создавать правила на основе критериев: только приложения, которые полезно потребляют пропускную способность сети. В последнем пункте заметил несколько новых слов, значения которых я не знаю. Подозреваю, что основная целевая аудитория документа тоже не сильно владеет такими терминами.&lt;/P&gt;
&lt;P&gt;Но вообще все эти пункты укладываются в более короткий список:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Контроль запуска только разрешённых администратором приложений. Что исключает возможность несанкционированного запуска потенциально опасного, вредного или лишнего ПО. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Размазывать единственное предназначение AppLocker'а (равно как и SRP) на 7 пунктов незачем. Разве что – задавить читателя массой возможностей нового продукта.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;разрешения, запрещения и исключения&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;в русском языке вряд ли есть такое слово, как “запрещения”. Правильнее будет “запрет”. Промпт переводит как умеет…&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;Администратору предоставляется возможность разрешения на запуск приложений, которые входят в «белый список приложений» и блокировать все остальное.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;в этом предложении я ничего не понял, кроме “белый список приложений”.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;Пока многие предприятия будут использовать правила разрешенных и запрещенных приложений, развертывание AppLocker позволяет использовать правила исключений.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Хотелось бы мне знать, чем в данном случае явный запрет будет отличаться от отдельного запрета? Технически это одно и то же. Т.е. если мы одним правилом накрываем достаточно большую область, в которой нужно создать исключения, то создание исключения или отдельного запрета будет равноценным, поскольку тут так же работает правило приоритета более точного правила. А SRP этим не обделён ни разу.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;AppLocker вводит правила издателя, которые основаны на прикладных цифровых подписях. Правила издателя дают возможность создания правил, которые включают возможность обновления программного обеспечения. Например, организация может создать правило, чтобы “разрешить все версии, большие, чем 9.0 для запуска Acrobat Reader, если у программного обеспечения Adobe есть цифровая подпись”. После чего, когда у Adobe появится новая версия Acrobat, вы можете безопасно запустить обновление программы без необходимости создания нового правила для последующей версии приложения.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Вот здесь снова появляется ложь. Правила издателя были в SRP, только немного в ином виде (Certificate Rule). Опять же, следует учитывать, что вы можете использовать эту возможность только при условии, что у файла есть цифровая подпись. Нету подписи – вот вам пачка хешей, работайте. Плюс, как я уже упоминал, AppLocker не закрывает одну опасную брешь в концепции цифровых подписей – не проверяется доверие конкретной цифровой подписи. Кто угодно может прочитать правило паблишера (да-да, именно средствами родного PowerShell, поскольку других вменяемых средств нету) и подписать свой файл своей же подписью, которую AppLocker скушает и разрешит для запуска. Вобщем, разработчики AppLocker'а допустили 2 фатальные ошибки, из-за которых эти профиты могут просто потерять реальный практический смысл:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;совершенно испоганили правило издателя (publisher), отменив проверку доверия конкретной цифровой подписи; 
&lt;LI&gt;разрешили пользователям со стандартыми правами (standard user) читать все настройки этой политики. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Поэтому эти 2 пункта следует рассматривать не как бенефиты AppLocker'а, а как его недостатки в контексте безопасности. Это было сделано в пользу удобства и в ущерб безопасности. И это не говоря о том, что не все редакции Windows 7 могут использовать эту политику.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;Правила AppLocker могут быть ассоциированы с конкретным пользователем или группой в пределах организации. Это обеспечивает гранулирование контроля, что позволяет вам поддерживать требования компании и предписания благодаря которым пользователи могут управлять специфическими приложениями. Например, вы можете создать правило, чтобы “разрешить сотрудникам Отдела Финансов управлять линией приложений, которые относятся к их деятельности”. Эти приложения блокируются от запуска для всех пользователей, которые не находятся в Отделе Финансов (в том числе администраторы), но все еще обеспечивают доступ для тех, у кого есть надобность управлять данными приложениями.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;На самом деле это тоже не прорыв. Подобная реализация на уровне групп пользователей была и в SRP, поскольку SRP можно было конфигурировать в секции User Configuration и фильтровать политику с помощью Security Filtering. Т.е. данный функционал был чуть причёсан и сделан более user-friendly.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#804000&gt;Благодаря AppLocker в Windows 7, у администраторов появляется возможность контроля за приложениями пользователей.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Ещё раз отмечаю, что AppLocker в этом отношении не единственный бесплатный инструмент.&lt;/P&gt;
&lt;P&gt;Вобщем, мой совет читателям – избегать подобных переводов, как ересь и &lt;A href="http://lurkmore.ru/%D0%9B%D0%9F%D0%9F"&gt;ЛПП&lt;/A&gt;, поскольку промпт никогда (во всяком случае – в обозримом будущем) не сможет переводить тексты со смыслом и именно тем смыслом, который заложен в оригинале. Поэтому предлагаю ссылки на оригинальные статьи, которые были переведены в этом документе:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://technet.microsoft.com/en-us/library/dd548340(WS.10).aspx"&gt;Windows 7 AppLocker Executive Overview&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/powershell/archive/2009/06/02/getting-started-with-applocker-management-using-powershell.aspx"&gt;Getting Started with AppLocker management using Powershell&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Спасибо за внимание &lt;img alt=":)" src="/smilies/happy.gif"&gt;&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=e1792db1-dfb7-4ebf-8761-b4b3ed92bd65"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,e1792db1-dfb7-4ebf-8761-b4b3ed92bd65.aspx</comments>
      <category>Security</category>
      <category>Security / AppLocker</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=c7cfb29c-29d4-4cff-8426-e85cd793924d</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,c7cfb29c-29d4-4cff-8426-e85cd793924d.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,c7cfb29c-29d4-4cff-8426-e85cd793924d.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=c7cfb29c-29d4-4cff-8426-e85cd793924d</wfw:commentRss>
      <title>Делаем внутрекорпоративный SSL сайт с EV сертификатом</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,c7cfb29c-29d4-4cff-8426-e85cd793924d.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,c7cfb29c-29d4-4cff-8426-e85cd793924d.aspx</link>
      <pubDate>Sat, 15 Aug 2009 22:59:25 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Disclaimer:&lt;/font&gt;&lt;/strong&gt; данный материал публикуется только для ознакомительных целей и не рекомендуется для использования в реальной производственной среде.&lt;/p&gt;  &lt;p&gt;Краткий ввод в курс дела. Что такое &lt;strong&gt;EV&lt;/strong&gt; сертификат – это &lt;strong&gt;Extended Validation&lt;/strong&gt; сертификат, который в браузере отображается зелёной полосой:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Extended Validation certificate in Internet Explorer 7 or higher" border="0" alt="Extended Validation certificate in Internet Explorer 7 or higher" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SSLEV_C19C/evcheck_3.png" width="467" height="32" /&gt; &lt;/p&gt;  &lt;p&gt;Что это означает? Это означает, что издатель сертификата (например, VeriSign) более серьёзно и внимательно изучил предъявителя этого сертификата, что даёт пользователям ещё большую гарантию, что сайт, на который вы попали, является тем самым сайтом, который вы набрали в адресной строке. А так же этим подтверждается, что сайт является зарегистрированной коммерческой организацией с сопутствующими проверками. Т.е. к получателю Extended Validation сертификатов предъявляются достаточно жёсткие требования. Эти сертификаты в Public Certification Authorities стоят значимо дороже, чем обычные SSL сертификаты (я посмотрел по предложениям и получилось в среднем увеличение цены в 2 раза). Плюс, такие сертификаты не имеют возможности использования WildCard доменов в Subject, хотя допускают Subject Alternative Names (когда одному web-сайту сопоставляется несколько имён). Такие сертификаты в интернете могут выпускать только одобренные центры сертификации (Certification Authorities). Список таких CA можно посмотреть вот здесь: &lt;a title="http://cabforum.org/forum.html" href="http://cabforum.org/forum.html"&gt;http://cabforum.org/forum.html&lt;/a&gt;. Требования к работе с такими сертификатами для CA и покупателей: &lt;a title="http://cabforum.org/documents.html" href="http://cabforum.org/documents.html"&gt;http://cabforum.org/documents.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Но это всё лирика. Мы хотим внутри корпоративного домена поднять SSL веб-портал и чтобы там была такая же зелёная полоска &lt;img alt=":)" src="/smilies/happy.gif"&gt; и мы можем такое сделать. Я покажу процесс на примере CA и домена под управлением Windows Server 2008 R2. Я предполагаю, что у вас уже развёрнут домен Active Directory и установлена роль &lt;strong&gt;AD CS&lt;/strong&gt; (&lt;em&gt;Active Directory Certificate Services&lt;/em&gt;).&lt;/p&gt;  &lt;p&gt;Когда у нас предварительные подготовления закончены нам нужно произвести необходимые изменения в шаблоне Web Server. Для этого нужно сделать следующее:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;на сервере с установленным CA запустить оснастку &lt;strong&gt;Certificate Templates&lt;/strong&gt;: &lt;strong&gt;certtmpl.msc&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;выбрать шаблон Web Server и правой кнопкой выбрать &lt;strong&gt;Duplicate Certificate&lt;/strong&gt; и выбрать версию шаблона 2 или 3 (Windows Server 2003 Enterprise Edition или Windows Server 2008 Enterprise Edition, соответственно). &lt;/li&gt;    &lt;li&gt;В поле &lt;strong&gt;Template Display Name&lt;/strong&gt; напишите новое имя шаблону (например, Web Server V2 или V3). &lt;/li&gt;    &lt;li&gt;Убедитесь, что срок действия сертификатов на основе этого шаблона установлен 1 год (обычно для SSL веб-сайтов не выдают сертификаты на срок больше 1 года). &lt;/li&gt;    &lt;li&gt;На вкладке Extensions выберите &lt;strong&gt;Issuance Policies&lt;/strong&gt; –&amp;gt; &lt;strong&gt;Edit&lt;/strong&gt; –&amp;gt; &lt;strong&gt;Add&lt;/strong&gt; –&amp;gt; &lt;strong&gt;New&lt;/strong&gt;:       &lt;br /&gt;&amp;#160;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Editing Issuance Policy" border="0" alt="Editing Issuance Policy" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SSLEV_C19C/ispolicy_6.jpg" width="407" height="543" /&gt;       &lt;br /&gt;и скопируйте сгенерированный &lt;strong&gt;OID&lt;/strong&gt; в поле &lt;strong&gt;Object Identifier&lt;/strong&gt;, он нам ещё потребуется.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Напишите название вашей политики и адрес &lt;a href="http://technet.microsoft.com/en-us/library/cc787545(WS.10).aspx" target="_blank"&gt;CPS (&lt;em&gt;Certificate Practice Statement&lt;/em&gt;)&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;На вкладке &lt;strong&gt;Request Handling&lt;/strong&gt; настройте свои значения (как экспорт закрытого ключа, архивация закрытого ключа) на своё усмотрение. &lt;/li&gt;    &lt;li&gt;На вкладке &lt;strong&gt;Issuance Requirements&lt;/strong&gt; поставьте ручное одобрение администратора CA (чтобы контролировать расход EV сертификатов &lt;img alt=":)" src="/smilies/happy.gif"&gt;, либо на вкладке &lt;strong&gt;Security&lt;/strong&gt; отрегулируйте разрешения, кому можно запрашивать сертификат. &lt;/li&gt;    &lt;li&gt;Сохраните шаблон. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Теперь раскройте оснастку Certificate Authority и перейдите в &lt;font color="#0000ff"&gt;Certificate Templates –&amp;gt; New –&amp;gt; Template To Issue&lt;/font&gt; и выберите наш новый шаблон. После того, как все приготовления закончены, можно приступать к редактированию групповой политики.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; Для редактирования политики вам потребуется консоль GPMC в Windows Server 2008 R2, Windows 7 с установленным RSAT. При этом версия ОС на контроллере может быть другой, но не ниже Windows Server 2003, а сервер CA не ниже Windows Server 2003 Enterprise Edition.&lt;/p&gt;  &lt;p&gt;Запустите оснастку &lt;strong&gt;GPMC&lt;/strong&gt; и создайте новую политику, которая будет прилинкована на уровне домена. Безусловно, вы можете редактировать существующую &lt;strong&gt;Default Domain Policy&lt;/strong&gt;, но я не рекомендую использовать дефолтную политику, а для каждой задачи создавать свою политику и линковать куда нужно. В редакторе политики перейдите по секции:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Computer Configuration –&amp;gt; Policies –&amp;gt; Windows Settings –&amp;gt; Security Settings –&amp;gt; Public Key Policies –&amp;gt; Trusted Root Certification Authorities&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;здесь выберите &lt;font color="#0000ff"&gt;All Task –&amp;gt; Import&lt;/font&gt; и импортируйте корневой сертификат вашего CA, который является корневым в вашем лесу. Далее, выберите свойства сертификата (не открывать сам сертификат) и перейдите в таб &lt;strong&gt;Extended Validation&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Edit Extended Validation tab" border="0" alt="Edit Extended Validation tab" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SSLEV_C19C/evedit_3.jpg" width="413" height="511" /&gt; &lt;/p&gt;  &lt;p&gt;И добавьте сюда тот самый &lt;strong&gt;OID&lt;/strong&gt;, который у вас был сгенерирован при создании новой &lt;strong&gt;Issuance Policy&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Теперь вам нужно перейти на ваш web-сервер. Если это Windows Server 2003, то вы можете запросить новый SSL сертификат из оснастки IIS. Если у вас web-сервер под управлением Windows Server 2008 или выше, то вы не можете больше запрашивать SSL сертификат из оснастки IIS, а только путём генерирования запроса в формате &lt;strong&gt;PKCS#7&lt;/strong&gt;, либо через MMC оснастку Certificates запущенной от лица &lt;strong&gt;Local Computer&lt;/strong&gt;. Запросите новый сертификат на основе вновь созданного шаблона (желательно при запросе указывать наиболее подробные сведения о вашем Web-сервере). Если у вас в политике шаблона указано ручное одобрение запроса – одобрите его в оснастке &lt;font color="#0000ff"&gt;Certification Authority –&amp;gt; Pending Requests&lt;/font&gt;. После того, как сертификат сгенерирован, настройте ваш веб-сервер на работу с SSL с использованием этого сертификата.&lt;/p&gt;  &lt;p&gt;Теперь подождите, пока отредактированная групповая политика применится на компьютерах домена. После чего запустите браузер на любом клиенте (не ниже Windows XP SP2 с установленным Internet Explorer 7 или выше) и наберите HTTPS адрес вашего веб-сервера и получайте профит:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Extended Validation certificate in Internet Explorer 7 or higher" border="0" alt="Extended Validation certificate in Internet Explorer 7 or higher" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SSLEV_C19C/evcheck2_3.png" width="392" height="33" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Extended Validation certificate in Internet Explorer 7 or higher" border="0" alt="Extended Validation certificate in Internet Explorer 7 or higher" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SSLEV_C19C/evcheck2_3.jpg" width="392" height="33" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;И ещё раз о требованиях к операционным системам:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Domain Controller&lt;/strong&gt; – не ниже Windows Server 2003 Standard Edition. Для редактирования политики потребуется Windows 7 с RSAT или рядовой член домена под управлением Windows Server 2008 R2 с установленным компонентом Group Policy Management. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;CA&lt;/strong&gt; – не ниже Windows Server 2003 Enteprise Edition (Кроме Windows Server 2003/2008 Standard/Web Edition). &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;веб-сервер&lt;/strong&gt; – любой. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;клиентский компьютер&lt;/strong&gt; – не ниже Windows XP SP2 и с установленным Internet Explorer не ниже 7 версии. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;И ещё раз напоминаю, что это будет видно только тем компьютерам, которые получили изменённую политику. Остальные компьютеры будут видеть обычный замочек и всё.&lt;/p&gt;  &lt;p&gt;Have a nice day!&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=c7cfb29c-29d4-4cff-8426-e85cd793924d"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,c7cfb29c-29d4-4cff-8426-e85cd793924d.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b0079f99-da21-4c42-8db4-51ab55d8fd83</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b0079f99-da21-4c42-8db4-51ab55d8fd83.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b0079f99-da21-4c42-8db4-51ab55d8fd83.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b0079f99-da21-4c42-8db4-51ab55d8fd83</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>OCSP на Windows Server 2008 R2</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b0079f99-da21-4c42-8db4-51ab55d8fd83.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b0079f99-da21-4c42-8db4-51ab55d8fd83.aspx</link>
      <pubDate>Sat, 15 Aug 2009 11:39:27 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Это будет краткая заметка по решению одной проблемы (пока причина проблемы не установлена) при установке OCSP Responder на контроллере домена под управлением Windows Server 2008 R2 RTM. При такой установке у вас в Application Log может появиться сообщение:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804000"&gt;Log Name:      Application        &lt;br /&gt;Source:        SceCli         &lt;br /&gt;Date:          2009.08.13. 12:46:22         &lt;br /&gt;Event ID:      1202         &lt;br /&gt;Task Category: None         &lt;br /&gt;Level:         Warning         &lt;br /&gt;Keywords:      Classic         &lt;br /&gt;User:          N/A         &lt;br /&gt;Computer:      server.domain.com         &lt;br /&gt;Description:         &lt;br /&gt;Security policies were propagated with warning. 0x534 : No mapping between account names and security IDs was done. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;Advanced help for this problem is available on &lt;/font&gt;&lt;a href="http://support.microsoft.com"&gt;&lt;font color="#804000"&gt;http://support.microsoft.com&lt;/font&gt;&lt;/a&gt;&lt;font color="#804000"&gt;. Query for "troubleshooting 1202 events". &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;Error 0x534 occurs when a user account in one or more Group Policy objects (GPOs) could not be resolved to a SID.  This error is possibly caused by a mistyped or deleted user account referenced in either the User Rights or Restricted Groups branch of a GPO.  To resolve this event, contact an administrator in the domain to perform the following actions: &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;1.    Identify accounts that could not be resolved to a SID: &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;From the command prompt, type: FIND /I "Cannot find"  %SYSTEMROOT%\Security\Logs\winlogon.log &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;The string following "Cannot find" in the FIND output identifies the problem account names. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;Example: Cannot find JohnDough. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;In this case, the SID for username "JohnDough" could not be determined. This most likely occurs because the account was deleted, renamed, or is spelled differently (e.g. "JohnDoe"). &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;2.    Use RSoP to identify the specific User Rights, Restricted Groups, and Source GPOs that contain the problem accounts: &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;a.    Start -&gt; Run -&gt; RSoP.msc        &lt;br /&gt;b.    Review the results for Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment and Computer Configuration\Windows Settings\Security Settings\Local Policies\Restricted Groups for any errors flagged with a red X.         &lt;br /&gt;c.    For any User Right or Restricted Group marked with a red X, the corresponding GPO that contains the problem policy setting is listed under the column entitled "Source GPO". Note the specific User Rights, Restricted Groups and containing Source GPOs that are generating errors. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;3.    Remove unresolved accounts from Group Policy &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;a.    Start -&gt; Run -&gt; MMC.EXE        &lt;br /&gt;b.    From the File menu select "Add/Remove Snap-in..."         &lt;br /&gt;c.    From the "Add/Remove Snap-in" dialog box select "Add..."         &lt;br /&gt;d.    In the "Add Standalone Snap-in" dialog box select "Group Policy" and click "Add"         &lt;br /&gt;e.    In the "Select Group Policy Object" dialog box click the "Browse" button.         &lt;br /&gt;f.    On the "Browse for a Group Policy Object" dialog box choose the "All" tab         &lt;br /&gt;g.    For each source GPO identified in step 2, correct the specific User Rights or Restricted Groups that were flagged with a red X in step 2. These User Rights or Restricted Groups can be corrected by removing or correcting any references to the problem accounts that were identified in step 1.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804000"&gt;Advanced help for this problem is available on &lt;/font&gt;&lt;a href="http://support.microsoft.com"&gt;&lt;font color="#804000"&gt;http://support.microsoft.com&lt;/font&gt;&lt;/a&gt;&lt;font color="#804000"&gt;. Query for "troubleshooting 1202 events".&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;При установке компонента OCSP Responder роли Active Directory Certificate Services на контроллере домена создаются следующие локальные учётные записи:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;OCSPISAPIAppPool&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;DefaultAppPool&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WdiServiceHost&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Этим учётным записям автоматически в Default Domain Controllers Policy в разделе User Rights Assignments выдаются следующие права и привилегии:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="516"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="247"&gt;         &lt;p&gt;&lt;strong&gt;User Rights Assignment entry&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="267"&gt; &lt;strong&gt;Account name&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="247"&gt;         &lt;p&gt;Adjust memory quotas for a process&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="267"&gt;         &lt;p&gt;&lt;font color="#0000ff"&gt;OCSPISAPIAppPool              &lt;br /&gt;DefaultAppPool&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="247"&gt;Generate security audits&lt;/td&gt;        &lt;td valign="top" width="267"&gt;         &lt;p&gt;&lt;font color="#0000ff"&gt;OCSPISAPIAppPool              &lt;br /&gt;DefaultAppPool&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="247"&gt;         &lt;p&gt;Profile system performance&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="267"&gt;&lt;font color="#0000ff"&gt;WdiServiceHost&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="247"&gt;         &lt;p&gt;Replace a process level token&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="267"&gt;         &lt;p&gt;&lt;font color="#0000ff"&gt;OCSPISAPIAppPool              &lt;br /&gt;DefaultAppPool&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Однако, эти учётные записи локальные и контроллер домена неспособен их разрешить в SID, т.к. они не доменные. Для решения этой проблемы нужно задать префикс authority этих учётных записей следующим образом:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="516"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="247"&gt;         &lt;p&gt;&lt;strong&gt;User Rights Assignment entry&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="267"&gt; &lt;strong&gt;Account name&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="247"&gt;         &lt;p&gt;Adjust memory quotas for a process&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="267"&gt;         &lt;p&gt;&lt;font color="#ff0000"&gt;IIS AppPool&lt;/font&gt;\&lt;font color="#0000ff"&gt;OCSPISAPIAppPool&lt;/font&gt;             &lt;br /&gt;&lt;font color="#ff0000"&gt;IIS AppPool&lt;/font&gt;\&lt;font color="#0000ff"&gt;DefaultAppPool&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="247"&gt;Generate security audits&lt;/td&gt;        &lt;td valign="top" width="267"&gt;         &lt;p&gt;&lt;font color="#ff0000"&gt;IIS AppPool&lt;/font&gt;\&lt;font color="#0000ff"&gt;OCSPISAPIAppPool              &lt;br /&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;IIS AppPool&lt;/font&gt;\&lt;font color="#0000ff"&gt;DefaultAppPool&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="247"&gt;         &lt;p&gt;Profile system performance&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="267"&gt;&lt;font color="#ff0000"&gt;NT Service&lt;/font&gt;\&lt;font color="#0000ff"&gt;WdiServiceHost&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="247"&gt;         &lt;p&gt;Replace a process level token&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="267"&gt;         &lt;p&gt;&lt;font color="#ff0000"&gt;IIS AppPool&lt;/font&gt;\&lt;font color="#0000ff"&gt;OCSPISAPIAppPool&lt;/font&gt;             &lt;br /&gt;&lt;font color="#ff0000"&gt;IIS AppPool&lt;/font&gt;\&lt;font color="#0000ff"&gt;DefaultAppPool&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; при добавлении этих записей вы должны вписывать эти имена прямо в поле &lt;strong&gt;Add user or group&lt;/strong&gt;, а не использовать Browse и Check names.&lt;/p&gt;  &lt;p&gt;Я пока не в курсе причины этой проблемы, но она отправлена на изучение в Windows Server Team, а пока – пользуйтесь этим решением &lt;img alt=":)" src="/smilies/happy.gif"&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b0079f99-da21-4c42-8db4-51ab55d8fd83"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b0079f99-da21-4c42-8db4-51ab55d8fd83.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / OCSP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=1a51a0b1-fa1b-4056-bc3e-0b0ee4e5a530</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,1a51a0b1-fa1b-4056-bc3e-0b0ee4e5a530.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,1a51a0b1-fa1b-4056-bc3e-0b0ee4e5a530.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=1a51a0b1-fa1b-4056-bc3e-0b0ee4e5a530</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <title>Проверка работоспособности OCSP Responder</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,1a51a0b1-fa1b-4056-bc3e-0b0ee4e5a530.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,1a51a0b1-fa1b-4056-bc3e-0b0ee4e5a530.aspx</link>
      <pubDate>Tue, 11 Aug 2009 20:08:00 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;На днях потребовалось поднять ещё один сервер CA на Windows Server 2008 R2 и на нём же OCSP респондер. Я уже писал про установку OCSP Responder в Windows Server 2008:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx"&gt;OCSP (часть 1)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sysadmins.lv/PermaLink,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx"&gt;OCSP (часть 2)&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;В принципе, настройка достаточно простая. Но мы обязаны периодически проверять работу этой службы и служб проверки статуса сертификата в целом. Для задач проверки работоспособности служб отзыва сертификатов у нас есть несколько решений, которые поставляются вместе с Windows, а так же инструменты сторонних разработчиков. Предлагаю вашему вниманию несколько таких инструментов.&lt;/p&gt;  &lt;h1 align="center"&gt;PKIView.msc&lt;/h1&gt;  &lt;p&gt;Это стандартная MMC оснастка, которая устанавливается в систему с установкой роли &lt;strong&gt;Active Directory Certificates Services&lt;/strong&gt; (для Windows Server 2008/R2) или с установкой Resource Kit (для Windows Server 2003). Что примечательно, ничего делать в этой оснастке не надо, достаточно её просто запустить и вы всё сразу увидите:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="PKIView 2-tier" border="0" alt="PKIView 2-tier" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSPResponder_FAF6/pkiview1_5.jpg" width="668" height="237" /&gt; &lt;/p&gt;  &lt;p&gt;Данная оснастка собирает полную PKI иерархию в лесу (в моём случае это двухуровневая иерархия CA), считывает с них CDP и AIA списки и проверяет доступность сертификатов CA и списков CRL. Я специально удалил с сервера Base CRL список. И об этом мы бы узнали, скорее всего, только когда клиент не смог бы подключиться к SSL/TLS/IPSec ресурсу. А так – мы можем в любой момент проверить все CDP и AIA каждого сервера CA. И вот примерный образец, как должны выглядеть CDP и AIA для CA, который обслуживает клиентов из внешней сети:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="PKIView Console with OCSP" border="0" alt="PKIView Console with OCSP" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSPResponder_FAF6/pkiview2_3.jpg" width="667" height="188" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Если внутри сети особого профита OCSP не получите, то для интернета он будет как нельзя кстати. Ну и для клиентов из интернета ваши LDAP пути для CRL никакого интереса не будут представлять. Т.е. мы имем классические CRL’ы и OCSP респондер. Собственно, статус Ok нам говорит, что с ним всё в порядке. Вы можете прямо из этой консоли выбрать правой кнопкой каждый пункт и посмотреть фактическое содержимое каждого CRL списка или CRT файла (CRT файлы в AIA требуются нам для построения цепочки сертификатов, т.н. certificate chain). Однако в отношении с OCSP мы видим только общую работоспособность респондера. Так же общую работоспособность можно проверить через оснастку Online Responder Mangement на каждом OCSP сервере. Но это всё на стороне сервера. А вот продиагностировать клиента (убедиться, что клиент работает в первую очередь с OCSP, а не с классическими CRL списками) здесь не получится и этому будет посвящена следующая часть этой статьи.&lt;/p&gt;  &lt;h1 align="center"&gt;Certutil&lt;/h1&gt;  &lt;p&gt;Всем известная утилита Certutil.exe, которая поставляется не только с серверными операционными системами, но и с клиентскими тоже. К слову сказать, по сложности синтаксиса и богатством функционала с certutil.exe тягаться может разве что netsh.exe &lt;img alt=":)" src="/smilies/happy.gif"&gt;. К сожалению я не смог найти этой информации во встроенной справки certutil, поэтому пришлось искать альтернативные источники этой информации.&lt;/p&gt;  &lt;p&gt;Итак, если мы хотим проверить работоспособность клиентского компьютера (напомню, что из клиентских ОС работать с OCSP могут только Windows Vista и выше), то нужно сначала экспортировать произвольный сертификат, который выдал проверяемый сервер CA в файл. После этого в командной строке набрать следующую команду:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;certutil –url path\certificate.cer&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;и откроется следующее окно:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="URL Retrival Tool" border="0" alt="URL Retrival Tool" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSPResponder_FAF6/URRT_3.jpg" width="538" height="348" /&gt; &lt;/p&gt;  &lt;p&gt;Я на сервере CA отозвал один сертификат и решил проверить, что мне на это скажет OCSP. Для этого в правой части выбираем, что хотим проверить статус сертификата с использованием только OCSP и нажимаем кнопку Retrieve. И в верхнем окне мы видим адрес OCSP сервера и статус проверямого сертификата. Как видите, он отозван. Администраторам PKI следует знать о богатейшем функционале certutil не только в теории, но и в практике тоже.&lt;/p&gt;  &lt;p&gt;Кстати говоря, я себе сделал контекстное меню для .CER и .DER файлов, по которому вызывается эта утилита и можно будет сразу не отходя от кассы проверить сертификат или CDP/AIA того CA, который издал этот сертификат. Вот как выглядит .reg файл:&lt;/p&gt;  &lt;p&gt;Windows Registry Editor Version 5.00 &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff" face="consolas"&gt;[HKEY_CLASSES_ROOT\CERFile\shell\Check Certificate Revocation Status] &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#0000ff" face="consolas"&gt;[HKEY_CLASSES_ROOT\CERFile\shell\Check Certificate Revocation Status\command]        &lt;br /&gt;@="certutil -url \"%1\""&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h1 align="center"&gt;Ascertia OCSP Client Tool&lt;/h1&gt;  &lt;p&gt;Когда вы PKI занимаетесь на достаточно серьёзном уровне, тогда приходят более другие инструменты цена у которых отлична от нуля и которые являются уже Enterprise инструментами, либо у вас клиент работает под ОС, которая не поддерживает OCSP (все ОС до Windows Vista). Один из таких инструментов – &lt;a href="http://www.ascertia.com/Products/ocspclient/Default.aspx?m=eidvalid&amp;s=ocspcl" target="_blank"&gt;OCSP Client Tool&lt;/a&gt; от &lt;a href="http://ascertia.com/" target="_blank"&gt;Ascertia&lt;/a&gt;. Вот как он выглядит:&lt;/p&gt;  &lt;p&gt; &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="OCSP Client Tool" border="0" alt="OCSP Client Tool" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSPResponder_FAF6/ocspct1_6.jpg" width="543" height="513" /&gt; &lt;/p&gt;  &lt;p&gt;Как видите, интерфейс достаточно простой, но в нём уже видны некоторые возможности. Это возможность проверки множества сертификатов в пределах одного запроса. Это означает, что каждый сертификат не будет проверяться отдельным запросом, а все Serial ID сертификатов (в пределах одинакового издателя) будут помещены в один OCSP запрос и OCSP так же одним ответом выдаст статус по каждому сертификату. Т.е. запросов будет ровно столько, сколько различных издателей присуствует в этом окне. Также возможно вместо индивидуального добавления сертификата добавлять цепочку сертификатов (certificate chain) в формате PKCS#7. Плюс, так же можно указать какой-то один OCSP респондер явно (ведь он может работать с несколькими CA), либо руководствоваться информацией об адресе OCSP респондера из поля AIA каждого сертификата. И ещё можно подписать сам запрос. Но нас больше будет интересовать, что именно мы можем проверить:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="OCSP Client Tool Advanced Settings" border="0" alt="OCSP Client Tool Advanced Settings" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSPResponder_FAF6/ocspct2_3.jpg" width="336" height="307" /&gt; &lt;/p&gt;  &lt;p&gt;Мы можем проверить работу следующих компонентов:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Nonce extension&lt;/strong&gt; – это особый тип запроса, в который включается как ID проверяемого сертификата, так и уникальный номер запроса. OCSP респондер должен ответить клиенту сообщением, которое включает этот уникальный номер запроса. Плюс, это заставляет OCSP респондер игнорировать свой кеш, а выполнять полную сверку с CRL. По умолчанию в Windows-реализации OCSP Responder, такие запросы не поддерживаются, поскольку Windows-клиенты никогда не используют Nonce. Но вы можете включить поддержку таких запросов в консоли OCSP Responder.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Add Service Locator extension&lt;/strong&gt; – используется для извлечения AIA расширения и включения его в специальное поле запроса Service Locator.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Check all certificates in PKCS#7&lt;/strong&gt; – при добавлении в основное окно не индвивидуальные сертификаты, а цепочку сертификатов, то эта опция разберёт эту цепочку на уникальные сертификаты.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Verify signature on OCSP response&lt;/strong&gt; – будет произведена проверка цифровой подписи OCSP-ответа с построением пути для этого сертификата до корневого CA.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Сheck OCSP Responder authority to respond to CA&lt;/strong&gt; – проверяется, что сертификат OCSP, которым подписан OCSP-ответ выдан тем же CA, которым выдан сам проверяемый сертификат. Этим проверяется, что OCSP респондер авторизован для конкретного CA для сообщения сведений о статусе сертификатов. Так же проверяется, что в EKU этого сертификата указано OCSP Signing.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Собственно и все основные настройки. Теперь нажимаем в основном окне Send Request и получаем много профита:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="OCSP Client Tool results" border="0" alt="OCSP Client Tool results" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSPResponder_FAF6/ocspct3_3.jpg" width="543" height="513" /&gt; &lt;/p&gt;  &lt;p&gt;Собственно, тут всё видно, что к чему. В моём случае мой OCSP респондер прошёл все дополнительные проверки и попутно сообщил статус сертификата. В принципе, мне кажется, что данная утилита достаточно годная для проверки работоспособности и корректной настройки OCSP Responder. У меня пока есть только триал, а на счёт полной лицензии сведений не имею, т.к. господа в конторе не отличаются особой шустростью. Мне пришлось ждать 2 дня, чтобы получить только триал &lt;img alt="Rock" src="/smilies/blush.gif"&gt; хотя, саппорт у них очень оперативный.&lt;/p&gt;  &lt;p&gt;надеюсь, этот пост поможет вам подружиться с безусловно хорошей вещью, как OCSP Responder и научиться проверять его и работу сопутствующих компонентов &lt;img alt=":)" src="/smilies/happy.gif"&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=1a51a0b1-fa1b-4056-bc3e-0b0ee4e5a530"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,1a51a0b1-fa1b-4056-bc3e-0b0ee4e5a530.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / OCSP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=a030dc2e-0872-419d-826f-6aa56e2ce5f4</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,a030dc2e-0872-419d-826f-6aa56e2ce5f4.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,a030dc2e-0872-419d-826f-6aa56e2ce5f4.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=a030dc2e-0872-419d-826f-6aa56e2ce5f4</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Секреты Software Restriction Policies (часть 5.a)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,a030dc2e-0872-419d-826f-6aa56e2ce5f4.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,a030dc2e-0872-419d-826f-6aa56e2ce5f4.aspx</link>
      <pubDate>Thu, 06 Aug 2009 22:20:33 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Чуть не забыл про обещание выложить ответ тех.поддержки по поводу проблематики, изложенной в &lt;a href="http://www.sysadmins.lv/PermaLink,guid,907c4a40-3dc0-4c2c-8755-dca6dfa47bc7.aspx"&gt;Секреты Software Restriction Policies (часть 5)&lt;/a&gt;. Вот какой я получил ответ от них:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#804040"&gt;Hello Vadims,&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804040"&gt;My name is Rahul and I am from the Windows Core Team at GTSC.  I have been looking at this case for the Software Restriction Policy.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804040"&gt;After some testing we have been able to recreate the behaviour that you are noticing:&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804040"&gt;This seems to be by design. On the Explorer.exe side, everything seems to be running ok.  We cannot launch the file types restricted via policy. This is because when ShellExecute comes into play, we enforce SRP policies. This is also true for the Windows Script Host, which does it's own checks apart from the shell.  Specifically regarding mshta.exe, we have the following situation:&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804040"&gt;- Since the shell is allowed to run lnk files, we do it ok;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804040"&gt;- Since there's a specific additional rule that will allow us to run anything located under %windir%\system32, the shell can't enforce any SRP policy, since lnk files can be run.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804040"&gt;- The shell starts mshta.exe, which, by its own, doesn't enforce the SRP policy, allowing the file to run.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#804040"&gt;This behaviour is by design.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;итого, мы имеем следующее: как выяснилось, политика SRP не очень плотно накладывается на систему и внешние приложения должны сами проверять открытие своих файлов на соответствие правилам SRP. Если мы запускаем файлы через ярлыки. Что с успехом делают cmd.exe, msiexec.exe и cmd.exe. Но такие приложения, как regedit.exe, mshta.exe, hh.exe, mmc.exe ничего не знают о существовании SRP и неспособны произвести такую проверку. Понятно, что это by design (в чём я и не сомневался), но какой-то не очень удачный design. Вот так.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=a030dc2e-0872-419d-826f-6aa56e2ce5f4"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,a030dc2e-0872-419d-826f-6aa56e2ce5f4.aspx</comments>
      <category>Security</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=37b74977-d937-4383-b41b-982eb287bc23</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,37b74977-d937-4383-b41b-982eb287bc23.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,37b74977-d937-4383-b41b-982eb287bc23.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=37b74977-d937-4383-b41b-982eb287bc23</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Встречаем – AppLocker!</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,37b74977-d937-4383-b41b-982eb287bc23.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,37b74977-d937-4383-b41b-982eb287bc23.aspx</link>
      <pubDate>Thu, 06 Aug 2009 20:36:11 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Хорошие новости – я наконец-то добрался до него! Что такое &lt;strong&gt;AppLocker&lt;/strong&gt;? По сути это следующая стадия эволюции хорошо знакомой нам политики Software Restriction Policies, который доступен в операционных системах начиная с Windows 7 (Ultimate и Enterprise) и Windows Server 2008 R2. Безусловно, политики SRP остались в этих ОС (и SRP единственный инструмент подобного рода, который будет доступен в домашних редакциях Windows 7) в качестве совместимости. Я ещё не имею большого опыта (всего неделю использую его) с AppLocker и хочу поделиться первыми впечатлениями с замашками на общий обзор. Ну и обязательно проведу сравнительные моменты с политикой Software Restriction Policies. Я буду стараться рассмотреть только технические и организационные моменты политики AppLocker, поэтому данная статья может быть полезна только тем, кто имел опыт работы с SRP в качестве материала подготовки перехода с SRP к AppLocker. Для новичков тут вряд ли будет что-то интересное.&lt;/p&gt;  &lt;h1 align="center"&gt;Введение&lt;/h1&gt;  &lt;p&gt;Прежде всего, чтобы как-то начать с ним работать следует включить и запустить службу &lt;strong&gt;Application Identity&lt;/strong&gt;.&amp;#160; Чтобы добраться до самой политики &lt;strong&gt;AppLocker&lt;/strong&gt; нужно запустить редактор групповой политики и развернуть его в секции &lt;strong&gt;Computer Configuration&lt;/strong&gt;. Если это изолированная рабочая станция, то просто &lt;strong&gt;Start –&amp;gt; Run… –&amp;gt; secpol.msc&lt;/strong&gt;. И мы увидим примерно такое окно:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="AppLocker Console Screen" border="0" alt="AppLocker Console Screen" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/AppLocker_13594/applocker1_3.jpg" width="721" height="394" /&gt; &lt;/p&gt;  &lt;p&gt;Здесь мы видим деление на 3 категории:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Executable Rules&lt;/strong&gt; – содержит правила для файлов с расширениями &lt;strong&gt;COM&lt;/strong&gt;,&lt;strong&gt; SCR&lt;/strong&gt; и &lt;strong&gt;EXE&lt;/strong&gt;; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Windows Installer Rules&lt;/strong&gt; – содержит правила для файлов с расширениями &lt;strong&gt;MSI&lt;/strong&gt; и &lt;strong&gt;MSP&lt;/strong&gt;; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Script Rules&lt;/strong&gt; – содержит правила для файлов с расширениями &lt;strong&gt;BAT&lt;/strong&gt;, &lt;strong&gt;CMD&lt;/strong&gt;, &lt;strong&gt;JS&lt;/strong&gt;, &lt;strong&gt;PS1&lt;/strong&gt; и &lt;strong&gt;VBS&lt;/strong&gt;. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Update 16.08.2009:&lt;/font&gt;&lt;/strong&gt; в категорию &lt;strong&gt;Executable Rules&lt;/strong&gt; включено ещё одно PE расширение – &lt;strong&gt;SCR&lt;/strong&gt; (скринсейвер). Однако, в документации я не смог найти ни одного упоминания, что это расширение где-то проверяется в AppLocker. Но имейте ввиду, что де-факто это так.&lt;/p&gt;  &lt;p&gt;Вот такого разделения весьма не хватало в политиках SRP, где всё было в кучу, теперь всё сгруппировано по категориям. Однако, в AppLocker нету возможности управлять расширениями, в отличии от SRP (где можно было редактировать окно Designated File Types), что является первой точкой возможнного ослабления защиты. И (ололо?) тут мы не видим HTA файлов! Следовательно, при использовании апплокера мы можем невозбранно запускать произвольный VBS код (разумеется, в контексте пользователя, который его запустил). Хотя, может, я слишком маниакальный и только вижу пользователей, которые пачками проносят HTA файлы &lt;img alt=":)" src="/smilies/happy.gif"&gt;.&lt;/p&gt;  &lt;h1 align="center"&gt;Создаём самые первые правила&lt;/h1&gt;  &lt;p&gt;По умолчанию в консоли никаких правил нету (в отличии от SRP, где основные правила исключений уже были). Чтобы создать правила по умолчанию нужно выбрать нужную категорию и правой кнопкой мышки выбрать &lt;strong&gt;Create Default Rules&lt;/strong&gt;. И тогда появится 3 правила по умолчанию (и так будет в каждой категории):&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Allow Everyone all files in Windows directory&lt;/strong&gt;; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Allow Everyone all files in ProgramFiles directory&lt;/strong&gt;; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Allow BUILTIN\Administrator all files&lt;/strong&gt;. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Тут всё понятно – это аналог дефолтных правил в SRP с добавлением того, что администратор может запускать что угодно. Но я буду рекомендовать удалять последнее правило из каждой категории, которое позволяет администраторам запускать всё что угодно (а случай работы с полностью отключенным UAC я даже обсуждать не хочу). Мы ведь помним, что в 99% случаев всех заражений виноват именно локальный администратор.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; понятие &lt;strong&gt;BUILTIN\Administrators&lt;/strong&gt; здесь трактуется как использование приложений в привелигированном режиме (elevated mode). При обычном запуске приложений на администратора распространяются только первые 2 правила.&lt;/p&gt;  &lt;p&gt;На этом этапе мы видим кардинальное перерождение уровня &lt;strong&gt;Basic User&lt;/strong&gt; в новый формат. Basic User в SRP позволял запускать файлы в обычном режиме и запрещал запускать приложения в elevated mode. Здесь же этот функционал работает с точностью до наоборот. Задание исключений для группы BUILTIN\Administrators не позволяет нам запускать приложения в обычном режиме, но разрешает их запуск в elevated mode. И ярковыраженного Basic User больше нету.&lt;/p&gt;  &lt;p&gt;Уже из скриншота видно, что мы можем как-то разделять правила по группам пользователей. Этого, кстати, тоже не хватало в SRP. Теперь мы имеем возможность разделять правила для различных пользователей даже на уровне одной изолированной от домена рабочей станции. Это решает сразу 2 проблемы, которые были в SRP:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;нету необходимости в неудобном переключателе между режимом применения политики (для всех пользователей, кроме администраторов или для всех пользователей без исключения) в окне &lt;strong&gt;Enforcement&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;нету необходимости редактировать политики в нескольких местах. Т.е. в отличии от SRP, AppLocker уже не имеет настроек в секции &lt;strong&gt;User Configuration&lt;/strong&gt;. Это упрощает процесс создания и внедрения политик на уровне домена, не требуя от администратора досконального знания, как политики из разных разделов GPO будут вести себя в случае конфликтов. Хотя, это знать полезно. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Как только мы создали правила, AppLocker уже начинает работать. Это довольно-таки спорный момент. В SRP у нас было отдельная секция, где мы задавали уровень по умолчанию, а в AppLocker этого уже нету. Каждая категория начинает работать в момент, когда создано хоть одно правило. Тогда работа идёт в строгом соответствии с этими правилами (даже если оно одно). Если удалить все правила из конкретной категории, то политика для данной категории отключается и конкретные типы файлов можно запускать без ограничений. Если сравнить с SRP, то мы так же помним, что политики SRP не экспортируются никак! Т.е. мы не можем их переносить между компьютерами, бэкапить на уровне локальной рабочей станции. Поэтому для предотвращения потери конфигурации и правил в SRP был введён переключатель режима. AppLocker в этом плане немного изменился – мы имеем возможность экспорта настроек и правил политики. Для этого нужно выставить курсор на секцию AppLocker и правой кнопкой мышки выбрать &lt;strong&gt;Export Policy&lt;/strong&gt;. К счастью, политики экспортируются в читабельный XML файл, а не в бинарный мусор (как в случае с экспортом правил IPSec). Для полного отключения политики, там же после экспорта выбрать &lt;strong&gt;Clear Policy&lt;/strong&gt;. Т.е. для временного отключения AppLocker мы сначала эксортируем настройки и правила, очищаем политику и работаем. Когда работу закончили – импортируем политику и мы снова под колпаком. SRP поддерживал возможность временного отключения политики на конкретной рабочей станции через реестр. Теперь мы такого функционала лишены, хотя с возможностью экспорта это не сильно и нужно нам. Ну и, повторюсь, AppLocker работает только в режиме белого списка.&lt;/p&gt;  &lt;h1 align="center"&gt;Основные изменения в правилах&lt;/h1&gt;  &lt;p&gt;А теперь уже конкретно по правилам. В SRP у нас была возможность создавать 4 типа правила: &lt;strong&gt;Certificate&lt;/strong&gt;, &lt;strong&gt;Hash&lt;/strong&gt;, &lt;strong&gt;Network Zone&lt;/strong&gt;, &lt;strong&gt;Path&lt;/strong&gt;. Как и ожидалось, Network Zone не смог найти себе места в этих политиках, поэтому в AppLocker этот тип удалён и остаётся только 3: &lt;strong&gt;Publisher&lt;/strong&gt; (бывший Certificate rule), &lt;strong&gt;Hash&lt;/strong&gt;, &lt;strong&gt;Path&lt;/strong&gt; с такой же приоритезацией. Правила издателя (&lt;strong&gt;Publisher&lt;/strong&gt;) и пути (&lt;strong&gt;Path&lt;/strong&gt;) несколько изменились в своей сути. Начнём с правила пути.&lt;/p&gt;  &lt;h1 align="center"&gt;Изменения в правилах пути&lt;/h1&gt;  &lt;p&gt;Если вспомнить SRP, то там мы могли использовать абсолютные пути, переменные окружения (но на самом деле оказалось, что это очень опасно), подстановочные знаки и чтение путей из реестра. В AppLocker мы можем использовать только абсолютные пути и специальные переменные окружения. Вот таблица (взята из встроенной в Windows справки):&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="812"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="298"&gt;         &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;Windows directory or drive&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="224"&gt;         &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;AppLocker path variable&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="288"&gt;         &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;Windows environment variable&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="298"&gt;         &lt;p&gt;Windows&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="224"&gt;         &lt;p&gt;%WINDIR%&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="288"&gt;         &lt;p&gt;%SystemRoot%&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="298"&gt;System32&lt;/td&gt;        &lt;td valign="top" width="224"&gt;         &lt;p&gt;%SYSTEM32%&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="288"&gt;         &lt;p&gt;%SystemDirectory%&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="298"&gt;Windows Installation directory&lt;/td&gt;        &lt;td valign="top" width="224"&gt;         &lt;p&gt;%OSDRIVE%&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="288"&gt;         &lt;p&gt;%SystemDrive%&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="298"&gt;Program Files&lt;/td&gt;        &lt;td valign="top" width="224"&gt;         &lt;p&gt;%PROGRAMFILES%&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="288"&gt;         &lt;p&gt;%ProgramFiles% and            &lt;br /&gt;%ProgramFiles(x86)%&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="298"&gt;         &lt;p&gt;Removable media (for example, CD or DVD)&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="224"&gt;         &lt;p&gt;%REMOVABLE%&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="288"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="298"&gt;         &lt;p&gt;Removable storage device (for example, USB flash drive)&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="224"&gt;         &lt;p&gt;%HOT%&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="288"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Мы в правилах можем использовать только переменные, которые указаны во второй колонке. Мы лишены возможности использовать другие переменные как &lt;strong&gt;%temp%&lt;/strong&gt;, &lt;strong&gt;%logonserver%&lt;/strong&gt;&amp;#160; и др. Но, в то же время, мы можем использовать в правилах переменные для обозначения CD/DVD приводов и съёмных накопителей (просто флешки). Здесь следует учесть, что эти переменные не являются переменными окружения Windows, а внутренние для AppLocker, даже не смотря на совпадение в синтаксисе. Это ещё сильнее утвердило во мне мысль, что Microsoft знал про баг с переменными окружения в Windows и сейчас уже подмена переменных ничего не даёт совсем для обхода запретов политики. Вобщем, тут мы немного потеряли (переменные окружения и чтение путей из реестра), но, в то же время, приобрели защиту от подмены переменных окружения и получили перменные для съёмных дисков и CD/DVD приводов.&lt;/p&gt;  &lt;h1 align="center"&gt;Изменения в правилах издателя (Publisher rule)&lt;/h1&gt;  &lt;p&gt;Это по сути ребрендинг правил сертификатов (Certificate Rule). Тут изменения более глобальные. И так же, частично в лучшую сторону и частично в обратную. Когда вы делаете правило издателя сертификата, то вы указываете на файл, который содержит цифровую подпись и всё. Политика сама извлечёт из файла цифровую подпись и прикрутит издателя к правилу. Вот как это выглядит вживую:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Publsher Rule" border="0" alt="Publsher Rule" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/AppLocker_13594/applocker2_3.jpg" width="566" height="465" /&gt;&lt;/p&gt;  &lt;p&gt;я ему просто подсунул подписанный файл и мы видим несколько разных полей. Поле &lt;strong&gt;Publisher&lt;/strong&gt; извлекается из поля &lt;strong&gt;Subject&lt;/strong&gt; сертификата цифровой подписи. Остальные поля извлекаются уже непосредственно из внутреннего кода файла (он обычно зашивается в EXE файлы при компиляции исходников). В случае со скриптами я не уверен, что они поддерживают распознаваемые версии и другие данные, которые мы видим пустыми на нашем скриншоте. И тогда все файлы данной категории, которые подписаны этим сертификатом будут запускаться без проблем. Двигая указанный ползунок мы можем указывать строгость соответствия подписи от полного соответствия, включая версию файла, до конкретного издателя.&lt;/p&gt;  &lt;p&gt;Если говорить про версии файлов, то мы видим (правда, затенённое) поле с раскрывающимся списком, где мы можем задавать как точное совпадение версии (&lt;strong&gt;Exact match&lt;/strong&gt;), так и сравнительную версию – только текущая и более новые версии (And above) или только текущая и более старые версии (&lt;strong&gt;And below&lt;/strong&gt;).&lt;/p&gt;  &lt;p&gt;Здесь, в отличии от SRP уже не используется внутренний в Windows механизм Trusted Publishers, который использовался в SRP, поэтому подсовывание сертификатов в этот контейнер ничем нам не поможет, как я уже демонстрировал в случае с SRP.&lt;/p&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h2 align="center"&gt;Внимание – Publisher!&lt;/h2&gt;  &lt;p&gt;Но тут ВНЕЗАПНО я понял одну вещь. SRP в правилах сертификатов проверял не только соответствие цифровой подписи, но и полное соответствие сертификата в правиле Certificate Rule и сертификата в самой подписи. AppLocker этого не делает. В отношении сертификатов, AppLocker проверяет только 2 вещи:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;целостность подписи (вне зависимости кем эта подпись сделана). &lt;/li&gt;    &lt;li&gt;соответствие поля &lt;strong&gt;Subject&lt;/strong&gt; в сертификате подписи. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Что даёт нам некоторые преимущества. Например, утилиты Sysinternals подписаны разными сертификатами в разное время. Из-за чего для каждого сертификата в SRP надо было указывать каждый уникальный сертификат, что доставляло неудобства. Здесь же мы можем создавать более гибкие правила, которые позволяют запускать, например, любую версию ворда не ниже 10.0. Если у вас в сети используется несколько версий офиса (2002, 2003 и 2007), то мы можем одним правилом разрешить все 3 версии, указав в правиле версию самого древнего ворда и сказать, что можно эту версию и более новые. То же самое и касается утилит Sysinternals. &lt;/p&gt;  &lt;p&gt;Что касается скриптов, если в SRP для них правила сертификатов были весьма удобным и безопасным решением. Но, как я говорил, соответствие самих сертификатов AppLocker не проверяет, поэтому мы можем невозбранно подделывать цифровые подписи:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;makecert.exe -n &amp;quot;cn=Administrator, cn=Users, dc=contoso, dc=com&amp;quot; -ss my -eku 1.3.6.1.5.5.7.3.3&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;эта команда сгенерирует нам свой сертификат с таким же полем &lt;strong&gt;Subject&lt;/strong&gt;, что и подписаны скрипты на предприятии (а там скрипты подписаны сертификатом администратора и к нему доступа у нас нету). Далее, мы этим сертификатом подписываем наши вредоносные скрипты, проносим на рабочие компьютеры и они будут запускаться! И только потому, что в наших сертификатах совпал &lt;strong&gt;Subject&lt;/strong&gt; с сертификатом администратора. Технет пишет:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Use a publisher condition when possible. Publisher conditions can be created to allow applications to continue to function even if the location of the application changes or if the application is updated&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;но мы им не поверим, а от себя скажу, что правила издателей нельзя использовать для скриптов ни в коем случае, а в остальных случаях использовать с особой осторожностью. Пользователи не дураки и смогут прочитать сертификат цифровой подписи в своих логонных скриптах.&lt;/p&gt;  &lt;h1 align="center"&gt;Исключения из правил&lt;/h1&gt;  &lt;p&gt;Поскольку зачастую правила пути и издателя имеют достаточно большой охват (к правилам хеша это не относится), то возможны ситуации, когда из области действия правила нужно что-то исключить. В SRP мы просто создавали отдельное запрещающее правило, что было несколько уныло. Теперь мы можем в самом правиле задавать исключения:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="AppLocker Exceptions" border="0" alt="AppLocker Exceptions" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/AppLocker_13594/applocker3_6.jpg" width="464" height="365" /&gt; &lt;/p&gt;  &lt;p&gt;На скрине видно, что у нас есть основное разрешающее правило издателя. Но мы хотим что-то из этого издателя запретить, например, запуск тестовых скриптов из определённой папки. Мы в ходе создания правила указываем нужное исключение (причём, исключение может быть любого типа, а не только того типа, что и основное правило). Достаточно гуманно.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; не забывайте, что в Windows 7 и Windows Server 2008 R2 системный темп всё так же разрешён на запись пользователям и подпадает под дефолтные ращрешающие правила. Поэтому, если вы ещё их не перенесли в другое место, вы должны в правилах папки Windows должны включить исключения на папку Temp и папку спулера печати.&lt;/p&gt;  &lt;h1 align="center"&gt;Много правил в одном правиле&lt;/h1&gt;  &lt;p&gt;В ходе создания правил вы увидите, что вы в процессе создания правила можете внутри создавать коллекцию подправил, которая будет составлять ваше правило. Скриншот показывать не буду, т.к. это видно по предыдущему скрину. Там есть кнопка Add, с помощью которой можете добавлять несколько различных исключений для своих правил. Это тоже весьма удобно, при условии, что администратор осмысленно структуирует свои правила.&lt;/p&gt;  &lt;h1 align="center"&gt;Баги-баги&lt;/h1&gt;  &lt;p&gt;Я ещё не уверен, что это баг (нашёл такое поведение пока писал этот пост), но мне такой расклад не понравился. Что я сделал:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;создал правило издателя, которое разрешает запускать любые скрипты определённого издателя. &lt;/li&gt;    &lt;li&gt;создал там же исключение из правила. По пути запретил одну папку. &lt;/li&gt;    &lt;li&gt;скрипты из этой папки не запускаются. Всё логично. &lt;/li&gt;    &lt;li&gt;а теперь я создаю ещё одно такое же правило издателя (не удаляя имеющееся правило), но без исключений. И скрипты из запрещённой папки снова начинают запускаться. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Мне думается, что если где-то есть запрет, то он должен быть приоритетней разрешения. Хотя, я ещё далеко не всё знаю про AppLocker, поэтому могу просто чего-то не знать. Либо же явное разрешение без исключений перекрывает запрет в исключениях. Как по аналогии с правами NTFS, когда явно назначенное разрешение перекрывает унаследованный запрет.&lt;/p&gt;  &lt;p&gt;Ну что ж, написал много букв по не самой лёгкой теме, поэтому на сегодня вам будет достаточно. У меня ещё есть несколько открытых вопросов по AppLocker и по ходу их разрешения буду писать в бложик.&lt;/p&gt;  &lt;p&gt;Удачи! © One &lt;img alt=":)" src="/smilies/happy.gif"&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=37b74977-d937-4383-b41b-982eb287bc23"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,37b74977-d937-4383-b41b-982eb287bc23.aspx</comments>
      <category>Security</category>
      <category>Security / AppLocker</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=907c4a40-3dc0-4c2c-8755-dca6dfa47bc7</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,907c4a40-3dc0-4c2c-8755-dca6dfa47bc7.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,907c4a40-3dc0-4c2c-8755-dca6dfa47bc7.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=907c4a40-3dc0-4c2c-8755-dca6dfa47bc7</wfw:commentRss>
      <title>Секреты Software Restriction Policies (часть 5)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,907c4a40-3dc0-4c2c-8755-dca6dfa47bc7.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,907c4a40-3dc0-4c2c-8755-dca6dfa47bc7.aspx</link>
      <pubDate>Fri, 31 Jul 2009 17:10:19 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Сегодня расскажу о ещё одном способе обхода политики SRP и запуске VBS кода в обход политики. На саму идею меня натолкнул Александр Станкевич.&lt;/p&gt;  &lt;p&gt;Суть проблемы была в следующем. Если мы создадим более ограничивающую политику, например, разрешив только запуск .exe файлов из %systemroot% и %systemroot%\system32, то у нас будет 2 таких правила:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font color="#009500"&gt;Unrestricted&lt;/font&gt; - &lt;font color="#0000ff"&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%*.exe&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font color="#009500"&gt;Unrestricted&lt;/font&gt; - &lt;font color="#0000ff"&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%system32/*.exe&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;И тогда у нас из разрешения выпадают .exe файлы из других папок, а так же выпадают остальные типы файлов из указанных папок. Но мы часто пользуемся консолями MMC, которые имеют расширение &lt;strong&gt;.MSC&lt;/strong&gt; и которые проверяются политикой SRP:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Designated File Types" border="0" alt="Designated File Types" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies5_F9F4/filetypes_3.jpg" width="433" height="476" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Так вот, если мы попробуем запустить любой .msc файл из папки system32, то получим ошибку:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Blocked MMC Console" border="0" alt="Blocked MMC Console" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies5_F9F4/blockedmmc_3.jpg" width="771" height="339" /&gt; &lt;/p&gt;  &lt;p&gt;Вроде всё логично, т.к. для &lt;strong&gt;MSC&lt;/strong&gt; файлов нету отдельных исключений в &lt;strong&gt;Additional Rules&lt;/strong&gt;. Но эта же оснастка запускается через &lt;font color="#0000ff"&gt;Start –&amp;gt; Administrative Templates –&amp;gt; Services.lnk&lt;/font&gt;.&lt;/p&gt;  &lt;p&gt;В этом пункте меню находится ярлык на соответствующую оснастку в папке System32. Быстро сориентировавшись я стал искать способ использования этой лазейки и достаточно быстро её нашёл. Ни для кого не секрет, что кроме &lt;strong&gt;cscript.exe&lt;/strong&gt; в системе есть ещё 2 обработчика &lt;strong&gt;VBS/JS&lt;/strong&gt; – это &lt;strong&gt;Internet&lt;/strong&gt; &lt;strong&gt;Explorer&lt;/strong&gt; и &lt;strong&gt;MSHTA.exe&lt;/strong&gt;. Запуск&amp;#160; VBS/JS через IE – занятие довольно утомительное, поскольку этот код сильно зажат на уровне сетевых зон и просто так код запустить не удастся (нужно существенно изменить настройки сетевых зон, чтобы IE без вопросов исполнял абсолютно всё, не спрашивая пользователя). Но &lt;strong&gt;MSHTA.exe&lt;/strong&gt; (&lt;strong&gt;HTA&lt;/strong&gt; – &lt;em&gt;HTML Application&lt;/em&gt;) не использует сетевые зоны и так же &lt;u&gt;является обработчиком кода VBS/JS, который завёрнут в HTML обёртку&lt;/u&gt;. Типичный пример HTA – &lt;strong&gt;Manage Your Server&lt;/strong&gt; в Windows Server 2003. Я сделал следующий трюк – создал на рабочем столе файл &lt;strong&gt;.hta&lt;/strong&gt; следующего содержания:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff" face="Consolas"&gt;&amp;lt;HTML&amp;gt;       &lt;br /&gt;&amp;lt;script language=&amp;quot;vbscript&amp;quot;&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; msgbox &amp;quot;I'm dangerous VB Code!!!!1!11&amp;quot;        &lt;br /&gt;&amp;lt;/script&amp;gt;        &lt;br /&gt;&amp;lt;/HTML&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;и попытался его запустить – получил ошибку. Однако я рядышком сделал шорткат (ссылку) на этот файл и запустил через ссылку. И файл запустился! Я увидел исполненный VBS код. В принципе, внутри тега &lt;strong&gt;&amp;lt;script&amp;gt;&lt;/strong&gt; можно записать любой VBS/JS код и он будет работать. Однако такой способ не сработал для файла с расширением &lt;strong&gt;.VBS&lt;/strong&gt;. В ходе экспериментов было выделено 2 группы расширений, которые различно хандлятся политикой SRP при запуске этих файлов через шорткаты:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;REG, MSC, HTA, CHM&lt;/b&gt; – не хандлятся политикой SRP и запускаются в обход политики через ссылки на указанные файлы.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;CMD, BAT, MSI, VBS, JS&lt;/b&gt; – эти типы файлов корректно хандлятся политикой SRP и их запуск через ссылки невозможен.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;В принципе, HTA обычно редко используется в работе (кроме случаев собственных наработок администраторов), поэтому в общем случае можно блокировать запуск &lt;strong&gt;mshta.exe&lt;/strong&gt;, &lt;strong&gt;reg.exe&lt;/strong&gt; и &lt;strong&gt;hh.exe&lt;/strong&gt;, который используется для просмотра CHM файлов. &lt;/p&gt;  &lt;p&gt;В настоящее время я открыл кейс в техсаппорте Microsoft по этому поводу, поэтому если от них будут какие-то новости, то я об этом обязательно расскажу. Такие дела.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=907c4a40-3dc0-4c2c-8755-dca6dfa47bc7"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,907c4a40-3dc0-4c2c-8755-dca6dfa47bc7.aspx</comments>
      <category>Security</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=8802cfef-4499-481e-9de7-6daa92f873d8</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,8802cfef-4499-481e-9de7-6daa92f873d8.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,8802cfef-4499-481e-9de7-6daa92f873d8.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=8802cfef-4499-481e-9de7-6daa92f873d8</wfw:commentRss>
      <title>Секреты Software Restriction Policies (часть 4)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,8802cfef-4499-481e-9de7-6daa92f873d8.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,8802cfef-4499-481e-9de7-6daa92f873d8.aspx</link>
      <pubDate>Tue, 26 May 2009 18:53:33 GMT</pubDate>
      <description>&lt;div&gt;&lt;P align=justify&gt;Недавно на форуме SysFaq.ru была занятная тема про порядок применения групповых политик в домене. В общем смысле там вопрос сводился к приоритету политик, что настроенный параметр в доменной политике будет иметь приоритет над тем же параметром в локальной политике и работает принцип &lt;STRONG&gt;LSDOU&lt;/STRONG&gt; (&lt;STRONG&gt;Local&lt;/STRONG&gt;, &lt;STRONG&gt;Site&lt;/STRONG&gt;, &lt;STRONG&gt;Domain&lt;/STRONG&gt;, &lt;STRONG&gt;OU&lt;/STRONG&gt;). Но если говорить по SRP, то здесь есть свои нюансы.&lt;/P&gt;
&lt;P align=justify&gt;Если политика SRP определена в нескольких политиках, то результирующая политика не будет состоять из значений последней применившейся политики. Все значения исключений из всех политик будут сложены в одну большую политику с возможными конфликтами. Важно отметить, что &lt;STRONG&gt;&lt;U&gt;в вычислении результирующей политики порядок их применения не имеет никакого значения&lt;/U&gt;&lt;/STRONG&gt;. Когда вы смотрите в RSOP, то видите такую вещь:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Source GPO" border=0 alt="Source GPO" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies4_BE5C/passgpo_3.jpg" width=472 height=77&gt; fig.1.&lt;/P&gt;
&lt;P align=justify&gt;Т.е. видно, какая политика выиграла. В случае с SRP, вы этого не увидите:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="No source GPO" border=0 alt="No source GPO" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies4_BE5C/srpgpo_3.jpg" width=793 height=172&gt; fig.2.&lt;/P&gt;
&lt;P align=justify&gt;Когда вы получите набор правил из всех политик, то вполне вероятны конфликтные ситуации, когда в одной политике правило&amp;nbsp;разрешает запуск чего-то, а в другой политике запрещается, то финальная политика определяется по своим особым законам. Причём, сложности добавляет тот факт, что внутри порядки разные. Например, порядок разбора правил путей отличается от порядка разбора всех остальных типов правил. Поэтому я решил немного детальней осветить этот вопрос, чтобы не было никакой путаницы. Я ещё в журнальной статье (&lt;A href="http://www.samag.ru/cgi-bin/go.pl?q=articles;n=09.2008;a=02"&gt;На страже безопасности – Software Restriction Policies&lt;/A&gt;) отмечал про порядок применения типов правил. Однако, формат журнала не позволял детально рассмотреть этот момент, поэтому я его раскрываю здесь.&lt;/P&gt;
&lt;P align=justify&gt;Итак, когда на клиентский компьютер применилось несколько политик со своими правилами, то они сортируются по конфликтным парам. Конфликтную пару могут составить 2 одинаковых правила (например, по сертификату или хешу), но с разными уровняеми (Unrestricted, Disallowed). Если для правила не нашлось конфликтной пары, то оно считается единственным правилом в паре и в итоге оно будет результирующим. При этом все пары сортируются и проверяются в строгом порядке:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;LI&gt;&lt;I&gt;[&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;сперва запрет&lt;/STRONG&gt;&lt;/FONT&gt;, &lt;FONT color=#009500&gt;&lt;STRONG&gt;потом разрешение&lt;/STRONG&gt;&lt;/FONT&gt;]&lt;/I&gt; &lt;STRONG&gt;Правило сертификата&lt;/STRONG&gt; 
&lt;LI&gt;&lt;I&gt;[&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;сперва запрет&lt;/STRONG&gt;&lt;/FONT&gt;, &lt;FONT color=#009500&gt;&lt;STRONG&gt;потом разрешение&lt;/STRONG&gt;&lt;/FONT&gt;]&lt;/I&gt; &lt;STRONG&gt;Правило хэша&lt;/STRONG&gt; 
&lt;LI&gt;&lt;I&gt;[&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;сперва запрет&lt;/STRONG&gt;&lt;/FONT&gt;, &lt;FONT color=#009500&gt;&lt;STRONG&gt;потом разрешение&lt;/STRONG&gt;&lt;/FONT&gt;]&lt;/I&gt; &lt;STRONG&gt;Правило сетевой зоны&lt;/STRONG&gt; 
&lt;LI&gt;&lt;I&gt;[&lt;FONT color=#009500&gt;&lt;STRONG&gt;сперва разрешение&lt;/STRONG&gt;&lt;/FONT&gt;, &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;потом запрет&lt;/STRONG&gt;&lt;/FONT&gt;]&lt;/I&gt; &lt;STRONG&gt;Правило пути&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P align=justify&gt;Для первых трёх типов на каждый объект может быть задана одна пара правил (не может быть для одного файла 2 разных хеша, поэтому для него существует только один хеш и для этого хеша может быть 2 уровня – Unrestricted/Disallowed). И для первых трёх типов правил &lt;STRONG&gt;&lt;U&gt;работает правило First Matching&lt;/U&gt;&lt;/STRONG&gt;. При попытке запуска файла сперва проверяется запрет по правилу сертификата. Если он есть, то дальнейшая проверка правил обрывается и на основе first matching доступ прекращается. Если же запрета нету, то проверяется разрешение на основе сертификата. Если разрешение есть, то опять же на основе first matching доступ к файлу разрешается и остальные правила не проверяются. Если же правила сертификатов для объекта не обнаружено, то проверка переходит к правилам хешей. Та же самая ситуация повторяется и с хешами и правилами сетевой зоны. Если ничего из этого не соответствует объекту, то процесс переходит к проверке правил путей. &lt;/P&gt;
&lt;P align=justify&gt;В правилах пути существует свой порядок сортировки правил:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;I&gt;[&lt;FONT color=#009500&gt;&lt;STRONG&gt;сперва разрешение&lt;/STRONG&gt;&lt;/FONT&gt;, &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;потом запрет&lt;/STRONG&gt;&lt;/FONT&gt;]&lt;/I&gt; сначала самое общее правило (например, C:\) 
&lt;LI&gt;&lt;I&gt;[&lt;FONT color=#009500&gt;&lt;STRONG&gt;сперва разрешение&lt;/STRONG&gt;&lt;/FONT&gt;, &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;потом запрет&lt;/STRONG&gt;&lt;/FONT&gt;]&lt;/I&gt; более точное (например, C:\Documents and Settings) 
&lt;LI&gt;&lt;I&gt;[&lt;FONT color=#009500&gt;&lt;STRONG&gt;сперва разрешение&lt;/STRONG&gt;&lt;/FONT&gt;, &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;потом запрет&lt;/STRONG&gt;&lt;/FONT&gt;]&lt;/I&gt; ещё более точное (например, C:\Documents and Settings\All Users\Desktop) 
&lt;LI&gt;&lt;I&gt;[&lt;FONT color=#009500&gt;&lt;STRONG&gt;сперва разрешение&lt;/STRONG&gt;&lt;/FONT&gt;, &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;потом запрет&lt;/STRONG&gt;&lt;/FONT&gt;]&lt;/I&gt; &amp;lt;...&amp;gt; до полного соответствия имени файла &lt;/LI&gt;&lt;/UL&gt;
&lt;P align=justify&gt;Здесь так же правила разбиваются на пары. Т.е. для каждой точки пути подбирается такое же правило, но с другим уровнем Unrestrited/Disallowed. Как можно заметить, здесь меняется порядок проверки запретов и разрешений. Если в первых трёх типах правил первыми проверялись запреты, то в правилах путей всё наоборот – сначала обрабатываются разрешения и только потом запреты. Это обусловлено тем, что &lt;STRONG&gt;&lt;U&gt;для правил путей нету правила First Matching&lt;/U&gt;&lt;/STRONG&gt;, а проверяются абсолютно все правила. При этом, как видно из описания, сначала проверяются более общие правила с бОльшей площадью охвата (как весь диск C:\). И вот так проверяются все правила путей и результирующим правилом для объекта станет то, которое проверилось самым последним, которое будет самым точным из всех правил, под которое подпадает проверяемый объект. Безусловно, если есть пара, которая одновременно разрешает и запрещает запуск по полному имени файла, то последним проверится запрет и доступ будет запрещён. В этом смысле так же работает правило, что одинаковый запрет имеет приоритет над таким же разрешением. Если в исключениях не нашлось ни одного правила, под которое смог бы подпасть объект, тогда решение о запуске будет приниматься на основе &lt;STRONG&gt;Default Level&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Примечание:&lt;/STRONG&gt;&lt;/FONT&gt; при проверке результирующей суммы в RSOP.MSC на клиентах Windows Vista SP1 и выше вы можете попасть на одну засаду. Дело в том, что новая консоль RSOP.MSC теперь показывает не всё. В разрезе результирующей политики вы не увидите правил сертификатов! Т.е. они по факту есть и работают (соответствующие сертификаты размещаются в контейнерах &lt;STRONG&gt;Trusted/Untrusted Publishers&lt;/STRONG&gt; в &lt;STRONG&gt;CertStore&lt;/STRONG&gt;), но в этой консоли их не будет. Почему так – я не знаю, но вам следует принимать во внимание этот факт.&lt;/P&gt;
&lt;P align=justify&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; хочу замтетить, что порядок применения политик SRP влияет только на &lt;STRONG&gt;Default level&lt;/STRONG&gt;, &lt;STRONG&gt;Enfocrement&lt;/STRONG&gt;, &lt;STRONG&gt;Designated Files Types&lt;/STRONG&gt; и секцию &lt;STRONG&gt;Trusted Publishers&lt;/STRONG&gt;. &lt;U&gt;Для &lt;STRONG&gt;Additional Rules&lt;/STRONG&gt; порядок применения политик не имеет значения&lt;/U&gt;.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=8802cfef-4499-481e-9de7-6daa92f873d8"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,8802cfef-4499-481e-9de7-6daa92f873d8.aspx</comments>
      <category>Security</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=9bee60f3-72dd-4a4f-88b4-649c41949dc6</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,9bee60f3-72dd-4a4f-88b4-649c41949dc6.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,9bee60f3-72dd-4a4f-88b4-649c41949dc6.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=9bee60f3-72dd-4a4f-88b4-649c41949dc6</wfw:commentRss>
      <slash:comments>11</slash:comments>
      <title>Секреты Software Restriction Policies (часть 3)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,9bee60f3-72dd-4a4f-88b4-649c41949dc6.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,9bee60f3-72dd-4a4f-88b4-649c41949dc6.aspx</link>
      <pubDate>Wed, 13 May 2009 20:12:14 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Update 04.09.2009:&lt;/FONT&gt;&lt;/STRONG&gt; для защиты от атаки на SRP путём подмены сертификатов цифровой подписи обязательно прочтите обновлённый материал: &lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,19bf758d-2a16-427d-92c7-44bd6a42ff05.aspx" rel=bookmark&gt;Защищаем Software Restriction Policies&lt;/A&gt;. Т.е. вместо отключения возможности добавления сертификатов в Trusted Publishers, вы можете запрещать пользователям добавлять свои сертификаты в контейнер Trusted Root Certification Authorities.&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Update 20.12.2009:&lt;/FONT&gt;&lt;/STRONG&gt; пофиксено правило запрета для папки Temp. Вместо переменной %systemroot% используется путь из реестра.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Update 22.04.2010:&lt;/FONT&gt;&lt;/STRONG&gt; пофиксен путь реестра для принтеров.&lt;/P&gt;
&lt;P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Хорошие новости – сегодня раскроем очередную партию секретов Software Restriction Policies.&lt;/P&gt;
&lt;P&gt;Плохие новости – буду срывать покровы и показывать, как ещё можно злонамеренно обходить политику.&lt;/P&gt;
&lt;P&gt;Жизнь такая интересная штука, которая любит преподносить сюрпризы, как приятные, так и не очень. Вот и сейчас, казалось бы, считал, что разобрался с вопросом SRP, куда уж дальше? А вот и нет. Давайте по порядку.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;1)&lt;/STRONG&gt;&lt;/FONT&gt; Возьмём пост: &lt;A href="http://www.sysadmins.lv/PermaLink,guid,f6243235-c882-4b09-9320-55606dc241c8.aspx"&gt;Секреты Software Restriction Policies (часть 2)&lt;/A&gt; и список стандартных правил из него. Ни в коем случае в исключениях нельзя использовать переменные окружения, типа %systemroot%, %programfiles%, %userprofile%, etc, поскольку это таит в себе угрозу: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Start –&amp;gt; Run… –&amp;gt; &lt;FONT color=#0000ff&gt;set programfiles=c:\users\username\desktop&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;&lt;U&gt;&lt;STRONG&gt;и эта строчка перепишет переменную окружения %programfiles% на новое значение&lt;/STRONG&gt;&lt;/U&gt;&lt;/EM&gt;. Как можно догадаться, что теперь это исключение в политике &lt;FONT color=#ff0000&gt;будет отрабатывать не на настоящую папку Program Files, а на десктоп пользователя и пользователь сможет запускать оттуда что угодно!&lt;/FONT&gt; И вы ничего с этим не сделаете. Следовательно, эти 2 переменные следует заменить на оригинальные значения (т.е. ключи реестра), если вы использовали переменные окружения, вместо ключей реестра, которые показывают реальный путь до этих папок:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir%&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Но эти 2 переменные – не единственные, которые мы используем. Если у нас доменная сеть, то пользователям нужно разрешать запуск логонных скриптов, которые хранятся в папке NetLogon контроллера домена. Общий вид исключения выглядит как:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%logonserver%\Netlogon\*.bat&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Поскольку папка Netlogon реплицируется между контроллерами домена, то переменная %logonserver% позволяет гарантированно запустить логонный скрипт, даже если остальные контроллеры домена временно недоступны. Но, как я уже показал, переменную %logonserver% можно перенаправить куда угодно и используя это исключение может запускать свои приложения. Чтобы устранить этот недостаток можно пойти двумя путями:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;использовать полный прямой путь до папки со скриптами. Это может быть не очень удобно 
&lt;LI&gt;использовать цифровые подписи для логонных скриптов. Значительно повышает эффективность работы и безопасность запуска скриптов, но требует более серьёзной технической подготовки от IT-персонала. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Так же не следует заменять %logonserver% на &lt;FONT color=#0000ff&gt;\\domain.com\netlogon\*.bat&lt;/FONT&gt;, поскольку при разрешении имени домена далеко не факт, что пользователь получит имя и адрес работающего контроллера. В принципе, такой формат будет возвращать имя нужного контроллера, но я не готов ручаться, что это будет работать всегда.&lt;/P&gt;
&lt;P&gt;Стало быть, утверждение из предыдущего поста: “&lt;EM&gt;следует предельно максимально использовать переменные окружения и ключи реестра вместо абсолютных путей&lt;/EM&gt;” следует считать частично верным. Т.е. &lt;STRONG&gt;&lt;U&gt;переменные окружения использовать не рекомендуется использовать вообще&lt;/U&gt;&lt;/STRONG&gt;. А так же не рекомендуется использовать ключи реестра из ветки HKCU, поскольку пользователь может их менять на своё усмотрение.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;2)&lt;/STRONG&gt;&lt;/FONT&gt; с подсказки коллеги с форума SysAdmins.SU &lt;A href="http://forum.sysfaq.ru/index.php?showuser=5338" target=_blank&gt;WindowsNT&lt;/A&gt; (который тоже активно применяет SRP в своих организациях и занимается исследованием этой темы). Пользователи могут шедулить задания, которые будут исполняться через каждую минуту и ждать, когда администратор временно отключит политику SRP и задание, таки, выполнится! Вот тут я не знаю как быть. Как вариант – дать пользователям &lt;STRONG&gt;Read Only&lt;/STRONG&gt; на &lt;STRONG&gt;C:\Windows\Tasks&lt;/STRONG&gt; через командную строку (например, через icacls), что запретит пользователям создавать задания. На сколько это хорошо или плохо уже судить не мне, поэтому здесь ничего категорично советовать не буду.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=4&gt;3)&lt;/FONT&gt;&lt;/STRONG&gt; SRP бессмысленна с обработкой расширения LNK, поскольку тут таится другая угроза. Я думаю, что многие смотрели на эти исключения, но не видели лазейки. Например, исключение:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop%*.lnk&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Вы думаете, оно разрешит нам запускать только ярлыки с рабочего стола? Наивняк! Я тоже так думал, до вчерашнего дня, когда я отлаживал один скрипт на PowerShell и понял одну вещь. &lt;STRONG&gt;&lt;U&gt;SRP не отличает файл от папки&lt;/U&gt;&lt;/STRONG&gt;. &lt;FONT color=#ff0000&gt;Создаёте на десктопе папку, например, 1.LNK и из этой папки запускаете что хотите!&lt;/FONT&gt; SRP не отличит, что &lt;STRONG&gt;1.LNK&lt;/STRONG&gt; это папка, а не ярлык.&lt;/P&gt;
&lt;P&gt;Я создавал исключения для .LNK по причине, что я не знаю, что это такое. Я знаю, что .LNK только ссылка. А может ли LNK самостоятельно исполнять какой-то код? Мне этого неизвестно. Поэтому я сначала использовал исключения для LNK.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;4)&lt;/STRONG&gt;&lt;/FONT&gt; так же WindowsNT подсказал другую проблему. Я уже неоднократно говорил об опасностях папки C:\Windows\Temp и папки спулера, а именно – что пользователи имеют право записи и исполнения в этих папках. Но эти папки разрешаются общим правилом SystemRoot, поэтому мы использовали отдельные запреты:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;Dissalowed&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\DefaultSpoolDirectory%&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#ff0000&gt;Dissalowed&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%Temp&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;и для установки приложений и драйверов мы использовали REG файлы (ссылка на тему – в самом начале поста). Однако, как выяснилось, &lt;FONT color=#ff0000&gt;значение PolicyScope начинает действовать только после перелогона&lt;/FONT&gt;, что усложняет нам жизнь.&lt;/P&gt;
&lt;P&gt;Поэтому было принято решение рекомендовать переносить спулер и системный темп за пределы системного каталога. Как вы это сделаете – выбирайте на свой вкус. Самое простое:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;спулер - &lt;A title=http://support.microsoft.com/kb/318748 href="http://support.microsoft.com/kb/318748"&gt;http://support.microsoft.com/kb/318748&lt;/A&gt; 
&lt;LI&gt;системный Temp – переопределить переменную в Environment Variables: &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="System Temp variable path" border=0 alt="System Temp variable path" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies3_FF75/systemp_3.jpg" width=395 height=435&gt; &lt;/P&gt;
&lt;P&gt;Подменить его можно или вручную или стартапным скриптом.&lt;/P&gt;
&lt;P&gt;Следовательно REG файлы для временного отключения и включения политики на локальном компьютере нужно отредактировать, а именно – убрать параметры Policy Scope и оставить только Default Level.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=4&gt;5)&lt;/FONT&gt;&lt;/STRONG&gt; а теперь самый главный бонус для самых терпеливых, кто дочитал до сюда &lt;img alt=":)" src="/smilies/happy.gif"&gt; . Внимание, на экран:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=trust border=0 alt=trust src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies3_FF75/trust_5.jpg" width=416 height=463&gt; &lt;/P&gt;
&lt;P&gt;по умолчанию &lt;STRONG&gt;Trusted Publisher Management&lt;/STRONG&gt; в SRP выставлен в &lt;STRONG&gt;All administrators and end users&lt;/STRONG&gt; (в Windows Vista и Windows Server 2008) или &lt;STRONG&gt;End users&lt;/STRONG&gt; в Windows XP/Windows Server 2003. Это поле отвечает за возможность добавления сертификатов в секцию &lt;STRONG&gt;Trusted Publishers&lt;/STRONG&gt; пользовательского certificate store. И мало кто обращает на него внимания, поскольку значение этой настройки весьма неоднозначна в интернете и точную формулировку мало кто может дать и эту опцию почти никто не трогает.&lt;/P&gt;
&lt;P&gt;А теперь делаем финт ушами:&lt;/P&gt;
&lt;P&gt;потребуется .NET Framework SDK или любой инструмент для генерации сертификата. Самое простое – утилита &lt;STRONG&gt;makecert.exe&lt;/STRONG&gt;.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;генерируем сертификат: &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;открываем командную строку, перемещаемся в папку, где хранится утилита makecert.exe и выполняем команду:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;makecert.exe -n "cn=srp" -ss my -eku 1.3.6.1.5.5.7.3.3&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;этой командой сгенерируется сертификат с OID равным &lt;STRONG&gt;Code Signing&lt;/STRONG&gt;. Сертификат хранится в хранилище &lt;STRONG&gt;Current User\Personal&lt;/STRONG&gt;. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Экспортируем сертификаты в .CER файл: &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Открываем оснастку &lt;FONT color=#0000ff&gt;certmgr.msc&lt;/FONT&gt;, переходим в &lt;STRONG&gt;Personal&lt;/STRONG&gt; и экспортируем этот сертификат в файл под именем, например, &lt;STRONG&gt;siging.cer&lt;/STRONG&gt;. Далее открываем сертификат, переходим на вкладку &lt;STRONG&gt;Certification Path&lt;/STRONG&gt;, выделяем &lt;STRONG&gt;Root Agency&lt;/STRONG&gt; сертификат, жмём &lt;STRONG&gt;View Certificate –&amp;gt; Details –&amp;gt; Copy to file&lt;/STRONG&gt;. Экспортируем корневой сертификат в &lt;STRONG&gt;.CER&lt;/STRONG&gt; файл, например, &lt;STRONG&gt;root.cer&lt;/STRONG&gt;. Эти сертификаты нам потребуются для обхода SRP.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;создаём скрипт: &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;открываем блокнот и в нём набираем:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;msgbox “Hello World!”&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;сохраняем как &lt;STRONG&gt;script.vbs&lt;/STRONG&gt;.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;подписываем этот скрипт: &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;для подписи потребуется утилита &lt;STRONG&gt;signcode.exe&lt;/STRONG&gt; из того же SDK. Открываем командную строку, переходим в ней в папку, где хранится signcode.exe и выполняем команду:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;signcode.exe -cn "srp" script.vbs&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;или&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;signcode.exe -cn "srp" -t &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;http://timestamp.verisign.com/scripts/timstamp.dll&lt;/FONT&gt;&lt;FONT color=#0000ff&gt; script.vbs&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;эту часть пользователь может выполнить у себя дома. Теперь пользователю нужно доставить оба файла сертификатов и скрипт на рабочий компьютер как угодно. На рабочем компьютере (который защищён SRP) пользователь извлекает на рабочий стол (в любое место, куда ему разрешена запись) VBS файл и открывает оснастку &lt;FONT color=#0000ff&gt;certmgr.msc&lt;/FONT&gt;. В ней он импортирует:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;root.cer&lt;/STRONG&gt; в секцию &lt;STRONG&gt;Trusted Root CAs&lt;/STRONG&gt; 
&lt;LI&gt;&lt;STRONG&gt;signing.cer&lt;/STRONG&gt; в секцию &lt;STRONG&gt;Trusted Publishers&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;пользователь дважды щёлкает на VBS файле и:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Running VBS Script" border=0 alt="Running VBS Script" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/SoftwareRestrictionPolicies3_FF75/VBS_3.jpg" width=265 height=173&gt; &lt;/P&gt;
&lt;P&gt;он запускается! Чтобы это сработало важно только добавить сертификат, который использовался при подписи скрипта в Trusted Publishers.&lt;/P&gt;
&lt;P&gt;Бороться с этим можно только одним способом. Переставить переключатель в &lt;STRONG&gt;Allow only all administrators to manage Trusted Publishers&lt;/STRONG&gt;. Если так сделать, то такой финт ушами уже не получится. Но тут мы сразу потеряем автоматическую установку Windows Update в Windows XP/2003. На сколько я понимаю Windows Update использует эту же лазейку. Т.е. при поступлении обновлений некая служба (вероятно Windows Update) с системными правами добавляет сертификат подписи в Trusted Publishers и инициирует запуск самих апдейтов, которые подписаны этим сертификатом. А апдейты в Windows XP/2003 сначала разжимаются в папку с рандомным именем в корне рандомного диска и устанавливаются. После чего сертификат удаляется из store. В Windows VIsta и выше файлы обновлений уже имеют расширение .MSU и не мониторятся политикой по умолчанию, поэтому в этих системах можно запретить пользователям добавлять сертификаты в Trusted Publishers. Но (не буду утвержать на 100%, но скорее всего это так) мы ещё потеряем возможность использования правил по сертификатам, которые настроены в User Configuration групповой политики, поскольку сертификат из той политики добавляется именно в User Store.&lt;/P&gt;
&lt;P&gt;Вот такие дела, вобщем.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=9bee60f3-72dd-4a4f-88b4-649c41949dc6"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,9bee60f3-72dd-4a4f-88b4-649c41949dc6.aspx</comments>
      <category>Security</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=dd355e23-ba68-4ff5-a89b-26e7ff2fc089</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=dd355e23-ba68-4ff5-a89b-26e7ff2fc089</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>OCSP (часть 2)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx</link>
      <pubDate>Mon, 11 May 2009 21:51:51 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;В предыдущей &lt;A href="http://www.sysadmins.lv/PermaLink,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx"&gt;части&lt;/A&gt; мы поговорили об основных этапах настройки OCSP на сервере CA. Науонец-то мне удалось восстановить работу виртуальных машин и можно продолжить разговор. И сейчас предлагаю поговорить уже о базовой настройке OCSP Responder.&lt;/P&gt;
&lt;H1 align=center&gt;настройка Online Responder&lt;/H1&gt;
&lt;P&gt;Настройка Online Responder очень проста: &lt;FONT color=#0000ff&gt;Start –&gt; Administrative Tools –&gt; Online Responder Management&lt;/FONT&gt;. И правой кнопкой по &lt;FONT color=#0000ff&gt;Revocation Configuration –&gt; Add Revocation Configuration&lt;/FONT&gt;. Мастер очень простой и понятный, интересно будет на стадии &lt;STRONG&gt;Select Signing Certificate&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Select Signing Certificate" border=0 alt="Select Signing Certificate" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP2_13126/ocsp5_3.jpg" width=626 height=434&gt; fig.1&lt;/P&gt;
&lt;P&gt;именно тут нужно ставить галочку Auto-Enroll for an OCSP signing certificate, вместо использования Certificate Autoenrollment. С этой галочкой OCSP будет для себя каждые две недели (по умолчанию) запрашивать новый сертификат. В последнем шаге указываются адреса CRL'ов, по которым OCSP будет сверять сертификаты, а так же период обновления CRL'ов. После этой несложной процедуры, нужно этот сервер указать как Array Controller. Дело в том, что в сети может быть несколько онлайн респондеров для одного CA и они будут образовывать массив респондеров. Но один из них должен стать главным в массиве и остальные члены этого массива будут сверять свою конфигурацию именно с контроллером. Для этого в той же оснастке нужно перейти в Array Configuration, правой кнопкой на вновь созданном сервере и выбрать &lt;STRONG&gt;Set As Array Controller&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H1 align=center&gt;Проверка конфигурации&lt;/H1&gt;
&lt;P&gt;В принципе, теперь можно проверять конфигурацию OCSP. Если встать в самый верх дерева консоли (Online Responer: servername), то в центральной части оснастки должна появиться зелёная галочка:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="Test OCSP Configuration" border=0 alt="Test OCSP Configuration" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP2_13126/test_ocsp1_3.jpg" width=628 height=165&gt;fig.2&lt;/P&gt;
&lt;P&gt;и в списке Array Members выделяя каждый сервер внизу должны увидеть сообщение о том, что член массива имеет рабочую конфигурацию и действительный сертификат:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="Test OCSP Configuration" border=0 alt="Test OCSP Configuration" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP2_13126/test_ocsp2_3.jpg" width=655 height=254&gt; fig.3&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Там же вы можете посмотреть сам сертификат, который будет использоваться для подписи OCSP ответов. Если ваша картина соответствует тому, что отображено на скриншотах, то это значит, что вы успешно настроили OCSP. Теперь все издаваемые сертификаты в поле Authority Information Access будут содержать адрес OCSP респондера и клиенты Windows Vista и выше смогут через него проверять статус сертификата. Собственно, как это выглядит:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; MARGIN-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 0px; BORDER-RIGHT: 0px" title="Certificate with AIA" border=0 alt="Certificate with AIA" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP2_13126/cert_aia_3.jpg" width=413 height=512&gt; &lt;BR&gt;fig.4&lt;/P&gt;
&lt;P&gt;Как видите, там прописан адрес, куда будут направляться OCSP запросы. В качестве бонуса прилагаю трассировку Network Monitor ответа OCSP Responder:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;  Frame: Number = 10, Captured Frame Length = 2974, MediaType = ETHERNET &lt;BR&gt;+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-01-02-05],SourceAddress:[00-15-5D-01-02-01] &lt;BR&gt;+ Ipv4: Src = 192.168.2.11, Dest = 192.168.1.2, Next Protocol = TCP, Packet ID = 11241, Total IP Length = 2960 &lt;BR&gt;+ Tcp: Flags=...A...., SrcPort=HTTPS(443), DstPort=49800, PayloadLen=2920, Seq=2068515486 - 2068518406, Ack=1096717416, Win=513 (scale factor 0x8) = 131328 &lt;BR&gt;- &lt;FONT color=#0000ff&gt;Ssl:   Server Hello. Certificate. Certificate Status.&lt;/FONT&gt; &lt;BR&gt;  - TlsRecordLayer: &lt;BR&gt;     ContentType: HandShake &lt;BR&gt;   + Version: TLS 1.0 &lt;BR&gt;     Length: 4139 (0x102B) &lt;BR&gt;   - SSLHandshake: SSL HandShake TLS 1.0 Encrypted Handshake Message &lt;BR&gt;      HandShakeType: ServerHello(0x02) &lt;BR&gt;      Length: 76 (0x4C) &lt;BR&gt;    + ServerHello: 0x1 &lt;BR&gt;      HandShakeType: Certificate(0x0B) &lt;BR&gt;      Length: 2556 (0x9FC) &lt;BR&gt;    - Cert: 0x1 &lt;BR&gt;       CertOffset: 2553 (0x9F9) &lt;BR&gt;     - &lt;FONT color=#ff0000&gt;Certificates: &lt;BR&gt;        CertificateLength: 1088 (0x440) &lt;BR&gt;      - X509Cert: Issuer: contoso-DC2-CA,contoso,com, Subject: dc2.contoso.com,OU,Contoso,Riga,Riga,LV &lt;BR&gt;       + SequenceHeader: &lt;BR&gt;       - TbsCertificate: Issuer: contoso-DC2-CA,contoso,com, Subject: dc2.contoso.com,OU,Contoso,Riga,Riga,LV &lt;BR&gt;        + SequenceHeader: &lt;BR&gt;        + Tag0: &lt;BR&gt;        + Version: v3 (2) &lt;BR&gt;        + SerialNumber: 0x110c0b52000000000013 &lt;BR&gt;        + Signature: Sha1WithRSAEncryption (1.2.840.113549.1.1.5) &lt;BR&gt;        + Issuer: contoso-DC2-CA,contoso,com &lt;BR&gt;        + Validity: From: 05/11/09 17:24:32 UTC To: 03/30/11 14:06:53 UTC &lt;BR&gt;        + Subject: dc2.contoso.com,OU,Contoso,Riga,Riga,LV &lt;BR&gt;        + SubjectPublicKeyInfo: RsaEncryption (1.2.840.113549.1.1.1) &lt;BR&gt;        + Tag3: &lt;BR&gt;        + Extensions: &lt;BR&gt;       + SignatureAlgorithm: Sha1WithRSAEncryption (1.2.840.113549.1.1.5) &lt;BR&gt;       + Signature: &lt;BR&gt;&lt;/FONT&gt;     &lt;FONT color=#0000ff&gt;- Certificates: &lt;BR&gt;        CertificateLength: 1459 (0x5B3) &lt;BR&gt;      + X509Cert: Issuer: Contoso CA,contoso,com, Subject: contoso-DC2-CA,contoso,com&lt;/FONT&gt; &lt;BR&gt;      HandShakeType: Certificate Status(0x16) &lt;BR&gt;      Length: 1491 (0x5D3) &lt;BR&gt;    - CertStatus: 0x1 &lt;BR&gt;       CertificateStatusType: OCSP Response(0x01) &lt;BR&gt;     - OcspResponse: &lt;BR&gt;        OCSPResponseLength: 1487 (0x5CF) &lt;BR&gt;      &lt;FONT color=#009500&gt;+ OCSPResponseData: Response has valid confirmations (0); &lt;STRONG&gt;Cert Status = Good&lt;/STRONG&gt;; SignatureAlgorithm: Sha1WithRSAEncryption (1.2.840.113549.1.1.5)&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Если смотреть в Network Monitor, то запрос клиента в графе протокол будет - &lt;STRONG&gt;SSL&lt;/STRONG&gt;, а в графе Description – &lt;STRONG&gt;SSL:  Client Hello.&lt;/STRONG&gt; В ответе OCSP в графе Description будет – &lt;STRONG&gt;SSL:  Server Hello. Certificate. Certificate Status.&lt;/STRONG&gt; Эту часть я выделил синим цветом в начале трассировки. Далее, красным я выделил часть, в которой содержится полная информация о проверяемом сертификате. Чуть ниже синим выделил часть, которая содержит всю необходимую информацию о сертификате издателя для проверяемого сертификата (там по сути будет та же информация, что и в красной части, поэтому свёрнуто). Но наиболее полезным для нас будет именно часть, которая выделена зелёным цветом, поскольку именно там будет храниться ответ OCSP. В данном случае сертификат имеет статус Good, т.е. валидный. В противном случае там будет отображено следующее:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;+ OCSPResponseData: Response has valid confirmations (0); &lt;STRONG&gt;Cert Status = Revoked&lt;/STRONG&gt;; SignatureAlgorithm: Sha1WithRSAEncryption (1.2.840.113549.1.1.5)&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;я отозвал сертификат, опубликовал Delta CRL и снова промониторил трафик. Браузер, в свою очередь, вежливо предложил покинуть этот сомнительный ресурс.&lt;/P&gt;
&lt;H1 align=center&gt;Заключение&lt;/H1&gt;
&lt;P&gt;Как мы успели рассмотреть, конфигурирование OCSP в Windows Server 2008 достаточно простое, хотя и требует от администраторов определённых навыков и умений. Зато в ответ мы получаем достаточно простую схему проверки сертификатов без необходимости скачивания каждый раз списков CRL. Безусловно, я не ставил перед собой задачу полного раскрытия всех аспектов конфигурирования OCSP (читай, срывания покровов), но показать основные ключевые этапы, которые придётся пройти каждому, кто будет настраивать OCSP в своих сетях. Поэтому в конце прилагаю несколько ссылок на более полное и глубокое исследование этого вопроса:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc753468(WS.10).aspx" target=_blank&gt;Setting Up Online Responder Services in a Network&lt;/A&gt; &lt;BR&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc770413(WS.10).aspx" target=_blank&gt;Online Responder Installation, Configuration, and Troubleshooting Guide&lt;/A&gt;&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=dd355e23-ba68-4ff5-a89b-26e7ff2fc089"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,dd355e23-ba68-4ff5-a89b-26e7ff2fc089.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / OCSP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=8d874040-7f98-4539-ab0e-8af4146ae94b</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=8d874040-7f98-4539-ab0e-8af4146ae94b</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>OCSP (часть 1)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx</link>
      <pubDate>Sun, 19 Apr 2009 18:27:36 GMT</pubDate>
      <description>&lt;div&gt;&lt;H1 align=center&gt;Введение&lt;/H1&gt;
&lt;P&gt;Сегодня хочу поговорить про &lt;STRONG&gt;OCSP&lt;/STRONG&gt; – &lt;EM&gt;Online Certificate Status Protocol&lt;/EM&gt;, который служит для проверки статуса сертификата на предмет отозванности. Как известно, стандартным механизмом проверки статуса сертификата является публикация &lt;STRONG&gt;CRL&lt;/STRONG&gt; (&lt;EM&gt;Certificate Revocation List&lt;/EM&gt;). В жизни существует 2 вида CRL:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Base CRL&lt;/STRONG&gt; – полный список CRL, в котором указываются серийные номера всех отозванных в CA сертификатов и причина отзыва. Поддерживается всеми современными системами Windows. Характеризуется большим объёмом и не очень частой публикацией для уменьшения трафика. 
&lt;LI&gt;&lt;STRONG&gt;Delta CRL&lt;/STRONG&gt; – инкрементальный (хотя по факту это скорее дифференциальный) список CRL, в который включаются только сертификаты, которые были отозваны с момента последней публикации полного Base CRL. Характеризуется небольшим объёмом и относительно частой публикацией. Нативно поддерживается только системами не ниже Windows XP. Windows 2000 нативно не умеет его читать, но это становится возможным после применения патча &lt;A href="http://www.microsoft.com/technet/security/bulletin/MS04-011.mspx" target=_blank&gt;MS04-011&lt;/A&gt;. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Опыт использования технологии CRL в широкой массе показал её негативные стороны. Если говорить о Base CRL, то Windows Server 2003/2008 по умолчанию публикуют этот список раз в неделю и в него включаются все сертификаты, которые были выданы и отозваны с момента последнего обновления сертификата CA. Т.к. эти сертификаты как правило выдаются на долгий срок (от 5 до 20 лет), то эти списки со временем могут сильно распухнуть. Из-за этого клиенту для проверки сертификата нужно вытягивать весь Base CRL с CA и искать там требуемый сертификат. Кстати, почему HTTPS сайты частенько тормозят &lt;img alt=":)" src="/smilies/happy.gif"&gt; Учитывая, что Base CRL публикуются не очень часто, то для обеспечение наиболее актуального списка CRL была внедрена система Delta CRL, которая включает в себя только сертификаты, которые были отозваны с момента последней публикации Base CRL. По умолчанию CA под управлением Windows Server 2003/2008 публикуют его раз в сутки.&lt;/P&gt;
&lt;P&gt;Но это не отменяет необходимости клиенту как скачивать не только Base CRL, но и приходится дополнительно скачивать Delta CRL. Однако Certificate Services в Windows Server 2008 позволяют нам сделать жизнь чуточку лучше и облегчить процесс валидации сертификата за счёт использования &lt;STRONG&gt;OCSP&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; на самом деле в Windows Server 2008 и выше службы CS теперь называются &lt;STRONG&gt;AD CS&lt;/STRONG&gt; – &lt;EM&gt;Active Directory Certificate Services&lt;/EM&gt;. Это не просто банальный ребрендинг, а констатация факта, что &lt;U&gt;Certificate Services более недоступны без домена AD&lt;/U&gt;. Т.е. роль добавить можно (это будет Standalone CA), но вам потребуется контроллер домена для управления шаблонами. Поэтому не пытайтесь добавлять роль AD CS в условиях рабочей группы.&lt;/P&gt;
&lt;P&gt;Вкратце, OCSP работает очень просто: клиент для проверки статуса сертификата отправляет запрос на OCSP Responder с указанием серийного номера проверяемого сертификата. OCSP Responder на своей стороне проверяет статус сертификата и возвращает этот статус клиенту.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; &lt;U&gt;использовать протокол OCSP нативно умеют только клиенты под управлением Windows Vista и выше&lt;/U&gt;. Предыдущие ОС могут его поддерживать только за счёт сторонних компонентов.&lt;/P&gt;
&lt;H1 align=center&gt;Настройка шаблона CA&lt;/H1&gt;
&lt;P&gt;Итак, для начала нам потребуется установленный в сети Certification Authority под управлением Windows Server 2008 (любой редакции, кроме Web). По умолчанию с добавлением роли  AD CS добавляется и служба Online Respnder. Для этого так же потребуется установить службы IIS, о чём мастер вам сообщит и предложит сделать. На сервере CA необходимо запустить оснастку Certificate Templates (&lt;FONT color=#0000ff&gt;Start –&gt; Run... –&gt; certtmpl.msc&lt;/FONT&gt;) и там найти шаблон &lt;STRONG&gt;OCSP Response Signing&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP_B47E/ocsp1_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="OCSP Template" border=0 alt="OCSP Template" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP_B47E/ocsp1_thumb.jpg" width=406 height=502&gt;&lt;/A&gt; fig.1&lt;/P&gt;
&lt;P&gt;Данный шаблон характеризуется следующими свойствами:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;срок действия сертификата составляет 2 недели 
&lt;LI&gt;на вкалдке Request Handlings добавлено право чтения приватного ключа для службы Network Service, поскольку &lt;U&gt;служба OCSP работает от лица Network Service, а не LocalSystem&lt;/U&gt; (для LocalSystem отдельных разрешений не требуется) 
&lt;LI&gt;шаблон не содержит CDP и AIA расширений 
&lt;LI&gt;шаблон помечен как неподлежащий для проверки на отзыв (см. fig.1) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;На вкладке Security необходимо для учётной записи компьютера, на котором размещён CA выдать право &lt;STRONG&gt;Allow Read&lt;/STRONG&gt; и &lt;STRONG&gt;Allow Enroll&lt;/STRONG&gt;. Это единственное изменение, которое необходимо выполнить для шаблона. Теперь нужно открыть оснастку Certificate Authority и добавить этот шаблон для выдачи:&lt;/P&gt;
&lt;P&gt;правой кнопкой на &lt;FONT color=#0000ff&gt;Certificate Templates –&gt; New –&gt; Certificate Template to Issue –&gt; OSCP Response Signing&lt;/FONT&gt;. Далее нужно создать оснастку Certificates для учётной записи компьютера и запросить сертификат на основе этого шаблона.&lt;/P&gt;
&lt;P&gt;После запроса сертификата не стоит закрывать оснастку Certificates, а выбрать новый сертификат и в &lt;STRONG&gt;All Tasks&lt;/STRONG&gt; выбрать &lt;STRONG&gt;Manage Privete keys&lt;/STRONG&gt;. В открывшемся окне Permissions выдайте право &lt;STRONG&gt;Read&lt;/STRONG&gt; для учётной записи &lt;STRONG&gt;Network Service&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP_B47E/ocsp2_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Permissions for OCSP Private Key" border=0 alt="Permissions for OCSP Private Key" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP_B47E/ocsp2_thumb.jpg" width=371 height=446&gt;&lt;/A&gt; fig.2&lt;/P&gt;
&lt;H1 align=center&gt;Настройка CA&lt;/H1&gt;
&lt;P&gt;Следующим этапом нужно подготовить сам CA для работы с OCSP. Для этого вызываем свойства самого CA и переходим на вкладку Extensions:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP_B47E/ocsp3_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="CA Extensions" border=0 alt="CA Extensions" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP_B47E/ocsp3_thumb.jpg" width=407 height=533&gt;&lt;/A&gt;fig.3 &lt;/P&gt;
&lt;P&gt;В списке Extensions выбираем Authority Information Access (AIA), нажимаем Add и в поле вписываем URL для OCSP. В моём случае это http://dc2.contoso.com/ocsp. А так же выставляем обе галочки внизу, чтобы этот путь добавлялся во все издаваемые этим CA сертификаты.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание от 09.08.2009:&lt;/FONT&gt;&lt;/STRONG&gt; здесь у меня опечатка - нужно поставить только одну галочку, а именно - только нижнюю. Адрес OCSP не нужно добавлять в AIA издаваемых сертификатов, иначе клиент будет с OCSP адреса пытаться скачать CRT файл.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; учитвая, что срок действия такого сертификата всего 2 недели, не следует этот шаблон добавлять в Autoenrollment (если используется) Policies, т.к. тут возможны трудности с валидацией сертификата на отрезке времени когда обновляется сертификат CA. Вот как это может выглядеть:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP_B47E/ocsp4_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="Renewal issues" border=0 alt="Renewal issues" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/OCSP_B47E/ocsp4_thumb.jpg" width=515 height=191&gt;&lt;/A&gt;fig.4&lt;/P&gt;
&lt;P&gt;в промежутке t0 – t2 используется старый ключ CA для подписи сертификатов (в том числе и OCSP). В промежутке t1-t3 используется новый сертификат CA. И когда наступает этап t1, когда старый сертификат ещё до истечения срока обновляется на новый, то в промежутке t1-t2 может случиться следующее:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;клиент отправляет запрос на проверку статуса сертификата Cert1 или Cert2, которые подписаны ключом CA Key 1 
&lt;LI&gt;на сервере CA уже действует новый ключ CA Key 2 и, соответственно, подписанный новым ключом сертификат OCSP 
&lt;LI&gt;сервер подписывает новым ключом OCSP ответ для клиента и пересылает 
&lt;LI&gt;клиент сверяет подписи OCSP и проверяемого сертификата. Подписи не совпадут, т.к. сертификат подписан ключом CA Key 1, а OCSP ответ уже ключом CA Key 2 и откланяет ответ от OCSP Responder, поскольку &lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#ff0000&gt;проверяемый сертификат и сертификат подписи Online Responder должны быть подписаны одним ключом CA&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Чтобы устранить проблему на указанном отрезке времени в Windows Server 2008 включено обновление OCSP Signing сертификатов с использованием существующих ключей. По умолчанию оно не включено, поэтому для активации такого обновления в командной строке следует выполнить:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;certutil –setreg ca\UseDefinedCACertInRequest 1&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;После выполнения этой команды должно получиться нечто похожее на:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;C:\Users\administrator&gt;certutil -setreg ca\UseDefinedCACertInRequest 1 &lt;BR&gt;SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\contoso-DC2-CA\UseDefine &lt;BR&gt;dCACertInRequest: &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;New Value: &lt;BR&gt;  UseDefinedCACertInRequest REG_DWORD = 1 &lt;BR&gt;CertUtil: -setreg command completed successfully. &lt;BR&gt;The CertSvc service may need to be restarted for changes to take effect.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Как гласит сообщение, после этой процедуры следует перезапустить службу AD CS:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;net stop certsvc &lt;BR&gt;net start certsvc&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;На сегодня, пожалуй, всё, а в следующий раз продолжим с конфигурированием Online Responder и политики отзыва сертификатов.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=8d874040-7f98-4539-ab0e-8af4146ae94b"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,8d874040-7f98-4539-ab0e-8af4146ae94b.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / OCSP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=f6243235-c882-4b09-9320-55606dc241c8</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,f6243235-c882-4b09-9320-55606dc241c8.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,f6243235-c882-4b09-9320-55606dc241c8.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=f6243235-c882-4b09-9320-55606dc241c8</wfw:commentRss>
      <title>Секреты Software Restriction Policies (часть 2)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,f6243235-c882-4b09-9320-55606dc241c8.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,f6243235-c882-4b09-9320-55606dc241c8.aspx</link>
      <pubDate>Tue, 24 Feb 2009 14:09:51 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Update 04.09.2009:&lt;/FONT&gt;&lt;/STRONG&gt; относительно пункта 3 данного поста обязательно прочтите обновление информации по нему: &lt;A class=TitleLinkStyle href="http://www.sysadmins.lv/PermaLink,guid,9bee60f3-72dd-4a4f-88b4-649c41949dc6.aspx" rel=bookmark&gt;Секреты Software Restriction Policies (часть 3)&lt;/A&gt; (так же прочитать пункт 3). Т.е. вы должны исключить LNK файлы из проверки политикой и, следовательно, исключения для них создавать не надо.&lt;/P&gt;
&lt;P&gt;Так же прочтите обновление по этой же ссылки относительно использования переменных окружения в правилах SRP.&lt;/P&gt;
&lt;P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Наблюдая за сообщениями на форумах (а так же по комментариям в моём блоге) пришёл к выводу, что очень немногие понимают всю значимость Software Restriction Policies и далеко не каждый обладает навыками эффективного управления данной политикой. Я уже освещал некоторые вопросы по данной теме, но тем не менее пробелы до сих пор есть, а так же есть новые трюки для обхода политики.&lt;/P&gt;
&lt;P&gt;Итак, для тех, кто ещё не в курсе, о чём идёт речь предлагается прочитать:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.samag.ru/cgi-bin/go.pl?q=articles;n=09.2008;a=02" target=_blank&gt;На страже безопасности – Software Restriction Policies&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,47e28599-5421-4c1c-ba34-67208b269621.aspx"&gt;Секреты Software Restriction Policies&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В данном посте я планирую раскрыть секреты расширения SCF, трюки с hh.exe, рассмотреть вопросы унификации правил и два важных момента в управлении политикой.&lt;/P&gt;
&lt;P&gt;1) &lt;STRONG&gt;Расширение SCF&lt;/STRONG&gt; – это командный файл, который обрабатывается стандартным шеллом (он же explorer.exe). Данные файлы достаточно хитры, поскольку проводник (explorer) даже в режиме показа известных расширений никогда не показывает его. Это ещё пол беды. Основная угроза, которая может от них исходить – встраиваемость в файлы. В двух словах это выглядит как прописывание своего кода в любой файл (будь то текстовый, графический, медиафайл и т.д.), подмена расширения и иконки. Синтаксис SCF файлов очень похож на синтаксис INI и INF файлов. Т.е. он состоит из секций, заключённых в квадратные скобки и элементы секций:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;[section] &lt;BR&gt;parameter=value &lt;BR&gt;[section2] &lt;BR&gt;parameter2=value2 &lt;BR&gt;parameter3=value3&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Самый знакомый нам файл такого типа – Show Desktop в панели quick launch. Это самый настоящий SCF файл, который имеет следующее содержание:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[shell] &lt;BR&gt;Command=2 &lt;BR&gt;IconFile=explorer.exe,3 &lt;BR&gt;[TaskBar] &lt;BR&gt;Command=ToggleDesktop&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;как видно отсюда, мы можем изменять иконку файла на любую. Очень полезно для маскировки файла под другой тип файла. И в секции TaskBar мы видим вызов внутренней команды explorer.exe – &lt;STRONG&gt;ToggleDesktop&lt;/STRONG&gt;. Напомню, что эти файлы обрабатываются только оболочкой explorer.exe. Если сохранить эту часть в текстовом файле и указать расширение SCF, то вы получите сворачивалку окон. Если, к примеру, в секции Command указать другую команду, например, Explorer, то при двойном клике на него запустится сам explorer.exe:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[shell] &lt;BR&gt;Command=2 &lt;BR&gt;IconFile=explorer.exe,3 &lt;BR&gt;[TaskBar] &lt;BR&gt;Command=Explorer&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;А теперь как встраивать код в другие файлы. Берём любой произвольный файл, например картинку в формате JPEG, открываем его в текстовом редакторе, но лушче будет в FAR и в самое начало или самый конец файла пишем:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[shell] &lt;BR&gt;Command=2 &lt;BR&gt;IconFile=imageres.dll,66 &lt;BR&gt;[TaskBar] &lt;BR&gt;Command=Explorer&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;сохраняем изменения и переименовываем файл в &lt;EM&gt;image.jpeg.scf&lt;/EM&gt;.В Windows Vista/Windows Server 2008 мы получим файл размером с картинку, подходящее расширение и значок JPEG файла (хвост &lt;STRONG&gt;.scf&lt;/STRONG&gt; будет скрыт от нас в любом случае). Если по нему нажать 2 раза, то запустится explorer. Причём никаких ошибок вы не получите, потому что остальное содержимое файла будет проигнорировано и будет выполнена только та часть кода, которую мы добавили. Искать иконки можно различными редакторами ресурсов, как &lt;STRONG&gt;Restorator&lt;/STRONG&gt; или &lt;STRONG&gt;ResHacker&lt;/STRONG&gt;. Просто в категории &lt;STRONG&gt;Icon&lt;/STRONG&gt; или &lt;STRONG&gt;IconGroup&lt;/STRONG&gt; выбираете нужный номер иконки и вставляете этот номер в параметр значка. При этом скорее всего потребуется уменьшить это число на единицу, поскольку Explorer будет считать значки с нуля, в то время как редакторы ресурсов считают с единицы. Но это уже детали.&lt;/P&gt;
&lt;P&gt;К сожалению я в данный момент не обладаю сведениями о полном функционале файлов SCF, но доподлинно известно, что ими можно манипулировать как оболочкой explorer.exe, так и браузером Internet Explorer. Поэтому я пока не могу сказать на сколько это может быть опасно. Но неадекватное поведение файла при его запуске может доставить массу хлопот как самим пользователям, так и администраторам.&lt;/P&gt;
&lt;P&gt;Следовательно имеет смысл при развёртывании политики SRP включить данное расширение в список блокируемых, а значок &lt;STRONG&gt;Show Desktop.scf&lt;/STRONG&gt; разрешить по хэшу! Это важно, поскольку разрешение пути позволит пользователю модифицировать файл и исполнить его.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; в новых версиях Windows начиная от Windows Vista значок &lt;STRONG&gt;ShowDesktop.scf&lt;/STRONG&gt; был сменён с SCF файла на &lt;STRONG&gt;Show Desktop.lnk&lt;/STRONG&gt;, следовательно для этих версий ОС достаточно будет просто включить данное расширение в список и всё. Хотя SCF файл в Windows Vista будет работать :)&lt;/P&gt;
&lt;P&gt;2)&lt;STRONG&gt;hh.exe&lt;/STRONG&gt; – исполняемый файл, который обрабатывает фалы справки CHM. CHM – это скомпилированный HTML файл, следовательно может содержать потенциально уязвимый код. Но тут, казалось бы, бояться нечего, поскольку расширение CHM по умолчанию мониторится политикой SRP и его запуск из пользовательского окружения недоступен. Но это не совсем так. В действительности пользователь может обойти ограничение SRP и спокойно запускать любые CHM файлы. Обходится данное ограничение очень просто:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Start –&amp;gt; Run… –&amp;gt; hh.exe path\helpfile.chm&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;и всё. К сожалению, я не нашёл метода, как гибко бороться с этим, только явно запрещать политикой SRP запуск программы hh.exe. Ещё к бОльшему сожалению блокировать CHM файлы в системах до Windows Vista тяжело, поскольку почти вся справка Windows там написана в CHM. Однако, в Windows Vista и выше встроенная справка уже не базируется на CHM файлах, поэтому в них мы можем со значительно меньшими последствиями просто блокировать hh.exe. Но тут можно упереться в вопрос совместимости сторонних приложений, которые зачастую содержат справку в CHM файлах. Поэтому, я не призываю блокировать hh.exe, но просто исследовать данный вопрос в каждом индивидуальном случае отдельно.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; на данный момент мне неизвестно о других расширениях, которые подвержены данной проблемы. Я тестировал набор расширений, но добиться подобного результата не удалось. Хочется надеяться, что это единственное такое хитрое расширение :)&lt;/P&gt;
&lt;P&gt;3) &lt;STRONG&gt;унификация и стандартизация создания исключений в политику SRP&lt;/STRONG&gt;. Прочитав топик на форуме TechNet – &lt;A href="http://social.technet.microsoft.com/Forums/ru-RU/windowsserverru/thread/6bdc8e86-8727-4262-b648-65d009a4ebcf" target=_blank&gt;сслыка&lt;/A&gt;, я в очередной раз пришёл к мнению, что человек первый раз столкнувшись с SRP не обладает навыками эффективного создания исключений. Это и не удивительно вобщем, поэтому я в темах про SRP ставлю перед собой задачу – рассказать про Best Practices для эффективной реализации этой политики.&lt;/P&gt;
&lt;P&gt;За время практики я (и не только) смог выработать для себя общий концепт создания исключений, который звучит примерно так: &lt;FONT color=#0000ff&gt;&lt;EM&gt;&lt;U&gt;следует предельно максимально использовать переменные окружения и ключи реестра вместо абсолютных путей&lt;/U&gt;&lt;/EM&gt;&lt;/FONT&gt;.&lt;/P&gt;
&lt;P&gt;Политика SRP даёт нам широкие возможности для этого, это и использование системных переменных окружений &lt;STRONG&gt;%variable%&lt;/STRONG&gt;, но и чтение этих переменных из реестра. Повторюсь, что данная концепция решает несколько задач, как унификация правил для различных платформ и обход локализованных барьеров. В качестве примеров можно привести различия некоторых стандартных путей в ОС Windows XP и Windows Vista.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Например, профили пользователей раньше хранились в C:\Documents and Settings, а в Vista – C:\Users. Уже здесь мы видим эффект от использования системных переменных окружения как %userprofile%. 
&lt;LI&gt;Но если в сети используются и локализованные системы (смешанные), то системные переменные доставят нам хлопот, поскольку придётся часто дублировать исключения пути: %userprofile%\Desktop\*.lnk и %userprofile\Рабочий стол\*.lnk. Это так же существенный барьер, который обойти стандартными переменными окружения практически нерентабельным. И вот здесь мы видим эффект от чтения нужных путей из реестра. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Чтобы администраторам дать хорошую отправную точку, я решил поделиться стандартным набором разрешений, который будет отвечать следующим требованиям:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;пользователи могут запускать исполняемые файлы из системной папки Windows и Program Files 
&lt;LI&gt;пользователи могут запускать ярлыки из своего пользовательского Start Menu 
&lt;LI&gt;пользователи могут запускать ярлыки из Start Menu общего профиля, который известен как AllUsersProfile 
&lt;LI&gt;пользователи могут запускать ярлыки со своего и AllUsers рабочего стола 
&lt;LI&gt;пользователи могут запускать ярлыки из своего меню быстрого запуска (Quick Launch) 
&lt;LI&gt;пользователи не могут запускать исполняемые файлы из папки спулера и системного Temp. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;И вот такой список исключений нам потребуется:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%systemroot%&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%programfiles%&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%userprofile%\Application Data\Microsoft\Internet Explorer\Quick Launch\*.lnk&lt;/FONT&gt; – (&lt;U&gt;Windows XP/2003 only&lt;/U&gt;) &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\AppData%/Microsoft/Internet Explorer/Quick Launch/*.lnk&lt;/FONT&gt; – (&lt;U&gt;Windows Vista/2008 или выше&lt;/U&gt;) &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop%*.lnk&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%*.lnk&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%*/*.lnk &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%*/*/*.lnk&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Administrative Tools%*.lnk&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Desktop%*.lnk&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Programs%*.lnk&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Programs%*/*.lnk&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#009500&gt;Unrestricted&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Programs%*/*/*.lnk&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#ff0000&gt;Dissalowed&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers%&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#ff0000&gt;Dissalowed&lt;/FONT&gt; - &lt;FONT color=#0000ff&gt;%systemroot%\Temp&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Здесь хочу сделать несколько комментариев:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Мы явно запрещаем запуск недозволенных приложений из системных папок, куда пользователи по умолчанию имеют право записи и исполнения. Это C:\Windows\Temp и папка спулера, поскольку они явно разрешаются первым правилом. Следовательно, чтобы предотвратить запуск файлов из этих папок мы явно их запрещаем отдельными правилами. 
&lt;LI&gt;я указал 2 пути для QuickLaunch для систем Windows XP и Windows Vista. Это обусловленно тем, что &lt;U&gt;в Windows XP/Windows Server 2003 максимальная длина исключения для пути ограничена 133 знаками&lt;/U&gt; и вот такой “финт ушами”, который я привёл для Windows Vista, не проходит. В новых ОС этот недостаток устранён. 
&lt;LI&gt;здесь я не привёл явного запрещения для hh.exe, т.к. это стартовый набор правил, которое обеспечивает достаточную совместимость с другими приложениями. 
&lt;LI&gt;Мы разрешаем несколько уровней вложения для Start Menu, поскольку всё это меню как правило состоит из 3-х уровней вложения. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; для бизнес-приложений, которые как правило инсталлируются на отличный от системного том (обычно D:\) и для них рекомендуется делать исключения по хешу, нежели по пути. Это полезно по двум причинам:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;зачастую бизнес-приложения пишутся “быдлокодерами” (простите уж за такую лексику, но это суровая правда), которые требуют разрешения записи пользователям в папку с исполняемым модулем. Спастись от заражения этого модуля пользователями можно только хешем. Это, к сожалению, актуальная проблема, которую нужно решать примерно так: “разработчиков софта, требующего админских привилегий, нужно силой пересаживать на OpenBSD, и не кормить дошираком до тех пор, пока их г***ософт не начнет там работать в ANSi-режиме на библиотеке ncurses” © Amin 
&lt;LI&gt;в случае, если случится факт заражения (в данном случае только от лица неосторожного администратора), то высока вероятность, что вирус постарается инфицировать все .exe файлы в системе и по изменившемуся хешу это можно быстро вычислить (приложение больше не запустится) и в кратчайшие сроки вывести поражённую систему из сети для дальнейшего расследования инцидента. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;4) &lt;STRONG&gt;обновление ярлыков временного отключения и включения SRP&lt;/STRONG&gt;. Я считаю удобным держать на рабочем столе администратора ярлыки, которые запускают REG файлы, которые в свою очередь временно отключают и возвращают политику в исходную позицию. Если для одной рабочей станции – это менее критично, то в условиях домена отключать политику для установки/обновления ПО на уровне GPO – крайне нецелесообразно. Я уже публиковал в своём предыдущем блоге тексты REG файлов, но без учёта папки Temp.&lt;/P&gt;
&lt;P&gt;Т.к. мы явно запретили запуск недозволенных расширений из папки C:\Windows\Temp, то даже временная деактивация политики ярлыками не позволит нам сделать некоторые действия, например, установка драйвера или приложения, если установщик сперва распаковывает INF файлы в эту папку, поскольку перевод глобального режима политики в Unrestricted не отменит этот явный запрет. Следовательно мы помимо перевода политики в Unrestricted должны вывести администраторов из под действия политики. Вот REG файлы для временного отключения и включения политики:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;SRP_Disable.reg&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Windows Registry Editor Version 5.00 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers] &lt;BR&gt;"DefaultLevel"=dword:00040000 &lt;BR&gt;"PolicyScope"=dword:00000001&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;SRP_Enable.reg&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Windows Registry Editor Version 5.00 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers] &lt;BR&gt;"DefaultLevel"=dword:00000000 &lt;BR&gt;"PolicyScope"=dword:00000000&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;5) &lt;STRONG&gt;обновление политики&lt;/STRONG&gt;. В процессе работы с ярлыками обнаружился один неприятный факт: если отключить политику реестром и не включить обратно, то после перезагрузки машины кроме включения политики реестром обратно потребуется выполнить ещё 2 перезагрузки. Как вы, наверное, поняли, эти ключи реестра не изменяют саму политику, а только её поведение. Следовательно пришлось решать вопрос возвращения политики в исходное состояние при перезагрузках при помощи групповых политик. По умолчанию, политики перезаписывают соответствующие ключи реестра только при изменение состояния политики (чего мы ярылками не делаем). Т.к. SRP у нас основывается на реестре (все её правила и настройки хранятся именно в реестре), то нужно задать принудительное переприменение политики при перезагрузках (или периодических обновлений политики в домене). Делается это в Group Policy:&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Computer Configuration\Administrative Templates\System\Group Policy\Registry policy processing&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;и этот элемент необходимо выставить в &lt;STRONG&gt;Enabled&lt;/STRONG&gt; внутри поставить галочку в &lt;STRONG&gt;Process even if the Group Policy objects have not changed&lt;/STRONG&gt;. В таком случае даже если администратор забудет реестром обратно включить политику SRP, то политика процессинга сама вернёт её в исходное состояние – &lt;STRONG&gt;Disallowed&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;-------------------&lt;/P&gt;
&lt;P&gt;Сегодня мы рассмотрели очередную партию насущных вопросов по настройке и управлению политикой Software Restriction Policies. Я недеюсь, что этот материал будет полезен как начинающим (тех, кто только начинает работать с политикой SRP) и опытным администраторам, которые уже используют политики SRP в своих сетях.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=f6243235-c882-4b09-9320-55606dc241c8"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,f6243235-c882-4b09-9320-55606dc241c8.aspx</comments>
      <category>Security</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=a25d231f-3b0b-4de6-b799-1ef82007bb22</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,a25d231f-3b0b-4de6-b799-1ef82007bb22.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,a25d231f-3b0b-4de6-b799-1ef82007bb22.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=a25d231f-3b0b-4de6-b799-1ef82007bb22</wfw:commentRss>
      <title>Подписывание скриптов PowerShell – практическая реализация (часть 2)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,a25d231f-3b0b-4de6-b799-1ef82007bb22.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,a25d231f-3b0b-4de6-b799-1ef82007bb22.aspx</link>
      <pubDate>Tue, 17 Feb 2009 06:36:22 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;В предыдущем посте я показал, как можно легко и удобно подписывать скрипты и как усилить безопасность их исполнения, а так же предупредить несанкционированное изменение кода. Но, как я уже отметил, подписывать каждый раз скрипт из консоли не особо удобно. Например, если вы занимаетесь финальной отладкой скрипта в редакторе, как PowerGUI или PowerShell ISE, то в конце отладки вы просто сохраняете скрипт и закрываете редактор. Понятно, что ещё отдельно запускать консоль PowerShell будет неудобно. Поэтому я написал небольшой скрипт с установщиком, который позволит из проводника по правому нажатию на PS1 файл вы сможете подписывать скрипты.&lt;/p&gt;  &lt;p&gt;Чтобы поместить свой элемент в контекстное меню при нажатии на PS1 файлы (на других типах файлов его не будет) нам нужно добавить некоторые значения в реестр по пути:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;HKLM\Software\Classes\Microsoft.PowerShellScript.1\Shell&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;подключ с названием нашего элемента – &lt;strong&gt;Sign It&lt;/strong&gt; и в нём уже команду, которая будет отрабатываться при нажатии на него. Я решил не изобретать велосипед и воспользовался приёмами, которые использовал ещё в старом блоге: &lt;a href="http://vpodans.spaces.live.com/blog/cns!BB1419A2CFC1E008!201.entry"&gt;Полезная безделушка Hash SHA1 на PowerShell&lt;/a&gt;. Шапка по сути осталась та же, только тело (исполняемый модуль) изменился. И вот, что получилось для PowerShell 1.0 (для V2 опубликую ниже):&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt;####################################################################&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Sign PS1 Script.ps1&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Version 1.5&lt;/span&gt;&lt;span style="color: #008000"&gt;
#
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Automatically sign PowerShell script from .PS1 file context menu&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Fully compatible with PowerShell 1.0&lt;/span&gt;&lt;span style="color: #008000"&gt;
#
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Vadims Podans (c) 2009&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; http://www.sysadmins.lv/&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt;####################################################################&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Read-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Specify path to hold SignIt.PS1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Test-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt;) {
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;SignIt.ps1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegPath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Registry::HKLM\Software\Classes\Microsoft.PowerShellScript.1\Shell\Sign It\command&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegValue&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -noprofile -command $FilePath '%1'&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegPath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Force&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ErrorAction&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;SilentlyContinue&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Test-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegPath&lt;/span&gt;&lt;span style="color: #000000"&gt;) {
        &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-ItemProperty&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegPath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;(Default)&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Value&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegValue&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ItemType&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Force&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Test-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt;) {
            &lt;/span&gt;&lt;span style="color: #800080"&gt;$exefile&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;param ($file)
$cp = new-object Microsoft.CSharp.CSharpCodeProvider
$cpar = New-Object System.CodeDom.Compiler.CompilerParameters
$HideWindow = 0x0080
$ShowWindow = 0x0040
$Code = @"
using System;
using System.Runtime.InteropServices;
namespace Win32API
{
    public class Window
    {
        [DllImport("user32.dll")]
        public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
    }
}
"@
$cp.CompileAssemblyFromSource($cpar, $code)
$PSHandle = (Get-Process –id $pid).MainWindowHandle
[Win32API.Window]::SetWindowPos($PSHandle, 0, 0, 0, 0, 0, $HideWindow)
function _msgbox_ ($title, $text, $type = "None") {
    [void][reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
    $msg = [Windows.Forms.MessageBox]::Show($text, $title, [Windows.Forms.MessageBoxButtons]::ok, 
    [Windows.Forms.MessageBoxIcon]::$type)
}
$cert = @(dir cert:\currentuser\my -codesigning)[0]
if (!$cert) {
    _msgbox_ -title "Error" -text "Here is no valid signing certificate!" -type "Error"
    exit
}
$status = Set-AuthenticodeSignature "$file" $cert -TimestampServer "http://timestamp.verisign.com/scripts/timstamp.dll"
if ($status.status -eq "Valid") {
    _msgbox_ -title "Success" -text "Script is now signed! Enjoy!"
} else {
    _msgbox_ -title "Error" -text $status.StatusMessage -type "Error"
}
exit&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
            &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Set-Content&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Value&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$exefile&lt;/span&gt;&lt;span style="color: #000000"&gt;
            &amp;&lt;/span&gt;&lt;span style="color: #800080"&gt;$filepath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$filepath&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt; {
            &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Warning&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Unable to create file in: $FilePath. Path is incorrect or you haven't sufficient permissions&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
    }
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt; {
        &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Warning&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Unable to create registry key. May be you haven't sufficient permissions to HKLM hive&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
    }
}&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Данный скрипт является установщиком. Для реализации всех функций достаточно запустить этот скрипт и по требованию указать путь, где будет находиться рабочий скрипт (содержимое переменной $exefile).&lt;/p&gt;

&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Примечание:&lt;/strong&gt;&lt;/font&gt; такой метод установки справедлив только для V2. При использовании PowerShell 1.0 установщик следует запускать непосредственно из консоли PowerShell.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Заметка:&lt;/font&gt;&lt;/strong&gt; Здесь следует обратить внимание на блок кода, который идёт после PARAM в переменной $exefile. Данный блок кода скрывает саму консоль PowerShell и показывает только графическую часть, которая исполняется из скрипта. Функция скрытия консоли честно взята из блога Васи Гусева: &lt;a href="http://xaegr.wordpress.com/2009/02/11/powershell1-api/"&gt;Win32 API из PowerShell 1.0&lt;/a&gt;. &lt;u&gt;Данный метод работает как в PowerShell V2 CTP3, так и в PowerShell 1.0.&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;И вариант скрипта для PowerShell V2:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt;####################################################################&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Sign PS1 Script.ps1&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Version 1.5&lt;/span&gt;&lt;span style="color: #008000"&gt;
#
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Automatically sign PowerShell script from .PS1 file context menu&lt;/span&gt;&lt;span style="color: #008000"&gt;
#
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Require PowerShell V2, not compatible with PowerShell 1.0&lt;/span&gt;&lt;span style="color: #008000"&gt;
#
#&lt;/span&gt;&lt;span style="color: #008000"&gt; Vadims Podans (c) 2009&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; http://www.sysadmins.lv/&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt;####################################################################&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt;requires -Version 2.0&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Read-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Specify path to hold SignIt.PS1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Test-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt;) {
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;SignIt.ps1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegPath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Registry::HKLM\Software\Classes\Microsoft.PowerShellScript.1\Shell\Sign It\command&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegValue&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden -noprofile -command $FilePath '%1'&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegPath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Force&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ErrorAction&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;SilentlyContinue&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Test-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegPath&lt;/span&gt;&lt;span style="color: #000000"&gt;) {
        &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-ItemProperty&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegPath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;(Default)&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Value&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$RegValue&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ItemType&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Force&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Test-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt;) {
            &lt;/span&gt;&lt;span style="color: #800080"&gt;$exefile&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;param ($file)
function _msgbox_ ($title, $text, $type = "None") {
    [void][reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
    $msg = [Windows.Forms.MessageBox]::Show($text, $title, [Windows.Forms.MessageBoxButtons]::ok,
    [Windows.Forms.MessageBoxIcon]::$type)
}
$cert = @(dir cert:\currentuser\my -codesigning)[0]
if (!$cert) {
    _msgbox_ -title "Error" -text "Here is no valid signing certificate!" -type "Error"
    exit
}
$status = Set-AuthenticodeSignature "$file" $cert -TimestampServer "http://timestamp.verisign.com/scripts/timstamp.dll"
if ($status.status -eq "Valid") {
    _msgbox_ -title "Success" -text "Script is now signed! Enjoy!"
} else {
    _msgbox_ -title "Error" -text $status.StatusMessage -type "Error"
}
exit&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
            &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Set-Content&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$FilePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Value&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$exefile&lt;/span&gt;&lt;span style="color: #000000"&gt;
            &amp;&lt;/span&gt;&lt;span style="color: #800080"&gt;$filepath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$filepath&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt; {
            &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Warning&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Unable to create file in: $FilePath. Path is incorrect or you haven't sufficient permissions&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
    }
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt; {
        &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Warning&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Unable to create registry key. May be you haven't sufficient permissions to HKLM hive&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;
    }
}&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Так же, после копирования файла установщик попытается сразу подписать рабочий скрипт, чтобы этого не пришлось делать потом вручную. После этого в контекстном меню PS1 файлов будет элемент Sign It:&lt;/p&gt;

&lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Context menu" border="0" alt="Context menu" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/PowerShell2_1383C/signing1_2.jpg" width="193" height="287" /&gt; &lt;/p&gt;

&lt;p&gt;И если у пользователя есть сертификат для подписи скриптов, то при нажатии на этот элемент получите сообщение:&lt;/p&gt;

&lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Success signing message" border="0" alt="Success signing message" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/PowerShell2_1383C/signing2_2.jpg" width="249" height="141" /&gt; &lt;/p&gt;

&lt;p&gt;В противном случае получите ошибку:&lt;/p&gt;

&lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Failed signing message" border="0" alt="Failed signing message" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/PowerShell2_1383C/signing3_2.jpg" width="278" height="150" /&gt;&lt;/p&gt;

&lt;p&gt;Вот так можно значимо упростить процесс подписывания скриптов не открывая консоль PowerShell. Но если файлов будет много, то ничего не мешает основную часть кода засунуть в цикл Foreach. Например:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="consola"&gt;&lt;span style="color: #800080"&gt;$cert&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; @(&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;dir&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;cert&lt;/span&gt;&lt;span style="color: #000000"&gt;:\&lt;/span&gt;&lt;span style="color: #800000"&gt;currentuser\my&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="consola"&gt;&lt;span style="color: #000000"&gt; -codesigning)[0]
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;dir&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Include&lt;/span&gt;&lt;span style="color: #000000"&gt; *.ps1 &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Recurse&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Set-AuthenticodeSignature&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;$_&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$cert&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;На этом пока о подписывании скриптов всё, что я хотел рассказать.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Update 30.08.2009:&lt;/font&gt;&lt;/strong&gt; немного переделал скрипты с учётом следующих поправок:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Добавлена возможность подписывания скриптов с использованием сервера времени VeriSign, который в подписи ставит подписанную VeriSign' ом цифровую метку времени. &lt;/li&gt;

  &lt;li&gt;Исправлены ошибки с выводом сообщений о результате операции. Например, если пользователь отменял операцию подписи, либо происходила другая ошибка в процессе подписывания, то появлялось сообщение о том, что файл подписан (хотя это было не так). Сейчас сделана проверка поля &lt;strong&gt;Status&lt;/strong&gt;. &lt;/li&gt;

  &lt;li&gt;в связи с этим изменил код в посте на обновлённый. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;И, собственно, кнопки для скачивания скриптов:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;для PowerShell 1.0 &lt;/li&gt;
&lt;/ul&gt;

&lt;div&gt;
  &lt;p style="border-bottom: silver 1px solid; position: relative; border-left: silver 1px solid; width: 240px; height: 66px; border-top: silver 1px solid; border-right: silver 1px solid"&gt;&lt;span style="font-family: verdana,arial,sans-serif; cursor: pointer"&gt;&lt;a style="border-right-width: 0px; width: 240px; border-top-width: 0px; border-bottom-width: 0px; height: 66px; border-left-width: 0px" href="http://www.sysadmins.lv/content/scripts/signit_ps1.0.ps1" target="_self"&gt;&lt;img style="border-right-width: 0px; width: 240px; border-top-width: 0px; border-bottom-width: 0px; height: 66px; border-left-width: 0px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/transparent.gif" /&gt; &lt;/a&gt;&lt;a style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" href="http://www.sysadmins.lv/content/scripts/signit_ps1.0.ps1" target="_self"&gt;&lt;img style="position: absolute; top: 6px; left: 5px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/pgui.png" width="48" height="45" /&gt; &lt;/a&gt;&lt;a style="text-decoration: none" href="http://www.sysadmins.lv/content/scripts/signit_ps1.0.ps1" target="_self"&gt;&lt;span style="position: absolute; width: 167px; white-space: nowrap; color: #555555; overflow: hidden; top: 7px; margin-right: 5px; left: 67px"&gt;&lt;span style="display: block; visibility: hidden"&gt;1&lt;/span&gt; &lt;span style="line-height: 1.25em; display: block; cursor: pointer; text-decoration: none; padding-top: 1px" title="Download file"&gt;PS1 file 
            &lt;br /&gt;8,42 KB &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;a style="position: absolute; width: 167px; white-space: nowrap; color: #0066a7; overflow: hidden; top: 7px; margin-right: 5px; text-decoration: none; left: 67px" href="http://www.sysadmins.lv/content/scripts/signit_ps1.0.ps1" target="_self" alt="Download File"&gt;SignIt_ps1.0.ps1&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;для PowerShell 2.0 &lt;/li&gt;
&lt;/ul&gt;

&lt;div&gt;
  &lt;p style="border-bottom: silver 1px solid; position: relative; border-left: silver 1px solid; width: 240px; height: 66px; border-top: silver 1px solid; border-right: silver 1px solid"&gt;&lt;span style="font-family: verdana,arial,sans-serif; cursor: pointer"&gt;&lt;a style="border-right-width: 0px; width: 240px; border-top-width: 0px; border-bottom-width: 0px; height: 66px; border-left-width: 0px" href="http://www.sysadmins.lv/content/scripts/signit_ps2.0.ps1" target="_self"&gt;&lt;img style="border-right-width: 0px; width: 240px; border-top-width: 0px; border-bottom-width: 0px; height: 66px; border-left-width: 0px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/transparent.gif" /&gt; &lt;/a&gt;&lt;a style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" href="http://www.sysadmins.lv/content/scripts/signit_ps2.0.ps1" target="_self"&gt;&lt;img style="position: absolute; top: 6px; left: 5px" alt="Download File" src="http://www.sysadmins.lv/images/buttons/pgui.png" width="48" height="45" /&gt; &lt;/a&gt;&lt;a style="text-decoration: none" href="http://www.sysadmins.lv/content/scripts/signit_ps2.0.ps1" target="_self"&gt;&lt;span style="position: absolute; width: 167px; white-space: nowrap; color: #555555; overflow: hidden; top: 7px; margin-right: 5px; left: 67px"&gt;&lt;span style="display: block; visibility: hidden"&gt;1&lt;/span&gt; &lt;span style="line-height: 1.25em; display: block; cursor: pointer; text-decoration: none; padding-top: 1px" title="Download file"&gt;PS1 file 
            &lt;br /&gt;7,85 KB &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;a style="position: absolute; width: 167px; white-space: nowrap; color: #0066a7; overflow: hidden; top: 7px; margin-right: 5px; text-decoration: none; left: 67px" href="http://www.sysadmins.lv/content/scripts/signit_ps2.0.ps1" target="_self" alt="Download File"&gt;SignIt_ps2.0.ps1&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=a25d231f-3b0b-4de6-b799-1ef82007bb22"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,a25d231f-3b0b-4de6-b799-1ef82007bb22.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / Digital Signatures</category>
      <category>Security</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=329e374b-27b4-42b5-8bf5-a167717372c6</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,329e374b-27b4-42b5-8bf5-a167717372c6.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,329e374b-27b4-42b5-8bf5-a167717372c6.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=329e374b-27b4-42b5-8bf5-a167717372c6</wfw:commentRss>
      <title>Подписывание скриптов PowerShell – практическое руководство (часть 1)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,329e374b-27b4-42b5-8bf5-a167717372c6.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,329e374b-27b4-42b5-8bf5-a167717372c6.aspx</link>
      <pubDate>Mon, 16 Feb 2009 06:56:08 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Как известно практически всем пользователям PowerShell, в целях безопасности была введена политика запуска скриптов. Которая имеет 4 режима:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Restricted&lt;/strong&gt; – запрещено исполнять любые скрипты, возможна работа только в интерактивной консоли &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;AllSigned&lt;/strong&gt; – все скрипты должны быть криптографически подписаны &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;RemoteSigned&lt;/strong&gt; – только полученные из недоверенных источников (например, интернет) скрипты должны быть подписаны &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Unrestricted&lt;/strong&gt; – наименее безопасный уровень, допускается исполнение любых скриптов &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;В версии V2 (пока ещё CTP3) скрипты PowerShell приравняли к исполняемым файлам и эти файлы стали неотключаемо мониториться политикой &lt;strong&gt;Software Restriction Policies&lt;/strong&gt;. Я об этом уже писал ранее: &lt;a href="http://www.sysadmins.lv/PermaLink,guid,b0e82900-ae06-4f83-90cf-ee893271cdfa.aspx"&gt;PowerShell V2 и Software Restriction Policies&lt;/a&gt;. Поначалу меня это сильно напрягало, но после пришёл к мнению, что это правильно. Неправильно только то, что мы этого не видим (&lt;strong&gt;ps1&lt;/strong&gt; расширение нигде не фигурирует). С этим бороться можно двумя методами – явно указывать пути, откуда разрешён запуск &lt;strong&gt;.ps1&lt;/strong&gt; файлов или подписать их все.&lt;/p&gt;  &lt;p&gt;Если компьютеров в сети больше одного, то самое идеальное для решения задачи будет наличие домена &lt;strong&gt;Active Directory&lt;/strong&gt; и, по возможности, &lt;strong&gt;Enterprise Certification Authity&lt;/strong&gt; &lt;em&gt;(CA)&lt;/em&gt;. Наличие домена решит массу задач, как распространение политики SRP в пределах домена, распространение сертификата в пределах домена, контроль версии сертификата, которым подписаны скрипты.&lt;/p&gt;  &lt;p&gt;Итак, для начала нам нужно получить сертификат, которым будут подписываться скрипты. В целях безопасности следует создать ограниченную учётную запись пользователя из под которой администратор (в большинстве случаев) будет подписывать скрипты. В книге PowerShell In Action для генерации сертификата предлагается использовать &lt;strong&gt;makecert.exe&lt;/strong&gt;, который входит в состав Visual Studio SDK, но как мне кажется более правильным будет использование CA. В Windows Server CA для этих целей есть уже готовый шаблон, который называется &lt;strong&gt;Code Signing&lt;/strong&gt;. Но принципиальной разницы нету, каким инструментом вы будете генерировать сертификат и я опишу процесс получения сертификата с использованием доменного CA.&lt;/p&gt;  &lt;p&gt;Если CA у нас уже установлен, то открываем оснастку &lt;strong&gt;Certification Authority&lt;/strong&gt; и переходим в раздел &lt;strong&gt;Certificate Templates&lt;/strong&gt;. Нажимаем правой кнопкой и выбираем &lt;strong&gt;Manage&lt;/strong&gt;. Откроется редактор шаблонов. Если у вас Enterprise или Datacenter редакции Windows Server, то вы можете создать свой настроенный шаблон. Но я не вижу в этом необходимости. На данном этапе нам необходимо разрешить ограниченному пользователю запрашивать сертификаты этого шаблона. Для этого в закладке &lt;strong&gt;Security&lt;/strong&gt; шаблона &lt;strong&gt;Code Signing&lt;/strong&gt; нужно разрешить чтение и запрос сертификата ограниченному пользователю. Когда эта процедура проделана, редактор шаблонов можно закрыть. После чего в оснастке Certification Authority снова нажать правой кнопкой на разделе &lt;font color="#0000ff"&gt;Certificate Templates –&gt; New –&gt; Certificate Template to Issue&lt;/font&gt; и в списке выбрать шаблон &lt;strong&gt;Code Signing&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;После чего нужно залогиниться этим пользователем, запустить оснастку Certificate Manager (&lt;font color="#0000ff"&gt;Start –&gt; Run… –&gt; certmgr.msc&lt;/font&gt;) и выполнить запрос сертификата. В списке шаблонов должен быть и добавленный нами Code Signing. Когда сертификат будет запрошен не надо закрывать оснастку сертификатов. Далее нам потребуется экспортировать открытую часть сертификата в x509 файл (с расширением &lt;strong&gt;.cer&lt;/strong&gt;). Экспорт открытой части нам потребуется для проверки подписи и организации доверия подписи в пределах домена. Экспортированный сертификат необходимо теперь доставить администратору(-ам), который отвечает за групповую политику.&lt;/p&gt;  &lt;p&gt;В групповых политиках (чаще всего в доменной политике) необходимо создать новую политику &lt;strong&gt;Software Restriction Policies&lt;/strong&gt; и в &lt;strong&gt;Additiona Rules&lt;/strong&gt; добавить правило сертификата (&lt;strong&gt;Certificate Rule&lt;/strong&gt;) и указать экспортированный сертификат. Это необходимо затем, что PowerShell для проверки доверия сертификата ищет его в контейнере &lt;strong&gt;Trusted Publishers&lt;/strong&gt; и только Software Restriction Policies позволяет централизовано распространять сертификаты в этот контейнер.&lt;/p&gt;  &lt;p&gt;Теперь можно приступать к подписыванию скриптов. Для этих целей используется командлет Set-AuthenticodeSignature и синтаксис его такой:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Set-AuthenticodeSignature&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$cert&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Где $file – путь к скрипту и $cert – объект сертификата, который получается следующим образом:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;span style="color: #800080"&gt;$cert&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; @(&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;dir&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;cert&lt;/span&gt;&lt;span style="color: #000000"&gt;:\&lt;/span&gt;&lt;span style="color: #800000"&gt;CurrentUser\My&lt;/span&gt;&lt;span style="color: #000000"&gt; -codesigning)[0]&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;здесь мы явно указываем, что нам нужен сертификат, у которого в &lt;strong&gt;EKU&lt;/strong&gt; (&lt;em&gt;Enchanced Key Usage)&lt;/em&gt; указан &lt;strong&gt;Code Sgining&lt;/strong&gt;. В нашем случае он будет всего 1. Но если их окажется несколько, то мы выберем самый первый. Вот как это будет выглядеть на практике:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: black; font: 9pt courier new; color: #fff"&gt;&lt;font color="#009500"&gt;&lt;span  #009500?; background-color: black?&gt;&lt;p&gt;[Desktop] Set-ExecutionPolicy allsigned
[Desktop] Get-ExecutionPolicy
AllSigned
[Desktop] .\uptime.ps1
&lt;font color="#ff0000"&gt;File C:\Documents and Settings\Signer\Desktop\uptime.ps1 cannot be loaded. The file C:\Documents and Settings\Signer
\Desktop\uptime.ps1 is not digitally signed. The script will not execute on the system. Please see "get-help
 about_signing" for more details..
At line:1 char:13
+ .\uptime.ps1 &lt;&lt;&lt;&lt;
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException&lt;/font&gt;

[Desktop] $cert = @(dir cert:\currentuser\my -codesigning)[0]
[Desktop] $cert


    Directory: Microsoft.PowerShell.Security\Certificate::currentuser\my


Thumbprint                                Subject
----------                                -------
42E5B32A19885C6ADCF9683BDA1C871E0FE5E0DB  CN=Signer, CN=Users, DC=contoso, DC=com


[Desktop] Set-AuthenticodeSignature uptime.ps1 $cert


    Directory: C:\Documents and Settings\Signer\Desktop


SignerCertificate                         Status                                 Path
-----------------                         ------                                 ----
42E5B32A19885C6ADCF9683BDA1C871E0FE5E0DB  Valid                                  uptime.ps1


[Desktop] .\uptime.ps1
System Uptime for DC1 is:  1 days 4 hours 19 minutes 20 seconds
[Desktop]&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Я наглядно показал, как это работает. Мы сначала перевели политику исполнения скриптов в &lt;strong&gt;AllSigned&lt;/strong&gt; и убедились, что неподписанный скрипт не исполняется. После чего я подписал этот скрипт и попробовал снова. Как видите, скрипт теперь исполнился.&lt;/p&gt;

&lt;p&gt;Если не будет выполнено условие распространения сертификата посредством политики SRP в контейнер &lt;strong&gt;Trusted Publishers&lt;/strong&gt;, то вы получите вот такое сообщение:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: black; font: 9pt courier new; color: #fff"&gt;&lt;font color="#009500"&gt;&lt;span  #009500?; background-color: black?&gt;&lt;p&gt;[Desktop] .\uptime.ps1

&lt;font color="#ffffff"&gt;Do you want to run software from this untrusted publisher?&lt;/font&gt;
File C:\Documents and Settings\Signer\Desktop\uptime.ps1 is
published by CN=Signer, CN=Users, DC=contoso, DC=com and is not trusted
on your system. Only run scripts from trusted publishers.
[V] Never run  &lt;font color="#ffffff"&gt;[D] Do not run&lt;/font&gt;  [R] Run once  [A] Always run  [?] Help
(default is "D"):d
&lt;font color="#ff0000"&gt;File C:\Documents and Settings\Signer\Desktop\uptime.ps1 cannot be loaded because you have elected to no
t run this software now.
At line:1 char:12
+ .\uptime.ps1 &lt;&lt;&lt;&lt;&lt;/font&gt;
[Desktop]&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Вот таким образом мы решаем задачу исполнения только проверенного набора скриптов. В этом смысле PowerShell 1.0 менее безопасный и удобный, поскольку мы не можем политикой SRP блокировать исполнение PS1 файлов как класс и имеем только один выход – принудительное подписывание скриптов. В версии V2 политика исполнения скриптов удобно интегрируется с SRP. Удобство интегрирования в том, что SRP помимо распространения сертификата в пределах домена так же на основе этого правила разрешает исполнять эти скрипты в обход общего ограничения на PS1 файлы.&lt;/p&gt;

&lt;p&gt;В следующем посте я расскажу, как можно упростить процесс подписывания скриптов. Так что не отключаемся &lt;img alt=":)" src="/smilies/happy.gif"&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=329e374b-27b4-42b5-8bf5-a167717372c6"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,329e374b-27b4-42b5-8bf5-a167717372c6.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / Digital Signatures</category>
      <category>Security</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b0e82900-ae06-4f83-90cf-ee893271cdfa</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b0e82900-ae06-4f83-90cf-ee893271cdfa.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b0e82900-ae06-4f83-90cf-ee893271cdfa.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b0e82900-ae06-4f83-90cf-ee893271cdfa</wfw:commentRss>
      <title>PowerShell V2 и Software Restriction Policies</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b0e82900-ae06-4f83-90cf-ee893271cdfa.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b0e82900-ae06-4f83-90cf-ee893271cdfa.aspx</link>
      <pubDate>Tue, 06 Jan 2009 07:19:18 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Как моим читателям известно я недавно репортил баг на connect (подробности здесь - &lt;A href="http://www.sysadmins.lv/PermaLink,guid,9c8bf74b-9535-49af-ba92-fa727fc7c67c.aspx"&gt;Первые впечатления от PowerShell V2 CTP3&lt;/A&gt;) и сегодня получил ответ следующего содержания (если кто-то не может туда попасть):&lt;/P&gt;
&lt;BLOCKQUOTE style="MARGIN-RIGHT: 0px" dir=ltr&gt;
&lt;P&gt;&lt;EM&gt;Software restriction policies intentionally apply to PowerShell scripts now in V2&lt;BR&gt;Posted by &lt;STRONG&gt;Microsoft&lt;/STRONG&gt; on 2009.01.05. at 10:49&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;следовательно это теперь не баг, а фича. Фича by design. Ещё раз ссылка на connect:&lt;/P&gt;
&lt;P&gt;&lt;A title=https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=389878&amp;amp;SiteID=99 href="https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=389878&amp;amp;SiteID=99"&gt;https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=389878&amp;amp;SiteID=99&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;И в моём предыдущем посте по этой проблеме временный workaround следует считать постоянным. Я сильно надеюсь, что к релизу подготовят документацию по этому вопросу. И мне до сих пор не ясно, будут ли сделаны какие-то изменения в самой политике SRP (ведь блокируемого расширения &lt;STRONG&gt;.ps1&lt;/STRONG&gt; в списке политики SRP нету). Я считаю, что они должны произведены, чтобы не было никаких неизвестностей при настройке политики. Как это будет реализовано - время покажет. Но для тех, кто планирует использовать PowerShell V2 и Software Restriction Policies будет полезно это знать. Неприятно, конечно же, но что поделать.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b0e82900-ae06-4f83-90cf-ee893271cdfa"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b0e82900-ae06-4f83-90cf-ee893271cdfa.aspx</comments>
      <category>PowerShell</category>
      <category>Security</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=9c8bf74b-9535-49af-ba92-fa727fc7c67c</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,9c8bf74b-9535-49af-ba92-fa727fc7c67c.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,9c8bf74b-9535-49af-ba92-fa727fc7c67c.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=9c8bf74b-9535-49af-ba92-fa727fc7c67c</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>Первые впечатления от PowerShell V2 CTP3</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,9c8bf74b-9535-49af-ba92-fa727fc7c67c.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,9c8bf74b-9535-49af-ba92-fa727fc7c67c.aspx</link>
      <pubDate>Mon, 29 Dec 2008 20:38:01 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Как и ожидалось - негативные. Я не знаю почему, но я настолько привык к версии 1.0, что V2 уже стал отвергать на подсознательном уровне, отрицая все потенциальные преимущества V2. Да, в 1.0 много чего не было сделано, приходилось конструировать собственные костыли, чтобы получить нужный результат, но 1.0 казался как-то роднее и приятней. Я тянул до последнего и вчера совершил героическое обновление PowerShell 1.0 до V2 CTP3. При этом следовал чётким инструкциям ReleaseNotes - корректно деинсталлировал версию 1.0 и потом установил V2 CTP3. Баг был обнаружен мною уже при втором запуске консоли или через 1 минуту после установки.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Суть проблемы:&lt;/STRONG&gt; на своём ноутбуке с Windows Vista SP1 я использую Software Restriction Policies и действие по умолчанию Disallowed. Для необходимых путей добавлены исключения с действием Unrestricted и из стандартного набора удалёно расширение .chm и всё. А к чему я это всё? Вот мой второй запуск консоли PowerShell V2 CTP3 (после возвращения политики SRP в исходное состояние):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE style="BACKGROUND-COLOR: black; FONT: 9pt courier new; COLOR: #fff"&gt;&lt;FONT color=#009500&gt;&lt;SPAN black? background-color: #009500?;&gt;Windows PowerShell V2 (Community Technology Preview - Features Subject to Change)
Copyright (C) 2008 Microsoft Corporation. All rights reserved.

&lt;FONT color=#ff0000&gt;File D:\Users\vpodans\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because its executi
on is blocked by software restriction policies. For more information, contact your system administrator.
At line:1 char:2
+ . &amp;lt;&amp;lt;&amp;lt;&amp;lt;  'D:\Users\vpodans\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException&lt;/FONT&gt;

PS C:\Users\vPodans&amp;gt; Get-ExecutionPolicy
RemoteSigned
PS C:\Users\vPodans&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;С dot sourced скриптами дела обстояли так же:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE style="BACKGROUND-COLOR: black; FONT: 9pt courier new; COLOR: #fff"&gt;&lt;FONT color=#009500&gt;&lt;SPAN black? background-color: #009500?;&gt;PS C:\Users\vPodans&amp;gt; "Get-Date" | Set-Content -Path .\date.ps1
PS C:\Users\vPodans&amp;gt; Get-Content .\date.ps1
Get-Date
PS C:\Users\vPodans&amp;gt; . .\date.ps1
&lt;FONT color=#ff0000&gt;File C:\Users\vPodans\date.ps1 cannot be loaded because its execution is blocked by software restriction policies. For
more information, contact your system administrator.
At line:1 char:2
+ . &amp;lt;&amp;lt;&amp;lt;&amp;lt;  .\date.ps1
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException
&lt;/FONT&gt;
PS C:\Users\vPodans&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Любые попытки исполнения файлов скриптов завершились ничем. Первым делом я проверил настройки политик SRP и убедился, что расширения PS1 нету. Причём все файлы скриптов замечательно открываются по двойному клику в PowerGUI и в системном журнале Application никаких записей об этом не зарегистрировано. Далее я попробовал включить расширенное логирование работы Software Restriction Policies:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers" /v LogFileName /d saferlog.txt&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;и попробовал снова запустить консоль PowerShell. В итоге я получил файл примерно такого содержания:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;svchost.exe (PID = 1152) identified C:\Windows\system32\consent.exe as Unrestricted using path rule, Guid = {191cd7fa-f240-4a17-8986-94d480a6c8ca}&lt;BR&gt;svchost.exe (PID = 856) identified C:\Windows\system32\DllHost.exe as Unrestricted using path rule, Guid = {191cd7fa-f240-4a17-8986-94d480a6c8ca}&lt;BR&gt;svchost.exe (PID = 856) identified C:\Windows\system32\DllHost.exe as Unrestricted using path rule, Guid = {191cd7fa-f240-4a17-8986-94d480a6c8ca}&lt;BR&gt;svchost.exe (PID = 1152) identified C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe as Unrestricted using path rule, Guid = {191cd7fa-f240-4a17-8986-94d480a6c8ca}&lt;BR&gt;powershell.exe (PID = 2688) identified D:\Users\Administrator\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 as Disallowed using default rule, Guid = {11015445-d282-4f86-96a2-9e485f593302}&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Первой строчкой отображена попытка запуска запуска приложения с повышенными привилегиями. Далее (самая последняя строчка) видно, что файл профиля (&lt;EM&gt;Microsoft.PowerShell_profile.ps1&lt;/EM&gt;) был действительно блокирован политикой. Но на каком основании блокирован и почему нету соответствующей записи в журнале Application мне до сих пор неизвестно. Я так же произвёл аудит доступа к файлу профиля, но там ничего подозрительного не увидел. Вобщем вот такие дела, господа. 
&lt;P&gt;&lt;STRONG&gt;Решение:&lt;/STRONG&gt; в качестве временного решения в политику SRP было добавлено 2 исключения: 
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#0000ff&gt;%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal%WindowsPowerShell/*.ps1&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#0000ff&gt;%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal%WindowsPowerShell/PowerTab/*.ps1&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Для этих двух правил уровень нужно выставить &lt;STRONG&gt;Unrestricted&lt;/STRONG&gt;. Ради интереса я попробовал выставить уровень Basic User и что интересно - PS1 файлы так же блокируются, как и при отсутствии этих дополнительных исключений!&lt;/P&gt;
&lt;P&gt;Я не знаю, что такого там натворили разработчики PowerShell в CTP3 (я не знаю, была ли такая проблема в более ранних CTP версиях или нет), но мне кажется тут попахивает не просто какой-то ошибкой в коде, а нечто более глобальным, что загрузка PS1 файлов каким-то образом ловится и отшивается политиками Software Restriction Policies. Заодно можно посетовать на практически отсутствующие инструменты отслеживания работы политик SRP &lt;img alt=":'(" src="/smilies/unhappy.gif"&gt; (расширенное логирование не сильно помогает в этом деле). Если у кого-то есть возможность повторить ситуацию (работа PowerShell V2 CTP3 с работающей политикой SRP), то отпишитесь в комментах о результатах. Если данный баг подтвердится, то не забудьте подтвердить его здесь:&lt;/P&gt;
&lt;P&gt;&lt;A title=https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=389878&amp;amp;SiteID=99 href="https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=389878&amp;amp;SiteID=99"&gt;https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=389878&amp;amp;SiteID=99&lt;/A&gt;&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=9c8bf74b-9535-49af-ba92-fa727fc7c67c"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,9c8bf74b-9535-49af-ba92-fa727fc7c67c.aspx</comments>
      <category>PowerShell</category>
      <category>Security</category>
      <category>Security / SRP</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=ff3a6fd4-89a2-4065-80a7-20bd56090e39</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,ff3a6fd4-89a2-4065-80a7-20bd56090e39.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,ff3a6fd4-89a2-4065-80a7-20bd56090e39.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=ff3a6fd4-89a2-4065-80a7-20bd56090e39</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>EFS и смарт-карты в Windows Server 2008 (часть 4, заключительная)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,ff3a6fd4-89a2-4065-80a7-20bd56090e39.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,ff3a6fd4-89a2-4065-80a7-20bd56090e39.aspx</link>
      <pubDate>Sun, 21 Dec 2008 17:13:10 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;В предыдущих частях мы разговаривали о применении смарт-карт для хранения и использования ключей шифрования EFS в Windows Server 2008. Мы так же рассмотрели вопросы реализации агентов восстановления и самого процесса восстановления. Предыдущие 3 части:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,5de018df-2266-4e5c-904f-e815d91e708e.aspx"&gt;EFS и смарт-карты в Windows Server 2008 (часть 1)&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,a13d0c06-3608-42d9-b11e-0aef08354dd8.aspx"&gt;EFS и смарт-карты в Windows Server 2008 (часть 2)&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,8b5e58cc-9017-4575-9c9c-17dd81c25866.aspx"&gt;EFS и смарт-карты в Windows Server 2008 (часть 3)&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;И у нас остался только одна категория вопросов: что будет, если сертификат просрочен или будет отозван. В принципе, разницы в поведении между просроченными и отозванными сертификатами не будет, а именно:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;пользователи не могут шифровать новые файлы отозванными или просроченными сертификатами, но сохраняется возможность расшифровывать ранее зашифрованные файлы; 
&lt;LI&gt;агенты восстановления EFS файлов теряют возможность дешифрования файлов, которые были зашифрованы после истечения срока или отзыва сертификата агента восстановления. В этом случае когда пользователи шифруют файлы, то они заполняют только DDF, но не DRF, который остаётся пустым. 
&lt;LI&gt;агенты восстановления Key Archival так же утрачивают возможность восстановления закрытых ключей пользователей из базы CA, которые были сгенерированы после истечения срока Key Archival сертификата. В этом случае закрытые ключи пользователей не шифруются просроченными сертификатами агентов Key Archival. В результате извлечение BLOB файла из базы CA будет невозможно. Однако, эти агенты могут дешифровывать ключи пользователей, которые запрашивали сертификаты в период валидности сертификатов агентов Key Archival.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В общем смысле понятно, что расшифровывать файлы/ключи можно с просроченными/отозванными сертификатами, но проводить новое шифрование уже невозможно.&lt;/P&gt;
&lt;P&gt;Вот теперь, я так полагаю, мы в достаточной мере рассмотрели вопрос использования смарт-карт для EFS. В качестве эпилога скажу, что рекомендуется использовать комбинированные шаблоны для агентов восстановления. Например, если агент восстановления будет хранить свои закрытые ключи от EFS и Key Archival на смарт-карте, то выгодней будет использовать шаблон Smart Card Logon и в его EKU добавить уже необходимые области применения (например, Key Archival), что упрощает процедуру эксплуатации таких сертификатов в будущем. Не нужно будет теперь заботиться, что отдельные сертификаты будут истекать в разное время и при компрометации смарт-карты придётся отзывать несколько сертификатов - достаточно будет отозвать один сертификат. То же самое касается и пользователей, которые используют смарт-карты. Достаточно в Smart Card Logon EKU добавить Basic EFS и всё будет хорошо. Почти хорошо, если у вас есть Enterprise или Datacenter редакция Windows Server :)&lt;/P&gt;
&lt;P&gt;Вопросы обновления сертификатов и прочие lifecycle эксплуатации (например, введение Certificate Autoenrollment и прочее) смарт-карт и EFS уже выходят за рамки моей статьи, поэтому вам придётся этот материал изучать самостоятельно. И на последок я подобрал несколько полезных ссылок, которые помогут с освоением данного материала:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc700811.aspx" target=_blank&gt;The Encrypting File System&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/technet/security/smallbusiness/topics/cryptographyetc/protect_data_efs.mspx" target=_blank&gt;Protecting Data by Using EFS to Encrypt Hard Drives&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc738977.aspx" target=_blank&gt;Implementing Key Archival Walkthrough&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc755395.aspx" target=_blank&gt;Key Archival and Management in Windows Server 2003&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://technet.microsoft.com/en-us/library/bb457027.aspx" target=_blank&gt;Certificate Revocation and Status Checking&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b83c37c6-c022-488a-a135-568c8858c7ee&amp;amp;DisplayLang=en" target=_blank&gt;Certificate Autoenrollment in Windows Server 2003&lt;/A&gt; (.doc)&lt;/LI&gt;&lt;/UL&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=ff3a6fd4-89a2-4065-80a7-20bd56090e39"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,ff3a6fd4-89a2-4065-80a7-20bd56090e39.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / EFS</category>
      <category>Security / PKI / Smart Cards</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=8b5e58cc-9017-4575-9c9c-17dd81c25866</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,8b5e58cc-9017-4575-9c9c-17dd81c25866.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,8b5e58cc-9017-4575-9c9c-17dd81c25866.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=8b5e58cc-9017-4575-9c9c-17dd81c25866</wfw:commentRss>
      <title>EFS и смарт-карты в Windows Server 2008 (часть 3)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,8b5e58cc-9017-4575-9c9c-17dd81c25866.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,8b5e58cc-9017-4575-9c9c-17dd81c25866.aspx</link>
      <pubDate>Thu, 18 Dec 2008 19:19:47 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;В предыдущих частях мы рассмотрели принципы работы EFS, изучили основные вопросы безопасности и доступности ключей, а так же показали как создавать агентов восстановления файлов EFS и агентов восстановления ключей:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,5de018df-2266-4e5c-904f-e815d91e708e.aspx"&gt;EFS и смарт-карты в Windows Server 2008 (часть 1)&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.sysadmins.lv/PermaLink,guid,a13d0c06-3608-42d9-b11e-0aef08354dd8.aspx"&gt;EFS и смарт-карты в Windows Server 2008 (часть 2)&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Когда у нас все агенты восстановления подготовлены и подготовлены шаблоны &lt;STRONG&gt;EFS + Smart Card Logon&lt;/STRONG&gt;, то необходимо заранее подготовить смарт-карты и выпустить для них сертификаты. Для этого можно воспользоваться консолью MMC - &lt;FONT color=#0000ff&gt;certmgr.msc&lt;/FONT&gt; и выполнить запрос сертификата:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efs10.3_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=efs10.3 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efs10.3_thumb.jpg" width=642 height=452&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;пользователь выполнил запрос сертификата и драйвер предложил сразу положить сертификат на токен. Данную процедуру необходимо проделать для всех пользователей, которые будут шифровать файлы сертификатами и хранить их на смарт-картах. После этого можно приступать к настройке групповой политики:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efsgpo_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=efsgpo src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efsgpo_thumb.jpg" width=805 height=576&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;В &lt;STRONG&gt;Public Key Policies&lt;/STRONG&gt; нужно выбрать свойства &lt;STRONG&gt;Encrypting File System&lt;/STRONG&gt; и получим такое окно. Здесь у нас появилось много новых настроек, которых раньше не было. Вот скрин этого же окна в Windows Server 2003:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efsgpo1_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=efsgpo1 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efsgpo1_thumb.jpg" width=407 height=453&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;тут мы можем только или разрешить или запретить использование EFS. Пробежимся по настройкам новой консоли:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Encrypt the contents of the users's Documents folder&lt;/STRONG&gt; - при использовании этой опции будет зашифрована вся папка Documents пользователя. Особого смысла в ней не вижу. Но кому-то может пригодиться. 
&lt;LI&gt;&lt;STRONG&gt;Require a smart card for EFS&lt;/STRONG&gt; - опция, которая позволяет принудительно хранить EFS ключи шифрования на смарт-картах. Если эта опция включена, но смарт-карты не реализованы, то шифрование будет недоступно. Т.к. у нас смарт-карты есть, то выставляем здесь флажок. 
&lt;LI&gt;&lt;STRONG&gt;Create caching-capable user key from smart card&lt;/STRONG&gt; - данная опция позволяет кэшировать ключи шифрования для обеспечения возможности шифрования при изъятом токене или смарт-карте. Параметры кэширования настраиваются дополнительно на вкладке Cache. Если этот флажок сброшен, то будут действовать настройки кеширования драйвера смарт-карты. 
&lt;LI&gt;&lt;STRONG&gt;Enable pagefile encryption&lt;/STRONG&gt; - разрешает шифровать файл подкачки. При включении шифрования файла подкачки может замедлиться работа системы и увеличиться нагрузка на систему. Во всяком случае первый раз файл подкачки будет шифроваться достаточно долго. 
&lt;LI&gt;&lt;STRONG&gt;Display key backup notifications when user key is created or changed&lt;/STRONG&gt; - включает или отключает уведомление пользователя, что его ключ шифрования был создан или изменён.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Чуть ниже мы можем позволить пользователям генерировать самоподписанные сертификаты EFS при недоступности существующего сертификата или недоступности централизованного Enterprise CA. В нашем случае использование самоподписанных сертификатов будет запрещено.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; часто замечаю, что администраторы сетей сильно пренебрегают вопросами планирования инфтраструктуры PKI и в Enterprise среде не разворачивают Certification Authority (хотя технических препятствий зачастую просто нету), а используют самоподписанные сертификаты. Я постоянно утверждаю, что самоподписанные сертификаты - вселенское зло, поскольку они неуправляемы. Во-первых, им никто (кроме самого издателя) не доверяет, отсутствует механизм управления настройками сертификатов и отсутствуют механизмы отзыва сертификата при компрометации ключа. Особенно часто такие сертификаты используют для веб-серверов или для OWA (Outlook Web Access).&lt;/P&gt;
&lt;P&gt;И в самом низу указывается шаблон сертификатов, который будет использоваться для шифрования файлов. В моём случае это SM EFS. Если используются раздельные сертификаты для смарт-карт и EFS (версии 1), то следует оставить значение по умолчанию - Basic EFS.&lt;/P&gt;
&lt;P&gt;Когда групповые политики будут настроены, то можно приступать к самому процессу шифрования. Когда пользователь захочет зашифровать файл, то он должен на файле или папке выбрать &lt;STRONG&gt;Properties -&amp;gt; Advanced -&amp;gt; Encrypt contents to secure data&lt;/STRONG&gt;. И появится окно с предложением использовать сертификат смарт-каты для шифрования:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efs10.2_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=efs10.2 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efs10.2_thumb.jpg" width=487 height=251&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;После чего потребуется выбрать сертификат из списка доступных сертификатов на смарт-карте и которые пригодны для шифрования:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efs10.4_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=efs10.4 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efs10.4_thumb.jpg" width=832 height=515&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Выбрав указанный сертификат потребуется ввести PIN от смарт-карты или токена. После этого файл или папка будут зашифрованы. Во время текущего сеанса, когда смарт-карта или токен установлены шифрованные файлы будут открываться без необходимости дополнительного ввода PIN. Но при изъятии смарт-карты и при установке обратно, либо при первой попытке открытия шифрованного файла после перелогона в трее появится значок, говорящий, что требуется авторизоваться на смарт-карте:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efs15_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=efs15 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20083_B153/efs15_thumb.jpg" width=442 height=99&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;и потребует ввода PIN в смарт-карту.&lt;/P&gt;
&lt;P&gt;Если ключ пользователя был утерян или временно недоступен, то назначенный групповой политикой агент восстановления EFS (как минимум должен иметь право Change extanded attributes на файл) проделывает точно такую же процедуру с вводом PIN от своего токена, где хранится ключ от EFS Recovery Agent и получает возможность расшифровать файл, как бы это сделал пользователь в штатном режиме. Но если токен был потерян, испорчен (т.е. угрозы похищения ключа нету), то не расшифровывать же все файлы пользователя? Можно расшифровывать, а можно и просто восстановить ключ пользователя из базы CA.&lt;/P&gt;
&lt;P&gt;Для восстановления ключа шифрования из базы CA потребуется выполнить следующие шаги:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;войти в систему под учётной записью, которая имеет право управления Certification Authority (обычно администратор), запустить консоль CMD и в ней выполнить следующую команду:&lt;BR&gt;&lt;FONT color=#0000ff&gt;certutil -getkey &lt;EM&gt;6148fa9e000000000022&lt;/EM&gt; &lt;EM&gt;%path%\outblob&lt;/EM&gt;&lt;/FONT&gt;&lt;BR&gt;где &lt;STRONG&gt;6148fa9e000000000022&lt;/STRONG&gt; - серийный номер сертификата. Его можно посмотреть как в самом сертификате, так и в консоли Certifiaction Authority добавив в показ колонки Serial Number&lt;BR&gt;&lt;STRONG&gt;%path%\outblob&lt;/STRONG&gt; - путь к выходному BLOB файлу. Вывод команды должен выглядеть примерно так:&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;C:\Users\Administrator&amp;gt;certutil -getkey 6148fa9e000000000022 .\desktop\outblob&lt;BR&gt;Querying dc1.contoso.com\contoso-DC1-CA..................... &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;"dc1.contoso.com\contoso-DC1-CA"&lt;BR&gt;&amp;nbsp; Serial Number: 6148fa9e000000000022&lt;BR&gt;&amp;nbsp; Subject: CN=Administrator, CN=Users, DC=contoso, DC=com&lt;BR&gt;&amp;nbsp; UPN:administrator@contoso.com&lt;BR&gt;&amp;nbsp; NotBefore: 12/18/2008 10:26 AM&lt;BR&gt;&amp;nbsp; NotAfter: 12/18/2009 10:26 AM&lt;BR&gt;&amp;nbsp; Template: SMEFS, SM EFS&lt;BR&gt;&amp;nbsp; Version: 3&lt;BR&gt;&amp;nbsp; Cert Hash(sha1): 3c 43 ff 2d 0e 99 35 c4 a1 59 43 47 bc b6 50 91 1c b7 f5 8a &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Recipient Info[0]:&lt;BR&gt;CMSG_KEY_TRANS_RECIPIENT(1)&lt;BR&gt;CERT_ID_ISSUER_SERIAL_NUMBER(1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serial Number: 61312c8f000000000020&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Issuer: CN=contoso-DC1-CA, DC=contoso, DC=com&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Subject: CN=Recovery Agent, CN=Users, DC=contoso, DC=com&lt;BR&gt;CertUtil: -GetKey command completed successfully.&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;LI&gt;Вот этот BLOB файл нужно передать (например, по электронной почте или через сервис мгновенных сообщений) пользователю, который в CA является агентом восстановления ключей и чей сертификат находится во вкладке Recovery Agents. 
&lt;LI&gt;получив этот файл агент восстановления должен установить смарт-карту или токен в ридер или USB, где находится закрытый ключ от KRA сертификата. Далее ему нужно запустить консоль CMD и в командной строке выполнить:&lt;BR&gt;&lt;FONT color=#0000ff&gt;certutil -recoverkey &lt;EM&gt;%path%\outblob user.pfx&lt;/EM&gt;&lt;/FONT&gt;&lt;BR&gt;где &lt;STRONG&gt;%path%\outblob&lt;/STRONG&gt; - путь к BLOB файлу, который был получен на шаге 2&lt;BR&gt;&lt;STRONG&gt;user.pfx&lt;/STRONG&gt; - имя PKCS #12 файла, который будет содержать пару из открытого и закрытого ключа пользователя. Вот так примерно выглядит вывод команды:&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;C:\Users\Recovery Agent&amp;gt;certutil -recoverkey outblob administrator.pfx&lt;BR&gt;dwFlags = CA_VERIFY_FLAGS_CONSOLE_TRACE (0x20000000)&lt;BR&gt;dwFlags = CA_VERIFY_FLAGS_DUMP_CHAIN (0x40000000)&lt;BR&gt;ChainFlags = CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT (0x40000000)&lt;BR&gt;HCCE_LOCAL_MACHINE&lt;BR&gt;CERT_CHAIN_POLICY_BASE&lt;BR&gt;-------- CERT_CHAIN_CONTEXT --------&lt;BR&gt;ChainContext.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;SimpleChain.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;CertContext[0][0]: dwInfoStatus=10c dwErrorStatus=0&lt;BR&gt;&amp;nbsp; Issuer: CN=contoso-DC1-CA, DC=contoso, DC=com&lt;BR&gt;&amp;nbsp; NotBefore: 12/15/2008 1:26 AM&lt;BR&gt;&amp;nbsp; NotAfter: 12/15/2013 1:36 AM&lt;BR&gt;&amp;nbsp; Subject: CN=contoso-DC1-CA, DC=contoso, DC=com&lt;BR&gt;&amp;nbsp; Serial: 6fc7646fe91510bc4631b9dcc08805e3&lt;BR&gt;&amp;nbsp; c3 44 cb 46 1d d8 d8 cf dc 35 fb 7c 27 cb 7d a1 d4 64 47 2c&lt;BR&gt;&amp;nbsp; Element.dwInfoStatus = CERT_TRUST_HAS_NAME_MATCH_ISSUER (0x4)&lt;BR&gt;&amp;nbsp; Element.dwInfoStatus = CERT_TRUST_IS_SELF_SIGNED (0x8)&lt;BR&gt;&amp;nbsp; Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Exclude leaf cert:&lt;BR&gt;&amp;nbsp; da 39 a3 ee 5e 6b 4b 0d 32 55 bf ef 95 60 18 90 af d8 07 09&lt;BR&gt;Full chain:&lt;BR&gt;&amp;nbsp; c3 44 cb 46 1d d8 d8 cf dc 35 fb 7c 27 cb 7d a1 d4 64 47 2c&lt;BR&gt;------------------------------------&lt;BR&gt;Verified Issuance Policies: All&lt;BR&gt;Verified Application Policies: All &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Computed Hash: b3 57 bf 4b fe 18 16 bf 38 a4 17 00 17 27 4e b9 43 64 d4 14&lt;BR&gt;Decrypted PKCS7 Message Content &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;User Certificate:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serial Number: 6148fa9e000000000022&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Issuer: CN=contoso-DC1-CA, DC=contoso, DC=com&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Subject: CN=Administrator, CN=Users, DC=contoso, DC=com&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cert Hash(sha1): 3c 43 ff 2d 0e 99 35 c4 a1 59 43 47 bc b6 50 91 1c b7 f5 8a &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Enter new password:&lt;BR&gt;Confirm new password:&lt;BR&gt;CertUtil: -RecoverKey command completed successfully.&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;LI&gt;После успешного расшифрования BLOB файла агенту восстановления будет предложено ввести и подтвердить пароль для .pfx файла, который нужно будет потом ввести при импорте файла в Certificate Store. 
&lt;LI&gt;Передать полученный файл пользователю любым доступным способом и сообщить пароль к нему. &lt;U&gt;Не следует и файл и пароль передавать одним путём (например, через почту или Messenger)&lt;/U&gt;.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Если же ключ был скомпрометирован (была утеряна смарт-карта и есть основания, что PIN известен 2-м и более лицам), то сертификат следует отозвать.&lt;/P&gt;
&lt;P&gt;Вот мы и рассмотрели полностью (не скажу, что очень детально, но достаточно сносно для первой хау-ту :) ) вопрос имплементации новой возможности Windows Vista/Windows Server 2008 - хранение и использование ключей EFS на смарт-картах. Осталось рассмотреть только один вопрос - что будет, когда различные сертификаты истекут или будут отозваны, который я постараюсь (если всё получится) осветить в заключительной 4-й части.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=8b5e58cc-9017-4575-9c9c-17dd81c25866"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,8b5e58cc-9017-4575-9c9c-17dd81c25866.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / EFS</category>
      <category>Security / PKI / Smart Cards</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=a13d0c06-3608-42d9-b11e-0aef08354dd8</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,a13d0c06-3608-42d9-b11e-0aef08354dd8.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,a13d0c06-3608-42d9-b11e-0aef08354dd8.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=a13d0c06-3608-42d9-b11e-0aef08354dd8</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <title>EFS и смарт-карты в Windows Server 2008 (часть 2)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,a13d0c06-3608-42d9-b11e-0aef08354dd8.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,a13d0c06-3608-42d9-b11e-0aef08354dd8.aspx</link>
      <pubDate>Tue, 16 Dec 2008 12:38:07 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;В &lt;A href="http://www.sysadmins.lv/PermaLink,guid,5de018df-2266-4e5c-904f-e815d91e708e.aspx"&gt;предыдущей&lt;/A&gt; части мы поговорили об основах работы шифрующей файловой системы EFS и основными трудностями, которые появляются при использовании EFS. И одной из важных задач становится защита ключей шифрования надёжным способом от взлома, но и обеспечить возможность восстановления данных при потере ключей шифрования и их доступность. Я уже отметил, что варианта у нас всего 2 - &lt;STRONG&gt;архивирование ключей на внешний контейнер&lt;/STRONG&gt; (например, смарт-карта или USB диск) либо &lt;STRONG&gt;Key Archival&lt;/STRONG&gt;, когда закрытые ключи дополнительно хранятся в базе Certification Authority. Причём, оба этих метода можно спокойно совместить. Но здесь Microsoft нас снова "радует" (что вполне ожидаемо) - Key Archival работает только при условии, что:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Certification Authority (CA) работает под управлением Windows Server 2003/2008 Enterprise/Datecenter Edition. 
&lt;LI&gt;CA является Enterprise CA, а не StandAlone CA. 
&lt;LI&gt;криптопровайдер (CSP) поддерживает хранение закрытых ключей.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Механизм &lt;STRONG&gt;Key Archival&lt;/STRONG&gt; работает следующим образом:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Клиент ищет доступный CA в базе AD и устанавливает с ним соединение. При соединении у CA запрашивается сертификат основанный на шаблоне &lt;STRONG&gt;CA Exchange&lt;/STRONG&gt; (который используется только для этих целей). 
&lt;LI&gt;Клиент удостоверяется, что сертификат валидный (имя в сертификате соответствует имени CA, срок годности сертификата ещё не истёк и т.д.) и проверяет списки CRL на предмет отзыва этого сертификата. &lt;U&gt;А так же клиент проверяет, что сертификат подписан именно тем CA, с которым он сейчас работает и на имя этого CA. Это гарантирует, что CA сможет расшифровать полученный на последующих этапах шифрованный закрытый ключ&lt;/U&gt;. 
&lt;LI&gt;Если с сертификатом всё в порядке, то клиент шифрует сгенерированный закрытый ключ открытым ключом сертификата CA Exchange. &lt;U&gt;Если это клиент Windows Vista/Windows Server 2008, то клиент может шифровать свой ключ новыми алгоритмами CNG (Cryptography Next Generation) и использовать алгоритм AES для шифрования&lt;/U&gt;. По сути, Windows XP тоже поддерживает AES, но эта поддержка была внедрена только начиная с SP1 и здесь для Windows XP нету возможности использовать AES. 
&lt;LI&gt;Далее клиент подготавливает полный запрос PKI для CA и этот запрос направляет в CA. 
&lt;LI&gt;CA в свою очередь дешифрует полученный запрос и сверяет соответствие закрытого и открытого ключа в запросе. 
&lt;LI&gt;Если соответствие подтверждено, то CA шифрует полученный закрытый ключ рандомным симметричным ключом с использованием 3DES или AES )(только для ОС Windows Vista и выше). 
&lt;LI&gt;Затем этот симметричный ключ шифруется одним или несколькими открытыми ключами агентов восстановления, которые определены в свойствах CA и которые допущены к архивированию ключей и сохраняет всё это в специальном &lt;STRONG&gt;BLOB&lt;/STRONG&gt; (&lt;EM&gt;Binary Large Object&lt;/EM&gt;) формате в своей базе.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Исходя из этой процедуры нетрудно представить процесс восстановления:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;администратор CA извлекает необходимый BLOB файл из базы CA. 
&lt;LI&gt;Т.к. этот файл зашифрован открытым ключом агента (или агентов) восстановления, то файл передаётся любому допустимому агенту восстановления для дешифрации. 
&lt;LI&gt;агент восстановления использует свой закрытый ключ для дешифрации файла и создаёт &lt;STRONG&gt;.pfx&lt;/STRONG&gt; файл, попутно защищая его паролем. 
&lt;LI&gt;&lt;STRONG&gt;.pfx&lt;/STRONG&gt; файл затем передаётся конечному пользователю, который у себя на машине импортирует пару из открытого и закрытого ключа в контейнер &lt;STRONG&gt;Certificate Store&lt;/STRONG&gt;.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Для начала нам потребуются агенты восстановления, которые будут уполномочены восстанавливать ключи из базы CA. Для этого в CA существует шаблон &lt;STRONG&gt;Key Recovery Agent&lt;/STRONG&gt;. Из изменений, которые потребуются - на вкладке &lt;STRONG&gt;General&lt;/STRONG&gt; поставить галочку для публикации сертификата в AD и в &lt;STRONG&gt;Security&lt;/STRONG&gt; добавить нужных пользователей (&lt;U&gt;но лучше будет поместить нужных агентов восстановления в отдельную группу и ей назначить право Read и Enroll&lt;/U&gt;). Затем следует в консоли CA добавить этот шаблон в список издаваемых сертификатов. Когда эта процедура будет завершена агенты восстановления должны подать заявку на выдачу сертификатов восстановления.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; здесь стоит отметить, что автоматическая выдача сертификатов работать не будет. Администратор CA должен вручную одобрить каждый запрос в секции Pending Requests. После того как запрос будет одобрен, изданный сертификат появится в секции Crtificate Enrollment Requests. Если агент восстановления для запроса использует Windows 2000/XP/2003, то запрос необходимо произвести запрос сертификата используя Certificates Web Enrollment pages из интернет-браузера.&lt;/P&gt;
&lt;P&gt;Когда сертификат получен, то можно в CA разрешать &lt;STRONG&gt;Key Archival&lt;/STRONG&gt;. Но если у вас есть смарт-карты, то лучше экспортировать пару ключей &lt;STRONG&gt;Key Recovery Agent&lt;/STRONG&gt; на смарт-карту. В моём случае (используя &lt;STRONG&gt;Aladdin eToken Pro&lt;/STRONG&gt;) потребовалось выполнить стандартную процедуру экспорта сертификата в &lt;STRONG&gt;PKCS #12&lt;/STRONG&gt; файл (.pfx) и используя ПО токена импортировать сертификат на токен. При экспорте ключей в файл не забудьте поставить галочку для удаления ключей из Certificate Store в случае успешного экспорта. После этой операции агент восстановления перестаёт быть зависимым к своему профилю и будет неуязвим к атакам на профиль.&lt;/P&gt;
&lt;P&gt;Теперь администратор CA должен выбрать свойства CA и перейти на вкладку &lt;STRONG&gt;Recovery Ag&lt;/STRONG&gt;ents:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs3_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs3 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs3_thumb.jpg" width=406 height=534&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;В этом окне нужно переставить переключатель в &lt;STRONG&gt;Archive the key&lt;/STRONG&gt; и кнопкой &lt;STRONG&gt;Add&lt;/STRONG&gt; добавить сертификаты тех агентов восстановления, которые будут уполномочены для восстановления ключей. Именно этими сертификатами CA будет шифровать ключи пользователей.&lt;/P&gt;
&lt;P&gt;Следующим этапом будет изменение шаблонов для поддержки &lt;STRONG&gt;Key Archival&lt;/STRONG&gt;. &lt;U&gt;Шаблоны версии 1 не поддерживают данную функцию, а только V2 и V3, а эти шаблоны поддерживаются только в Windows Server Enterprise и Datacenter редакциях&lt;/U&gt;. Конкретно для EFS придётся создать новый шаблон версии 2 или 3:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs4_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs4 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs4_thumb.jpg" width=408 height=502&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Я его назвал &lt;STRONG&gt;SM EFS&lt;/STRONG&gt; (&lt;EM&gt;Smart Card EFS&lt;/EM&gt;). Изображение может отличаться от вашего случая. Я предполагаю, что у меня все CA будут работать под управлением Windows Server 2008. Для 2003 картинка может отличаться, но суть останется та же. Далее, нас заинтересует вкладка &lt;STRONG&gt;Request Hand&lt;/STRONG&gt;ling:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs5_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs5 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs5_thumb.jpg" width=409 height=505&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Здесь нужно поставить галочку напротив &lt;STRONG&gt;Archive subject's encryption private key&lt;/STRONG&gt;. Галочка ниже (&lt;STRONG&gt;Use advanced Symmetric algorithm to send key to the CA&lt;/STRONG&gt;) используется только для клиентов Windows Vista и выше. Если этим шаблоном будут пользоваться более ранние клиенты, то её выставлить нельзя! И последнее, что явно потребуется:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs6_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs6 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs6_thumb.jpg" width=406 height=503&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;драйвер токена Alddin eToken Pro для хранения сертификатов EFS на токене требует, чтобы на токене так же был и логонный сертификат&lt;/U&gt;, иначе он впадает в дикий ступор :) При использовании Windows Server Standard редакции потребуется 2 сертификата - отдельно на основе шаблона &lt;STRONG&gt;Smart Card Logon&lt;/STRONG&gt; и &lt;STRONG&gt;EFS Basic&lt;/STRONG&gt;. Т.е. не обязательно, чтобы один сертификат содержал все функции. Т.к. у меня CA работает под управлением Enterprise то я создал один шаблон и в &lt;STRONG&gt;Extensions&lt;/STRONG&gt; добавил необходимые политики действия, а именно - добавил &lt;STRONG&gt;Smart Card Logon&lt;/STRONG&gt;. Тогда я могу с использованием одного сертификата и аутентифицироваться в домене и шифровать файлы. Официальная документация требует, чтобы в списке CSP провайдеров был указан провайдер смарт-карты (токена), но в моём случае это не обязательно, поскольку при издании сертификата драйвер сам предлагает экспортировать сертификат на токен. Шаблон можно сохранять и назначить его для издания сертификатов:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Certificate Templates -&amp;gt; New -&amp;gt; Certificate Template to issue -&amp;gt; в списке выбрать SM EFS&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;И последняя часть, которая нам потребуется - указание агента восстановления для EFS.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; мы выше уже создавали агента восстановления, но у нас будет 2 различных агента восстановления - отдельно для EFS, который будет задан в GPO и агент восстановления ключей из базы CA. Это 2 совершенно разные роли и следует чётко различать назначение каждого агента.&lt;/P&gt;
&lt;P&gt;На практике по умолчанию агентом восстановления становится первый администратор первого контроллера домена в лесу Active Directory. В целях безопасности не следует его оставлять как есть. Для этого я создал новую учётную запись с именем Recovery Agent и добавил его в группу &lt;STRONG&gt;EFS Recovery&lt;/STRONG&gt;. Более ни в каких группах пользователь не состоит. Чтобы сделать его агентом восстановления нужно сначала разрешить групе EFS Recovery запрашивать сертификат на основе шаблона &lt;STRONG&gt;EFS Recovery Agent&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs7_4.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs7 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs7_thumb_1.jpg" width=408 height=485&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Я просто добавил право Read и Enroll для группы EFS Recovery. Затем пользователь, член EFS Recovery должен залогониться, запустить оснастку &lt;FONT color=#0000ff&gt;certmgr.msc&lt;/FONT&gt; и выполнить запрос сертификата:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs8_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs8 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs8_thumb.jpg" width=642 height=454&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;И ему будет предложен шаблон EFS Recovery Agent. Когда сертификат будет выдан, то у меня драйвер токена перехватил запрос и предложил положить сертификат на токен:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs9_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs9 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs9_thumb.jpg" width=642 height=454&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;и после нажатия на Ok потребуется ввести PIN токена:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs9.1_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs9.1 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs9.1_thumb.jpg" width=461 height=300&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Теперь этот сертификат хранится только на токене. &lt;U&gt;В установках по умолчанию для eToken Pro при извлечении токена из USB очищается весь контейнер Personal в Certificate Store&lt;/U&gt;. Поэтому когда агент восстановления извлекает токен, то его профиль больше не представляет никакой ценности в плане закрытых ключей, которыми можно восстанавливать EFS файлы. Как известно, при установке смарт-карты или токена в ридер или USB, то происходит копирование ключей с токена в хранилище Certificate Store. Т.к. по умолчанию сертификат шаблона EFS Recovery Agent не публикуется в AD, поэтому агент восстановления должен экспортировать &lt;STRONG&gt;.cer&lt;/STRONG&gt; (сертификат с открытым ключом) в папку вручную из программного хранилища. Именно эти сертификаты будут использоваться для шифрования ключей EFS и последующего сохранения в поле &lt;STRONG&gt;DRF&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Далее администратор должен открыть объект групповой политики нужного контейнера и перейти в секцию &lt;STRONG&gt;Encrypting File System&lt;/STRONG&gt;, как это показано на рисунке:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs9.2_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs9.2 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer20082_8F88/efs9.2_thumb.jpg" width=804 height=576&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Я уже удалил сертификат администратора по умолчанию и добавил сертификат нового агента восстановления EFS, который был сохранён самим агентом в &lt;STRONG&gt;.cer&lt;/STRONG&gt; файл.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; только после этого шага и применения этой политики на все компьютеры контейнера, к которому прилинкована политика данный агент сможет расшифровывать EFS файлы, которые были зашифрованы после этого шага. Все файлы, которые были зашифрованы до этого момента будут недоступны для нового агента восстановления. Этот факт следует учитывать.&lt;/P&gt;
&lt;P&gt;Итак, во второй части мы рассмотрели технические вопросы механизмов восстановления, которые включают в себя использование агентов восстановления:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Key Archival&lt;/STRONG&gt; - архивирование всех закрытых ключей пользователей в базе CA, что обеспечивает возможность восстановления ключей шифрования с минимальными затратами по восстановлению нормальной работы шифрованных файлов. 
&lt;LI&gt;&lt;STRONG&gt;EFS Recovery Agent&lt;/STRONG&gt; - в контексте обсуждаемого вопроса применили агента восстановления EFS файлов без необходимости восстановления ключей из базы CA. Тем более Key Archival в ряде случаев будет невозможен для применения.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Так же посмотрели почти пошаговый процесс реализации обоих механизмов и показали как агенты восстановления могут защищать свои ключи восстановления сохранив их на внешние криптоконтейнеры - смарт-карты или токены. Мы подготовили базу для восстановления файлов в случае "&lt;STRONG&gt;а если ...&lt;/STRONG&gt;". План мероприятий по восстановлению данных должен быть применён и реализован до эксплуатации EFS и цифровых сертификтов в целом. В следующей части я покажу настройки групповых политик для хранения EFS сертификатов пользователей на смарт-картах на примере использования токена eToken Pro, а так же (если объём следующей части позволит) покажу действие агентов восстановления в случае "а если ...".&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=a13d0c06-3608-42d9-b11e-0aef08354dd8"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,a13d0c06-3608-42d9-b11e-0aef08354dd8.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / EFS</category>
      <category>Security / PKI / Smart Cards</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=5de018df-2266-4e5c-904f-e815d91e708e</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,5de018df-2266-4e5c-904f-e815d91e708e.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,5de018df-2266-4e5c-904f-e815d91e708e.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=5de018df-2266-4e5c-904f-e815d91e708e</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <title>EFS и смарт-карты в Windows Server 2008 (часть 1)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,5de018df-2266-4e5c-904f-e815d91e708e.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,5de018df-2266-4e5c-904f-e815d91e708e.aspx</link>
      <pubDate>Mon, 15 Dec 2008 21:46:50 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;Читая различные обзоры нововведений в Windows Vista/Windows Server 2008 ловлю себя на мысли, что по сути, кроме маркетинговых сообщений ничего нету. Повальная виртуализация, мифический NAP и многое другое (опять же, сильно отдаёт маркетингом). Хочется спросить человека "а покажите, как вы это реализовали на практике, с какими столкнулись трудностями и прочее". А вот с этим у нас всё несколько труднее, т.к. одних Get The F&lt;STRIKE&gt;uc&lt;/STRIKE&gt;acts будет маловато для технических специалистов (на что в последнее время очень часто сетует &lt;A href="http://www.exchangerus.ru/" target=_blank&gt;Павел Нагаев&lt;/A&gt; и я с ним в этом плане согласен). Поэтому как часть программы по техническому образованию специалистов хочу постараться разобрать одно интересное нововведение в Windows Server 2008 - &lt;STRONG&gt;хранение EFS сертификатов на смарт-картах&lt;/STRONG&gt; с использованием новой опции групповых политик. Тема (на сколько я посмотрел) не освещена совсем, кроме как небольших статей на TechNet'e. Разбираемый вопрос для многих, к сожалению, останется неактуальным по причине дороговизны решения - смарт-карты - не самое дешёвое удовольствие, но я заметил, что интерес к данному вопросу всё же есть.&lt;/P&gt;
&lt;P&gt;Итак, для начала я хотел бы рассказать про общий механизм работы шифрующей файловой системы &lt;STRONG&gt;EFS&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer2008_1134F/efs1_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs1 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer2008_1134F/efs1_thumb.jpg" width=396 height=332&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Когда пользователь выставляет галочку на чек-боксе &lt;STRONG&gt;Encrypt contents to secure data&lt;/STRONG&gt; и нажимает Ok, то происходит несколько вещей:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Проверяется ключ реестра (&lt;EM&gt;HKCU\Software\Microsoft\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKey\CertificateHash&lt;/EM&gt;) на предмет наличия установленного сертификата по умолчанию для EFS. 
&lt;LI&gt;Если сертификата по умолчанию для EFS не представлено, то проверяется &lt;STRONG&gt;Certificate Store&lt;/STRONG&gt; (консоль certmgr.msc) на наличие сертификата, у которого в &lt;STRONG&gt;EKU&lt;/STRONG&gt; (&lt;EM&gt;Enchanced Key Usage&lt;/EM&gt;) содержится специальный идентификатор объекта (&lt;STRONG&gt;OID&lt;/STRONG&gt;), который отвечает за шифрование. 
&lt;LI&gt;Если сертификат с таким OID не был найден и если машина находится в домене, то клиент направляет запрос в &lt;STRONG&gt;CA&lt;/STRONG&gt; (&lt;EM&gt;Certification Authority&lt;/EM&gt;) на получение сертификата для EFS. 
&lt;LI&gt;Если машина не в домене, либо в домене отсутствует CA, либо в CA отсутствует соответствующий шаблон, то машина генерирует самоподписанный сертификат (когда сертификат выдан пользователем на самого себя).&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Процес шифрования:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Локальная подсистема безопасности &lt;STRONG&gt;LSA&lt;/STRONG&gt; (&lt;EM&gt;Local Security Authority&lt;/EM&gt;) генерирует рандомный ключ шифрования &lt;STRONG&gt;FEK&lt;/STRONG&gt; (&lt;EM&gt;File Encryption Key&lt;/EM&gt;) и этим ключом с использованием симметричного алгоритма шифрования шифрует содержимое файла. Симметричное шифрование во много раз быстрее алгоритма с открытым ключом, но и менее безопасно, поскольку обе половинки симметричного ключа нужно хранить в надёжном и, в то же время, доступном месте. Для этого LSA выбирает открытый ключ сертификата пользователя и шифрует им симметричный ключ шифрования FEK ассиметричным алогоритмом и записывает шифр ключа в специальное поле файла. Кроме этого ключ FEK шифруется открытым ключом сертификата агента восстановления, который назначен либо локальной, либо групповой политикой. Примерная картина хранения ключей изображена на картинке, где &lt;STRONG&gt;DDF&lt;/STRONG&gt; - &lt;EM&gt;Data Decryption Field&lt;/EM&gt;, &lt;STRONG&gt;DRF&lt;/STRONG&gt; - &lt;EM&gt;Data Recovery Field&lt;/EM&gt;, &lt;STRONG&gt;DRA&lt;/STRONG&gt; - &lt;EM&gt;Data Recovery Agent&lt;/EM&gt;:&lt;/LI&gt;&lt;/UL&gt;
&lt;P align=center&gt;&lt;A href="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer2008_1134F/efs2_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=efs2 src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/EFSWindowsServer2008_1134F/efs2_thumb.jpg" width=431 height=287&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Таким образом гарантируется, что доступ к файлу имеет только владелец закрытого ключа пользователя и агент восстановления. В Windows Server 2003 появилась возможность предоставлять шифрованные файлы в общий доступ с другими пользователями. При этом с самим файлом ничего не происходит, а только ключ FEK шифруется открытыми ключами сертификатов тех пользователей, которым разрешён доступ к шифрованному файлу. Именно по этой причине невозможно предоставлять доступ к шифрованному файлу группам - группы не могут иметь сертификатов, а только Security Principals (конкретные участники безопасности, как пользователи и компьютеры). А так же эти пользователи уже должны иметь в базе Active Directory EFS-пригодные сертификаты. Когда я только начал изучать EFS, то не совсем понимал этих требований, пока не начал изучать вопрос более детально и понимать т.н. физику процесса.&lt;/P&gt;
&lt;P&gt;Более интересный вариант - &lt;STRONG&gt;шифрование файла в сетевой папке&lt;/STRONG&gt;.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Когда клиенты Windows 2000/XP/2003/Vista обращаются к сетевой папке по SMB/CIFS к серверу Windows 2000/2003, то файл будет шифроваться локально на удалённой системе. Для этого на удалённой системе загружается профиль пользователя и по вышеуказанным методам ищет пригодный для шифрования EFS сертификат или генерирует самоподписанный. Но данный метод обладал недостатками, поскольку удалённый сервер должен быть доверенный для делегирования, что позволяло обеспечить проверку подлинности пользователя с использованием Kerberos, что могло снизить безопасность сети, а так же это вызывало проблемы доступа к шифрованным файлам по сети с других рабочих станций.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;В качестве альтернативного варианта был предложен WebDAV, который позволял использовать защищённый SSL канал при передаче файла. Хотя SSL не обязателен, поскольку любые операции шифрования/расшифрования происходили на клиенте локально. При доступе к шифрованному файлу, он в таком же виде пересылался по сети клиенту, где последний локально расшифровывал файл. После работы файл заново локально шифровался и уже в шифрованном виде передавался по сети.&lt;/P&gt;
&lt;P&gt;При использовании клиента Windows Vista и сервера Windows Server 2008, то используется механизм, который реализован в WebDAV, а именно - файл шифруется и расшифровывается локально на клиенте и файл по сети передаётся в шифрованном виде как есть. Но, тем не менее, этот механизм не решает вопрос доступа с различных машин к шифрованному файлу. Дело в том, что при логоне пользователя на рабочую станцию ему не подгружаются сертификаты, которые были использованы на других машинах, они никогда не покидают профиль пользователя. Если в домене применён Certificate Autoenrollment, то автоматически запрашивается новый сертификат с новой парой открытый/закрытый ключ и который непригоден для расшифрования ранее зашифрованных файлов. Для этой задачи существует 2 решения:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;хранение закрытого ключа на смарт-карте&lt;/STRONG&gt; (теперь он единый для пользователя на всех компьютерах!). К плюсам можно отнести стойкость к взлому профиля, поскольку ключ хранится на внешнем криптоконтейнере. В случае утери/похищения смарт-карты она остаётся под защитой - необходимо ещё знать PIN карты. Вероятность атаки на PIN снижается за счёт блокирования криптоконтейнера при определённом кол-ве неудачных попыток ввода PIN. Из минусов - требуется дополнительное аппаратное обеспечение. 
&lt;LI&gt;использование &lt;STRONG&gt;Credential Roaming Service&lt;/STRONG&gt;, который является расширением перемещаемого профиля и учётные данные (в общем смысле Credentials) подобно перемещаемому профилю&amp;nbsp; следуют за пользователем. К плюсам можно отнести стоимость внедрения - не требует покупки специальных криптоконтейнеров (смарт-карт). Но от этого более уязвим к взлому и атакам на профиль.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Процесс дешифрования (расшифровки) файла:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;При обращении пользователя к файлу LSA проверяет локальное хранилище Certificate Store на предмет наличия закрытого ключа сертификата EFS. По логике ассиметричного шифрования открытый и закрытый ключ взаимно дешифруют друг друга, что означает следующее:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;файл зашифрованный открытым ключом может быть расшифрован только закрытым ключом, который сопоставлен с этим открытым ключом. Даннмый метод применяется для шифрования данных, как это показано выше. 
&lt;LI&gt;файл зашифрованный закрытым ключом может быть расшифрован только открытым ключом, который сопоставлен с этим закрытым ключом. Данный метод применяется для цифровой подписи, когда пользователь своим закрытым ключом шифрует подпись, а получатель пользуясь открытым ключом пользователя расшифровывает подпись и убеждается в подлинности отправителя.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Используя закрытый ключ EFS сертификата LSA расшифровывает DDF для извлечения FEK, который ранее был зашифрован открытым ключом. После извлечения FEK происходит прямая дешифрация файла. Если же в хранилище Cetificate Store не было обнаруженного ни единого закрытого ключа, который подходил бы любому шифру DDF, то пользовтелю будет отказано в доступе - &lt;STRONG&gt;Access Denied&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;При этом стоит отметить, что имя пользователя на сертификате дешифрования совсем не обязан соответствовать залогиненному пользователю. Поэтому нету ограничений на переименование пользователей в процессе.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Примечание:&lt;/FONT&gt;&lt;/STRONG&gt; Однако, есть ограничение на смену пароля, а точнее его сброс. Только ленивый не слышал об утилитах, которые сбрасывают пароли локальных и доменных учётных записей, а так же администратор домена или локальной машины может сбрасывать пароли пользователей, тем самым позволяя с новым известным паролем получить доступ к профилю пользователя. Чтобы не допустить потенциальной кражи ключей в EFS заложен механизм зависимости от пароля. Т.е. сам закрытый ключ зашифрован паролем пользователя. Если пароль пользователя будет сброшен, то все данные, которые были зашифрованы пользователем будут утеряны (на самом деле в некоторых случаях это не совсем верно, но в общем смысле - да), поскольку нечем будет расшифровать закрытый ключ. Это справедливо только для сброса пароля. Когда пользователь меняет пароль планово (по сроку изменения пароля заданного в групповых политиках) или внепланово и с указанием предыдущего пароля, то ключи шифрования обновляются (расшифровываются старым паролем и шифруются новым) и после смены пароля доступ к этим файлам не прекращается. Данный механизм описан здесь: &lt;A title=http://support.microsoft.com/kb/290260 href="http://support.microsoft.com/kb/290260"&gt;http://support.microsoft.com/kb/290260&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Какие ещё могут наступить проблемы? А любые проблемы, которые связаны с профилем. Например, был повреждён профиль пользователя и заменён на новый - вы потеряете ключи. Пользователю назначен новый перемещаемый профиль - вы потеряете ключи. А пользователь может сам зайти в свой Certification Store и удалить ключи - вы потеряете ключи. Универсальной панацеи от этого нету - есть только более или менее эффективные средства защиты и сохранности данных и ключей шифрования.&lt;/P&gt;
&lt;P&gt;Если пользователь потерял доступ к своим закрытым ключам EFS, то агент восстановления - Recovery Agent может своим ключом расшифровать нужные файлы и пользователь получит к ним доступ в открытом виде. После этого пользователь может заново сгенерированным ключом снова зашифровать данные. Но сами ключи шифрования можно восстановить только одним единственным способом - &lt;STRONG&gt;Key Recovery&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Организация плана защиты, восстановления ключей и восстановления доступа будет рассмотрена во второй части. В принципе, весь этот материал доступно изложен на TechNet'e (&lt;A title=http://technet.microsoft.com/en-us/library/cc700811.aspx href="http://technet.microsoft.com/en-us/library/cc700811.aspx"&gt;http://technet.microsoft.com/en-us/library/cc700811.aspx&lt;/A&gt;), но тем не менее, я хочу подвести плавно тему к целевой задаче использования смарт-карт и задач, которые мы сможем решать с их помощью. Ну и для себя немного прояснить материал.&lt;/P&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=5de018df-2266-4e5c-904f-e815d91e708e"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,5de018df-2266-4e5c-904f-e815d91e708e.aspx</comments>
      <category>Security</category>
      <category>Security / PKI</category>
      <category>Security / PKI / EFS</category>
      <category>Security / PKI / Smart Cards</category>
    </item>
  </channel>
</rss>