Корневой сертификат Microsoft истекает в этом месяце, но компания просит его не удалять / Хабр

Корневой сертификат Microsoft истекает в этом месяце, но компания просит его не удалять / Хабр Сертификаты

Что такое эцп и сертификат закрытого ключа

Электронная цифровая подпись используется во многих программных продуктах: 1С: Предприятие (и другие программы для ведения хозяйственного или бухгалтерского учёта), СБИС , Контур.Экстерн (и прочие решения для работы с бухгалтерской и налоговой отчётностью) и других. Также ЭЦП нашла применение в обслуживании физических лиц при решении вопросов с государственными органами.

Как и при подписании бумажных документов, процесс подписания электронных носителей информации связан с “редактированием” первичного источника.

Электронная цифровая подпись документов осуществляется путём преобразования электронного документа с помощью закрытого ключа владельца, этот процесс и называется подписанием документа

На сегодняшний день сертификаты закрытого ключа чаще всего распространяются либо на обычных USB-флешках, либо на специальных защищённых носителях с тем же USB интерфейсом (Рутокен, eToken и так далее).

Если вы используете ЭЦП у себя дома, то каждый раз подключать/отключать токен быстро надоедает. Кроме того, носитель будет занимать один USB-порт, которых и так не всегда хватает для подключения всей необходимой периферии.Если же вы используете ЭЦП на работе, то бывает, что ключ удостоверяющим центром выдан один, а подписывать документы должны разные люди.

Кроме того, и дома, и, особенно, на работе, случается, что на одном компьютере необходимо производить действия с использованием сразу нескольких ключей цифровой подписи. Именно в тех случаях, когда использование физического носителя сертификата неудобно, можно прописать ключ ЭЦП в реестр КриптоПро и использовать сертификат, не подключая носитель к USB-порту компьютера.

Корневой сертификат microsoft истекает в этом месяце, но компания просит его не удалять

По

информации

Bleeping Computer, в конце этого месяца закончится срок действия корневого сертификата некоторых версий Windows, включая XP/2000/Server 2003/Windows 7/Vista/Server 2008/Server 2008 R2. Microsoft

просит

системных администраторов не удалять корневые сертификаты Windows с истекшими сроками действия. Они необходимы для корректной работы ОС, а их отсутствие может вызвать сбой системы.

Эта просьба компании также относится к корневому сертификату Microsoft Root Authority, который закончится 31 декабря 2020 года.

Проверить срок действия корневых сертификатов в Windows можно в хранилище сертификатов (панель управления, вкладка «Содержимое», кнопка «Сертификаты). В Windows 7/10 это можно также сделать с помощью утилиты Certmgr.exe (средство диспетчера сертификатов) или Certmgr.msc.

У всех корневых сертификатов есть срок действия, по истечению которого они и все полученные на их основе сертификаты становятся недействительными. Но обычно это не проблема, так как производители ПО и устройств своевременно выпускают обновление, заменяющее истекший корневой сертификат на новый с другим сроком действия. Если это не произойдет, то пользовательские устройства, например, больше не смогут устанавливать безопасные интернет-соединения, поскольку защита, обеспечиваемая корневым сертификатом, была нарушена.

Microsoft не пояснила, когда будет выпущен новый корневой сертификат взамен текущего. Компания предупредила, что в любом случае сертификаты с истекшим сроком действия все еще используются Windows для обратной совместимости и никогда не должны удаляться из системы. Даже если в системе есть доверенный корневой сертификат с истекшим сроком действия, то все, что было подписано с использованием этого сертификата до даты истечения срока действия, требует, чтобы этот доверенный корневой сертификат был подтвержден в системе.

Microsoft уточнила, что если сертификаты с истекшим сроком действия не отозваны, то их можно использовать для проверки всего, что было подписано ими до истечения срока их действия.

14 января 2020 года закончился период расширенной поддержки операционной системы Windows 7. Компьютеры под ее управлением продолжат работать, но производитель ОС не гарантирует их безопасность и советует перейти на Windows 10. Microsoft будет до 10 января 2023 года платно поддерживать Windows 7 для участников программы расширенных обновлений безопасности (Extended Security Updates program — ESU).

См. также:

Провайдер xyz provider

Теперь займемся, наконец, провайдером. Выберем ему имя: «XYZ Provider». Соответственно, основной файл будет называться xyzcsp.c, также нужны файлы xyzcsp.def и xyzcsp.rc

В исходном образце, который можно найти в CSPDK, в файле csp.c, нас интересуют только функции CPAcquireContext, CPHashData, CPGetHashParam, CPVerifySignature. Легко видеть, что это функции для создания хендла провайдера, функции хеширования и проверки ЭЦП. Заменим эти функции на приведенные ниже.

Кроме них, напишем одну замечательную функцию, xyz_ConvertPublicKeyInfo, которая будет заниматься конвертацией публичного ключа ЭЦП. Не забываем добавить xyz_ConvertPublicKeyInfo в файл xyzcsp.def, чтобы линкер экспортировал это имя. Конвертация будет заключаться в игнорировании первых двух байт в записи ASN1 нотации публичного ключа, тем самым получая ключ в чистом виде, две половинки по 32 байта.

Удалим функцию DllMain, а также старые CPAcquireContext, CPHashData, CPGetHashParam, CPVerifySignature из xyzcsp.c, уберем устаревшую команду DESCRIPTION и имена DllRegisterServer и DllUnregisterServer из xyzcsp.def

Добавим в конец файла xyzcsp.c:

BOOL WINAPI
CPAcquireContext(
    OUT HCRYPTPROV *phProv,
    IN  LPCSTR szContainer,
    IN  DWORD dwFlags,
    IN  PVTableProvStruc pVTable)
{
    *phProv = 123;
    return TRUE;
}

BOOL WINAPI
CPHashData(
    IN  HCRYPTPROV hProv,
    IN  HCRYPTHASH hHash,
    IN  CONST BYTE *pbData,
    IN  DWORD cbDataLen,
    IN  DWORD dwFlags)
{
    my_hash_gost(pbData, cbDataLen, hash_gost);
    SHA1(pbData, cbDataLen, hash_sha1);
    return TRUE;
}

BOOL WINAPI
CPGetHashParam(
    IN  HCRYPTPROV hProv,
    IN  HCRYPTHASH hHash,
    IN  DWORD dwParam,
    OUT LPBYTE pbData,
    IN OUT LPDWORD pcbDataLen,
    IN  DWORD dwFlags)
{
	switch(dwParam)
	{
		case HP_HASHVAL:
			if(*pcbDataLen == 20) // у нас просят отпечаток sha1
			{
				memcpy(pbData, hash_sha1, 20);
				break;
			}
		default:
			*pcbDataLen = 0;
			SetLastError(E_INVALIDARG);
			return FALSE;
	}
    return TRUE;
}

