Для организации защищенных связей необходимо применение шифрования, которое, в сою очередь, требует наличия у пользователей ключа шифрования. При этом возникает проблема управления ключами, которая включат в себя следующие задачи: генерацию, проверку, распространение, использование, хранение, резервирование, обновление, уничтожение ключей и установление времени жизни ключа. при использовании симметричного шифрования у пользователя должны быть и ключи для всех абонентов, с которыми он должен поддерживать защищенную связь, поэтому наибольшее распространение получило ассиметричное шифрование. Однако из — за трудоемкости вычислений обычно ассиметричное шифрование применяется для формирования сеансового ключа, который используется для симметричного шифрования данных в текущем сеансе.
Применение ассиметричного шифрования требует наличия общедоступной системы, содержащей открытые ключи абонентов. В этом случае возможна фальсификация открытого ключа. данная проблема решается сертификатов открытых ключей. Под сертификатом понимается подписанная цифровой подписью запись данных, содержащая имя и открытый ключ абонента. Универсальное распространение получила схема сертификатов создания открытых ключей, основанная на стандарте Х.509. формальное описание структуры сертификата выглядит следующим образом:
Certificate := SEQUENCE {.
tbs Certificate TBS Certificate,.
Signature Algorithm AlgorithmIndentefier,.
SignatureValue BIT STRENG}.
TBSCertificate:= SEQUENCE{.
Version [0] EXPLICIT Version DEFAULT v1,.
serial Number CertificateSerialNumber,.
signature Algorithm Identifier,.
issuer name,.
validity Validity,.
subgectPublickey info Subject PublicKeyInfo,.
IssuerUniqeID [1] IMPLICIT UniqueIndetifier.
Optional,.
_ _If present, version shall be v2 or v3.
Subject UniqeID [2] IMPLICIT UniqueIndetifier.
Optional,.
_ _If present, version shall be v2 or v3.
Version :=INTEGER { v1 (0), v2 (1), v3(2) }.
CertificateSerialNumber:=INTEGER.
Validity := SEQUENCE{.
notBefor Time,.
notAfter Time}.
Time:=CHOICE {.
UtcTime UTCTime,.
General Time Generalize Time }.
UniqIndentifier:= BIT STRING.
SubjectPublicKeyInfo:= SEQUENCE{.
Algorithm AlgorihmIdentifier,.
sudjectPublicKey BIT String }.
Extensions :=SEQUENCE SIZE (1…MAX) OF Extension.
Extension :=SEQUENCE {.
EetenID OBJECT IDENTIFIER,.
Critical BOOLEAN DEFAULT FALSE,.
ExtnValue OCTET STRING }.
Каждый пользователь может добавить свой открытый клюя в уполномоченный центр некоторым защищенным образом и получить соответствующий сертификат. Затем он может опубликовать полученный сертификат. Сертификаты Х.509 используются в большинстве приложений сетевой защиты, включая IPSec, SSL, SET, S/MIME и др.
Кроме списка сертификатов открытых ключей абонентов уполномоченный центр содержит два важных списка, позволяющих выполнять функции управления сертификатами: список отозванных сертификатов (CRL), список отозванных полномочий (ARL).
Центр сертификации подписывает сертификат с помощью своего секретного ключа. Если все пользователи используют один центр сертификации, то это означает общее доверие данному центру. В Х.509 предусмотрена иерархия центров, что позволяет создавать сложные системы управления ключами.