Здавалка
Главная | Обратная связь

Применение ключевых хэш-функций



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

 

 

55)

Примеры хеш-функций sha…

SECURE HASH ALGORITHM (SHA-1)

Алгоритм хеширования SHA-1 описан в стандарте США безопасного хеширования. Для входного сообщения, длина которого меньше 264 бит алгоритм SHA-1 выдаёт 160-битовый результат. Предназначен SHA-1 для использования вместе с алгоритмом цифровой подписи DSA. Цифровая подпись формируется на основе дайджеста SHA-1 от сообщения, что повышает эффективность процесса подписания.

Применения алгоритма SHA-1

В результате применения алгоритма получается хэш-код длиной 160 бит. Процедура дополнения хэшируемого текста до кратного 512 битам совпадает с процедурой дополнения алгоритма MD5.

Инициализируются 5 переменных по 32 бита (в алгоритме MD5 таких переменных было 4):

A=67452301 B=efcdab89

C=98badcfe D=10325476 E=c3d2e1f0

Далее, как и в MD5, создаются копии AA, BB, CC, DD,EE инициализированных переменных и для каждого блока текста размером 512 битов выполняется основной цикл, состоящий из 4 раундов. В отличие от MD5 каждый раунд состоит из 20 операторов (в MD5 -16 операторов).

Аналогично MD5, каждый оператор состоит из функции от 3 переменных (в случае SHA-1 это B, C и D), циклического сдвига и суммирования.

Отечественный стандарт хеш-функции (ГОСТ Р 34.11-94)

Российский стандарт хеширования - ГОСТ Р 34.11-94 использует блочный алгоритм шифрования ГОСТ 28147-89. Хэш-функция формирует 256-битовый дайджест. Предназначена для использования совместно с российским стандартом электронной цифровой подписи.

Приведём краткое описание функции сжатия алгоритма ГОСТ Р 34.11-94 f. Hi=f(Hi - 1, Mi)

Описание функции сжатия алгоритма ГОСТ Р 34.11-94 f.

Смешивает линейно Hi– 1, Mi и некоторых констант Cj, генерируются четыре ключа шифрования Kj, j = 1…. 4;

Входной блок разбивается на четыре части равной длины, каждая из которых потом шифруется на одном из четырёх ранее полученных ключей, склейка результата этой операции затем заносится во временную переменную S;

Hi представляет собой значение линейной функции от S, Mi и Hi– 1.

 

56)

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

Иными словами, сертификация открытого ключа – это, по сути, «подписывание» открытого ключа электронной подписью, вычисленной на секретном ключе сертификационного центра.

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

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

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

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

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

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

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

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

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

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

Инфраструктура открытых ключей (Public Key Infrastructure, PKI) представляет собой набор программных агентов и правил, предназначенных для управления ключами, политикой безопасности и собственно обменом защищенными сообщениями. Компоненты структуры PKI имеют следующее назначение.

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

Центр сертификации (Certification Authority, CA) – организационная единица, назначением которой является сертификация открытых ключей пользователей (т. е. получение из открытого ключа сертификата в формате, определенном в X.509) и их опубликование в каталоге сертификатов.

Центр регистрации (Registration Authority, RA) – другая организационная единица, обеспечивающая регистрацию пользователей системы.

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

Как известно, открытые ключи вычисляются по определенным алгоритмам из соответствующих им секретных ключей и используются в основном для следующих целей:

проверки ЭЦП данных или другого открытого ключа;

шифрования данных, направляемых владельцу секретного ключа, парного открытому: расшифровать данные можно только с использованием данного секретного ключа;

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

Во всех этих случаях совершенно необходимы подтверждение целостности и установление принадлежности открытого ключа конкретному пользователю. Некая третья доверенная сторона (Trusted Third Party, TTP), в данном случае CA, должна подтвердить, что владелец открытого ключа – это именно тот пользователь, информация о котором содержится в сертификате, а также что открытый ключ соответствует секретному ключу данного пользователя.