BOOL WINAPI
CPVerifySignature(
    IN  HCRYPTPROV hProv,
    IN  HCRYPTHASH hHash,
    IN  CONST BYTE *pbSignature,
    IN  DWORD cbSigLen,
    IN  HCRYPTKEY hPubKey,
    IN  LPCWSTR szDescription,
    IN  DWORD dwFlags)
{
#define NTE_IC_ERROR_PREDEF          0x89900000L
    INT err;
    err = my_verify_gost(hash_gost, pbSignature, public_key, public_key 32, 
            NID_id_GostR3410_2001_CryptoPro_A_ParamSet);
    if ( err ) 
    {
        SetLastError( NTE_IC_ERROR_PREDEF | err );
        return FALSE;
    }
    return TRUE;
}

BOOL WINAPI xyz_ConvertPublicKeyInfo(
  DWORD dwCertEncodingType,
  VOID *EncodedKeyInfo,
  DWORD dwAlg,
  DWORD dwFlags,
  BYTE** ppStructInfo,
  DWORD* StructLen
)
{
    memcpy(public_key, ((CERT_PUBLIC_KEY_INFO*)EncodedKeyInfo)->PublicKey.pbData   2, 64);
    return TRUE;
}

Подробно комментировать исходники криптопровайдера, думаю, излишне. Все понятно по тексту.

Сертификаты для тестирования


Файл gnivc_2006.cer, в котором лежит корневой сертификат ФНС:

-----BEGIN CERTIFICATE-----
MIIDGjCCAsegAwIBAgIQPx2a1ZtKRIBLiHKukksltTAKBgYqhQMCAgMFADCBwDEe
MBwGCSqGSIb3DQEJARYPdWNpbmZvQGduaXZjLnJ1MQswCQYDVQQGEwJSVTEVMBMG
A1UEBwwM0JzQvtGB0LrQstCwMTAwLgYDVQQKDCfQpNCT0KPQnyDQk9Cd0JjQktCm
INCk0J3QoSDQoNC 0YHRgdC40LgxMDAuBgNVBAsMJ9Cj0LTQvtGB0YLQvtCy0LXR
gNGP0Y7RidC40Lkg0YbQtdC90YLRgDEWMBQGA1UEAxMNR05JVkMgRk5TIFJVUzAe
Fw0wNjA5MjcwOTI5NTdaFw0xMjA5MjcwOTM4MjdaMIHAMR4wHAYJKoZIhvcNAQkB
Fg91Y2luZm9AZ25pdmMucnUxCzAJBgNVBAYTAlJVMRUwEwYDVQQHDAzQnNC 0YHQ
utCy0LAxMDAuBgNVBAoMJ9Ck0JPQo9CfINCT0J3QmNCS0KYg0KTQndChINCg0L7R
gdGB0LjQuDEwMC4GA1UECwwn0KPQtNC 0YHRgtC 0LLQtdGA0Y/RjtGJ0LjQuSDR
htC10L3RgtGAMRYwFAYDVQQDEw1HTklWQyBGTlMgUlVTMGMwHAYGKoUDAgITMBIG
ByqFAwICIwEGByqFAwICHgEDQwAEQCzY8VGw9ged02ijaj2KWOMXJVvzY1FEcg7G
xedUtKx0wqyTVti0kmodEmm2cVfAbDkp0xAdBS9/mdDfeIrKXLajgZYwgZMwCwYD
VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFBMQt5JPv eiD7j1
nYkVJssQ6/RfMBAGCSsGAQQBgjcVAQQDAgEAMEIGCCsGAQUFBwEBBDYwNDAyBggr
BgEFBQcwAoYmaHR0cDovL3d3dy5nbml2Yy5ydS91Yy9HTklWQ0ZOU1JVUy5jcnQw
CgYGKoUDAgIDBQADQQDgEyWPI fdXXiTYMLHdV76v8kVFIxCHCYtastcvZiM3cG1
wTFhio8fDx6sLgHHriOwQFg0zRUYHIs9nZEptLvM
-----END CERTIFICATE-----

Файл rootsber.cer, в котором лежит корневой сертификат Сбербанка:

-----BEGIN CERTIFICATE-----
MIIDKjCCAtmgAwIBAgIGMDBDQT0HMAgGBiqFAwICAzCBwTELMAkGA1UEBhMCUlUx
LTArBgNVBAoMJNCh0LHQtdGA0LHQsNC90Log0KDQvtGB0YHQuNC4INCe0JDQnjE4
MDYGA1UECwwv0JTQtdC/0LDRgNGC0LDQvNC10L3RgiDQsdC10LfQvtC/0LDRgdC9
0L7RgdGC0LgxJjAkBgNVBAMMHdCh0LHQtdGA0LHQsNC90Log0KDQvtGB0YHQuNC4
MSEwHwYJKoZIhvcNAQkBFhJjYXNicmZAc2JlcmJhbmsucnUwHhcNMDkwODA1MDAw
MDAwWhcNMTcwODA1MDAwMDAwWjCBwTELMAkGA1UEBhMCUlUxLTArBgNVBAoMJNCh
0LHQtdGA0LHQsNC90Log0KDQvtGB0YHQuNC4INCe0JDQnjE4MDYGA1UECwwv0JTQ
tdC/0LDRgNGC0LDQvNC10L3RgiDQsdC10LfQvtC/0LDRgdC90L7RgdGC0LgxJjAk
BgNVBAMMHdCh0LHQtdGA0LHQsNC90Log0KDQvtGB0YHQuNC4MSEwHwYJKoZIhvcN
AQkBFhJjYXNicmZAc2JlcmJhbmsucnUwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAgYH
KoUDAgIeAQNDAARAaYzyi29YQ9NC5cb/kq//J1kKhOgcvGWqsQu50mldjADTGfrl
JUVXwu4fMUTHoF9TjY0O1kgrLYWT/kI4jABAWKOBsjCBrzAdBgNVHQ4EFgQUZmHo
Zo41vw/U74ZlC8k/bcQODuowDAYDVR0TBAUwAwEB/zAzBgNVHR8ELDAqMCigJqAk
hiJodHRwOi8vd3d3LnNicmYucnUvY2EvMDAwMHg1MDkuY3JsMAsGA1UdDwQEAwIC
hDA BgcqhQMDewMBBDMMMTAwQ0ExODUzetCa0L7RgNC90LXQstC 0Lkg0LrQu9GO
0Ycg0KPQpiDQodCRINCg0KQwCAYGKoUDAgIDA0EAD9Umnh/EZgjgQvpypdVwe0wa
GnTi dHhVwoNAX1tquxQNbAptbBs2OKzkRU7/mrBfDD4EdVV5xC1f2DTcH8NAg==
-----END CERTIFICATE-----

