Приложение Б. Совместимость и стандарты.
В данном приложении описаны стандарты, которых придерживаются службы сертификации Windows 2000, и конкретное применение этих стандартов. Также описывается, как и где эти стандарты используются службами сертификации. Эти темы раскрываются в следующих подразделах:
- Международный союз электросвязи (ITU)
- Сообщество IETF
- Стандарты шифрования с открытым ключом (PKCS)
Международный союз электросвязи
Международный союз электросвязи (ITU) является организацией, которая определяет стандарты в отрасли связи. Ее членами являются более 150 стран. ITU обеспечивает правительства и частный сектор механизмом, с помощью которого возможно координированное развитие глобальных телекоммуникационный сетей и систем. ITU-T является сектором ITU, отвечающим за стандарты в области телекоммуникаций. ITU-T отвечает за разработку стандартов для сетевых протоколов, за факсимильные системы передачи и за разработку стандартов построения модемов и их работы.
Сертификаты X.509 версии 3
Большинство сертификатов, которые используются сегодня, основаны на стандарте X.509 ITU-T. При работе с сертификатами Windows 2000 придерживается этого стандарта.
Сертификат X.509 содержит в себе открытый ключ и информацию о человеке или объекте, которому этот сертификат был выдан, информацию о самом сертификате, а также дополнительную информацию о центре сертификации (СА), выдающего сертификат. Информация о владельце может включать название объекта (имя, получившего сертификат), открытый ключ, алгоритм открытого ключа и, в качестве опции, уникальный идентификатор владельца. Расширения стандарта позволяет добавлять для сертификата X.509 версии 3 информацию, связанную с идентификаторам ключа, информацию об использовании ключа, политику сертификата, дополнительные названия и атрибуты, ограничения пути сертификации и расширения для отзыва сертификатов, включая причины отзыва и разделение списка CRL, выполняемое при обновлении центра сертификации (CA).
Использование форматов сертификатов промышленного стандарта X.509 версии 3 и открытых интерфейсов позволяет службам сертификации Windows 2000 взаимодействовать со многими другими продуктами и технологиями, поддерживающими использование криптографии на основе открытых ключей и инфраструктуру открытых ключей.
Сообщество IETF
Сообщество IETF (Internet Engineering Task Force, IETF) является открытым международным сообществом проектировщиков сетей, операторов, производителей и исследователей, заинтересованных в развитии архитектуры сети Интернет. Сообщество IETF подразделяется на несколько рабочих групп в соответствии с тематическими разделами. Каждая рабочая группа разрабатывает стандарты для Интернет в соответствии с собственной тематикой. Каждый стандарт публикуется в документе RFC (RFC – Request for Comments) под определенным номером. Впоследствии стандарт может пересматриваться, в результате чего публикуется документ RFC под новым номером, а первоначальный документ считается устаревшим.
Рабочая группа IETF, нацеленная на разработку основ взаимодействия инфраструктуры открытых ключей, получила название PKIX. (Адрес веб-узла PKIX, представлен в разделе "Дополнительная информация"). Стандарты инфраструктуры открытых ключей для сети Интернет все еще разрабатываются. Не смотря на это, Microsoft разрабатывала службы сертификации, придерживаясь существующих стандартов, для обеспечения совместимости с инфраструктурой открытых ключей. В особенности Microsoft заботилась о том, чтобы службы сертификации Windows 2000 соответствовали требованиям документа RFC 2459 (описываемого далее).
Документ RFC 2459
Спецификация RFC 2459 является одним из стандартов, описывающих использование сертификата X.509 инфраструктуры открытых ключей в Интернет. Особенности RFC 2459 описываются в следующих подразделах:
- Названия полей в сертификатах
- Расширения сертификатов
- Сертификаты и расширения списков CRL
- Особые расширения Windows 2000
- Год 2000 и сертификаты
- Международные наборы символов и DNS-имена
Названия полей в сертификатах
В соответствии с RFC 2459 центры сертификации (CA) Windows 2000 заносят информацию в поля: Имя владельца (Subject name), Имя издателя (Issuer name), Альтернативное имя владельца (Alternate Subject Name) и Альтернативное имена издателей (Alternate Issuer names) в определенной кодировке. В RFC 2459 определены три типа кодировки для применения в сертификатах: PrintableString, BMPString и Unicode Transformation Format 8 (UTF-8). Использование кодировки TeletexString также разрешено, чтобы обеспечить поддержку клиентов, которые не соответствуют этому RFC. Каждый тип кодировки поддерживает различные наборы символов. Набор символов, используемый в сертификатах, определяет тип кодировки, которая должна использоваться.
По умолчанию используется кодировка PrintableString. Набор символов, которые поддерживаются кодировкой PrintableString, являются подмножеством символов ASCII. Подмножество представлено такими символами:
A-Z a-z 0-9 (пробел)'()+,-./:=?
Если набор символов PrintableString не подходит для использовании, то применяется BMPString. BMPString использует набор символов Unicode, благодаря чему он может применяться для ввода символов из большинства международных наборов символов (в Unicode используется два байта для кодирования каждого символа, что позволяет создать 65.536 комбинаций символов). В том случае, если невозможно использовать набор символов PrintableString, и если известно, что при подаче заявки клиент не поддерживает Unicode, используется набор символов TeletexString. Платформа Windows 2000 в настоящее время не поддерживает кодировку UTF-8.
Некоторые продукты инфраструктуры открытых ключей не поддерживают Unicode в сертификатах. Отсутствие такой поддержки может привести к проблемам с совместимостью, которые сложно выявить. Большинство производителей высказали свои намерения поддерживать RFC 2459 в своей продукции. Чем больше продуктов будет обновлено и начнет поддерживать этот тип кодировки, тем меньше будет возникать проблем. В настоящее время перед использованием в сертификатах символов отсутствующих в PrintableString, важно проверять, чтобы все продукты инфраструктуры открытых ключей, использующие сертификаты центра сертификации (CA) Windows 2000, могли поддерживать кодировку Unicode, используемую в сертификатах.