Таким образом, цифровой сертификат содержит три главные составляющие: открытый ключ пользователя, информацию о пользователе - владельце сертификата, сертифицирующую ЭЦП двух предыдущих составляющих (вычисленную на секретном ключе CA).

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

 

57)

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

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

Суть их со­сто­ит в том, что ка­ж­дым ад­ре­са­том ИС ге­не­ри­ру­ют­ся два клю­ча, свя­зан­ные ме­ж­ду со­бой по оп­ре­де­лен­но­му пра­ви­лу. Один ключ объ­яв­ля­ет­ся от­кры­тым, а дру­гой за­кры­тым. От­кры­тый ключ пуб­ли­ку­ет­ся и дос­ту­пен лю­бо­му, кто же­ла­ет по­слать со­об­ще­ние ад­ре­са­ту. Секретный ключ сохраняется в тайне.

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

Крип­то­гра­фи­че­ские сис­те­мы с от­кры­тым клю­чом ис­поль­зу­ют так называемые не­об­ра­ти­мые или од­но­сто­рон­ние функ­ции, ко­то­рые об­ла­да­ют сле­дую­щим свой­ст­вом: при за­дан­ном зна­че­нии x от­но­си­тель­но про­сто вы­чис­лить зна­че­ние f(x), од­на­ко ес­ли y=f(x), то нет про­сто­го пу­ти для вы­чис­ле­ния зна­че­ния x.

Мно­же­ст­во клас­сов не­об­ра­ти­мых функ­ций и по­ро­ж­да­ет все раз­но­об­ра­зие сис­тем с от­кры­тым клю­чом. Од­на­ко не вся­кая не­об­ра­ти­мая функ­ция го­дит­ся для ис­поль­зо­ва­ния в ре­аль­ных ИС.

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

По­это­му что­бы га­ран­ти­ро­вать на­деж­ную за­щи­ту ин­фор­ма­ции, к сис­те­мам с от­кры­тым клю­чом (СОК) предъ­яв­ля­ют­ся два важ­ных и оче­вид­ных тре­бо­ва­ния:

1. Пре­об­ра­зо­ва­ние ис­ход­но­го тек­ста долж­но быть не­об­ра­ти­мым и ис­клю­чать его вос­ста­нов­ле­ние на ос­но­ве от­кры­то­го клю­ча.

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

Ал­го­рит­мы шиф­ро­ва­ния с от­кры­тым клю­чом по­лу­чи­ли ши­ро­кое рас­про­стра­не­ние в со­вре­мен­ных ин­фор­ма­ци­он­ных сис­те­мах. Так, ал­го­ритм RSA стал ми­ро­вым стан­дар­том де-фак­то для от­кры­тых сис­тем и ре­ко­мен­до­ван МККТТ.

Вообще же все предлагаемые сегодня криптосистемы с открытым ключом опираются на один из следующих типов необратимых преобразований:

1. Разложение больших чисел на простые множители.

2. Вычисление логарифма в конечном поле.

3. Вычисление корней алгебраических уравнений.

Здесь же сле­ду­ет от­ме­тить, что ал­го­рит­мы криптосистемы с открытым ключом (СОК) мож­но ис­поль­зо­вать в трех на­зна­че­ни­ях.

1. Как са­мо­стоя­тель­ные сред­ст­ва за­щи­тыпе­ре­да­вае­мых и хра­ни­мых дан­ных.

2. Как сред­ст­ва для рас­пре­де­ле­ния клю­чей. Ал­го­рит­мы СОК бо­лее тру­до­ем­ки, чем тра­ди­ци­он­ные крип­то­си­сте­мы. По­это­му час­то на прак­ти­ке ра­цио­наль­но с по­мо­щью СОК рас­пре­де­лять клю­чи, объ­ем ко­то­рых как ин­фор­ма­ции не­зна­чи­те­лен. А по­том с по­мо­щью обыч­ных ал­го­рит­мов осу­ще­ст­в­лять об­мен боль­ши­ми ин­фор­ма­ци­он­ны­ми по­то­ка­ми.