Сертификация microsoft для системного администратора: mcp, mcts, mcsa, mcse, mcitp

У меня есть небольшая практика, я стараюсь писать ответы на вопросы, которые мне задали больше 2 человек. Вопрос о сертификации системного администратора мне задавали значительно больше двух человек. Попробую ответить просто и понятно.

Прежде всего давайте конкретизируем тему: ниже я постараюсь описать путь сертификации для системного администратора Windows Server 2003/2008, схему по которой сертифицировался сам.

Если вы решили получить сертификат Microsoft подтверждающий ваши навык администрирования Windows Server 2003, вам лучше знать о причинах своего решения. Хочу только напомнить, что после выхода Windows Server 2003 вышла версия Windows Server 2003 R2, Windows Server 2008 и наконец Windows Server 2008 R2. Может стоит сразу получать знания и сертифицироваться по более новым технологиям? 😉

Какие существуют сертификаты Microsoft для технического специалиста? Давайте рассмотрим их все по порядку…

Microsoft Certified Professional (MCP)
1. Microsoft Certified Professional (MCP) – сертификат “вымирающего вида”. Этот сертификат будет доступен вам после сдачи одного любого экзамена “старой школы” (например, Installing, Configuring, and Administering Windows XP Professional или Managing and Maintaining a Microsoft Windows Server 2003 Environment). Сейчас частично аналогом этого статуса стал Microsoft Certified Technology Specialist (MCTS).

Microsoft Certified Systems Administrator (MCSA)
2. Microsoft Certified Systems Administrator (MCSA) – первый серьезный сертификат для администратора Windows Server 2003. Экзамены на получение этого сертификата затронут настройки служб, прав доступа, работу с пользователями и группами, управление дисковой подсистемой и сетевыми сервисами, резервное копирование и еще множество вопросов касающихся установки, настройки и обслуживания Windows Server 2003 и его окружения. Для получения этого сертификата необходимо сдать 4 экзамена:

Microsoft Certified Systems Engineer (MCSE)
3. Microsoft Certified Systems Engineer (MCSE) – высший сертификат для системного администратора Windows Server 2003, без специализации на безопасность или обмен сообщениями. Подтверждает знания не только в области установки и обслуживания Windows Server 2003, но так же и навыки проектирования сетей и сетевых сервисов, администрирования Active Directory, разработки системы безопасности и мониторинга работы сети. Для получения этого сертификата вы должны обладать статусом MCSA и дополнительно сдать следующие 3 экзамена:

Microsoft Certified Technology Specialist (MCTS)
4. Microsoft Certified Technology Specialist (MCTS) – базовый сертификат технического специалиста. Вспоминаем сертификат MCP, который выдавался за один любой экзамен, но только один раз. MCTS пришел на смену MCP в новой линейке сертификации, с той лишь разницей что почти каждый экзамен приводит нас к отдельному статусу MCTS. Например, сдав экзамен 70-640 мы получаем статус MCTS: Windows Server 2008 Active Directory Configuration. Правда удобно?! Теперь предоставив работодателю несколько сертификатов MCTS, можно показать свою квалификацию в определенном направлении, даже если еще не нашлось времени или возможности получить статус Microsoft Certified IT Professional (MCITP) по этому направлению. Но обо всем по порядку…

Microsoft Certified IT Professional (MCITP)
5. Microsoft Certified IT Professional (MCITP) – “высший статус для смертных”, как я его называю. Из сертификатов, которые можно получить сдав экзамены в центре тестирования, этот сертификат доказывает максимальную квалификацию своего обладателя в определенном направлении. В этой статье я не буду рассматривать такие сертификаты как Microsoft Certified Master (MCM) и Microsoft Certified Architect (MCA), т.к. получение этих статусов требует чрезвычайно глубоких знаний соответствующих продуктов и технологий, а так же ощутимых финансовых вложений. Но вернемся к MCITP, а точнее к разновидностям этого сертификата:

  • MCITP: Server Administrator – в новой линейке сертификации по Windows Server 2008 этот статус пришел на смену статуса MCSA по Windows Server 2000 и Windows Server 2003. Для его получения вам достаточно сдать всего три экзамена, после сдачи которых у вас на руках будет не только сертификат MCITP: Server Administrator, но и два соответствующих сертификата MCTS:
    1. TS: Windows Server 2008 Active Directory, Configuring
    2. TS: Windows Server 2008 Network Infrastructure, Configuring
    3. Pro: Windows Server 2008, Server Administrator
  • MCITP: Enterprise Administrator – аналог статуса MCSE, расмотренного мной выше. Для получения этого сертификата вам необходимо сдать 5 экзаменов, 2 из которых требуются для получения сертификата MCITP: Server Administrator. После сдачи этих экзаменов вы получите сертификат MCITP: Enterprise Administrator и четыре соответствующих сертификата MCTS:
    1. TS: Windows Server 2008 Active Directory, Configuring
    2. TS: Windows Server 2008 Network Infrastructure, Configuring
    3. TS: Windows Server 2008 Applications Infrastructure, Configuring
    4. Экзамен на выбор по клиентской операционной системе: TS: Configuring Microsoft Windows Vista Client или TS: Deploying and Maintaining Windows Vista Client and 2007 Microsoft Office System Desktops или TS: Windows 7, Configuring
    5. Pro: Windows Server 2008, Enterprise Administrator
  • Для сертификации системного администратора или инженера можно остановиться после этого статуса, но мы с вами понимаем что сейчас практически не осталось администраторов Windows Server в чистом виде, каждый совмещает свой опыт с какой либо дополнительной специализацией. Следующие сертификаты MCITP в том числе для таких случаев:

  • MCITP: Enterprise Messaging Administrator – аналог статуса MCSE: Messaging, который остался за пределами этой статьи. Подтверждает навыки настройки и администрирования продукта Microsoft Exchange Server 2007. Вы получите этот сертификат сдав 3 следующих экзамена:
    1. TS:Exchange Server 2007, Configuring
    2. Pro: Designing Messaging Solutions with Microsoft Exchange Server 2007
    3. Pro: Deploying Messaging Solutions with Microsoft Exchange Server 2007
  • MCITP: Enterprise Project Management with Microsoft Office Project Server 2007 – Данный сертификат подтверждает навыки настройки и администрирования продукта Microsoft Office Project 2007, довольно широко распространенного среди крупных корпоративных заказчиков. Для получения этого сертификата необходимо сдать следующие 3 экзамена:
    1. TS: Microsoft Office Project 2007, Managing Projects
    2. TS: Microsoft Office Project Server 2007, Managing Projects
    3. Pro: Microsoft Office Project Server 2007, Managing Projects and Programs
