Сертификат с открытым ключом является в цифровой форме подписанным заявлением от одного объекта, говоря, что у открытого ключа (и некоторая другая информация) другого объекта есть некоторое определенное значение.
Давайте подробно остановимся на некоторых из ключевых терминов, использованных в этом предложении:
Открытые ключи
Они - числа, связанные с определенным объектом, и предназначаются, чтобы быть известными всем, кто должен доверить взаимодействиям тот объект. Открытые ключи используются, чтобы проверить подписи.
В цифровой форме Подписанный
Если некоторые данные в цифровой форме подписываются, они были сохранены "идентификационными данными" объекта, и подписью, которая доказывает, что объект знает о данных. Данные представляются нековкие, подписываясь с закрытым ключом объектов.
Идентификационные данные
Известный способ адресовать объект. В некоторых системах идентификационные данные являются открытым ключом в других, это может быть что-либо от UID Unix до Адреса электронной почты к Отличительному имени X.509.
Подпись
Подпись вычисляется свыше некоторых данных, используя закрытый ключ объекта (подписывающее лицо).
Закрытые ключи
Они - числа, каждое из которых, как предполагается, известно только определенному объекту, закрытый ключ которого это (то есть, это, как предполагается, держится в секрете). Закрытые и открытые ключи существуют в парах во всех системах шифрования с открытым ключом (также называемый "открытым ключом crypto системы"). В типичном открытом ключе crypto система, такая как DSA, закрытый ключ соответствует точно одному открытому ключу. Закрытые ключи используются, чтобы вычислить подписи.
Объект
Объект является человеком, организацией, программой, компьютером, бизнесом, банком, или чем-то еще, чему Вы доверяете до некоторой степени.
В основном шифрование с открытым ключом требует доступа к открытым ключам пользователей. В крупномасштабной сетевой среде невозможно гарантировать, что предшествующие отношения между связывающимися объектами были установлены или что доверяемое хранилище существует со всеми используемыми открытыми ключами. Сертификаты были изобретены как решение этой проблемы распределения с открытым ключом. Теперь Центр сертификации (CA) может действовать как Доверенная третья сторона. АВАРИЯ является объектами (например, фирмы), которые доверяются, чтобы подписаться (выпускают) сертификаты для других объектов. Предполагается, что АВАРИЯ только создаст допустимые и надежные сертификаты, поскольку они связываются юридическими соглашениями. Есть много общедоступных Центров сертификации, таких как VeriSign, Thawte, Поручают и так далее. Можно также выполнить свой собственный Центр сертификации, используя продукты, такие как Серверы Сертификата Netscape/Microsoft или Поручать продукт CA для Вашей организации.
Вероятно, наиболее широко видимое приложение сертификатов X.509 сегодня находится в веб-браузерах (таких как Mozilla Firefox и Microsoft Internet Explorer), которые поддерживают протокол TLS. TLS (Безопасность Транспортного уровня) является протоколом системы защиты, который обеспечивает конфиденциальность и аутентификацию для Вашего сетевого трафика. Эти браузеры могут только использовать этот протокол с веб-серверами тот TLS поддержки.
Другие технологии, которые полагаются на сертификаты X.509, включают:
Различные схемы подписывания кода, такие как подписанные Архивы Java, и Microsoft Authenticode.
Различные безопасные стандарты Электронной почты, такие как PEM и S/MIME.
Есть два основных метода, используемые, чтобы получить сертификаты:
можно создать тот самостоятельно (использующий правильные инструменты, такие как keytool), или
можно попросить, чтобы Центр сертификации выпустил Вас один (или непосредственно или использование инструмента, такого как keytool, чтобы генерировать запрос).
Основные вводы к процессу создания сертификата:
Соответствующие открытые и закрытые ключи, сгенерированное использование некоторых специальных инструментов (таких как keytool), или браузер. Только открытый ключ когда-либо показывают кому-либо еще. Закрытый ключ используется, чтобы подписать данные; если кто-то знает Ваш закрытый ключ, они могут подменить Вами..., возможно, подделывание юридических документов, приписанных Вам!
Вы должны предоставить информацию о сертифицированном объекте (например, Вы). Это обычно включает информацию, такую как Ваше имя и организационный адрес. Если Вы попросите, чтобы CA выпустил сертификат для Вас, то Вы должны будете обычно предоставлять доказательство, чтобы показать правильность информации.
Если Вы просите, чтобы CA выпустил Вас сертификат, Вы обеспечиваете свой открытый ключ и некоторую информацию о Вас. Вы будете использовать инструмент (такой как keytool или браузер, который поддерживает Сертификат, Подписывая генерацию Запроса). в цифровой форме подписать эту информацию, и отправить это CA. CA тогда генерирует сертификат и возвратит его.
Если Вы генерируете сертификат самостоятельно, то Вы возьмете ту же самую информацию, добавить немного больше (даты, во время которых сертификат допустим, порядковый номер), и только создайте сертификат, используя некоторый инструмент (такой как keytool). Не все примут самоподписанные сертификаты; одна часть значения, обеспеченного CA, должна служить нейтральной и доверяемой вводной службой, базируемой частично на их требованиях проверки, которые открыто публикуются в их Методах Службы Сертификации (CSP).
Стандарт X.509 определяет, какая информация может войти в сертификат, и описывает, как записать это (формат данных). У всех сертификатов X.509 есть следующие данные, в дополнение к подписи:
Версия
Это идентифицирует, какая версия стандарта X.509 применяется к этому сертификату, который влияет на то, какая информация может быть определена в этом. К настоящему времени три версии определяются.
Порядковый номер
Объект, который создал сертификат, ответственен за присвоение его порядковый номер, чтобы отличить его от других сертификатов, которые он выпускает. Эта информация используется многочисленными способами, например когда сертификат отменяется, его порядковый номер помещается в Список аннулированных сертификатов (CRL).
Идентификатор Алгоритма подписи
Это идентифицирует алгоритм, используемый CA, чтобы подписать сертификат.
Имя выпускающего
Имя X.500 объекта, который подписал сертификат. Это обычно - CA. Используя этот сертификат подразумевает доверие объекту, который подписал этот сертификат. (Отметьте, что в некоторых случаях, такие как сертификаты CA корневого или верхнего уровня, выпускающий подписывает его собственный сертификат.)
Срок действия
Каждый сертификат допустим только для ограниченного количества времени. Этот период описывается датой начала и время и дата окончания и время, и может быть столь же коротким как несколько секунд или почти пока столетие. Выбранный срок действия зависит в ряде факторов, таких как сила закрытого ключа, используемого, чтобы подписать сертификат или количество, которое каждый готов заплатить за сертификат. Это - ожидаемый период, что объекты могут положиться на общедоступное значение, если связанный закрытый ключ не поставился под угрозу.
Подчиненное Имя
Имя объекта, открытый ключ которого сертификат идентифицирует. Это имя использует стандарт X.500, таким образом, это предназначается, чтобы быть уникальным через Интернет. Это - Отличительное имя (DN) объекта, например,
(Они обращаются к Общему названию предмета, Организационному Модулю, Организации, и Стране.)
Подвергните информацию С открытым ключом
Это - открытый ключ называемого объекта, вместе с идентификатором алгоритма, который определяет, какой открытый ключ crypto система этот ключ принадлежит и любые связанные основные параметры.
Версия 1 X.509 была доступной с 1988, широко развертывается, и является самой универсальной.
Версия 2 X.509, представленная понятие предмета и уникальных идентификаторов выпускающего, чтобы обработать возможность повторного использования предмета и/или выпускающего, называет в течение долгого времени. Большинство документов профиля сертификата строго рекомендует, чтобы имена не были снова использованы, и что сертификаты не должны использовать уникальные идентификаторы. Сертификаты версии 2 широко не используются.
Версия 3 X.509 является новым (1996) и поддерживает понятие расширений, посредством чего любой может определить расширение и включать его в сертификат. Некоторые общие расширения в использовании сегодня: KeyUsage (ограничивает использование ключей к конкретным целям такой как "только для подписания"), и AlternativeNames (позволяет другим идентификационным данным также быть связанными с этим открытым ключом, например, имена DNS, Адреса электронной почты, IP-адреса). Расширения могут быть отмечены критические, чтобы указать, что расширение должно быть проверено и осуществляло/использовало. Например, если у сертификата есть расширение KeyUsage, отмеченное критический и набор к "keyCertSign" тогда, если этот сертификат представляется во время передачи SSL, это должно быть отклонено, поскольку расширение сертификата указывает, что связанный закрытый ключ должен только использоваться для того, чтобы подписать сертификаты а не для использования SSL.
Все данные в сертификате кодируются, используя два связанных стандарта под названием ASN.1/DER. Абстрактная синтаксическая нотация 1 описывает данные. Определенные Правила кодирования описывают единственный способ сохранить и передать те данные. Люди, как было известно, описали эту комбинацию одновременно как "мощную и гибкую" и как "загадочную и неуклюжую".
IETF PKIX рабочая группа находится в процессе определения стандартов для интернет-Инфраструктуры управления открытыми ключами. Мы близко следуем за их работой, и поддерживаем Сертификат X.509 и Профиль CRL, который определяется в RFC 3280.
API Сертификата, найденный в java.security.cert пакет, включает следующее:
класс CertificateFactory определяет функциональность фабрики сертификата, которая используется, чтобы генерировать сертификат, список аннулированных сертификатов (CRL), и объекты пути сертификации от их кодирования.
класс Сертификата является абстрактным классом для того, чтобы управлять множеством сертификатов. Это - абстракция для сертификатов, у которых есть различные форматы, но важное общее использование. Например, различные типы сертификатов, такие как X.509 и PGP, совместно используют общую функциональность сертификата (как кодирование и проверка) и некоторые типы информации как открытый ключ.
класс CRL является абстрактным классом для того, чтобы управлять множеством Списков аннулированных сертификатов (CRL).
класс X509Certificate является абстрактным классом для Сертификатов X.509. Это обеспечивает стандартный способ получить доступ ко всем атрибутам сертификата X.509.
интерфейс X509Extension является интерфейсом для расширения X.509. Расширения, определенные для X.509 v3 сертификаты и v2 CRL (Списки аннулированных сертификатов), обеспечивают механизмы для того, чтобы они связали дополнительные атрибуты с пользователями или открытыми ключами, такой что касается управления иерархией сертификации, и для того, чтобы управлять распределением CRL.
класс X509CRL является абстрактным классом для Списка аннулированных сертификатов X.509 (CRL). CRL является списком с меткой времени, идентифицирующим отменяемые сертификаты. Это подписывается Центром сертификации (CA) и делается в свободном доступе в общедоступном репозитарии.
класс X509CRLEntry является абстрактным классом для записи CRL.
В JDK 1.4, новые классы были добавлены, чтобы поддерживать создание и проверку допустимости цепочек сертификатов, или путей сертификации. Эти классы описываются в дальнейших деталях в Руководстве Программиста PKI.
Есть инструмент, названный keytool (для Соляриса) (для Windows), который может использоваться, чтобы создать пары "открытый/закрытый ключ" и самоподписан X.509 v3 сертификаты, и управлять keystores. Ключи и сертификаты используются, чтобы в цифровой форме подписать Ваши приложения Java и апплеты (см. jarsigner (для Соляриса) (для Windows) инструмент).
keystore является защищенной базой данных, которая удерживает клавиши и сертификаты. Доступ к keystore охраняет пароль (определенный в то время, когда keystore создается человеком, который создает keystore, и изменчивый только, обеспечивая текущий пароль). Кроме того, каждый закрытый ключ в keystore может охранять его собственный пароль.
Используя keytool, возможно вывести на экран, импортировать, и экспортировать X.509 v1, v2, и v3 сертификаты, сохраненные, поскольку файлы, и генерировать новый самоподписывали v3 сертификаты. Для примеров см. раздел "В КАЧЕСТВЕ ПРИМЕРА" keytool документации (для Соляриса) (для Windows).