3. Сред­ст­ва ау­тен­ти­фи­ка­ции поль­зо­ва­те­лей. Ниже рассматриваются наиболее распространенные системы с открытым ключом.

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

58)

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

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

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

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

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

Многообразие механизмов межсетевого взаимодействия, в свою очередь, способствует появлению различных криптопротоколов. Причем они могут решать задачи информационной безопасности как в виде отдельных механизмов (SSL, SHTTP и др.), так и входить в состав других продуктов, связанных с этой областью (например, в TrustedWeb используется Кегberos). Типичным примером использования криптопротоколов может являться решение такой распространенной задачи: клиент (например, HTTP-клиент) хочет получить доступ к серверу (например, к Web-серверу) через открытые сети передачи данных и установить с ним защищенный канал передачи данных. Данная проблема эффективно разрешима только с применением криптопротоколов.

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

Основными задачами сегодняшнего дня, которые решаются криптопротоколами в сетях передачи данных, являются:

- аутентификация и идентификация ;

- ключевой обмен .

Существует также целый ряд криптопротоколов, предназначенных для решения более специфических задач .

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

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

Для этого они используют следующую последовательность действий:

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

2. Участник В посылает свой открытый ключ участнику

3. Участник А создает секретный ключ для симметричного алгоритма шифрования; зашифровывает его на открытом ключе участника В и отсылает ему полученный результат.

4. Участник В, получив зашифрованный секретный ключ от участника А, расшифровывает его на своем секретном ключе для асимметричного алгоритма.

59)

 

Сертификаты открытых ключей. Аннулирование сертификатов.

Механизмы контроля использования ключей.

Подтверждение подлинности ключей

 

Сертификат открытого ключа (сертификат ЭЦП, сертификат ключа подписи, сертификат ключа проверки электронной подписи (согласно ст. 2 Федерального Закона от 06.04.2011 «Об электронной подписи» № 63-ФЗ)) — цифровой или бумажный документ, подтверждающий соответствие между открытым ключом и информацией, идентифицирующей владельца ключа. Содержит информацию о владельце ключа, сведения об открытом ключе, его назначении и области применения, название центра сертификации и т. д.

 

Открытый ключ может быть использован для организации защищённого канала связи с владельцем двумя способами:

для проверки подписи владельца (аутентификация)

для шифрования посылаемых ему данных (конфиденциальность)

 

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

 

Принцип работы(прочитать для ознакомления )

 

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

 

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

 

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

 

Центр сертификации или Удостоверяющий центр (англ. Certificationauthority, CA) — это организация или подразделение организации, которая выпускает сертификаты ключей электронной цифровой подписи, это компонент глобальной службы каталогов, отвечающий за управление криптографическими ключами пользователей. Открытые ключи и другая информация о пользователях хранится удостоверяющими центрами в виде цифровых сертификатов.

 

Структура сертификата

 

уникальный регистрационный номер сертификата

даты и время начала и окончания срока действия сертификата

фамилия, имя и отчество владельца сертификата ключа подписи или псевдоним владельца

открытый ключ

наименование и реквизиты ЦС

наименование криптографического алгоритма

информацию об ограничении использования подписи

указание на страну выпуска сертификата

 

 

Механизмы контроля использования ключей

 

Их можно разделить на два разряда: разделение и ограничение в использовании ключей и контроль использования симметричных ключей.

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

• идентификатор владельца ключа;

• срок действия ключа;

• идентификатор ключа (номер ключа, серия ключа);

• информацию, связанную с характером использования ключа;

• спецификации алгоритма;

• система или окружение, в котором данный ключ может использоваться;

• имена участников процесса генерации, регистрации и сертификации данного ключа;

• контрольную сумму.

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

 

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

 

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

 

Механизмы контроля над использованием ключей можно разделить на три категории:

• с использованием масок ключей и изменяющихся ключей;

• на основе подтверждения подлинности ключей;

• с использованием контрольных векторов.

1)Маски ключей и изменяющиеся ключи

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







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.