Про сертификаты:  Где находится диспетчер сертификатов windows 10

До текущего момента я говорил только о сертификации “с нуля”, если у специалиста еще нет ни одного сертификата Microsoft. Остается вопрос, как быть специалистам, которые уже обладают сертификатами MCSA или MCSE? Специально для них компания Microsoft разработала схему обновления сертификата (upgrade path), путем сдачи специального переходного экзамена.
Рассмотрим три основные варианта обновления сертификатов системного администратора и инженера:

  • Microsoft Certified Systems Administrator (MCSA) -> Microsoft Certified IT Professional (MCITP): Server Administrator
    Microsoft Certified Systems Administrator (MCSA) получение сертификата Microsoft Certified IT Professional (MCITP): Server Administrator
    Для обновления вам понадобится сдать всего два экзамена: 70-648 TS: Upgrading Your MCSA on Windows Server 2003 to Windows Server 2008, Technology Specialist (сдав которой вы получите для статуса MCST) и упоминавшийся уже в этой статье 70-646 PRO: Windows Server 2008, Server Administrator.
  • Microsoft Certified Systems Administrator (MCSA) -> Microsoft Certified IT Professional (MCITP): Enterprise Administrator
    Microsoft Certified Systems Administrator (MCSA) получение сертификата Microsoft Certified IT Professional (MCITP): Enterprise Administrator
    Помимо упомянутого в предыдущем абзаце экзамена 70-648 TS: Upgrading Your MCSA on Windows Server 2003 to Windows Server 2008, Technology Specialist вам необходимо сдать 70-643 TS: Windows Server 2008 Applications Infrastructure, Configuring, а так же один из экзаменов по клиентской операционной системе: 70-620 или 70-624 или 70-680, если вы еще не сдавали ни один из этих экзаменов. Тем самым вы выполните все предварительные требования для сдачи экзамена 70-647 PRO: Windows Server 2008, Enterprise Administrator, который завершит процесс обновления вашей сертификации.
  • Microsoft Certified Systems Engineer (MCSE) -> Microsoft Certified IT Professional (MCITP): Enterprise Administrator
    Microsoft Certified Systems Engineer (MCSE) получение сертификата Microsoft Certified IT Professional (MCITP): Enterprise Administrator
    Для обновления сертификата инженера по Windows Server 2003, на аналогичный статус по Windows Server 2008 вам потребуется:
    1. Один переходный (upgrade) экзамен 70-649 TS: Upgrading Your MCSE on Windows Server 2003 to Windows Server 2008, Technology Specialist, который принесет вам целых три соответствующих сертификата MCTS
    2. Один экзамен по клиентской операционной системе, на выбор: 70-620 или 70-624 или 70-680, если вы еще не сдавали ни один из этих экзаменов
    3. И экзамен 70-647 PRO: Windows Server 2008, Enterprise Administrator, сразу после сдачи которого вы станете обладателем сертификата MCITP: Enterprise Administrator

Напоследок раскрою вам свой путь сертификации, который на самом деле не представляет из себя какой либо тайны: 70-290 (MCP) -> 70-270 -> 70-299 -> 70-291 (MCSA) -> 70-293 -> 70-294 -> 70-298 (MCSE) -> 70-649 (MCTS) -> 70-620 -> 70-647 (MCITP) -> курс TTT для получения статуса Microsoft Cetified Trainer (MCT) -> 70-631 -> 70-630….и я планирую этот список продолжать 🙂
На этом, как мне кажется, статью смело можно закончить, чтобы окончательно не превращать её в коллекцию ссылок на сайт компании Microsoft. 🙂 Если у вас остались (или наоборот возникли) вопросы после прочтения этой статьи, обязательно пишите об этом в комментариях.
Успехов вам на экзаменах!

Tweet

Опубликовано

26.11.2009 8:16
и размещено в рубрике Windows, О работе, О разном.

Подпишитесь на RSS 2.0 ленту комментариев этого сообщения.

Вы можете оставить комментарий.

Создание самоподписанного сертификата средствами powershell – pki extensions

Самоподписанные сертификаты — это зло, за исключением сертификатов корневых CA. Я об этом говорил, говорю и буду говорить. Но в данном случае мы не преследуем цель создания самоподписанного сертификата. Нас по сути будет интересовать немного другое — рассмотрение принципа, который заложен во многих популярных тулзах как MakeCert или OpenSSL. Лично я не фанат ни первого, ни второго по своим сугубо личным причинам. Но, кроме этих двоих есть ещё утилита CertReq.exe, которая достаточно православная и вряд ли ей грозит вымирание (а жаль). Вобщем, сегодня предлагаю ещё раз поковырять CryptoAPI.

Как мы уже знаем, CryptoAPI обладает большим количеством всяческих COM интерфейсов, при помощи которых мы можем работать практически с любыми аспектами цифровых сертификатов. Некоторые из них бажные, а некоторые — не очень :-), но функционал у них впечатляющий. В настоящее время существует 2 основных набора API, которые реализуют клиентскую часть энроллмента — XEnroll и CertEnroll. Первый доступен только в системах начиная с Windows 2000 и до Windows Server 2003 включительно. В более новых версиях XEnroll был вырезан вместе с CAPICOM’ом полностью (куски CAPICOM’а ещё можно найти в висте) за ненадобностью. Семейство интерфейсов CertEnroll было значительно переработано и расширено, что делает его крайне гибким. Я не буду рассказывать про XEnroll, потому что это неинтересно и трупов пинать нехорошо.

Многие считают, что CryptoAPI — это очень сложно. Я могу возразить им. Я не программист совсем, но могу достаточно свободно их использовать. Нашей отправной точкой будет MSDN по адресу: Certificate Enrollment API Reference. Эта секция содержит всё самое необходимое — описание интерфейсов и перечисления. И самый первый интерфейс, который мы видим — IX509Enrollment. Этот интерфейс реализует нечто промежуточное между клиентом и сервером. Мы можем по описанию найти то, что нам нужно, а именно первую секцию — Out-of-band-enrollment. И мы видим, что для него надо сначала вызвать метод CreateRequest(). Но прежде чем вызывать метод, нам надо создать форму сертификата, на основе которой будет создан запрос. Как я уже упоминал, мы будем делать самоподписанный сертификат, поэтому следующий интерфейс подойдёт нам как нельзя кстати — IX509CertificateRequestCertificate2. Вот давайте с него и начнём.

Все указанные здесь и далее интерфейсы являются COM интерфейсами семейства X509Enrollment и эти объекты создаются следующим образом:

$Cert=New-Object-ComObjectX509Enrollment.CX509CertificateRequestCertificate.1

