Уникальный идентификатор Издателя и Владельца
Данное поле может использоваться только в сертификатах версии 2 или 3. Поле было предусмотрено в версии 2 сертификатов X.509 для целей обеспечения использования одинакового имени Владельца или Издателя в разных сертификатах. С введением дополнений в версии 3 такая необходимость отпала.
Дополнения
Дополнительная информация, определяющая область использования сертификата, и другие необходимые параметры, не вошедшие в основные поля [25].
Дополнения сертификатов X.509 определены рекомендациями Х.509 версии 3 Международного Союза по телекоммуникациям и документом RFC 3280.
Все дополнения можно разделить на две категории: ограничивающие и информационные. Первые ограничивают область применения ключа, определенного сертификатом, или самого сертификата. Вторые содержат дополнительную информацию, которая может быть использована в прикладном программном обеспечении пользователем сертификата.
К ограничивающим дополнениям относятся:
- основные ограничения (Basic Constraints) – используется только для удостоверяющих центров, позволяет различать субъекты сертификатов и оценивать возможность построения пути сертификации;
- назначение ключа (Key Usage) – отражает области применения секретного ключа, соответствующего указанному в сертификате открытому ключу;
- расширенное назначение ключа (Extended Key Usage) – определяет характер использования ключа в конкретной прикладной области. Это может быть защита сообщений электронной почты, шифрование файлов, электронная подпись, SSL-аутентификация и т.д.;
- политики применения сертификата (Certificates Policies, Policy Mappings, Policy Constraints);
- ограничения на имена (Name Constraints).
К информационным дополнениям относятся:
- идентификаторы ключей (Subject Key Identifier, Authority Key Identifier);
- альтернативные имена (Subject Alternative Name, Issuer Alternative Name, Other Name);
- пункт распространения списка аннулированных сертификатов (CRL Distribution Point, Issuing Distribution Point);
- способ доступа к информации УЦ (Authority Access Info).
Стандарт X.509 позволяет вводить любые другие дополнения, необходимость которых определяется их использованием в конкретной системе.
Дополнение Subject Alternative Name (альтернативное имя субъекта) позволяет расширить границы идентификации владельца сертификата при помощи альтернативных имен, таких как DNS-имена, IP-адреса, URI-адреса или адреса электронной почты Интернета. Альтернативное имя должно проверяться в соответствии с регламентом УЦ.
Помимо зарегистрированных типов имен УЦ может использовать свои собственные имена, задавая их в поле Other Name. Аналогичная информация содержится и в дополнении Issuer Alternative Name, характеризующем издателя сертификата.
Удостоверяющие центры могут иметь много пар ключей, и дополнение Authority Key Identifier (идентификатор ключа УЦ) помогает пользователям выбрать правильный ключ для верификации подписи на сертификате.
Пользователи также могут владеть несколькими парами ключей или несколькими сертификатами для одного и того же ключа. Дополнение Subject Key Identifier (идентификатор ключа субъекта) используется для того, чтобы различать ключи подписи в сертификатах одного и того же владельца.
Дополнение CRL Distribution Point задает идентификатор ресурса для указания местонахождения списка отозванных сертификатов.
Различные организации используют разные политики применения сертификатов (в том числе, приложений, использующих PKI), и пользователи при этом не всегда способны их различить. Но при принятии решения они могут ориентироваться на дополнение Certificate Policies (политики применения сертификата). Это дополнение содержит уникальный идентификатор объекта, характеризующий политику применения сертификатов, в соответствии с которой был выпущен данный сертификат, и назначение этого сертификата.
Дополнение Policy Mappings (соответствие политик) используется, если субъектом сертификата является УЦ. С помощью этого дополнения можно устанавливать соответствие между политиками применения сертификатов разных удостоверяющих центров.
Выпуск сертификата одним УЦ для другого является подтверждением надежности сертификатов последнего. Существует три основных способа подтвердить надежность некоторого множества сертификатов. Во-первых, это можно сделать при помощи дополнения Basic Constraints (описанного выше). Второй способ состоит в описании множества сертификатов на основании имен, указанных в поле имени субъекта или альтернативного имени субъекта, в дополнении Name Constraints (ограничения на имена). Это дополнение может использоваться для задания множества допустимых имен или множества неразрешенных имен.
В-третьих, для описания множества сертификатов на основании ограничений политик можно использовать дополнение Policy Constraints (ограничения политик). Это дополнение используется только в сертификатах УЦ и задает проверку пути к политике, запрашивая идентификаторы политик и (или) запрещая задание соответствия политик.
Если УЦ выдает универсально надежные сертификаты, то нет необходимости явно указывать в них политики применения сертификатов. Если же сертификаты УЦ, признанного надежным в определенном домене, используются вне этого домена, то требуется явное указание политики применения во всех сертификатах пути сертификации.
Корневой сертификат
Для проверки электронной цифровой подписи УЦ в сертификате, пользователю необходимо иметь открытый ключ этого УЦ. Открытый ключ УЦ пользователь так же получает в составе сертификата этого УЦ. Сертификат, выданный и подписанный конкретным УЦ, и содержащий открытый ключ этого УЦ, называется Корневым сертификатом.
Пример использования сертификата для передачи конфиденциальной информации:
![]() |
Рис. 26. Пример использования сертификата ключа
Удостоверяющая организация, назовем ее УЦ, является надежной третьей стороной.
1 – А, для организации конфиденциальной переписки отправляет УЦ свой открытый ключ для распространения.
2 – Б, прежде чем отправить данные А, хочет проверить открытый ключ А с помощью УЦ. А имеет действующий сертификат, который хранится в УЦ. Б запрашивает у УЦ цифровой сертификат А.
3 – УЦ подписывает сертификат своим закрытым ключом. Б имеет доступ к открытому ключу УЦ и может убедиться в том, что сертификат, подписанный УЦ, является действительным. Так как сертификат А содержит его открытый ключ, то Б получает «заверенную» версию открытого ключа А.
4 – Б отправляет конфиденциальные данные А.
Хеширование паролей
В настоящее время методы хеширования используются не только в алгоритмах цифровой подписи. В современных операционных системах, в алгоритмах аутентификации, применяется метод хеширования паролей. При сохранении эталонного пароля в системе, на жестком диске сохраняется его хэш-дайджест. Так как хэш-функция необратима, то обратное вычисление пароля по дайджесту невозможно.
При входе пользователя в систему и наборе пароля, вновь вычисляется дайджест хэш-функции от пароля, и происходит их сравнение. Это позволяет повысить стойкость системы к несанкционированному доступу, так как в этом случае, подбор пароля возможен только прямым перебором.
Кроме того, для облегчения работы с симметричными криптосистемами, в том случае, когда пользователь создает (придумывает) ключ самостоятельно, в ряде систем так же применяется метод хеширования паролей. Это позволяет пользователям запоминать, например, не 128 бит (16 символов восьмибитной кодировки), а некоторое осмысленное выражение, слово или последовательность символов. На сегодняшний день определено, что у обычного человека предел запоминаемости лежит на границе 8-12 подобных символов, а, следовательно, если заставлять пользователя оперировать именно ключом, то тем самым его практически вынуждают к записи ключа на каком-либо листке бумаги или электронном носителе, например, в текстовом файле. Это, естественно, резко снижает защищенность системы.
Свойства хеш-функции позволяют подавать на ее вход пароли, то есть текстовые строки произвольной длины на любом национальном языке и, ограничив область значений функции диапазоном 0.. , где N – длина ключа в битах, получать на выходе достаточно равномерно распределенные по области значения блоки информации – ключи. А уже ключи, выработанные на основе пароля и используются в криптосредствах.
Криптоанализ
Криптоанализ – наука о преобразовании шифротекста в открытый текст без знания ключевой информации. Любой шифр надежен настолько, насколько надежно его самое слабое место, будь то выработка ключей или их распределение.
Криптоалгоритм именуется идеально стойким, если прочесть зашифрованный блок данных можно только перебрав все возможные ключи, до тех пор, пока сообщение не окажется осмысленным. Так как по теории вероятности искомый ключ будет найден с вероятностью ½ после перебора половины всех ключей, то на взлом идеально стойкого криптоалгоритма с ключом длины N потребуется в среднем проверок. Таким образом, в общем случае стойкость блочного шифра зависит только от длины ключа и возрастает экспоненциально с ее ростом.
Кроме этого условия к идеально стойким криптоалгоритмам применяется еще одно очень важное требование, которому они должны обязательно соответствовать. При известных исходном и зашифрованном значениях блока ключ, которым произведено это преобразование, можно узнать также только полным перебором.
Все асимметричные криптосистемы являются объектом атак путем прямого перебора ключей, и поэтому в них должны использоваться гораздо более длинные ключи, чем те, которые используются в симметричных криптосистемах, для обеспечения эквивалентного уровня защиты. Это сразу же сказывается на вычислительных ресурсах, требуемых для шифрования. Брюс Шнайер в книге «Прикладная криптография: протоколы, алгоритмы и исходный текст на C» [26] приводит следующие данные об эквивалентных длинах ключей.
Длина симметричного ключа | Длина асимметричного ключа |
56 бит | 384 бит |
64 бита | 512 бит |
80 бит | 768 бит |
112 бит | 1792 бита |
128 бит | 2304 бита |
С ростом мощности вычислительной техники даже атака полным перебором уже не кажется невозможной. Например, 28 апреля 2004 г. в СМИ поступило сообщение о взломе бригадой американских математиков ключа RSA 576 бит, предлагаемого компанией RSA Security. Было продемонстрировано, что 576 битные ключи не способны противостоять атаке, и рекомендовано в следствие этого – использовать более длинные ключи. Сейчас типично применение 1024 битных ключей.
Дискредитация– подрыв доверия к кому-либо, чему-либо. Дискредитация паролей и ключей происходит при их утере, хищении, или в случае их разглашения. В этом случае возникает реальная возможность несанкционированного доступа к защищаемой информации.
Виды атак на криптосистемы
Полный перебор
Атака полным перебором(brute force attack) заключается в опробовании всех возможных ключей. Но проблема в том, что с ростом длины ключа экспоненциально растет и объем вычислений. Некоторые полагают, что увеличение мощности вычислительной техники сделает шифры ненадежными. Но, с другой стороны, это позволит применять более длинные ключи.
Атака на шифротекст
Атака на шифротекст(cipher-text-only attack) предполагает, что атакующий имеет только шифротекст. На практике же он может располагать некоторыми сведениями о содержании сообщения и использовать их. Для этого проводится анализ шифротекста, его структуры. Примеры данного метода хорошо описаны в художественной литературе: Э. По – «Золотой жук» и А. Конандоиль – «Пляшущие человечки».
Атака по открытому тексту
Атака по открытому тексту(chosen-plain-text attack) предполагает наличие у атакующего возможности зашифровать любой выбранный им текст. Таким образом атакующий пытается вычислить ключ. Шифр RSA уязвим к подобным атакам.