Архив рубрики: PKI

Легенды и мифы ИТ #2: PKI edition.

image

Внимание: мой новый RSS-Feed: http://feed.feedcat.net/815939

Измените свою подписку, пожалуйста.

 

Кстати, а знаете ли Вы, что на самом деле делает опция “Allow private key to be exported” или “Prompt the user during enrollment and require user input when the private key is used” в шаблоне сертификата? Делают ли они использвоание сертификата более безопасным или нет?

Я знаю как минимум пару людей, которые точно знают ответ на этот вопрос. К сожалению, я не так давно вышел из пелены невежественности, но лучше ж поздно, чем слишком поздно Winking smile В общем, короткий ответ: нет. CA не имеет ни малейшей возможности заставить клиента вести себя таким образом, как предполагает название этой настройки. В шаблоне содержатся лишь рекомендации клиентской части не экспортировать закрытый ключ.

Потому в Windows 2003 экспортировать такой сертификат через GUI было нельзя, а вот некоторые сторонние утилиты это сделать могли. Впрочем и с помощью стандартных утилит некоторые типы сертификатов были легко экспортируемы, если верить документации. А вот начиная с Windows 2008 (ну или Windows 7) сделали “улучшение” и теперь можно экспортровать неэкспортируемое.

Так что смысла в этой опции мало: только как защита от дурака.

Будьте осторожны и старайтесь задумываться над тем, что порой кажется очевидным. =)

Реклама

>Создание самоподписанного сертификата для подписи кода

>

imageПросто на тот случай, если Вам лень погуглить, или Вы не любите решений длиннее двух строк, ну и для себя – чтобы ближе тянуться в следующий раз.

Иногда хочется быть уверенным хоть в какой-то степени, что скрипт, или код, который Вы вот-вот запустите, является тем самым, который Вы написали черт знает когда. Одним из путей достижения этого состояния просветления является закрытие флешки с кодом в сейфе. Второй вариант – подписать код. Вторая возможность обычно считается, да и является более удобной, однако требует специального сертификата. Причем покупка такового в общем-то не самое дешевое удовольствие: минимум, который мне удалось найти это 99 долларов за год. С одной стороны, не такая уж огромная сумма, с другой, есть ли смысл платить, когда единственная цель – убедить себя, что это Ваш собственный код? Может быть да, может быть – нет (это тема отдельного далеко не однозначного разговора), и если Ваш ответ “нет”, то Вы можете без излишних трат создать Ваш собственный сертификат, который будет не хуже, чем у Verysign до тех пор, пока Вы не попытаетесь убедить кого-либо еще, что это именно Ваш сертификат и что ему можно верить =) 

Я нашел на просторах Интернета пару чудесных рецептов, но они включают иногда лишний этап создания собственного сертификата удостоверяющего центра. В то время, как сама идея не так уж и плоха, для собственных нужд это и впрямь может быть излишним, так что если Вы пожелаете чуть более короткое решение, то получайте:

1) Скачиваем Windows SDK (нам в любом случае нужно это сделать, даже по тем двум рецептам, поскольку именно там располагается makecert), устанавливаемего и следуем в его папку.

2) makecert.exe -cy end -pe -r -n «CN=Имя Вашего Супер-Сертификата» -sky Signature –sv path_tokey.pvk path_tokey.cer

3) pvk2pfx.exe -pvk path_tokey.pvk -spc path_tokey.cer -pfx path_tokey.pfx

4) Импортируем ключ key.pfx в Ваше хранилище сертификатов. Или на Вашу смарткарту .

Используете его там, где Вам необходимо. Заметьте, что выделенные части нужно на что-то заменить.

Надеюсь, для Вас это сработает как и для меня.

Описания для makecert и pvk2pfx здесь и здесь.

>Почему не работает SSL соединение?

>

Очень частый вопрос, который не менее часто приводит к одному и тому же ответу: сертфикат должен быть выдан на то самое имя, к которому происходит обращение.

Если сертификат на имя http://www.domain.com, то при любом обращении к этому серверу по имени www1.domain.com, domain.com или http://www.ne-domain.com будет приводить к ошибке. Хорошо, если на клиентском конце соединения сидит пользователь, который сможет обработать это событие. А если там клиентская часть Windows update? Или какой-то другой софт?