Примечание: как строятся такие команды? Поскольку это COM интерфейс, первую букву I в названии интерфейса меняем на букву C. Далее, если мы видим цифру 2 в конце названия интерфейса, в команде мы ставим точку и пишем число на единцу меньшее. Вот такие нехитрые правила.

Прежде чем его начать использовать, нам надо инициализировать его. К сожалению документация на MSDN далеко не полная, поэтому будем искать нужные методы через PowerShell и командлет Get-Member:

[↓] [vPodans] $cert | gm -MemberType methods


   TypeName: System.__ComObject#{728ab35a-217d-11da-b2a4-000e7bbb2b09}

Name                             MemberType Definition
----                             ---------- ----------
CheckPublicKeySignature          Method     void CheckPublicKeySignature (IX509PublicKey)
CheckSignature                   Method     void CheckSignature (Pkcs10AllowedSignatureTypes)
Encode                           Method     void Encode ()
GetCspStatuses                   Method     ICspStatuses GetCspStatuses (X509KeySpec)
GetInnerRequest                  Method     IX509CertificateRequest GetInnerRequest (InnerRequestLevel)
Initialize                       Method     void Initialize (X509CertificateEnrollmentContext)
InitializeDecode                 Method     void InitializeDecode (string, EncodingType)
InitializeFromCertificate        Method     void InitializeFromCertificate (X509CertificateEnrollmentContext, string...
InitializeFromPrivateKey         Method     void InitializeFromPrivateKey (X509CertificateEnrollmentContext, IX509Pr...
InitializeFromPrivateKeyTemplate Method     void InitializeFromPrivateKeyTemplate (X509CertificateEnrollmentContext,...
InitializeFromPublicKey          Method     void InitializeFromPublicKey (X509CertificateEnrollmentContext, IX509Pub...
InitializeFromTemplate           Method     void InitializeFromTemplate (X509CertificateEnrollmentContext, IX509Enro...
InitializeFromTemplateName       Method     void InitializeFromTemplateName (X509CertificateEnrollmentContext, string)
IsSmartCard                      Method     bool IsSmartCard ()
ResetForEncode                   Method     void ResetForEncode ()


[↓] [vPodans]

Из всех методов нам по сути доступен только InitializeFromPrivateKey(), поскольку остальные методы инициализации требуют наличие доступа к Certification Authority. Посмотрим что требуется для этого метода:

[↓] [vPodans] $cert | gm -MemberType methods | ?{$_.name -eq "InitializeFromPrivateKey"} | select definition

Definition
----------
void InitializeFromPrivateKey (X509CertificateEnrollmentContext, IX509PrivateKey, string)


[↓] [vPodans]

В качестве аргументов метода нам надо указать контекст энроллмента и объект закрытого ключа. Значения контекста находятся здесь: X509CertificateEnrollmentContext (просто включаете поиск на MSDN по названию перечисления). В качестве контекста мы можем выбрать контекст текущего пользователя или компьютера (остальное нас сейчас не волнует совсем). Контекст пользователя имеет значение 0x1. Так и запишем. Но этого мало. Надо ещё создать объект закрытого ключа:

$PrivateKey=New-Object-ComObjectX509Enrollment.CX509PrivateKey

Этот интерфейс позволяет задавать различные параметры закрытого ключа, но мы обойдёмся лишь самым необходимым:

$PrivateKey.ProviderName="Microsoft Base Cryptographic Provider v1.0"$PrivateKey.KeySpec=0x2$PrivateKey.Length=1024$PrivateKey.MachineContext=0x0$PrivateKey.Create()

Ура! Мы сгенерировали ключ. Теперь вернёмся к предыдущему интерфейсу и инициализируем его из закрытого ключа:

$Cert.InitializeFromPrivateKey(0x1,$PrivateKey,"")

Мы указываем контекст текущего пользователя и объект закрытого ключа. Там есть ещё один аргумент, который называется String. Я не знаю, что они этим хотели сказать, поэтому оставляем пустую строку. А теперь вернёмся к интерфейсу IX509CertificateRequestCertificate2 и посмотрим, что мы можем сделать сейчас. Например, используя свойства NotBefore и NotAfter мы зададим срок действия сертификата. Например, 1 год с сегодняшнего дня:

$Cert.NotBefore=[datetime]::Now$Cert.NotAfter=$Cert.NotBefore.AddDays(365)

Теперь нам надо добавить следующие свойства: EncancedKeyUsage (т.е. для каких целей вообще будет использоваться сертификат), Subject (на кого будет выписан сертификат) и Issuer (кто выдал этот сертификат). Поскольку у нас самоподписанный сертификат, поле Subject и Issuer будут одинаковые. На MSDN’е не хватает документации по свойствам Issuer и Subject, но у нас есть поиск, который нас приведёт сюда: IX500DistinguishedName. Поля Subject и Issuer должны заполняться в формате Distinguished Name и доступные префиксы для DN достаточно понятно расписаны в таблице. Нам нужно как-то активировать этот объект. Методов для инициализации здесь нет, поэтому будем использовать метод Encode().

Про сертификаты:  Как стать Microsoft Certified Professional? И зачем? / Хабр

Лирическое отступление: в подавляющем большинстве случаев вы не можете присваивать значения свойствам объектов после создания самих объектов. Предварительно их надо «активировать» одним из двух способов. Если у объекта есть метод Initialize или производное от него, необходимо сначала воспользоваться одним из доступных методов инициализации. Если объект не содержит явных методов инициализации, нужно воспользоваться методом Encode, который кодирует объект или строку в ASN.1 DER строку и инициализирует объект. Единственным исключением из этого правила являются коллекции объектов. Они как правило используют метод Add() для добавления уже инициализированных объектов.

Уже с главной страницы IX500DistinguishedName видно, что Encode кодирует строку, которая записана в DN формате. Поэтому вызываем этот метод:

$SubjectDN.Encode("CN=Some Subject,DC=lucernepublishing,DC=COM",0x0)

После строки нужно ещё указать флаг, в котором указана строка DN. Ставим дефолтный флаг. Теперь у нас готово поле Subject и Issuer (как мы договаривались, они будут одинаковые). Давайте их прицепим к нашему шаблону сертификата:

$Cert.Subject=$SubjectDN$Cert.Issuer=$Cert.Subject

Что нам осталось сделать? Нам надо создать расширение Enchanced Key Usage. Для этого нам надо использовать следующий интерфейс: IX509ExtensionEnhancedKeyUsage:

$EKU=New-Object-ComObjectX509Enrollment.CX509ExtensionEnhancedKeyUsage

Данный объект инициализируется из коллекции объектов IObjectIds. Давайте создадим эту коллекцию:

$OIDs=New-Object-ComObjectX509Enrollment.CObjectIDs

В эту коллекцию с использованием метода Add() надо добавить один или несколько объектов IObjectId, каждый из которых представляет конкретное предназначение сертификата. Например, Server Authentication, Client Authentication, Smart Card Logon, Secure e-mail и т.д. Но мы сделаем сертификат для Code Signing. OID этого EKU = 1.3.6.1.5.5.7.3.3. Вот и сделаем его:

$OID=New-Object-ComObjectX509Enrollment.CObjectID$OID.InitializeFromValue("1.3.6.1.5.5.7.3.3")$OIDs.Add($OID)$EKU.InitializeEncode($OIDs)

объект EKU у нас готов, теперь его надо добавить в наш шаблон сертификата. Поскольку это не стандартное поле сертификата, а расширение, добавляем этот объект в свойство X509Extensions, которое является аналогом интерфейса IX509Extensions и, который в свою очередь, является коллекцией расширений. Поэтому добавляем наше расширение методом Add():

$Cert.X509Extensions.Add($EKU)

Всё, мы собрали все минимально необходимые поля и расширения:

[↓] [vPodans] $cert


Type                        : 4
EnrollmentContext           : 1
Silent                      : False
ParentWindow                :
UIContextMessage            :
SuppressDefaults            : False
ClientId                    :
CspInformations             : System.__ComObject
HashAlgorithm               : System.__ComObject
AlternateSignatureAlgorithm : False
TemplateObjectId            :
PublicKey                   : System.__ComObject
PrivateKey                  : System.__ComObject
NullSigned                  : False
ReuseKey                    : False
Subject                     : System.__ComObject
CspStatuses                 : System.__ComObject
SmimeCapabilities           : False
SignatureInformation        : System.__ComObject
KeyContainerNamePrefix      : lp
CryptAttributes             :
X509Extensions              : System.__ComObject
CriticalExtensions          : System.__ComObject
SuppressOids                : System.__ComObject
Issuer                      : System.__ComObject
NotBefore                   : 16.04.2021 18:25:22
NotAfter                    : 16.04.2021 18:25:22
SignerCertificate           :
PolicyServer                :
Template                    :



[↓] [vPodans]

Теперь мы можем превращать наш шаблон сертификата в настоящй сертификат.

Лирическое отступление: а что такое запрос в техническом смысле? На самом деле запрос ничем не отличается от сертификата. Когда вы запрашиваете сертификат у CA, клиент использует эти же интерфейсы для генерации запроса. При этом получается самый настоящий самоподписанный сертификат, где Subject и Issuer одинаковые и равны имени текущего пользователя или компьютера, а так же содержит все необходимые расширения. Сам запрос подписывается закрытым ключом, который мы сгенерировали. По большому счёту, его уже можно использовать как настоящий самоподписанный сертификат. Если его отправить на сервер CA, то последний просто подменяет значения необходимых полей (как Issuer, в котором он ставит себя) и расширений, удаляет старую подпись и подписывает сертификат новой подписью. Вы можете убедиться в этом очень просто. Сгенерируйте запрос для сертификата, откройте оснастку Certificates и разверните секцию Certificate Enrollment Requests. Там будет этот самый запрос в виде уже готового сертификата. Просто там он ждёт, пока какой-нибудь CA не подпишет его.

Давайте вернёмся в самое начало текущего поста и вспомним про «исходный предмет» — IX509Enrollment. Вот этот интерфейс нам сконвертирует шаблон сертификата в настоящий сертификат с использованием метода CreateRequest(). Но прежде чем использовать метод, нам надо инициализировать объект:

$Request=New-Object-ComObjectX509Enrollment.CX509enrollment$Request.InitializeFromRequest($Cert)

И генерируем файл запроса, который ничем не отличается от самоподписанного сертификата:

$endCert=$Request.CreateRequest(0x0)

В аргументах метода указываем кодировку согласно этой страничке: EncodingType Enumeration. Мы выбираем Base64 с заголовками. $endCert будет содержать сам сертификат (открытую его часть). Фактически запрос хранится в контейнере Certificate Enrollment Requests. Поскольку этот интерфейс не был задуман специально для самоподписанных сертификатов мы проходим стандартную процедуру установки сертификата. Мы просто берём открытую часть нашего же сертификата и устанавливаем её. Вот, кстати, как он выглядит:

[↓] [vPodans] $endcert
-----BEGIN CERTIFICATE-----
MIICaTCCAdKgAwIBAgIQEzCS/mFIxLBAiGjz7 n0dDANBgkqhkiG9w0BAQUFADBP
MRMwEQYKCZImiZPyLGQBGRYDQ09NMSEwHwYKCZImiZPyLGQBGRYRbHVjZXJuZXB1
Ymxpc2hpbmcxFTATBgNVBAMMDFNvbWUgU3ViamVjdDAeFw0xMDA0MTgxMTI5MDla
Fw0xMTA0MTgxMTI5MDlaME8xEzARBgoJkiaJk/IsZAEZFgNDT00xITAfBgoJkiaJ
k/IsZAEZFhFsdWNlcm5lcHVibGlzaGluZzEVMBMGA1UEAwwMU29tZSBTdWJqZWN0
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBGa PnrhnOFO5 76c5zX5/ xh
Kb2hUYl/pRuIKzYcqrmkvqjpPK/McusibT1h70emUkED0TSZsAlSivdIFK6WSxn6
HsTCaGIHhyOSKAvzQkBsZ74BPEydGT5LiX0 MOTyxwFAHhb bqfbkdkXqUSkJAHK
Z6p fgX8uaJkKjL/kwIDAQABo0YwRDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNV
HQ4EFgQUzIFwoRTY6KjUiqmjWjSjlkxbNncwDgYDVR0PAQH/BAQDAgeAMA0GCSqG
SIb3DQEBBQUAA4GBACizodCpl/cF3OGLUx8HVag0yhr1e1P8 CLPc31FmCPAY1CO
T0yxyJPoafkbXKRjclevNJdvxE3ys9fyYigFUhgswh3oWmjanDaatPKa0kE4147k
SQHvN8JP20KeDDCJBk/FbS3xCn3jTix90ddzTa1uFoqBbBNbKOaDHIrqypTY
-----END CERTIFICATE-----

[↓] [vPodans]

Система приклеит этот сертификат к шаблону сертификата и переложит его уже в контейнер Personal:

$Request.InstallResponse(0x2,$endCert,0x0,"")

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

  • Генерировать тестовый самоподписанный сертификат для подписи скриптов PowerShell
  • Устанавливать сертификат с закрытым ключом в контейнер Personal
  • Устанавливать открытую часть сертификата в Trusted Root CAs для обеспечения доверия этому сертификату
  • Устанавливать открытую часть сертификата в Trusted Publishers для задания явного доверия цифровым подписям, сделанные этим сертификатом.
functionNew-SigningCert{[CmdletBinding()]param([string]$Subject="CN=PowerShell User, OU=Test Signing Cert",[int][ValidateSet("1024","2048")]$KeyLength=1024,[datetime]$NotBefore=[DateTime]::Now,[datetime]$NotAfter=$NotBefore.AddDays(365),[switch]$Force)$OS=(Get-WmiObjectWin32_OperatingSystem).Versionif($OS[0]-lt6){Write-Warning"Windows XP, Windows Server 2003 and Windows Server 2003 R2 are not supported!"return}$SubjectDN=New-Object-ComObjectX509Enrollment.CX500DistinguishedName$SubjectDN.Encode($Subject,0x0)$OID=New-Object-ComObjectX509Enrollment.CObjectID$OID.InitializeFromValue("1.3.6.1.5.5.7.3.3")$OIDs=New-Object-ComObjectX509Enrollment.CObjectIDs$OIDs.Add($OID)$EKU=New-Object-ComObjectX509Enrollment.CX509ExtensionEnhancedKeyUsage$EKU.InitializeEncode($OIDs)$PrivateKey=New-Object-ComObjectX509Enrollment.CX509PrivateKey$PrivateKey.ProviderName="Microsoft Base Cryptographic Provider v1.0"$PrivateKey.KeySpec=0x2$PrivateKey.Length=$KeyLength$PrivateKey.MachineContext=0x0$PrivateKey.Create()$Cert=New-Object-ComObjectX509Enrollment.CX509CertificateRequestCertificate$Cert.InitializeFromPrivateKey(0x1,$PrivateKey,"")$Cert.Subject=$SubjectDN$Cert.Issuer=$Cert.Subject$Cert.NotBefore=$NotBefore$Cert.NotAfter=$NotAfter$Cert.X509Extensions.Add($EKU)$Cert.Encode()$Request=New-Object-ComObjectX509Enrollment.CX509enrollment$Request.InitializeFromRequest($Cert)$endCert=$Request.CreateRequest(0x1)$Request.InstallResponse(0x2,$endCert,0x1,"")if($Force){[Byte[]]$bytes=[System.Convert]::FromBase64String($endCert)foreach($Containerin"Root","TrustedPublisher"){$x509store=New-ObjectSecurity.Cryptography.X509Certificates.X509Store$Container,"CurrentUser"$x509store.Open([Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)$x509store.Add([Security.Cryptography.X509Certificates.X509Certificate2]$bytes)$x509store.Close()}}}

С виду кажется сложно, но на самом деле тут ничего сложного нет совсем. Просто представьте себе сертификат как большую матрёшку, в которую вы вкладываете другие маленькие матрёшки, которые представляют собой поля и расширения сертификатов. Начинаете собирать самые маленькие матрёшки, вкладываете в более большие и в конечном итоге собираете настоящий сертификат. Хоть документация на MSDN не очень полная, используя командлет Get-Member вы можете восполнить этот пробел.

Про сертификаты:  Решено: Как удалить сертификат из хранилища Windows » MHelp.kz

Download FileDownload File1
PS1 file

13.1 KB
New-SigningCert


Создание сертификатов

  • На рабочем столе Windows компьютера, на котором
    размещен ЦС предприятия, нажмите кнопку Пуск, выберите
    пункты Программы, Администрирование и Центр
    сертификации
    .

  • В области навигации разверните имя ЦС, щелкните правой
    кнопкой мыши пункт Шаблоны сертификатов, а затем выберите
    команду Управление.

  • В области результатов консоли Шаблоны
    сертификатов
    щелкните правой кнопкой мыши пункт IPSec
    (автономный запрос)
    , а затем выберите команду Скопировать
    шаблон
    .

  • В диалоговом окне Свойства нового шаблона на
    вкладке Общие в текстовом поле Отображаемое имя
    шаблона
    введите новое имя для шаблона (например,
    EssentialsCert).

  • На вкладке Обработка запроса установите флажок
    Разрешить экспортировать закрытый ключ, а затем нажмите
    кнопку Поставщики.

  • В диалоговом окне Выбор CSP выберите наиболее
    подходящего поставщика служб шифрования, а затем нажмите кнопку
    ОК.

  • Перейдите на вкладку Расширения. В разделе
    Расширения, включенные в этот шаблон выберите пункт
    Политики применения, а затем нажмите кнопку
    Удалить.

  • В диалоговом окне Изменение расширения политик
    применения
    выберите пункт IKE-посредник IP-безопасности,
    а затем нажмите кнопку Удалить.

  • Выберите команду Добавить, а затем выберите
    нужные элементы в списке Политики применения, удерживая
    нажатой клавишу CTRL. Выберите пункты Проверка подлинности
    клиента
    и Проверка подлинности сервера, а затем нажмите
    кнопку ОК.

  • В диалоговом окне Изменение расширения политик
    применения
    нажмите кнопку ОК.

  • Перейдите на вкладку Безопасность, проверьте
    наличие у группы пользователя разрешений на чтение и
    подачу заявки, а затем к нажмите кнопку ОК.

  • Создание универсального патча

    В заключение несколько слов о создании универсального патча.

    Для Windows XP SP3 достаточно подменить следующие файлы:c:windowssystem32advapi32.dllc:windowssystem32dllcacheadvapi32.dllc:windowssystem32crypt32.dllc:windowssystem32dllcachecrypt32.dll

    Патчить нужно, загрузившись с другого диска, чтобы системный был свободным (можно с загрузочного диска Windows в режиме восстановления), далее заменяем эти два файла как в директории system32 так и в system32dllcache, где хранятся их копии. Патчить на работающей системе не получится, потому что файлы «залочены» и поменять их не удастся.

    После этого не забудьте скопировать файл с криптопровайдером xyzcsp.dll в директорию c:windowssystem32, чтобы система его находила.

    Теперь можно кликать мышью на сертификат и он будет проверяться непосредственно в операционной системе, без запуска специальных программ.

    Заменить файлы нужно на их пропатченный вариант:

    Сравнение файлов advapi32.dll и C:xyzcspPATCHADVAPI32.DLL
    00017585: 8B B8
    00017586: FF 01
    00017587: 55 00
    00017588: 8B 00
    00017589: EC 00
    0001758A: 81 C2
    0001758B: EC 04
    0001758C: 50 00
    
    Сравнение файлов crypt32.dll и C:xyzcspPATCHCRYPT32.DLL
    00008F66: 8B E9
    00008F67: FF 47
    00008F68: 55 09
    00008F69: 8B 00
    00008F6A: EC 00
    000098B2: 90 55
    000098B3: 90 8B
    000098B4: 90 EC
    000098B5: 90 8B
    000098B6: 90 45
    000098B7: 90 08
    000098B8: 53 83
    000098B9: 00 F8
    000098BA: 6F 00
    000098BB: 00 74
    000098BC: 66 21
    000098BD: 00 3D
    000098BE: 74 36
    000098BF: 00 20
    000098C0: 77 00
    000098C2: 61 74
    000098C3: 00 1A
    000098C4: 72 3D
    000098C5: 00 35
    000098C6: 65 66
    000098C8: 5C 00
    000098C9: 00 74
    000098CA: 50 13
    000098CB: 00 3D
    000098CC: 6F 37
    000098CD: 00 80
    000098CE: 6C 00
    000098D0: 69 74
    000098D1: 00 0C
    000098D2: 63 3D
    000098D3: 00 38
    000098D4: 69 AA
    000098D6: 65 00
    000098D7: 00 74
    000098D8: 73 05
    000098D9: 00 E9
    000098DA: 5C 8D
    000098DB: 00 F6
    000098DC: 4D FF
    000098DD: 00 FF
    000098DE: 69 6A
    000098E0: 63 68
    000098E1: 00 7B
    000098E2: 72 00
    000098E4: 6F 00
    000098E5: 00 6A
    000098E6: 73 00
    000098E7: 00 8D
    000098E8: 6F 05
    000098E9: 00 40
    000098EA: 66 A5
    000098EB: 00 A7
    000098EC: 74 77
    000098ED: 00 50
    000098EE: 5C 8D
    000098EF: 00 45
    000098F0: 53 08
    000098F1: 00 50
    000098F2: 79 FF
    000098F3: 00 15
    000098F4: 73 00
    000098F5: 00 10
    000098F6: 74 A7
    000098F7: 00 77
    000098F8: 65 83
    000098F9: 00 F8
    000098FA: 6D 00
    000098FB: 00 74
    000098FC: 43 DC
    000098FD: 00 8B
    000098FE: 65 45
    000098FF: 00 08
    00009900: 72 C9
    00009901: 00 C2
    00009902: 74 04
    

    Для Windows 7 также можно создать универсальный патч, желающие могут попробовать сделать это самостоятельно.

    В реальной системе, в которой установлен ГОСТ криптопровайдер, проблемы с патчем обычно решаются за счет установки специального драйвера PatchEngine, который наблюдает за загрузкой системных DLL и патчит их «на лету».

    Формат экзаменов

    Экзамен доступен на различных языках, в том числе и русском, но я настоятельно рекомендую вам сдавать его на английском языке в связи с тем, изначально все термины в документации и литературе на английском языке. Перед экзаменом вам будет предложено пройти небольшой опрос, в котором вы отвечаете на вопросы о вашем опыте работы с Azure, причинах, побудивших вас сдавать экзамен и прочее. Ответы на эти вопросы собираются в статистических целях и не влияют на ход экзамена.

    Отдельные вопросы на экзамене носят характер ситуационных заданий. Например, в экзамене 70-535 ряд вопросов разбит на отдельные блоки, в которых первоначально дается описание некого сценария заказчика, по которому уже даются архитектурные задачи в формате вопросов с различными вариантами выбора ответов (множественный/единственный выбор, необходимость упорядочивания вариантов ответов и т.д.).

    Таким образом, задания сформулированы на понимание и роль каждого отдельного ресурса (сервиса) в конкретном сценарии построения инфраструктуры. На мой взгляд, — это очень правильной подход к тестированию, который заставляет экзаменуемого думать и логически размышлять, а не машинально заучивать факты из документации.

    За неверные ответы баллы не снимаются, об этом явно указано в правилах к проведению экзаменов. Отдельно хотелось бы процитировать выдержку из правил относительно вопроса «Что означает моя оценка?»: «Сдав экзамен, вы просто продемонстрировали компетентность в оцениваемой области навыков.

    Кроме того, оценки сдавших экзамен кандидатов не позволяют сравнивать их компетентность; более высокий проходной балл не означает более высокие уровни компетентности. То же самое верно для оценок ниже проходного балла; более низкие оценки не означают более низкого уровня компетентности.

    Шаг первый

    Для начала нужно выбрать именно тот сертификат, который наиболее полно отвечает вашим текущим и будущим карьерным потребностям. Диапазон сертификатов, предлагаемых  Microsoft, широк и охватывает большинство сфер деятельности в ИТ-отрасли. Раньше, чтобы стать сертифицированным системным администратором, было необходимо сдать минимум пять экзаменов.

    Нижний уровень — «Технический специалист» — обязателен для всех и представляет собой проверку базовых знаний в области информационных технологий.

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

    Третий уровень — «Архитектор» — самый сложный и необычный. Архитектором можно стать не проходя обучение и не сдавая экзамены. Вам нужно накопить денег на поездку в Редмонд, где вас встретят местные гуру информационных технологий  и зададут несколько сложных ИТ-задач.

    Например, вас могут попросить создать какую-нибудь сложнейшую сеть, потом ваше детище сломают и — предложат починить за определенное время. По сути, вы делаете законченный продукт, который оценивают высококлассные профессионалы. Такой подход несколько перекликается с защитой кандидатской диссертации, когда вашу работу оценивает группа профессоров, пытающихся всячески вас запутать и найти слабые места в вашей работе. Айтишников, справившихся с задачками специалистов из Редмонда, в мире всего несколько сотен.

    Предлагаем вам подробные таблицы сертификации  «от продукта до должности» по первым двум уровням (закачка файла Word с таблицей начнется после клика на эту ссылку, 107 КБ).

    Именно объемность этого перечня обеспечивает столь необходимую возможность выбора. Что примечательно, не существует ограничений ни по полу, ни по возрасту, так что любой человек, зарабатывающий себе на жизнь  в области IT, может не только приобрести в процессе обучения глубокие навыки работы с продуктами Microsoft, но и получить полный набор знаний, необходимых для работы с  большинством самых современных IT-решений.

    Шаг четвертый

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

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

    Результаты распечатываются сразу же после окончания тестирования. Prometric передает данные в Microsoft, где после обработки их вносят в базу данных и присваивают вам MSPID — уникальный личный номер, по которому в дальнейшем система сертификации будет идентифицировать вас.

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

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

    После сдачи вы не только сможете отметить вместе с друзьями получение диплома ИТ-специалиста Microsoft, но и претендовать на значительно более высокую заработную плату (* см. исследование размеров изменения з/п в зависимости от наличия сертификата, проведенное журналом Redmond, сентябрь 2006).

    Оцените статью
    Мой сертификат
    Добавить комментарий